[med-svn] [seqan] 10/14: Revert "Imported Upstream version 2.0.1+dfsg"

Andreas Tille tille at debian.org
Tue Jul 26 07:29:23 UTC 2016


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

tille pushed a commit to branch master
in repository seqan.

commit e2701b480d832202b22659ceb73d9a010a397839
Author: Andreas Tille <tille at debian.org>
Date:   Tue Jul 26 09:28:49 2016 +0200

    Revert "Imported Upstream version 2.0.1+dfsg"
    
    This reverts commit 3e7c7b0696ee4a732ef70459da34cc9fdf057d59.
---
 CHANGELOG.rst                                      |   82 -
 apps/alf/CMakeLists.txt                            |    2 +-
 apps/bs_tools/CMakeLists.txt                       |    2 +-
 apps/bs_tools/tests/run_tests.py                   |   31 +-
 apps/dfi/CMakeLists.txt                            |    2 +-
 apps/fiona/CMakeLists.txt                          |    2 +-
 apps/fx_tools/CMakeLists.txt                       |    2 +-
 apps/fx_tools/fx_bam_coverage.cpp                  |   34 +-
 apps/gustaf/CMakeLists.txt                         |    2 +-
 apps/insegt/CMakeLists.txt                         |    2 +-
 apps/mason2/CMakeLists.txt                         |    2 +-
 apps/mason2/mason_simulator.cpp                    |   83 +-
 apps/mason2/simulate_illumina.cpp                  |   14 +-
 apps/mason2/simulate_sanger.cpp                    |   14 +-
 apps/mason2/tests/simulator.out1.sam               |   52 +-
 apps/mason2/tests/simulator.out2.sam               |  100 +-
 apps/mason2/tests/simulator.out4.sam               |   26 +-
 apps/mason2/tests/simulator.out7.sam               |   50 +-
 apps/mason2/tests/simulator.out8.sam               | 1220 +++++++--------
 apps/micro_razers/CMakeLists.txt                   |    2 +-
 apps/ngs_roi/CMakeLists.txt                        |    2 +-
 apps/pair_align/CMakeLists.txt                     |    8 +-
 apps/param_chooser/CMakeLists.txt                  |    2 +-
 apps/rabema/CMakeLists.txt                         |    2 +-
 apps/rabema/curve_smoothing.h                      |    2 +-
 apps/rabema/rabema_build_gold_standard.cpp         |    2 +-
 apps/razers/CMakeLists.txt                         |    2 +-
 apps/razers2/CMakeLists.txt                        |    2 +-
 apps/razers2/outputFormat.h                        |    4 +-
 apps/razers3/CMakeLists.txt                        |    2 +-
 apps/razers3/README                                |   82 +-
 apps/rep_sep/CMakeLists.txt                        |    2 +-
 apps/sak/CMakeLists.txt                            |    2 +-
 apps/sam2matrix/CMakeLists.txt                     |    2 +-
 apps/samcat/CMakeLists.txt                         |    2 +-
 apps/searchjoin/CMakeLists.txt                     |    2 +-
 apps/seqan_flexbar/CMakeLists.txt                  |    2 +-
 apps/seqan_tcoffee/CMakeLists.txt                  |    2 +-
 apps/seqan_tcoffee/tests/1aab.i.fasta              |  110 +-
 apps/seqan_tcoffee/tests/1ad2.i.fasta              |  110 +-
 apps/seqan_tcoffee/tests/2trx.i.fasta              |  110 +-
 apps/seqcons/CMakeLists.txt                        |    2 +-
 apps/seqcons2/CMakeLists.txt                       |    2 +-
 apps/sgip/CMakeLists.txt                           |    2 +-
 apps/snp_store/CMakeLists.txt                      |    2 +-
 apps/splazers/CMakeLists.txt                       |    7 +-
 apps/splazers/razers_spliced.h                     |    4 +-
 apps/stellar/CMakeLists.txt                        |    2 +-
 apps/stellar/stellar.cpp                           |    7 +-
 apps/tree_recon/CMakeLists.txt                     |    2 +-
 apps/yara/CMakeLists.txt                           |    8 +-
 apps/yara/bits_context.h                           |    4 +-
 apps/yara/mapper.cpp                               |   11 +-
 apps/yara/misc_options.h                           |    2 +-
 apps/yara/tests/gold/adeno-reads_1.t1.sam          |    2 +-
 demos/{dox => }/align/align.cpp                    |    0
 demos/{dox => }/align/align.cpp.stdout             |    0
 demos/align/compute_alignment_stats.cpp            |   66 +
 demos/align/compute_alignment_stats.cpp.stdout     |   50 +
 demos/{dox => }/align/gaps_example.cpp             |    0
 demos/{dox => }/align/gaps_example.cpp.stdout      |    0
 demos/{dox => }/align/global_alignment_banded.cpp  |    0
 .../align/global_alignment_banded.cpp.stdout       |    0
 .../{dox => }/align/global_alignment_unbanded.cpp  |    0
 .../align/global_alignment_unbanded.cpp.stdout     |    0
 demos/{dox => }/align/integrate_align.cpp          |    0
 demos/{dox => }/align/integrate_align.cpp.stdout   |    0
 demos/{dox => }/align_extend/extend_alignment.cpp  |    0
 .../align_extend/extend_alignment.cpp.stdout       |    0
 demos/align_gaps_clipping.cpp                      |   74 +
 .../align_profile/profile_seq_frac_score.cpp       |    0
 .../{dox => }/align_profile/profile_seq_score.cpp  |    0
 demos/{dox => }/align_split/split_alignment.cpp    |    0
 .../align_split/split_alignment.cpp.stdout         |    0
 demos/alignment.cpp                                |   51 +
 demos/alignment_local.cpp                          |   91 ++
 demos/allocator.cpp                                |   28 +
 demos/{unassigned_or_unused => }/alphabet.cpp      |    0
 .../annotation_converter.cpp                       |    0
 demos/{unassigned_or_unused => }/arg_align.README  |    0
 demos/{unassigned_or_unused => }/arg_align.cpp     |    0
 demos/{dox => }/arg_parse/argument_parser.cpp      |    0
 demos/{dox => }/bam_io/bam_file_in.cpp             |    0
 demos/bam_io/bam_tags_dict.cpp                     |   36 +
 demos/{dox => }/bam_io/bam_tags_dict.cpp.stdout    |    0
 demos/bam_library_size.cpp                         |  271 ++++
 .../bam_print_alignments.cpp                       |    0
 demos/{unassigned_or_unused => }/bamutil.cpp       |    0
 demos/basic/enable_if.cpp                          |   96 ++
 demos/{dox => }/basic/metaprogramming_control.cpp  |    0
 demos/{dox => }/basic/metaprogramming_logic.cpp    |    0
 demos/{dox => }/basic/metaprogramming_math.cpp     |    0
 demos/{dox => }/basic/metaprogramming_switch.cpp   |    0
 demos/{dox => }/basic/simple_type_construction.cpp |    0
 .../bed_stream_read.cpp}                           |    0
 demos/benchmark_stream.cpp                         |  422 +++++
 .../benchmark_stream_write.cpp                     |    0
 demos/{dox => }/consensus/consensus_alignment.cpp  |    0
 .../consensus/consensus_alignment.cpp.stdout       |    0
 demos/{unassigned_or_unused => }/cuda/count.cu     |    0
 demos/{unassigned_or_unused => }/cuda/hello.cu     |    0
 demos/{unassigned_or_unused => }/cuda/mmap.cu      |    0
 demos/{dox/modifier => }/cyclic_shape.cpp          |    0
 demos/{dox/modifier => }/cyclic_shape.cpp.stdout   |    0
 demos/{dox/modifier => }/cyclic_shape_snippets.cpp |    0
 demos/dox/align/compute_alignment_stats.cpp        |   65 -
 demos/dox/align/compute_alignment_stats.cpp.stdout |   52 -
 demos/dox/bam_io/bam_tags_dict.cpp                 |   36 -
 demos/dox/basic/enable_if.cpp                      |   96 --
 .../graph_algorithms/all_pairs_shortest_path.cpp   |   43 -
 .../graph_algorithms/bellman_ford_algorithm.cpp    |   46 -
 .../dox/graph_algorithms/breadth_first_search.cpp  |   52 -
 demos/dox/graph_algorithms/dag_shortest_path.cpp   |   43 -
 demos/dox/graph_algorithms/depth_first_search.cpp  |   50 -
 demos/dox/graph_algorithms/dijkstra.cpp            |   71 -
 .../graph_algorithms/floyd_warshall_algorithm.cpp  |   42 -
 .../graph_algorithms/ford_fulkerson_algorithm.cpp  |   40 -
 demos/dox/graph_algorithms/kruskals_algorithm.cpp  |   48 -
 demos/dox/graph_algorithms/prims_algorithm.cpp     |   46 -
 .../strongly_connected_components.cpp              |   41 -
 demos/dox/graph_algorithms/topological_sort.cpp    |   42 -
 demos/dox/graph_algorithms/transitive_closure.cpp  |   34 -
 demos/dox/index/length_countSequences.cpp          |   26 -
 demos/dox/index/open_save.cpp                      |   27 -
 demos/dox/parallel/queue_example.cpp               |   30 -
 demos/dox/random/random.cpp                        |   39 -
 demos/dox/seq_io/fai_index_example.cpp             |   48 -
 demos/dox/sequence/segment.cpp                     |  120 --
 demos/dox/stream/lexical_cast.cpp                  |   53 -
 demos/{unassigned_or_unused => }/ecoln.out         |    0
 demos/{unassigned_or_unused => }/file_format.cpp   |    0
 .../{unassigned_or_unused => }/file_readwrite.cpp  |    0
 demos/{unassigned_or_unused => }/file_speed.cpp    |    0
 demos/{unassigned_or_unused => }/filter_sam.cpp    |    0
 demos/{dox => }/find/finder_aho_corasick.cpp       |    0
 demos/{dox => }/find/finder_index.cpp              |    0
 demos/{dox => }/find/finder_index.cpp.stdout       |    0
 demos/{dox => }/find/finder_online.cpp             |    0
 demos/{dox => }/find/finder_online.cpp.stdout      |    0
 demos/find_approx.cpp                              |   45 +
 demos/find_exact.cpp                               |   35 +
 demos/{unassigned_or_unused => }/find_wild.cpp     |    0
 demos/{unassigned_or_unused => }/gff2gtf.cpp       |    0
 .../gff_stream_read.cpp}                           |    0
 .../graph_types => graph}/graph_algo_dijkstra.cpp  |    0
 .../graph_algo_dijkstra.cpp.stdout                 |    0
 demos/graph_algorithms/all_pairs_shortest_path.cpp |   44 +
 .../all_pairs_shortest_path.cpp.stdout             |    0
 demos/graph_algorithms/bellman_ford_algorithm.cpp  |   47 +
 .../bellman_ford_algorithm.cpp.stdout              |    0
 demos/graph_algorithms/breadth_first_search.cpp    |   53 +
 .../breadth_first_search.cpp.stdout                |    0
 demos/graph_algorithms/dag_shortest_path.cpp       |   44 +
 .../graph_algorithms/dag_shortest_path.cpp.stdout  |    0
 demos/graph_algorithms/depth_first_search.cpp      |   51 +
 .../graph_algorithms/depth_first_search.cpp.stdout |    0
 demos/graph_algorithms/dijkstra.cpp                |   72 +
 .../{dox => }/graph_algorithms/dijkstra.cpp.stdout |    0
 .../graph_algorithms/floyd_warshall_algorithm.cpp  |   43 +
 .../floyd_warshall_algorithm.cpp.stdout            |    0
 .../graph_algorithms/ford_fulkerson_algorithm.cpp  |   41 +
 .../ford_fulkerson_algorithm.cpp.stdout            |    0
 .../heaviest_increasing_subsequence.cpp            |    0
 demos/graph_algorithms/kruskals_algorithm.cpp      |   49 +
 .../graph_algorithms/kruskals_algorithm.cpp.stdout |    0
 .../longest_common_subsequence.cpp                 |    0
 .../longest_increasing_subsequence.cpp             |    0
 demos/graph_algorithms/prims_algorithm.cpp         |   47 +
 .../graph_algorithms/prims_algorithm.cpp.stdout    |    0
 .../strongly_connected_components.cpp              |   42 +
 .../strongly_connected_components.cpp.stdout       |    0
 demos/graph_algorithms/topological_sort.cpp        |   43 +
 .../graph_algorithms/topological_sort.cpp.stdout   |    0
 demos/graph_algorithms/transitive_closure.cpp      |   35 +
 .../graph_algorithms/transitive_closure.cpp.stdout |    0
 demos/{dox => }/graph_align/graph_align.cpp        |    0
 demos/graph_hmm.cpp                                |   98 ++
 demos/graph_hmm_silent.cpp                         |  118 ++
 demos/howto/align_gaps_clipping.cpp                |   72 -
 demos/howto/scores/init_score.cpp                  |   83 +-
 demos/howto/scores/init_score.cpp.stdout           |   22 -
 demos/howto/scores/load_score.cpp                  |   11 +-
 demos/howto/scores/load_score.cpp.stdout           |    6 -
 ...x_textAt_indexText_saAt_indexRequire.cpp.stdout |    0
 demos/{dox => }/index/find_repeats.cpp             |    0
 .../index_begin_atEnd_representative.cpp}          |    0
 .../index_begin_atEnd_representative.cpp.stdout}   |    0
 .../index_begin_atEnd_representative_bottomUp.cpp} |    0
 ...egin_range_goDown_representative_repLength.cpp} |    0
 .../counting.cpp => index/index_counting.cpp}      |    0
 .../index_counting.cpp.stdout}                     |    0
 .../index/finder.cpp => index/index_finder.cpp}    |    0
 .../index_finder.cpp.stdout}                       |    0
 ...getOccurrences_getFrequency_range_getFibre.cpp} |    0
 ...rrences_getFrequency_range_getFibre.cpp.stdout} |    0
 .../iterator.cpp => index/index_iterator.cpp}      |    0
 .../index_iterator.cpp.stdout}                     |    0
 .../index_iterator_short.cpp}                      |    0
 .../index_iterator_short.cpp.stdout}               |    0
 demos/index/index_length_countSequences.cpp        |   27 +
 .../index_length_countSequences.cpp.stdout}        |    0
 .../{dox/index/mummy.cpp => index/index_mummy.cpp} |    0
 .../index_mummy.cpp.stdout}                        |    0
 demos/{dox/index/mums.cpp => index/index_mums.cpp} |    0
 .../index_node_predicate.cpp}                      |    0
 demos/index/index_open_save.cpp                    |   28 +
 .../index_open_save.cpp.stdout}                    |    0
 demos/index/index_qgram.cpp                        |   16 +
 .../index_sufarray.cpp                             |    0
 .../index_sufarray.cpp.stdout}                     |    0
 .../index_supermaxrepeats.cpp}                     |    0
 .../index_textAt_indexText_saAt_indexRequire.cpp}  |    0
 ..._textAt_indexText_saAt_indexRequire.cpp.stdout} |    0
 demos/{dox => }/index/ref.fa                       |    0
 .../index/UNUSED_shape.cpp => index/shape.cpp}     |    0
 .../UNUSED_shape_hash.cpp => index/shape_hash.cpp} |    0
 demos/{dox => }/index/shape_hash_init.cpp          |    0
 .../shape_hash_next.cpp}                           |    0
 demos/index_counting.cpp                           |   36 +
 demos/{unassigned_or_unused => }/index_find.cpp    |    0
 .../index_find_stringset.cpp                       |    0
 demos/{unassigned_or_unused => }/index_lcp.cpp     |    0
 .../index/maxrepeats.cpp => index_maxrepeats.cpp}  |    0
 demos/{unassigned_or_unused => }/index_mums.cpp    |    0
 .../index_node_predicate.cpp                       |    0
 .../index_qgram_counts.cpp                         |    0
 .../{dox/index/sufarray.cpp => index_sufarray.cpp} |    0
 .../index_supermaxrepeats.cpp                      |    0
 demos/input_output/example.fa                      |    4 +
 demos/input_output/seqfile_reader.cpp              |   27 +
 demos/input_output/seqfile_reader.cpp.stdout       |    2 +
 .../simple_rna_seq => }/interval_tree.cpp          |    0
 demos/{unassigned_or_unused => }/iterator.cpp      |    0
 demos/{unassigned_or_unused => }/knime_node.cpp    |    0
 demos/{unassigned_or_unused => }/lagan1.fasta      |    0
 demos/{unassigned_or_unused => }/lagan2.fasta      |    0
 demos/{dox => }/misc/enumerate_strings.cpp         |    0
 demos/{dox => }/misc/enumerate_strings.cpp.stdout  |    0
 demos/{dox => }/misc/get_terminal_size.cpp         |    0
 demos/{dox => }/misc/interval_tree_example.cpp     |    0
 demos/{dox => }/misc/name_store_cache.cpp          |    0
 demos/{dox => }/misc/name_store_cache.cpp.stdout   |    0
 demos/{dox => }/modifier/modified_string.cpp       |    0
 .../{dox => }/modifier/modified_string.cpp.stdout  |    0
 .../modifier/modified_string_mod_view.cpp          |    0
 .../modifier/modified_string_mod_view.cpp.stdout   |    0
 .../{dox => }/modifier/modified_string_nested.cpp  |    0
 .../modifier/modified_string_nested.cpp.stdout     |    0
 .../modifier_modreverse.cpp                        |    0
 .../modifier_modview.cpp                           |    0
 .../{unassigned_or_unused => }/modifier_nested.cpp |    0
 demos/parallel/queue_example.cpp                   |   30 +
 demos/{dox => }/parallel/queue_example.cpp.stdout  |    0
 demos/{dox => }/parallel/splitter_example.cpp      |    0
 .../{dox => }/parallel/splitter_example.cpp.stdout |    0
 .../parse_lm_stellar.cpp                           |    0
 demos/{dox => }/pipe/pool_sorter.cpp               |    0
 demos/random/random.cpp                            |   42 +
 .../{unassigned_or_unused => }/rooted_iterator.cpp |    0
 demos/sam2svg.cpp                                  |  222 +++
 demos/{unassigned_or_unused => }/sample_seqs.cpp   |    0
 demos/{dox => }/score/score.cpp                    |    0
 demos/{dox => }/score/score.cpp.stdout             |    0
 demos/{unassigned_or_unused => }/seeds.cpp         |    0
 demos/{dox => }/seeds/seeds_add_seed.cpp           |    0
 demos/{dox => }/seeds/seeds_chaining.cpp           |    0
 demos/{dox => }/seeds/seeds_chaining.cpp.stdout    |    0
 demos/{dox => }/seeds/seeds_extension.cpp          |    0
 demos/{dox => }/seeds/seeds_extension.cpp.stdout   |    0
 .../segmentalignment.cpp                           |    0
 demos/{dox => }/seq_io/example.fa                  |    0
 demos/{dox => }/seq_io/example.fa.fai              |    0
 demos/seq_io/fai_index_example.cpp                 |   49 +
 .../{dox => }/seq_io/fai_index_example.cpp.stdout  |    0
 demos/seq_io/sequence_stream_read.cpp              |   68 +
 demos/seq_io/sequence_stream_read.cpp.stdout       |    1 +
 demos/seq_io/sequence_stream_write.cpp             |   17 +
 .../UNUSED_infix.cpp => sequence/infix.cpp}        |    0
 .../UNUSED_prefix.cpp => sequence/prefix.cpp}      |    0
 demos/sequence/segment.cpp                         |   98 ++
 demos/{dox => }/sequence/string.cpp                |    0
 demos/{dox => }/sequence/string2.cpp               |    0
 demos/{dox => }/sequence/string2.cpp.stdout        |    0
 demos/{dox => }/sequence/stringset.cpp             |    0
 demos/{dox => }/sequence/stringset.cpp.stdout      |    0
 .../UNUSED_suffix.cpp => sequence/suffix.cpp}      |    0
 demos/{unassigned_or_unused => }/sequence_1.fa     |    0
 demos/{unassigned_or_unused => }/sequence_2.fa     |    0
 .../{unassigned_or_unused => }/sequence_length.cpp |    0
 .../soft_to_hard_masking.cpp                       |    0
 demos/{dox => }/statistics/background.fa           |    0
 demos/{dox => }/statistics/build_markov_model.cpp  |    0
 demos/{dox => }/statistics/load_markov_model.cpp   |    0
 demos/{dox => }/statistics/zscore_example_mm.3     |    0
 demos/{dox => }/statistics/zscore_human_mm.3       |    0
 demos/{dox => }/store/store_example.cpp            |    0
 demos/stream/lexical_cast.cpp                      |   55 +
 demos/{dox => }/stream/lexical_cast.cpp.stdout     |    0
 .../tutorial/a_first_example/basic_code.cpp.stdout |    1 -
 .../a_first_example/basic_code_detailed.cpp.stdout |    1 -
 .../a_first_example/code_encapsulation.cpp.stdout  |    1 -
 .../a_first_example/final_result.cpp.stdout        |   10 -
 .../tutorial/a_first_example/solution_1.cpp.stdout |    1 -
 .../tutorial/a_first_example/solution_2.cpp.stdout |    1 -
 .../tutorial/a_first_example/solution_3.cpp.stdout |    1 -
 .../tutorial/a_first_example/solution_4.cpp.stdout |    1 -
 .../tutorial/a_first_example/solution_5.cpp.stdout |    3 -
 .../tutorial/a_first_example/solution_6.cpp.stdout |   10 -
 .../alignment_representation/align.cpp.stdout      |   42 -
 .../align_assignment1.cpp.stdout                   |    1 -
 .../alignment_representation/graph.cpp.stdout      |   11 -
 .../graph_assignment1.cpp.stdout                   |   10 -
 demos/tutorial/alignments/CMakeLists.txt           |    5 +
 .../align.cpp => alignments/alignment2_align.cpp}  |    0
 .../alignment_align_assignment1.cpp}               |    0
 .../alignment_banded.cpp                           |    0
 demos/tutorial/alignments/alignment_example.png    |  Bin 0 -> 8633 bytes
 demos/tutorial/alignments/alignment_gaps.cpp       |   58 +
 .../alignment_global_assignment1.cpp               |    0
 .../alignment_global_assignment2.cpp               |    0
 .../alignment_global_assignment3.cpp               |    0
 .../alignment_global_assignment4_part1.cpp         |   40 +
 .../alignment_global_assignment4_part2.cpp         |   50 +
 .../alignment_global_overlap.cpp                   |    0
 .../alignment_global_specialised.cpp               |    0
 .../alignment_global_standard.cpp                  |    0
 .../alignments/alignment_local_standard.cpp        |   30 +
 .../alignments/alignment_local_waterman_eggert.cpp |   32 +
 .../msa.cpp => alignments/alignment_msa.cpp}       |    0
 .../alignment_msa.cpp.stdout}                      |    0
 .../alignment_msa_assignment1.cpp}                 |    0
 .../alignment_msa_assignment1.cpp.stdout}          |    0
 .../alignment_msa_consensus.cpp}                   |    0
 .../alignment_msa_consensus.cpp.stdout}            |    0
 .../alignments/alignment_pairwise_global.cpp       |   55 +
 .../alignments/alignment_pairwise_global2.cpp      |   45 +
 .../alignment_pairwise_global_assignment1.cpp      |   51 +
 .../alignment_pairwise_global_assignment2.cpp      |   30 +
 .../alignment_pairwise_local.cpp}                  |    0
 .../alignment_pairwise_local_assignment1.cpp}      |    0
 .../alignment_representation_ag.cpp}               |    0
 .../alignment_representation_ag_assignment1.cpp}   |    0
 .../pairwise_sequence_alignment_assignment5.cpp    |  136 ++
 ...irwise_sequence_alignment_assignment5_step1.cpp |   32 +
 ...irwise_sequence_alignment_assignment5_step2.cpp |   53 +
 ...irwise_sequence_alignment_assignment5_step3.cpp |   68 +
 ...irwise_sequence_alignment_assignment5_step4.cpp |   89 ++
 ...irwise_sequence_alignment_assignment5_step5.cpp |  101 ++
 ...irwise_sequence_alignment_assignment5_step6.cpp |  124 ++
 .../alphabet_assignment_1_solution.cpp.stdout      |  Bin 183 -> 0 bytes
 .../annotation_store/assignment_1_hint.cpp         |   22 +
 .../annotation_store/assignment_1_solution.cpp     |   26 +
 .../annotation_store/assignment_2_solution.cpp     |   40 +
 .../annotation_store/assignment_3_solution.cpp     |   28 +
 .../annotation_store/assignment_4_solution.cpp     |   50 +
 .../assignment_annotations.gtf                     |    0
 .../{sam_and_bam_io => bam_io}/example.sam         |    0
 demos/tutorial/bam_io/example1.cpp                 |   27 +
 demos/tutorial/bam_io/example2.cpp                 |   21 +
 demos/tutorial/bam_io/example3.cpp                 |   32 +
 demos/tutorial/bam_io/example7.cpp                 |  100 ++
 demos/tutorial/bam_io/solution1.cpp                |   39 +
 demos/tutorial/bam_io/solution2.cpp                |   41 +
 demos/tutorial/bam_io/solution3.cpp                |   44 +
 demos/tutorial/bam_io/solution4.cpp                |   67 +
 demos/tutorial/bam_io/solution5.cpp                |   47 +
 demos/tutorial/bam_io/solution6.cpp                |   40 +
 demos/tutorial/bam_io/solution7.cpp                |   43 +
 demos/tutorial/base_io/example1.cpp                |   38 +
 demos/tutorial/base_io/solution1.cpp               |   57 +
 demos/tutorial/base_io/solution2.cpp               |   65 +
 demos/tutorial/base_io/solution3.cpp               |   73 +
 demos/tutorial/basics/CMakeLists.txt               |    5 +
 demos/tutorial/basics/allocator.cpp.stdout         |    6 -
 demos/tutorial/basics/show_alphabets.cpp.stdout    |    3 -
 demos/tutorial/basics/strings.cpp.stdout           |   28 -
 demos/tutorial/{metafunctions => basics}/swap.cpp  |    0
 demos/tutorial/bed_io/example.bed                  |    5 -
 demos/tutorial/bed_io/example1.cpp                 |    3 +-
 demos/tutorial/bed_io/example1.cpp.stdout          |    0
 demos/tutorial/bed_io/solution1.cpp                |    2 +-
 demos/tutorial/bed_io/solution1.cpp.stdout         |    0
 demos/tutorial/bed_io/solution2.cpp                |    2 +-
 demos/tutorial/bed_io/solution2.cpp.stdout         |    0
 demos/tutorial/bed_io/solution3.cpp.stdout         |    2 -
 demos/tutorial/blast_io/read_assignment.cpp.stdout |    0
 .../tutorial/blast_io/write_assignment.cpp.stdout  |    0
 .../with_positions.cpp                             |    0
 .../with_positions.cpp.stdout                      |    0
 .../without_positions.cpp                          |    0
 .../without_positions.cpp.stdout                   |    0
 .../custom_io}/NC_001405.fasta                     |    0
 .../custom_io}/NC_001460.fasta                     |    0
 .../custom_io}/blast_example.txt                   |    0
 .../custom_io}/example1.cpp                        |    0
 .../custom_io}/gff2_example.txt                    |    0
 .../custom_io}/newick_example.txt                  |    0
 .../custom_io}/parse_blastn.cpp                    |    0
 .../custom_io}/parse_gff2.cpp                      |    0
 .../custom_io}/reader_demo.cpp                     |    0
 .../custom_io}/solution1.cpp                       |    0
 .../custom_io}/solution2.cpp                       |    0
 .../custom_io}/solution3.cpp                       |    0
 .../custom_io}/solution4.cpp                       |    0
 .../example_join.cpp                               |    0
 .../example_journal_string_basic.cpp               |   47 +
 .../data_journaling/example_online_search.cpp      |  307 ++++
 .../example_online_search_assignment1_hint.cpp     |   58 +
 .../example_online_search_assignment2_hint.cpp     |   27 +
 .../example_online_search_assignment3_hint.cpp     |   30 +
 .../example_online_search_assignment4_hint.cpp     |   28 +
 .../solution_online_search_assignment1.cpp         |   62 +
 .../solution_online_search_assignment2.cpp         |  147 ++
 .../solution_online_search_assignment3.cpp         |  222 +++
 .../solution_online_search_assignment4.cpp         |  294 ++++
 .../solution_online_search_finder.cpp              |  251 +++
 .../file_io}/example1.cpp                          |    0
 .../file_io}/mmap_string_example.cpp               |    0
 .../file_io}/solution1.cpp                         |    0
 .../file_io}/solution2.cpp                         |    0
 .../file_io}/solution3.cpp                         |    0
 .../file_io}/stream_compression_formats.cpp        |    0
 demos/tutorial/file_io_overview/example.bam        |  Bin 365 -> 0 bytes
 demos/tutorial/file_io_overview/example.sam        |    9 -
 demos/tutorial/file_io_overview/example1.cpp       |   39 -
 .../tutorial/file_io_overview/example1.cpp.stdout  |    0
 demos/tutorial/file_io_overview/solution1.cpp      |   49 -
 .../tutorial/file_io_overview/solution1.cpp.stdout |    0
 demos/tutorial/file_io_overview/solution2.cpp      |   56 -
 .../tutorial/file_io_overview/solution2.cpp.stdout |    0
 demos/tutorial/file_io_overview/solution3.cpp      |   56 -
 .../tutorial/file_io_overview/solution3.cpp.stdout |    9 -
 demos/tutorial/find/CMakeLists.txt                 |    5 +
 .../{pattern_matching => find}/find_approx.cpp     |    0
 .../assignment1.cpp => find/find_assignment1.cpp}  |    0
 .../find_assignment1_solution.cpp}                 |    0
 .../assignment2.cpp => find/find_assignment2.cpp}  |    0
 .../find_assignment2_solution.cpp}                 |    0
 .../assignment3.cpp => find/find_assignment3.cpp}  |    0
 .../find_assignment3_solution.cpp}                 |    0
 .../{pattern_matching => find}/find_exact.cpp      |    0
 .../{pattern_matching => find}/find_index.cpp      |    0
 .../find_index_multiple.cpp                        |    0
 .../basic_code.cpp                                 |    0
 .../basic_code_detailed.cpp                        |    0
 .../code_encapsulation.cpp                         |    0
 .../final_result.cpp                               |    0
 .../solution_1.cpp                                 |    0
 .../solution_2.cpp                                 |    0
 .../solution_3.cpp                                 |    0
 .../solution_4.cpp                                 |    0
 .../solution_5.cpp                                 |    0
 .../solution_6.cpp                                 |    0
 .../fragment_store/access_aligned_reads.cpp        |   63 -
 .../fragment_store/access_aligned_reads.cpp.stdout |   20 -
 .../fragment_store/access_aligned_reads2.cpp       |   66 -
 .../access_aligned_reads2.cpp.stdout               |   20 -
 .../fragment_store/display_aligned_reads.cpp       |   34 -
 .../display_aligned_reads.cpp.stdout               |   37 -
 .../template_subclassing.cpp.stdout                |    5 -
 .../genome_annotations/assignment_1_hint.cpp       |   23 -
 .../assignment_1_hint.cpp.stdout                   |    1 -
 .../genome_annotations/assignment_1_solution.cpp   |   29 -
 .../assignment_1_solution.cpp.stdout               |    2 -
 .../genome_annotations/assignment_2_solution.cpp   |   42 -
 .../assignment_2_solution.cpp.stdout               |    4 -
 .../genome_annotations/assignment_3_solution.cpp   |   29 -
 .../assignment_3_solution.cpp.stdout               |    6 -
 .../genome_annotations/assignment_4_solution.cpp   |   51 -
 .../assignment_4_solution.cpp.stdout               |    3 -
 demos/tutorial/genome_annotations/base.cpp         |   69 -
 demos/tutorial/genome_annotations/base.cpp.stdout  |    7 -
 demos/tutorial/genome_annotations/example.gtf      |    4 -
 demos/tutorial/getting_started/CMakeLists.txt      |    5 +
 .../tutorial/getting_started/cmd_dir_build_src.png |  Bin 0 -> 23654 bytes
 .../eclipse_convert_to_cpp_project.png             |  Bin 0 -> 43575 bytes
 .../getting_started/eclipse_hello_world.png        |  Bin 0 -> 4847 bytes
 .../eclipse_import_build_project.png               |  Bin 0 -> 87749 bytes
 .../eclipse_new_repository_location.png            |  Bin 0 -> 58449 bytes
 .../eclipse_preference_build_on_launch.png         |  Bin 0 -> 54319 bytes
 .../getting_started/eclipse_required_plugins.png   |  Bin 0 -> 113708 bytes
 .../getting_started/eclipse_run_configurations.png |  Bin 0 -> 56172 bytes
 .../getting_started/mingw_installation.png         |  Bin 0 -> 45348 bytes
 .../getting_started/repository_overview.pptx       |  Bin 0 -> 120459 bytes
 .../getting_started/repository_overview/Folie1.jpg |  Bin 0 -> 100850 bytes
 .../getting_started/win_command_arguments.jpg      |  Bin 0 -> 127597 bytes
 demos/tutorial/getting_started/win_new_file.jpg    |  Bin 0 -> 79513 bytes
 demos/tutorial/getting_started/win_save_file.jpg   |  Bin 0 -> 74650 bytes
 .../getting_started/win_solution_explorer.png      |  Bin 0 -> 39118 bytes
 .../getting_started/win_start_up_project.png       |  Bin 0 -> 42641 bytes
 demos/tutorial/getting_started/win_tortoise.png    |  Bin 0 -> 9686 bytes
 demos/tutorial/getting_started/xcode/base_sdk.png  |  Bin 0 -> 292747 bytes
 .../getting_started/xcode/base_sdk_selection.png   |  Bin 0 -> 19604 bytes
 .../xcode/download-command-line-tools.png          |  Bin 0 -> 120139 bytes
 .../getting_started/xcode/first_app_new.png        |  Bin 0 -> 308287 bytes
 .../getting_started/xcode/first_app_old.png        |  Bin 0 -> 381585 bytes
 .../getting_started/xcode/razers2_built.png        |  Bin 0 -> 220579 bytes
 .../getting_started/xcode/razers2_selection.png    |  Bin 0 -> 24186 bytes
 .../xcode/test_stream_selection.png                |  Bin 0 -> 18397 bytes
 .../getting_started/xcode/xcode_startup.png        |  Bin 0 -> 127272 bytes
 demos/tutorial/getting_started/xcode_first_app.jpg |  Bin 0 -> 145898 bytes
 .../getting_started/xcode_start_up_view.png        |  Bin 0 -> 81291 bytes
 demos/tutorial/gff_and_gtf_io/example.gff          |   23 -
 demos/tutorial/gff_and_gtf_io/example1.cpp         |   26 -
 demos/tutorial/gff_and_gtf_io/example1.cpp.stdout  |   23 -
 demos/tutorial/gff_and_gtf_io/example2.cpp         |   26 -
 demos/tutorial/gff_and_gtf_io/example2.cpp.stdout  |   23 -
 demos/tutorial/gff_and_gtf_io/solution1.cpp        |   39 -
 demos/tutorial/gff_and_gtf_io/solution1.cpp.stdout |   23 -
 demos/tutorial/gff_and_gtf_io/solution2.cpp        |   51 -
 demos/tutorial/gff_and_gtf_io/solution2.cpp.stdout |    2 -
 demos/tutorial/gff_and_gtf_io/solution3.cpp.stdout |    2 -
 demos/tutorial/gff_io/example1.cpp                 |   22 +
 demos/tutorial/gff_io/example2.cpp                 |   22 +
 demos/tutorial/gff_io/solution1.cpp                |   36 +
 demos/tutorial/gff_io/solution2.cpp                |   48 +
 .../{gff_and_gtf_io => gff_io}/solution3.cpp       |    0
 demos/tutorial/graph/CMakeLists.txt                |    5 +
 demos/tutorial/graph/graph_algo_scc.cpp            |    1 +
 demos/tutorial/graph/graph_algo_scc.cpp.stdout     |   35 -
 demos/tutorial/graph/graph_dijkstra.cpp.stdout     |   10 -
 demos/tutorial/graph/graph_hmm.cpp                 |    1 +
 demos/tutorial/graph/graph_hmm.cpp.stdout          |   26 -
 demos/tutorial/graph/solution_1.cpp.stdout         |   10 -
 demos/tutorial/index/CMakeLists.txt                |    5 +
 .../index_assignment1.cpp                          |    0
 .../index_assignment2.cpp                          |    0
 .../index_assignment3.cpp}                         |    0
 .../index_assignment4.cpp                          |    0
 .../{q_gram_index => index}/index_assignment5.cpp  |    0
 .../{q_gram_index => index}/index_assignment6.cpp  |    0
 .../{index_iterators => index}/index_preorder.cpp  |    0
 .../index_property_maps.cpp                        |    0
 .../{q_gram_index => index}/index_qgram.cpp        |    0
 .../{q_gram_index => index}/index_qgram_hash.cpp   |    0
 .../{index_iterators => index}/index_search.cpp    |    0
 .../{index_iterators => index}/index_search2.cpp   |    0
 .../indices_assignment_1.cpp}                      |    0
 .../indices_assignment_2.cpp}                      |    0
 .../iterator_solution1.cpp                         |    0
 .../iterator_solution2.cpp                         |    0
 .../UNUSED_index_assignment3.cpp.stdout            |   16 -
 .../index_iterators/index_assignment1.cpp.stdout   |  111 --
 .../index_iterators/index_assignment2.cpp.stdout   |    3 -
 .../index_iterators/index_assignment4.cpp.stdout   |   14 -
 .../index_iterators/index_preorder.cpp.stdout      |   12 -
 .../index_iterators/index_property_maps.cpp.stdout |   12 -
 .../index_iterators/index_search.cpp.stdout        |    5 -
 .../index_iterators/index_search2.cpp.stdout       |    2 -
 .../index_iterators/iterator_solution1.cpp.stdout  |    5 -
 .../index_iterators/iterator_solution2.cpp.stdout  |   16 -
 demos/tutorial/indices/assignment_1.cpp.stdout     |    0
 demos/tutorial/indices/assignment_2.cpp.stdout     |    2 -
 .../iterators/assignment_1_solution.cpp.stdout     |    1 -
 .../iterators/assignment_2_solution.cpp.stdout     |    1 -
 .../iterators/assignment_3_workshop_solution.cpp   |   82 -
 .../assignment_3_workshop_solution.cpp.stdout      |   34 -
 .../iterators/assignment_4_workshop_solution.cpp   |   91 --
 .../assignment_4_workshop_solution.cpp.stdout      |   48 -
 ...ion.cpp => iterators_assignment_1_solution.cpp} |    0
 ...ion.cpp => iterators_assignment_2_solution.cpp} |    0
 .../iterators_assignment_3_workshop_solution.cpp   |   82 +
 .../iterators_assignment_4_workshop_solution.cpp   |   91 ++
 .../iterators/sequence_iterator_demo.cpp.stdout    |    5 -
 .../tutorial/journaled_set/example_join.cpp.stdout |    4 -
 .../journaled_set/example_journal_string_basic.cpp |   47 -
 .../example_journal_string_basic.cpp.stdout        |   14 -
 .../journaled_set/example_online_search.cpp        |  309 ----
 .../journaled_set/example_online_search.cpp.stdout |    9 -
 .../example_online_search_assignment1_hint.cpp     |   62 -
 ...ample_online_search_assignment1_hint.cpp.stdout |    1 -
 demos/tutorial/journaled_set/sequences.fasta       |  111 --
 .../solution_online_search_assignment1.cpp         |   62 -
 .../solution_online_search_assignment1.cpp.stdout  |    1 -
 .../solution_online_search_assignment2.cpp         |  148 --
 .../solution_online_search_assignment2.cpp.stdout  |    3 -
 .../solution_online_search_assignment3.cpp         |  223 ---
 .../solution_online_search_assignment3.cpp.stdout  |    9 -
 .../solution_online_search_assignment4.cpp         |  294 ----
 .../solution_online_search_assignment4.cpp.stdout  |    9 -
 .../solution_online_search_finder.cpp              |  252 ---
 .../solution_online_search_finder.cpp.stdout       |    9 -
 demos/tutorial/metafunctions/swap.cpp.stdout       |    2 -
 demos/tutorial/mini_bowtie/mini_bowtie.cpp         |  138 ++
 demos/tutorial/mini_bowtie/nc_001454.fasta         |  491 ++++++
 demos/tutorial/mini_bowtie/reads_hamming.fasta     |   20 +
 demos/tutorial/mini_bowtie/solution1.cpp           |   65 +
 demos/tutorial/mini_bowtie/solution2.cpp           |   82 +
 demos/tutorial/mini_bowtie/solution3.cpp           |   89 ++
 demos/tutorial/mini_bowtie/solution4.cpp           |  103 ++
 demos/tutorial/mini_bowtie/solution5.cpp           |  138 ++
 .../modifiers/UNUSED_modcomplementdna.cpp.stdout   |    2 -
 demos/tutorial/modifiers/UNUSED_modview.cpp.stdout |    4 -
 demos/tutorial/modifiers/UNUSED_nested.cpp.stdout  |    5 -
 demos/tutorial/modifiers/assignment1.cpp.stdout    |    3 -
 .../modifiers/assignment1_solution.cpp.stdout      |    5 -
 ...lementdna.cpp => modifier_modcomplementdna.cpp} |    0
 .../{modreverse.cpp => modifier_modreverse.cpp}    |    0
 .../{UNUSED_modview.cpp => modifier_modview.cpp}   |    0
 .../{UNUSED_nested.cpp => modifier_nested.cpp}     |    0
 demos/tutorial/modifiers/modreverse.cpp.stdout     |    4 -
 .../alignment_banded.cpp.stdout                    |    8 -
 .../alignment_global_assignment1.cpp.stdout        |    8 -
 .../alignment_global_assignment2.cpp.stdout        |    9 -
 .../alignment_global_assignment3.cpp.stdout        |   15 -
 .../alignment_global_overlap.cpp.stdout            |    9 -
 .../alignment_global_specialised.cpp.stdout        |    8 -
 .../alignment_global_standard.cpp.stdout           |    8 -
 .../alignment_local.cpp.stdout                     |   27 -
 .../alignment_local_assignment1.cpp.stdout         |   21 -
 .../pairwise_sequence_alignment/assignment5.cpp    |  135 --
 .../assignment5.cpp.stdout                         |    8 -
 .../assignment5_step1.cpp                          |   28 -
 .../assignment5_step1.cpp.stdout                   |    0
 .../assignment5_step2.cpp                          |   51 -
 .../assignment5_step2.cpp.stdout                   |    8 -
 .../assignment5_step3.cpp                          |   67 -
 .../assignment5_step3.cpp.stdout                   |    8 -
 .../assignment5_step4.cpp                          |   88 --
 .../assignment5_step4.cpp.stdout                   |    8 -
 .../assignment5_step5.cpp                          |  100 --
 .../assignment5_step5.cpp.stdout                   |    8 -
 .../assignment5_step6.cpp                          |  123 --
 .../assignment5_step6.cpp.stdout                   |    8 -
 .../assignment2_solution.cpp                       |   43 -
 .../assignment3_solution.cpp                       |   44 -
 .../assignment4_solution.cpp                       |  114 --
 .../assignment5_solution.cpp                       |  124 --
 .../assignment6_solution.cpp                       |  106 --
 .../parsing_command_line_arguments/example1.cpp    |   39 -
 .../example1_detailed.cpp                          |   52 -
 .../example_with_modifyString.cpp                  |  103 --
 .../example_with_own_function.cpp                  |   79 -
 .../example_with_struct.cpp                        |   55 -
 .../final_solution.cpp                             |  117 --
 .../pattern_matching/assignment1.cpp.stdout        |    0
 .../assignment1_solution.cpp.stdout                |    5 -
 .../pattern_matching/assignment2.cpp.stdout        |   12 -
 .../assignment2_solution.cpp.stdout                |   12 -
 .../pattern_matching/assignment3.cpp.stdout        |    2 -
 .../assignment3_solution.cpp.stdout                |    2 -
 .../pattern_matching/find_approx.cpp.stdout        |    8 -
 .../pattern_matching/find_exact.cpp.stdout         |    3 -
 .../pattern_matching/find_index.cpp.stdout         |    4 -
 .../find_index_multiple.cpp.stdout                 |    4 -
 .../q_gram_index/index_assignment5.cpp.stdout      |    2 -
 .../q_gram_index/index_assignment6.cpp.stdout      |   20 -
 demos/tutorial/q_gram_index/index_qgram.cpp.stdout |    2 -
 .../q_gram_index/index_qgram_hash.cpp.stdout       |    1 -
 demos/tutorial/random/CMakeLists.txt               |    5 +
 demos/tutorial/random/random_examples.cpp          |   55 +
 demos/tutorial/randomness/examples.cpp             |   55 -
 demos/tutorial/randomness/examples.cpp.stdout      |    8 -
 demos/tutorial/read_mapping/CMakeLists.txt         |    5 +
 .../read_mapping}/minimapper.cpp                   |    0
 demos/tutorial/read_mapping/nc_001454.fasta        |  491 ++++++
 demos/tutorial/read_mapping/reads_edit.fasta       |   20 +
 demos/tutorial/read_mapping/reads_hamming.fasta    |   20 +
 demos/tutorial/{realignment => realign}/reads.sam  |    0
 demos/tutorial/{realignment => realign}/ref.fa     |    0
 demos/tutorial/realign/step1.cpp                   |   32 +
 .../{realignment => realign}/step1.cpp.stdout      |    0
 demos/tutorial/realign/step2.cpp                   |   36 +
 .../{realignment => realign}/step2.cpp.stdout      |    0
 demos/tutorial/realignment/step1.cpp               |   27 -
 demos/tutorial/realignment/step2.cpp               |   31 -
 demos/tutorial/rnaseq/CMakeLists.txt               |   13 +
 demos/tutorial/rnaseq/genequant_assignment1.cpp    |   73 +
 demos/tutorial/rnaseq/genequant_assignment2.cpp    |  121 ++
 demos/tutorial/rnaseq/genequant_assignment3.cpp    |  155 ++
 demos/tutorial/rnaseq/genequant_assignment4.cpp    |  172 ++
 demos/tutorial/rnaseq/genequant_assignment5.cpp    |  198 +++
 demos/tutorial/rnaseq/genequant_solution1.cpp      |   95 ++
 demos/tutorial/rnaseq/genequant_solution2.cpp      |  131 ++
 demos/tutorial/rnaseq/genequant_solution3.cpp      |  148 ++
 demos/tutorial/rnaseq/genequant_solution4.cpp      |  180 +++
 demos/tutorial/rnaseq/genequant_solution5.cpp      |  229 +++
 demos/tutorial/sam_and_bam_io/example.bam          |  Bin 365 -> 0 bytes
 demos/tutorial/sam_and_bam_io/example.bam.bai      |  Bin 104 -> 0 bytes
 demos/tutorial/sam_and_bam_io/example1.cpp         |   29 -
 demos/tutorial/sam_and_bam_io/example1.cpp.stdout  |    9 -
 demos/tutorial/sam_and_bam_io/example2.cpp         |   23 -
 demos/tutorial/sam_and_bam_io/example2.cpp.stdout  |    2 -
 demos/tutorial/sam_and_bam_io/example7.cpp         |   82 -
 demos/tutorial/sam_and_bam_io/example7.cpp.stdout  |    3 -
 demos/tutorial/sam_and_bam_io/solution1.cpp        |   41 -
 demos/tutorial/sam_and_bam_io/solution1.cpp.stdout |    9 -
 demos/tutorial/sam_and_bam_io/solution2.cpp        |   43 -
 demos/tutorial/sam_and_bam_io/solution2.cpp.stdout |    1 -
 demos/tutorial/sam_and_bam_io/solution3.cpp        |   46 -
 demos/tutorial/sam_and_bam_io/solution3.cpp.stdout |    1 -
 demos/tutorial/seed_and_extend/example1.cpp.stdout |   16 -
 demos/tutorial/seed_and_extend/example2.cpp.stdout |    6 -
 demos/tutorial/seed_and_extend/example3.cpp.stdout |    6 -
 demos/tutorial/seed_and_extend/example4.cpp        |    2 +-
 demos/tutorial/seed_and_extend/example4.cpp.stdout |    8 -
 demos/tutorial/seed_and_extend/example5.cpp.stdout |    5 -
 demos/tutorial/seed_and_extend/example6.cpp.stdout |    0
 demos/tutorial/seed_and_extend/example7.cpp.stdout |    4 -
 demos/tutorial/seed_and_extend/example8.cpp.stdout |    8 -
 .../tutorial/seed_and_extend/solution1.cpp.stdout  |    8 -
 .../tutorial/seed_and_extend/solution2.cpp.stdout  |    6 -
 .../tutorial/seed_and_extend/solution3.cpp.stdout  |    6 -
 demos/tutorial/seed_and_extend/solution4.cpp       |    3 +-
 .../tutorial/seed_and_extend/solution4.cpp.stdout  |    8 -
 .../tutorial/seed_and_extend/solution5.cpp.stdout  |    4 -
 .../tutorial/seed_and_extend/solution6.cpp.stdout  |    0
 .../tutorial/seed_and_extend/solution7.cpp.stdout  |    8 -
 demos/tutorial/seq_io/example1.cpp                 |   15 +
 demos/tutorial/seq_io/solution1.cpp                |   21 +
 demos/tutorial/seq_io/solution2.cpp                |   36 +
 demos/tutorial/seq_io/solution3.cpp                |   37 +
 demos/tutorial/seq_io/solution4.cpp                |   38 +
 .../sequence}/CMakeLists.txt                       |    0
 .../sequence}/count_characters.cpp                 |    0
 .../sequence}/count_generic_characters.cpp         |    0
 .../sequence}/replace_as.cpp                       |    0
 .../sequence}/sequence_all_strings.cpp             |    0
 .../sequence}/sequence_iterator_demo.cpp           |    0
 demos/tutorial/sequence_io/example.fa              |    6 -
 demos/tutorial/sequence_io/example.fq              |   12 -
 demos/tutorial/sequence_io/example1.cpp            |   16 -
 demos/tutorial/sequence_io/example1.cpp.stdout     |    1 -
 demos/tutorial/sequence_io/solution1.cpp           |   16 -
 demos/tutorial/sequence_io/solution1.cpp.stdout    |    1 -
 demos/tutorial/sequence_io/solution2.cpp           |   31 -
 demos/tutorial/sequence_io/solution2.cpp.stdout    |    1 -
 demos/tutorial/sequence_io/solution3.cpp           |   33 -
 demos/tutorial/sequence_io/solution3.cpp.stdout    |    3 -
 demos/tutorial/sequence_io/solution4.cpp           |   34 -
 demos/tutorial/sequence_io/solution4.cpp.stdout    |    3 -
 demos/tutorial/sequences/assignment_1_solution.cpp |   47 -
 .../sequences/assignment_1_solution.cpp.stdout     |    3 -
 demos/tutorial/sequences/assignment_2_solution.cpp |   86 -
 .../sequences/assignment_2_solution.cpp.stdout     |   20 -
 demos/tutorial/sequences/assignment_3_solution.cpp |   22 -
 .../sequences/assignment_3_solution.cpp.stdout     |    2 -
 .../sequences/assignment_4_solution.cpp.stdout     |    4 -
 demos/tutorial/sequences/assignment_5_solution.cpp |   42 -
 .../sequences/assignment_5_solution.cpp.stdout     |    3 -
 ...olution.cpp => lexical_assignment_solution.cpp} |    0
 ...tion.cpp => segments_assignment_2_solution.cpp} |    0
 .../sequences/segments_assignment_hint.cpp         |   38 +
 .../sequences/segments_assignment_solution.cpp     |   33 +
 .../sequences/string_assignment_1_solution.cpp     |   67 +
 .../assignment_exact_generous_solution.cpp         |   22 +-
 .../assignment_exact_generous_solution.cpp.stdout  |    4 -
 .../sequences_in_depth/example_overflow.cpp        |   19 -
 .../sequences_in_depth/example_overflow.cpp.stdout |    2 -
 demos/tutorial/simple_rna_seq/example.gtf          |   12 -
 demos/tutorial/simple_rna_seq/example.sam          |   22 -
 .../simple_rna_seq/genequant_assignment1.cpp       |   34 -
 .../genequant_assignment1.cpp.stdout               |    0
 .../simple_rna_seq/genequant_assignment2.cpp       |   83 -
 .../genequant_assignment2.cpp.stdout               |    0
 .../simple_rna_seq/genequant_assignment3.cpp       |  116 --
 .../genequant_assignment3.cpp.stdout               |    0
 .../simple_rna_seq/genequant_assignment4.cpp       |  136 --
 .../genequant_assignment4.cpp.stdout               |    0
 .../simple_rna_seq/genequant_assignment5.cpp       |  163 --
 .../genequant_assignment5.cpp.stdout               |    0
 .../simple_rna_seq/genequant_solution1.cpp         |   55 -
 .../simple_rna_seq/genequant_solution1.cpp.stdout  |    2 -
 .../simple_rna_seq/genequant_solution2.cpp         |   92 --
 .../simple_rna_seq/genequant_solution2.cpp.stdout  |    2 -
 .../simple_rna_seq/genequant_solution3.cpp         |  109 --
 .../simple_rna_seq/genequant_solution3.cpp.stdout  |    2 -
 .../simple_rna_seq/genequant_solution4.cpp         |  143 --
 .../simple_rna_seq/genequant_solution4.cpp.stdout  |    2 -
 .../simple_rna_seq/genequant_solution5.cpp         |  191 ---
 .../simple_rna_seq/genequant_solution5.cpp.stdout  |    3 -
 .../simple_rna_seq/interval_tree.cpp.stdout        |    4 -
 demos/tutorial/store/CMakeLists.txt                |    5 +
 .../{fragment_store/example.fa => store/ex1.fa}    |    0
 .../{fragment_store/example.sam => store/ex1.sam}  |    0
 .../tutorial/store/store_access_aligned_reads.cpp  |   61 +
 .../tutorial/store/store_access_aligned_reads2.cpp |   64 +
 .../tutorial/store/store_diplay_aligned_reads.cpp  |   28 +
 .../string_sets/assignment_1_solution.cpp.stdout   |    5 -
 .../string_sets/assignment_2_solution.cpp.stdout   |    2 -
 .../string_sets/assignment_3_workshop_solution.cpp |   24 +-
 .../assignment_3_workshop_solution.cpp.stdout      |   48 -
 .../assignment_3b_workshop_solution.cpp            |   92 ++
 .../string_sets/assignment_4_workshop_solution.cpp |    2 +-
 .../assignment_4_workshop_solution.cpp.stdout      |   54 -
 demos/tutorial/vcf_io/example.vcf                  |   24 -
 demos/tutorial/vcf_io/example1.cpp                 |    2 +-
 demos/tutorial/vcf_io/example1.cpp.stdout          |    0
 demos/tutorial/vcf_io/solution1.cpp                |    2 +-
 demos/tutorial/vcf_io/solution1.cpp.stdout         |    0
 demos/tutorial/vcf_io/solution2.cpp                |    2 +-
 demos/tutorial/vcf_io/solution2.cpp.stdout         |    0
 demos/tutorial/vcf_io/solution3.cpp.stdout         |   20 -
 demos/unassigned_or_unused/bam_library_size.cpp    |  268 ----
 demos/unassigned_or_unused/benchmark_stream.cpp    |  422 -----
 demos/unassigned_or_unused/graph_hmm_silent.cpp    |  117 --
 demos/unassigned_or_unused/sam2svg.cpp             |  222 ---
 demos/{dox => }/vcf_io/example.vcf                 |    0
 demos/vcf_io/vcf_stream_read.cpp                   |   33 +
 demos/vcf_io/vcf_stream_read.cpp.stdout            |    5 +
 dox/pages/constraint_iterator.dox                  |   12 +-
 dox/pages/index_count_children.dox                 |    2 +-
 dox/pages/maxima_unique_matches.dox                |    2 +-
 dox/pages/maximal_repeats.dox                      |    6 +-
 dox/pages/mummy.dox                                |    2 +-
 dox/pages/suffix_array.dox                         |    2 +-
 dox/pages/supermaximal_repeats.dox                 |    6 +-
 include/seqan/align/align_base.h                   |    4 +-
 include/seqan/align/alignment_operations.h         |    4 +-
 include/seqan/align/evaluate_alignment.h           |    8 +-
 include/seqan/align/gaps_anchor.h                  |   46 +-
 include/seqan/align/gaps_base.h                    |    4 +-
 include/seqan/align/global_alignment_unbanded.h    |    8 +-
 include/seqan/align_extend/align_extend.h          |    4 +-
 include/seqan/align_profile/score_profile_seq.h    |    4 +-
 include/seqan/align_split/align_split_interface.h  |    4 +-
 include/seqan/arg_parse/arg_parse_argument.h       |    8 +-
 include/seqan/arg_parse/argument_parser.h          |    2 +-
 include/seqan/arg_parse/tool_doc.h                 |   10 +-
 include/seqan/bam_io/bam_file.h                    |   32 +-
 include/seqan/bam_io/bam_index_bai.h               |   63 +-
 include/seqan/bam_io/bam_tags_dict.h               |    4 +-
 include/seqan/bam_io/cigar.h                       |    2 +-
 include/seqan/bam_io/read_bam.h                    |    1 -
 include/seqan/bam_io/write_bam.h                   |    9 +-
 include/seqan/bam_io/write_sam.h                   |    4 -
 include/seqan/basic/alphabet_residue.h             |   10 +-
 include/seqan/basic/alphabet_residue_tabs.h        |   71 +-
 include/seqan/basic/alphabet_simple_type.h         |    2 +-
 include/seqan/basic/basic_exception.h              |   13 +-
 include/seqan/basic/basic_stream.h                 |   30 +-
 include/seqan/basic/concept_checking.h             |   15 +-
 include/seqan/basic/debug_test_system.h            |   42 +-
 include/seqan/basic/fundamental_tags.h             |   28 +-
 include/seqan/basic/iterator_adapt_std.h           |   52 +-
 include/seqan/basic/iterator_adaptor.h             |   10 +-
 include/seqan/basic/iterator_counting.h            |    7 +-
 include/seqan/basic/iterator_interface.h           |   72 +-
 include/seqan/basic/iterator_range.h               |    0
 include/seqan/basic/metaprogramming_control.h      |   10 +-
 include/seqan/basic/metaprogramming_enable_if.h    |    8 +-
 include/seqan/basic/metaprogramming_logic.h        |   44 +-
 include/seqan/basic/metaprogramming_math.h         |    6 +-
 .../seqan/consensus/consensus_aligner_interface.h  |    4 +-
 include/seqan/consensus/consensus_builder.h        |    5 +-
 include/seqan/find/find_ahocorasick.h              |    2 +-
 include/seqan/find/find_base.h                     |    8 +-
 include/seqan/find/find_set_horspool.h             |    2 -
 include/seqan/gff_io/gff_io_base.h                 |    7 +-
 .../graph_algorithms/all_pairs_shortest_path.h     |    4 +-
 include/seqan/graph_algorithms/bellman_ford.h      |    4 +-
 .../seqan/graph_algorithms/breadth_first_search.h  |    4 +-
 .../seqan/graph_algorithms/depth_first_search.h    |    4 +-
 include/seqan/graph_algorithms/dijkstra.h          |    4 +-
 include/seqan/graph_algorithms/floyd_warshall.h    |    4 +-
 include/seqan/graph_algorithms/ford_fulkerson.h    |    4 +-
 .../graph_algorithms/graph_algorithm_lis_his.h     |    6 +-
 include/seqan/graph_algorithms/kruskal.h           |    4 +-
 include/seqan/graph_algorithms/prim.h              |    4 +-
 .../graph_algorithms/single_source_shortest_path.h |    4 +-
 .../strongly_connected_compnents.h                 |    4 +-
 include/seqan/graph_algorithms/topological_sort.h  |    4 +-
 .../seqan/graph_algorithms/transitive_closure.h    |    4 +-
 include/seqan/graph_align/graph_impl_align.h       |    2 +-
 include/seqan/graph_types/graph_interface.h        |    4 +-
 include/seqan/index/index_base.h                   |   34 +-
 include/seqan/index/index_esa_base.h               |    4 +-
 include/seqan/index/index_esa_stree.h              |   22 +-
 include/seqan/index/index_fm.h                     |    9 +-
 include/seqan/index/index_fm_rank_dictionary_wt.h  |    3 +-
 include/seqan/index/index_qgram_openaddressing.h   |   60 -
 include/seqan/index/index_sa_qsort.h               |    2 +-
 include/seqan/index/index_shims.h                  |    4 +-
 include/seqan/index/repeat_base.h                  |    2 +-
 include/seqan/index/shape_base.h                   |    2 +-
 include/seqan/index/shape_threshold.h              |    0
 include/seqan/misc/edit_environment.h              |    4 +-
 include/seqan/misc/interval_tree.h                 |    2 +-
 include/seqan/misc/name_store_cache.h              |    4 +-
 include/seqan/misc/terminal.h                      |    2 +-
 include/seqan/modifier/cyclic_shape.h              |   14 +-
 include/seqan/modifier/modifier_cyclic_shape.h     |    6 +-
 include/seqan/modifier/modifier_iterator.h         |   87 +-
 include/seqan/modifier/modifier_reverse.h          |   23 +-
 include/seqan/modifier/modifier_string.h           |   67 +-
 include/seqan/modifier/modifier_view.h             |   89 +-
 include/seqan/parallel/parallel_macros.h           |    4 +-
 include/seqan/parallel/parallel_queue.h            |    4 +-
 include/seqan/parallel/parallel_splitting.h        |    6 +-
 include/seqan/pipe/pool_sorter.h                   |    2 +-
 include/seqan/platform.h                           |    9 -
 include/seqan/platform/platform_windows.h          |    7 -
 include/seqan/random/ext_MersenneTwister.h         |    0
 include/seqan/random/random_base.h                 |    2 +-
 include/seqan/realign/realign_base.h               |    4 +-
 .../reduced_aminoacid_murphy10_base.h              |    2 +-
 .../reduced_aminoacid_murphy10_tables.h            |    8 +-
 include/seqan/score/score_base.h                   |    4 +-
 include/seqan/score/score_matrix_data.h            |  757 +++++----
 include/seqan/score/score_simple.h                 |    9 -
 include/seqan/seeds/banded_chain_alignment_impl.h  |    1 -
 .../seqan/seeds/banded_chain_alignment_traceback.h |    7 -
 include/seqan/seeds/seeds_global_chaining.h        |    6 +-
 include/seqan/seeds/seeds_seed_base.h              |    6 +-
 include/seqan/seeds/seeds_seed_set_base.h          |    2 +-
 include/seqan/seq_io/fai_index.h                   |    4 +-
 include/seqan/seq_io/fasta_fastq.h                 |   17 +-
 include/seqan/sequence/adapt_std_list.h            |    9 -
 include/seqan/sequence/adapt_std_string.h          |   15 -
 include/seqan/sequence/segment_base.h              |    6 +-
 include/seqan/sequence/segment_infix.h             |    8 -
 include/seqan/sequence/segment_prefix.h            |    9 -
 include/seqan/sequence/segment_suffix.h            |    8 -
 include/seqan/sequence/string_array.h              |   16 -
 include/seqan/sequence/string_base.h               |   10 +-
 include/seqan/sequence/string_set_base.h           |   76 +-
 include/seqan/sequence/string_set_concat_direct.h  |   67 +-
 include/seqan/sequence/string_set_owner.h          |   15 -
 include/seqan/statistics/statistics_markov_model.h |    4 +-
 include/seqan/store/store_all.h                    |    4 +-
 include/seqan/store/store_io.h                     |   43 -
 include/seqan/store/store_io_gff.h                 |   30 +-
 include/seqan/store/store_io_sam.h                 |   27 +
 include/seqan/store/store_io_ucsc.h                |    0
 include/seqan/stream.h                             |   13 -
 include/seqan/stream/buffered_stream.h             |   19 +-
 include/seqan/stream/file_stream.h                 |    5 +-
 include/seqan/stream/formatted_file.h              |   18 +-
 include/seqan/stream/iostream_bgzf.h               |  923 -----------
 include/seqan/stream/iostream_bzip2.h              |  302 ----
 include/seqan/stream/iostream_bzip2_impl.h         |  429 -----
 include/seqan/stream/iostream_zip.h                |  383 -----
 include/seqan/stream/iostream_zip_impl.h           |  386 -----
 include/seqan/stream/iostream_zutil.h              |  229 ---
 include/seqan/stream/lexical_cast.h                |    4 +-
 include/seqan/stream/stream_base.h                 |   14 +-
 include/seqan/stream/stream_compressor.h           |    2 +-
 include/seqan/stream/tokenization.h                |    2 +-
 include/seqan/stream/virtual_stream.h              |  187 +--
 include/seqan/stream/zipstream/bgzfstream.h        |  969 ++++++++++++
 include/seqan/stream/zipstream/bgzfstream_impl.h   |  203 +++
 include/seqan/stream/zipstream/bzip2stream.h       |  305 ++++
 include/seqan/stream/zipstream/bzip2stream_impl.h  |  430 +++++
 include/seqan/stream/zipstream/zipstream.h         |  665 ++++++++
 include/seqan/stream/zipstream/zipstream_impl.h    |  675 ++++++++
 include/seqan/stream/zipstream/zutil.h             |  226 +++
 include/seqan/translation/translation.h            |    9 +-
 include/seqan/ucsc_io/ucsc_file.h                  |    2 +-
 include/seqan/vcf_io/vcf_io_context.h              |   28 -
 include/seqan/version.h                            |    2 +-
 manual/requirements.txt                            |    3 +-
 .../BuildManual/UsingTheSeqAnBuildSystem.rst       |    8 +-
 manual/source/HowTo/ClipAlignments.rst             |    2 +-
 manual/source/HowTo/GenerateSeqAnKnimeNodes.rst    |    2 +-
 manual/source/HowTo/UseSeqAnNodesInKnime.rst       |    2 +-
 .../source/HowTo/WorkWithCustomScoreMatrices.rst   |  137 +-
 manual/source/HowTo/knime_node_app.zip             |  Bin 0 -> 4697 bytes
 manual/source/HowTo/workflow_plugin_dir.zip        |  Bin 808808 -> 5912 bytes
 manual/source/Infrastructure/Documentation.rst     |   10 -
 manual/source/StyleGuide/Cpp.rst                   |   32 +-
 manual/source/StyleGuide/DoxApiDocs.rst            |   24 +-
 manual/source/Tutorial.rst                         |   25 +-
 manual/source/Tutorial/AFirstExample.rst           |  563 -------
 manual/source/Tutorial/AlignmentRepresentation.rst |   30 +-
 manual/source/Tutorial/AnnotationStore.rst         |  366 +++++
 manual/source/Tutorial/BackgroundAndMotivation.rst |  149 +-
 manual/source/Tutorial/BedIO.rst                   |    8 +-
 manual/source/Tutorial/ConsensusAlignment.rst      |   14 +-
 manual/source/Tutorial/FileIOOverview.rst          |  232 ---
 manual/source/Tutorial/FirstStepsInSeqAn.rst       |  562 +++++++
 manual/source/Tutorial/FragmentStore.rst           |   98 +-
 manual/source/Tutorial/GenomeAnnotations.rst       |  315 ----
 manual/source/Tutorial/GettingStarted.rst          |    2 +-
 manual/source/Tutorial/GffAndGtfIO.rst             |  214 ---
 manual/source/Tutorial/GffGtfIO.rst                |  243 +++
 manual/source/Tutorial/IndexIterators.rst          |   38 +-
 manual/source/Tutorial/IndexQGram.rst              |  217 +++
 manual/source/Tutorial/IndexedFastaIO.rst          |   10 +-
 manual/source/Tutorial/Indices.rst                 |   12 +-
 manual/source/Tutorial/InputOutputOverview.rst     |  227 +++
 manual/source/Tutorial/Iterators.rst               |   10 +-
 manual/source/Tutorial/JournalSet.rst              |  668 ++++++++
 manual/source/Tutorial/JournaledSet.rst            |  655 --------
 manual/source/Tutorial/Metafunctions.rst           |   20 +-
 manual/source/Tutorial/MiniBowtie.rst              |  358 +++++
 manual/source/Tutorial/Modifiers.rst               |    8 +-
 .../source/Tutorial/MultipleSequenceAlignment.rst  |   20 +-
 .../source/Tutorial/PairwiseSequenceAlignment.rst  |   97 +-
 .../Tutorial/ParsingCommandLineArguments.rst       |  891 ++++++++++-
 manual/source/Tutorial/PatternMatching.rst         |   28 +-
 manual/source/Tutorial/QgramIndex.rst              |  217 ---
 manual/source/Tutorial/Randomness.rst              |   12 +-
 manual/source/Tutorial/Realignment.rst             |    8 +-
 manual/source/Tutorial/SamAndBamIO.rst             |  342 ----
 manual/source/Tutorial/SamBamIO.rst                |  332 ++++
 manual/source/Tutorial/SequenceIO.rst              |   54 +-
 manual/source/Tutorial/Sequences.rst               |  243 ++-
 manual/source/Tutorial/SequencesInDepth.rst        |   19 +-
 manual/source/Tutorial/SimpleReadMapping.rst       |  161 ++
 manual/source/Tutorial/SimpleRnaSeq.rst            |   64 +-
 manual/source/Tutorial/StringSets.rst              |    4 +-
 ...ericProgramming.rst => TemplateSubclassing.rst} |    0
 manual/source/Tutorial/VcfIO.rst                   |   27 +-
 manual/source/Tutorial/WritingTests.rst            |    1 -
 manual/source/conf.py                              |   33 +-
 tests/align/test_evaluate_alignment.h              |    6 +-
 tests/bam_io/CMakeLists.txt                        |    4 +-
 tests/bam_io/test_bam_file.h                       |    2 +-
 tests/bam_io/test_bam_index.h                      |   45 +-
 tests/bam_io/test_bam_io.cpp                       |    5 +-
 tests/basic/test_basic_alphabet_residue.h          |   31 +-
 tests/find/test_find.cpp                           |    4 +-
 tests/gff_io/example_with_comments.gff             |    6 -
 tests/gff_io/test_gff_io.cpp                       |    9 +-
 tests/gff_io/test_gff_io.h                         |   60 -
 tests/modifier/test_modifier.cpp                   |    3 +-
 tests/modifier/test_modifier_string.h              |   85 +-
 tests/modifier/test_modifier_view.h                |    2 +-
 tests/parallel/test_parallel.cpp                   |    6 +-
 tests/reduced_aminoacid/test_reduced_aminoacid.cpp |    3 +-
 tests/reduced_aminoacid/test_reduced_aminoacid.h   |  143 +-
 tests/score/BLOSUM30                               |   55 +-
 tests/score/BLOSUM45                               |   55 +-
 tests/score/BLOSUM62                               |   55 +-
 tests/score/BLOSUM80                               |   55 +-
 tests/score/PAM120                                 |   55 +-
 tests/score/PAM200                                 |   55 +-
 tests/score/PAM250                                 |   55 +-
 tests/score/PAM40                                  |   55 +-
 tests/score/VTML200I                               |   55 +-
 tests/seeds/test_align_banded_chain_impl.cpp       |   26 -
 tests/seq_io/test_sequence_file.h                  |   15 +-
 tests/sequence/CMakeLists.txt                      |    4 -
 tests/sequence/test_sequence.h                     |    6 +-
 tests/sequence/test_string_set.h                   | 1651 +++++++++-----------
 tests/sequence/test_stringset_v2.cpp               |   47 -
 tests/store/example.gff                            |    2 +-
 util/cmake/CMakeFindJavaCommon.cmake               |   40 -
 util/cmake/FindJava.cmake                          |  228 ---
 util/cmake/FindOpenMP.cmake                        |    9 +-
 util/cmake/FindSeqAn.cmake                         |   14 +-
 util/cmake/SeqAnBuildSystem.cmake                  |   27 +-
 util/cmake/package.cmake                           |    2 +-
 util/makefile_project/src/main.cpp                 |   11 +-
 util/py_lib/seqan/auto_build.py                    |    2 +-
 util/py_lib/seqan/dox/dox_parser.py                |   24 +-
 util/py_lib/seqan/dox/dox_tokens.py                |    3 +-
 util/py_lib/seqan/dox/proc_doc.py                  |   38 -
 util/py_lib/seqan/dox/raw_doc.py                   |   35 -
 util/py_lib/seqan/dox/test/test_dox_parser.py      |   20 -
 util/py_lib/seqan/dox/test/test_proc_doc.py        |   25 -
 util/py_lib/seqan/dox/test/test_raw_doc.py         |   22 -
 util/py_lib/seqan/dox/tpl/function.html            |    9 +-
 .../js/bootstrap-3.0.0.min.js                      |    6 +
 .../bootstrap-multiselect/js/jquery-2.0.3.min.js   |    6 +
 .../tpl/lib/bootstrap-multiselect/js/prettify.js   |   28 +
 util/py_lib/seqan/dox/tpl/list.html                |    2 +-
 util/py_lib/seqan/dox/tpl/macro.html               |   10 +-
 util/py_lib/seqan/dox/tpl/sections.html            |   81 +-
 util/py_lib/seqan/dox/write_html.py                |    3 +-
 util/skel/test_template/test.h                     |    1 -
 util/travis/linux-cibuild.cmake                    |   18 +-
 1062 files changed, 22298 insertions(+), 19978 deletions(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 42204ad..3715cc8 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -4,88 +4,6 @@ SeqAn Changelog
 This file summarizes the changes to the SeqAn library and apps.
 
 
-Release 2.0.1
-~~~~~~~~~~~~~
-
-Minor release including several library bug-fixes as well as better documentation and infrastructure.
-All library modules are backward compatible with 2.0.0.
-For a complete list of changes visit `GitHub <https://github.com/seqan/seqan/pulls?q=is%3Apr+is%3Amerged++milestone%3A%22Release+2.0.1%22+>`_.
-
-Library Bug Fixes
-^^^^^^^^^^^^^^^^^
-
-- Basic:
-    - Added AminoAcid symbol "O"
-    - Disabled global exception handler by default
-
-- Sequence:
-    - Added missing overloads for const Strings
-    - Fixed and tested StringSet
-    - Reworked STL containers adaption
-    - Fixed several bugs in ModifiedStrings and ModifiedIterators
-
-- Stream:
-    - Worked around I/O with std::string
-    - Supported multi-stream gzip files produced by Illumina Casava
-    - Fixed BgzfStream tell()
-
-- SeqIO:
-    - Changed Raw file extension from .txt to .raw
-
-- BAM I/O:
-    - Fixed BIN computation
-    - Fixed a bug in jumpToOrphans()
-    - Fixed internal concurrency problems
-    - Fixed readBamHeader() to clear the BamHeader
-    - Added assertions to writeRecord()
-    - Added BamIndex::save() to save .bai files
-
-- Gff I/O:
-    - Fixed parsing of comment lines
-
-- FragmentStore:
-    - Fixed loading Gtf/Gff3 files
-
-- Index:
-    - Fixed open() and save() for WT FMIndex
-    - Added open() and save() for OpenAddressing QGramIndex
-
-- Seeds:
-    - Fixed a bug in sparse chaining
-    - Fixed a bug in banded chain alignment
-
-Documentation Updates
-^^^^^^^^^^^^^^^^^^^^^
-
-- Manual:
-    - Fixed and improved several Tutorials and HowTos
-    - Added version-aware links to the dox
-
-- Dox:
-    - Added @datarace entity
-    - Fixed broken links in "See Also" section
-    - Fixed a problem with close button in the side pane
-    - Documented class VirtualStream
-
-- Demos:
-    - Restructured demos directory
-    - Fixed several broken demos
-
-Infrastructure Updates
-^^^^^^^^^^^^^^^^^^^^^^
-
-- Platform Support:
-    - Added support for GCC 4.9 and Clang 3.7
-    - Preliminary support for Clang 3.8 with OpenMP
-    - Preliminary support for Visual Studio 2015
-    - Preliminary support for FreeBSD 10.2
-
-- Build System:
-   - Tested all demos
-   - Upgraged TravisCI builds to run on Docker
-   - Fixed Java detection
-
-
 Release 2.0.0
 ~~~~~~~~~~~~~
 
diff --git a/apps/alf/CMakeLists.txt b/apps/alf/CMakeLists.txt
index 73f8997..1471f97 100644
--- a/apps/alf/CMakeLists.txt
+++ b/apps/alf/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_alf)
 message (STATUS "Configuring apps/alf")
 
-set (SEQAN_APP_VERSION "1.1.2")
+set (SEQAN_APP_VERSION "1.1.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/bs_tools/CMakeLists.txt b/apps/bs_tools/CMakeLists.txt
index 076872d..fc63fbe 100644
--- a/apps/bs_tools/CMakeLists.txt
+++ b/apps/bs_tools/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_bs_tools)
 message (STATUS "Configuring apps/bs_tools")
 
-set (SEQAN_APP_VERSION "0.1.2")
+set (SEQAN_APP_VERSION "0.1.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/bs_tools/tests/run_tests.py b/apps/bs_tools/tests/run_tests.py
index 4c65bd8..64aa4c2 100644
--- a/apps/bs_tools/tests/run_tests.py
+++ b/apps/bs_tools/tests/run_tests.py
@@ -208,24 +208,19 @@ def main(source_base, binary_base):
     # pe
     # ============================================================
     # 0
-
-    if not sys.platform.startswith('freebsd'):
-        conf = app_tests.TestConf(
-            program=path_to_casbar,
-            redir_stdout=ph.outFile('other.stdout'),
-            args=['-nec', '-mc', str(6), '-msc', str(5), '-mpc', str(0.5), '-hes', str(0.005),
-                '-o', ph.outFile('snps_pe_0.vcf'),
-                '-b', ph.outFile('meths_pe_0.bed'),
-                ph.inFile('hg18_chr21_3000.fa'),
-                ph.inFile('reads_pe_N6000_0.CT_GA.verified.pos_so.sam')],
-            to_diff=[(ph.inFile('snps_pe_0.vcf'),
-                    ph.outFile('snps_pe_0.vcf')),
-                    (ph.inFile('meths_pe_0.bed'),
-                    ph.outFile('meths_pe_0.bed'))])
-        conf_list.append(conf)
-    else:
-        print "One test not executed on FreeBSD, because of lower math precision."
-
+    conf = app_tests.TestConf(
+        program=path_to_casbar,
+        redir_stdout=ph.outFile('other.stdout'),
+        args=['-nec', '-mc', str(6), '-msc', str(5), '-mpc', str(0.5), '-hes', str(0.005),
+              '-o', ph.outFile('snps_pe_0.vcf'),
+              '-b', ph.outFile('meths_pe_0.bed'),
+              ph.inFile('hg18_chr21_3000.fa'),
+              ph.inFile('reads_pe_N6000_0.CT_GA.verified.pos_so.sam')],
+        to_diff=[(ph.inFile('snps_pe_0.vcf'),
+                  ph.outFile('snps_pe_0.vcf')),
+                  (ph.inFile('meths_pe_0.bed'),
+                  ph.outFile('meths_pe_0.bed'))])
+    conf_list.append(conf)
 
     # ============================================================
     # Execute the tests.
diff --git a/apps/dfi/CMakeLists.txt b/apps/dfi/CMakeLists.txt
index 12ceed5..a7a32d0 100644
--- a/apps/dfi/CMakeLists.txt
+++ b/apps/dfi/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_dfi)
 message (STATUS "Configuring apps/dfi")
 
-set (SEQAN_APP_VERSION "2.1.2")
+set (SEQAN_APP_VERSION "2.1.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/fiona/CMakeLists.txt b/apps/fiona/CMakeLists.txt
index 5845008..240b9e5 100644
--- a/apps/fiona/CMakeLists.txt
+++ b/apps/fiona/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_fiona)
 message (STATUS "Configuring apps/fiona")
 
-set (SEQAN_APP_VERSION "0.2.2")
+set (SEQAN_APP_VERSION "0.2.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/fx_tools/CMakeLists.txt b/apps/fx_tools/CMakeLists.txt
index e42bde3..a565457 100644
--- a/apps/fx_tools/CMakeLists.txt
+++ b/apps/fx_tools/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_fx_tools)
 message (STATUS "Configuring apps/fx_tools")
 
-set (SEQAN_APP_VERSION "0.2.2")
+set (SEQAN_APP_VERSION "0.2.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/fx_tools/fx_bam_coverage.cpp b/apps/fx_tools/fx_bam_coverage.cpp
index 16e0164..6153f0f 100644
--- a/apps/fx_tools/fx_bam_coverage.cpp
+++ b/apps/fx_tools/fx_bam_coverage.cpp
@@ -104,7 +104,7 @@ parseArgs(FxBamCoverageOptions & options,
     setDate(parser, SEQAN_DATE);
 
     addUsageLine(parser,
-                 "[\\fIOPTIONS\\fP] \\fB-o\\fP \\fIOUT.coverage.tsv\\fP \\fB-r\\fP \\fIGENOME.fa\\fP "
+                 "[\\fIOPTIONS\\fP] \\fB-o\\fP \\fIOUT.bam.coverage.tsv\\fP \\fB-r\\fP \\fIGENOME.fa\\fP "
                  "\\fB-m\\fP \\fIMAPPING.bam\\fP");
     addDescription(parser, "Compute read coverage and C+G content for a genome.");
 
@@ -128,12 +128,12 @@ parseArgs(FxBamCoverageOptions & options,
 
     addSection(parser, "Main Options");
     addOption(parser, seqan::ArgParseOption("w", "window-size", "Set the size of the non-overlapping windows in base pairs.", seqan::ArgParseArgument::INTEGER, "NUM"));
-    setDefaultValue(parser, "window-size", options.windowSize);
+    setDefaultValue(parser, "window-size", "10000");
 
     addSection(parser, "Output Options");
     addOption(parser, seqan::ArgParseOption("o", "out-path", "Path to the resulting file.  If omitted, result is printed to stdout.", seqan::ArgParseArgument::OUTPUT_FILE, "TSV"));
     setRequired(parser, "out-path");
-    setValidValues(parser, "out-path", ".coverage.tsv");
+    setValidValues(parser, "out-path", "bam_coverage_tsv");
 
     seqan::ArgumentParser::ParseResult res = parse(parser, argc, argv);
 
@@ -142,7 +142,6 @@ parseArgs(FxBamCoverageOptions & options,
         getOptionValue(options.inGenomePath, parser, "in-reference");
         getOptionValue(options.inBamPath, parser, "in-mapping");
         getOptionValue(options.outPath, parser, "out-path");
-        getOptionValue(options.windowSize, parser, "window-size");
 
         if (isSet(parser, "verbose"))
             options.verbosity = 2;
@@ -188,19 +187,14 @@ int main(int argc, char const ** argv)
     // -----------------------------------------------------------------------
 
     std::cerr << "\n"
-              << "___PREPARATION____________________________________________________________________\n"
-              << "\n";
-
+              << "___PREPRATION_____________________________________________________________________\n"
+              << "\n"
+              << "Indexing GENOME file  " << options.inGenomePath << " ...";
     seqan::FaiIndex faiIndex;
-    if (!open(faiIndex, toCString(options.inGenomePath)))
+    if (build(faiIndex, toCString(options.inGenomePath)) != 0)
     {
-        std::cerr << "Indexing GENOME file  " << options.inGenomePath << " ...";
-        if (!build(faiIndex, toCString(options.inGenomePath)))
-        {
-            std::cerr << "Could not build FAI index of " << options.inGenomePath << "!\n";
-            return 1;
-        }
-        save(faiIndex);
+        std::cerr << "Could not build FAI index.\n";
+        return 1;
     }
     std::cerr << " OK\n";
 
@@ -216,13 +210,12 @@ int main(int argc, char const ** argv)
               << "___C+G CONTENT COMPUTATION________________________________________________________\n"
               << "\n";
 
-    seqan::Dna5String contigSeq;
     for (unsigned i = 0; i < numSeqs(faiIndex); ++i)
     {
         std::cerr << "[" << sequenceName(faiIndex, i) << "] ...";
         unsigned numBins = (sequenceLength(faiIndex, i) + options.windowSize - 1) / options.windowSize;
         resize(bins[i], numBins);
-        clear(contigSeq);
+        seqan::Dna5String contigSeq;
         readSequence(contigSeq, faiIndex, i);
 
         for (unsigned bin = 0; bin < numBins; ++bin)
@@ -246,7 +239,7 @@ int main(int argc, char const ** argv)
     // -----------------------------------------------------------------------
 
     std::cerr << "\n"
-              << "___COVERAGE COMPUTATION_________________________________________________________\n"
+              << "___COVERAGE COMPUATATION________________________________________________________\n"
               << "\n"
               << "Computing Coverage...";
 
@@ -257,9 +250,6 @@ int main(int argc, char const ** argv)
         return 1;
     }
 
-    seqan::BamHeader header;
-    readHeader(header, bamFile);
-
     seqan::BamAlignmentRecord record;
     while (!atEnd(bamFile))
     {
@@ -272,7 +262,7 @@ int main(int argc, char const ** argv)
         seqan::CharString const & contigName = contigNames(context(bamFile))[record.rID];
         if (!getIdByName(contigId, faiIndex, contigName))
         {
-            std::cerr << "ERROR: Alignment to unknown contig " << contigName << "!\n";
+            std::cerr << "ERROR: Alignment to unknown contig " << contigId << "!\n";
             return 1;
         }
         unsigned binNo = record.beginPos / options.windowSize;
diff --git a/apps/gustaf/CMakeLists.txt b/apps/gustaf/CMakeLists.txt
index 80d2cb5..6b59ac5 100644
--- a/apps/gustaf/CMakeLists.txt
+++ b/apps/gustaf/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_gustaf)
 message (STATUS "Configuring apps/gustaf")
 
-set (SEQAN_APP_VERSION "1.0.2")
+set (SEQAN_APP_VERSION "1.0.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/insegt/CMakeLists.txt b/apps/insegt/CMakeLists.txt
index 3e4f033..2344557 100644
--- a/apps/insegt/CMakeLists.txt
+++ b/apps/insegt/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_insegt)
 message (STATUS "Configuring apps/insegt")
 
-set (SEQAN_APP_VERSION "1.1.2")
+set (SEQAN_APP_VERSION "1.1.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/mason2/CMakeLists.txt b/apps/mason2/CMakeLists.txt
index 3adbbb2..862d071 100644
--- a/apps/mason2/CMakeLists.txt
+++ b/apps/mason2/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_mason2)
 message (STATUS "Configuring apps/mason2")
 
-set (SEQAN_APP_VERSION "2.0.1")
+set (SEQAN_APP_VERSION "2.0.0")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/mason2/mason_simulator.cpp b/apps/mason2/mason_simulator.cpp
index edd1239..829fe45 100644
--- a/apps/mason2/mason_simulator.cpp
+++ b/apps/mason2/mason_simulator.cpp
@@ -48,6 +48,13 @@
 #include "external_split_merge.h"
 
 // ==========================================================================
+// Forwards
+// ==========================================================================
+
+template <typename TMDString, typename TGaps1, typename TGaps2>
+inline void getMDString2(TMDString &md, TGaps1 &gaps1, TGaps2 &gaps2);
+
+// ==========================================================================
 // Classes
 // ==========================================================================
 
@@ -238,7 +245,7 @@ public:
         setClippedBeginPosition(gapsRead, countGaps(begin(gapsRead, seqan::Standard())));
 
         getCigarString(record.cigar, gapsContig, gapsRead, seqan::maxValue<int>());
-        getMDString(mdString, gapsContig, gapsRead);
+        getMDString2(mdString, gapsContig, gapsRead);
     }
 
     // Fill the tags dict.
@@ -559,7 +566,7 @@ public:
         setClippedBeginPosition(gapsRead, countGaps(begin(gapsRead, seqan::Standard())));
 
         getCigarString(record.cigar, gapsContig, gapsRead, seqan::maxValue<int>());
-        getMDString(mdString, gapsContig, gapsRead);
+        getMDString2(mdString, gapsContig, gapsRead);
     }
 
     // Fill the tags dict.
@@ -1261,6 +1268,78 @@ parseCommandLine(MasonSimulatorOptions & options, int argc, char const ** argv)
     return seqan::ArgumentParser::PARSE_OK;
 }
 
+// ----------------------------------------------------------------------------
+// getMDString2()
+// ----------------------------------------------------------------------------
+
+template <
+    typename TMDString,
+    typename TGaps1,
+    typename TGaps2>
+inline void
+getMDString2(
+    TMDString &md,
+    TGaps1 &gaps1,
+    TGaps2 &gaps2)
+{
+    typedef typename seqan::Value<TMDString>::Type TMDChar;
+    typename seqan::Iterator<TGaps1>::Type it1 = begin(gaps1);
+    typename seqan::Iterator<TGaps2>::Type it2 = begin(gaps2);
+    typedef typename seqan::Value<typename seqan::Source<TGaps1>::Type>::Type TValue1;
+    char op, lastOp = ' ';
+    unsigned numOps = 0;
+
+    clear(md);
+    for (; !atEnd(it1) && !atEnd(it2); goNext(it1), goNext(it2))
+    {
+        if (isGap(it1)) continue;
+        if (isGap(it2))
+        {
+            op = 'D';
+        }
+        else
+        {
+            TValue1 x1 = *it1;
+            TValue1 x2 = *it2;
+            op = (x1 == x2)? 'M': 'R';
+        }
+
+        // append match run
+        if (lastOp != op)
+        {
+            if (lastOp == 'M')
+            {
+                std::stringstream num;
+                num << numOps;
+                append(md, num.str());
+            }
+            numOps = 0;
+            lastOp = op;
+        }
+
+        // append deleted/replaced reference character
+        if (op != 'M')
+        {
+            // add ^ from non-deletion to deletion
+            if (op == 'D' && lastOp != 'D')
+                appendValue(md, '^');
+            // add 0 from deletion to replacement
+            if (op == 'R' && lastOp == 'D')
+                appendValue(md, '0');
+            appendValue(md, seqan::convert<TMDChar>(*it1));
+        }
+
+        ++numOps;
+    }
+    SEQAN_ASSERT_EQ(atEnd(it1), atEnd(it2));
+    if (lastOp == 'M')
+    {
+        std::stringstream num;
+        num << numOps;
+        append(md, num.str());
+    }
+}
+
 // --------------------------------------------------------------------------
 // Function main()
 // --------------------------------------------------------------------------
diff --git a/apps/mason2/simulate_illumina.cpp b/apps/mason2/simulate_illumina.cpp
index 4fc9064..e40d082 100644
--- a/apps/mason2/simulate_illumina.cpp
+++ b/apps/mason2/simulate_illumina.cpp
@@ -254,23 +254,13 @@ void IlluminaSequencingSimulator::simulateRead(TRead & seq, TQualities & quals,
     // Simulate sequence (materialize mismatches and insertions).
     typedef seqan::ModifiedString<seqan::ModifiedString<TFragment, seqan::ModView<seqan::FunctorComplement<seqan::Dna5> > >, seqan::ModReverse> TRevCompFrag;
     if ((dir == LEFT) && (strand == FORWARD))
-    {
         _simulateSequence(seq, rng, prefix(frag, lenInRef), cigar);
-    }
     else if ((dir == LEFT) && (strand == REVERSE))
-    {
-        seqan::Prefix<TFragment>::Type holder(prefix(frag, lenInRef));
-        _simulateSequence(seq, rng, TRevCompFrag(holder), cigar);
-    }
+        _simulateSequence(seq, rng, TRevCompFrag(prefix(frag, lenInRef)), cigar);
     else if ((dir == RIGHT) && (strand == FORWARD))
-    {
         _simulateSequence(seq, rng, suffix(frag, length(frag) - lenInRef), cigar);
-    }
     else  // ((dir == RIGHT) && (strand == REVERSE))
-    {
-        seqan::Suffix<TFragment>::Type holder(suffix(frag, length(frag) - lenInRef));
-        _simulateSequence(seq, rng, TRevCompFrag(holder), cigar);
-    }
+        _simulateSequence(seq, rng, TRevCompFrag(suffix(frag, length(frag) - lenInRef)), cigar);
 
     // Simulate qualities.
     _simulateQualities(quals, cigar);
diff --git a/apps/mason2/simulate_sanger.cpp b/apps/mason2/simulate_sanger.cpp
index 9073fad..33a4305 100644
--- a/apps/mason2/simulate_sanger.cpp
+++ b/apps/mason2/simulate_sanger.cpp
@@ -141,23 +141,13 @@ void SangerSequencingSimulator::simulateRead(
     // Simulate sequence (materialize mismatches and insertions).
     typedef seqan::ModifiedString<seqan::ModifiedString<TFragment, seqan::ModView<seqan::FunctorComplement<seqan::Dna5> > >, seqan::ModReverse> TRevCompFrag;
     if ((dir == LEFT) && (strand == FORWARD))
-    {
         _simulateSequence(seq, rng, prefix(frag, sampleLength), cigar);
-    }
     else if ((dir == LEFT) && (strand == REVERSE))
-    {
-        seqan::Prefix<TFragment>::Type holder(prefix(frag, sampleLength));
-        _simulateSequence(seq, rng, TRevCompFrag(holder), cigar);
-    }
+        _simulateSequence(seq, rng, TRevCompFrag(prefix(frag, sampleLength)), cigar);
     else if ((dir == RIGHT) && (strand == FORWARD))
-    {
         _simulateSequence(seq, rng, suffix(frag, length(frag) - sampleLength), cigar);
-    }
     else  // ((dir == RIGHT) && (strand == REVERSE))
-    {
-        seqan::Suffix<TFragment>::Type holder(suffix(frag, length(frag) - sampleLength));
-        _simulateSequence(seq, rng, TRevCompFrag(holder), cigar);
-    }
+        _simulateSequence(seq, rng, TRevCompFrag(suffix(frag, length(frag) - sampleLength)), cigar);
 
     // Simulate Qualities.
     this->_simulateQualities(quals, cigar, sampleLength);
diff --git a/apps/mason2/tests/simulator.out1.sam b/apps/mason2/tests/simulator.out1.sam
index 3d05dce..4434de3 100644
--- a/apps/mason2/tests/simulator.out1.sam
+++ b/apps/mason2/tests/simulator.out1.sam
@@ -74,7 +74,7 @@ simulated.35	163	1	955	255	100M	=	1101	-246	TATGCGAGCGACCGACGACTTATAGTCAGCTACGGT
 simulated.36	99	1	3043	255	100M	=	3250	307	TAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGG	HHHIHHIHHHHHIIFIHGHIFIIHGIHHFIFIICDEI at IGHIHIIDIGHIFIIIIIIDEFFDIGDIFIGIE>IDIIIAIE>IAIFDGD6HIIFIIAEIHF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3042	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.36	147	1	3250	255	100M	=	3043	-307	ATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTT	@IDIBHCGDEIB at GIIICBH@IC?EIHIBIGIH at IIHIIFIFE@FEEIIIIEIIIIIIIHIIGFHIHIHGIGGHIIIGIIFIHIIGHHIGIIHHHIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3249	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.37	99	1	4812	255	100M	=	4987	275	AAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCC	HHIHHIHIIHHGIHIHIIHIIIFHIGIIIGEIIHIIIGHIIFIGFIGICIIIIHIEFIHCHAHIIBIGIFIIIDIAHH>BIEIIHDIIIAIIEDIICGBG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4811	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.37	147	1	4987	255	100M	=	4812	-275	ATGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAG	FIIHGFH?9CDG at EIIIACDGHEHIC@IIDIFHIAIHDIIGFIIIIIIIDIIIFFEBHIEHEHIGIFIEGIIIIEIIIGIGIIHHGIHIIIIHHHIHIIH	NM:i:1	MD:Z:0C99	oR:Z:1	oH:i:1	oP:i:4986	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.37	147	1	4987	255	100M	=	4812	-275	ATGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAG	FIIHGFH?9CDG at EIIIACDGHEHIC@IIDIFHIAIHDIIGFIIIIIIIDIIIFFEBHIEHEHIGIFIEGIIIIEIIIGIGIIHHGIHIIIIHHHIHIIH	NM:i:1	MD:Z:C99	oR:Z:1	oH:i:1	oP:i:4986	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.38	83	1	2982	255	100M	=	2799	283	TGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCAC	IH>FIII at IIBHFICIIDAIFIIIHGIHID>IIFIFIADIBICGIEHIIHIFIFCIHIIHGFIFIIIIHIIIHIHIGIIIIIIHGIIIIHHIHHIHHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2981	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.38	163	1	2799	255	100M	=	2982	-283	TCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGC	HHIHHHIHHHGIGIHIHGHIIIHIIGIFGIIEIIIEGEHIIGIIEIIFIIHGHHFIIIIHEIAIHCFFIIFHIFHIBGIIIHIIE at IIIHICIIIIIICI	NM:i:1	MD:Z:99A	oR:Z:1	oH:i:1	oP:i:2798	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.39	83	1	9137	255	100M	=	8952	285	GATGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGG	D=IIIICCIGIAIIHIIIIGBIIIGHGIFIIFHHIIIIHIB at FHBIIIFIEEIGIGHIFIIGFHFIIHIIGIIHHHFHHIFIIIHHIHHHIIIHIHHIHI	NM:i:1	MD:Z:1G98	oR:Z:1	oH:i:1	oP:i:9136	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -280,7 +280,7 @@ simulated.138	163	1	4826	255	100M	=	5052	-326	AAGCCAAAAAGATCACCTCCTTCATTCACCTATT
 simulated.139	99	1	9315	255	100M	=	9545	330	CGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGAAGGGCTCATCGAATGCACTCACGAAATT	IHHIIIIHHIIHHIIGIIHIIGIIHHIHIGHIIIIIIIIHIIHIIHIIFIIEFIIHIIIIAIFFHEIHIFIIIICIIDIIHFII?@IIHICCIIICCIGI	NM:i:2	MD:Z:71C27G	oR:Z:1	oH:i:1	oP:i:9314	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.139	147	1	9545	255	100M	=	9315	-330	TCTAGAGCAGCCACATAAAAATAAATTGAATCGTTAGCTCCGCCGTGTGGACATGGCATCGGCGTCATCCCATATACATCACCGGTCGAACCCACTCAAG	IGII;GIIGHIGHFIFIIFIHCIIAIIIIIIFGF at HIEII@IIIIIIHHIIEIIIHCIIHIGHFEGEEHHIIIIFIHIHIIIHHHHIIIGIIHHHIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9544	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.140	83	1	7697	255	100M	=	7501	296	AATCACGCGTAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGAT	GHEAIHHEI-IGGIIIHIC?IIIFIIIIHHIIHIIIAEFIDIDFIHIIGGIHDFIGCIIFIIIDIFGGIGGHGIIEIFIIIGGIHGHIHIHGHIIIHIHH	NM:i:1	MD:Z:9G90	oR:Z:1	oH:i:1	oP:i:7696	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.140	163	1	7501	255	100M	=	7697	-296	TGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTANGTTATTACATTCTAT	HIIIHHHHGGIIHHIGGIHFEIHHIGHEGHGIHHEIFFGFHIEHADIIDDFHHIICIIFFIEEIIHIGIIIDIFIIIIFFIEG<HIE at EIF=@D?IIIDH	NM:i:3	MD:Z:83T0A6C8	oR:Z:1	oH:i:1	oP:i:7500	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.140	163	1	7501	255	100M	=	7697	-296	TGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTANGTTATTACATTCTAT	HIIIHHHHGGIIHHIGGIHFEIHHIGHEGHGIHHEIFFGFHIEHADIIDDFHHIICIIFFIEEIIHIGIIIDIFIIIIFFIEG<HIE at EIF=@D?IIIDH	NM:i:3	MD:Z:83TA6C8	oR:Z:1	oH:i:1	oP:i:7500	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.141	99	1	1067	255	100M	=	1247	280	CTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCTTGAAGCCG	IIIIHIIIIIGIIIIIFIHHGIHIIFIHDFIBHIHGIHHIIIEEIIEGDIHDGGGIIHIDIDGDBIIHFIIIFAIDHIIDFDIIFIIII at IIIIIIFDII	NM:i:1	MD:Z:91A8	oR:Z:1	oH:i:1	oP:i:1066	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.141	147	1	1247	255	100M	=	1067	-280	TCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGG	EIGIIHIHGIAIDIGCFGII>IADIDIIIHIIIFIIIIDEIIIDIICEIIIFIIDIHIIIGDDHIIIIFFGHIIGIHIHIIIHHHHHHHHIIHHIIIHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1246	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.142	99	1	4566	255	100M	=	4764	298	AGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATC	HHIIHHHHHHIIHIIHIHIFIHFIIIIIHHHIIDIGGDHIGIIFIEAIIEIIIIIIIIIIHIIIIIICIIHHBIIIAIIIFICIIIIHB?IHAF@@I@;I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4565	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -334,7 +334,7 @@ simulated.165	163	1	337	255	100M	=	534	-297	GGACGCACAAAATCATCTTGGGATAGGAGGATTCGG
 simulated.166	99	1	1497	255	100M	=	1661	264	TCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAG	IHHHIIHHHIIIIHGIHIHGGHEIIFEGDGEIIEHIIBHIHIIIIIFHIIFIIIIECICIFIDIIHIGIDI;FII=IFFDFICIICAHAIHHHFIIIHIE	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1496	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.166	147	1	1661	255	100M	=	1497	-264	GGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGA	CDEI?DIII>III?IIID at IDGDIIIIII;DIDIFIIBAIIFCIF?GI>EIIHIHIIIDICIDIIEIHDIHGGGIIIIFHIHIIIHIHHIIHHHHHHIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1660	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.167	99	1	5884	255	100M	=	6073	289	TGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGC	HHHHIIIHHIIGHIFHIHGIIIGICFHIGIFFIIGGIGGIFCDIIIEIHEFHGIEIIGIICIIDAIDIIF?IIEIFIHCIABIFI=FAIGFIIAIIG<:B	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5883	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.167	147	1	6073	255	100M	=	5884	-289	GGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCAC	@IHBCIHHFII?FIIG?IDID:IIIIIGIIIIFIEIDIHIIEEHGIIDIHIIHGIICICCIFEIIHIIIIHIGIGHHIIIIFIGIHIGHIIIIHGIIIII	NM:i:1	MD:Z:0A99	oR:Z:1	oH:i:1	oP:i:6072	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.167	147	1	6073	255	100M	=	5884	-289	GGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCAC	@IHBCIHHFII?FIIG?IDID:IIIIIGIIIIFIEIDIHIIEEHGIIDIHIIHGIICICCIFEIIHIIIIHIGIGHHIIIIFIGIHIGHIIIIHGIIIII	NM:i:1	MD:Z:A99	oR:Z:1	oH:i:1	oP:i:6072	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.168	99	1	9240	255	100M	=	9443	303	GTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTC	IHIHIHHHIHHIHIHHIHGHHFHHIGIFIHIIIIIIFDHHGIIIIIFFIHFEIIFFIIII at IAE>IHECIIGDDIIGIFI>IHGIIIIIII at HBCGIII=	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9239	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.168	147	1	9443	255	100M	=	9240	-303	GTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGCGGCATTCAGCCGTCGGAACTAAACGCCAG	IIGIIIIHICHIDIIEIIIIAIIIIFFGGIIHIICIIFIII>HIGABGICIFBIFEEIADIIIDIIIIGEEHIIHIIIGHHHIIHHIIHGIIIHIHIHII	NM:i:1	MD:Z:79C20	oR:Z:1	oH:i:1	oP:i:9442	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.169	83	1	5003	255	100M	=	4838	265	ACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCC	DIHBGIDIBIGIFEIIIIAFFGGECG at I>I at I>H?IIEGDGHIEIIHDEIIHIIGIIHGIHHEHIHFFIGHIFGIGIHIIIHIIIHIIIHHIIIIHIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5002	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -377,7 +377,7 @@ simulated.187	83	1	348	255	100M	=	155	293	ATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAA
 simulated.187	163	1	155	255	100M	=	348	-293	ACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCAC	HIIHIHHHHIIIIIHIIIIIHIIHIIIIHGIFFGIIEIFIGGCEHIFHIHIIIIIHIIHG at FGI@EFIGEIEHAGIIIIIGDI?EIIG?AIHAHI?CGII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:154	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.188	83	1	7690	255	100M	=	7477	313	CTTGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTG	I7BHBI<IDIIIIC at CCIICEDIGIIFGIHIFHDCI?IDAIBIIIHIEHGHHIIIIIIHIEIIIIHIIGIGIIIIFIIIFGGGIHHHGHGIHHIHHHIHI	NM:i:1	MD:Z:1A98	oR:Z:1	oH:i:1	oP:i:7689	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.188	163	1	7477	255	100M	=	7690	-313	CTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCA	IHIHHIHIHHHHIHIIHIHHIHIIIHIIHHGIGCGFIIIEFIHIIBHIIGIIHIIIGIHIIIIIIIICIIIGDGIFHEGII?GFGCIII@@EHCIGIIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7476	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.189	99	1	3731	255	100M	=	3940	309	CACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCGTTGCTAGATCGTACGTATCTCC	HHHIIIIIIGHIIHHGIIIIHHFGHGHEHHIIGEGGIHIIIEEFGEHFIIDHIEE at HIIIIIDIIGIHGDIHGDI=I:IIIIFIII at IHCHECH9FGIII	NM:i:3	MD:Z:77A0G15C5	oR:Z:1	oH:i:1	oP:i:3730	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.189	99	1	3731	255	100M	=	3940	309	CACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCGTTGCTAGATCGTACGTATCTCC	HHHIIIIIIGHIIHHGIIIIHHFGHGHEHHIIGEGGIHIIIEEFGEHFIIDHIEE at HIIIIIDIIGIHGDIHGDI=I:IIIIFIII at IHCHECH9FGIII	NM:i:3	MD:Z:77AG15C5	oR:Z:1	oH:i:1	oP:i:3730	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.189	147	1	3940	255	100M	=	3731	-309	TTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTT	@@III at II>ADIE at IIADFHHEFICBICEBIIIIIHGIHIC=GHHEGBIHHEFIIIIFIIIGHHFHFDGIIHIHFGHIIIIIHIIHHIHIHHHHIHIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3939	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.190	83	1	1983	255	100M	=	1793	290	CAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAG	IIFIDIIEIFIEIIHII at IDIIDIFGDEIGIIEGDDEDIFGI@IIGIEIIIIIEIGIIGICIIGHHEIGFIHHIIIIIIHGIGFHGGIGGHGIHHHIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1982	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.190	163	1	1793	255	100M	=	1983	-290	TTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCG	IHHHHIHIIHIHIIIIIGIHIDHIIHGHIIEIGIDIHGGFFIIIHEDHIIDEIIEEIBIEGIHIIBEDICGFI?>II=HFI>CGIIII?BHIEIIHI<=E	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1792	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -398,7 +398,7 @@ simulated.197	163	2	18	255	100M	=	222	-304	TCGTTTGGACTCAGCGGCCGTTTGCGTATATAGGAAT
 simulated.198	83	1	7412	255	100M	=	7193	319	TGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCT	IF at GC>IIFIHEBGFGICCHIIB at I<IAIEIDIBIIBFEIIIHGIFIIIEIIIIHIICI at HIIGIIGIHIIIHIIHIHHGIFFIIHGIIIHHHIHHIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7411	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.198	163	1	7193	255	100M	=	7412	-319	AGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGCAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTT	HIIIHHHIHIIHGIHHGHIIGIIGGHFHGIHIDIGIHCGHFFIFFIII;GHHIIGIHDDIEDFFD at IIIICIIFCIIEFIIEIIIF?IIIIIIGII>EIF	NM:i:1	MD:Z:48A51	oR:Z:1	oH:i:1	oP:i:7192	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.199	99	1	51	255	100M	=	217	267	GGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGA	HIIHHHIIIHIHHGIGFIHHIIIIGIHIIGGIIEEDIIIFHIHDCIIEIIIIGIIGEIIGIDGIGIIIEGF>FI?IIEIIEFEHAECIIDDIII at GIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:50	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.199	147	1	217	255	93M1D7M	=	51	-267	ATTTCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGAC	FDF-I>IHEIBIFFI@?IDFIIEAGHHGIIII?HIG>HEI at IHHGGICIIGEIGIGEIGHGIGIIHHIDIFIIIHIIIGFIHHHIGIHIGHHHHIIHIHI	NM:i:2	MD:Z:3G89^T7	oR:Z:1	oH:i:1	oP:i:216	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.199	147	1	217	255	93M1D7M	=	51	-267	ATTTCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGAC	FDF-I>IHEIBIFFI@?IDFIIEAGHHGIIII?HIG>HEI at IHHGGICIIGEIGIGEIGHGIGIIHHIDIFIIIHIIIGFIHHHIGIHIGHHHHIIHIHI	NM:i:2	MD:Z:3G89T7	oR:Z:1	oH:i:1	oP:i:216	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.200	83	1	6162	255	100M	=	5967	295	CATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACA	I=CHBIID at IIGIGHIFIIHIII?IIDCHIII?DFDIFGEEIIICGHCIGHIHIHIHHIHCIIGIGEHHHIFIHIHHIFIIIIIIHHHIHHHHIHHIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6161	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.200	163	1	5967	255	100M	=	6162	-295	GAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTTTACAGTAC	IHIIHHIHGHIIHGIIHIIIIIGIIIHIFGIIIIIGIIIHHEHIFFDHFHIFFCDGFEFDD at DIGIIEGIIBGGHIHHHHDCIBGI><GGDBFI>IG;>E	NM:i:1	MD:Z:91G8	oR:Z:1	oH:i:1	oP:i:5966	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.201	83	1	7274	255	100M	=	7069	305	ATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAA	ACDD?GIIIH>GIIIIDIEIIIAIIIIAIEIDECIIGIDIC at HHIIDICGIGIIIIDDIIGHIIFHIGGIGIEIGIIHIIIEIIHIIHIIHGIIIIHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7273	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -534,7 +534,7 @@ simulated.265	163	1	9619	255	100M	=	9812	-293	TACATCACCGGCCGAACCCACTCAAGAGTGAACC
 simulated.266	83	1	9742	255	100M	=	9557	285	CCACTGAATTGTATCTGTAAATAGGCATTGTTATGCCGTGGCATTACCCGCCTGTTAACTTTCCCCGCCCAGCATCTTGTTGTCATTCAACAATAAAGTA	?I<FIIFI>GID8FIIIII?IGIGIEIEFDIIIIIIIDIEIIIHIEIEBDIIIIIGFIGIHEFIGHIEGHIFIGIIEIFIGIHIGHIHIHIHHHHIIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9741	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.266	163	1	9557	255	100M	=	9742	-285	ACATAAAAATAAATTGAATCGTTAGCTCCGCCGTGGGGACATGGCATCGGCGTCATCCCATATACATCACCGGTCGAACCCACTCAAGAGTGAACCGCTT	HHIHHIIHHIHHIIHIGHIIIIHIHGEIGGFIIIIHBHIGIGHEIFIIGIIIFDIICCIIDGHAIAIDIIEIGCHIGHHHH at AIIIHD<IGCIEIFGHIB	NM:i:1	MD:Z:35T64	oR:Z:1	oH:i:1	oP:i:9556	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.267	99	1	9167	255	100M	=	9361	294	GGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGA	IIHIHIIIHIHGIIHHHHHHHGFFIIIIFDGEGIIFIIIIIIIIIIIHIIHIFIFIHHIIFIIIIDHIIIBFIIIIBIIIIEIIDGII at ICGG>HIACIB	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9166	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.267	147	1	9361	255	100M	=	9167	-294	TAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAA	AGGBI>?DIEIB;BIIHIIICGIEIIAIFIIH?IEHIIIIHHHGIIIHIHCIIFIHEIHHFIGGGIIIIIGEIIIGGIIGFIHGGIIIIIGHIIHHHHII	NM:i:1	MD:Z:0G99	oR:Z:1	oH:i:1	oP:i:9360	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.267	147	1	9361	255	100M	=	9167	-294	TAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAA	AGGBI>?DIEIB;BIIHIIICGIEIIAIFIIH?IEHIIIIHHHGIIIHIHCIIFIHEIHHFIGGGIIIIIGEIIIGGIIGFIHGGIIIIIGHIIHHHHII	NM:i:1	MD:Z:G99	oR:Z:1	oH:i:1	oP:i:9360	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.268	83	1	9495	255	100M	=	9312	283	CGAGGCTAGGTACGGTCGCGGCATTCACCCGTCGGAACTAAACGCCAGAGTCTAGAGCAGCCACATAAAAATAAATTGAATCGTTAGCTCCGCCGTGTGG	IIIIEIIBGEIIIHIAFIIC at EIIG>IHIIHHFIIHEAIIFIDIGIIEICIIFIIHIIHBIHDHHGIGIIIIIGHIEIHGGIIEHIIIIIIIHHIHHHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9494	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.268	163	1	9312	255	100M	=	9495	-283	TACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATTCACTCACGAA	IHHIIHIHIHHIHHIIIIIGIHHGIHFIHIGEEIIGIIGHFGIHICGFCIIIIHICGI?IGCFFAHIIIDIIFHEI>IFIBIGED?IIC<ADI>DGIDIF	NM:i:1	MD:Z:89G10	oR:Z:1	oH:i:1	oP:i:9311	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.269	99	1	3924	255	100M	=	4148	324	TTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGC	IHHHHIIIGIIHIHHIGIIIIHIGHIFEIHFIGGIGIFHIHFIGGIFFIBGIGIGIIEDGGDEEIECIGIIIIIIIFFIIABHIEIHHAIGI?IIIIICI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3923	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -578,7 +578,7 @@ simulated.287	163	1	9459	255	100M	=	9643	-284	AACAGGCCCTTTCAGTTGTCAAATCAACATCCGC
 simulated.288	83	1	2932	255	100M	=	2707	325	GCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATAC	HIA?IIIEIIIBBIBCBAAGIIGIDIIIIIIICHIIFEIHAIEEHIIIDBCCFGHHGGFIFIGGIHFFGHFFIIHIIGHIFHGHHIIHIHGHIHHHHHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2931	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.288	163	1	2707	255	100M	=	2932	-325	TCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATTTCCCCTAA	IIIIHIIIHHIHHGIHHGIHIIIGIIIIIIHIHIEDEFFFDIEIIEIEIHIDIEIGDHIIECDCFI?IIIIIIHDHICIIIIIIIAIBIIIEFHEI at IIG	NM:i:1	MD:Z:91G8	oR:Z:1	oH:i:1	oP:i:2706	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.289	99	1	274	255	100M	=	501	327	AGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGG	HIHIHHHHHIHHIGIIHHFHIFFGIIIIIIIDHIIIHIIHIGHIIIIHIHEHHCIIIFDHIIGIICIEIHIHIFECGIFIBIIII:IIIIIIIBEIFDFE	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:273	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.289	147	1	501	255	100M	=	274	-327	AGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTAACGAATACTGTCTT	AIIHGFEE at CIIIIIHI?IBGIEIGBGEIDGCI at CIIDCHGGGEIIIIIIIIIGFIFGBCIHHHEHHIIIIGGGHIIFGIIIFIG<HIHHIHHIHHHIII	NM:i:2	MD:Z:0C84C14	oR:Z:1	oH:i:1	oP:i:500	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.289	147	1	501	255	100M	=	274	-327	AGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTAACGAATACTGTCTT	AIIHGFEE at CIIIIIHI?IBGIEIGBGEIDGCI at CIIDCHGGGEIIIIIIIIIGFIFGBCIHHHEHHIIIIGGGHIIFGIIIFIG<HIHHIHHIHHHIII	NM:i:2	MD:Z:C84C14	oR:Z:1	oH:i:1	oP:i:500	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.290	99	1	8553	255	100M	=	8784	331	ATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACG	HIHIHIHGIIIHIIHIHHIIIIHIHHIGIIGIIGIIDIIEIHIIGEIIFHGIHHEHIIIHH=IHHAHIHIGB?IDII>F at FEIIICIDIFCIIIIDHEHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8552	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.290	147	1	8784	255	100M	=	8553	-331	TGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGC	C at AIICI@IICACDI=DIDIHDBGIDDIIIHGIHCGDIIHIIIGIIGIIIIIDIIHIIDGIIIIIFIIIFGIIIGIIGGIIHIHIHIIIHHIIIIIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8783	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.291	99	1	7497	255	100M	=	7692	295	TTGATGCATGTCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATT	IIIHIIHHGFHGHIIHHHIHFIGHHIIHHFIFIIGGIDHEIIIIFGIFFIIFD>IHEEHIIIGIFGIIDIIGHDAFFIIIFIIE at IHIB@;BAII@?IDH	NM:i:1	MD:Z:9A90	oR:Z:1	oH:i:1	oP:i:7496	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -687,7 +687,7 @@ simulated.342	99	1	3240	255	100M	=	3418	278	GAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCA
 simulated.342	147	1	3418	255	100M	=	3240	-278	TTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCA	IFE?FDDBCIEEIGFII at I@BHIEII?IIEIIEHIDCCFIHIIIIIGAI at HDFEIIIIIDFIHIIDDHHGHGIIIHIGIHHIIHGHGGHHHIHIHIHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3417	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.343	83	1	1821	255	100M	=	1621	300	TGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTC	IEIII==IIICBIII at AIAF@I:IIIIHGBEIIIBIIIIBHIGBIIIIFDHHGGEGIDIIHGIHIGEHCHIHIGGIHIHGHHIIGHHHGHHIIHIIHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1820	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.343	163	1	1621	255	100M	=	1821	-300	CGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACG	IHHHIHIHHHHHHIHIHGIGIGHIGGIIFIHIFGIFIIIHHHIGHIIHIGIIIDIFIIIIIGFIIIEFBGFICI?ICBCGH?I?GGICICIIICII at IDI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1620	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.344	83	1	4410	255	100M	=	4230	280	CCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACACTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGC	B>IC at I<?IIAIIECICI at EGFGAIICIBI@IHIIGIHHIIHGEIGIHHGIIIIGGGAIGIIIEGIGIIGHIIGFHHHIIIGGIHHIHIHIHIHIHHIIH	NM:i:2	MD:Z:0G56T42	oR:Z:1	oH:i:1	oP:i:4409	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.344	83	1	4410	255	100M	=	4230	280	CCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACACTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGC	B>IC at I<?IIAIIECICI at EGFGAIICIBI@IHIIGIHHIIHGEIGIHHGIIIIGGGAIGIIIEGIGIIGHIIGFHHHIIIGGIHHIHIHIHIHIHHIIH	NM:i:2	MD:Z:G56T42	oR:Z:1	oH:i:1	oP:i:4409	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.344	163	1	4230	255	100M	=	4410	-280	CGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTATCGCTCCTTTAAATGTCCAGCACCGGGATGT	IIIIHHIIHHIIHIIGFHHIIIIIIFGGHIFHDGIIDIEFIIGFIIIIFHIHCGIDIIIIIIFF at GGA?B?GIDGIIIID=FIIIGIIIDABIBCAI=IG	NM:i:1	MD:Z:69G30	oR:Z:1	oH:i:1	oP:i:4229	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.345	83	2	280	255	100M	=	72	308	GACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTA	HIEIIIFIFBHHIIEEIDEBIEDIHIIIFIIDBIEFIDDGICIIIIFIFHGHIHIIIIEGIIIIIHHGHIIIDIIIIIGFIIGHHHIHIIIIIHHHIIII	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:279	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.345	163	2	72	255	100M	=	280	-308	TGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTT	HHIIHHHIGIIHIHGHIIIGEHIHGIIHHHHHFGIHIIFIFFHICGIEFIIII at FICHHGHEDDIDGFIEI?IGIICIIDIIHGFIHDBAHIIIEDIE<I	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:71	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -713,7 +713,7 @@ simulated.355	83	1	8156	255	100M	=	7975	281	AAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAAC
 simulated.355	163	1	7975	255	100M	=	8156	-281	ATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGA	IIHIHIHIHHIIHHHHIFIFIIGIHGGHIIIIFIIIDFIIIIGEICICIIIEIEEDIICGICBHIIE at GCCIIEEIIHIGIBIFIIHIIIG@I at III8DI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7974	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.356	83	1	2015	255	100M	=	1801	314	AAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACT	II>IEHI??IEIF@@GGIIIAIBFIII at IIGIFIIGICI@HHIFHII?GHDIFFDIFIDHFIHGIIIHIIFGGEGIIFIGHIHIHIHIGIIHIHIHHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2014	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.356	163	1	1801	255	100M	=	2015	-314	TGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTG	IHHIHIHHIHIIGGHHIIIFGHIIIHIIIIGHIFFGFIGEIIFGFIHFCIEIGIIHIIIGHCIIFIIIIDIIIIHI?IGIIIBIEFIIDI=BCFBAIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1800	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.357	83	1	9475	255	100M	=	9273	302	GGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGCGGCATTCACCCGTCGGAACTAAACGCCAGAGTCTAGAGCAGCCACATAAAAATAAATTGAA	1GIII9IEII8IDII=DHIGGIII>ICBFIHIIIIGEIAIEHIIIICHIIIFIIEIIGGIIGIGIGGIGHIEGHHIGIIGHHHIFIIIIIHIIIHHIIHH	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:9474	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.357	83	1	9475	255	100M	=	9273	302	GGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGCGGCATTCACCCGTCGGAACTAAACGCCAGAGTCTAGAGCAGCCACATAAAAATAAATTGAA	1GIII9IEII8IDII=DHIGGIII>ICBFIHIIIIGEIAIEHIIIICHIIIFIIEIIGGIIGIGIGGIGHIEGHHIGIIGHHHIFIIIIIHIIIHHIIHH	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:9474	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.357	163	1	9273	255	100M	=	9475	-302	GCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAA	IHHHHHHIIIIIHIIGHHHIIGFIIFHFFIHIEIGIGIFEIDIHFHAIGIFHFIHGIGICIIHIIDGIFDEGIIBHIIFFFIFIIIIIIIAIICDDEI?7	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9272	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.358	99	1	733	255	100M	=	951	318	GTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCT	HHHHIHIHIHHHIGGIHHGHHHGGIHIGFIHFFIEIIIEFFDHIIIGIDIFIDDIIGIIIIIBIBIGIEFDFIE:CGAFIIIG at IIIIIIIHIIDCBF;E	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:732	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.358	147	1	951	255	100M	=	733	-318	TAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCAC	HGIHII;=AEIFIAEIIIHIIDIIIHGEHIIHGIIED?HGIIIIGFIIDIBGGHHFHCHIIGCIFIHGHIHIHIIIIIGHIGFHIIIHIHHHIIHHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:950	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -744,7 +744,7 @@ simulated.370	147	1	4220	255	100M	=	4007	-313	CAGAGAGAGTCGAGTTAAACGGGCCAACCTACTC
 simulated.371	99	2	333	255	100M	=	519	286	TCATCTCGTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAATCAGACTAGGGACG	IHHHHIIGIHGIGHIHHHHHGGHIIEIIHIIGHHIIIGIIGIIHIIIEFDI at FGIIFIIAIIAIIBHF=IIIDBHFHDIIIBHICIHEIIII at IIIHIII	NM:i:1	MD:Z:7T92	oR:Z:2	oH:i:1	oP:i:332	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.371	147	2	519	255	100M	=	333	-286	GCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATTAGTCTATTTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGTAACGATAATAGGCTATACTGAAT	BFEIFGIIIIIIIIIIIIIGH at CH@FIIHIGIIIDEIBIDIEEIHIIGIIIHGDGFCHGHIIGIDIDIIIHIGHHGFHHIHGGGHHIHGIIIHHIIIHHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:518	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.372	99	2	209	255	100M	=	453	344	AGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCT	IHHIIIIIHIHFHIGGIIHHIGGIHFIHHIIGGIFIIIHHGIGICIIIIIIIBI at CGIIIIIFDIIIDIIIIHIIFGHEIIIIIAIDFHGAIDAHIIII@	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:208	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.372	147	2	453	255	100M	=	209	-344	CTCACCTGGTGAGCATCTGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATT	GIEIIE=IEBIFIIII.III?>HIIHIDDEIIIIIHIEI at EIIIHHIIEIIEHIIIIFIDEIHGFGIGFGGGFIHIIIFIIHIHIIIGHHHHHHHHIHHI	NM:i:2	MD:Z:16T0G82	oR:Z:2	oH:i:1	oP:i:452	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.372	147	2	453	255	100M	=	209	-344	CTCACCTGGTGAGCATCTGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATT	GIEIIE=IEBIFIIII.III?>HIIHIDDEIIIIIHIEI at EIIIHHIIEIIEHIIIIFIDEIHGFGIGFGGGFIHIIIFIIHIHIIIGHHHHHHHHIHHI	NM:i:2	MD:Z:16TG82	oR:Z:2	oH:i:1	oP:i:452	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.373	99	1	1961	255	100M	=	2169	308	TATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAAG	HIIHIIIHIIIIHIIIIHHGFIHIHHIDIIIDIIIIGDFIFEHHGHIBHIIIIEDHIIIIIEIIDEIIGIIFEIIIEIF=IIBIGFC;ICBIFICAIII>	NM:i:1	MD:Z:99C	oR:Z:1	oH:i:1	oP:i:1960	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.373	147	1	2169	255	100M	=	1961	-308	TGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACT	AI<ICDEI<D at ICAIDIIIFIIBI:@DDIH at IHIBIH>IFEIF>CIGHDHDIHEIEIIGIEIIIGFHFHIIHIIIIDHIIFIFHHHIHIHIHHHHIHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2168	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.374	99	1	4683	255	100M	=	4867	284	ATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTA	IHIIHIHIIHIHGHIGGIGHIHIHIIIIIIIIIIBDIIIIFFHHHGIHICIIIIACIIIIHIIIIE at BIIIICD@FIIFIHHGIIIIFIIII<I:IIBCG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4682	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -823,7 +823,7 @@ simulated.410	83	1	8054	255	100M	=	7795	359	ACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGA
 simulated.410	163	1	7795	255	100M	=	8054	-359	ATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAG	HHIIIIIIIIIIIIIIGHIGIIIHIDFHIEHEGGCHGBHHIIIIIGIGIHGDHIIGIIIIHIHIEIIGGCIIGIBDIIIIIFHIIIBIIII at CHAIFFF<	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7794	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.411	83	1	8384	255	100M	=	8198	286	CACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCC	GIH:IIGHBIAIIIBCIIII?IIDIC?CGEIIIIIIIEHBICEGHIBIIIFFIIIFFDIDEIIEHIHEGIIHFIFGIIGIIHHIHIGHHIIHIIIHIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8383	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.411	163	1	8198	255	100M	=	8384	-286	CACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCG	IHIHIHHHIIIIHHIHIIHFIIIIFGFIIIIGHIHGFFHIIIGGFIEIGIFIIIIIIIHIIIDIHGIFIIFIIIIIDEEICIE;HDIIFIBDEIGA@?II	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8197	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.412	99	1	6875	255	59M1D41M	=	7098	323	ACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAA	IIIHHHHIGIHHHIHHIFHIGIGIHGIGHIGIGIIIGHHFICDIHGDIHFDGGGFIHIFIEFIIIIEAHIIDGCGIIIIIHIICHCBFI at D>>DGIHFFI	NM:i:1	MD:Z:59^T41	oR:Z:1	oH:i:1	oP:i:6874	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.412	99	1	6875	255	59M1D41M	=	7098	323	ACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAA	IIIHHHHIGIHHHIHHIFHIGIGIHGIGHIGIGIIIGHHFICDIHGDIHFDGGGFIHIFIEFIIIIEAHIIDGCGIIIIIHIICHCBFI at D>>DGIHFFI	NM:i:1	MD:Z:59T41	oR:Z:1	oH:i:1	oP:i:6874	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.412	147	1	7098	255	100M	=	6875	-323	ACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGT	IIIAFIDIIDIIGEIIIIFI at DI@IFDBIGFEFIIIIIIEFIIIFEDFCIAIBIGHIDIHGIIIIGGFIIIGHIIIHHFIIIHIHHIHIIHHIIHHHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7097	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.413	99	2	445	255	100M	=	647	302	GCATGTTCCTCACCTGGTGAGCATTGGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCGCCTGGTGCGCTGGTAAG	HIIIHHHIIIIIHIHIIHHGHIFIIIGIIIIIGEIGIIIHIIIIGIIEIEHGIGFFHIGIEEGGGH?IIFIHIGIHICIIFI1GI<EDICIIAIIDIIHC	NM:i:1	MD:Z:82C17	oR:Z:2	oH:i:1	oP:i:444	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.413	147	2	647	255	100M	=	445	-302	GAATCCGTTTTTATTCGACTCTTCTTGCATTCATCACCGGCTCATACTTGAAACTACTATGCCTAGCCGAGGTGCCAGAACTAATAATCGGACGGTGGTT	IIIAI?CF at IGGHDFHDIEFHFEIIIIGEEICIHECIFFFHFIIIIDIEIIIIFIIIIIIICIGIHIGIHHIIIIIGIGIIIHIIIHIIHHIGIIHIHII	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:646	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -941,7 +941,7 @@ simulated.469	99	1	6871	255	100M	=	7083	312	CTTAACCCTACCGGCAAGCCTACCATCAAGTAATGG
 simulated.469	147	1	7083	255	100M	=	6871	-312	GAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGT	BIEBIGI<IIIGDCBIII at FGHG@IIIB?BIGEH>C>IFIIHEFGICGIIIGGIHH at IFIIEIGIAIFIHIHIIFGGGHIIIHIIHIIIIGIIIIHHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7082	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.470	99	1	5902	255	100M	=	6118	316	GATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGAATTGAATCCGAACGGGTAGTGGCAGCTCTTACGTAGTCTTTGCC	IHIHHIHHIHIHHHIIIGHHIIIIIIEHGEIGGIGGIIIHDGFIIGIIEGEIGIIIEIIGCIIEIDIHFGIIIFCICFICIGGGDI at DCIIHICI@IIII	NM:i:2	MD:Z:55C18T25	oR:Z:1	oH:i:1	oP:i:5901	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.470	147	1	6118	255	100M	=	5902	-316	ACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGAT	IE>IIHCEIIIAIBCGHIC at DG?IHIC at IDE:GEIIHDHEDIGEIEIEIIIHEGIIIGIIGICHGBGGFGFHIGHIHHHFIGEIIHIIIHIIIIIIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6117	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.471	83	1	5977	255	23M1D77M	=	5782	296	TGGCAGCTCTTACGTAGTCTTTGCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGC	AFCIIDIIIDIIGHI;IIFFIIIBEIIIIDIFIIFEFDIHIGIIFIIIIIHIIHGGEIIIAFIHGIIGIIIHGHIIIHHHHHIGIIIIHIIIIIIHHHHH	NM:i:1	MD:Z:23^C77	oR:Z:1	oH:i:1	oP:i:5976	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.471	83	1	5977	255	23M1D77M	=	5782	296	TGGCAGCTCTTACGTAGTCTTTGCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGC	AFCIIDIIIDIIGHI;IIFFIIIBEIIIIDIFIIFEFDIHIGIIFIIIIIHIIHGGEIIIAFIHGIIGIIIHGHIIIHHHHHIGIIIIHIIIIIIHHHHH	NM:i:1	MD:Z:23C77	oR:Z:1	oH:i:1	oP:i:5976	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.471	163	1	5782	255	100M	=	5977	-296	GCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCA	IIHHIHIHHIIHIHHIGIIGFHHIHIIFFHHGIIGIHHGIFIIGIIIABIIBIIIIHHFIIIIAIIIEHF>IDIIBDFII at I>GIGIIIHD at DIFIIEI<	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5781	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.472	83	1	777	255	100M	=	604	273	GGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTTGTCACTTCAAGGCAGGTGTCCGCCT	DIDGII>IGCICIAIEFCIIIIIGECIIDIGIBIFBIHHEGIHHIBIHIIEGIHIGIICIDHGHDIIGGIHGGIBIDIGFIIIIHGGGIIIIHIHIIHIH	NM:i:1	MD:Z:74C25	oR:Z:1	oH:i:1	oP:i:776	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.472	163	1	604	255	100M	=	777	-273	CCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCA	HHIHIHHHHIIIHIGHIIIHIIIHIIIHIFIHGFIIHIHCFHICIFDIIDDFGEAHIIIDIEIDIIIIEDGFCDFFGBIIIABHCGIDH?HI@;IIIBFI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:603	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1047,7 +1047,7 @@ simulated.522	83	1	8305	255	100M	=	8066	339	AGAAGCGGGACGCCGCCCCTCTGCAGACGGCGATTT
 simulated.522	163	1	8066	255	100M	=	8305	-339	AATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAAC	IHHIIHIIHHHIGIIGHIIIIHIIGFGEIIIHIGIIIGICIIEHHIEEIIFIEDDCGIIAIDGIIHIFIIAIICDIDGGAEIHFFI;IGA?CIA at IIBID	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8065	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.523	83	2	714	255	100M	=	496	318	CGAGGTGCCAGAACTAATAATCGGACGGTGGTTTTGTCAGTGTCTATGGCCCCATGCATGCAGATGATCCCTTATGTGCCAAAAACGGGTACCCGCTAGC	CIIIEEEIIIAD@>BFFI at IGIEIIFICIAIIEIDGFEI=HGCIDDIHIECFGFIFIEIIIIIIIHHHHEIGFFFIFFIHIGHIHIHIIFHIIIIHHHIH	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:713	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.523	163	2	496	255	100M	=	714	-318	AGATAAGCACTAAGATGGCACTGGCTATTCCCCCTGGTGCGCTGGTGAGTAGTGATTAGTCTATTTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGT	HHIHHHHHIGHHIGIIFIIIGHHHHIHIIIFIIHIICIEIHGHIHG at FHFEGICHFIGIFIIEIGIBIHIIEIIIIIIECHIIIIBIDIBEEFHEAIEII	NM:i:1	MD:Z:46A53	oR:Z:2	oH:i:1	oP:i:495	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.524	83	1	7755	255	100M	=	7571	284	GTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCA	59IDID<E9HIIFIDIAICGIGIDIBEIIEAHIIIEHEADIBHFIGIIGHEIEIIDGHIGIIIEIGHIFIIIIGIGFIGHGHIIIIHIHHIHIHIIIHII	NM:i:1	MD:Z:0C99	oR:Z:1	oH:i:1	oP:i:7754	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.524	83	1	7755	255	100M	=	7571	284	GTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCA	59IDID<E9HIIFIDIAICGIGIDIBEIIEAHIIIEHEADIBHFIGIIGHEIEIIDGHIGIIIEIGHIFIIIIGIGFIGHGHIIIIHIHHIHIHIIIHII	NM:i:1	MD:Z:C99	oR:Z:1	oH:i:1	oP:i:7754	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.524	163	1	7571	255	100M	=	7755	-284	CCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCA	IIIHIHHIHIHIHIIHGHGIHHHGIGHFHGHIHHIIIIIFHIGIGIIIEFHIIHFEIEFDFCGHII>DIIIID?IICAICIHFI:IHII>HG=I at IIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7570	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.525	83	2	476	255	100M	=	260	316	TTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATTAGTCTATTTACCTCTACGAATTG	IH>IAIIEGEHI?CGFEIIICDIIFBIGEGHICE at DIIHIGHIHIGGIIIDIDIGCGHIIIIIIIFIGIEIIIHIGIHHGIHIHIHIIGGIGIIHIHIHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:475	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.525	163	2	260	255	100M	=	476	-316	GATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTG	IHIHIIIHIGHIIIHGIHGHHHHIFIGHGHIIIIFGGFIHGHHDIEIEGHHFCGIHIFIIBIIIEHIIHIF?IFIAIIDIIIEF7FCIIIFIAII>IIID	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:259	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1097,7 +1097,7 @@ simulated.547	83	1	3799	255	100M	=	3560	339	GGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGT
 simulated.547	163	1	3560	255	100M	=	3799	-339	TTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTGATTTTGTCTACGGTCTACCACTTGATCTAGAAGC	HIIIHIHIIHIGIIHIHIHHHGIHHIHIDHIGIHIGIIIHGHGGIIIGEIHBFCECHIIIDDIIGFICIIIIHEDG@;D<D at HGIIIIBGIDECIIGIA:	NM:i:1	MD:Z:65T34	oR:Z:1	oH:i:1	oP:i:3559	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.548	99	1	6508	255	100M	=	6716	308	GTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTT	IHHIHHHHIIHHIIIIGHIHIHIIHIHIEIHHFFGIIIIIFGFIIIIIIIIDIFIIFIEIIIIIIAHIDEIIIIGIII=BIIFGH at AIICGIIHHIFB;I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6507	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.548	147	1	6716	255	100M	=	6508	-308	ACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGC	EGI:IG<HIII=FFCEFHIII>GIEIDABGGIEBEDIEIIHCIFIHCIIICIIGHEGFGHGEIGIHHHFGHIIFIIFIIGGFIHIIIIIIHHIHHHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6715	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.549	99	1	6008	255	43M1D57M	=	6249	341	CTGAGTGAAAAGAAAGCCCCCCTGTGATAGACATCCGGCGTTAGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTT	HHIHIIHHIIHHIIIGIIIIIIIIGHIGGIIIIEFGHIIIEIDIDFGGHEIEGIIHIGCCFFGGGFIIDIIICFFHIFIAII at IHGIAHDIHIIIG@DII	NM:i:2	MD:Z:23A19^T57	oR:Z:1	oH:i:1	oP:i:6007	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.549	99	1	6008	255	43M1D57M	=	6249	341	CTGAGTGAAAAGAAAGCCCCCCTGTGATAGACATCCGGCGTTAGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTT	HHIHIIHHIIHHIIIGIIIIIIIIGHIGGIIIIEFGHIIIEIDIDFGGHEIEGIIHIGCCFFGGGFIIDIIICFFHIFIAII at IHGIAHDIHIIIG@DII	NM:i:2	MD:Z:23A19T57	oR:Z:1	oH:i:1	oP:i:6007	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.549	147	1	6249	255	100M	=	6008	-341	GTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAA	FGICCAIEIAFIFIIIIGII?IIHAIAGIIHAGGDIGFEIIIDICEIEGEIHIIAFIIIIGIDIHIHIHFIGIGGFIFIGHIIHHGHHIIHHIIHIIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6248	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.550	83	1	6947	255	100M	=	6723	324	CGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGT	IIICDCIDEEBCIGIFHGIIIEI=DIHFFG<IFEIIIIEIIFHDHICIIIIHFIHIIIFHIGIDIIGHIIHGGHIHHIHHIIIGIHIHGHHHHHIHHHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6946	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.550	163	1	6723	255	100M	=	6947	-324	AAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATA	HHIHHHHHHHHHHIFIIGGHIIHIIHEEIIHIIIIIIFFIFIIIIFIIHIIHEGFGIHCIIDEFIIIEADIIIFIFHIEIHIIAEIIIIGIIIGIHIIIC	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6722	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1372,7 +1372,7 @@ simulated.684	163	1	8969	255	100M	=	9170	-301	GGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCA
 simulated.685	99	1	84	255	100M	=	294	310	TGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAG	HHIIIHHIIGHIHIHIFHIGHIIHEIIHIGIIIHGGIIHGEIIIHGGI at DIIIIIEHEIIICIICBFIIICIFIIFIIG@FIII at I>F@@IFH>IIGIAG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:83	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.685	147	1	294	255	100M	=	84	-310	ATCGCTTATTAAGGNATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTA	BDEIIBIFEIIH<IAIB=HHAC9GI>IHGFCIIHIIIDI at IIIHGICIHDDIDIFIIEIIIIEEEGBIFGIIHHGHGHIIIGIIHHHIIHHHIIHHHIHI	NM:i:1	MD:Z:14A85	oR:Z:1	oH:i:1	oP:i:293	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.686	99	1	7319	255	100M	=	7501	282	CGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGCGTGC	IIHHIHIHHHHFHIHIIIIHIHIIIFHIIHHFHFIGIDIFHDFIGHIDDIGFFIGCGFGFICHIIIIICCIFIF at FAIIIBIIIDIIIIEIHEIDIGGAI	NM:i:1	MD:Z:95A4	oR:Z:1	oH:i:1	oP:i:7318	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.686	147	1	7501	255	100M	=	7319	-282	TGCATATCCCTGCACCTTTCATAGCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTAT	GIDGBIIIEIF;IGIECIIIFI6BHIIIBIHIB=GFFCIFIIDIIHIHGIIHIIIFFIIIIHIIGIIHIIGGIIGGHFHEGHIIIGHIHIHHHIHHIIIH	NM:i:2	MD:Z:22T0T76	oR:Z:1	oH:i:1	oP:i:7500	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.686	147	1	7501	255	100M	=	7319	-282	TGCATATCCCTGCACCTTTCATAGCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTAT	GIDGBIIIEIF;IGIECIIIFI6BHIIIBIHIB=GFFCIFIIDIIHIHGIIHIIIFFIIIIHIIGIIHIIGGIIGGHFHEGHIIIGHIHIHHHIHHIIIH	NM:i:2	MD:Z:22TT76	oR:Z:1	oH:i:1	oP:i:7500	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.687	99	2	103	255	100M	=	328	325	TCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTA	IIIHIHHHIIHHHIIHFHHHGHEGIGHHIHHFIDIGFIIIIHGEIGIFIFFGGFACII at IIEHIIFGIIHIIIICI<ICIHCFDHIFBIIFH8IIC?II=	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:102	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.687	147	2	328	255	100M	=	103	-325	ACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAATCAGACTAG	IDCI;I at HIIHDEFIHIEIIBDIGIII?IHGIHIIFHB at IIDEIDHGEIHFIHIGGIHIGIIHIEIHIHFIGIHFGFHFHGGIIHIHIGIIHHIIHHIHH	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:327	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.688	83	1	7497	255	100M	=	7310	287	TTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATT	EIIIHFI;FICIIIDCEIIEIIF at ICIGGHBBIHIAHIEIIIIIIIIIIIIIGGIGIGICHFEEIIHIIHHIHIIIIIFIHIIIIGIIHIHIHHIIHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7496	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1454,9 +1454,9 @@ simulated.725	147	1	2843	255	100M	=	2641	-302	AAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTA
 simulated.726	83	1	1719	255	100M	=	1535	284	CGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAG	<IIBCGII>HHIHFHIHIHIIIEIBDIFIIEFIIIC?GDIEFEIDIGGHEIDHGHHEHFHHIIEIFIIGIIIHFIHIHHIHHIHHIHHGIHHHHHIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1718	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.726	163	1	1535	255	100M	=	1719	-284	CTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAG	IIHHIHHIHHIIHHIHHIEIHGIHIFGIHGIIFIIIGGHHH at IIGIIGGIIIIEFBCEIHHIIGIDIDIIFIIIIIF@HIHGIBIIIHII;IIDFIFGIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1534	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.727	83	1	8128	255	100M	=	7952	276	CGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATT	DII=EHIEBIIGIDI>BCFH<DBIFAIIICHIIIIEAHIIH=IICFDICGIIIDHHEIEIGGFIHIIIFEHIHIIFHIHIHGIHIGHIIHHHHHHIIIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8127	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.727	163	1	7952	255	100M	=	8128	-276	AGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCACCGGGCTCATAGTATTGTTGAATTTCACGATCGCGACTC	HHIHIIIHHIHIHHIIIIGIGIGFHHIIIIIIGIGIFDIIGDIHDIIIIHGICEDICIFIE:HIHGIGGIADIIEICHIHFFEIIIIGFBHI=III;CII	NM:i:3	MD:Z:61A34G0G2	oR:Z:1	oH:i:1	oP:i:7951	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.727	163	1	7952	255	100M	=	8128	-276	AGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCACCGGGCTCATAGTATTGTTGAATTTCACGATCGCGACTC	HHIHIIIHHIHIHHIIIIGIGIGFHHIIIIIIGIGIFDIIGDIHDIIIIHGICEDICIFIE:HIHGIGGIADIIEICHIHFFEIIIIGFBHI=III;CII	NM:i:3	MD:Z:61A34GG2	oR:Z:1	oH:i:1	oP:i:7951	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.728	99	1	3166	255	100M	=	3397	330	CTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTA	IHIHIHHIHIIIIIGIIIGIHIIHHHIGIIIIFHGHGIGIIGHHIIIIEIFCIIIIFIDCIDIGGCFHAEIGII at IGII@IIIEHIIHICICDCFIIIDG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3165	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.728	147	1	3397	255	82M1I17M	=	3166	-330	GCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAGATGGTAAATCTTTAAGA	9DID?IHHBIGII4DHIIIIIBIGIBIID?IIIEIIIBEDEIIHGIIIEGCIGEIDIIFHGIHHIIEHIGIIGIFGEIGIIICHIIHIIIGHIIIHHHHH	NM:i:2	MD:Z:0C98	oR:Z:1	oH:i:1	oP:i:3396	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.728	147	1	3397	255	82M1I17M	=	3166	-330	GCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAGATGGTAAATCTTTAAGA	9DID?IHHBIGII4DHIIIIIBIGIBIID?IIIEIIIBEDEIIHGIIIEGCIGEIDIIFHGIHHIIEHIGIIGIFGEIGIIICHIIHIIIGHIIIHHHHH	NM:i:2	MD:Z:C98	oR:Z:1	oH:i:1	oP:i:3396	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.729	99	1	2096	255	100M	=	2254	258	CCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGT	HHIIHHIHIHHHIIFGHGHIFIIIHIIFIDGIIIEGGHBHFFIIHIEIIFIIIIICCIHIBICIHGGIGCIEIDEIIIAHIIF>AEIIIIIIIGIDEDII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2095	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.729	147	1	2254	255	100M	=	2096	-258	TGCACGTAGACTACCGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTC	IEIDG>IIIBIFFI>=IE at IIDFHIIBG@IE?IEBIHIICIIIIDIIIIFFIGIHGIIIEIHIIIHIGIIIGGGGIIIIHHIHHGIIIHHHIIHIIIHII	NM:i:1	MD:Z:14T85	oR:Z:1	oH:i:1	oP:i:2253	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.730	99	1	4707	255	100M	=	4911	304	CCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAACATCCGTGTTCTAAG	IHHHHHHIIIIIIHFIIIFIIIGEHEFIIIHIIGHFHIIIIIHIIICIGDGIIIBGFEIDHIIBIFD>IHIFIDIICIEI=G?IIGCIIIIBFF>IBBFI	NM:i:1	MD:Z:85A14	oR:Z:1	oH:i:1	oP:i:4706	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -1716,7 +1716,7 @@ simulated.856	163	1	7907	255	100M	=	8129	-322	CTGGGTCAATGGATTCGAATGCAATGCGACAGTC
 simulated.857	83	1	4849	255	100M	=	4657	292	ATTCACCTATTATCAGTTGACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGC	II9II?ABI?ADIIHEDI:HIIHDCIIIEHAHHGIHIHGHHIHFIFGHHHIHIIGIIGIFDIHIIIFHEHIHFHIIIHIHFIHIIIHHIHIGHHIIHHHI	NM:i:1	MD:Z:18T81	oR:Z:1	oH:i:1	oP:i:4848	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.857	163	1	4657	255	100M	=	4849	-292	TGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTCCGTATCCTATCTTTCGCTCCGCTTCTCCCCCAAACCTCCTCATGGA	IIHHHHHIHIHIHHIIIIGIFIHIIIIIIIHIIIIIGIIIIFHIGIGHIGIID:EIFIGCACIIIHG at IIIHHHDIHI>DHAIHBIIGBIIDDHIAHIIC	NM:i:2	MD:Z:53T24A21	oR:Z:1	oH:i:1	oP:i:4656	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.858	99	1	4050	255	100M	=	4237	288	GCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATA	HIIHHIIIHHIHGIGIIIIGIGIHIIIFIIIGIIDIHEFGBAIIIFGEHFIEDGGGFFIIIIIHEIII=EGDIIGICDAI at IIHCCEGIAIIGIHBDIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4049	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.858	147	1	4237	255	54M1D46M	=	4050	-288	AACGGGCCAACATACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCAT	IDII=BB=IIGAEIIHDIIAI<FACG=G=HDEIIAGCFGIIDFIICIIIIHIIIIGFIIHGIIECIHGIHEFFHGIIIIIHHHIHIHHIHGHHIHIHIHI	NM:i:2	MD:Z:11C42^G46	oR:Z:1	oH:i:1	oP:i:4236	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.858	147	1	4237	255	54M1D46M	=	4050	-288	AACGGGCCAACATACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCAT	IDII=BB=IIGAEIIHDIIAI<FACG=G=HDEIIAGCFGIIDFIICIIIIHIIIIGFIIHGIIECIHGIHEFFHGIIIIIHHHIHIHHIHGHHIHIHIHI	NM:i:2	MD:Z:11C42G46	oR:Z:1	oH:i:1	oP:i:4236	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.859	83	1	5994	255	100M	=	5784	310	TCTTTGCAGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCC	IHH;FII9IGIIIIGIEEEFFIICIH=IFIDIIFFAIFCGIIIDDIIIGIIFHIIGIDFIIIGGIIGIHIIIIIIFIHHFIIGHHHHHIHGHGIHHHHII	NM:i:1	MD:Z:7C92	oR:Z:1	oH:i:1	oP:i:5993	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.859	163	1	5784	255	100M	=	5994	-310	ATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACT	HIIIHHIHIIHIIHGHIIIHIIHGIIHGIEIGIFIIIIEIIIIIEBHFIHGIGIBIIIIAIIGCDFIFFIIDAIIIIIFID at AFH?IIEDDII=FIIICB	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5783	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.860	99	1	5947	255	100M	=	6118	271	CGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGC	IHHHHIHHIHIIIHFIIHFIIIGGIIGIGIEIIIIGFIIHFGEIGHIIIHEIBIHDII?DIFIIBIIIBIIIFDH8HHDIIIGIHFIGB;CHIHIDGAIA	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5946	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1754,10 +1754,10 @@ simulated.875	147	1	3096	255	100M	=	2880	-316	ACGTATGTCTTCCAATTATCGTATATCGCAAGCG
 simulated.876	83	1	7246	255	100M	=	7067	279	AAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTC	I>IIEIEIDFID=IEIDII?CDEIIBFIIBGECGB at EIIIIFHHIIIFCHIEHIGAHIHFIIIFFGIEHIHHIGHGHFIFIGIGGHIHGIHHIIIHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7245	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.876	163	1	7067	255	100M	=	7246	-279	TTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAG	HHHHHIHHHHHHIHHGHIIHIIGHIIIIIHFHIEIHIGIIFFIIIIIIIEIGIBIIIFIIHAICHFBIDGIHEG?IAICHIIIFIEIFFDICI=III;I@	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7066	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.877	99	1	6726	255	100M	=	6903	277	CTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCCCGCGGTCGCTACCATATAG	HIIIIIHIIHGIHHIIHIGHIIHHFGIIGIHHHIGIIDIHFIIFCCIFFIIEGDIIIHCFIIAAIIIIFIHID?IHI9IH>GIIGII>=DFII>IIIICI	NM:i:1	MD:Z:80G19	oR:Z:1	oH:i:1	oP:i:6725	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.877	147	1	6903	255	100M	=	6726	-277	CTGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGT	0II8IIGICC<GIGID<GIIHF?IIEIBICCIIFIDE>EIEIHIGIHFEHFCFGEDIHIIIDEIIIIFIGDHFHHGGFIIIIIGFIHIHIHHHIIIIHHI	NM:i:1	MD:Z:0A99	oR:Z:1	oH:i:1	oP:i:6902	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.877	147	1	6903	255	100M	=	6726	-277	CTGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGT	0II8IIGICC<GIGID<GIIHF?IIEIBICCIIFIDE>EIEIHIGIHFEHFCFGEDIHIIIDEIIIIFIGDHFHHGGFIIIIIGFIHIHIHHHIIIIHHI	NM:i:1	MD:Z:A99	oR:Z:1	oH:i:1	oP:i:6902	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.878	99	1	1889	255	100M	=	2075	286	CTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGG	HHHHIIIIIIHIIFIIIIIIHIEGIGGIIGHGIFIGGFGHGFIHIIIIIFFIGIIGIGIIF at EIEAIC?IFE?HDIIHIDEBII<II>IIIHIFI>FDBI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1888	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.878	147	1	2075	255	100M	=	1889	-286	CCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTAC	@GIDFIIHIGIICIIIFHEHHDEFII?FAIDIGFFFIIIIEIBFIIEIICCHEHIFHGHIEIIIGIEHIFIGFIIIIIIIIGHIIHGGIGIIIHIHHIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2074	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.879	83	1	2934	255	100M	=	2717	317	GATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCG	DIDIIHHFI9DIIIIIIADIIBIEIIIIIIIFICIBIFHFFFH>HIECFDIHDFHIIFEGBIIIHGEGIIGGHIHHGFIGHIIIIIHIIHHHHIHIIHIH	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:2933	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.879	83	1	2934	255	100M	=	2717	317	GATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCG	DIDIIHHFI9DIIIIIIADIIBIEIIIIIIIFICIBIFHFFFH>HIECFDIHDFHIIFEGBIIIHGEGIIGGHIHHGFIGHIIIIIHIIHHHHIHIIHIH	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:2933	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.879	163	1	2717	255	100M	=	2934	-317	TAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTCCTATGTCCCCTAACTTTTGAAAC	IHIIIIIHIHGHHHIIIGHGIIHGGGGIGHGIHFGIHIHGIDIIEGIGIFIFAGHIIIIICAIIAIHIIC?EFEDF:DIEIIIII at IIEGHIIIIBDIII	NM:i:1	MD:Z:76G23	oR:Z:1	oH:i:1	oP:i:2716	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.880	99	1	5604	255	100M	=	5786	282	CAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTT	HIHIIIHIIHHIHIHHIHHHHHFIIIHHFIIIFGGGHIIICIIHFGHCBIHGIEIIIIDFDEDIIIIAFIDHBICECECI at IEFIIIHII9HIH;DIFHE	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5603	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.880	147	1	5786	255	100M	=	5604	-282	TGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTG	IIICICHGIIAIIIIEI at BGGGBIIACI@?IHIIIIIHHGDIBIHGCHHIIBIEFIHHICDIIFHIIFIIFIFIGIIIGHIHHIIIIHHHHIIHHHHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5785	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1769,7 +1769,7 @@ simulated.883	99	1	7888	255	100M	=	8102	314	CCCTAAGACAAGGCATACGCTGGGTCAATGGATTCG
 simulated.883	147	1	8102	255	100M	=	7888	-314	GCTCGGAATTCTGAATGTTCAGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACA	HIBIIICFIFH=IICDGFIEFGHIIFD<GAGGIIAIAFHFGIAIIGFIIIDFIHEIEGGIIIIGIGFGIIDFIGFHHIFIGIIGIHIGGHIHHIIHIHHH	NM:i:1	MD:Z:20C79	oR:Z:1	oH:i:1	oP:i:8101	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.884	83	1	5989	255	100M	=	5794	295	CGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACT	IIII at EIII;IIHGGDHIHIICFHFIDFCIEI?ICIIEFIIGICHIIGIEEIIEEIIIIHIIIFIIHIDGIHFIIIGIIIGGHIIIIIIIIHHIHHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5988	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.884	163	1	5794	255	100M	=	5989	-295	GCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTC	HIIIIIIIIHIIHIIIHHIIFGHIFFIGHFFGGGIIHIIDIIIIGIIGIEGIAE?GIADIEIGIFEIIFDEIIIGHHIIBIHFIDIFGIIGFIEHHIIAE	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5793	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.885	99	1	439	255	100M	=	651	312	TGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATCCCAGAAAGTAGTTGAGGAAG	IIHHIIIHIHHHHIHIHGGIHIIIHIIHIIIIIGIGIGI at IGHIGIGFHIEIIIDGIHCIIHBGGDCHIDIAGHIHIG@?F>IBIGIGGGIIIADA?B=C	NM:i:3	MD:Z:79A13T0C5	oR:Z:1	oH:i:1	oP:i:438	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.885	99	1	439	255	100M	=	651	312	TGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATCCCAGAAAGTAGTTGAGGAAG	IIHHIIIHIHHHHIHIHGGIHIIIHIIHIIIIIGIGIGI at IGHIGIGFHIEIIIDGIHCIIHBGGDCHIDIAGHIHIG@?F>IBIGIGGGIIIADA?B=C	NM:i:3	MD:Z:79A13TC5	oR:Z:1	oH:i:1	oP:i:438	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.885	147	1	651	255	100M	=	439	-312	CGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGAT	IIIIIGIIFIIIIIIHIC?IB?<I<IIEAIIIIHIIHFIIIHIIFIGFGIGIFHHIDIIIIIIIIIGEGHGGIFHFHIIHHIHIHHGGGIIIHHHIIHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:650	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.886	83	1	7643	255	100M	=	7460	283	GGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGG	I>FAI=IBDF;CI=BEIIBGIF at IIIFEIGIIIGIBIEIIEIFHEIIIFIIIEHCIIIHIFFGIIIIIHIHIIFIHGFHGHIIGHIHIIIIHIIHIIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7642	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.886	163	1	7460	255	100M	=	7643	-283	TATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAA	IIHHHHIHHHIHGIHGHHIHIIHIGIHIFHIHFGGHHIIHHIIFHIHIIHIIIIIHFIDDGG at IIIFIIIHHIIIIHIBGIIEIIDIEIDIIIIIGIIDA	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7459	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1797,7 +1797,7 @@ simulated.897	99	1	2479	255	100M	=	2657	278	AGCCAGTGAATCGCGTGATACATTGCCTTGGAATCT
 simulated.897	147	1	2657	255	100M	=	2479	-278	ACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGC	IIIEBEGCDD=IE?FFIDIGIIHIIHHIIICH?GIIIEBIEIFIBIIIIIFIFIFGEGIHEEIGIIIIIIIEHIHEIGGGIIHIIHGIHHIIIIHIIIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2656	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.898	83	1	1645	255	100M	=	1402	343	CAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAG	AIIEEII>=II at I?DFEFHEIHIHGIIHBHDDDHIHEIBDHIBFIGGGGIIIFIEIIIIIEGIIGIHIEIFHIGHIIGFIIIGFIIIIHHIIHHIIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1644	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.898	163	1	1402	255	100M	=	1645	-343	GACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCTGGCCCGCCCAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTC	HIIHHHHHHHFIIIIHGHHGIIIHFIHHHGIIHIIGIEHHIIDIIIIGHIGGGICEIGIBIFIGDB9FIIHFCIIHBIIGIFIIBIFCD at GIIIIFIIII	NM:i:2	MD:Z:58C7A33	oR:Z:1	oH:i:1	oP:i:1401	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.899	99	1	473	255	7M1D93M	=	644	271	CGCACAGTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATT	HIHHHIHIIHIGHIHIIIHGIHIGIHIIHGFGHICIIHIIIIIIEIGGIGIHIGIEIHFIHCBE at G@IIFEIIIIIIFI at CIIII?IFIIBI>FHHAIGI	NM:i:1	MD:Z:7^T93	oR:Z:1	oH:i:1	oP:i:472	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.899	99	1	473	255	7M1D93M	=	644	271	CGCACAGTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATT	HIHHHIHIIHIGHIHIIIHGIHIGIHIIHGFGHICIIHIIIIIIEIGGIGIHIGIEIHFIHCBE at G@IIFEIIIIIIFI at CIIII?IFIIBI>FHHAIGI	NM:i:1	MD:Z:7T93	oR:Z:1	oH:i:1	oP:i:472	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.899	147	1	644	255	100M	=	473	-271	GACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGC	IEIIFICBCEIAIDICIIBGG;IHIFIIEIHIEIIDFIIIIIIFIIIIHGIFIIIFHIIIIEHIGIFGGIHHGHFIHIGFGFHIIIIIIIHIIHHIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:643	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.900	99	1	2849	255	100M	=	3080	331	CTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGNGCCTATGCAGNGTGCTACCTATACTTTTCGGCTATGGTGACGGCATA	IIIIHIHHHIGIGHGHHHIIIHIHIIHGGGIIIHGHIIIIEFIGIIIIICDGBIIIIDHIEIBGBGIIICIEECGECFHAI?FGCHEI>IHAIIIIHIBI	NM:i:2	MD:Z:52T10T36	oR:Z:1	oH:i:1	oP:i:2848	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.900	147	1	3080	255	100M	=	2849	-331	ACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGA	IIIIFI at GIGIIIHIIFIIFIIFIIHIIIGBCDHHDBIIIDHGIIIGBFIIGIGIHIGIGIIHDIGCIGGIHHEIFIIIHEHIHHHHIHIHHHHHIHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3079	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1808,7 +1808,7 @@ simulated.902	147	1	9042	255	100M	=	8830	-312	ATAGCATGTGCGTTGAACAACCACTACAAAGGAA
 simulated.903	83	1	9127	255	100M	=	8928	299	GTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAA	GDICIFFGIICIII?FIIIIIIIIIIFGIFDGCGHFIHIIEIIHIIIHHIHEGAFIDGIGFGIIIGIFICGIEHIHFIIIHGFHIFHIGIHIHHIIHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9126	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.903	163	1	8928	255	100M	=	9127	-299	CCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGANTATGATG	HHHHIIHHIHIHHIGHGIIHIHIIIIFIGHHIFEFFGIEBGGFHGFIIFIIIIGEEIIGDEEIFGEIIHCHIIGIIEHI>FIIEIGFCCIIHCIIIIFIC	NM:i:1	MD:Z:92T7	oR:Z:1	oH:i:1	oP:i:8927	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.904	99	1	132	255	100M	=	341	309	GTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAAGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCC	IHHHIIIIIHIHIIIHGIIIIIFIHGIIGHGGIIGFEEDDIIIEGIIGIIIIEGICIDEFCIIIIIDHIBIIFICEIFIIHFHIIIBI?BIIIECHHICH	NM:i:1	MD:Z:35G64	oR:Z:1	oH:i:1	oP:i:131	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.904	147	1	341	255	100M	=	132	-309	TCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCCG	IAAGHHI6GFICFIFDCIBFIICG<HGIHEIIIIIIGGBIHIDCIIEGIIBIIEFFICIIHEIDGFIIHDHGIIHGGIIIHIIHIHGIIHIHHIIHIIII	NM:i:2	MD:Z:0G97T1	oR:Z:1	oH:i:1	oP:i:340	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.904	147	1	341	255	100M	=	132	-309	TCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCCG	IAAGHHI6GFICFIFDCIBFIICG<HGIHEIIIIIIGGBIHIDCIIEGIIBIIEFFICIIHEIDGFIIHDHGIIHGGIIIHIIHIHGIIHIHHIIHIIII	NM:i:2	MD:Z:G97T1	oR:Z:1	oH:i:1	oP:i:340	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.905	99	1	8226	255	100M	=	8418	292	TTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCANAAGAAGCGGGACGCCGCCGCTC	HIHHIIIHHHHIIHIGIHHIHIGFHHIIIGIIIHCEGHIIIIHBCIIHIHFGFIIIIFII at IIIIIIHDIIIHIHH?:FIFIIIID?IEDF=II6ICFII	NM:i:1	MD:Z:77T22	oR:Z:1	oH:i:1	oP:i:8225	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.905	147	1	8418	255	100M	=	8226	-292	CATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTG	BIDI at II??IIEIDIBI;?IIIIIIIIDEFIGIDIIIIIIEIEIIIIGIDHHGIEGIFHGFIGHHFGIHIDEHIIGIIHIIHIIHHHGHGIIIIHIHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8417	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.906	99	1	5121	255	100M	=	5335	314	GTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCA	IHIHIIIHIIHHIHIHIIHGGFHIHIFIEIHGHIHGIFIHAHDIIIIHIEDHHIDIHFIIIIIGIIIIHIEGIAADEFIIGEIHIIGIEEIIIIIEI>FA	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5120	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1846,7 +1846,7 @@ simulated.921	163	1	7382	255	100M	=	7621	-339	AAATATCCGCCATGCCCTCGTAGCCTTGTGTGAG
 simulated.922	83	1	385	255	100M	=	196	289	AATGGACTAGCAAACCCTGTCGAGATAGCCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAG	I;9CC2>CICI7IIIHIEGFHIGIIEIFCIIID at EIIIHIFAFDEIIHIIIIIGIIEHHIIFHIIIIIGHHIIIIGDIGIHGHHIIIIIIIIIHIIHHHI	NM:i:2	MD:Z:5C22G71	oR:Z:1	oH:i:1	oP:i:384	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.922	163	1	196	255	100M	=	385	-289	ATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGGTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAGT	IHHHIIHHIHIHHHHIHIFIGGIFIHGEHIIIHIHGBIII at IIIIIFHFEIIIIHIDIBGIBFBH@IHIFIIIHEACEIIF>HB?ICIIIBFCIH8AFII	NM:i:2	MD:Z:40C57A1	oR:Z:1	oH:i:1	oP:i:195	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.923	99	1	2433	255	100M	=	2650	317	ATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTT	IHHIIIGIIHHHIIIHIIIIIIGHIIIGIGIHIFIEFCIGGGHIEIEGGIIHHHIGCIDBIADFIIFEGICIEAIIG>HIHIHIABFCIEIIIIFID at II	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2432	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.923	147	1	2650	255	100M	=	2433	-317	NTCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGA	EEIIIICIEICII?IICIIIHB>IHHIIHCFIGIIIIIGGIIBFIHEIIIIIIHIGEHHIIEGFFFHHHFIIHIIHGHIIIHIIFIIHIHIIGHIIHIHI	NM:i:1	MD:Z:0A99	oR:Z:1	oH:i:1	oP:i:2649	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.923	147	1	2650	255	100M	=	2433	-317	NTCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGA	EEIIIICIEICII?IICIIIHB>IHHIIHCFIGIIIIIGGIIBFIHEIIIIIIHIGEHHIIEGFFFHHHFIIHIIHGHIIIHIIFIIHIHIIGHIIHIHI	NM:i:1	MD:Z:A99	oR:Z:1	oH:i:1	oP:i:2649	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.924	83	1	3292	255	100M	=	3044	348	TTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATG	IHIIIAGFGDG?IIIIIIIIIIIIGGIIE?CIIIHIIBIIFIIFFIIGIHIEFIIIIIAFIIIIIFIDHIIGFIHGIIIHFGIHHHHHIIIIHIHIIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3291	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.924	163	1	3044	255	100M	=	3292	-348	AGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAGTTATCGTATAGCGCAAGCGCCCACATCGCTGGG	HIIIIHHHIIHHHIIIHHIGHIHIIGIFHFHHIGEDFFGCGIIIIIGGIDAIGHICHBIIHAIDIC>IIADHIIIIIIHCHICEAI?H?I7BIHIIIIFE	NM:i:1	MD:Z:66A33	oR:Z:1	oH:i:1	oP:i:3043	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.925	83	1	5457	255	100M	=	5254	303	AACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACC	AIIIHIIIIIIBGGEICFDFICDIHIIIIIICGIEIEIHIIICIIIEHEIIHIHFHGHEFIBIIIHHFEIIIGHIGHIIGGIHGIHIHHHIIHIIIHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5456	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1919,7 +1919,7 @@ simulated.958	99	1	7707	255	100M	=	7927	320	AACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGG
 simulated.958	147	1	7927	255	100M	=	7707	-320	GCTATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTA	IHDEIAII:ICIGFIDICGGIIII?HIEIIICIIEDIIECHIIIFGHIIHEIIBFIGFHIGIDIGIIHFIIGIHIIHFEHHHGIIHHIHIHIIHIHHHHI	NM:i:1	MD:Z:2A97	oR:Z:1	oH:i:1	oP:i:7926	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.959	99	1	5347	255	100M	=	5536	289	TGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTT	IHHIHIIHIGGHHIIHIIHHIGIHIFIGGFGEIEIGIIFIIHCIDIHIHFCIIEGHDGIAEHIHDE at ICIIIIIIIIIDFIG@IIHGFCHIHIII?E at IC	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5346	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.959	147	1	5536	255	100M	=	5347	-289	CCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACC	IIICIHEIIIIIHGIIIEIIGIIIIIIGIIEIIIE at FIIIGIHIFGIIGGGDDIHIIHEIFDDGGIGHFIGDFHIFIIFFHHIGIHHGIHIIIHHHIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5535	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.960	83	1	8845	255	100M	=	8623	322	GCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAA	BIIHIIFIA:IIIIGIICIEDIHEIEHIIIGIIIIFIIIIHIIFFIIIHIHHIIGIIIIGHIIIFEHIFHIFIGHIIHIFGIHIIIHHHFHHIIIIHIHI	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:8844	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.960	83	1	8845	255	100M	=	8623	322	GCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAA	BIIHIIFIA:IIIIGIICIEDIHEIEHIIIGIIIIFIIIIHIIFFIIIHIHHIIGIIIIGHIIIFEHIFHIFIGHIIHIFGIHIIIHHHFHHIIIIHIHI	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:8844	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.960	163	1	8623	255	100M	=	8845	-322	TGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCA	IIIIHIIIHHIIIIIGFIGIHHHIIIGIIIGIIIEHGIIHIHDFIIGGHEIIEIGFIIHHFHDEDGFI@?GCAIIIIIIGIFH=II at HFEHIG?I;IICI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8622	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.961	83	1	9491	255	100M	=	9328	263	GCGTCGAGGCTAGGTACGGTCGCGGCATTCACCCGTCGGAACTAAACGCCAGAGTCTAGAGCAGCCACATAAAAATAAATTGAATCGTTNGCTCCGCCGT	I at IFICIHIIIIIIHIFBEDIGBFIGIIIIEH:HIGIIDIDIFIFIIECBFGGEIFIIIFGIGIIIIHIGGFGIDEHIIHHGHHGIIGIEIGIIHIHIII	NM:i:1	MD:Z:89A10	oR:Z:1	oH:i:1	oP:i:9490	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.961	163	1	9328	255	100M	=	9491	-263	ATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCG	IIHIHIIHIHHIIGIIIEIIGIIIGHIEIHHEGIIIFIHIIDIIEIIIFDEIIBIEBIIIIDIGEGIA at IGFHI<IIHEFICIIDEIAIFIEDHBFIFII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9327	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1976,7 +1976,7 @@ simulated.986	147	1	7937	255	100M	=	7754	-283	AGTCCGTGGTGTAGTAGTGTATAACTCTGAATAA
 simulated.987	99	1	1240	255	100M	=	1434	294	TCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTATCCACCGTTCATAACCCAACAGACTGCG	IIIIHHHHHHHIGIIIIIFIIHHHHHIGIIIHIIEIEHIHFIEIIIHFFHGGIIIFFIIIGI=HCIIIGEIGII?IIF=CBIBEIBCA?6II at IIIGIIB	NM:i:2	MD:Z:72C16C10	oR:Z:1	oH:i:1	oP:i:1239	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.987	147	1	1434	255	100M	=	1240	-294	CGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTT	HIBGIHDFIFGICFCIIIIAIFIAIHFFFI?IEIGFBIIFIFIIDIIFGDIIFIIEIFFFIHFIFHGFIGIGGIHEIHGHIGIHIGHIGIHGHIHIHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1433	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.988	83	1	2906	255	100M	=	2750	256	ATGCAGTGTGCTACCTATACTTTGCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAA	BFIIHIIIAIDIGIIIIIABIIHDIIDFCFHIGICIEIICIIIIEIIIGBIDIIIIIIIIIHHIHIHGHHEIEIGHIGIGGEIFIHIGHIIIHHIIIHIH	NM:i:1	MD:Z:23T76	oR:Z:1	oH:i:1	oP:i:2905	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.988	163	1	2750	255	74M1D26M	=	2906	-256	TTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGGCATCGATATAAAAGTAAAAATCACT	IIIHIHHIIIIIHIGIIHGIHGIIHGIIIGDFIIHFEIIFIDIIEIIEIHDCDIIAIIGFIDIHDIIDIIIIIHGIC at CIIIIIICHI>FGEAIEA?III	NM:i:1	MD:Z:74^C26	oR:Z:1	oH:i:1	oP:i:2749	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.988	163	1	2750	255	74M1D26M	=	2906	-256	TTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGGCATCGATATAAAAGTAAAAATCACT	IIIHIHHIIIIIHIGIIHGIHGIIHGIIIGDFIIHFEIIFIDIIEIIEIHDCDIIAIIGFIDIHDIIDIIIIIHGIC at CIIIIIICHI>FGEAIEA?III	NM:i:1	MD:Z:74C26	oR:Z:1	oH:i:1	oP:i:2749	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.989	99	1	5917	255	100M	=	6123	306	TTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCTGATTTCTGAGTGAA	HIIHHHHIIIHHIIIIIIIIIGHIDIIHIFEDFHHFHEIEDIHIIIHIGIIDIHIIGBIHIIFBBHFEIDBIII?CIIEGIEIIGI?G at I=IHGIAIICI	NM:i:1	MD:Z:85G14	oR:Z:1	oH:i:1	oP:i:5916	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.989	147	1	6123	255	100M	=	5917	-306	GTTTCCTAGCTAGAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCG	IBIDIHIEDIIII:II at DIG=CGCBHIIE at GIHIIHDIIIIIEEIEAIIHCIHIEEIEFIIGFIHEIGFIIGIIIGGHIGIHHIIIGIHGHHIHHIHHII	NM:i:1	MD:Z:12C87	oR:Z:1	oH:i:1	oP:i:6122	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.990	83	1	7032	255	100M	=	6861	271	ACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAA	9IGIIICIHI at BA@IGIII@?IICHIIIIGGHIIEFAHIFDIIEEGDIFAIGIIICIGIIEIIFFHHIHIIHIFIHEHIHIIHIIIHIIHIHIHHIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7031	oS:A:R	XE:i:0	XS:i:0	XI:i:0
diff --git a/apps/mason2/tests/simulator.out2.sam b/apps/mason2/tests/simulator.out2.sam
index c7acacc..a1f798e 100644
--- a/apps/mason2/tests/simulator.out2.sam
+++ b/apps/mason2/tests/simulator.out2.sam
@@ -15,7 +15,7 @@ simulated.6	99	1	7927	255	100M	=	8144	317	GCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCT
 simulated.6	147	1	8144	255	100M	=	7927	-317	TGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGC	GICEIBFEFFICAI?IEFHIIIIIIACGIDFCEIIIIIIIGIEGDIIGBHIGGHIGIIEIHHIGGFEIIIEGHFIIIIFHHIIIHIIHHIHIHIHIIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8337	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.7	69	1	6250	255	*	*	0	0	GCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACTAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATA	HIIIHHIHHHHHHHHHIIIIIGIHIHIIFFFIHHHIICCHIHIIIIIEFBI at IIIIFIHIHHBIDIIIIFGFGFFEIHIEBF=IFGIEAII<IEIAIFFA	uR:A:B	oR:Z:1	oP:i:6688	oH:i:2	oS:A:F
 simulated.7	153	1	6250	255	100M	*	0	0	TATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAAC	DHBEEIGA<I at IFBGDIIEIH;I>IEII?HIEIIFIH at GIIIIIHGFIHIIIIIGIIFIHHDIIHHIFIIHHIGIIGIIHIIGIIIIGIHIIIHHIIHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:6896	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.8	73	1	3765	255	29M1D71M	*	0	0	AAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAAC	IHHHIIIIHIHIIHHGIHHHGHIFIIEGHFFDDDHIGEGGHIFCGFDHIDHGIIIIIGFEIFB?HIIIII at CIGDBIIDIGII@GIIIIGIEIIGII at IB	NM:i:1	MD:Z:29^T71	oR:Z:1	oH:i:1	oP:i:3866	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.8	73	1	3765	255	29M1D71M	*	0	0	AAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAAC	IHHHIIIIHIHIIHHGIHHHGHIFIIEGHFFDDDHIGEGGHIFCGFDHIDHGIIIIIGFEIFB?HIIIII at CIGDBIIDIGII@GIIIIGIEIIGII at IB	NM:i:1	MD:Z:29T71	oR:Z:1	oH:i:1	oP:i:3866	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.8	133	1	3765	255	*	*	0	0	TTGGGAATCCCTGTGGTACGAAAGTCCGAGCTGTGTGGCGGGGTTTACTGTCAGGCAGGACCTCTGTCTAAGTCATTACTTACCCGCGCGACGCAGTCAA	IHHHHHHHHHIIIIHFHHHHEIIIIIHIIGHDHIIHIIIIIICIGIEIIDIHIFIGI at GHHIIIICDIFCIHI;EIIIHIICII at GFHIGIGFIDI?;@G	uR:A:B	oR:Z:1	oP:i:4061	oH:i:1	oS:A:R
 simulated.9	83	1	6840	255	100M	=	6659	281	CGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTC	DCEFIHI at IBIIFIIF@III?IHIIEIF>DGIIIHFFIBEIHIIDDIEEIIBIFIIHHHGIIIGFIIEIGIGGIHEIFHHHIFIHHIHIHIHIHIIHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7033	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.9	163	1	6659	255	100M	=	6840	-281	CCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGG	HHIIHHHHHIHIGIHHIHGHIHIGIIIHFHFIIGGHDHEIIFCIGHIIFF at GIIDGIHGEEFIDHIIFHII<@CGIGIEIAIEIHIFIIBIIIIIIAB>A	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6852	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -24,7 +24,7 @@ simulated.10	141	*	0	255	*	*	0	0	GCGCCCAACTCCGGTGGCGCAGTCTGTGGGTCTGTCTACATGTTGCG
 simulated.11	83	1	3709	255	100M	=	3487	322	TAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCA	GFIEHI?IIIIAIIFGGIG=ICIGHIGBEFEFHEEBGIIEFIHIEFHGGIBIHGFHEHCIHHIHIIIIFIHFGGHIGIGIHFHHIIIHHHIHHHIIHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:3987	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.11	163	1	3487	255	100M	=	3709	-322	TCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTAT	HIIIIHHGIHIGIGHHHGHHGGHHIIGIGIGIHFIFGHGIIIIIHIFFIIIIEIDEIDIIGAIEEIIIIBIIIFBGHE:@@I>IGCEIIIGAFGIDIIIG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:3761	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.12	83	1	235	255	100M	=	27	308	GCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAAT	BIEIIF>4II?IFI<CGG;IFH>DIIFGDEIEIDBBIIIFGIIIEGHFIFGEDHHIBIIEIGIIIIIIIGIHEEIIGGGIEIHGHGGHIIHHHIHIHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:228	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.12	163	1	27	255	94M3D6M	=	235	-308	TTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATA	IIHIIHIIIHHIIIIGGGHHHHIIIHGHIGIIHIHGIIGHGFIFIHHIBIIHFICIIEEHIGIEIIIIIIIIEHFEDF>C at FIEFIIIFIIEEECDIDII	NM:i:3	MD:Z:94^ACA6	oR:Z:1	oH:i:1	oP:i:26	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.12	163	1	27	255	94M3D6M	=	235	-308	TTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATA	IIHIIHIIIHHIIIIGGGHHHHIIIHGHIGIIHIHGIIGHGFIFIHHIBIIHFICIIEEHIGIEIIIIIIIIEHFEDF>C at FIEFIIIFIIEEECDIDII	NM:i:3	MD:Z:94ACA6	oR:Z:1	oH:i:1	oP:i:26	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.13	69	1	5819	255	*	*	0	0	AAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAGGCAGGCATCTCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGC	IHIHIIHHHIIIIHHIIIGGGIFGEIIIIIIIFGIFGIIDIHGEIGGGHFIEIIGFGIIIIIGIGIIICIEAIIIGII at IHIIIEII>II?IIICIIE=H	uR:A:B	oR:Z:1	oP:i:6199	oH:i:2	oS:A:F
 simulated.13	153	1	5819	255	100M	*	0	0	CCAGACGGATATAGTAGTATTATCTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTT	EBIICCIIE>I>GIG9CBFIIDFIIIII<FIFIFIFIHIDIIGFIAIEFHIEDFEHIIIGIHIHHIIIFFIIHIGHGHIIIHHHHGHIIHHIHIIHHHIH	NM:i:1	MD:Z:23G76	oR:Z:1	oH:i:2	oP:i:6405	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.14	69	*	0	255	*	*	0	0	CTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTCCTCAGCCG	HHIHHIIIHIHHIIGGIFGIHHGIHIGHIIHIGGHHEIIEIGIIFDGHEDIIHFIGI at IIGEIH@IIIIGFIIEIHIGEEGIGGIIFIIII<IE=IH4IE	uR:A:B	oR:Z:1	oP:i:6581	oH:i:2	oS:A:F
@@ -109,7 +109,7 @@ simulated.53	99	1	6781	255	100M	=	6999	318	TTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTA
 simulated.53	147	1	6999	255	100M	=	6781	-318	GGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGGGCGAACTCATAATCCACA	<?IIFIEIGI?EFIAIEIFH9IFIC?DIIIFIFIAIFIIEDHIIEIIHIIGII>HIEDIIIHCIHGIIIGHIHIHIIGIIGFGIGIIGHGHIIHHIHHHH	NM:i:1	MD:Z:81T18	oR:Z:1	oH:i:1	oP:i:7192	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.54	99	1	6693	255	17M2I81M	=	6903	310	TCCGCCGGACACTAAGATCTCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAG	HIHHHHHHIHHIGIIIHHIIHHIIHIHGIIHIIFHHGIHEHGCEIGIHEHIFGFHIFIIEIIEIIFIIIIHDIIIIEC?GEIEHI at I@CGIFBEHIII=I	NM:i:2	MD:Z:98	oR:Z:1	oH:i:2	oP:i:7415	oS:A:F	XE:i:0	XS:i:0	XI:i:2
 simulated.54	147	1	6903	255	100M	=	6693	-310	ATGAAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGT	II at IC;>IIIIEFIIIDIBCGIFIEIIHFIAIBIIIFH at HIFIHIDIIIHFIGEHIEIFHIHIHGIIEIIIGIIDHIHIHHGIGHFHIIIHIIHHIHHIH	NM:i:1	MD:Z:3G96	oR:Z:1	oH:i:2	oP:i:7627	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.55	99	1	3725	255	69M1D31M	=	3917	292	CACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTC	IHIIIHHHHIHIHIIHHHIGIGIIIFGIIIDHFGIDEDHGIIGEDEHIDIFFIIFIIFDIIEIE>IIHDGHI>IIBCAEHHIIIEC at IIIIII@IIDIEI	NM:i:1	MD:Z:69^T31	oR:Z:1	oH:i:1	oP:i:3826	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.55	99	1	3725	255	69M1D31M	=	3917	292	CACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTC	IHIIIHHHHIHIHIIHHHIGIGIIIFGIIIDHFGIDEDHGIIGEDEHIDIFFIIFIIFDIIEIE>IIHDGHI>IIBCAEHHIIIEC at IIIIII@IIDIEI	NM:i:1	MD:Z:69T31	oR:Z:1	oH:i:1	oP:i:3826	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.55	147	1	3917	255	100M	=	3725	-292	CGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAA	;DIIAB=DHIFIIIHIIIIIEIHII at EB@HHIEIHDCFIIAAIIIIIIIFIFIIFIIFIEIHIFFIIGIHEIEGHIIFHIIIIIHHGIHHHGIHHIHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4017	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.56	69	1	3258	255	*	*	0	0	TGTTCTGTCGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCCTATTGAGAACTGACGGTACCAGAGGC	IHIIHHIHHHHHIHHGHHIGGGIFDFIFGIHIIIIIIIHIHIIICIFF?IFIIIDIIECGFIGII>II>IH?IF?IIIGIIIHHIBIGIIIIIBFIIBII	uR:A:B	oR:Z:1	oP:i:3194	oH:i:1	oS:A:F
 simulated.56	153	1	3258	255	100M	*	0	0	ATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGA	EIICHI?GFDBIGI at IHDIGEHIIFGEIHIFIIGIIHDIIFIIEHIEFHIIIDDIHIEIGEIHIIFIEFGIGIIGIHFHIIHIHGIIHHGIHHIIIIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3359	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -144,7 +144,7 @@ simulated.70	163	1	3200	255	100M	=	3390	-290	ATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATT
 simulated.71	73	1	5029	255	100M	*	0	0	TTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCA	HIHHHIHIIHIHIHIGIIGIHHIIIIGIEHIIIFIFGEHGIHIEEIIFIGIIIGIHCAIFEIEICEIBIIIEIIAIIIGHEDIGGHIIH?IFI at FIGI<I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:5460	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.71	133	1	5029	255	*	*	0	0	GCGCCCGAGTAGCTTAATGTACCAAGGCTGTCCGTCTGCAAACCCTAGTTCCGAGCAGGACTCAGCGCTGAATAACGAAATCACCGCTAATTGCAAGGTT	HIIIHHIHIIHIHIIHIIGGIIEIIIIHIHIIIHFHIGIIIGIGIGGDIGCIGIIIHGEGIIIIFIIIIDFCG at IIIIIGIDIGCCII<FIII?IIIEII	uR:A:B	oR:Z:1	oP:i:5656	oH:i:2	oS:A:R
 simulated.72	83	1	3441	255	100M	=	3262	279	TGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCT	IIICIIIHEI>FCEIF?GIEIFIE>AIIIIIFIDIIIHGGIBIIDGDFIHIIGIIIIEIICIHHFIGIEEGHHGHHIIIGGGHGIHIIHHIIHHIHIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3542	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.72	163	1	3262	255	85M1D15M	=	3441	-279	GTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTTTTTCGGAGAACCGC	HHHIHIIIHHHIIHIIIGHHHIIHGIGFGIIHIHHIFIIIHIIIIIIEHFHAICEIIHHI?IIIIICIIBIH?GIEHEIFIIIDIIID:IF at IID@HIIH	NM:i:1	MD:Z:85^C15	oR:Z:1	oH:i:1	oP:i:3363	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.72	163	1	3262	255	85M1D15M	=	3441	-279	GTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTTTTTCGGAGAACCGC	HHHIHIIIHHHIIHIIIGHHHIIHGIGFGIIHIHHIFIIIHIIIIIIEHFHAICEIIHHI?IIIIICIIBIH?GIEHEIFIIIDIIID:IF at IID@HIIH	NM:i:1	MD:Z:85C15	oR:Z:1	oH:i:1	oP:i:3363	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.73	83	1	6845	255	100M	=	6631	314	GGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAA	AIGI=<IIBI=IBIHIII<HDCIIIIGDDIICIFHFFBHGHBIGFHIAGIGEHFCFEIFIHGEIFFIIIHFHIIGFIIGHHIIHGIGHHHHIGIHIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7038	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.73	163	1	6631	255	100M	=	6845	-314	AGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTTGCACCCCTAAACCTGGG	IHIIHIIHHHHIHFIIHIEIHFGIIGGFGIDIIGIEIIIIIIEFGIGIEHIIHGHIFIIIIIIIFHIDIICIIGEIIHCDGH*I>DBI<IIADGIIAIEI	NM:i:2	MD:Z:82G11G5	oR:Z:1	oH:i:1	oP:i:6824	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.74	83	1	9459	255	100M	=	9254	305	AACAGCCCCTTTCNGTTCTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGCGGCATTCACCCGTCGGAACTAAACGCCAGAGTCTAGAGCAGCCAC	I?FGIEIII?IDGBBIIHIDIDAICGCFIIIIHIGGIHIGIIIFIICGIFEGI>DIIHIEIIFIHIIHHIFGIGIIFGIGFGHIFIHHHIHHHHHIHHII	NM:i:2	MD:Z:13A3G82	oR:Z:1	oH:i:2	oP:i:10302	oS:A:R	XE:i:2	XS:i:0	XI:i:0
@@ -169,7 +169,7 @@ simulated.83	69	1	6715	255	*	*	0	0	CTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCAT
 simulated.83	153	1	6715	255	100M	*	0	0	CACCCTTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCG	IE at BD9IIIEIBAI?IIICII>=FCEGHIIID<IIG at FHIFIDIIIIHCIEFICBHHDIHIIIGIIIIGHGIIIIGIGIIGIHIHIIIGIIIIHIHHHHI	NM:i:1	MD:Z:5C94	oR:Z:1	oH:i:2	oP:i:7439	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.84	83	1	2263	255	100M	=	2088	275	ACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGC	=IG:<EIICBGBIIIFIIHEIIHIIIIFIIIIFG at FFFIIEIFGCIIIDIIIIIIIGHGHIIFEIIIIFIIEHHGFGHIHIHIHGIHIIIIIHIIHHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2364	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.84	163	1	2088	255	100M	=	2263	-275	CACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTCAAATTACAATGAACCTTGGGGACCACAATTTGGTACGTTCGACTATTAT	HIIIIIHHIIIHIIIHEHGIHHIFGGGIHIIIIEEGIGIIHIIEIFIADIIIDHHIBCIECII at EIDIBHIHICBIGHIBICIIIHIIHICBIIHDICI@	NM:i:2	MD:Z:50G24T24	oR:Z:1	oH:i:1	oP:i:2189	oS:A:F	XE:i:1	XS:i:1	XI:i:0
-simulated.85	99	1	9055	255	53M3D47M	=	9241	286	TGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGT	HHHIIHIIHHIIIGIGFFGEIGHIIIHIIIIGHHFIIIHGGIHHFAIIHHIGCAHIGIIHIEGDDIHDBGIIHBICIEGIIFBGIF at IBDEFHII:IGBC	NM:i:3	MD:Z:53^GAT47	oR:Z:1	oH:i:1	oP:i:9248	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.85	99	1	9055	255	53M3D47M	=	9241	286	TGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGT	HHHIIHIIHHIIIGIGFFGEIGHIIIHIIIIGHHFIIIHGGIHHFAIIHHIGCAHIGIIHIEGDDIHDBGIIHBICIEGIIFBGIF at IBDEFHII:IGBC	NM:i:3	MD:Z:53GAT47	oR:Z:1	oH:i:1	oP:i:9248	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.85	147	1	9241	255	100M	=	9055	-286	TTGGCTATTATTTTATAAGATCTAGAGGAACAGCTTCCGTAATACAATCCGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCA	II=IEII at BBI<IDHAHIIEG=FI?IIGHIEIIIIDIIHDIIIHHHFGHIGEIIGIIH at GHGGIEIDGIFIIIGIEGIHIHIGHIHHHHHIIIIIIHIHH	NM:i:2	MD:Z:13A35T50	oR:Z:1	oH:i:1	oP:i:9431	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.86	69	*	0	255	*	*	0	0	ATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCG	HHHHIHHIIIIHIIIIHHFIGIEHEFDFFIHIFIHHIIIIFHIGIGIIIFFHGIGIFIIICHFFDAIIIIEIIHIIAHFECIG>FFIDIFIE<IGIDIFD	uR:A:B	oR:Z:1	oP:i:9584	oH:i:1	oS:A:F
 simulated.86	141	*	0	255	*	*	0	0	GTCCACACGGCGGAGCTAACGATTCAATTTATTAGCCTCGACGCGGATGTTGATTTGACAACTGAAAGGGGCTGTTGGCCACTTGCGGGACCAATCTTTG	IIIHHIHIIIHGIIHIIIHHIIGIHGIGIEIIIIHIFGIHEHCHIIDIGIGIIIEICHH at DIFIIHEIIIBIIFEIIDHDG2CBIIIFIFGA?IIA at BHI	uR:A:B	oR:Z:1	oP:i:9769	oH:i:1	oS:A:R
@@ -186,7 +186,7 @@ simulated.91	141	*	0	255	*	*	0	0	GCCGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCAC
 simulated.92	73	1	9220	255	100M	*	0	0	CGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCA	IIIHIIIIIIHIIIHHHIGHHFEIGGIGHFIIIIIGIIIGIHIHIIIDAIIIHIIGDCIIIIIEGIGDIHIII?IIIIIEIGIIIIIIIHIFDI<II>BI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9410	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.92	133	1	9220	255	*	*	0	0	CGGGTGAATGCCGCGACCGTACCTAGCCTCGACGCGGATGTTGATTTGACAACTGAAAGGGGCTGTTGGCCAGTTGCGGGAACAATCTTTGAGCAGCGCG	HIIIHIIGIIIIHIIGIIIGHFGGGIHGIIICHIGFHHIGHIIIEIHIIGCIGIIDHIEIDFIGEGIEEIHIEICEIIIIDI?IIIII>FIHIIEDFIIG	uR:A:B	oR:Z:1	oP:i:9616	oH:i:1	oS:A:R
 simulated.93	99	1	3500	255	100M	=	3709	309	AGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTC	IIHHHIIIHHHIIIIHIGGIHHIDIGGGGIHIIGIIFIIGIFIHFIHFIBIHDGCIIEI:DDIIIEGEAF at AIID:IAFIIIIIDDHIF8IGEIIIIFAI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3601	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.93	147	1	3709	255	85M1D15M	=	3500	-309	TAATCGGACGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAG	GFIDGEEFCEIDCFB?GHII<FBHEEIGIFIGIHIIICAIIHIGEGDIIBEIEDEIIHHGEIIFDIFFIFIIIIIIFFIIIIHIIIIHHIIIHHIIHHHI	NM:i:2	MD:Z:8T76^T15	oR:Z:1	oH:i:1	oP:i:3810	oS:A:R	XE:i:1	XS:i:0	XI:i:1
+simulated.93	147	1	3709	255	85M1D15M	=	3500	-309	TAATCGGACGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAG	GFIDGEEFCEIDCFB?GHII<FBHEEIGIFIGIHIIICAIIHIGEGDIIBEIEDEIIHHGEIIFDIFFIFIIIIIIFFIIIIHIIIIHHIIIHHIIHHHI	NM:i:2	MD:Z:8T76T15	oR:Z:1	oH:i:1	oP:i:3810	oS:A:R	XE:i:1	XS:i:0	XI:i:1
 simulated.94	69	*	0	255	*	*	0	0	ATCATACTGAATCGTATAACGTACAAGCCTAGCCGCTACACCCGCCGCCTACCCTGAAGGGCTATCCGGGGTGCATCATGCGTAAGTTTTCTGAACAGAC	HHHHHIHIHIIIIIIGHGIHGIHIGIIGHIGFIGIIIIIIHHFFEIIIEFFICGIHIHIBII?IIAEICEIGIBIIFIIIII?ECHHF at IIIIBH8@GIC	uR:A:B	oR:Z:1	oP:i:995	oH:i:1	oS:A:R
 simulated.94	141	*	0	255	*	*	0	0	TCGCGGACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCATGGCCCTTCTCAGACCTTCTCTGTTCAGAAAACTTACGCATGATGCACCCC	HIHHHHHHHIHHHIGHGHIGIIHHIIEIFIIIIHDHIIHIGFIGFFCIBIIIIII?IIIDIIHAIDCIDEIIIHBIFGGFIIHCIDFE>I at I?IIIFI>G	uR:A:B	oR:Z:1	oP:i:800	oH:i:1	oS:A:F
 simulated.95	69	*	0	255	*	*	0	0	CTGACAGTAAACCCCGCCACACAGCTCGGACTTTCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACACAGAGAGAGTCGAGTTAAACGGGCC	IHIHIHHHIHIHGHHIGIIIGIHIIIIGIIIHIIHIGEIGFFIIHIIGHIGIBDFH?IGDDIHIFDHGGEAIIIIGIICIFICFCII>CIIFCIAIBDBI	uR:A:B	oR:Z:1	oP:i:4107	oH:i:1	oS:A:F
@@ -222,7 +222,7 @@ simulated.109	147	1	3633	255	71M4I25M	=	3420	-313	CTACGGTCTACCACTTGATCTAGAAGCTCC
 simulated.110	69	1	802	255	*	*	0	0	CCAGCCTAAACACGCTTGACCCCGCTTCTAGTCAGGTTGCTGACCTGGTGCCTAGTCGACCCGCTACACCCGCCGCTAGGGATTAAAGGCATCAGGGCCA	IHHIHGHHHHHHHIIGHIGIHIHIIIGEHHGGIHFIIGHIFHIEIGGIIGIHBBCIIFIIFHICEDIGIFHIBIEDEHIIIFFEIIIHIIDIIII>IIIE	uR:A:B	oR:Z:1	oP:i:997	oH:i:2	oS:A:R
 simulated.110	137	1	802	255	100M	*	0	0	GTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTC	HHIIHIIIIGIIHGIHGIIHHIIGFFIFGGIGIGHHIGEIGHDDIHFEGIGEGICFFHHHIICGIDIIE;FFIGI?IIDIIDIICGDIIIDIIAIBIII:	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:801	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.111	99	1	1809	255	100M	=	1990	281	TATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGCCCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCG	HHIHIHHIHHHIHGIIHIIFIGHHHIGIIIDFGFHFIFHIIHEIIGBFFIECIFII>EHFFCHIIDICBIIDI>CIGIII?HIIEI>HIGGHAIIG:IGI	NM:i:1	MD:Z:54A45	oR:Z:1	oH:i:1	oP:i:1911	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.111	147	1	1990	255	24M1D76M	=	1809	-281	AAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCGGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCAC	GFIIIHEIHIGIGIIFAIFIBIIHIIHGCDIIFIIGEIHGIICCIICIGFDHEEFGFIHHGIHICIGIHIIHFGIFHIGHHIHIIIIHIIIHHIIHIIII	NM:i:2	MD:Z:24^A26A49	oR:Z:1	oH:i:1	oP:i:2092	oS:A:R	XE:i:1	XS:i:0	XI:i:1
+simulated.111	147	1	1990	255	24M1D76M	=	1809	-281	AAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCGGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCAC	GFIIIHEIHIGIGIIFAIFIBIIHIIHGCDIIFIIGEIHGIICCIICIGFDHEEFGFIHHGIHICIGIHIIHFGIFHIGHHIHIIIIHIIIHHIIHIIII	NM:i:2	MD:Z:24A26A49	oR:Z:1	oH:i:1	oP:i:2092	oS:A:R	XE:i:1	XS:i:0	XI:i:1
 simulated.112	83	1	9542	255	100M	=	9331	311	GAGTCTAGAGCAGCCACATAAAAATTAATTGAATCGTTAGCTCCGCCGTGTGGACATGGCATCGGCGTCATCCCATATACATCACCGGTCGAACCCACTC	DI>HIBIIFBDCIDDHFIBIICECIGIHIIIIAIDBIBIIIIIICIIGFIIEHEHHFIEDIDFIGDDIIHGIHIHEGHIIGGIIGIIIIGIIHIIHIHII	NM:i:1	MD:Z:25A74	oR:Z:1	oH:i:2	oP:i:10385	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.112	163	1	9331	255	100M	=	9542	-311	GTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGC	IHIHIHHIHHIHIIFIHFHHGIHHIIIFIHIHHIHHEHHGIIEEIIGEFIIIIIHFBBIICIEGDCICIIIIIAIHIIC?HIICEIIIIDGII at IEIIIG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10174	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.113	89	1	9432	255	100M	*	0	0	GCTCAAAGATTGTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGCGGCATTCACCCGTCGGAA	I:IIG=CGGEICCD at HHIHBECEDII@BIFCFEB=AIFIGDGEDIIIIFIIIIEIDIHIIBIIIIIDIIIIIGIIGIFGHIHIIIIFHIIGHIHHIHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10275	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -254,7 +254,7 @@ simulated.125	163	1	1090	255	100M	=	1295	-305	TAGGCTGGGCATTAGCTGCGTACATCGGTTTGCA
 simulated.126	69	1	7340	255	*	*	0	0	TTCAGACCTTGACCTGCGCGTGATTGTCCATGAAACACTCGGGCACCACATTGATCGACACTACCGGGTGGAGCCTCCCTTCGCGCGCACTGTTCCACCC	IHHHIIHHIIHHHGIIIHGFEIFHIGIIHIIIGIHIHDGFAIEIGIIIIGIEHEIFG at HBDEIIIIGIIIIEIAGGEIG<IGEIDFIFCIGIIIHIIBII	uR:A:B	oR:Z:1	oP:i:8267	oH:i:2	oS:A:R
 simulated.126	137	1	7340	255	100M	*	0	0	CTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGAGAGATGCCCACCATCAAGCCC	HHIHHIIIIIHHHHIHIIIHIHIIFGGIIIIIEIFIFHFBIIICIFFGFBIDIFFIDIIDIDFEICIHHDIEIIGIIIAIHIIAI at IIDIHIGFFBIEGI	NM:i:1	MD:Z:78C21	oR:Z:1	oH:i:2	oP:i:8064	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.127	83	1	366	255	100M	=	143	323	GATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCACG	IFIICIA<IGIHFFIIBBEDIGIIIDGEHI>DCIIDGIIIGIEIGIIIFFIIBHEIIEIIHFDDGGIFHHGIGHIIIHIIHHHIHIHHGIIGIIGHHIHH	NM:i:1	MD:Z:98T1	oR:Z:1	oH:i:1	oP:i:359	oS:A:R	XE:i:0	XS:i:1	XI:i:0
-simulated.127	163	1	143	255	15M3D85M	=	366	-323	CGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGT	HHHIIHHIHHHHHIGIIGIIIGFGIGEFHGHDIIIFIGGGHIGGFGHGIIHDEIIGGIDIIEIFIGHI at II?BHGFEAHIB>IIGGIGIFHIFIDHIIBI	NM:i:3	MD:Z:15^CAG85	oR:Z:1	oH:i:1	oP:i:139	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.127	163	1	143	255	15M3D85M	=	366	-323	CGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGT	HHHIIHHIHHHHHIGIIGIIIGFGIGEFHGHDIIIFIGGGHIGGFGHGIIHDEIIGGIDIIEIFIGHI at II?BHGFEAHIB>IIGGIGIFHIFIDHIIBI	NM:i:3	MD:Z:15CAG85	oR:Z:1	oH:i:1	oP:i:139	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.128	83	1	657	255	100M	=	431	326	CCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGCGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTA	IIIHIEGIIIIICIHFCIFIEHF=IEGIIIICIGEIIIIIIIIHHICFIDFIIBEIHIIFGGIHFIIIIHHFGDGDFHGHHIIIIGIIHIIHHIIIHHHH	NM:i:1	MD:Z:51A48	oR:Z:1	oH:i:2	oP:i:656	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.128	163	1	431	255	100M	=	657	-326	TTCTCGGCTGGATCCCTTAGTCGCATTAGTCCAAGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGT	IIIIHHHHHIIIIIHHHIIIHHHHIIFGFHIHGIGHIIIIDIIEIED at IGF@IGIDEHGICFIHGCICIICIBICEFCIAID at IIICIIIIIBIIHIAHE	NM:i:1	MD:Z:33T66	oR:Z:1	oH:i:2	oP:i:430	oS:A:F	XE:i:0	XS:i:2	XI:i:0
 simulated.129	89	1	4019	255	100M	*	0	0	CCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTACTTTATCAGCGT	?IIIIDDIFDIIIIIIIICIIICBIIGCIIGICEIIIDIIHIEIEHFAHHIGHIHIGIIIHIIHIIHIIIIHFIGFHIIGHHHIIGIFHHIHHIIHIHHH	NM:i:1	MD:Z:87T12	oR:Z:1	oH:i:2	oP:i:4357	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -271,7 +271,7 @@ simulated.134	69	1	6449	255	*	*	0	0	GGACTGGCCAAGTCAATGGGTTATCTGGCTCATGCAATACGCAG
 simulated.134	137	1	6449	255	100M	*	0	0	AATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTA	IHIHIHHIHIHGHHHIHIHHHIFIIIDHFIIIGDEEIIIHIFCDIEGIIIEFIEDIIIIBAIHHEIIIIIHBDIIFHFEDC?IG@<FIHI at HIIIIIEHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6566	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.135	73	1	4497	255	100M	*	0	0	CCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCC	HIHHHHHIIHIHIIIHIHHHIIGHGFIFGGHIIIHFIHIIHFIHHIIIIEGIFIIIEBBIEHDDHFFIIGIEIIIAFIEFIIIII?DIIEH?>F=IIIDI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4835	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.135	133	1	4497	255	*	*	0	0	TGCTTTAACGCCTTAGAACACGGATTTTGCGAAGATAGGCGCAGGGGGTCTCTAGCTTAGCTCCATGAGGAGGTTTGGGTGATAAGCGGAGCGAAAGATA	IIIIHHHHIHIHIFIHGIIIIIHFGHHIIHIGGIIFIDIIGIDICIIGIGIIGHIGIIIGIDH=ECGFIIIEIIIEIIIICIHCFII=HI9FIIAIHCID	uR:A:B	oR:Z:1	oP:i:5056	oH:i:2	oS:A:R
-simulated.136	89	1	8283	255	100M	*	0	0	AAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGATCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATC	;IHIIIC@>CIICE?IIIAIIIIIHI>IAHGEII>DHICIIGIIDFHIHDHIIIFIIFIIIGIGHIHFIGEHEHGHHIHGIIIIHIHIIHHHIHHIHHHI	NM:i:2	MD:Z:0T63C35	oR:Z:1	oH:i:2	oP:i:8971	oS:A:R	XE:i:1	XS:i:1	XI:i:0
+simulated.136	89	1	8283	255	100M	*	0	0	AAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGATCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATC	;IHIIIC@>CIICE?IIIAIIIIIHI>IAHGEII>DHICIIGIIDFHIHDHIIIFIIFIIIGIGHIHFIGEHEHGHHIHGIIIIHIHIIHHHIHHIHHHI	NM:i:2	MD:Z:T63C35	oR:Z:1	oH:i:2	oP:i:8971	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.136	133	1	8283	255	*	*	0	0	CTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACAGACGTACCTAGAGTCACTAACCGTGCTGGGAATTCTGA	HIHHIIGHHHHHHIIIIIHIIIIHHEIFHIHIIGGIGHIIEFGGIHFIGIIHHGIIGEHFIEGIIFIDIIGEIIGFIIBGEIDIIHIII;FIIBGIIIFI	uR:A:B	oR:Z:1	oP:i:8777	oH:i:2	oS:A:F
 simulated.137	73	1	9675	255	100M	*	0	0	AACACACATCCGGCACGGCTGGGATAACCCATGATTCTTCGTACGGGTGTGTAAAGAAGTCGGATTGCCACTGAATTGTATCTGTAAATAGGCATTGTTA	IIHHIHHHHGIHIGHHIGIGHGFIHIIHIGEIIIIGEGDHFIGGDIGIGIDIFGICDDIIEHEEHIBCIDIIIIIIIE?EIIIIDIIIGIIAIEGIEBIG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:10005	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.137	133	1	9675	255	*	*	0	0	ATGGAATGACTCATTGACTGGAGGCCGAGAGAGTAGGCCCCCCTGGCTCTCTACCCATGGACCAGGGCCATTTCATAATTACTATATTGCTGCTTAGATC	HHIHIHHHHIHHIIHGIIIIIIHIIHHHFIIEGGIEGHIFIHFHBFGIIEGIIIIIIIHDIIHIHIBIIIHIIGIEEFHIIIE?AIIICI;GIHIIHEII	uR:A:B	oR:Z:1	oP:i:10207	oH:i:1	oS:A:R
@@ -279,7 +279,7 @@ simulated.138	83	1	7761	255	100M	=	7572	289	GGCATTTCTCGGGGCAACCCAACCTAGTGGATCGAT
 simulated.138	163	1	7572	255	100M	=	7761	-289	CTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAA	IIIIHIHHHHIGGFHIHIGIGHHGHGIFIFFIIHIDIHHGIGIBCIIDHHHHIIFIIGHEDCIIGIFIIIGDIIDIICIGII?IICIEIAIIIIFECIBI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7765	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.139	89	1	3256	255	100M	*	0	0	GTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGA	=;IIIIIBEIGFIG?EBIII at EDIIII@AIICHDIDIIIIIHIFIIIHIEDFGGHFGEHFIEGIHIIGGHIGIFFHHHIFIHFGIHIIIIHHHHHIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3357	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.139	133	1	3256	255	*	*	0	0	ATACCGCTACTTGGTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGTTAGGGATCTTATGTCTTCAATTTG	IIIHIHHHHIIHIIHHHHIHIGIIHIGFIHIIFIIGIIIGICIGGIFIDGCIEIIIIEGEIGFFIIIEIICI at IIICIII<AIIEIIIDGIIICIII=FE	uR:A:B	oR:Z:1	oP:i:3129	oH:i:1	oS:A:F
-simulated.140	83	1	2001	255	13M1D87M	=	1783	318	GTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTAC	DHI>I;AGIIEGBAIIHIIIAICGIFIGECIIIDIFICEFGDCIIFEIIIDGEGIFIEIIDHEIGIHIIFIGGIHIGIFHIFIHGIIIIHHIIIHHHIII	NM:i:1	MD:Z:13^A87	oR:Z:1	oH:i:1	oP:i:2103	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.140	83	1	2001	255	13M1D87M	=	1783	318	GTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTAC	DHI>I;AGIIEGBAIIHIIIAICGIFIGECIIIDIFICEFGDCIIFEIIIDGEGIFIEIIDHEIGIHIIFIGGIHIGIFHIFIHGIIIIHHIIIHHHIII	NM:i:1	MD:Z:13A87	oR:Z:1	oH:i:1	oP:i:2103	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.140	163	1	1783	255	100M	=	2001	-318	CCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGAT	HIHHHHIIIIGIHIHHHHIIHHHIFIIIIHEHIIIGIFIIFIHIIGBHIIDEFIIHIHICIEIHIII?BCI=IHFICIDII9 at ICDIA@HCHFIECH?HI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1885	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.141	69	1	9333	255	*	*	0	0	CGTTCCAGCTGGTCGGAATATCCGGAGTTCTTCCACTACTGGATTGTAGTGGTCCCGTCAAACTCACACATTATTTCATCTACTCTTGGCTATTAATTAA	HHHIHIIIHIIHHIGIHGIHHGEGEFGEIIIIIFGIHHIEIHIIEIIGIGEFI at IHIIFCCGEGIIIFGCIBIIFGGHIECIGI@EIIHIII>=I5IIII	uR:A:B	oR:Z:1	oP:i:9999	oH:i:2	oS:A:F
 simulated.141	153	1	9333	255	100M	*	0	0	CGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCCTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTG	IGCIIHHIGBGCIDGIIF at IHIIIIIICIIEIEHIGCIDDGGHBDIGGHGIAIDEFIIBIIHGIHIGFIGIIHHIIGIHHIIIHIHHIHIIIHHIIHIHI	NM:i:1	MD:Z:46G53	oR:Z:1	oH:i:2	oP:i:10176	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -295,7 +295,7 @@ simulated.146	69	1	5962	255	*	*	0	0	TGGGGCTTCGTCTGTAGCTAGGAAACATGGTGACCCCGAAAAAC
 simulated.146	137	1	5962	255	100M	*	0	0	AATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTAC	IIHIIHIIHHIHIIGIIHIHFIIHIGGIIHIIGIEFGHIDIIGIIHIHIGIIIBCIEHGFHIHIHFIEDIEGIIGIGIFIID?GEIIIIIIAFEADDEBF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:6548	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.147	89	1	5334	255	100M	*	0	0	GCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAAACGGGTGATGCCAGGTGGGTGGTGAAAAACACG	I<IIIEEICBHBIIFIII?IIICBIBFBIIIEICIDGIIIIFIIIIIBIHGIHFIGIGHIHIGIIEIFGEEDFIHEIIIGGIHIHIHIHIHIHHHIIIIH	NM:i:1	MD:Z:66G33	oR:Z:1	oH:i:2	oP:i:5765	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.147	133	1	5334	255	*	*	0	0	GCATACCCCCCACCTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGTACAACTTGGTAAGATGGGATGTCGAGATGACCAACCCATCAAACC	HHIIHHIIIIHIIIIGIIIIHIHFIIIIGHGCIHIGIIEIIIFHIEIIEIFHHIDDFCIEICIIFIHHCHICIAHHAIIIBGIIIICFHIIDIEAHIIAD	uR:A:B	oR:Z:1	oP:i:5560	oH:i:2	oS:A:F
-simulated.148	83	1	3754	255	40M1D60M	=	3536	318	GATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAG	IICIII at IIIGDIGIIEIGHFICB?IDIFIICHG?HEIIFIIIDBAHIHIIFIIIHEFIIIIIGIHIHHIIIGGHGGHIDIHHIGIIGHIIHIHHHHIHI	NM:i:1	MD:Z:40^T60	oR:Z:1	oH:i:1	oP:i:3855	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.148	83	1	3754	255	40M1D60M	=	3536	318	GATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAG	IICIII at IIIGDIGIIEIGHFICB?IDIFIICHG?HEIIFIIIDBAHIHIIFIIIHEFIIIIIGIHIHHIIIGGHGGHIDIHHIGIIGHIIHIHHHHIHI	NM:i:1	MD:Z:40T60	oR:Z:1	oH:i:1	oP:i:3855	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.148	163	1	3536	255	100M	=	3754	-318	TGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTTTTATTTTGTCTA	IHHHIIHHHHIIGHIIHIIGIFIFIHHHHIIIHIGGIGGHIIFIIEDGGHEIIHBAIIIIFGFIIIDHI at HFDHIFEIDIIIICIIIIIIIDAIDIIG;G	NM:i:1	MD:Z:87G12	oR:Z:1	oH:i:1	oP:i:3637	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.149	99	1	1434	255	100M	=	1638	304	CGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTT	IIHHIHIIHHIIHHIHIIHHIIIFIIIGIIIHIIBIIIIHIDIIIHIIBEBIDFIIFIEIIDIEIIIIIFIIFIFIDIIHHCIIIHIEFHGIDFHIDIDI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1536	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.149	147	1	1638	255	100M	=	1434	-304	GGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCAT	FIIDDIHIGICIIIIIIEEIGIIEHIIAIIIHIFHEIIIIIIHIFIAIIIIDIFFIIIFHI at IFEIGHFIIIHIIIIIEGHIGFIGHHHIIIHHIIHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1740	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -347,7 +347,7 @@ simulated.172	73	1	5399	255	100M	*	0	0	AGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGC
 simulated.172	133	1	5399	255	*	*	0	0	AGAATGAACACTCTGGAGTGCGCCTTACGGCTGATCTAGTGACCGATTCGAACCGGTCTTGCATCCGCAGGGCTGGTGGAGCTGGGTCTTAGGCGGTTCA	HIHIIHHIHIHHIHGGIHIIGFGIHIFDEHIIIGGHFEGIIHHFIIDIIHIIEFEIEGFIIIIBID>HIFCBIAFDBDIFHIAIIDCIB>IGI at II;F9I	uR:A:B	oR:Z:1	oP:i:6012	oH:i:2	oS:A:R
 simulated.173	99	2	395	255	100M	=	591	296	TGGGAGGTAGCTAAGCCAATTTAATCAGACTAGGGACGCGATACTGCACGGCATGTTCCTCACCTGGTGAGCATTGGCGCATTCCATACAGCTTCTAACT	HIHHHIHIHIHIGIIHIIIFHHIGGIGDIIGGGEDEDFIHHIEIIDBGIIIGCEHICIHIIIIGDIHEIIHHEIIDIIII>IDIDCFIII;IBII@>IID	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:394	oS:A:F	XE:i:0	XS:i:2	XI:i:0
 simulated.173	147	2	591	255	100M	=	395	-296	GCGGTAACGATAATAGGCTATACTGAATCGGGACTTAATTCTGGCTGTTTGAAGTCGAATCCGTTTTTATTCGACTCTTCTTGCATTCATCACCGGCTCA	>=IGIBGIFIEII7FIIIIBHCIBGDIIGGIDIBIIIIICDEAHICBCIFFDIIIIIIGHIIIIIHFIIIHGGIGIIFFHIHFGIGHHIIIHHHHIIHHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:590	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.174	99	1	1929	255	85M1D15M	=	2149	320	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	HIIHIIIIIIIIHHGIIIIGIHIEIIGIIEIDDIIHEIHDIEIIIAHIIEFIEIEIIIFIDIHBICIGII?HHGIC at FDIAIGHFIHIHI?IHC;IE at HF	NM:i:1	MD:Z:85^A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.174	99	1	1929	255	85M1D15M	=	2149	320	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	HIIHIIIIIIIIHHGIIIIGIHIEIIGIIEIDDIIHEIHDIEIIIAHIIEFIEIEIIIFIDIHBICIGII?HHGIC at FDIAIGHFIHIHI?IHC;IE at HF	NM:i:1	MD:Z:85A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.174	147	1	2149	255	100M	=	1929	-320	GAACCTCGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAA	IDDIDI/IIIIFFIIGDCAII;IIHEIBIHIIHFIIIIEACEDDIFIBIIGIHEHEFEGHEIIIIIIIIGIGGIHGGHIHGIIIIHIIIHIIHHIIHHIH	NM:i:1	MD:Z:6T93	oR:Z:1	oH:i:1	oP:i:2250	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.175	69	*	0	255	*	*	0	0	GATCGTGAGTATACACAAAGTAGAGCGTGCAAGCTACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGACACATGATCTAC	HIIIHHIHHHHHHHGIIGGHHIIFHHHEFIGIHEICHBIHFEGHGIIFBIHIIDIIIICGE>IHHIGIIFIIFIII>IB??H=GI at II=IIIIIII:III	uR:A:B	oR:Z:1	oP:i:719	oH:i:1	oS:A:F
 simulated.175	141	*	0	255	*	*	0	0	GGATTAAAGGCATCAGGGCCATTGAGGGACCGTAGCTGACTATAAGTCGTCGGTCGCTCGCATATCTAGACACCTACCCTGAAGGGCTATCCGGGGTGCA	IIIHIIHHIGHIGIIIIHIIIHIIIIIHIIIFIIIGFDEIHGIEFIIIFD?IDIIGIBEHGIEI at IG?IHIDC?DIIH?HIIIIAIFHII;IIICHIFII	uR:A:B	oR:Z:1	oP:i:892	oH:i:1	oS:A:R
@@ -398,7 +398,7 @@ simulated.197	133	1	8621	255	*	*	0	0	CCTGAACAATACGTGTACTTGGGCCCATTACTTACAGTAATCA
 simulated.198	83	1	8411	255	100M	=	8239	272	TATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACGGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTA	II>EIIHIIGIIIHIIG>IAHIDFIIIIGIECIIHIIIHIIHHGIEIIIGHCIFFIFIIIIIGGIGIFGFIIIIGIHIIIIGHHHIGHHIHIHHIIIIHI	NM:i:1	MD:Z:54C45	oR:Z:1	oH:i:2	oP:i:9099	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.198	163	1	8239	255	100M	=	8411	-272	GTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAAATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGAT	HHHIHHIHIHGHHIIGIHIIGIIIHHIIIGIIIFIGHHDIDIEAHGIIHIIHIIIIHIIIDBGHIE=IFGAIFIIII?HIIFABIIDFCBIDIH<ABIDI	NM:i:1	MD:Z:42G57	oR:Z:1	oH:i:2	oP:i:8927	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.199	83	1	2218	255	100M	=	1980	338	CCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTA	IH at 8IIH?GICEIICFIII?IIIHCGH:IIGIHIIIHIIDIIIHHIIDIIIGIIGIHEHIGFIIHHIGGIGIHGIIGIGGIIHGIFHIHHGHIIHIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2319	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.199	163	1	1980	255	34M1D66M	=	2218	-338	CAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGA	HHHHIHHHHIIIIGHIHIHIGHIIHGHGHGIHIIIIDGIIIFHIHIGHIEDEIFFHHIHHIICIHHIDGDIHEEFIIIFI?CFIE?IIDGII@=IIGE at I	NM:i:1	MD:Z:34^A66	oR:Z:1	oH:i:1	oP:i:2082	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.199	163	1	1980	255	34M1D66M	=	2218	-338	CAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGA	HHHHIHHHHIIIIGHIHIHIGHIIHGHGHGIHIIIIDGIIIFHIHIGHIEDEIFFHHIHHIICIHHIDGDIHEEFIIIFI?CFIE?IIDGII@=IIGE at I	NM:i:1	MD:Z:34A66	oR:Z:1	oH:i:1	oP:i:2082	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.200	83	1	3688	255	16M4I80M	=	3466	322	AGCTGCGGAAGCTAACATCTGCTCGTAATCGGATGAATAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAG	GHDFI;IIDFCIIFAFG>IEEIIIEIII>IEE=IIIBDIFDIHIDAAIHBIIIIHHGIEIFIFHGFIHEIFDGIIHHGIFGHIIGGHIHHHHHIIIHIHI	NM:i:5	MD:Z:32T63	oR:Z:1	oH:i:2	oP:i:3962	oS:A:R	XE:i:1	XS:i:0	XI:i:4
 simulated.200	163	1	3466	255	100M	=	3688	-322	CACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTT	HHIIIIHHIHIIHIIIGIIHHHIIIIHHHIHIIFIGHIIHHICIFICDGIIGICIFGIFHIDI=HI?CIAIIIEHI?GIIGGEIHBIDHEI?FFIIE>IF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:3740	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.201	99	1	7229	255	100M	=	7417	288	ACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCT	IHHHIHHIGIIHHIFIHIIIGIIHIIIIIGGIIFIHFFFEGGIIIFIIIGIEDIIGI?IIC=IIIGHIAIIIDFIFIIDIIGFIIEIIIGIE at IIIIIFI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7953	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -444,7 +444,7 @@ simulated.220	147	1	6373	255	100M	=	6148	-325	ATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTA
 simulated.221	69	*	0	255	*	*	0	0	AATCATCTCTTCCGGTAGTCAGCGAACTGAAACATGCCGTGCAGTATCGCGTCCCTAGTCTGATTAAATTGGCTTAGCTACCTCCCAGAAGAGAGATGAG	IIHHHIIGIHHHHIHIHHFHIHEHIGHHHIGBIGHGFDHIIIIIIIIEHIIFGCGIIBGDICHICAIDIDBGIIHIEE>DEIII>IIIIIH<ICIGHIII	uR:A:B	oR:Z:2	oP:i:330	oH:i:1	oS:A:F
 simulated.221	141	*	0	255	*	*	0	0	AACAGCCAGAATTAAGTCCCGATTCAGTATAGCCTATTATCGTTACCGCGATCCGACGGAGCTCCAATTCGTAGAGGTAAATAGACTGCGCGTTCCATAC	HIHIHHHIHHIIIGHIIIHGIIFGIIHIIGIHDFECHIIIIGFIHHEIEEIIIIHAIIEGFCFIIH>GEIIFGIIIIIFBIFAEI<IIII@<AFIII=II	uR:A:B	oR:Z:2	oP:i:539	oH:i:1	oS:A:R
 simulated.222	99	1	1796	255	100M	=	1994	298	TCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCC	HHHHHIHHHIIHIGHHIGIIIGFIIFFIFHGGIGGIHEIIFGHEIDDGHICEEDDFAIFGIDDIGIGEIFIIIG=HFI>IIDBA6IFFIIAFB8IIIIAI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1898	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.222	147	1	1994	255	20M1D80M	=	1796	-298	ATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGC	FC?IIHBIIEI<IIIBEGIEIIIIIIFEIIICHIIIFIGGHHFIIDIIGHEIIIIIHDIHIBIIHGIIDHEIIIFIIIIIIIIHFIIIIIIIIHHIIIIH	NM:i:1	MD:Z:20^A80	oR:Z:1	oH:i:1	oP:i:2096	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.222	147	1	1994	255	20M1D80M	=	1796	-298	ATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGC	FC?IIHBIIEI<IIIBEGIEIIIIIIFEIIICHIIIFIGGHHFIIDIIGHEIIIIIHDIHIBIIHGIIDHEIIIFIIIIIIIIHFIIIIIIIIHHIIIIH	NM:i:1	MD:Z:20A80	oR:Z:1	oH:i:1	oP:i:2096	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.223	99	2	218	255	100M	=	430	311	TTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGC	HIHHHIIIIIHIHHHIIIIIGGGHGIIHIGGHFIGIIGIFIBIIIIEIHFEHICIGIHIGEIIH>IEEGGCIIIEDFHGIDEFHHI;CBIBII<IIIBHE	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:217	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.223	147	2	430	255	46M1I53M	=	218	-311	ACGCGATACTGCACGGCATGTTCCTCACCTGGTGAGCATTGGCGCATTTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCCC	IIGIEI;IBIBIIEIFIEIIIIHIDGHIIICIIIGFDIEIHHIIHEFFIIFI?IGIHIEHFHIHHEIGGIHFEHIIHGHIHFHGIIIIHHHHIHHIIIHI	NM:i:1	MD:Z:99	oR:Z:2	oH:i:2	oP:i:429	oS:A:R	XE:i:1	XS:i:2	XI:i:0
 simulated.224	99	1	8257	255	100M	=	8465	308	ATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACTATCGTGTTAAT	IIHHHHIIHIHGIHHIIGHGHIEGIGFGFIIGFIIHIIGIIHHIIFIEIIBFEIBDIIHGGIIG<IEIIFGGGIIEFIFHDBIIDI at I:F;FBIIIII at I	NM:i:2	MD:Z:88G1C9	oR:Z:1	oH:i:1	oP:i:8450	oS:A:F	XE:i:1	XS:i:1	XI:i:0
@@ -555,11 +555,11 @@ simulated.276	69	1	7391	255	*	*	0	0	TATTCGCTATCATTCGTACTATAGAATGGAATAACTAACACTTC
 simulated.276	137	1	7391	255	100M	*	0	0	CCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTAAA	IIHHHIHIHHHHIHIGHIGGIIIHHIEIGIIIHFGIHHIIIFDAIBGIIDDIIIIIIEGIC at IIIEEIFDFIIIIIIIE;EIAI:FIIIGIIIIIID4FI	NM:i:1	MD:Z:97T2	oR:Z:1	oH:i:2	oP:i:8115	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.277	73	1	5014	255	100M	*	0	0	TCGCATGGAGTAATGNTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTTCCTGTCTCCATGT	IHHHHHHIIGIIHIGIIIIIFFIIIFHHIFHHIIIGIIIIIIIGIIIDIFIHIIHIIIIIIE=IIDDCCBIIHIIIIFIDIIGDIIDHIGCIIIIH at EII	NM:i:2	MD:Z:15T70G13	oR:Z:1	oH:i:1	oP:i:5039	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.277	133	1	5014	255	*	*	0	0	GGCGCCCGAGTAGCTTAATGTACCAAGGCTGTCCGTCTGCAAACCCTAGTTCCGAGCAGGACTCAGCGCTGAATAACTACAACTTGGTAAGATGGGATGT	HIIIHHHHIHHHHIHHHIHGHHIFHHHIGIGHIHHIEIHHIIIHIIEFIIEHIGHHEHIIFIIIAIIIHIGIEFGDEIIHIEICGIFF=IHHIEIIDB=H	uR:A:B	oR:Z:1	oP:i:5251	oH:i:1	oS:A:R
-simulated.278	83	1	3781	255	13M1D87M	=	3569	312	TAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATG	IIE=8GD>IIIIEICCIFIHICBAIFIEDECIEIDHIIIEIIIGIIIIFGGIIIEDHBIIEIIIGEHIHIIGHIGHIIIHHFIIIGHIHIIHGIHIIHHI	NM:i:1	MD:Z:13^T87	oR:Z:1	oH:i:1	oP:i:3882	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.278	83	1	3781	255	13M1D87M	=	3569	312	TAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATG	IIE=8GD>IIIIEICCIFIHICBAIFIEDECIEIDHIIIEIIIGIIIIFGGIIIEDHBIIEIIIGEHIHIIGHIGHIIIHHFIIIGHIHIIHGIHIIHHI	NM:i:1	MD:Z:13T87	oR:Z:1	oH:i:1	oP:i:3882	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.278	163	1	3569	255	100M	=	3781	-312	TGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTT	HHIHHHHHIIIIFIIHHFEHIIHIIHIFFIIIICIIIDDEGFIIIIIIHFIIIIIHCIIHIIGIGIFBIGHDHBII;EIII at FII@I at ICIIHHIGIIIA	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3670	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.279	69	1	2250	255	*	*	0	0	GAGATCCTATTTTTCTACTCCAGGTACTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGCGACGAGAGGTAAATTGTAAAATTACA	HHHHIIHIHHHIGHIHFIHIGIIHIGIGIIIIGIHFHHHHGHFBIGEIGIHIDIIHFEAIIIFIBHIIIIIG;7HIFFICAFIIB?EIBHH<IFCIIIID	uR:A:B	oR:Z:1	oP:i:2245	oH:i:2	oS:A:F
 simulated.279	153	1	2250	255	100M	*	0	0	ATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGT	IAII?GEIIGCGIIIBIIGIFIIIFIAE at CIFIDGIBEIGIHFDIIIBIIFIGFIGIGFGIIIIHIIHDFIHIGIGFIIHIIHHHIHIIIIHIIHIHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2448	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.280	83	1	1599	255	100M	=	1406	293	AAAAGTCGCGTAGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCG	>I7IAHIHI=DEBIIIGHIIIGIDFIDIICCIDHEIDAAGIIIIGHIAIHIFIEIIFHFHIGIGFBHIIHIIHIGHFIFIIFGIGGIIIHIHHIIIIHHH	NM:i:2	MD:Z:0C10G88	oR:Z:1	oH:i:1	oP:i:1701	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.280	83	1	1599	255	100M	=	1406	293	AAAAGTCGCGTAGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCG	>I7IAHIHI=DEBIIIGHIIIGIDFIDIICCIDHEIDAAGIIIIGHIAIHIFIEIIFHFHIGIGFBHIIHIIHIGHFIFIIFGIGGIIIHIHHIIIIHHH	NM:i:2	MD:Z:C10G88	oR:Z:1	oH:i:1	oP:i:1701	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.280	163	1	1406	255	100M	=	1599	-293	GACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCT	IHHIHIHHHIHHIIIHIIIIHGHGFIIIFHIIFFIFFIIIIFAIGFIIGIHFGIIFGII>IIIIIIBIFHI?IFFDIIIIIIACBFI at IDIII>GIIGII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1508	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.281	83	1	2628	255	100M	=	2402	326	CTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGG	IGIIIEIHIDEBIIDGIHIIIIFAIDIGGCGFIAFIIFFIIIIIIIBIIAIIHHHIICHIIEIIEIHIDHHEGHHHHIGHHGIIGIIHIIIIHHHIHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2729	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.281	163	1	2402	255	100M	=	2628	-326	TTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGGGTGATACAT	IIHHIIHHIHIIIHGHHGIGIHGIIIIGHFFIGDIGIFIFGGFGIIFGGIHCEEBIIIIGI>IHIGIEI=GEH at IBIIGIHDIIDI?IIH:IIEIICIII	NM:i:1	MD:Z:90C9	oR:Z:1	oH:i:1	oP:i:2503	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -608,7 +608,7 @@ simulated.302	163	2	617	255	100M	=	802	-285	ATCGGGACTTAATTCTGGCTGTTTGAAGTCGAATCC
 simulated.303	83	1	9540	255	100M	=	9357	283	CAGAGTCTAGAGCAGCCACATAAAAATAAATTGAATCGTTAGCTCCGCCGTGTGGACATGGCATCGGCGTCATCCCATAGACATCACCGGTCGAACCCAC	IIDGE>IIIIDI=II at HCHII@IIIG>EIACIIIIHIDGIHHIFIFHIGFHHHIGCIGGHIIHIIIIIFDGIHHFGHIHHIIGIIIIHHIHIIHHIIIHH	NM:i:1	MD:Z:79T20	oR:Z:1	oH:i:2	oP:i:10383	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.303	163	1	9357	255	100M	=	9540	-283	GGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGG	HHHIHIIIHIIHHHGIFIIIIHIIFIIIGIIIGFIIHGIHHIDHIEFHGIDHIHEDIGIFAIIEIIGCIIIIIIHIIH>IEEIIIIDDGIHI>HIGDIIC	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10200	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.304	83	1	9216	255	100M	=	9038	278	CAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACC	CEFB8I<G at IGHICIIHI=ICIEIEICIIEIICIECFIEAFEIEFIAFIIIIIIHIIFIIIIGEHEIGIGIIIHIIIHIIIGIIHHHHHHHHHHIHIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9406	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.304	163	1	9038	255	70M3D30M	=	9216	-278	AATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTG	HIHHHIHIHHIIGHHHHIIIHHIGIIIIIHIIFGEIGEIGFIIICHIIIGGEGI at FGIDGIEFCCIIBAIGIEGCGIIIGHIFCGGDIIIB>HHGIHEIG	NM:i:3	MD:Z:70^GAT30	oR:Z:1	oH:i:1	oP:i:9231	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.304	163	1	9038	255	70M3D30M	=	9216	-278	AATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTG	HIHHHIHIHHIIGHHHHIIIHHIGIIIIIHIIFGEIGEIGFIIICHIIIGGEGI at FGIDGIEFCCIIBAIGIEGCGIIIGHIFCGGDIIIB>HHGIHEIG	NM:i:3	MD:Z:70GAT30	oR:Z:1	oH:i:1	oP:i:9231	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.305	73	2	208	255	100M	*	0	0	AAGAGCATCGTTCGTCCAGGTTTGTCCCCAACAATCCAAGCAGATTTAATTTGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTC	IHIIIHHHHIHGIIIIIEGHHIIGHIIIIHIIHIDIFHIFFGFIGHIAHH9GIDGIIICCCD at IIIEIIIAIIIC@ICIIIIICIIEIIIIHEIII?EAF	NM:i:2	MD:Z:17T32A49	oR:Z:2	oH:i:1	oP:i:207	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.305	133	2	208	255	*	*	0	0	ACTAAGATGGCACTGGCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATTCAATGCTCACCAGGTGAGGAGCGGGTCGGGGAGATTTATCCTCATCTCTCT	HIHHIHHHHIIHIGHIGEIIHHIHIIIGIGIIGGIIFIFEEIIIGGDHGDFIHIHEGIEGIIDIIIDII?IIIGHIEDIHIHIIIIIII at IAIIDIIIDI	uR:A:B	oR:Z:2	oP:i:419	oH:i:1	oS:A:R
 simulated.306	99	1	291	255	100M	=	481	290	GCAATCGTTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGC	IHHHIHIFIHHHIHIGHIIFIIIIIFFGIFHEFEGIIIIHHIFIFGFGHDIGIFGHIICIFDGEIIFI;IIIIGIHII at FIIHCH@GIH>?FICEF at BII	NM:i:1	MD:Z:7C92	oR:Z:1	oH:i:2	oP:i:290	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -666,7 +666,7 @@ simulated.331	153	1	6828	255	100M	*	0	0	GAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGG
 simulated.332	89	1	8387	255	100M	*	0	0	GCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGT	IB?IF at IAHF@HIFIIIHAABGIIIIIIFEIIIIEIIECIGDIIFIFIGHIIFDDFEGIDGEIHIIGHIGHHIFGHHHIIIHFIIGIGIHIHHHHHIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:9075	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.332	133	1	8387	255	*	*	0	0	CGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAA	HIHHIIIHIHIHHHIGIGIIIHGIIIIGFIHGIHEIIHFDIIICIHEEIHID>IIEIIIIAEIFIHIIIIHIIFDHCAADIHF:III at IE?IGC6IDIEH	uR:A:B	oR:Z:1	oP:i:8841	oH:i:2	oS:A:F
 simulated.333	83	1	324	255	100M	=	125	299	CGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCA	CIHIEG;?IHHG?CFEEIIICIC?IIEDD;DBCFH=IACIIDIIICCDIHHHDEFIHIEFIIEIGFIIGIGFGDHHIEIIHHHIFHHIHIHHIHIIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:317	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.333	163	1	125	255	33M3D67M	=	324	-299	GCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGAC	IHHIIHIIIIIHHGIIIHHIIIIIHHGGGGIHGFIIGFGGGIEEIEIGGEIIIIEHIBCFIHHH?IHFIHIF at IIDEIIICHIIICGFIGGH3DAICGIG	NM:i:3	MD:Z:33^CAG67	oR:Z:1	oH:i:1	oP:i:121	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.333	163	1	125	255	33M3D67M	=	324	-299	GCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGAC	IHHIIHIIIIIHHGIIIHHIIIIIHHGGGGIHGFIIGFGGGIEEIEIGGEIIIIEHIBCFIHHH?IHFIHIF at IIDEIIICHIIICGFIGGH3DAICGIG	NM:i:3	MD:Z:33CAG67	oR:Z:1	oH:i:1	oP:i:121	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.334	69	1	1450	255	*	*	0	0	ACACGGACCCACGCGACTTTGTGCACAAGCCGGGCCAACGCACTATGGTCAGCTTATGTACCACCTCCGTTACACTTAGTGTTGTTTGCCCCGGCTGTTT	HHHIIHHHIIGHIIHHIHGHFIIIIIIHHIIGHIIGHIGGFIIHGIEIIGGIDIIIIIEIIIIIDIIIIIIIIHEIEGEHHEGIEI?HFIHI?8IIAIBI	uR:A:B	oR:Z:1	oP:i:1682	oH:i:2	oS:A:R
 simulated.334	137	1	1450	255	100M	*	0	0	TTGGATTTGCCGGCCCCCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGT	HIHHIIIIGHIHIIHGHGHIIHFIFHGGGIIHIICGGEFDIIGICFIIGIIGHGBGBICFIDIDIIIFHCIIBIGIBIIFBCFHGFIIIBBIIIIIIAIA	NM:i:1	MD:Z:16G83	oR:Z:1	oH:i:2	oP:i:1503	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.335	69	*	0	255	*	*	0	0	TGAACTCAGATAAGACGGGTGATGGCAGGTGGTTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATG	IIHHIIIHIHIIHHIHIIGIHIIHIIFEGFFIFHHIEEIGFHFIIIIGFIDIIHIFGGIFIIECHFHFFIHIEEBEEIIHIIAHIIIHCGHIFHIF at I<B	uR:A:B	oR:Z:1	oP:i:5412	oH:i:1	oS:A:F
@@ -690,7 +690,7 @@ simulated.343	141	*	0	255	*	*	0	0	GGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGT
 simulated.344	83	2	727	255	100M	=	511	316	CTAATAATCGGACGGTGGTTTTGTCAGTGTCTAAGGCCCCATGCATGCAGATGATCCCTTATGTGCCAAAAACGGGTACCCGCTAGCCGTGGATGCGAGG	D=FIIICFIIGII=I at CG@II:HACIII?IFCIIICIFHGIHDIGEIIIFICEGIIIDFHGCIIIHHIHHGGIGIFIIIIIIHHHHIHHIIHHHIHIHHI	NM:i:1	MD:Z:33T66	oR:Z:2	oH:i:2	oP:i:726	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.344	163	2	511	255	100M	=	727	-316	TGGCACTGGCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATTAGTCTATTTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGTAACGATAATAGGCTA	HHHHIIHIIIHGIGIHHIIIIIIIIGIIIGGGIGIHIIIIEIHGFEHEFFGIIIAIIII>C?FII?IIIICIIFIIHHHIFIIEFIEA at I=IHBIFII9F	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:510	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.345	69	1	5049	255	*	*	0	0	TATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCT	IIIHIIHIIIHHIGIIHIHIIIIGIFIIHIHIIGDGIGGGIGEIIFFIIIEIFAFIIGIICFIII at IIIIIIIIII?IICIHIECFIII?IIBBBGC at E>	uR:A:B	oR:Z:1	oP:i:5278	oH:i:2	oS:A:F
-simulated.345	153	1	5049	255	100M	*	0	0	AACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGAC	IAHEIHBI>I at BDFGIIEICI@FICHDIGFIIHFIICAIHIIECIGICIIFDIIIIHGIHIIGFFHIIIHDEIGIGIGIIHHIHHIIHIIIIIIIIHIHH	NM:i:1	MD:Z:0C99	oR:Z:1	oH:i:2	oP:i:5480	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.345	153	1	5049	255	100M	*	0	0	AACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGAC	IAHEIHBI>I at BDFGIIEICI@FICHDIGFIIHFIICAIHIIECIGICIIFDIIIIHGIHIIGFFHIIIHDEIGIGIGIIHHIHHIIHIIIIIIIIHIHH	NM:i:1	MD:Z:C99	oR:Z:1	oH:i:2	oP:i:5480	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.346	69	1	9002	255	*	*	0	0	CCAGCTGGAACGGTCTCAAACCGTTGTCGGTTCCGCGCTTGAAATGCGCGCTGGCGGTGAACTAACTGCGGATCGTACATGACCCGGTTCGGCTATTCGG	IHIIIHHIIIIIHIGIHHIHHIGFHIFICIHIIHICIGIIHGEIGIAIIIHIHIIDFIHHHIIEEIIIIEIIIIFG<EII?IIII?I?I>ECDIFHCACI	uR:A:B	oR:Z:1	oP:i:9911	oH:i:2	oS:A:R
 simulated.346	137	1	9002	255	100M	*	0	0	ATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGC	HHHHHHHHIHIIHIHHIIHGGIIGIIHIGDIGIIFGIIIGIIDDIEHIIHIIG at IIGHIFEIEIDIIDGIIIBI?FIHGHIIIIIIGGHI?IIHBIDDII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:9756	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.347	69	*	0	255	*	*	0	0	CGCGGTAACGATAATAGGCTATACTGAATCGGGACTTAATTCTGGCTGTTTGAAGTCGAATCCGTTTTTATTCGACTCTTCTTGCATTCATCACCGGCTC	HIIIHHHHHHIHIIIGHIIIIIIHHHIHGIHIIHIHECIHGGIFCIIGIGIIIGAFIFHGHIICIIEGIDIAAHIIG>EIIHIIIICIIIIIICIIIDGI	uR:A:B	oR:Z:2	oP:i:589	oH:i:1	oS:A:F
@@ -737,7 +737,7 @@ simulated.367	83	1	3029	255	100M	=	2836	293	TACCGCTACCTGGTTAGGGATCTTATGTCTTCAATT
 simulated.367	163	1	2836	255	100M	=	3029	-293	AAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTA	IIIHIIHIIIGGIIGIIGHGHHGIIGIIIFIHHHIIIGDDHCGFFIIIGGIIIGHIF at HGIIIIIFBIIIBIFCIEFDII@HDFIHDIEICEIIBIIGAI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:3110	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.368	69	1	8828	255	*	*	0	0	GCCCAAGGGCTGCTACTGCCCAGGACAAGCAACGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTG	HHIIIHHIIIIGHHHHHGGIGIHIIIGIHHIGICIGEGHH at IIHEHHDFGFIIIIHH>HGHFDHIFIE?GIICIIIIIBIIHIFAIIB?DIIEIIIAA>I	uR:A:B	oR:Z:1	oP:i:8833	oH:i:1	oS:A:F
 simulated.368	153	1	8828	255	100M	*	0	0	AGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAA	AICIIIIIGIHDIDII at IIGIGIIIHBCBICIIIGIIHFFGIGIGCIIHIIHICIFGDGFIGFIIHFGIFHIIIHIHIGHGHHIGGHHHGHHHHHIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9021	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.369	99	1	98	255	23M3D34M3D43M	=	341	343	GCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGC	IHIIIHHHHHHGHIGIHFIHIIIGHFIHIHIIFGIIIIIHHIGIEIICEGIEIHIIGIFIGGIIEIEIIIGAIIIDIEICIIDFIFEBHIH<FIHIEIID	NM:i:6	MD:Z:23^ACA34^CAG43	oR:Z:1	oH:i:1	oP:i:97	oS:A:F	XE:i:0	XS:i:0	XI:i:6
+simulated.369	99	1	98	255	23M3D34M3D43M	=	341	343	GCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGC	IHIIIHHHHHHGHIGIHFIHIIIGHFIHIHIIFGIIIIIHHIGIEIICEGIEIHIIGIFIGGIIEIEIIIGAIIIDIEICIIDFIFEBHIH<FIHIEIID	NM:i:6	MD:Z:23ACA34CAG43	oR:Z:1	oH:i:1	oP:i:97	oS:A:F	XE:i:0	XS:i:0	XI:i:6
 simulated.369	147	1	341	255	100M	=	98	-343	GCACAAAATCATCTTGGGATAGGAGGAGTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTG	I>II@@CEFBIIIIF=IIIIIE?GIEG=IFGCFEEACIIHIIEIDIEICIICIHGFIIFGHHIIIIIIIDIHFGIGHIIIHIHHHHHIHHHHHHIHIHIH	NM:i:1	MD:Z:27T72	oR:Z:1	oH:i:1	oP:i:334	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.370	83	1	2551	255	100M	=	2359	292	GGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTA	?EFIIGIIHIAIIEHHIIIIIIIIEEHFIHHCFIFGG at IBDFHAIIBGGHGIIIHIGIIIGIGGIIIIIHGIHIHHIGFIGIHIIIHIIGHIHIHHIIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2652	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.370	163	1	2359	255	100M	=	2551	-292	AGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAAT	IHHHIHIHIIHIIHGGGIIHHHHIIIHHHHHFDIIIGEGGFIEIGIIIIEHGFIHAIHDFIIIICIEGFEH at HFHGIIEEIFIEIIIIGIDBICDAII=I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2460	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -786,13 +786,13 @@ simulated.391	147	1	3647	255	100M	=	3472	-275	TTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAG
 simulated.392	83	1	448	255	100M	=	232	316	TAGTCGCATTAGTCCAAGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCAT	II>IIIIIIIIHGBIIIAIIBGIDIIIGI<IIIBIGIE at FIEIHFIIIFEIGHIBHIHIGGDIIIEHIHIFHGGIIFFIIHIIHHIHGHHHHHIHHIHII	NM:i:1	MD:Z:16T83	oR:Z:1	oH:i:2	oP:i:447	oS:A:R	XE:i:0	XS:i:2	XI:i:0
 simulated.392	163	1	232	255	100M	=	448	-316	GTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTAT	HHIHIHIHHGIIHHHIIGGGIIGIIIHGGGHHIIGEIBGDDDIIIIEIIFICIDCGIBIGHIII at IDIIIHIICFGHI=IG8CAHG=BIII;HIIEFIBI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:231	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.393	83	1	2925	255	100M	=	2718	307	CTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAG	ICICIFGDEIHGGIIFBIBHGIEIIIDBIDBF at HICEBDIGCHFDIGICADIE@IIHFHFHDIIHIIIFIGHGGHGIFIHFHIHGIIIIIGIHIIHIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:3199	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.393	163	1	2718	255	100M	=	2925	-307	AGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTGGTTTGGTGCTATGTCCCCTAACTTTTGACACT	HHIHHHIHIHHIIIHHEHGHGGIIHGIIHIIGIIHIIIIFGIIIHIIGHIHIIDIIFICFFG=BIHI8HIIHIBIFIIICEIGI<FIEIIIBGDIG1G8I	NM:i:3	MD:Z:67C0C27A3	oR:Z:1	oH:i:2	oP:i:2992	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.393	163	1	2718	255	100M	=	2925	-307	AGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTGGTTTGGTGCTATGTCCCCTAACTTTTGACACT	HHIHHHIHIHHIIIHHEHGHGGIIHGIIHIIGIIHIIIIFGIIIHIIGHIHIIDIIFICFFG=BIHI8HIIHIBIFIIICEIGI<FIEIIIBGDIG1G8I	NM:i:3	MD:Z:67CC27A3	oR:Z:1	oH:i:2	oP:i:2992	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.394	99	1	1594	255	100M	=	1776	282	TAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTG	HIIHIIHIHHIHIIIGHGIIHIHHIGGIIIFFFHEIIIIGIGIIIEHIGIEIIIHFEGHIIIHAHHIIAIIIEGE at AFD?IG?II;D<EHIIEFAIIFDH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1696	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.394	147	1	1776	255	100M	=	1594	-282	TATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTA	F?IBI;IIEHIFHGID;IBIGIIFFIIIIIIFIIIAEIGGHBCFGGEEDIGGIGAIBIIIIFDCHGIFFIIIGHHHGIIIIHGGIIIIHHHIIIHHHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1878	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.395	99	1	8759	255	100M	=	8937	278	TCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCT	IHIHHIIIHHIHIGIIIIHIIHHIGIGIGGEHEIGICIGGGIIGIDGGIIIIDIDEEIICGIIGIGEH?IBIIFIEAIDDIBDICEIII9IIIHDE?@@H	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8952	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.395	147	1	8937	255	100M	=	8759	-278	ATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATT	@F=HII?II>I<;=III;GAE at GIDFGEIIIHGI>IIFIFIIIIHHIFIIIEFIIIIIIFIGIIHIIIIIIGHIIGGFIGIIIGHHIIHIIHHIIHHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9130	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.396	83	1	276	255	100M	=	77	299	TGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTG	?IIDIGII at A<G>IEIIIIIDICFDHIFBIGHBIIIHEGIIIGIGFGIIIIIIHIGIEHBIHDHHIFGGFHHIIHFFIIIGIFIHHHHHHIHHIHIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:269	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.396	163	1	77	255	44M3D34M3D22M	=	276	-299	TTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCA	IIIHIHIHIIHHHIIIIIIGIIIGHIIHGCIDGFIIFHIIIDHEIHHIEGGEAIIGFIIIIIIIIFGGHCF<IIIICIIBG?IIHIFCAEEFBIIEEGBI	NM:i:6	MD:Z:44^ACA34^CAG22	oR:Z:1	oH:i:1	oP:i:76	oS:A:F	XE:i:0	XS:i:0	XI:i:6
+simulated.396	163	1	77	255	44M3D34M3D22M	=	276	-299	TTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCA	IIIHIHIHIIHHHIIIIIIGIIIGHIIHGCIDGFIIFHIIIDHEIHHIEGGEAIIGFIIIIIIIIFGGHCF<IIIICIIBG?IIHIFCAEEFBIIEEGBI	NM:i:6	MD:Z:44ACA34CAG22	oR:Z:1	oH:i:1	oP:i:76	oS:A:F	XE:i:0	XS:i:0	XI:i:6
 simulated.397	89	1	5374	255	100M	*	0	0	AGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCAC	IIHEIIIHFI<FICIIIDCEIIEIIF at ICIGGHBBIHIBHIEIIIIIIIIIIIIIGGIGIGIDHFEEIIHIIHHIHIIIIIFIHIIIIHIIHIHIHHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:5805	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.397	133	1	5374	255	*	*	0	0	AACTTGGTAAGATGGGATGTCGAGATGACCAACCCATCAAACCTTGCAATTAGCGGTGATTTCGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTT	IIIIIIIHHIIGIHGIHIHIHEGHIGIHGFFHGGFHIEHIFEFEGIGIFFHIBFGFFIIEIIHIIIIDIEIAEII at GIHIIIFCIEIIGHIC@IIFIIIC	uR:A:B	oR:Z:1	oP:i:5617	oH:i:2	oS:A:F
 simulated.398	89	1	8804	255	100M	*	0	0	TGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCA	@IEIG?GIIIIGBI>@E>IIII>IIGIIIIIDFIIFIIFIDHIHGCIGIHIEGDIHIGIIIHHHIIHIFHIGIIEGIGHGFHGHIIIIHIIIIHIHIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8997	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -813,7 +813,7 @@ simulated.405	99	1	2906	255	100M	=	3122	316	ATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGA
 simulated.405	147	1	3122	255	100M	=	2906	-316	CGCAAGGGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTG	G at IIIDA6IIIIGHCCIIDI>ICCGG>HCFIGIIGII at GIFCIIHHFFHIGHEIIHEIDIFGGDCHHEIFHIIIIHIHHEHIIGGFIIIHIIHIHHHHHH	NM:i:1	MD:Z:6C93	oR:Z:1	oH:i:2	oP:i:3396	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.406	99	1	710	255	100M	=	909	299	AGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTAT	HHHHIHIIHIHHIGHIHHIIHIHGHHIIHGGIHEIIFIIIII at CGFBEIICGIFGHEGDIIDIICIIIIIIHGFDFHGFIIDGIIIIIIEIIBD?ICDIB	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:709	oS:A:F	XE:i:0	XS:i:1	XI:i:0
 simulated.406	147	1	909	255	100M	=	710	-299	TTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATG	CIDIIBAIFIIEEFC at IIEICIIGIIIIIIIIIIFIIIIEIIGFICIEDFI@IHDIIFGHIIIIFIGIFEIIIIIGIHIHIIHGIIHHGGIIHHHHIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:908	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.407	83	1	3767	255	27M1D73M	=	3578	289	ATTGAAACACCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCCTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTT	IBI?EIII>HIBIHEADGICFGDIIIIIGEIIIFIIDIIFFIGIIFDHAIIEBHHIGIGIIFIFIGFHHFIGGHGIHHGGFIHHHIIIHIHHHIHIHIIH	NM:i:3	MD:Z:8T18^T24G48	oR:Z:1	oH:i:1	oP:i:3868	oS:A:R	XE:i:2	XS:i:0	XI:i:1
+simulated.407	83	1	3767	255	27M1D73M	=	3578	289	ATTGAAACACCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCCTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTT	IBI?EIII>HIBIHEADGICFGDIIIIIGEIIIFIIDIIFFIGIIFDHAIIEBHHIGIGIIFIFIGFHHFIGGHGIHHGGFIHHHIIIHIHHHIHIHIIH	NM:i:3	MD:Z:8T18T24G48	oR:Z:1	oH:i:1	oP:i:3868	oS:A:R	XE:i:2	XS:i:0	XI:i:1
 simulated.407	163	1	3578	255	100M	=	3767	-289	AATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCT	HIIHIHHHHHHIIGIIIIIGHGGGGHIIEICIGFGFHFIEFIIIEIGEIIHIEIIEIGIGEIHAEIFGEIGEIIIBHDIIGF>GIIIBABIHGIEFHC4F	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3679	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.408	69	*	0	255	*	*	0	0	GCTAATGCCCAGCCTAAACACGCTTGACCCCGCTTCTAGTCAGGTTGCTGACCTGGTGCCTAGTCGACTGAGTCTAATAGGGGGAACAAGCAACTCAGAA	HIIIHIIHHHHIHHIIIFHIHGIIIIIFFIHFIGFIFHFGHIFIDGHBIIBGIGIGGHIGIFIIIDIICICII=EIIEECIIII:II at GEEGIIIBHIIH	uR:A:B	oR:Z:1	oP:i:1107	oH:i:1	oS:A:R
 simulated.408	141	*	0	255	*	*	0	0	CCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGTCTGTTCAGAA	HHIHIIIHHIHIHIHHHHIIIIIHHIHIIIIIIIIIIHIFIGIIDIIIIIGFGIHCDIIIFIAC at DCEIIIIGII@IEI>IIIHIIHFIIII8IDD:I at E	uR:A:B	oR:Z:1	oP:i:907	oH:i:1	oS:A:F
@@ -830,7 +830,7 @@ simulated.413	137	1	3640	255	64M4I32M	*	0	0	CTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGAC
 simulated.414	73	1	1412	255	100M	*	0	0	ACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGT	IHIIHHIIHIHHIHIHIHFHHIHHIGHIGHIGIIHIIDGIIIHICDEIGGDGFHHIIIIFGIFF;IBIIIIBIIGIII=EFIIDIGFIDDDFDGDIIGIF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:1465	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.414	133	1	1412	255	*	*	0	0	ACGCGACTTTGTGCACAAGCCGGGCCAACGCACTATGGTCAGCTTATGTACCACATCCGTTACACTTAGTGTTGTTTGCCCCGGCTGTTTTATGGCCGGA	HHIIHIIIIHGHIHGHIGGHIHGEHIIGICIIIIEHIIIIFIIDEIIHGHCGCH at HGHDIGDEEIIEFIIFCG?IIIAII:DIIHI at DIII@EF0DIAI?	uR:A:B	oR:Z:1	oP:i:1672	oH:i:2	oS:A:R
 simulated.415	83	1	2149	255	100M	=	1929	320	GAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAA	?IFCCIFHIII?DI9>HGIIDHIBIAFGGIIIIIIIEIIHIFHIFIGIFGIIEIIIHGFIEGGGIIIIFIEIIHHGHFDHIHHHHIIHHIGHHHIHIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2250	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.415	163	1	1929	255	85M1D15M	=	2149	-320	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	HIHIHIHHIIHHIHGHHIHHGIIFHGEIIIHHIEHIIIHIHIIIEIIIIIIIIDE>IFFIIGIIBIDGIEIDHBGG at HIIIAIIIDFEDFIIGGFIIIII	NM:i:1	MD:Z:85^A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.415	163	1	1929	255	85M1D15M	=	2149	-320	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	HIHIHIHHIIHHIHGHHIHHGIIFHGEIIIHHIEHIIIHIHIIIEIIIIIIIIDE>IFFIIGIIBIDGIEIDHBGG at HIIIAIIIDFEDFIIGGFIIIII	NM:i:1	MD:Z:85A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.416	83	1	554	255	100M	=	337	317	GTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGG	FHIAFAIIIIIEGEEBHEAIIIDGIIDFBIEIIIGHIIEFIAII at IFIIGIGCICEIFHIHIIIHFHIIIIHIIIFIIEIIHHGHIIHHHHIIHIHHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:553	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.416	163	1	337	255	100M	=	554	-317	GGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCG	HHHIIIIGHIIHIGIGFHIHIFIIHHIIHGIGGIIEHIHEIIIIIFCIGGIIGEDIEHACIIHFIFIICIDGGI:IIIICHEIEIC at IIAIDE?IHBIBG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:336	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.417	83	1	3197	255	100M	=	3027	270	TTAATCCAAGTTTCAGGTAAGGTTGGCACCCCGCTATTAAAAACAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCAT	IIADIIIIHI<:IH9IIGBEDEIIIIIAIDI?FEDHFGHIIFGHIEHIEHGHFIEFGHIIIFIFHGIHIIIHGGGIIIHHIFHIIHGFGIIIIHHIIHIH	NM:i:3	MD:Z:8C8G25G56	oR:Z:1	oH:i:2	oP:i:3471	oS:A:R	XE:i:2	XS:i:2	XI:i:0
@@ -860,7 +860,7 @@ simulated.428	133	1	3929	255	*	*	0	0	AAAGGAGCGCTGTGGAGCCCGACCTCAGCTAAAGAGCCTTGGG
 simulated.429	83	1	4513	255	100M	=	4338	275	AATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGG	IIHIIHIGAIIIDDIICEAHEFEIIEII at IF>FGEIIIGIGDIHIIFGIIGIIIIEIICEHIHFIIIDFFIIGGIIHIGIIIIHHIGGIGHHIHIIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4538	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.429	163	1	4338	255	100M	=	4513	-275	TGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTNAACACCC	HIHHIIHHHHHGGHIIIHGIHIHHIHIHIIIHIIFIIDIFFIFFIIIEICDGEI>CIEIHIIGIEF at G>IEFBAEIIGEIIGIIHFDHIIDIIFDDIIGB	NM:i:1	MD:Z:92T7	oR:Z:1	oH:i:1	oP:i:4363	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.430	99	1	1817	255	100M	=	2000	283	AGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGT	HHIIHHHIIHHHHHGIGGHIIIGGIIGFHIHIHHIFIIIIIGHIIHIIIIFGIE>GIGECHEIIIIIHAGIEDIGAIBBFIIHCFE>DI?IG>EI:IEIB	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1919	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.430	147	1	2000	255	14M1D86M	=	1817	-283	TGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTA	IF at IBCHHHGIHFGAIIGEIIGIC>CCFEFGCBFEIHEHCEEIHDHHIIIFIIIIIGEIHIIIGIIIIIHIIFHIIGFGIHHIIGIHHHHIHHHHHHHHI	NM:i:1	MD:Z:14^A86	oR:Z:1	oH:i:1	oP:i:2102	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.430	147	1	2000	255	14M1D86M	=	1817	-283	TGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTA	IF at IBCHHHGIHFGAIIGEIIGIC>CCFEFGCBFEIHEHCEEIHDHHIIIFIIIIIGEIHIIIGIIIIIHIIFHIIGFGIHHIIGIHHHHIHHHHHHHHI	NM:i:1	MD:Z:14A86	oR:Z:1	oH:i:1	oP:i:2102	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.431	69	*	0	255	*	*	0	0	CGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACGTGCCTTTGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGA	IHIIIHHHGIHGHIIIHIGIHHIFFFIEDIHGIHIIHGIGCIFIIFGDDHAFGFIFGIIIIFIIIIGIGIH?IHEGAIIFEIIBIHIHIII<IIDIDIII	uR:A:B	oR:Z:1	oP:i:2868	oH:i:1	oS:A:F
 simulated.431	141	*	0	255	*	*	0	0	GCCCAGCGATGTGGGCGCTTGCGCTATACGATAATTGGAACCAAGTAGCGGTATCAGCTCTACGAACAATCTAAGGTTAGGCTTTATTTATGACAGGACA	HHIHIHHIIHIHHHIIHIIIIHIIGIHGIIIIIGIIIIBIIGGIGIIIFFGIADIIIIEBGGCD?IBIIFHEIAIGHGCAIGIF=IIIIIHHB?IICFII	uR:A:B	oR:Z:1	oP:i:3083	oH:i:1	oS:A:R
 simulated.432	83	2	766	255	100M	=	583	283	CATGCATGCAGATGATCCCTTATGTGCCAAAAACGGGTACCCGCTAGCCGTGGATGCGAGGTTCCTGACCCAATCTTCTCTATGTTTTTAACGCTCAAGT	FIDIEIEIEEEIIHIGIIIDGIEIGGGEIIFIG at IIGIHIIIIFIIHGFIIHHEFCIGHHIHIGIIGHIGFIGFIIIIHIIIIGIHIIIHHHIHIHHHHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:765	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -888,7 +888,7 @@ simulated.442	133	1	6704	255	*	*	0	0	CCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGC
 simulated.443	69	1	3337	255	*	*	0	0	TTCCACGGGACAACCCCTTGACGTATGTCCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAA	IHIHHHHGGIHHIHHHIIHIIFGIIHGIIIIGIIIHIIIEHIFHIIFECFFIHIEAF at FIDDEFICFHIIIIGIEH@IIDGEIFI?EEIICCEIEGII<A	uR:A:B	oR:Z:1	oP:i:3238	oH:i:1	oS:A:F
 simulated.443	153	1	3337	255	100M	*	0	0	ATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAACTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTG	IHIIDIIHIIIIFIFIEIIHIIIHIGGIICIICIIBHHICIIIFFGIHIHIFIFGDIEIHDIHFIIIIGIGCHGIGFIGIHFHIIHIIIIIHIIIIHIII	NM:i:1	MD:Z:37G62	oR:Z:1	oH:i:1	oP:i:3438	oS:A:R	XE:i:0	XS:i:1	XI:i:0
 simulated.444	69	1	8980	255	*	*	0	0	GTAGTGGAAGAACTCCGGATATTCCGACCAGCTGGAACGGTCTCAAACCGTTGTCGGTTCCGCGCTTGAAATGCGCGCTGGCGGTGAACTAACTGCGGAT	IHHHHIHIIIIIHIIIIHHGIIHIHGIGFFCIHFIIGIGCIIEIFIIIIIIIGCIFHIBDHACDIBGIFHE=II>III>DIIIID=I at DFIE@I>HHIIF	uR:A:B	oR:Z:1	oP:i:9938	oH:i:2	oS:A:R
-simulated.444	137	1	8980	255	6M1D94M	*	0	0	CACTACAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGCTGCACAACCACTACAGAGGATGCCTC	HIHIIIIIHIIIGIHIHIIIHIHIHIIFIIHIIHIHEIIGGIGDEEIHGGFDFDIDIIIGIEEIIEIIIICBI;AFIEIIIDFGIDCIF6IIGCAEII>I	NM:i:4	MD:Z:6^G67T15A4A5	oR:Z:1	oH:i:2	oP:i:9734	oS:A:F	XE:i:4	XS:i:0	XI:i:0
+simulated.444	137	1	8980	255	6M1D94M	*	0	0	CACTACAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGCTGCACAACCACTACAGAGGATGCCTC	HIHIIIIIHIIIGIHIHIIIHIHIHIIFIIHIIHIHEIIGGIGDEEIHGGFDFDIDIIIGIEEIIEIIIICBI;AFIEIIIDFGIDCIF6IIGCAEII>I	NM:i:4	MD:Z:6G67T15A4A5	oR:Z:1	oH:i:2	oP:i:9734	oS:A:F	XE:i:4	XS:i:0	XI:i:0
 simulated.445	99	1	6581	255	100M	=	6801	320	CTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAA	IHIHHHHIIIHHGIGIHGHIHHIHDIIIFIBHIIIIIBIIFFIIFIIGIIHGHIIICIGIGH?IIIII<HIIIIIFIH?ECCFIIEAFICIDIBEIHGBH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6774	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.445	147	1	6801	255	100M	=	6581	-320	CCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTNCACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAG	IIGFIHIFAGIIFIIAIIIIBI at I?IIIAHIBBIIIIIF?I?HHIDAIIG at IIHDDFIIGIIFIIGIIFHIHFIIIHHGIHIIHGGHIHHIIHIIIHIHH	NM:i:1	MD:Z:57A42	oR:Z:1	oH:i:1	oP:i:6994	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.446	69	*	0	255	*	*	0	0	ATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTT	HHHHIIHIIIHHIHIIIHIIIIIIGIIIHGHDIIGIIGIIDICHIIIFICIFDEIIFGDICHGDEIIIIIGGDIBIHDBCEI at DBIFIEHBGIE<IIIDI	uR:A:B	oR:Z:2	oP:i:119	oH:i:1	oS:A:F
@@ -938,7 +938,7 @@ simulated.467	141	*	0	255	*	*	0	0	CTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATT
 simulated.468	69	*	0	255	*	*	0	0	GGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTG	IHIIHHIHHIHIHIHHIIIIFGHIIIFGIIHGFHIFIGGHFHBIEIIFIDIDIIEIIGII=EIIIIIIGIFIGIGIIGE;IFGIIIHHIIIII at IIII?G	uR:A:B	oR:Z:1	oP:i:5228	oH:i:1	oS:A:F
 simulated.468	141	*	0	255	*	*	0	0	CCCGAGTAGCTTAATGTACCTCCATGATACCGTTAGTGGAATGACTACTGTTCAGCGTAATGAACGCGAGCTCCACGTGTTTTTCACCACCCACCTGGCA	HHHIHHHHHIHHIIHHHHIGHGGHHDHIIBHHIHIFIEGI?EFHIIDGEAIBIDIBEHIAIIIIDDDIIHICIIIIIEEIIDCGDIDIIIB at IDIEIHED	uR:A:B	oR:Z:1	oP:i:5434	oH:i:1	oS:A:R
 simulated.469	99	1	8865	255	100M	=	9078	313	ATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAAT	IIIHIHHHIIIGIIIIHHHIIGFHEIIIHIIGCGIIIIHHIIFGHHFIIIIDFGIAIDHHHIIHIICCIBCDAF>GIDHIFIGDCECBGII<III at IIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9058	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.469	147	1	9078	255	30M3D70M	=	8865	-313	CTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATGCG	II9I>FIHIIIE<DIFIGICIIDIGFEIGIIICIDIIIBICEIGEIIIIIHIIHIIHHIDAIEHIFEIIIHFIIHIIIHIHIHIHIGHIHHHHIHIIHHH	NM:i:4	MD:Z:30^GAT67T2	oR:Z:1	oH:i:1	oP:i:9271	oS:A:R	XE:i:1	XS:i:0	XI:i:3
+simulated.469	147	1	9078	255	30M3D70M	=	8865	-313	CTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATGCG	II9I>FIHIIIE<DIFIGICIIDIGFEIGIIICIDIIIBICEIGEIIIIIHIIHIIHHIDAIEHIFEIIIHFIIHIIIHIHIHIHIGHIHHHHIHIIHHH	NM:i:4	MD:Z:30GAT67T2	oR:Z:1	oH:i:1	oP:i:9271	oS:A:R	XE:i:1	XS:i:0	XI:i:3
 simulated.470	99	1	8166	255	100M	=	8394	328	CCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACT	HHIIIHHIIGHHGIIHIHGIHIIGHIGFGIHIEIIIIIIFHIIAGHIDIHIIFGIIADABGIDIIIEEFEIIEIIIHDIEAIE at EDIIHIIFI?IIIBH=	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8359	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.470	147	1	8394	255	100M	=	8166	-328	CGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAAT	FAD?IIIGCFIIIGGII>IICGGIGH>9FIGEIACIIFIIGIGIGIIIEIIHIIIIIIHIIIIFHFIIIIFFIIIIIIHIHHHHGIHIIHHHHHIHHIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8587	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.471	99	1	6702	255	100M	=	6903	301	CACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTC	IIHHHHHHIHIHIHIIHIGHIIIIGHGIFIIFFEIHHIGEIHHFIHFHEFIGIGHIID?IIICIIEIIIEIADFBEFGICHHHEIIHHIIDFIAFFIIDI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6895	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -946,7 +946,7 @@ simulated.471	147	1	6903	255	100M	=	6702	-301	ATGGAATGATATCCTGCGGGCCCTTCTTTAGTTT
 simulated.472	73	1	9009	255	100M	*	0	0	TTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAG	HHIIIIIHHIIHIHIHIIIIIFIHHIHIFHHIHIHIIDGIIIIFIIEHCDIIGG at FEDIHIEEDDIIICIIBIIDIBH=I at BAIIEFIIHBEFIICIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:9763	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.472	133	1	9009	255	*	*	0	0	TGACGGGACCACTACAATCCAGTAGTGGAAGAACTCCGGATATTCCGACCAGCTGGAACGGTCTCAAACCGTTGTCGGTTCCGCGCTTGAAATGCGCGCT	IHIIHHIIIIHGGGIHIHHIIIHIHIIFHHEEIEIIIGIIIBIH at EDIEFHIDIHIII@IHDCEIHHGIHGIDIECEIIDIBIEEHIDIDIID at IGCBII	uR:A:B	oR:Z:1	oP:i:9959	oH:i:2	oS:A:R
 simulated.473	99	1	2048	255	100M	=	2250	303	ATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTCAAATTACAA	IHIIHHIIHIHIGHHIGIIIHIIHIIIGHGIGEIIIIHGIECHAIHIIFIHGEIHIIFIDIHICFEHIIIIIHHIEIBHIFIIGHFGCIICFBIIDCEIE	NM:i:1	MD:Z:90G9	oR:Z:1	oH:i:1	oP:i:2149	oS:A:F	XE:i:0	XS:i:1	XI:i:0
-simulated.473	147	1	2250	255	71M1D29M	=	2048	-303	ATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATAACGTCAAAAGTCTTCTACCCACGGGTG	IIHI at IGIEIFIIBIIEH>EGD@@HIEFDFIEGGGID<IDHGICIIIHIHIGIIFGIFCHHIIIIIGHGHFIGEIIIHGHIHIIHHHHIIHHIHIIHIIH	NM:i:1	MD:Z:71^T29	oR:Z:1	oH:i:1	oP:i:2351	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.473	147	1	2250	255	71M1D29M	=	2048	-303	ATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATAACGTCAAAAGTCTTCTACCCACGGGTG	IIHI at IGIEIFIIBIIEH>EGD@@HIEFDFIEGGGID<IDHGICIIIHIHIGIIFGIFCHHIIIIIGHGHFIGEIIIHGHIHIIHHHHIIHHIHIIHIIH	NM:i:1	MD:Z:71T29	oR:Z:1	oH:i:1	oP:i:2351	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.474	89	1	3339	255	100M	*	0	0	AGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAACTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACNTCGTGAC	IIII?@IIIIIBFHIIIGGIHFIICIC>GGEG9AEEIFDIIDHIFGIHFIDIIHIIFGHIBIEDEFEHIEFIIIGIHHIIIIHHIHHIHIHHIIHHIHII	NM:i:2	MD:Z:35G56A7	oR:Z:1	oH:i:1	oP:i:3440	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.474	133	1	3339	255	*	*	0	0	TCCACGGGACAACCCCTTGACGTATGTCCTATTGAGAACTTACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAA	HIHIHIHIIIIHIIIHIGGFIFIIHIIIHEIIIIIIIGGICIGDFIIFIII>HIIHIIFECIEIIIIII at CIGDIIIIHHII@EGIAIIIIIGIIIH:FC	uR:A:B	oR:Z:1	oP:i:3239	oH:i:1	oS:A:F
 simulated.475	73	1	7729	255	100M	*	0	0	CAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCGACCTAGTGGATCGATTACGGGATAGCCCCCTGCTTTTAGCCGCGAAN	HIIIHHIIHIHGIHIIIHIHIHHHIHHEIIHGFIIDGIGFIFIIGIGDHIIIIIIFDIIIIII at EIHCIFFIIFEIFFI;IGEIHI2BIHEII5IIIDD=	NM:i:4	MD:Z:52A33C6T5T	oR:Z:1	oH:i:2	oP:i:8453	oS:A:F	XE:i:4	XS:i:1	XI:i:0
@@ -1044,7 +1044,7 @@ simulated.520	147	1	7302	255	100M	=	7115	-287	ATTAGCCCATGTTCGACCGGGTACCCTGTGGAGA
 simulated.521	99	2	130	255	100M	=	363	333	CGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTT	IIIHIIHIHIIHIIGHGIIFIGGHGEIGHHHDGIGIHEIIIHHHIIGHFIDGIIDFIEHEHI>FDIIFGEIGEII at HCGIEIF?IEA=IEIFIII at EGCI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:129	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.521	147	2	363	255	100M	=	130	-333	CGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAATCAGACTAGGGACGCGATACTGCACGGCATGTTCCTCACCTGGT	B at II>IGEII at HIFEHIDEGI;IIIIBEEIIIGFIIGIIEAIEIIICCIFHDIIGEGHIIEGIGIIIGHIHGIIIIHIHIIIHIIHIHHHIHGIIHIIII	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:362	oS:A:R	XE:i:0	XS:i:1	XI:i:0
 simulated.522	99	1	8832	255	100M	=	9046	314	AATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCCAGCCCCTAGGAACCGG	HHIIIHIHHHIHHHHIIIIGIIDGIHIHHHHHIIFIIFHEEGIFIHFIEEIIDGHIIIIEIHIDGECIIFIIDBIIIIFECHHIDIDFDH at DI=IIAIID	NM:i:1	MD:Z:83G16	oR:Z:1	oH:i:1	oP:i:9025	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.522	147	1	9046	255	62M3D38M	=	8832	-314	CATGTGCGTTGGACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACT	IIH;IIHIEIIFEIDIGIFIFIDEIBEIDCCEHHIGGFIGFIIGFFIFICCIBHIHHIFIIIHDDIIFEIGGIFIHHFEHIIIIGIHHIGHHHHIIIHIH	NM:i:4	MD:Z:11C50^GAT38	oR:Z:1	oH:i:1	oP:i:9239	oS:A:R	XE:i:1	XS:i:0	XI:i:3
+simulated.522	147	1	9046	255	62M3D38M	=	8832	-314	CATGTGCGTTGGACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACT	IIH;IIHIEIIFEIDIGIFIFIDEIBEIDCCEHHIGGFIGFIIGFFIFICCIBHIHHIFIIIHDDIIFEIGGIFIHHFEHIIIIGIHHIGHHHHIIIHIH	NM:i:4	MD:Z:11C50GAT38	oR:Z:1	oH:i:1	oP:i:9239	oS:A:R	XE:i:1	XS:i:0	XI:i:3
 simulated.523	99	1	1308	255	100M	=	1482	274	TTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGA	IHIIHIIIIHHIGIHIHHGHHGGGHHGGEIIIGGFGIIHDGFIHHIIIFDIIIDHEHGEIEDIGGII?IEIEIHHHBDIDI?FIIIHIBC:B<IIIIFII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1410	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.523	147	1	1482	255	100M	=	1308	-274	GTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATG	IFEFIBIGIEFHIIEIHAEICIEIIEGIFIIEIAIIIHIBFHIDHIGFHIIIIAIIHEIDGIEGHEIIHIIFGFHFHIIIGHIHIIIIHHIIIHHIHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1584	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.524	69	1	1048	255	*	*	0	0	CGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGTCTGTTCAGAAAACTTACGCATGATGCACCCCGGAT	IHIIIHHHIHIGIIIHGIGIIHIHHIHIIIIGIIHGIEIDGHBIIHEIICIEEGHHIHIGIIDHGGIIGIIFIIIIIIIIIFBFFEIIIIGIFIIFIGEI	uR:A:B	oR:Z:1	oP:i:932	oH:i:1	oS:A:F
@@ -1121,7 +1121,7 @@ simulated.559	89	1	6128	255	100M	*	0	0	CTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCAC
 simulated.559	133	1	6128	255	*	*	0	0	TTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATAACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCC	IHHHHIHIHIIIIGIHGHIHIFIFGIDIFIIIIIHFHGFIEIIIEIEIDEHBIIHIFE at EIFHIFIFIDGIIEGIBIDE<ADDIGI?IHACBHIIIGIFG	uR:A:B	oR:Z:1	oP:i:6025	oH:i:1	oS:A:F
 simulated.560	69	1	2629	255	*	*	0	0	CTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATACAATCAACATTATAGAAAGCCACAGCGCGGTAACGTTCATGTACG	IIIHHHHIHHIIHIIHHHGIHIIHEEIICGHGIHGIIECHGGIIHGHDGIDIGHHIICII?IGEEIIHG>E?IAFEGIIIFFDAHIIII?IIGID at DC?I	uR:A:B	oR:Z:1	oP:i:2716	oH:i:2	oS:A:F
 simulated.560	153	1	2629	255	100M	*	0	0	TAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGG	IHICI8:IIDIIIIIBIHIIBIIIIIAGDDI?DEIDIIIIBHIIHIIDHDEIFIIIIDIIIGIIIIFDFIIIIFIGHHGHIGFIIGHHIHIIHHIIIIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2903	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.561	73	1	3740	255	54M1D46M	*	0	0	GTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAAC	IIIIHHIIHHIHHGIGIHIHHIHFIGHIIIIDGIGIIIIICIIHHHGFFEFFEFGDHBF=EIBGDFIHIGHEDDEAIAIIEHHIII?HIG at IG>@?HH9I	NM:i:1	MD:Z:54^T46	oR:Z:1	oH:i:1	oP:i:3841	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.561	73	1	3740	255	54M1D46M	*	0	0	GTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAAC	IIIIHHIIHHIHHGIGIHIHHIHFIGHIIIIDGIGIIIIICIIHHHGFFEFFEFGDHBF=EIBGDFIHIGHEDDEAIAIIEHHIII?HIG at IG>@?HH9I	NM:i:1	MD:Z:54T46	oR:Z:1	oH:i:1	oP:i:3841	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.561	133	1	3740	255	*	*	0	0	TACGAAAGTCCGAGCTGTGTGGCGGGGTTTACTGTCAGGCAGGACCTCTGTCTAAGTCATTACTTACCCGCGCGACGCAGTCAATTCCTCATGCATTTGG	HIIHIHHHIIHHHGHHIIIFHGHHIHIIIIHFGHFFEIIIHGIDHHIEIIFEHIEGIFCIBIFFIDIFIBIEEIIGIGIGGICIHI:BICIHIIBHICIH	uR:A:B	oR:Z:1	oP:i:4045	oH:i:1	oS:A:R
 simulated.562	99	1	6667	255	43M2I55M	=	6842	275	GTCTGATGTACCAATACTCTCGCATATCCGCCGGGCACTAAGATCTCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTA	IHIIIHIIHHIIIIIIIIIIIIHIIHIGHFIIGF at IIIEIHIIFDIAFIIFIIIHIHGIDIHIIIIGICFBI@IIHFIEDFDIIDIIIIIIA at IIIICII	NM:i:3	MD:Z:34A63	oR:Z:1	oH:i:2	oP:i:7389	oS:A:F	XE:i:1	XS:i:0	XI:i:2
 simulated.562	147	1	6842	255	100M	=	6667	-275	GTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGC	H@@EIACGHIHIIBIFIIHIFFIIDCHBCEIIIHIEIIFBIHIGIGIHIEIIIEIFGIFIGGHIBGIIHGFFGGGIIIIIIHHIHIHIHHHIHIHIHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7566	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1267,9 +1267,9 @@ simulated.632	83	1	2887	255	100M	=	2684	303	GACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTA
 simulated.632	163	1	2684	255	100M	=	2887	-303	AGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTATGCATCAGAACTCCGACGGGGCGAGCGAAG	IIIHIHIHIIHIIHIHIHIHHIGEFGIIIGIIIEHCHGIIIFHGFFIIIIIDICBFI at EACHICDGIAIH9HIEIGIGBAHCIII?IFICGIDHDIAH>I	NM:i:2	MD:Z:70A14G14	oR:Z:1	oH:i:2	oP:i:2958	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.633	69	*	0	255	*	*	0	0	TCATCTCGTCCGGTAGTCAGCGAACTGAAACATGCCGTGCAGTATCGCGTCCCTAGTCTGATTAAATTGGCTTAGCTACCTCCCAGAAGAGAGATGAGGA	IHHHHIIGIHGIGHIHHHHHGGHIIEIIHIIGHHIIIGIIGIIHIIIEFDI at FGIIFIIAIIAIIBHF=IIIDBHFHDIIIBHICIHEIIII at IIIHIII	uR:A:B	oR:Z:2	oP:i:332	oH:i:1	oS:A:F
 simulated.633	141	*	0	255	*	*	0	0	ATTAAGTCCCGATTCAGTATAGCCTATTATCGTTACCGCGATCCGACGGAGCTCCAATTCGTAGAGGTAAATAGACTGCGCATTCCATACAGCTTCTAAC	IHHIIIHHIIIGHIHHGGGHIHHFGHHGIHIIIDIDIGIIHGHCFGDGHIIIGIIHIEEIDIBIEDIIIGIHIIF at HC@HGIIIIIIIIIIIIIGFIEFB	uR:A:B	oR:Z:2	oP:i:529	oH:i:1	oS:A:R
-simulated.634	99	1	43	255	78M3D22M	=	251	308	TTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGT	IIHHIHHIHHHHGHIGGFIHHHHHGDIIIFHIHIHIFGDIFGIIIIIIIIBCDHEGBIIIEHIIIIAEFIIIIIIGIIIHBCFII?IIGII:IIDACAI;	NM:i:3	MD:Z:78^ACA22	oR:Z:1	oH:i:1	oP:i:42	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.634	99	1	43	255	78M3D22M	=	251	308	TTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGT	IIHHIHHIHHHHGHIGGFIHHHHHGDIIIFHIHIHIFGDIFGIIIIIIIIBCDHEGBIIIEHIIIIAEFIIIIIIGIIIHBCFII?IIGII:IIDACAI;	NM:i:3	MD:Z:78ACA22	oR:Z:1	oH:i:1	oP:i:42	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.634	147	1	251	255	100M	=	43	-308	GCACCGGCCCGCCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATC	BBBIB>IFHIIII<FIAICHIFICDIEIIIIIII at IIC@IHC at IIHDHIHIGFEBGIFHIFHIFIFHEFGGIHGIFHHIGHIIFHIIGHGGIHIIIIHII	NM:i:1	MD:Z:11G88	oR:Z:1	oH:i:1	oP:i:244	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.635	99	1	1942	255	72M1D28M	=	2122	280	CATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAG	IIHIIHHHHHIIIGHGGIIHHGGGIFFIIIEIGHIHIFFIIFHIIIIFIIIIHEIHEIBFDHI?EIDGIGEFCIIEICDDIGHEIEIEIBCIGIFBIIIE	NM:i:1	MD:Z:72^A28	oR:Z:1	oH:i:1	oP:i:2044	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.635	99	1	1942	255	72M1D28M	=	2122	280	CATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAG	IIHIIHHHHHIIIGHGGIIHHGGGIFFIIIEIGHIHIFFIIFHIIIIFIIIIHEIHEIBFDHI?EIDGIGEFCIIEICDDIGHEIEIEIBCIGIFBIIIE	NM:i:1	MD:Z:72A28	oR:Z:1	oH:i:1	oP:i:2044	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.635	147	1	2122	255	100M	=	1942	-280	ACGAGAGGTAAATTGTCAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCA	3 at FIIEHHIIDHIHCDIIFIDIIEIIHIIIICICIIII@GFGIIBIFIFEIIFIIIEFIIGIDHHHHHHIFIGFIGFIIIFIFIIIIIIHHIHIIHIIHI	NM:i:1	MD:Z:16G83	oR:Z:1	oH:i:1	oP:i:2223	oS:A:R	XE:i:0	XS:i:1	XI:i:0
 simulated.636	99	1	3182	255	100M	=	3376	294	GTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAACAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTA	HHHIIIIIIIIHHIHIIIIIIIIHIIHIIGFHGDHIIIBHHIIHIIEHIIIIGEIIEEIIIIIIIIIIBIIEIEHIIC;IIEFICIIIEIIBIIIIEBF<	NM:i:1	MD:Z:58G41	oR:Z:1	oH:i:2	oP:i:3456	oS:A:F	XE:i:0	XS:i:2	XI:i:0
 simulated.636	147	1	3376	255	100M	=	3182	-294	TTAGCTGAATGACAGGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTTACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCAT	IIIIIEIHIIGIEIFIII=EDFIFIIII?HIHIBIIIFBGI at IGFHIIIHFI<HGIHEEHFIGGFGIIIGEIIIIIHGIIHIGIHGIGHHHHHIIHIHHH	NM:i:2	MD:Z:14T37A47	oR:Z:1	oH:i:2	oP:i:3650	oS:A:R	XE:i:2	XS:i:0	XI:i:0
@@ -1320,7 +1320,7 @@ simulated.658	147	1	4745	255	100M	=	4561	-284	CCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCG
 simulated.659	69	*	0	255	*	*	0	0	CACCAGCCCTGCGGATGCAAGACCGGTTCGAATCGGTCACTAGATCAGCCGTAAGGCGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTAT	IHIHIIIHIHHHIIIIIIIIFIIIHGIHIFIGDDGGIIIGIIFIIEIIIBAIHIEC?IIIIHI at HGIICI<IIIIIIIIB at IGIHIFIEFEIFDIA<DFE	uR:A:B	oR:Z:1	oP:i:6034	oH:i:2	oS:A:F
 simulated.659	141	*	0	255	*	*	0	0	AAACGTCGCAATACTGGTAGTCAGCAGACTAGAGAATGAACACTCTGAGATGCCTGCCTTTATGCGATTACGTTGATACGGCTGCTTGCCGGCATACAAA	IIHIHHHIIHHHHIHIFIGIGIIIGGGHHFIHDGHFFIHHEIHGIFFIHIIGGIFHGIFIIIGGFIEIIEIIIICCDHHIIHFIFIE@>IIBIIFFFD?:	uR:A:B	oR:Z:1	oP:i:6206	oH:i:2	oS:A:R
 simulated.660	99	1	7110	255	100M	=	7293	283	CTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCCCTAGTGTGCGCGTGTAGTC	HHIHHIHIHIIHIGIGHIIIHIGHHDHIIHIGGIIIHIIIIHGGIIGIFIHIIEGFIECGGBEIFIACDIBGCIEIIIFIGIDIIIEIIGBII>IGIAIG	NM:i:1	MD:Z:80G19	oR:Z:1	oH:i:2	oP:i:7834	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.660	147	1	7293	255	100M	=	7110	-283	AACATAGTTATTNGCCCATGTTCGACCGGGTACCCTGTGGAGAGTTTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCC	IHGHII?DHII>DIICI>I?GIEHCII at I?IBFIAIDHFIIGHDAGHIGICFFIIFFIDIIIIIIGIHFHIGHFHHIIIGHGIGHHIHIGHIIHIIHHII	NM:i:3	MD:Z:12A31C0C54	oR:Z:1	oH:i:2	oP:i:8017	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.660	147	1	7293	255	100M	=	7110	-283	AACATAGTTATTNGCCCATGTTCGACCGGGTACCCTGTGGAGAGTTTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCC	IHGHII?DHII>DIICI>I?GIEHCII at I?IBFIAIDHFIIGHDAGHIGICFFIIFFIDIIIIIIGIHFHIGHFHHIIIGHGIGHHIHIGHIIHIIHHII	NM:i:3	MD:Z:12A31CC54	oR:Z:1	oH:i:2	oP:i:8017	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.661	89	1	6734	255	100M	*	0	0	TTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCAC	IIFI?I>IDHBIIII<AIIIIIIIDICIGIIIHFFIAI?FHGGIIIIFDGIDHIGIIHIFIIEGHGGIGIIFHGGIHIIIGIIIIIIIIIHHHHIIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7458	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.661	133	1	6734	255	*	*	0	0	TAGCTTTTTCCCATTCAAACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGAGAACCCATTGACTTGGCCAGTTAGCGAAAGGCCCACGACGTAAA	HHIIIHHHIHIHHIIIIHIGIHIEFIHHHIGGIIGIIIHGEHIEHCHGIIIHIIGIIHIIIBECIDIIIEBHEDHI=GE=?IIGIICE at IEIEIIGHIII	uR:A:B	oR:Z:1	oP:i:7228	oH:i:2	oS:A:F
 simulated.662	69	*	0	255	*	*	0	0	GGGGCATTCGGCTAATGCGCGTAGGCCCCTCCAGCCACAGTGCAAACCGATGTACGCAGCTAATGCCCAGCCTAAACACGCTTTAGCTAGTCTGTACACG	HIHIHHHHHGHHHIHIHIIIHIIHHIIHFHGIIFFGIFHFGGIHIIGBFIIDIIIIHIF;IIECH?HIDFIEC?IIEFIGIDHH=ICEIE at IIE>CACII	uR:A:B	oR:Z:1	oP:i:1167	oH:i:2	oS:A:R
@@ -1350,7 +1350,7 @@ simulated.673	141	*	0	255	*	*	0	0	CGATCGTGAAATTCAACAATACTATGAGCCCGTTGCTAGTTCCTGT
 simulated.674	89	1	1899	255	100M	*	0	0	TGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGNACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAG	4EBFIIGCAGAIIIICIIIHIIIGHIEIAFIIEIEIII at HIIBHIIAGIFGEFHIDBEIIIIHEIGFEFIIFHGIHIIGIIIIHHIGGHHHHIHHHHIHH	NM:i:1	MD:Z:37A62	oR:Z:1	oH:i:2	oP:i:2097	oS:A:R	XE:i:1	XS:i:0	XI:i:1
 simulated.674	133	1	1899	255	*	*	0	0	CCACCCCGAGACCTTGTCCCTTGCCACAGTATAATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCAT	HIHIHIHHIIHIHGIHIGGGIIHIHGIIIHIFFFFIIIIHIIIIGDEIIHCIFGGIICIGDICHIGFGIEIIIFIEIDIFBIIHCGIIIFI=IIIIG=IC	uR:A:B	oR:Z:1	oP:i:1889	oH:i:2	oS:A:F
 simulated.675	69	1	7976	255	*	*	0	0	TATTCCATTCTATAGTACGAATGATAGCGAATAGTGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTC	HHIHIHIHIIHHIHHGFGHIGIIIGIIEIIIIFIIIIGIFIHGCIHEEDHIIGIGGIII>EFDCIBGIIEFIHICIFIIECIIGEIIIIGI>EGFIIIII	uR:A:B	oR:Z:1	oP:i:8395	oH:i:2	oS:A:F
-simulated.675	153	1	7976	255	100M	*	0	0	GCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCCATAAGCGAA	;FII?HGGIBIFIIDGEIIIGH>IGIIICH at I?DBHIHIGIHEDIIGDGBIHCIEFHIIEIIIIIFGGIIFIIIGHIIHIGIFHIGIHIIIHHHHHIHHH	NM:i:2	MD:Z:0T89A9	oR:Z:1	oH:i:2	oP:i:8613	oS:A:R	XE:i:1	XS:i:1	XI:i:0
+simulated.675	153	1	7976	255	100M	*	0	0	GCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCCATAAGCGAA	;FII?HGGIBIFIIDGEIIIGH>IGIIICH at I?DBHIHIGIHEDIIGDGBIHCIEFHIIEIIIIIFGGIIFIIIGHIIHIGIFHIGIHIIIHHHHHIHHH	NM:i:2	MD:Z:T89A9	oR:Z:1	oH:i:2	oP:i:8613	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.676	69	*	0	255	*	*	0	0	CTTGCCGGCATACAAATGAGTTTGAAAGCGGCGGTAACCTAATCTAAGCTGGGGAAGATTCTGCCTCGAACATGCCAGAAACGTCGCAATACAGGTAGTC	IIIHIIIIHIIIIIIGIIHHIGIGIGIGFFFIGIGIIDIIIIIFIDIFGCDIHIGIHFIICHCIEHIIIDAIEGIIFIIHI>IIGIABIHEF/FIIIEIE	uR:A:B	oR:Z:1	oP:i:6122	oH:i:2	oS:A:R
 simulated.676	141	*	0	255	*	*	0	0	AGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGGGACCGTGTATTGAACCGCCTAAGACCCAGCTCCACCAGCCCTGCGGATGCA	IIIHIHHIHHIIHIIHHIIHIHHGHFGIIHFIHIGIIIIIGCHIEFHIIHIIFCIFIIIIFIBIGEIHIIGGIIFGAIIIHB at IIIHIIEBHFII4IEII	uR:A:B	oR:Z:1	oP:i:5953	oH:i:2	oS:A:F
 simulated.677	99	1	9524	255	100M	=	9723	299	CGTCGGAACTAAACGCCAGAGTCTAGAGCAGCCACAAAAAAATAAATTGAATCGTTAGCTCCGCCGTGTGGACATGGCATCGGCGTCATCCCATATACAT	IHIIIHIHIIIIHIIIFHIHHIFIHHIIIIHIIGEIEIIHHIIFEIHFEII at EHIIGDIIBIAEIEIIHIIHIEGIIIIIFHIBHEIIIAFI9HIF@IDG	NM:i:1	MD:Z:36T63	oR:Z:1	oH:i:2	oP:i:10367	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -1408,7 +1408,7 @@ simulated.702	133	1	3725	255	*	*	0	0	ACACTCCTTAGTTACCCAATGTATTAGAGTCATCCCACGTCCA
 simulated.703	69	1	5043	255	*	*	0	0	CAAGCCTTGGGCGGGCGCCCGAGTAGCTTAATGTACCAAGGCTGTCCGTCTGCAAACCCTAGTTCCGAGCAGGACTCAGCGCTGACTAACTACAACTTGG	IHIIHHIHIHHIIHHIIHIIHIHHHIIIGHIIIGIGHIIIIIIIGIIIFCBIDI at IIIIIHICHIIIDIIIIIIAIIIIII?HBII==IEBI at II<B<II	uR:A:B	oR:Z:1	oP:i:5264	oH:i:1	oS:A:R
 simulated.703	137	1	5043	255	100M	*	0	0	ATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACG	IHHIHIIHHGIIIIIIIIIIFIGHHIHIHFEIIIIHIIEIIBIDGHIIEHIDIIIGGIFGIEIHGHIHBFIDIGFIHFFIBBIHHHIIIIIHIIICIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5068	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.704	83	1	4871	255	100M	=	4665	306	TGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCA	CII at II:HIIDIIIFIDBAHAAIEIFIIAAIIEII at IHFFGIEIBGIIDEIGGHGIIIIGGIDGHIFGEFFIFFGIIIFIIHHHIGHIIIIIHIIHIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4896	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.704	163	1	4665	255	100M	=	4871	-306	CAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCGTATGACCCAAACCTCCTCATGGAGCTAAGCT	IIIIHIHIHIIIGHIIIGFEHHIFHFHIIIFIHIIGIFHIIIIGEIIIEHIIIIGIGIIGHEIIGHIIAIEE;HI?IBCIFFIICHFDIIB<CI?DIIII	NM:i:3	MD:Z:68T3C0C26	oR:Z:1	oH:i:1	oP:i:4690	oS:A:F	XE:i:2	XS:i:1	XI:i:0
+simulated.704	163	1	4665	255	100M	=	4871	-306	CAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCGTATGACCCAAACCTCCTCATGGAGCTAAGCT	IIIIHIHIHIIIGHIIIGFEHHIFHFHIIIFIHIIGIFHIIIIGEIIIEHIIIIGIGIIGHEIIGHIIAIEE;HI?IBCIFFIICHFDIIB<CI?DIIII	NM:i:3	MD:Z:68T3CC26	oR:Z:1	oH:i:1	oP:i:4690	oS:A:F	XE:i:2	XS:i:1	XI:i:0
 simulated.705	83	1	2933	255	100M	=	2750	283	CTATGGTGACGGCATACCCAGAACGATAAGCCAGCCGCTGGCTTCACGGTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACC	II>FDI>HIIIIG<I==@DIIIIIEDDGIAIIGEFAGGIIIIIEIFGI>IIIICIIHEEFIEIIFHIGEIHHIFGFHIIGGHHIIIGIIHIIHHHIHHHI	NM:i:2	MD:Z:34T13C51	oR:Z:1	oH:i:2	oP:i:3207	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.705	163	1	2750	255	100M	=	2933	-283	TTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCAC	IHIIIHIIIHIIHIHIIIHIIIFIIEDIGHHIEIHIHIHIIIIIDFDIHIHFIIBIIFCIIIEBEIHDCABIIIIHIIBIGIFIIIIIIBIBIIIIE at FE	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:3024	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.706	99	1	3170	255	74M1I25M	=	3369	298	TGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAACAACTTGGGTGATTTTGGTATCCGTTAAAA	HHHIHHIHIGGHIHHHGIHIIHIIIEIEIIIGIFIFEIIIHHIFHIGIIIIIEIGDHFIBIIIIIHEAAGHDIEIFIIDIIIIEGDII at IIIGI?AIEIF	NM:i:2	MD:Z:70G28	oR:Z:1	oH:i:2	oP:i:3444	oS:A:F	XE:i:1	XS:i:2	XI:i:0
@@ -1461,7 +1461,7 @@ simulated.729	83	1	6946	255	100M	=	6738	308	ACGATATTATCCCATTCAGTATGTATTCAATCTAGG
 simulated.729	163	1	6738	255	100M	=	6946	-308	TGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTGGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATAC	HIHHHHHIIHIHIIGIIIIHHGHIIGIIGEHHIHDIIFFH;FFIHIFIIHHIHIIDIIGIBIDIIFIEFIIIIIIGIIHIIIFHFDIGEIHIIIGFBII@	NM:i:1	MD:Z:40C59	oR:Z:1	oH:i:2	oP:i:7462	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.730	69	*	0	255	*	*	0	0	ACTGCTCACCAGACGGATAAAGTAGTATTATGTCTAACGCCGGACTAACGCATTAGCGTCGTTCGTTGCCGCAGCTCTTACGTAGTCTTTGCCGGATTTC	HIHIIIHIHHIIHHIIIHIAIIHFIIIHEIGDI?EIIECIIEDEIICIDCIHE;IFIIIIGIIIG at IIGIIICHIFHIHFG<EIHEFIBIFIHIBEDG>G	uR:A:B	oR:Z:1	oP:i:5928	oH:i:1	oS:A:F
 simulated.730	141	*	0	255	*	*	0	0	CATGGTGACCCCGAAAAACAGCGGCATGGCGGCTGAGTAGGTCCCAGCTCTCCGCAATACCCGTTGGGATTCAATGCAGGAGCTCGCGTAAGGAATTATT	IIIHHIHHIGGIIHIHHHIIIHIIHIHIIIDIIHGHIIIFFIIIHIIIIEFIBGIFHIIFIHIEIAHIIGIGCHCIIIIAIHCI;III9IIHHIIFGIII	uR:A:B	oR:Z:1	oP:i:6141	oH:i:1	oS:A:R
-simulated.731	83	1	4592	255	100M	=	4388	304	GCTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGAGTAACTTCACATGGGTTCT	1IBIBAICIIFIIHGHIG at FCA?=BIIGEIHIIF>IHHDFGHFDGHIEIIIIIIIHECIIIFEIEIIIHIGHIHGIIIIIEHIIIIIIFIIHIIIIIIHH	NM:i:2	MD:Z:0A79T19	oR:Z:1	oH:i:1	oP:i:4617	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.731	83	1	4592	255	100M	=	4388	304	GCTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGAGTAACTTCACATGGGTTCT	1IBIBAICIIFIIHGHIG at FCA?=BIIGEIHIIF>IHHDFGHFDGHIEIIIIIIIHECIIIFEIEIIIHIGHIHGIIIIIEHIIIIIIFIIHIIIIIIHH	NM:i:2	MD:Z:A79T19	oR:Z:1	oH:i:1	oP:i:4617	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.731	163	1	4388	255	100M	=	4592	-304	AGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACA	IHIIIIHHIIHGHGGGIIIHIIHIIIIFIFIIFFGGGIHIIGIGIAHHCEHE?IHCFECFDFEIIIIDI at IGCG@IIIIEIIDFAIEHIC<IIAIGFGAD	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4413	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.732	69	1	7287	255	*	*	0	0	CACCACATTGATCGACACTACCGGGTGGAGCCTCCCTTCGCGCGCACTGTTCCACCCACACCTTGGCCAGAAAGGAAATGAAAGGTGCAGGGATATGCAT	HIIHIHHIIIHIIFIGIHIGHIIIHIEGIGHGIIIHIGHIFCIFFIIGGFHIGDDGIF at I@IIIEIIIIIII?EE?GFIIIF at IIIIICHEIIF>AI??I	uR:A:B	oR:Z:1	oP:i:8224	oH:i:2	oS:A:R
 simulated.732	137	1	7287	255	100M	*	0	0	TATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATA	IHHHHHHIHHHHHIHHIIGIGFHIGHHFHHGGIIHIIGIIIHHGBFB at HIFIHGGIDFIIFIHIIFIIHDGBGHICIEEAIIEIEGFDIHIIIIIICI?I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:8011	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1533,7 +1533,7 @@ simulated.765	69	*	0	255	*	*	0	0	GCGCGCCCTGGCACCATTACTTACAGTAATCATTTAAGCCCTTGCTA
 simulated.765	141	*	0	255	*	*	0	0	GAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAA	HHIIHHHIIHIIHGHIIHGGIIHIIIIFIHGIGGGIFIGGHIFIFIGGFGIIEH=HIBCIBEA;FBBHHIDGIHEFHHI<CG at HIIIIABII@<DBIIGG	uR:A:B	oR:Z:1	oP:i:9463	oH:i:2	oS:A:F
 simulated.766	69	*	0	255	*	*	0	0	CGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCG	IIHHIHHHHIHIGHIIHIIIIIFIFIEHGIIHIGGIIDIIHIEDDGEHIIIEGHFEIGCHI?IDE=IIIGIIF?EHGHIIFDIHIIIIIEAHIII=IIIF	uR:A:B	oR:Z:1	oP:i:1562	oH:i:2	oS:A:F
 simulated.766	141	*	0	255	*	*	0	0	CATGGTCAGCTGCGCATACGTTCGATACTACCTTAGAGTTGTTTGCCCCGGCTGTTTTATGGCCGGACACGGACCCACGCGACTTTGTGCACAAGCCGGG	HIIHHIIIHGHIHHIHHHIHIGHIFEHHHIFEIIIG?IGFHDIIHFGIIIEIIFIFGFDFIDDIIIHIHEFIIHIDIEDCFICHIHIIIGIAIIDIIH=C	uR:A:B	oR:Z:1	oP:i:1748	oH:i:2	oS:A:R
-simulated.767	99	1	9085	255	23M3D77M	=	9294	309	TTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGC	IIHIIIIHHIHHGHIIHIIIGIEGIIIHIGGIIIGIBFIIIIHIGIIIIIIIIHIIIFGEIFCIFIIEIEFIIGDHFEIG at H8IIGIHI?BIIIBGGIII	NM:i:3	MD:Z:23^GAT77	oR:Z:1	oH:i:1	oP:i:9278	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.767	99	1	9085	255	23M3D77M	=	9294	309	TTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGC	IIHIIIIHHIHHGHIIHIIIGIEGIIIHIGGIIIGIBFIIIIHIGIIIIIIIIHIIIFGEIFCIFIIEIEFIIGDHFEIG at H8IIGIHI?BIIIBGGIII	NM:i:3	MD:Z:23GAT77	oR:Z:1	oH:i:1	oP:i:9278	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.767	147	1	9294	255	100M	=	9085	-309	TAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTC	@>IHAFICIIAICIICIIGIIGACIIIGIIFIECFIIIIICIIEFGIIIEIEIGIIIFGIHGFGIIIIHIHFGIIIIFIGGIHHHIIIHIIIIIIHIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9484	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.768	69	*	0	255	*	*	0	0	TTTTATAACAAATGATCGGGTGTATAGGGATACACGTTATAGGGATCGTGTCGCACTGCCGCTGGGGCTTCGTCTGTAGCTAGGAAACATGGTGACCCCG	HHIHIHHIHIHIHIIGFIHHIIHFGIHHHGIGIFDHFIICFIGHEEGCIIHIIEICIIGEGHAIHIIIBIIDGDGGIIEEDCII9IB;ICFA at BFIGIBH	uR:A:B	oR:Z:1	oP:i:6828	oH:i:2	oS:A:R
 simulated.768	141	*	0	255	*	*	0	0	TACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCA	HHIIHHIIHIIGIIHHGIIGFGHIGIHGFIIIGGIEIGIFIHGGIAFIHGDIIGHICFICGIIIFIDIAIEIFIIIIFBCIEGIHIIIIBGF?IIDFG:<	uR:A:B	oR:Z:1	oP:i:6650	oH:i:2	oS:A:F
@@ -1557,7 +1557,7 @@ simulated.777	69	*	0	255	*	*	0	0	CCTAAACACGCTTGACCCCGCTTCTAGTCAGGTTGCTGACCTGGTGC
 simulated.777	141	*	0	255	*	*	0	0	CATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTT	IHIHHHHHHHIIHHIIIIIHIHIFFHHHEIGHDHHDHHIHIHHFICIIBFFIF at IIGFICDAEHIIEGHIH@IIHGIFIIICGCAIGIHIICIIFIIIBH	uR:A:B	oR:Z:1	oP:i:887	oH:i:1	oS:A:F
 simulated.778	99	1	1407	255	100M	=	1597	289	ACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTC	IHIIHHIHIGHIHHHIGIIIFGHHIHHIHGGGHIIGGIBGHIGIIIHIIGIIDDEEFIHIFHIIFIHIDIHDGEIBIIEIDEIBIFIHIIIIIIFIIHIF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1509	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.778	147	1	1597	255	5M1I94M	=	1407	-289	CACAATAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAAGTGGTACATAAGCTGACCATAGTGCGTTGGC	FIBIIIBDHFFEBIHIIIIDFE=EAI?GHDGIGHIII?HDIIFDICII at HIIIGCIIGGIFFIIGIIIDGIIHDHHIHIIIHIGIHHGHIHHHHIIHHIH	NM:i:2	MD:Z:67G31	oR:Z:1	oH:i:1	oP:i:1699	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.779	83	1	1239	255	8M1I91M	=	1039	300	GTCCGTGGATCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTG	DIIHHIGIHIIIDGGADIFIFIIBIFFIFGGHIIIGBIIIIIABIIDGIFCIGIHCCIGDIIGIIGIIIIIHIIFEIIIIGHHHIHHIIIIHHHHHHHHH	NM:i:2	MD:Z:0T98	oR:Z:1	oH:i:1	oP:i:1340	oS:A:R	XE:i:1	XS:i:0	XI:i:1
+simulated.779	83	1	1239	255	8M1I91M	=	1039	300	GTCCGTGGATCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTG	DIIHHIGIHIIIDGGADIFIFIIBIFFIFGGHIIIGBIIIIIABIIDGIFCIGIHCCIGDIIGIIGIIIIIHIIFEIIIIGHHHIHHIIIIHHHHHHHHH	NM:i:2	MD:Z:T98	oR:Z:1	oH:i:1	oP:i:1340	oS:A:R	XE:i:1	XS:i:0	XI:i:1
 simulated.779	163	1	1039	255	100M	=	1239	-300	TCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTC	HIHIIIHHHHHGHIIIHHIIHIIHHIIEIIEIIIDIIIIIGIGI?FIIGIGBEIIIHIAHHFIEIIGGIIHI;DIEIIICIIAICCH=HIHIIBII>IID	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1140	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.780	69	*	0	255	*	*	0	0	TTGATTTGACAACTGAAAGGGGCTGTTGGCCAGTTGCGGGAACAATCTTTGAGCAGCGCGAGCTGTTTTATGTGGCTGCTCTAGACTCTGGCGNTTAGTT	IHHHIHIGGHIIGIGHHIGIIEGIIIHEIIHIHDEFGCIIIIGIGGGIHIFHFIIIIFCIIIIBIIIGIHFFFFAIEHG?IC>IIIFG>III at 9IBGIII	uR:A:B	oR:Z:1	oP:i:9720	oH:i:1	oS:A:R
 simulated.780	141	*	0	255	*	*	0	0	TAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCGTCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCA	HIIHHHIHIIGIIIHIHIIHIGIHIIHIGFIEHIIIGIFGGHBHIIGIDDDFFHGGIIGIIBIICDHIEHEGDIDIIIHEAIIIGAIBIGI9IEII:DII	uR:A:B	oR:Z:1	oP:i:9542	oH:i:1	oS:A:F
@@ -1580,7 +1580,7 @@ simulated.788	163	1	3549	255	100M	=	3709	-260	ACACCCCGACTTTGGTTCATTGCTCGATTAATTG
 simulated.789	99	1	4418	255	100M	=	4630	312	CGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCG	IHIIHIIIHHIHIHHIIIGIIIHGHIGHEFDFIIDHGIIFIEHHHGIIGHIFFIDI?IIIGIDBIIGHIHIIIIIDBICEGFIIFDGBIEHIII at IIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4443	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.789	147	1	4630	255	100M	=	4418	-312	CTGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTC	D:IIFDGI at C>HIIFIAIIGEIDIIIIGHII at IG@CFIGIFHIIIEHEIGGIIFIIEFIIEIGGHIIIEIHGEIIIIFIIIHIHHHHIIIIIHIIHIIHI	NM:i:1	MD:Z:1A98	oR:Z:1	oH:i:1	oP:i:4655	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.790	99	1	3567	255	100M	=	3756	289	ATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCG	IHHIIIIIHHIHIHHGIHIIEFIGGIIIIIIIFFIHIIGIHIDIHHGIFIIIIHHGCFIEIIIHEFIIEAIIGEIIGICIIAFHIGIEAIIFIFIIBID?	NM:i:1	MD:Z:99T	oR:Z:1	oH:i:1	oP:i:3668	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.790	147	1	3756	255	36M1D64M	=	3567	-289	TCTATTTCTAAATTGAAACTCCAGCTAGATTGAACGGGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTG	IIIEIGDAIAIBIIEIIIAFEI?DGHBI<IIIIGIA?IDIHIHHIIFIHEIIIIIIIGEEIIIIIHHIGIIIHIIHIGHHHIIIGHIIIIGGHIIIHHHI	NM:i:3	MD:Z:1G34^A1T62	oR:Z:1	oH:i:1	oP:i:3857	oS:A:R	XE:i:2	XS:i:0	XI:i:1
+simulated.790	147	1	3756	255	36M1D64M	=	3567	-289	TCTATTTCTAAATTGAAACTCCAGCTAGATTGAACGGGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTG	IIIEIGDAIAIBIIEIIIAFEI?DGHBI<IIIIGIA?IDIHIHHIIFIHEIIIIIIIGEEIIIIIHHIGIIIHIIHIGHHHIIIGHIIIIGGHIIIHHHI	NM:i:3	MD:Z:1G34A1T62	oR:Z:1	oH:i:1	oP:i:3857	oS:A:R	XE:i:2	XS:i:0	XI:i:1
 simulated.791	73	1	7366	255	100M	*	0	0	CAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGAGAGCAAGGACAAGGTATACA	HIIIIIHIIHGIHHIIHIGHIIHHFGIIGIHHHIGIIDIHFIIFCCIFFIIEGDIIIHCFIIAAIIIIFIHID?IHI9IH>GIIGII>=DFII>IIIICI	NM:i:1	MD:Z:80C19	oR:Z:1	oH:i:2	oP:i:8090	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.791	133	1	7366	255	*	*	0	0	TGCGCGTGATTGTCCATGAAACACTCGGGCACCACATTGATCGACACTACCGGGTGGAGCCTCCCTTCGCGCGCACTGTTCCACCCACACCTTGGCCAGG	IHHIIIIHHHIHIHIFGIIIIIFGGHHFHDGIFIIIIEDIIIHIDEGFCFHEFHIGIHIEIE>EDIFIICCIBIEII?FHIIG<DIGIG<CCIGII8II0	uR:A:B	oR:Z:1	oP:i:8253	oH:i:2	oS:A:R
 simulated.792	69	1	5891	255	*	*	0	0	TCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCAATTATATTGCATGGCATTGTGTG	HHHHIIIIIIHIIFIIIIIIHIEGIGGIIGHGIFIGGFGHGFIHIIIIIFFIGIIGIGIIF at EIEAIC?IFE?HDIIHIDEBII<II>IIIHIFI>FDBI	uR:A:B	oR:Z:1	oP:i:6278	oH:i:2	oS:A:F
@@ -1666,7 +1666,7 @@ simulated.831	141	*	0	255	*	*	0	0	GCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACGCCTG
 simulated.832	69	*	0	255	*	*	0	0	TGATCTGGGGGCCCAGCGATGTGGGCGCTTGCGCTATACGATAATTGGAACCAAGTAGCGGTATCAGCTCTACGAACAACCTAAGGTTAGGCTTTATTTA	IHIIHHIHIIIIIHHGHHIHIIIIIIIIHIIHFDIIGHFGHHEGHEIIFIIICIHGIDHHGIIIIAIIIGHI?CIIEII<?FHAIIICIIIIIBIIDHII	uR:A:B	oR:Z:1	oP:i:3093	oH:i:1	oS:A:R
 simulated.832	141	*	0	255	*	*	0	0	GCTATGTCCCCTAACGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAATGATAAGCCAGTCGCTGGCTTCACGCTTT	IIHIHIIIHIIIGHIHIGIFHHIGGEIIIIIIGHIIGFFIIEFIIIIHGIFIIHFIDFIIFIGIIHIDBIIIBIFHIIIF at IGIA@HBDHIGIIIIHI;I	uR:A:B	oR:Z:1	oP:i:2894	oH:i:1	oS:A:F
 simulated.833	99	1	7058	255	100M	=	7276	318	CACAAAAATTTACCGTCACAGGTGCGAACTCATAAACCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCA	IHHHIIIIIHIHIIIHGIIIIIFIHGIIGHGGIIGFEEDDIIIEGIIGIIIIEGICIDEFCIIIIIDHIBIIFICEIFIIHFHIIIBI?BIIIECHHICH	NM:i:1	MD:Z:35T64	oR:Z:1	oH:i:2	oP:i:7782	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.833	147	1	7276	255	100M	=	7058	-318	TCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAAAG	IAAGHHI6GFICFIFDCIBFIICG<HGIHEIIIIIIGGBIHIDCIIEGIIBIIEFFICIIHEIDGFIIHDHGIIHGGIIIHIIHIHGIIHIHHIIHIIII	NM:i:2	MD:Z:0G97C1	oR:Z:1	oH:i:2	oP:i:8000	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.833	147	1	7276	255	100M	=	7058	-318	TCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAAAG	IAAGHHI6GFICFIFDCIBFIICG<HGIHEIIIIIIGGBIHIDCIIEGIIBIIEFFICIIHEIDGFIIHDHGIIHGGIIIHIIHIHGIIHIHHIIHIIII	NM:i:2	MD:Z:G97C1	oR:Z:1	oH:i:2	oP:i:8000	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.834	99	1	6352	255	100M	=	6526	274	GCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACATGGAGCCATGAAAACGTTCGAAT	HIHHIIIHHHHIIHIGIHHIHIGFHHIIIGIIIHCEGHIIIIHBCIIHIHFGFIIIIFII at IIIIIIHDIIIHIHH?:FIFIIIID?IEDF=II6ICFII	NM:i:1	MD:Z:77C22	oR:Z:1	oH:i:2	oP:i:6998	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.834	147	1	6526	255	100M	=	6352	-274	CTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATT	BIDI at II??IIEIDIBI;?IIIIIIIIDEFIGIDIIIIIIEIEIIIIGIDHHGIEGIFHGFIGHHFGIHIDEHIIGIIHIIHIIHHHGHGIIIIHIHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7172	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.835	69	*	0	255	*	*	0	0	ATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCAT	IHIHIIIHIIHHIHIHIIHGGFHIHIFIEIHGHIHGIFIHAHDIIIIHIEDHHIDIHFIIIIIGIIIIHIEGIAADEFIIGEIHIIGIEEIIIIIEI>FA	uR:A:B	oR:Z:1	oP:i:6107	oH:i:2	oS:A:F
@@ -1724,7 +1724,7 @@ simulated.860	133	1	6746	255	*	*	0	0	GATAACCAATTGACTTGGCCAGTTAGCGAAAGGCCCACGACGT
 simulated.861	99	1	4208	255	100M	=	4420	312	GTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTT	HHIHHHHHHHIIHHHHIIIHIHFIFHFIIHIHIIDIIEDIIGCHEIIEFIICDFHGEIAIFIBIHGIIII at IIICIIGFIIC@ADICGI;I at IIIICBGI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4546	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.861	147	1	4420	255	100M	=	4208	-312	CGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTC	FIHGIHHIHHI<DIGIBIF9FIIHIDICIIGIIFIFHFAHHIBHEGIIFFIHIIIIFGEHHIHIIIHGIIIIGGHGIIHIIHGIIHIIIIIGIHIHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4758	oS:A:R	XE:i:0	XS:i:1	XI:i:0
 simulated.862	99	1	3087	255	100M	=	3283	296	AACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACA	HHHHHIIIIIHIIIHIIIIFIIHHHIHHGIIGHIHHFHIIEHIFHIICIIGGIIFFIGFIIIGIIGIEFHI=IEIICIEGCIFGIIBFIII>IIEECIC9	NM:i:1	MD:Z:99C	oR:Z:1	oH:i:2	oP:i:3361	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.862	147	1	3283	255	100M	=	3087	-296	CGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAATGTTAGCTG	IFFIICIHIGI at DIIFIIIIIFIIIBEIIIDFHGHIICGGDBDFIIGIFIHIHHI@IFGFIIIIGFIEIFHIIHIGGHGIIIHGIIGHIHIIHIHHIIHH	NM:i:2	MD:Z:91G0T7	oR:Z:1	oH:i:2	oP:i:3557	oS:A:R	XE:i:1	XS:i:1	XI:i:0
+simulated.862	147	1	3283	255	100M	=	3087	-296	CGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAATGTTAGCTG	IFFIICIHIGI at DIIFIIIIIFIIIBEIIIDFHGHIICGGDBDFIIGIFIHIHHI@IFGFIIIIGFIEIFHIIHIGGHGIIIHGIIGHIHIIHIHHIIHH	NM:i:2	MD:Z:91GT7	oR:Z:1	oH:i:2	oP:i:3557	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.863	89	1	6732	255	100M	*	0	0	TTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGC	IIIAFBAIG<IAIIID at IEGIIIFIDCIIIDCIIIBHIDIHDIIIBIEFHGIGHIIFIFFFFEIHHHIGHDEEHHHFIIHHIIIHIIIHHGHHIIHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7456	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.863	133	1	6732	255	*	*	0	0	ATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTTAGCGAAAGGCCCACGACGTAAAAAGCCTCCGGGGTGGTCGCGGGTCTCCGCTTCATACAAGAG	HHIHHIIHIGIIHIIHIGHIGIIHIHHFIIFGIIFIHHIIHFGEIIIIEICIGFGIEIGI>FIIBII=IIDIEAFIIIAIIIECCGAGIIIHAIFIG<II	uR:A:B	oR:Z:1	oP:i:7269	oH:i:2	oS:A:F
 simulated.864	83	1	2788	255	100M	=	2584	304	TTGGTACTATGTCCCCTAACTTTTGAAAATAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCG	I;9CC2>CICI7IIIHIEGFHIGIIEIFCIIID at EIIIHIFAFDEIIHIIIIIGIIEHHIIFHIIIIIGHHIIIIGDIGIHGHHIIIIIIIIIHIIHHHI	NM:i:2	MD:Z:5G22C71	oR:Z:1	oH:i:2	oP:i:3062	oS:A:R	XE:i:2	XS:i:0	XI:i:0
@@ -1732,7 +1732,7 @@ simulated.864	163	1	2584	255	100M	=	2788	-304	CTCCTAGTAGTATTTAATGCTCATGGATGGCAGT
 simulated.865	73	1	8308	255	100M	*	0	0	AGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGATCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACT	HIIHIIHHGIIHIIFHIIIFHGIIIIGFIEIHIGIIIIFIGBD at IFIHIHFFHEIHIEDHHIFIEFI?IHEIEII?DFIIICAIIGIIIIIIIIGI7FI4	NM:i:2	MD:Z:39C59G	oR:Z:1	oH:i:1	oP:i:8501	oS:A:F	XE:i:1	XS:i:1	XI:i:0
 simulated.865	133	1	8308	255	*	*	0	0	GCGGCAAGTTTGACCGAAAGCCCTGATGGTATTTTGAGCGGGGGCCGGATGATCCTTCGTAGTCTTCAAGTACAAATCCAGCCACCAGAATGTACCACAG	HHIHHHHHHHHHGIHHIHGIIHIHIHIHEHEIIIIIIIEIBHDHDEBGIFFFIGIIGDIFGEIIIIIBIH?IIGDI?ICB=GAHIDGF;DFIIEEIAI=I	uR:A:B	oR:Z:1	oP:i:8696	oH:i:1	oS:A:R
 simulated.866	99	1	9414	255	100M	=	9609	295	GCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGC	IHHIIIGIIHHHIIIHIIIIIIGHIIIGIGIHIFIEFCIGGGHIEIEGGIIHHHIGCIDBIADFIIFEGICIEAIIG>HIHIHIABFCIEIIIIFID at II	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10257	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.866	147	1	9609	255	100M	=	9414	-295	ACATCCCATATACATCACCGGTCGAACCCACTCAAGAGTGAACCGCTTCGGTCCACCCATTATTCGAACACACATCCGGCACGGCTGGGATAACCCATGA	EEIIIICIEICII?IICIIIHB>IHHIIHCFIGIIIIIGGIIBFIHEIIIIIIHIGEHHIIEGFFFHHHFIIHIIHGHIIIHIIFIIHIHIIGHIIHIHI	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:2	oP:i:10452	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.866	147	1	9609	255	100M	=	9414	-295	ACATCCCATATACATCACCGGTCGAACCCACTCAAGAGTGAACCGCTTCGGTCCACCCATTATTCGAACACACATCCGGCACGGCTGGGATAACCCATGA	EEIIIICIEICII?IICIIIHB>IHHIIHCFIGIIIIIGGIIBFIHEIIIIIIHIGEHHIIEGFFFHHHFIIHIIHGHIIIHIIFIIHIHIIGHIIHIHI	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:2	oP:i:10452	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.867	83	1	8014	255	100M	=	7779	335	CGGGCTCATAGTATTGTTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCCATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCT	FIE?IAIIIIFIEIEBFHIICCHHGEEIEICFFHFIIIFEBHIIICG?IHEFHIIGIIGHGFHGIIIDHIIHHGIIHGGIIHIIIIIGHHIIHHIHHHHI	NM:i:1	MD:Z:52A47	oR:Z:1	oH:i:1	oP:i:8207	oS:A:R	XE:i:0	XS:i:1	XI:i:0
 simulated.867	163	1	7779	255	100M	=	8014	-335	CCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAAT	IHIHHIIIHIHIIIIIIIIHIIGHHIIGIIEGFHIIIHHIHIDHCGEI at FEEIHGIFIIGIICBGHCICABI@IIDIIII:I at GIIICIIIDII@II at H?	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7972	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.868	83	1	6890	255	100M	=	6679	311	CTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGA	IHIIIAGFGDG?IIIIIIIIIIIIGGIIE?CIIIHIIBIIFIIFFIIGIHIEFIIIIIAFIIIIIFIDHIIGFIHGIIIHFGIHHHHHIIIIHIHIIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7614	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1740,7 +1740,7 @@ simulated.868	163	1	6679	255	31M2I67M	=	6890	-311	AATACTCTCGCATATCCGCCGGACACTAAG
 simulated.869	89	1	6306	255	100M	*	0	0	AGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGT	AIIIHIIIIIIBGGEICFDFICDIHIIIIIICGIEIEIHIIICIIIEHEIIHIHFHGHEFIBIIIHHFEIIIGHIGHIIGGIHGIHIHHHIIHIIIHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:6952	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.869	133	1	6306	255	*	*	0	0	ATGTACATCGCCGATAATCATTCGCCAGGGATCTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCAGCGGCA	IHHIHIIIHIIIHGIIGFFIFFIEGGIHIIGGIFIFIFIIIIIIFHIFHDIIGIHIGEHIDIDH at CGIIIIDII@IFICIBEIIIFICIIIEEIBIHIH?	uR:A:B	oR:Z:1	oP:i:6772	oH:i:2	oS:A:F
 simulated.870	99	1	8819	255	100M	=	9044	325	AGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGC	IHIIIIIHHIIHGIHIIGIIIFIHHGGIGFGIEIHIHHCGFIIADIIIIEIHHFIFHIGGECDFGBIIE>IIEI;I?GIDEIIGDEEHDFDBHHIIIFI=	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9012	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.870	147	1	9044	255	64M3D36M	=	8819	-325	TGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAA	I=BIA=AICFHGIHIEBIBIDG at IIIG:IGFCIDI at BIIGICEIIBGHIHIIIIGFIHHHIIIFGHFIIIGGGDHIIIHIIIIIEHIHIHIHHIHHIHHI	NM:i:3	MD:Z:64^GAT36	oR:Z:1	oH:i:1	oP:i:9237	oS:A:R	XE:i:0	XS:i:0	XI:i:3
+simulated.870	147	1	9044	255	64M3D36M	=	8819	-325	TGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAA	I=BIA=AICFHGIHIEBIBIDG at IIIG:IGFCIDI at BIIGICEIIBGHIHIIIIGFIHHHIIIFGHFIIIGGGDHIIIHIIIIIEHIHIHIHHIHHIHHI	NM:i:3	MD:Z:64GAT36	oR:Z:1	oH:i:1	oP:i:9237	oS:A:R	XE:i:0	XS:i:0	XI:i:3
 simulated.871	83	1	2040	255	100M	=	1806	334	CAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCTCCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTCA	IIIIAIIG?IFIIDIIGGIIGIII<IIIIIIIIHHDIGIIIDIEHHHIIDIIHIIDEIFIF at IIIFIIIIIGHHGHIHFHHIHIIHIHGHIIHIHHHHHI	NM:i:2	MD:Z:49A48G1	oR:Z:1	oH:i:1	oP:i:2141	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.871	163	1	1806	255	100M	=	2040	-334	CAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCGCGTTGACTTA	IHIHIHHIIIIHGIGIIHIIIHIIFIIHGIIIIIFHIGHIIIGFIHIEBCIIGFIIIDIIFIIIIIICI?CIIBEBIIEDC at BIEEIGDHFIGI@IIIIG	NM:i:1	MD:Z:89C10	oR:Z:1	oH:i:1	oP:i:1908	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.872	83	1	7710	255	100M	=	7501	309	CAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCC	CCIIFIIIICII;IIEDHIIGIDHIF at E:FDIB at ICIHIIBEIEBIFIGIGIFHIEIEIFFFDFEGHIHIHIGHFIIGIIIHHIGGHHHHHGHIIIIIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7903	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1753,7 +1753,7 @@ simulated.875	83	1	1808	255	100M	=	1591	317	GTATGATCGAGAATGACTAACTGGGCCCTTGCTGGG
 simulated.875	163	1	1591	255	100M	=	1808	-317	TACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCG	HHHIIHHHIIIGIHIGHIIIGIIHGHHIEGIIHIIIIIEFCIGHHHIIGGHIIGHIIGIIFIIIF?IIECIIIDBI>IIIIAEAEIIIIIIIIEAIIIIB	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1693	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.876	83	1	8528	255	100M	=	8298	330	TTGTACTGGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGT	G>?IIII7;IGEEEIAIHIIIEII at HIIIHAIIEIDGHIGHIIIIIHIEHHGGIDIIEIIHHIFHIIIGFHIIIIIGIIEHHIFHHIIIIHIHIIHIHIH	NM:i:1	MD:Z:7T92	oR:Z:1	oH:i:2	oP:i:9216	oS:A:R	XE:i:1	XS:i:0	XI:i:3
 simulated.876	163	1	8298	255	100M	=	8528	-330	CGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGATCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTC	IIIHHHIHIIHHIGIIIHFHIHIIHDIGIHIGIIFHGIGGFHIEIHFGFIFIEGFHHIHI at GFGICIIIGIGI;IIFIBIII at IIHIIIIIFDIFICIII	NM:i:1	MD:Z:49C50	oR:Z:1	oH:i:2	oP:i:8986	oS:A:F	XE:i:0	XS:i:1	XI:i:0
-simulated.877	83	1	9093	255	15M3D85M	=	8895	298	CCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGCACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATC	H:IIDIIIFIDIGIDDIEEIIIIIDIFGGGIGIDEIFIIIGIDEDAIGHGHICDFIF at IIIHFIIIIIHIFIIGFFIHHGIIIGGHHHHGIHIIHIHIIH	NM:i:4	MD:Z:15^GAT30A54	oR:Z:1	oH:i:1	oP:i:9286	oS:A:R	XE:i:1	XS:i:0	XI:i:3
+simulated.877	83	1	9093	255	15M3D85M	=	8895	298	CCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGCACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATC	H:IIDIIIFIDIGIDDIEEIIIIIDIFGGGIGIDEIFIIIGIDEDAIGHGHICDFIF at IIIHFIIIIIHIFIIGFFIHHGIIIGGHHHHGIHIIHIHIIH	NM:i:4	MD:Z:15GAT30A54	oR:Z:1	oH:i:1	oP:i:9286	oS:A:R	XE:i:1	XS:i:0	XI:i:3
 simulated.877	163	1	8895	255	100M	=	9093	-298	TATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCC	HHHHHIIIIGIIGHHIHHIIIHIIGIGHFIHHIIHIIIDHCIHDIIEIGIIIFIIIIHHDFHIGGI at IDIGIGIGI>FFGI?IFG<IIIBI:6I at IIII:	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9088	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.878	99	1	3410	255	100M	=	3606	296	AGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGATGGGCAA	HIHIHHHIIHIHIIHIHIFHIHIFGIIGIICFIHFECIHIEHIFGICICHGEIDIIIIIGIIECEGEIIIIIIIGIIBIHIH>BAGIIIIICFI at DFB>D	NM:i:1	MD:Z:93C6	oR:Z:1	oH:i:1	oP:i:3511	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.878	147	1	3606	255	100M	=	3410	-296	GAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGC	AIH at FIEIIHIIIHICEIIIHECDIIIIFDIEDE:IFCIGCDIGICFIEIIDEIIHIIHGIIGFGGIIIHIFGGIGIIIIIHIFIIIGGIHHHIIHIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3707	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -1772,7 +1772,7 @@ simulated.884	137	1	5161	255	100M	*	0	0	CTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGC
 simulated.885	69	*	0	255	*	*	0	0	GTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGACCGATAAGCCAGTCGCTGGCTTCACGCTTTTGAAACTAGAATGCG	HHIHIHIIIIIGHIHIIHGIIIHGGHGGIIIFHIIHIHEHGHIIEGFHHIIEFHCEHIHHH at IGEFFEIC;IIDICEIEIICHIEIID9CHBI<ICIHII	uR:A:B	oR:Z:1	oP:i:2909	oH:i:1	oS:A:F
 simulated.885	141	*	0	255	*	*	0	0	TCCCAACGACAGAACACTGATCTGGGGGCCCAGCGATGTGGGCGCTTGCGCTATACGATAATTGGAACCAAGTAGCGGTATCAGCTCTACGAACAATCTA	HHHIHIHIHHIHHIGIIHGIIIIIIHFGHFIIDIIDIIIIEIGGBH at IIIIFFIHIGIEGHHDIGIIIEIIIGIFDIIIIIIIDIIIEB>F at IAIFHII@	uR:A:B	oR:Z:1	oP:i:3110	oH:i:1	oS:A:R
 simulated.886	83	1	3926	255	100M	=	3716	310	CATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCA	DI>IBE>EDHIIIIIIIIGIGAIIIFIGIIEIGABIII;HIIHIIEIEIGFIIIIIHHGFDFIIIIDIFIIHIDIGGHIIHHIHIHHHHHIIIHIIHHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4026	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.886	163	1	3716	255	78M1D22M	=	3926	-310	ATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGA	HHIHHHHIHIIIIHFHHGGGGIHIGIHIIIIFFIGGFIIIIDIIIIDIGIIHEEIIFIIIHIIIIHDCB at IDIIFGIIIC?EBIEIIGI at IIF>IIIIIG	NM:i:1	MD:Z:78^T22	oR:Z:1	oH:i:1	oP:i:3817	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.886	163	1	3716	255	78M1D22M	=	3926	-310	ATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGA	HHIHHHHIHIIIIHFHHGGGGIHIGIHIIIIFFIGGFIIIIDIIIIDIGIIHEEIIFIIIHIIIIHDCB at IDIIFGIIIC?EBIEIIGI at IIF>IIIIIG	NM:i:1	MD:Z:78T22	oR:Z:1	oH:i:1	oP:i:3817	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.887	69	1	8752	255	*	*	0	0	CCATCAGGGCTTTCGGTCAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAACG	HIIIIIIGHIIIIIIIIIFIHFFGDIHGIIEGIIFHDFGDIIIIIIIIIGCHHIGIDEIHIIIDIEIGHEIIHBCIHA<H=CHIGHIGI at IHGHGEICIC	uR:A:B	oR:Z:1	oP:i:8767	oH:i:1	oS:A:F
 simulated.887	153	1	8752	255	100M	*	0	0	CGTGGTTTCGTGACTAGAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTTCTACAAGCCAATGGAAAAAGATTCATAGC	I at IFDGBHI?HAFEBI4II?DIII at FHIHE9DIIIEIIEIIFIHHDDIIIIEIIGHIIDIBGIIIIGIEIGHGIIIIFHGIFHHHIHIIHIHIIIHIIII	NM:i:2	MD:Z:16A53G29	oR:Z:1	oH:i:1	oP:i:8945	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.888	83	2	737	255	100M	=	531	306	GACGGTGGTTTTGTCAGTGTCTATGGCCCCATGCATGCAGATGATCCCTTATGTGCCANAAACGGGTACCCGCTAGCCGTGGATGCGAGGTTCCTGACCC	<HIIAH=HIIIIFBCI?IIBFFIIIIIE>GIIIFAGABGDI@>EEFEEFIIIGFIEEIIIIHFHEIEHIGGHEGHIEIGGHIGIIHHHHHHIIIHHHIHH	NM:i:1	MD:Z:58A41	oR:Z:2	oH:i:2	oP:i:736	oS:A:R	XE:i:1	XS:i:1	XI:i:0
@@ -1826,7 +1826,7 @@ simulated.911	133	1	848	255	*	*	0	0	ATGCACTAGCATGGTTTTATAGACATCCAGCCACAGTGCAAACC
 simulated.912	69	*	0	255	*	*	0	0	CTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCG	HIIHHHHHIIIIIGIIHIHFIIFGHIIIIGGIFHIIHIFFIHHIIHIHDIDIEDFIGIGDII=AIIGGIIIEIIADFIIIIIIIBIBICIIIEHIF;IGI	uR:A:B	oR:Z:1	oP:i:6581	oH:i:2	oS:A:F
 simulated.912	141	*	0	255	*	*	0	0	GCACTGCCGCTGGGGCTTCGTCTGTAGCTAGGAAACATGGTGACCCCGGAAAACAGCGGCATGGCGGCTGAGATCCCTGGCGAATGATTATCGGCGATGT	HIHHIIIIIIIIHIIHIHFHGGHIIIGGHIGGIGHGFIIGHEIIIGI?>G at HIDIIDHEFIHIIIIIIDII@FIC@@FIDIIGIGIII=CEIE?=CA<IE	uR:A:B	oR:Z:1	oP:i:6776	oH:i:2	oS:A:R
 simulated.913	83	1	2213	255	100M	=	1957	356	GTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTT	IIIIIG9?IFGI?IBCDI=GAIGCIIIIII<EEGGIIIBIII=IIIIGIIGIIEFHIDIIFGIGFHGFHFIIGIGFIIIHHIIIGGGGIHIIHIIHHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2314	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.913	163	1	1957	255	57M1D43M	=	2213	-356	CTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAAT	HIIIIHIGHHIIHIIHIHHIIIFIGIIIGGIFIEIEIEIGHIHHIIGGCGDIIHHFI at DIFHIIIFHIIIGI?GIIBIDDI?IHBADHH:CIBIHGIIIF	NM:i:1	MD:Z:57^A43	oR:Z:1	oH:i:1	oP:i:2059	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.913	163	1	1957	255	57M1D43M	=	2213	-356	CTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAAT	HIIIIHIGHHIIHIIHIHHIIIFIGIIIGGIFIEIEIEIGHIHHIIGGCGDIIHHFI at DIFHIIIFHIIIGI?GIIBIDDI?IHBADHH:CIBIHGIIIF	NM:i:1	MD:Z:57A43	oR:Z:1	oH:i:1	oP:i:2059	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.914	99	1	6257	255	100M	=	6486	329	ATACACCCGATCATTTGTTATAAAACTTAAAGTGTCCTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCC	IHHHIHIIIIFIIHIGHFFIHHHFGHIIGGHCIHIGGIHHEDIIBIAIHGIDIIIGBEEEIAHCIBIIIIH>FIIFIGI;IIGIIIIGIGIIFIF?CIIE	NM:i:1	MD:Z:35A64	oR:Z:1	oH:i:2	oP:i:6903	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.914	147	1	6486	255	100M	=	6257	-329	ATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGC	HIIII?8AICI>IHFI>IGIIIIFIGIIIIEICIBFIHGDHIIIHFIEHDIACFIIIIHHIGIIIIGIIIIHIGEIIGHIIIIIGGGIHHHIGHIHHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7132	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.915	99	1	2471	255	100M	=	2577	206	CAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCA	HIIIIIIIIIIHHIIHHIGIGIIIHFIIGGIFFIIIDIIGHIIHFHIIHIHICDIHIIIIHIDDIDIGIHIFCIIBCICIGIIBAHHICEICFIB?:FID	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2669	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -1879,7 +1879,7 @@ simulated.938	69	*	0	255	*	*	0	0	TATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATG
 simulated.938	141	*	0	255	*	*	0	0	TGATATTTGCTAATAACCCAATGTCGCCCCACCTGATCTTTCCCATTGTTGAGTGACAGGCACCCCTATACCAGAGTCGTAAGCGAATGCAAGTTCGAAG	IHHHHIHIIHIHIHHIIGHHHEFHIIHIGIIFHIIGIDIGIHFGIFBIIEHIIHGFIIIHCEIIDEIICIIIEIH?IIIIGGCIDIFGICI:IIAIEDHI	uR:A:B	oR:Z:1	oP:i:2129	oH:i:2	oS:A:R
 simulated.939	69	*	0	255	*	*	0	0	CACTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCT	IHHIHIIHIGGHHIIHIIHHIGIHIFIGGFGEIEIGIIFIIHCIDIHIHFCIIEGHDGIAEHIHDE at ICIIIIIIIIIDFIG@IIHGFCHIHIII?E at IC	uR:A:B	oR:Z:1	oP:i:1810	oH:i:2	oS:A:F
 simulated.939	141	*	0	255	*	*	0	0	CGAATGCAAGTTCGGAGTGAGGTACTTGACAACCGTGGTCGATAAGTCAACGGGGGCCCAGTTAGTCATTCTCGATCATACTGTGGCAAGGGACAAGGTC	IIHIHHHIIIHIGHHIGIHHFFIIFIHFDGIFHGIGGDDFIEHIIHIDDGGGIIGFIHIGIIIF at EIIIEIIGIIIIIIGIIEIIIGHIIIIIEHICIII	uR:A:B	oR:Z:1	oP:i:2046	oH:i:2	oS:A:R
-simulated.940	89	1	2761	255	100M	*	0	0	TAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTG	BIIHIIFIA:IIIIGIICIEDIHEIEHIIIGIIIIFIIIIHIIFFIIIHIHHIIGIIIIGHIIIFEHIFHIFIGHIIHIFGIHIIIHHHFHHIIIIHIHI	NM:i:1	MD:Z:0G99	oR:Z:1	oH:i:2	oP:i:3035	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.940	89	1	2761	255	100M	*	0	0	TAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTG	BIIHIIFIA:IIIIGIICIEDIHEIEHIIIGIIIIFIIIIHIIFFIIIHIHHIIGIIIIGHIIIFEHIFHIFIGHIIHIFGIHIIIHHHFHHIIIIHIHI	NM:i:1	MD:Z:G99	oR:Z:1	oH:i:2	oP:i:3035	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.940	133	1	2761	255	*	*	0	0	CGGAAAGTCAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCT	IIIIHIIIHHIIIIIGFIGIHHHIIIGIIIGIIIEHGIIHIHDFIIGGHEIIEIGFIIHHFHDEDGFI@?GCAIIIIIIGIFH=II at HFEHIG?I;IICI	uR:A:B	oR:Z:1	oP:i:2837	oH:i:2	oS:A:F
 simulated.941	99	1	6609	255	100M	=	6816	307	GCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATAGTCTCGCATATCCGCCGGATACTAAG	IHHIHHHHHHIHIHIHIGIHGFGIGHHFGIFHEHHIFIGHIDIIFHGIICEFHFICGFIIIIFIIIIIIIIDIIFIGIGAIIIAIIGGHIIAI7EIICED	NM:i:2	MD:Z:74C18C6	oR:Z:1	oH:i:1	oP:i:6802	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.941	147	1	6816	255	100M	=	6609	-307	TACCATATAGGAGAGCACATACACCGGTTGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATC	>IIIEIDIICEICIIICGII>?IIIIBH7AIIHIICIIFIBFIFEF at FBG@GGIIIIICFHICIIIDGHHIIHIGEIIIHIGIIHFIHIHIIHIHIIIII	NM:i:1	MD:Z:28G71	oR:Z:1	oH:i:1	oP:i:7009	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -1940,7 +1940,7 @@ simulated.968	141	*	0	255	*	*	0	0	GTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGA
 simulated.969	69	1	6227	255	*	*	0	0	CTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAA	HHHHIHHIHHIHGGHIGFIIGGFHIHIIIFIIHCIHIGIIFDIIIIEHGDEIIHGIBDIFBICFIIIGAGIIG at IIBI<EFGIDI>IHHDGCBGDFDHID	uR:A:B	oR:Z:1	oP:i:6689	oH:i:2	oS:A:F
 simulated.969	153	1	6227	255	100M	*	0	0	TGCGACACGATCCCTATAACGTATATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGAC	HAIGDI?IDIAABIEHEIIIBFI at III?CIIIB>>FFIIIIIIGIFIIBICIGIFGBIHIIHFDIIIEHHIIGIGIIIHIHHIIHIHIHIIHHHIHIIHI	NM:i:1	MD:Z:22G77	oR:Z:1	oH:i:2	oP:i:6873	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.970	83	1	9282	255	100M	=	9063	319	ATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTA	I?IFDIIID=IBIII<CBIDIHEIFBIGDIHFI?GIIIIIEBFDIGIHDDFEHIGHEFIIIIFHGIIGIHGIFIIIIIFHHIIIIHIHIHIHHIIHHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9472	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.970	163	1	9063	255	45M3D55M	=	9282	-319	CACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAAC	IHIIIHIHHIHIIIHIHFIHHIFGIIHHIIHIIGHGFGGIIHDGIGIHIFICCGIHFIII?DGIEIIFEIIIIIIII at FIIIIF@IIIICIIIIBIIGHI	NM:i:3	MD:Z:45^GAT55	oR:Z:1	oH:i:1	oP:i:9256	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.970	163	1	9063	255	45M3D55M	=	9282	-319	CACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAAC	IHIIIHIHHIHIIIHIHFIHHIFGIIHHIIHIIGHGFGGIIHDGIGIHIFICCGIHFIII?DGIEIIFEIIIIIIII at FIIIIF@IIIICIIIIBIIGHI	NM:i:3	MD:Z:45GAT55	oR:Z:1	oH:i:1	oP:i:9256	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.971	83	1	895	255	100M	=	690	305	TTTATTCACAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCT	IAB3FIGIHIIIIIADHIIADDFIAI?BIIC?EDIG?IAIIEIIEIGFIIIEIIIGGIHIHEEGHIGFHIIFIHGGEGIFHIIHHIHHIHIIHIIHIHII	NM:i:3	MD:Z:1C1G4T91	oR:Z:1	oH:i:2	oP:i:894	oS:A:R	XE:i:2	XS:i:1	XI:i:0
 simulated.971	163	1	690	255	100M	=	895	-305	CACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAGGGCTATCCCGTGA	IIHIHIHIHHHHIGHHIIGIHIHIIFHIHCIIIIFIIHGIGFGIIFIEIDIDDIIIIIIHIIIFIIIFICDIDIIEI?IIDIDGIG6IIIDIHEIICDBI	NM:i:1	MD:Z:86A13	oR:Z:1	oH:i:2	oP:i:689	oS:A:F	XE:i:1	XS:i:1	XI:i:0
 simulated.972	69	1	9224	255	*	*	0	0	AATGCCGCGACCGTACCTAGCCTCGACGCGGATGTTGATTTGACAACTGAATGGGGCTGTTGGCCAGTTGCGGGAACAATCTTTGAGCAGTGCGAGCTGN	IIHIIHIHGIHIIHGHHHIIHIGIIGDHIIIHGGCHEIFIIIEIEHIGIIHIIIEHIIFHGIIIIIIIFFFFIHIIIIIEGII at HIIICF=6GEDIE?D/	uR:A:B	oR:Z:1	oP:i:9610	oH:i:1	oS:A:R
@@ -1949,7 +1949,7 @@ simulated.973	83	1	2527	255	100M	=	2354	273	GTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACA
 simulated.973	163	1	2354	255	100M	=	2527	-273	GCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACC	HHIIHHHHIHHHIHGHGHGGIIHIGIFIHGEGHIIIIIDCHDIIIFGHIIIEIIGIIIHCIIGIHIIHIBCHBDIFIEIIDCIHIIIEIIICIIIIIDID	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2455	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.974	89	1	2657	255	100M	*	0	0	ACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGC	FIII=IIIEGIIIFIIIEI?CIHIIEEAE at IEGIGFIIIHEFDIIFDAGEFEFIHEGGIHHEIGIIHIIIIFGIGIEFFFIHIIIIHHIGIIIIHIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2931	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.974	133	1	2657	255	*	*	0	0	TCTAGTAGCTAGGTACCTGGACAGCATAGCATACAATCAACATTATAGAAAGCCACAGCGCGGTAACGTTCATGTACGATAGCTTATGTCTTACATGCAC	IIHIIHHHGHHIHIHGIFIFIHGHHIIIIEHIHIIIDGIHIIDHIAIIGIIIFGIHFIIIHBIIIIBDE>IDIEHHB?II<I at HIFFIFIH?G7E=IIIE	uR:A:B	oR:Z:1	oP:i:2738	oH:i:2	oS:A:F
-simulated.975	83	1	6709	255	100M	=	6536	273	CTCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCG	FEIIIIIIEI=IIHD at I>IFIBEIGDIHGFIBIIIICBDEBIIFCIIIFIHEHDFHDIIIGFHIIHFIIFIIIHHHIHHGIHHIGGHIHIIIHIHHHIII	NM:i:1	MD:Z:0A99	oR:Z:1	oH:i:2	oP:i:7433	oS:A:R	XE:i:0	XS:i:0	XI:i:2
+simulated.975	83	1	6709	255	100M	=	6536	273	CTCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCG	FEIIIIIIEI=IIHD at I>IFIBEIGDIHGFIBIIIICBDEBIIFCIIIFIHEHDFHDIIIGFHIIHFIIFIIIHHHIHHGIHHIGGHIHIIIHIHHHIII	NM:i:1	MD:Z:A99	oR:Z:1	oH:i:2	oP:i:7433	oS:A:R	XE:i:0	XS:i:0	XI:i:2
 simulated.975	163	1	6536	255	100M	=	6709	-273	GTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATNGCATGAGCCA	HHHHIHHHIIHHIHIHHIIIGHIIHIIIIEFHIHEIHEIGHIIG at IIIIIGDIII?EIIFIEFIAIHFHIFIHGECA at IHHDDIF<IDIFIIIIIIIBII	NM:i:1	MD:Z:89T10	oR:Z:1	oH:i:2	oP:i:7182	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.976	89	1	2075	255	100M	*	0	0	CCATGAAGCCCCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTAAAATTACAATGAACCTTGGGGACCTCAATTTGGTAC	IIIIIIGGI=?=ICAIBIIB=IIGDICGDIEBIBIIHII at IIIGIGFGHIIIIBFIIIFEIFHIIIHIIIIHHEIIIIHHFIIFHHHIIIIHHIHHIHIH	NM:i:2	MD:Z:10G52G36	oR:Z:1	oH:i:2	oP:i:2273	oS:A:R	XE:i:1	XS:i:1	XI:i:0
 simulated.976	133	1	2075	255	*	*	0	0	ATGACTAACTGGGCCCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACGCTGGTATAGGGGTGCCTGCCAC	IHIHIHIHHIIIHHIHIIHEIIHFGHIIIIIFIIFIIHIIIDFFIGIIHIIEDIBGIHIIIHIIHEIIGIAIBIIE?FBBIAIFIIIDIFF>@HH<FIII	uR:A:B	oR:Z:1	oP:i:2077	oH:i:2	oS:A:F
@@ -1966,7 +1966,7 @@ simulated.981	153	1	5859	255	100M	*	0	0	CGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAG
 simulated.982	99	1	4177	255	100M	=	4410	333	GGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCNACTCGTCGTCGAGTGGATTACAAGCAT	IIIIHHHHHHHIGIIIIIFIIHHHHHIGIIIHIIEIEHIHFIEIIIHFFHGGIIIFFIIIGI=HCIIIGEIGII?IIF=CBIBEIBCA?6II at IIIGIIB	NM:i:2	MD:Z:72T16T10	oR:Z:1	oH:i:2	oP:i:4515	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.982	147	1	4410	255	100M	=	4177	-333	GCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGC	HIBGIHDFIFGICFCIIIIAIFIAIHFFFI?IEIGFBIIFIFIIDIIFGDIIFIIEIFFFIHFIFHGFIGIGGIHEIHGHIGIHIGHIGIHGHIHIHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4748	oS:A:R	XE:i:0	XS:i:1	XI:i:0
 simulated.983	83	1	3403	255	100M	=	3213	290	TGTGAACAGTCTACCTTTCCCGATTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGA	BFIIHIIIAIDIGIIIIIABIIHDIIDFCFHIGICIEIICIIIIEIIIGBIDIIIIIIIIIHHIHIHGHHEIEIGHIGIGGEIFIHIGHIIIHHIIIHIH	NM:i:1	MD:Z:23C76	oR:Z:1	oH:i:2	oP:i:3677	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.983	163	1	3213	255	74M1D26M	=	3403	-290	GGAAGGTTGGCACCCCGCTATTAAAAACAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCTATTTCATTGACATAGATGAGGCTT	IIIHIHHIIIIIHIGIIHGIHGIIHGIIIGDFIIHFEIIFIDIIEIIEIHDCDIIAIIGFIDIHDIIDIIIIIHGIC at CIIIIIICHI>FGEAIEA?III	NM:i:2	MD:Z:27G46^C26	oR:Z:1	oH:i:2	oP:i:3487	oS:A:F	XE:i:1	XS:i:1	XI:i:0
+simulated.983	163	1	3213	255	74M1D26M	=	3403	-290	GGAAGGTTGGCACCCCGCTATTAAAAACAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCTATTTCATTGACATAGATGAGGCTT	IIIHIHHIIIIIHIGIIHGIHGIIHGIIIGDFIIHFEIIFIDIIEIIEIHDCDIIAIIGFIDIHDIIDIIIIIHGIC at CIIIIIICHI>FGEAIEA?III	NM:i:2	MD:Z:27G46C26	oR:Z:1	oH:i:2	oP:i:3487	oS:A:F	XE:i:1	XS:i:1	XI:i:0
 simulated.984	69	*	0	255	*	*	0	0	CTACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGG	IHHIHIHHHIIHHIHIIIFIGIEIIIIHFIIIFHEIIIIGFIIIHDICFGHIGIGBIHE??I?IEIC?HID?IEIBIIAIFIHIFABICBIGIFHICHEI	uR:A:B	oR:Z:1	oP:i:752	oH:i:1	oS:A:F
 simulated.984	141	*	0	255	*	*	0	0	TGCATCATGCGTAAGTTTTCTGAACAGACTAGGGATTAAAGGCATCAGGGCCATTGAGGGACCGTAGCTGACTATACGTCGTCGGTCGCTCGCATATCTA	IIHIHIIHIIHIHHHIIIGIIIGHHHIIHIGHIIIFEGCIIEHIEIGEIIIIFIIIICBHCGHIIHFCIIHAHIIGIEB at IGEIIGI=G>IICDHHIIII	uR:A:B	oR:Z:1	oP:i:924	oH:i:1	oS:A:R
 simulated.985	69	*	0	255	*	*	0	0	AAACAGCGGCATGGCGGCTGAGGAGGTCCCAGCTCTCCGCAATACCCGTTCGGATTCAATGCAGGAGCTCGCGTAAGGAATTATTTTATACCCGATTTTA	HHHIIIIHHIHHIHHIHIIGHIEHIFHGIIFIEIHIIIIGIIFCGIIGIHHIIIDIIIIHGDEIGDIIIHDFI at FIIDHII@GIAI at DEH<FIIIIIHII	uR:A:B	oR:Z:1	oP:i:6126	oH:i:1	oS:A:R
diff --git a/apps/mason2/tests/simulator.out4.sam b/apps/mason2/tests/simulator.out4.sam
index d35802f..febc078 100644
--- a/apps/mason2/tests/simulator.out4.sam
+++ b/apps/mason2/tests/simulator.out4.sam
@@ -26,7 +26,7 @@ simulated.22	16	1	5393	255	100M	*	0	0	CAGAGAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGT
 simulated.23	16	1	3778	255	100M	*	0	0	AGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTG	DIGIEG=EGGIIBAGIIFDBHCIIIFIIIFIHIIFHGIIGC at IGEIIIIHDFICHIIFIGEIIEIIGFGHHIIHIHIGGEFHHIHGFIIIHIHHHHHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3777	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.24	0	1	1561	255	100M	*	0	0	ATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAAC	IHHIIIHIHIHIIHHHIHHIFIIIIHHIIGIEIHIIEEIIHIEFDIDHIIBIIFCIIDIAFIIIIDHDDIIIICIFIIB?DIDA at ICG?GIBIIIFHCII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1560	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.25	16	1	2968	255	100M	*	0	0	CGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGA	IIGIIIIIIIFF>I;?HBBIEIIIEAHBIHIEIHIEIIIIIIIIIIBIHIHIHIIDHBIEIHIGEIFFIIFFFHGIIIIHHGHIIGHHHIGIHIIIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2967	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.26	16	1	4850	255	100M	*	0	0	GTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCA	69IIDA at IGFHI?@HIIIIIF>FIHFICFHIIBIBGIHIEIIIGEFIHIIIGIFHFCIDFHIEDFGHIIIIIIIEHFHHHGGIIHIIIIIGHIIHIIHHH	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:4849	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.26	16	1	4850	255	100M	*	0	0	GTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCA	69IIDA at IGFHI?@HIIIIIF>FIHFICFHIIBIBGIHIEIIIGEFIHIIIGIFHFCIDFHIEDFGHIIIIIIIEHFHHHGGIIHIIIIIGHIIHIIHHH	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:4849	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.27	16	1	7820	255	100M	*	0	0	GCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGA	HCDIIB?IIIHIHICIIIIIFGIIAIIEBIIIGGIFIIIIIFIIIIFFHIIIIHIIGHIIIIIIIIIIIHHIGHIIGIHGHIHIHIGIIIIHHHHIHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7819	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.28	0	1	8432	255	100M	*	0	0	CCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGT	IHHIIIHIIHIIHGHGIIIIHHFHIHIHHIDHIIFFEIFDHEHIHFGGCGHIDIFIICIHHHIGIIIICGFEHICIIIIEFHIGIGIGIBBDI?GIIIED	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8431	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.29	0	1	8566	255	100M	*	0	0	TCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTC	IHIIIIIIIIIHHIHGHHIHIEIIHHIFIIIIEHIIIEHIDDIHEIIIEGDFI>IIGIFCIIGI<IIEIHDIHBA>IECB?BIIIIIFEGIIDIII;A9I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8565	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -35,7 +35,7 @@ simulated.31	16	1	5707	255	100M	*	0	0	AACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCG
 simulated.32	0	1	1160	255	100M	*	0	0	GAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAA	HHHIIHIHIIHIHIIIGHIIHIHHHIIFGHIIHGIIIIIFGDHIIHIGIIIDFGFIHIHHGAI at FFIIIIIIDHIICIAIDDIIAIBEIHA:@II at BIGI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1159	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.33	0	1	3029	255	100M	*	0	0	TACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGAAAGC	IHHHHIGHHHHGHHIHIGIGIFGFFHGHIHGHDEFHEFHIFGCDGIIIIIHIIGFICIIIIHE?HIHIDIIIDHIFHIIBHGHBGIIIADDG?I;?IAHI	NM:i:1	MD:Z:95C4	oR:Z:1	oH:i:1	oP:i:3028	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.34	16	1	4107	255	100M	*	0	0	CTTTATCCGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGA	HGIB?HICFAI at B@F>IHFIIIIIHIIDIIFIIFHCDIIGIGCHFIGIIGIDEEIHDIIGDHIIIIFGHFGGHGIGIIIIIIIGGHHHHIIIHIIHIHIH	NM:i:1	MD:Z:7A92	oR:Z:1	oH:i:1	oP:i:4106	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.35	16	1	955	255	100M	*	0	0	AATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGCGTCGACTAGGCACCAGG	EIHBHIIGCFIF?=HFI=BIGFIIIFGIIIIIHHFDIGIFIGIIIECIHIFIEHIFIICI at HFIIIIFIIIIGGGIHIFFIHIIIGHIHGHHIHIHHIHI	NM:i:2	MD:Z:0T81G17	oR:Z:1	oH:i:1	oP:i:954	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.35	16	1	955	255	100M	*	0	0	AATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGCGTCGACTAGGCACCAGG	EIHBHIIGCFIF?=HFI=BIGFIIIFGIIIIIHHFDIGIFIGIIIECIHIFIEHIFIICI at HFIIIIFIIIIGGGIHIFFIHIIIGHIHGHHIHIHHIHI	NM:i:2	MD:Z:T81G17	oR:Z:1	oH:i:1	oP:i:954	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.36	16	1	3043	255	100M	*	0	0	TAGGGATCTTATGTCTTCAATTTGATCTGTGCTTGCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGG	HFIIGHFCEIFI at IIIBIIIIDAIIIIIHFIIIF?IIEDIBDIDIIIICAIFGFIIIIGIIIFEIHEIHHIIIIIGIFHHHIIHHHIHIIIHIIIHIHII	NM:i:1	MD:Z:34T65	oR:Z:1	oH:i:1	oP:i:3042	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.37	0	1	4812	255	100M	*	0	0	AAAGCAAACGATTTAAGCCAAAAAGATCACCTCCCTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCC	IHIHHHHIIIIIIHHHHIHHHIHHIHEIIIHFIIAIHIIIIIIIHHDHIGHCGIIGIDIBAFBIHHIHDIIIIHGIIIAIIIIIIEIII?ICIIDGICDI	NM:i:1	MD:Z:34T65	oR:Z:1	oH:i:1	oP:i:4811	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.38	16	1	2799	255	100M	*	0	0	TCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGA	IIF:IICGIFIIIIDGEFI=IICCIIHE at IHEIHEIFFIIEIIIEIDECHC@GHEHAGCGIDIIIIFGGIGIIHIGFFIGIFGHGIIIIHHHIIIHHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2798	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -165,7 +165,7 @@ simulated.161	0	1	8357	255	100M	*	0	0	CTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCT
 simulated.162	16	1	1755	255	100M	*	0	0	CCTTGAGACGGCTATGCGTGGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGA	IIHIDIIII>HIIIEIFI=. at AI?IIIGIBEAI?GIIEEHHIEIEIIFFGFCFGIHIHHGGIFHHHIIIIIIIGIGGHGHIIIHFHHHHHHHIIHIIIHI	NM:i:1	MD:Z:19T80	oR:Z:1	oH:i:1	oP:i:1754	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.163	16	1	3574	255	100M	*	0	0	GATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCTGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGG	DGIIIDIBI:@FIC<EFEIIGIIIIIIDIIDIACGIFGCEEIDIICIIIIIIIIFIHHGGIDGIHIHIHGHIIIHGGIIHGIIIIHHIIHHHHHIHIIHI	NM:i:1	MD:Z:38G61	oR:Z:1	oH:i:1	oP:i:3573	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.164	0	1	2214	255	100M	*	0	0	TAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTC	HIHHHHIIFHHIIIHIFHIIIGHIGGIHIIFIIIIIHIIHIIHIGIIICHIIICIIHHFEIIIIFGFIEDIIHIHHFIFFAIEBIGCGIDHIHIH=IGII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2213	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.165	16	1	337	255	14M1D86M	*	0	0	GGACGCACAAAATCTCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTGACGTCAAATTCTCGG	IIIIHBI at IIEBIIIIIIGI=HIIIII<IIDEIEIHHIFAEIBIIIIIIHIHIIGIGHFGIIIGIHHFIHIIIDIHHIHHIIIHGIIIIIHIHHHHIIHI	NM:i:2	MD:Z:14^A70C15	oR:Z:1	oH:i:1	oP:i:336	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.165	16	1	337	255	14M1D86M	*	0	0	GGACGCACAAAATCTCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTGACGTCAAATTCTCGG	IIIIHBI at IIEBIIIIIIGI=HIIIII<IIDEIEIHHIFAEIBIIIIIIHIHIIGIGHFGIIIGIHHFIHIIIDIHHIHHIIIHGIIIIIHIHHHHIIHI	NM:i:2	MD:Z:14A70C15	oR:Z:1	oH:i:1	oP:i:336	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.166	16	1	1497	255	100M	*	0	0	TCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAG	A at FII>IIIIIIIGFIFI at IIHI?FDGIEIBFIFIIIFFEIIIIIHHFIIEGIIFHEGIFHEGIIGIHIIIIIIIGHGGGIHHFIIIIHIIHHHIIHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1496	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.167	0	1	5884	255	100M	*	0	0	TGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGC	HIIHHHHHIHIGHHIIHHIIIIGDIIIGIGHGGIFIHIGFIIGFGFIGIIHDEIIEFFFHII?IFDIEIFAFBFIEIIIIDCIDAIACHIIIIIIGGDCI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5883	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.168	0	1	9240	255	100M	*	0	0	GTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTC	HHIIHIIIHHIGHIIGIIIGGIIIGIIIHIIIFIIHIIIIIIIIGGDIIIIDIHI?IIFII at I@?IIGAIGAIBIII<GIICEIDICIIIEIBIH?I at IF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9239	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -214,7 +214,7 @@ simulated.210	0	1	1107	255	100M	*	0	0	GCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCA
 simulated.211	0	1	6942	255	100M	*	0	0	TAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGG	IHHIHIIIIHHIHIIGHIGGIHIIHHIIIIEGIIGIIIIDIIEIIIIHIIBEEIFHIIIGHFBHEGIGIIEIFGIHH>IIFAAIIIIDHICI=;IFGEIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6941	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.212	0	1	6087	255	100M	*	0	0	CTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCGACAGGGTGCATATCGA	HIIHIHIIIHIGHIHHIIIHIHGIIHIIHHHIIIDIIHEGIEIIGGIDIDCHEIIIEGGIEFFII at CFDIFGFIEGIIBFIII7I>D;IIDHHGIIIBII	NM:i:1	MD:Z:83C16	oR:Z:1	oH:i:1	oP:i:6086	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.213	0	1	6725	255	100M	*	0	0	GCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATA	IIIIIHHHIIHIIHHHHHIHIIIHFIIIGHIIIIIIGIHGFIIIBIGIIEHIICEGIBIHBAIIGIAHICIIIIDAIDE?IIIIIGHFFIIHIE>IGFII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6724	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.214	16	1	7609	255	100M	*	0	0	AGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAA	@IDCEII at IIIIHIIII=IFIFIIFIIFIGGFIHICEEIIIDIIIIIEGAGFIDIFIIEFHGIGGIIHHHHIIGIDHIIHHHIIGGIHHGIIHIHIIHHI	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:7608	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.214	16	1	7609	255	100M	*	0	0	AGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAA	@IDCEII at IIIIHIIII=IFIFIIFIIFIGGFIHICEEIIIDIIIIIEGAGFIDIFIIEFHGIGGIIHHHHIIGIDHIIHHHIIGGIHHGIIHIHIIHHI	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:7608	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.215	16	1	8132	255	100M	*	0	0	TCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCG	IIIFIIIFIDIIIGEFCDIICIIICIFGIDDIFDHDCGIIGIIIIIADIHIHEGHGEIHIHIIDIHHEDIIHIHGHHFIGIHGHIHIGIIIHIIHHHHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8131	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.216	16	1	4507	255	100M	*	0	0	AGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGT	CIC at IGIIIBGII>I>IIFAIIICIHDIFCIFBDCBGEGIIEI at IIFHICIIFFIHIIIFHIIIHIHHIGIIEIGGHCIGIIIIHGIIIHHHHHIHHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4506	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.217	16	1	6194	255	100M	*	0	0	CGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTAC	IHFFG?FIGHIIHGI;>IIDIIIDCFIIIFAEI at FBFEIICIIHIIHFFEIIEGGIIFIHIIHIGHIGFIIGIFHFIHIHHIGIIIIGHHHIHIHIHIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6193	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -319,7 +319,7 @@ simulated.315	0	1	6940	255	100M	*	0	0	GCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGG
 simulated.316	0	1	9092	255	100M	*	0	0	GCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACAT	HHIIHIHIIHIIIIIHIHHIIIHIIHGHGHGIIHIIIIFHCICIFGGIGFHIIGCIIIDIIIHIGHIIDICIGI9IIIHIFHIGEIIGA at I9ICABF@II	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9091	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.317	0	1	3543	255	100M	*	0	0	GCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTA	HHIHHIIHHHHIHHIIGIFIGIHGICIFFHFIIIEHIGDHBFHDGIGDGDIGHIHIIIFHIIIEII?EFH?DIFIIIIIBHIIGIHDII=IIIIG?IIFG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3542	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.318	0	1	4882	255	100M	*	0	0	TCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCGAGAGTTGGCGTG	IIHHHIHHHHHHHHHHIHGIGIHIIIIHIIGIFIHIDGHCHHIIFGIIFIHFAICIBIEEIAHIIF>EIIEHIIFHHFE=IGBEGDIAGIDI:I=?IAII	NM:i:2	MD:Z:87C7C4	oR:Z:1	oH:i:1	oP:i:4881	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.319	0	1	7536	255	62M1D38M	*	0	0	AAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTTGTTATTCCATTCATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCG	IIHHIIHIIGIHIIHIIIGGIIHIIGIGIDHHIGIIEIHIHIGHFIGIGHIBIIHGIIGEIIIGIIGIIIIIIGIDCICIDII>EI?BIIHIEGIEFII>	NM:i:2	MD:Z:49A12^T38	oR:Z:1	oH:i:1	oP:i:7535	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.319	0	1	7536	255	62M1D38M	*	0	0	AAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTTGTTATTCCATTCATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCG	IIHHIIHIIGIHIIHIIIGGIIHIIGIGIDHHIGIIEIHIHIGHFIGIGHIBIIHGIIGEIIIGIIGIIIIIIGIDCICIDII>EI?BIIHIEGIEFII>	NM:i:2	MD:Z:49A12T38	oR:Z:1	oH:i:1	oP:i:7535	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.320	16	2	144	255	100M	*	0	0	TACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATC	IIAC at ICI>IFHIDDIBBIIIIIIIIIAFIIIIIGIIEFIGIFIBIIIBIIIIGIIIIHIIGEFFGIHDIFIIIIHIHFIIIIGIIIIHIIHHIGHIHII	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:143	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.321	16	1	6729	255	100M	*	0	0	GGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAG	IIHAEIICIF at CIIIHIICCHIIECIIFIGIIIIEIIGIGEBCFIIHHIDIHHFIIGGIGGFIIIFHGIFGFGGIIGIIIIGIHHHGIIIHGHHIHIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6728	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.322	16	2	636	255	100M	*	0	0	TGTTTGGAGTCGAATCCGTTTTTATTCGACTCTTCTTGCATTCATCACCGGGTCATACTTGAAACTACTATGCCTAGCCGAGGTGCCAGAACTAATAATC	GHII;I<CA?IIIIBIIIIG at IHFFCGDHHIICCIEIAIFGHIIIIF>IHHEEEIFIGIIIIIIHHEIFGIFHIIGGFHIIIHIIHIGHIIHHHHIIIHH	NM:i:2	MD:Z:6A44C48	oR:Z:2	oH:i:1	oP:i:635	oS:A:R	XE:i:2	XS:i:0	XI:i:0
@@ -394,7 +394,7 @@ simulated.390	0	1	9296	255	100M	*	0	0	ATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACC
 simulated.391	0	1	7630	255	100M	*	0	0	CAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGC	IHIHHHHHHIGHHIIIHIGGHGIIHIHIIIGIIIHIFIFIDHGGCIIIGFIHIIIGEIFHDHI>HIF>IIIDFHIDHCFBEHEHIHIIIIDD<CGIDFII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7629	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.392	16	1	613	255	100M	*	0	0	ACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGNTTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGG	I?I<ICIFIIEIAHIHBIGHBDIHIIIIIIGIIIIIEAIHIIIIHHDIIIIIIFI?HCFCIHIHGIIIHIIIIGIGHHIGHGIIIIIIIIHIIHIIIHHH	NM:i:1	MD:Z:55A44	oR:Z:1	oH:i:1	oP:i:612	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.393	16	1	1533	255	100M	*	0	0	TCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAAC	AI>IIFEDG?8HIEHEFIIHHI<EACIFIDHIIFIIDIFIIGBIIIIIIIGIGHIIIIIFGIIGHIDIIHIIHIIIHIHIIGIIHHIGIHIIHHHIHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1532	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.394	16	1	1377	255	100M	*	0	0	ATAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGT	BIIH=IFHIII=DF at IIBEHIHGBHIGDIIABIFIFICICEFIGGIIFDICIICIIDIGFFIGHIIIEGICEHHIIGHIGIGHHHIIIIIIIHIIHIHHI	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:1376	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.394	16	1	1377	255	100M	*	0	0	ATAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGT	BIIH=IFHIII=DF at IIBEHIHGBHIGDIIABIFIFICICEFIGGIIFDICIICIIDIGFFIGHIIIEGICEHHIIGHIGIGHHHIIIIIIIHIIHIHHI	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:1376	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.395	16	1	838	255	100M	*	0	0	TGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGAGGCACCCCGGATAGCCCTT	GAIIEICIIIIICIACDGFBBCIGD>@FIGFHIDDIGIHIHEIHHIIIGIGIIIIHHHIIIIIIHHHIIHGGHGIIIGIIIFGHHGHHIHIHHIHIIHII	NM:i:1	MD:Z:81T18	oR:Z:1	oH:i:1	oP:i:837	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.396	16	1	3897	255	100M	*	0	0	GATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACA	IIDCID<DFCIIB?F at H?I>DFIEDACBEFIABHDIIIIIIIIEIIIGIIIHIFHAFGIHIIEIGIFHIFGHFIEGFIIDIGGIIGIHHHHIHIHIHHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3896	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.397	16	1	6053	255	100M	*	0	0	AAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGGTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCT	ICIIBIE5AIGIII<IHIIIICHGBHCII at IIICIICBEDGIIHIIIIFDIHI=BICHHABIIIIIHHFIHIFIHHFGGGHFHHIIHHHIGIHHHHIIII	NM:i:1	MD:Z:53T46	oR:Z:1	oH:i:1	oP:i:6052	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -421,7 +421,7 @@ simulated.417	0	1	9661	255	100M	*	0	0	CCACCCATTATTCGAACACACATCCGGCACGGCTGGGATAAC
 simulated.418	16	1	1958	255	100M	*	0	0	TGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAAT	II?GIF at IIIGGDIHIIDCBFIHBIIFIIIDICDGIIFIEHIIIEIDEICHIHHIIIGIGGHIGCIHHIFHGIGIGHIFGIGFHIFGHIIHIIHIHIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1957	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.419	16	1	5693	255	100M	*	0	0	TACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGT	IIIIBBFAIIII>IGIDHAIFIICBIIIIIHFEIGEIIIIIIDGIGBFGIHHEIIIDIIIDIIIICFIIIHHHIFFIIGEIIIIGIIHHIHIHIHHHIIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5692	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.420	0	1	6056	255	100M	*	0	0	CTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTGTATC	IIIHIIIIHHHHGGHIIGHHIGIHHIGIIIIHFIIIIHEEIIGIGEIFCIIIIIDDCIBIIIHIIIIGIHICIIDAHIIEIEIIF<HEIIIHIIG1GCIF	NM:i:1	MD:Z:95C4	oR:Z:1	oH:i:1	oP:i:6055	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.421	16	1	6922	255	100M	*	0	0	CCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGT	0=IIIIIIIFII:IHFI?IIIIFEGF?IBIIIIIFGIIIFIECEFBHIGGHGBDIIHIIGIIGIIGGIEIIGHHIIIFIEHIIIIHHIFHHIIHHHHHIH	NM:i:1	MD:Z:0G99	oR:Z:1	oH:i:1	oP:i:6921	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.421	16	1	6922	255	100M	*	0	0	CCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGT	0=IIIIIIIFII:IHFI?IIIIFEGF?IBIIIIIFGIIIFIECEFBHIGGHGBDIIHIIGIIGIIGGIEIIGHHIIIFIEHIIIIHHIFHHIIHHHHHIH	NM:i:1	MD:Z:G99	oR:Z:1	oH:i:1	oP:i:6921	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.422	16	2	298	255	100M	*	0	0	TATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGG	IIDGHIIIHIIECDFIIHI<=GIFIHHAADFIGBIDIHDICFIIIHIGDII?EIIGIIGEIIICEIEGIIFHIEFGEIFGHIHIIIIHIHHHIIHIHIHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:297	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.423	0	1	4124	255	100M	*	0	0	AGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGA	IIIIHHIIIIIIIGHIHHIIHHIIIIFGIGIIIIIHBIIIIIFIEIEIHIIIIFIHIIIGDIICGIHI at IBIIIHIFDII=IIIFFIIDIIIIIEDGIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4123	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.424	0	1	4602	255	100M	*	0	0	ATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATA	HHIHIIHGGGHHIIHIIIIHHIHFIGFIFFGIHHIEGFHGIIFIFEIIIIAECGIIIIHIGEHIHIH=DIFICIHIGEIICIIHEG>BDI>CIHIHIGFH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4601	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -521,10 +521,10 @@ simulated.517	16	1	6397	255	100M	*	0	0	GCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCAT
 simulated.518	0	1	9652	255	100M	*	0	0	CGCTTCGGTCCACCCATTATTCGAACACACATCCGGCACGGCTGGGATAACCCATGATTCTTCGTACGGGTGTGTAAAGAAGTCGGATTGCCACTGAATT	IHIIIHHHIHIGIIIHGIGIIHIHHIHIIIIGIIHGIEIDGHBIIHEIICIEEGHHIHIGIIDHGGIIGIIFIIIIIIIIIFBFFEIIIIGIFIIFIGEI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9651	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.519	0	1	4382	255	100M	*	0	0	CGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTT	HIHHIIHHIIIHGIHIIGIGIIIHFFGIHGHIIGIGHIIGIIIGGGIIIIIIIFIIIIHH?HIGBIIB=II?EF?IFIBGIIIIC@=III@@IIGDEBI@	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4381	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.520	0	1	7680	255	100M	*	0	0	CCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACC	HHIIIHGHIIIHHGHIIGIHIHHIIFIIGIHIIEIGIIGDIIFIGIIIIDBFIHIHGIDIBH at HIIDE=GBIIIIEIIDGEHI>FIIC at EDI@AHGIHGD	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7679	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.521	16	2	206	255	25M1D75M	*	0	0	TTAAGAGCATCGTTCGTCCTGGTTTTTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGT	IBIIIIDIIGCIIIGIIIIIFEGEI5ICGIIIDIIICIEFFIIIHEIIFIEIDHIIHIIHDIFHGIIIIIHFIFIIHHIIHIFGIHHHIIHHIIHIHIHI	NM:i:2	MD:Z:25^G1C73	oR:Z:2	oH:i:1	oP:i:205	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.521	16	2	206	255	25M1D75M	*	0	0	TTAAGAGCATCGTTCGTCCTGGTTTTTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGT	IBIIIIDIIGCIIIGIIIIIFEGEI5ICGIIIDIIICIEFFIIIHEIIFIEIDHIIHIIHDIFHGIIIIIHFIFIIHHIIHIFGIHHHIIHHIIHIHIHI	NM:i:2	MD:Z:25G1C73	oR:Z:2	oH:i:1	oP:i:205	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.522	0	1	8066	255	100M	*	0	0	AATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGNCTAATGTGAGTCTCGAAAAGTGTAAC	HHHIHIHGIHHHIIIGGIHIIIIIGIHIIIFFIHHHIIFEHGFFCHFIIGDIEBIDE at FDIIHIGIIEBGHIICIIIIIEIIIIIGI;DII at FDIIII:I	NM:i:1	MD:Z:73T26	oR:Z:1	oH:i:1	oP:i:8065	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.523	16	2	653	255	100M	*	0	0	GTTTTTATTCGACTCTTCTTGCATTCATCACCGGCTCATACTTGAAACTACTATGCCTAGCCGAGGTGCCAGAACTAATAATCGGACGGTGGTTTTGTCA	IIIID at 2D=FIIIIHIHIGIIIIEIIHEICC>GFGIIGIEIEIEFIIIIIIIIIFGIIIHIHHGFIIICICHIIIHHEIHHIIIIIIHHHHHIHIHHHII	NM:i:0	MD:Z:100	oR:Z:2	oH:i:1	oP:i:652	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.524	16	1	7571	255	100M	*	0	0	ACTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTCGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCA	ICFHIFI>FFIIIFIICIBIIIIIHGCIIIGHIDFAEIAIF at HIEIIHIIIIIICFGIIFHHIDIIIFFHGFGIIGIIHHIGFHIIHIGIIIIIIHIHHI	NM:i:2	MD:Z:0C54G44	oR:Z:1	oH:i:1	oP:i:7570	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.524	16	1	7571	255	100M	*	0	0	ACTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTCGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCA	ICFHIFI>FFIIIFIICIBIIIIIHGCIIIGHIDFAEIAIF at HIEIIHIIIIIICFGIIFHHIDIIIFFHGFGIIGIIHHIGFHIIHIGIIIIIIHIHHI	NM:i:2	MD:Z:C54G44	oR:Z:1	oH:i:1	oP:i:7570	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.525	16	2	547	255	100M	*	0	0	GTGATTAGTCTATGTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGTAACGATAATAGGCTATACTGAATCGGGACTTAATTCTGGCTGTTTGAAGTC	@ECIC>?I>DHFICIBEIHHEIFIHEHHEICHIIIFIIIGDIDFGEIFIEEIFFGIIGIIHEDGIHHDGHFIIGGIGIHIIIIIHHHHIIHIIIHIHHHH	NM:i:1	MD:Z:13T86	oR:Z:2	oH:i:1	oP:i:546	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.526	16	1	105	255	100M	*	0	0	TTAGAAATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCG	II at II=GHII;IIIIH:IIDICIIIICIFIIFIIIFECIIIII at IICHHIIIFGHIGHIIGGHGIEIGIIIFHGHGHHGIIIGIIHIHIGHHIIIHIHII	NM:i:1	MD:Z:5G94	oR:Z:1	oH:i:1	oP:i:104	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.527	16	1	639	255	100M	*	0	0	GACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATC	;HI>CIHIDDGII?IDIBIIFI at IHIBIEIGIFHDIII@IHIGBDIIEIIIGHFIHHHIHIIIHGIEHIIHIFIIHHFGHGGIFIHIHIIHIHHIIHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:638	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -609,7 +609,7 @@ simulated.605	16	1	6688	255	100M	*	0	0	GCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTG
 simulated.606	0	2	325	255	100M	*	0	0	TAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAATCCGAC	IIIHIHHHIHHIHFGIIIGGIIHIIIIGIFHIIHFIGIHIIGIEHIIADII=IIGHCIHD=IBDIIIIIIGIIFCIIDIIIIIFHFIFDIIIF?FIIGCH	NM:i:1	MD:Z:96A3	oR:Z:2	oH:i:1	oP:i:324	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.607	16	1	2858	255	100M	*	0	0	GTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGGCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACG	IB<HFFH;III at EEIHIFIDIDGECI<IIIIFGFED<IIIFFIHI at IGGIDIIIIIIIEHHEEIGEIFEIHIEIIGIHGGIGHGHHIHHHGHGIIIHHII	NM:i:1	MD:Z:45C54	oR:Z:1	oH:i:1	oP:i:2857	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.608	0	1	5032	255	100M	*	0	0	AAGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCA	IIHIIHIIIFIIIHHIHHHHHGHIGHIIHFIIEIIHFCGEIIEGIIIIIIHIIBI at IGIGIDFGIBFIIIIAHIIBII=I?:CCDCIGEEEIIIAGII at B	NM:i:1	MD:Z:1G98	oR:Z:1	oH:i:1	oP:i:5031	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.609	16	2	41	255	100M	*	0	0	TCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGG	9@>GFEIIC<ICIIIDEI?EBIIIF=DIIIDIDIGIGFDIFHIFIDIIIGGCFHHGIHIIIHIIIBIIIGGHIIGHFGHIIHHIIHIIHHHIHHHHHIIH	NM:i:1	MD:Z:0G99	oR:Z:2	oH:i:1	oP:i:40	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.609	16	2	41	255	100M	*	0	0	TCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGG	9@>GFEIIC<ICIIIDEI?EBIIIF=DIIIDIDIGIGFDIFHIFIDIIIGGCFHHGIHIIIHIIIBIIIGGHIIGHFGHIIHHIIHIIHHHIHHHHHIIH	NM:i:1	MD:Z:G99	oR:Z:2	oH:i:1	oP:i:40	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.610	0	1	7126	255	100M	*	0	0	TTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATC	HIHIIHHIIIIIIHIHGGIHGGHHIHIFGIDIEHIGGIHHIIIGIEHIFIIIIIIGDIIFIICIIGIIFGIHIEB>EFIIBDIIIHIDHDGIIFICFIIC	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7125	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.611	0	1	2318	255	100M	*	0	0	AGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTA	HIHHHHIHIHIGIHIIIIIHIFIIIHIHHIGIHEHIIGIDIGDIHHHIHIGIHHFFCEIGIFIIHDIB?IDGCIGIIHH at IHDHAIDIIIIIIIIDIIGG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2317	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.612	0	1	5298	255	100M	*	0	0	CCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGAT	IHHHHHIIHHHHGGHIGHIHIGIIIHGFIHIIIGHIGFIIGIGIIIDIFEHIEFGFI at DHIIGI?FIIIIIIIIIIGGIHIII>GIIFIIIGIAEBGIDF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5297	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -656,9 +656,9 @@ simulated.652	0	1	24	255	100M	*	0	0	CGCTTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAG
 simulated.653	0	1	5991	255	100M	*	0	0	TAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGCGAGCTGGGACCTACTCA	HIHIHIIIIIHHHIHGIGIFIIGIFHIIHIDIEIGIDIHEGHIIFIGGICIHGCGHFCIGBGCFGCIIBDIIFHFDFHCGII-IIGIFC at IIIIIIICII	NM:i:1	MD:Z:82A17	oR:Z:1	oH:i:1	oP:i:5990	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.654	0	1	3561	255	100M	*	0	0	TGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGACGCT	HHIHIHIIHIIIIGIHHIGIIHFIIGIGGIIHIIIEEGICEFII?IGIDIAGGFGIFIAIGIIGIHEIGHIIHIIIFIIIIHI<IIIIIDIICIHF?DIC	NM:i:1	MD:Z:96A3	oR:Z:1	oH:i:1	oP:i:3560	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.655	0	1	6922	255	100M	*	0	0	GCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGT	HHIIIIIHIIGIHHIIGHHIGHGHHIGEHGGEHGHFIIGIIIIEIIIGIIEIIIHHIIHCGIDGIIIIIIIAIGIIBIFIIICIII>I?ADGIIIIIEII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6921	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.656	0	1	9332	255	100M	*	0	0	TCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTCGCAGCTCGCGCT	HIHIHIIHIIHHHGIGHGHFHIFHFEIIIHHIIGIFFIHHHEHGFGIHIIIDIHBEIIIDIEGIIBIHIFIIICGGIHIHIIIIEII>BIGEII>IEBIH	NM:i:2	MD:Z:87A0A11	oR:Z:1	oH:i:1	oP:i:9331	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.656	0	1	9332	255	100M	*	0	0	TCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTCGCAGCTCGCGCT	HIHIHIIHIIHHHGIGHGHFHIFHFEIIIHHIIGIFFIHHHEHGFGIHIIIDIHBEIIIDIEGIIBIHIFIIICGGIHIHIIIIEII>BIGEII>IEBIH	NM:i:2	MD:Z:87AA11	oR:Z:1	oH:i:1	oP:i:9331	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.657	0	1	7629	255	100M	*	0	0	ACAGTGCGCGCGAAGGGAGGCNCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAG	IHHHHHHIIIHIIIIHFIIIICGIIIIHICIIHIBIFIHIAIIEDIHGGICGHFEECFIHIHIIEI?IIDIICEBEIHIIIIIIGFIII;I?CFI6II7I	NM:i:1	MD:Z:21T78	oR:Z:1	oH:i:1	oP:i:7628	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.658	0	2	443	255	100M	*	0	0	AGGCATGTTCCTCACCTGGTGAGCATTGGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCCCCAGGTGCGCTGGTA	HHIIIHIIIHIHHHIIGIGFHIGIHGIFHFGIGIGIIIEICIHIEIFIHGEEGDEIIIBIICFIIIIIIIHCCFDFECCIIIAIBGC9GGBGIIIII?II	NM:i:2	MD:Z:0C86T12	oR:Z:2	oH:i:1	oP:i:441	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.658	0	2	443	255	100M	*	0	0	AGGCATGTTCCTCACCTGGTGAGCATTGGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCCCCAGGTGCGCTGGTA	HHIIIHIIIHIHHHIIGIGFHIGIHGIFHFGIGIGIIIEICIHIEIFIHGEEGDEIIIBIICFIIIIIIIHCCFDFECCIIIAIBGC9GGBGIIIII?II	NM:i:2	MD:Z:C86T12	oR:Z:2	oH:i:1	oP:i:441	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.659	16	1	6514	255	100M	*	0	0	ACGGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAG	II7FEGAD?II?I at HIICIDFII@IGFIGFIDGIFAEIIHIIIIIIIHIGIDHIIIEIIEAIFIGEFFGIIIHHIGIIHFGFIGIIHIHHIHHIIHHHHH	NM:i:1	MD:Z:2T97	oR:Z:1	oH:i:1	oP:i:6513	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.660	0	1	4543	255	100M	*	0	0	GGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTCCTTTGTGTTGGCAACCAGGTGACGACGA	HHHIHIGHIIHHIHHFGIHGFIIIIDIGIHHFIHIFGIIIGEHIGIHFIHIH?CEIFII at IIIDGIHH<H=@IAICHIID at HIIII1IFBCIIIDIII8@	NM:i:2	MD:Z:71A14T13	oR:Z:1	oH:i:1	oP:i:4542	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.661	0	1	1321	255	100M	*	0	0	CATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATC	HHHHHIHHIHIHHGIHIIIIHHHIIGHIIGDGDDGFIIIIHEHIIIIIFIIDIIIGIHEFHIFCIDIIIG?IBECDICIDIGIIHIIGDAIABHAI at IIG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1320	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -966,7 +966,7 @@ simulated.962	0	1	9089	255	100M	*	0	0	TGGGCCCGTCGGCGGCATAGATGTTGCTCGTCACCGCCGTTA
 simulated.963	0	1	1641	255	100M	*	0	0	CAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCT	HHIIIIHHIIIIIHIHIHIIIGIIIIIIGGGIGIGIHIGIICIIHDIIEIIHIGIIIEIIHII at GAII>DHIGHIIIDIIIII at HBGIIIE:IFGIGGEH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1640	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.964	0	1	4274	255	100M	*	0	0	CATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCTCCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGTG	IIHHHHIGHIIGIIHGHIIIIGIIFIIIIGIIHIIHGEHIGGGIDB at IGIHIIIHEGIIIGBIDIIIIIIIIGIFDIIFFIFGGHIGIDIIIII>HAE?I	NM:i:2	MD:Z:46A51A1	oR:Z:1	oH:i:1	oP:i:4273	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.965	0	1	4164	255	100M	*	0	0	TTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGT	HIHHIIIIIHIIIIIGIIGHHIGHIIIHIEIGIFIGIIEHHIDIEIGIIIDIHIIHF at IIIAFG?IGIIIIDIEFCHIGI at IGIBIGICIIAI?9ID;DI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4163	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.966	0	1	5757	255	66M1D34M	*	0	0	GGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGCGGATATAGTAGTATTATGTATAACGCCGGACTA	HIIHHHHGIIHHHIIHIIGIIIHIFHFIDIHIIIIGIIIIIHGIEIFIEIIICCIHFFGCDIEIIA=IIIIFIIIHHGGIICD at EIIIICICE<@BFIIB	NM:i:1	MD:Z:66^A34	oR:Z:1	oH:i:1	oP:i:5756	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.966	0	1	5757	255	66M1D34M	*	0	0	GGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGCGGATATAGTAGTATTATGTATAACGCCGGACTA	HIIHHHHGIIHHHIIHIIGIIIHIFHFIDIHIIIIGIIIIIHGIEIFIEIIICCIHFFGCDIEIIA=IIIIFIIIHHGGIICD at EIIIICICE<@BFIIB	NM:i:1	MD:Z:66A34	oR:Z:1	oH:i:1	oP:i:5756	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.967	0	1	7931	255	100M	*	0	0	TGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGT	HHIIHHGHGHHIIIIIHGIHIFGHIHIHDFFIHEFHGGFGIIHIIGIIIGIIIHGIIIIACIIIIIIIEIIIIIIHFIIDIDIIIIDII?IIHIIICFGG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:7930	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.968	16	1	422	255	100M	*	0	0	CACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCA	IIHIIAI>IEI<BIIIIGIIGIIIGIFIIIIIGIDIGIDIH<HIIHIIGEFIIGDCIIEHGHIFIGIIIIIHHIIIHIHGGIHHHIIHIIIIHHHIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:421	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.969	0	1	6720	255	100M	*	0	0	CTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACC	HIIIHIHHHIHHGGGIIHHGIIIHEGFEHDIDIHIFIFHIIIIEGIHEEFIIIGIHIGFIFIFDGIDIGIHG?IGCIIHFII>CIEIAEDEIIFIIGI<A	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6719	oS:A:F	XE:i:0	XS:i:0	XI:i:0
diff --git a/apps/mason2/tests/simulator.out7.sam b/apps/mason2/tests/simulator.out7.sam
index a9fdc74..33878cd 100644
--- a/apps/mason2/tests/simulator.out7.sam
+++ b/apps/mason2/tests/simulator.out7.sam
@@ -8,11 +8,11 @@ simulated.4	0	1	2293	255	100M	*	0	0	CAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTAT
 simulated.5	0	1	2686	255	100M	*	0	0	ATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTC	IIIIHHHHIIIHHGHHHHIIHIFIGIIDIIHIIIIIHEIGIFEGIIIIICEIIHHIIIEHIIFEHIHIIIIIEDGEA<IEGIIIIIEIIEIFE=FCDIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2960	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.6	0	1	7927	255	100M	*	0	0	GCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTA	HHIHIIHHHIHIIHIIHGIIHHHIDHGHHHHGIIIGGIIEFIFIGIIEAFDIGIIIGF>IDIIEIIIGIFHIGIIIDEIHIIIIIHIICAECIIIEHIIB	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8120	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.7	0	1	3782	255	100M	*	0	0	AGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATG	IIIIIIHHIHIHHIHHHGIHIIIIGHIIIIIHDHIIIHIDIHIIEGGDI?IHIGIHIIGIIIDIFIIFIIICDGIIFDHHEIHIIIFFIFDCI>IIIBIF	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4060	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.8	16	1	3765	255	29M1D71M	*	0	0	AAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAAC	IICDAIIIG;AII?AIHIIIIII9BFIIEIICFHIIHHIIIIIIIGDIIHGHHIGGEGIHIIDHIEHFHIGIFIHGFGIGIIIHIIHHGIHIIHIIIHIH	NM:i:1	MD:Z:29^T71	oR:Z:1	oH:i:1	oP:i:3866	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.8	16	1	3765	255	29M1D71M	*	0	0	AAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAAC	IICDAIIIG;AII?AIHIIIIII9BFIIEIICFHIIHHIIIIIIIGDIIHGHHIGGEGIHIIDHIEHFHIGIFIHGFGIGIIIHIIHHGIHIIHIIIHIH	NM:i:1	MD:Z:29T71	oR:Z:1	oH:i:1	oP:i:3866	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.9	0	1	6659	255	100M	*	0	0	CCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGG	IHIHIHHIIHIIIHHGIIIIGHHFIIIEFHHIHHIEIIGIHHGIHBGIIEGEIGIIIIIIIFCGEIGCBIIIIIIHFEI at IBDIFGEFBIEDIGGCIEFI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6852	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.10	4	*	0	255	*	*	0	0	CTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCAATTATATTGCATGGCATTGTGTGTCGCTTCC	HIHHHIIHHHGHIHHHGHHIHIGIIIGHIEIHHIGHFCHEBIIIIIIIII?IIEIHIBIHDBIIIHDGGIFI<IIIAIBIDIIIIIIII at AGIAD9IFIF	uR:A:B	oR:Z:1	oP:i:6286	oH:i:2	oS:A:F
 simulated.11	4	*	0	255	*	*	0	0	CCCGGCTGTTTTATGGCCGGACACGGACCCACGCGACTTTGTGCTAGTACAATACGTGCATGGTTTGATATCATAGGATGACATGTGGGCACTATCTTCC	HHHHHHHHHIIHHHHGGIIHIIHGGHIGICFFIFIIIIEIGIFIFIIFCIHIIG at FIBEGIIIICIIDIFIGGIIICBFII:IIIIHFIIIHFGIIIAII	uR:A:B	oR:Z:1	oP:i:1593	oH:i:2	oS:A:R
-simulated.12	16	1	27	255	94M3D6M	*	0	0	TTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATA	HIIIIDBBIAIIGIIEIGIIIIGAIIHIEIIBEGIDAIIIIIH at BFIEGGIIIIIGHDIHEGGDFIHHGFGIHEEEGGHHFIIGIHHHHHIHHHIIHIHI	NM:i:3	MD:Z:94^ACA6	oR:Z:1	oH:i:1	oP:i:26	oS:A:R	XE:i:0	XS:i:0	XI:i:3
+simulated.12	16	1	27	255	94M3D6M	*	0	0	TTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATA	HIIIIDBBIAIIGIIEIGIIIIGAIIHIEIIBEGIDAIIIIIH at BFIEGGIIIIIGHDIHEGGDFIHHGFGIHEEEGGHHFIIGIHHHHHIHHHIIHIHI	NM:i:3	MD:Z:94ACA6	oR:Z:1	oH:i:1	oP:i:26	oS:A:R	XE:i:0	XS:i:0	XI:i:3
 simulated.13	16	1	1412	255	100M	*	0	0	ACATGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGT	?DF:FEEBIH at AIIIIIHIIIGII>GDIIFIIIIDIIGDAGGIDIGIGEIIIFHIIHEIIIIFGIGHIHEHIIHIHIGIIHIHGIIIHGHHIHIHHIIHI	NM:i:1	MD:Z:3A96	oR:Z:1	oH:i:2	oP:i:1465	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.14	16	1	265	255	100M	*	0	0	AACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGA	DII at FIBFIIHIIIIHIG?ICGHGIEIDIIFCCII?IHGEIHFHIBICGIIIEEFIIIFIHHIFIIIFIGEIHIGFGIHIEIIIGIIGHIHIHIIIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:264	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.15	4	*	0	255	*	*	0	0	GTTCACTCTTGAGTGGGTTCGACCGGTGATGTATATGGTGATATGTCTACTCTTCTAAACGGTACAAAAGGTCTTCTCTCCCGAGGTAACATTTCCGATG	HHIHHHHHHHHIHIHGIIHFIIIFFHHIHDIIGGHIIIIGIHIECIFFEGHIIGIHIIIHHDC@@IBIIEIIHEDHIIIAIIDIIBIIIIFIDCECIADI	uR:A:B	oR:Z:1	oP:i:9882	oH:i:1	oS:A:R
@@ -55,7 +55,7 @@ simulated.51	16	1	8172	255	100M	*	0	0	GGCTAGCATTCCCATGTAACACAGCCCACACGGTTATGGACG
 simulated.52	0	1	672	255	100M	*	0	0	GCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTAT	HHIIIIHIHIIIIIHHHHIIIHIIGHIHFIIIGIIDIIIIGFIDIGIHHFHGEFDHGFEAIIIEGEFIIHAEEIHGIIIEAIIIBGCHFDICBIFGII;I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:671	oS:A:F	XE:i:0	XS:i:1	XI:i:0
 simulated.53	0	1	6781	255	100M	*	0	0	TTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTA	IIHHHIHHIIIIIIHIHIIGHIHIFFIIFIIFIHHIGFIFIIGEIGHIFIIIHHIAIIGI<IHIIEIDBI<CIDHIIIIIIIHDBFAIFIBIEICIICEG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6974	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.54	4	*	0	255	*	*	0	0	AGGTTCATTGTAATTTTACAATTTACCTCTCGTCTCGCTAAGTTGACGGGATTGTAGGGAGCTGGTGCGCGGCTTCATGGAGTACCTGGAGTAGAAAAAT	HIIIHIIIIIIHIIHGIHIHHIGGIHHGHHIIGIGGIEIDGD at HIIIHICIIICHHIIHIDIIBICIHIIIGDAIEIIIIHII@IBIIIIGEHIIIHDID	uR:A:B	oR:Z:1	oP:i:2253	oH:i:2	oS:A:R
-simulated.55	0	1	3725	255	69M1D31M	*	0	0	CACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTAGGTC	HHHIHHIIHIHHHHHIHIIHIIHGIEGFGFGIIGIIGHBDCIDGGCIIHIFIHGEIGFIIIDICEHHIIICHIGIC;GIF:IGEIII?BBEIDIGI9GI:	NM:i:2	MD:Z:69^T27C3	oR:Z:1	oH:i:1	oP:i:3826	oS:A:F	XE:i:1	XS:i:0	XI:i:1
+simulated.55	0	1	3725	255	69M1D31M	*	0	0	CACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTAGGTC	HHHIHHIIHIHHHHHIHIIHIIHGIEGFGFGIIGIIGHBDCIDGGCIIHIFIHGEIGFIIIDICEHHIIICHIGIC;GIF:IGEIII?BBEIDIGI9GI:	NM:i:2	MD:Z:69T27C3	oR:Z:1	oH:i:1	oP:i:3826	oS:A:F	XE:i:1	XS:i:0	XI:i:1
 simulated.56	4	*	0	255	*	*	0	0	GCCTCTGGTACCGTCAGTTCTCAATAGGACATACGTCAAGGGGTTGTCCCGTGGAAAGCACAGATCAAATTGAAGACATAAGATCCCTAACGACAGAATA	HHIHHHIHIIIHGGIIIGIHIHGIGIIGGGHIGHEGIHIGBIGIIIIIIDEHGHBGIAIHIIHICIGIGIGCIIIGIIIIIIIIIIIBIAIIIIEGICGI	uR:A:B	oR:Z:1	oP:i:3194	oH:i:1	oS:A:R
 simulated.57	0	1	3939	255	100M	*	0	0	CTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACT	HHHIIHIHIHHIHIIHIIHHHIIGIIGIIHIIHIIGIIIGHIHFIGHFIGHH at IGIHIAIIHIDGIIIDIEIHIIIIIICGEFIIHC@GFIIIAIIIIDC	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4039	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.58	16	1	6217	255	100M	*	0	0	TCAGCGGCAGTGCGACACGNTCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGT	GIIFIFIBA8=HEIHA;IIICIAAFGCEIIIGC at IIDEICIIIFDIEHIIIBIHIIEIFFIIEIHIHIGIGIIIFEHFIIIHIIIHIIHIIIHIHIHHHH	NM:i:1	MD:Z:19A80	oR:Z:1	oH:i:1	oP:i:6334	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -85,7 +85,7 @@ simulated.81	16	1	3889	255	100M	*	0	0	GAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGC
 simulated.82	16	1	2706	255	100M	*	0	0	TTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTA	AGG?4EIII>CIFB>II at BIHEDGICIFGIDIIHGGICIGIEIHIHIIFGGIDEIIIIGGFIFICIHIHIIEIIHIGIHIIIIHHIGIHGHHIIHHHIHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:2807	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.83	4	*	0	255	*	*	0	0	CAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCACCTGATCTTTCCCATTGTTGAGTGACAGGCACCCCTATACCAGAGTCGTAAG	HHHIHHIHHHHIHIHIIIIIHHIIHHGIGIIFHGGIGEIIHFDBFIIIFIIIGEHIIGFIEIIIIIIIIHGCIB at GHIIGI@IIIDIIFDIIIBG?IIEG	uR:A:B	oR:Z:1	oP:i:2146	oH:i:2	oS:A:R
 simulated.84	16	1	2088	255	100M	*	0	0	CACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTCAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTAT	B<ECIFH>GIIIIFBIFIIIECIFIIIICAIHIDCIIC?DHIFDIDIIFFIDIEIIHFIIIIIIGGDIEHHHIHIHHGGIIIHIHIIHGHHIIIIIHHII	NM:i:1	MD:Z:50G49	oR:Z:1	oH:i:1	oP:i:2189	oS:A:R	XE:i:0	XS:i:1	XI:i:0
-simulated.85	0	1	9055	255	53M3D47M	*	0	0	TGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGT	HHIHHHIIIIHHIGGIHIHIIIGGHHIHIGGIFFGGEICCIIHFIIFIFHEDFIIBHEEIIIEFFIIDCFHBDIBIHIHIIIDFIIIGGCIC?IAFGIII	NM:i:3	MD:Z:53^GAT47	oR:Z:1	oH:i:1	oP:i:9248	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.85	0	1	9055	255	53M3D47M	*	0	0	TGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGT	HHIHHHIIIIHHIGGIHIHIIIGGHHIHIGGIFFGGEICCIIHFIIFIFHEDFIIBHEEIIIEFFIIDCFHBDIBIHIHIIIDFIIIGGCIC?IAFGIII	NM:i:3	MD:Z:53GAT47	oR:Z:1	oH:i:1	oP:i:9248	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.86	4	*	0	255	*	*	0	0	ATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCG	IHIIHIHHHHIHIIHGHHIIHIIGIIHIIIIIGHIDHEFEIEHIIHDEIHHFIIHIIHEBIDIIIIIFAGDIDGIFIIIFHHIGHIIIIIIIDHIBII8=	uR:A:B	oR:Z:1	oP:i:9584	oH:i:1	oS:A:F
 simulated.87	0	1	8942	255	100M	*	0	0	TAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGATTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATG	HHHHIHHHHIGHHHIHGIGIIIIGEIIIHIHHIIIIGFFIEHDIGIDBGGIGHIFFIGIIICIBEIDHEFDIHBFICEFACE>G9HI at IIC@GI<IEIIB	NM:i:1	MD:Z:47T52	oR:Z:1	oH:i:1	oP:i:9135	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.88	16	1	2593	255	100M	*	0	0	GTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCTCAGAGATCGGTG	IGIHDI at 8IGCHIFIGBBAD@IIGIGGFGIII7GIIFHIIHFIEIIIHICBCFIBEHDEGIBGIGEHHHIIIHIIIIIIHIHIIIIHCHIHHIIIIIHIH	NM:i:1	MD:Z:87G12	oR:Z:1	oH:i:1	oP:i:2694	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -127,7 +127,7 @@ simulated.123	0	1	2111	255	100M	*	0	0	AACTTAGCGAGACGAGAGGTAAATTGTAAAATTACAATGAAC
 simulated.124	4	*	0	255	*	*	0	0	AGCCAATTTAATCAGACTAGGGACGCGATACTGCACGGCATGTTTCAGTTCGCTGACTACCGGAAGAGATGATTGGTTTATGTGCGCGCTATAAGTAGAC	IHHHIIIIHIHIHIHIHIHEHIGIEEHGGHFIIIGHIDIIBHICIIIIIBHEI at IICIII?IIFIIFGI=IIIFEFCIGIIIII@=IHGIIDIFIIIBII	uR:A:B	oR:Z:2	oP:i:304	oH:i:1	oS:A:R
 simulated.125	0	1	1090	255	100M	*	0	0	TAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGC	HIHHHIHIHIHHGGHIHHHIIGHHIGHIIIIGGHIIIIIGGEIGCGIIIIIHIDIIIIEAEIEGFIIIDIIIH at FFFAIIIDIIIB:D?EIIB=IIII?G	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1191	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.126	16	1	5791	255	100M	*	0	0	GTCGCTTCCCACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATG	:@FIIIHIB9IFF at GI@A=ECDIIGDI2IBI at GIIGIBGIF=GIIIIICIGIHIFIFGFIIIIIIIFIFIIIHIGIGFGIIIIIHHIHIHHHIHHIHHHI	NM:i:1	MD:Z:9T90	oR:Z:1	oH:i:2	oP:i:6377	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.127	0	1	143	255	15M3D85M	*	0	0	CGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGT	HIHIHIHHIGIIIHHIIHIGHGEHFIGIIHIIIIIEHFEIIHGIFGFIIHDIIIIDBIIDGIIDIFI?IGIIIIIIF<IIIAIGHIDEIBIGIBIHHHHI	NM:i:3	MD:Z:15^CAG85	oR:Z:1	oH:i:1	oP:i:139	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.127	0	1	143	255	15M3D85M	*	0	0	CGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGT	HIHIHIHHIGIIIHHIIHIGHGEHFIGIIHIIIIIEHFEIIHGIFGFIIHDIIIIDBIIDGIIDIFI?IGIIIIIIF<IIIAIGHIDEIBIGIBIHHHHI	NM:i:3	MD:Z:15CAG85	oR:Z:1	oH:i:1	oP:i:139	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.128	4	*	0	255	*	*	0	0	CTGTCAGGCAGGACCTCTGTCTAAGTCATTACTTACCCGCGCGACGCAGTCAATTACTCATGCATTTGGATAAAGCAATACCCCAGCGCAACACTCCTAA	IHHHIHHHIIIIIFHIHIHHGIGIIHIIIGFIIEEIIEGHDIDIFIIFIGEHIGHHHHBCIIIHE?IGEIFIGHHIDDIIIIHIEBGIAIIGCDC=AI2I	uR:A:B	oR:Z:1	oP:i:4252	oH:i:2	oS:A:R
 simulated.129	4	*	0	255	*	*	0	0	TTCCAGCTGGTCGGAATATCCGGAGTTCTTCCACTACTGGATTGTAGTGGTCCCGTCAAACTCACACATTATTTCATCTACTCTTGGCTATTATTTAATA	HHHHHIIHIIIIIIIIIIIHIIHIGIGIHHIIGIIIIFHIIIEGIIIIEIIIIFIIFHIICIEGHAHICEIDIIGIGCIIAFGFGFHIIIIIIIIGAIC?	uR:A:B	oR:Z:1	oP:i:10001	oH:i:2	oS:A:F
 simulated.130	0	1	3879	255	100M	*	0	0	ATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCCGG	HHIHHHHIIIIHHGGIGIIIHHHIIIHIIIIGIIIIIFHFIIHGIIHAEIIIG at HI?EIIIGIDIIAIIECIDIIIIFIIIIIBCIFIF=IIEAIICIAF	NM:i:1	MD:Z:97G2	oR:Z:1	oH:i:1	oP:i:3979	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -174,7 +174,7 @@ simulated.170	4	*	0	255	*	*	0	0	ACGATAATTGGAACCAAGTAGCGGTATCAGCTCTACGAACAATCTAAG
 simulated.171	4	*	0	255	*	*	0	0	ATTATGAGTTCAGGACAGTGTCACTTTATAGGCGGACCCCTCAGCAGAAACATGCATCGGCAAGCCTTGGGCGGGCGCCCGAGTAGCTTAATGTACCTCC	HHHHIIHHIHHIGHIIIHIIHFIIIHIGIIIIIIGIIDFIIFIDIHIIIHIICIFIBIIHIHHIHIIIGEHIEHIII at IHF@HGHIICIIHIICHBDIIB	uR:A:B	oR:Z:1	oP:i:5511	oH:i:1	oS:A:R
 simulated.172	4	*	0	255	*	*	0	0	TCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCC	HHHHIIHHHHIHHGHIHHIHIHIEGIIIGIEIFHIHGIIDIIIDIEIIGFGIIGGIIIEIF at GHIIIIIIIII?IGIIFIIIIIEIDIHCIIFEFCBHFF	uR:A:B	oR:Z:1	oP:i:5344	oH:i:2	oS:A:F
 simulated.173	0	2	540	255	100M	*	0	0	GTAAGTAGTGATTAGTCTATTTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGTAACGATAATAGGCTATACTGAATCGGGACTTAATTCCGGCTGTT	IIHIIIIHGHFGHIIIIGIHGIIIGIIIHDHDIFIHCIHHHIHIEIIFGGDIEIIIDIIDFHHIIIIIFIDIDCIIBHF=GGID?AHIIEII:CCIBBIC	NM:i:1	MD:Z:92T7	oR:Z:2	oH:i:2	oP:i:539	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.174	16	1	1929	255	85M1D15M	*	0	0	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	I=DIICIIED<<IBIIDAHC>ICDIIFDHDGIIIDIIII?IIIIGFIIFIIIHIIHIGCEHIIFIICIIIEIGIHIHIIIIIHIIGIIIHIHIIHIIIIH	NM:i:1	MD:Z:85^A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.174	16	1	1929	255	85M1D15M	*	0	0	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	I=DIICIIED<<IBIIDAHC>ICDIIFDHDGIIIDIIII?IIIIGFIIFIIIHIIHIGCEHIIFIICIIIEIGIHIHIIIIIHIIGIIIHIHIIHIIIIH	NM:i:1	MD:Z:85A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.175	4	*	0	255	*	*	0	0	GTAGATCATGTGTCCGCGATGACAGTAAGTCCATTTATGGTCGCCTCTCCGATGCTAGCGGACGTAGCTTGCTCGCTCTACTTTGTGTATACTCACGATC	IIIIIIIHIIHIHGHIHGIIIIGGHIIIHHIHGGIIIEIIIIFIGHIHDHBHIIHCHIIIHDFFGCEIII;HIEFDIGAIIIIIIBGAAEGGIIAIBIIE	uR:A:B	oR:Z:1	oP:i:719	oH:i:1	oS:A:R
 simulated.176	0	1	8956	255	100M	*	0	0	GTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTT	IIHHHGIHIIHIHIGHIHHGGHIHFIIEIEGDIGGIIIHFIIIHIGGIGIEIGDCCIIIIIHGIGIIAGHIDIIIEICHIIFHDIIIIID>IIIIBIIC@	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9149	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.177	0	1	7086	255	100M	*	0	0	CTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATTGGTATG	IIHHHHHHHHIHHIIHHGIHIIGIIIHEIGGIIHGGIFHIIHIFEIIIGHGIIIEC at IIIDGHCIIIIIEI?ADFIEH<IIIFIDHGGEIIDGDDI at BI?	NM:i:1	MD:Z:93G6	oR:Z:1	oH:i:1	oP:i:7279	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -199,7 +199,7 @@ simulated.195	0	1	4138	255	100M	*	0	0	TGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGC
 simulated.196	4	*	0	255	*	*	0	0	GTTACGCTGGGGTATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGTCTTAGACAGAGGTCCTGCATGACAGTAAACCCC	IIHIIHIIHIIGIIHGGIIGGIIFHEIGHHIGIIEIGEEIGBDIHIIIIGIIGFIEIHAFGAGABGIIIIIID?IAFIBICDHCEIFDAI;D=EIHIICG	uR:A:B	oR:Z:1	oP:i:4260	oH:i:2	oS:A:F
 simulated.197	0	1	2257	255	100M	*	0	0	ACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGTG	HHIIIIHIIIIIHGHHHIIIGHIIIIIIHIHIIGIIGIGIGGHGIIHFIICIIIIGIIIEFAAGDICIIIGDAIFEEIEII?IEIIIEFI=IC?IIIDII	NM:i:1	MD:Z:98C1	oR:Z:1	oH:i:2	oP:i:2455	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.198	0	1	3342	255	100M	*	0	0	TTGCTCTTTTCGGAGAACCGCTATAAAACCAATTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTAA	IHHHIHIHIHHIHHIGIIIIFIIHHIFHIHHIIGHIIIICIGHEIHEDIIIIGCIIHFFIIIIIDICI at IDGIHDDIIECBIIHF?ICIFFIIIIIH=II	NM:i:2	MD:Z:32G66T	oR:Z:1	oH:i:2	oP:i:3616	oS:A:F	XE:i:1	XS:i:1	XI:i:0
-simulated.199	0	1	1980	255	34M1D66M	*	0	0	CAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGA	HHHIHHIHIHIIHHIHGIHIIIIIIHHGGFIIIFGGIEGIHIHICIIBIICFIDEIHICIIGIIIIIAEDHHGAIIIICH:BHICII at GIIGDI?IIFDC	NM:i:1	MD:Z:34^A66	oR:Z:1	oH:i:1	oP:i:2082	oS:A:F	XE:i:0	XS:i:0	XI:i:1
+simulated.199	0	1	1980	255	34M1D66M	*	0	0	CAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGA	HHHIHHIHIHIIHHIHGIHIIIIIIHHGGFIIIFGGIEGIHIHICIIBIICFIDEIHICIIGIIIIIAEDHHGAIIIICH:BHICII at GIIGDI?IIFDC	NM:i:1	MD:Z:34A66	oR:Z:1	oH:i:1	oP:i:2082	oS:A:F	XE:i:0	XS:i:0	XI:i:1
 simulated.200	16	1	4008	255	100M	*	0	0	TGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTC	?BCIHBIID<IIIIFDI at IIFIIIEI@DII<EICIHGIIHFIDGDIECEIG at IHHIEFEHHCDIHIHIIIDIHEIFIIIHHIFGIHIHHIHIHHHHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4346	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.201	4	*	0	255	*	*	0	0	CACTGTGGCTGGAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTAT	HIHHIHHIHIHIHHGHGHHIIEHIHEFIIEIDIIIIIGIHIFGFIDIFBHIHIDHCEGFIHIIEEICCHDBFGICIDGCGFIICIIIBDIIIIICIBDCI	uR:A:B	oR:Z:1	oP:i:1225	oH:i:2	oS:A:F
 simulated.202	4	*	0	255	*	*	0	0	AACAATCTAAGGTTAGGCTTTATTTATGACAGGACAATCCCTACTGGTCGGATGGACGATAAGCCGGAGCGCTTGCACCTAGAAGAGTGATTTTTACTTT	IHHIIHIHIIIIHGHIIHIHHIHGGEIHIIIIIICIIIFIIHDIEEIFFIIIHDIGGHGIIHDIEGF at IBIAIIIFI@GFI=BIIEFEIGCIIIIBI<DI	uR:A:B	oR:Z:1	oP:i:3019	oH:i:1	oS:A:R
@@ -304,7 +304,7 @@ simulated.300	4	*	0	255	*	*	0	0	GGCGGGCGCCCGAGTAGCTTAATGTACCAAGGCTGTCCGTCTGCAAAC
 simulated.301	4	*	0	255	*	*	0	0	GTGAATGCCGCGACCGTACCTAGCCTCGACGCGGATGTTGATTTGACAACTGAAAGGGGCTGTTGGCCAGTTGCGGGAACAATCTTTGAGCAGCGCGAGC	IHHIIIIHHHIHGIIGIIHHIHIIIHIIIIHDIHGIIFHIIHIIFIIIBFEIIIFEIIIICHI>IFBIDIFIDEICIIGIDIBG?IIAICIECG?IIICD	uR:A:B	oR:Z:1	oP:i:9613	oH:i:1	oS:A:R
 simulated.302	0	2	517	255	100M	*	0	0	TGGCTATTCCCCCTGGTGCGCTGGTAAGTAGTGATTAGTCTATTTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGTAACGATAATAGGCTATACTGA	IHIHHHHIHHGIHIIGIIIIIIIIIFGGIFHHHIIIHGGFIIIIEHIEGGHFDGFGIIGIIIIIGIEDAEGIIIIIEIDIIIFDIBIAAD at HIIEDIHIE	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:516	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.303	4	*	0	255	*	*	0	0	CAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCAC	IIIHHIHIIHHIHHHGHIIHGIGFHIHHIGFDGIFGHIFIGIHFIIIFHGEIIEIDIIFAIAGIIIIDFIEIIIDGHDIHFFFIIIIIIII>AHIG?FIH	uR:A:B	oR:Z:1	oP:i:1761	oH:i:2	oS:A:F
-simulated.304	0	1	9038	255	70M3D30M	*	0	0	AATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTG	HHIIIHIIHIIIIHGGGGHIHGFIHIGGHGIGHGIHHIHIIGFIIIIIIEGEICCGDIEIIIIIAIHEHIFIIAIFFEFAICAIIIIEGFBIIII>I?II	NM:i:3	MD:Z:70^GAT30	oR:Z:1	oH:i:1	oP:i:9231	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.304	0	1	9038	255	70M3D30M	*	0	0	AATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTG	HHIIIHIIHIIIIHGGGGHIHGFIHIGGHGIGHGIHHIHIIGFIIIIIIEGEICCGDIEIIIIIAIHEHIFIIAIFFEFAICAIIIIEGFBIIII>I?II	NM:i:3	MD:Z:70GAT30	oR:Z:1	oH:i:1	oP:i:9231	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.305	4	*	0	255	*	*	0	0	ACTGAAACATGCCGTGCAGTATCGCGTCCCTAGTCTGATTAAATTGGCTTAGCTACCTCCCAGAAGAGAGATGAGGATAAATCTCCCCGACCCGCTCCTC	IHHHIIHHHHIHIHHGFIHIIIGIHHFIHIHHHHIFIIFIIFIIFIGEIIIFEAH?GFIIGBIIGEIBIHIIFIBIIBI<IIEIICIII<G>IIIIAIII	uR:A:B	oR:Z:2	oP:i:355	oH:i:1	oS:A:F
 simulated.306	0	1	6976	255	100M	*	0	0	TCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCA	HIHIHHIHIHHHIHHHIGIIHFHHIHIIIGIIIFGFGIDIFIIIIIIIIHIFHIHHIHIGFIFIFIEEIDHI>DIFFIII=IFI at IAIIIEC>III=>4I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7700	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.307	4	*	0	255	*	*	0	0	TTACGTTGATACGGCTGCTTGCCGGCATACAAANGAGTTTGAAAGCGGCGGTAACCTAATCTAAGCTGGGGAAGATTCTGCCTCGAACATGCCAGAAACG	IIIIHIHHHHIIIHHIIGIIIGIFIIGFHIIIIIFGFIHIGIFEFAIFGHFIGHFIDII at FEGIHDGFGIIAEIIH@FFIIIIIHGCAI>BHBIIIDIGF	uR:A:B	oR:Z:1	oP:i:6139	oH:i:2	oS:A:R
@@ -333,7 +333,7 @@ simulated.329	0	1	6474	255	100M	*	0	0	AGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACAC
 simulated.330	4	*	0	255	*	*	0	0	GCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCG	IIHHIHHHHHHIIIGIHHGIIHHIHGGGIIFIGIGIIIIIEFGIHEIEIBIIDIBGIIHI at IBIEIAIGCEGIIDIFFI@IGF?EHE?IG>F at EF@II?B	uR:A:B	oR:Z:1	oP:i:1120	oH:i:2	oS:A:F
 simulated.331	0	1	9422	255	100M	*	0	0	AGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTTGCGGCATTCA	IIIIIHIIHIIIFHHIIGIGHIIGIIIIEIFDGIFHGIIHIIIIDIHFIEIIHCIIFIDDIIHIIIABEI>BDII9IFIBI<FFEFIDI.IFIIFIGCIG	NM:i:1	MD:Z:89C10	oR:Z:1	oH:i:2	oP:i:10265	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.332	4	*	0	255	*	*	0	0	TAGTGACCGATTCGAACCGGTCTTGCATCCGCAGGGCTGGTGGAGCTGGGTCTTAGGCGGTTCAATACACGGTCCCAGCAGGATACCTGGTACTGGTGGG	IHHHHHIHIHHIHHGIIHIIIHGGIGFHIIIIIEIIDIGFIIEGHIEHFHGIEAGFFBGFGDIIGIIIIBIIIGIICIIIGHIIH at FIBFIIIIIII?IG	uR:A:B	oR:Z:1	oP:i:5976	oH:i:2	oS:A:R
-simulated.333	0	1	125	255	33M3D67M	*	0	0	GCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGAC	HIHHHIHHHHIHIHIIIIIGIIIIIGIHHIGIIIHDHDFIDFGGIIHIIFHFIHIIHFIIIFIIH>IEIIHDCI=FIGDIDIII8I>IB=@IG at IID<@A	NM:i:3	MD:Z:33^CAG67	oR:Z:1	oH:i:1	oP:i:121	oS:A:F	XE:i:0	XS:i:0	XI:i:3
+simulated.333	0	1	125	255	33M3D67M	*	0	0	GCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGAC	HIHHHIHHHHIHIHIIIIIGIIIIIGIHHIGIIIHDHDFIDFGGIIHIIFHFIHIIHFIIIFIIH>IEIIHDCI=FIGDIDIII8I>IB=@IG at IID<@A	NM:i:3	MD:Z:33CAG67	oR:Z:1	oH:i:1	oP:i:121	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.334	0	1	477	255	100M	*	0	0	CAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCT	HIHIIIHHHIHIHIIFIIIIHIGFIEIGIIHIIHHHEIEGFHDHIDHCCIIIHHIIGIDDIGGGCHGEGIHIIIBIG?CIIIBICGII at IHIEIIIAGGI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:476	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.335	4	*	0	255	*	*	0	0	TGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGCAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATG	IIHIIHIIHIGHIGHIHHIGIHIIEIGFHFGGGGIFIDIIIGIIIIDGIGDFHFEIBIDHDIHFIAIIIGHII at DDIBIIEFIIFGCIIAIICI?;IIIA	uR:A:B	oR:Z:1	oP:i:5412	oH:i:1	oS:A:F
 simulated.336	4	*	0	255	*	*	0	0	ACACTTAGTGTTGTTTGCCCCGGCTGTTTTATGGCCGGACACGGACCCACGCGACTTTGTGCTAGTACAATACGTGCATGGTTTGATATCATAGGATGAC	HIHHIIIHIHGIIGIHIEIFHIIFHEHFHIHGIEFIIHIDFFIHIEIHIDIIGIAGIHFGIIE?EFIIIHFIGBIIIDBFHIFIIH:IICGIHIFEADDG	uR:A:B	oR:Z:1	oP:i:1611	oH:i:2	oS:A:R
@@ -360,7 +360,7 @@ simulated.356	0	1	8462	255	14M1I85M	*	0	0	AACCGCAGTCTTCCGAAATATCCCGTGGTCAATAGTAT
 simulated.357	0	1	2074	255	100M	*	0	0	TCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTCAAATGACAATGAACCTTGGGGACCTCAATTTGGTA	HIIIHHIHHIHIIGIIIIIHIIHIIHIHIIIEHIIIEIIHHGFIIIIGGGIFEIIHIHHGIFFBIFDIG;GIEHIHIH?IGIIIFAGGCIIIIII??III	NM:i:2	MD:Z:64G4T30	oR:Z:1	oH:i:1	oP:i:2175	oS:A:F	XE:i:1	XS:i:1	XI:i:0
 simulated.358	4	*	0	255	*	*	0	0	ACCGACAACGGTTTGAGACCGTTCCAGCTGGTCGGAATATCCGGAGTTCTTCCACTACTGGATTGTAGTGGTCCCGTCAAACTCACACATTATTTCATCT	IHHIIHHIHHHHHIIIHHGHIGIIGIGIHIIGIHIHHIIGGGIDFIIHFIFCIFIFEIFFIIIIID at DIIIIEIIAEEAIAAIIBIFDDIIIHFIIIDBE	uR:A:B	oR:Z:1	oP:i:9980	oH:i:2	oS:A:F
 simulated.359	16	1	3752	255	100M	*	0	0	CAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCG	CIAIGIHBIIC at F@GE?IIIFICFIIIIIFBIBIHBBBEECGII at FIHIFIIIBIIGHHHIIIGIIIIIEIIGIHIIIIHHIHGHIIHIHIIIHHHHIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4030	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.360	0	1	4831	255	18M1D82M	*	0	0	AAAAAGATCACCTCCTTCTTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGG	HIHIHIHHIIHIIIIGIGIHIIIIIIIFHIEIEGDFIIIEIIFHI=DIFFIEIIIAGFGIHD at EIFFIGE@GIHI?GAGII?;IAIIH?IEIIIIGEIIH	NM:i:1	MD:Z:18^A82	oR:Z:1	oH:i:1	oP:i:4856	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.360	0	1	4831	255	18M1D82M	*	0	0	AAAAAGATCACCTCCTTCTTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGG	HIHIHIHHIIHIIIIGIGIHIIIIIIIFHIEIEGDFIIIEIIFHI=DIFFIEIIIAGFGIHD at EIFFIGE@GIHI?GAGII?;IAIIH?IEIIIIGEIIH	NM:i:1	MD:Z:18A82	oR:Z:1	oH:i:1	oP:i:4856	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.361	0	1	7831	255	100M	*	0	0	CAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGAATCGAATGCAA	HIIIIIIIHIHIIHGHGIHGHGIIHGIIGHHIIIIIFGGIIIGIGDIFIGEGBIHIICIGIGGIIIIIIIAIIFBCHG;H=HIIII==IIIGHDIII at DE	NM:i:1	MD:Z:89T10	oR:Z:1	oH:i:1	oP:i:8024	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.362	16	2	544	255	100M	*	0	0	GTAGTGATTAGTCTATTTACCTCTACGAATTGGAGCTCCGTCGGATCGCGGTAACGATAATAGGCTATACTGAATCGGGACTTAATTCTGGCTGTTTGAA	EIIII at IEIIIIIAIIICIIEDIFIIFHIHIIFIID?IIEIIAIIIFIFIFIHHFHICIFIHIFIIFIHIHFFIHIIIIIIIHIHGHIHHHHIIIHHHHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:543	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.363	0	1	6793	255	100M	*	0	0	CGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTA	IHHHIIIIHIHHIHGHIHIGHIIGEIFHIHIIGHIHFHIFDBIGEEFIIHGCHIIDHHIHIIIIIIIIHCF>IBHIIF at IIIEIII@E><IB at ICI@?F@	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7517	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -369,7 +369,7 @@ simulated.365	0	1	8957	255	100M	*	0	0	TAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAG
 simulated.366	0	1	9361	255	100M	*	0	0	GAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAA	HHHIHIHHIHIHIIIHHGGGHGIIHHIGIIHIAIIHHIHGIDIIHIIIIIFF?GFEFHHCI?IIIFIICHGE<IFDIBIIIICIEIB?IIIGGEE=IAFD	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10204	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.367	4	*	0	255	*	*	0	0	TGGCCAGTTAGCGAAAGGCCCACGACGTAAAAAGCCTCCGGGGTGGTCGCGGGTGTCCGCTTCATACAAGAGTTAACGGTATTACCTTTGCAGTCTGATG	HHHHHIHHHIIIHIHHHIHHHIIHIIIIEGIIIEIHGIIIIIIBIIFIIIIIDHIIDIEIGAB at IIIIDEIIIHIGIDII?GII at II>DIEGIHID?HAI	uR:A:B	oR:Z:1	oP:i:7297	oH:i:2	oS:A:F
 simulated.368	4	*	0	255	*	*	0	0	GCCCAAGGGCTGCTACTGCCCAGGACAAGCAACGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTG	HIIIHIIIHIIIHIIHIIIIIIIIHHFIIIIFIHIBIIGIICICBIIHCIGCIDIII?HIIDFIEIDIIIFIDIHAIBIGII=HHGIB>ECI?IFHEIHI	uR:A:B	oR:Z:1	oP:i:8833	oH:i:1	oS:A:F
-simulated.369	16	1	98	255	23M3D34M3D43M	*	0	0	GCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGC	EFIIGDB at II9IIHEIAIHIIHFIIIID@BDCCIFIAIIGIHDHDFEFGDIIIIIIIIFIGGIGGFHIGFIIIIHIIIGIIGHIIHGIGHIHHHHHHIHI	NM:i:6	MD:Z:23^ACA34^CAG43	oR:Z:1	oH:i:1	oP:i:97	oS:A:R	XE:i:0	XS:i:0	XI:i:6
+simulated.369	16	1	98	255	23M3D34M3D43M	*	0	0	GCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGC	EFIIGDB at II9IIHEIAIHIIHFIIIID@BDCCIFIAIIGIHDHDFEFGDIIIIIIIIFIGGIGGFHIGFIIIIHIIIGIIGHIIHGIGHIHHHHHHIHI	NM:i:6	MD:Z:23ACA34CAG43	oR:Z:1	oH:i:1	oP:i:97	oS:A:R	XE:i:0	XS:i:0	XI:i:6
 simulated.370	16	1	2359	255	100M	*	0	0	AGGCTTGTCTATCTGAGTTGTCCGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAAT	?IG;H==AI<IIIEIIEIIGIG at I<DFBIIIICIIHI at FIIGHFCEHI@GAIDHIFIEHHHHEIIHHFFIIEHGGHHHHIFHIIIGHIIIIHIHHHIHIH	NM:i:1	MD:Z:22T77	oR:Z:1	oH:i:1	oP:i:2460	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.371	4	*	0	255	*	*	0	0	CCCGGCTGTTTTATGGCCGGACACGGACCCACGCGACTTTGTGCTAGTACAATACGTGCATGGTTTGATATCATAGGATGACATGTGGGCACTATCTTCC	IIHHHHHIHHIHIHHIGIHHIIIFIIIIHGHGGGIFHIDDEGFB at FIHGFHIIBIEEBIIIGBFIIIIIEGIAEDHADGIIFIFIIIIIID?IFIGIBIF	uR:A:B	oR:Z:1	oP:i:1593	oH:i:2	oS:A:R
 simulated.372	4	*	0	255	*	*	0	0	GCTGTTTGAAGTCGAATCCGTTTTTATTCGACTCTTCTTGCATTCATCACCGGCTCATACTTGAAACTACTATGCCTAGCCGAGGTGCCAGAACTAATAA	HHHHIHIHIHHHIIHIIHHFIIIIIHGIIDHIHHIHIIGIGEDIEFFIFEH at IHDHDIEIHIII;ICFEIIIBGBDIIG?IHIIHIIIF?DCIIG at IC@I	uR:A:B	oR:Z:2	oP:i:633	oH:i:1	oS:A:F
@@ -396,7 +396,7 @@ simulated.392	0	1	4366	255	100M	*	0	0	CCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGG
 simulated.393	0	1	2416	255	100M	*	0	0	TAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTT	IIIHIHHIHHIHIIGIHHGHHGFHIHIFHGHIIIEHHIIHFIHGIGIIDIIIIBHEIIIIDFIEIEIIIDDHCI;IG at IGEDIIIIIIIIAFGFII>EHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2614	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.394	16	1	1594	255	100M	*	0	0	TAGCACAAGGTCGCGTGGGTCCCTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTG	IEFIIBDG>@IIHIF=HIF<GI=IIIFFIIIII at I@GIIIIIIBEDEIIIDIGHEIIFHIGDFHFICIIFIGIHHIIGFIGGHFHIHIHIHIIIHHHHHH	NM:i:2	MD:Z:8A13G77	oR:Z:1	oH:i:1	oP:i:1696	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.395	16	1	8759	255	100M	*	0	0	TCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCT	>C?I<EEG;IHDIDEBDFIIGIGED>IDIEIIGCIIIIEIGIIIFDIIEIIIIFFIIIIHIGHIGIEHIGIHIHHGIGIIGGHIIIIGHIIHHIIHIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:8952	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.396	0	1	77	255	44M3D34M3D22M	*	0	0	TTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCA	IIHHIHHHHIIHHIHIIIIHHHEIHHIIHEIIIHIHFIIFIIEIDIEEIHIIIEIIFIABDIGDIIFIFICIGBIIIIIBIIFIFAIIIHGIIIEGBFIF	NM:i:6	MD:Z:44^ACA34^CAG22	oR:Z:1	oH:i:1	oP:i:76	oS:A:F	XE:i:0	XS:i:0	XI:i:6
+simulated.396	0	1	77	255	44M3D34M3D22M	*	0	0	TTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCTCTAAGGGTCGGTATGATCCA	IIHHIHHHHIIHHIHIIIIHHHEIHHIIHEIIIHIHFIIFIIEIDIEEIHIIIEIIFIABDIGDIIFIFICIGBIIIIIBIIFIFAIIIHGIIIEGBFIF	NM:i:6	MD:Z:44ACA34CAG22	oR:Z:1	oH:i:1	oP:i:76	oS:A:F	XE:i:0	XS:i:0	XI:i:6
 simulated.397	0	1	5850	255	100M	*	0	0	CCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGA	IHIIHHHHHHHHHIGIIIGHHHIGIIHIIIIIIFIIIIIIEIGGHIFIIIIIIBEIIIIFIIDEGHBEDEGHGIIHDIFDIIFIIAI=@IDBCII?IGCI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:6436	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.398	4	*	0	255	*	*	0	0	CAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAACGCTCTTAGGAAGAAGTCC	HHHHHHIIHIIIIHIIIIIFGHIIGHIEDEHIIIEHIIHIHFHIFIFIIGFHGGIIHDDFHIHIIIIIF at ICEFBIHI>IGHIIB at I?;IIIF<IGAI=F	uR:A:B	oR:Z:1	oP:i:8784	oH:i:1	oS:A:F
 simulated.399	0	1	765	255	100M	*	0	0	TGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGC	HHHHIHHIHIHIGGHHHIHFHIIGGHIGIFIDIIFFHIGHIHIIEFIIGCEIFIGIIIBIBIIHIIEBI at CI<EEIFIEIIEIBIIIIAHIIIIEBIEHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:764	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -415,7 +415,7 @@ simulated.411	16	1	2618	255	100M	*	0	0	GTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGAC
 simulated.412	16	2	428	255	100M	*	0	0	GGACGCGATACTGCACGGCATGTTCCTCACCTGGTGAGCATTGGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATGGCACTGGCTATTCCC	CICIDIIIBAEI>IGIA=FFIIIEIFEEIIEGHCIIDFIHBIIIIIHIGIGICIGIIIGHIEFIIGIIFIIGHFHIIIIGIIIHGHHHGGHIHIHIIIHH	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:427	oS:A:R	XE:i:0	XS:i:2	XI:i:0
 simulated.413	4	*	0	255	*	*	0	0	CGTCGCAATACTGGTAGTCAGCAGACTAGAGAATGAACACTCTGGAGTGCGCCTTACGGCTGATCTAGTGACCGATTCGAACCGGTCTTGCATCCGCAGG	IIHIIHHIIHIHIGGHGGHIHIIIGIIHDIIFIIFIFGDHFFHIIIIHIHGGHIIIIIHIHIEIII>FIIIB@;GFIAGBHIIIAIGIIDIBGIIIIFAI	uR:A:B	oR:Z:1	oP:i:6041	oH:i:2	oS:A:R
 simulated.414	4	*	0	255	*	*	0	0	CCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCTCAGCCGCCATGCCGCTGTTTTTCGGT	HIHHHHIHIHHIHHIIGHHHIIGEGIFGIIIIGIIHHIHGCIHHIIIHGFGGIGHEICIIEFIFAAHHCGEFDBI at IIICIIIGIBIIIIBEIB8DFHH;	uR:A:B	oR:Z:1	oP:i:6732	oH:i:2	oS:A:F
-simulated.415	16	1	1929	255	85M1D15M	*	0	0	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	AH<IDIIIIFIIIIIAIFEIDACHHIHHIIIIFIDIIIHBIGGIIIIIIIIGHFHHIIIGIIIIDIFGHIIIIIIHIIIHHIIIGHIHIIHHGIHIIHII	NM:i:1	MD:Z:85^A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.415	16	1	1929	255	85M1D15M	*	0	0	CACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAA	AH<IDIIIIFIIIIIAIFEIDACHHIHHIIIIFIDIIIHBIGGIIIIIIIIGHFHHIIIGIIIIDIFGHIIIIIIHIIIHHIIIGHIHIIHHGIHIIHII	NM:i:1	MD:Z:85A15	oR:Z:1	oH:i:1	oP:i:2031	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.416	4	*	0	255	*	*	0	0	GTTCGTCTTGCCATGATACGACGCTTCCATATTGCAGACATTGGATGGCCGCAAGTCATCCCCGCCACTAAACGGATACATAGAGCAAGTAAACTGATAA	IIHIIIHIIIHIHHIHGEHHIGIGGIHIHIIFFIHHIIIIDIDFIHIIHGGGIICIIIDDGCCIIECGIIIIIIIIAIHICIIFIIHGBFFDEDIIIII@	uR:A:B	oR:Z:1	oP:i:5196	oH:i:2	oS:A:R
 simulated.417	0	1	5790	255	100M	*	0	0	TGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTANAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACGTGAAAT	HIHHIIIIIHHIHIIHIHGHHHGIIIGIGIEHHGHHIGCIIIIIGFIHCIIIFIIG at IIIFDIIIAHDCHIEIGIHFBIII@ICAACCBHIII29BIIGI	NM:i:2	MD:Z:55T37T6	oR:Z:1	oH:i:2	oP:i:6376	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.418	16	1	4314	255	100M	*	0	0	TCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCG	GI>IIEIIIFIHF at IIHIIIBIIIHBEDDIIEHIBAIIIEIEAIIIIIIEIGIGGEIEGIDIHIGIHIIIHFIGHIFGFIFHIIGHIHHHIIHIIIIHIH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:4652	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -465,7 +465,7 @@ simulated.461	16	1	8461	255	100M	*	0	0	TAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCA
 simulated.462	4	*	0	255	*	*	0	0	ATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGG	IHIIHHIHIHGHHIIIHHHIGHHIIEFHGIHHGIGHIIEGIIIEICFAIIFHHGIIIEIIIAIIIIIIEIEBB<BCF?HBIGGIIIDI at III@CIII7GI	uR:A:B	oR:Z:1	oP:i:589	oH:i:1	oS:A:F
 simulated.463	0	1	1860	255	100M	*	0	0	ATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTG	HIIIHIHIIHHIIGHHIGIHFFIIHIFHIFIIIIFEIFGDIIIIIHHGGIIHIFCIGGIIBFCHI at DIECECIIDCIIGIIEIIHGIIDIBII=DCI<@I	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:1962	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.464	16	1	4534	255	100M	*	0	0	CTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGG	AIE at DICI<IIIBIIHGGDAGIBFDIEHFIIGIIIIIIEDIIIEHBFIIFIFHHIIFIIIEEIFGFHIIIEGHGIIGHGIHHHHIFGIHHIHHIHHIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4559	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.465	0	1	464	255	100M	*	0	0	AGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCAGAAGCGTTTGCATCATTCGGTCGGTCCTT	HHIIHHIHIHIHHFIHHHIIFGIHHHFHGDIFIIFHEGDEEI at IGIIFEIGIHIHDIIIIHBGIIF?GIHAACHGIHIIIHDBIIIDFE<ID at IH<IIII	NM:i:3	MD:Z:0T69G18T10	oR:Z:1	oH:i:2	oP:i:463	oS:A:F	XE:i:2	XS:i:1	XI:i:0
+simulated.465	0	1	464	255	100M	*	0	0	AGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCAGAAGCGTTTGCATCATTCGGTCGGTCCTT	HHIIHHIHIHIHHFIHHHIIFGIHHHFHGDIFIIFHEGDEEI at IGIIFEIGIHIHDIIIIHBGIIF?GIHAACHGIHIIIHDBIIIDFE<ID at IH<IIII	NM:i:3	MD:Z:T69G18T10	oR:Z:1	oH:i:2	oP:i:463	oS:A:F	XE:i:2	XS:i:1	XI:i:0
 simulated.466	4	*	0	255	*	*	0	0	GACACCTACCCTGAAGGGCTATCCGGGGTGCATCATGCGTAAGTTTTCTGAACAGAGAAGGTCTGAGAAGGGCCAGGCGGACACCTGCCTTGAAGTGACG	IIHHHHIIGHHIGIHHIGIHIIIHGHGHIIEFIIIIGDIIIIHEEIIIEEGEEIIIIIHGIGI at IH?IGBHHIHIHCIIEBHI at IIIIEHFFIEIIIIEG	uR:A:B	oR:Z:1	oP:i:824	oH:i:1	oS:A:R
 simulated.467	16	1	9342	255	100M	*	0	0	TGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCGCGCTGCTCAAAGAT	D>IDF@?IGIIEIFIIFGGIGIEFII?IIIDEIGHCFIIHHDGIFBFHIIIFHIIIIIIIEIIHFFHHIIHIGHDIIFHHIHHGGIHGHIIHHIIHIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10185	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.468	4	*	0	255	*	*	0	0	GGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTAGGAACTAGGGTTTGCAGACGGACAGCCTTG	IHHIHIIIHHIIIHIHHIIFIHGIIEIGIIHGHEFFEGIEGIFHIEIIIDGIIBIBIIHDIIIHICEIE?IIFICHIH>;DCIBCCEIII at IGIIIIAFB	uR:A:B	oR:Z:1	oP:i:5228	oH:i:1	oS:A:F
@@ -527,7 +527,7 @@ simulated.523	16	1	1308	255	100M	*	0	0	TTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAG
 simulated.524	4	*	0	255	*	*	0	0	CGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGTCTGTTCAGAAAACTTACGCATGATGCACCCCGGAT	IHIIIIHHIGGHFIIIHHIIGIIGIFIHIFFIIIFIGEEIIEIGIIHIIIGIGEIBIIIIGDFIIEFEGECBGFIIFIFBCEFIBIIHHIIHIEIIICIC	uR:A:B	oR:Z:1	oP:i:932	oH:i:1	oS:A:F
 simulated.525	0	1	1208	255	39M1I60M	*	0	0	TGCCCCGATGCCTCGCCTGACAGCGCTGCCATTCCGTGGATCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAA	IHHHHIHHGHIIHHIHIHIFIIIIIEIIHGIHGIIFHIIDHIDHHIFHEDIEHIIIEIDIFIIIEC=IIEFHIIIAIIIIAEIIIGIIIFBIF at FE>HIB	NM:i:2	MD:Z:25G73	oR:Z:1	oH:i:1	oP:i:1309	oS:A:F	XE:i:1	XS:i:0	XI:i:1
 simulated.526	0	1	4348	255	100M	*	0	0	TAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATT	HHHHHIIIIIHIIIIIFHIFHHIIIIHIGEHIIEDIFHHICEIIIIFIIIIIIHFHIIGIHFHADIDIIICF at GIBI7DBC=BIIIIIF?>III?E:FCI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:4373	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.527	16	1	1916	255	100M	*	0	0	CTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAA	IGIII at DBIH>GCIBDIIGIEGFBIDIHCEIIEIIAHGFIAIEGIHIIFDGIEDIHIIEIIGDIIIHEFFIIIIIFIIIIFIIIHIHHIIIHHHHHIHII	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:2018	oS:A:R	XE:i:1	XS:i:0	XI:i:1
+simulated.527	16	1	1916	255	100M	*	0	0	CTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAA	IGIII at DBIH>GCIBDIIGIEGFBIDIHCEIIEIIAHGFIAIEGIHIIFDGIEDIHIIEIIGDIIIHEFFIIIIIFIIIIFIIIHIHHIIIHHHHHIHII	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:2018	oS:A:R	XE:i:1	XS:i:0	XI:i:1
 simulated.528	16	1	6672	255	100M	*	0	0	ATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTG	IHIE<IIIDG?IIIIIIIHI>H at CGEIG@@IDIFIIBDICIFGHIIHIIFGEFEIIIDGIEIHIGHHIGGIGGGIGHIIHIHGGIHIGHHIHHHHIIHHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:6865	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.529	0	1	6306	255	100M	*	0	0	AGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGGAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTAGGTCTTGAGCGCTCCGT	IHIIIIIHHHIIHIHGHHHFIHHIIIIIHGIIGEIDGHHIDFDIHIIHIEIIDFCIHEDDIFHIIIH;>BBIIFAAIIIGIIGII?IIBIHCFGDGIACD	NM:i:2	MD:Z:40C41T17	oR:Z:1	oH:i:2	oP:i:6952	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.530	16	1	5266	255	100M	*	0	0	CCTTCTCGGAACCAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCC	IIG)IBIDIGDI=IDCCIIEAIIAIHIIIIEF at IDGIGFIIAFDGDCIIIFGIFGHIGHIIDIDHIGHIGIIGGGIIIGIIIIHHIIIHGIIIIHHIIHH	NM:i:2	MD:Z:3G8T87	oR:Z:1	oH:i:2	oP:i:5697	oS:A:R	XE:i:2	XS:i:1	XI:i:0
@@ -561,7 +561,7 @@ simulated.557	0	1	9291	255	100M	*	0	0	GTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGCTCGT
 simulated.558	4	*	0	255	*	*	0	0	TATTCAGAGTTATACACTACTGTTCTTCTGAAATTTATCCCGCGCCATACTGAGATTCGCAGCTAAAGGCAGGGGGCTATCCCGTAATCGATCCACTAGG	IHIIHHHHHIIIGIHIIGIGHIFHFHHIFCGIFGICHIEIHICHIEFC?IDIIGIIIEICEICE at IFFEI@ICGIHIAHHFGIGFIDFIFAHIEHIIEFI	uR:A:B	oR:Z:1	oP:i:8507	oH:i:2	oS:A:R
 simulated.559	4	*	0	255	*	*	0	0	TTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATAACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCC	HIIHIHHHIIHIHHHIHIIIIIHIEIIIGGHIEIGIFICFIIIIFFIIHIGGHFH at DIGIDFHIIIIEIIDIIBHHBIFHHGE?FG<IGI at II@IIG=II	uR:A:B	oR:Z:1	oP:i:6025	oH:i:1	oS:A:F
 simulated.560	4	*	0	255	*	*	0	0	AACACTTCTGAAGGTCCTCCAGCACTTCAGACCTTGACCTGCGCGTGATTGTCCATGAAACACTCGGGCACCACATTGATCGACACTACCGGGTGGAGCC	IIIIIIIIIIGGIIIIGGHHHHIHIFIIIIDEIIIIHIIIIFCDIIIIEECGIIGIHHGIIIIGIIII at I>IICDGDGCIIECIHIGDIHIIHBI at IIII	uR:A:B	oR:Z:1	oP:i:8292	oH:i:2	oS:A:R
-simulated.561	16	1	3740	255	54M1D46M	*	0	0	GTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAAC	AICI;DIA at GBIIIIDGIBIBEECEIIIHICDIIEDIIIHFIIDIIHIIHFEHBDIIHGIIHFIFIGEEGGHGGHIHIIGIIHHIIFIHIHIHIIHHHIH	NM:i:1	MD:Z:54^T46	oR:Z:1	oH:i:1	oP:i:3841	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.561	16	1	3740	255	54M1D46M	*	0	0	GTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAAC	AICI;DIA at GBIIIIDGIBIBEECEIIIHICDIIEDIIIHFIIDIIHIIHFEHBDIIHGIIHFIFIGEEGGHGGHIHIIGIIHHIIFIHIHIHIIHHHIH	NM:i:1	MD:Z:54T46	oR:Z:1	oH:i:1	oP:i:3841	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.562	0	1	6303	255	100M	*	0	0	GTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTC	HIHHHHHHIHIHIHIIHIHHIIHHFIHHIIGIGDHIIIIIIIIDFIFIIFIGIIGAGDICICCBIH at IIHIAIFDCII=FFBFIDFCIIICHIDH at EICI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:6949	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.563	4	*	0	255	*	*	0	0	CCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTGGTCCAATTGGCGGGTTACTGGCGCGAACATCCGAAGGCTCGTTAGCTG	HIHIHIHIGHHHGIGIIHIHGIIGIFIIHGIIGIIGIIIIDIHIIEIFHIHBIIGHFFIDIBIFIDICDEIIIIDEIEFDBIII3AIICEIIIIFIGIE>	uR:A:B	oR:Z:1	oP:i:4209	oH:i:1	oS:A:F
 simulated.564	0	1	8086	255	100M	*	0	0	TAGAGTCACTAACCGTGCTCGGAATTCCGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCA	HIHHHIHIHIHHHIHIGGIIIHIHHHIFCIHIGHIFICCEIIHBIEIFIGIGDFIIIIIIIEIECI:IIGBIGGHHIIIEGCGEE=IIBFIIFC:HIIGF	NM:i:1	MD:Z:27T72	oR:Z:1	oH:i:1	oP:i:8279	oS:A:F	XE:i:1	XS:i:0	XI:i:0
@@ -584,7 +584,7 @@ simulated.580	0	1	2875	255	100M	*	0	0	TATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGC
 simulated.581	16	1	833	255	100M	*	0	0	ACACATGATCTACCAGGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACGTTCTCTGTTCACAAAACTTACGCATGATGCACCCCGGATAG	@ICFIIIFG<GIGEI8IIIFIIHFGHIA at IHIBCIIICFFIDIGEDFFIHIEIIIIIICAEGFIEGIFGGHIIIHHHGGHIIHIIHHHIGIHHHHHIHHH	NM:i:3	MD:Z:15T42C11T29	oR:Z:1	oH:i:2	oP:i:832	oS:A:R	XE:i:2	XS:i:1	XI:i:0
 simulated.582	4	*	0	255	*	*	0	0	TGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGTCTGTTCAGAAAACTTACGCATGA	HIHHHHIIHHHHHIIGIIHHIGGIIHIHIIIFIGIIIIGGIGHGIIGDGIGGDFCIIIFHIIIBIG at GIFIHBIIHHBGIHIIDIIIII>IIIII<IDD@	uR:A:B	oR:Z:1	oP:i:920	oH:i:1	oS:A:F
 simulated.583	0	1	6923	255	100M	*	0	0	CCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTG	IIIIHHIIHHHHIGIIHHHIIHHHHHHIGGIIHIGGEHIBDHIIDHHHFIEIIHIIFIEHGCCII?DFEIIBHAII at FIIFGCIBIEIBHIDHGFIIFIG	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7647	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.584	16	1	7751	255	100M	*	0	0	AGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAAT	>EBDFEIIFGIIIDICIIIIEECHIHFFFIFDA at IIGIHCIIIFGIIIIIIDIIIIGIIFGGIIHGIEGIIIGHIIFGHGIGIHIIHHHHHIHHHIIHHI	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:7944	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.584	16	1	7751	255	100M	*	0	0	AGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAAT	>EBDFEIIFGIIIDICIIIIEECHIHFFFIFDA at IIGIHCIIIFGIIIIIIDIIIIGIIFGGIIHGIEGIIIGHIIFGHGIGIHIIHHHHHIHHHIIHHI	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:7944	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.585	4	*	0	255	*	*	0	0	CGTACCTAGCCTCGACGCGGATGTTGATTTGACAACTGAAAGGGGCTGTTGGCCAGTTGCGGGAACAATCTTTGAGCAGCGCGAGCTGTTACAGCATATC	IHIIHIIIHHIIGIIIHGIIIIGIIIHIIIGIGEIDIIHGFHIGIEIHHIHIIGIFIHIIF?FIGEHIGIIDIBBIIDIIIIBADBIIIGIII at G@>HII	uR:A:B	oR:Z:1	oP:i:9599	oH:i:1	oS:A:R
 simulated.586	0	1	7401	255	100M	*	0	0	GTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGA	IHIIHGIIIHHIHIHGHHGGHIIHIFHIIHIGHHHGHGIIHFIIIIIHIGIDDGGHAIEG?HGAGHIHIHHEI?II>DEIE<IIFEIAB>CHIIDGHIH=	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:8125	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.587	16	2	190	255	100M	*	0	0	TGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATT	IGIHI;FHI?EHAIIFIIIGIHI at DIDIIC@IIAIIICHIIIHIFIDIIDEIIIHIGIGHIIIGIIFIIIIDHHDFIIGGGIIIHIHHIHHHIHIHHHHH	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:189	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -634,8 +634,8 @@ simulated.630	4	*	0	255	*	*	0	0	AACACTCGGGCACCACATTGATCGACACTACCGGGTGGAGCCTCCCTT
 simulated.631	4	*	0	255	*	*	0	0	TCAGTATGGCGCGGGATAAATTTCAGAAGAACAGTAGTGTCTAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGG	HHIHIHHIHHIIHHIHIGGIEHHIHEFHHFHFEGGGFFIDDHFGEDA at DEIIFDFAIHDIGHII?IEEDDCHGIFIIEEIIEII<CIGG;HIIIFIGIIC	uR:A:B	oR:Z:1	oP:i:8554	oH:i:2	oS:A:F
 simulated.632	4	*	0	255	*	*	0	0	TACCTTAGTGTTGTTTGCCCCGGCTGTTTTATGGCCGGACACGGACCCACGCGACTTTGTGCACAAGCCGGGCCAACGCACTATGGTCAGCTTATGTACC	HHIIHIIHHHHIIIIHIIHIHGIIHGHIIIIHIIIIDIBHG at IIIGHIIIIIIIICGIGGHIEIEACIFB<IIAHDB at FIGIG@CEI?IHIID:EE<E?H	uR:A:B	oR:Z:1	oP:i:1720	oH:i:2	oS:A:R
 simulated.633	4	*	0	255	*	*	0	0	AGGTGCCAGAACTAATAATCGGACGGTGGTTTTGTCAGTGTCTATGGCCCCATGCATGCAGATGATCCCTTATGTGCCAAAAACGGGTACCCTCTTCTTG	IHHIHHHIIHHHIIIIFIIHIIGFIIIHIIIIHHIFHIIIIGEFHIIHIFFIIIHIIIBICIGBHFHIDICI?IIFFIHEDIIHIFCIIIEGFGIA?HII	uR:A:B	oR:Z:2	oP:i:715	oH:i:1	oS:A:F
-simulated.634	16	1	43	255	78M3D22M	*	0	0	TTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGT	IDFIIIIIGGIEIIAEIBCIFIIFHCIIIIEIII?IGIIIIBIIFICIGGIIHIFAHIIDIIHIHFHIHFHIHIGDHHHIIHIIIIIIIIHHIIHHIHIH	NM:i:3	MD:Z:78^ACA22	oR:Z:1	oH:i:1	oP:i:42	oS:A:R	XE:i:0	XS:i:0	XI:i:3
-simulated.635	16	1	1942	255	72M1D28M	*	0	0	CATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAAGATCTCAAGCACTATGATCAG	GGIIH>ABHGIIIAIDIIFHIF<DFIGFIIIIFICHICFDHIFFIIIDDGIFHEHGIGIIIEFGIFIIHIIIEHGIIHEIIIIIIHGGIIHIHIHHIHIH	NM:i:2	MD:Z:72^A6G21	oR:Z:1	oH:i:1	oP:i:2044	oS:A:R	XE:i:1	XS:i:0	XI:i:1
+simulated.634	16	1	43	255	78M3D22M	*	0	0	TTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGGGCATATCGTAAGTGATTTCGT	IDFIIIIIGGIEIIAEIBCIFIIFHCIIIIEIII?IGIIIIBIIFICIGGIIHIFAHIIDIIHIHFHIHFHIHIGDHHHIIHIIIIIIIIHHIIHHIHIH	NM:i:3	MD:Z:78ACA22	oR:Z:1	oH:i:1	oP:i:42	oS:A:R	XE:i:0	XS:i:0	XI:i:3
+simulated.635	16	1	1942	255	72M1D28M	*	0	0	CATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAAGATCTCAAGCACTATGATCAG	GGIIH>ABHGIIIAIDIIFHIF<DFIGFIIIIFICHICFDHIFFIIIDDGIFHEHGIGIIIEFGIFIIHIIIEHGIIHEIIIIIIHGGIIHIHIHHIHIH	NM:i:2	MD:Z:72A6G21	oR:Z:1	oH:i:1	oP:i:2044	oS:A:R	XE:i:1	XS:i:0	XI:i:1
 simulated.636	4	*	0	255	*	*	0	0	ATTGCAGACATTGGATGGCCGCAAGTCATCCCCGCCACTAAACGGATACATAGAGCAAGTAAACTGATAATAGGTGAATGAAGTAGGTGATCTTTTTGTC	IHIHIIIIIHHIIIGIIHHIIHGGHIIEIIEEFHHIHIHIDHEDIHIFEFIGDIIIIEIIIIIFHIIHIICIHIGGEIDBIAIIEIHFIIIIIFIEIE<G	uR:A:B	oR:Z:1	oP:i:5166	oH:i:2	oS:A:R
 simulated.637	0	2	77	255	100M	*	0	0	ACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTG	HHIIIIHGIIIIGHHHIHHHHIGIGHGIFIHIHGIFFHIGGHIIIFIHIIEGHIIDGFIIEIIAEIIIIHIEIIIE?IFBIIHIGGIIIDICIIHIIBHI	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:76	oS:A:F	XE:i:0	XS:i:0	XI:i:6
 simulated.638	0	2	121	255	100M	*	0	0	GTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTC	HHIIHIGHHHIIIHHHIIHIIHIHIHGIIGHIIIGIIFCHFIHGIIIHIIIIEG?I?IIIIIGIIDIGIHIBIIFIIEIIEIIICIIFIIIIHEIHI?:F	NM:i:0	MD:Z:100	oR:Z:2	oH:i:2	oP:i:120	oS:A:F	XE:i:0	XS:i:0	XI:i:6
@@ -767,7 +767,7 @@ simulated.763	4	*	0	255	*	*	0	0	AGCCACAGCGCGGTAACGTTGATGTACGATGGCTTATGTCTTACATGC
 simulated.764	16	1	4489	255	100M	*	0	0	CCCGTGTCCCGGTGGGGTAGCTTCAACCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGC	@III3:AIIGIIIFDFHIEIIH>III2GFCIAIIIFDDIIFIIFIIIIIIIBGFIIHDFIIAIIGGEICIIFIIIFHHHGIHHGFHIHHIHHHIIIHIIH	NM:i:2	MD:Z:5T20T73	oR:Z:1	oH:i:1	oP:i:4514	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.765	0	1	2	255	100M	*	0	0	GGTGTGTCGGCCCTATCCCTTGCGCTTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAAAGAGAGCTTGCCGCTGAATGGGAATATCGCCG	IIIHIIIHHHHHIHHIHIIIIHIIIFFGIFIIGHIGIIEIFFIIGHIGFHIEIGHIIBCIHIIICEGAIDIGIEIIEIIIHIICIIE at IIBI*GD;<@B8	NM:i:2	MD:Z:68C23C7	oR:Z:1	oH:i:2	oP:i:1	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.766	4	*	0	255	*	*	0	0	TTACTCCATGCGATGGGACCCAGTCAGCTTGCTCGGACAGTAATGCACCGCAAGTCATCCCCGCCACTAAACGGATACATAGAGCAAGTAAACTGATAAT	HHHHIHIHHGGHIHFHHGHHGGGIIIHHIGGIGIGGIIIIHFIIHGIICGDD at GEIIBIIIIIIGGEGIIIFIHICIGDI9C=E>DBIEIIIIIIHIFHH	uR:A:B	oR:Z:1	oP:i:5358	oH:i:2	oS:A:R
-simulated.767	16	1	9085	255	23M3D77M	*	0	0	TTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGC	HEIIIIIIA<HGAAF>HII at II?I>=?III=GBEAHIEGHEIIIHGI at IIFIFIIIIHHIGIIIFGIIIIIIGIGIIHIIIIIIHHIIHHHIHIIIHHHI	NM:i:3	MD:Z:23^GAT77	oR:Z:1	oH:i:1	oP:i:9278	oS:A:R	XE:i:0	XS:i:0	XI:i:3
+simulated.767	16	1	9085	255	23M3D77M	*	0	0	TTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGC	HEIIIIIIA<HGAAF>HII at II?I>=?III=GBEAHIEGHEIIIHGI at IIFIFIIIIHHIGIIIFGIIIIIIGIGIIHIIIIIIHHIIHHHIHIIIHHHI	NM:i:3	MD:Z:23GAT77	oR:Z:1	oH:i:1	oP:i:9278	oS:A:R	XE:i:0	XS:i:0	XI:i:3
 simulated.768	4	*	0	255	*	*	0	0	CTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGAACCAGAATGCCTTCACTCAAGCAGGTCGAT	HIHHHHIHIIIIHFHHGGGGIHIGIHIIIIFFIGGFIIIIDIIIIEIGIIHEEIIGIIIHIIIIHDCBAIDIIFGIIIC?EBIEIIGI at IIF>IIIIIGI	uR:A:B	oR:Z:1	oP:i:8362	oH:i:2	oS:A:F
 simulated.769	4	*	0	255	*	*	0	0	GCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCTCGCTAAGACGATGNTAATACGTG	HIHIIIHHHIIHHGHHGIHHFHIEHFIHIHIIIIIIHFHIHIIIGFHIIICHGIDGIHEFDIEIIIIIFI at G>BBIFHIEII at DIIFFIF.I?CDIGGEG	uR:A:B	oR:Z:1	oP:i:8909	oH:i:1	oS:A:F
 simulated.770	4	*	0	255	*	*	0	0	CGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTCG	HHIIIIIIHIIIHHIIHHEIFGGIIGHIIIEHFIHHIFGGFCIIGGIIIIIIIIFHGHDF>IIIIDIICHAIIHIFCBEFFBIIEFGCI at IGIHI@G>HI	uR:A:B	oR:Z:1	oP:i:5390	oH:i:1	oS:A:F
@@ -875,7 +875,7 @@ simulated.871	16	1	1806	255	100M	*	0	0	CAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCA
 simulated.872	0	1	7501	255	100M	*	0	0	TGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATGCTAT	IIIHIIIIHHHHGGHIIGHHIGIHHIGIIIIHFIIIIHEEIIGIGEIFCIIIIIDDCIBIIIHIIIIGIHICIIDAHIIEIEIIF<HEIIIHIIG1GCIF	NM:i:1	MD:Z:95T4	oR:Z:1	oH:i:1	oP:i:7694	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.873	16	1	8612	255	100M	*	0	0	TAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAG	DBICHCIAFGD?=HIIIIIICIIDDIFEI>AIFIIIBIIIIIHIIGEIIGIGIEIIGIHHFIGIHHIHHHIIIIDHIHEIIGGHHHHHIIHIIIIIIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:9300	oS:A:R	XE:i:0	XS:i:0	XI:i:3
 simulated.874	4	*	0	255	*	*	0	0	CAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAA	HIHHIHHIHIIHHIHHHHIGHHHIIIGIIIHHEIFFIHIGFEEIEHIGIICIFEIIIIIIIGGII?GGIIFIIIGDIAIF at IIIIIIIIIGE@ACBEHG=	uR:A:B	oR:Z:1	oP:i:1694	oH:i:2	oS:A:F
-simulated.875	16	1	1591	255	100M	*	0	0	CACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCG	0=IIIIIIIFII:IHFI?IIIIFEGF?IBIIIIIFGIIIFIECEFBHIGGHGBDIIHIIGIIGIIGGIEIIGHHIIIFIEHIIIIHHIFHHIIHHHHHIH	NM:i:1	MD:Z:0T99	oR:Z:1	oH:i:1	oP:i:1693	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.875	16	1	1591	255	100M	*	0	0	CACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCG	0=IIIIIIIFII:IHFI?IIIIFEGF?IBIIIIIFGIIIFIECEFBHIGGHGBDIIHIIGIIGIIGGIEIIGHHIIIFIEHIIIIHHIFHHIIHHHHHIH	NM:i:1	MD:Z:T99	oR:Z:1	oH:i:1	oP:i:1693	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.876	0	1	4436	255	100M	*	0	0	CCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCTT	IHIHIIHHHIGHHIHGIIIGIHIIIIGDGIIIHGGFFDIHIIIHIIIIHDIIIEIIHIGFGIDI>AIIGIIFACIEIIIHIEFDDHICIHIIIIIIIIEI	NM:i:1	MD:Z:98C1	oR:Z:1	oH:i:2	oP:i:4774	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.877	0	1	8895	255	100M	*	0	0	TATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCC	IIIIHHIIIIIIIGHIHHIIHHIIIIFGIGIIIIIHBIIIIIFIEIEIHIIIIFIHIIIGDIICGIHI at IBIIIHIFDII=IIIFFIIDIIIIIEDGIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9088	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.878	0	1	3410	255	100M	*	0	0	AGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAA	HHIHIIHGGGHHIIHIIIIHHIHFIGFIFFGIHHIEGFHGIIFIFEIIIIAECGIIIIHIGEHIHIH=DIFICIHIGEIICIIHEG>BDI>CIHIHIGFH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:3511	oS:A:F	XE:i:0	XS:i:0	XI:i:0
@@ -886,7 +886,7 @@ simulated.882	4	*	0	255	*	*	0	0	AAATGATCGGGTGTATAGGGATACACGTTATAGGGATCGTGTCGCACT
 simulated.883	4	*	0	255	*	*	0	0	CAAACCGATGTACGCAGCTAATGCCCAGCCTAAACACGCTTTAGCTAGTCTGTATACGTCGGCTTCATGCACTAGCATGGTTTTATAGACATCCAGGCAC	IHHIIHHIIHHIIIIGHIHHFHIIHHIIIGIIIHFIFIGGHIDIIHIDIIGGFIGCIEGIIEFDFIIAIAIEIGFI9IGIIEII>IHIIEEIIIE?IHIH	uR:A:B	oR:Z:1	oP:i:1125	oH:i:2	oS:A:R
 simulated.884	0	1	5161	255	100M	*	0	0	CTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGC	HHIHIIIGHIIGIHGHHGIIGHIIHEIDIHFHIGIIEHIGIFIIHIIIHIIIIFGGIICIGEDDIIIAGEGIDIIIIDHI>HIIII at HI<IGCIF at GIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5186	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.885	4	*	0	255	*	*	0	0	GTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTTTTGAAACTAGAGTGCG	IIIHHHHHHHIHIHGIIHIHIIGIIGFEGHIFHHIGIIIFEHEHEIIIIIFIAHIIDFFII at IIIIHIBIIDIDAGIFFIIEDDHIAIIIIIIICIED:I	uR:A:B	oR:Z:1	oP:i:2909	oH:i:1	oS:A:F
-simulated.886	16	1	3716	255	78M1D22M	*	0	0	ATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGA	>AIIIIHHIFIHGIIIEGIIIHHEIFC<IICDGCIIIGEEGDGHFBIIIIGGFHFEFIIGIFDIIIGIIIIIFIGIHGIIIGGIIIIIHHIHHIIIHHHI	NM:i:1	MD:Z:78^T22	oR:Z:1	oH:i:1	oP:i:3817	oS:A:R	XE:i:0	XS:i:0	XI:i:1
+simulated.886	16	1	3716	255	78M1D22M	*	0	0	ATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGA	>AIIIIHHIFIHGIIIEGIIIHHEIFC<IICDGCIIIGEEGDGHFBIIIIGGFHFEFIIGIFDIIIGIIIIIFIGIHGIIIGGIIIIIHHIHHIIIHHHI	NM:i:1	MD:Z:78T22	oR:Z:1	oH:i:1	oP:i:3817	oS:A:R	XE:i:0	XS:i:0	XI:i:1
 simulated.887	4	*	0	255	*	*	0	0	CGTTGCTTGTCCTGGGCAGTAGCAGCCCTTGGGCCCAATCCTTTAAGGGCTGGCCCCGACAACCAACTATTGCGGCAAGTTTGACCGAAAGCCCTGATGG	IHIIIIHHHHHGIHGGIFHIIHIIIIIHGHIIEIHDFIIDGIIG?GIIDIAIEFIGFFGGFHIIIICEIIHEDCICIAIIIIIH>IIIIIIBIBIII>IF	uR:A:B	oR:Z:1	oP:i:8767	oH:i:1	oS:A:R
 simulated.888	0	2	431	255	100M	*	0	0	CGCGATACTGCACGGCATGTTCCTCAGCTGGTGAGCATTGGCGCATTCCATACAGCTTCTAACTCAGATAAGCACTAAGATTGCACTGGCTATTCCCCCT	HHHHIHHHHHHHIGHIHIIGIHIIIH at FGIHIIEEIGHGIEIIHHHFIIHDFIDGIIIIHIIHIIHIIIFIGIHFIGH=EG8IDIHIIBIIICAIGIIBG	NM:i:2	MD:Z:26C54G18	oR:Z:2	oH:i:2	oP:i:430	oS:A:F	XE:i:2	XS:i:2	XI:i:0
 simulated.889	16	1	2624	255	100M	*	0	0	GCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGAT	IICCHDFAIIE>CIIIII=>FAACII>IHIBIHEGEIIGIIBIIIIEEIIBFBEDIIIGEIIFEFGGIFIFGHEIIIHFGIGIIHIIIIGHIIHIIIIII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2898	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -913,7 +913,7 @@ simulated.909	0	1	9693	255	100M	*	0	0	CTGGGATAACCCATGATTCTTCGTACGGGTGTGTAAAGAAGT
 simulated.910	16	1	6820	255	100M	*	0	0	ATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTGTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGC	C8IIIIBCIHIIFH at HEAFCGIDFIIIIEEDEGDDIHEEIIIIEFHIIFIF>IIGIFFIGHIIIIIGIIIHGGGHIHIGHHIIIFIHIHIHHIHIIHHHH	NM:i:1	MD:Z:51C48	oR:Z:1	oH:i:1	oP:i:7013	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.911	0	1	6498	255	100M	*	0	0	GAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTC	IHIHIIHHHHHIIHIIHIIGGIIIIIIIIIFIIFHIIFGIIIGHHIFIFDHIIIDIIIIIIIIIGIIIIDHCIIIIECG>FHHCH at CHI:@DIGEIFFHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:7144	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.912	4	*	0	255	*	*	0	0	AGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGTCCCGGCT	IIIIHHHIHHHGHHIHIIHHIIGIHGIFIHGHIIIFHFFHIHIFFIICFHGIAHHCIGFEB??@IIFHCEFIIIH?IFIFHFIIFHIEIII=BBI<IIII	uR:A:B	oR:Z:1	oP:i:1655	oH:i:2	oS:A:F
-simulated.913	0	1	1957	255	57M1D43M	*	0	0	CTGGTATAGGAGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAAT	HIHIHIHGHIGIIIIIHIHIHGHHIFGIFGGHDGHGHIGHIIFHIGDEEIDIHIIIEIIEGHAAGCHGIIHIIIFIIEHIIEIIFI=DC>IIEDBIBCGB	NM:i:2	MD:Z:10G46^A43	oR:Z:1	oH:i:1	oP:i:2059	oS:A:F	XE:i:1	XS:i:0	XI:i:1
+simulated.913	0	1	1957	255	57M1D43M	*	0	0	CTGGTATAGGAGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAAT	HIHIHIHGHIGIIIIIHIHIHGHHIFGIFGGHDGHGHIGHIIFHIGDEEIDIHIIIEIIEGHAAGCHGIIHIIIFIIEHIIEIIFI=DC>IIEDBIBCGB	NM:i:2	MD:Z:10G46A43	oR:Z:1	oH:i:1	oP:i:2059	oS:A:F	XE:i:1	XS:i:0	XI:i:1
 simulated.914	16	1	7207	255	100M	*	0	0	GTCTCCTGGCGTGGGCATCAACACAAGCATTTGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAG	CD at FIHEDH<H=GBIIHAHFIHIFEIIEIIGAIFHDHIHFFIEICHIIBFIIGHFIHGIHIFFIFEGIHIHIFIIFIGIFGIHFGIHIGIGGHHIHHIHI	NM:i:1	MD:Z:31C68	oR:Z:1	oH:i:2	oP:i:7931	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.915	0	1	8536	255	100M	*	0	0	GAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGAC	HHHHHHIIHHHIIHGHIIHIHGFIHGIIHIEHEIIFGHHIIIIHIIGHFBFIIIHIIIHIFI?IDIEFGCDCIIIIFGIGGIFHIDIIBGIFFI at EBIIA	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:9224	oS:A:F	XE:i:0	XS:i:0	XI:i:3
 simulated.916	16	1	5867	255	100M	*	0	0	CGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATACGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCC	IIII at G@;CEFIIAB>IIIFIBIBDI at AII?IIIGIEEIIGIIHIGGEIIHIIEIIIHIIIIIGDHGGEIFIHFIIHGIIHFIHHHIIIHHIHHHHIIII	NM:i:1	MD:Z:43T56	oR:Z:1	oH:i:2	oP:i:6453	oS:A:R	XE:i:1	XS:i:0	XI:i:0
@@ -947,7 +947,7 @@ simulated.943	0	1	6557	255	100M	*	0	0	GCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCA
 simulated.944	16	1	5626	255	100M	*	0	0	GCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGC	DIFIFDIIIIIII>HIIIHII>I?ADIDIIIEIIIIGIEIDIEIIF?HFIGIHCIIHFEGFEIIIIEIIHFIIFIIIIIHHHIHIIHHIHIHIIIHHHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:5743	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.945	4	*	0	255	*	*	0	0	TGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTC	HIHHIIIIIHIIIIIGIIGHHIGHIIIHIEIGIFIGIIEHHIDIEIGIIIDIHIIHF at IIIAFG?IGIIIIDIEFCHIGI at IGIBIGICIIAI?9ID;DI	uR:A:B	oR:Z:1	oP:i:8783	oH:i:2	oS:A:F
 simulated.946	0	2	42	255	100M	*	0	0	CGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGTG	HHIHIIHHHIIHIIHGFIIHIIIIIIGFIGIIIIFIIHIIHFGGGIHDIIEFFIIIFBEIIIFIGHIFIHIIBEIIIIGIIIGIHIIIDCIIIIIIGA>I	NM:i:1	MD:Z:98G1	oR:Z:2	oH:i:2	oP:i:41	oS:A:F	XE:i:1	XS:i:0	XI:i:3
-simulated.947	0	1	1425	255	65M1D35M	*	0	0	TTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCC	HIIHHHHGIIHHHIIHIIGIIIHIFHFIDIHIIIIGIIIIIHGIEIFIEIIICCIHFFGCDIEIIA=IIIIFIIIHHGGIICD at EIIIICICE<@BFIIB	NM:i:1	MD:Z:65^A35	oR:Z:1	oH:i:2	oP:i:1478	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.947	0	1	1425	255	65M1D35M	*	0	0	TTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCC	HIIHHHHGIIHHHIIHIIGIIIHIFHFIDIHIIIIGIIIIIHGIEIFIEIIICCIHFFGCDIEIIA=IIIIFIIIHHGGIICD at EIIIICICE<@BFIIB	NM:i:1	MD:Z:65A35	oR:Z:1	oH:i:2	oP:i:1478	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.948	16	2	288	255	100M	*	0	0	TTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACAAATCATCTCTTCCGGTAGTCAGCGATCTGAAGCGGGTCGGGGAGATTTATCTTCATC	EI<IGIIAIIHCDIIFGEIFCFIIIIIIIAGEIIIIEIHGIFEIIIEFFFHIIIHGIIIIIIGIIIGHIEGFGIHHHIHGHHGIGGHHIIHGIHHIIIHH	NM:i:3	MD:Z:42C25A25C5	oR:Z:2	oH:i:2	oP:i:287	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.949	4	*	0	255	*	*	0	0	AAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGTGCATTA	HHIIHHGHGHHIIIIIHGIHIFGHIHIHDFFIHEFHGGFGIIHIIGIIIGIIIHGIIIIACIIIIIIIEIIIIIIHFIIDIDIIIIDII?IIHIIICFGG	uR:A:B	oR:Z:1	oP:i:5318	oH:i:2	oS:A:F
 simulated.950	16	1	9425	255	100M	*	0	0	TCGCGCTGCTCAAAGATTGTTCCCGCAACTGGCCAACAGCCCCTTTCAGTTGTCAAATCAACATCCGCGTCGAGGCTAGGTACGGTCGCGGCATTCACCC	IIHIIAI>IEI<BIIIIGIIGIIIGIFIIIIIGIDIGIDIH<HIIHIIGEFIIGDCIIEHGHIFIGIIIIIHHIIIHIHGGIHHHIIHIIIIHHHIIHII	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:10268	oS:A:R	XE:i:0	XS:i:0	XI:i:0
@@ -970,7 +970,7 @@ simulated.966	0	1	7461	255	100M	*	0	0	ATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATG
 simulated.967	16	1	2221	255	100M	*	0	0	ATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGA	IIDIIIG=IIDDHI?DIIIIE=DDDICDCCCIGEAHFHIHIGHFIEHBCFFIIIGIIGIIHIFHFIIIHHHIIFHHIIIIIHHGFHHHHIHHHIIIIIHI	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:2419	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.968	16	1	1442	255	100M	*	0	0	CTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGG	IIIIHFDIGIIIIIEIIDIHG?IIGGICIIFGIEIICIIFIICIIIIDIFIIIHCIIGIDEEHGHIHHIHIHGHIHGHFIGHHIGIHIGIIHHIHHIHHH	NM:i:0	MD:Z:100	oR:Z:1	oH:i:2	oP:i:1495	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.969	16	1	6558	255	100M	*	0	0	CGCAAAGCANCCGGCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAG	IIFEII=IBIGHI8IC<D?GII>EIIFDAIID:GIHFECIDDIIIGIHIIFIIEGIEIIIIHGCIEHIGIIIHHIIHHIIHIIIIGHGIIHHHHIHIHHH	NM:i:2	MD:Z:9A3C86	oR:Z:1	oH:i:2	oP:i:7204	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.970	16	1	9063	255	45M3D55M	*	0	0	CACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAAC	IAGEIAAFIIH=II>ACID<IHIEIIFIEBIBGIIIAEGHIIIIIDCIHICEDEGIGEHIDBIGIIIEIIFIIIGIIGHHFHHGIIGHIHIHHIIHIHHI	NM:i:3	MD:Z:45^GAT55	oR:Z:1	oH:i:1	oP:i:9256	oS:A:R	XE:i:0	XS:i:0	XI:i:3
+simulated.970	16	1	9063	255	45M3D55M	*	0	0	CACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAAC	IAGEIAAFIIH=II>ACID<IHIEIIFIEBIBGIIIAEGHIIIIIDCIHICEDEGIGEHIDBIGIIIEIIFIIIGIIGHHFHHGIIGHIHIHHIIHIHHI	NM:i:3	MD:Z:45GAT55	oR:Z:1	oH:i:1	oP:i:9256	oS:A:R	XE:i:0	XS:i:0	XI:i:3
 simulated.971	0	1	2443	255	100M	*	0	0	TATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCTTCT	HIIIHHIHHGIGIIIIHHHIHGHHIIEIHIGGGGIIHHIFGEIFIIIIIEECFIHIIAFIIIIBIG at HIIBIIIIEICFGIG>H at HGIII@FFFDG?IIH	NM:i:1	MD:Z:96G3	oR:Z:1	oH:i:2	oP:i:2641	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.972	0	1	9224	255	100M	*	0	0	GAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGA	HHHHIHIIIIHIHIHHIGHIIIIIGGIFIGGGIIFFHIGIEFFHIFIEDEDIIIGIIFII at IIDIGIFFHIAIGHIDIIIBIIEIIIIEFIIIFEBI?IC	NM:i:0	MD:Z:100	oR:Z:1	oH:i:1	oP:i:9414	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.973	0	1	2354	255	100M	*	0	0	GCGNGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACC	HHIIIHHIHHIHIHIGIHGIHGIIHIEFIGGHHIIIIGIGGIEIHFFIGIHHIFIFIGGDIGIIIIFI?EDD at IIGI=IDIF at I@IAAAIIHGIID>GIC	NM:i:1	MD:Z:3T96	oR:Z:1	oH:i:1	oP:i:2455	oS:A:F	XE:i:1	XS:i:0	XI:i:0
diff --git a/apps/mason2/tests/simulator.out8.sam b/apps/mason2/tests/simulator.out8.sam
index 2e32350..a7acaaa 100644
--- a/apps/mason2/tests/simulator.out8.sam
+++ b/apps/mason2/tests/simulator.out8.sam
@@ -1,751 +1,751 @@
 @HD	VN:1.4
 @SQ	SN:1	LN:10000
 @SQ	SN:2	LN:1000
-simulated.1	0	1	5649	255	19M1I57M1I105M1I40M	*	0	0	TTCTGGCATGTTCGAGGCACGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGACTTCAAACTCATTTGTATGCCGGACAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATACTAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGT	I)6;I(7759G'3;9I)9>&1H'56F'I<+&58;G'824I(7I(F&8H'6I(9,7I,7I.':5;9I.&78446I'I'&8H':877I'57894I(966I)249878II3+&F'68I):8858I(I(886I(8966I(67H'=54>78504I'H'48I'I(4I(858:5<3887I(4;69I';8;&9666;78:F&87877:G'38F'I(5:9I)5:6 [...]
+simulated.1	0	1	5649	255	19M1I57M1I105M1I40M	*	0	0	TTCTGGCATGTTCGAGGCACGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGACTTCAAACTCATTTGTATGCCGGACAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATACTAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGT	I)6;I(7759G'3;9I)9>&1H'56F'I<+&58;G'824I(7I(F&8H'6I(9,7I,7I.':5;9I.&78446I'I'&8H':877I'57894I(966I)249878II3+&F'68I):8858I(I(886I(8966I(67H'=54>78504I'H'48I'I(4I(858:5<3887I(4;69I';8;&9666;78:F&87877:G'38F'I(5:9I)5:6 [...]
 simulated.2	0	1	211	255	37M1I111M1I68M	*	0	0	GCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGTCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGTATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGT	</:9I(=I(6H'I*56:I)I)6577=I'II;/)&59;&I)I(64F'I(I1(I)54I(:7:0I1'1;65I(:98776G';;F'8H'155:H';I(I'F&I(I at -'9:86I'59I.&;315186I(<9;I(84:6;9I9*&7=<64E&I.&(;99I(3G'9F'8I1(969:8<98IH0)&9I'I)7697I1(I3(8:6;787776G'H'I/'9695:86<	NM:i:2	MD [...]
-simulated.3	0	1	7197	255	84M1I26M1D17M1D5M1D62M	*	0	0	TGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGTCCATCCTATTTTAACATAGTTATTAGCCATGTTCGACCGGGTACCTGTGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCA	183:894697<9;7I(7I(874I3(;;77I(9B5I'798I(5I)F'6:5H'874;8968746;I;+&6;D&6F'483?;615I)&H'98I*6:I<,&I)94944I*;G';9I,8;;I(496I*I1(85I,887D:99>I)9868I'::5;4:65I(66929648;I2(27887I)48:76;4I9+&765H'1I(7	NM:i:4	MD:Z:110^C17^C5^G62	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.4	0	1	4614	255	31M1D108M1I54M	*	0	0	ACTTTGTGTTGGCAATCAGGTGACGACGAAGTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATCGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGG	7:I-&6:9I)I)7F&7:<I(6692A59:G'6I,3G'7699I'76I)7938?I0'=91397I(7I'=954<I/'I);;5I*89645;I-&749I(I,867 at 3I(5686I1(5787I(:7I(78II2*&I1(H':F'6;57%H'44:6I(9564:;68II2*&</98I(599/G'9;=I=,':I(6<4G'5:I)I(	NM:i:2	MD:Z:31^T162	oR:Z:1	oH:i:1	oP:i:4613	oS:A:F	XE:i: [...]
-simulated.5	16	1	1642	255	51M1D149M	*	0	0	AAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGG	&-I<(I58:4'F048?'G3&E5'I;'H77890(I0:6:5)I4778568>(IC'0I(I4(I88(I(I747:7598(I94=9984748=>678(I69<6'G98'/I:64902&*9I'I4:7;6(I989836;(I>91'H(I6&+9I8:<4'H(I7:'.I(I5'I56=76972649;87+I36479(I66'/I'0I(I:52(I	NM:i:1	MD:Z:51^G149	oR:Z:1	oH:i:1	oP:i:1641	oS:A [...]
-simulated.6	16	1	8850	255	16M1D173M	*	0	0	GCAAGGGCTTAAATGATACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAA	77'G'0I3'I(3I5<9D6:581'I99'G7'/I&-I(I3997;6899)I3)I;:(I;636889075>6&+:I6:'I*I(I(I(I8;885:4;6(I9'I(I8:(I;(I858)I(I9;'I6'.I;2657(I08<;45:5:5(2I9(I7(I9864=36<<67'G68<&-I849(I986;:9(I997(I)I8)I	NM:i:1	MD:Z:16^T173	oR:Z:1	oH:i:1	oP:i:8849	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.3	0	1	7197	255	84M1I26M1D17M1D5M1D62M	*	0	0	TGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGTCCATCCTATTTTAACATAGTTATTAGCCATGTTCGACCGGGTACCTGTGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCA	183:894697<9;7I(7I(874I3(;;77I(9B5I'798I(5I)F'6:5H'874;8968746;I;+&6;D&6F'483?;615I)&H'98I*6:I<,&I)94944I*;G';9I,8;;I(496I*I1(85I,887D:99>I)9868I'::5;4:65I(66929648;I2(27887I)48:76;4I9+&765H'1I(7	NM:i:4	MD:Z:110C17C5G62	oR:Z:1	oH:i:1	oP:i:719 [...]
+simulated.4	0	1	4614	255	31M1D108M1I54M	*	0	0	ACTTTGTGTTGGCAATCAGGTGACGACGAAGTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATCGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGG	7:I-&6:9I)I)7F&7:<I(6692A59:G'6I,3G'7699I'76I)7938?I0'=91397I(7I'=954<I/'I);;5I*89645;I-&749I(I,867 at 3I(5686I1(5787I(:7I(78II2*&I1(H':F'6;57%H'44:6I(9564:;68II2*&</98I(599/G'9;=I=,':I(6<4G'5:I)I(	NM:i:2	MD:Z:31T162	oR:Z:1	oH:i:1	oP:i:4613	oS:A:F	XE:i:2 [...]
+simulated.5	16	1	1642	255	51M1D149M	*	0	0	AAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGG	&-I<(I58:4'F048?'G3&E5'I;'H77890(I0:6:5)I4778568>(IC'0I(I4(I88(I(I747:7598(I94=9984748=>678(I69<6'G98'/I:64902&*9I'I4:7;6(I989836;(I>91'H(I6&+9I8:<4'H(I7:'.I(I5'I56=76972649;87+I36479(I66'/I'0I(I:52(I	NM:i:1	MD:Z:51G149	oR:Z:1	oH:i:1	oP:i:1641	oS:A: [...]
+simulated.6	16	1	8850	255	16M1D173M	*	0	0	GCAAGGGCTTAAATGATACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAA	77'G'0I3'I(3I5<9D6:581'I99'G7'/I&-I(I3997;6899)I3)I;:(I;636889075>6&+:I6:'I*I(I(I(I8;885:4;6(I9'I(I8:(I;(I858)I(I9;'I6'.I;2657(I08<;45:5:5(2I9(I7(I9864=36<<67'G68<&-I849(I986;:9(I997(I)I8)I	NM:i:1	MD:Z:16T173	oR:Z:1	oH:i:1	oP:i:8849	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.7	16	1	796	255	174M	*	0	0	CAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGA	64<567942769655489'0I5:5<9<26:5?(I963946<48629;49(I99:8 at 36764(I:&E'I35)I8<9(I6(I6'H(1I(I68:995(I(I48866(I532'-?I8)I845;53543:;9',>I(I8566'/I(I;8(2I4;'H49;67718;:24796<:76(I14	NM:i:0	MD:Z:174	oR:Z:1	oH:i:1	oP:i:795	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.8	16	1	6040	255	147M1I53M	*	0	0	ATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGACTGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCC	85'H'H::'G942'0I:7687;996718967(I73:;:9&.I7(I785>067'G8(I725(I7487&*2II6&+:I767&E;:9'0I(I578764886;5:'F4',=I'/I69964:8(I>796(I23'/I868&.I>4995:9779&:99:8/66<(I86<'H487(I07&F8'0I390/98(I76;=6665998087(I	NM:i:1	MD:Z:200	oR:Z:1	oH:i:1	oP:i:6039	oS:A:R [...]
 simulated.9	0	1	2314	255	171M	*	0	0	TTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAG	I1(I(95I)I(49:6I;+&6:7I(;85I1(98I0'6H'758:528;I(8I(8984:6869:6I)=::8:213<-69II1)&90I(I.'I)57 at 4I(I0'E&I)5787I'I0'I/';67I(:0I(9=I*6771768I(7I1(:I)6<I)828I(A5947:8F'79<69I)4/	NM:i:0	MD:Z:171	oR:Z:1	oH:i:1	oP:i:2313	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.10	16	1	2471	255	13M1I17M1I27M1D82M1I21M1I68M	*	0	0	CAGCCGACAGCCACGTGAATCGCGTGATACAGTTGCCTTGGAATCTTGGCTACATTCGGTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGACTGGCAGTGTAGGAGCGACTAGTATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAG	864'I8593<'I1&9<A'G:8:2;:756;74&'H:'H'H(I'I79(I'H976:3(I8(ID9&.I7942896<3:886;433'F43(I5)I9<8<:698456<)I6(I8&*2II:83'G57565;35'/I(I66744:<(I8'6(I258699<(I:63478::8&<&*2II78)I7'1I=7)I:669725:<;(I=67 [...]
+simulated.10	16	1	2471	255	13M1I17M1I27M1D82M1I21M1I68M	*	0	0	CAGCCGACAGCCACGTGAATCGCGTGATACAGTTGCCTTGGAATCTTGGCTACATTCGGTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGACTGGCAGTGTAGGAGCGACTAGTATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAG	864'I8593<'I1&9<A'G:8:2;:756;74&'H:'H'H(I'I79(I'H976:3(I8(ID9&.I7942896<3:886;433'F43(I5)I9<8<:698456<)I6(I8&*2II:83'G57565;35'/I(I66744:<(I8'6(I258699<(I:63478::8&<&*2II78)I7'1I=7)I:669725:<;(I=67 [...]
 simulated.11	0	1	5077	255	190M	*	0	0	TGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTC	488I(86I(3=3:I(77754:565I(=71;6I(4<4H'95I(F'4I/'3I(:67377II9.)&65>;275888I(8;<7I3(;75I(;I(3;:8I):6<3I:+&:I)I.'697I(781I'E&55I(I'I1(8;9I1'I)I)65675448?768I.'344I(5H'I*8I):56;I)<I(:77997918686	NM:i:0	MD:Z:190	oR:Z:1	oH:i:1	oP:i:5076	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.12	16	1	7650	255	201M	*	0	0	TCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAAT	7(I9&-I'H58:5775:98;(I;=6*I63'0I3>641'/I97:'G:2(I3<83:6'H(I(I3:'I<:(I(I8::66(I9:<(I939298(I'I(I:17)I438:676(I(I'I67'0I:7:&*9I4*I(1I'H'I2:89(I86883)I73&,I5482&*3II99'H&-I2926638(I7<;697776'G753&-I94(2I6	NM:i:0	MD:Z:201	oR:Z:1	oH:i:1	oP:i:7649	oS:A:R	XE: [...]
 simulated.13	16	1	7403	255	14M1I26M1I152M	*	0	0	AGCCTTGTGTGAGTAGCGAGATGCCCACCATCAAGCCCCACTAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCA	;;(I'F64838477%64787586&-I8'H:98+I8'-?I;8'8445474(I)I76(I(I89>116'/I(2I=665389(I65'H5(1I)I(I66(I)I899649367(2I578?'H&.I9<'/I'H&.I74)I(I&E(I747899)I88'G+I8;94&F;689;'G8'H8'I'I6=6(I779(I56)I5'I(I=	NM:i:2	MD:Z:192	oR:Z:1	oH:i:1	oP:i:7402	oS:A:R	XE:i:2	 [...]
-simulated.14	16	1	4521	255	26M1D177M	*	0	0	GAGTGGGTAATGCCTTCGCACTGGTCACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTT	7:64&.I4(I97'I(I584-97(I6:B50:1C5><(3I4'I7896474(I;377564(I(I:<'I6(1I6666'H78855672758(I'0I777&-I:97)I*I8'H98:'H77477198)I>'0I6(I;46;(I4:'G59389'/I7:848<&F4*I86865'0I'G86;'I672646'1I627'I'I76666(I455>(1I	NM:i:1	MD:Z:26^A177	oR:Z:1	oH:i:1	oP:i:45 [...]
-simulated.15	0	1	549	255	97M1D88M	*	0	0	ATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGT	7I(:77:7I)9I'I(37948/75I/'7:793I0'59::=;6I(743<9::I-&78I0'3I(;4369456H'6;48667;H'89I(:5F'358G'<68II5,'H'66>I/'6:>0I*I':I.&7;7759;4<;I(=679;73:854I(894968765I(534I(5;0I(=5I1';I(55I(:6696	NM:i:1	MD:Z:97^C88	oR:Z:1	oH:i:1	oP:i:548	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.16	16	1	5812	255	38M1D59M1I9M1D16M1D71M	*	0	0	CTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATAGTGCTCCCTTAAATCGGGTATAAAATATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTT	773:>87'I6:59'I7<3;;874357'H:76:44(I83D(I78<(I6683471398698'I67)I5*I08(I4'0I79'H'/I72'0I5857(I769&::48'.I)I)5I56'0I487&+;I9C&E'I(I29266779:'I88;7(I6&E9'G;(I;'0I79(I(I5577=7)I49:36<07(1I;'G'H5&.I	NM:i:4	MD:Z:38^C68^A16^A71	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.14	16	1	4521	255	26M1D177M	*	0	0	GAGTGGGTAATGCCTTCGCACTGGTCACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTT	7:64&.I4(I97'I(I584-97(I6:B50:1C5><(3I4'I7896474(I;377564(I(I:<'I6(1I6666'H78855672758(I'0I777&-I:97)I*I8'H98:'H77477198)I>'0I6(I;46;(I4:'G59389'/I7:848<&F4*I86865'0I'G86;'I672646'1I627'I'I76666(I455>(1I	NM:i:1	MD:Z:26A177	oR:Z:1	oH:i:1	oP:i:452 [...]
+simulated.15	0	1	549	255	97M1D88M	*	0	0	ATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGT	7I(:77:7I)9I'I(37948/75I/'7:793I0'59::=;6I(743<9::I-&78I0'3I(;4369456H'6;48667;H'89I(:5F'358G'<68II5,'H'66>I/'6:>0I*I':I.&7;7759;4<;I(=679;73:854I(894968765I(534I(5;0I(=5I1';I(55I(:6696	NM:i:1	MD:Z:97C88	oR:Z:1	oH:i:1	oP:i:548	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.16	16	1	5812	255	38M1D59M1I9M1D16M1D71M	*	0	0	CTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATAGTGCTCCCTTAAATCGGGTATAAAATATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTT	773:>87'I6:59'I7<3;;874357'H:76:44(I83D(I78<(I6683471398698'I67)I5*I08(I4'0I79'H'/I72'0I5857(I769&::48'.I)I)5I56'0I487&+;I9C&E'I(I29266779:'I88;7(I6&E9'G;(I;'0I79(I(I5577=7)I49:36<07(1I;'G'H5&.I	NM:i:4	MD:Z:38C68A16A71	oR:Z:1	oH:i:1	oP:i:581 [...]
 simulated.17	0	1	7420	255	233M	*	0	0	AGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCC	565=7I-&8I'96<I'<I>,'37?222848I(I(:8I(D&67=:74I-&I/'0537856F&47I*:I/'I)I(8:I'I(6;;565947I-&B64:G'I/'67I/'I(I.':5I'F'I(I(68;746I(6;I'G'4:<=I(386:5H'6I'1I(I(;77I(586E&76I)=I(I'6I(65986;85<7G'==;97297I(966;I(8I(I(57:9=::8697 [...]
 simulated.18	0	1	3822	255	6M1I143M1I37M1I21M	*	0	0	CGTCTCTTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTACGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCGTGACAGTAAACCCCGCCACAC	787=;:F'I1'I'9511F&7;7I)I1(I(6I):7755675<7I(8I(6I(6938866I(3I)5<43;86II;/)&86:89788I(I(>I(72496788956:I3(71:7I(94:4E&68I/'6<I(I/'66:89:736I)I)793<5615+0746<I1'2H'85F'6958H'=6:8779I)7I(6;G'&:=76577I/'I9*&;F&7;5;	NM:i:3	MD:Z:207	oR: [...]
-simulated.19	0	1	3611	255	127M1D97M	*	0	0	CGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTG	9I.'5I*=:I)?7I(;I8*&<77488H'7897I)77I(5467957I)978I'1H'I8*&87I':I(=95I'I/'I9*&6:98<I(I(572I'<64:878I'<:G'1586I(I)H'9;I1(<5I(I.&I,I(=I)6/I/'5669.23:8I2(:<I-&H'7I1(68I(3698762F&<I)<759I.&93I(I);87I(37654755:::4877;7.567I-&I'78	 [...]
+simulated.19	0	1	3611	255	127M1D97M	*	0	0	CGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTG	9I.'5I*=:I)?7I(;I8*&<77488H'7897I)77I(5467957I)978I'1H'I8*&87I':I(=95I'I/'I9*&6:98<I(I(572I'<64:878I'<:G'1586I(I)H'9;I1(<5I(I.&I,I(=I)6/I/'5669.23:8I2(:<I-&H'7I1(68I(3698762F&<I)<759I.&93I(I);87I(37654755:::4877;7.567I-&I'78	 [...]
 simulated.20	16	1	5315	255	188M	*	0	0	ACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCG	5;97'0I:6(1I5'/I(I'I;(I4(I5;41885<&-I06<2:4;&*7I4'G8(I3<8(1I:85965<670'G;7'G8597985'I:D8(1I36387&F8&E8'1I9(I62&)0II5<969'F6;767?75)I;8&F047397)I255=65485)I(I598(I:'G95<4::(I(I<)I9249='I598	NM:i:0	MD:Z:188	oR:Z:1	oH:i:1	oP:i:5314	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.21	0	1	3154	255	81M1D15M1D100M1I22M	*	0	0	AGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGGTGATTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTACGGAGAACCGCTATAAAACCAA	4=73I)4587:867;I'988I'79257I(77I)7:3I'I/'::I)I(8E&7<5I3(75I0'H'F&I'G'79IA-(87:5F'IE/(9I(:<I/'6:7I7*I(:68I(8H'I>,':79I(79995I(I)7I(8I(5:I0'87I)754689:;37=I';I(I)6I>,'8I(I(8<7:I(68I(I)757I.'53:8I=,'&:I(:8I(I(78:43I<,'I(I(	 [...]
+simulated.21	0	1	3154	255	81M1D15M1D100M1I22M	*	0	0	AGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGGTGATTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTACGGAGAACCGCTATAAAACCAA	4=73I)4587:867;I'988I'79257I(77I)7:3I'I/'::I)I(8E&7<5I3(75I0'H'F&I'G'79IA-(87:5F'IE/(9I(:<I/'6:7I7*I(:68I(8H'I>,':79I(79995I(I)7I(8I(5:I0'87I)754689:;37=I';I(I)6I>,'8I(I(8<7:I(68I(I)757I.'53:8I=,'&:I(:8I(I(78:43I<,'I(I(	 [...]
 simulated.22	16	1	5757	255	2M1I195M	*	0	0	GGCCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTC	*I&E7(I3::97(I&E16:'G7:78'H94(I49498:796(I'H86'H(I2'I609:5<3966(I88;8(I89:59:545:<)I0:;555'H38)I'G?@6(I878788;268999'I:7(I9'G54(I9'/I19(I(1I55'.I8778'I75;8;75&.I(I',>I:9&-I=84',>I5*I(I(I'H8577757;:5	NM:i:1	MD:Z:197	oR:Z:1	oH:i:1	oP:i:5756	oS:A:R	XE:i: [...]
-simulated.23	16	1	5867	255	75M1D77M1D28M	*	0	0	CGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAGCCCCCCTATGATAGACATCCGGCGT	;7248)I52)I5)I:8(I9'0I:5(I(2I2<'/I597>(I::558?8(3I'I',=I64'1I767',>I8(I(I(ID;9=<55:8;'I7;47(I:(I4'G5(I:'0I72(I'I;977 at 5'I<7789:47'1I5(I)I;'.I956<657',=I6,I5&).9II9898<5A:5678(I'H96<	NM:i:2	MD:Z:75^T77^A28	oR:Z:1	oH:i:1	oP:i:5866	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.24	0	1	1771	255	51M1I111M1D36M	*	0	0	CGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATAGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGT	76H'5=5I)I*;I?-';89:I(I(72I-&H'=I(8679::98>998=3I)6&;897I)5:I.'I0'I(574I<,&796:I)9G'I(I'5F&?7;I)8919I(I)76;:45<7B88H'I)982H'I1(4I(:<7I)<6586I(;7H'I(928I)648I'69947D7I(0I(7=5I(8<7I(:9963A53I)7?6:I9+&8	NM:i:2	MD:Z:162^C36	oR:Z:1	oH:i:1	oP:i:1770	o [...]
-simulated.25	0	1	7112	255	7M1D204M	*	0	0	ATCGGATGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGT	64;I'96I,4I(I/'8:I(2 at I(I'4I.'I/'494I)7I(<5:6H'3:I(88:949966=I(I.&7I1(7305I(I'A58:;6=8<69:48=<:0:<3I(8H'777I/'4788I(487G'28;I(5I'I(7<9I*4:<1469=::25I;+&87H'6H'388?7875I)I(;4I)>8I:+&I(46676I(3I(65I.'75:G'357I(I.'9	NM:i:1	MD:Z:7^G204	oR:Z:1	o [...]
+simulated.23	16	1	5867	255	75M1D77M1D28M	*	0	0	CGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAGCCCCCCTATGATAGACATCCGGCGT	;7248)I52)I5)I:8(I9'0I:5(I(2I2<'/I597>(I::558?8(3I'I',=I64'1I767',>I8(I(I(ID;9=<55:8;'I7;47(I:(I4'G5(I:'0I72(I'I;977 at 5'I<7789:47'1I5(I)I;'.I956<657',=I6,I5&).9II9898<5A:5678(I'H96<	NM:i:2	MD:Z:75T77A28	oR:Z:1	oH:i:1	oP:i:5866	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.24	0	1	1771	255	51M1I111M1D36M	*	0	0	CGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATAGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGT	76H'5=5I)I*;I?-';89:I(I(72I-&H'=I(8679::98>998=3I)6&;897I)5:I.'I0'I(574I<,&796:I)9G'I(I'5F&?7;I)8919I(I)76;:45<7B88H'I)982H'I1(4I(:<7I)<6586I(;7H'I(928I)648I'69947D7I(0I(7=5I(8<7I(:9963A53I)7?6:I9+&8	NM:i:2	MD:Z:162C36	oR:Z:1	oH:i:1	oP:i:1770	oS [...]
+simulated.25	0	1	7112	255	7M1D204M	*	0	0	ATCGGATGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGT	64;I'96I,4I(I/'8:I(2 at I(I'4I.'I/'494I)7I(<5:6H'3:I(88:949966=I(I.&7I1(7305I(I'A58:;6=8<69:48=<:0:<3I(8H'777I/'4788I(487G'28;I(5I'I(7<9I*4:<1469=::25I;+&87H'6H'388?7875I)I(;4I)>8I:+&I(46676I(3I(65I.'75:G'357I(I.'9	NM:i:1	MD:Z:7G204	oR:Z:1	oH [...]
 simulated.26	0	1	650	255	52M1I182M	*	0	0	CCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGTCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTT	I(I*08:I/'9975I'I)8I/'878:6:<:58G';95;5:/9:6:I(<7585'67:6I(416I'944I(:6I.'4I(9:I(;9:63;8;781I'668=I(;9I'396<7I)H';662I(I(:I.&I0'I(97::I/'5447;95I7*&4;68768<16993<86;I.'>28>296785;I'34;9158:7664586G'588=5:95:4I)5F'I' [...]
 simulated.27	16	1	1050	255	80M1I116M	*	0	0	CCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGACTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTG	)I5(I546:;(I)I7477;88(I67&,<I;5&E64:98(2I8'H87&.I54'I777=9<88<;7<1(I'/I<7456<7(I,89)I97479789&*8I(I6:::;64649838(IA*I:-2;9:2566494=67879&+9I'I;:623658)I<8'H7*I<5&+:I77;<(I5>;)I7595;:6(I74(I6(I(I58;	NM:i:1	MD:Z:196	oR:Z:1	oH:i:1	oP:i:1049	oS:A:R	XE:i:1 [...]
 simulated.28	0	1	996	255	11M1I42M1I3M1I141M	*	0	0	AATGGCCCTGACTGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCTACCTAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTA	I(5I(I1(<85(67I(I/'F'8I0'625;I(6I.&<996;:I/'296;9;9I(;'8I(&4I)99:7>I(I*/798575G':7I9+&79I(6448<I-&9F&64I.'16F&45::=46;;926>G'I.&3:;940<I'<9I'36:07866I<,'I(9775:297;;697G'9G'73:217557=7<5762488I;+&I(<8	NM:i:3	MD:Z:197	oR:Z:1	oH:i:1	oP:i:995	o [...]
-simulated.29	16	1	5936	255	50M1D119M1D27M	*	0	0	AATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTCGGGGTCACCATGTTTCCTAGCT	'H(I'G(I7=8578664'I;=78'I8)I5'G7'G6(2I77)I'H65:766D623:7787&.I='G)I;&.I86;8:55',=I5(1I6%(-8II3<4997:29480'G&E78(I086'1I7675844;867733>&F974:5:'.I6'G6866866&E4'I825'I2578(/EI7&+:I?76(I556'0I)I::;<<	NM:i:2	MD:Z:50^T119^T27	oR:Z:1	oH:i:1	oP:i:5935	oS [...]
-simulated.30	16	1	4809	255	8M1D77M1D110M1D13M	*	0	0	GTTAAAGCAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGTCCCATCGCAT	4)I'/I77,I;86&-I'H7(I&*2II9376:(I:'H)I8=(I8:'H68&F186:>'/I89(I8;557789763'I=)6I:89'I9*7I82587(I54)I'H78'I(I86;88:9(I1::'I(I?3:;81589977(I3(I:69=(I638)I7'1I*I'I3:54'I9&D67424(I64::8(I28;6(I.;56:?7,I9'/I5:;4656	NM:i:3	MD:Z:8^A77^G110 [...]
+simulated.29	16	1	5936	255	50M1D119M1D27M	*	0	0	AATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTCGGGGTCACCATGTTTCCTAGCT	'H(I'G(I7=8578664'I;=78'I8)I5'G7'G6(2I77)I'H65:766D623:7787&.I='G)I;&.I86;8:55',=I5(1I6%(-8II3<4997:29480'G&E78(I086'1I7675844;867733>&F974:5:'.I6'G6866866&E4'I825'I2578(/EI7&+:I?76(I556'0I)I::;<<	NM:i:2	MD:Z:50T119T27	oR:Z:1	oH:i:1	oP:i:5935	oS:A [...]
+simulated.30	16	1	4809	255	8M1D77M1D110M1D13M	*	0	0	GTTAAAGCAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGTCCCATCGCAT	4)I'/I77,I;86&-I'H7(I&*2II9376:(I:'H)I8=(I8:'H68&F186:>'/I89(I8;557789763'I=)6I:89'I9*7I82587(I54)I'H78'I(I86;88:9(I1::'I(I?3:;81589977(I3(I:69=(I638)I7'1I*I'I3:54'I9&D67424(I64::8(I28;6(I.;56:?7,I9'/I5:;4656	NM:i:3	MD:Z:8A77G110G1 [...]
 simulated.31	16	1	5807	255	83M1I115M	*	0	0	GGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATCGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGA	)I39759996 at 6'G6973'H;78<3:<5<78'I;5:76;'G39'G(I87<)I8?;;97;665?96(I:6'G5)I24*I6'.I>&6(I'/I>5(1I<578(I487:<46(1I(I&+9I7>'.I7:4&*9I8(I)I(I'I585<9;584(I8659'H6(I1(I<'G9'.I45'I(I988647&E84547287&.I9'I(I<	NM:i:1	MD:Z:198	oR:Z:1	oH:i:1	oP:i:5806	oS:A:R	XE [...]
 simulated.32	0	1	9091	255	201M	*	0	0	GGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTG	I(I/'597H'9I(647=74:;I(H'9;8594I+5I(:I)I(16H'6H'84I(57I)6;7>I(92;4788557H'I(I.':7I)628I)1I.&<38869:25;:92759:637I(7779:746I/'2I)?;52I(I'H'86:I):I'I/'2I(I':86I(9I.&I(<I)4;5876<5G'I);>1?I(I(8:G'758I'9:8:	NM:i:0	MD:Z:201	oR:Z:1	oH:i:1	oP:i:9090	oS:A:F	XE:i [...]
 simulated.33	0	1	1161	255	6M1I172M	*	0	0	AAGCCGTACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGC	I)<I(7'38/6776495;9:9832=I:+&I'97367;29I(79E&6I)58I<,'7<95H'6:3H'665387:I(95G':I(H';5I(:886I-&:5I(H'8I:+&I(8I(897/88I(24I)656I(588I(6537I(I.&9I'6I.'I/'8I.'9I)9H'157G'I at -'867<79:84	NM:i:1	MD:Z:178	oR:Z:1	oH:i:1	oP:i:1160	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.34	16	1	7105	255	201M1I7M	*	0	0	GGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCAGTCTATTTTAACATAGTTATTACGCCCATG	(I08'H3866'I74'0I5&E&,I94(I84'H(I:'0I&-I:74(I;'H;696'G7;'I;7496959;6'H'/I4'/I8:63(I(I54=8857:6490 at 768=6658(I9&D>78(1I3889)I83:(I6:3(I7)I'I765'I85864885<988',>I38)I5(I::7<>/97(I(I9*3D98&+:I)I57846'G3(I7&6&,I468	NM:i:3	MD:Z:179T0C27	oR:Z:1	oH [...]
-simulated.35	16	1	8580	255	44M1I71M1D97M	*	0	0	GGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTAGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCC	&-I6'/I2(I3'H67:<)I8(I807)I8'G684&+<I'/I(I54&:73&+;I3478<98)4I5<5=86=:42:79'H:)I625(I9'H7>=(2I3'G7'I;9(I554(I'H'I:69)5I)I6;'0I'F'0I)I1(I'.I'0I)I'0I585546497'0I<'G82)I:6(I'I4:6(I&-I:553473&*8I:87)I53868998691(I54(I	NM:i:2	MD:Z:115^G [...]
+simulated.34	16	1	7105	255	201M1I7M	*	0	0	GGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCAGTCTATTTTAACATAGTTATTACGCCCATG	(I08'H3866'I74'0I5&E&,I94(I84'H(I:'0I&-I:74(I;'H;696'G7;'I;7496959;6'H'/I4'/I8:63(I(I54=8857:6490 at 768=6658(I9&D>78(1I3889)I83:(I6:3(I7)I'I765'I85864885<988',>I38)I5(I::7<>/97(I(I9*3D98&+:I)I57846'G3(I7&6&,I468	NM:i:3	MD:Z:179TC27	oR:Z:1	oH: [...]
+simulated.35	16	1	8580	255	44M1I71M1D97M	*	0	0	GGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTAGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCC	&-I6'/I2(I3'H67:<)I8(I807)I8'G684&+<I'/I(I54&:73&+;I3478<98)4I5<5=86=:42:79'H:)I625(I9'H7>=(2I3'G7'I;9(I554(I'H'I:69)5I)I6;'0I'F'0I)I1(I'.I'0I)I'0I585546497'0I<'G82)I:6(I'I4:6(I&-I:553473&*8I:87)I53868998691(I54(I	NM:i:2	MD:Z:115G9 [...]
 simulated.36	0	1	6807	255	47M1I75M1I69M	*	0	0	CGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGTCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCGTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGC	;3:I(;98293I(946:8I(287645487976H'I)7I-&6I)@977%97I(74:G'56I.&989:I(I(I.&88I+I(8F':E&:4I':76D&;:H'5I(I(36667>I(5<7I1(I2(I)8(I0':7I/':679<6I(99<74<7I';4I/'=I(?577?55<6I(9G'7<66I)I(866>5868F'69<:	NM:i:2	MD:Z:191	oR:Z:1	oH:i:1	oP:i:6806	oS:A:F	XE:i:2	XS:i [...]
 simulated.37	16	1	8840	255	52M1I171M	*	0	0	AAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACGACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAAC	'H6<(I87<5:5)I)4I9(I'/I554(I:8<56(I76'I<(1I(2I(I9349.87;:5'I9(I69(I656767<:9=76&+;I75(I'I'I(I)I5<649>=66)I5'I(I75(I6(I865)I*I56(I;'/I98768'G625;:97?65'0I4'H8*I684;84778;8'I999(1I>7;&F767567&F779*I'G9)I586(I:69579:74(I5997'I4 [...]
-simulated.38	16	1	5467	255	44M1D62M1I106M	*	0	0	ATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAAGTGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCA	9(I'G<63(I6)I6:8:64)I(I;'H9786:'H85:36876)I9+I?;(I33&-I&.I9897<'H863(3I88'H(I&-I8'H18>:*I;(I::4'G::97584*I%6'I:7<73884:942(I7:'G(I367267(I649:69)I7>)I2586;8:68:4;:7958'H7891)I7;5847'/I84(I2783'I77:'H866)I;7)I&,<I>	NM:i:2	MD:Z:44^A [...]
+simulated.38	16	1	5467	255	44M1D62M1I106M	*	0	0	ATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAAGTGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCA	9(I'G<63(I6)I6:8:64)I(I;'H9786:'H85:36876)I9+I?;(I33&-I&.I9897<'H863(3I88'H(I&-I8'H18>:*I;(I::4'G::97584*I%6'I:7<73884:942(I7:'G(I367267(I649:69)I7>)I2586;8:68:4;:7958'H7891)I7;5847'/I84(I2783'I77:'H866)I;7)I&,<I>	NM:i:2	MD:Z:44A1 [...]
 simulated.39	0	1	3348	255	58M1I151M	*	0	0	TTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTCGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCG	I:+&5I'8:I)I'3966:I at -'I(I':I0'67:65I(78>5888I/'9<G'I*;5679&7I)9;77:7=I(I.'I/'6768I)49:6;8<=84:61=;::H':74<4I<,&39I)II2*&7I/'868:988H'7I*;I-&95I-&I(794:I(2:68I.&8H'5I(466:778:I(9I-&6I'673I'I'6I(3I0'I'597<49I:+&9	NM:i:1	MD:Z:209	oR:Z:1	oH:i: [...]
 simulated.40	0	2	125	255	26M1I91M1I31M1I34M1I16M	*	0	0	TGGCCCGTATCTCTGGGTCTACGTTGACCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAAGTCCAAGCAGATTTAATATGATGTCGTCGTCCTAGCCTTTGACTAATATTACAATCTATATGCATGTACTACTTATAGCGCGCA	-I(I/':66>5766I2(::<980I'8'I/'8I(<@889I(I(76I8*&I(599I'I1(I(I(46I(:I.&I(6324I(:H'7I+H'?5;2<798I(68:I(4I)I/'=6I8*&I(;I(%9H'H'7=99=I0'I(8639586=388789H'%7;I(I2(3859I'69I(75I'4;;879:558;78'75:=I(56:6=86444	NM:i:4	MD:Z:198	oR:Z:2	oH:i:1	o [...]
-simulated.41	0	1	3750	255	15M1D90M1I18M1I48M	*	0	0	CGCAGATGTATTTCTAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTCGTGCGAGAACTTCAATCACGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGA	3;78958757I2(<9I,I(=I0':1G'9866626I(9I)6A77I1(:2I(H'868I(8<5967666655:337:=:=6I/'I(6:8;I(638I'I-&H'4I'9:8&6967867I(8I(4I(955%6927I(5H'9::;64<II>1*'14764676I(E&9I):5856855;97	NM:i:3	MD:Z:15^A156	oR:Z:1	oH:i:1	oP:i:3749	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.42	0	1	293	255	17M1D185M	*	0	0	AATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTA	I'836:F'9H'H'H'I(I4)65:9I(;;I3(:687964H'6:;I*<58:;9IC.(=4767I(I1(/69I(5I):G'9I.'842898:5II0)&8H'I)4854I0'I-&37682<783;G'I(I/'662:5;:94I1(I):97I(98H'66I-&I'<68<63:I(567I)3:8:97G'748>3;<>5H'43I(6I'I*I(8=8	NM:i:1	MD:Z:17^T185	oR:Z:1	oH:i:1	oP:i:292	oS [...]
-simulated.43	0	1	8133	255	72M1D118M	*	0	0	CGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGC	<:52;8749H'5:3/7<;=:8;I<,':576I'I1'I(67I(;4=H'=I(I0'679;I*<6965I.'9=:7I'D86I)6:574244E&8I)77I(769:75I.&I*:6I(:36=9I(4I(I(256;;8I(68:;7H'7<I(8:786;7678I(I)F'I/'I(:;3;4I*9<G'8I)6<I/'987I(7I)98	NM:i:1	MD:Z:72^T118	oR:Z:1	oH:i:1	oP:i:8132	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.41	0	1	3750	255	15M1D90M1I18M1I48M	*	0	0	CGCAGATGTATTTCTAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTCGTGCGAGAACTTCAATCACGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGA	3;78958757I2(<9I,I(=I0':1G'9866626I(9I)6A77I1(:2I(H'868I(8<5967666655:337:=:=6I/'I(6:8;I(638I'I-&H'4I'9:8&6967867I(8I(4I(955%6927I(5H'9::;64<II>1*'14764676I(E&9I):5856855;97	NM:i:3	MD:Z:15A156	oR:Z:1	oH:i:1	oP:i:3749	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.42	0	1	293	255	17M1D185M	*	0	0	AATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTA	I'836:F'9H'H'H'I(I4)65:9I(;;I3(:687964H'6:;I*<58:;9IC.(=4767I(I1(/69I(5I):G'9I.'842898:5II0)&8H'I)4854I0'I-&37682<783;G'I(I/'662:5;:94I1(I):97I(98H'66I-&I'<68<63:I(567I)3:8:97G'748>3;<>5H'43I(6I'I*I(8=8	NM:i:1	MD:Z:17T185	oR:Z:1	oH:i:1	oP:i:292	oS: [...]
+simulated.43	0	1	8133	255	72M1D118M	*	0	0	CGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGC	<:52;8749H'5:3/7<;=:8;I<,':576I'I1'I(67I(;4=H'=I(I0'679;I*<6965I.'9=:7I'D86I)6:574244E&8I)77I(769:75I.&I*:6I(:36=9I(4I(I(256;;8I(68:;7H'7<I(8:786;7678I(I)F'I/'I(:;3;4I*9<G'8I)6<I/'987I(7I)98	NM:i:1	MD:Z:72T118	oR:Z:1	oH:i:1	oP:i:8132	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.44	16	1	7118	255	198M	*	0	0	TGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTC	:'0I9(I'/I35(I48(I(I<&.I&.I5?;'HB)I3;=7'I88(I7984743786'G&.I:'/I8697'I(I6>964438797:56::;:88<)I3'I2:;'/I6>6:'I874'G3<8(I9'H'I:55'I;63:275:5:67&+;I66'H5'H96>:2776)I'I68'G65',=I(I5:785*I6(I49(1I;67'I=	NM:i:0	MD:Z:198	oR:Z:1	oH:i:1	oP:i:7117	oS:A:R	XE:i:0	XS [...]
-simulated.45	0	1	189	255	82M1D126M	*	0	0	CCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAA	I(68D&F&99I'I'<I'79693:664I)5I(7I(G'235I+F'86964I(II;/)&;78D&H'4:I)I(I1(I)>5H';694I,:8/:I(;:7:8;I)46I(:E&9267H'8F&I'I'I)I8*&76;5I);:I1(778;92<I'875I(588984I9+&7<236I(I-&684I,9H'7I(7I2(6964696<II0)&=H'I*9:65I(	NM:i:1	MD:Z:82^G126	oR:Z:1	oH:i:1 [...]
+simulated.45	0	1	189	255	82M1D126M	*	0	0	CCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAA	I(68D&F&99I'I'<I'79693:664I)5I(7I(G'235I+F'86964I(II;/)&;78D&H'4:I)I(I1(I)>5H';694I,:8/:I(;:7:8;I)46I(:E&9267H'8F&I'I'I)I8*&76;5I);:I1(778;92<I'875I(588984I9+&7<236I(I-&684I,9H'7I(7I2(6964696<II0)&=H'I*9:65I(	NM:i:1	MD:Z:82G126	oR:Z:1	oH:i:1	 [...]
 simulated.46	16	1	6218	255	197M	*	0	0	CAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAA	64:5'G955715484:;746)4I884'I53994;5&-I74:977'.I96:48'/I9(I99&+;I2(I'0I76?68:(I::8=7:49889798;7'H484578;(I4;38&-I;6;::9)I'I'0I'I6=)I3:8:&*1II)I78'H(I(I:2;7375)I98<'/I7'H'.I(I72'I:347636)I27=290426'I	NM:i:0	MD:Z:197	oR:Z:1	oH:i:1	oP:i:6217	oS:A:R	XE:i:0	XS:i [...]
 simulated.47	0	1	2956	255	184M1I8M	*	0	0	CGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCGTGGGCCCC	:;81I'5I(9835859I*8I(5;657746I(369;89I.&6I/':I(9I'I'I(3<8I(7G';54:<3799968=I(:78<8I)I(G'8I/'867I(96=90H'9G'I0'68>677545I0'I'74I1';:I(I?-'F'588975?=<7I(I(I)I)987<89998496I(:85I.&6:9334?%6I/'I8*&	NM:i:1	MD:Z:192	oR:Z:1	oH:i:1	oP:i:2955	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.48	16	1	4643	255	16M1I206M	*	0	0	AGTTTCGGCACAGGTGACCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAG	:7'/I7'I3945'I98''G7:8;9&-I96387=)I8)I<149>'/I(I659&E3<7796'0I;;5'I(I>8988)I568;(1I975;'I9:)I95&*2II(1I(I5'I6527)I8777(I75<74:9:&*1II48:6&E<<18(I678'-?I7)I:79'H::)I(I68(I(2I68)4I7=<&-I'I2'I'+3II857::(I8'H(I8;'H78(I81(I>::4<	N [...]
-simulated.49	16	1	6404	255	63M1D43M1I109M	*	0	0	GTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTACACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTG	5<684=884)I'1I)I7:77'0I641)I49&E827',>I84'H67(I(I)I4=9(I88(I:6;D8:556798)I:6:4'F;;'H'I at 966;844907;3(I-93'H&78;6785'/I586989:(I5776975444:'H95754;7'F6'I=77569'0I98'I'I:&F:(I4>;7(I598;&*2II'/I:(I5:542<2'I)I&E=(I>'I5848	NM:i:2	MD: [...]
-simulated.50	16	1	8614	255	105M1D32M1I29M1I42M	*	0	0	AAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGTCGTGGTTTCGTGACTAAAACTAGGAGACACTCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTG	'/I&.I(I?7794&+:I9;;7676'0I9049:396/8418)I7'I:9<(I='I5;;&-I8'I<'I62&E798(I(I'G33<&+9I)I79'0I(I&-I'I9)I&-I+I'H'0I868648957'0I4&D86'I9;'I'I)86<(I'/I7947=38',=I5;6(I99:9;(5::586(I58&-I844'I9987659(I'I419154'I8>;88	NM:i:3	MD:Z:105^C [...]
-simulated.51	16	1	3241	255	76M1D48M1D18M1I21M1I38M	*	0	0	AACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAACCAAGTTTAGCTGAACTGACATGAAAGACCGGTATGTAGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGT	*I63'/I768&+:I)I<88(I7)I',=I7:9&F4:7>;(I(I6(I6(I;4'1I;8&E58958687<78)I7(I(I:)6I5(I&E7577(I6:'I)I:77(2I5<58'-AI4)I3<&F)I47884)5I)I)I:'.I;5<79'I&777:428'1I<6&F'I<@=65&3(I7;<;36:(I(2I'/I6;6<'G7:<;684888794:	NM:i:4	MD:Z:76^T48^A77	oR:Z [...]
-simulated.52	0	1	6073	255	10M1D37M1I60M1I72M	*	0	0	AGAGCTGGGACTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCTATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCACTATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTAT	<96669I.'4D8742958I(7I(@97I(7573II1)&;I:+&599H'&909I3)I(59:4<97::835I):I;+&I-&745;79:I'9874I(4 at I/'<8/I-&<>;9+7678878=:783;85G'1:5I(:2>I(55I'<I/'866;88G'2:855823574 at 75I/'@7<I)43;9577	NM:i:3	MD:Z:10^C169	oR:Z:1	oH:i:1	oP:i:6072	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.53	0	1	4137	255	46M1I102M1I56M	*	0	0	TTGACTGTGAATAACAGACAGGTCCAATTGGTCGGTTACTGGCGCGTAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCGACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGA	I'99998<5I)4I(5;6=5;I(9G'I'I(H'%5I,I(983H'<8A5'H'754I.'H'I(;:38I(:39668I'::I-&9>I(5I(6;<41599;47;4I*I/'7I/'I(I(I)749;55=8776<586I(I4)8:I'9=27F&0I(I)5&3I0'6;I8*&3878;8:48I+I1(I0'949I);4=5I(I/':958;589623I)87	NM:i:4	MD:Z:31C0G171	oR:Z:1	oH: [...]
-simulated.54	0	1	3972	255	25M1I8M1I126M1D34M	*	0	0	GCGCGGGTAAGTAATGACTTAGACACGAGGTCCTAGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCAACTTGACTGTGAATAACAGACAGGTCCAATT	A737I0'5H'67E&:559I+::563%8>I(7I'9'5I(49?92:9I0'I;+&:H':88488657I(8<I.&I7*&8:8392I0'I(4I)G'I'732;9767I4)I)8;54I/'875F'I(I(H'994<I(87:7;I(6I/'5697:5376I(963I2(:I'I,I'8I(5188766H'5H'843997I(7I(I(I(	NM:i:3	MD:Z:159^C34	oR:Z:1	oH:i:1	oP:i:3971	oS:A: [...]
-simulated.55	16	1	8957	255	36M1I6M1I44M1D97M	*	0	0	TAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGTCCGAAGACTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTG	616'H'F/8'I6'0I769<:(I58:7;3588>'/I9('G:)I9&96:76:4793(I943'.I65<'I64;;8;'I589'H)I4'I84AD479338859(I1766(I'I585/9&.I(I(I9'H8567:7)I975(3I&.I6;7(I7(I646;7798&E'H7778;9'H5'IB)I)I6/'G5)I28	NM:i:3	MD:Z:86^T97	oR:Z:1	oH:i:1	oP:i:8956	oS:A:R	XE:i:3	XS:i:0	XI:i:0
-simulated.56	0	1	6527	255	81M1D117M	*	0	0	TAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAG	7F&:86496>946<H'478;797I(4I(88:8:8I0'97I'I(:I(6G'97:8I'225:IG0)%I/'9I(2456<:5I)I'D6I(7I(585;9:55I'28:6744I*7729H'I.&8H'<9>I'I)I)827I(I0'9477375887457I'I'<:4787769:3;:I)6H'I(36796I'395>6I)8:I9+&4I1(2	NM:i:1	MD:Z:81^G117	oR:Z:1	oH:i:1	oP:i:6526	oS:A:F	X [...]
-simulated.57	0	1	8859	255	87M1D36M1I56M	*	0	0	TAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACGTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGA	9I.&77:I(:5:43I(=7I(;I.&I2(I(498:778 at 9F'4I(6:H'-696?5<6;6:3I<+&53I(I(H'I(I)3<447:979I(8CI(47I);I)467I(G'86I+6I-&446>9G'7865&68:>9=I,&5I(9I'6773=845:4;F&576I.'236I(:58:65I(:96I(I*:6	NM:i:2	MD:Z:87^T92	oR:Z:1	oH:i:1	oP:i:8858	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.58	16	1	8126	255	77M1D59M1I5M1I11M1I66M	*	0	0	TCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCGACTCTCCCTGAAGTATGTCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCAC	6)I957684:686;09'H79:;:<6;535&+:I;675)I'/I'G6;(I633)I4'H'/I62:4(I::9;4&-I:<71D(I79(I906<3455'H8'I45'I714316'0I(I87'I:4858'I8(I(I:9;877'F&65<9:'0I16'I468:3&4378<'G'G'I(1I(I0;89:)I48'I;(I9:&,I986)I6)I784579:5999(I5:4 [...]
-simulated.59	0	1	4110	255	67M1I103M1D14M	*	0	0	TATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTAGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTGGCACCCGCGGGG	5774899577H'>65I/'<I)I/'I(6H'6:434>>H'6H'668896I)6I(I(I+I)9I/'I'677*G':657H'894I/'I(I)663:F&5677>9I(7=I-&7;I(7I)=695<854655:5I(I3(<I1(I'I(I(374163758:8/9;7I(I1(67I(5=95I)<BI(64I/'96I8*&	NM:i:2	MD:Z:170^T14	oR:Z:1	oH:i:1	oP:i:4109	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.60	0	1	3359	255	7M1D198M	*	0	0	CCGCTATAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGT	I(99:2<I6*H'I+;I.&77697G':5699:8I2(68I(I(678;:8I):;68675I'I/'I-&75<3I'4987447968536;959I(66<78I<,'7;I*II3+'2I.&67/5886I);I+;I0'15I/'I(=<99E&6661I0':H'7I(::6877:9I(6I1(2I(865G'G'9I)6I-&I(:755::I?-'::9I1(E&6	NM:i:1	MD:Z:7^A198	oR:Z:1	oH:i:1	oP:i:3 [...]
-simulated.61	16	1	4713	255	182M1D7M	*	0	0	TATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGA	588(I8<67(1I5565(I65)I8:'+4II'/I(I3(I86:='H<6<6'H646;7448&*3II95;?)I3538'I66A',=I6'I::@(I4<(I'I;9(I(2I=6'1I985'/I'F9+I&)1II67885(I:'G)I7<(I:6'I67(I2;<8;(1I97(I87=8;88:;;:(I6&-I374(I6)6I:;77	NM:i:1	MD:Z:182^G7	oR:Z:1	oH:i:1	oP:i:4712	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.62	16	1	1637	255	27M1D118M1D48M	*	0	0	GGGGCAAACAACACTAAGTGTAACGGAGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGCGTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGG	&+:I4&-I1(I358>'G>7<6'I2'I9C:'H86996(I8:<2<(I;;79:4:7'I'G(1I(I7'H9>'H(I8<375<76(I:976:86528698>6(I43:8(I::+I6&58893&*8I(I57:44'H6>78:4:(I434)I'H:*7I9;87(I'I82'0I'H1'G78646=954:8799)I58361'I59(I	NM:i:4	MD:Z:27^G81G0C35^C48	oR:Z:1	oH:i:1	oP:i:1636	oS:A [...]
+simulated.49	16	1	6404	255	63M1D43M1I109M	*	0	0	GTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTACACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTG	5<684=884)I'1I)I7:77'0I641)I49&E827',>I84'H67(I(I)I4=9(I88(I:6;D8:556798)I:6:4'F;;'H'I at 966;844907;3(I-93'H&78;6785'/I586989:(I5776975444:'H95754;7'F6'I=77569'0I98'I'I:&F:(I4>;7(I598;&*2II'/I:(I5:542<2'I)I&E=(I>'I5848	NM:i:2	MD: [...]
+simulated.50	16	1	8614	255	105M1D32M1I29M1I42M	*	0	0	AAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGTCGTGGTTTCGTGACTAAAACTAGGAGACACTCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTG	'/I&.I(I?7794&+:I9;;7676'0I9049:396/8418)I7'I:9<(I='I5;;&-I8'I<'I62&E798(I(I'G33<&+9I)I79'0I(I&-I'I9)I&-I+I'H'0I868648957'0I4&D86'I9;'I'I)86<(I'/I7947=38',=I5;6(I99:9;(5::586(I58&-I844'I9987659(I'I419154'I8>;88	NM:i:3	MD:Z:105C1 [...]
+simulated.51	16	1	3241	255	76M1D48M1D18M1I21M1I38M	*	0	0	AACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAACCAAGTTTAGCTGAACTGACATGAAAGACCGGTATGTAGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGT	*I63'/I768&+:I)I<88(I7)I',=I7:9&F4:7>;(I(I6(I6(I;4'1I;8&E58958687<78)I7(I(I:)6I5(I&E7577(I6:'I)I:77(2I5<58'-AI4)I3<&F)I47884)5I)I)I:'.I;5<79'I&777:428'1I<6&F'I<@=65&3(I7;<;36:(I(2I'/I6;6<'G7:<;684888794:	NM:i:4	MD:Z:76T48A77	oR:Z:1 [...]
+simulated.52	0	1	6073	255	10M1D37M1I60M1I72M	*	0	0	AGAGCTGGGACTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCTATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCACTATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTAT	<96669I.'4D8742958I(7I(@97I(7573II1)&;I:+&599H'&909I3)I(59:4<97::835I):I;+&I-&745;79:I'9874I(4 at I/'<8/I-&<>;9+7678878=:783;85G'1:5I(:2>I(55I'<I/'866;88G'2:855823574 at 75I/'@7<I)43;9577	NM:i:3	MD:Z:10C169	oR:Z:1	oH:i:1	oP:i:6072	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.53	0	1	4137	255	46M1I102M1I56M	*	0	0	TTGACTGTGAATAACAGACAGGTCCAATTGGTCGGTTACTGGCGCGTAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCGACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGA	I'99998<5I)4I(5;6=5;I(9G'I'I(H'%5I,I(983H'<8A5'H'754I.'H'I(;:38I(:39668I'::I-&9>I(5I(6;<41599;47;4I*I/'7I/'I(I(I)749;55=8776<586I(I4)8:I'9=27F&0I(I)5&3I0'6;I8*&3878;8:48I+I1(I0'949I);4=5I(I/':958;589623I)87	NM:i:4	MD:Z:31CG171	oR:Z:1	oH:i [...]
+simulated.54	0	1	3972	255	25M1I8M1I126M1D34M	*	0	0	GCGCGGGTAAGTAATGACTTAGACACGAGGTCCTAGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCAACTTGACTGTGAATAACAGACAGGTCCAATT	A737I0'5H'67E&:559I+::563%8>I(7I'9'5I(49?92:9I0'I;+&:H':88488657I(8<I.&I7*&8:8392I0'I(4I)G'I'732;9767I4)I)8;54I/'875F'I(I(H'994<I(87:7;I(6I/'5697:5376I(963I2(:I'I,I'8I(5188766H'5H'843997I(7I(I(I(	NM:i:3	MD:Z:159C34	oR:Z:1	oH:i:1	oP:i:3971	oS:A:F [...]
+simulated.55	16	1	8957	255	36M1I6M1I44M1D97M	*	0	0	TAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGTCCGAAGACTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTG	616'H'F/8'I6'0I769<:(I58:7;3588>'/I9('G:)I9&96:76:4793(I943'.I65<'I64;;8;'I589'H)I4'I84AD479338859(I1766(I'I585/9&.I(I(I9'H8567:7)I975(3I&.I6;7(I7(I646;7798&E'H7778;9'H5'IB)I)I6/'G5)I28	NM:i:3	MD:Z:86T97	oR:Z:1	oH:i:1	oP:i:8956	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.56	0	1	6527	255	81M1D117M	*	0	0	TAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAG	7F&:86496>946<H'478;797I(4I(88:8:8I0'97I'I(:I(6G'97:8I'225:IG0)%I/'9I(2456<:5I)I'D6I(7I(585;9:55I'28:6744I*7729H'I.&8H'<9>I'I)I)827I(I0'9477375887457I'I'<:4787769:3;:I)6H'I(36796I'395>6I)8:I9+&4I1(2	NM:i:1	MD:Z:81G117	oR:Z:1	oH:i:1	oP:i:6526	oS:A:F	XE [...]
+simulated.57	0	1	8859	255	87M1D36M1I56M	*	0	0	TAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACGTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGA	9I.&77:I(:5:43I(=7I(;I.&I2(I(498:778 at 9F'4I(6:H'-696?5<6;6:3I<+&53I(I(H'I(I)3<447:979I(8CI(47I);I)467I(G'86I+6I-&446>9G'7865&68:>9=I,&5I(9I'6773=845:4;F&576I.'236I(:58:65I(:96I(I*:6	NM:i:2	MD:Z:87T92	oR:Z:1	oH:i:1	oP:i:8858	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.58	16	1	8126	255	77M1D59M1I5M1I11M1I66M	*	0	0	TCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCGACTCTCCCTGAAGTATGTCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCAC	6)I957684:686;09'H79:;:<6;535&+:I;675)I'/I'G6;(I633)I4'H'/I62:4(I::9;4&-I:<71D(I79(I906<3455'H8'I45'I714316'0I(I87'I:4858'I8(I(I:9;877'F&65<9:'0I16'I468:3&4378<'G'G'I(1I(I0;89:)I48'I;(I9:&,I986)I6)I784579:5999(I5:4 [...]
+simulated.59	0	1	4110	255	67M1I103M1D14M	*	0	0	TATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTAGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTGGCACCCGCGGGG	5774899577H'>65I/'<I)I/'I(6H'6:434>>H'6H'668896I)6I(I(I+I)9I/'I'677*G':657H'894I/'I(I)663:F&5677>9I(7=I-&7;I(7I)=695<854655:5I(I3(<I1(I'I(I(374163758:8/9;7I(I1(67I(5=95I)<BI(64I/'96I8*&	NM:i:2	MD:Z:170T14	oR:Z:1	oH:i:1	oP:i:4109	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.60	0	1	3359	255	7M1D198M	*	0	0	CCGCTATAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGT	I(99:2<I6*H'I+;I.&77697G':5699:8I2(68I(I(678;:8I):;68675I'I/'I-&75<3I'4987447968536;959I(66<78I<,'7;I*II3+'2I.&67/5886I);I+;I0'15I/'I(=<99E&6661I0':H'7I(::6877:9I(6I1(2I(865G'G'9I)6I-&I(:755::I?-'::9I1(E&6	NM:i:1	MD:Z:7A198	oR:Z:1	oH:i:1	oP:i:33 [...]
+simulated.61	16	1	4713	255	182M1D7M	*	0	0	TATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGA	588(I8<67(1I5565(I65)I8:'+4II'/I(I3(I86:='H<6<6'H646;7448&*3II95;?)I3538'I66A',=I6'I::@(I4<(I'I;9(I(2I=6'1I985'/I'F9+I&)1II67885(I:'G)I7<(I:6'I67(I2;<8;(1I97(I87=8;88:;;:(I6&-I374(I6)6I:;77	NM:i:1	MD:Z:182G7	oR:Z:1	oH:i:1	oP:i:4712	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.62	16	1	1637	255	27M1D118M1D48M	*	0	0	GGGGCAAACAACACTAAGTGTAACGGAGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGCGTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGG	&+:I4&-I1(I358>'G>7<6'I2'I9C:'H86996(I8:<2<(I;;79:4:7'I'G(1I(I7'H9>'H(I8<375<76(I:976:86528698>6(I43:8(I::+I6&58893&*8I(I57:44'H6>78:4:(I434)I'H:*7I9;87(I'I82'0I'H1'G78646=954:8799)I58361'I59(I	NM:i:4	MD:Z:27G81GC35C48	oR:Z:1	oH:i:1	oP:i:1636	oS:A:R	 [...]
 simulated.63	0	1	4393	255	170M	*	0	0	CGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCC	4438856:788@=IH0)&G':7=538>4H'36:5I)I(E&86I.&9682H'69I(5;><>I+8II1)&695747G'66587;576I'I)I(4=98;I2(4I.&I/'I(7I=,'57:9I(7G'6<:6:988;5I-&;I)67I'H';54238F&58I(3;65<55=I/'8I)	NM:i:0	MD:Z:170	oR:Z:1	oH:i:1	oP:i:4392	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.64	0	1	161	255	1M1I109M1D38M1D40M	*	0	0	CGTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATC	5%565H'I2(88I(6784;7H'8>87I(:I(95I(I(=9I'I)9I(7898:974<I)6I(8G'I(882G'I(478:5G'II9.(&794I'I):;I(I'I/'I(03H'48:<I+47=8I)1;4786F&93I'9I*6872I)6I(I(G'I(I6)>8<5I(76I2(7469<66I)787I(5=8886I7*&68	NM:i:3	MD:Z:110^G38^T40	oR:Z:1	oH:i:1	oP:i:160	oS:A:F	XE:i:3	X [...]
+simulated.64	0	1	161	255	1M1I109M1D38M1D40M	*	0	0	CGTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATC	5%565H'I2(88I(6784;7H'8>87I(:I(95I(I(=9I'I)9I(7898:974<I)6I(8G'I(882G'I(478:5G'II9.(&794I'I):;I(I'I/'I(03H'48:<I+47=8I)1;4786F&93I'9I*6872I)6I(I(G'I(I6)>8<5I(76I2(7469<66I)787I(5=8886I7*&68	NM:i:3	MD:Z:110G38T40	oR:Z:1	oH:i:1	oP:i:160	oS:A:F	XE:i:3	XS: [...]
 simulated.65	0	1	7434	255	136M1I49M1I15M	*	0	0	AAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGTACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAACTAGTGGTGGAACAGT	F'7I8*&1388::386G'I(79I(I(697844I.&I1(6958686I(8>I*4I.'I(H'4:I(I(7;567=:56I3(<664I)I.&6=I/'H'I1(86I(I'G'I(467878I'7=G'I(784:I(;4;78I(4I(&;I(I(864H'3<8I(47I'@I'E&7I)5667:4;374I(8889<659H''5::5I'6I(I'8885	NM:i:2	MD:Z:200	oR:Z:1	oH:i:1	oP:i:7433 [...]
-simulated.66	16	1	3211	255	14M1D25M1D138M1I26M	*	0	0	AGGGAAGGTTGGCACCCGCTATTAAAAAGAACTGGGTGATTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACAGTGAAAGACCGGTATGTGAACAGTCTA	5&-I'I(I(I&E:7*6I=959(I%)0GI9'I56)5I:86*7I(I54<(I;'I',=I9:5'I98::5*I'G7)I4'H84'0I37(I438:;8;65:8'G7(I(I:'- at I4(I'I63=5(I68'I(I549'0I6773',>I6'F8='H(I;98;7&*8I(I'G;'0I79738(I2=968':9(1I7:'G'F>75=94)I78;5;84	NM:i:3	MD:Z:14^C25^T164	oR:Z: [...]
-simulated.67	0	2	58	255	175M1D21M	*	0	0	AGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTT	7I0'99I(6526I(387:8:969G'99:=1>:4:F'5I(I)878E&I*:866256::5F'>I/'9:I(I'I/':945;866I-&4299=7H'6I.&4I)7<79:I(G'95I=,'I(>45I'I1(I(I(84I':I/'I(9:::I+6I(7I(I)18.5>9>7I)4=4I(2I)I.'62I7*I,9I*:I(I(96868I1(	NM:i:1	MD:Z:175^C21	oR:Z:2	oH:i:1	oP:i:57	oS:A:F	XE:i:1	XS [...]
-simulated.68	16	1	538	255	34M1D73M1D81M	*	0	0	GCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGAC	499'/I2 at 7::7(I7;593)I5'I(I57728736,I<=267'/I71676=9(I?198:38'0I68(2I=)I:.;:77;9)I63856;9:'G9<(I69(I673'H77<(-7II(I528&-I746>(I(I;'/I4874498743(I6668;:88965(I176677;79&E1:8(I64;*I;8'/I6(I57	NM:i:2	MD:Z:34^T73^C81	oR:Z:1	oH:i:1	oP:i:537	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.69	16	1	1244	255	17M1D53M1I94M1D38M	*	0	0	TGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCGACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACG	8'I479<'0I76'H'I8*6I(I3(I6=?988(I65(I5=3(I655'H96:9(I(1I;(I3'/I'.I='0I&7'I2'H858'H&+<I8A68469642(I;&E'I=7'F'/I95/7>;='1I8;'H88*I8'0I9*I79(I(I952778;666958)I7664778:1*7I6'H9)I22(I8&.I579:;:)I8(I8766>8'G8&	NM:i:4	MD:Z:17^A147^A37T	oR:Z:1	 [...]
+simulated.66	16	1	3211	255	14M1D25M1D138M1I26M	*	0	0	AGGGAAGGTTGGCACCCGCTATTAAAAAGAACTGGGTGATTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACAGTGAAAGACCGGTATGTGAACAGTCTA	5&-I'I(I(I&E:7*6I=959(I%)0GI9'I56)5I:86*7I(I54<(I;'I',=I9:5'I98::5*I'G7)I4'H84'0I37(I438:;8;65:8'G7(I(I:'- at I4(I'I63=5(I68'I(I549'0I6773',>I6'F8='H(I;98;7&*8I(I'G;'0I79738(I2=968':9(1I7:'G'F>75=94)I78;5;84	NM:i:3	MD:Z:14C25T164	oR:Z:1	 [...]
+simulated.67	0	2	58	255	175M1D21M	*	0	0	AGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTT	7I0'99I(6526I(387:8:969G'99:=1>:4:F'5I(I)878E&I*:866256::5F'>I/'9:I(I'I/':945;866I-&4299=7H'6I.&4I)7<79:I(G'95I=,'I(>45I'I1(I(I(84I':I/'I(9:::I+6I(7I(I)18.5>9>7I)4=4I(2I)I.'62I7*I,9I*:I(I(96868I1(	NM:i:1	MD:Z:175C21	oR:Z:2	oH:i:1	oP:i:57	oS:A:F	XE:i:1	XS: [...]
+simulated.68	16	1	538	255	34M1D73M1D81M	*	0	0	GCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGAC	499'/I2 at 7::7(I7;593)I5'I(I57728736,I<=267'/I71676=9(I?198:38'0I68(2I=)I:.;:77;9)I63856;9:'G9<(I69(I673'H77<(-7II(I528&-I746>(I(I;'/I4874498743(I6668;:88965(I176677;79&E1:8(I64;*I;8'/I6(I57	NM:i:2	MD:Z:34T73C81	oR:Z:1	oH:i:1	oP:i:537	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.69	16	1	1244	255	17M1D53M1I94M1D38M	*	0	0	TGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCGACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACG	8'I479<'0I76'H'I8*6I(I3(I6=?988(I65(I5=3(I655'H96:9(I(1I;(I3'/I'.I='0I&7'I2'H858'H&+<I8A68469642(I;&E'I=7'F'/I95/7>;='1I8;'H88*I8'0I9*I79(I(I952778;666958)I7664778:1*7I6'H9)I22(I8&.I579:;:)I8(I8766>8'G8&	NM:i:4	MD:Z:17A147A37T	oR:Z:1	oH [...]
 simulated.70	16	1	7824	255	90M1I8M1I33M1I67M	*	0	0	CGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCTAATGGATTACGAATGCAATGCGACAGTCCGTGGTGTAGTAGTAGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCA	99'I:6;;77738*I8:8'1I83&.I'/I959(I;(I54;7:4:'I(1I8)I(I8;48979;5',<I6'I65;'H'I45244<55(2I89(&E:(I8'I%42'G;;6(I494744847)I67(I7 at 8;37976%7<7<(I67:;9(I=(I:)I796(I;&-I<7559385'/I9'/I(I48=(I(I6=2=4(I7'1I79<8	NM:i:3	MD:Z:198	oR:Z:1	oH:i:1	oP:i:78 [...]
-simulated.71	0	1	6005	255	19M1D49M1I21M1D62M1D57M	*	0	0	TTTCTGAGTGAAAAGAAAGCCCCCTATGATAGACATCCGACGTTATGAAACTGTACAGTACATACGGACGAGCTGGGACCTACTCAGCCGCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGG	I1(897538;I<,&5I-&5II6,(657;5557:?99H'D'77I(;98I0'9:97984885799:8I':%79;3;I/'7I)94<5<47I'<D9;6I(7=7;II1*&6I9+&77<I*<96I1'H';2867A;47746H'=I<,&I.&3695<56D9829I*1:I3(6<8I0'78456636767<6;?65:6I(8:;H'::;I(86I(;I0'	NM:i:5	MD:Z:19^C [...]
+simulated.71	0	1	6005	255	19M1D49M1I21M1D62M1D57M	*	0	0	TTTCTGAGTGAAAAGAAAGCCCCCTATGATAGACATCCGACGTTATGAAACTGTACAGTACATACGGACGAGCTGGGACCTACTCAGCCGCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGG	I1(897538;I<,&5I-&5II6,(657;5557:?99H'D'77I(;98I0'9:97984885799:8I':%79;3;I/'7I)94<5<47I'<D9;6I(7=7;II1*&6I9+&77<I*<96I1'H';2867A;47746H'=I<,&I.&3695<56D9829I*1:I3(6<8I0'78456636767<6;?65:6I(8:;H'::;I(86I(;I0'	NM:i:5	MD:Z:19C2 [...]
 simulated.72	0	1	7506	255	125M1I88M	*	0	0	ATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACGAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCC	74I/'9>76I)I0'79I.&H'I0'69I(H'I(I'846595I(86I(I'6349I)66<:6I);I(:I'H'86:I)<:5I(<?F&4I(I)=I'841;376744H'58498797I'>6<8F'=H'H';%;5:?9689:5I(I0':I(51I(9I0'I(72596;<8689G'668H'67I/'564;4I,&;3:D&56I(:86878I(I(I)55I(76I'	NM:i:1	MD:Z:213	oR:Z [...]
 simulated.73	0	1	3607	255	203M	*	0	0	AGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAG	77856I0'7I(89H'67I'?I;+&:;5886I)75;0I)65H'8767967I)<47I(:I(I:+&65I(4I)749I)I.&I<,&698:2I(H'314I'7999::6H':8I)96;7F'I'I+:9I.'72I(I1'I/'I'6I'<2I/'8266 at 2@89I-&<7I.'I):I.&76H'=548777I(3G';;9:I-&47I(I(396I(4>	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:3606	oS:A:F	 [...]
 simulated.74	16	1	6053	255	14M1I166M1I16M	*	0	0	AAACTGTACAGTACGATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACTACGATCCCTATAACGT	&.I=8:7:6586=5*7426+I=:;867(1I:'I677?:94*I:(I:47)I5886&)0II=&,<I<68'H559'0I*I964890=86427'I8&+:I&.I5852854'I7548&F64'/I:46(2I5:477:97?97886767=7'I6@>'I9;;'H85)I;'/I548<66'I67799;;8:&69=59'/I65:(I86<	NM:i:2	MD:Z:196	oR:Z:1	oH:i:1	oP:i:6052	oS:A:R [...]
 simulated.75	0	1	188	255	111M1I69M	*	0	0	TCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCGTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGA	8F'67H'I'87G'I(8I(53;9>:88<I)6G'0I(I(9?8I(I(55:A8I(II;/)&834I(I'98I(I'I0'I(=<I(;624I.&7435I'8;6:6?H'1;I(:I(7;;7'H';I(I(I(I(I:+&068<I)85I0';959<88I(846I(686759I8*&48<44I'I-&983I'7I(3	NM:i:1	MD:Z:180	oR:Z:1	oH:i:1	oP:i:187	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.76	16	1	5816	255	108M1I35M1D59M	*	0	0	TCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATACGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAA	867'G<=79)I9=8::<86665'H461492'H2:'G(I9:3)I=84==<<=48:=7(I68'H8'H85'I6'/I95)I&-I>:'.I:?83(I966<:78'/I(I&*9I:&5(2I5<7&+9I9(I(I(I(I589:936>8&E5866D8(I6)I6)I;'.I;:(I&E8:5<;4(I;7;278<7&-I9(I(I7'.I5856:9:'-?I	NM:i:2	MD:Z:143^T59	oR:Z:1	oH:i:1	oP [...]
+simulated.76	16	1	5816	255	108M1I35M1D59M	*	0	0	TCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATACGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAA	867'G<=79)I9=8::<86665'H461492'H2:'G(I9:3)I=84==<<=48:=7(I68'H8'H85'I6'/I95)I&-I>:'.I:?83(I966<:78'/I(I&*9I:&5(2I5<7&+9I9(I(I(I(I589:936>8&E5866D8(I6)I6)I;'.I;:(I&E8:5<;4(I;7;278<7&-I9(I(I7'.I5856:9:'-?I	NM:i:2	MD:Z:143T59	oR:Z:1	oH:i:1	oP: [...]
 simulated.77	0	2	66	255	212M	*	0	0	AGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCT	9;6?I(9:36;:989I(8:8;1=6:3I(4I(I'8=:I(G'=8<62;5755I'7I0'5<I(I(I/'78763556I/':67895I(;I/'7I)5;=0:I)G'::I8*&I(85:I(I/'I)I(63H'7I.'I(:577I(9I(9H'I(:8552657H'7:5H'6E&I/'99I=,'F'8H'8I)H';7889I/'I(1A:;976=55:<6<I(89I)7	NM:i:0	MD:Z:212	oR:Z:2	oH:i:1	o [...]
-simulated.78	0	2	38	255	52M1I101M1D34M1I12M	*	0	0	TTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATACGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTCGGTTTGTCCCAA	I0'7:848;:68I'I)83;68I.&54I'93:8I+:65:98839I(:867:8:&>:H';H'I'718I(G'79678<999=I'7I/'85I'I'I.&86877663I0'79;;74I(;I,&?H';;99;I'I(75I;+&I(9:7I(I/'I(I'48E&;I,I'68:8I(8H'7I*H'59967:6;I(28:I(:&H'I-&89I5)I*	NM:i:4	MD:Z:153^G44C1	oR:Z:2	oH:i:1	oP [...]
+simulated.78	0	2	38	255	52M1I101M1D34M1I12M	*	0	0	TTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATACGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTCGGTTTGTCCCAA	I0'7:848;:68I'I)83;68I.&54I'93:8I+:65:98839I(:867:8:&>:H';H'I'718I(G'79678<999=I'7I/'85I'I'I.&86877663I0'79;;74I(;I,&?H';;99;I'I(75I;+&I(9:7I(I/'I(I'48E&;I,I'68:8I(8H'7I*H'59967:6;I(28:I(:&H'I-&89I5)I*	NM:i:4	MD:Z:153G44C1	oR:Z:2	oH:i:1	oP: [...]
 simulated.79	16	1	1645	255	19M1I181M1I8M	*	0	0	CAACACTAAGTGTAACGGACGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGACATAGGTG	6'H;165)I963='H4'G8%)I5(I::474)I66;7?)I468@/<85(I(I'/I(I9'I84(I&E<@859688(I;3355:167:465;8)I<:98'H;7&,I95652;'-?I(I77:66'I at 6726;6'H96:(I(I;',>I154<'G(I94&.I'F4)I759<43:6::869<(I:87;7'I8>'/I'.I'G.85&*8I&;158'H6=	NM:i:2	MD:Z:208	oR:Z:1	 [...]
 simulated.80	0	1	1614	255	192M	*	0	0	CCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCA	F&:686I(G'I(5;I8*&;46H'I;+&6I0'6I)9886I'9548I*4I'7I(5I(27;<6I'7=;6;I'8457692:I(I(I1(H'6I*66G'I)66:22528I(9;96/5:65;995;:I'7985I(93I/'=;5:47I:+&I(:8554I)98;62<4I)::;I(E&6I;+&8;2<I(I(74I.&I(1I(<	NM:i:0	MD:Z:192	oR:Z:1	oH:i:1	oP:i:1613	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.81	0	1	8334	255	142M1D60M	*	0	0	GCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTG	5:9<I-&I(30:8I(88:I)I(=4I3(627G'5:6=5<5I(9:>I)58674;864284567568<I)9;I'39<I(778;63845;I)744;I(I(6?H'455:4I(66I)579;8I(187I(78874G'H'::<789I(I)I+9:5I5)8<I'84H'48786979:9796=H'392:I'7:I'7I(75I':I0'64:4I(0	NM:i:1	MD:Z:142^A60	oR:Z:1	oH:i:1	oP:i:8333	 [...]
-simulated.82	16	1	3809	255	72M1D112M1I17M	*	0	0	GTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGTACAGAGGTCCTGCCTGA	94691885477399:2816;'.I'I784:)I69<(I&.I'I5&F57797=;43='H8(I4'H6:75883'G7D=:99:64&).:II=798=789(I(I5(I28=9;558577;(2I6779'I9:@7(I26'0I:4'F'.I5:668278<'F(I47:6;5;6838:3'.I2'H;1'G:863'H7<&:67<9'H6(I43'G695	NM:i:2	MD:Z:72^G129	oR:Z:1	oH:i:1	oP:i [...]
-simulated.83	16	1	6031	255	22M1D153M	*	0	0	ATGATAGACATCCGGCGTTATGAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCAT	684;::873:5'G'I50'H859,I:5966:8:49737;5(I8;56;6&-I:'H8274<:4(I9'H895)I748?&*1II6&*7I974'G;>6'.I'I56:688;7==86(I9&+;I'.I857<078*I:793(I<7'/I66;'0I8;961:58638892578:6(I4=;(I699:	NM:i:1	MD:Z:22^A153	oR:Z:1	oH:i:1	oP:i:6030	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.84	0	1	6668	255	49M1D4M1D81M1I53M	*	0	0	TCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTACCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGT	785741688D&H'606655;57>53<I(8I)I)957<4I(797;:I)50I6):I,950I.'7II2*&852I(I)64678I)I)6657I(74I(8:4I;+&:65I'8F'8;7I(I(I'I(775I(I*4I>,'H'9(H'7:?5I)785:88I):713;I(1785>7:6675:I)I(8I-&:I)<<;;771	NM:i:3	MD:Z:49^C4^A134	oR:Z:1	oH:i:1	oP:i:6667	oS:A:F	XE:i:3	XS: [...]
-simulated.85	16	1	7073	255	102M1D10M1D91M	*	0	0	TCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAATGGGTATGACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGC	;7204(I6489(I;5689'H=(I86:2<5457'I;6'I:967(I-8'/I9(I'/I:4(I48'F(I6(3I&.I878'G9'H46>7)I57)I;:75;4;996(I,I7&.I5:96B'F44=762738:788372;6696(I?(I7;5'.I9>2:'H779'I69;'G<'H'F886(I=27;968697;3'-?I;5(I<'I:0:8896	NM:i:2	MD:Z:102^A10^A91	oR:Z:1	oH:i: [...]
+simulated.81	0	1	8334	255	142M1D60M	*	0	0	GCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTG	5:9<I-&I(30:8I(88:I)I(=4I3(627G'5:6=5<5I(9:>I)58674;864284567568<I)9;I'39<I(778;63845;I)744;I(I(6?H'455:4I(66I)579;8I(187I(78874G'H'::<789I(I)I+9:5I5)8<I'84H'48786979:9796=H'392:I'7:I'7I(75I':I0'64:4I(0	NM:i:1	MD:Z:142A60	oR:Z:1	oH:i:1	oP:i:8333	o [...]
+simulated.82	16	1	3809	255	72M1D112M1I17M	*	0	0	GTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGTACAGAGGTCCTGCCTGA	94691885477399:2816;'.I'I784:)I69<(I&.I'I5&F57797=;43='H8(I4'H6:75883'G7D=:99:64&).:II=798=789(I(I5(I28=9;558577;(2I6779'I9:@7(I26'0I:4'F'.I5:668278<'F(I47:6;5;6838:3'.I2'H;1'G:863'H7<&:67<9'H6(I43'G695	NM:i:2	MD:Z:72G129	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.83	16	1	6031	255	22M1D153M	*	0	0	ATGATAGACATCCGGCGTTATGAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCAT	684;::873:5'G'I50'H859,I:5966:8:49737;5(I8;56;6&-I:'H8274<:4(I9'H895)I748?&*1II6&*7I974'G;>6'.I'I56:688;7==86(I9&+;I'.I857<078*I:793(I<7'/I66;'0I8;961:58638892578:6(I4=;(I699:	NM:i:1	MD:Z:22A153	oR:Z:1	oH:i:1	oP:i:6030	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.84	0	1	6668	255	49M1D4M1D81M1I53M	*	0	0	TCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTACCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGT	785741688D&H'606655;57>53<I(8I)I)957<4I(797;:I)50I6):I,950I.'7II2*&852I(I)64678I)I)6657I(74I(8:4I;+&:65I'8F'8;7I(I(I'I(775I(I*4I>,'H'9(H'7:?5I)785:88I):713;I(1785>7:6675:I)I(8I-&:I)<<;;771	NM:i:3	MD:Z:49C4A134	oR:Z:1	oH:i:1	oP:i:6667	oS:A:F	XE:i:3	XS:i: [...]
+simulated.85	16	1	7073	255	102M1D10M1D91M	*	0	0	TCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAATGGGTATGACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGC	;7204(I6489(I;5689'H=(I86:2<5457'I;6'I:967(I-8'/I9(I'/I:4(I48'F(I6(3I&.I878'G9'H46>7)I57)I;:75;4;996(I,I7&.I5:96B'F44=762738:788372;6696(I?(I7;5'.I9>2:'H779'I69;'G<'H'F886(I=27;968697;3'-?I;5(I<'I:0:8896	NM:i:2	MD:Z:102A10A91	oR:Z:1	oH:i:1	 [...]
 simulated.86	16	1	603	255	12M1I57M1I108M	*	0	0	TCCCACCTATACTATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTAGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGC	<&-I6(I5;:86+5=8(I87<65897(I7:(I33'G388)I287&).9II'I886(1I46=4'I'H7'0I&6899629::5(I4:6:6;99789'G4=45;:686(I6:5(I8:>(I8<&.I;'H:4(I779:;3;594;(I5:87(I57(I57859(I'H6569'I'H;&-I'.I(I7	NM:i:2	MD:Z:177	oR:Z:1	oH:i:1	oP:i:602	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.87	16	1	9208	255	220M	*	0	0	GCGCACTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTTACCAGAACCTACCGTACATGCAGGGCTCATCGAATGCACTCACGAAATGCTGTAACAGCTCG	=:98<&,I:(I596<(I(I'I395(I4'G'/I?'I'I858'H9&-I*I:(I6?16:776(I'I5764(I'H77'G;:7)I463:86<'G8:7(1I82:'/I5C564*I7(I46=:'H)I556848416(I696(I:4;'G37654(I:'0I:3884)I6(I88)I'I1;)I968;69696'1I5766785'H5793;77938(3I95:899)I:465766	NM:i:1	MD:Z: [...]
 simulated.88	16	1	9102	255	185M	*	0	0	GGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACA	'H66377=46'I'H996377(I8(I:'I*I<5)I1(I85)I64)I8777'I642793427<(I(I'.I08'I:5='I4'1I55799496=69;66887889)I8:>97::8(2I9'H8>13'I)I*I?::'I;'I'1I;'I)I598*I:(1I)I8)I:4358<;7(I'I::84(I'F?;'H87>6	NM:i:0	MD:Z:185	oR:Z:1	oH:i:1	oP:i:9101	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.89	16	1	7410	255	87M1I67M1I11M1I36M	*	0	0	TGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAACTTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCGTGGAGGACCTTACAGAAGTGTTAGTTATTCCATTCTATAGTACGAATG	4989695;8?:6108'.I>)I8>?(I9'- at I965;730:3'I'I4:'F'H7?2987&.I'/I<154975(I6:(I5&.I'H(I01(I&'G6252;5:0@'/I67<:&D'0I9B&.I'I&-I75(I)I'G)I7;676@(I88'F(I993:(I;96/'8'I6'G5'I(I)66@'H783)I79)I9(I(I='G8=8;60=85<'H87	NM:i:3	MD:Z:201	oR:Z:1	oH:i:1	 [...]
 simulated.90	16	1	9109	255	214M	*	0	0	ATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAG	776)I(I7:9><4'I2)I:'G'G88'I6(I5;'I97(I620:)I7<46/97996(I'I'0I:;'G788(I5'.I364796::73:36;789688)I:=::7648(1I:'H::<3(I&D)I3<4'F7(I'.I8(I'H665&E9'0I(I<'G7=86?458'G(I3;97'G'H68'I656'I9>:6882(I65;'/I;:6&.I<:3 at 8&F<&F7::+	NM:i:0	MD:Z:214	oR:Z:1	o [...]
-simulated.91	16	1	4217	255	54M1D89M1D66M	*	0	0	CACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAG	68)I663530866?;97'H&,I7'/I'F*I(I26:95=97839564:(I&.I54C5779)I;'I'I;9'/I;7&+:I2857:5985(I(3I'/I158'I8995*I'0I;9697577489(I:)I(I68<(I9(I9'I(I59=4D791'G8:?278'I9878(I:9='/I64;3939968::9:8<49&*2II)I4469;662'I6;989	NM:i:2	MD:Z:54^A89^T66	oR [...]
-simulated.92	0	2	62	255	8M1D10M1D46M1I51M1D4M1D81M	*	0	0	CTGGAGTCATGCGCACGTAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGACCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGTTAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTC	35I'8551D26849:799B;;6587<77F&<I'I(47<I(I,05346943:6I)<I0'06I(I()I2(87569838I.'657937I(5I1(2I*7<783F'G'58I9*&F'775I(I,I'C8=I(=I.'I*885;I(2H':I(E&082697:8I(769I(5I(I.&9;I;+&H':I(9I(H'46994I1(G':65695:69	NM:i:5	MD:Z:8^A10^A97^G4^A81	oR [...]
+simulated.91	16	1	4217	255	54M1D89M1D66M	*	0	0	CACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAG	68)I663530866?;97'H&,I7'/I'F*I(I26:95=97839564:(I&.I54C5779)I;'I'I;9'/I;7&+:I2857:5985(I(3I'/I158'I8995*I'0I;9697577489(I:)I(I68<(I9(I9'I(I59=4D791'G8:?278'I9878(I:9='/I64;3939968::9:8<49&*2II)I4469;662'I6;989	NM:i:2	MD:Z:54A89T66	oR:Z [...]
+simulated.92	0	2	62	255	8M1D10M1D46M1I51M1D4M1D81M	*	0	0	CTGGAGTCATGCGCACGTAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGACCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGTTAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTC	35I'8551D26849:799B;;6587<77F&<I'I(47<I(I,05346943:6I)<I0'06I(I()I2(87569838I.'657937I(5I1(2I*7<783F'G'58I9*&F'775I(I,I'C8=I(=I.'I*885;I(2H':I(E&082697:8I(769I(5I(I.&9;I;+&H':I(9I(H'46994I1(G':65695:69	NM:i:5	MD:Z:8A10A97G4A81	oR:Z:2 [...]
 simulated.93	16	1	4973	255	201M	*	0	0	GTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTC	3(I7(I5:488'I79976)I4724(I6=8<76;'0I;'0I7<747 at 4)I8;5(I69'G:4'0I9&)/;II:',=I(I7565<9>B'G699(3I5>)I789*I5>837)I98'H9594'H;857:5556'I74:6:(I871*I86(I'F8'/I:'I9585::&*0<II37;;86:129'H774<(1I5:9(I:(I99;:(I4	NM:i:0	MD:Z:201	oR:Z:1	oH:i:1	oP:i:4972	oS:A:R	XE: [...]
-simulated.94	0	1	7822	255	65M1D127M1D4M1I1M	*	0	0	TGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGCTAC	9978I)86999;;:7H'4=8I1(64I-&I0'147I(5I(56=76<9G'I/'2G'I(6=:79557;I4)@H'223I'I(;9@;;8;1I1(44I(8G'9I(:9I(:28I'796;859=3I'7:G'>868568=88351F'7>959I(3G'3I(763H'4I3(<8;58;6;I/'5I.&I(325I)F':8696I(9I,9:':	NM:i:3	MD:Z:65^C127^G5	oR:Z:1	oH:i:1	oP:i:78 [...]
-simulated.95	16	1	7278	255	25M1I75M1I18M1D8M1I49M	*	0	0	TGGCCATCCTATTTTAACATAGTTAGTTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTCGTCAAAATATCCGCCATGCCTCGTAGTCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGG	3)I'H6/+I4:&+:I'H<7;74(I6%'I66(3I;9;'G7=6*I'1I:9'0I;98+I9:68(I6:78'H8569859;'H9879775<6'/I7=553(I53:<&7:3'- at I:-9(I6(I9;7,I572554''I&F63=:45:93:5497;0'0I8'I=67)I9',>I87:864997'I'H	NM:i:4	MD:Z:118^C57	oR:Z:1	oH:i:1	oP:i:7277	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.94	0	1	7822	255	65M1D127M1D4M1I1M	*	0	0	TGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGCTAC	9978I)86999;;:7H'4=8I1(64I-&I0'147I(5I(56=76<9G'I/'2G'I(6=:79557;I4)@H'223I'I(;9@;;8;1I1(44I(8G'9I(:9I(:28I'796;859=3I'7:G'>868568=88351F'7>959I(3G'3I(763H'4I3(<8;58;6;I/'5I.&I(325I)F':8696I(9I,9:':	NM:i:3	MD:Z:65C127G5	oR:Z:1	oH:i:1	oP:i:7821 [...]
+simulated.95	16	1	7278	255	25M1I75M1I18M1D8M1I49M	*	0	0	TGGCCATCCTATTTTAACATAGTTAGTTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTCGTCAAAATATCCGCCATGCCTCGTAGTCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGG	3)I'H6/+I4:&+:I'H<7;74(I6%'I66(3I;9;'G7=6*I'1I:9'0I;98+I9:68(I6:78'H8569859;'H9879775<6'/I7=553(I53:<&7:3'- at I:-9(I6(I9;7,I572554''I&F63=:45:93:5497;0'0I8'I=67)I9',>I87:864997'I'H	NM:i:4	MD:Z:118C57	oR:Z:1	oH:i:1	oP:i:7277	oS:A:R	XE:i:4	XS:i:0	XI:i:0
 simulated.96	0	1	2998	255	76M1I115M	*	0	0	AAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGACTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAG	F'8I)3I'I(I(853I'9I'6489:;95518:9I)6985;F'I*G'7I3(669I(9:;57I(8F'I.&33563389'@I-&I'/<I.&;8I(IA-(I(2678678788H'I(I(G'945939864869I)7:7I1'68448595I1(II2*&;77:;8:88I(89=:;7<86F'62>I(64746I'68I'26	NM:i:1	MD:Z:191	oR:Z:1	oH:i:1	oP:i:2997	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.97	0	1	5196	255	7M1I143M1I57M	*	0	0	ATTGCAAGGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCTATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGAC	5I'>5I)I-&I,&:78I2(I(H'77592392968:I/'796I(8I(I(5I(7=63I':I'657478>9;69G'94732I(I(7<5I.'I0'8617=?I(6:07I*I)H'6559I'F&454;;76I-&77I0'7I0'I)H'5E&5I(6899<*95:I.&48;>:9:I<,&<I(9I(925I-&988059/5:5I'25I(76:68>:I'<78	NM:i:2	MD:Z:207	oR:Z:1	oH: [...]
-simulated.98	0	1	5140	255	37M1D75M1I9M1I74M	*	0	0	ACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTACTTCAGCGCTCGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGC	95;4476484I(48:6I/'<67I)<I'85:6I(5798I5)9I'I0';77H'912H'I(68I'I)I/'=96I-&I'I(::7=:5;586;5I0'549I(:I'I)0I(9::<I(40I'<98;9<8(4<67I):9967I(I'874I1(I0'94;597I(:853I(I'G':869H'I'@::A;;4I.&;8I.&6I/'G'H'4	NM:i:3	MD:Z:37^C158	oR:Z:1	oH:i:1	oP:i:5139	oS [...]
-simulated.99	16	1	4917	255	89M1D64M1I33M1I52M	*	0	0	ATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCGTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTAGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCA	9:877<34*I6;6)I'H728746/:4569&E9)I77;4)I989)I:'0I(I'H6699(I9(I71>97'H662;:(I86;4*I778<35;,I8'.I363:::9(I385*I66(I:5'/I6&)/;II7&*9I(I;9;68587'I79<(1I17&E4&69'I89635)I:5(I8598(I;885784:5'I7%97>7'H:9:(I [...]
+simulated.98	0	1	5140	255	37M1D75M1I9M1I74M	*	0	0	ACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTACTTCAGCGCTCGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGC	95;4476484I(48:6I/'<67I)<I'85:6I(5798I5)9I'I0';77H'912H'I(68I'I)I/'=96I-&I'I(::7=:5;586;5I0'549I(:I'I)0I(9::<I(40I'<98;9<8(4<67I):9967I(I'874I1(I0'94;597I(:853I(I'G':869H'I'@::A;;4I.&;8I.&6I/'G'H'4	NM:i:3	MD:Z:37C158	oR:Z:1	oH:i:1	oP:i:5139	oS: [...]
+simulated.99	16	1	4917	255	89M1D64M1I33M1I52M	*	0	0	ATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCGTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTAGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCA	9:877<34*I6;6)I'H728746/:4569&E9)I77;4)I989)I:'0I(I'H6699(I9(I71>97'H662;:(I86;4*I778<35;,I8'.I363:::9(I385*I66(I:5'/I6&)/;II7&*9I(I;9;68587'I79<(1I17&E4&69'I89635)I:5(I8598(I;885784:5'I7%97>7'H:9:(I [...]
 simulated.100	16	1	6310	255	87M1I111M	*	0	0	GACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGACGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGC	66)I86>99><(I5378'/I5:8862'H'I'0I(I56)I98<5&*3II(I;;(I)I'I448864;(I<4=(2I<'I&.I'I7<'I<7%97948'G7679;607<)I&.I'H4885'/I558(I47(I568',>I59'F4<'H)I)I812(I64)I<9;'I587:9676(I4463(I86&F*I=893848975;;=&D54	NM:i:1	MD:Z:198	oR:Z:1	oH:i:1	oP:i:6309	oS:A:R	X [...]
-simulated.101	16	1	4348	255	9M1I145M1D49M	*	0	0	TAGGTGGCCGTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTG	:=(I8(I)I+48:7)I3::)I3828;5(I46:8)I898'/I<:58>9487:98975876&*2II(I;8983>92(I6755)I(I(I94&-I9768'H38'I7:=39'I:&*2II47;478(I7626856;:'I*I'G97;65&,I8(3I'.I'H8*7I6771(I3'G9:9658;;97'/I5(I4;)I(I587536'I56'G:72	NM:i:2	MD:Z:154^G49	oR:Z:1	oH:i:1	 [...]
+simulated.101	16	1	4348	255	9M1I145M1D49M	*	0	0	TAGGTGGCCGTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTG	:=(I8(I)I+48:7)I3::)I3828;5(I46:8)I898'/I<:58>9487:98975876&*2II(I;8983>92(I6755)I(I(I94&-I9768'H38'I7:=39'I:&*2II47;478(I7626856;:'I*I'G97;65&,I8(3I'.I'H8*7I6771(I3'G9:9658;;97'/I5(I4;)I(I587536'I56'G:72	NM:i:2	MD:Z:154G49	oR:Z:1	oH:i:1	o [...]
 simulated.102	0	1	8969	255	215M	*	0	0	GGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGC	I-&82:69I(;:8=9:76:;I-&6H'=I):4939565788I(469I.':79H'6:950;I'67?I(I(;I)858I(6;3784534E&3853I)I*85<96I.&F&I)3I*854;82I(778I.&I/':;=G'6H'818454;8I(I(:6;957I':I(8I'G'9<I'>I(66I'75I(.8<7H'365677478;I)I(I1(47I)636I(4I0'7	NM:i:0	MD:Z:215	oR:Z:1 [...]
 simulated.103	16	1	5708	255	169M	*	0	0	ACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGT	8:<59'/I;92;:(I(I8)I59<5)I7:6>7'I;9=(I679665&)0II(I57(I9=768(I&E<9<(I8635)I=5'G3907659:6&E&E;4'I(I<'H443;2;5389'H/::9(I9<396865696(I8;7996(I79(I(I538'I2:8=9483:78>>(I524	NM:i:0	MD:Z:169	oR:Z:1	oH:i:1	oP:i:5707	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.104	0	1	7684	255	181M	*	0	0	GTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGA	::7I.&497I)5;G'97=52<I(I(I)75I)8;G'H'88<7;H'6:6I)58;672I(I'I)587I(<::81:8I)I(I'95I1':72I9+&6I)I-&I*I(97>6I*:9:75I(38I2(76:9IH0)%;6I'I-&@6=64:3I+863698358I(/=3I/':9I.'I1(4::I(;I+<955	NM:i:0	MD:Z:181	oR:Z:1	oH:i:1	oP:i:7683	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.105	0	1	348	255	48M1D76M1I82M	*	0	0	ATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGACGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTG	9<1:59I)I0'3=3E&0I*7H'9I0'57848859IG0)%9I*E&5638I,I-&=768:8@::8I(I)I0'998:768;9I0'F'9;6I(35I'95I-&H'89876:9I(964I':/6654G'58&77788<7I'86F'<I(I(I(8<I8*&9<9276;H'64H'I<,'955I(6<I0'7=87I0'7I(I(796I0'534698G'<76	NM:i:2	MD:Z:48^A158	oR:Z:1	oH: [...]
-simulated.106	0	1	3610	255	17M1D57M1D90M1D15M1I38M	*	0	0	TCGGGAGGATGGTGTTATTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCAGCTAGATTGAACGTAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTC	86I3(3I)16G'96H'2I7*5958:8H'1:<8I):<I)252:434I)588G'3H'I;+&99I(<I)464I)I.'I5)3796;I(I(6<<I)993;85;G'69I(47::I(F&H'.8I-&71I)I-&I1'I*8I(8:I/'5=69<1:75I0'97I0'I(:I/'34B;78893:I(6G'=:&75I/':@I'H';5;I)7<3:84849459974763;9 [...]
+simulated.105	0	1	348	255	48M1D76M1I82M	*	0	0	ATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGACGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTG	9<1:59I)I0'3=3E&0I*7H'9I0'57848859IG0)%9I*E&5638I,I-&=768:8@::8I(I)I0'998:768;9I0'F'9;6I(35I'95I-&H'89876:9I(964I':/6654G'58&77788<7I'86F'<I(I(I(8<I8*&9<9276;H'64H'I<,'955I(6<I0'7=87I0'7I(I(796I0'534698G'<76	NM:i:2	MD:Z:48A158	oR:Z:1	oH:i [...]
+simulated.106	0	1	3610	255	17M1D57M1D90M1D15M1I38M	*	0	0	TCGGGAGGATGGTGTTATTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCAGCTAGATTGAACGTAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTC	86I3(3I)16G'96H'2I7*5958:8H'1:<8I):<I)252:434I)588G'3H'I;+&99I(<I)464I)I.'I5)3796;I(I(6<<I)993;85;G'69I(47::I(F&H'.8I-&71I)I-&I1'I*8I(8:I/'5=69<1:75I0'97I0'I(:I/'34B;78893:I(6G'=:&75I/':@I'H';5;I)7<3:84849459974763;9 [...]
 simulated.107	16	1	2449	255	63M1I106M	*	0	0	TTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAACTCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGT	)I@&.I9(I;8(I97:(I826;75=(I:0;69(I1445(I607855897958(I8(I(I)I)I%8;'H'I858?7(I:(I'I>(2I988;84875<95?6466(I87(I6'G18675<454684(I<'I9&*2II749)I65926677'0I(I80,:72>(I::&E2942	NM:i:1	MD:Z:169	oR:Z:1	oH:i:1	oP:i:2448	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.108	0	1	2272	255	127M1D52M1D13M	*	0	0	CTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCTAATGAATACA	4897I0'1I(9746867I(66545:9I(4666G':I'I9*&4I0'G'89I(I(:889I>,'57:G'8:9I-&95I0'4I'56564986I(3I)842<43;5662I'7:;<76:<8536II1*&25H'I,I(7969I'I-&I(E&6940I'I.'I/';?=I(73I(75I'656:69:I'4I,8H'=<I'5<57	NM:i:2	MD:Z:127^C52^C13	oR:Z:1	oH:i:1	oP:i:2271	oS:A:F	XE: [...]
+simulated.108	0	1	2272	255	127M1D52M1D13M	*	0	0	CTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCTAATGAATACA	4897I0'1I(9746867I(66545:9I(4666G':I'I9*&4I0'G'89I(I(:889I>,'57:G'8:9I-&95I0'4I'56564986I(3I)842<43;5662I'7:;<76:<8536II1*&25H'I,I(7969I'I-&I(E&6940I'I.'I/';?=I(73I(75I'656:69:I'4I,8H'=<I'5<57	NM:i:2	MD:Z:127C52C13	oR:Z:1	oH:i:1	oP:i:2271	oS:A:F	XE:i: [...]
 simulated.109	0	1	6950	255	184M	*	0	0	TATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATG	86I(96I2(3I(5486;283;I'5I(63:4I)I(7=96577<F';9;57I.&98G'79=I(8I)7I(64286I(I'6I.&F&11I)=<I;+&I)84498748:33:5I'63II1*&I/':I)56267>I(66;6I(;957:G';I(479=:6;:7I):5G'77<4I'9;I.&6I)I-&16I(<:	NM:i:0	MD:Z:184	oR:Z:1	oH:i:1	oP:i:6949	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.110	0	1	4598	255	64M1I13M1D46M1D40M1I40M	*	0	0	AGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGACATCAAATAGTGTACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGTCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTC	<785?:5764G'I/'676I.'595I)I(9I)2:7I'64953588I(7I.&8H'8369G'27I'7'475:I/'5:483?C;H'2:8:7I.&H'=77I(77873:I0'388I(I(<;775I(796:I,:872I(5>E&7;II1*&I/'I(8I(4>66F&:777I*4'482699:II3*&796=I(4525I(876I:+&7I)998I)8	NM:i:4	MD:Z:77^A46^T80	 [...]
+simulated.110	0	1	4598	255	64M1I13M1D46M1D40M1I40M	*	0	0	AGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGACATCAAATAGTGTACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGTCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTC	<785?:5764G'I/'676I.'595I)I(9I)2:7I'64953588I(7I.&8H'8369G'27I'7'475:I/'5:483?C;H'2:8:7I.&H'=77I(77873:I0'388I(I(<;775I(796:I,:872I(5>E&7;II1*&I/'I(8I(4>66F&:777I*4'482699:II3*&796=I(4525I(876I:+&7I)998I)8	NM:i:4	MD:Z:77A46T80	oR [...]
 simulated.111	0	1	6191	255	14M1I25M1I64M1I20M1I29M1I35M	*	0	0	CATCGCCGATAATCGATTCGCCAGGGATCAGCGGCAGTGCGGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACGTTATAGTGCGTCAGTAGACCGTGTGCTCGGAGACAAACGCTATCCGGTTTACCGCAACTAGCCCCCAACACCAAGGTGCGCATGGA	48?83H';:8E&97%9I(7<I)9I-&;;;:69D&679873G';7 at 38<<I-&:33I(96;7;8;I/'978748I-&77956I.':I(::I9*&5I)I.&666746+I'777689398380<7:;I'':7:8?99H'95:9I0'248974I(H'I0')H'64I)356;II1)&I*/6G'I)I)9;6655=I*4	NM:i:5	MD:Z:187	oR:Z:1	oH:i:1	oP:i:6190	oS:A [...]
-simulated.112	0	1	3568	255	50M1I1M1I8M1D38M1D90M1I24M	*	0	0	TTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGTAGTGGTGTTATTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATAGTATTTCTAAATTGAAACTCCAGC	I(:;6858I(I)G'I)5>I'66I.&2976G'I(I'I(68.916:I-&5I)&7&7I'3<F'8I5)758975I':44;I)<7I*78>5895I);35I)7I(I6)A8I'7I+4;8G'I/'I<+&716;<I'I)964I)88965;8G'79F&<855F'I(I)44I/'68I)I.'I.&I)7I(9;I.'55<<9:';8:I1(<9I-&I)9I1(:7I(;88	NM [...]
+simulated.112	0	1	3568	255	50M1I1M1I8M1D38M1D90M1I24M	*	0	0	TTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGTAGTGGTGTTATTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATAGTATTTCTAAATTGAAACTCCAGC	I(:;6858I(I)G'I)5>I'66I.&2976G'I(I'I(68.916:I-&5I)&7&7I'3<F'8I5)758975I':44;I)<7I*78>5895I);35I)7I(I6)A8I'7I+4;8G'I/'I<+&716;<I'I)964I)88965;8G'79F&<855F'I(I)44I/'68I)I.'I.&I)7I(9;I.'55<<9:';8:I1(<9I-&I)9I1(:7I(;88	NM [...]
 simulated.113	0	1	7138	255	63M1I63M1I67M	*	0	0	GTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGTCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAACTGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGT	7I.'I1(<37I(7H'74::E&98I)8;8679259=H'I.&5I.'6877I'I*5;>85;08966%64478:6579I)8I(624I/'9;69E&485G'736I'7G'I(638I(89?=58;2<58<ID/(&<9I'0I(45:26687I(G'3:I(84I9*&I(<:48<I(7I(87I/'?<9I(:5;I*I-&<:I1'9:7	NM:i:2	MD:Z:193	oR:Z:1	oH:i:1	oP:i:7137	oS:A:F	XE:i:2 [...]
 simulated.114	16	1	3385	255	203M	*	0	0	TGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATT	79979=8&-I<:'I&F<86466(I2934;97'F'/I(1I937='I87777698899863587(I3539;',=I<8'H'+3II8'0I:6:8855'F7(I6&.I71'0I(I778<'H:=5='0I6'H8(I86547:32&E6'1I5)I8?8&E(I6*I4&.I(I5>8749',<I90=(1I(I'I77(I:48:63(I(I(I'I;9)I	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:3384	oS:A: [...]
 simulated.115	0	1	7806	255	7M1I90M1I56M1I38M	*	0	0	GCCCCCTAGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCAGTACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTT	5IG0)%4'7I'I1'964777:I)9=96548<4H'5;3I-&4?I-&I,&688I(8I(7999:>7I(I-&;H'I(;64829488I?-'<I(988I)I(;4&3525>1I1(99E&;I(7I(69I'657I(<7:944654I*=8I*8249732723;<6I-&>55;6I'4I):I'9;6I+5I2(497;;788I/'3F'	NM:i:3	MD:Z:191	oR:Z:1	oH:i:1	oP:i:7805	oS:A:F	XE:i [...]
-simulated.116	0	1	413	255	3M1D38M1I32M1I8M1D54M1D35M1I35M	*	0	0	GCCGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCGATTAGTCCATGCAGAACGCGCACAGTTGAGGCTAAGGCCGTAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTACACGAATACTGTCTTTCTCCCACCTATACATGAAG	DI(I,433785668I/'F':48H'57I'72I.&I'87767<&9G'758I(964387I(:8;979>8:E&97H'<&I'I(I(:9I7*4855456I)7;I(I?-'888I)8=I1(;656I0'>I)I+>98I.&8=6:66C9989<H'6I(H':84=9959I/':64:8I0'::5&346:H'435777:I-&85I-&7F&84779989I(6	NM:i:6	MD: [...]
-simulated.117	0	1	3269	255	2M1I46M1D164M	*	0	0	CGTCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATG	65&7I(63:89I'I)5I'8I(;8I1(>1I(657::;574=6G'8H'I(6I5)6I'G'56:1G'7;I)I'346I/';<87I9+&6H';4I*I)7:687I?-'H'H'=I0'=<7:4I)6<:5526I-&7=I(I(747;75G':794=66H'I1(I1'8559I(5=86;;76=86=<686<I(76586I<,&63I(IG0)%8I/'>7;56=9E&95	NM:i:2	MD:Z:48^T1 [...]
+simulated.116	0	1	413	255	3M1D38M1I32M1I8M1D54M1D35M1I35M	*	0	0	GCCGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCGATTAGTCCATGCAGAACGCGCACAGTTGAGGCTAAGGCCGTAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTACACGAATACTGTCTTTCTCCCACCTATACATGAAG	DI(I,433785668I/'F':48H'57I'72I.&I'87767<&9G'758I(964387I(:8;979>8:E&97H'<&I'I(I(:9I7*4855456I)7;I(I?-'888I)8=I1(;656I0'>I)I+>98I.&8=6:66C9989<H'6I(H':84=9959I/':64:8I0'::5&346:H'435777:I-&85I-&7F&84779989I(6	NM:i:6	MD: [...]
+simulated.117	0	1	3269	255	2M1I46M1D164M	*	0	0	CGTCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATG	65&7I(63:89I'I)5I'8I(;8I1(>1I(657::;574=6G'8H'I(6I5)6I'G'56:1G'7;I)I'346I/';<87I9+&6H';4I*I)7:687I?-'H'H'=I0'=<7:4I)6<:5526I-&7=I(I(747;75G':794=66H'I1(I1'8559I(5=86;;76=86=<686<I(76586I<,&63I(IG0)%8I/'>7;56=9E&95	NM:i:2	MD:Z:48T16 [...]
 simulated.118	0	1	6674	255	187M	*	0	0	GTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACA	:79I)I'4678895;4:74;H'<I(I(/1746I(7 at 7:2I)85I<+&:I.':3;I1'9IH0)%689I(I(77269I'I(8563I(79I*:<:I8*&56:I(<I(739H'I(I(I(988G'I(8I8*&I):I(5=<9H':8955:G'=77;3I*861>9524=5:6I'I'7I/'3I(99;689I(789	NM:i:0	MD:Z:187	oR:Z:1	oH:i:1	oP:i:6673	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.119	0	1	8135	255	59M1I1M1I61M1I56M	*	0	0	TATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACTACGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTCGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCG	5586:77G'865:=>284==I at -':96;I(I/'I(66I(669G'6I)I/'3688I'7;8&:&8I/'82;7I'H':7I)83286294I(6I);7G'3:6578I/'H'65I(77999I(8I'I(7%8<<88I(5697<I)2=I(<867:;4839I(I'H'I/'I(76986I(86I):I)918	NM:i:3	MD:Z:177	oR:Z:1	oH:i:1	oP:i:8134	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.120	16	1	7486	255	18M1I3M1I93M1I72M1I7M	*	0	0	TTTAAGGCTAATTGATGCTATAGTCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTACTAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAAGTGTGGTG	(2I'H)I33'H(I946;9%>9;&7'0I8<55'H'0I=8(1I'H'0I69'H'I)I'H59779<(I59'G(I;482)I87965'H5'G7(I'I579(I621&F96)I8(I(I6(I886%34<7480(I;8:8=325'H66<5(I6(I(IC778737;497'G'.I6'H61(I8'.I(I8575:<;566;'I%;4>'H68	NM:i:4	MD:Z:193	oR:Z:1	oH:i:1	oP:i:7485	 [...]
 simulated.121	0	2	161	255	98M1I106M	*	0	0	ATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATACTGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCG	;H'I(75I<+&I(:37H'I1(I(H'98I):I-&I)8.6:I(8I);I'I(8<66563;I'569G'8I(I/':8I=,'E&7I)3I(I(::784I0'I)83*28:3457=8887I)59I(I2(7874H';8I(57I(97:667<:6;764:5:9I(145487598885:I0'F'I(2=6;:27I(I(I'5:966<77:I(:74I(<:8	NM:i:1	MD:Z:204	oR:Z:2	oH:i:1	oP:i:160 [...]
-simulated.122	16	1	1570	255	113M1I70M1D36M	*	0	0	TATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCTATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAG	5740'0I(I887797696(I741558::97&-I45<756:)4I4'I807:(I(I(I;8&+:I566(I&*8I8'0I5)I<:48)I4842)I7(I:'I:)I<9959'I;8988&F'74?55<;8(I'I'/I)I6(I64)I'I832<6993)I;63;8:78:557539)I:6:2(I6;&.I1;6677)6I)I839;8(I6?664::(I:;6'I(I4&+;I:68	N [...]
-simulated.123	0	1	2950	255	95M1D20M1I82M	*	0	0	CCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGATCTTATGTCTTCAATTTAGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCC	G'6:I(6B84H'8H'6875552I(6I(686377=9I(766676I2(5I0'<I)8I(I(H'6 at 9I(:E&6<56775>:5756I'7566:I'I'I+6I,764I(666 at 1I'6I)I,&&8594843:;I-&D&2:I2(86I(I=,'I(74568:=;6:G'H'I'E&>939888;8:37I):63I.&62796:>6I/'I8*&	NM:i:2	MD:Z:95^G102	oR:Z:1	oH:i:1	oP:i:2949	oS: [...]
+simulated.122	16	1	1570	255	113M1I70M1D36M	*	0	0	TATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCTATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAG	5740'0I(I887797696(I741558::97&-I45<756:)4I4'I807:(I(I(I;8&+:I566(I&*8I8'0I5)I<:48)I4842)I7(I:'I:)I<9959'I;8988&F'74?55<;8(I'I'/I)I6(I64)I'I832<6993)I;63;8:78:557539)I:6:2(I6;&.I1;6677)6I)I839;8(I6?664::(I:;6'I(I4&+;I:68	N [...]
+simulated.123	0	1	2950	255	95M1D20M1I82M	*	0	0	CCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGATCTTATGTCTTCAATTTAGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCC	G'6:I(6B84H'8H'6875552I(6I(686377=9I(766676I2(5I0'<I)8I(I(H'6 at 9I(:E&6<56775>:5756I'7566:I'I'I+6I,764I(666 at 1I'6I)I,&&8594843:;I-&D&2:I2(86I(I=,'I(74568:=;6:G'H'I'E&>939888;8:37I):63I.&62796:>6I/'I8*&	NM:i:2	MD:Z:95G102	oR:Z:1	oH:i:1	oP:i:2949	oS:A [...]
 simulated.124	16	1	5766	255	222M	*	0	0	CTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTT	57(I&F8::(I74<5(I67(I662<=;666)I)I:3(I(I6'H6:;596:89<'I;866'G356:;58/8;6(I565628(I:2(I(I994(I<69/880663<6=)I6<(I<(I78'I8'0I83'G&.I55'/I36:;'I7879597&.I&E&+;I55'.I=97&*8I9)I*I'I(I786:>55::'I5576(I9'I9)I2'I9&-I89(I'H;:85:=(I	NM:i:0	 [...]
-simulated.125	16	2	171	255	117M1I4M1D8M1I73M	*	0	0	TAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATAGTTACATCTATATCGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGA	6'H663'I&,I(I(I:8(I9&.I(I<997(I:(I:(I(I4866986:(I654)I4'H'1I5:&+:I(I4(I8'I(I856:6&.I'I876185:;328447(I95'H'0I<776'F59&(I54D:8;:978'57;55<=265'G996;9;56<7>44(1I(I)I95046;=*I(I'H:7<8<<778(I697(I24&-I8/&+;I4	NM:i:3	MD:Z:121^A81	oR:Z:2	oH:i [...]
+simulated.125	16	2	171	255	117M1I4M1D8M1I73M	*	0	0	TAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATAGTTACATCTATATCGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGA	6'H663'I&,I(I(I:8(I9&.I(I<997(I:(I:(I(I4866986:(I654)I4'H'1I5:&+:I(I4(I8'I(I856:6&.I'I876185:;328447(I95'H'0I<776'F59&(I54D:8;:978'57;55<=265'G996;9;56<7>44(1I(I)I95046;=*I(I'H:7<8<<778(I697(I24&-I8/&+;I4	NM:i:3	MD:Z:121A81	oR:Z:2	oH:i: [...]
 simulated.126	16	2	174	255	130M1I60M	*	0	0	CTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCACTGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGC	435)I'/I(I'I7;)I8'1I'G5838(I6(I2*I(I:7<=70;3(I4:7(I;(I&-I58&*9I)I:)I9*I)I54>27'/I(I96798774<:6588'G:4'I(1I:?68(I75&E4='G4;7;4:685;'27<3960(I7103?7987;6=6(2I'I(I6972758'I(I)I7;489;69:'I>85(I88	NM:i:1	MD:Z:190	oR:Z:2	oH:i:1	oP:i:173	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.127	16	1	2627	255	109M1D48M1D21M	*	0	0	ACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCTTTGGTGCTATGTCCCCTAA	985688%)0HI7<(I@(2I63(I68:;49979:)I8;850A*I;978)I97:;96577586;&E588'I79:<<96586'G7'H768678:26:67'H5&,<I36'/I7,I',<I4;(I=08'/I(I61/;7:7(I:5'I*I6&+;I:89997)I37D(1I'I84799468&+;I9(I	NM:i:2	MD:Z:109^T48^C21	oR:Z:1	oH:i:1	oP:i:2626	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.128	0	1	3292	255	207M	*	0	0	GTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGAC	*:66E&96:42567793I';F&I*6I9+&5I(I(8149I(9:I)I+75;I.'4;7:I8*&6I(67I'I*8798;I=,'I)I(;I0'56<3;I(;6:5592I/';7G'I'286698G'587<339I(I/'I.&7:58I(9 at 6768697598649;<F'74;86I9+&>9G'II3*&4I1(688598;I(6I(8I-&47I.&G'6764:	NM:i:1	MD:Z:0T206	oR:Z:1	oH:i:1	oP:i:3 [...]
-simulated.129	0	1	7153	255	13M1I9M1D173M	*	0	0	GCGCAACGTTAGACGATCATAGGAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACT	459;I*69I'665'5<79:66I*I+7I0'476<I(I(:9438636789;158756180E&4F'6:3I0'9458I(87:I'497I'6E&F&74BI'::<7::7836>7I<+&:6I(;I(77:22<:.I(I'77H'96I;+&I(783:4I'6I)22I1(539H'106I(I.'59I-&886I'7<<6I(8677I)888;	NM:i:2	MD:Z:22^A173	oR:Z:1	oH:i:1	oP:i:7152	oS:A:F	 [...]
-simulated.130	0	1	3757	255	149M1D46M	*	0	0	GTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGC	967I.'63I3(I(=I/'2=I(9887:49I'5I(8599I.'88I)I'464I'6<:699:8;4;3<7954:785I0'I*1:83D&58;I(I2(H'6I)75266887;7I(9H'2I(6<:8891H'7I(>5875:6II>0*'84;44682G'A5I)474:6687;464I0'<;58I)6;50I)74I.&7=I(I0'97:	NM:i:1	MD:Z:149^G46	oR:Z:1	oH:i:1	oP:i:3756	oS:A:F	XE:i:1 [...]
-simulated.131	0	1	6205	255	131M1D16M1D53M1I12M	*	0	0	ATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCGGTTTCCGCAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTACGTCGACAAGGGC	;I(52I'8I1'8+4<:9I(;9>91675898956I2(75:I(8=4<;68I0'338566I3(79784I/'7I'58I:+&4I)I/'27779:I)8;574:1;7<9588<5G'7;?7449F'877<I/'3?:866DI(I0'I(38I'7<67IC.(I':0I(I*I'5746979I(5:=I.'5I(I3(H'78I(2878837F&9:7&77;861I)I0';	NM:i:3	MD:Z [...]
+simulated.127	16	1	2627	255	109M1D48M1D21M	*	0	0	ACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCTTTGGTGCTATGTCCCCTAA	985688%)0HI7<(I@(2I63(I68:;49979:)I8;850A*I;978)I97:;96577586;&E588'I79:<<96586'G7'H768678:26:67'H5&,<I36'/I7,I',<I4;(I=08'/I(I61/;7:7(I:5'I*I6&+;I:89997)I37D(1I'I84799468&+;I9(I	NM:i:2	MD:Z:109T48C21	oR:Z:1	oH:i:1	oP:i:2626	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.128	0	1	3292	255	207M	*	0	0	GTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGAC	*:66E&96:42567793I';F&I*6I9+&5I(I(8149I(9:I)I+75;I.'4;7:I8*&6I(67I'I*8798;I=,'I)I(;I0'56<3;I(;6:5592I/';7G'I'286698G'587<339I(I/'I.&7:58I(9 at 6768697598649;<F'74;86I9+&>9G'II3*&4I1(688598;I(6I(8I-&47I.&G'6764:	NM:i:1	MD:Z:T206	oR:Z:1	oH:i:1	oP:i:32 [...]
+simulated.129	0	1	7153	255	13M1I9M1D173M	*	0	0	GCGCAACGTTAGACGATCATAGGAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACT	459;I*69I'665'5<79:66I*I+7I0'476<I(I(:9438636789;158756180E&4F'6:3I0'9458I(87:I'497I'6E&F&74BI'::<7::7836>7I<+&:6I(;I(77:22<:.I(I'77H'96I;+&I(783:4I'6I)22I1(539H'106I(I.'59I-&886I'7<<6I(8677I)888;	NM:i:2	MD:Z:22A173	oR:Z:1	oH:i:1	oP:i:7152	oS:A:F	X [...]
+simulated.130	0	1	3757	255	149M1D46M	*	0	0	GTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGC	967I.'63I3(I(=I/'2=I(9887:49I'5I(8599I.'88I)I'464I'6<:699:8;4;3<7954:785I0'I*1:83D&58;I(I2(H'6I)75266887;7I(9H'2I(6<:8891H'7I(>5875:6II>0*'84;44682G'A5I)474:6687;464I0'<;58I)6;50I)74I.&7=I(I0'97:	NM:i:1	MD:Z:149G46	oR:Z:1	oH:i:1	oP:i:3756	oS:A:F	XE:i:1	 [...]
+simulated.131	0	1	6205	255	131M1D16M1D53M1I12M	*	0	0	ATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCGGTTTCCGCAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTACGTCGACAAGGGC	;I(52I'8I1'8+4<:9I(;9>91675898956I2(75:I(8=4<;68I0'338566I3(79784I/'7I'58I:+&4I)I/'27779:I)8;574:1;7<9588<5G'7;?7449F'877<I/'3?:866DI(I0'I(38I'7<67IC.(I':0I(I*I'5746979I(5:=I.'5I(I3(H'78I(2878837F&9:7&77;861I)I0';	NM:i:3	MD:Z [...]
 simulated.132	16	1	280	255	55M1I30M1I112M	*	0	0	ATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATACTGGACGCACAAAATCATCTTGGGATAGGACGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCA	45776;)I;9)I=(I7654(I8(I(I(I)I',=I7928(I97&-I55;:6::'IA&83(I:==965&+<I<<:57(I&.I966(I7%'I9(I5'1I65::8947'+3II6(I(I8:=9'/I'0I6:7<6944 at 6(I'H(2I870=39976(1I'F848(I33'H55(1I)I:885;;5'G<6;'I6689<3(I:92264	NM:i:2	MD:Z:197	oR:Z:1	oH:i:1	oP:i:279	oS:A: [...]
 simulated.133	0	1	928	255	71M1I111M	*	0	0	GATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATCGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCG	69;77I/'I(88I.'31I(1:?;:;9717:758>58;9I(85;;89I'47478:89:965I(6I.&88G'8)I(I0':6538I*I.&I'9I1(42:;I(2I.&:35876I1(2;78989I)62I)<I(;;597I'I(65824?4I(65I;+&49E&46595I/'8I(44I2(69I*64:8577	NM:i:1	MD:Z:182	oR:Z:1	oH:i:1	oP:i:927	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.134	0	1	1906	255	89M1I54M1I27M	*	0	0	TCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGAGTCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATAGTTTGCTAATAACCCAATGTCGCCCCTC	8795I)99G'I(97;I(745I';67=8I(6H';I(48:I*8=9I(786=9686I(348:I;+&95I(779;69:6I(5D&7I-&I-&79&765E&8892F'=I(6:<83II4+'6:I(969=9H'9599869>586;I)5777=&I.&9:3I(7I'I-&H'64:89I=,':7	NM:i:2	MD:Z:170	oR:Z:1	oH:i:1	oP:i:1905	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.135	16	1	6068	255	30M1I46M1D127M	*	0	0	TACGGAGAGCTGGGACCTACTCAGCCGCCACTGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATT	448)I39;7<7(1I3(I97<95=8(I;(I5%56'H3675&*1II6&+;I658'I<:4'.I&D:548:48;;695(I9*6I&-I866:>67(I4857+I24&-I;77'/I248;6<6774765566655'H<49'I746(I:?'H5(3I:44597(I7@@>;9255;8:65&.I54;(I6675:;;'/I895389'0I3/=<@(I	NM:i:2	MD:Z:76^C127	oR:Z:1	oH:i:1 [...]
-simulated.136	0	1	4210	255	72M1D59M1D31M1D30M	*	0	0	CGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGACGTTAGGTGGCCTCTATTACGCCATCGAGATGCGTTCGCTTTAGTGACGTGATATAGTG	5I/'6:I(8I(:572;6976386;I)I1(5I.&F'G'I)76<877208:776;=E&I-&23I)<83:I(4I(C?;I.&5;I9+&7;88<<539F'I0'I,&;47I'767:I'I1(<68684::8<8I(9I)D58;H'9I)6I*F'9777H':16I(3835::B5566I(68;I.&98687594758354838	NM:i:3	MD:Z:72^G59^G31^A30	oR:Z:1	oH:i:1	oP:i:4209	oS: [...]
+simulated.135	16	1	6068	255	30M1I46M1D127M	*	0	0	TACGGAGAGCTGGGACCTACTCAGCCGCCACTGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATT	448)I39;7<7(1I3(I97<95=8(I;(I5%56'H3675&*1II6&+;I658'I<:4'.I&D:548:48;;695(I9*6I&-I866:>67(I4857+I24&-I;77'/I248;6<6774765566655'H<49'I746(I:?'H5(3I:44597(I7@@>;9255;8:65&.I54;(I6675:;;'/I895389'0I3/=<@(I	NM:i:2	MD:Z:76C127	oR:Z:1	oH:i:1	 [...]
+simulated.136	0	1	4210	255	72M1D59M1D31M1D30M	*	0	0	CGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGACGTTAGGTGGCCTCTATTACGCCATCGAGATGCGTTCGCTTTAGTGACGTGATATAGTG	5I/'6:I(8I(:572;6976386;I)I1(5I.&F'G'I)76<877208:776;=E&I-&23I)<83:I(4I(C?;I.&5;I9+&7;88<<539F'I0'I,&;47I'767:I'I1(<68684::8<8I(9I)D58;H'9I)6I*F'9777H':16I(3835::B5566I(68;I.&98687594758354838	NM:i:3	MD:Z:72G59G31A30	oR:Z:1	oH:i:1	oP:i:4209	oS:A:F [...]
 simulated.137	0	1	1792	255	216M	*	0	0	CTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTG	8I'59I/'H';I(89794786:43667I(264:2I*64I2(I0'H';77I;+&:756I'6I(G'I(:I(576G'456:G'I)37;64;49648I'I(457I(I1(4F'78;I(57668I)27H'I'768I'944I(9;84;I(5F'5I(342I(973I(7766;268I(:7?4I:+&9:I(74983:4=I'5H':I/'I0';799;I)879:I'76	NM:i:0	MD:Z:216	oR:Z [...]
-simulated.138	16	1	976	255	41M1D157M	*	0	0	ATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATAC	9:786;:;59.8*I4'/I::(I;(I'/I3:<58(I'0I)I3*I6337'H1'.I87:>:7(2I7955876(I6:(I5(I8;8<4)I(I:<:669:'I;8'-?I22(I9;787&.I6)I85'0I69*I6558576985:6;'I'0I6;=938<(I78)I684987;5&+;I'F948:9:287856;'H8'H9:4387:9<	NM:i:1	MD:Z:41^C157	oR:Z:1	oH:i:1	oP:i:975	oS:A:R	X [...]
+simulated.138	16	1	976	255	41M1D157M	*	0	0	ATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATAC	9:786;:;59.8*I4'/I::(I;(I'/I3:<58(I'0I)I3*I6337'H1'.I87:>:7(2I7955876(I6:(I5(I8;8<4)I(I:<:669:'I;8'-?I22(I9;787&.I6)I85'0I69*I6558576985:6;'I'0I6;=938<(I78)I684987;5&+;I'F948:9:287856;'H8'H9:4387:9<	NM:i:1	MD:Z:41C157	oR:Z:1	oH:i:1	oP:i:975	oS:A:R	XE [...]
 simulated.139	16	1	2571	255	99M1I3M1I97M1I7M	*	0	0	TAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGTACACTGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGACGGGGCG	3(I7)I6'+3II<58)I8989>:=9'1I(I>:58;67'I7=(I966:647(I45:8884987&*2II;;(I5&-I6:(I76;>7;6997'G59;:<4(I&77:*5(I>6;68<2>99449*I;<=(I:34598:858(I;(I<9::7591:75;(I6&+:I:3&.I:(1I&*8I68'I61='/I(I8:9 at 686'H56)I'I&=&+:I35	NM:i:3	MD:Z:206	oR:Z: [...]
 simulated.140	0	1	8606	255	224M	*	0	0	AGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAG	5<H'699I<,'I/'I'<925;I=,'9785776I.&:95057797;887I(7F'881H'8I(787I0':I(6I)06E&76.I)I(I'958I at -'I)?=I-&I)I2(I(7I'I0'I0'G'I.&<96748:89I3(4H'8<I(:8I(I(977I)I0'5879?:3I>,'::8G'<7596;66978I(=8I.&26;I(8453466I(I(766594I(5623>9;63I)7	NM:i [...]
 simulated.141	0	1	5311	255	66M1I138M	*	0	0	AGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTCGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAAC	89782793I.&63I0':I0'G'I(8I'7I':;646789I2(7785;:8I?-'5I'9G'<8;I/'7?'87966898G'16I(9<8;839I)99=I.&:42=7I(9I'8I0':I)29II1)&2<:5<I(:=996366I';3F&57895:I(8645;789:G'I(5<6I(5I(9<<588I(H'=F'4<587I'75:543;5I(8I-&3	NM:i:1	MD:Z:204	oR:Z:1	oH:i:1	oP:i:53 [...]
-simulated.142	0	1	2828	255	7M1D188M	*	0	0	TCGATATAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGA	977378:I7*=8II1*&;:3564I(575I)8/1I(;6:3;I)I(6I*4<877I)=;I)74I(:6=3I/'?758=I)58668855677563I(87764I=,'5I'3476I(95;1I'6:5;I.&86I(65;9I)5I(9<58967I(<G'3776<185G':8;985I0':I1(7I(5I(I(I(;96I(9I(73=58<	NM:i:1	MD:Z:7^A188	oR:Z:1	oH:i:1	oP:i:2827	oS:A:F	XE:i:1	X [...]
-simulated.143	16	1	8516	255	1M1I100M1D77M1D16M	*	0	0	TAGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGCCAGCCCTTAAAG	9((I9(I68(I5&.I:8;0(I8)I;6058::)I(I46<39(I)I&)0HI6<7:&+;I67'F3905'0I9(1I1)I<'G5658'G6(I;=/(I9'H59;'- at I+I(I55979&+:I377<87:'0I:9:>6;2<5:8;4(I='H47>'H8(I>87'.I8'I;,I9;'I827(I'I(I;85)5I(I47(3I(I&-I5	NM:i:3	MD:Z:101^C77^G16	oR:Z:1	oH:i:1	oP:i:8515 [...]
-simulated.144	0	1	8726	255	122M1I6M1D40M	*	0	0	GCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCACTAGCAAGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACG	76<5;;685;I-&;G'::F'19I(I(:69I)I/'<8;7259I8*&725H'47170=56<66G';:I0'47;H'4;8799:I(I(98:766I(6;;78<49=I(8I)I)8I(II2*&66I'37&8755I(I,4F&I-&74=H'87497H';:H'5I.&I-&H'49497:7	NM:i:2	MD:Z:128^G40	oR:Z:1	oH:i:1	oP:i:8725	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.142	0	1	2828	255	7M1D188M	*	0	0	TCGATATAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGA	977378:I7*=8II1*&;:3564I(575I)8/1I(;6:3;I)I(6I*4<877I)=;I)74I(:6=3I/'?758=I)58668855677563I(87764I=,'5I'3476I(95;1I'6:5;I.&86I(65;9I)5I(9<58967I(<G'3776<185G':8;985I0':I1(7I(5I(I(I(;96I(9I(73=58<	NM:i:1	MD:Z:7A188	oR:Z:1	oH:i:1	oP:i:2827	oS:A:F	XE:i:1	XS [...]
+simulated.143	16	1	8516	255	1M1I100M1D77M1D16M	*	0	0	TAGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGCCAGCCCTTAAAG	9((I9(I68(I5&.I:8;0(I8)I;6058::)I(I46<39(I)I&)0HI6<7:&+;I67'F3905'0I9(1I1)I<'G5658'G6(I;=/(I9'H59;'- at I+I(I55979&+:I377<87:'0I:9:>6;2<5:8;4(I='H47>'H8(I>87'.I8'I;,I9;'I827(I'I(I;85)5I(I47(3I(I&-I5	NM:i:3	MD:Z:101C77G16	oR:Z:1	oH:i:1	oP:i:8515	o [...]
+simulated.144	0	1	8726	255	122M1I6M1D40M	*	0	0	GCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCACTAGCAAGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACG	76<5;;685;I-&;G'::F'19I(I(:69I)I/'<8;7259I8*&725H'47170=56<66G';:I0'47;H'4;8799:I(I(98:766I(6;;78<49=I(8I)I)8I(II2*&66I'37&8755I(I,4F&I-&74=H'87497H';:H'5I.&I-&H'49497:7	NM:i:2	MD:Z:128G40	oR:Z:1	oH:i:1	oP:i:8725	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.145	16	1	5688	255	209M	*	0	0	TAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCT	97'I'I7)I6'H99'/I5&-I6481'.I94298*I)I:'H:959(I187<3'I499*I=5=864&*2II(I88)I09454'I(I489(I9567(I97(I542;;:658&D(I84'H(I;(I5<95:5655;(I9269)I<6;;44569>8)I6865=7'H54'G(I923'G9;994=5988435'H59'I6'G9<&E9'1I:6(I&.I&	NM:i:1	MD:Z:208G	oR:Z:1	oH:i:1	oP [...]
 simulated.146	0	1	8535	255	121M1I70M	*	0	0	TGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAACGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGG	<7I(88<79:2I(I';8873I(F&II2*&8754I at -'69I(77=:I.&1I/'6I)7I)762:I(;I'8:7I(6I(7<8I8*&I1'G'7<>98I9+&775:646I1(838588885<:48I(&6I(;86I*6I)678I.&8I(6I(2;G'7;9I'I*I(825I<,'I(98I.&E&I0'I(4G'I-&I1(I(I'	NM:i:1	MD:Z:191	oR:Z:1	oH:i:1	oP:i:8534	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.147	16	1	5042	255	51M1I41M1D87M1I38M	*	0	0	CATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCGTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATACTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCG	6?&+9I)I5=7=66=6'I648'0I;6)I=39'H7:777)I:8)I:766'F8*6::>2687)I37734)I=99)I48'G)I8'0I9'I6;72:7(-7II<=876;37;3&E95:>'/I735(I7*I5889(I8995',>I6(I'.I585(I:?9&F)I8='G'I(2I817&-I(I(I664='6<876658'0I6;8(I<(I)I:&E988;(I9'I79964 [...]
+simulated.147	16	1	5042	255	51M1I41M1D87M1I38M	*	0	0	CATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCGTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATACTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCG	6?&+9I)I5=7=66=6'I648'0I;6)I=39'H7:777)I:8)I:766'F8*6::>2687)I37734)I=99)I48'G)I8'0I9'I6;72:7(-7II<=876;37;3&E95:>'/I735(I7*I5889(I8995',>I6(I'.I585(I:?9&F)I8='G'I(2I817&-I(I(I664='6<876658'0I6;8(I<(I)I:&E988;(I9'I79964 [...]
 simulated.148	16	1	6323	255	182M	*	0	0	AGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCAT	9484'0I55:928(I(I&-I(I77)I10:7%)0GI(I88(I'I)I87464:<)I864'.I9)I&.I(I8;(I5809;9:'F35:8=:4=:&F(1I'H8789'/I7:6'H72(I698',=I8:'H:C(I(I(I999(I99'H?66+I64=47<97)I4945(I66(I'H4799793;3:754>	NM:i:0	MD:Z:182	oR:Z:1	oH:i:1	oP:i:6322	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.149	16	1	7662	255	51M1I166M1I3M	*	0	0	TGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGTAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATACGT	4<696388(I<36(I64)4I668=6'0I=97)I74'I668:9=(I(I'H51&'H75(I(I77678'I;59'I66:498(I(I(I63:'H397579>*I)I(I53(2I559',<I:(I'1I(I'H7654'H4884<(I88&.I559:&*1II65'I'/I8788;87*I675<54977(I965'/I46(1I'/I7;;(I4)I4896654'G'/I:(I'G:%5< [...]
-simulated.150	16	1	6682	255	84M1D56M1I33M1D29M	*	0	0	ACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATAGTAGGAGAGCACATACACCGGTGGGTAATACGCGTACACCGTGGGCGTCTTAACCCTACCGGC	753723<97763)I9'I'IB847:)I75895(I:3',<I4'.I768&-I;'+4II98:(I(I0;8:4(I'I69:8)I39)I8<7*7I461(I:'H628(I(I'G(I:76(I(I0'-AI'H9(I5;4>'I76<;7=)I286'86'G87;;546558>;(I*I4&.I6(I;9;;;7C368(I98&-I4:<8'I(I(2I34'H(I4	NM:i:3	MD:Z:84^G89^T29	oR:Z:1	o [...]
-simulated.151	0	2	23	255	96M1D4M1I96M	*	0	0	TGGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGTCGTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTT	5I(6637<78I(I'AI.':7>:07250I(I(9347<I0'87I(4495I(9958:33;6H'>59778;;8I(2I)I)587I*I(4377<678:7I'9I+<5&I'F&I.'62;77;93I/'9<64;7I(<I4);I(98;:;I(I'76I:+&I(667G'I.&I(F':8I(6I-&H'9:;9I(<I)8H'I)697374;2H'	NM:i:2	MD:Z:96^G100	oR:Z:2	oH:i:1	oP:i:22	oS:A:F	XE: [...]
-simulated.152	0	1	3752	255	47M1D160M	*	0	0	CAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTA	=;<6:957I4)59I2(H'1I-&26I(89;;6::I(5I'535;I1(7BCI(067I)8=683286:/794767977;<I.'G'47<8I'685I'I/'E&3I'6889698<<8I'7H'9I)88:5594I'6I(94;55<7II9.)&98929354I(I(7I'84497885>987I.'<93<I(96:6H':9I.&68I)I1'584;2739=5	NM:i:1	MD:Z:47^G160	oR:Z:1	oH:i:1 [...]
-simulated.153	0	1	7797	255	3M1D6M1D83M1I53M1D32M1I3M1D15M	*	0	0	TACGGATAGCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCGTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGTGTAGTAGTGTATAACTCTGAATAAGAAGATACCACCATAGCGATCCCGT	:27I+846:ID.(77I(I0';274967I(;56489:39I(678I-&54I0'I/'769I)7I)8949746I'I1(:F&F'577769779I at -'&9I(46;I'I(9687>826I2(87I'5I':I)79I(867G'551679729I'38C729;8=8;788<:I(9464=I';G'8I'68=)I'5I,9887899:I1'81	NM:i:6	MD:Z:3^G6^C136^G35^C15	oR [...]
+simulated.150	16	1	6682	255	84M1D56M1I33M1D29M	*	0	0	ACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATAGTAGGAGAGCACATACACCGGTGGGTAATACGCGTACACCGTGGGCGTCTTAACCCTACCGGC	753723<97763)I9'I'IB847:)I75895(I:3',<I4'.I768&-I;'+4II98:(I(I0;8:4(I'I69:8)I39)I8<7*7I461(I:'H628(I(I'G(I:76(I(I0'-AI'H9(I5;4>'I76<;7=)I286'86'G87;;546558>;(I*I4&.I6(I;9;;;7C368(I98&-I4:<8'I(I(2I34'H(I4	NM:i:3	MD:Z:84G89T29	oR:Z:1	oH: [...]
+simulated.151	0	2	23	255	96M1D4M1I96M	*	0	0	TGGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGTCGTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTT	5I(6637<78I(I'AI.':7>:07250I(I(9347<I0'87I(4495I(9958:33;6H'>59778;;8I(2I)I)587I*I(4377<678:7I'9I+<5&I'F&I.'62;77;93I/'9<64;7I(<I4);I(98;:;I(I'76I:+&I(667G'I.&I(F':8I(6I-&H'9:;9I(<I)8H'I)697374;2H'	NM:i:2	MD:Z:96G100	oR:Z:2	oH:i:1	oP:i:22	oS:A:F	XE:i [...]
+simulated.152	0	1	3752	255	47M1D160M	*	0	0	CAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTA	=;<6:957I4)59I2(H'1I-&26I(89;;6::I(5I'535;I1(7BCI(067I)8=683286:/794767977;<I.'G'47<8I'685I'I/'E&3I'6889698<<8I'7H'9I)88:5594I'6I(94;55<7II9.)&98929354I(I(7I'84497885>987I.'<93<I(96:6H':9I.&68I)I1'584;2739=5	NM:i:1	MD:Z:47G160	oR:Z:1	oH:i:1	 [...]
+simulated.153	0	1	7797	255	3M1D6M1D83M1I53M1D32M1I3M1D15M	*	0	0	TACGGATAGCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCGTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGTGTAGTAGTGTATAACTCTGAATAAGAAGATACCACCATAGCGATCCCGT	:27I+846:ID.(77I(I0';274967I(;56489:39I(678I-&54I0'I/'769I)7I)8949746I'I1(:F&F'577769779I at -'&9I(46;I'I(9687>826I2(87I'5I':I)79I(867G'551679729I'38C729;8=8;788<:I(9464=I';G'8I'68=)I'5I,9887899:I1'81	NM:i:6	MD:Z:3G6C136G35C15	oR:Z:1 [...]
 simulated.154	16	1	8097	255	43M1I19M1I35M1I99M	*	0	0	ACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTACTAATGTGAGTCTCGAAAACGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACGAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCC	6)I5;8:76'G(I*I:75)I66(I(I65:>'H7294:67=;3:%45)I5659283965;&*8I)7755&D&-I(I38(I34:)I9'H'1I9958(I695&99&-I93;7'G(I56&D><59:=87(I8(I66)I93<612'0I(I86'I9536;(I6'I(I27652?'H2>5;6)I5:'I595:996;:8)I*I'I(2I	NM:i:3	MD:Z:196	oR:Z:1	oH:i:1	oP:i:8096 [...]
-simulated.155	0	2	156	255	35M1D60M1I19M1D39M1I38M	*	0	0	CTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGACTTTAATATGATGTCGTCGTCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACGTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAG	<453;:F&G'48I:+&I*?63I(I.&I(H'7:I*5I,I(6;=5I(6I)8F'I(87;77239H'468I(<I'I0'=4I>,'H';I'7H'I)97396(I3(I(8=;4842:<<9>75D<9I)I/'84;<I)77H'78I'584<:76479;71;5;5&H'986<<75<:6759I0'I)G':874594H'I)I(;57	NM:i:4	MD:Z:35^G79^C77	oR:Z:2	oH:i:1	oP:i:155	oS [...]
-simulated.156	16	1	4516	255	4M1I37M1D23M1I43M1D88M	*	0	0	CGTCGTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTGCCGCTAGTCGGTGATCACTTCGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCG	8867&7:88<'/I;(I7?(I'F8976:6(I83'G<68837=:,I5'H7787/94'HD7<:85;(I''I:9'H4&.I6;<:(I77588<77=86(I&-I885&-I58;(IC5'H584'I849895=4)I5'0I3(I:9;5'H87(I55679&-I8849:6(I7*I381:4(2I'I709'G:8744<'/I39='F(I5:	NM:i:4	MD:Z:41^T66^G88	oR:Z:1	oH:i:1	oP [...]
-simulated.157	16	1	204	255	73M1I94M1D10M1D15M	*	0	0	GGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTAGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGTGTGTCGCAAAATGGCCTAGCAA	(I67870776>(I8'H5)I'H889'G)I84985(I&)/:II7;6*I'H:9&E'G'0I'I;5(I=<42'0I8<6'4'F563698(I75(I2(I745;(I8'H'I'H(I&*8I8715'G76'/I=7;689>)I3:4'I597>7:&*8I5873:)I&.I:99)I5'G8'I4,I98949487(/DI/*I'G8<38'F	NM:i:3	MD:Z:167^G10^A15	oR:Z:1	oH:i:1	oP:i:203	oS:A: [...]
-simulated.158	0	1	2588	255	20M1D140M1I65M	*	0	0	TAGTAGTATTTAATGCTCATGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGTATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGA	46375637I/'G'74883<8D9;E&6:65>63I(553=5:57;6II1)&76I'5I1(22I)6285;=>3?9I):55684I(8453I(6:55=:4986641I)958I';:;87233<<F&6G'59475:667:94H'4I>,'07I/'9I/'I>,'88I)2<(6I0'I);994::9I'23I)G'0I?-'467386I'<1I(I2(E&;:6;:498I=,'8 [...]
-simulated.159	0	1	880	255	53M1D89M1I67M	*	0	0	CCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGACGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTT	I,E&457<8:I(I(66;:8I'348I:+&<I'>2:79629974:I at -'I)4788I,I(83I1'43I'48;66972/97661=<699I(7:787:I(8;585:47:556I(4I/'87I(6I(I0'66:79I(I2(I(<I1'674)6I)8I/':7686:I1'<9;757;I(57I)4I)66382I'I'57779<1H'98I9+&67I'77357I'	NM:i:2	MD:Z:53^C156	oR:Z [...]
-simulated.160	0	1	3091	255	50M1D93M1D42M	*	0	0	CCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATG	I,H'<98:518527I*I'I(G'5859672<56;9I(658I/'95975483I,II1)&669:413<7I(;;978;489I'871I(:;::3I(65G'967H'I/'87I(I'3I(859I1'::I.'I)G'I'I(;8I9+&5=>7I(IE/(8G'77I0':;8I>,'I)89:I(2I(I<,'478I*7485	NM:i:2	MD:Z:50^G93^A42	oR:Z:1	oH:i:1	oP:i:3089	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.161	16	1	4602	255	83M1D113M	*	0	0	ATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGT	577899(I'/I965&-I:44(I'H:)I76<(I:;58758;(I9&.I9'H7769(I27(I57757&-I2C:4=3(I4(I69:;7+I'H45:(I466848(1I<65(I)I;3781'I5988(3I5895'G65(I84'+4II(3I'I2'F2763'G:467(I>:524498&*3II1957&E0677)I?76',>I5)I;9	NM:i:1	MD:Z:83^G113	oR:Z:1	oH:i:1	oP:i:4601	oS:A:R	XE: [...]
-simulated.162	0	1	2702	255	30M1D108M1D67M	*	0	0	TCGCTTCGGACAGCATAGTGATTCGGGGTGTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATG	659<I)9I*96:7:;935:72I'=I;+&57I,6I-&I<,':2I':59I/'I(6876587I'36I'F&4I<+&;76:85I(>;I(I/'I'5:1;:A;9I<+&:I(;I=,';I.&75:;I(7;6239;:8979:I<,&9;ID.(:46:8:G'808H'497I'726;9I)G'6E&9;842I'==I(83I(7<63I0'79679I(3:41	NM:i:2	MD:Z:30^T108^A67	oR:Z:1	o [...]
+simulated.155	0	2	156	255	35M1D60M1I19M1D39M1I38M	*	0	0	CTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGACTTTAATATGATGTCGTCGTCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACGTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAG	<453;:F&G'48I:+&I*?63I(I.&I(H'7:I*5I,I(6;=5I(6I)8F'I(87;77239H'468I(<I'I0'=4I>,'H';I'7H'I)97396(I3(I(8=;4842:<<9>75D<9I)I/'84;<I)77H'78I'584<:76479;71;5;5&H'986<<75<:6759I0'I)G':874594H'I)I(;57	NM:i:4	MD:Z:35G79C77	oR:Z:2	oH:i:1	oP:i:155	oS:A [...]
+simulated.156	16	1	4516	255	4M1I37M1D23M1I43M1D88M	*	0	0	CGTCGTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTGCCGCTAGTCGGTGATCACTTCGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCG	8867&7:88<'/I;(I7?(I'F8976:6(I83'G<68837=:,I5'H7787/94'HD7<:85;(I''I:9'H4&.I6;<:(I77588<77=86(I&-I885&-I58;(IC5'H584'I849895=4)I5'0I3(I:9;5'H87(I55679&-I8849:6(I7*I381:4(2I'I709'G:8744<'/I39='F(I5:	NM:i:4	MD:Z:41T66G88	oR:Z:1	oH:i:1	oP:i [...]
+simulated.157	16	1	204	255	73M1I94M1D10M1D15M	*	0	0	GGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTAGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGTGTGTCGCAAAATGGCCTAGCAA	(I67870776>(I8'H5)I'H889'G)I84985(I&)/:II7;6*I'H:9&E'G'0I'I;5(I=<42'0I8<6'4'F563698(I75(I2(I745;(I8'H'I'H(I&*8I8715'G76'/I=7;689>)I3:4'I597>7:&*8I5873:)I&.I:99)I5'G8'I4,I98949487(/DI/*I'G8<38'F	NM:i:3	MD:Z:167G10A15	oR:Z:1	oH:i:1	oP:i:203	oS:A:R	 [...]
+simulated.158	0	1	2588	255	20M1D140M1I65M	*	0	0	TAGTAGTATTTAATGCTCATGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGTATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGA	46375637I/'G'74883<8D9;E&6:65>63I(553=5:57;6II1)&76I'5I1(22I)6285;=>3?9I):55684I(8453I(6:55=:4986641I)958I';:;87233<<F&6G'59475:667:94H'4I>,'07I/'9I/'I>,'88I)2<(6I0'I);994::9I'23I)G'0I?-'467386I'<1I(I2(E&;:6;:498I=,'8 [...]
+simulated.159	0	1	880	255	53M1D89M1I67M	*	0	0	CCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGACGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTT	I,E&457<8:I(I(66;:8I'348I:+&<I'>2:79629974:I at -'I)4788I,I(83I1'43I'48;66972/97661=<699I(7:787:I(8;585:47:556I(4I/'87I(6I(I0'66:79I(I2(I(<I1'674)6I)8I/':7686:I1'<9;757;I(57I)4I)66382I'I'57779<1H'98I9+&67I'77357I'	NM:i:2	MD:Z:53C156	oR:Z: [...]
+simulated.160	0	1	3091	255	50M1D93M1D42M	*	0	0	CCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATG	I,H'<98:518527I*I'I(G'5859672<56;9I(658I/'95975483I,II1)&669:413<7I(;;978;489I'871I(:;::3I(65G'967H'I/'87I(I'3I(859I1'::I.'I)G'I'I(;8I9+&5=>7I(IE/(8G'77I0':;8I>,'I)89:I(2I(I<,'478I*7485	NM:i:2	MD:Z:50G93A42	oR:Z:1	oH:i:1	oP:i:3089	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.161	16	1	4602	255	83M1D113M	*	0	0	ATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGT	577899(I'/I965&-I:44(I'H:)I76<(I:;58758;(I9&.I9'H7769(I27(I57757&-I2C:4=3(I4(I69:;7+I'H45:(I466848(1I<65(I)I;3781'I5988(3I5895'G65(I84'+4II(3I'I2'F2763'G:467(I>:524498&*3II1957&E0677)I?76',>I5)I;9	NM:i:1	MD:Z:83G113	oR:Z:1	oH:i:1	oP:i:4601	oS:A:R	XE:i [...]
+simulated.162	0	1	2702	255	30M1D108M1D67M	*	0	0	TCGCTTCGGACAGCATAGTGATTCGGGGTGTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATG	659<I)9I*96:7:;935:72I'=I;+&57I,6I-&I<,':2I':59I/'I(6876587I'36I'F&4I<+&;76:85I(>;I(I/'I'5:1;:A;9I<+&:I(;I=,';I.&75:;I(7;6239;:8979:I<,&9;ID.(:46:8:G'808H'497I'726;9I)G'6E&9;842I'==I(83I(7<63I0'79679I(3:41	NM:i:2	MD:Z:30T108A67	oR:Z:1	oH: [...]
 simulated.163	0	1	2202	255	105M1I14M1I71M	*	0	0	CTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGACCTTTTCTTTAAGAGTTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGG	7I)8:II7-(%58:4I<,&37 at 4I'387655592744:65I)::I1(81;<I(463;=9767;7993I'I(7<4I/'8I(68959;8I(:96587;I(6:4:I';)I)I at -'9I.&I(96%I)I'6553I9+&695I(9>8I0'7=I1(@E&:>6:59:6I'8I(676525<;899I(697675567568I,	NM:i:2	MD:Z:190	oR:Z:1	oH:i:1	oP:i:2201	oS:A:F	XE:i:3	XS:i [...]
-simulated.164	0	1	4997	255	40M1D46M1I81M1D4M1I33M	*	0	0	AAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGTAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGTCGACTTCACTCCCCAGGAAATCACCGCTAATTGCAA	I):77A:66I1'7I.&;494:8>I)7:8I'8;I(96I.&7II5+'7I9+&I(6465<4<:I(::<I/'65I)996I)77815H'56-I)9=86I'9;46;6866G'46989H'415I(64I)I'5I1(:G'858:78II:.)&9;69:6569:I'29;7I/'954I(7D694&5I'9845I8*&9I(I0';98H':3 at I(H'45E&	NM:i:4	MD:Z:40^C127^G3 [...]
-simulated.165	0	1	1417	255	106M1D82M	*	0	0	AATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTC	G'56I*5I-&379438I(3H'7;8567G':9:8H'H'5I.&3H'E&I-&:4879I)=5;>:5I.&688<35H'I'9I*I'754<457456977843I(I-&85;7=I,755IF/)%H'I'@8I(I(3783/5:I.&64757<:8;E&4:5938921I1(I'93<773899I(86757698<8I0'998	NM:i:1	MD:Z:106^C82	oR:Z:1	oH:i:1	oP:i:1416	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.166	16	1	8569	255	22M1D14M1I14M1I50M1D95M1I3M	*	0	0	AAATACCATCAGGGCTTTCGGTCGCTCTTAGGACGAGAGTTCGTAAAACCCGAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACGTAA	)4I44(I<;6:'/I2(3I8'I;C7487'I4'H(:(8=D7*I=46',=I&.I&'H739:7&+<I17<9758'.I3:2488;:68179(I8'G8;7'G:'G689,I@(I1)I9:)I918&E'G'G068',<I'H=4(3I'H(1I)I4'G'.I(1I'H&-I4258::8=6&.I:*I74'F:6)I(I::8)I'/I76:659'6'G	NM:i:7	MD:Z:22^C10C0A66^A9 [...]
+simulated.164	0	1	4997	255	40M1D46M1I81M1D4M1I33M	*	0	0	AAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGTAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGTCGACTTCACTCCCCAGGAAATCACCGCTAATTGCAA	I):77A:66I1'7I.&;494:8>I)7:8I'8;I(96I.&7II5+'7I9+&I(6465<4<:I(::<I/'65I)996I)77815H'56-I)9=86I'9;46;6866G'46989H'415I(64I)I'5I1(:G'858:78II:.)&9;69:6569:I'29;7I/'954I(7D694&5I'9845I8*&9I(I0';98H':3 at I(H'45E&	NM:i:4	MD:Z:40C127G37	 [...]
+simulated.165	0	1	1417	255	106M1D82M	*	0	0	AATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTC	G'56I*5I-&379438I(3H'7;8567G':9:8H'H'5I.&3H'E&I-&:4879I)=5;>:5I.&688<35H'I'9I*I'754<457456977843I(I-&85;7=I,755IF/)%H'I'@8I(I(3783/5:I.&64757<:8;E&4:5938921I1(I'93<773899I(86757698<8I0'998	NM:i:1	MD:Z:106C82	oR:Z:1	oH:i:1	oP:i:1416	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.166	16	1	8569	255	22M1D14M1I14M1I50M1D95M1I3M	*	0	0	AAATACCATCAGGGCTTTCGGTCGCTCTTAGGACGAGAGTTCGTAAAACCCGAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACGTAA	)4I44(I<;6:'/I2(3I8'I;C7487'I4'H(:(8=D7*I=46',=I&.I&'H739:7&+<I17<9758'.I3:2488;:68179(I8'G8;7'G:'G689,I@(I1)I9:)I918&E'G'G068',<I'H=4(3I'H(1I)I4'G'.I(1I'H&-I4258::8=6&.I:*I74'F:6)I(I::8)I'/I76:659'6'G	NM:i:7	MD:Z:22C10CA66A98	o [...]
 simulated.167	0	1	5476	255	44M1I162M	*	0	0	ACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACTAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGC	69I(:<76><I(I'6I)1;287G'768975:7F'5I/'57I'99'I2(I1(:6<78I(>66I1(69G'I)I/'5I(7<65I(9I(777I'9773256F'8I(83;9:;15<878I*7;I)G':8435:I);57:54G'2<I'86;;;94C954663:57I'966:F'66:48<I3(;;I(<88<H'476D&694I(67I'I<+&868	NM:i:1	MD:Z:206	oR:Z:1	oH:i:1	oP: [...]
 simulated.168	0	1	4904	255	203M	*	0	0	TTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTC	I'96I(H'95H'I(8;<8:8:I'799I(I(29625<:7;74;I(:I(<:18I(;74I'3I0'I*I(6=94I(5I(<4383I'86<6=H'5=56I(5;6977:I/':I.'3<:=<68I(?;6I(43H':3I0'7II9.)&7I8*&I(:22876:9I(9:;I0'45I*4:6H'44786I'97F'56:8I(<79839:67I)8<;>	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:4903	oS:A:F [...]
-simulated.169	0	1	1246	255	30M1I32M1D89M1D48M	*	0	0	GTCTGTTTAGCCAATAAAACCGTTATCACACGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAAC	:458:I-&:=I)G'9I9+&G'5I(958=5:(I'58I)32;I)767I(8698I(I0'7I(5I0'I,9I/'8I)5H'962I'I>,'9;;77:3888I(9I)F'5=I(I/'9528774I0'86I)71I':I2(:I);<I'I)9:::64;;7<77<A148:8762<I9+&4I)6I)77H'<I.&;54767I)6E&969<;8I'9	NM:i:3	MD:Z:62^T89^T48	oR:Z:1	oH:i:1	o [...]
-simulated.170	16	1	2378	255	12M1D17M1D17M1D96M1D36M	*	0	0	GTCTGTGCTCACGGGGCTAACCCTTCTGTGCCCGGTTAGTCAATTTAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGG	857;65:;;748(.BI97'I'/I(I645:C(2I'I(I6;65'I&-I,I;56'G47(I<;'H6886992(I6&-I>)I8:*I:94'H9777;41'G58:87(I7;55&E79<8=8:86977'H:)I(I(I(I7;&E*I68877D:)I(I7&-I5;7<44:97:994<468'H4<)I:'I	NM:i:4	MD:Z:12^G17^G17^A96^T36	oR:Z:1	oH:i:1	oP:i:2377	oS:A:R	XE:i:4	XS:i:0	XI:i:0
-simulated.171	0	1	2395	255	15M1D25M1I90M1D75M	*	0	0	CTAACCCTTCTGTGGCCGGTTAGTCAATTTAAAGTGAATAGTTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAAT	8:H'I2(I(8874I)I,I(I)4389I(I-&I0'321H'85&I'77I(434:A63I)4I/'5I)4;I(673G'7567569F'67:97I)8<:9H'58774:;<?:47I(9G'I)E&I(9:G'I(=5654I(5CI(2I.&5897:4<8668965?59I(66H'1I(8695;<085877I)5I'6II1*&769I(8?==3-39I1'I(:	NM:i:3	MD:Z:15^C115^G75	oR [...]
+simulated.169	0	1	1246	255	30M1I32M1D89M1D48M	*	0	0	GTCTGTTTAGCCAATAAAACCGTTATCACACGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAAC	:458:I-&:=I)G'9I9+&G'5I(958=5:(I'58I)32;I)767I(8698I(I0'7I(5I0'I,9I/'8I)5H'962I'I>,'9;;77:3888I(9I)F'5=I(I/'9528774I0'86I)71I':I2(:I);<I'I)9:::64;;7<77<A148:8762<I9+&4I)6I)77H'<I.&;54767I)6E&969<;8I'9	NM:i:3	MD:Z:62T89T48	oR:Z:1	oH:i:1	oP: [...]
+simulated.170	16	1	2378	255	12M1D17M1D17M1D96M1D36M	*	0	0	GTCTGTGCTCACGGGGCTAACCCTTCTGTGCCCGGTTAGTCAATTTAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGG	857;65:;;748(.BI97'I'/I(I645:C(2I'I(I6;65'I&-I,I;56'G47(I<;'H6886992(I6&-I>)I8:*I:94'H9777;41'G58:87(I7;55&E79<8=8:86977'H:)I(I(I(I7;&E*I68877D:)I(I7&-I5;7<44:97:994<468'H4<)I:'I	NM:i:4	MD:Z:12G17G17A96T36	oR:Z:1	oH:i:1	oP:i:2377	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.171	0	1	2395	255	15M1D25M1I90M1D75M	*	0	0	CTAACCCTTCTGTGGCCGGTTAGTCAATTTAAAGTGAATAGTTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAAT	8:H'I2(I(8874I)I,I(I)4389I(I-&I0'321H'85&I'77I(434:A63I)4I/'5I)4;I(673G'7567569F'67:97I)8<:9H'58774:;<?:47I(9G'I)E&I(9:G'I(=5654I(5CI(2I.&5897:4<8668965?59I(66H'1I(8695;<085877I)5I'6II1*&769I(8?==3-39I1'I(:	NM:i:3	MD:Z:15C115G75	oR:Z [...]
 simulated.172	0	1	2888	255	176M	*	0	0	ACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAAT	3I(6898I/'7<946I)6<<57<6454;68:F'55:7;I<,&<I)597;I(7876I(4567I1(57H'58;8I'8I(7:;:988F&6I):;695588I(776675I1(:I3(5I(6G'I'I'443I)9I'4675:5;:6=167I(7;717I(I)I)5I.&;;6I)81065I(1I(8	NM:i:0	MD:Z:176	oR:Z:1	oH:i:1	oP:i:2887	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.173	16	1	4034	255	88M1I64M1I64M	*	0	0	GGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCTACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACTATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCT	'I:6'0I&+<I778666&.I(I8(I(I(I87:38864'/I'G976;'.I259(I)I(I(I2:;2'I76432(I='/I;52558659'H&=86'.I3'I&-I'G9(I5767727(I8(I<57<87(I9'I(I'G'G9'0I(I=:=(I687<'H;'7:'/I'F)I;79;'I:86426'H96'.I:7)I4'H=758566:76=<6)I'.I9(2I&E&F'I8	NM:i:2 [...]
-simulated.174	16	2	140	255	112M1D78M	*	0	0	GGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACC	'H8368;:'G3'0I3'I8B787(I(I:7&+:I'I386(I&-I)I(I<8)I;&-I(I;9:9'F1(I6'I'G6986878;(I;46'I6'I'0I=:&+:I'I6(I6)I(I476?<+I(I45:787;=431386(I37(I&-I777:(I<4(I7;(I:5958664405736>56'I72789=@0:69=7&-I'I	NM:i:1	MD:Z:112^T78	oR:Z:2	oH:i:1	oP:i:139	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.174	16	2	140	255	112M1D78M	*	0	0	GGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACC	'H8368;:'G3'0I3'I8B787(I(I:7&+:I'I386(I&-I)I(I<8)I;&-I(I;9:9'F1(I6'I'G6986878;(I;46'I6'I'0I=:&+:I'I6(I6)I(I476?<+I(I45:787;=431386(I37(I&-I777:(I<4(I7;(I:5958664405736>56'I72789=@0:69=7&-I'I	NM:i:1	MD:Z:112T78	oR:Z:2	oH:i:1	oP:i:139	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.175	16	1	3589	255	104M1I75M	*	0	0	GTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGTCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAA	>'0I5<49'G&E(I'G7;85953'.I8(I:7'G49(I4&*8I7=8;<7'I9501(I88(I95;655<'I:68)I7'H&*8I:4*I5(I;77)I'/I&+;I765>'7(I'H993'I6;:39>7(I57(I62:;'I&F(I>='.I4:'G(2I&.I(I6(I72(2I99<;766=3'0I77(1I	NM:i:1	MD:Z:179	oR:Z:1	oH:i:1	oP:i:3588	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.176	0	1	2849	255	77M1D150M	*	0	0	CTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTT	997I(6=8I'764I)987:5I(I(:I(;844:I(<:I)<8I(;798I/'5:767G'7::44776:69<9:I(709<9I6*=I'<587I(796=G'62:7I0'7<F'67<5G'5I)7;5867<G':I'763?95:5I(8588;;I0'4I0':I'6I(I'I(695I(8G'4:64;04375294I)6496>I)I*H'6I0':48I(65526G'?I)I/'87:32 [...]
+simulated.176	0	1	2849	255	77M1D150M	*	0	0	CTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTT	997I(6=8I'764I)987:5I(I(:I(;844:I(<:I)<8I(;798I/'5:767G'7::44776:69<9:I(709<9I6*=I'<587I(796=G'62:7I0'7<F'67<5G'5I)7;5867<G':I'763?95:5I(8588;;I0'4I0':I'6I(I'I(695I(8G'4:64;04375294I)6496>I)I*H'6I0':48I(65526G'?I)I/'87:32 [...]
 simulated.177	0	1	6460	255	199M	*	0	0	GACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGT	57I(/87I(84=<;7?;G'68:4I'7:I(I(8;98>8935;66BI(643I)5506=<7I/':::698;I'978468677=9I(2?74745I)9I(<65295I1'84I(I(:I):I*B365I'7784II3*&I/'4I(:79;;67I(I'I(5I'7I':98565:3I(8:346=;I(77:6I(I0'9I(336I(I(I(9:>	NM:i:0	MD:Z:199	oR:Z:1	oH:i:1	oP:i:6459	oS:A:F	XE:i:0	 [...]
-simulated.178	16	1	1586	255	167M1D35M	*	0	0	TATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGA	9<(I485<3764:9&.I7064782'/I:*I7;:4)I'F(I79',=I<48(I',=I;'0I;(I468=&E7677'I:(I8(I1)I<7894'G6<789)I14;92763(I)I'/I'I7'G=7'I'I539;8683)I6157;4:87<06678'H873;(I74'.I;7:<7<*7I'I79638(I78336;6'G656(I(I9'-?I77	NM:i:1	MD:Z:167^C35	oR:Z:1	oH:i:1	oP:i:158 [...]
+simulated.178	16	1	1586	255	167M1D35M	*	0	0	TATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGA	9<(I485<3764:9&.I7064782'/I:*I7;:4)I'F(I79',=I<48(I',=I;'0I;(I468=&E7677'I:(I8(I1)I<7894'G6<789)I14;92763(I)I'/I'I7'G=7'I'I539;8683)I6157;4:87<06678'H873;(I74'.I;7:<7<*7I'I79638(I78336;6'G656(I(I9'-?I77	NM:i:1	MD:Z:167C35	oR:Z:1	oH:i:1	oP:i:1585 [...]
 simulated.179	0	1	5708	255	103M1I124M1I2M	*	0	0	ACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCTACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAAGTA	<5:56I/'5.664G'I+9I):57:I(:7489H'6;;I(6391;6II1)&I)66G';9888I'G':8<H'8:98I*9;I)=483363:7I'I'8:I(H':I(79&79378347I(4898I'6<74:676=54I)4:8798I(3:I'I(6:3I(858<7<69;6:6<I':3E&9I)98G'>I0':4I(I0'=;I0'2;46H';38;94<I/'I' [...]
-simulated.180	16	1	513	255	31M1I5M1I29M1I50M1D50M	*	0	0	GGGATACCAGAAAGTAGTTTCGGAAGCGTTTAGCATCGATTCTGTCGGTCCTTAGTATCTATTTCTCTAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGA	'.I:46'H:5&.I467:(2I9)I)I9;7(2I&4<9=7*6(I:579:(I9'I'G9567:7<:'/I59;%;:'0I1849=<8'I66:6247'0I95'0I8'G;2885489(I<799=974D45'G;3(I9;<(I;63%(-8II)I:03'/I<555(I(I9'0I8::.8<8	NM:i:4	MD:Z:115^G50	oR:Z:1	oH:i:1	oP:i:512	oS:A:R	XE:i:4	XS:i:0	XI:i:0
-simulated.181	0	1	261	255	49M1D71M1D9M1I78M	*	0	0	GGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAATGGCCGTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGA	G'29I(:568I/'8<66I'765698I(86I'3I(4895I'<F'I(I(I)I6*6=8:I'94I/';76:4:5H':96I(5867:7I;+&?6787I(I1(8:9I(>I(<I(8I.&26>59893IC.(8I(I('7965I1(I0'<8486;4878G'I(I.'>99978857I1(I'1<2I(6;I(93I/'I+36:96<6I(:17I(9682<7:	NM:i:3	MD:Z:49^T71^A87	o [...]
-simulated.182	0	1	1056	255	49M1I52M1I28M1D32M1D42M1D33M	*	0	0	CAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGACTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGTCATGAAGCCGACGTATACAGACTAGCTAGGGCCTACGCGCATTAGCCGAATGCCCCGATGCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGA	::29I(I'955:95:I(9<I<+&6;H':59:3I.&5I(9:I.';:H'6;)3:8<?:5?389I(I/'2358 at 26I)7>I)5784=59;I at -'I(51466;498'62;8G':H'1068689;4:89<8<;;:2I6)I)9597;940I'6<I(7I(16I;+&6474D;;6I(769<797I(55I'8I(G'59H' [...]
+simulated.180	16	1	513	255	31M1I5M1I29M1I50M1D50M	*	0	0	GGGATACCAGAAAGTAGTTTCGGAAGCGTTTAGCATCGATTCTGTCGGTCCTTAGTATCTATTTCTCTAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGA	'.I:46'H:5&.I467:(2I9)I)I9;7(2I&4<9=7*6(I:579:(I9'I'G9567:7<:'/I59;%;:'0I1849=<8'I66:6247'0I95'0I8'G;2885489(I<799=974D45'G;3(I9;<(I;63%(-8II)I:03'/I<555(I(I9'0I8::.8<8	NM:i:4	MD:Z:115G50	oR:Z:1	oH:i:1	oP:i:512	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.181	0	1	261	255	49M1D71M1D9M1I78M	*	0	0	GGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAATGGCCGTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGA	G'29I(:568I/'8<66I'765698I(86I'3I(4895I'<F'I(I(I)I6*6=8:I'94I/';76:4:5H':96I(5867:7I;+&?6787I(I1(8:9I(>I(<I(8I.&26>59893IC.(8I(I('7965I1(I0'<8486;4878G'I(I.'>99978857I1(I'1<2I(6;I(93I/'I+36:96<6I(:17I(9682<7:	NM:i:3	MD:Z:49T71A87	oR: [...]
+simulated.182	0	1	1056	255	49M1I52M1I28M1D32M1D42M1D33M	*	0	0	CAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGACTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGTCATGAAGCCGACGTATACAGACTAGCTAGGGCCTACGCGCATTAGCCGAATGCCCCGATGCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGA	::29I(I'955:95:I(9<I<+&6;H':59:3I.&5I(9:I.';:H'6;)3:8<?:5?389I(I/'2358 at 26I)7>I)5784=59;I at -'I(51466;498'62;8G':H'1068689;4:89<8<;;:2I6)I)9597;940I'6<I(7I(16I;+&6474D;;6I(769<797I(55I'8I(G'59H' [...]
 simulated.183	0	1	5351	255	135M1I42M1I11M	*	0	0	TCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATAGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCACTGTCCATGCCA	6::49=7:I<,'3I(0H'91=I.'6765=54978H'<;I*6592;:8E&6;9I.&:7663I(6I*6I/'<I(<8II1)&879<:I(35:78537G'55I'9447;9I(;6:89862;I)I(73:G'9I)<2:765*I)I(8E&87846H':7587474I(7I.&42I);2I.&I/'48&;5=G'0;9I,:	NM:i:3	MD:Z:187C	oR:Z:1	oH:i:1	oP:i:5350	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.184	0	1	6899	255	30M1D100M1D28M1I16M1I7M1I11M	*	0	0	AGTAATGGAATGATATCCTGCGGGCCCTTCTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGACTTACGGGGAACGTGCACGACTCACCGACAAAAATTTACCGTCGACAGGTGACGAACTCATAA	595I'4D&I'5578:8I(07;I2(I.&I'<I+9<I.'<8935:I(;69<;8:I'83I-&3H'84874;668I)8I(79:5I(F'45:986>8I(55653I-&76I)669I(9F&4I(67;5:I)F&4I1(C8;I)47I:+&G'9:98569996598I(&97IH0)%I/'8E&270%;89I(6;&77I(65;9:H'	NM:i:5	MD:Z:30^T100^G62	oR:Z:1	oH:i:1	 [...]
+simulated.184	0	1	6899	255	30M1D100M1D28M1I16M1I7M1I11M	*	0	0	AGTAATGGAATGATATCCTGCGGGCCCTTCTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGACTTACGGGGAACGTGCACGACTCACCGACAAAAATTTACCGTCGACAGGTGACGAACTCATAA	595I'4D&I'5578:8I(07;I2(I.&I'<I+9<I.'<8935:I(;69<;8:I'83I-&3H'84874;668I)8I(79:5I(F'45:986>8I(55653I-&76I)669I(9F&4I(67;5:I)F&4I1(C8;I)47I:+&G'9:98569996598I(&97IH0)%I/'8E&270%;89I(6;&77I(65;9:H'	NM:i:5	MD:Z:30T100G62	oR:Z:1	oH:i:1	oP [...]
 simulated.185	16	1	8640	255	61M1I153M	*	0	0	AGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCTAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAA	7575;5:7437=88)I1'I>47&F9'H;<;(2I:'I3'F7;(I3=4&F(I*I598&+:I'I'48(3I(I'/I'I8'H'0I'/I'F(2I9678569>9(2I='G:9*I93(I'H564(I'0I0367::8&*9I882(I87=57883969(I22&.I683)I;56 at 6:8&F'I948;67)I.4=649849(I;(I(I8'G'+4II99(I<89093'H	NM:i:1	MD:Z:214	 [...]
 simulated.186	16	1	3091	255	188M	*	0	0	CCCTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGA	'.IC>588838948'I'F(I'I88=688;<56<7'I:68&-I988676:4'/I&)0II42957;766(I9:29481:7(I<22(I:::98'G45'H@=3(I&.I;8(I'G8(I3;5'0I96'/I'I'I*I'H66',>I:9=4(I&+3II4'F96'.I898',=I'G637)I4)I',=I867(I496:5	NM:i:1	MD:Z:2T185	oR:Z:1	oH:i:1	oP:i:3089	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.187	0	1	8579	255	48M1D58M1D29M1D52M	*	0	0	AGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAA	7I2(7I.&;E&?I(7279I(4I'7::I(<H'585I>,'I0'G'439:6I5)8733539I/'6:3:95:5:74;9I(7G'467I'9I(5;9I2(7I)7H'=>G'394DI)E&669IC.(I(7:I0'I(I/'H'9I(I,I1(I(I3(;39869698I0'5F':4I(88I(I':38I'I.&77;862?I(	NM:i:3	MD:Z:48^T58^T29^G52	oR:Z:1	oH:i:1	oP:i:8578	oS:A:F	XE:i:3 [...]
+simulated.187	0	1	8579	255	48M1D58M1D29M1D52M	*	0	0	AGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAA	7I2(7I.&;E&?I(7279I(4I'7::I(<H'585I>,'I0'G'439:6I5)8733539I/'6:3:95:5:74;9I(7G'467I'9I(5;9I2(7I)7H'=>G'394DI)E&669IC.(I(7:I0'I(I/'H'9I(I,I1(I(I3(;39869698I0'5F':4I(88I(I':38I'I.&77;862?I(	NM:i:3	MD:Z:48T58T29G52	oR:Z:1	oH:i:1	oP:i:8578	oS:A:F	XE:i:3	XS [...]
 simulated.188	0	1	5841	255	208M	*	0	0	TGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGT	55;7 at I)38I(I(867G'83:6285577878G':8I(5I'::G'6I0'76I)I-&32I0'4264G'<8?:<79I.&I(I9*&89I-&53;I at -'5H'I(I(I)8:4;8:866I(94=;F'9I':I(6I(7I.&48I*I(867736E&78=<6865I.&0H'I(:I1'><99599I:+&3I1(4II<0*&97347:;71137I)I(366	NM:i:0	MD:Z:208	oR:Z:1	oH:i:1	oP:i:5 [...]
 simulated.189	16	1	8139	255	197M	*	0	0	TCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGC	157)I3803669;3:5&,<I3463(I&-I'F50'H634'I7'I&-I9::5(I1?939'0I<4:7(I'H38(I;879;<5@(I3*I45'G857786(1I(I88'G9595:(I9&F(I:96847)I656=7(I8:(I863:46=6>3&F'I(I'0I(I99796+I77'H7(I67)4I=29*I6)I89493:73796'H6	NM:i:0	MD:Z:197	oR:Z:1	oH:i:1	oP:i:8138	oS:A:R	XE:i:0	XS: [...]
-simulated.190	0	1	3247	255	67M1D70M1I1M1I4M1I66M	*	0	0	GTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAACTCGACACTGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAA	66=;I;+&I(837I*;I'IB.(639H'69598I(I(;I)9I(:<I1(<7I(::1;87<:369H'9I(C=I at -'5H'I(<665I'85I(I(625I/'9<12IA-(:I(56H'H'249=5I=,'H'I(7I1(95658G'%8':47;&76I/'33F'I';4:994I)6<7:479I(I0'I-&5382G'835:59793969557;7H'4:>46I(	NM:i:4	MD:Z:6 [...]
-simulated.191	16	1	2065	255	100M1D63M1I4M1I22M1I28M	*	0	0	TGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGACGCACGTACTATCGTTGTAAAGATCTTCGCACGTAGACTACTGGCCTAGCCCTAAT	6696;'-?I4(I979(I3'H75383)I8963(2I698'I7(2I:99)I4'I5596;<5895<8)I<'0I&E:87'/I(I7=(I47'G'F)I&+9I8)I2<B'/I(I62:9*I8:48:9)I76'I51542'H785'/I(I95'*0>II5;9<'-?I48;8'G5=(6296&;483555;=(I27'/I9395)I&47245:43471952(I'HA58 [...]
-simulated.192	0	1	1131	255	32M1I55M1D42M1D60M1I40M	*	0	0	TGGATGTCTATAAAACCATGCTAGTGCATGAACGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCGATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTC	:I'8<9;7873I=,'I(4787;766=8:;5E&.3I)85:;97;488629609729I8*&I(<8:58;87I)5;I(6I)47I>,'7599D674I(98;4;67I'18I(?H'I)5.I(;586I.&83I*H'9I7*I)9I(994488G'88I+9::I(9:<I(7855I*I0'=I(5I.'I.&6I.&9I)9G'1&6:I'I<,'5858 [...]
-simulated.193	0	1	2385	255	64M1I67M1D68M	*	0	0	CTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACGTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTC	3554;II2*&-2I(I.'I(;7<8I(I.&I(H'8984E&I2(I1(646I(65I(82H'<788<3:&I(9I.&;I(1<I(358I(7:83487I'82388I);9:6I(:.585:;94467I(4I'I(I*E&95I)C7<9:6I(:H'I'5I,&=<489:599:8494875I(4=G'6H'87:68565?>43E&=I'5II1*&97	NM:i:2	MD:Z:131^G68	oR:Z:1	oH:i:1	oP:i:2384 [...]
-simulated.194	0	1	8557	255	162M1D27M	*	0	0	GGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAGGACAAG	H'II5,':868I:+&88I)469/I2(;I0';H'7I(8576H'5I)89:I)5I(539I:+&I/'E&8;;;5I at -'4;88738I0'88>486379:78=I(9I*498I)8I(6:9I.&3F&5I';5E&8:9I(I'I)8:8I<+&I*68I.&G'I/'F'6I(I1(I,I(I.&455:97965I2(6I(;8H':	NM:i:1	MD:Z:162^C27	oR:Z:1	oH:i:1	oP:i:8556	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.190	0	1	3247	255	67M1D70M1I1M1I4M1I66M	*	0	0	GTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAACTCGACACTGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAA	66=;I;+&I(837I*;I'IB.(639H'69598I(I(;I)9I(:<I1(<7I(::1;87<:369H'9I(C=I at -'5H'I(<665I'85I(I(625I/'9<12IA-(:I(56H'H'249=5I=,'H'I(7I1(95658G'%8':47;&76I/'33F'I';4:994I)6<7:479I(I0'I-&5382G'835:59793969557;7H'4:>46I(	NM:i:4	MD:Z:6 [...]
+simulated.191	16	1	2065	255	100M1D63M1I4M1I22M1I28M	*	0	0	TGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGACGCACGTACTATCGTTGTAAAGATCTTCGCACGTAGACTACTGGCCTAGCCCTAAT	6696;'-?I4(I979(I3'H75383)I8963(2I698'I7(2I:99)I4'I5596;<5895<8)I<'0I&E:87'/I(I7=(I47'G'F)I&+9I8)I2<B'/I(I62:9*I8:48:9)I76'I51542'H785'/I(I95'*0>II5;9<'-?I48;8'G5=(6296&;483555;=(I27'/I9395)I&47245:43471952(I'HA58 [...]
+simulated.192	0	1	1131	255	32M1I55M1D42M1D60M1I40M	*	0	0	TGGATGTCTATAAAACCATGCTAGTGCATGAACGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCGATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTC	:I'8<9;7873I=,'I(4787;766=8:;5E&.3I)85:;97;488629609729I8*&I(<8:58;87I)5;I(6I)47I>,'7599D674I(98;4;67I'18I(?H'I)5.I(;586I.&83I*H'9I7*I)9I(994488G'88I+9::I(9:<I(7855I*I0'=I(5I.'I.&6I.&9I)9G'1&6:I'I<,'5858 [...]
+simulated.193	0	1	2385	255	64M1I67M1D68M	*	0	0	CTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACGTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTC	3554;II2*&-2I(I.'I(;7<8I(I.&I(H'8984E&I2(I1(646I(65I(82H'<788<3:&I(9I.&;I(1<I(358I(7:83487I'82388I);9:6I(:.585:;94467I(4I'I(I*E&95I)C7<9:6I(:H'I'5I,&=<489:599:8494875I(4=G'6H'87:68565?>43E&=I'5II1*&97	NM:i:2	MD:Z:131G68	oR:Z:1	oH:i:1	oP:i:2384	 [...]
+simulated.194	0	1	8557	255	162M1D27M	*	0	0	GGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAGGACAAG	H'II5,':868I:+&88I)469/I2(;I0';H'7I(8576H'5I)89:I)5I(539I:+&I/'E&8;;;5I at -'4;88738I0'88>486379:78=I(9I*498I)8I(6:9I.&3F&5I';5E&8:9I(I'I)8:8I<+&I*68I.&G'I/'F'6I(I1(I,I(I.&455:97965I2(6I(;8H':	NM:i:1	MD:Z:162C27	oR:Z:1	oH:i:1	oP:i:8556	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.195	0	1	3440	255	136M1I54M	*	0	0	ATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGAGTTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTT	85:47;5I(<5?79I=,'<6I(II2*&<I.&72986:7I(9I(:I/'54I-&I'9?;4I)89>7I.&9I(6I(:5665:44I'8I/'6H'986I+F'5H'=I/'F'999988I>,'897I/'I(I*<7I)945:84%I(H'I'I(77I*73I5)698=F'I'I'I':;66846I/':I(46F'86I):I0'	NM:i:1	MD:Z:190	oR:Z:1	oH:i:1	oP:i:3439	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.196	16	1	1202	255	117M1D64M	*	0	0	GCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTA	3)I4(I:7'- at I2360(I;<7&F7349558'G;4)I6)I(I67'H9;68'0I76'I'H7',>I(I5(I614386(I57'G at 99(I568'G4976(I'/I5'G6(2I'/I9(1I7(I8C<66&D&*9I5658776356(I9'F&F8:'F'/I;69876<(1I8@)I76)I>&-I1(I6:'H8	NM:i:1	MD:Z:117^T64	oR:Z:1	oH:i:1	oP:i:1201	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.197	0	2	91	255	59M1I18M1D96M1I12M	*	0	0	TGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTCGCCCTCCTCATATTGGCGTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTACGTCGTCCAGCC	:I(8I(I(198I'I)4;<75993:7G'6I0'7:I(H'I.&69;66579I.'69857<I():I1(8I(;83:>I'I(85I7*F'558I(I/'H'I)4;I(;I/'H'4557I'3I);I(I(5395/:8:G'86<I*7I*I0'79I8*&I)6I(3I(I)58924I.&I'447;95;9%9937;4G'74I'	NM:i:3	MD:Z:77^T108	oR:Z:2	oH:i:1	oP:i:90	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.196	16	1	1202	255	117M1D64M	*	0	0	GCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTA	3)I4(I:7'- at I2360(I;<7&F7349558'G;4)I6)I(I67'H9;68'0I76'I'H7',>I(I5(I614386(I57'G at 99(I568'G4976(I'/I5'G6(2I'/I9(1I7(I8C<66&D&*9I5658776356(I9'F&F8:'F'/I;69876<(1I8@)I76)I>&-I1(I6:'H8	NM:i:1	MD:Z:117T64	oR:Z:1	oH:i:1	oP:i:1201	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.197	0	2	91	255	59M1I18M1D96M1I12M	*	0	0	TGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTCGCCCTCCTCATATTGGCGTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTACGTCGTCCAGCC	:I(8I(I(198I'I)4;<75993:7G'6I0'7:I(H'I.&69;66579I.'69857<I():I1(8I(;83:>I'I(85I7*F'558I(I/'H'I)4;I(;I/'H'4557I'3I);I(I(5395/:8:G'86<I*7I*I0'79I8*&I)6I(3I(I)58924I.&I'447;95;9%9937;4G'74I'	NM:i:3	MD:Z:77T108	oR:Z:2	oH:i:1	oP:i:90	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.198	0	1	1715	255	14M1I165M1I19M	*	0	0	CGAACGTATGCGCACGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGACCCGTTGACTTATCGACCA	7:H'4937<7579:&69676I(;979H'3;I0'3:8668I;+&I(26218I'88788;8I(765I(G'5I>,'6689I)I'89I1'F'7I(745:;155945:8:I)887=0H'96I/'I-&I(:C6IB.(85 at 7I'5I'E&I'3I(;78I'<979I(I(8289763379AI'I(=8<I(&I-&8G'878I(878;;H';	NM:i:2	MD:Z:198	oR:Z:1	oH:i:1	oP:i:1714	oS [...]
-simulated.199	16	1	291	255	54M1D25M1D111M	*	0	0	GCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAATCATCTTGGGATAGGAGGATTCGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTG	86(I658:)I3(I)I(I(I',<I7997*I66&-I9749456(I:;8)I>86634*7I98955(I&.I86;(I:(I:(I3,I787968=8&)0II4)I(I7;7:'.I(3I;:579:=949(I'I&.I477;679A5)4I(I764(I49(I98&-I'I79:737:(I6>3'H:9<8<0(I79774<;85(I5	NM:i:2	MD:Z:54^A25^G111	oR:Z:1	oH:i:1	oP:i:290	oS:A:R	XE:i:2	X [...]
-simulated.200	0	1	7793	255	14M1D86M1I121M1D8M	*	0	0	CGATTACGGGATAGCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAACGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGCTCATA	658F&:7I/'726;IC.(75I(I,&48>79;6I);;9774537I(7<6I.&;9I.&I.&775I(6I)852:449I)I/'3I*H'9<85:7<8;I9*&6I)'637I(H'8;5?7977I3(54H'8I';H';5I(26:F&6<9465966I(;;I(8293662382<94I)6;8<3I(?I(8I(995G'8I/'89;759<5I/'8I0'I)65 [...]
-simulated.201	0	1	4449	255	94M1D87M1I28M	*	0	0	TCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCTAGGTGACGACGAAGTTTCGGCACAGGTG	;39<I(9II2*&96288:I(48462=49<I(G'I(86352I-&8I/'I1'I)7I;+&;899F'<I'87;7628899I.'7I)8=G'I'0775:8D99I)88943467I.&9I(49596:3D&459::4;H'I(79I)8I4)78<:I*:39566585<8I*I.&764I0';.6I(I'9F'78%8I(:::73?;;I'7I2(8I(5829I(55	NM:i:2	MD:Z:94^G115	oR: [...]
+simulated.199	16	1	291	255	54M1D25M1D111M	*	0	0	GCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAATCATCTTGGGATAGGAGGATTCGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTG	86(I658:)I3(I)I(I(I',<I7997*I66&-I9749456(I:;8)I>86634*7I98955(I&.I86;(I:(I:(I3,I787968=8&)0II4)I(I7;7:'.I(3I;:579:=949(I'I&.I477;679A5)4I(I764(I49(I98&-I'I79:737:(I6>3'H:9<8<0(I79774<;85(I5	NM:i:2	MD:Z:54A25G111	oR:Z:1	oH:i:1	oP:i:290	oS:A:R	XE:i:2	XS: [...]
+simulated.200	0	1	7793	255	14M1D86M1I121M1D8M	*	0	0	CGATTACGGGATAGCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAACGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGCTCATA	658F&:7I/'726;IC.(75I(I,&48>79;6I);;9774537I(7<6I.&;9I.&I.&775I(6I)852:449I)I/'3I*H'9<85:7<8;I9*&6I)'637I(H'8;5?7977I3(54H'8I';H';5I(26:F&6<9465966I(;;I(8293662382<94I)6;8<3I(?I(8I(995G'8I/'89;759<5I/'8I0'I)65 [...]
+simulated.201	0	1	4449	255	94M1D87M1I28M	*	0	0	TCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCTAGGTGACGACGAAGTTTCGGCACAGGTG	;39<I(9II2*&96288:I(48462=49<I(G'I(86352I-&8I/'I1'I)7I;+&;899F'<I'87;7628899I.'7I)8=G'I'0775:8D99I)88943467I.&9I(49596:3D&459::4;H'I(79I)8I4)78<:I*:39566585<8I*I.&764I0';.6I(I'9F'78%8I(:::73?;;I'7I2(8I(5829I(55	NM:i:2	MD:Z:94G115	oR:Z [...]
 simulated.202	16	1	7705	255	197M	*	0	0	GGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGC	'G)I(I77(I;3*I'G9:874'I768'G:996<4(I(I(I92:'I8924576&E(I(I;:&-I488&+;I8(I&.I&E(I4::7(I;>44<)I77'0I:8;6&)1II75(I&-I<<;0<;:'I4::89<537(I537'1I<7'.I'0I68:(I3(I95637;0'H'/I6(I'G:;45=43<5&+<I6(I7;7(I'I8	NM:i:0	MD:Z:197	oR:Z:1	oH:i:1	oP:i:7704	oS:A:R	XE:i:0	XS: [...]
-simulated.203	0	1	2807	255	119M1D27M1D53M	*	0	0	CTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACC	9I;+&8I-&5365I(667886858697<I<,&26II5,'98:764H';3<E&439I*::776I'I(;I(25777I(79I(69I'64<9I.&5339;I':57456;5::3;;;H'72768I4)8I(8889I)554 at I)8938I0'7?C8875H'3G'74853<5I(5I(396:89:3I';::288I-&<I.'3I(5H'H'	NM:i:2	MD:Z:119^T27^A53	oR:Z:1	oH:i:1	oP:i:2 [...]
-simulated.204	0	1	6279	255	53M1I21M1D41M1I7M1D66M1I3M	*	0	0	AAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGTCTATCCGGTTTCCGCAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTCGAGCGCTCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTAATA	I-&;G'I0'7:4=:=I'5:737996:7939:<8I*97596:4I(4399I.&50'<4:6G'I)I.'I(77I(9373IE/(I'6<I'H'I)1846788I'79;I.'8E&I1(I(3:G'&5355988C;3?58:3<7I(I1(I(=498I.&=75I(90I)846I:+&7>I(;=I+I(H'869I(81I)836H'F&58	NM:i:5	MD:Z:74^C48^C69	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.205	16	1	9060	255	45M1I75M1D32M1D33M	*	0	0	AACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCTATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGCATGCACATGATCGTACGCAGGCGCGCGCATTCAAGCGCGGAACCGACAACGGTTTGTTGGCT	)I(I24697(2I'H)I2(I934:65(I826(1I(1I78<)I<(I:(6067697(I)I987<84*I7'F:)I'I83)I6(I>8(I:6&E578:'I9:58<76;58&F)I'/I89(I995(I3,I7767:878==;;639::=64)IA597:7=8,I2)I=:54'I(I(I69B(I<'H&.I8(I(I::	NM:i:3	MD:Z:120^G32^T33	oR:Z:1	oH:i:1	oP:i:9059	oS:A:R	XE:i:3	XS: [...]
-simulated.206	0	1	182	255	4M1D156M1I32M	*	0	0	AGTAGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCGACAAAATCATCTTGGGATAGGAGGATTCGGGT	7797C8I(8:H'I(77H'I(4I(7769336/9I(6I(<I)I(4:@I(I(758;;I(II<0*&:54I(G'94I(I'I-&I)93I*8757I,&:41:I(>4;68:H'7;I(5H'6<74F&8I)F&I(I*I:+&4:86G'55I.&5<89316I)@27F'6786&5:I?-'58974I)I0'6:2I(5I)5I'3I/'9	NM:i:2	MD:Z:4^G188	oR:Z:1	oH:i:1	oP:i:181	oS:A:F	XE:i:2	XS [...]
+simulated.203	0	1	2807	255	119M1D27M1D53M	*	0	0	CTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACC	9I;+&8I-&5365I(667886858697<I<,&26II5,'98:764H';3<E&439I*::776I'I(;I(25777I(79I(69I'64<9I.&5339;I':57456;5::3;;;H'72768I4)8I(8889I)554 at I)8938I0'7?C8875H'3G'74853<5I(5I(396:89:3I';::288I-&<I.'3I(5H'H'	NM:i:2	MD:Z:119T27A53	oR:Z:1	oH:i:1	oP:i:280 [...]
+simulated.204	0	1	6279	255	53M1I21M1D41M1I7M1D66M1I3M	*	0	0	AAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGTCTATCCGGTTTCCGCAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTCGAGCGCTCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTAATA	I-&;G'I0'7:4=:=I'5:737996:7939:<8I*97596:4I(4399I.&50'<4:6G'I)I.'I(77I(9373IE/(I'6<I'H'I)1846788I'79;I.'8E&I1(I(3:G'&5355988C;3?58:3<7I(I1(I(=498I.&=75I(90I)846I:+&7>I(;=I+I(H'869I(81I)836H'F&58	NM:i:5	MD:Z:74C48C69	oR:Z:1	oH:i:1	oP:i:62 [...]
+simulated.205	16	1	9060	255	45M1I75M1D32M1D33M	*	0	0	AACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCTATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGCATGCACATGATCGTACGCAGGCGCGCGCATTCAAGCGCGGAACCGACAACGGTTTGTTGGCT	)I(I24697(2I'H)I2(I934:65(I826(1I(1I78<)I<(I:(6067697(I)I987<84*I7'F:)I'I83)I6(I>8(I:6&E578:'I9:58<76;58&F)I'/I89(I995(I3,I7767:878==;;639::=64)IA597:7=8,I2)I=:54'I(I(I69B(I<'H&.I8(I(I::	NM:i:3	MD:Z:120G32T33	oR:Z:1	oH:i:1	oP:i:9059	oS:A:R	XE:i:3	XS:i: [...]
+simulated.206	0	1	182	255	4M1D156M1I32M	*	0	0	AGTAGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCGACAAAATCATCTTGGGATAGGAGGATTCGGGT	7797C8I(8:H'I(77H'I(4I(7769336/9I(6I(<I)I(4:@I(I(758;;I(II<0*&:54I(G'94I(I'I-&I)93I*8757I,&:41:I(>4;68:H'7;I(5H'6<74F&8I)F&I(I*I:+&4:86G'55I.&5<89316I)@27F'6786&5:I?-'58974I)I0'6:2I(5I)5I'3I/'9	NM:i:2	MD:Z:4G188	oR:Z:1	oH:i:1	oP:i:181	oS:A:F	XE:i:2	XS: [...]
 simulated.207	16	1	135	255	25M1I20M1I168M	*	0	0	AGTGATTTCGTAGCGAACCTACCCACGCTCTAAGGGTCGGTATGATACCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAA	84=;<&.I77;:389'H(I77&-I:&:935:(I&,I::)I458>3;)'I6=6:'I6(I98'I(I87)I(I<'I5:5488644'I6*I5'I(I728+I'I95529'I&).:II6:5(I(I76(I)I'0I(I9;)I>67<(2I766:)I8889:6(I99(I8'I4795(I4'H(I(I'H&+9I7;47)I2;'.I86=:797'I<8:)I4A8;9;(1I	NM:i:2	MD:Z: [...]
-simulated.208	0	1	2481	255	50M1D80M1I26M1I38M	*	0	0	CCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATCGGCAGTGTAGGAGCGACTAGATTTTTAGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGG	H'567;I'898:85755896I'4I*I'I(I(75I'I'94653I(9H'I(7I,>9::=8:6976968:4;I(59G'9F&;76779966<5<I(6I)8IF/)%A8;G'9:88?873I1(I(4:58766I(78&E&6878;57F'5875365758II1)&)95I(6I-&<8I(:2667558;6I(98;239I(72:7F'	NM:i:3	MD:Z:50^T144	oR:Z:1	oH:i:1	oP:i:2480	oS [...]
-simulated.209	0	1	6916	255	7M1I101M1D93M	*	0	0	CTGCGGGTCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGA	7794I/'&I3(I(5I.'9;I2(65857;I)8:575:6H'3:I0'8I(;;7867856I(8I(8592I(E&88515:46I);9778I0'6:I(2:9I'3H'3I(667<;I(D1I/'I*8:I(54I>,'I);872:47168;:9I(44IH0)&I/'8I(899=7;I)7374E&.7:4;I'5I'647377669I'>3I'793:I*8	NM:i:2	MD:Z:108^T93	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.210	0	1	1251	255	10M1D195M	*	0	0	TTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATT	I-&0;I(H'8I7*I(:I(7<>893I'46I(189I(676I(:6/9I'I4)<H'9I0'I/'9I,&:I(7I'787I(I7*&67:2383833I(<I)H'77F'I1'6663937I-&8:I)56I(9I/'7I(18G'G'6376978:47854I)69:564621I?-'8H'8H'78I(6I.&49=8:8I(7I'7:9:88I'?785I(I(;G'	NM:i:1	MD:Z:10^A195	oR:Z:1	oH:i:1	oP: [...]
-simulated.211	0	1	4658	255	165M1D39M	*	0	0	GCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATC	6I(16254I/';;886:H'7I(46782I0'I)844I(169878I/'985I)I'5/:96I(3;3;I1(3;;5I)77H'7;II3*&I1(I'6I(68;8I(7844G'9584<128IH0)%?18:I'8:8;I)658I<+&9I)9<7H'78H'I(4:F'I.'76I.'6=8I,I(5I(II1)&5467<I'3I(I)54I(69I(:8I)855	NM:i:1	MD:Z:165^T39	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.212	0	1	9159	255	15M1I121M1D39M1I33M	*	0	0	CATGAACCGGGTCGGACTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGTACCTCATTGTATTCACGTAACGGGATGAGTTAC	6858I(I(I0':8I(%750I(7I3(698884:64577<:<42995G':<:94=95I1(5I(5::5I'I(H'8:9I';I(I.'7I(I'49:H'9I1(I)6I(65594788H'I(4773I'H'99G'964I'87;799;D548I0'8@=I3(8469=H'8I(9786I(I(626585:6)4I*168I)5>3I(87995H'7I2(53:5:I(71	NM:i:3	MD:Z:136^A [...]
+simulated.208	0	1	2481	255	50M1D80M1I26M1I38M	*	0	0	CCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATCGGCAGTGTAGGAGCGACTAGATTTTTAGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGG	H'567;I'898:85755896I'4I*I'I(I(75I'I'94653I(9H'I(7I,>9::=8:6976968:4;I(59G'9F&;76779966<5<I(6I)8IF/)%A8;G'9:88?873I1(I(4:58766I(78&E&6878;57F'5875365758II1)&)95I(6I-&<8I(:2667558;6I(98;239I(72:7F'	NM:i:3	MD:Z:50T144	oR:Z:1	oH:i:1	oP:i:2480	oS: [...]
+simulated.209	0	1	6916	255	7M1I101M1D93M	*	0	0	CTGCGGGTCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGA	7794I/'&I3(I(5I.'9;I2(65857;I)8:575:6H'3:I0'8I(;;7867856I(8I(8592I(E&88515:46I);9778I0'6:I(2:9I'3H'3I(667<;I(D1I/'I*8:I(54I>,'I);872:47168;:9I(44IH0)&I/'8I(899=7;I)7374E&.7:4;I'5I'647377669I'>3I'793:I*8	NM:i:2	MD:Z:108T93	oR:Z:1	oH:i:1	oP:i:6 [...]
+simulated.210	0	1	1251	255	10M1D195M	*	0	0	TTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATT	I-&0;I(H'8I7*I(:I(7<>893I'46I(189I(676I(:6/9I'I4)<H'9I0'I/'9I,&:I(7I'787I(I7*&67:2383833I(<I)H'77F'I1'6663937I-&8:I)56I(9I/'7I(18G'G'6376978:47854I)69:564621I?-'8H'8H'78I(6I.&49=8:8I(7I'7:9:88I'?785I(I(;G'	NM:i:1	MD:Z:10A195	oR:Z:1	oH:i:1	oP:i [...]
+simulated.211	0	1	4658	255	165M1D39M	*	0	0	GCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATC	6I(16254I/';;886:H'7I(46782I0'I)844I(169878I/'985I)I'5/:96I(3;3;I1(3;;5I)77H'7;II3*&I1(I'6I(68;8I(7844G'9584<128IH0)%?18:I'8:8;I)658I<+&9I)9<7H'78H'I(4:F'I.'76I.'6=8I,I(5I(II1)&5467<I'3I(I)54I(69I(:8I)855	NM:i:1	MD:Z:165T39	oR:Z:1	oH:i:1	oP:i:4 [...]
+simulated.212	0	1	9159	255	15M1I121M1D39M1I33M	*	0	0	CATGAACCGGGTCGGACTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGTACCTCATTGTATTCACGTAACGGGATGAGTTAC	6858I(I(I0':8I(%750I(7I3(698884:64577<:<42995G':<:94=95I1(5I(5::5I'I(H'8:9I';I(I.'7I(I'49:H'9I1(I)6I(65594788H'I(4773I'H'99G'964I'87;799;D548I0'8@=I3(8469=H'8I(9786I(I(626585:6)4I*168I)5>3I(87995H'7I2(53:5:I(71	NM:i:3	MD:Z:136A7 [...]
 simulated.213	0	1	530	255	9M1I31M1I144M	*	0	0	TTTCGGAAGACGTTTGCATCATTCTGTCGGTCCTTAGTATCGTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGC	I.'6I(I'5%57I0'0765:<I(68?77G'1I(I(59>@<6(7;I4)57225I/';9675;:I(5988:;5I-&86I/'7I(:56855;9I(5584==76I(;7I'44I)8<6I(47>II=0*&F'675I/':776H'I)5I-&;55;8<9554I)8:928769173I'7:55869:2I(785H'6	NM:i:2	MD:Z:184	oR:Z:1	oH:i:1	oP:i:529	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.214	0	1	1499	255	143M1D38M	*	0	0	GTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGA	1;894;;/<:6966I'I4)3<344I/'57:IH0)%D&I'84I(I):5<848;I0'71;6:66>5G';4:897<65I0'I)796736;>8I'99;469<<89I-&4895:;<I/'7I(;69:G'H'I(5=I<+&8:4I(I<+&0I,6I(27:8I)6;9;I(4H'0I'6I(75956I(87699	NM:i:1	MD:Z:143^A38	oR:Z:1	oH:i:1	oP:i:1498	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.215	16	1	532	255	114M1D22M1D50M1D5M	*	0	0	TCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAATGG	9;(I*I994&.I869695)I97:95'F7(I'I65758;39'/I46956(2I>947117(I3:6;:<<'/I37)4I8'F:=698<58)I86<53;94'I7;(I<8'H4>6(I4:3(-7II)I787&-I4567)I'G2,I3=:58:0=:;(I6;74;666436(I4<8397508(I857)I625'I55,I9&E	NM:i:3	MD:Z:114^C22^T50^A5	oR:Z:1	oH:i:1	oP:i:531	oS:A:R [...]
-simulated.216	0	1	6541	255	209M	*	0	0	AACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTGTCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAG	F&9:6;9?9I(2G'45647<I/'86F&I(6I(9H'8;48I(::92II1*&I-&3I)<;:7<;;I'I'I(4I'6I)98887;59F';<8766<I(6:56I(I.'8I(494I)G'I(4<7H'I,8'65:5;53:6695I'I)7686:7352<:32G'3H'I(1:666G'29:44I(55I;+&2I2(6:5I.'6II1*&677G'I(:96399	NM:i:2	MD:Z:122T0G85	oR:Z:1	oH:i:1 [...]
-simulated.217	16	1	7806	255	62M1D131M	*	0	0	GCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCC	7'+4II86'I'/I3>8668>(I7:9:97371(I<25(2I23&-I'/I96=(I<'G35;573;D&.I8)I'H6;57:4897&+;I6'G599*I'I at 77759>:'/I?9)I1'G8'H5<'I929(I>=6?917<3(I97'I49<3399661;67(I61787)I4'H5(I=:8(I2'/I96788766(1I:&.I*I	NM:i:1	MD:Z:62^T131	oR:Z:1	oH:i:1	oP:i:7805	oS:A:R	XE:i:1	XS [...]
+simulated.214	0	1	1499	255	143M1D38M	*	0	0	GTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGA	1;894;;/<:6966I'I4)3<344I/'57:IH0)%D&I'84I(I):5<848;I0'71;6:66>5G';4:897<65I0'I)796736;>8I'99;469<<89I-&4895:;<I/'7I(;69:G'H'I(5=I<+&8:4I(I<+&0I,6I(27:8I)6;9;I(4H'0I'6I(75956I(87699	NM:i:1	MD:Z:143A38	oR:Z:1	oH:i:1	oP:i:1498	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.215	16	1	532	255	114M1D22M1D50M1D5M	*	0	0	TCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAATGG	9;(I*I994&.I869695)I97:95'F7(I'I65758;39'/I46956(2I>947117(I3:6;:<<'/I37)4I8'F:=698<58)I86<53;94'I7;(I<8'H4>6(I4:3(-7II)I787&-I4567)I'G2,I3=:58:0=:;(I6;74;666436(I4<8397508(I857)I625'I55,I9&E	NM:i:3	MD:Z:114C22T50A5	oR:Z:1	oH:i:1	oP:i:531	oS:A:R	XE [...]
+simulated.216	0	1	6541	255	209M	*	0	0	AACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTGTCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAG	F&9:6;9?9I(2G'45647<I/'86F&I(6I(9H'8;48I(::92II1*&I-&3I)<;:7<;;I'I'I(4I'6I)98887;59F';<8766<I(6:56I(I.'8I(494I)G'I(4<7H'I,8'65:5;53:6695I'I)7686:7352<:32G'3H'I(1:666G'29:44I(55I;+&2I2(6:5I.'6II1*&677G'I(:96399	NM:i:2	MD:Z:122TG85	oR:Z:1	oH:i:1	 [...]
+simulated.217	16	1	7806	255	62M1D131M	*	0	0	GCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCC	7'+4II86'I'/I3>8668>(I7:9:97371(I<25(2I23&-I'/I96=(I<'G35;573;D&.I8)I'H6;57:4897&+;I6'G599*I'I at 77759>:'/I?9)I1'G8'H5<'I929(I>=6?917<3(I97'I49<3399661;67(I61787)I4'H5(I=:8(I2'/I96788766(1I:&.I*I	NM:i:1	MD:Z:62T131	oR:Z:1	oH:i:1	oP:i:7805	oS:A:R	XE:i:1	XS: [...]
 simulated.218	16	1	4589	255	111M1I36M1I52M	*	0	0	CCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGAGTAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTACTCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTC	(I3556&F9<6756:4;66'I'.I375'/I273)I'I5)I4=;'H2:>58376(I4(2I4&F2746)I94(I64867&.I=;36<3(I7'G677:9'.I(I7=;)I99339'4&-I985'I)I79838(I4;77'1IB49:)I8?(I8&:&*1II'1I'I4'I<755'H5684'I749774:8&*2II?579'H:9:8)I8	NM:i:2	MD:Z:199	oR:Z:1	oH:i:1	oP:i:4588 [...]
-simulated.219	16	1	35	255	15M1D15M1I111M1I76M	*	0	0	TTTATTTCTTCGTGAGGAGTTGACCCATGCTAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATCGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGC	(1I;'/I3'F;6141,I:8'H89'/I5774'97'H62524<8*I:'F344:'H5'/I(I97:7:(I:=<3'I895589)I'- at I92<:6'F66?746;:'I59:8'/I:595;6>(I(I72'/I377664(I'0I82(I=6:&848)I3654'H:&F45'G'I:7(I)I7&F59;98>335'I;'H2(I(I7;7'I(I69768'G&).9II5:;'I)I7	 [...]
+simulated.219	16	1	35	255	15M1D15M1I111M1I76M	*	0	0	TTTATTTCTTCGTGAGGAGTTGACCCATGCTAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATCGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGC	(1I;'/I3'F;6141,I:8'H89'/I5774'97'H62524<8*I:'F344:'H5'/I(I97:7:(I:=<3'I895589)I'- at I92<:6'F66?746;:'I59:8'/I:595;6>(I(I72'/I377664(I'0I82(I=6:&848)I3654'H:&F45'G'I:7(I)I7&F59;98>335'I;'H2(I(I7;7'I(I69768'G&).9II5:;'I)I7	 [...]
 simulated.220	16	1	967	255	27M1I177M	*	0	0	CGACGACTTATAGTCAGCTACGGTCCCGTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGT	;;88;<6(I<9:686<7865=&F4'/I%?9(I;(I'/I:8953'G'1I(I4(2I6784(I7&-I648>=8'/I9<88656'I49)I;(I3=669(I)I6485377(I<6&,<I92'I76>23(1I;(I1;'/I9>(I57<7<67954879*I(2I6897:87(I76'I;:978;6<&,<I'F:863277695<74'I8'G:7968	NM:i:1	MD:Z:204	oR:Z:1	oH:i:1	oP:i:96 [...]
-simulated.221	16	1	6869	255	192M1D15M	*	0	0	GTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAATTTACCGTCAC	238'I(I'0IB>'G'H3)I4(I56'G405)I78'H8'I'I7959:6'I966(1I(3I'F9'0I96&-I74>;87'H9<8=765)I58'/I6)I697<958<4(I6(I8;56)I(I89::562:(I66594(1I47)I779(I3)I7(I37646(I)I8'/I'H:<)I5:&*9I(I;6<9325:0;39<)I49)/FI'/I='I69=67	NM:i:1	MD:Z:192^A15	oR:Z:1	oH:i: [...]
+simulated.221	16	1	6869	255	192M1D15M	*	0	0	GTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAATTTACCGTCAC	238'I(I'0IB>'G'H3)I4(I56'G405)I78'H8'I'I7959:6'I966(1I(3I'F9'0I96&-I74>;87'H9<8=765)I58'/I6)I697<958<4(I6(I8;56)I(I89::562:(I66594(1I47)I779(I3)I7(I37646(I)I8'/I'H:<)I5:&*9I(I;6<9325:0;39<)I49)/FI'/I='I69=67	NM:i:1	MD:Z:192A15	oR:Z:1	oH:i:1 [...]
 simulated.222	0	2	140	255	37M1I166M	*	0	0	GGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGACCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTC	I,:99846I(=I.&1E&=5875I)I'47I>,'I(8:3&I(I0'I(I(;7I':I/'I*576=I(9I(9I(I(67686755I'97:I(9I(I/':7I=,'I(6I'7I'I)95898I0'I'9588569096<95:H'8;I(I1'8358I'68G'53I(365:1;@232>895;83I(9:77169659293I3(I)I(9:7A89<I(:	NM:i:1	MD:Z:203	oR:Z:2	oH:i:1	oP:i:138	o [...]
 simulated.223	16	1	8889	255	75M1I63M1I80M	*	0	0	TACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAAGTGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATAGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCAT	35979;45(I<'I<7'H7647;7>47859'-?I:<)I(I'I(I'I76;>877<:*I4'I(I57(I;'G75<)I'I&=3'I5&-I:897:(I7;:897:557&-I6(I6'G689<:71:9;1)I685)4I938)I774;=&5'I678(I(I<'I675'H27:36990;+I6958&E'H77;94)4I'G)I5)I<;15;9)I679'0I(2I6:2(I8'I=53	NM [...]
-simulated.224	16	1	5409	255	59M1D134M1D3M	*	0	0	TGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCAG	:3(I5'H9&-I5'H26&*2II46:<5'H84152588'G48)I478558'G69:985?54C(I=98'G7(I566377(I'I8(I039:7'F7:2=6:4:(I3&.I/8(I87'/I&-I/965:'H687'/I79(I'I'/I9(I;898(I;)I999'G9.77956)I5(I<7:895976:77(I1;(I'H548:39D:7	NM:i:2	MD:Z:59^T134^C3	oR:Z:1	oH:i:1	oP:i:5408	oS: [...]
+simulated.224	16	1	5409	255	59M1D134M1D3M	*	0	0	TGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCAG	:3(I5'H9&-I5'H26&*2II46:<5'H84152588'G48)I478558'G69:985?54C(I=98'G7(I566377(I'I8(I039:7'F7:2=6:4:(I3&.I/8(I87'/I&-I/965:'H687'/I79(I'I'/I9(I;898(I;)I999'G9.77956)I5(I<7:895976:77(I1;(I'H548:39D:7	NM:i:2	MD:Z:59T134C3	oR:Z:1	oH:i:1	oP:i:5408	oS:A: [...]
 simulated.225	16	1	3808	255	200M	*	0	0	AGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCC	;7944<;76:4655/714:57&-I&E468;(I523(I'/I(I5'I8;65773666)I:(I8'F6776;49(I9'I;:44;59&)/;II529;7;35(I(I8)I79;747:9968='0I692:'I5454(I;4)4I93'I'0I9;48=4367(I)I75=97:665756;&-I5*I47'H:946(I4989=9<'H:(I79(I	NM:i:0	MD:Z:200	oR:Z:1	oH:i:1	oP:i:3807	oS:A:R	XE:i [...]
 simulated.226	16	1	5287	255	44M1I154M	*	0	0	CAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCGAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCA	6;6?7(I5425(I(I*I6:49)I'H:57:7:6&.I23'/I:'0I'*I'I9(I/'H7?377684&,I5757;65&+:I1(I>*I956'/I;89696>485'H84(I7558554'F:=4&.I913=;'G6(I<'1I7(I99&*3II57756(I9:449896)I68)I5:;;5:(I69::586=9(I'H37:(I7'F;6375	NM:i:1	MD:Z:198	oR:Z:1	oH:i:1	oP:i:5286	oS:A:R	X [...]
 simulated.227	0	1	3656	255	34M1I155M	*	0	0	AAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGACTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGG	I+858I(5D&I?-'76G'=I)265I)I-&I8*&:'9395H'I'964I(37:8201I(94I(4<54I(I*I(71I4)07I(I-&I.'I(7I)52I.&>;593<6;4I-&;=I.'I'8I3(>2I'=66;;93G'9I'8;4;I2(>4I*F'87/H'748:7664687678=986846I/'G'5997I'6:7G'	NM:i:1	MD:Z:189	oR:Z:1	oH:i:1	oP:i:3655	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.228	16	1	4613	255	107M1I22M1D76M	*	0	0	TACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTAGTCTTTCGCTCCGCTTATCCCCCAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAA	>:9&-I757'H(I7(I;7<'I;8:44696(I8'0I5&F8468'G88*I65579'.I884790'G6'I7/573'.I'I:54(I97:838'/I6<>'I(I333>7'H48*94&-I;583'I62(I:8&*3II+I&E:'I<58/'H:;47'F8999::;<&*1II75>6(I::99)I48C&*8I;(I957&F:6(I(I9;'H'.I5<'H	NM:i:2	MD:Z:129^A76	oR:Z:1	oH [...]
+simulated.228	16	1	4613	255	107M1I22M1D76M	*	0	0	TACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTAGTCTTTCGCTCCGCTTATCCCCCAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAA	>:9&-I757'H(I7(I;7<'I;8:44696(I8'0I5&F8468'G88*I65579'.I884790'G6'I7/573'.I'I:54(I97:838'/I6<>'I(I333>7'H48*94&-I;583'I62(I:8&*3II+I&E:'I<58/'H:;47'F8999::;<&*1II75>6(I::99)I48C&*8I;(I957&F:6(I(I9;'H'.I5<'H	NM:i:2	MD:Z:129A76	oR:Z:1	oH: [...]
 simulated.229	16	1	4796	255	3M1I174M	*	0	0	CGTCGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGA	6;6'4'H75*I'I8:)I(1I86'.I:87'/I'G5)I%)0HI85<99'G8(I'H8:'I58*I66)I97557'/I55(I5747:854;77&E9(2I:85)I8',=I85:56'I74(I'I68)I(I7:7:859'H66<'I*I9785:;966686(I5)I0805)I287'H7&-I(I*I893	NM:i:1	MD:Z:177	oR:Z:1	oH:i:1	oP:i:4795	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.230	0	1	665	255	59M1I19M1I142M	*	0	0	AGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATCGGACTTACTGTCATCGCGGTCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTC	<I(8I5)<<256756;7G'8685 at 5775;5I'5/8124747G'968I)21<G':5I/':&I(7/G'49:8765886AI'%69;:I)75I'46/79I)I'8;86I'I+:I,&I-&I'7//<I-&367496;I>,':78<<:2:@8::B/<98I1(2456:55:897I(7697628487<6784F&6;>2;9:7:7I(5I(G'86I(;25I'9I(2I)I/'I'6 [...]
-simulated.231	16	1	8506	255	74M1D32M1D74M1I9M	*	0	0	TGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTAGGTTGTCGG	8)I788=)I6;(I4)I94'F7&-I894:(I9'G9766592'I)I;>>87(I(I'+4II7953&+9I76'H9:63,I9'0I4(I7(I8895(I='I:4;)I5'H596*7I'1I(I2975=&+:I9<::<69'0I56=6>9679978;)I>*I5;8'H:(I<05'/I8(I7'H0:'I784)I%'I'H<59'I	NM:i:3	MD:Z:74^G32^A83	oR:Z:1	oH:i:1	oP:i:8505	oS:A:R	XE:i [...]
-simulated.232	0	1	8751	255	167M1D29M	*	0	0	GCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCTAGGAACCGGTTCGTATCAGTAAGTT	82<7I'I.'93:7645I;+&876I)37B9:655398I(;4I0'538I):897795I(I(7:7:67H'3:4>:427:I(8I(E&9I)II0)&5;F'843:88I'I.&2I(I.'86:H'97;;<G'79I(7I-&I.&I';:8917:55I(5H'67I(885:76:47:67I5)88I(E&I)I'I(8859>27<=I(:I(	NM:i:1	MD:Z:167^C29	oR:Z:1	oH:i:1	oP:i:8750	oS:A:F	XE:i [...]
-simulated.233	0	1	2783	255	98M1I14M1D88M	*	0	0	GTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTACCATCCGACCAGTAGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTG	7:I(I.&I'48879263I<,&3I)=IA-'9I0'6742I)7<6454588:946I=,'7:IH0)&:9:8;6I(189H'899I'58;02I)I(8I(7379<&E&86G'75I(8897I,996;7I)397730:9=95:26G'67744I=,'8I(640<I)927<I(57;2I1';:I(:45<I)6I(8::<4:5I)9H'3;364=8	NM:i:2	MD:Z:112^G88	oR:Z:1	oH:i:1	oP:i:27 [...]
-simulated.234	0	1	2743	255	7M1D57M1D138M	*	0	0	TCTTAGATTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCA	67I(=69I,I)62<766:I)7/I(I(6I:+&5577::G'56I)I-&I(7646;36;I9+&7I'5I7*7I-&574:I)8:6:9>64:499;I8*&<9II0)&6:649;I(=:1I(8?<I(64493G'H':I)948=8I)78I'8;I(6977I.'69887I(5959<976875952I':;:68I<,'9I)6478I(7869G'67	NM:i:2	MD:Z:7^T57^T138	oR:Z:1	oH:i:1	oP [...]
-simulated.235	16	1	7904	255	111M1D27M1I60M	*	0	0	ACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGCTCATAGTATTGTTGAATTTCACGAGTCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTG	676=3'/I6:'G7(I6)I83(I87=)I7762>97:4(I88'H8;83585:663;:&F;;>78(I6)I:(I765'I7(3I957;38;4(3I8'0I(I786(I*I7598:(I9*I946266649&F7'I7'G'.I83<66'1:51&-I<5(I4:=)I'/I(I58)I8(I588&+;I893858(I<<7=952734)I(I948	NM:i:2	MD:Z:111^G87	oR:Z:1	oH:i:1	oP:i:7903 [...]
-simulated.236	16	1	5988	255	160M1D27M	*	0	0	ACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTCTATCTCTTGTCATTCACCCACAGG	6:5?9:53'0I8&E(I5(2I:4;8643&*8I3'/I7&).:II<8166839:646(I'H:;(I672'/I<9>:903864:29<8)I797557'.I7(I65:<877(I5(I58<(I>;:1&)1II9&+;I357)I;4=&-I)I::;7885446:9)I5&*8I,I:7699<7(I:58=&D4:'1I1:7'I	NM:i:1	MD:Z:160^T27	oR:Z:1	oH:i:1	oP:i:5987	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.237	16	2	148	255	29M1D50M1D23M1D108M	*	0	0	TTGCCCTCCTCATATTGGCGTTTTAACTGCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGA	(I;&.I7(I655:8(I'F88&*7I(I:;;D'0I'I(I95(I4(1I(I<:86(I6(I8'I)I5786;577(I8:8)I9'G+I26'- at I(I4'H2'H'I8;599,I(I:78:64<;867477(I9>'G&.I:77:*I71'H9;)I;884478;953757987'G6;3877859:483(1I(I'H74:8959'H)I'I568>87<58'I85=2	NM:i:3	MD:Z:29^C5 [...]
-simulated.238	16	1	1892	255	73M1D14M1I90M1D7M	*	0	0	GGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGTGCCTGTCACTACAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCTCCA	(I'/I4)I8;7(I7;8;6(I66)I'I<79&F=8:)I58869(I:(I0)I759(I778'H9;868;66(I=689*7I97'H:5<8:5:&8(I1(I6'1I(2I;5736'H5<96(I6'G:6967'+3II57(I76773(I5953=05<5883'H87577'0I:;7'H5(I'0I'G8669@*7I4'H9	NM:i:3	MD:Z:73^G104^C7	oR:Z:1	oH:i:1	oP:i:1891	oS:A:R	XE:i:3	XS:i:0	XI:i:0
-simulated.239	0	1	6231	255	122M1D72M	*	0	0	ACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAA	505;0:7I.&955I(5;75:6:I0'4:6676I4)68;4:I/'6I)::I:+&6I(I1'25;555F'8/?;13<576<;;A<2I(795;559H'?6<6I/';9:569I'F&I.'H'89H'534;IE/(I(52H'I*E&7<557>8I(6<8I/'9I(I0'I)97D&8;686</H'8698642;3H'I0'I)614:I(	NM:i:1	MD:Z:122^C72	oR:Z:1	oH:i:1	oP:i:6230	oS:A:F	XE:i:1	X [...]
+simulated.231	16	1	8506	255	74M1D32M1D74M1I9M	*	0	0	TGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTAGGTTGTCGG	8)I788=)I6;(I4)I94'F7&-I894:(I9'G9766592'I)I;>>87(I(I'+4II7953&+9I76'H9:63,I9'0I4(I7(I8895(I='I:4;)I5'H596*7I'1I(I2975=&+:I9<::<69'0I56=6>9679978;)I>*I5;8'H:(I<05'/I8(I7'H0:'I784)I%'I'H<59'I	NM:i:3	MD:Z:74G32A83	oR:Z:1	oH:i:1	oP:i:8505	oS:A:R	XE:i:3 [...]
+simulated.232	0	1	8751	255	167M1D29M	*	0	0	GCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCTAGGAACCGGTTCGTATCAGTAAGTT	82<7I'I.'93:7645I;+&876I)37B9:655398I(;4I0'538I):897795I(I(7:7:67H'3:4>:427:I(8I(E&9I)II0)&5;F'843:88I'I.&2I(I.'86:H'97;;<G'79I(7I-&I.&I';:8917:55I(5H'67I(885:76:47:67I5)88I(E&I)I'I(8859>27<=I(:I(	NM:i:1	MD:Z:167C29	oR:Z:1	oH:i:1	oP:i:8750	oS:A:F	XE:i: [...]
+simulated.233	0	1	2783	255	98M1I14M1D88M	*	0	0	GTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTACCATCCGACCAGTAGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTG	7:I(I.&I'48879263I<,&3I)=IA-'9I0'6742I)7<6454588:946I=,'7:IH0)&:9:8;6I(189H'899I'58;02I)I(8I(7379<&E&86G'75I(8897I,996;7I)397730:9=95:26G'67744I=,'8I(640<I)927<I(57;2I1';:I(:45<I)6I(8::<4:5I)9H'3;364=8	NM:i:2	MD:Z:112G88	oR:Z:1	oH:i:1	oP:i:278 [...]
+simulated.234	0	1	2743	255	7M1D57M1D138M	*	0	0	TCTTAGATTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCA	67I(=69I,I)62<766:I)7/I(I(6I:+&5577::G'56I)I-&I(7646;36;I9+&7I'5I7*7I-&574:I)8:6:9>64:499;I8*&<9II0)&6:649;I(=:1I(8?<I(64493G'H':I)948=8I)78I'8;I(6977I.'69887I(5959<976875952I':;:68I<,'9I)6478I(7869G'67	NM:i:2	MD:Z:7T57T138	oR:Z:1	oH:i:1	oP:i [...]
+simulated.235	16	1	7904	255	111M1D27M1I60M	*	0	0	ACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGCTCATAGTATTGTTGAATTTCACGAGTCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTG	676=3'/I6:'G7(I6)I83(I87=)I7762>97:4(I88'H8;83585:663;:&F;;>78(I6)I:(I765'I7(3I957;38;4(3I8'0I(I786(I*I7598:(I9*I946266649&F7'I7'G'.I83<66'1:51&-I<5(I4:=)I'/I(I58)I8(I588&+;I893858(I<<7=952734)I(I948	NM:i:2	MD:Z:111G87	oR:Z:1	oH:i:1	oP:i:7903	 [...]
+simulated.236	16	1	5988	255	160M1D27M	*	0	0	ACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTCTATCTCTTGTCATTCACCCACAGG	6:5?9:53'0I8&E(I5(2I:4;8643&*8I3'/I7&).:II<8166839:646(I'H:;(I672'/I<9>:903864:29<8)I797557'.I7(I65:<877(I5(I58<(I>;:1&)1II9&+;I357)I;4=&-I)I::;7885446:9)I5&*8I,I:7699<7(I:58=&D4:'1I1:7'I	NM:i:1	MD:Z:160T27	oR:Z:1	oH:i:1	oP:i:5987	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.237	16	2	148	255	29M1D50M1D23M1D108M	*	0	0	TTGCCCTCCTCATATTGGCGTTTTAACTGCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGA	(I;&.I7(I655:8(I'F88&*7I(I:;;D'0I'I(I95(I4(1I(I<:86(I6(I8'I)I5786;577(I8:8)I9'G+I26'- at I(I4'H2'H'I8;599,I(I:78:64<;867477(I9>'G&.I:77:*I71'H9;)I;884478;953757987'G6;3877859:483(1I(I'H74:8959'H)I'I568>87<58'I85=2	NM:i:3	MD:Z:29C50 [...]
+simulated.238	16	1	1892	255	73M1D14M1I90M1D7M	*	0	0	GGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGTGCCTGTCACTACAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCTCCA	(I'/I4)I8;7(I7;8;6(I66)I'I<79&F=8:)I58869(I:(I0)I759(I778'H9;868;66(I=689*7I97'H:5<8:5:&8(I1(I6'1I(2I;5736'H5<96(I6'G:6967'+3II57(I76773(I5953=05<5883'H87577'0I:;7'H5(I'0I'G8669@*7I4'H9	NM:i:3	MD:Z:73G104C7	oR:Z:1	oH:i:1	oP:i:1891	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.239	0	1	6231	255	122M1D72M	*	0	0	ACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAA	505;0:7I.&955I(5;75:6:I0'4:6676I4)68;4:I/'6I)::I:+&6I(I1'25;555F'8/?;13<576<;;A<2I(795;559H'?6<6I/';9:569I'F&I.'H'89H'534;IE/(I(52H'I*E&7<557>8I(6<8I/'9I(I0'I)97D&8;686</H'8698642;3H'I0'I)614:I(	NM:i:1	MD:Z:122C72	oR:Z:1	oH:i:1	oP:i:6230	oS:A:F	XE:i:1	XS [...]
 simulated.240	0	1	7390	255	123M1I62M	*	0	0	GCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGACACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTT	7I(758I0'978;87I(I(<36.;7:56>6:76<7I4);I(849I'5I at -'45779:5:9G'I(57I(G':78799I/'I.&8:31:86I';4I'=I1(I)I(17I'H'545;89988I1'9:(69F&I-&<7I/'F'I-&?4I'I(I(I':6<:98H'3:I(G'5;84I(6:599I':I'9I'I'	NM:i:1	MD:Z:185	oR:Z:1	oH:i:1	oP:i:7389	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.241	16	1	1093	255	3M1D88M1D79M1D46M	*	0	0	GCTGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCACTTCGTGGTCTGTTTAGCCAATAAAACGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTA	969,I26'H666396537<674'G(1I79745<4(I97(I84987<69&*7I'H7:46:74:75999(I?(I56::275:67:98468558)4I(I86<:5766(I49(I8(I68',<I7688'I::7(I78=6;7;(I45+I9%'ID:;(I88::(1I45'G(I8'- at IC8'H65965;(I27'I:<9*I618'H<874*I(2I9'I3'/I&-I6	NM:i:5 [...]
-simulated.242	0	1	2076	255	127M1I14M1D62M	*	0	0	CATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCGTTCATTTTTTGTAGCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCT	:;4:I'8I(23522G';47<I.&;67H'6I-&779I(1I(42?:84<6<<8:I'8I/'I)375I1'I):7I(63G'I'I)I;+&9I';8I(I0'I(8765I(;785<;I(94I(65:8;I*777I/'&I'51II:.)&>664I6)67::I'876;/88<8::6>58I)35I0'=468I'6:97;585761<:8I(I(4:;I-&7	NM:i:2	MD:Z:141^C62	oR:Z:1	oH:i:1	 [...]
-simulated.243	0	1	2618	255	142M1I6M1D26M1I8M	*	0	0	GTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCTAGAACTCGGCGGGGCGAGCGAAGTCCTTTGGTCGCTATGTC	345H'6588964754II1)&96I';I0'9:I(648;9556<8F'3743:6I(8887I)<:73:69<66:95I(765I(:943=<=<:7F':I'7<3199;<5354H'2I>,'66I-&7I0'I;+&67I'885I-&F'9<529(8>I(7:DI(9I;+&96877<I(84I(I.'G'8&>57884:2	NM:i:3	MD:Z:148^C34	oR:Z:1	oH:i:1	oP:i:2617	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.244	16	1	6467	255	54M1I65M1D83M	*	0	0	TTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAAGTCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTC	'I68<7898:(I;444(I56(I)I:56787888:4;5(I669(I68>?277&-I&:663547(I69:68459263(I99436<5'H:'I7<9878'.I6;'G(I:'G:'G736;(I9785(.CI'0I9'H8898769'I*I'I;'H9'I78=47499'H:2::3<;(I67;9'H'0I6)I972)I(I(I783(I'0I778749	NM:i:2	MD:Z:119^T83	oR:Z:1	oH:i:1	oP [...]
+simulated.241	16	1	1093	255	3M1D88M1D79M1D46M	*	0	0	GCTGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCACTTCGTGGTCTGTTTAGCCAATAAAACGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTA	969,I26'H666396537<674'G(1I79745<4(I97(I84987<69&*7I'H7:46:74:75999(I?(I56::275:67:98468558)4I(I86<:5766(I49(I8(I68',<I7688'I::7(I78=6;7;(I45+I9%'ID:;(I88::(1I45'G(I8'- at IC8'H65965;(I27'I:<9*I618'H<874*I(2I9'I3'/I&-I6	NM:i:5 [...]
+simulated.242	0	1	2076	255	127M1I14M1D62M	*	0	0	CATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCGTTCATTTTTTGTAGCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCT	:;4:I'8I(23522G';47<I.&;67H'6I-&779I(1I(42?:84<6<<8:I'8I/'I)375I1'I):7I(63G'I'I)I;+&9I';8I(I0'I(8765I(;785<;I(94I(65:8;I*777I/'&I'51II:.)&>664I6)67::I'876;/88<8::6>58I)35I0'=468I'6:97;585761<:8I(I(4:;I-&7	NM:i:2	MD:Z:141C62	oR:Z:1	oH:i:1	o [...]
+simulated.243	0	1	2618	255	142M1I6M1D26M1I8M	*	0	0	GTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCTAGAACTCGGCGGGGCGAGCGAAGTCCTTTGGTCGCTATGTC	345H'6588964754II1)&96I';I0'9:I(648;9556<8F'3743:6I(8887I)<:73:69<66:95I(765I(:943=<=<:7F':I'7<3199;<5354H'2I>,'66I-&7I0'I;+&67I'885I-&F'9<529(8>I(7:DI(9I;+&96877<I(84I(I.'G'8&>57884:2	NM:i:3	MD:Z:148C34	oR:Z:1	oH:i:1	oP:i:2617	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.244	16	1	6467	255	54M1I65M1D83M	*	0	0	TTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAAGTCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTC	'I68<7898:(I;444(I56(I)I:56787888:4;5(I669(I68>?277&-I&:663547(I69:68459263(I99436<5'H:'I7<9878'.I6;'G(I:'G:'G736;(I9785(.CI'0I9'H8898769'I*I'I;'H9'I78=47499'H:2::3<;(I67;9'H'0I6)I972)I(I(I783(I'0I778749	NM:i:2	MD:Z:119T83	oR:Z:1	oH:i:1	oP: [...]
 simulated.245	16	1	709	255	207M	*	0	0	GAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCA	79)I9<8'I57'/I7(I88'H872587<3668(I<826'H86(I5:898'I)I965:(I(I;&.I'.I'G275<'/I9744994&*9I7::9948 at 56=845.7:'/I<:<94:73796(I88<45;766687825'IA7:56946;5'H;(I'H88(I?88(I6*I6'F&.I(I796<75)I'I5652:'G8B>&*7I:(I57862	NM:i:0	MD:Z:207	oR:Z:1	oH:i:1	oP:i:708 [...]
 simulated.246	16	2	97	255	9M1I104M1I40M1I13M1I41M	*	0	0	AAGTATTCCGTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAACGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTTAATATGATCGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCA	)I799&F'G+=899765677(I5'1I4<(I)I'1I58=3=75>'0I275689'I5'.I7(I69739'H'G46',<I'I8:5)I(2I(I(I9='H3'0I(I577='H6(I;(I'H':66;921:(I7;=)I9*I'/I87&+9I)I3'I6(I*I766)79(2I*I94685<)76747573)I99&E(1I;958)I9:'G50(I567:653384	NM:i:4	MD:Z: [...]
-simulated.247	0	2	27	255	89M1D85M	*	0	0	CTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTA	A7;871I(G'4I0':79654492I(I(536:7I1'81H'7687I(7:468:58?I'469=87996I):F'I(777I(H':687868784D;I-&78I(I(I.&7;36869<I5);:;A36I(5I4);I(76876I(I)54I;+&I(428I(I2(I'I(77I):I0'I*:387D7	NM:i:2	MD:Z:89^T84T	oR:Z:2	oH:i:1	oP:i:26	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.248	0	1	1168	255	58M1I82M1D23M1I38M	*	0	0	CGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTCGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTACCCACCGTTCATAACCCCACGAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCA	72<59:97272958769I;+&I(9:88657>I)6:I(4H'77I>,':9<;I(554I*;'63417>F&99I)8I*F'84I'<7:1I2(94I(I(;I:+&I(:I)8988:5I(<5H'69<I)825I(85:7I(I2(3I'8I/'I,7I-&:I*5I'8:4I'I;+&69&8<9;78;<I*:G'E&74I+I2(>486647I3(27I':6	NM:i:3	MD:Z:140^T61	oR:Z:1	oH:i: [...]
-simulated.249	16	1	5507	255	21M1I5M1I12M1D5M1I112M1I32M	*	0	0	CTTGAAACATTACAAAGGGCAGTGTCCGATGCCCAGTTAACCACCTAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGTAGGCAGAATCTTCCCCAGCTTAGATTAGGTTA	5(I8'.I8:'G7:)4I'0I6;&=08(I&;89&-I35(I'H,I7'I%9:9;)I8*I568(I89;9574)I9(I9599753=94;4(I8:'H)I996688(I4;554?'G74'I?:487:=7494;<>968'H5=?7'I5929/:'/I=3'I?669)I20(7'H6:8'H9:(I',=I:44)I74:'I;)I(I2	NM:i:5	MD:Z:38^C149	oR:Z:1	oH:i:1	oP:i:5506	oS [...]
-simulated.250	16	1	1017	255	193M1D6M	*	0	0	CCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCGAT	'0I7;<9)I9'0I7:=;57&-I56:1;:7'H66)I:)I15:<9(I*I8676<63(I6:&+<I66(I1;739'0I3'H:8(2I38'G84;5868?:5:68&F'1I676;6/6(I93'I7;;573:<&,<I(I99>3>59657695*I1'H9:5687>89<:49969678&+:I)I7:6:<5=5)I;4'G9(I;:)5I;;7	NM:i:1	MD:Z:193^C6	oR:Z:1	oH:i:1	oP:i:1016	oS:A:R [...]
+simulated.247	0	2	27	255	89M1D85M	*	0	0	CTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTA	A7;871I(G'4I0':79654492I(I(536:7I1'81H'7687I(7:468:58?I'469=87996I):F'I(777I(H':687868784D;I-&78I(I(I.&7;36869<I5);:;A36I(5I4);I(76876I(I)54I;+&I(428I(I2(I'I(77I):I0'I*:387D7	NM:i:2	MD:Z:89T84T	oR:Z:2	oH:i:1	oP:i:26	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.248	0	1	1168	255	58M1I82M1D23M1I38M	*	0	0	CGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTCGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTACCCACCGTTCATAACCCCACGAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCA	72<59:97272958769I;+&I(9:88657>I)6:I(4H'77I>,':9<;I(554I*;'63417>F&99I)8I*F'84I'<7:1I2(94I(I(;I:+&I(:I)8988:5I(<5H'69<I)825I(85:7I(I2(3I'8I/'I,7I-&:I*5I'8:4I'I;+&69&8<9;78;<I*:G'E&74I+I2(>486647I3(27I':6	NM:i:3	MD:Z:140T61	oR:Z:1	oH:i:1 [...]
+simulated.249	16	1	5507	255	21M1I5M1I12M1D5M1I112M1I32M	*	0	0	CTTGAAACATTACAAAGGGCAGTGTCCGATGCCCAGTTAACCACCTAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGTAGGCAGAATCTTCCCCAGCTTAGATTAGGTTA	5(I8'.I8:'G7:)4I'0I6;&=08(I&;89&-I35(I'H,I7'I%9:9;)I8*I568(I89;9574)I9(I9599753=94;4(I8:'H)I996688(I4;554?'G74'I?:487:=7494;<>968'H5=?7'I5929/:'/I=3'I?669)I20(7'H6:8'H9:(I',=I:44)I74:'I;)I(I2	NM:i:5	MD:Z:38C149	oR:Z:1	oH:i:1	oP:i:5506	oS: [...]
+simulated.250	16	1	1017	255	193M1D6M	*	0	0	CCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCGAT	'0I7;<9)I9'0I7:=;57&-I56:1;:7'H66)I:)I15:<9(I*I8676<63(I6:&+<I66(I1;739'0I3'H:8(2I38'G84;5868?:5:68&F'1I676;6/6(I93'I7;;573:<&,<I(I99>3>59657695*I1'H9:5687>89<:49969678&+:I)I7:6:<5=5)I;4'G9(I;:)5I;;7	NM:i:1	MD:Z:193C6	oR:Z:1	oH:i:1	oP:i:1016	oS:A:R	 [...]
 simulated.251	16	1	7170	255	3M1I37M1I183M	*	0	0	ATACGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCGTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCC	=59'*I'/I8&-I9:66(I'G767::>;977528<8697<;&6)I4(I826&.I<3:5'I673(I984(I6(I(I066(I957:76=638;3&*8I9;(I<(I53559556'F(I;6(I64&+:I*I88;;7)I;)I79'/I3;4(I553)I'0I:3'/I694'H337<(I<;8:(I69<:3358*I89699=40:'0I87<9;)I:=83678&+9I: [...]
-simulated.252	0	1	9085	255	92M1I25M1I11M1D75M	*	0	0	TTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTACTTCGGGCATGCACATGATCGTACGCGAGGCGCGCGCATTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAAT	I);97I0'I-&367I(:H';665:568I(G'837;58I(:I(9G'I(79I'0F'3<I(;7I'5959I)983698;795I)I'I/'>4I*747,I(;I1(47>49?:96:95269;269&6I(::6;776;I,=I(47;4I(I+I(199I'4I(I.&8I(I'798I(;I.&F&4I(=34::9=6I'I'777:H'I)>4I'65:I'9	NM:i:3	MD:Z:128^T75	oR:Z:1	o [...]
-simulated.253	0	1	3281	255	36M1D103M1I79M	*	0	0	TACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTACCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACC	1C9I'3I)59I/'7:F'4:56<>87284I'6I'E&;I6)5I(I(9786I'7;H'I':6>I/'7:94I:+&3E&65H'I'<9761I;+&I'I(9I-&486>8I(8569=:9I-&5;I)F&267:7AG'5377653I(I/'&I/'3647I(3;:5:3:688787725;F'2<=59I:+&;;I(II0)&8I-&8553963G'5I)5I/'95I/'I'26:5H'	NM:i [...]
-simulated.254	0	1	5186	255	64M1D24M1D129M	*	0	0	ATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTATTCAGCGCTGAGTCCTGCTCGGACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGG	7884I(614I)I(89G'I(I2(767I0'I'I)3::4;44778<5I/'587I(1I(I(2I(7:78D9I(92176:9893<I(63418H'D382I0'I/'983/<:F&8679H'I'I(77>9I'H'>6:9967I0'95I/':I0'I(I'8I)5E&647<:865I0'7764885I8*&9H';F&73:I-&;;>;48;;67H'9:I(7<9:42:F&:6:F'	NM:i:2	M [...]
-simulated.255	16	1	301	255	81M1D31M1I14M1D18M1D45M	*	0	0	ATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAATGGCCTAGCAAACCCTGTCGAGATAGGACCGGGTGTCACGTCAATTCTCGGCTGGATCCCTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCC	.(I'I&F'I'-?I:448*I88&.I;679:83(I5<9'H799674(.AI69568'G'/I<34&F6)I5(I<'.I388805:9(/EI2(I(I3838(1I&-I8868687466(I&'G(3I3194864=:,I'G893)I7:(I89'/ID15936<4(I76;'H7;;32@)I6878785:9)I=7(I8(I)I(I	NM:i:4	MD:Z:81^A45^A18^T45	oR:Z:1	oH:i:1	oP:i:300	oS: [...]
+simulated.252	0	1	9085	255	92M1I25M1I11M1D75M	*	0	0	TTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTACTTCGGGCATGCACATGATCGTACGCGAGGCGCGCGCATTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAAT	I);97I0'I-&367I(:H';665:568I(G'837;58I(:I(9G'I(79I'0F'3<I(;7I'5959I)983698;795I)I'I/'>4I*747,I(;I1(47>49?:96:95269;269&6I(::6;776;I,=I(47;4I(I+I(199I'4I(I.&8I(I'798I(;I.&F&4I(=34::9=6I'I'777:H'I)>4I'65:I'9	NM:i:3	MD:Z:128T75	oR:Z:1	oH [...]
+simulated.253	0	1	3281	255	36M1D103M1I79M	*	0	0	TACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTACCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACC	1C9I'3I)59I/'7:F'4:56<>87284I'6I'E&;I6)5I(I(9786I'7;H'I':6>I/'7:94I:+&3E&65H'I'<9761I;+&I'I(9I-&486>8I(8569=:9I-&5;I)F&267:7AG'5377653I(I/'&I/'3647I(3;:5:3:688787725;F'2<=59I:+&;;I(II0)&8I-&8553963G'5I)5I/'95I/'I'26:5H'	NM:i [...]
+simulated.254	0	1	5186	255	64M1D24M1D129M	*	0	0	ATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTATTCAGCGCTGAGTCCTGCTCGGACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGG	7884I(614I)I(89G'I(I2(767I0'I'I)3::4;44778<5I/'587I(1I(I(2I(7:78D9I(92176:9893<I(63418H'D382I0'I/'983/<:F&8679H'I'I(77>9I'H'>6:9967I0'95I/':I0'I(I'8I)5E&647<:865I0'7764885I8*&9H';F&73:I-&;;>;48;;67H'9:I(7<9:42:F&:6:F'	NM:i:2	M [...]
+simulated.255	16	1	301	255	81M1D31M1I14M1D18M1D45M	*	0	0	ATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAATGGCCTAGCAAACCCTGTCGAGATAGGACCGGGTGTCACGTCAATTCTCGGCTGGATCCCTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCC	.(I'I&F'I'-?I:448*I88&.I;679:83(I5<9'H799674(.AI69568'G'/I<34&F6)I5(I<'.I388805:9(/EI2(I(I3838(1I&-I8868687466(I&'G(3I3194864=:,I'G893)I7:(I89'/ID15936<4(I76;'H7;;32@)I6878785:9)I=7(I8(I)I(I	NM:i:4	MD:Z:81A45A18T45	oR:Z:1	oH:i:1	oP:i:300	oS:A:R [...]
 simulated.256	16	1	8688	255	194M	*	0	0	GGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGG	)I'I836'- at I(I58'0I)I'/I(I1'H'0I&-I(I&.I7<46;;2:4'.I8(I<8'G97(I)I978)I'.I:448<4:&*9I765(I;96:8854879*I;7(1I:38'I5445<64'I(I<854:>'I<79947856'H5'H'H6&E'+3II8:&D447976(I'0I7)I&.I658+I634:7(I7:'I8(I	NM:i:0	MD:Z:194	oR:Z:1	oH:i:1	oP:i:8687	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.257	16	1	4308	255	103M1I20M1D32M1I50M	*	0	0	TAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGTCCGTGATCGCGGAGTAGGTTACACCCGTCGCCGATTATCACAAGTTTTTGACGACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCA	:'0I;34'H6779'H'/I?72=6;78877(I9)I)I599)I8(I:(I)I325='I:47)I9:2478(I3748&F78>'/I86945:53869568694:&*1II('I56;4662;'H6=6:'I(ID;7'0I:698(I5:(I87589(I8'+3II998%:7:'I?6:4936;8(I'H(I87788(2I:&.I'/I(I;&*9I6:96)I88	NM:i:3	MD:Z:123^A82	oR [...]
-simulated.258	16	1	9118	255	114M1D10M1I70M	*	0	0	GTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACACGGTTTGTTCGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGT	:569'H1(I@'H(I64'I8(I64)I69(I4769)I8846;5=;30(I)I&-I84'G988'H<'0I9:7554::64:87598>5.8'H:?7<88;=(1I?&D;9;9(I(I(I555C9(I&.I8'H&)I027(I:&-I*I7(I748:5889(I&E:561(I)I73(I8:8'H9562496(I:66(3I67:&.I58;8	NM:i:2	MD:Z:114^A80	oR:Z:1	oH:i:1	oP:i:9117	oS:A:R	 [...]
+simulated.257	16	1	4308	255	103M1I20M1D32M1I50M	*	0	0	TAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGTCCGTGATCGCGGAGTAGGTTACACCCGTCGCCGATTATCACAAGTTTTTGACGACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCA	:'0I;34'H6779'H'/I?72=6;78877(I9)I)I599)I8(I:(I)I325='I:47)I9:2478(I3748&F78>'/I86945:53869568694:&*1II('I56;4662;'H6=6:'I(ID;7'0I:698(I5:(I87589(I8'+3II998%:7:'I?6:4936;8(I'H(I87788(2I:&.I'/I(I;&*9I6:96)I88	NM:i:3	MD:Z:123A82	oR: [...]
+simulated.258	16	1	9118	255	114M1D10M1I70M	*	0	0	GTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACACGGTTTGTTCGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGT	:569'H1(I@'H(I64'I8(I64)I69(I4769)I8846;5=;30(I)I&-I84'G988'H<'0I9:7554::64:87598>5.8'H:?7<88;=(1I?&D;9;9(I(I(I555C9(I&.I8'H&)I027(I:&-I*I7(I748:5889(I&E:561(I)I73(I8:8'H9562496(I:66(3I67:&.I58;8	NM:i:2	MD:Z:114A80	oR:Z:1	oH:i:1	oP:i:9117	oS:A:R	X [...]
 simulated.259	16	1	1090	255	36M1I130M	*	0	0	TAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTCGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAG	79(I66&.I88(I<;596688:;5:6(I'/I6:36;)7:'I78(I=5884:45',=I(I95756973:67<7&D6(I:7<99575:87:88876;6&,<I(I:96777:8)I<9(I8'F69',<I6626'I897'I8898;72(I47(I7'H&F?3(I4;>8'/I48	NM:i:1	MD:Z:166	oR:Z:1	oH:i:1	oP:i:1089	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.260	0	1	5615	255	25M1I66M1D80M1I24M	*	0	0	TTCTCTAGTCTGCTGACTACCAGTAGTTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTCGTGTGTCGCTTCCTACCTTCGGTC	G'858859>4<:;653778G'6265%G'87<>:5I0'7;E&6=48I(586I,;59G'9<I(I:+&697G'653I(5I+I)4I)9I);7I-&6I,:;9=I1(8:766H'I)5H'>9;5I)::568G'556H':576:4IG0)%F'34I(58967I(I(/;1I(6477I'99I(&B956:57;4I(H'46I)I(6I(79	NM:i:3	MD:Z:91^A104	oR:Z:1	oH:i:1	oP:i:5614	 [...]
+simulated.260	0	1	5615	255	25M1I66M1D80M1I24M	*	0	0	TTCTCTAGTCTGCTGACTACCAGTAGTTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTCGTGTGTCGCTTCCTACCTTCGGTC	G'858859>4<:;653778G'6265%G'87<>:5I0'7;E&6=48I(586I,;59G'9<I(I:+&697G'653I(5I+I)4I)9I);7I-&6I,:;9=I1(8:766H'I)5H'>9;5I)::568G'556H':576:4IG0)%F'34I(58967I(I(/;1I(6477I'99I(&B956:57;4I(H'46I)I(6I(79	NM:i:3	MD:Z:91A104	oR:Z:1	oH:i:1	oP:i:5614	o [...]
 simulated.261	0	1	8649	255	174M1I19M1I1M1I23M	*	0	0	TACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGACTACAAGCCAATGGAAAAACGTATTCATAGCAAGGGCTTAAATGA	85445I(9I'827I(6I(>99I1(;I(5I)95I(446I(I(I(952I8*&H'9:I-&I(I0'I(7I*I.&I4)I(I.'5:68?;;59I.&7I(69H'75I(D&557I(I-&89694;;IB.(6=9I(=8592<98=77I(;AI0'595I(<47:<72I)I'6735=4I(25:47%6796I*@I'I(4I)II2*&';'6I'36;:58I)I0'8H'I.&83 [...]
 simulated.262	16	1	7101	255	18M1I204M	*	0	0	CTCTGGATCCTATCGGATCGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGG	748:(I9:&E5;79(I44&'/I7'I)5I89'I23(I(I9(2I'0I046(I7'H7:72&E38(I9952947598)I&.I8&-I5=79'H)I56745<79<36695:586998'I6'G:7:(2I6786)I5<:(I779(I;'H'G48:'I;5519<755935&+9I3:'I5(I7795:743(I(I6:(I27&+;I)I:77<4'I7(I8;&-I981(I867(I&.I	 [...]
 simulated.263	16	1	595	255	51M1I97M1I24M	*	0	0	TGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGTCGTAGGATAATCTACGGTTGCATG	>435'.I59'0I9(I9544577:*I;4839752(I72(I;7'H>98(I8<6%(,2AII'I:84(1I82:9(I)I7(2I96778797::)I57857757865(I7752=C589(I886(I464)I:8&-I6(I66(I44897659;69'H&:378)I56(I<7779(I(I95772	NM:i:2	MD:Z:172	oR:Z:1	oH:i:1	oP:i:594	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.264	0	1	7864	255	232M	*	0	0	AGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGACTTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACT	9997I(I.&8I)I(77<9:::;:I<,'8I(65;I)I)8:66:578I1(43H'4I(?I(58I);<=G'84:8779>8I'84I):5;7788<46295H'<6=<3I(6I(:I(:97I(5I.&597;8457I2(7I/'G'467I(H'6<153I)7I-&969:39288I(7I(=A(I.'88537=836I.&58I(276I(I/'I)6:F&5F&762I7*&@43;84I [...]
 simulated.265	16	1	7779	255	43M1I151M	*	0	0	CCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGA	(I(I'I6977(I6;888(I95&.I687B&+3II97)I(2I743&D868'H<772796:5'I:4<'/I6;'0I(1I534(I2(I7:89743'I&-I6&D'G5<57643;:&*8I<)I:26'I(I27<49698)4I39)I2(I6(I;5(I643)I:95655679(I56)I766=:=;87:8::'I647<<)I:)I8:	NM:i:1	MD:Z:194	oR:Z:1	oH:i:1	oP:i:7778	oS:A:R	XE:i:1	XS [...]
-simulated.266	16	1	8805	255	25M1I78M1I61M1D60M	*	0	0	GTTAATACGTGAACAGTGCTACAAGTCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCGTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAA	6'G'H7<1479(I<B7538687(I8&(I*I<'I&*1II68'I966398'I&.I<'G&-I95:(I8;597*I88(I5(2I(3I(I997:96778(I5*I19'G36(6956666;1:&+;I53'G(I'H)I'H87>958647'G8'H(I66)I:(I756'G(I67'H9,I45435'H57:;5;65<7'0I9)I8(I86479;5396/'H694'1 [...]
-simulated.267	0	1	4542	255	180M1D6M1I6M	*	0	0	TGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTCGCTACCGCTT	5I(;=I);1:5693>I0'7I(=:38356I'977288<I(I(86I)8I.&:77?I(:777768999>I'I-&9:9I-&77:G'I(:G'96:I(9;;57;:9E&9I0'4I(5/79F&6>F&99;87I0':9787<I(6G'869;0I1(I';16G'47881<I1(79:I)H'/:2;6F&9979I,98;5-E&89I,	NM:i:2	MD:Z:180^T12	oR:Z:1	oH:i:1	oP:i:4541	oS:A:F	XE:i:2	 [...]
+simulated.266	16	1	8805	255	25M1I78M1I61M1D60M	*	0	0	GTTAATACGTGAACAGTGCTACAAGTCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCGTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAA	6'G'H7<1479(I<B7538687(I8&(I*I<'I&*1II68'I966398'I&.I<'G&-I95:(I8;597*I88(I5(2I(3I(I997:96778(I5*I19'G36(6956666;1:&+;I53'G(I'H)I'H87>958647'G8'H(I66)I:(I756'G(I67'H9,I45435'H57:;5;65<7'0I9)I8(I86479;5396/'H694'1 [...]
+simulated.267	0	1	4542	255	180M1D6M1I6M	*	0	0	TGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTCGCTACCGCTT	5I(;=I);1:5693>I0'7I(=:38356I'977288<I(I(86I)8I.&:77?I(:777768999>I'I-&9:9I-&77:G'I(:G'96:I(9;;57;:9E&9I0'4I(5/79F&6>F&99;87I0':9787<I(6G'869;0I1(I';16G'47881<I1(79:I)H'/:2;6F&9979I,98;5-E&89I,	NM:i:2	MD:Z:180T12	oR:Z:1	oH:i:1	oP:i:4541	oS:A:F	XE:i:2	X [...]
 simulated.268	0	1	4114	255	210M	*	0	0	AGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCG	:9?7>:I(:7;I/'5F'I/'I(:I(88:37=8I(5I(3:2<<8I(;I(I)I(H'6I/'G'654I'79:6G'999I3(I(H'3552G'747478I'60I4)97I)5I(446:79067:739I)I0'0I0'I)I(I'5C863=:<68846=<I'I-&39I(6:74I(4G'I(61I.&:6I>,'98898868:I(I0'I.'678I)7778I(7	NM:i:0	MD:Z:210	oR:Z:1	oH:i:1	oP [...]
 simulated.269	16	1	6096	255	153M1I40M	*	0	0	CATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTCGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAG	?866(I1798'+4II6'- at I859'F997'.I*I4896;>;47469'H;&+;I'/I7349355'F4;72)I87'/I097&.I3985:346777648:99=9'H437*I;98)I49(I7(3I;11:4=)I13779;77 at 27?;4&-I:2<)I977,8619'/I77648;&.I<48:5(1I7(I9;',>I6(I'/I:	NM:i:1	MD:Z:193	oR:Z:1	oH:i:1	oP:i:6095	oS:A:R	XE:i:1	XS:i [...]
-simulated.270	16	1	2634	255	101M1I15M1D73M1I10M	*	0	0	TTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTACTTTGGGGTCTTAGATTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGACGCATCGATA	'- at I45(I7'0I<6(I54?467<7;8'I8:45;0)I869;)I5?653;6395756(I858'H;6:6657863)I7(I:;329?=5:365(I7&+<I5;&.I%>&-I'-?I98'G6:7+I&E85=666:'H8;(I'F9'-?I77704;'I86*I&.I(I:;=4?869'-?I0'I;&+<I:'0I7:3<(I;5(3;6716:456	NM:i:3	MD:Z:116^T83	oR:Z:1	oH:i:1	 [...]
+simulated.270	16	1	2634	255	101M1I15M1D73M1I10M	*	0	0	TTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTACTTTGGGGTCTTAGATTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGACGCATCGATA	'- at I45(I7'0I<6(I54?467<7;8'I8:45;0)I869;)I5?653;6395756(I858'H;6:6657863)I7(I:;329?=5:365(I7&+<I5;&.I%>&-I'-?I98'G6:7+I&E85=666:'H8;(I'F9'-?I77704;'I86*I&.I(I:;=4?869'-?I0'I;&+<I:'0I7:3<(I;5(3;6716:456	NM:i:3	MD:Z:116T83	oR:Z:1	oH:i:1	o [...]
 simulated.271	16	1	3690	255	196M	*	0	0	CTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCA	=;48(I'I75;'I;789349(I<8&E8:86(I(I*I;:'/I06'H&.I'/I'I6(I::(1I34946687.&-I74(1I(I:&.I99'H8878<97(I:(I7678'0I73(I'H9;6(I8=:;94774746:96:8934='/I(I77:9(I45:(I'/I)I2)I56:7688;27(I3'H8'G5989;:6(I:*I75;	NM:i:0	MD:Z:196	oR:Z:1	oH:i:1	oP:i:3689	oS:A:R	XE:i:0	XS:i: [...]
 simulated.272	16	1	23	255	200M	*	0	0	GCGCTTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCC	46=8)I65:7:6'.I:'/I6'I:6:3='0I75(I:7&.I36;897(I;679575'H:)I777;'F6&.I(I6>9;7&D<54;'H7<:4?5(I&,<I?67:;'G=166989;(I:89<'0I772546:'I(I45'/I4;9786'H(1I<7+I:84758(I:957'F6(I99'G'G84*I(I5(I5;5585447(I5(I6'I	NM:i:0	MD:Z:200	oR:Z:1	oH:i:1	oP:i:22	oS:A:R	XE:i:0	X [...]
 simulated.273	0	1	2872	255	28M1I13M1I161M	*	0	0	GCTTATCGTCCATCCGACCAGTAGGGATAGTGCCTATGCAGTCGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTG	88I(71858I(86I(47I'2628I/'7:&5<6I(84866475'589=:9I)95878I:+&3I(987:I'7426H'8987I,&56F'79:5I'<I(8:>8>38I(<I(38:6<:8;H':99275I/'7I2(7H'7I(I(E&742H'3G':4;958;;=4;:4I(9:6;7I)I(I(6I/'6:;I)353:6H'7I(I0'93846=95	NM:i:2	MD:Z:202	oR:Z:1	oH:i:1	oP:i [...]
-simulated.274	0	2	185	255	184M1D13M	*	0	0	AGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGAGATTTATCC	577I(7I-&I'9884F'9I(8I)I(58446:79I'782I'=H'I3(56I<,'I(:I)5I(H'7766:I/'I*3?<695566885:6I(27I+I1'=57;I'69I(56I(=8476:.987=87<49=I(:;989>14?6;77I-&I(I(4767<78H'I'I(61::06<65I(944G'66I-&45I7*49;I/'48I(	NM:i:1	MD:Z:184^G13	oR:Z:2	oH:i:1	oP:i:184	oS:A:F	XE:i [...]
-simulated.275	16	1	5019	255	44M1D83M1I83M	*	0	0	TGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGTACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACAT	5)I479'H69(I<;&-I6&)/:II7&+:I(I7964<388'I6:5,I;=)I963)I59677'I7:'H7566(I475;3969>'I6<347)I7<;(I76*I(I:&.I8'I5666 at 9&).:II8873:77%<9<'G8;46&-I78='I7(I438B(I6<89&*9I6'I'0I64:'I635'H(I>6'G(I'.I;:;'0I'H(I568481<::667	NM:i:2	MD:Z:44^G166	 [...]
-simulated.276	16	1	7961	255	74M1D89M1I13M1I13M	*	0	0	CTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTAGTCCGACTCGTATCGTCTAATGTGAGT	=582/'H6'H9'I728(I2'/I<877;67:(1I8&.I(I402(I(I;8458'H5&.I78;962466(I4'H3&D,I:7;;44878(2I<5(I947*I)4I(I at 7'I;(I67:&+:I99:687)I79<:787;9:(I'H92:476'G'I)I969(I:6(I'G98%36'I7689<5775%9:96'H8<6<:89	NM:i:3	MD:Z:74^T115	oR:Z:1	oH:i:1	oP:i:7960	oS:A:R	XE:i [...]
+simulated.274	0	2	185	255	184M1D13M	*	0	0	AGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGAGATTTATCC	577I(7I-&I'9884F'9I(8I)I(58446:79I'782I'=H'I3(56I<,'I(:I)5I(H'7766:I/'I*3?<695566885:6I(27I+I1'=57;I'69I(56I(=8476:.987=87<49=I(:;989>14?6;77I-&I(I(4767<78H'I'I(61::06<65I(944G'66I-&45I7*49;I/'48I(	NM:i:1	MD:Z:184G13	oR:Z:2	oH:i:1	oP:i:184	oS:A:F	XE:i: [...]
+simulated.275	16	1	5019	255	44M1D83M1I83M	*	0	0	TGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGTACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACAT	5)I479'H69(I<;&-I6&)/:II7&+:I(I7964<388'I6:5,I;=)I963)I59677'I7:'H7566(I475;3969>'I6<347)I7<;(I76*I(I:&.I8'I5666 at 9&).:II8873:77%<9<'G8;46&-I78='I7(I438B(I6<89&*9I6'I'0I64:'I635'H(I>6'G(I'.I;:;'0I'H(I568481<::667	NM:i:2	MD:Z:44G166	o [...]
+simulated.276	16	1	7961	255	74M1D89M1I13M1I13M	*	0	0	CTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTAGTCCGACTCGTATCGTCTAATGTGAGT	=582/'H6'H9'I728(I2'/I<877;67:(1I8&.I(I402(I(I;8458'H5&.I78;962466(I4'H3&D,I:7;;44878(2I<5(I947*I)4I(I at 7'I;(I67:&+:I99:687)I79<:787;9:(I'H92:476'G'I)I969(I:6(I'G98%36'I7689<5775%9:96'H8<6<:89	NM:i:3	MD:Z:74T115	oR:Z:1	oH:i:1	oP:i:7960	oS:A:R	XE:i: [...]
 simulated.277	0	1	6920	255	193M	*	0	0	GGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTA	I/'I2(I(8I1(68I.&>98787G'747875?I(78I0'8E&;666:8874H'3H'99;4E&H':68=5079I(4767>I-&9=I*<51I(7I'5G'8?:66F&I):I1(I'79I(:;I;+&I(<58:76748;285E&:7II3*&I/'6I(636:76I)=>77I(14<9<I':I)7765684:<I(<;I*75	NM:i:0	MD:Z:193	oR:Z:1	oH:i:1	oP:i:6919	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.278	16	1	2369	255	183M	*	0	0	ATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAG	9;576<8'H3>06;8586483&*2II68'G'/I'I=:69)I'/I(I)I:5<9'I&.I'/I:04(I=7'H:2)I:::?49<)I9&.I:)I46)I:75)I77<?<:9'I96649(I7878(I858686<<<636&E7(I)I(I'I6:'F(I6:677(I7(I'H9&-I7>=44<5678<5::;755	NM:i:0	MD:Z:183	oR:Z:1	oH:i:1	oP:i:2368	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.279	0	1	4667	255	55M1D134M	*	0	0	AATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCT	I(2<5656I(9I(36025I/'H'27;I(87;9:5I/'545I'I(797:4I)4:4:I+8887I(:@I(5:II4+'I0'I*9I)7624I(<5;5I(976;4:;6II3*&7136I(5:;9I(:9:I=,'9I(5>7I'83G'I(88I)I2(79I-&655I.&I(5I)II4+'66966I)6G'I'9:I*36I(6	NM:i:1	MD:Z:55^T134	oR:Z:1	oH:i:1	oP:i:4666	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.279	0	1	4667	255	55M1D134M	*	0	0	AATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCT	I(2<5656I(9I(36025I/'H'27;I(87;9:5I/'545I'I(797:4I)4:4:I+8887I(:@I(5:II4+'I0'I*9I)7624I(<5;5I(976;4:;6II3*&7136I(5:;9I(:9:I=,'9I(5>7I'83G'I(88I)I2(79I-&655I.&I(5I)II4+'66966I)6G'I'9:I*36I(6	NM:i:1	MD:Z:55T134	oR:Z:1	oH:i:1	oP:i:4666	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.280	16	1	1987	255	6M1I207M	*	0	0	GGGAAACGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAG	'/I'0I(57844(I5679(IA'H?8256&)1II76)I57876(I9;85187562:5(I9333;&.I:=:(I6'H'0I(I:7962&+:I3'F676'H8(I58496(I566;'0I898(I9'/I635'I:)I:627;336:7A1&E='/I)I65<(3I(I75'I:8(I&E'H&+;I7'G:6&F'0I&F588='I53?866'I:;(I=:578)I<69	NM:i:1	MD:Z:213	oR: [...]
-simulated.281	16	1	6658	255	13M1I42M1D52M1I87M	*	0	0	TCCTTTGCAGTCTCGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATAGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATAC	=(I'1I5;54657(886874(I)I7;49866765579(I=(I)I59883(I;9:67C56',>I5&,I859(2I8&*2II7=:'H)I>6?78)I(I6755'H2;'I626%&*7I6::(I3'H7;5)I(I(I)I24:'G(I5',<I)I:&E<;57(I799977)I65658'H=797748:1666(I)I;&-I7)I<77	NM:i:3	MD:Z:55^G139	oR:Z:1	oH:i:1	oP:i:6657	o [...]
+simulated.281	16	1	6658	255	13M1I42M1D52M1I87M	*	0	0	TCCTTTGCAGTCTCGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATAGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATAC	=(I'1I5;54657(886874(I)I7;49866765579(I=(I)I59883(I;9:67C56',>I5&,I859(2I8&*2II7=:'H)I>6?78)I(I6755'H2;'I626%&*7I6::(I3'H7;5)I(I(I)I24:'G(I5',<I)I:&E<;57(I799977)I65658'H=797748:1666(I)I;&-I7)I<77	NM:i:3	MD:Z:55G139	oR:Z:1	oH:i:1	oP:i:6657	oS [...]
 simulated.282	16	1	8138	255	208M	*	0	0	GTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACG	7:57(I83886<4;9;9&+:I7:7;(I'/I'G66*I9:<&E7)I'/I56;4)I86866(3I:::8'H(I55'H<6;85=<4(I8'H6=)I54:786&-I'I27'I;22<='I5(I)I5;6924(I698;7(I;6(I47369647:4)I)I'I'0I'H879:3&F66(I='H84(2I6;6(I7)I7;5493135>8&E199(1I(I735	NM:i:0	MD:Z:208	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.283	16	1	2606	255	120M1D93M	*	0	0	ATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAG	7;(I;7)I>88473;(I2478263988&)1IIC5(I3(2I53&E37;;979<88(I2<568<'H;9<9)I:?989;173=875'H876(I98996358;4)I6'I:3=6;;:78>7;&F8(3I94'0I=&.I&+:IA5'I695(2I(I36=67:8)I44(I(I5',>I37=83<'G69'H&-I(I755874:7&+;I2*I7(/FI:'/I75:7	NM:i:1	MD:Z:120^G93	 [...]
-simulated.284	0	1	1301	255	11M1D174M	*	0	0	CGGCAAATTTACCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAG	0F'7I0'I/'8I+7I(;I'6;2H'I:+&3249;88868I(9I(H'77I'I1(785686;I.&>:I'69I(<I0'6I)::I'I'7;55688274885E&45857778/I<+&6I)8I'76I)3I-&754:::I);F&>;6391I)9906I'I)5I0'9I(I(I2(6997;I(84684:I-&:<247	NM:i:1	MD:Z:11^C174	oR:Z:1	oH:i:1	oP:i:1300	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.283	16	1	2606	255	120M1D93M	*	0	0	ATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAG	7;(I;7)I>88473;(I2478263988&)1IIC5(I3(2I53&E37;;979<88(I2<568<'H;9<9)I:?989;173=875'H876(I98996358;4)I6'I:3=6;;:78>7;&F8(3I94'0I=&.I&+:IA5'I695(2I(I36=67:8)I44(I(I5',>I37=83<'G69'H&-I(I755874:7&+;I2*I7(/FI:'/I75:7	NM:i:1	MD:Z:120G93	o [...]
+simulated.284	0	1	1301	255	11M1D174M	*	0	0	CGGCAAATTTACCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAG	0F'7I0'I/'8I+7I(;I'6;2H'I:+&3249;88868I(9I(H'77I'I1(785686;I.&>:I'69I(<I0'6I)::I'I'7;55688274885E&45857778/I<+&6I)8I'76I)3I-&754:::I);F&>;6391I)9906I'I)5I0'9I(I(I2(6997;I(84684:I-&:<247	NM:i:1	MD:Z:11C174	oR:Z:1	oH:i:1	oP:i:1300	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.285	0	1	2419	255	104M1I82M	*	0	0	TCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACACTTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCT	=8I(I/'I1'825G'36I'34H'5853338I'5I/'<G'97I)555I(974482;I(9732=I(678:I(2=7;7A346.58I(4I(H'H'G'66I)I'798:3*I(6G'F'8I/'95:975;:5:88478:;I'6;I'2I):512<?;82:68I(6I(8II2*&8:4I)<:9<7556I/'I(5837	NM:i:1	MD:Z:186	oR:Z:1	oH:i:1	oP:i:2418	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.286	0	1	7446	255	49M1D86M1I8M1I56M	*	0	0	CAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTAGTTAGTTACTTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGG	:99.G'I(:7I'G'664962I1(I/'<;88844I'7=I(7I1'I(G'57CI(28;:66648I0'8397I(I1'77I.&I)I-&58I(I'I'I+68><82I(8;H'I'6:24H'38?6;I)5I)7I(F'417I(76&5I(:8I(9'F&I(9I';6943:<<B8F'5=46;;5:I(<555I(9H'I(999:18<9:8;I)I1(	NM:i:3	MD:Z:49^A150	oR:Z:1	oH:i:1	oP: [...]
-simulated.287	0	1	2446	255	40M1I82M1I65M1D23M	*	0	0	GACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTCGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATACGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTGTGGCAAATCTTATCTGAG	7:8I)7I1(8I(48I(44:I(9==4476I(84879I)54<+7G'6816:9978845I)6I(H'I(I(75I(I(85175I(7G'I(5I/'678785:<7766>572;I(:9I(8I(7<785>57%87:6I'9H'4II1)&947H':9679;28I/'G'7;7:967H'=<E&:87;;83I)5;35<6:;68IE/(7;I*8I/'4;I):<97487	NM:i:3	MD:Z:18 [...]
-simulated.288	0	1	1667	255	174M1D26M	*	0	0	GGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGCATAGGTGGAATTGAATGACCGA	H'66562I)654?9I(58996857I(I)I/'I(1G';8G'I(::776<68I'87;:9629253<788I(7995G'43I.&6:9-6BI:+&I(9477:G'4954.::E&986I)I(8I=,'6787G'I(39I4)I'5I)6:5;3876982899H'8:676I*5:I.&I.&I';:6I7*<488I(1H'H'I(8I(;7:I(<7	NM:i:1	MD:Z:174^G26	oR:Z:1	oH:i:1	oP:i:1666	oS: [...]
-simulated.289	0	1	2412	255	11M1D7M1I28M1I22M1D41M1I79M1I13M	*	0	0	CGGTTAGTCAATTAAAGTAGAATATTAGTTGTATGACTTACCCTAATAGAATACAACGAGCAGCCGACAGCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACACTTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATAGCTCATGGATGGC	5E&I'7887I)I,I0'6;'8H'22I(9;I(6847:89I(7I2(7I'6(=I(<73I(7723;<;I(6:41:D=788I(94479?357;28I'2I(I(H'I'84I)I(5678:%I(8I(I'<I-&:8779588:699>657:I(84I)9I(379;4>:5:9<9G';I(8II2*&5 at 8I(538485:7I-&I(8%817;90I(86I(7	NM:i:6	MD:Z:11 [...]
+simulated.286	0	1	7446	255	49M1D86M1I8M1I56M	*	0	0	CAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTAGTTAGTTACTTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGG	:99.G'I(:7I'G'664962I1(I/'<;88844I'7=I(7I1'I(G'57CI(28;:66648I0'8397I(I1'77I.&I)I-&58I(I'I'I+68><82I(8;H'I'6:24H'38?6;I)5I)7I(F'417I(76&5I(:8I(9'F&I(9I';6943:<<B8F'5=46;;5:I(<555I(9H'I(999:18<9:8;I)I1(	NM:i:3	MD:Z:49A150	oR:Z:1	oH:i:1	oP:i [...]
+simulated.287	0	1	2446	255	40M1I82M1I65M1D23M	*	0	0	GACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTCGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATACGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTGTGGCAAATCTTATCTGAG	7:8I)7I1(8I(48I(44:I(9==4476I(84879I)54<+7G'6816:9978845I)6I(H'I(I(75I(I(85175I(7G'I(5I/'678785:<7766>572;I(:9I(8I(7<785>57%87:6I'9H'4II1)&947H':9679;28I/'G'7;7:967H'=<E&:87;;83I)5;35<6:;68IE/(7;I*8I/'4;I):<97487	NM:i:3	MD:Z:18 [...]
+simulated.288	0	1	1667	255	174M1D26M	*	0	0	GGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGCATAGGTGGAATTGAATGACCGA	H'66562I)654?9I(58996857I(I)I/'I(1G';8G'I(::776<68I'87;:9629253<788I(7995G'43I.&6:9-6BI:+&I(9477:G'4954.::E&986I)I(8I=,'6787G'I(39I4)I'5I)6:5;3876982899H'8:676I*5:I.&I.&I';:6I7*<488I(1H'H'I(8I(;7:I(<7	NM:i:1	MD:Z:174G26	oR:Z:1	oH:i:1	oP:i:1666	oS:A [...]
+simulated.289	0	1	2412	255	11M1D7M1I28M1I22M1D41M1I79M1I13M	*	0	0	CGGTTAGTCAATTAAAGTAGAATATTAGTTGTATGACTTACCCTAATAGAATACAACGAGCAGCCGACAGCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACACTTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATAGCTCATGGATGGC	5E&I'7887I)I,I0'6;'8H'22I(9;I(6847:89I(7I2(7I'6(=I(<73I(7723;<;I(6:41:D=788I(94479?357;28I'2I(I(H'I'84I)I(5678:%I(8I(I'<I-&:8779588:699>657:I(84I)9I(379;4>:5:9<9G';I(8II2*&5 at 8I(538485:7I-&I(8%817;90I(86I(7	NM:i:6	MD:Z:11 [...]
 simulated.290	16	1	3123	255	209M	*	0	0	GCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCC	4:(I524(3I:86838 at 8&-I'+3II975646;<;&E896847;;:(I959'H<<563'I67(I978'G'0I58(I)I3'H<3=(3I87'/I'I'H(I'I57&+9I7;;9(I'+5II5(I59'/I:6:(.BI(I758)I5(I',<I995'G846:4(I'G8(I6(I:<(1I<7(I7=99517:899)I8'I'H<&+;I5'I'H7;4:(I	NM:i:0	MD:Z:209	oR:Z:1	oH:i:1	oP: [...]
 simulated.291	16	1	7269	255	151M1I70M	*	0	0	GGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGTAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTA	'F59886469'G(I9<'I78&+:I)I>6777(I5*I90'0I>11'I=<5(I'0I87(1I647(I665:(I>937(I:8896569*I79;5767:6'/I2;8;<'H4:6838:&,<I<57(I4(I8:6'0I;646;6(I'I793:<695789*29996*6I9(I9=4(I8&+;I667679:7;'I'H=7)I'I57;7;8'/I(2I8755625'I49)I3'/I7	NM [...]
-simulated.292	0	1	278	255	188M	*	0	0	GCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATG	7D:95;:6I(6;H':I'79;6H'5I(G'I'I(I9+&6949I(82I.&54;9929E&984I'935644I:+&>4579I(I1'=64H'7F'8I(7I/'88446448II4+'/I(I(55::I1'I.&:58;994:38I'I*I0'6;958954;I1(H'246F'55H'<:I1(I';76::;4H'09:I(<=8	NM:i:1	MD:Z:0C187	oR:Z:1	oH:i:1	oP:i:276	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.292	0	1	278	255	188M	*	0	0	GCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATG	7D:95;:6I(6;H':I'79;6H'5I(G'I'I(I9+&6949I(82I.&54;9929E&984I'935644I:+&>4579I(I1'=64H'7F'8I(7I/'88446448II4+'/I(I(55::I1'I.&:58;994:38I'I*I0'6;958954;I1(H'246F'55H'<:I1(I';76::;4H'09:I(<=8	NM:i:1	MD:Z:C187	oR:Z:1	oH:i:1	oP:i:276	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.293	16	1	6119	255	4M1I63M1I131M1I2M	*	0	0	CCATCGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGTATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTAGC	'I25,7'/I(I7;99:373;295)I8',>I'0I9:6:708(I69::'I94&.I<:9'/I;397?56:5(9=775>64:8(I699(I543)I97(I7'/I67:667&E9591884875;:9=&.I775(I<636888'1I528:>8(1I57935'1I<'G::&+;I6'I&.I6823<2(I956766;884<;;;7;(I675':6	NM:i:3	MD:Z:200	oR:Z:1	oH:i:1	oP [...]
-simulated.294	0	1	1978	255	115M1I46M1D20M1I21M	*	0	0	CTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCACGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAATTACAATGAACCTTGGGGTACCTCAATTTGGTACGTTCGA	8;6G'7I)3I/'I2(99885I(9896E&7I(;5676II0)&72H';8744I'88:<38:6938.G'-94 at 9I-&57/I'7I)I.'I)8558:IA-(=G';69I(8I)98794I(4&874I2(9<9I(0I.&57<G'6I)=:36<:535586I)2I-&I(77>I*I(5:I'73I)E&E&I8*&&7I(;9H'I0'I);8:7H'8;3	NM:i:3	MD:Z:161^A41	oR:Z:1	oH [...]
+simulated.294	0	1	1978	255	115M1I46M1D20M1I21M	*	0	0	CTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCACGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAATTACAATGAACCTTGGGGTACCTCAATTTGGTACGTTCGA	8;6G'7I)3I/'I2(99885I(9896E&7I(;5676II0)&72H';8744I'88:<38:6938.G'-94 at 9I-&57/I'7I)I.'I)8558:IA-(=G';69I(8I)98794I(4&874I2(9<9I(0I.&57<G'6I)=:36<:535586I)2I-&I(77>I*I(5:I'73I)E&E&I8*&&7I(;9H'I0'I);8:7H'8;3	NM:i:3	MD:Z:161A41	oR:Z:1	oH: [...]
 simulated.295	0	1	2104	255	7M1I151M1I7M1I36M	*	0	0	TCCCGTCTAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTACGACTACTCGGCCTAGCCCTAATCTACGCAACACAGACGGTACGA	8I/'9;6(I(6I(<688;58752;8I(:I0'I(:5=I.'I(;9I(77I(F'G'I:+&7I(78G'I-&I)486:G'698896I)62H'29>6=I)45;I/'I)07II:.)&64;9I9+&6275H'859=48:6585:4;6I'7<I/'8 at 69I'72;94/4'4388767*I(I(2;;I-&:F&9:2<738I';:=6497I(8956:	NM:i:3	MD:Z:201	oR:Z:1	oH:i:1	o [...]
 simulated.296	16	1	415	255	208M	*	0	0	CGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTC	;&.I86<@643:8&-I(I;68)I7=(I45'.I)I6>:568:'H98:)I25=<76(I85 at 5;6646'G;8)I6&F+I(I84&*8I5=838:>'I;6(I(-AI:95(I89'.I7538&-I7'I(I=77'1I:686;9'I:78<7)I<(I(I9657296;'0I/9995'1I>57=565'H8285989'/I<6'/I7(I659763:=(I744	NM:i:0	MD:Z:208	oR:Z:1	oH:i:1	oP:i:4 [...]
-simulated.297	16	1	4736	255	122M1I37M1D8M1I33M	*	0	0	TCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTAGTTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACGTTGCGGCCATCCAATGTCTGCAATATGGAAGCG	5&)1II'/I(I4'G8217(I778<)I476566>8&*3II7556'F9967)I?94&,<I4(I457)I57'F(I48)I'/I9:&-I887'/I(I6(I&)0II76=7:(I<'F(I37(I9;(I<6*(I98566&-I37&F847:8836:;;'G9'/I681'I:*7I8328;&'H;6'G(I?;'F(I878::67'H737(I&D867	NM:i:3	MD:Z:159^G41	oR:Z:1	oH:i:1 [...]
-simulated.298	16	1	5396	255	21M1D188M	*	0	0	ATAAGACGGGTGATGCCAGGTGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCA	98(I:69'/I9:766'I:&F8,I7'I66&*1II:2<27'I:<983:99)I89(I44:24>'I5<89:;5::'I(I637&F7)I:77759'G(I:(I<9597(I;6895756)I;&-I69&E4D'.I'/I95723'G865'/I75)I(I(3I4(I:99:+I0(I=75'I587:;55(I9)I44;:76646:95'H<6'I*I;35484'I5	NM:i:1	MD:Z:21^G188	oR:Z:1	o [...]
+simulated.297	16	1	4736	255	122M1I37M1D8M1I33M	*	0	0	TCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTAGTTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACGTTGCGGCCATCCAATGTCTGCAATATGGAAGCG	5&)1II'/I(I4'G8217(I778<)I476566>8&*3II7556'F9967)I?94&,<I4(I457)I57'F(I48)I'/I9:&-I887'/I(I6(I&)0II76=7:(I<'F(I37(I9;(I<6*(I98566&-I37&F847:8836:;;'G9'/I681'I:*7I8328;&'H;6'G(I?;'F(I878::67'H737(I&D867	NM:i:3	MD:Z:159G41	oR:Z:1	oH:i:1	 [...]
+simulated.298	16	1	5396	255	21M1D188M	*	0	0	ATAAGACGGGTGATGCCAGGTGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCA	98(I:69'/I9:766'I:&F8,I7'I66&*1II:2<27'I:<983:99)I89(I44:24>'I5<89:;5::'I(I637&F7)I:77759'G(I:(I<9597(I;6895756)I;&-I69&E4D'.I'/I95723'G865'/I75)I(I(3I4(I:99:+I0(I=75'I587:;55(I9)I44;:76646:95'H<6'I*I;35484'I5	NM:i:1	MD:Z:21G188	oR:Z:1	oH [...]
 simulated.299	0	1	8460	255	174M1I10M	*	0	0	GTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGTACGCAAAGTA	1?G'I)6;8786I(I'I0'94<I.'5>I)59I(486;5>27265:74I)8;9>I(6:I'7I*<:I'8I.&/74;F'6I(784:77<H'I'5;5:7I'I(II1)&9669I<,'66I'2;65I0':I.'4I):I(9777I'1I(75;H'5G'958I<,&I3(I(66551I<,&>9:&66::I2(79:	NM:i:1	MD:Z:184	oR:Z:1	oH:i:1	oP:i:8459	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.300	16	1	1229	255	46M1I37M1D60M1I41M	*	0	0	AGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACTAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGACGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAAC	8?7)I42(I9&E*I<8'H6627'/I4;)I*I4&*8I(I8(I77;84%:'H89*I:58'I96<(I8598(I'/I5(I8'0I(1I5,I5'I>(I688(I&+;I76665566:2'I3'I(I4;'H(1I3965:54&-I09(I36'I5&'0I7'I57(I)I6875=994455<4(I958956869'-?I2	NM:i:3	MD:Z:83^C101	oR:Z:1	oH:i:1	oP:i:1228	oS:A:R	XE:i:3	XS:i:0	XI:i:0
-simulated.301	16	1	1404	255	10M1I19M1D45M1D23M1I51M1I39M	*	0	0	CAGACAAAACTAAGAATCAAGTTTCTACAGCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAGTGAGAGGAAGTTGGTCGTCTAGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCTACATGTCATCCTATGATATCAAACCATGCACGTATTGTA	3845<&+;I8+(I3(I<:(I4(1I949864D8(I395:68)I7564'G'I:(2I:(I+I'/I8>6;6)I:65986,I749777'I(I;(I'G654:7;%6:739747;>'H'0I3:586&.I79A&)1II(I(I;7'I(I9<768:6'.I'98:=89<47'I=5;48:956&.I'G6:29575;3(I9><	NM:i:5	MD:Z:29^C45^A113	oR:Z:1	oH:i:1	oP:i:1403 [...]
-simulated.302	0	1	7702	255	29M1D172M	*	0	0	CGCGGAACCAGAATGCCTTCACTCAAGCAGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCAT	;49I(I'I)88H'37I(I(53:89I(749D8::37;G'I(H'89:I'6<4::7<F&I(I(89I0'67:I;+&;I(I.&I*F'6988I):7677I'67I2(>5 at 9II0)&84I)I/'4589956E&6=5=;4718I'26:I3(87I0'I.&;:8H'4I(677;33:I'I/'9I(I(957;66657I9*&6H':86I(I(988	NM:i:1	MD:Z:29^G172	oR:Z:1	oH:i:1	oP:i:7701	o [...]
-simulated.303	16	1	602	255	153M1I28M1D37M	*	0	0	CTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCGTACGGTTGCATGGTTATTTAAAGGCTATCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAG	2:(3I7(I77435944'G::=8;875(I7;(I87)I661)I44B&).9II)I=86(3I;<98(I(I3'.I38:69751?8'G59776<7138A'H6589481:7)I:;9(I5:1'H;4&.I3)I5:'H5=7358834:4(I<:67)I73(I56%878(I)I6:89)I(I6(1I'/I'F7:78,I::58<?<&+9I44;37575>6639:64;&-I45;7	NM:i [...]
-simulated.304	16	1	2652	255	80M1D6M1D87M1I31M	*	0	0	CTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTCTTTGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCGATCGATATAAAAGTAAAAATCACTCTTCTAG	::867914)I87<65?)I:?68'I;08577458438=&F4<;(I8642750934(I:(I63<7882967<7(I7&+;I29*I7&,I(1I44(I578(2I'I68677<5)I:8'H'H8',>I3;639:'G55'G(1I(I89666=87',<I=(I=&+:I5(2I3958'H55<86%94978866',<I49&*2II99730:'G9327	NM:i:3	MD:Z:80^T6^G118	oR:Z: [...]
-simulated.305	0	1	5429	255	19M1I162M1I5M1D6M1I24M	*	0	0	ACACGTGGAGCTCGCGTTCGATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTCGTTCATCTCTACGTCTGCTGACTACCAGTATTGCGA	787674I(8>598677I(:';G'82577;I(996355948I)I)968I)8I(093666G'G'<I(59545H'9895<57:I'6I0'7<I*88I0'I0':8799H'5.7I0'::I(I)I.&4G'88:8I(:I(997I(727=;53I'7I(8976;689538;I'9;I*I(659865I)98285*<I';:A88696%58<4?531=437G'::72I(; [...]
-simulated.306	16	1	5996	255	57M1D120M	*	0	0	TTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACA	'/I5(I(I7'/I;=>97:<&+;I9'/I3&).:II87:6:998;;=2(I(I>4(I467,I9;87<9:77?6>=@;'H884:99'0I6'F715298;(I7)I959'H6719&)1II;',>I737(I339'/I(I6656756:5:8:(I6',<I'0I>675326'H7<57'I79'/I83=	NM:i:1	MD:Z:57^A120	oR:Z:1	oH:i:1	oP:i:5995	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.300	16	1	1229	255	46M1I37M1D60M1I41M	*	0	0	AGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACTAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGACGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAAC	8?7)I42(I9&E*I<8'H6627'/I4;)I*I4&*8I(I8(I77;84%:'H89*I:58'I96<(I8598(I'/I5(I8'0I(1I5,I5'I>(I688(I&+;I76665566:2'I3'I(I4;'H(1I3965:54&-I09(I36'I5&'0I7'I57(I)I6875=994455<4(I958956869'-?I2	NM:i:3	MD:Z:83C101	oR:Z:1	oH:i:1	oP:i:1228	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.301	16	1	1404	255	10M1I19M1D45M1D23M1I51M1I39M	*	0	0	CAGACAAAACTAAGAATCAAGTTTCTACAGCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAGTGAGAGGAAGTTGGTCGTCTAGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCTACATGTCATCCTATGATATCAAACCATGCACGTATTGTA	3845<&+;I8+(I3(I<:(I4(1I949864D8(I395:68)I7564'G'I:(2I:(I+I'/I8>6;6)I:65986,I749777'I(I;(I'G654:7;%6:739747;>'H'0I3:586&.I79A&)1II(I(I;7'I(I9<768:6'.I'98:=89<47'I=5;48:956&.I'G6:29575;3(I9><	NM:i:5	MD:Z:29C45A113	oR:Z:1	oH:i:1	oP:i:1403	o [...]
+simulated.302	0	1	7702	255	29M1D172M	*	0	0	CGCGGAACCAGAATGCCTTCACTCAAGCAGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCAT	;49I(I'I)88H'37I(I(53:89I(749D8::37;G'I(H'89:I'6<4::7<F&I(I(89I0'67:I;+&;I(I.&I*F'6988I):7677I'67I2(>5 at 9II0)&84I)I/'4589956E&6=5=;4718I'26:I3(87I0'I.&;:8H'4I(677;33:I'I/'9I(I(957;66657I9*&6H':86I(I(988	NM:i:1	MD:Z:29G172	oR:Z:1	oH:i:1	oP:i:7701	oS [...]
+simulated.303	16	1	602	255	153M1I28M1D37M	*	0	0	CTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCGTACGGTTGCATGGTTATTTAAAGGCTATCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAG	2:(3I7(I77435944'G::=8;875(I7;(I87)I661)I44B&).9II)I=86(3I;<98(I(I3'.I38:69751?8'G59776<7138A'H6589481:7)I:;9(I5:1'H;4&.I3)I5:'H5=7358834:4(I<:67)I73(I56%878(I)I6:89)I(I6(1I'/I'F7:78,I::58<?<&+9I44;37575>6639:64;&-I45;7	NM:i [...]
+simulated.304	16	1	2652	255	80M1D6M1D87M1I31M	*	0	0	CTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTCTTTGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCGATCGATATAAAAGTAAAAATCACTCTTCTAG	::867914)I87<65?)I:?68'I;08577458438=&F4<;(I8642750934(I:(I63<7882967<7(I7&+;I29*I7&,I(1I44(I578(2I'I68677<5)I:8'H'H8',>I3;639:'G55'G(1I(I89666=87',<I=(I=&+:I5(2I3958'H55<86%94978866',<I49&*2II99730:'G9327	NM:i:3	MD:Z:80T6G118	oR:Z:1	 [...]
+simulated.305	0	1	5429	255	19M1I162M1I5M1D6M1I24M	*	0	0	ACACGTGGAGCTCGCGTTCGATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTCGTTCATCTCTACGTCTGCTGACTACCAGTATTGCGA	787674I(8>598677I(:';G'82577;I(996355948I)I)968I)8I(093666G'G'<I(59545H'9895<57:I'6I0'7<I*88I0'I0':8799H'5.7I0'::I(I)I.&4G'88:8I(:I(997I(727=;53I'7I(8976;689538;I'9;I*I(659865I)98285*<I';:A88696%58<4?531=437G'::72I(; [...]
+simulated.306	16	1	5996	255	57M1D120M	*	0	0	TTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACA	'/I5(I(I7'/I;=>97:<&+;I9'/I3&).:II87:6:998;;=2(I(I>4(I467,I9;87<9:77?6>=@;'H884:99'0I6'F715298;(I7)I959'H6719&)1II;',>I737(I339'/I(I6656756:5:8:(I6',<I'0I>675326'H7<57'I79'/I83=	NM:i:1	MD:Z:57A120	oR:Z:1	oH:i:1	oP:i:5995	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.307	0	1	1679	255	9M1I191M	*	0	0	GACCATAGTAGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCA	6;H'473=<(977I(I'I/'I(4F&::I(F'86:17767I)755;77854877696I)359:I(>8I5)73<475I9*&I)56546I):9659A;I'507I*H'7I:+&?:67I(I(68I-&I(3I(4<557<485956:7I'799;6I)73I/'I-&G'7<9I=,'8;;6I)=I)I'H'8I'6>7I*8806I(I(56789	NM:i:1	MD:Z:200	oR:Z:1	oH:i:1	oP:i:1678	oS:A:F [...]
 simulated.308	16	1	7763	255	175M1I31M	*	0	0	CATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACACGTCCGTGGTGTAGTAGTGTATAACTCTGAAT	86&.I989&+;I5'I'0I)I'H766>'H<449>'I32'0I3568&*1II4:(I'0I74<99:5'F7<9838;77'I:6@&.I45'0I'/I./8'F6(I:69536=(I)5I1'H(I:78977679&*8I:'I775(I'H<9588:;3(2I69)I4&F8'I88(I;4:)I:323268&65'I86'I8:<8:7::8:6?8)I;8:78'I:	NM:i:1	MD:Z:206	oR:Z:1	oH:i:1	oP [...]
 simulated.309	0	1	4223	255	183M	*	0	0	AGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGC	84:88748487I(I.'3I/'I(I)I*:979 at 7;42;:8884F&I.&27G'7886I(9H'I(89I0'98I;+&5:5755847I(I.&I.&998I)979:I'I/'5797443:324I(=G'I(96:I(8I(;I*F'46:5I(356I(9:967=I'470;F&;<6I/'54:7;3665585:9:566	NM:i:0	MD:Z:183	oR:Z:1	oH:i:1	oP:i:4222	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.310	0	1	4940	255	11M1I55M1D134M	*	0	0	TATCATGGCAACGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCA	165726I'6I'(87:7I'9:9I(4I.&G'F'87=;G'8I*8994:I(8936;I)9866I(8;4<2=8I,;I-&;8;:766I(837I*57I(48I-&4II=0*&7I=,'H'>6849=6<I(547I/'64I(886I(75675I(96I'5656I(49964;597I(6=795H'646I(55I)G'6I/'6I(4;;348II9.)&:	NM:i:2	MD:Z:66^G134	oR:Z:1	oH:i:1	oP:i:4 [...]
+simulated.310	0	1	4940	255	11M1I55M1D134M	*	0	0	TATCATGGCAACGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCA	165726I'6I'(87:7I'9:9I(4I.&G'F'87=;G'8I*8994:I(8936;I)9866I(8;4<2=8I,;I-&;8;:766I(837I*57I(48I-&4II=0*&7I=,'H'>6849=6<I(547I/'64I(886I(75675I(96I'5656I(49964;597I(6=795H'646I(55I)G'6I/'6I(4;;348II9.)&:	NM:i:2	MD:Z:66G134	oR:Z:1	oH:i:1	oP:i:49 [...]
 simulated.311	16	1	1548	255	106M1I70M	*	0	0	GTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAACGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTAT	876'/I68;36:22C(I592<95679&.I'G947288822'I977;;;<95='/I>467886'0I4(I5:65'H'H'I6='-?I98='H'- at I2'.I8(I:;88(I%5:<;'I7(I6(I9(I5=:27)I6;5<:'G60367=7:)I'G'/I(I<)I::'I(I988963=:)I211:7	NM:i:1	MD:Z:176	oR:Z:1	oH:i:1	oP:i:1547	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.312	0	1	7524	255	10M1I15M1I178M	*	0	0	TCCTTTCTGGTCCAAGGTGTGCAGGTACAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCA	8I(I0'=5I(&I'I(I'7:7?88I(7&5I*I(:05:I(0;677I'5G'8F'G'9;<I(172I(74I)6I)I'7I(45<:<6<233F'787;8779F'4567I(7I(I'<:78679;7>:I(I/'?I(8:I(1I1(I'8::858:6558G'<5-H'58I/'35657I0'418E&<1I(69656;I'G'I(:<I(88I'I(:6><:<	NM:i:2	MD:Z:203	oR:Z:1	oH:i:1	oP [...]
-simulated.313	0	2	221	255	155M1D53M	*	0	0	GTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAATCAGACTAGGG	98H':I)I0'37I7*&I(<I(8I'H':=4:5I0'I)77678<4:58658<I(55H'I0'7869I(36I*9-I)6259>9;886>798474G'4643?37;78995I/'I(I(978357=H'I'I(;84946<.7H'778I(83I0'6;I<,&6<8I+88I(8<64>:864I(46I1'7I'76752I'8I'D&I1'H'7637<<97I1'	NM:i:1	MD:Z:155^T53	oR:Z:2	oH:i: [...]
+simulated.313	0	2	221	255	155M1D53M	*	0	0	GTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAATCAGACTAGGG	98H':I)I0'37I7*&I(<I(8I'H':=4:5I0'I)77678<4:58658<I(55H'I0'7869I(36I*9-I)6259>9;886>798474G'4643?37;78995I/'I(I(978357=H'I'I(;84946<.7H'778I(83I0'6;I<,&6<8I+88I(8<64>:864I(46I1'7I'76752I'8I'D&I1'H'7637<<97I1'	NM:i:1	MD:Z:155T53	oR:Z:2	oH:i:1 [...]
 simulated.314	16	1	2960	255	55M1I63M1I9M1I56M	*	0	0	AAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTAGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTACCACGGGACTAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGG	'I6(I7896454)I7(I5783<869(I792739&.I3(1I2(I7'H'I'H36;(I&5(I74648:8647576'G68774'H(I)I9'.I1<4'H=:9;8'G7)I'/I894657;78'/I%)I4:'.I63&(I&+:I'H6;:6578=33'I(I'I(I9<973:57886:)I8:8(1I84?4878A(I	NM:i:3	MD:Z:183	oR:Z:1	oH:i:1	oP:i:2959	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.315	16	1	552	255	182M	*	0	0	CTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTG	69797'I5(I)I5::82567'0I45879&.I<866:5;(I57<;678'0I;7&.I8'F4389:;2<'I:776674=(I87'I:=(I78=(I;9<%(-7II)I816'.I98:8'H(I:'1I5766899898'H68150769752&F74:362888'H375&F::8(I3<(2I6(I89)I7:<<	NM:i:0	MD:Z:182	oR:Z:1	oH:i:1	oP:i:551	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.316	16	1	5024	255	42M1I90M1D66M1I3M	*	0	0	TAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGTCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCGTCG	8'G99(I=8'0I:&)/;II;',<I(I7667:.74'G446'0I%99*I498'H;88<<(I76'I9669(I675:65528(I57/67(I839'F9<(I'I9&.I6'I389<68%(.9II867874<<88(I9526,I?68'H<'G35<3&E768;',=I2'H'0I984'I;:7(I(I56)I)I'/I6<8&-I)I(I;:483&<3:	NM:i:3	MD:Z:132^C69	oR:Z:1	oH:i: [...]
-simulated.317	0	1	6819	255	104M1D89M	*	0	0	CATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTA	1955;3I'9295:737=547F&I(8I0'5H'9969;8I'276I(>6I.&=:75I(I(I-&9/I'I)<I'8I(69H'167H'66I):H'I)76488:I'98;I1(I+I)5I/'7<I1(257579I(:188499I(85I/':I)968719836I(7I(;864H'H';6028718H'6:698I-&86I'8:9I(37	NM:i:1	MD:Z:104^C89	oR:Z:1	oH:i:1	oP:i:6818	oS:A:F	XE:i:1	XS: [...]
-simulated.318	0	1	4814	255	3M1D47M1D20M1D7M1I24M1I72M	*	0	0	AGCAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTACTTGCTCTATGTATCCGTTAGTGGTCGGGGATGACTTGCGGCCATCCAAGTGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTG	693I,=:9I/'G'9I)II2*&79996G'1E&I)64I)78I(9<I(97676I+<:I)51;63834:94H'3I,475I(%6I at -';496=I,9<I(I(73I+I+&5849588I)862E&G';83775464969I)7I(5578H'671I'/I0'I'I'799<I(7I':7=59I)<86<	NM:i:5	MD:Z:3^A47^T20^T103	oR:Z:1	oH:i:1	oP:i:4813	oS:A:F	XE:i:5	XS:i:0	XI:i:0
-simulated.319	0	1	1186	255	210M	*	0	0	GGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGTCGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACA	I/'I(7968<299I(65H'7I(8;I=,'89=@I(544H'786853>D7(3I(5I)I(>9I)8;;7I.&56I(F'7I8*&I)3I(:61526I(56I(7::I(7:7I(6577H'I/'9I(5I/'I/'5I4)8I(;I)75:I(I<,'4596;537=<I(6I(H'89I(I/'256562:I/'99H'.9I)5I/'9I(7:I'I)89:949:=?62	NM:i:2	MD:Z:47G0T161	oR:Z:1	oH:i [...]
-simulated.320	16	2	172	255	34M1D70M1D99M	*	0	0	AACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGAT	(I6;4(I'0I)I*I68'H7&.I(I38>1(I5'H9D'F8:775<84)I<;8)I6)I&-I24&,<I(I8(I6'H(I<717:'0I'G;7<83<8;678678(I69(I,I8897'I88'H53&E78385:<;4:=39=6=4'H;737<>7:>8/5:'0I'I)I;9375;9(I(I'I569<98;54'H1<3'F76&-I<7',=I2=95	NM:i:2	MD:Z:34^T70^T99	oR:Z:2	oH:i:1	 [...]
-simulated.321	16	1	8964	255	204M	*	0	0	TGCCTAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCG	45'G'8,I9<84<(I6=:4:9846:(1I5)I7(I89:9;544:96(I5<9'0I878'I98::78)I975(I(I:(I:=;'I5798<9642(I3186(I)I::8:9'0I'I(I2&E8699:>'H66>&-I(1I837'H7(I6::5458;'G(I964635(I8(I8(I'I:7'I:'I85(I5<(I5916'H<8655857:8(I(I2	NM:i:2	MD:Z:4A0G198	oR:Z:1	oH:i:1	oP:i:8963 [...]
+simulated.316	16	1	5024	255	42M1I90M1D66M1I3M	*	0	0	TAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGTCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCGTCG	8'G99(I=8'0I:&)/;II;',<I(I7667:.74'G446'0I%99*I498'H;88<<(I76'I9669(I675:65528(I57/67(I839'F9<(I'I9&.I6'I389<68%(.9II867874<<88(I9526,I?68'H<'G35<3&E768;',=I2'H'0I984'I;:7(I(I56)I)I'/I6<8&-I)I(I;:483&<3:	NM:i:3	MD:Z:132C69	oR:Z:1	oH:i:1 [...]
+simulated.317	0	1	6819	255	104M1D89M	*	0	0	CATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTA	1955;3I'9295:737=547F&I(8I0'5H'9969;8I'276I(>6I.&=:75I(I(I-&9/I'I)<I'8I(69H'167H'66I):H'I)76488:I'98;I1(I+I)5I/'7<I1(257579I(:188499I(85I/':I)968719836I(7I(;864H'H';6028718H'6:698I-&86I'8:9I(37	NM:i:1	MD:Z:104C89	oR:Z:1	oH:i:1	oP:i:6818	oS:A:F	XE:i:1	XS:i [...]
+simulated.318	0	1	4814	255	3M1D47M1D20M1D7M1I24M1I72M	*	0	0	AGCAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTACTTGCTCTATGTATCCGTTAGTGGTCGGGGATGACTTGCGGCCATCCAAGTGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTG	693I,=:9I/'G'9I)II2*&79996G'1E&I)64I)78I(9<I(97676I+<:I)51;63834:94H'3I,475I(%6I at -';496=I,9<I(I(73I+I+&5849588I)862E&G';83775464969I)7I(5578H'671I'/I0'I'I'799<I(7I':7=59I)<86<	NM:i:5	MD:Z:3A47T20T103	oR:Z:1	oH:i:1	oP:i:4813	oS:A:F	XE:i:5	XS:i:0	XI:i:0
+simulated.319	0	1	1186	255	210M	*	0	0	GGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGTCGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACA	I/'I(7968<299I(65H'7I(8;I=,'89=@I(544H'786853>D7(3I(5I)I(>9I)8;;7I.&56I(F'7I8*&I)3I(:61526I(56I(7::I(7:7I(6577H'I/'9I(5I/'I/'5I4)8I(;I)75:I(I<,'4596;537=<I(6I(H'89I(I/'256562:I/'99H'.9I)5I/'9I(7:I'I)89:949:=?62	NM:i:2	MD:Z:47GT161	oR:Z:1	oH:i: [...]
+simulated.320	16	2	172	255	34M1D70M1D99M	*	0	0	AACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGAT	(I6;4(I'0I)I*I68'H7&.I(I38>1(I5'H9D'F8:775<84)I<;8)I6)I&-I24&,<I(I8(I6'H(I<717:'0I'G;7<83<8;678678(I69(I,I8897'I88'H53&E78385:<;4:=39=6=4'H;737<>7:>8/5:'0I'I)I;9375;9(I(I'I569<98;54'H1<3'F76&-I<7',=I2=95	NM:i:2	MD:Z:34T70T99	oR:Z:2	oH:i:1	oP [...]
+simulated.321	16	1	8964	255	204M	*	0	0	TGCCTAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCG	45'G'8,I9<84<(I6=:4:9846:(1I5)I7(I89:9;544:96(I5<9'0I878'I98::78)I975(I(I:(I:=;'I5798<9642(I3186(I)I::8:9'0I'I(I2&E8699:>'H66>&-I(1I837'H7(I6::5458;'G(I964635(I8(I8(I'I:7'I:'I85(I5<(I5916'H<8655857:8(I(I2	NM:i:2	MD:Z:4AG198	oR:Z:1	oH:i:1	oP:i:8963	 [...]
 simulated.322	0	2	158	255	67M1I127M	*	0	0	CATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCGTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCA	2957I(F&46I<+&H'677I(I1'I(I(5;I(6I/'I(7986I'0I)6I(I'5657168:I(::9I('4E&I4)8:I8*&H'@I*;I(I(736;7I.&G'77:6894<88:95<I(1;I(I1(:8<;I(8<I'15I'9664;5;58:9<:6978I(:754?<3;48=;8I-&I)I+::4<46=I'I(I(7<46;:	NM:i:1	MD:Z:194	oR:Z:2	oH:i:1	oP:i:157	oS:A:F	XE:i:1	XS:i: [...]
-simulated.323	0	1	3986	255	27M1I25M1D25M1I16M1D73M	*	0	0	TGACTTAGACAGAGGTCCTGCCTGACACGTAAACCCCGCCACACAGCTCGGACTTAAAACAGCTGCCCAAGTTCCGGTAGAGACTCTTTGGATACGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAG	989:I(;57:7<7I(6G'47I(7;34:)7<I.&I=,'9I)633587:67I'62I,I:+&?8>861I3(I):G'I(F'3'7765:77I0'I)<396I,865H'I(I'F':948I';7474G'9I/'78:5:8>85G'4:5I1(8I(I.'I(4F'68::5:8I'8G'984	NM:i:4	MD:Z:52^T41^G73	oR:Z:1	oH:i:1	oP:i:3985	oS:A:F	XE:i:4	XS:i:0	XI:i:0
+simulated.323	0	1	3986	255	27M1I25M1D25M1I16M1D73M	*	0	0	TGACTTAGACAGAGGTCCTGCCTGACACGTAAACCCCGCCACACAGCTCGGACTTAAAACAGCTGCCCAAGTTCCGGTAGAGACTCTTTGGATACGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAG	989:I(;57:7<7I(6G'47I(7;34:)7<I.&I=,'9I)633587:67I'62I,I:+&?8>861I3(I):G'I(F'3'7765:77I0'I)<396I,865H'I(I'F':948I';7474G'9I/'78:5:8>85G'4:5I1(8I(I.'I(4F'68::5:8I'8G'984	NM:i:4	MD:Z:52T41G73	oR:Z:1	oH:i:1	oP:i:3985	oS:A:F	XE:i:4	XS:i:0	XI:i:0
 simulated.324	16	1	3709	255	43M1I155M	*	0	0	TAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGTCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCG	:'I85(I8<58'I(I'H53&.I79(I'1I'0I(I7'I57&-I7(:9677494&.I69'/I)I7(2I48'H6<7989:)I8'I5489'.I7:'I(I;82'I::56<78:<9;3;479556:8&-I(I7759'H588)I'/I)I5'I7<:?;6:8>5(I8&D7(I;;5;;08(I<)I7/73828&)/:II4;88>;23)I>	NM:i:1	MD:Z:198	oR:Z:1	oH:i:1	oP:i:3708	oS:A:R	X [...]
 simulated.325	0	1	7571	255	178M	*	0	0	CCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAG	H'I);42I'97;I(49I(<I)I(5I(;3:7485769F':;95779:I(67;6I(>F'H'9798:=3D59;G'I.'0H'72I(8I1'I'::568882067I'47:I(6;I/'13888I.'97:E&:7I'4:@786I(I)H':2I(;9I(I)39277E&632I)934;6;H'G'I(965<	NM:i:0	MD:Z:178	oR:Z:1	oH:i:1	oP:i:7570	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.326	0	1	3482	255	59M1D53M1I91M	*	0	0	GTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTCGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTA	49I/'<6I0'I(4>87I(=7?=I1(9I)9H'78/<;858I(<I-&=I)847I(I(8I(4I+I(;776><I;+&>98I1'E&I'23I'7799:8H'I'I'I*67I(:;I1(94+97I'I(F'I(57>:;67I2(8E&69I(98I(/I:+&5:=3:7I'8884H'29I)8129997H'76:I)7F'I>,'=9H';I'485I(I3(2	NM:i:2	MD:Z:59^G144	oR:Z:1	oH:i:1	o [...]
+simulated.326	0	1	3482	255	59M1D53M1I91M	*	0	0	GTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTCGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTA	49I/'<6I0'I(4>87I(=7?=I1(9I)9H'78/<;858I(<I-&=I)847I(I(8I(4I+I(;776><I;+&>98I1'E&I'23I'7799:8H'I'I'I*67I(:;I1(94+97I'I(F'I(57>:;67I2(8E&69I(98I(/I:+&5:=3:7I'8884H'29I)8129997H'76:I)7F'I>,'=9H';I'485I(I3(2	NM:i:2	MD:Z:59G144	oR:Z:1	oH:i:1	oP [...]
 simulated.327	0	1	8830	255	179M	*	0	0	CCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTC	I)I'8I'II2*&:8F&289446I)I/'4H'I-&398I)465;:H'58I(?I/'I-&H'497617:7:I(2I(67I(48541828974;I<,'<6I+H'F'I(I(658566389I(7I(I'47I'8E&;:8I(I(;8I(:I.'89727I(7<;5:355<5I1(:G'6E&887=64832=6	NM:i:0	MD:Z:179	oR:Z:1	oH:i:1	oP:i:8829	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.328	0	1	4980	255	11M1I143M1D47M	*	0	0	TGCATTACTGTACCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCA	4729I*;9599*H'9954I+:/;8986I.'9I2(9878578G'299H'<8I(86I.'8II8-(%6I7*&I(4::86966I(66=I3(72F'17=I);4487H'74H'9947I(85957=556I'58?7;H'439I(66I'I(7I-&9I(>567:5II5,':<:759=8=AF';763I,&969I)8F'7879I(477;I;+&6	NM:i:2	MD:Z:154^C47	oR:Z:1	oH:i:1	oP:i [...]
+simulated.328	0	1	4980	255	11M1I143M1D47M	*	0	0	TGCATTACTGTACCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCA	4729I*;9599*H'9954I+:/;8986I.'9I2(9878578G'299H'<8I(86I.'8II8-(%6I7*&I(4::86966I(66=I3(72F'17=I);4487H'74H'9947I(85957=556I'58?7;H'439I(66I'I(7I-&9I(>567:5II5,':<:759=8=AF';763I,&969I)8F'7879I(477;I;+&6	NM:i:2	MD:Z:154C47	oR:Z:1	oH:i:1	oP:i: [...]
 simulated.329	0	1	1515	255	188M1I21M	*	0	0	AAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGGTAAGGTAGTATCGAACGTAT	I1'76699I/'7;7II1*&I*I(99I(I(8948875I.':76674:37I(4<:5:86?7I1(I)845:76538I'58544:7497I.&899=6:4I/'=I'47<:H'H'I(67I9*&975I(I9+&:I0'<I)9623I(43:9I(9I(5I(6I(656;4I(55567I'95435575I(I'I-&I(7I'G';H'I)8289<:=9I(24662	NM:i:1	MD:Z:209	oR:Z:1	oH:i [...]
 simulated.330	0	1	3672	255	184M1I29M	*	0	0	GGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTAGTGCGAGAACTTCAATCAGCTGAATGGTC	I(6I(488H'I1(I<,&:98=8I(I(697I(68:7;28I(61I(8:56I(I(I'81I-&<8I(I/'I0'I)6I';1I.'7756<=795I/'36I/'I'7I/'3:I(?863949I(5I(883:I-&97I(G'5;=I)46:857:6<7;5597:;78<5I.&I)9787I(3:9I)I1(I(3H'59;'7967837I(6I+7I(9<<7949I(8I(55	NM:i:1	MD:Z:213	oR: [...]
-simulated.331	0	1	6559	255	163M1D59M	*	0	0	GCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCT	74I0':6G'H'9I(7I(9689I(27;8II1)&I0'6I+3<57828I*I(I(9I(6G'668:7677I';889:63I(;<67I(I2(6I(59AH'I'I'587I(I.'7598455959=4=I)I(63999748176>5I(7H'I(56579I(8>647E&:4I?-'7I,7:6I.'6II1*&81:I'F'6>927I)I'8365I(69I(699I8*&6;6G'9I)7;<6	NM: [...]
+simulated.331	0	1	6559	255	163M1D59M	*	0	0	GCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCT	74I0':6G'H'9I(7I(9689I(27;8II1)&I0'6I+3<57828I*I(I(9I(6G'668:7677I';889:63I(;<67I(I2(6I(59AH'I'I'587I(I.'7598455959=4=I)I(63999748176>5I(7H'I(56579I(8>647E&:4I?-'7I,7:6I.'6II1*&81:I'F'6>927I)I'8365I(69I(699I8*&6;6G'9I)7;<6	NM: [...]
 simulated.332	0	1	4746	255	62M1I62M1I61M	*	0	0	CTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGACGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATG	99I'5;87I)6956I(976339=9II0)&783=I(4974G'4;9I:+&8I(:94I*:<I(H'&84I(I1(8-I1(58;I/'I(;I(IH0)&26;84I*9I)I'59I(66I'39H'>7667I0':>I-&:6=546=294<I)9I1(5<3G'4I at -'9>358F&78I(F'75H'I(79795=8H'8998	NM:i:2	MD:Z:185	oR:Z:1	oH:i:1	oP:i:4745	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.333	16	1	5138	255	18M1D5M1I15M1D97M1I44M1D8M	*	0	0	CCACGTATGACTAATGCACCGACGTTCGGTCGCTTCACTCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGTAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGCGCCCG	(I6994:55688(I574;,I;69&'G2(I92;8*I6<;=)6I;(I'/I669(I:38)I(I69(I'I'/I<7;&-I)I(I7757<8784=9='0I5:7(I9(I'I9(I8886(I8(I:;:4<739333'H<769<'I&'G514'/I(3I1=7455)I1536(I'I(I654:'I(I6663674,I38'/I:	NM:i:5	MD:Z:18^C20^C141^G8	oR:Z:1	oH:i:1	oP:i:5137	 [...]
-simulated.334	0	2	32	255	18M1D46M1D140M	*	0	0	CGGCCGTTTGCGTATATAGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCA	3I)I(0I/'6<3964674CF&:8736I0'7;I(6;65I(46:5767=6I(965<552<5G';H'D2:0I'I'567876691=G'5I/'<9F&I(I/'77877698I0'<67488I'6I2(7I(99772H'I(/7I;+&I(:88I(I0'F'I(55I(8I/'I'958;E&5I':I(I)9886849;I(859G'4H'I-&85I9+&8	NM:i:2	MD:Z:18^G46^A140	oR:Z:2	oH:i: [...]
+simulated.333	16	1	5138	255	18M1D5M1I15M1D97M1I44M1D8M	*	0	0	CCACGTATGACTAATGCACCGACGTTCGGTCGCTTCACTCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGTAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGCGCCCG	(I6994:55688(I574;,I;69&'G2(I92;8*I6<;=)6I;(I'/I669(I:38)I(I69(I'I'/I<7;&-I)I(I7757<8784=9='0I5:7(I9(I'I9(I8886(I8(I:;:4<739333'H<769<'I&'G514'/I(3I1=7455)I1536(I'I(I654:'I(I6663674,I38'/I:	NM:i:5	MD:Z:18C20C141G8	oR:Z:1	oH:i:1	oP:i:5137	oS: [...]
+simulated.334	0	2	32	255	18M1D46M1D140M	*	0	0	CGGCCGTTTGCGTATATAGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCA	3I)I(0I/'6<3964674CF&:8736I0'7;I(6;65I(46:5767=6I(965<552<5G';H'D2:0I'I'567876691=G'5I/'<9F&I(I/'77877698I0'<67488I'6I2(7I(99772H'I(/7I;+&I(:88I(I0'F'I(55I(8I/'I'958;E&5I':I(I)9886849;I(859G'4H'I-&85I9+&8	NM:i:2	MD:Z:18G46A140	oR:Z:2	oH:i:1	 [...]
 simulated.335	16	2	86	255	100M1I24M1I82M	*	0	0	CATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAACGAGGTGGGTTACACTTACCGTTAACGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTAC	99868:)I4(I)I998&E(I5845986599(I5'0I96)I'I'/I358877 at 9'/I6699:<(I7)4I7(I=9675(I'I78&+:I'F8:7(I(2I'I(I%6;&F:'/I'H4>5:'H4'G:'G(I'795;2857&E:4=(I6'F'0I69',>I(I7&E4)I(I88597'/I(I:95=826978;98;(I34)I&.I9456'I49(I7;	NM:i:2	MD:Z:206	oR:Z:2	oH:i [...]
-simulated.336	0	1	9144	255	93M1D114M	*	0	0	TAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACG	5H'9573H'83<6959=87I(I'I0'7;H'787I*9I.'9:;87;32:64590:673;<G'829.8;77I0'8I(7?99I(I(I(866I':I(I+:F'H'524H'6I/'I)9G'3765.456G'G'9477H'G'<;I)99;I'586;6=8H'876I/'996I/'89;25I'4I(:834I(G':16;:6<85I(.=6H'77<I(99:6	NM:i:1	MD:Z:93^T114	oR:Z:1	oH:i:1 [...]
-simulated.337	16	2	149	255	49M1I10M1D41M1I103M1I5M	*	0	0	TGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACGACTTACCGTTAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGTCGAAC	9=*6I9)I5798:'I)I;:',>I'G587(I'.I'I(I;;)I5'/I(I;7&84(I7(I;'HD9<577:77(I5<:'G3'H&-I54'- at I)I7(I:*I)I817'68&.I(I49932879684777)I40'I'/I9896)I6>(I88&F69:75:44776987563)I684394888;3=<(1I'H*I69:88::(I*I'I7785=68%19'G7	NM:i:4	MD:Z [...]
-simulated.338	16	1	4031	255	84M1I84M1D26M	*	0	0	CTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCACGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTAGCTGAGGTCGGGCTCCACCAGAGT	3;9'I85'/I&*7I;2;368(2I'G2*I(I'I8765767;'/I(I3458'0I794)I(I'G(I6=47'G:<876'G<(2I79=;(:8596)I<9:&-I6(I'0I)I6'I;:;955;(I2(I875:<<(I4'G*I)I)I8(2I'I596)I>9;7'H40;&.I(I'I567;B;2;5:8(I83&.I:8'F7(I8974'	NM:i:3	MD:Z:168^T25A	oR:Z:1	oH:i:1	oP:i:4030	oS:A:R	 [...]
-simulated.339	16	1	1824	255	17M1I53M1D140M	*	0	0	CTAACTGGGCCCTTGCTCGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACT	67(I98'/I'0I)I777)&+:I9659'H5(I'H(I8(I:69(I4548)I)I7:8?92:9644(I(I592)I+I8)I796(I8:465&F8:)I)I342'H997)I69:54(I;(I7'G739'G776(I7?763447(I8288&+<I69(I49984438'H:'F2'/I'0I7:::6(I::<5)I<'H9;673%)0GI=4(I35<57(I3;9:9	NM:i:2	MD:Z:70^C140 [...]
-simulated.340	16	1	3180	255	7M1I48M1D9M1D160M1I13M	*	0	0	CGGTACCTAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTAGAACAGTCTACCT	3)I;3(I&5:;(I(2I76'I'H8(I57;&.I5;'/I'G'H(I(I=.',<I867:)I(.DI5(I53,I:58&*9I)I647(I9'F&+;I498)I9;4;7'H(I3(I7'I98'.I<3'H;5<676>9<5:(I7(I(I;'- at I;(I'I3426)I46(I(I758&-I8944&+;I4(I75(I'H9:365&,<I'H(I8' [...]
+simulated.336	0	1	9144	255	93M1D114M	*	0	0	TAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACG	5H'9573H'83<6959=87I(I'I0'7;H'787I*9I.'9:;87;32:64590:673;<G'829.8;77I0'8I(7?99I(I(I(866I':I(I+:F'H'524H'6I/'I)9G'3765.456G'G'9477H'G'<;I)99;I'586;6=8H'876I/'996I/'89;25I'4I(:834I(G':16;:6<85I(.=6H'77<I(99:6	NM:i:1	MD:Z:93T114	oR:Z:1	oH:i:1	 [...]
+simulated.337	16	2	149	255	49M1I10M1D41M1I103M1I5M	*	0	0	TGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACGACTTACCGTTAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGTCGAAC	9=*6I9)I5798:'I)I;:',>I'G587(I'.I'I(I;;)I5'/I(I;7&84(I7(I;'HD9<577:77(I5<:'G3'H&-I54'- at I)I7(I:*I)I817'68&.I(I49932879684777)I40'I'/I9896)I6>(I88&F69:75:44776987563)I684394888;3=<(1I'H*I69:88::(I*I'I7785=68%19'G7	NM:i:4	MD:Z [...]
+simulated.338	16	1	4031	255	84M1I84M1D26M	*	0	0	CTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCACGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTAGCTGAGGTCGGGCTCCACCAGAGT	3;9'I85'/I&*7I;2;368(2I'G2*I(I'I8765767;'/I(I3458'0I794)I(I'G(I6=47'G:<876'G<(2I79=;(:8596)I<9:&-I6(I'0I)I6'I;:;955;(I2(I875:<<(I4'G*I)I)I8(2I'I596)I>9;7'H40;&.I(I'I567;B;2;5:8(I83&.I:8'F7(I8974'	NM:i:3	MD:Z:168T25A	oR:Z:1	oH:i:1	oP:i:4030	oS:A:R	X [...]
+simulated.339	16	1	1824	255	17M1I53M1D140M	*	0	0	CTAACTGGGCCCTTGCTCGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACT	67(I98'/I'0I)I777)&+:I9659'H5(I'H(I8(I:69(I4548)I)I7:8?92:9644(I(I592)I+I8)I796(I8:465&F8:)I)I342'H997)I69:54(I;(I7'G739'G776(I7?763447(I8288&+<I69(I49984438'H:'F2'/I'0I7:::6(I::<5)I<'H9;673%)0GI=4(I35<57(I3;9:9	NM:i:2	MD:Z:70C140	 [...]
+simulated.340	16	1	3180	255	7M1I48M1D9M1D160M1I13M	*	0	0	CGGTACCTAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTAGAACAGTCTACCT	3)I;3(I&5:;(I(2I76'I'H8(I57;&.I5;'/I'G'H(I(I=.',<I867:)I(.DI5(I53,I:58&*9I)I647(I9'F&+;I498)I9;4;7'H(I3(I7'I98'.I<3'H;5<676>9<5:(I7(I(I;'- at I;(I'I3426)I46(I(I758&-I8944&+;I4(I75(I'H9:365&,<I'H(I8' [...]
 simulated.341	16	1	8913	255	5M1I210M	*	0	0	TCGAGTCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCG	7 at 45;/',>I77'I(I'I)I)I<8889394<'G8(I(I7:(I3(I892(I'I6:(I7(2I;8957'H7;79:78:;6'/I;'H6(I89667688>97(I883(1I:86'I2872;:(I679(I'I8(I9?8)I7=8747639)I7:7<(I'I633:3(1I'H)I9(I5:4862*I6<7'0I'0I448'I6)I::5496:5(I)I3:3555'I5'H<	NM:i:1	MD:Z:215 [...]
 simulated.342	0	1	4636	255	18M1I1M1I193M	*	0	0	ACGACGAAGTTTCGGCACGACGGTGTCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTT	;79:48I(3I4);I(665%4%H'46&C;69;8I0'85:>77I(;I)876;7I/'F'886F'9;68<:I-&6;3I(G'>57:8I(A=59I-&6<7<I)57F'79II4+'I1(I)>I)8547I)8:76H'67785588II2*&2;<9I(7::5I(76=I=,'8G':68I'84G'I(86I(I1(7<I.&769I0'I(:I(IG/)%78797I(9I)F&	NM:i:3	MD:Z:23C [...]
-simulated.343	0	1	2149	255	165M1D28M	*	0	0	GAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTAAGATTAACGTCAAAAGTCTTCTACC	4I(I'I'I>,'9I(16I(I.'H'7846H';8><8;I)19I(994:<I'795I2(H'35II9.)&48;7I at -'294:I(68:7897<57:19=7F&87I.&0685E&;5;24;6<886;<4I)I(07:I/'6I)787;617I(7889775I(;76<I'9I)I:+&:I+H':6G'I'9597I;+&668I(82;F'	NM:i:1	MD:Z:165^T28	oR:Z:1	oH:i:1	oP:i:2148	oS:A:F	XE:i:1	XS: [...]
+simulated.343	0	1	2149	255	165M1D28M	*	0	0	GAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTAAGATTAACGTCAAAAGTCTTCTACC	4I(I'I'I>,'9I(16I(I.'H'7846H';8><8;I)19I(994:<I'795I2(H'35II9.)&48;7I at -'294:I(68:7897<57:19=7F&87I.&0685E&;5;24;6<886;<4I)I(07:I/'6I)787;617I(7889775I(;76<I'9I)I:+&:I+H':6G'I'9597I;+&668I(82;F'	NM:i:1	MD:Z:165T28	oR:Z:1	oH:i:1	oP:i:2148	oS:A:F	XE:i:1	XS:i [...]
 simulated.344	0	1	3559	255	173M	*	0	0	TTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAAC	I-&I'H'>6I):57882I(I)I(I'69I(:6I1'3686I'I(I(H'7464778I1(=G':7I(44I(6I;+&348=63I';<86I(54I(67;787:I'589I(5I(I9+&95H'6I(458I(I1(I?-'9994:E&I'7=:F'6::8786I)34H'7992I(I(I(83I0'6	NM:i:0	MD:Z:173	oR:Z:1	oH:i:1	oP:i:3558	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.345	0	2	24	255	6M1I175M	*	0	0	GGACTCTAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACC	I(;<47,:;9I(I'8I/'6:8775;<6I(I(16465I3(87I)8944I(5:77564;8I'67:7536=:I(9F'I'995I(H'59?4:65/98I)7I1(65I'I(I.&5=962=9 at I-&654388G'=I.&:I'77899I(I(95I;+&I)9;<G'I.'G'I)97I);I/'I(96:7H'3I'	NM:i:1	MD:Z:181	oR:Z:2	oH:i:1	oP:i:23	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.346	16	1	780	255	42M1I152M	*	0	0	TATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGACGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGAC	<58'.I7=97847',=I959:9573534623/49'0I82774):53:96'H937;5;85<537675(I86;5289>08&E;(I)I66'G7<9(I4'G8(I'0I)I5<.673(I*I5738:(I:67&,<I6(I35848;:35165&+9I)I75>;'0I(I73)4I<5(I<5<6594>96798885679)I857676	NM:i:1	MD:Z:194	oR:Z:1	oH:i:1	oP:i:779	oS:A:R	XE:i:1	XS:i [...]
-simulated.347	0	1	2848	255	78M1D104M	*	0	0	ACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATA	9697I'87>H'=7>I(;9277F'I)6I(83687I(>:E&87I(9654I/'383;;F&5884<586;>8955I)7;::5I7*3I(9:37I(47<8I)8;35I/'47I)7476H':H'6;45673I(6I(9899;975I(:9:;=8I-&4I-&6I)4I(G'I':67I(9H';6:74;7:85:;6	NM:i:1	MD:Z:78^T104	oR:Z:1	oH:i:1	oP:i:2847	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.347	0	1	2848	255	78M1D104M	*	0	0	ACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATA	9697I'87>H'=7>I(;9277F'I)6I(83687I(>:E&87I(9654I/'383;;F&5884<586;>8955I)7;::5I7*3I(9:37I(47<8I)8;35I/'47I)7476H':H'6;45673I(6I(9899;975I(:9:;=8I-&4I-&6I)4I(G'I':67I(9H';6:74;7:85:;6	NM:i:1	MD:Z:78T104	oR:Z:1	oH:i:1	oP:i:2847	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.348	0	2	104	255	62M1I130M1I5M	*	0	0	CCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGTCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCGTATAT	I(;66189?37<I)6I/'<=I(I)I-&17789;74I/'787576I(/I.&=H'75997H'I('77I:+&I)589I(I0'I'I(98I(4I.&G'6796I'2I)9I)I'B7378837I':63I(3I(I-&78I9+&I(:I'6I)I(;94:9I4)H';:333698788785I'8<I(I1(:63<H'26I(95I)<2&;7884	NM:i:2	MD:Z:197	oR:Z:2	oH:i:1	oP:i:103	oS:A:F	 [...]
-simulated.349	16	1	2908	255	18M1D175M	*	0	0	GCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTAT	;6559<37575(I9<:58*7I4'H:;2:'G1845)I8577'/I79(I695:(I5'I8374<59'I6'G68555894(I:4 at 427(3I5&-I;(I7(I'I(I;56'H>'I79;67648326:9)I86@;7&E'H'I4(1I556'G:5756(I7'I'/I?76863958(2I'G9<'1I5;(I&+9I(I6769339	NM:i:1	MD:Z:18^T175	oR:Z:1	oH:i:1	oP:i:2907	oS:A:R	XE:i:1	XS [...]
+simulated.349	16	1	2908	255	18M1D175M	*	0	0	GCAGTGTGCTACCTATACTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTAT	;6559<37575(I9<:58*7I4'H:;2:'G1845)I8577'/I79(I695:(I5'I8374<59'I6'G68555894(I:4 at 427(3I5&-I;(I7(I'I(I;56'H>'I79;67648326:9)I86@;7&E'H'I4(1I556'G:5756(I7'I'/I?76863958(2I'G9<'1I5;(I&+9I(I6769339	NM:i:1	MD:Z:18T175	oR:Z:1	oH:i:1	oP:i:2907	oS:A:R	XE:i:1	XS: [...]
 simulated.350	0	1	7560	255	198M	*	0	0	GTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTG	=56<8I*6I(=H'G'759I(947I(6:H'8E&H'8I(;57:387:39I(9>887?5=I(;:57I)9I'H'<562641=615I(I/'5F&<7I(7I/'I(89;73=96474I'3:9I)79I1'77:86I/'9>;I(:7I)78468:I(I(I'3;I(6:I'I'7876:I(197I(747776I)I(I)956I'5567999>	NM:i:0	MD:Z:198	oR:Z:1	oH:i:1	oP:i:7559	oS:A:F	XE:i:0	XS [...]
-simulated.351	16	1	5673	255	125M1D63M1I2M	*	0	0	TTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCGAT	(I&*8I839(I835'H:'H(I8(I5(I97&.I9(1I5398&.I759<6'I'G9'G566;)I55945)I695)I547479&*2II'G26)I96926'I)I:>7(I714:'I85'I52998588<'HD<6)I(I2(I5;8:?67:42(I8675'I44674>6959<*I958?9<(I67'H(I7?8)I<5='6<	NM:i:2	MD:Z:125^C65	oR:Z:1	oH:i:1	oP:i:5672	oS:A:R	XE:i:2	XS [...]
-simulated.352	16	1	7288	255	116M1I28M1I54M1D15M	*	0	0	ATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTACGCCTTGTGTGAGTGCGAGATGCCCACCAGTCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTAAGGCTAATTGAT	7',<I(I=::8:'H8)I;7&-I46:'I56;)I'1I77)4I749(I886;'I1634(I98946<18'I74:=866<8&-I8;59:(I6387458',<I81:(I9'I;77(1I65696(5)I(I:<9:357484:87767&-I0(I8&:9(I7'- at I6=8<8845;)I)I;8'I&F0=369='0I(1I:994584(I07'H:,I*I(I82(I)I655	NM:i:3 [...]
+simulated.351	16	1	5673	255	125M1D63M1I2M	*	0	0	TTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCGAT	(I&*8I839(I835'H:'H(I8(I5(I97&.I9(1I5398&.I759<6'I'G9'G566;)I55945)I695)I547479&*2II'G26)I96926'I)I:>7(I714:'I85'I52998588<'HD<6)I(I2(I5;8:?67:42(I8675'I44674>6959<*I958?9<(I67'H(I7?8)I<5='6<	NM:i:2	MD:Z:125C65	oR:Z:1	oH:i:1	oP:i:5672	oS:A:R	XE:i:2	XS: [...]
+simulated.352	16	1	7288	255	116M1I28M1I54M1D15M	*	0	0	ATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTACGCCTTGTGTGAGTGCGAGATGCCCACCAGTCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTAAGGCTAATTGAT	7',<I(I=::8:'H8)I;7&-I46:'I56;)I'1I77)4I749(I886;'I1634(I98946<18'I74:=866<8&-I8;59:(I6387458',<I81:(I9'I;77(1I65696(5)I(I:<9:357484:87767&-I0(I8&:9(I7'- at I6=8<8845;)I)I;8'I&F0=369='0I(1I:994584(I07'H:,I*I(I82(I)I655	NM:i:3 [...]
 simulated.353	0	1	2175	255	197M	*	0	0	GTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATC	6I(399788I)36I)785;7I'988I/'I(9;II9.(%3::2I=,'9979I'774<56 at 485729:6F'7:I1'8:66I(88997969:6652<I(F'2>8I1':H';7:=7:6I(3677975I(5289I*3I(I:+&;I,&I(57I(I(7975I;+&<46I)4 at 5I1(9:I/'9I(168;86::H'7I(75::537	NM:i:0	MD:Z:197	oR:Z:1	oH:i:1	oP:i:2174	oS:A:F	XE:i:0	XS:i [...]
 simulated.354	16	1	5743	255	198M	*	0	0	TAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTC	6(I677>78'+4II'I:9'H96879)I'H9?:'I4747)I<:'G9088=9494(I(I74'I'G2(I:65:659687'I4;85(I7:168746=:7(I9:5:63'G9;(I'H698'G5668838:5553;'I7;(I4(I55(I9(2I8='H'0I88&,I6-:8(I5889833'1I'I&*9I57'0I5;4&+:I;'H)I0	NM:i:0	MD:Z:198	oR:Z:1	oH:i:1	oP:i:5742	oS:A:R	XE:i:0	X [...]
 simulated.355	16	1	9135	255	177M	*	0	0	GCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACG	3:)I68'H09'H6:58'I=547:687:6(I'I'/I95(I79:(I;'0I7872;64=767285877699'F?::165:8(1I6'H97:4'H'I(I<:9)I7'H'/I0)I*I4:8'H3'0I(I6'I=:685488&F'G:3:4(I'H9:'I578(I87;=<;<(I564'/I39>(2I91:	NM:i:0	MD:Z:177	oR:Z:1	oH:i:1	oP:i:9134	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.356	16	1	8736	255	41M1I12M1I16M1I129M	*	0	0	CCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGACGACATCGTGCGGTATCCCGCTAAGACGATAGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTATCGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTT	'.I4)I4:'G=5'G)I769)I'/I<;8:667',=I725(I;'7888<65986(I)47'/I8:6(I43;<0;'5(I(I:87885(I667545455(I8(I&E5(I'+4II95)I694<99(I&-I5(I'/I:28(I885;;)I84C;%&-I'.I(I7:6/:6988'G:)I;:(I9<864:2698;7',=I87)I'I)I(I*I	NM:i:5	MD:Z:142A0T54	oR:Z:1	oH:i:1 [...]
+simulated.356	16	1	8736	255	41M1I12M1I16M1I129M	*	0	0	CCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGACGACATCGTGCGGTATCCCGCTAAGACGATAGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTATCGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTT	'.I4)I4:'G=5'G)I769)I'/I<;8:667',=I725(I;'7888<65986(I)47'/I8:6(I43;<0;'5(I(I:87885(I667545455(I8(I&E5(I'+4II95)I694<99(I&-I5(I'/I:28(I885;;)I84C;%&-I'.I(I7:6/:6988'G:)I;:(I9<864:2698;7',=I87)I'I)I(I*I	NM:i:5	MD:Z:142AT54	oR:Z:1	oH:i:1	 [...]
 simulated.357	16	1	7823	255	104M1I77M	*	0	0	GCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATCGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAG	29;(I387876655'H536(2I66'0I&.I97:'G6(I9594949'H&.I@&D'I87:7:886:'-?I6'I617(I(I65993587(2I36)I3)I2'H5;(I:*36'G;=3;79576(I>9'I:727:8877;077(I;6:65)I8)I5'I657'H5'/I249548:2'0I9(3I(I77:6	NM:i:1	MD:Z:181	oR:Z:1	oH:i:1	oP:i:7822	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.358	0	1	3571	255	184M1I17M	*	0	0	CTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGTATGTATTTCTAAATTGA	6:542E&I'I'I(54I(54I-&6<99I(I)I(I'8837<:8I.'8I(:<I)42I'8I9+&249854I(=<17I(66I';386476I(6;;I(7I'I:+&77I';I(8:4I)I/'I>,'78:7:I(I(;25I)7377;6:I(2:I(55<5H'I)H':4I0'54I(I0'I-&I(:F'76I1'?665'<9;37I1'7=I1(I(77	NM:i:1	MD:Z:201	oR:Z:1	oH:i:1	oP:i:3570	oS: [...]
-simulated.359	0	1	5000	255	50M1I38M1I16M1I73M1D18M	*	0	0	CTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCACTTTTCCGACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTCGCGGCTCGCAGTGCCTAGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCAGGAAATCACCGCTA	:94778I/';I.&9357618I(438H'8:I(5;I0'8II6,(8&I=,'I)'::9::877H'4:?I1(67G'896I(97566H'69I(0;&8:H'9<6877665I(7&8879H'::4H'89I*I(3I.&5I(4:12;5II:.)&879;766569E&99=8I2(96>I(7I(5946I(48;4I6*3I(I3(695I(@496	NM:i:6	MD:Z:42C0A133^C18	oR:Z:1	oH:i: [...]
-simulated.360	0	1	5412	255	86M1D88M1I48M	*	0	0	CAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCGAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTAC	;7H'7I/'5I(69II1*&64596I(6:89:649H'77I'4@;56;G'28=<226:8I(I(768H':I(7=1A<9I)G';F'87937C666;872:F'9I.&;9I'57I0'I/'7;;:4I(896I0'79I(I'I0';I(5643I(8I(1;2E&:893==9I(1I(9788597897'18I(79I(I);8766<I)246789I(42I(8776483558847965 [...]
+simulated.359	0	1	5000	255	50M1I38M1I16M1I73M1D18M	*	0	0	CTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCACTTTTCCGACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTCGCGGCTCGCAGTGCCTAGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCAGGAAATCACCGCTA	:94778I/';I.&9357618I(438H'8:I(5;I0'8II6,(8&I=,'I)'::9::877H'4:?I1(67G'896I(97566H'69I(0;&8:H'9<6877665I(7&8879H'::4H'89I*I(3I.&5I(4:12;5II:.)&879;766569E&99=8I2(96>I(7I(5946I(48;4I6*3I(I3(695I(@496	NM:i:6	MD:Z:42CA133C18	oR:Z:1	oH:i:1	 [...]
+simulated.360	0	1	5412	255	86M1D88M1I48M	*	0	0	CAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCGAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTAC	;7H'7I/'5I(69II1*&64596I(6:89:649H'77I'4@;56;G'28=<226:8I(I(768H':I(7=1A<9I)G';F'87937C666;872:F'9I.&;9I'57I0'I/'7;;:4I(896I0'79I(I'I0';I(5643I(8I(1;2E&:893==9I(1I(9788597897'18I(79I(I);8766<I)246789I(42I(8776483558847965 [...]
 simulated.361	0	1	7488	255	9M1I103M1I92M	*	0	0	TAAGGCTAACTTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTACTAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCA	5F'I':2I(%I'8<:45:<93I.'9<3:I'I2(67I.'I(I/'48I(E&I(I(7759:2H'68I'G'5A77I';6465I(3H'4F&E&7;8I(71;I(:6I(9I(G'5I(4;4'4;860;BI)72=1::=3I'6:66I)9I(I(468359:=995I(I/';F&99H'4I.'I(9675:6:969?I(77<H':2I/';92;9I1(57	NM:i:2	MD:Z:204	oR:Z:1	oH:i:1	o [...]
-simulated.362	0	1	8271	255	35M1I65M1I9M1I68M1I28M1D18M	*	0	0	GAAGTATGCAGATAATTGGCCCGGTCGCGCCATAACGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGTACGGCTGCCTATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTCGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATA	6I(37697<6796H'I(I(I5)I(47838I)67H'%9I(52I/'8<4I(<I(999;29=9948I(5:4I/'I(44;6I(69<G'I)79I/'78=I(74484,;;H'4:4E&&45;8:66:<46979646=2I'7:I)896I'944864=7:;I'8>;6I'G'68H'9<7::I)61I*685&71G'278I'48288H'I'8998 [...]
+simulated.362	0	1	8271	255	35M1I65M1I9M1I68M1I28M1D18M	*	0	0	GAAGTATGCAGATAATTGGCCCGGTCGCGCCATAACGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGTACGGCTGCCTATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTCGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATA	6I(37697<6796H'I(I(I5)I(47838I)67H'%9I(52I/'8<4I(<I(999;29=9948I(5:4I/'I(44;6I(69<G'I)79I/'78=I(74484,;;H'4:4E&&45;8:66:<46979646=2I'7:I)896I'944864=7:;I'8>;6I'G'68H'9<7::I)61I*685&71G'278I'48288H'I'8998 [...]
 simulated.363	0	1	666	255	14M1I23M1I85M1I72M	*	0	0	GGATTTGCACAGACGTCAATCTAGTCACGTCCGCTAGCGATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTCGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTC	I'2I.'79265388%83I':97;688966:I(4995A;&366I(957F'668I(3<I0'7I'98I'77:77>538:<I(9878I'46I(;:672I)I(;944H'I)3I0'I.'I)3;98I/'79':57;=I;+&692:5:;26:697::86I/'486:6:47990I'23>;859877795:5I(:769185778I(8	NM:i:3	MD:Z:194	oR:Z:1	oH:i:1	oP:i:665	oS:A:F [...]
 simulated.364	16	1	4239	255	119M1I81M	*	0	0	CGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTACTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCG	?&-I(I(I&D8889675:69:57;3'H&.I52'G3569'I5(I)I55&-I88&+:I;586:9351'I(1I(3I684'I85;7'H(1I6:<68?66;8;(I;(I'I<66'I4(I:(I(I=&65='F767'I5775;7(I3565)I:/6'0I4:59;;5;78755;5756%)0HI'H86:5784>'I7;5:)I'H(I89(1I8	NM:i:1	MD:Z:200	oR:Z:1	oH:i:1	oP:i:4238	oS:A [...]
-simulated.365	0	1	9076	255	9M1D54M1I114M1D32M	*	0	0	GCCTCGAGATCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTCGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTATAAGATCTAGAGGAACAGCTTCCGTAATACA	4I'<:685=C59:I/'I2(@4<I(8I(83/86;87I)I'7<573;E&<I)7I*I)98I(7I)7';G'41I(5079I(8768888645G'I)I0'47I(747I(:I1(1:935;455=7997863995E&63567219I-&9I(74;3I)I(I)488I(7I(I/'5I(I'567I(7I/'B7I)7978777<I(I'64=3I(I(63I+7747	NM:i:3	MD:Z:9^T168 [...]
-simulated.366	16	2	116	255	48M1D129M	*	0	0	TTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAA	*I9'/I79'I(I'.I;84785;7'/I<49697'G8(3I5(I:2371'FC::&*8I'I9<3'I'0I(I(I74(I7'1I'H996;(I5)I;'G)I654:6377)I837&E;)I'1I=:',>I'G8(I3)I)I5;<84'/I)I9=5593B:7723;<'H14(I'1I75<:)I61)I3:(I	NM:i:1	MD:Z:48^G129	oR:Z:2	oH:i:1	oP:i:115	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.365	0	1	9076	255	9M1D54M1I114M1D32M	*	0	0	GCCTCGAGATCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTCGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTATAAGATCTAGAGGAACAGCTTCCGTAATACA	4I'<:685=C59:I/'I2(@4<I(8I(83/86;87I)I'7<573;E&<I)7I*I)98I(7I)7';G'41I(5079I(8768888645G'I)I0'47I(747I(:I1(1:935;455=7997863995E&63567219I-&9I(74;3I)I(I)488I(7I(I/'5I(I'567I(7I/'B7I)7978777<I(I'64=3I(I(63I+7747	NM:i:3	MD:Z:9T168A [...]
+simulated.366	16	2	116	255	48M1D129M	*	0	0	TTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAA	*I9'/I79'I(I'.I;84785;7'/I<49697'G8(3I5(I:2371'FC::&*8I'I9<3'I'0I(I(I74(I7'1I'H996;(I5)I;'G)I654:6377)I837&E;)I'1I=:',>I'G8(I3)I)I5;<84'/I)I9=5593B:7723;<'H14(I'1I75<:)I61)I3:(I	NM:i:1	MD:Z:48G129	oR:Z:2	oH:i:1	oP:i:115	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.367	16	1	707	255	201M	*	0	0	GAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAA	7:96'I6;6(I78'0I:(I8<'G57857<49295'I:8?8)I;7(I34757)I'H;7::)I'F7(2I(1I'F1953'/I9;;528:&+:I3:95483==<;7;:968'/I9759;9>853:(I9<:48;=554?<858'H3965716768&E9)I(I77(I696(I<(I8(I&-I(I6:5<32(I)I7<784(I;68'- at I	NM:i:0	MD:Z:201	oR:Z:1	oH:i:1	oP:i:706	oS:A:R	XE:i [...]
 simulated.368	16	1	795	255	17M1I50M1I122M	*	0	0	CCAGATCGTGAGTATACGACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAACGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAG	'H<65;>;6856?5:93&@8'/I2577990<859'H767;>?:<9636847(I76=97?3857'F7(I((I74)I?76(I4(I4(I'0I'H76699<)I'H78<3:)I555'- at I7(I8:;79668;629&+:I)I896=&.I'H6;(2I::'H66848;6758=55;55288'H?847;;)I759<87;6	NM:i:2	MD:Z:189	oR:Z:1	oH:i:1	oP:i:794	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.369	0	1	8071	255	90M1I102M	*	0	0	GCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTCGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCC	484I9+&17:76:I):995510968I(I(;;<645I(I(I*759I'8/I(I)554<I)85076<8784595H'<7>768:63;@I=,'39%;3H'I2(I(76F&777I(:I(I0'8:55I'7;876I-&3656I(E&64I(:>83757<I'5I(68I(59:57.I1(I(7AF'7=2;?I(6I(I'756<15F&	NM:i:1	MD:Z:192	oR:Z:1	oH:i:1	oP:i:8070	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.370	0	1	7023	255	7M1I190M	*	0	0	GTTCAAACGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTG	7H'7I-&.I(76I(;5I?-'I(777698<796=87I'59II2*&I.&0G';68556I(458:I)5744<D&8G'6999<99<9I)95I(;693H':1I/'?G'I3(8<I';6G'I'>I1'I.&782I)8I(4:6:I(92I(99;5:62676I(I.&6I/'8557I'H'694556978<1<62<0;8886I(:I(7:59	NM:i:1	MD:Z:197	oR:Z:1	oH:i:1	oP:i:7022	oS:A:F	XE:i: [...]
-simulated.371	0	2	105	255	172M1D24M	*	0	0	CTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATG	7578843:579H';I/'67I(I'I/'=775:486I-&8=;8;7I'4I-&6I(67:7<I(I)67I9+&I)391I(I1(I(I(68I*6I0'I(3957I(7E&9G'I(;79886 at 7I)673G'7I(I1'97I;+&I'7H'8I(I)67796I/'I*8456=974448579I(76H'I,;595I(95I':9I)8<:50853	NM:i:1	MD:Z:172^T24	oR:Z:2	oH:i:1	oP:i:104	oS:A:F	XE:i:1 [...]
-simulated.372	16	2	26	255	150M1I52M1D10M	*	0	0	ACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTAGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAA	28>2646'H'I7&-I4:;6<58;;&F)I62685&.I:4'H3:57(I9443<7856(I557=54873'I9(I'G8<9(I(I9:703<4864(I:&.I64(I'H'0I27;56 at 7<'0I;867;5(I8'1I6'G77967(I(I47&+9I'G89&2)I'.I(I)I76(I:&-I(I<68:'H:'I3(I&D:768=2<B)I:<>'F6(I,I;:&*8I(I	NM:i:2	MD:Z:202^T [...]
-simulated.373	0	1	8823	255	77M1D91M1I41M	*	0	0	CTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTCGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGT	9364H'8G'I(8I)II1)&84F&68:543I)I-&3I(I0'3?-I(36;5<I(67I'6I/'I.'I(6B76378;;H':D/:I(68;8=A56:56>I=,'59I'I)I(I(I(696:948::G'5I)H'33I)4I'88BH'H'16I'<I0'95065I(85;965>6>5I3('7I'2I(928433:;>13I(4=8I/'939I)96<68<I(6?5	NM:i:2	MD:Z:77^T132	oR: [...]
-simulated.374	16	1	4047	255	4M1D62M1I6M1I14M1I22M1I81M	*	0	0	GCTGCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCGAGCGTACCCACAGGGATTCCCGAACTTGACTGTGAATAACAGACGAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTA	359:*I'G;+I(I'I338654;5&,I&D8:79'/I:75(I'G(I(I8;6:)I:6787'G8&.I379*25<947&-I751'/I9(I(1I%'I9'H5733:68(I6)I>799;%4'F7(I'I(I(I='/I(I431'H4<66(I<96)4I'I'H:8;7'H:67694(I88'/I;6(I6(I66:82676;89:6)I5	NM:i:5	MD:Z:4^C185	oR:Z:1	oH:i:1	oP:i:4046	 [...]
+simulated.371	0	2	105	255	172M1D24M	*	0	0	CTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATG	7578843:579H';I/'67I(I'I/'=775:486I-&8=;8;7I'4I-&6I(67:7<I(I)67I9+&I)391I(I1(I(I(68I*6I0'I(3957I(7E&9G'I(;79886 at 7I)673G'7I(I1'97I;+&I'7H'8I(I)67796I/'I*8456=974448579I(76H'I,;595I(95I':9I)8<:50853	NM:i:1	MD:Z:172T24	oR:Z:2	oH:i:1	oP:i:104	oS:A:F	XE:i:1	 [...]
+simulated.372	16	2	26	255	150M1I52M1D10M	*	0	0	ACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTAGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAA	28>2646'H'I7&-I4:;6<58;;&F)I62685&.I:4'H3:57(I9443<7856(I557=54873'I9(I'G8<9(I(I9:703<4864(I:&.I64(I'H'0I27;56 at 7<'0I;867;5(I8'1I6'G77967(I(I47&+9I'G89&2)I'.I(I)I76(I:&-I(I<68:'H:'I3(I&D:768=2<B)I:<>'F6(I,I;:&*8I(I	NM:i:2	MD:Z:202T1 [...]
+simulated.373	0	1	8823	255	77M1D91M1I41M	*	0	0	CTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTCGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGT	9364H'8G'I(8I)II1)&84F&68:543I)I-&3I(I0'3?-I(36;5<I(67I'6I/'I.'I(6B76378;;H':D/:I(68;8=A56:56>I=,'59I'I)I(I(I(696:948::G'5I)H'33I)4I'88BH'H'16I'<I0'95065I(85;965>6>5I3('7I'2I(928433:;>13I(4=8I/'939I)96<68<I(6?5	NM:i:2	MD:Z:77T132	oR:Z [...]
+simulated.374	16	1	4047	255	4M1D62M1I6M1I14M1I22M1I81M	*	0	0	GCTGCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCGAGCGTACCCACAGGGATTCCCGAACTTGACTGTGAATAACAGACGAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTA	359:*I'G;+I(I'I338654;5&,I&D8:79'/I:75(I'G(I(I8;6:)I:6787'G8&.I379*25<947&-I751'/I9(I(1I%'I9'H5733:68(I6)I>799;%4'F7(I'I(I(I='/I(I431'H4<66(I<96)4I'I'H:8;7'H:67694(I88'/I;6(I6(I66:82676;89:6)I5	NM:i:5	MD:Z:4C185	oR:Z:1	oH:i:1	oP:i:4046	o [...]
 simulated.375	0	1	1719	255	91M1I52M1I18M1I55M	*	0	0	CGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTAATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGGACCGAGCTTCCTATCATAGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCC	:73:9;58?588663I'97:9I)89I-&39>879I=,'I'<;216I':793876I(673I)G'9I7*&7979I(I(64I.'I(5I)79:47D&<9551:69I)::767I(78I.&I/'G'65<I<+&97<7I)3I(H'G':G'3D&:H'7996I(I(68<::<&8<79:I(I(398I(I3(8I(<65I):3686I(>4I(I(3:9I'684I(37866G'	 [...]
 simulated.376	16	1	6267	255	190M	*	0	0	TCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACA	366&,I4'I76&+;I5'H(2I45>9>6)I8579:49:87<44778'I7755745(I:687'/I9 at 9:99)I)I'.I'I87)I7446&*1II(I64(I'I'G5?<57:9'H6<7'.I5(I'0I(I28(I?8<8:76'I82968=67;(I'/I'H8:;5'0I6=7'I56'I4::&+:I68(I27'H'I)I6;	NM:i:0	MD:Z:190	oR:Z:1	oH:i:1	oP:i:6266	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.377	0	1	8849	255	203M	*	0	0	AGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTG	884H'I3)=I)I/'954H':7889I(8<I(6I-&I1(I(287649876G'8I(73I(3347:879:5<9I:+&78I'H'I(G'H':268;;78;I'5I*I)8;I)2I'787G'I'77I+7I-&93;:8I(7999857378I1'<G';I'44658=94476H'75>I/';67I':<:7:6I(698I(I(>H'458F&87<8:06	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:8848	oS:A:F [...]
-simulated.378	0	1	5279	255	59M1I5M1I54M1I10M1I18M1D52M	*	0	0	AGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTCGCCGACTGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGAGTAAGACGGGTAGATGCCAGGTGGGTGGTGAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAAC	5I2(I-&97:::8I(88;9I(I(I(5924I(I(;747:78I/'96I/'3I/'I(I'8I(&7I';;(977467I-&4736;92I7*&2H'5I(46:I/';5874;68:<I'74I(6161=6&3I(775I-&3(7::3I(9I(4I-&6H'87IF/)6:684I(797675:=I(37I(633758I(67;476577I(I(37;I(5	NM:i:5	MD:Z:146^A52	oR:Z: [...]
-simulated.379	0	1	6073	255	89M1I91M1D8M1D16M	*	0	0	AGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTACATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCTATACACCGATCATTTGTTATA	8:8545I/'9I(;:69663I(7I(899I(;768II1)&6I>,'849H'388I0'H'79;;87:;3613I(:I;+&I1(:07<5>9I'96';<I(7;I/'948I0'68323677576/4995428I(7:5I(:<1I(86I):I1(:48473I)?:5765:6984176I/'754I(9685648I,38=656I+862;5I/'5I'8;:	NM:i:3	MD:Z:180^C8^C16	oR:Z:1 [...]
+simulated.378	0	1	5279	255	59M1I5M1I54M1I10M1I18M1D52M	*	0	0	AGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTCGCCGACTGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGAGTAAGACGGGTAGATGCCAGGTGGGTGGTGAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAAC	5I2(I-&97:::8I(88;9I(I(I(5924I(I(;747:78I/'96I/'3I/'I(I'8I(&7I';;(977467I-&4736;92I7*&2H'5I(46:I/';5874;68:<I'74I(6161=6&3I(775I-&3(7::3I(9I(4I-&6H'87IF/)6:684I(797675:=I(37I(633758I(67;476577I(I(37;I(5	NM:i:5	MD:Z:146A52	oR:Z:1 [...]
+simulated.379	0	1	6073	255	89M1I91M1D8M1D16M	*	0	0	AGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTACATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCTATACACCGATCATTTGTTATA	8:8545I/'9I(;:69663I(7I(899I(;768II1)&6I>,'849H'388I0'H'79;;87:;3613I(:I;+&I1(:07<5>9I'96';<I(7;I/'948I0'68323677576/4995428I(7:5I(:<1I(86I):I1(:48473I)?:5765:6984176I/'754I(9685648I,38=656I+862;5I/'5I'8;:	NM:i:3	MD:Z:180C8C16	oR:Z:1	o [...]
 simulated.380	16	1	5002	255	191M	*	0	0	GACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCG	788@'/I9'/I3;3:767(I577'G55'G9;'/I7&).9II4',=I(I655>36:<(I69<'0I8<(I37;)I5<477(I;9)I357:(I6>3951974'I89:67(I<;6)I:;(I&E8'/I8'H85;857%(-7II69;:566974'G9476'/I154&D6*I5:88(I9974'-?I<(I(1I384(I:	NM:i:0	MD:Z:191	oR:Z:1	oH:i:1	oP:i:5001	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.381	0	1	3173	255	62M1D107M	*	0	0	GAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTT	8I(96:90I(9:I'87;I'I.&5:I)I(7I';64I.'48I-&I(F&I(I(77I:+&;469I(IA-(9I(97I/'836I:+&I)844I'6I*I8*&457I(8<5;6G'I'9I'3I(7?I0'66E&36251:8793<I'6I*I':I7*&;I(I)778 at I);7I(I(887I(	NM:i:1	MD:Z:62^A107	oR:Z:1	oH:i:1	oP:i:3172	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.382	0	1	3924	255	16M1D189M	*	0	0	TTCATGCCTATATTGCTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGAT	H'<491I)8:<8I(1;I,65I)I/'57<48:5:9I(F'7965<73996;:4I0'7E&65H':75=G'696>778G'5I):9G';264779I.&I;+&8I);2;798777I'5<I/'I7*&96:5;:I/'I(=I(I)I'7833887:I.&G'7497I0'@:1I(E&I'G'8888I(9:896H'6I0'788:<7:69I(94=I1(68	NM:i:1	MD:Z:16^T189	oR:Z:1	oH:i:1	oP: [...]
-simulated.383	16	1	3058	255	20M1I114M1D57M	*	0	0	TTCAATTTGATCTGTGCTTTACCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTG	'H7)I(3I886:<96;7'0I&'H96'0I64)I&+9I(I38;;787459'H(I)I(I43857387;95:(I987'0I:48752:<'0I&*2II1<88:;6>;'H393;7<778'H442'G<?;::'G8;(I8=:(I,I85)I(I4'H:97'0I64'0I&D'G(I'I87&+:I7:8<*I&)1II7'G32&.I94	NM:i:2	MD:Z:134^C57	oR:Z:1	oH:i:1	oP:i:3057	oS:A:R	XE:i:2 [...]
-simulated.384	0	1	1077	255	108M1D93M	*	0	0	GGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAAGTAAACCGTTATCACAGGT	I,59H'6805=I/'6I)<7I0'74I(986515748=86>H'I4)8984763I';6I)9463:786I8*&I(5:544666677:8I(7I)8;95.779:6>:5889<34I5)I(8/;67;8;I(?9I(:I(48I=,'8;58I)9:8G'<5886=5I'62H'4I(H':6I(:69;I1(88F'I(&<I7*I'3I(;;8571G'4	NM:i:3	MD:Z:108^G74T0A17	oR:Z:1	oH:i:1	oP:i:1 [...]
-simulated.385	0	1	9107	255	7M1D117M1D60M	*	0	0	AGATGTTCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGT	<6365I(D:78772I(9I(7I(I(46I(<I(5;I*;6I(6868I(799=578;16I(I)I/'7:H';>8I(=I0'6?83297465=:6784964;I'7=;;7254I0'=I(=:>8I)I'I)674A8I(I1(8E&I)474I)8I/'I)6I(7825;688I)I(989=I(I)7:I'796I(865?:	NM:i:2	MD:Z:7^C117^A60	oR:Z:1	oH:i:1	oP:i:9106	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.386	16	1	1848	255	141M2D23M1D50M	*	0	0	AGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAA	5(I4(I(I(I8'I97:(I::99*I(I7;89;385;=4(I'H7>;'H(2I4'G656'G80:67(I85(I(I576(I4<:(I69528(I6)I8'I744'I774(I9;<9996<'I2>78&+<I85(I893:7277)I<(I6,I,I=76;8(I;8:7'H?'H7;678'-?I4:'G65995(I:;9<9895577='G:7775(2I;:8*I8(I&-I)I	NM:i:3	MD:Z:1 [...]
-simulated.387	0	1	5287	255	52M1D19M1D126M	*	0	0	CAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCGATGCATGTTTCTGCTGAGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCAT	5787;I(2655H'I(I(4A:5I)I(94776:9I/':7I/'7I-&I(I*3I(9D47;5=4=5I.&656@<6;I7*4I)4I(69<I0'78=;7953;6H'69I(5876:85G'596I/'764>;G'8I(8I0'7I(42IH0)&8948:I*9:797857I(:6I)5:5496I*827<79<89I(I(8:=H'<I(63568;	NM:i:2	MD:Z:52^C19^G126	oR:Z:1	oH:i:1	oP:i:5286	 [...]
-simulated.388	0	1	8703	255	88M1I95M	*	0	0	GCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATACCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCC	<I,I(I3(H'4I(I.'I/'G'I0'68585;98<I2(7I(6;I'12I(I(65;I(I.&5898=:4I<,'<89H'8953887:;9;H'27'I0'77;I'6::?788I(I(7699;3I(:77>6:7;6I(6H'I(7I(IF/)%<7I(6595::I(I/'4I(I3(57<I)49666I)4 at I(5I-&I-&	NM:i:2	MD:Z:0C182	oR:Z:1	oH:i:1	oP:i:8701	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.389	0	1	8849	255	31M1D37M1D127M	*	0	0	AGCAAGGGCTTAAATGATTACTGTAAGTAATGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTG	=46I(I0'4I'I/'8:7I)65=81I(99H'5I,I.'I(538;58736I(8I'7BG'5485=264899:I6)86I)I(I'I(I(;9;88<:56I(7H'I(77I(:I(86:I(I)7:I)9I-&89187G'7;8<79888;I/':I(3I(5745:;82<:4H'678I2(7;>I(998663I':74H'I(;I(;78I(9	NM:i:2	MD:Z:31^G37^C127	oR:Z:1	oH:i:1	oP:i:8848	oS:A [...]
+simulated.381	0	1	3173	255	62M1D107M	*	0	0	GAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTT	8I(96:90I(9:I'87;I'I.&5:I)I(7I';64I.'48I-&I(F&I(I(77I:+&;469I(IA-(9I(97I/'836I:+&I)844I'6I*I8*&457I(8<5;6G'I'9I'3I(7?I0'66E&36251:8793<I'6I*I':I7*&;I(I)778 at I);7I(I(887I(	NM:i:1	MD:Z:62A107	oR:Z:1	oH:i:1	oP:i:3172	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.382	0	1	3924	255	16M1D189M	*	0	0	TTCATGCCTATATTGCTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGAT	H'<491I)8:<8I(1;I,65I)I/'57<48:5:9I(F'7965<73996;:4I0'7E&65H':75=G'696>778G'5I):9G';264779I.&I;+&8I);2;798777I'5<I/'I7*&96:5;:I/'I(=I(I)I'7833887:I.&G'7497I0'@:1I(E&I'G'8888I(9:896H'6I0'788:<7:69I(94=I1(68	NM:i:1	MD:Z:16T189	oR:Z:1	oH:i:1	oP:i [...]
+simulated.383	16	1	3058	255	20M1I114M1D57M	*	0	0	TTCAATTTGATCTGTGCTTTACCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTG	'H7)I(3I886:<96;7'0I&'H96'0I64)I&+9I(I38;;787459'H(I)I(I43857387;95:(I987'0I:48752:<'0I&*2II1<88:;6>;'H393;7<778'H442'G<?;::'G8;(I8=:(I,I85)I(I4'H:97'0I64'0I&D'G(I'I87&+:I7:8<*I&)1II7'G32&.I94	NM:i:2	MD:Z:134C57	oR:Z:1	oH:i:1	oP:i:3057	oS:A:R	XE:i:2	 [...]
+simulated.384	0	1	1077	255	108M1D93M	*	0	0	GGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAAGTAAACCGTTATCACAGGT	I,59H'6805=I/'6I)<7I0'74I(986515748=86>H'I4)8984763I';6I)9463:786I8*&I(5:544666677:8I(7I)8;95.779:6>:5889<34I5)I(8/;67;8;I(?9I(:I(48I=,'8;58I)9:8G'<5886=5I'62H'4I(H':6I(:69;I1(88F'I(&<I7*I'3I(;;8571G'4	NM:i:3	MD:Z:108G74TA17	oR:Z:1	oH:i:1	oP:i:107 [...]
+simulated.385	0	1	9107	255	7M1D117M1D60M	*	0	0	AGATGTTCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACACGGTTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGT	<6365I(D:78772I(9I(7I(I(46I(<I(5;I*;6I(6868I(799=578;16I(I)I/'7:H';>8I(=I0'6?83297465=:6784964;I'7=;;7254I0'=I(=:>8I)I'I)674A8I(I1(8E&I)474I)8I/'I)6I(7825;688I)I(989=I(I)7:I'796I(865?:	NM:i:2	MD:Z:7C117A60	oR:Z:1	oH:i:1	oP:i:9106	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.386	16	1	1848	255	141M2D23M1D50M	*	0	0	AGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAA	5(I4(I(I(I8'I97:(I::99*I(I7;89;385;=4(I'H7>;'H(2I4'G656'G80:67(I85(I(I576(I4<:(I69528(I6)I8'I744'I774(I9;<9996<'I2>78&+<I85(I893:7277)I<(I6,I,I=76;8(I;8:7'H?'H7;678'-?I4:'G65995(I:;9<9895577='G:7775(2I;:8*I8(I&-I)I	NM:i:3	MD:Z:1 [...]
+simulated.387	0	1	5287	255	52M1D19M1D126M	*	0	0	CAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCGATGCATGTTTCTGCTGAGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCAT	5787;I(2655H'I(I(4A:5I)I(94776:9I/':7I/'7I-&I(I*3I(9D47;5=4=5I.&656@<6;I7*4I)4I(69<I0'78=;7953;6H'69I(5876:85G'596I/'764>;G'8I(8I0'7I(42IH0)&8948:I*9:797857I(:6I)5:5496I*827<79<89I(I(8:=H'<I(63568;	NM:i:2	MD:Z:52C19G126	oR:Z:1	oH:i:1	oP:i:5286	oS [...]
+simulated.388	0	1	8703	255	88M1I95M	*	0	0	GCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATACCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCC	<I,I(I3(H'4I(I.'I/'G'I0'68585;98<I2(7I(6;I'12I(I(65;I(I.&5898=:4I<,'<89H'8953887:;9;H'27'I0'77;I'6::?788I(I(7699;3I(:77>6:7;6I(6H'I(7I(IF/)%<7I(6595::I(I/'4I(I3(57<I)49666I)4 at I(5I-&I-&	NM:i:2	MD:Z:C182	oR:Z:1	oH:i:1	oP:i:8701	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.389	0	1	8849	255	31M1D37M1D127M	*	0	0	AGCAAGGGCTTAAATGATTACTGTAAGTAATGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTG	=46I(I0'4I'I/'8:7I)65=81I(99H'5I,I.'I(538;58736I(8I'7BG'5485=264899:I6)86I)I(I'I(I(;9;88<:56I(7H'I(77I(:I(86:I(I)7:I)9I-&89187G'7;8<79888;I/':I(3I(5745:;82<:4H'678I2(7;>I(998663I':74H'I(;I(;78I(9	NM:i:2	MD:Z:31G37C127	oR:Z:1	oH:i:1	oP:i:8848	oS:A:F [...]
 simulated.390	16	1	5848	255	204M	*	0	0	CGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTAT	4:'I(I;68(I7<46858696969(I<3(I7(IA7(I2'.I7@(I'/I83'/I>6=6(I4767;49'.I(I&,<I;7&,I=57',=I3(I)I'H'I4:7:8;599)I:?28)I9)I8'H6(I4'0I88'H)I6=86:7(I76;38454'0I9(I(I5'.I6:6:806&+;I8&-I6'+2 at II:4;4<65:1797'H'I68(I:=	NM:i:0	MD:Z:204	oR:Z:1	oH:i:1	oP:i:5847	oS: [...]
-simulated.391	16	1	6754	255	129M1D72M	*	0	0	TGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTAT	;77(I6=(I;68',>I:86)I=(I696(I'I(I(I67<'G'F3&+;I'I9'I93:6)I5<6;6='H3:=16'H498:85776;;7(I'G9&.I6+I453386)I1:9(I:8'/I38?4)I(I'/I46(IA6&F;'I26'I<76)I57'H;)I'G865686'H;57&.I&-I(I8'/I4=&-I;75365'I798318:(I95	NM:i:1	MD:Z:129^G72	oR:Z:1	oH:i:1	oP:i:6753	 [...]
-simulated.392	16	1	3761	255	84M1D25M1I19M1D32M1D51M	*	0	0	TTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAATTCGGAGTGTGCGAGAACTTCAACTCAGCTGAATGGTCACGAGAAAAATGATCGTGCCGGTAATGTATGCGAGACTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCG	'H8;'/I'H8'/I;4(I;7465;6(I6(I4:;4'/I75)I(I<9=(I6:747;926=485:76:66=9&.I(I;787(I978(I,I(I<'I<36483=799)I:'H<)I'3:26654(I4)I9518737(,6II738;8:79(I'F?(I=88417:85994,I:;89&E6984(I73&.I96)I'/I;?:78:7:6(I(I9647:6546857	NM:i:4	M [...]
-simulated.393	16	1	1805	255	35M1I9M1D159M	*	0	0	ACAGTATGATCGAGAATGACTAACTGGGCCCTTGCGTGGGGCATAGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGG	189:6969444265(I7:393'I67(3I'/I(I9:&5&+<I>;86B6(I(I(I5'G=<8&E<59=(I(I9:74:977664(I(I736&D'0I<)I98:'F371:0(I87(I(I989'H5;7(I49899)I4(I6(I61<'G16<'H739:::94)I8785&+:I96&E:79863:3(I5(I3&.I'0I:6373'G9176)I8(I	NM:i:2	MD:Z:44^G159	oR:Z:1	oH:i:1	 [...]
+simulated.391	16	1	6754	255	129M1D72M	*	0	0	TGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTAT	;77(I6=(I;68',>I:86)I=(I696(I'I(I(I67<'G'F3&+;I'I9'I93:6)I5<6;6='H3:=16'H498:85776;;7(I'G9&.I6+I453386)I1:9(I:8'/I38?4)I(I'/I46(IA6&F;'I26'I<76)I57'H;)I'G865686'H;57&.I&-I(I8'/I4=&-I;75365'I798318:(I95	NM:i:1	MD:Z:129G72	oR:Z:1	oH:i:1	oP:i:6753	o [...]
+simulated.392	16	1	3761	255	84M1D25M1I19M1D32M1D51M	*	0	0	TTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAATTCGGAGTGTGCGAGAACTTCAACTCAGCTGAATGGTCACGAGAAAAATGATCGTGCCGGTAATGTATGCGAGACTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCG	'H8;'/I'H8'/I;4(I;7465;6(I6(I4:;4'/I75)I(I<9=(I6:747;926=485:76:66=9&.I(I;787(I978(I,I(I<'I<36483=799)I:'H<)I'3:26654(I4)I9518737(,6II738;8:79(I'F?(I=88417:85994,I:;89&E6984(I73&.I96)I'/I;?:78:7:6(I(I9647:6546857	NM:i:4	M [...]
+simulated.393	16	1	1805	255	35M1I9M1D159M	*	0	0	ACAGTATGATCGAGAATGACTAACTGGGCCCTTGCGTGGGGCATAGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGG	189:6969444265(I7:393'I67(3I'/I(I9:&5&+<I>;86B6(I(I(I5'G=<8&E<59=(I(I9:74:977664(I(I736&D'0I<)I98:'F371:0(I87(I(I989'H5;7(I49899)I4(I6(I61<'G16<'H739:::94)I8785&+:I96&E:79863:3(I5(I3&.I'0I:6373'G9176)I8(I	NM:i:2	MD:Z:44G159	oR:Z:1	oH:i:1	o [...]
 simulated.394	16	1	8989	255	46M1I29M1I70M1I21M1I31M1I23M	*	0	0	TTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAAGTTGAATGATTGCATGTGCGTTGCACAACCTACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTAGGCGGTGAACTAACTGCGGATACGTACATGAACCGGGTCGGCTATTCGGGCATAGCACATGATCGTACGCAGGCGCG	'/I;'H:(I7;857873/69)I<13'0I74:'I5898<:'G:95*I%'I<(I489'G256958>8:)I69;8'I(I,924=6'.I(I)I7'H66<3<6&F8<<&-I'/I678'H4(I26:83:89)I'I;7;:86'I8(I5(I(I89,'H8'I:7(I:4)I:9;3'F3:&82789;5;'I(I'.I/6(I776*I:'/I<8=,7 [...]
 simulated.395	0	1	774	255	40M1I14M1I158M	*	0	0	AAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACTAAAGTAGAGCGAGCTAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCT	I/'I(:85;I.&7>6=9:6I at -'448828?;>287852:76I0'2;5:7898586*I(91;776348:28758I'::5999:596G'<I)I)77D&8=;I(1I(3I(I/'H'168:?6I(I'99:67G':<8I=,'7I)64>5957<5897IA-'I(3856I1(I(63I0'74I(799773:76:348;53758I(87:8;7I(:787:97:58	NM:i:2	MD:Z:212 [...]
 simulated.396	16	1	3177	255	170M1I31M	*	0	0	TGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTACTTTTCGGAGAACCGCTATAAAACCAAGTTT	866?)I:6(I742(I'/I76'G(I5&E=88(2I69'.I)I(I'I(I39&+:I9<29)I&*3II8'H<6&.I778'-?I(I75;'I8'I',<I686&D77976'H)I=)I6'H51'0I74'G787567;47<6(I4(I'G4',>I9'H(I=9;4(I55(I'I565(1I896&;&+9I3(I61(I&E57779',>I'I(I;'/I	NM:i:1	MD:Z:201	oR:Z:1	oH:i:1	oP:i:3176	oS [...]
 simulated.397	16	1	2424	255	170M	*	0	0	TTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAG	(I(1I855(I:4)I86(I65:1658(I8(2I3'H54(I:88'G8623589'I9 at 503(I343;(I8:3=46:;1716(I4'I'H(I(I47(I(I28568)I7'I&E:'/I6:9:578:;8775>9=5'I6:)I;'F8687732?8598'H9*I6%)0GI79.(I72:188	NM:i:0	MD:Z:170	oR:Z:1	oH:i:1	oP:i:2423	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.398	0	1	1445	255	209M	*	0	0	ACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAA	66679I(I(4I/'6G'I'I.'7968<I(4;94?;I.&;972:8I'I'9I)G'5564269568;8278=I(I2(9846:I.&;95II3+'G'I)15I(G'7794696I.&954:4958:I(;;7:7<;66I/'F'946;76<96G'5:<5;65;97I-&7838=93I1(8I';/=7I'I(I(9?I<,':88H'I<+&6I0'>F'9545H'	NM:i:0	MD:Z:209	oR:Z:1	oH:i:1	oP:i [...]
 simulated.399	16	1	1947	255	193M	*	0	0	GCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGA	85)I648715:3'F<625',>I6:(I38548881'H4'F7&.I'/I7:<77&F:6:7(I5'G56785&)1II38'I5686:(I6;14655975:6(I767<:'0I953(I;&F(2I(I89;59&+:I<'I462)I6(I54459(I849:'1I;=2(I8'/I;58)I6)I6668:66:9667(I<'/I)I9785	NM:i:0	MD:Z:193	oR:Z:1	oH:i:1	oP:i:1946	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.400	0	2	69	255	164M1D19M	*	0	0	CAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGAT	4I'9467>=88;I(6788<9687I(<I(I(939H'I(;:58558<78H'3I/'87H'I'I.&86;86388I1'65:76>H'3I/'3I)3B578I'I(:7I9+&I(5?;I'I/'I)I':6I(:I0'I(2733I(7I(7I'H'58=33478G':68I(5I)I0':7I7*F'3I(7I)I(865874	NM:i:1	MD:Z:164^C19	oR:Z:2	oH:i:1	oP:i:68	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.401	16	1	5769	255	9M1I72M1I31M1I5M1D38M1D42M	*	0	0	ATTATATTGTCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGACCGGACTAACGCATGAGCGTCGTTCGTTGCCTACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCG	6'H6:;'F8&567(I75*I727771:75(I(I49(I(I8)I9858625344'G84-='H47:37<47686(I77899;(I48**I)I279(I46788<5:977::(I7:)I7'H'39+I4,I1;(I'.I93'/I9346(I7;87966(3I(I',=I5;,I364&*8I4'I(I(I'H919792:A9(I5447(I<(I1*I8	NM:i:5	MD:Z:117^A38^G42	oR:Z: [...]
-simulated.402	16	1	3667	255	112M1I15M1D75M	*	0	0	TTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCACGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCA	(2I94(I5(I6<4(I(3I(-AI92=95)I(I:96&F77=4657(I0;'F478:(I'I'F53(1I99(I&-I'.I'G4(I8<'/I27:=5379:'0I74'/I*I9'/I4:(I7'2:<;89'H7'G:776,I/7)I'H756(I>3887;448:7;39471 at 993'0I'I94:7'I946'G(2I(I8'F58395675A:)I9(I:9	NM:i:2	MD:Z:127^T75	oR:Z:1	oH:i:1	o [...]
+simulated.400	0	2	69	255	164M1D19M	*	0	0	CAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGAT	4I'9467>=88;I(6788<9687I(<I(I(939H'I(;:58558<78H'3I/'87H'I'I.&86;86388I1'65:76>H'3I/'3I)3B578I'I(:7I9+&I(5?;I'I/'I)I':6I(:I0'I(2733I(7I(7I'H'58=33478G':68I(5I)I0':7I7*F'3I(7I)I(865874	NM:i:1	MD:Z:164C19	oR:Z:2	oH:i:1	oP:i:68	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.401	16	1	5769	255	9M1I72M1I31M1I5M1D38M1D42M	*	0	0	ATTATATTGTCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGACCGGACTAACGCATGAGCGTCGTTCGTTGCCTACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCG	6'H6:;'F8&567(I75*I727771:75(I(I49(I(I8)I9858625344'G84-='H47:37<47686(I77899;(I48**I)I279(I46788<5:977::(I7:)I7'H'39+I4,I1;(I'.I93'/I9346(I7;87966(3I(I',=I5;,I364&*8I4'I(I(I'H919792:A9(I5447(I<(I1*I8	NM:i:5	MD:Z:117A38G42	oR:Z:1	 [...]
+simulated.402	16	1	3667	255	112M1I15M1D75M	*	0	0	TTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCACGCTAGATTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCA	(2I94(I5(I6<4(I(3I(-AI92=95)I(I:96&F77=4657(I0;'F478:(I'I'F53(1I99(I&-I'.I'G4(I8<'/I27:=5379:'0I74'/I*I9'/I4:(I7'2:<;89'H7'G:776,I/7)I'H756(I>3887;448:7;39471 at 993'0I'I94:7'I946'G(2I(I8'F58395675A:)I9(I:9	NM:i:2	MD:Z:127T75	oR:Z:1	oH:i:1	oP [...]
 simulated.403	16	1	1388	255	197M	*	0	0	TGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCAC	<:85676:@:'I:8596;87='- at I6'H0'H:2)I5'.I<673=:(I6(I4:7778'G88<5*I(I3(1I5&E'I&.I9:698'I>56667&-I:4>295'F(I6)I(I4788;;;35<963284(I'/I17 at 58(2I5::&)1II'G(I;1(I'I:3=>::8'/I;:1B:9485'H<=988;947'/I'G663:79	NM:i:0	MD:Z:197	oR:Z:1	oH:i:1	oP:i:1387	oS:A:R	XE:i:0	XS: [...]
-simulated.404	0	1	8120	255	62M1D142M	*	0	0	TCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCT	5I(7579E&@75<959646:62G'77;9776:<87IA-'4:68I(I2(I)28G'658H'4I(I+<78;I)664A=I.'2787I)I(96I(2<6;7694I(1I(6;I):355;5I/'G'3=I(96063I(3I'I(4:5:76I(6789;I)5=I(883>77>9:;I(I'I(I0'I)9567;I)9;I(4I):9I/'4;5I(6I+88=	NM:i:1	MD:Z:62^C142	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.405	0	1	4727	255	104M1D63M1D39M	*	0	0	CTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAG	<6I(78I(59II3*&I/'I'8I(2878H'9355I(88787:5;II3*&6;68I(7568G'3::I8*&1I(967I*66I(I';8I'I,&46I3(2<8I-&I(6I(IC.(97945H';I'I)7;I(5;H';7H'5::89I2(76I(:6667358:89I'3I-&18:I(3I7*9:963I+93I'I)49H'I(7708<99I(988H'I(B	NM:i:2	MD:Z:104^A63^G39	oR:Z:1 [...]
-simulated.406	16	1	5866	255	20M1D184M	*	0	0	GCGTCGTTCGTTGCCACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATAC	5238:9'H>5(I8(I69'G7+I98(I'/I7:'0I:78:'H7655597(1I(I'-AI3<'/I658(.DI;(I'H'I(I6;2<:66:7(I;5=7'I=(I5)I2'I8'0I6;'G'F;997::(I<;387946'0I4'H'F5'/I<6:6:7:&+:I6(1I=&).9II<57355726889'G'I47)I;67'1I5879<:477;37:45	NM:i:1	MD:Z:20^A184	oR:Z:1	oH:i:1	oP:i [...]
-simulated.407	16	1	6744	255	22M1D164M	*	0	0	CATCAGGCCGTGAGGCTGGTATGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTT	8829<(I(I4659(I33(I878*6I3;6(I8'F6;6'I'G(I'I287*I'I9',=I(I6(I6723)I9>8B27(I4785;(I6596663=7261'H(I5&.I5(I297<:7)I98=(I88&-I756:)I(I'0I52'H'I7'H4(I57*I533(I99'F7(I'I7653;2'G?7:'/I'/I(I5'H	NM:i:1	MD:Z:22^G164	oR:Z:1	oH:i:1	oP:i:6743	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.404	0	1	8120	255	62M1D142M	*	0	0	TCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCT	5I(7579E&@75<959646:62G'77;9776:<87IA-'4:68I(I2(I)28G'658H'4I(I+<78;I)664A=I.'2787I)I(96I(2<6;7694I(1I(6;I):355;5I/'G'3=I(96063I(3I'I(4:5:76I(6789;I)5=I(883>77>9:;I(I'I(I0'I)9567;I)9;I(4I):9I/'4;5I(6I+88=	NM:i:1	MD:Z:62C142	oR:Z:1	oH:i:1	oP:i:8 [...]
+simulated.405	0	1	4727	255	104M1D63M1D39M	*	0	0	CTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAG	<6I(78I(59II3*&I/'I'8I(2878H'9355I(88787:5;II3*&6;68I(7568G'3::I8*&1I(967I*66I(I';8I'I,&46I3(2<8I-&I(6I(IC.(97945H';I'I)7;I(5;H';7H'5::89I2(76I(:6667358:89I'3I-&18:I(3I7*9:963I+93I'I)49H'I(7708<99I(988H'I(B	NM:i:2	MD:Z:104A63G39	oR:Z:1	o [...]
+simulated.406	16	1	5866	255	20M1D184M	*	0	0	GCGTCGTTCGTTGCCACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATAC	5238:9'H>5(I8(I69'G7+I98(I'/I7:'0I:78:'H7655597(1I(I'-AI3<'/I658(.DI;(I'H'I(I6;2<:66:7(I;5=7'I=(I5)I2'I8'0I6;'G'F;997::(I<;387946'0I4'H'F5'/I<6:6:7:&+:I6(1I=&).9II<57355726889'G'I47)I;67'1I5879<:477;37:45	NM:i:1	MD:Z:20A184	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.407	16	1	6744	255	22M1D164M	*	0	0	CATCAGGCCGTGAGGCTGGTATGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTT	8829<(I(I4659(I33(I878*6I3;6(I8'F6;6'I'G(I'I287*I'I9',=I(I6(I6723)I9>8B27(I4785;(I6596663=7261'H(I5&.I5(I297<:7)I98=(I88&-I756:)I(I'0I52'H'I7'H4(I57*I533(I99'F7(I'I7653;2'G?7:'/I'/I(I5'H	NM:i:1	MD:Z:22G164	oR:Z:1	oH:i:1	oP:i:6743	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.408	16	1	6113	255	50M1I36M1I135M	*	0	0	GGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCTATTCACCCACAGGGTGCATATCGATGTACATCGCCGTATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCT	'0I47;(I455&.I'H=853=9616785'H;&+:I'0I6666;25(I4<9(4)I98'0I7>5&.I3<77461548:7:847:85'H;'69&F937'I65(I5&.I631958&F6478/664573745&-I;:6&D15:57=8'/I58966='0I;69<7'0I8'I=7&+9I9'I'0I93;577)I7:82;5969:=5=;31(I>:9<9:1)I<;57(1I [...]
 simulated.409	16	1	5569	255	46M1I161M	*	0	0	GCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCACTTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATAT	;54'I:)I<4;586697754(I66'G'G:96587(I79:889'I99&'I;668=6:6<879?7141'H3=:8)I<65736(2I94'G6689(I;<8(I879'G7;)I'-?I377)I99;)I8(I'G='H3(I67&-I5(2I<76:&.I67;<3'G(I3(I8;;8'I95768(I88:'G7878:8&*2II'G71&F:5699'I)I62=9	NM:i:1	MD:Z:207	oR:Z:1	oH:i:1	 [...]
-simulated.410	16	1	9005	255	9M1D42M1I153M	*	0	0	CGTCTTCGCGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGACACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGC	<;43'H6=9+I;7:)I667643'I744'I(I<)I6;>(I<78939234'I6';:5)I(I;6;;<'/I'G)I6(I65887;(I9:6'/I'0I86:(I5'G91476:66'H(I745596(I=(I4)I'G35(I6)I84'G95(I46<6(I7:<585:>8;)I)I'/I:7'G499'I8&.I68658586;6453:7;5<72'I86689	NM:i:2	MD:Z:9^G195	oR:Z:1	oH:i:1 [...]
-simulated.411	0	1	6463	255	14M1D83M1D79M	*	0	0	CGTGTTATAGTAGCGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAA	7283H'47484687D789<I(:7I*I(379957676?65;H'7=8H'667927<I0'6;87;67I(3:<68458877I)6997987I(0I(548958I,63G'I(6G'4I(7959I(966;II3+&I.';I*31985:4I'I(I(4G'9H'95845 at 8<I'4<:866:I(79;8I'	NM:i:2	MD:Z:14^G83^A79	oR:Z:1	oH:i:1	oP:i:6462	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.410	16	1	9005	255	9M1D42M1I153M	*	0	0	CGTCTTCGCGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGACACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGC	<;43'H6=9+I;7:)I667643'I744'I(I<)I6;>(I<78939234'I6';:5)I(I;6;;<'/I'G)I6(I65887;(I9:6'/I'0I86:(I5'G91476:66'H(I745596(I=(I4)I'G35(I6)I84'G95(I46<6(I7:<585:>8;)I)I'/I:7'G499'I8&.I68658586;6453:7;5<72'I86689	NM:i:2	MD:Z:9G195	oR:Z:1	oH:i:1	 [...]
+simulated.411	0	1	6463	255	14M1D83M1D79M	*	0	0	CGTGTTATAGTAGCGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAA	7283H'47484687D789<I(:7I*I(379957676?65;H'7=8H'667927<I0'6;87;67I(3:<68458877I)6997987I(0I(548958I,63G'I(6G'4I(7959I(966;II3+&I.';I*31985:4I'I(I(4G'9H'95845 at 8<I'4<:866:I(79;8I'	NM:i:2	MD:Z:14G83A79	oR:Z:1	oH:i:1	oP:i:6462	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.412	0	1	8161	255	54M1I148M	*	0	0	GTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCGTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGT	65I'I0'I)8;I(>36I(4I'I2(46:8I(29:.4I1(;88;I(I(:7G'6248'7684I)1I(:6I(968798I/'H'49I'9;:26F&4I(I'3 at 5645H'73859H'<5I(4;967828;3I)I(H'I2(G':6878I(:4I(5I)99I.&<86I*8I(59189887;9/I)37:I1(I(37:7I(>23I(I(8:I2(97	NM:i:1	MD:Z:202	oR:Z:1	oH:i:1	oP:i:8160	o [...]
-simulated.413	0	2	206	255	158M1D38M	*	0	0	TTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGT	I)G':787:899I(@95I);I'I1'92I:+&H':I(5I(H'8<;54I.'I(;;@66377:86694I(=4I)I/'65:8I(>?I)87I*378237637858957:9I)5873699665684I2(I(H'687?:66I'I)I(87955:75<F':89G'<;I,45I9+&987I0'4;I)948185879G'97I.&7H'2	NM:i:1	MD:Z:158^G38	oR:Z:2	oH:i:1	oP:i:205	oS:A:F	XE:i:1 [...]
+simulated.413	0	2	206	255	158M1D38M	*	0	0	TTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGT	I)G':787:899I(@95I);I'I1'92I:+&H':I(5I(H'8<;54I.'I(;;@66377:86694I(=4I)I/'65:8I(>?I)87I*378237637858957:9I)5873699665684I2(I(H'687?:66I'I)I(87955:75<F':89G'<;I,45I9+&987I0'4;I)948185879G'97I.&7H'2	NM:i:1	MD:Z:158G38	oR:Z:2	oH:i:1	oP:i:205	oS:A:F	XE:i:1	 [...]
 simulated.414	16	1	7837	255	173M	*	0	0	GGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTA	(I:;3'.I45'/I'/I976)I7(I7677245(I&.I<(I(I55799=87;&+9I3*I7;9(I*I200696;5'/I77(I6(I4'I;9'G977)I45=:89=:8)I89(I<6584?6;=4/6?'I484:6(I:'G8(I58.)I:'0I195=8195'/I5'0I(I394'I(I266	NM:i:0	MD:Z:173	oR:Z:1	oH:i:1	oP:i:7836	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.415	0	1	8603	255	21M1I3M1D80M1D25M1I9M1I39M	*	0	0	AGAAGTTCGTAAAACCCAAGTAGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAGGATTGGGCCCAAGGGCTGCTACGTGCCCAGGACCAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACAT	17I'5I)788I:+&I/'I)25'98;I4)619185:I0'668496773895;I'5E&549I)8I)8:6I1(7E&8I(44I(:3<H'H'I(:55I:+&G';8I.'I)I,G'5I)I1(I.'I)I0'9=8;6;8%62I0'7I(1F'I'98I(I(5;4G'I1(834=756I=,'677I';75474	NM:i:5	MD:Z:24^T80^A73	oR:Z:1	oH:i:1	oP:i:8602	oS:A:F	XE:i:5	XS:i:0	XI:i:0
-simulated.416	0	1	2355	255	146M1D38M	*	0	0	CGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCG	84184I(7I(3999<99;987G'7486:;5=8666II2*&;5E&I-&I(:367I(I0'I(I)6878I)I-&I2(256I(95I)98I(8695775G'9I0'2I(;1G'678I(>46771>I(<:6:7I(64<:I(2847468=7:56D2I(I(I)I(<4I'I)6;572I)6I'I(8I.'72<7:3	NM:i:1	MD:Z:146^T38	oR:Z:1	oH:i:1	oP:i:2354	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.417	16	1	5689	255	24M1D143M1D39M	*	0	0	AGGTTACCGCCGCTTTCAAACTCATTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCG	2'F'I4*I9(I74'1I4(1I:>89+I96<35'I(I0'I5946(I:;668(I847(I9:4;5;&+3II(I8;(I95:54'H'I5:;(I:3<@(I at 8)I;5:7;6379'F'I6>)I)I8(I3?8681;565'I8:7;)I649:8=6:947'H8553;6)I38'H)I193B86979 at 7577595(I55(I6'F99'H:&.I65'G&,I8	NM:i:2	MD:Z:24^T143^A39	oR:Z: [...]
-simulated.418	16	1	1216	255	110M1D46M1D53M1I3M	*	0	0	TGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTACTA	=4'I<5;)I37;7356)I9;)I>(I(I;3)I6868'/I7:'G)I5',>I'H:'I7;8:94'H56)I86<'I567(I5854(I(1I2(I5&,I'.I8'/I6(I9(I8>8'H)5I99596<68:7)I8(I(I35(I&.I672:979&-I86)I;7(I5+I7)I81'H(I=:7940847986:'I6=9:67475&+:I6(I6(I66(I4'0I&997	NM:i:3	MD:Z [...]
-simulated.419	0	1	309	255	13M1D87M1I28M1I62M1I12M	*	0	0	ATTTTCGACAATGCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGACTAGGCCGGGTGTCACGTCAAATTCTCGGTCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACGACGTATGGATAA	7I?-'5:86I(<8I,5<59998I(8:9G'6268>9I;+&;2;8;I(I/'>4<I'9I)6I'8I0';4:>8887II2*&8I'I'6554I1(I.&778:576:(<7I(I(I.&;4=797955I.'H'986I)'28I'77I-&I)699537:I(:76I(6476?<I(76964:404I'75H'7H'I(G';8I>,'<%069886I*83I*	NM:i:4	MD:Z:13^C189	oR:Z [...]
-simulated.420	16	1	8628	255	42M1D59M1I96M	*	0	0	TTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTA	'0I98:766;'0I7766<55483888(I7(I67<(I6'G37:+I>(I<'I58(I?98(I'G(I666&+;I(I=4&-I'I'0I'H;'H'1I&.I(I&-I593'G583=5(1I:+I:3'I88'I'I69:(I(1I8;74766&*9I98:(I5168:83<:8:(I55&,I8:5(I5495;67)I(I844:37(I<386==96	NM:i:2	MD:Z:42^A155	oR:Z:1	oH:i:1	oP:i:8627	oS [...]
-simulated.421	16	1	7518	255	39M1I62M1I35M1D64M	*	0	0	TTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTAGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAACTAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCC	(I4:(2I(I(1I:9'I(I'H(I5549>6'I?5'G+I5;5%:(I63679(I9'I8(I)I956'I-93)I64)I9)I*I7)I642:<:5667(I;753292='I&88;<'H5'I)I:<<6;573675'G&-I4)I<3'H8,I(I693<65;:;78'I45:(I68'0I=5778&.I>34'I87'I8226A3(I(I'I8;(I87(I	NM:i:3	MD:Z:136^C64	oR:Z:1	oH:i:1 [...]
-simulated.422	0	2	98	255	154M1D22M1I23M	*	0	0	AGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGTCCTTTGACTAATATTACAATCTA	6:53I(F'972876A58:I'7I0';5I'I)I.&268:7647I1(9;8:25I)=I.':I':8879I'I(29I?-'I'95<I(I1(I'E&7;H'7I-&I)7897I'7I(4I(G'97557:82I(99<E&8H'I/'58I?-'G'7G'7H'I'96787I+I(97786278387<78I(6:'I'I/'7=<8I)16I'54G'4246	NM:i:2	MD:Z:154^T45	oR:Z:2	oH:i:1	oP:i:97	oS [...]
-simulated.423	0	1	2828	255	19M1I22M1D152M1I8M	*	0	0	TCGATATAAAAGTAAAAATACACTCTTCTAGGTGCAAGCGCTCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTACGAGCTGAT	6;686;2I<+&:5II1*&:%>:568I(=38H'867I(559 at 9BI(6I(;68:;I(70I(83I'4B94I.':6797I)/4182627979=9:I(98963I<+&5I(0:37I(:949H'6:<6I.&99I(7358F&<I(98:6=3<F'4I':154<5<6I(<889:4I0'9I/'9F'7I(I(I(657I)=I(8568&83963766	NM:i:3	MD:Z:41^C160	oR:Z:1	oH:i: [...]
+simulated.415	0	1	8603	255	21M1I3M1D80M1D25M1I9M1I39M	*	0	0	AGAAGTTCGTAAAACCCAAGTAGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAGGATTGGGCCCAAGGGCTGCTACGTGCCCAGGACCAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACAT	17I'5I)788I:+&I/'I)25'98;I4)619185:I0'668496773895;I'5E&549I)8I)8:6I1(7E&8I(44I(:3<H'H'I(:55I:+&G';8I.'I)I,G'5I)I1(I.'I)I0'9=8;6;8%62I0'7I(1F'I'98I(I(5;4G'I1(834=756I=,'677I';75474	NM:i:5	MD:Z:24T80A73	oR:Z:1	oH:i:1	oP:i:8602	oS:A:F	XE:i:5	XS:i:0	XI:i:0
+simulated.416	0	1	2355	255	146M1D38M	*	0	0	CGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCG	84184I(7I(3999<99;987G'7486:;5=8666II2*&;5E&I-&I(:367I(I0'I(I)6878I)I-&I2(256I(95I)98I(8695775G'9I0'2I(;1G'678I(>46771>I(<:6:7I(64<:I(2847468=7:56D2I(I(I)I(<4I'I)6;572I)6I'I(8I.'72<7:3	NM:i:1	MD:Z:146T38	oR:Z:1	oH:i:1	oP:i:2354	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.417	16	1	5689	255	24M1D143M1D39M	*	0	0	AGGTTACCGCCGCTTTCAAACTCATTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCG	2'F'I4*I9(I74'1I4(1I:>89+I96<35'I(I0'I5946(I:;668(I847(I9:4;5;&+3II(I8;(I95:54'H'I5:;(I:3<@(I at 8)I;5:7;6379'F'I6>)I)I8(I3?8681;565'I8:7;)I649:8=6:947'H8553;6)I38'H)I193B86979 at 7577595(I55(I6'F99'H:&.I65'G&,I8	NM:i:2	MD:Z:24T143A39	oR:Z:1	 [...]
+simulated.418	16	1	1216	255	110M1D46M1D53M1I3M	*	0	0	TGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTACTA	=4'I<5;)I37;7356)I9;)I>(I(I;3)I6868'/I7:'G)I5',>I'H:'I7;8:94'H56)I86<'I567(I5854(I(1I2(I5&,I'.I8'/I6(I9(I8>8'H)5I99596<68:7)I8(I(I35(I&.I672:979&-I86)I;7(I5+I7)I81'H(I=:7940847986:'I6=9:67475&+:I6(I6(I66(I4'0I&997	NM:i:3	MD:Z [...]
+simulated.419	0	1	309	255	13M1D87M1I28M1I62M1I12M	*	0	0	ATTTTCGACAATGCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGACTAGGCCGGGTGTCACGTCAAATTCTCGGTCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACGACGTATGGATAA	7I?-'5:86I(<8I,5<59998I(8:9G'6268>9I;+&;2;8;I(I/'>4<I'9I)6I'8I0';4:>8887II2*&8I'I'6554I1(I.&778:576:(<7I(I(I.&;4=797955I.'H'986I)'28I'77I-&I)699537:I(:76I(6476?<I(76964:404I'75H'7H'I(G';8I>,'<%069886I*83I*	NM:i:4	MD:Z:13C189	oR:Z: [...]
+simulated.420	16	1	8628	255	42M1D59M1I96M	*	0	0	TTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTA	'0I98:766;'0I7766<55483888(I7(I67<(I6'G37:+I>(I<'I58(I?98(I'G(I666&+;I(I=4&-I'I'0I'H;'H'1I&.I(I&-I593'G583=5(1I:+I:3'I88'I'I69:(I(1I8;74766&*9I98:(I5168:83<:8:(I55&,I8:5(I5495;67)I(I844:37(I<386==96	NM:i:2	MD:Z:42A155	oR:Z:1	oH:i:1	oP:i:8627	oS: [...]
+simulated.421	16	1	7518	255	39M1I62M1I35M1D64M	*	0	0	TTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTAGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAACTAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCC	(I4:(2I(I(1I:9'I(I'H(I5549>6'I?5'G+I5;5%:(I63679(I9'I8(I)I956'I-93)I64)I9)I*I7)I642:<:5667(I;753292='I&88;<'H5'I)I:<<6;573675'G&-I4)I<3'H8,I(I693<65;:;78'I45:(I68'0I=5778&.I>34'I87'I8226A3(I(I'I8;(I87(I	NM:i:3	MD:Z:136C64	oR:Z:1	oH:i:1	 [...]
+simulated.422	0	2	98	255	154M1D22M1I23M	*	0	0	AGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGTCCTTTGACTAATATTACAATCTA	6:53I(F'972876A58:I'7I0';5I'I)I.&268:7647I1(9;8:25I)=I.':I':8879I'I(29I?-'I'95<I(I1(I'E&7;H'7I-&I)7897I'7I(4I(G'97557:82I(99<E&8H'I/'58I?-'G'7G'7H'I'96787I+I(97786278387<78I(6:'I'I/'7=<8I)16I'54G'4246	NM:i:2	MD:Z:154T45	oR:Z:2	oH:i:1	oP:i:97	oS: [...]
+simulated.423	0	1	2828	255	19M1I22M1D152M1I8M	*	0	0	TCGATATAAAAGTAAAAATACACTCTTCTAGGTGCAAGCGCTCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTACGAGCTGAT	6;686;2I<+&:5II1*&:%>:568I(=38H'867I(559 at 9BI(6I(;68:;I(70I(83I'4B94I.':6797I)/4182627979=9:I(98963I<+&5I(0:37I(:949H'6:<6I.&99I(7358F&<I(98:6=3<F'4I':154<5<6I(<889:4I0'9I/'9F'7I(I(I(657I)=I(8568&83963766	NM:i:3	MD:Z:41C160	oR:Z:1	oH:i:1 [...]
 simulated.424	0	1	22	255	45M1I157M	*	0	0	TGCGCTTACAGACTTTATTTCTTCGTGAGGGAGTTGACCCATGCACGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCT	7553:H'579:58I1';I.'8I'8;968I-&:9I'69I/';28;2(:I(8986788H'<I(83:8I'3I/'I(98>8;I*2563I)4;5534I(I:+&74977I(45:7;843I*76;;I0'52;8776I)I(65I/':8:665G'I/'8<H'56;=85I'55;9I':I(87F'I(69I(I(2I(?15028477I(8I)6I)3	NM:i:1	MD:Z:202	oR:Z:1	oH:i:1	oP:i:21	oS:A: [...]
 simulated.425	0	2	206	255	202M	*	0	0	TTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTA	I)E&75;67897I(896I(:H'I1(86I>,'I)<H'=G'F'39986I3(I(4;864553799887I(75I(I.'549=H'7=I(66I(:;16:738467466199I(885685:5<392=I-&I'I)89;9779I(I(I)<42775687I'447I)7:I4)75I;+&684I/'06I(8;;754845I)75I2(6I)1A;88;	NM:i:0	MD:Z:202	oR:Z:2	oH:i:1	oP:i:205	oS:A:F	XE: [...]
-simulated.426	0	1	2578	255	158M1D7M1I28M	*	0	0	CCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTACTTAGATTTAAGCATCAGAACTCCGGCG	II2*&85<I(50873<5:I0'I(668>95<F'8=I)::89475I(696:=67388IG0)%4=H'4I-&73I);575827954G'446594I)66:8I(8714:<5<74884I'846I(7:83:33;7;H'3E&89974999<=:7I(8I;+&87I0'4I+I=,'6'7I(873I.&I(683888=I'59I(I(86	NM:i:2	MD:Z:158^T35	oR:Z:1	oH:i:1	oP:i:2577	oS:A:F	XE:i [...]
+simulated.426	0	1	2578	255	158M1D7M1I28M	*	0	0	CCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTACTTAGATTTAAGCATCAGAACTCCGGCG	II2*&85<I(50873<5:I0'I(668>95<F'8=I)::89475I(696:=67388IG0)%4=H'4I-&73I);575827954G'446594I)66:8I(8714:<5<74884I'846I(7:83:33;7;H'3E&89974999<=:7I(8I;+&87I0'4I+I=,'6'7I(873I.&I(683888=I'59I(I(86	NM:i:2	MD:Z:158T35	oR:Z:1	oH:i:1	oP:i:2577	oS:A:F	XE:i: [...]
 simulated.427	0	1	4715	255	203M	*	0	0	TCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAA	6I(;54:I.'75=:H'64I):;II2*&I0'I);I'8396I(;746I)9577;485II1*&7958I)7587E&37:I9+&5G'868F'34I)I(85H'I.&79I2(584I/'I(4I(II1*&325:5I(7H'G'96I(88I(48I(4:8<9I/'62I)67<4;68=>97I(@I.&91;I)7I<,&8444?I(86E&I(;:I(I(	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:4714	oS:A:F [...]
 simulated.428	0	2	186	255	119M1I62M	*	0	0	GAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATCGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGG	52H'8I0'F'6896I(6I);I)I(857;:9:9I(227I(9H'I/'3;I8*&H';I(3I)I)89<<8I/'G';58=865;82>86>I*:6F&I/'2;98H'23G'=5I'7537:=6<3;7&5<;788I)?9732:<497858I1(I(G'5=>98<3I(I(I(4737=8:67E&0<;I(56I.'	NM:i:1	MD:Z:181	oR:Z:2	oH:i:1	oP:i:185	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.429	0	1	3262	255	25M1I110M1D78M	*	0	0	GTTAAAACGCGGCATGATTAACGGTACCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCAT	6I)I<,&68:G';8478I)I(2I'9&I':7I/'87H'9589925<556I(3H'I(=I=,'8I(I(666:I)49I(I)<77I/':>68I=,';I*86F'I*9:878I<+&I(I(9I/'8 at 88>I'54:;9:8I/':9DI(;837;4I)@:71439I'I-&I.'826;I(77649:79>65:;8:78F':55<9I>,'58I(IG0)%7I.'6625:	NM:i:2	MD:Z:13 [...]
+simulated.429	0	1	3262	255	25M1I110M1D78M	*	0	0	GTTAAAACGCGGCATGATTAACGGTACCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCAT	6I)I<,&68:G';8478I)I(2I'9&I':7I/'87H'9589925<556I(3H'I(=I=,'8I(I(666:I)49I(I)<77I/':>68I=,';I*86F'I*9:878I<+&I(I(9I/'8 at 88>I'54:;9:8I/':9DI(;837;4I)@:71439I'I-&I.'826;I(77649:79>65:;8:78F':55<9I>,'58I(IG0)%7I.'6625:	NM:i:2	MD:Z:13 [...]
 simulated.430	16	1	2663	255	201M	*	0	0	GATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAA	788:4)I87>:'H44;55:99777<7(I886(I5575<;27:8)I;)I9:6=9875677=(I7',>I88&-I5&,I'-?I=7(I147(1I)I6768:7:(I89'I)I:&+:I7794;;+I66'G(1I)I87579;:7&+<I8&F4&+9I:'0I7967(I87949488;5676&*9I4;&*3II38789?'I745(I78<*I	NM:i:0	MD:Z:201	oR:Z:1	oH:i:1	oP:i:2662	oS:A:R	XE [...]
-simulated.431	16	1	5655	255	3M1I63M1I5M1D131M	*	0	0	CATCGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGACCGGCAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTA	7:6'3)I754(I:7;&E87(I'-?I756(I685'I4'G(I8)I7'I6:(2I;'.I8987'0I=:;90'(I(I8C7639'G9<95;)I828'I:17;A:&)0II(I<;(I;9894(I(I4;9'H7464(I94)I397:4;/26'G'H=<*I)I;(I68897;3454(I58B6'I67777433389(I6 at 565:(I56'H'F;416	NM:i:3	MD:Z:71^A131	oR:Z:1	oH: [...]
-simulated.432	0	1	1590	255	160M1I3M1D13M	*	0	0	GTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCGACTCCCTTGAGACGGC	:964876<<:I/':758:78I3(7I(4714I'I(I(46I<+&7;7I(I;+&7I/'6H'67;<H'7:7<H'9I)8I(:I(6695:I(=9467I(5:3:;::9G'I'I/'F&:I'=4I)I'71781868I(85889749754>747I(5499I(59I3(7:8';<;I7*I(83922G';	NM:i:2	MD:Z:163^C13	oR:Z:1	oH:i:1	oP:i:1589	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.431	16	1	5655	255	3M1I63M1I5M1D131M	*	0	0	CATCGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGACCGGCAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTA	7:6'3)I754(I:7;&E87(I'-?I756(I685'I4'G(I8)I7'I6:(2I;'.I8987'0I=:;90'(I(I8C7639'G9<95;)I828'I:17;A:&)0II(I<;(I;9894(I(I4;9'H7464(I94)I397:4;/26'G'H=<*I)I;(I68897;3454(I58B6'I67777433389(I6 at 565:(I56'H'F;416	NM:i:3	MD:Z:71A131	oR:Z:1	oH:i [...]
+simulated.432	0	1	1590	255	160M1I3M1D13M	*	0	0	GTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCGACTCCCTTGAGACGGC	:964876<<:I/':758:78I3(7I(4714I'I(I(46I<+&7;7I(I;+&7I/'6H'67;<H'7:7<H'9I)8I(:I(6695:I(=9467I(5:3:;::9G'I'I/'F&:I'=4I)I'71781868I(85889749754>747I(5499I(59I3(7:8';<;I7*I(83922G';	NM:i:2	MD:Z:163C13	oR:Z:1	oH:i:1	oP:i:1589	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.433	16	1	8540	255	119M1I55M1I32M	*	0	0	ACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTCGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGACTTGGGCCCAAGGGCTGCTACTGCCTAGGACAA	26865;'H)I679<6'I(I&)1II=;:6&,<I4:)I675:(2I2'/I7*I9'H4686'I8'H945'G7'I9:5(.BI'.I'I;4<44&+;I9;;4366'0I8:947868:@:65(I8(I&=79'F8)I65;&.I7(I7(I;;*I6:;&E)I'I;9;',>I(I87'1I(I'/I(I9''G)4I(1I(I&-I6::624<84+I)6'I:6(I	NM:i:3	MD:Z:198C7	oR:Z:1	 [...]
-simulated.434	0	1	739	255	32M1D73M1D112M	*	0	0	GCGGCGTAGGATAATCTACGGTTGCATGGTTATTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATAT	A8F'8868I'97I(<=9;5I'I'64;3I(I(5I,I/'I)9775I/'<8;;6?@I8*&?:357957567;<8915I1(65957365;77I)5=73667;;792=:6D27:8569:8=I*;I(G'37I(<99G'<I)9I(I0'F'8>967:I(I(6:75:E&:38I:+&6I(555:797:83;8I:+&I(4339I/'H'87I1(;4I)95<31 at 88778	NM:i:2	MD [...]
+simulated.434	0	1	739	255	32M1D73M1D112M	*	0	0	GCGGCGTAGGATAATCTACGGTTGCATGGTTATTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATAT	A8F'8868I'97I(<=9;5I'I'64;3I(I(5I,I/'I)9775I/'<8;;6?@I8*&?:357957567;<8915I1(65957365;77I)5=73667;;792=:6D27:8569:8=I*;I(G'37I(<99G'<I)9I(I0'F'8>967:I(I(6:75:E&:38I:+&6I(555:797:83;8I:+&I(4339I/'H'87I1(;4I)95<31 at 88778	NM:i:2	MD [...]
 simulated.435	0	1	2728	255	195M1I14M	*	0	0	GGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTACTACTTTTCGGCTAT	I)75I1'<I/'IA.(56F'789I2(I'6;1753?I(38I'I'7I?-'<8672;I'54I(I3(I'218699:<I=,'5I'4I:+&=I,&777;I(96877568552;7I9*&75II3+'797446I(062I(93;E&6:897I'I)5I):676:I'96I'79I)==24I/'384;5I)9:776:<45;75;:I(6<(693I=,'7I(96<:	NM:i:1	MD:Z:209	oR:Z:1	oH:i [...]
-simulated.436	16	1	2600	255	10M1I30M1I95M1I18M1D48M	*	0	0	ATGCTCATGGTATGGCAGTGTAGGAGCGACTAGATTTTTGTAGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTACTTTGGGGTCTTAGATTTAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCC	0=<98885'I%:5(I8:62677(I49;5<7501:&*2II97&'G4&.I67(I4645758447'H=64668(I4468)I:567148687658(I448(I5978329=68(I5(I8>788<:;<9;:'I9',=I;8'0I&2&-I',<I::'I46;'0IC9458;7:'G79(I(I8&*7I968<99(I95&E&.I(I;9955757'H	NM:i:4	MD:Z:153^A48	oR:Z [...]
-simulated.437	16	1	8807	255	30M1D164M	*	0	0	TAATACGTGAACAGTGCTACAAGCCAATGGAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTC	:)I995471(I933356253&E4'H(I2)I(/DI:<'H43>>8:'F'0I5)I&,I354&E86664)I84'F:&.I&,I'H24718:4:2(I5'G46'I987664575;4=&+:I97(I)I(I(I(I974883763)I;'G*I<8(I6'F486)I'I46(I8'0I676=8'H95427:;776(1I6*I?'H9653	NM:i:1	MD:Z:30^A164	oR:Z:1	oH:i:1	oP:i:8806	oS:A:R	XE:i:1	 [...]
-simulated.438	0	2	39	255	89M1D113M1I4M	*	0	0	TTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAACTCCA	H'74::9275;F'I)=9745I0'37F&8579I(655858;84I(3:6::6>77I(9H'G'3:5I(I'7864;=62-3F&5I-&59I(I)I,6<8:769/I1(48384:H'2I-&5I(4562;I(I(86I9+&I(:75I(I0'I(I)4;H'7I.&H'4<35I(;I)4I(I(:98<:765I(953H'6I(I/'87I>,'G'<H'(<H'4	NM:i:2	MD:Z:89^C117	oR:Z:2	oH:i [...]
-simulated.439	16	1	5532	255	47M1I116M1D28M	*	0	0	CATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCTACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACGCCGCTTTCAAACTCATTTGTATGCCG	8::6'.I:;(I)I'/I6)I48>='H9'I<99'G8<97::7)I7'G76)6::974;2;;'I0:(I(I2:1676(I86:83:(I45(I429<6;A2>:9>323;6'H<<86)I769587&-I85'G>347'F;67(I8;9(I98(I&*8I82@(I78='I:'H(I3B7'G;<(3I6'0I=762(3I56799'I5	NM:i:2	MD:Z:163^C28	oR:Z:1	oH:i:1	oP:i:5531	oS:A:R	XE:i:2 [...]
-simulated.440	0	1	1168	255	108M1D49M1D23M	*	0	0	CGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCACAGACTGCGCCACCGGAGT	88::<5;5:;978<7:7I=,'I(985875;6E&95I(8I'76I=,'6577F&872I(18/3476I(74H'9I)G'48I(0:69I.'80I'I(7I=,'I(3I)=:8;<8B::G'884I'45:I'3=38H'I.&6D&;I-&I/'9I2(2G'9H'9:;I(I4)8=6996788=I(7I(I)767	NM:i:2	MD:Z:108^G49^C23	oR:Z:1	oH:i:1	oP:i:1167	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.441	0	2	195	255	131M1D79M	*	0	0	TACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGC	=7563I(7I)6I'I(878566;9I)489I(8I(I2(8;I9+&I(7I'8F'I(78:76I2(I(67:<6777;478=:G'6;I*I0'842;G'9=I(36I(797;3847477:7<295F'57=7:65;1955;I,I(I'5:7;86;I(I(I(744:79890I)>57I(34I-&;7I9*&6:8I-&16G'895865:;5I(96I0'=I)?:68	NM:i:1	MD:Z:131^A79	oR:Z:2	o [...]
-simulated.442	0	1	4345	255	148M1D58M	*	0	0	CGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTG	44I)>I(8I(I(9275I(866G'=8:9=7I'6659I(3;<I0'678578;7;:97576758II1*&I(;8596679I(8A:5I(I'I(79I-&5;75H'97I(67997I)3II3+'432474I(896::4744I(I)I(:<97:I0'9I+I2(I'4I:+&7:;5G'<I)57;;457:59I0'9G'81I+I(4::836I(77I(465	NM:i:1	MD:Z:148^T58	oR:Z:1	oH:i:1	o [...]
-simulated.443	0	1	7320	255	188M1D19M	*	0	0	GGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCTGCACCTTTCATTTCCT	I/';4I.&775F'989;I(<:87I(<9475749I(584594757I.';A8>>I(987:356I<,'=;5I(6G'786I0'7377=9I(I(9978:5:65:907947I/'9E&767I)8I<,'8578378:7I'I*:<I(I'864576I/'I0'76684=7I)52I(8I2(I)I(65F&I'77593:;57I,9991F&I0'86I/'G'6	NM:i:1	MD:Z:188^C19	oR:Z:1	oH:i:1 [...]
-simulated.444	16	1	3433	255	29M1D99M1I44M1I21M1D10M	*	0	0	CGTGACTATGTGATAAGTATCAAAATCAACCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTCGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTAGAGATCGGGAGGATGGTGTTATTTGTCTACG	;7987548>06867'H<93<9&*9I67(I(/EI6&-I0<6:26=(I5'G2'.I<6'/I*I2568'I6:9:(1I6'I4(I6824;<:8(I5'.I:(I79;)I'G9'H9&-I(I3>2::8(.AI;=7(2I((I'H79(I149775'I)I(I)I6:(I;8'0I<:89)I(I'H'I2)<;5687&-I8(I78(I16*I5)5I29><627	NM:i:4	MD:Z:29^C164^T1 [...]
-simulated.445	16	2	99	255	19M1I159M1D28M	*	0	0	GTATTCCTGTCAGAGCGTTAAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATG	927'H'H9678976468'H&E'1I6;(I(I'0I836404;6'.I5;6834'G7&.I6'G7=68:'H(I43&+;I'I578'I&-I(I(I6:)I<'0I(I:;8:*I:(I<)I'H9796?6<9(I:69)I7(I'/I:5&+<I'I9'H6(I'G at 7892&.I'H764;=;97:=>:73'G<8(I+I5998(I88)I67(I67:83697:>:8	NM:i:2	MD:Z:178^T28	oR:Z:2	oH [...]
-simulated.446	16	1	4386	255	70M1D36M1D35M1D3M1I9M1I35M1I23M	*	0	0	TTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTATGTCCTTCGCACGTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCGACTTGGAGCCGCCCTACTCCTAG	'G:8><9124:=2?>82837',5II(I768:6889(I97<:'I(I(I63(1I6764(I52(I8496:(I9)/FI6:9249)I987876597'H(I(I898=9&-I=,I'/I)I4&+;I95;9'H1'I2992965:89(2I1C5:&'H'G<7:96(6'I74(I2/6:8953&-I5'I3:85857'I778:4(78(I)I99'G8'1I0>48(I [...]
-simulated.447	16	1	5161	255	152M1I11M1D40M	*	0	0	CTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCCTACTCGGGCGCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTC	7'F;(I9?85(I;:::',=I8'H(1I877+I516(I'I64(I)I&.I886'1I(I(I7;6=<5549599(1I642(I7)I(I3(I957/'H2'H5978;898:64(I8665:)I)I946&.I(1I2>:;47)I7758(I(I(I9874'I(I6&F86;74&-I==,I7'0I)I(I7(I6'I827:9776'0I5:29501',=I98	NM:i:2	MD:Z:163^C40	oR:Z:1	oH:i:1 [...]
-simulated.448	16	1	7753	255	89M1D33M1I11M1I72M	*	0	0	ATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGATAAATTTCAGAAGAACAGAGTCTTCCCACCGAATCGTCTCAGACCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTAT	5=77(I'I(I:7(1I9;9',<I5(I(3I(I'G9;;B'H::757(I2:(1I9797&)1II94(I'1I99<6=C9'G57675:9<<)I=08,I58&.I'/I1:2'H4(I36596:5'I'0I6'G&'I663766782%&*8I5(I682)I(I;278<4:9(2I57'I9'I7(I35'G573'I7;25673?6(I:9(I26:69<:==;769	NM:i:3	MD:Z:89^G116	oR: [...]
+simulated.436	16	1	2600	255	10M1I30M1I95M1I18M1D48M	*	0	0	ATGCTCATGGTATGGCAGTGTAGGAGCGACTAGATTTTTGTAGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTACTTTGGGGTCTTAGATTTAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCC	0=<98885'I%:5(I8:62677(I49;5<7501:&*2II97&'G4&.I67(I4645758447'H=64668(I4468)I:567148687658(I448(I5978329=68(I5(I8>788<:;<9;:'I9',=I;8'0I&2&-I',<I::'I46;'0IC9458;7:'G79(I(I8&*7I968<99(I95&E&.I(I;9955757'H	NM:i:4	MD:Z:153A48	oR:Z: [...]
+simulated.437	16	1	8807	255	30M1D164M	*	0	0	TAATACGTGAACAGTGCTACAAGCCAATGGAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTC	:)I995471(I933356253&E4'H(I2)I(/DI:<'H43>>8:'F'0I5)I&,I354&E86664)I84'F:&.I&,I'H24718:4:2(I5'G46'I987664575;4=&+:I97(I)I(I(I(I974883763)I;'G*I<8(I6'F486)I'I46(I8'0I676=8'H95427:;776(1I6*I?'H9653	NM:i:1	MD:Z:30A164	oR:Z:1	oH:i:1	oP:i:8806	oS:A:R	XE:i:1	X [...]
+simulated.438	0	2	39	255	89M1D113M1I4M	*	0	0	TTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAACTCCA	H'74::9275;F'I)=9745I0'37F&8579I(655858;84I(3:6::6>77I(9H'G'3:5I(I'7864;=62-3F&5I-&59I(I)I,6<8:769/I1(48384:H'2I-&5I(4562;I(I(86I9+&I(:75I(I0'I(I)4;H'7I.&H'4<35I(;I)4I(I(:98<:765I(953H'6I(I/'87I>,'G'<H'(<H'4	NM:i:2	MD:Z:89C117	oR:Z:2	oH:i: [...]
+simulated.439	16	1	5532	255	47M1I116M1D28M	*	0	0	CATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCTACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACGCCGCTTTCAAACTCATTTGTATGCCG	8::6'.I:;(I)I'/I6)I48>='H9'I<99'G8<97::7)I7'G76)6::974;2;;'I0:(I(I2:1676(I86:83:(I45(I429<6;A2>:9>323;6'H<<86)I769587&-I85'G>347'F;67(I8;9(I98(I&*8I82@(I78='I:'H(I3B7'G;<(3I6'0I=762(3I56799'I5	NM:i:2	MD:Z:163C28	oR:Z:1	oH:i:1	oP:i:5531	oS:A:R	XE:i:2	 [...]
+simulated.440	0	1	1168	255	108M1D49M1D23M	*	0	0	CGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCACAGACTGCGCCACCGGAGT	88::<5;5:;978<7:7I=,'I(985875;6E&95I(8I'76I=,'6577F&872I(18/3476I(74H'9I)G'48I(0:69I.'80I'I(7I=,'I(3I)=:8;<8B::G'884I'45:I'3=38H'I.&6D&;I-&I/'9I2(2G'9H'9:;I(I4)8=6996788=I(7I(I)767	NM:i:2	MD:Z:108G49C23	oR:Z:1	oH:i:1	oP:i:1167	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.441	0	2	195	255	131M1D79M	*	0	0	TACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGC	=7563I(7I)6I'I(878566;9I)489I(8I(I2(8;I9+&I(7I'8F'I(78:76I2(I(67:<6777;478=:G'6;I*I0'842;G'9=I(36I(797;3847477:7<295F'57=7:65;1955;I,I(I'5:7;86;I(I(I(744:79890I)>57I(34I-&;7I9*&6:8I-&16G'895865:;5I(96I0'=I)?:68	NM:i:1	MD:Z:131A79	oR:Z:2	oH [...]
+simulated.442	0	1	4345	255	148M1D58M	*	0	0	CGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTG	44I)>I(8I(I(9275I(866G'=8:9=7I'6659I(3;<I0'678578;7;:97576758II1*&I(;8596679I(8A:5I(I'I(79I-&5;75H'97I(67997I)3II3+'432474I(896::4744I(I)I(:<97:I0'9I+I2(I'4I:+&7:;5G'<I)57;;457:59I0'9G'81I+I(4::836I(77I(465	NM:i:1	MD:Z:148T58	oR:Z:1	oH:i:1	oP [...]
+simulated.443	0	1	7320	255	188M1D19M	*	0	0	GGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCTGCACCTTTCATTTCCT	I/';4I.&775F'989;I(<:87I(<9475749I(584594757I.';A8>>I(987:356I<,'=;5I(6G'786I0'7377=9I(I(9978:5:65:907947I/'9E&767I)8I<,'8578378:7I'I*:<I(I'864576I/'I0'76684=7I)52I(8I2(I)I(65F&I'77593:;57I,9991F&I0'86I/'G'6	NM:i:1	MD:Z:188C19	oR:Z:1	oH:i:1	 [...]
+simulated.444	16	1	3433	255	29M1D99M1I44M1I21M1D10M	*	0	0	CGTGACTATGTGATAAGTATCAAAATCAACCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTCGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTAGAGATCGGGAGGATGGTGTTATTTGTCTACG	;7987548>06867'H<93<9&*9I67(I(/EI6&-I0<6:26=(I5'G2'.I<6'/I*I2568'I6:9:(1I6'I4(I6824;<:8(I5'.I:(I79;)I'G9'H9&-I(I3>2::8(.AI;=7(2I((I'H79(I149775'I)I(I)I6:(I;8'0I<:89)I(I'H'I2)<;5687&-I8(I78(I16*I5)5I29><627	NM:i:4	MD:Z:29C164T10	 [...]
+simulated.445	16	2	99	255	19M1I159M1D28M	*	0	0	GTATTCCTGTCAGAGCGTTAAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATG	927'H'H9678976468'H&E'1I6;(I(I'0I836404;6'.I5;6834'G7&.I6'G7=68:'H(I43&+;I'I578'I&-I(I(I6:)I<'0I(I:;8:*I:(I<)I'H9796?6<9(I:69)I7(I'/I:5&+<I'I9'H6(I'G at 7892&.I'H764;=;97:=>:73'G<8(I+I5998(I88)I67(I67:83697:>:8	NM:i:2	MD:Z:178T28	oR:Z:2	oH: [...]
+simulated.446	16	1	4386	255	70M1D36M1D35M1D3M1I9M1I35M1I23M	*	0	0	TTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTATGTCCTTCGCACGTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCGACTTGGAGCCGCCCTACTCCTAG	'G:8><9124:=2?>82837',5II(I768:6889(I97<:'I(I(I63(1I6764(I52(I8496:(I9)/FI6:9249)I987876597'H(I(I898=9&-I=,I'/I)I4&+;I95;9'H1'I2992965:89(2I1C5:&'H'G<7:96(6'I74(I2/6:8953&-I5'I3:85857'I778:4(78(I)I99'G8'1I0>48(I [...]
+simulated.447	16	1	5161	255	152M1I11M1D40M	*	0	0	CTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCCTACTCGGGCGCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTC	7'F;(I9?85(I;:::',=I8'H(1I877+I516(I'I64(I)I&.I886'1I(I(I7;6=<5549599(1I642(I7)I(I3(I957/'H2'H5978;898:64(I8665:)I)I946&.I(1I2>:;47)I7758(I(I(I9874'I(I6&F86;74&-I==,I7'0I)I(I7(I6'I827:9776'0I5:29501',=I98	NM:i:2	MD:Z:163C40	oR:Z:1	oH:i:1	 [...]
+simulated.448	16	1	7753	255	89M1D33M1I11M1I72M	*	0	0	ATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGATAAATTTCAGAAGAACAGAGTCTTCCCACCGAATCGTCTCAGACCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTAT	5=77(I'I(I:7(1I9;9',<I5(I(3I(I'G9;;B'H::757(I2:(1I9797&)1II94(I'1I99<6=C9'G57675:9<<)I=08,I58&.I'/I1:2'H4(I36596:5'I'0I6'G&'I663766782%&*8I5(I682)I(I;278<4:9(2I57'I9'I7(I35'G573'I7;25673?6(I:9(I26:69<:==;769	NM:i:3	MD:Z:89G116	oR:Z [...]
 simulated.449	16	1	7120	255	103M1I50M1I29M	*	0	0	GGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCTATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGACATGCTGGCCATCCTATTTTAACATAGTT	(I8(I'1I64+I78(I'H8&.I'/I569'I:(I<:7:'H<8(I83 at 677:5:9(I'0I3'/I4779(I(I993565;7<7289<8;7:835)I6)I999&-I8&595)I768(I767'G:(I'I:37'G:67647413984',<I<3(I4'H:8%6:8:73)I'I8:'H:7&+;I'H7286<'H	NM:i:2	MD:Z:182	oR:Z:1	oH:i:1	oP:i:7119	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.450	16	1	5916	255	3M1D35M1I16M1D117M	*	0	0	CTTAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCGTGCATTGAATCCGAACGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACT	3(I)6I7B&.I:8?&*9I5&E)I(I(I86<89:76:'H':766)I4(I:(I3&F:+I67(I'H0968;6(I78693<95&.I8(I(I6'/I789934:&*9I6'1I7&)/;II68:437679:68(I(I?9*I:;>'/I75;5586:6.;5473(I;<9725&.I5)I9:99	NM:i:3	MD:Z:3^A51^G117	oR:Z:1	oH:i:1	oP:i:5915	oS:A:R	XE:i:3	XS:i:0	XI:i:0
-simulated.451	0	1	8113	255	194M1D5M	*	0	0	TGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAGCGG	>8I(<<I(I(;63:I(::54:64294598I(959865576:4I=,'6343H'I1'I(:7I)555F&5I(I0'4795I)99496I.'6853I*I'28H'18:23479I'8I):7I)?@9<6:I/'I)85G'1;5=3I(6G'I(;59866I(39594G'48I(97 at 658:=67I'G'H'I-&I(358>6I(8;F':C:4I(	NM:i:1	MD:Z:194^A5	oR:Z:1	oH:i:1	oP:i:8112	oS:A:F	 [...]
-simulated.452	0	1	3274	255	147M1D70M	*	0	0	CATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTT	>9757I'I(9I(;H'56I.'55H'97;42?8<692H'3I*G':I=,'4I'I)44:7E&57I(I'727I1(8779I:+&6I(9;I(I':<842I=,'I'I(7I-&58:34I(8728:5<I/'85F'G'97477<I(5679767I(I0'I,3743H'646886237:88789:8I(;617<I8*&66H'II0)&5I2(529;596H'3I'7I0':9I0'	NM:i:1	MD:Z:1 [...]
+simulated.450	16	1	5916	255	3M1D35M1I16M1D117M	*	0	0	CTTAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCGTGCATTGAATCCGAACGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACT	3(I)6I7B&.I:8?&*9I5&E)I(I(I86<89:76:'H':766)I4(I:(I3&F:+I67(I'H0968;6(I78693<95&.I8(I(I6'/I789934:&*9I6'1I7&)/;II68:437679:68(I(I?9*I:;>'/I75;5586:6.;5473(I;<9725&.I5)I9:99	NM:i:3	MD:Z:3A51G117	oR:Z:1	oH:i:1	oP:i:5915	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.451	0	1	8113	255	194M1D5M	*	0	0	TGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAGCGG	>8I(<<I(I(;63:I(::54:64294598I(959865576:4I=,'6343H'I1'I(:7I)555F&5I(I0'4795I)99496I.'6853I*I'28H'18:23479I'8I):7I)?@9<6:I/'I)85G'1;5=3I(6G'I(;59866I(39594G'48I(97 at 658:=67I'G'H'I-&I(358>6I(8;F':C:4I(	NM:i:1	MD:Z:194A5	oR:Z:1	oH:i:1	oP:i:8112	oS:A:F	X [...]
+simulated.452	0	1	3274	255	147M1D70M	*	0	0	CATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTT	>9757I'I(9I(;H'56I.'55H'97;42?8<692H'3I*G':I=,'4I'I)44:7E&57I(I'727I1(8779I:+&6I(9;I(I':<842I=,'I'I(7I-&58:34I(8728:5<I/'85F'G'97477<I(5679767I(I0'I,3743H'646886237:88789:8I(;617<I8*&66H'II0)&5I2(529;596H'3I'7I0':9I0'	NM:i:1	MD:Z:1 [...]
 simulated.453	0	1	7623	255	191M	*	0	0	GGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTG	I(3I(F&:8356<77<64I(I.'4I):/E&9I.&I(4;9867669:9H'87=I)/6I0'9996:I0';7;I'31I)98886:I)G'H':8H'5;I(I(8186:I(5:8G':687;9I'H'I*917I(<=6:=8:G'I(I(<5I.'837I<+&7I'I/'F&I(98>8I(40;7>I(:<I1(88<7II1*&54	NM:i:0	MD:Z:191	oR:Z:1	oH:i:1	oP:i:7622	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.454	0	1	2352	255	56M1D126M	*	0	0	TCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTG	589>9<89I*6I(87689:66:<?I(.:=750:66<32IH0)&97I'I/'G':675CI0'H'I(5744I)I2(I0':54I'71I(9?G'867:77<I(5I/'1E&7;I*28:I(>894<89I)77557I(489:I+>26;96555568H'8E&I(I(I(:8I)I(38767I(4G'G':I1'4	NM:i:1	MD:Z:56^G126	oR:Z:1	oH:i:1	oP:i:2351	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.454	0	1	2352	255	56M1D126M	*	0	0	TCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTG	589>9<89I*6I(87689:66:<?I(.:=750:66<32IH0)&97I'I/'G':675CI0'H'I(5744I)I2(I0':54I'71I(9?G'867:77<I(5I/'1E&7;I*28:I(>894<89I)77557I(489:I+>26;96555568H'8E&I(I(I(:8I)I(38767I(4G'G':I1'4	NM:i:1	MD:Z:56G126	oR:Z:1	oH:i:1	oP:i:2351	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.455	0	1	2304	255	183M1I27M	*	0	0	AAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGTAATCGCGTGATACATTGCCTTGGAATC	E&6E&I;+&2I0'I)59I)I(3:67I=,':98H'536I1'57I.&0F&988;6429I(4H'27764953476I)8>9;84288856II1)&46H'I.&I'548:I(I1(I(G':934I(I-&I2(:47I'82I'=7I(6568543I(7I/'9E&7;H'968I)368798:I)3;864I(81;4&I(927;7;;95793I)8I(I(I)I'3;	NM:i:1	MD:Z:210	oR:Z:1	oH [...]
 simulated.456	0	1	1996	255	57M1I159M	*	0	0	CAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGTCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTT	95I(6597H'8I(8;6;4II6,(=4I(;:587I(2668;35589:3I(59889I-&=&57H'2I'I/'D&::<<4I;+&:I(685I(8I(94595F&:98;I.'583I)7I/'98:I';I)<:5787877378I(7I2(H'967I-&H'67I(:2I(I)I(I<,&5I)46I)I2(I(8<9:I)887950I):4E&5895-I'5=<I1(I(=9II4+'	NM:i:1	MD:Z:2 [...]
-simulated.457	16	1	2699	255	39M2D58M1I37M1D37M	*	0	0	GACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATCGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGG	99<;576'I6(I9:45:7:5=969)I6'-?I72'.I4,I)5I;7(I;16&-I(I7889687(I47(I(I=&+:I>39759)I89'I'/I(I500382'5:&+<I:'H<',=I8(3I5<76(I24:=683898589(3I>5%)0GI228::6(I955)I17:'H984 at 6'G*I	NM:i:4	MD:Z:39^TG95^A37	oR:Z:1	oH:i:1	oP:i:2698	oS:A:R	XE:i:4	XS:i:0	XI:i:0
-simulated.458	0	2	180	255	97M1D30M1I25M1I56M1I3M	*	0	0	GGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATGTCGTACTTATAGCGCGCACATAAACCAACTCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTACTC	I(I)I(64I)7I3(I)756;I(>I(:H'I);;<787:6I(982I(4I(I0'86I?-'I(8I(6G'I'8;677I2(I)=8834;56719:83I(7:G'I+826<I(71I'=:H'85<6:877835485&857H':=89739:5769<I0'F'G'&7766:76I(I(I(:96===2<8I(879I(65I0':9I at -'478I2(6;I(::7<27&A76	NM:i:4	 [...]
-simulated.459	0	1	8103	255	52M1D137M1D9M	*	0	0	CTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGTCGCGCCA	::6I(I(I(7:5G'8<I'I'7=<7I'98963964=6;3:I(8645469=48;I7*6675I(I.'I(6>I(46:I'5I(I1'6=87I(05=47I2(=777I(I(;7I):9689578I(4I(33I(539::<I0'I':8I)996<2I(2G'I(34<78:F':;:9:F'75I'9:695;:.<7I)I)G'I1'C<;649F&7	NM:i:2	MD:Z:52^A137^G9	oR:Z:1	oH:i:1	oP:i:8102	 [...]
+simulated.457	16	1	2699	255	39M2D58M1I37M1D37M	*	0	0	GACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATCGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGG	99<;576'I6(I9:45:7:5=969)I6'-?I72'.I4,I)5I;7(I;16&-I(I7889687(I47(I(I=&+:I>39759)I89'I'/I(I500382'5:&+<I:'H<',=I8(3I5<76(I24:=683898589(3I>5%)0GI228::6(I955)I17:'H984 at 6'G*I	NM:i:4	MD:Z:39TG95A37	oR:Z:1	oH:i:1	oP:i:2698	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.458	0	2	180	255	97M1D30M1I25M1I56M1I3M	*	0	0	GGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATGTCGTACTTATAGCGCGCACATAAACCAACTCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTACTC	I(I)I(64I)7I3(I)756;I(>I(:H'I);;<787:6I(982I(4I(I0'86I?-'I(8I(6G'I'8;677I2(I)=8834;56719:83I(7:G'I+826<I(71I'=:H'85<6:877835485&857H':=89739:5769<I0'F'G'&7766:76I(I(I(:96===2<8I(879I(65I0':9I at -'478I2(6;I(::7<27&A76	NM:i:4	 [...]
+simulated.459	0	1	8103	255	52M1D137M1D9M	*	0	0	CTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGTCGCGCCA	::6I(I(I(7:5G'8<I'I'7=<7I'98963964=6;3:I(8645469=48;I7*6675I(I.'I(6>I(46:I'5I(I1'6=87I(05=47I2(=777I(I(;7I):9689578I(4I(33I(539::<I0'I':8I)996<2I(2G'I(34<78:F':;:9:F'75I'9:695;:.<7I)I)G'I1'C<;649F&7	NM:i:2	MD:Z:52A137G9	oR:Z:1	oH:i:1	oP:i:8102	oS [...]
 simulated.460	16	1	8416	255	164M1I39M	*	0	0	ATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCACGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACC	985;'G<876)I(I87(I988?7(I77'H995>:'G358'H68968(I'H;39=38(I(I&.I7;6'1I69)I>7(I:52<6766>6589='I8545)I66(I9(I64)I9'0I688:(I5'H;:6558/(I'I876=3(I(I&*3II8>87&+;I9<(I737='&-I4(2I7'H:(I44:9(I5(I299(I7(I95;&+;I'I	NM:i:1	MD:Z:203	oR:Z:1	oH:i:1	oP:i:841 [...]
-simulated.461	0	2	30	255	5M1D34M1D173M	*	0	0	AGCGGCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATC	74;I(D5I-&3=9:8897;I)I'<::72I0'74H'6:5;D?54759537H'686306;57I(9I'G'7<9I)G';39<894382I(9I0'7<I(I)I3(485626>9I1(7999:9I(6I1'9F'5;6:5I)I)65I;+&I(875H'I3(I)I(2;I':I.&I(;5:;F':I':I(I(7=6<7;67I(7:8I(8I(I.'8;I:+&G'9I)48	NM:i:2	MD:Z:5^C34^A17 [...]
-simulated.462	16	1	2952	255	159M1D42M1I21M	*	0	0	AGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCGAGTGTTCTGTCGCTATTGAGA	69(I765@'G6)I;663385(I6'G86856952'I7<=9;3'/I:'0I8(I7'F'H'I948'I8(I/878><867:473'H;5576'F'I'H6'0I::8'I00:99*I;'H'.I55483437>&.I'I67'/I8;(I&+:I(I48:4877287'H'I(IA7655416687:7'F8<9&-I5<7<3697)4I&*1II<6:96&?766'I==766888=(I [...]
-simulated.463	0	2	95	255	33M1D14M1I21M1I27M1D96M	*	0	0	CCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCGTATCTCTGGGTACTACGTTGCCCTCCTCATATTAGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATA	I)G'556H'H'548=58466>I'9I3(:6I(I(I,79687478I-&<&74759I)6I,&6I(99795I'&H'68I<,&I(7:5I'I0'I)I)87F&6I)I)6794I)3I)9I(I)::;:48:7I(55;I':I'I2(:4I;+&I)4I':H'I(7<99:I,&I)8<6238;7515:7<I)75I)I3(8448H';9	NM:i:4	MD:Z:33^C62^G96	oR:Z:2	oH:i:1	oP:i:94	oS:A [...]
-simulated.464	16	1	7708	255	38M1I124M1D37M	*	0	0	ACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTACTAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGC	:'I<8(I68'G+I1578;(I975(I2:6:92'H(I'H:&89'G56;9594(I'H'I89&-I591&*7I7'I(1I(I'I5525'H87459(I78&.I65:7&*1II:9(I&.I::961:9)I5:37;4379'I87;&-I<7'0I&.I764)I6(I7159466'I+I6'H'I785765879',>I7)I689'H(I475;=6=	NM:i:2	MD:Z:162^C37	oR:Z:1	oH:i:1	oP:i:77 [...]
-simulated.465	16	1	1818	255	147M1D47M	*	0	0	GAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTA	;(I86772(I78'/I(3I'H747',<I75:6)I7(I(I(I@(I5:9'H;<74(I(I7849;63::7<&F)I6::'I'0I9)I:56(I78B<5)I8;'G'I;91(I759(I7:<:6'I:'I6'G663'H498(I169856:<(I79:8*7I66)I=:795385'G:'F9'0I'/I<:572(I98=3'H7'G4574	NM:i:1	MD:Z:147^G47	oR:Z:1	oH:i:1	oP:i:1817	oS:A:R	XE:i:1	 [...]
-simulated.466	16	1	7674	255	56M1I98M1I3M1I16M1D46M	*	0	0	TGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCTAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAAGTCTACAGTATGGCGCGGGATAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAA	>'H21&-I:9886(3I=:9(I0:'G8;7=96(I(I(I9:(I74(I(I69;68'I96&6'G4988:7)I(I'I7;8'I4587:2;+I'H'I94'.I98>'-?I7&E&.I'I(I6678'H34885'I>6(2I567;&)1II;5'I'/I868<7<;*I(89:(;84554(I;96&-I7:,I&,I6:5'I8(I;597797(I'0I:(I'I>474:: [...]
+simulated.461	0	2	30	255	5M1D34M1D173M	*	0	0	AGCGGCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATC	74;I(D5I-&3=9:8897;I)I'<::72I0'74H'6:5;D?54759537H'686306;57I(9I'G'7<9I)G';39<894382I(9I0'7<I(I)I3(485626>9I1(7999:9I(6I1'9F'5;6:5I)I)65I;+&I(875H'I3(I)I(2;I':I.&I(;5:;F':I':I(I(7=6<7;67I(7:8I(8I(I.'8;I:+&G'9I)48	NM:i:2	MD:Z:5C34A173	 [...]
+simulated.462	16	1	2952	255	159M1D42M1I21M	*	0	0	AGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCGAGTGTTCTGTCGCTATTGAGA	69(I765@'G6)I;663385(I6'G86856952'I7<=9;3'/I:'0I8(I7'F'H'I948'I8(I/878><867:473'H;5576'F'I'H6'0I::8'I00:99*I;'H'.I55483437>&.I'I67'/I8;(I&+:I(I48:4877287'H'I(IA7655416687:7'F8<9&-I5<7<3697)4I&*1II<6:96&?766'I==766888=(I [...]
+simulated.463	0	2	95	255	33M1D14M1I21M1I27M1D96M	*	0	0	CCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCGTATCTCTGGGTACTACGTTGCCCTCCTCATATTAGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATA	I)G'556H'H'548=58466>I'9I3(:6I(I(I,79687478I-&<&74759I)6I,&6I(99795I'&H'68I<,&I(7:5I'I0'I)I)87F&6I)I)6794I)3I)9I(I)::;:48:7I(55;I':I'I2(:4I;+&I)4I':H'I(7<99:I,&I)8<6238;7515:7<I)75I)I3(8448H';9	NM:i:4	MD:Z:33C62G96	oR:Z:2	oH:i:1	oP:i:94	oS:A:F [...]
+simulated.464	16	1	7708	255	38M1I124M1D37M	*	0	0	ACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTACTAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGC	:'I<8(I68'G+I1578;(I975(I2:6:92'H(I'H:&89'G56;9594(I'H'I89&-I591&*7I7'I(1I(I'I5525'H87459(I78&.I65:7&*1II:9(I&.I::961:9)I5:37;4379'I87;&-I<7'0I&.I764)I6(I7159466'I+I6'H'I785765879',>I7)I689'H(I475;=6=	NM:i:2	MD:Z:162C37	oR:Z:1	oH:i:1	oP:i:770 [...]
+simulated.465	16	1	1818	255	147M1D47M	*	0	0	GAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTA	;(I86772(I78'/I(3I'H747',<I75:6)I7(I(I(I@(I5:9'H;<74(I(I7849;63::7<&F)I6::'I'0I9)I:56(I78B<5)I8;'G'I;91(I759(I7:<:6'I:'I6'G663'H498(I169856:<(I79:8*7I66)I=:795385'G:'F9'0I'/I<:572(I98=3'H7'G4574	NM:i:1	MD:Z:147G47	oR:Z:1	oH:i:1	oP:i:1817	oS:A:R	XE:i:1	X [...]
+simulated.466	16	1	7674	255	56M1I98M1I3M1I16M1D46M	*	0	0	TGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCTAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAAGTCTACAGTATGGCGCGGGATAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAA	>'H21&-I:9886(3I=:9(I0:'G8;7=96(I(I(I9:(I74(I(I69;68'I96&6'G4988:7)I(I'I7;8'I4587:2;+I'H'I94'.I98>'-?I7&E&.I'I(I6678'H34885'I>6(2I567;&)1II;5'I'/I868<7<;*I(89:(;84554(I;96&-I7:,I&,I6:5'I8(I;597797(I'0I:(I'I>474:: [...]
 simulated.467	0	1	8034	255	210M	*	0	0	ATTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGC	<I/'64666895=I/'89I(74:I'I/'I'<5E&6I(2=6I9*&897882I(8595:655;8I'I(85:9=8H'I(I);:6I(9BH'H'4894I(733456674;:79I*65748633736I:+&7>>5D&I0'I(:AI'765I)6I(I0':>57I(97<49I-&4394I*H'76H'66857593H'7G';8I(5657;7I/'I'58I(<	NM:i:0	MD:Z:210	oR:Z:1	oH:i:1	oP [...]
-simulated.468	0	1	4966	255	78M1D127M	*	0	0	TTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCT	I)I);565I(8I(676:6G'48875I'>686H'9997956I/'?I-&87942:1I)988I)8=I(24I3(7II7-(%7I7*I)8:972<7>I(58;I.&6=I(7;7I(46965H'<7I(85;>I(85;44<:65I(67776I)74:H'78I(I(8I0'3I)977476II;/)&2693585:::I)<388I.&1?<I(5I(818/:	NM:i:1	MD:Z:78^T127	oR:Z:1	oH:i:1	oP: [...]
+simulated.468	0	1	4966	255	78M1D127M	*	0	0	TTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCT	I)I);565I(8I(676:6G'48875I'>686H'9997956I/'?I-&87942:1I)988I)8=I(24I3(7II7-(%7I7*I)8:972<7>I(58;I.&6=I(7;7I(46965H'<7I(85;>I(85;44<:65I(67776I)74:H'78I(I(8I0'3I)977476II;/)&2693585:::I)<388I.&1?<I(5I(818/:	NM:i:1	MD:Z:78T127	oR:Z:1	oH:i:1	oP:i [...]
 simulated.469	16	1	6699	255	124M1I43M	*	0	0	GGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATACTAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTG	'G56633(I474::'H:6&*8I<'0I6;8)5I9&*2II6=<'G'F5;61<'I'I4@:7'I69(I6::',=I971(I4)I;6<(I'I'I(I376'H)I5(.AI*I8)I::44&E:97<72(I5/<.5<)I:9567628648:(I'F?'0I7)I5:8:94'G489'H876	NM:i:1	MD:Z:167	oR:Z:1	oH:i:1	oP:i:6698	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.470	0	1	7102	255	173M	*	0	0	TCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCA	286I(7<I(=:3:I'9;I,&6I(I.'69I(;9I(I(2I-&I1(885I'9I(@6>:I)38H'5127839:=4I(I/'6I/';959I(I(:7:6:952439A998<5<;46H'7I)597I1(>7;5I)257I'486I(5I)I*3:9I(5783459865;6I9+&6:H'1G'47:6	NM:i:0	MD:Z:173	oR:Z:1	oH:i:1	oP:i:7101	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.471	0	1	6627	255	4M1I106M1I108M	*	0	0	CATGTAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTACTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTG	9156.;7I)4773I(I1(6G'88:I)I'F&85>I)I0'4=68462787869I(H';8 at 1<67174854I(2G'I(76<<7I(;5;74I*6?I;+&3I-&=26I-&7II3+&&878I(F'26788G'I'89:5I(26I(726I9+&3:9I)5I'9:6H'I)G'I(252I(I)7I8*&I'9I(7;=2I)268758E&66978I'606;93:;8985I(H'8:	NM [...]
 simulated.472	16	1	528	255	144M1I38M1I3M1I15M	*	0	0	AGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTAGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGTAGGACGACCATAAATGGAC	58(3I8(I'G957'.I<7;478'I9>277'H5(I)I1;:5678;'/I;433:'1I6290<:9)I8:>4457&-I82'/I9(I469666><'G7;7>7675)I66)I49'H478(I:77&)/;II(I7:9'/I7744(I'G:(1I&9966;98766(I8:98565<<8:(I66;:2647>'G:/&6'G&565(I98'0I7)I<6	NM:i:3	MD:Z:200	oR:Z:1	oH:i:1	oP [...]
-simulated.473	16	1	4562	255	38M1I35M1I62M1I4M1D35M1D10M1I3M	*	0	0	CGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGTCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTCGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGACGATAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCAAACCTACCT	9664<343(I967676;'I'I6=(I5'0I899:)I8?4&82695587'H&-I689&.I197*I(I=(I;77&E9%4:@<984'I5'0I9'I;577'F=8(I68:4@&-I:65<65(I7'H=1655'.I)I865(I;;(?880,I496(I'G8877:&F8558'0I017;'F<=(I78(/EI&,I'F4()I;	NM:i:6	MD:Z:139^A35^C13	oR:Z:1	oH:i:1	oP:i [...]
-simulated.474	16	2	15	255	23M1D51M1I29M1I40M1I65M	*	0	0	AACTCGTTTGGACTCAGCGGCCGTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATACGTGGTCCAAGTATTCCTGTCAGAGCGTTACGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCGATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTC	(I8676'.I'H787=5;9*I'I9,I;:::3476=(I(I7699;'0I32'G6853'G9;7589587(I8484<55%7:(I8'H)I5;8)I(I;8:8:46588'H<('1I39)I(I'/I:5<8;8:<(3I;57885(I3&-I:)I6<'674)I'F:7'- at I&F679*I'/I(I)I67(I:'0I(I9777(I<)I;'H'F45979:58*I56:5	NM:i:4	MD:Z: [...]
-simulated.475	0	1	1226	255	125M1I22M1D66M	*	0	0	GACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTAGGGCGCATCTCCCGAGGCAGGAGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCAT	9=997:I(@<I)4I(I+=3I(55<2I-&8;H'I)6I<,'I'8I(:1::;7I(35I(758I'999I)44=1F'I0';I(7I3(I/'4I/'3I(4I'78<H'I<,'949:6=;7<4I'9H'I(67I(&I0'247<858I/'33I(98D&5I+8I(73I(I)915:87.;=;8;8I):594:6846I;+&3I'8I(59G'8I/'839978I(0I(79	NM:i:2	MD:Z:14 [...]
-simulated.476	0	1	8021	255	26M1D171M	*	0	0	ATAGTATTGTTGAATTTCACGATCGCGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAG	84526:I(5I(6I(I/'656:63485I,55I,588F'I,&I)56I(9G'7<6I;+&467883I(843;;4>479F&I):57;33G'I(I'795I'97I(I'6<:;I';735>?5>.735;G'9:4:;859376I8*&7994I(I1'I)78H'96:I(6I(I.&375;I(:8777I0'3427I(I(93E&66554:44	NM:i:1	MD:Z:26^G171	oR:Z:1	oH:i:1	oP:i:8020	oS:A:F	XE [...]
+simulated.473	16	1	4562	255	38M1I35M1I62M1I4M1D35M1D10M1I3M	*	0	0	CGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGTCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTCGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGACGATAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCAAACCTACCT	9664<343(I967676;'I'I6=(I5'0I899:)I8?4&82695587'H&-I689&.I197*I(I=(I;77&E9%4:@<984'I5'0I9'I;577'F=8(I68:4@&-I:65<65(I7'H=1655'.I)I865(I;;(?880,I496(I'G8877:&F8558'0I017;'F<=(I78(/EI&,I'F4()I;	NM:i:6	MD:Z:139A35C13	oR:Z:1	oH:i:1	oP:i:4 [...]
+simulated.474	16	2	15	255	23M1D51M1I29M1I40M1I65M	*	0	0	AACTCGTTTGGACTCAGCGGCCGTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATACGTGGTCCAAGTATTCCTGTCAGAGCGTTACGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCGATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTC	(I8676'.I'H787=5;9*I'I9,I;:::3476=(I(I7699;'0I32'G6853'G9;7589587(I8484<55%7:(I8'H)I5;8)I(I;8:8:46588'H<('1I39)I(I'/I:5<8;8:<(3I;57885(I3&-I:)I6<'674)I'F:7'- at I&F679*I'/I(I)I67(I:'0I(I9777(I<)I;'H'F45979:58*I56:5	NM:i:4	MD:Z: [...]
+simulated.475	0	1	1226	255	125M1I22M1D66M	*	0	0	GACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTAGGGCGCATCTCCCGAGGCAGGAGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCAT	9=997:I(@<I)4I(I+=3I(55<2I-&8;H'I)6I<,'I'8I(:1::;7I(35I(758I'999I)44=1F'I0';I(7I3(I/'4I/'3I(4I'78<H'I<,'949:6=;7<4I'9H'I(67I(&I0'247<858I/'33I(98D&5I+8I(73I(I)915:87.;=;8;8I):594:6846I;+&3I'8I(59G'8I/'839978I(0I(79	NM:i:2	MD:Z:14 [...]
+simulated.476	0	1	8021	255	26M1D171M	*	0	0	ATAGTATTGTTGAATTTCACGATCGCGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAG	84526:I(5I(6I(I/'656:63485I,55I,588F'I,&I)56I(9G'7<6I;+&467883I(843;;4>479F&I):57;33G'I(I'795I'97I(I'6<:;I';735>?5>.735;G'9:4:;859376I8*&7994I(I1'I)78H'96:I(6I(I.&375;I(:8777I0'3427I(I(93E&66554:44	NM:i:1	MD:Z:26G171	oR:Z:1	oH:i:1	oP:i:8020	oS:A:F	XE: [...]
 simulated.477	16	1	795	255	76M1I129M	*	0	0	CCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTACCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATG	(I:8585797988869755&-I99588468467)I586;?891=62<<<8(I<562437:82'H7'I'G28'G888('H:(I5'H'0I'H67793:)I(I43;;5(I7<6&+:I4(I88957575=699',=I'G<?85(1I'I19'/I8<(I75<;69;<66949:5898;'I48388;&D=9=5;776:<68)I3'/I46(I;<	NM:i:1	MD:Z:205	oR:Z:1	oH:i:1	oP:i: [...]
 simulated.478	0	1	5291	255	225M	*	0	0	CGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACA	<I)6747I(I(H'2559H'I'8778788I/'6<I3(9I.&I(I*7I)7E&788;A998I-&8=7694;I8*&;I'9I(674I/'639<247245I(96H'8:83877G':98I.&5=493I*3I(9I2(7I(64II2*&97<<6I';66:6598I':6D&=79687I*57:29;8:7I(I(:57I):I(;;76:6I(I'5I(965::I'697>9>87I);I-&5;	NM [...]
-simulated.479	16	1	6487	255	6M1I25M1I31M1I55M1I76M	*	0	0	ATGGAGTCGTATGAGTCATTGCGTTCACACTGTAAATCGATCTAACTGATAGTATGAACGCGTACGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGACGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCA	5D(I74%9644646;6<2)I3;7(I479<<59(&.I5889;86(I73747;7766:'I4;;9C6'6'I6)I643989&-I98)I&E6)I:)I5;91(I<796'+5II'0I;)I48972;3&'F'H(I8(I6&F8251<15='I:7:63:6(I=545(I&-I8(I664(I'I&E69;'F'0I6492:377?349<'H5	NM:i:5	MD:Z:0T192	oR:Z:1	oH:i:1	oP:i:64 [...]
+simulated.479	16	1	6487	255	6M1I25M1I31M1I55M1I76M	*	0	0	ATGGAGTCGTATGAGTCATTGCGTTCACACTGTAAATCGATCTAACTGATAGTATGAACGCGTACGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGACGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCA	5D(I74%9644646;6<2)I3;7(I479<<59(&.I5889;86(I73747;7766:'I4;;9C6'6'I6)I643989&-I98)I&E6)I:)I5;91(I<796'+5II'0I;)I48972;3&'F'H(I8(I6&F8251<15='I:7:63:6(I=545(I&-I8(I664(I'I&E69;'F'0I6492:377?349<'H5	NM:i:5	MD:Z:T192	oR:Z:1	oH:i:1	oP:i:648 [...]
 simulated.480	0	2	86	255	72M1I157M	*	0	0	CATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTACATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTAT	5757>:I'7I'I)75/E&G'54:67653;>I)9I2(18I)I'I3(9456-486I0':97;46I)<I1(9I)7&5889I)I(7?I>,'I)386I)I.&I'I(3:H'4I0'I*74::I*;I)6I*I(:6647646I(:67I)6I+I1(8:I>,'I)0H'7I*F&19:73I0'I(86726785;46:56E&3<I(I0'=987I)66H'95I'85;;966858= [...]
-simulated.481	0	1	7296	255	11M1I13M1D60M1D118M	*	0	0	ATAGTTATTAGACCCATGTTCGACCGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTG	57/3I(<I)8:'I.&788I(851I(I,:7I.&86<I*4=:9F'3324I'365645:=I(9384B6:;8I0'66:76I)7827673I5)7?4I'6I)895I1(67;886G'I'09874895648597:;I0'9H':78H'4I9+&86;422796F&H'7;I'I'<78=64I.'I.&92;7794I(25I(9I2(I'I'54I'I'<	NM:i:3	MD:Z:24^G60^A118	oR:Z:1	 [...]
-simulated.482	16	1	8604	255	55M1I22M1D37M1D99M	*	0	0	GAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTAGCAGGTCCGTGAAACTTGCCGCATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAAC	6(I7(I889'-?I&-I(I<48=:',=I>77:896'/I:1888=7397868'I8'I*877)I8'I:9:&.I=(I8)I:1C;2:(I'I*I at 85&+:I(I;<(2I'G&.I(I5'I&.I,I'G'/I847;59848'.I2*I76'I48(I'I365'I(3I;886517',<I9=7(I998;592=5<6'I7<'0IB77)I:66777:'G(I89:1=6(I8	NM:i:3	MD [...]
-simulated.483	0	1	2219	255	33M1I77M1D74M	*	0	0	CCATCACCAGCGCAGTACTATCGTTGTAAAGATACTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTT	F&:84:H'6368;<459:859A;I(36I-&7<@&8G'68::8:4:43>7:6I)I'5=6I1(5E&7?26;4=I(6:46<:7I(9:98E&4I(I<+&9I0'I(99I(I(<566I7*934G':7<I0'8:I/'8I(88465479I(2I)439;71772;8I(:5<7312568:5II4+'4BF'I0'G'	NM:i:2	MD:Z:110^A74	oR:Z:1	oH:i:1	oP:i:2218	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.484	0	1	9125	255	63M1I49M1D91M	*	0	0	CCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCTACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGA	I)9I(I(39H'7H'69I(8/H'8;73I(6>958<743:I(I'I0'8:I*=58H'9I1(77659';846556778699;6E&82883546I.'6I(7:84G'I(I(533I(5I(I,6G'I(7:3I(5I/'I'4H'9:684<6<I(H'73=:I(H'65I(576H'=5<488=I(979I/'697I.&56507I(:I);389I'I(78	NM:i:2	MD:Z:112^T91	oR:Z:1	oH:i:1	o [...]
+simulated.481	0	1	7296	255	11M1I13M1D60M1D118M	*	0	0	ATAGTTATTAGACCCATGTTCGACCGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTG	57/3I(<I)8:'I.&788I(851I(I,:7I.&86<I*4=:9F'3324I'365645:=I(9384B6:;8I0'66:76I)7827673I5)7?4I'6I)895I1(67;886G'I'09874895648597:;I0'9H':78H'4I9+&86;422796F&H'7;I'I'<78=64I.'I.&92;7794I(25I(9I2(I'I'54I'I'<	NM:i:3	MD:Z:24G60A118	oR:Z:1	oH [...]
+simulated.482	16	1	8604	255	55M1I22M1D37M1D99M	*	0	0	GAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTAGCAGGTCCGTGAAACTTGCCGCATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAAC	6(I7(I889'-?I&-I(I<48=:',=I>77:896'/I:1888=7397868'I8'I*877)I8'I:9:&.I=(I8)I:1C;2:(I'I*I at 85&+:I(I;<(2I'G&.I(I5'I&.I,I'G'/I847;59848'.I2*I76'I48(I'I365'I(3I;886517',<I9=7(I998;592=5<6'I7<'0IB77)I:66777:'G(I89:1=6(I8	NM:i:3	MD [...]
+simulated.483	0	1	2219	255	33M1I77M1D74M	*	0	0	CCATCACCAGCGCAGTACTATCGTTGTAAAGATACTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTT	F&:84:H'6368;<459:859A;I(36I-&7<@&8G'68::8:4:43>7:6I)I'5=6I1(5E&7?26;4=I(6:46<:7I(9:98E&4I(I<+&9I0'I(99I(I(<566I7*934G':7<I0'8:I/'8I(88465479I(2I)439;71772;8I(:5<7312568:5II4+'4BF'I0'G'	NM:i:2	MD:Z:110A74	oR:Z:1	oH:i:1	oP:i:2218	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.484	0	1	9125	255	63M1I49M1D91M	*	0	0	CCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCTACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTGTTGGCTATTATTTAATAAGATCTAGAGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGA	I)9I(I(39H'7H'69I(8/H'8;73I(6>958<743:I(I'I0'8:I*=58H'9I1(77659';846556778699;6E&82883546I.'6I(7:84G'I(I(533I(5I(I,6G'I(7:3I(5I/'I'4H'9:684<6<I(H'73=:I(H'65I(576H'=5<488=I(979I/'697I.&56507I(:I);389I'I(78	NM:i:2	MD:Z:112T91	oR:Z:1	oH:i:1	oP [...]
 simulated.485	0	1	900	255	200M	*	0	0	TCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGC	8327I=,'6I(95277;958788I?-'E&7795I0'I(6:I0'97H'>859<52;:945;6694<;G'/2:476I(;6713;=96729I(5I-&;:I);I'I0':76;6I)I-&D&6I1(8657I'8I1(763598I.'7848<68I(6;I(9I(5658=I(I)>;867:5H'8 at I<+&43I(<6766I/'8I(35I1(7	NM:i:0	MD:Z:200	oR:Z:1	oH:i:1	oP:i:899	oS:A:F	XE:i:0	 [...]
-simulated.486	0	1	975	255	42M1D78M1D26M1I54M	*	0	0	TATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGCATTAGCTGCGTACATCGGTTTGCGACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAG	737<8776:5:58F&9I/'66I(5G'I-&:8768E&I.&I)9I,5794I+2I0'8:6643I,&68<858;I*54I(1I)5;75<F'I(94839:6F'77I?-'36I(99764I.&9I(::I,94I(B:566<:97@::8H'I0'94%<;65;I)87I)9?;34?98I>,'I(68:88:788:;54F'6F&79541<75:56	NM:i:3	MD:Z:42^C78^G80	oR:Z:1	oH:i:1	 [...]
-simulated.487	16	1	4487	255	94M1D103M	*	0	0	ATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACAT	<7'.I4'0I(1I'I7',>I2785'I5(I;83;995293'/I<'H35(I'H73468;'G84'H;72:8844'1I8(I757722:(I;93:;<2(ID9='I6'/I;:38'G:68=4>6:176'I(1I61<(1I4;2'G(I<'I:87)I795;6695(I5'/I8'G8786'I:6)I89776'0I<997;6'I6+I;7685	NM:i:1	MD:Z:94^G103	oR:Z:1	oH:i:1	oP:i:4486	oS:A:R	X [...]
-simulated.488	16	1	6006	255	138M1D36M1I15M	*	0	0	TTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCTTTCTATCTCTTGTCATTCTACCACAGGGTGCAGTATCGATGTACATCG	(I4676554',>I3'/I6&).:II7;<146417830(I(I1='H59;'/I356476<7679:856'I487:7;'.I3)I;86;>47(I:(I39;(I2893',6II4&+9I586(I489'1I+I8438466>9>78(I5*7I(3I<979765'I86;9)I2%9,I77:'0I942:(85245799<787657	NM:i:4	MD:Z:138^C22A0C27	oR:Z:1	oH:i:1	oP:i:6005	oS:A:R	XE:i: [...]
-simulated.489	0	2	159	255	3M1I56M1D18M1D4M1I106M	*	0	0	ATAGTTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTCGTCCTGGTTTGTCCCCACAACTCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTA	979'I)I'95I:+&I(;86I)I/'I)I(55F'7I/'H'9882H'5I(=I*F'7576<753D79;I(4G'I-&6;I=,'C<I'(:H'H'56698I.&I'92:69698595<:8I(75I)I-&328;I)47I(87I)5;69;887:4776=563I);3=4309305959I/'H'I'95<7558G'I)I)84	NM:i:4	MD:Z:59^T18^A110	oR:Z:2	oH:i:1	oP:i:158	oS:A:F	XE: [...]
-simulated.490	0	1	3893	255	60M1I62M1D45M1D48M	*	0	0	AAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCGATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTT	I.'9762239 at I(I'5I):837;:895449I1':559G'1957H'88I.'::I(I/'=68'<85765H'I(8::6<9<6;7723I4)8I'6:G'<338I)7939773I(>H'83I':7<7957I,I=,'6I)8776:9759I(37I/'I>,'5A958;I/'I(9F&I(B9:691579I0'I(7463I/'932I(I(I(I'65:7F&:6978F'6I'	NM:i:3 [...]
-simulated.491	0	1	7198	255	16M1D195M	*	0	0	GCGCGTGTAGTCTCCTGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTG	3;:5878:3978<I(5D496I0'<6;4H'45;I'6:<I(:H'I'989I(6:67379<49<=I:+&98G'8I(98=94563H'H'59I)50I8*&I'85693I*4H'76I.&74AI(76:G'I0'85I2(764H':683I):45:I(8:346786I(7;7946755I1(79374I(5995578I9+&:>7I'6I'419I0';69977I'H'6	NM:i:1	MD:Z:16^G195	oR:Z: [...]
-simulated.492	0	1	3563	255	27M1D21M1D103M1I16M1I20M	*	0	0	GTTCATTGCTCGATTAATTGGTATTCGTTGTGATTCCGGCCTGAGATCGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGTATGATTAACCACAAACGACCTTTGGGTTGCCTACCCG	:I)58I(8<>884G'I(I'I(69I(<?I,2655I(I(I(G'=8;::38I+5H'6:I)58I'=I;+&:62895I'89:7E&87I)769:759I):4;I(9I(I9*&61I)3I(;85G'I-&I at -'65697I(I(2:7I(6:365;9I(9:G'&5;79I(G'I)2:I,&4'6H'I2(I/'I)6F'<;I/'5	NM:i:4	MD:Z:27^T21^G139	oR:Z:1	oH:i:1	oP:i:3562	oS:A:F [...]
-simulated.493	0	1	7021	255	104M1D100M	*	0	0	TGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATC	9I)H'9I-&I'85I(55I9*&I)7::34821;87::I):7IG0)%I-&;I(7657=8I(4378I)78976I(5I(172956>98H'4;F'88:6I(38I.'7F'I,99G'9=I(I(=I0'I/'797I(9I(:7<8G'2:I(8898949567I'I/'4I1(9478I)I(99536:887:;57868:6397I):G'697I.&;<98	NM:i:1	MD:Z:104^T100	oR:Z:1	oH:i:1	oP: [...]
+simulated.486	0	1	975	255	42M1D78M1D26M1I54M	*	0	0	TATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGCATTAGCTGCGTACATCGGTTTGCGACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAG	737<8776:5:58F&9I/'66I(5G'I-&:8768E&I.&I)9I,5794I+2I0'8:6643I,&68<858;I*54I(1I)5;75<F'I(94839:6F'77I?-'36I(99764I.&9I(::I,94I(B:566<:97@::8H'I0'94%<;65;I)87I)9?;34?98I>,'I(68:88:788:;54F'6F&79541<75:56	NM:i:3	MD:Z:42C78G80	oR:Z:1	oH:i:1	oP [...]
+simulated.487	16	1	4487	255	94M1D103M	*	0	0	ATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACAT	<7'.I4'0I(1I'I7',>I2785'I5(I;83;995293'/I<'H35(I'H73468;'G84'H;72:8844'1I8(I757722:(I;93:;<2(ID9='I6'/I;:38'G:68=4>6:176'I(1I61<(1I4;2'G(I<'I:87)I795;6695(I5'/I8'G8786'I:6)I89776'0I<997;6'I6+I;7685	NM:i:1	MD:Z:94G103	oR:Z:1	oH:i:1	oP:i:4486	oS:A:R	XE [...]
+simulated.488	16	1	6006	255	138M1D36M1I15M	*	0	0	TTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCTTTCTATCTCTTGTCATTCTACCACAGGGTGCAGTATCGATGTACATCG	(I4676554',>I3'/I6&).:II7;<146417830(I(I1='H59;'/I356476<7679:856'I487:7;'.I3)I;86;>47(I:(I39;(I2893',6II4&+9I586(I489'1I+I8438466>9>78(I5*7I(3I<979765'I86;9)I2%9,I77:'0I942:(85245799<787657	NM:i:4	MD:Z:138C22AC27	oR:Z:1	oH:i:1	oP:i:6005	oS:A:R	XE:i:4	 [...]
+simulated.489	0	2	159	255	3M1I56M1D18M1D4M1I106M	*	0	0	ATAGTTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTCGTCCTGGTTTGTCCCCACAACTCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTA	979'I)I'95I:+&I(;86I)I/'I)I(55F'7I/'H'9882H'5I(=I*F'7576<753D79;I(4G'I-&6;I=,'C<I'(:H'H'56698I.&I'92:69698595<:8I(75I)I-&328;I)47I(87I)5;69;887:4776=563I);3=4309305959I/'H'I'95<7558G'I)I)84	NM:i:4	MD:Z:59T18A110	oR:Z:2	oH:i:1	oP:i:158	oS:A:F	XE:i: [...]
+simulated.490	0	1	3893	255	60M1I62M1D45M1D48M	*	0	0	AAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCGATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTT	I.'9762239 at I(I'5I):837;:895449I1':559G'1957H'88I.'::I(I/'=68'<85765H'I(8::6<9<6;7723I4)8I'6:G'<338I)7939773I(>H'83I':7<7957I,I=,'6I)8776:9759I(37I/'I>,'5A958;I/'I(9F&I(B9:691579I0'I(7463I/'932I(I(I(I'65:7F&:6978F'6I'	NM:i:3 [...]
+simulated.491	0	1	7198	255	16M1D195M	*	0	0	GCGCGTGTAGTCTCCTGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTG	3;:5878:3978<I(5D496I0'<6;4H'45;I'6:<I(:H'I'989I(6:67379<49<=I:+&98G'8I(98=94563H'H'59I)50I8*&I'85693I*4H'76I.&74AI(76:G'I0'85I2(764H':683I):45:I(8:346786I(7;7946755I1(79374I(5995578I9+&:>7I'6I'419I0';69977I'H'6	NM:i:1	MD:Z:16G195	oR:Z:1 [...]
+simulated.492	0	1	3563	255	27M1D21M1D103M1I16M1I20M	*	0	0	GTTCATTGCTCGATTAATTGGTATTCGTTGTGATTCCGGCCTGAGATCGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGTATGATTAACCACAAACGACCTTTGGGTTGCCTACCCG	:I)58I(8<>884G'I(I'I(69I(<?I,2655I(I(I(G'=8;::38I+5H'6:I)58I'=I;+&:62895I'89:7E&87I)769:759I):4;I(9I(I9*&61I)3I(;85G'I-&I at -'65697I(I(2:7I(6:365;9I(9:G'&5;79I(G'I)2:I,&4'6H'I2(I/'I)6F'<;I/'5	NM:i:4	MD:Z:27T21G139	oR:Z:1	oH:i:1	oP:i:3562	oS:A:F	X [...]
+simulated.493	0	1	7021	255	104M1D100M	*	0	0	TGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATC	9I)H'9I-&I'85I(55I9*&I)7::34821;87::I):7IG0)%I-&;I(7657=8I(4378I)78976I(5I(172956>98H'4;F'88:6I(38I.'7F'I,99G'9=I(I(=I0'I/'797I(9I(:7<8G'2:I(8898949567I'I/'4I1(9478I)I(99536:887:;57868:6397I):G'697I.&;<98	NM:i:1	MD:Z:104T100	oR:Z:1	oH:i:1	oP:i [...]
 simulated.494	16	1	1834	255	193M	*	0	0	CCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCT	'I(I177&+:I8799)I?(I'I(I<'I:44'I;8:='G'F<<9;3456A7;'H(I:31(I'1I9(I:<='I:9:43(I69(I(I=<5)I<59(I8999;)I8'I=(I9/:(I844)I;6=5=7;6'G;86=&+<I86'I85?<8;<3'I7'H7&-I'/I777>6(I9.<:(I>(I50:;;&*2II71(I1796	NM:i:0	MD:Z:193	oR:Z:1	oH:i:1	oP:i:1833	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.495	16	1	8391	255	47M1I79M1D6M1I64M	*	0	0	GCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCGACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGTGGCTCGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGTCTTC	5/39753;)I:;)I553(I7>4:5494:5'I7674(I'I;6)I6768&<)I6;'H86:65)I7:6'H96768'I'I87>48;'I)I(3I:85(2I99)I67)I46389687;47956*I3589(I:;D4)I1:&'H4&.I7<86'I2(I3;9:486)I'G84;<3(I'H'+4II<4A7&+;I56'F22;7'0I&6+I:	NM:i:5	MD:Z:126^G65C0T3	oR:Z:1	oH:i:1	oP:i [...]
+simulated.495	16	1	8391	255	47M1I79M1D6M1I64M	*	0	0	GCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCGACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGTGGCTCGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGTCTTC	5/39753;)I:;)I553(I7>4:5494:5'I7674(I'I;6)I6768&<)I6;'H86:65)I7:6'H96768'I'I87>48;'I)I(3I:85(2I99)I67)I46389687;47956*I3589(I:;D4)I1:&'H4&.I7<86'I2(I3;9:486)I'G84;<3(I'H'+4II<4A7&+;I56'F22;7'0I&6+I:	NM:i:5	MD:Z:126G65CT3	oR:Z:1	oH:i:1	oP:i:8 [...]
 simulated.496	0	1	5024	255	199M	*	0	0	TAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATC	1I(74I(43I1'5II</)&7I<+&I':992879=I):73I/'67I(785I(9378=I)94I(669:I)859826829I)44695E&:28I(64G'I(7I/'3I)876887II;/)&=?9<981989H':36?I0'5;9I)6I(7<@5I(3=9:I;+&7I(I1'<38H'635I*I)87I'E&I.&758I0'I'G'<;99<	NM:i:0	MD:Z:199	oR:Z:1	oH:i:1	oP:i:5023	oS:A:F	XE:i:0	 [...]
-simulated.497	0	1	6839	255	84M1D47M1I67M1D13M	*	0	0	CCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTAGTTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGAACGTGCACG	I)F&0I,&6G'761953I)669I(98I/'6:64G'I'I,&47I'F'7H'7I(8:H'326G'87H'7I'H'6777:7I'15:I/'I,H'9I-&64I0'<564:4I(9<@646<I(9<I-&?I'778::7778&I):I'1766I(I)69@:8<:8I(75:7>I0'53H'5A5F'5H':I(74<9:I'I(>I0'I);8I(36I7*I(<7564<93	NM:i:3	MD:Z:84 [...]
-simulated.498	0	1	8814	255	2M1D15M1I22M1D134M1D8M1I10M1I16M	*	0	0	TGACAGTGCTACAAGCCGAATGGAAAAAGATTCATAGCAAGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTGCCGAACGCTCATGCGTACTTCGCGGGAGATTAT	<8D97/296657I+<I(&I'>I(IG0)%95I(8;86>7G'I+9I(I0';>4I(:8798I(69I(9I1(I0'I'583699444H'9H'77I(88774<888765I<,'77I'I'I(I(H'4;:869:55G'4I(I(72F';I*28?D&G'96I(7I2(56689I(4365>078;1I,6I(5H'&469925:;3=&=F'8:7I4)607I(46	NM:i [...]
+simulated.497	0	1	6839	255	84M1D47M1I67M1D13M	*	0	0	CCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTAGTTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGAACGTGCACG	I)F&0I,&6G'761953I)669I(98I/'6:64G'I'I,&47I'F'7H'7I(8:H'326G'87H'7I'H'6777:7I'15:I/'I,H'9I-&64I0'<564:4I(9<@646<I(9<I-&?I'778::7778&I):I'1766I(I)69@:8<:8I(75:7>I0'53H'5A5F'5H':I(74<9:I'I(>I0'I);8I(36I7*I(<7564<93	NM:i:3	MD:Z:84 [...]
+simulated.498	0	1	8814	255	2M1D15M1I22M1D134M1D8M1I10M1I16M	*	0	0	TGACAGTGCTACAAGCCGAATGGAAAAAGATTCATAGCAAGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTGCCGAACGCTCATGCGTACTTCGCGGGAGATTAT	<8D97/296657I+<I(&I'>I(IG0)%95I(8;86>7G'I+9I(I0';>4I(:8798I(69I(9I1(I0'I'583699444H'9H'77I(88774<888765I<,'77I'I'I(I(H'4;:869:55G'4I(I(72F';I*28?D&G'96I(7I2(56689I(4365>078;1I,6I(5H'&469925:;3=&=F'8:7I4)607I(46	NM:i [...]
 simulated.499	16	1	2944	255	158M1I26M1I27M	*	0	0	GCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATCGTCTTCCAATTATCGTATAGCGCAAGTCGCCCACATCGCTGGGCCCCCAGATCA	8<77;'0I28'H76=;'H7(I;949747)I9'I?;8956;9'H;88652'0I9&-I8(I7)I'I'I53@(I3)I6589834;59547)I78173(I(I&E7&.I696(I871=7(I8)I(1I684:572;1'.I(I57'0I77)I',<I*I:886595&657*I'F'G&E968375648676(I3359(3I94:;;377'1I&)1II7:7578	NM:i:2	MD:Z:211 [...]
 simulated.500	16	1	1867	255	146M1I46M	*	0	0	AGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTACGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATA	79:(I)I:34443=;<:7'G)I;88(I&.I6(I47='I7876<(I8@)I'I;;;'I956(I:>=6:(I5(I9&F562(I762*I:<79:847)I:98;&+:I65'F:69957:8'H;'HC'/I&-I<:;63(I:48<'H9)I652217&*1II98)I9:676'G6956:8<@<7 at 8'H778:5(1I299'I79	NM:i:1	MD:Z:192	oR:Z:1	oH:i:1	oP:i:1866	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.501	16	1	7651	255	42M1I144M1D9M	*	0	0	CCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATCGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGCGCGGGAT	&F7'0I'H;36571288?4(I976(I74'0I>:67:&.I9:6&)I89'H759796(I'H)I47)I2>)I(I88227&E8:4(I7;=34:'G'I(I;9:'H09;6:64(I(I(I9:'/I337&+;I9'G'.I'H'H5167&F;9266(I69'.I8<3:&*2II9>'H'/I9>78:38'H:549:46<7D774&.I<4	NM:i:2	MD:Z:186^G9	oR:Z:1	oH:i:1	oP:i:7650	oS:A:R	 [...]
-simulated.502	16	1	8888	255	150M1D19M1I26M	*	0	0	GTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGATGATTGCATGTGCGTTGCAACAACCACTACAAAGGAAGCCTCGAG	:44;958;7'H6'I>8)I938;6<876656(.BI at 6'F'G'I'H(I8;5578466&F8(I)I31(I7'I87;'G(I:8'G<(2I8877:'I;353:686::'/I6(I>'I:;7877897<7(I839'.I:77)I664890'H at 67(I(I8D;5:)I<8=85;465)I79&E5(I)I;6998'/I'I'I4(I;9879	NM:i:2	MD:Z:150^A45	oR:Z:1	oH:i:1	oP:i:8887	oS:A: [...]
+simulated.501	16	1	7651	255	42M1I144M1D9M	*	0	0	CCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATCGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGCGCGGGAT	&F7'0I'H;36571288?4(I976(I74'0I>:67:&.I9:6&)I89'H759796(I'H)I47)I2>)I(I88227&E8:4(I7;=34:'G'I(I;9:'H09;6:64(I(I(I9:'/I337&+;I9'G'.I'H'H5167&F;9266(I69'.I8<3:&*2II9>'H'/I9>78:38'H:549:46<7D774&.I<4	NM:i:2	MD:Z:186G9	oR:Z:1	oH:i:1	oP:i:7650	oS:A:R	X [...]
+simulated.502	16	1	8888	255	150M1D19M1I26M	*	0	0	GTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGATGATTGCATGTGCGTTGCAACAACCACTACAAAGGAAGCCTCGAG	:44;958;7'H6'I>8)I938;6<876656(.BI at 6'F'G'I'H(I8;5578466&F8(I)I31(I7'I87;'G(I:8'G<(2I8877:'I;353:686::'/I6(I>'I:;7877897<7(I839'.I:77)I664890'H at 67(I(I8D;5:)I<8=85;465)I79&E5(I)I;6998'/I'I'I4(I;9879	NM:i:2	MD:Z:150A45	oR:Z:1	oH:i:1	oP:i:8887	oS:A:R [...]
 simulated.503	16	1	8299	255	62M1I61M1I67M	*	0	0	GCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTAGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTCGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGG	8'G;7&F;'H9:'.I485)I:'G:=477978896'I744'/I(I<89;(I398)I'I=8'.I'63<'H4;:47=<'G855(I8879552;42899764566&E<6'G:7<*I129::64969(I%3576)I'G48'H8;=8:)I77'H88563)I<8:(I5:526(I'I378::6(I'H'/I::8'.I>;)I	NM:i:2	MD:Z:190	oR:Z:1	oH:i:1	oP:i:8298	oS:A:R	XE:i:2	XS:i [...]
 simulated.504	0	1	4422	255	67M1I112M	*	0	0	GAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATACCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGC	677;8I'I(I(62I/'7;54F'64I(26238I(7II2*&25:767I(87667=347I'I'I(77649&I.'9I.'I/'I)=I;+&5557I(7I)5474<6:785I-&=H'39I(H'164768I(5:G'8635:3::I1(5H'91466?7G'4981186I(I(50I)6I/'9597I(3756	NM:i:1	MD:Z:179	oR:Z:1	oH:i:1	oP:i:4421	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.505	0	1	3174	255	203M	*	0	0	AACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTT	I'47656I(=8I'786I)I3(59I*I'7I(945I/'3;I.&I)I(I(F&7:I:+&<797I(II0)&;G'85I-&33<I>,'I)376I)<I(I9*&688I(;3815I'I(<E&9I(65I-&6-I*3483;87;28:I(<G'E&4I8*&:I(E&5698I(7;I(I(<79I.&:673I;+&9I(;;I)I(705:7I<+&G'I):I)	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:3173	oS:A:F [...]
-simulated.506	0	1	8172	255	186M1D13M	*	0	0	GGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTGTCGGTCACGA	I(;7;I'6I(I-&8737I(876:=I.'<688I*I(7:H'69997963I)5G'76I(:785:5I3(H'<6I(7359?I(6I(I(;4659:I'9;716G'59I(5<>48947;7I*I(I)I.'H'98784I)76I(6I)76I3(3::G'5H'6987969<645I*@76I0'I'9737E&:48H'I(68I,828H':69988	NM:i:1	MD:Z:186^T13	oR:Z:1	oH:i:1	oP:i:8171	oS:A: [...]
-simulated.507	0	1	8843	255	177M1D36M	*	0	0	ATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATATGATGAATGTAATTGAATGATTGCATGTGCGTTG	5I(83466:I(I3(:E&I.&89;H'5;577I'66I(<I1'I,&I)36<464765I(4I(76I)3688/964;<54I9+&:2I(I(I(I(I(6;8487855I'4H'I)7:H'8I*:<7I(I(84I)2I0'36<:8I*5=18=9568>I2(5I)<I'3669779<857F&663I0'8;6D7564<6I);17F'I(5H'649I(;<684698/G'8	NM:i:1	MD:Z:177^T36	o [...]
+simulated.506	0	1	8172	255	186M1D13M	*	0	0	GGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTGTCGGTCACGA	I(;7;I'6I(I-&8737I(876:=I.'<688I*I(7:H'69997963I)5G'76I(:785:5I3(H'<6I(7359?I(6I(I(;4659:I'9;716G'59I(5<>48947;7I*I(I)I.'H'98784I)76I(6I)76I3(3::G'5H'6987969<645I*@76I0'I'9737E&:48H'I(68I,828H':69988	NM:i:1	MD:Z:186T13	oR:Z:1	oH:i:1	oP:i:8171	oS:A:F [...]
+simulated.507	0	1	8843	255	177M1D36M	*	0	0	ATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATATGATGAATGTAATTGAATGATTGCATGTGCGTTG	5I(83466:I(I3(:E&I.&89;H'5;577I'66I(<I1'I,&I)36<464765I(4I(76I)3688/964;<54I9+&:2I(I(I(I(I(6;8487855I'4H'I)7:H'8I*:<7I(I(84I)2I0'36<:8I*5=18=9568>I2(5I)<I'3669779<857F&663I0'8;6D7564<6I);17F'I(5H'649I(;<684698/G'8	NM:i:1	MD:Z:177T36	oR [...]
 simulated.508	0	1	2166	255	55M1I98M1I29M	*	0	0	ATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCGATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAACGATTAACGTCAAAAGTCTTCTACCCACGG	3I0'I(9854G'59:479I)72I(9939;I)669I/'I(:6II9.(&9<96I8*&%086<I'/:;7<994=366494I(29I-&7:89I)755355:22774<9I)H'9<3I-&5I)2:<<4:7I(77<7456I'13;4F'<I(I;+&2I-&I)&89I(I(6695I:+&477I)4;;I/'88I(	NM:i:2	MD:Z:182	oR:Z:1	oH:i:1	oP:i:2165	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.509	0	1	6871	255	5M1D19M1I75M1D13M1I5M1I57M	*	0	0	CTTAACCTACCGGCAAGCCTACCAGTCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATCAATCTAGGTTACGCAGAGTGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGT	5I(I(I,79I(I'7I)9I*65I(3':/I)55I(6I'I)876948I(86=I0'I1'H'8I/'6;I0'7637:7I)6446416G'26I2(5I)87:48<959D;I(4769I'I);%::89C'97I'497:7I0'69I(384I(;I(>I(96778I'G'9I0'I'98H';6I:+&G'648	NM:i:5	MD:Z:5^C94^T75	oR:Z:1	oH:i:1	oP:i:6870	oS:A:F	XE:i:5	XS:i:0	XI:i:0
+simulated.509	0	1	6871	255	5M1D19M1I75M1D13M1I5M1I57M	*	0	0	CTTAACCTACCGGCAAGCCTACCAGTCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATCAATCTAGGTTACGCAGAGTGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGT	5I(I(I,79I(I'7I)9I*65I(3':/I)55I(6I'I)876948I(86=I0'I1'H'8I/'6;I0'7637:7I)6446416G'26I2(5I)87:48<959D;I(4769I'I);%::89C'97I'497:7I0'69I(384I(;I(>I(96778I'G'9I0'I'98H';6I:+&G'648	NM:i:5	MD:Z:5C94T75	oR:Z:1	oH:i:1	oP:i:6870	oS:A:F	XE:i:5	XS:i:0	XI:i:0
 simulated.510	0	1	952	255	218M	*	0	0	AGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACG	98:=:6529<4256I)77>@37I'564;7<<95:88I(8I1(85G'8I)I1(:8539I(I2(H'=I,&6:55I)1I-&;48:97I.'8976885H'39I(;I(:597;I)I(:988596I'95I?-':9I':47<6I.'<I(81I-&97I(8=6;:49584;58I(I.&=835884G'>8I(71783965I>,'I(876<7:7440669I)5I(6=4;	NM:i:0	MD:Z:218	o [...]
 simulated.511	16	1	5022	255	151M1I59M	*	0	0	AGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTACACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCC	:=9(I8=(I95&-I9&).:II:&+:I)I:5665:7:'I886&.I36(I7=<(I=579:(I:2)I7751'I8496;68<6)I97;98'I1;1(I9:&E'H5'/I9(I883764%(-8II5:738?7365)I554;'.I757'H6(I7875)I*87>;',>I8'I'0I937'I5=4)I)I36(I'I&-I>84(1I'H(I287998374543(I	NM:i:1	MD:Z:210	oR:Z:1	o [...]
 simulated.512	0	1	5781	255	61M1I98M1I52M	*	0	0	GGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATAGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTACCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGT	H'7:I'7486:9643I(I'79I)I'7I)795C:4727;I':9>7I(;947>:;4687I(65&788 at I)69I)I)566G';8:799;;76877I(9;I'6H'48I(8I-&82I'I/'98I0'6568F&876;478I.&I(I8*&67I/'><7I:+&8I(I(&I)I'517:79469I'4686I'6I)5I(9I(9I0'65I'G';57778I(679<	NM:i:2	MD:Z:211	o [...]
-simulated.513	0	1	148	255	91M1D24M1I13M1I15M1I30M1I17M1I15M	*	0	0	CGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGTAGCCGGCACCGGCCCGGCGTAACAGCGGGAGTAGCCATACACTTCTGGTCAATCGCTTATTAAGGAATTTTCGACAATGTCCCGATCTATAATCTGGTACGCACAAAATCATC	99I(I);:I0'<:5957I'I-&78I(687654I+81=9I'7I'::I*I)99I'I(2G'578437673I(3I(1H'I(580G'I)<8876I'II6,(754I'H'2<I'I(I2(I*8'9I'9:38I/'577)1I(:<4@<<I*73I(&3I'8587G'8I(G'I(I(I;+&=:77I)47'I/'98=>886I)<5:H'%966261I<,'46599	NM:i [...]
-simulated.514	16	2	49	255	43M1D135M1D15M	*	0	0	AGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATC	4)I'I65764'.I54(I9657'I57=335:85(I6986A<567D8(I(I598'I(I5>:78<5398(I2&.I;>(I(I'0I:5:74497'1I:7:443(I4&-I8'H73:;8)I)I<9&+9I'I;2:(I'0I'F'I79(I9'1I(I66:;(I6&E5(I'I6:826847'G976'I6(I,I:7',=I'H:'I89	NM:i:2	MD:Z:43^G135^T15	oR:Z:2	oH:i:1	oP:i:48	oS:A:R	XE:i [...]
+simulated.513	0	1	148	255	91M1D24M1I13M1I15M1I30M1I17M1I15M	*	0	0	CGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGTAGCCGGCACCGGCCCGGCGTAACAGCGGGAGTAGCCATACACTTCTGGTCAATCGCTTATTAAGGAATTTTCGACAATGTCCCGATCTATAATCTGGTACGCACAAAATCATC	99I(I);:I0'<:5957I'I-&78I(687654I+81=9I'7I'::I*I)99I'I(2G'578437673I(3I(1H'I(580G'I)<8876I'II6,(754I'H'2<I'I(I2(I*8'9I'9:38I/'577)1I(:<4@<<I*73I(&3I'8587G'8I(G'I(I(I;+&=:77I)47'I/'98=>886I)<5:H'%966261I<,'46599	NM:i [...]
+simulated.514	16	2	49	255	43M1D135M1D15M	*	0	0	AGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATC	4)I'I65764'.I54(I9657'I57=335:85(I6986A<567D8(I(I598'I(I5>:78<5398(I2&.I;>(I(I'0I:5:74497'1I:7:443(I4&-I8'H73:;8)I)I<9&+9I'I;2:(I'0I'F'I79(I9'1I(I66:;(I6&E5(I'I6:826847'G976'I6(I,I:7',=I'H:'I89	NM:i:2	MD:Z:43G135T15	oR:Z:2	oH:i:1	oP:i:48	oS:A:R	XE:i:2 [...]
 simulated.515	16	1	2970	255	53M1I113M	*	0	0	CTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGTAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACA	;4'I7(I984<7=<1(I><<671'/I6'/I7'G6(I(I&E5:2(I3(I0:?87&3987?792&E419:9(I'F'I5'0I9:6)I64:;6'I5(I(1I4177<?3:5'.I)I:5'.I66*I&+;I(I<4799:6<67(I(I(I'I033?546;95;3'H<69&-I:44	NM:i:1	MD:Z:166	oR:Z:1	oH:i:1	oP:i:2969	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.516	16	1	6620	255	88M1I99M	*	0	0	CGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAACGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCG	::54'I89=:635'G:535'G&.I<'I238)I'I'H3<8'I&.I533;37=45867:'I'I95=6=778964=;'H7)I'H4;87:'F&78:38(I57&+;I8'0I<=6(1I:'+3II6><)I(I5:8;8(I(I9656(I;6)I4:7&+:I99:(I7)I?16)I'H'G(I253'I(I9'- at I,I7)I5	NM:i:1	MD:Z:187	oR:Z:1	oH:i:1	oP:i:6619	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.517	0	1	8549	255	2M1I15M1I51M1D129M	*	0	0	GACTCATCCGGCCCCCGCGTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAG	;4%>?77I(H'II2*&5;(;;I8*&79I(:669I0';I0'4H'4I'8725I*:I)864I)8I(8=9I=,'I+I'572:7I<,'4646:69I1(::35763776845I(5I)6:5I(7G'897I1(7I)5I(::I(778H'I(I'577I:+&I)66I1'I(I.&I(4I(I.'I.&I(I3(5<4;:4196I/':I(66G'6	NM:i:3	MD:Z:68^C129	oR:Z:1	oH:i:1	oP:i:8 [...]
+simulated.517	0	1	8549	255	2M1I15M1I51M1D129M	*	0	0	GACTCATCCGGCCCCCGCGTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAG	;4%>?77I(H'II2*&5;(;;I8*&79I(:669I0';I0'4H'4I'8725I*:I)864I)8I(8=9I=,'I+I'572:7I<,'4646:69I1(::35763776845I(5I)6:5I(7G'897I1(7I)5I(::I(778H'I(I'577I:+&I)66I1'I(I.&I(4I(I.'I.&I(I3(5<4;:4196I/':I(66G'6	NM:i:3	MD:Z:68C129	oR:Z:1	oH:i:1	oP:i:85 [...]
 simulated.518	16	1	5968	255	70M1I30M1I92M	*	0	0	AACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGTACATCCGGCGTTATGAAACTGTACAGTACAGTACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTT	(I5'.I2;(I(I;=:96;)I87683:9;'/I9(I)I9'0I69:76<7&+;I6&,I7%(-8II61:::7=7'5;<<(I)I9;'H4<4&-I7989?3759>4<);56)I6:8678&.I:&E:;6::74*I6'I8=4'H;6;8'+4II7',>I496'H987'/I'I64453<3;3>87'H:',=I&.I7;4<668'H	NM:i:2	MD:Z:192	oR:Z:1	oH:i:1	oP:i:5967	oS:A:R	XE:i:2	 [...]
 simulated.519	0	1	7452	255	145M1I40M	*	0	0	GGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTACTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCG	I'26I)I*:7559?I2(I0'686D775I'6>I)6I-&H'I(97I(H'6:77<;579I/';667I(I/':6I0'G'I-&8;G'I(H'H'5:2587I(17H'I'548?I'96675H'7I(2H'I(457I(366I'82I)9I'I)5I('899999<775I(;967775;I(5594F&>I(H'99362>7	NM:i:1	MD:Z:185	oR:Z:1	oH:i:1	oP:i:7451	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.520	0	1	1168	255	15M1I35M1I140M	*	0	0	CGTATACAGACTAGCGTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGACCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCA	9:57899485:;897'56I:+&F&7686535:I)47I)8I(8;I:+&78:6%I(628I'8387=<6I(37I'6I(H';8I(81<8I1'57H'I(4I>,'I(9F'/<8;=9I(93I(748I(733I(4<89G'I1'7G'3I/'I.'1I/'7I(6I';47G'I:+&12;;9=8457H'?I(I(<5H'I/'9:64	NM:i:2	MD:Z:190	oR:Z:1	oH:i:1	oP:i:1167	oS:A:F	XE:i:2	XS:i [...]
-simulated.521	16	2	5	255	87M1I72M1D27M	*	0	0	AACCATTTATAACTCGTTTGGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGCGTTTTAACTGTCCGGTTAAGAGGTG	(I'H3'/I-5(I9884'.I)I:487659(I'I5'/I27;7?5:94(I&E77581'1I73(I8:13'H?36557;:8(I9873<449:&-I7(I(I9;4)I(I<:77883569(I7'0I95)I'H&-I797::938'0I:<6685(I9'.I3(I89;8>)ID64'-?I(I:8:'(I,I(I(I38(I18	NM:i:4	MD:Z:159^G12C1G12	oR:Z:2	oH:i:1	oP:i:4	oS:A:R	XE:i:4	XS:i:0	XI:i:0
-simulated.522	0	1	342	255	57M1D122M	*	0	0	CACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCA	674I:+&95;68I'I/'417I(9I(1I)6I.&966;;65;IG0)%8I'G';877I1'I+495<798848I(I*I-&8984;:76;I/'I(356H'39I)<4I.&I'746<77;I'847I'7742:8I(78<1:=787I':6I'4I)I)I)29I8*&576:4:7I(:;I(I<,'986I'4	NM:i:1	MD:Z:57^C122	oR:Z:1	oH:i:1	oP:i:341	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.523	0	2	1	255	30M1I120M1D44M	*	0	0	CGCAAACCATTTATAACTCGTTTGGACTCACGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTT	9<8I2(I)<I2(16I*896>I0'I(89723*65I(I'9I.'484429768H'I(48<:6I/'46I(:987G'6978875;6I(;4:6:3985H'7G'I(599I(H':499883768I(5I4)78I)I'I2(3:::554:I.&75;95;G'9I+3I(5777<I'I(14I<,'H'568F'I-&F'I(39I'7I/'I'	NM:i:2	MD:Z:150^C44	oR:Z:2	oH:i:1	oP:i:0	oS:A:F	XE:i:2	 [...]
-simulated.524	16	1	5011	255	123M1D42M1D14M	*	0	0	CCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCAGGAAATCACC	(I377:8;4'G967'H48)I;5'1I6&)/:II6',>I'I:5:56946'I57='0I<:(I372(I24;78*I88'I9587(I4::5?77;8(I64864(I;8;(I7;(I(I7'.I2(I:24698(,6II29;4<74;4;'G4595'0I6<4(I5(I;9;9(I367:*6I:(I'.I<7;'I	NM:i:2	MD:Z:123^C42^C14	oR:Z:1	oH:i:1	oP:i:5010	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.525	16	2	136	255	139M1D18M1I27M	*	0	0	TCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCTTTGACTAATATTACAAGTCTATATGCATGTCTACTTATAGCGCG	595'/I9878:6'G4(2I9(I;998:'G(I;8&,<I'H475(I(3I(I(I55(I='1I&F64:7)I7'G1'I)I6<46;=8;(I<75(I9(I'0I77',=I)I6'I8(I'G:74A4&.I(I83474762:779:9'F97D'.I8.;5'I99(I67(I%981:6:438357>6242'G6:5;4::0	NM:i:2	MD:Z:139^C45	oR:Z:2	oH:i:1	oP:i:135	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.521	16	2	5	255	87M1I72M1D27M	*	0	0	AACCATTTATAACTCGTTTGGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGCGTTTTAACTGTCCGGTTAAGAGGTG	(I'H3'/I-5(I9884'.I)I:487659(I'I5'/I27;7?5:94(I&E77581'1I73(I8:13'H?36557;:8(I9873<449:&-I7(I(I9;4)I(I<:77883569(I7'0I95)I'H&-I797::938'0I:<6685(I9'.I3(I89;8>)ID64'-?I(I:8:'(I,I(I(I38(I18	NM:i:4	MD:Z:159G12C1G12	oR:Z:2	oH:i:1	oP:i:4	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.522	0	1	342	255	57M1D122M	*	0	0	CACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCA	674I:+&95;68I'I/'417I(9I(1I)6I.&966;;65;IG0)%8I'G';877I1'I+495<798848I(I*I-&8984;:76;I/'I(356H'39I)<4I.&I'746<77;I'847I'7742:8I(78<1:=787I':6I'4I)I)I)29I8*&576:4:7I(:;I(I<,'986I'4	NM:i:1	MD:Z:57C122	oR:Z:1	oH:i:1	oP:i:341	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.523	0	2	1	255	30M1I120M1D44M	*	0	0	CGCAAACCATTTATAACTCGTTTGGACTCACGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTT	9<8I2(I)<I2(16I*896>I0'I(89723*65I(I'9I.'484429768H'I(48<:6I/'46I(:987G'6978875;6I(;4:6:3985H'7G'I(599I(H':499883768I(5I4)78I)I'I2(3:::554:I.&75;95;G'9I+3I(5777<I'I(14I<,'H'568F'I-&F'I(39I'7I/'I'	NM:i:2	MD:Z:150C44	oR:Z:2	oH:i:1	oP:i:0	oS:A:F	XE:i:2	X [...]
+simulated.524	16	1	5011	255	123M1D42M1D14M	*	0	0	CCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCAGGAAATCACC	(I377:8;4'G967'H48)I;5'1I6&)/:II6',>I'I:5:56946'I57='0I<:(I372(I24;78*I88'I9587(I4::5?77;8(I64864(I;8;(I7;(I(I7'.I2(I:24698(,6II29;4<74;4;'G4595'0I6<4(I5(I;9;9(I367:*6I:(I'.I<7;'I	NM:i:2	MD:Z:123C42C14	oR:Z:1	oH:i:1	oP:i:5010	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.525	16	2	136	255	139M1D18M1I27M	*	0	0	TCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCTTTGACTAATATTACAAGTCTATATGCATGTCTACTTATAGCGCG	595'/I9878:6'G4(2I9(I;998:'G(I;8&,<I'H475(I(3I(I(I55(I='1I&F64:7)I7'G1'I)I6<46;=8;(I<75(I9(I'0I77',=I)I6'I8(I'G:74A4&.I(I83474762:779:9'F97D'.I8.;5'I99(I67(I%981:6:438357>6242'G6:5;4::0	NM:i:2	MD:Z:139C45	oR:Z:2	oH:i:1	oP:i:135	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.526	16	1	7630	255	166M1I22M	*	0	0	CAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGACTTACGGGATAGCCCCCTGCCTT	6;:65;689:6(I(1I7(I9;(I6'1I'I628<24:4045(I689(I99(2I<2;88&-I6<6'H77(I:69596'I'G)I78(I63'I(I:6<35(I868(I967;33*I(I(I858'G7938;99(I'I)I98'0I775'-?I6'G&-I'I(I794:(I7=6;4&(I:5&-I8;97&*1II77'H)I	NM:i:1	MD:Z:188	oR:Z:1	oH:i:1	oP:i:7629	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.527	0	1	1307	255	148M1D30M1I38M	*	0	0	ATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTGCCGGCCCGCACAGGCAGTACAAAGTGACGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGC	9I1'7I/'5I(9I(<87I(I8*&;8;5748247I(7I)I(78I'I-&4;895;:I,&56H';7H'5I-&1I'9.F&I+99<9696547593I(7688779=3I:+&7I(7I)7:I'3I0'774777I(4I(;5685:H'=>86H'I(5I,;I)F'I0'75878H'8>6749I1'8:87&;4I(I(:I'G':6;896368776=915I(I2(728<57	NM:i:2	M [...]
-simulated.528	16	1	3857	255	72M1I11M1D74M1D9M1I62M	*	0	0	TGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATCGCCTATATTGCTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAACCCCGCCGACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCG	1<9997)I6(I<(I87<8778(I7(I;;<:698&)/;II5653464;&F(I5*I748:09:2:87:(1I6:7%9(I8282&D?4,I89)I&.I78:6759:<+I)I7;763;7787;58'/I>'I58(I<6;9(I5799669'I8(I5<(I2874888,I&*8I;'I&647=88899(I81&.I&+;I3=1786&-I(I8'H'F [...]
-simulated.529	16	2	118	255	30M1D144M	*	0	0	AGGGTCTTGGCCCGTATCTCTGGGTCTACGTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACA	7'1I65(I'H(2I<;:59=65'.I59695:B4'.I9(I9<<65'I'G57'- at I)I:51(I'0I)I&D88'H6'0I'I33<6(I6+I9)I'I3:8<7354*I;98'I5'H(1I>6'-?I(I3'I9'H'G75;=7'0I(I3<3843/<527;84(I:9)I&-I858:'I9;)I697	NM:i:1	MD:Z:30^T144	oR:Z:2	oH:i:1	oP:i:117	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.530	0	1	6088	255	18M1D30M1I153M1I1M	*	0	0	TCAGCCGCCATGCCGCTGTTTTCGGGGTCACCATGTTTCCTAGCTACACGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTAG	<603I)5I)>69I(3<;:ID.(@I=,':8;I(;44I3(F&34797:98%7<78I(8IC.(I/'585 at 3A5I(4967I)38I2(4;:I/'579:5<6<6689997892;H';42I(>7=I(<5I(7I-&>?:6;6I'8:<79889852556I/'696H'8836>55I/'668;86I1'57979I/'6I'67I9*&:I'I5)39%<	NM:i:3	MD:Z:18^T184	oR:Z:1	oH: [...]
-simulated.531	16	1	6461	255	19M1I161M1D6M	*	0	0	ACCGTGTTATAGTAGCGGTACATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCATTG	6)I75;(I4:76:8;9(I6%5:2'H66'H'H8777679;56479(I766'G6<65:87'/I847:;43'H;8<85666965'I86<7877(I7)I57673:'.I43(I'H5(I:(I2469'G693=&*1II'0I8'H49898:8'H)I'H5'H<(I8784;647+I3877554(I7:78'G,I4(I8	NM:i:2	MD:Z:180^C6	oR:Z:1	oH:i:1	oP:i:6460	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.527	0	1	1307	255	148M1D30M1I38M	*	0	0	ATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTGCCGGCCCGCACAGGCAGTACAAAGTGACGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGC	9I1'7I/'5I(9I(<87I(I8*&;8;5748247I(7I)I(78I'I-&4;895;:I,&56H';7H'5I-&1I'9.F&I+99<9696547593I(7688779=3I:+&7I(7I)7:I'3I0'774777I(4I(;5685:H'=>86H'I(5I,;I)F'I0'75878H'8>6749I1'8:87&;4I(I(:I'G':6;896368776=915I(I2(728<57	NM:i:2	M [...]
+simulated.528	16	1	3857	255	72M1I11M1D74M1D9M1I62M	*	0	0	TGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATCGCCTATATTGCTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAACCCCGCCGACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCG	1<9997)I6(I<(I87<8778(I7(I;;<:698&)/;II5653464;&F(I5*I748:09:2:87:(1I6:7%9(I8282&D?4,I89)I&.I78:6759:<+I)I7;763;7787;58'/I>'I58(I<6;9(I5799669'I8(I5<(I2874888,I&*8I;'I&647=88899(I81&.I&+;I3=1786&-I(I8'H'F [...]
+simulated.529	16	2	118	255	30M1D144M	*	0	0	AGGGTCTTGGCCCGTATCTCTGGGTCTACGTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACA	7'1I65(I'H(2I<;:59=65'.I59695:B4'.I9(I9<<65'I'G57'- at I)I:51(I'0I)I&D88'H6'0I'I33<6(I6+I9)I'I3:8<7354*I;98'I5'H(1I>6'-?I(I3'I9'H'G75;=7'0I(I3<3843/<527;84(I:9)I&-I858:'I9;)I697	NM:i:1	MD:Z:30T144	oR:Z:2	oH:i:1	oP:i:117	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.530	0	1	6088	255	18M1D30M1I153M1I1M	*	0	0	TCAGCCGCCATGCCGCTGTTTTCGGGGTCACCATGTTTCCTAGCTACACGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTAG	<603I)5I)>69I(3<;:ID.(@I=,':8;I(;44I3(F&34797:98%7<78I(8IC.(I/'585 at 3A5I(4967I)38I2(4;:I/'579:5<6<6689997892;H';42I(>7=I(<5I(7I-&>?:6;6I'8:<79889852556I/'696H'8836>55I/'668;86I1'57979I/'6I'67I9*&:I'I5)39%<	NM:i:3	MD:Z:18T184	oR:Z:1	oH:i [...]
+simulated.531	16	1	6461	255	19M1I161M1D6M	*	0	0	ACCGTGTTATAGTAGCGGTACATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCATTG	6)I75;(I4:76:8;9(I6%5:2'H66'H'H8777679;56479(I766'G6<65:87'/I847:;43'H;8<85666965'I86<7877(I7)I57673:'.I43(I'H5(I:(I2469'G693=&*1II'0I8'H49898:8'H)I'H5'H<(I8784;647+I3877554(I7:78'G,I4(I8	NM:i:2	MD:Z:180C6	oR:Z:1	oH:i:1	oP:i:6460	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.532	0	2	92	255	191M	*	0	0	GGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGAC	G'5I'I'2;=I(I'96785157:6I(7I1'3:I*G'I/'==9=:278I2(>;5756I):I0'9I)6>367G'I(77I<,&I(677I'I.&H'H'=7I(8I1(I(5:14I(;I(:H'G'9639:7;;G'77:I(6I)I/'>>I:+&I(8H'9I(H'5:779I-&I)1A30529;877786I':6I(I0':8:	NM:i:0	MD:Z:191	oR:Z:2	oH:i:1	oP:i:91	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.533	0	2	159	255	41M1I126M1D30M	*	0	0	ATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACGTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAACCAATCATCTCTTCCGGTAGTCAGCGAA	978I)I(24I9*&I(767I(I2(I(I(85H'8I5)I(;67;&I)4H'7I'I)9=585989H':56I);I(I/'85I=,'I'7G'6I)I*96983I.'E&37=83:968779=4I(69H'I/'1466I)98H'76F&7:?64@:83:8647669I*6:8;6888<=937I,H'I(4<025:3I*I(I(>45;83954I(	NM:i:2	MD:Z:167^A30	oR:Z:2	oH:i:1	oP:i:158	oS:A [...]
-simulated.534	0	1	6519	255	55M1I44M1I21M1D77M1D10M	*	0	0	AATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTAGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACGTGCGTATTGCATGAGCCAGATACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAAGCT	I(7;:8825I'6<88;888997H'9:45289I)7I(99>5<9I.'89I)G'7H'7'G'95B9I(5:7:II3+&I/'6F'6688585I*I'E&1G'4I(35(959646H'4766937I(7474BI1'=I(852H'H'I)665I(I2(;?6:6347:369<I'I(8=62375934575G'9I)I(646;9I';5717I(36I6)6I/';65	NM:i:4	MD:Z:120 [...]
-simulated.535	16	1	8555	255	32M1I51M1I68M1D36M	*	0	0	CCGGCCCCCGCTCAAAATACCATCAGGGCTTTACGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCGAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGA	(I'F&)0II7=99',=I61(I5977(2I:'0I'<'I2(I57<5(I8(I689(I9(I6:3&*8I&-I'I55:;2&,<I3:59775)'.I7;888=<68;;:7)I9(I366(I1(I7:1'0I3*I8(I96(I7:8'I'H'I:89&*8I(I89(1IB&-I'H8)I'/I(1I'I'0I8;6787:28(2I7(I4	NM:i:3	MD:Z:151^T36	oR:Z:1	oH:i:1	oP:i:8554	oS:A:R	XE:i:3	X [...]
-simulated.536	0	1	2659	255	6M1I97M1D111M	*	0	0	TCCTGACTACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGC	6I(5==&969H'5;89I(74965666;83<:G'499H'892776543>I':I)85::567766:;I)5I:+&88I/';I0'I<,'71I(:?8I1'I'78:<689B85I(I)/I;+&885669I(67I'I-&I(3:958649I<+&6I(8I<+&5I2(8766I(7=55:887559<:I8*&66II2*&=<5<9;I(782I(559I*7683;H'I(=	NM:i:2	MD:Z:1 [...]
+simulated.533	0	2	159	255	41M1I126M1D30M	*	0	0	ATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACGTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAACCAATCATCTCTTCCGGTAGTCAGCGAA	978I)I(24I9*&I(767I(I2(I(I(85H'8I5)I(;67;&I)4H'7I'I)9=585989H':56I);I(I/'85I=,'I'7G'6I)I*96983I.'E&37=83:968779=4I(69H'I/'1466I)98H'76F&7:?64@:83:8647669I*6:8;6888<=937I,H'I(4<025:3I*I(I(>45;83954I(	NM:i:2	MD:Z:167A30	oR:Z:2	oH:i:1	oP:i:158	oS:A: [...]
+simulated.534	0	1	6519	255	55M1I44M1I21M1D77M1D10M	*	0	0	AATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTAGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACGTGCGTATTGCATGAGCCAGATACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAAGCT	I(7;:8825I'6<88;888997H'9:45289I)7I(99>5<9I.'89I)G'7H'7'G'95B9I(5:7:II3+&I/'6F'6688585I*I'E&1G'4I(35(959646H'4766937I(7474BI1'=I(852H'H'I)665I(I2(;?6:6347:369<I'I(8=62375934575G'9I)I(646;9I';5717I(36I6)6I/';65	NM:i:4	MD:Z:120 [...]
+simulated.535	16	1	8555	255	32M1I51M1I68M1D36M	*	0	0	CCGGCCCCCGCTCAAAATACCATCAGGGCTTTACGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCGAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGA	(I'F&)0II7=99',=I61(I5977(2I:'0I'<'I2(I57<5(I8(I689(I9(I6:3&*8I&-I'I55:;2&,<I3:59775)'.I7;888=<68;;:7)I9(I366(I1(I7:1'0I3*I8(I96(I7:8'I'H'I:89&*8I(I89(1IB&-I'H8)I'/I(1I'I'0I8;6787:28(2I7(I4	NM:i:3	MD:Z:151T36	oR:Z:1	oH:i:1	oP:i:8554	oS:A:R	XE:i:3	XS [...]
+simulated.536	0	1	2659	255	6M1I97M1D111M	*	0	0	TCCTGACTACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGC	6I(5==&969H'5;89I(74965666;83<:G'499H'892776543>I':I)85::567766:;I)5I:+&88I/';I0'I<,'71I(:?8I1'I'78:<689B85I(I)/I;+&885669I(67I'I-&I(3:958649I<+&6I(8I<+&5I2(8766I(7=55:887559<:I8*&66II2*&=<5<9;I(782I(559I*7683;H'I(=	NM:i:2	MD:Z:1 [...]
 simulated.537	16	1	3755	255	80M1I106M	*	0	0	ATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTAGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCT	687:3'1I48&.I(I6(2I86(I<679877(I6*I5>89'.I9:'I(I:56(I5887>7969;=<>=476:96:'0I(I?&2;7'G894'I(1I(I8'G9256485:<7(I7(I3)I78;67=8)I>(I:479<96&)/:II46=788 at 8'I&F3(I4699954=4::3'0I8985(I4:71(I:;<	NM:i:1	MD:Z:186	oR:Z:1	oH:i:1	oP:i:3754	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.538	0	1	8492	255	80M1I36M1D61M1D5M	*	0	0	ATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAAGTACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAACTT	:<5548566698769I)6948H'89I'6I(4:I(4I/':;6:I'=I)79:569=I(I(<8:88G'I(II1*&8=45I;+&'6;I(7;:0I1'6I/'6G'8I(9677I)@I)699I)7D888I<,&I.'I(85980I;+&69<182=I.&49:8<?899<<76I(4I(;57G'3I(889I+5I(	NM:i:3	MD:Z:116^T61^A5	oR:Z:1	oH:i:1	oP:i:8491	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.538	0	1	8492	255	80M1I36M1D61M1D5M	*	0	0	ATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAAGTACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAACTT	:<5548566698769I)6948H'89I'6I(4:I(4I/':;6:I'=I)79:569=I(I(<8:88G'I(II1*&8=45I;+&'6;I(7;:0I1'6I/'6G'8I(9677I)@I)699I)7D888I<,&I.'I(85980I;+&69<182=I.&49:8<?899<<76I(4I(;57G'3I(889I+5I(	NM:i:3	MD:Z:116T61A5	oR:Z:1	oH:i:1	oP:i:8491	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.539	16	1	3460	255	159M1I31M1I15M	*	0	0	AACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGAGTGGTGTTATTTTGTCTACGGTCTACCACTTGTATCTAGAAGCTCCGC	'G'+3II6'/I5=3::<6)I:'G8'0I26'/I'H85;0'H74:4&.I:(I6&E8=568966'I9'/I4(I:79'G)I8'I8'/I'F4;:;3:&*8I::9'.I(I'H56(I8:3475'H)I'H(I48(I3:'.I2<56(I(I(I'H9858351(2I3)I8)7(I88)I5&+;I689741)I37=8)I:6(I8(589679)I:D2)I59	NM:i:2	MD:Z:205	oR:Z:1	oH:i [...]
-simulated.540	16	1	322	255	118M1D28M1D42M1D9M	*	0	0	GCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGATCCCTTAGTCGCATTAGTCCATGCAGACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGATACCA	9+I;::6988(I5=6(I65;:68&+9I96988'I'0I495)I:'F<'H8(1I=746:358&*2II4(I(I4=<9'.I'0I98:9986;84(I(I'/I8487:68:9(3I(I771(I:6D09'1I'G<56767<*I646)I973686C76479/38:'G>5(I3(I'H*I69',>I9277;88'G:5(I)6I573'I9	NM:i:4	MD:Z:0C117^G28^A42^G9	oR:Z:1	oH:i:1	o [...]
-simulated.541	0	1	2422	255	12M1I24M1I14M1I42M1D99M	*	0	0	ATTTAAAGTGAACTATTAGTTGTATGACTTACCCTAAGTGAATACAACGAGCTAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGG	3I0'I.&678I)&63I(98I)79865=4I(7I.&6I)&?<I(759I(667<7(5<G'19826I)=777I(66C:88:257::I(7I(I(I'I(89CI(><883I'6F'I(;I/'6;696588598924.52I(76I(;I(<63674:8:748I(:I*8II4+':5;I)6;3676:7I2(G'566658>I(8:I(	NM:i:4	MD:Z:92^T99	oR:Z:1	oH:i:1	oP:i:2421	oS [...]
-simulated.542	0	1	2307	255	145M1D48M	*	0	0	CCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACA	H'I>,'7I.'I(69F&I(9887I<,'397I'83:I/'47I.'6I)<9629993I(8I(;753;;;77:4I'77:7441:77::IH0)%99I)I.&G'8:<4I(I1(I(I(9:<7I(I2(I-&586I)92I'>;I(9847959I)5I+=I'73G'86<I)948;59BI'74894H'44?9I+786:786::554	NM:i:1	MD:Z:145^C48	oR:Z:1	oH:i:1	oP:i:2306	oS:A:F	XE:i:1	XS: [...]
+simulated.540	16	1	322	255	118M1D28M1D42M1D9M	*	0	0	GCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGATCCCTTAGTCGCATTAGTCCATGCAGACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGATACCA	9+I;::6988(I5=6(I65;:68&+9I96988'I'0I495)I:'F<'H8(1I=746:358&*2II4(I(I4=<9'.I'0I98:9986;84(I(I'/I8487:68:9(3I(I771(I:6D09'1I'G<56767<*I646)I973686C76479/38:'G>5(I3(I'H*I69',>I9277;88'G:5(I)6I573'I9	NM:i:4	MD:Z:C117G28A42G9	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.541	0	1	2422	255	12M1I24M1I14M1I42M1D99M	*	0	0	ATTTAAAGTGAACTATTAGTTGTATGACTTACCCTAAGTGAATACAACGAGCTAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGG	3I0'I.&678I)&63I(98I)79865=4I(7I.&6I)&?<I(759I(667<7(5<G'19826I)=777I(66C:88:257::I(7I(I(I'I(89CI(><883I'6F'I(;I/'6;696588598924.52I(76I(;I(<63674:8:748I(:I*8II4+':5;I)6;3676:7I2(G'566658>I(8:I(	NM:i:4	MD:Z:92T99	oR:Z:1	oH:i:1	oP:i:2421	oS: [...]
+simulated.542	0	1	2307	255	145M1D48M	*	0	0	CCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACA	H'I>,'7I.'I(69F&I(9887I<,'397I'83:I/'47I.'6I)<9629993I(8I(;753;;;77:4I'77:7441:77::IH0)%99I)I.&G'8:<4I(I1(I(I(9:<7I(I2(I-&586I)92I'>;I(9847959I)5I+=I'73G'86<I)948;59BI'74894H'44?9I+786:786::554	NM:i:1	MD:Z:145C48	oR:Z:1	oH:i:1	oP:i:2306	oS:A:F	XE:i:1	XS:i [...]
 simulated.543	0	1	2997	255	37M1I88M1I17M1I59M	*	0	0	AAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGTCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGACGCAAGCGCCCACATCGTCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGAT	I3(9I(8I)I(I':98I(6I(;6789:6>8=85<I(6+:3<8I(I)I(;I/':68I(<8577I'9I)I0'69::985<4I-&F'36I/'=:I'I9*&I*34<:94;<35I*I)I(H':66<7:8;:%447I'445I.'76;583'84I0'II1*&99834<66 at G'763:6B0;8I'7<9H':8877G'8;I':77I'I0'07;	NM:i:3	MD:Z:201	oR:Z:1	oH:i:1	 [...]
-simulated.544	16	1	4795	255	91M1D111M	*	0	0	CCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCA	(I774)I78)I'G4<&F&-I9;(2I776&.I(I3'G&*1II=:876)I3(I'I56'I36'H5<'I5149:(2I:8(I5<8924@:898'H9+I<69'I9&+;I:9;55'H82(I'I9:(I(I;8<4<66'H1:1(I(I876=7:879647(I9(I6985'H894'I8'/I'H'F69<7)I6'F79966)I:6526'H63969	NM:i:1	MD:Z:91^T111	oR:Z:1	oH:i:1	oP:i:479 [...]
-simulated.545	16	1	2551	255	82M1D138M	*	0	0	GGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCG	'G88'I7'I7;348646679:(I2'I4&)1II393(I884;438;'.I'H55;5758'G<5(I86:9762'H=72673445;(.DI54'G7&-I58(I6<9?495A<<'G559786'I5478(I4<889>3:;=877'I;;4(I997:6:>289(I4'H67967863<575'I7',=I=<'0I9'.I',=I78(I871&.I*I7789397(I77(I'H97	NM:i:1 [...]
-simulated.546	0	1	5595	255	107M1D9M1I9M1I74M	*	0	0	GGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTCAAACTCTATTTGTATGTCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCG	I(8659:5F'793857I(89I(8346:756367764?0>F&610:F';7;626I.':6I(4867I)8>8I(642I(28I(I<+&6::H'9:9I)8I'I'5I*<I)62I+7I0'519+:I/'76495(I)I(6I)4=9;I(7;7:7G'5=4I(769732II2*&I(85I(5:5;8H'H'776G':538I*54I)46;65<76	NM:i:3	MD:Z:107^T92	oR:Z:1	oH:i:1	oP: [...]
-simulated.547	0	1	8514	255	13M1D74M1I75M1I26M1D15M	*	0	0	TCTGGTGGCTGGATTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGACAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGACCGCAATAGTTGGTTGTCGGGGCCAGCCTTAAAGGATTGGG	7=;I(7I(67F'7I,76:5I):I(:2858=2I(I(7;1:8I(I)II2*&=99;I;+&88F'474;I-&5I4)6I(:I)797:I(9I''7:6I(6I'37<I7*&I/'I+:556<I?-'8626=81I/'3=><;789:@597I)9I'77:I(;I(8 at 7I/'8I'5&I(95I(615I*I(I(983I<,'I(6;I+I(I.&I*9I)I.'	NM:i:4	MD:Z:13^T175^C15 [...]
-simulated.548	16	1	8107	255	58M1D152M	*	0	0	GAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGC	4)I)I736)I77(I(I9659'H66587:85967:4(I99656456647',<I7:97(I,I(I:<'G474(I8'I&-I2596'H:83>?(3I59:7(I'I25'H::=:<57:(I7(I;;)I747:67&,I(I49(I6<077(I9'I'H4368:9)I<<:>6*I57'H:99946875;(I(I(I(1I'H778:5&D=5'I/(I76'0I;57:	NM:i:1	MD:Z:58^C152	oR:Z:1 [...]
+simulated.544	16	1	4795	255	91M1D111M	*	0	0	CCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCA	(I774)I78)I'G4<&F&-I9;(2I776&.I(I3'G&*1II=:876)I3(I'I56'I36'H5<'I5149:(2I:8(I5<8924@:898'H9+I<69'I9&+;I:9;55'H82(I'I9:(I(I;8<4<66'H1:1(I(I876=7:879647(I9(I6985'H894'I8'/I'H'F69<7)I6'F79966)I:6526'H63969	NM:i:1	MD:Z:91T111	oR:Z:1	oH:i:1	oP:i:4794 [...]
+simulated.545	16	1	2551	255	82M1D138M	*	0	0	GGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCG	'G88'I7'I7;348646679:(I2'I4&)1II393(I884;438;'.I'H55;5758'G<5(I86:9762'H=72673445;(.DI54'G7&-I58(I6<9?495A<<'G559786'I5478(I4<889>3:;=877'I;;4(I997:6:>289(I4'H67967863<575'I7',=I=<'0I9'.I',=I78(I871&.I*I7789397(I77(I'H97	NM:i:1 [...]
+simulated.546	0	1	5595	255	107M1D9M1I9M1I74M	*	0	0	GGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTCAAACTCTATTTGTATGTCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCG	I(8659:5F'793857I(89I(8346:756367764?0>F&610:F';7;626I.':6I(4867I)8>8I(642I(28I(I<+&6::H'9:9I)8I'I'5I*<I)62I+7I0'519+:I/'76495(I)I(6I)4=9;I(7;7:7G'5=4I(769732II2*&I(85I(5:5;8H'H'776G':538I*54I)46;65<76	NM:i:3	MD:Z:107T92	oR:Z:1	oH:i:1	oP:i [...]
+simulated.547	0	1	8514	255	13M1D74M1I75M1I26M1D15M	*	0	0	TCTGGTGGCTGGATTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGACAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGACCGCAATAGTTGGTTGTCGGGGCCAGCCTTAAAGGATTGGG	7=;I(7I(67F'7I,76:5I):I(:2858=2I(I(7;1:8I(I)II2*&=99;I;+&88F'474;I-&5I4)6I(:I)797:I(9I''7:6I(6I'37<I7*&I/'I+:556<I?-'8626=81I/'3=><;789:@597I)9I'77:I(;I(8 at 7I/'8I'5&I(95I(615I*I(I(983I<,'I(6;I+I(I.&I*9I)I.'	NM:i:4	MD:Z:13T175C15	o [...]
+simulated.548	16	1	8107	255	58M1D152M	*	0	0	GAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGC	4)I)I736)I77(I(I9659'H66587:85967:4(I99656456647',<I7:97(I,I(I:<'G474(I8'I&-I2596'H:83>?(3I59:7(I'I25'H::=:<57:(I7(I;;)I747:67&,I(I49(I6<077(I9'I'H4368:9)I<<:>6*I57'H:99946875;(I(I(I(1I'H778:5&D=5'I/(I76'0I;57:	NM:i:1	MD:Z:58C152	oR:Z:1	 [...]
 simulated.549	16	1	8068	255	128M1I75M	*	0	0	TAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGTCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCT	:)I754&+:I;;3729'I<58:69>9:7'H)I78:654)I'I(I:;5)I96+I(I75;5'H94<3575568:@;'G645266<6787&*8I<>76'G(2I(I84(I7?4(I8'G'/I898@(I9:797&(1I8524'I'H8;)I799488;9'I6)I89(I956596'/I(I24(I7;;8<(I:*I(I:79:58*I969<7(I8	NM:i:1	MD:Z:203	oR:Z:1	oH:i:1	oP:i:806 [...]
-simulated.550	0	1	623	255	50M1I68M1D38M1I13M1D38M	*	0	0	ATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGACACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCGTATCCCGTGACTACCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGC	;262;I(6=I)48I'474I(7<;II:/)&I(987I.&867:H'I(6I0':'49988:798I(6?4:78=:<66I(5:68>368>G'<78I(<79H'73I.&8I)27I(8:857:69858C;95:F'42I)673=8E&I(7569I(I):I-&I1(H'6&:06I.';<<7787I6*99;98:;3968:77777I/'73967386697I(78	NM:i:4	MD:Z:118^ [...]
-simulated.551	0	1	6303	255	40M1D143M1I5M	*	0	0	GTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATAGTTGGA	:8268:494I)4:42639I'4;87I/'353:4;H'I'I0'D96I)4474II1)&H'66I)I)I(:767658I(849I/'3I(I0'G';8H'53=:877G'9854797=:H'I1(I';475I/'484I'8:I(27:I;+&:8I(87I(I)I(:32I(86I'888I(:<742:66I(78=7I'79/H'I(8	NM:i:2	MD:Z:40^C148	oR:Z:1	oH:i:1	oP:i:6302	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.552	16	1	2082	255	131M1I29M1D39M	*	0	0	GCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTCGTAGCCCCATCACCAGCGCAGTACTATCGTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAA	:'G2678;(IA547'/I354)I1'0I979'I9(I=;6877:89852(I;(1I'G849'/I(I95)I77'I(I(I'-?I<'I68)I&.I(I8;22'I638:63'H98(I8;5<9(I737&.I'H9;&).:II'65:9&+:I;39='H3C;88<4854??789D99&.I4:6;'G744899<655<8;9(I)I568&,I8(I	NM:i:2	MD:Z:160^T39	oR:Z:1	oH:i:1	oP:i:20 [...]
-simulated.553	16	1	4437	255	151M1D19M1D26M1I4M	*	0	0	CGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCTACTCCTAGCGATCGTCAGGGTACTTTGTGTTGGCAATCAGGTCGACG	9:696'H7/'G:9=77'I7&)0HI<;79:8'H9:5=5358<)I'G(I9717=&.I7&-I(1I(I7&*8I6586)I7*I72:678;;85'0I6(I63'H)I=988;9(I99'I87>>:749&.I6'G757=996'I99197:5(I(I=7(I6,I5:54)I7415836/797D'.I4:9'0I8;:)I'H=)I89:(I:%636:	NM:i:3	MD:Z:151^C19^A30	oR:Z:1	oH:i [...]
-simulated.554	16	2	3	255	7M1D166M1I22M	*	0	0	CAAACCATTATAACTCGTTTGGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGACCGGGTTAAGAGGTGGGTTACA	3(1I(I9,I;7'F6866&-I'G55<054;'F'H5'/I9=18=<798)I(I>76:8(2I6<(I8697(I2<5172268(I686769:7:'G=(I'G985(I)I8748/;:696'I=(2I57'I'F(2I544:8899'/I9.:756(I6'/I9'H<:6;4(I(I5;&+<I(I::5&(I(1I)I'G5:'I8'0I(I195	NM:i:2	MD:Z:7^T188	oR:Z:2	oH:i:1	oP:i:2	oS:A:R	XE:i:2 [...]
+simulated.550	0	1	623	255	50M1I68M1D38M1I13M1D38M	*	0	0	ATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGACACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCGTATCCCGTGACTACCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGC	;262;I(6=I)48I'474I(7<;II:/)&I(987I.&867:H'I(6I0':'49988:798I(6?4:78=:<66I(5:68>368>G'<78I(<79H'73I.&8I)27I(8:857:69858C;95:F'42I)673=8E&I(7569I(I):I-&I1(H'6&:06I.';<<7787I6*99;98:;3968:77777I/'73967386697I(78	NM:i:4	MD:Z:118G [...]
+simulated.551	0	1	6303	255	40M1D143M1I5M	*	0	0	GTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATAGTTGGA	:8268:494I)4:42639I'4;87I/'353:4;H'I'I0'D96I)4474II1)&H'66I)I)I(:767658I(849I/'3I(I0'G';8H'53=:877G'9854797=:H'I1(I';475I/'484I'8:I(27:I;+&:8I(87I(I)I(:32I(86I'888I(:<742:66I(78=7I'79/H'I(8	NM:i:2	MD:Z:40C148	oR:Z:1	oH:i:1	oP:i:6302	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.552	16	1	2082	255	131M1I29M1D39M	*	0	0	GCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTCGTAGCCCCATCACCAGCGCAGTACTATCGTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAA	:'G2678;(IA547'/I354)I1'0I979'I9(I=;6877:89852(I;(1I'G849'/I(I95)I77'I(I(I'-?I<'I68)I&.I(I8;22'I638:63'H98(I8;5<9(I737&.I'H9;&).:II'65:9&+:I;39='H3C;88<4854??789D99&.I4:6;'G744899<655<8;9(I)I568&,I8(I	NM:i:2	MD:Z:160T39	oR:Z:1	oH:i:1	oP:i:208 [...]
+simulated.553	16	1	4437	255	151M1D19M1D26M1I4M	*	0	0	CGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCTACTCCTAGCGATCGTCAGGGTACTTTGTGTTGGCAATCAGGTCGACG	9:696'H7/'G:9=77'I7&)0HI<;79:8'H9:5=5358<)I'G(I9717=&.I7&-I(1I(I7&*8I6586)I7*I72:678;;85'0I6(I63'H)I=988;9(I99'I87>>:749&.I6'G757=996'I99197:5(I(I=7(I6,I5:54)I7415836/797D'.I4:9'0I8;:)I'H=)I89:(I:%636:	NM:i:3	MD:Z:151C19A30	oR:Z:1	oH:i:1 [...]
+simulated.554	16	2	3	255	7M1D166M1I22M	*	0	0	CAAACCATTATAACTCGTTTGGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGACCGGGTTAAGAGGTGGGTTACA	3(1I(I9,I;7'F6866&-I'G55<054;'F'H5'/I9=18=<798)I(I>76:8(2I6<(I8697(I2<5172268(I686769:7:'G=(I'G985(I)I8748/;:696'I=(2I57'I'F(2I544:8899'/I9.:756(I6'/I9'H<:6;4(I(I5;&+<I(I::5&(I(1I)I'G5:'I8'0I(I195	NM:i:2	MD:Z:7T188	oR:Z:2	oH:i:1	oP:i:2	oS:A:R	XE:i:2	 [...]
 simulated.555	0	1	1506	255	17M1I45M1I108M1I39M	*	0	0	CGTCGTACCAAATCGTGTCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATCGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAACGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTAT	61877>8I(I2(16968%I/'/75II1)&I*F';:I)F'9:94776I2(=;::776=6I)58?&8785:4I3(I'26>88?973H':7:7683:27I.'44<<<97I.';I)595:I'I)I)=:I<+&:::G'I9+&6I2(6I(9887I(357:I(1I)7I)7G'96688I)&76<6:I'6668=978H'I(I/'I'7H'49H'I'4:7868	NM:i:3	MD:Z:2 [...]
-simulated.556	16	1	7001	255	11M1D48M1D94M1I43M	*	0	0	GTCTTGACGGTATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGACAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTG	3;9(I265'I7B6'H857 at 3(I(I:&-I(I=4*I7;&+<I'I57859>816769;(I7@(.AI(3I8)I;83<<7(I7;75*I:.984'G0(I2<8536-7;'H:9'I7<7:(I95'0I6(I(1I76(I15(I(I9'0I'1I67:(I3(I648%6'I;:(I4:35:4:646(I(2I;'/I88;7)I'I<;6789683	NM:i:3	MD:Z:11^A48^A137	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.557	16	1	6428	255	152M1D41M	*	0	0	ACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCG	27(I78(I;46&+9I=<(I:9(I(I(I:2;'F:6(I787(I96<6508>'I3;73'I68'G(I9:64:738:;>;4'I775'F8563547'.I43=<:;5'F96987:66526'G;78779;(I6(I:1957;&.I<6&E(I9'I5'H at 4:7D;688&)1II&-I6(I85;6636&E(I)I6(I6'I737997	NM:i:1	MD:Z:152^C41	oR:Z:1	oH:i:1	oP:i:6427	oS:A:R	XE:i:1	XS [...]
-simulated.558	16	1	7649	255	143M1I15M1D11M	*	0	0	CTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGACTCGATTACGGGATAGCCCCTGCCTTT	59'G6'0I)I56797<6379<(I656)I:8&-I82839&.I983(I84'H2801;8(I'I)I69)I96'G(I798;5&D?74'H586:=4'G*I(I776'G;68<:-8(I'G*I:8'/I755',>I9'I'.I'I'H4:83)I;(7;:8'I18(2I6637(/EI3;(I(3I	NM:i:2	MD:Z:158^C11	oR:Z:1	oH:i:1	oP:i:7648	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.559	0	1	9046	255	33M1I55M1D95M	*	0	0	CATGTGCGTTGCACAACCACTACAAAGGAAGCCGTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCG	4:6;5?:8I(5:88E&F&77=68I.&I(I(7G'*669943I*769I1'I.&8:8I(:I'9:5278::I'G'577378I'7I(>I(I(65C9I'53I*;<I(9<7:I'64=2677=44I(I(I/'44I';65I)9I1':567866699:73<66:9<5I)977542;:I-&8I(9438I(I(H'7	NM:i:2	MD:Z:88^G95	oR:Z:1	oH:i:1	oP:i:9045	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.560	0	1	3745	255	98M1D113M	*	0	0	CTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGA	5:3I/'96888768:I1'9:I0'I)4I/'<6I(8453646H'9I(8687I,&5;G'I'69;I)3=8;8>778986;:76896:7I/'I)86;:I)587CI.&I(5I'6985065649H'9I(8G'4994868H':G'7688876II7-(%76846;87I)I(8E&25845:9::483I0'60=7I)A4:>I(<:I.'85I(I-&9488664	NM:i:1	MD:Z:98^G113	oR:Z: [...]
-simulated.561	16	1	1024	255	47M1D124M	*	0	0	GGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGC	'I6&.I839524'/I757<836(I<9'G:(I58<58)I'H35659<6C:3',<I7?(I:67>7'/I=(I6B(1I88(I34795:4887:7=(I'/I656856<'G97)I<89:845@&*8I'I971;496696677'G;(I:962<697773:959:;6:',>I'H86;85	NM:i:1	MD:Z:47^A124	oR:Z:1	oH:i:1	oP:i:1023	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.562	0	1	1677	255	138M1I15M1D10M1D47M	*	0	0	CTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATACGAGAATGACTAACTGGCCCTTGCTGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGG	0685I'99<47455F&F'I/'I(8G'98G'H';56:?257I(7499=69747;8::<I(5;<5I(77I.&544=;6I=,'F'27674I(<676876I)9:8G'I(;I?-'7585I'H'53I/'I'8I';8<5847796&37;6I(5;799G'76I,I-&I'88:I5)55;7I(0I)I(I(7I'9::I(834<I)I'85988:63>85I(I(	NM:i:3	MD:Z:153 [...]
+simulated.556	16	1	7001	255	11M1D48M1D94M1I43M	*	0	0	GTCTTGACGGTATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGACAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTG	3;9(I265'I7B6'H857 at 3(I(I:&-I(I=4*I7;&+<I'I57859>816769;(I7@(.AI(3I8)I;83<<7(I7;75*I:.984'G0(I2<8536-7;'H:9'I7<7:(I95'0I6(I(1I76(I15(I(I9'0I'1I67:(I3(I648%6'I;:(I4:35:4:646(I(2I;'/I88;7)I'I<;6789683	NM:i:3	MD:Z:11A48A137	oR:Z:1	oH:i:1	oP:i:70 [...]
+simulated.557	16	1	6428	255	152M1D41M	*	0	0	ACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCG	27(I78(I;46&+9I=<(I:9(I(I(I:2;'F:6(I787(I96<6508>'I3;73'I68'G(I9:64:738:;>;4'I775'F8563547'.I43=<:;5'F96987:66526'G;78779;(I6(I:1957;&.I<6&E(I9'I5'H at 4:7D;688&)1II&-I6(I85;6636&E(I)I6(I6'I737997	NM:i:1	MD:Z:152C41	oR:Z:1	oH:i:1	oP:i:6427	oS:A:R	XE:i:1	XS: [...]
+simulated.558	16	1	7649	255	143M1I15M1D11M	*	0	0	CTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGACTCGATTACGGGATAGCCCCTGCCTTT	59'G6'0I)I56797<6379<(I656)I:8&-I82839&.I983(I84'H2801;8(I'I)I69)I96'G(I798;5&D?74'H586:=4'G*I(I776'G;68<:-8(I'G*I:8'/I755',>I9'I'.I'I'H4:83)I;(7;:8'I18(2I6637(/EI3;(I(3I	NM:i:2	MD:Z:158C11	oR:Z:1	oH:i:1	oP:i:7648	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.559	0	1	9046	255	33M1I55M1D95M	*	0	0	CATGTGCGTTGCACAACCACTACAAAGGAAGCCGTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCG	4:6;5?:8I(5:88E&F&77=68I.&I(I(7G'*669943I*769I1'I.&8:8I(:I'9:5278::I'G'577378I'7I(>I(I(65C9I'53I*;<I(9<7:I'64=2677=44I(I(I/'44I';65I)9I1':567866699:73<66:9<5I)977542;:I-&8I(9438I(I(H'7	NM:i:2	MD:Z:88G95	oR:Z:1	oH:i:1	oP:i:9045	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.560	0	1	3745	255	98M1D113M	*	0	0	CTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGA	5:3I/'96888768:I1'9:I0'I)4I/'<6I(8453646H'9I(8687I,&5;G'I'69;I)3=8;8>778986;:76896:7I/'I)86;:I)587CI.&I(5I'6985065649H'9I(8G'4994868H':G'7688876II7-(%76846;87I)I(8E&25845:9::483I0'60=7I)A4:>I(<:I.'85I(I-&9488664	NM:i:1	MD:Z:98G113	oR:Z:1 [...]
+simulated.561	16	1	1024	255	47M1D124M	*	0	0	GGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGC	'I6&.I839524'/I757<836(I<9'G:(I58<58)I'H35659<6C:3',<I7?(I:67>7'/I=(I6B(1I88(I34795:4887:7=(I'/I656856<'G97)I<89:845@&*8I'I971;496696677'G;(I:962<697773:959:;6:',>I'H86;85	NM:i:1	MD:Z:47A124	oR:Z:1	oH:i:1	oP:i:1023	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.562	0	1	1677	255	138M1I15M1D10M1D47M	*	0	0	CTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATACGAGAATGACTAACTGGCCCTTGCTGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGG	0685I'99<47455F&F'I/'I(8G'98G'H';56:?257I(7499=69747;8::<I(5;<5I(77I.&544=;6I=,'F'27674I(<676876I)9:8G'I(;I?-'7585I'H'53I/'I'8I';8<5847796&37;6I(5;799G'76I,I-&I'88:I5)55;7I(0I)I(I(7I'9::I(834<I)I'85988:63>85I(I(	NM:i:3	MD:Z:153 [...]
 simulated.563	16	1	8304	255	22M1I120M1I49M	*	0	0	AAGAAGCGGGACGCCGCCGCTCGTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGACTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATA	)I2)I89)4I848(I:(I?527'9573292(I328'/I(I46;<'I6:6*I(I35(1I7::'H555>89;'I388'H3<=3564=67=4<1<=<?:'H;7(I446'I73<6577553(I8993)I)I97'G7874;'I73)I=(48=;'H586)I;9:61(I(I89=716(I(I'/I68;'/I46)I97'H=:	NM:i:2	MD:Z:191	oR:Z:1	oH:i:1	oP:i:8303	oS:A:R	XE:i:2	X [...]
 simulated.564	0	1	7281	255	212M	*	0	0	CCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGG	I)56I(8?I8*&H'4895;I)3I(79I2(<07I(:97G'I/'77I.'899I)7999E&3879F';=38213;F'5;5:;951 at I/'=69:=I(86?9557I=,'996I'5I(988I0'97776<G'H'498790977487474=I/'6G'567I'7I:+&44976:;:8I(I';6I(I)86>8;=I-&I/'8;78574I(:9I)7I.&H'I)	NM:i:0	MD:Z:212	oR:Z:1	oH:i: [...]
-simulated.565	16	2	22	255	13M1I144M1D22M	*	0	0	TTGGACTCAGCGGTCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGTTAAGAGGTGGGTTACACTT	&E)I599A<26'I&'H7'0I5289=6945'I(I;7<96&.I45'H6245(I;;6687774'H27479:;;6)I6(I(I967'H(I<543447885'H:&,I75(I)I&-I8568574:'0I289768(I:'0I8(I:78;6'H'H<6(.AI'G589*I,I(I)I89'H?'0I+I=::8)I	NM:i:2	MD:Z:157^G22	oR:Z:2	oH:i:1	oP:i:21	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.566	0	1	6215	255	75M1I37M1D89M	*	0	0	GATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTAGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGG	<6<6759E&:5;:7:8865<7<:I/'377I'6:89469I0'==29;:I1'=9756I3(<I(86I;+&7I(I.&94':782I':58378;78574:287I';585597I(576>I,;46664G'F'I0'I(:AI)<666II3*&I'95G'I)I)9799519I'876I/':I'I0'I(;7H';47:75=I)869;<8884E&I(	NM:i:2	MD:Z:112^A89	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.567	16	1	3653	255	13M1D126M1I19M1I40M	*	0	0	TAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGACGTTTATGGTTGCGCCAGTGACTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCG	;6:'H8;6'I;(I)5I7<)I7)I658'H'0I&+;I697=7'I(I456&E2664:58(I:5(I8699'G(I(I8:'/I92)I'1I'/I(I8'I66'/I394617898(2I08&-I*I9'0I:9(I678;467)I<'I526&6&-I5;'I&E;5;(I8884%5:;595:=<959:88<6&-I'I:45<)I;79(I(2I)I66	NM:i:3	MD:Z:13^T185	oR:Z:1	oH:i:1	oP [...]
+simulated.565	16	2	22	255	13M1I144M1D22M	*	0	0	TTGGACTCAGCGGTCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGTTAAGAGGTGGGTTACACTT	&E)I599A<26'I&'H7'0I5289=6945'I(I;7<96&.I45'H6245(I;;6687774'H27479:;;6)I6(I(I967'H(I<543447885'H:&,I75(I)I&-I8568574:'0I289768(I:'0I8(I:78;6'H'H<6(.AI'G589*I,I(I)I89'H?'0I+I=::8)I	NM:i:2	MD:Z:157G22	oR:Z:2	oH:i:1	oP:i:21	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.566	0	1	6215	255	75M1I37M1D89M	*	0	0	GATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTAGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGG	<6<6759E&:5;:7:8865<7<:I/'377I'6:89469I0'==29;:I1'=9756I3(<I(86I;+&7I(I.&94':782I':58378;78574:287I';585597I(576>I,;46664G'F'I0'I(:AI)<666II3*&I'95G'I)I)9799519I'876I/':I'I0'I(;7H';47:75=I)869;<8884E&I(	NM:i:2	MD:Z:112A89	oR:Z:1	oH:i:1	oP:i:6 [...]
+simulated.567	16	1	3653	255	13M1D126M1I19M1I40M	*	0	0	TAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGACGTTTATGGTTGCGCCAGTGACTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCG	;6:'H8;6'I;(I)5I7<)I7)I658'H'0I&+;I697=7'I(I456&E2664:58(I:5(I8699'G(I(I8:'/I92)I'1I'/I(I8'I66'/I394617898(2I08&-I*I9'0I:9(I678;467)I<'I526&6&-I5;'I&E;5;(I8884%5:;595:=<959:88<6&-I'I:45<)I;79(I(2I)I66	NM:i:3	MD:Z:13T185	oR:Z:1	oH:i:1	oP: [...]
 simulated.568	0	1	8157	255	202M	*	0	0	AAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCT	I)8489I)I/'I)86I(52<G'6I(I4)3;49I(57:;3I3(75;<I)G'35I(689:8:85I(3I(84I(839678I0'I(;4I(67599I(7I'I'22:48:I(3;789I)9:I(6;:5=86749I(I*I(I0'I(?9688I(68I'8I(63I/'879I(5D&87783A95623I(;<8I,&I(>898I(<89I(I(;88	NM:i:0	MD:Z:202	oR:Z:1	oH:i:1	oP:i:8156	oS:A:F	X [...]
-simulated.569	16	1	8376	255	27M1D10M1I171M	*	0	0	TGCCATCTCACGCGCGCACGTCTCCGTCACGAAGTATAGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCT	76'H6;9;85779545:8;5947'I7;D798)I9587'33:897(I548@(I'I96(I:7673(I44(I=4;62*I673(I464:>(I'H64888:(I(I&-I=:7&-I7:'G86(I678794436:;477'I7479(I03(I7(I97(I8'/I894:&F4'G83295;:'I(I996:6(I(I&)0II?669',>I39'G6:76'0I77	NM:i:2	MD:Z:27^C181	oR: [...]
+simulated.569	16	1	8376	255	27M1D10M1I171M	*	0	0	TGCCATCTCACGCGCGCACGTCTCCGTCACGAAGTATAGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCT	76'H6;9;85779545:8;5947'I7;D798)I9587'33:897(I548@(I'I96(I:7673(I44(I=4;62*I673(I464:>(I'H64888:(I(I&-I=:7&-I7:'G86(I678794436:;477'I7479(I03(I7(I97(I8'/I894:&F4'G83295;:'I(I996:6(I(I&)0II?669',>I39'G6:76'0I77	NM:i:2	MD:Z:27C181	oR:Z [...]
 simulated.570	0	1	863	255	217M	*	0	0	GCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGT	=46I(;67H'5I':I)I1'I(=87529I(I);5955I(:65I8*&6I)9564;7538289I9*&I';1:4I/'I'55I0':4I'98768<:494366689:87I(7:5393G'9<77;8:6;278F&8I.'65H'6F'I1(388<6I'I.&I'=I/'5663I)9I.'87553;I3(7:72993I'76I(6I'7:59=I(G'>983994I)74I<,'7	NM:i:0	MD:Z:217	oR: [...]
-simulated.571	16	1	2516	255	42M1I14M1D105M1I16M	*	0	0	GGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTCGGACAGCATAGCATATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCAGTCGCAGAGATCGGTGA	&E28875)I3'I*I6(2I:>7807672:373959='I<3(I<*(I96<9377989=7D8(I7&)0II3;6(I88858388&.I+I4<6877>(I<4'I796:;=9(I81:58:73:5&)1II71'H9&.I76'I58:3<4:<46(I:767>9(I6<89'H86%;7594;9::65'I:87	NM:i:3	MD:Z:56^A121	oR:Z:1	oH:i:1	oP:i:2515	oS:A:R	XE:i:3	XS:i:0	XI:i:0
-simulated.572	0	1	6880	255	162M1D27M	*	0	0	ACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGACGTGCACGACTCACCACAAAAATTTA	<I'G'4I(6I(86I)76<I(48I(6I'H'591575I(394I-&I/'I'1I/'86I-&;74488G':77893:I(67I1'5I)89:5565;:I(3G'5:67I(I(837=3945I)>6786I1(::E&888I'9H'2I'7;867H'I'4I-&F&<8I)33I<,'D=;;6::8:86277F&;7II1*&I/'4	NM:i:1	MD:Z:162^A27	oR:Z:1	oH:i:1	oP:i:6879	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.573	16	1	2181	255	75M1I67M1D61M	*	0	0	CTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGACACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTG	:8=(I79'I87768(I8:6'0I'G34&)/;II84?8&+:I88:8(I;813;6676949:8B)I47&-I656:(I7&3977876787;<:'I(I<35&.I6(I:8>3928&E;638:84(I9:48(I8(I',>I8'/I(I<7(ID42:7&+;I95:(I68:&-I4;&-I7'I96=8;562)I2(I8<347837:8:&F4845958	NM:i:2	MD:Z:142^A61	oR:Z:1	oH:i:1	 [...]
-simulated.574	0	1	6845	255	44M1D66M1D3M1D79M	*	0	0	GGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCATCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGG	G'8I(73663<G'580I)=:I2(9775I(H'I2(97I(H'5E&6C65I)856I'67I(7H'I(:077:6H'955I-&I2(I(7I0'9:I.&729:58I(76<6<>6I(:4I,:C69;3=9666I(9I)7326I(I)85559898I'7:5<8I/'79H'8:6H'4F&7I(<3:84I(H'7I.&I(54I(8:F'	NM:i:3	MD:Z:44^C66^C3^T79	oR:Z:1	oH:i:1	oP:i:6844	oS:A: [...]
+simulated.571	16	1	2516	255	42M1I14M1D105M1I16M	*	0	0	GGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTCGGACAGCATAGCATATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCAGTCGCAGAGATCGGTGA	&E28875)I3'I*I6(2I:>7807672:373959='I<3(I<*(I96<9377989=7D8(I7&)0II3;6(I88858388&.I+I4<6877>(I<4'I796:;=9(I81:58:73:5&)1II71'H9&.I76'I58:3<4:<46(I:767>9(I6<89'H86%;7594;9::65'I:87	NM:i:3	MD:Z:56A121	oR:Z:1	oH:i:1	oP:i:2515	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.572	0	1	6880	255	162M1D27M	*	0	0	ACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGACGTGCACGACTCACCACAAAAATTTA	<I'G'4I(6I(86I)76<I(48I(6I'H'591575I(394I-&I/'I'1I/'86I-&;74488G':77893:I(67I1'5I)89:5565;:I(3G'5:67I(I(837=3945I)>6786I1(::E&888I'9H'2I'7;867H'I'4I-&F&<8I)33I<,'D=;;6::8:86277F&;7II1*&I/'4	NM:i:1	MD:Z:162A27	oR:Z:1	oH:i:1	oP:i:6879	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.573	16	1	2181	255	75M1I67M1D61M	*	0	0	CTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGACACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTG	:8=(I79'I87768(I8:6'0I'G34&)/;II84?8&+:I88:8(I;813;6676949:8B)I47&-I656:(I7&3977876787;<:'I(I<35&.I6(I:8>3928&E;638:84(I9:48(I8(I',>I8'/I(I<7(ID42:7&+;I95:(I68:&-I4;&-I7'I96=8;562)I2(I8<347837:8:&F4845958	NM:i:2	MD:Z:142A61	oR:Z:1	oH:i:1	o [...]
+simulated.574	0	1	6845	255	44M1D66M1D3M1D79M	*	0	0	GGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCATCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGG	G'8I(73663<G'580I)=:I2(9775I(H'I2(97I(H'5E&6C65I)856I'67I(7H'I(:077:6H'955I-&I2(I(7I0'9:I.&729:58I(76<6<>6I(:4I,:C69;3=9666I(9I)7326I(I)85559898I'7:5<8I/'79H'8:6H'4F&7I(<3:84I(H'7I.&I(54I(8:F'	NM:i:3	MD:Z:44C66C3T79	oR:Z:1	oH:i:1	oP:i:6844	oS:A:F	X [...]
 simulated.575	0	1	7124	255	203M	*	0	0	CTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACC	<I2(59I*58I)H'9I/'I0'765I'7I':8>8I(7<G'66;5659525I'I0'8I/'5788I)G'9:;::85;884:5:889716:I'6I'460I.&8575I(897I'876I)<H'I'6>9I'729:78948762I8*&75I)7I(;4382/66I)I)94H'73I8*&H'84857I(6I)80I/'475I(;86I'I.&27I'	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:7123	oS:A:F [...]
 simulated.576	0	1	6082	255	203M	*	0	0	ACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTT	>I(959 at 948I*8I(7=4H'<71:II3*&9I8*&85:I'85=I-&I(356655;?;96>I(<I?-'I0'673=>;7I(714?I(95I/';77I4)445588;36458:9>8:69G'287G'66;I,88I)=I2(4578:7I(/478>777599:6:I-&5=4I'7:83:74I0'79<465I0'76573I1':H'59I>,'5I(	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:6081	oS:A:F [...]
 simulated.577	0	1	3848	255	181M1I2M	*	0	0	TTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACTAG	I(6I*858735818:I(5H'9I)489:;57I(9I(:<46975II9.(%688785=<E&I(9I(<799464;6768I.&:4=7I(2278I';9I/'6:H'I/'66956 at 873I(I';6::77:8/6799I0'7I(65I'9<44I(966886=H'>I(;8I(424:729I.&I:+&7I)6365*29	NM:i:1	MD:Z:183	oR:Z:1	oH:i:1	oP:i:3847	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.578	16	1	2217	255	63M1D38M1I93M	*	0	0	CCCGATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAACGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCC	'.I)<546&E698:7:93:99634:)I;7&,I8693&F659:9494679952)I(I779'0I7D57><42<&E868=;85(I9<4:(I:'I&*8I8(1I'F)97(I'I6847&+:I538(I588'/I24&-I6(I7;:@97;2&F:'I85B76;7893:'I:8698<<77754&*1II98(I'/I'I673;(I'F	NM:i:3	MD:Z:3C59^A131	oR:Z:1	oH:i:1	oP:i:2217	oS:A:R [...]
-simulated.579	16	1	5015	255	86M1I21M1D78M1I5M	*	0	0	CGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGTCCTGTCTCCATGTTGTCCAAGTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCGAAGGT	47:86(I=76'G<>'I79&.I6%(.9II9&*8I'G69:86:68'I5;:&.I;5'F:66(I;3975)I7;'H8698*I5946/<:9:%(I6936>*I863'I87*I(I6*I;(I;C;904&).:II=6877832=5'H;326'0I297(I6(I7996(I7665&*8I;(I(1I774(I=17'H(I8:)(I(I:	NM:i:3	MD:Z:107^T83	oR:Z:1	oH:i:1	oP:i:5014	oS:A:R	XE: [...]
-simulated.580	0	1	3867	255	23M1D56M1I99M	*	0	0	TCAATCAGCTGAATGGTCACGAGAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCGAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAAC	;5H'57;77:;I(6I)97999;7II6,'7488=:7;H'G':G'8:0=55<68=76I.&6;::I(8956I)60I/'4;H'(I-&:<87668:6I(I(7=7965:57405;I/'8I(63I*77::I'7;14:?4I'6I)64H'65;84<4I.&I:+&;H'657775656I(;8I4)I;+&9	NM:i:2	MD:Z:23^A155	oR:Z:1	oH:i:1	oP:i:3866	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.581	0	1	6870	255	59M1D157M	*	0	0	TCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAAC	26I(I(I-&84I)I(;I)7I)=;G'909H';9I(5I)I(:452=1I'<97I0'I-&I)3I,:8I-&7;7953I'9484567G'84I.&7G'363359455H'6I(1683G'H'9>:96936I'75:;6I3(84I(:77E&0I'9I(8:389G'I(9I-&F';8I(8;I at -'I'1477:76844>29I':;IF/)%I/'<I'24;<74I(99;;I(:	NM:i:1	MD:Z:59^ [...]
-simulated.582	0	1	5067	255	36M1I31M1D33M1I95M	*	0	0	GTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCGTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTACGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTG	<G'449I'77868H'94G';89:E&579:7768:H'%398/7F&<56I(8;I(H'=I/'2I';7;978II5,'475987768>I'3877I/'477I(4I(;%343I(<86;I9*&8I(I/'737I*52;H'E&8;I)H'I2(688I/'G'H'76:07=:<87;8I-&6<5I(7G'I(8I'8;79I(5I(158>87:=	NM:i:3	MD:Z:67^C128	oR:Z:1	oH:i:1	oP:i:5066	 [...]
+simulated.578	16	1	2217	255	63M1D38M1I93M	*	0	0	CCCGATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAACGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCC	'.I)<546&E698:7:93:99634:)I;7&,I8693&F659:9494679952)I(I779'0I7D57><42<&E868=;85(I9<4:(I:'I&*8I8(1I'F)97(I'I6847&+:I538(I588'/I24&-I6(I7;:@97;2&F:'I85B76;7893:'I:8698<<77754&*1II98(I'/I'I673;(I'F	NM:i:3	MD:Z:3C59A131	oR:Z:1	oH:i:1	oP:i:2217	oS:A:R	 [...]
+simulated.579	16	1	5015	255	86M1I21M1D78M1I5M	*	0	0	CGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGTCCTGTCTCCATGTTGTCCAAGTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCGAAGGT	47:86(I=76'G<>'I79&.I6%(.9II9&*8I'G69:86:68'I5;:&.I;5'F:66(I;3975)I7;'H8698*I5946/<:9:%(I6936>*I863'I87*I(I6*I;(I;C;904&).:II=6877832=5'H;326'0I297(I6(I7996(I7665&*8I;(I(1I774(I=17'H(I8:)(I(I:	NM:i:3	MD:Z:107T83	oR:Z:1	oH:i:1	oP:i:5014	oS:A:R	XE:i [...]
+simulated.580	0	1	3867	255	23M1D56M1I99M	*	0	0	TCAATCAGCTGAATGGTCACGAGAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCGAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAAC	;5H'57;77:;I(6I)97999;7II6,'7488=:7;H'G':G'8:0=55<68=76I.&6;::I(8956I)60I/'4;H'(I-&:<87668:6I(I(7=7965:57405;I/'8I(63I*77::I'7;14:?4I'6I)64H'65;84<4I.&I:+&;H'657775656I(;8I4)I;+&9	NM:i:2	MD:Z:23A155	oR:Z:1	oH:i:1	oP:i:3866	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.581	0	1	6870	255	59M1D157M	*	0	0	TCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAAC	26I(I(I-&84I)I(;I)7I)=;G'909H';9I(5I)I(:452=1I'<97I0'I-&I)3I,:8I-&7;7953I'9484567G'84I.&7G'363359455H'6I(1683G'H'9>:96936I'75:;6I3(84I(:77E&0I'9I(8:389G'I(9I-&F';8I(8;I at -'I'1477:76844>29I':;IF/)%I/'<I'24;<74I(99;;I(:	NM:i:1	MD:Z:59T [...]
+simulated.582	0	1	5067	255	36M1I31M1D33M1I95M	*	0	0	GTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCGTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTACGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTG	<G'449I'77868H'94G';89:E&579:7768:H'%398/7F&<56I(8;I(H'=I/'2I';7;978II5,'475987768>I'3877I/'477I(4I(;%343I(<86;I9*&8I(I/'737I*52;H'E&8;I)H'I2(688I/'G'H'76:07=:<87;8I-&6<5I(7G'I(8I'8;79I(5I(158>87:=	NM:i:3	MD:Z:67C128	oR:Z:1	oH:i:1	oP:i:5066	o [...]
 simulated.583	0	2	130	255	14M1I166M	*	0	0	CGTATCTCTGGGTCGTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTA	8;7164;14I/'56%6/98I(;I/';I'99757H'I)::I?-'H'58;I(I0'I(I(;;I'5I0'I'0?77I(7I(7I(D&5958687:I)444I(<I'I1'62I?-'H'>I)=F&I(87;69I-&I);49:6:3=9:4975E&94H'I-&9567I'59I'8=I(77893<6;6:487876	NM:i:1	MD:Z:180	oR:Z:2	oH:i:1	oP:i:129	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.584	16	1	5745	255	77M1I97M1D14M	*	0	0	ATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCACGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAATCGGGTATAAA	;/53:45&*2II'H65(I:6736'H'I068'I59;8'I99'I:3;87<83:)I(I74'I(I7(I9836986479'H:%744'G89:688769:7)I665988)I<5'G*I:49(I1719893:666>4(I:<'I8(I86(I7'0I:9(I(1I39'/I8898(I795<477'0I(I)6I51&.I:37'1I	NM:i:2	MD:Z:174^A14	oR:Z:1	oH:i:1	oP:i:5744	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.585	16	1	5278	255	32M1D92M1D95M	*	0	0	TAGGGTTTGCAGACGGACAGCCTTGGTACATTAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTAT	29'0I'0I898573'H:7;9'I'I(I969:'IC>696454'.I:;&,I5'.I'I'I='I9)I896;<6;7'.I56:0:5:(.AI7*I3(I;>:&.I7788876659'F6<'G<868857)I9;6+I85461'H7'G;(1I8'I:3&*3II7;:8;(I:85;6:7<(I77(I;9;86=(I89;7<5:48(I(I733(I;(I97;566(I'H4'H89763%	NM:i [...]
-simulated.586	16	1	7805	255	37M1D134M1D21M	*	0	0	AGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCACCCATAGCGATCCCGTTTC	97&*3II9:(I'0I:4;;689'H<8349776=(I;57,I73'/I'0I9<8(I7(I87787<:'I&.I7'G)I;64738568',=I6(I9>9(I*I49846445&.I89'I6*I9(I<5(I628(I77599588<(I=5'H4398977817;67(I:<944'H7)I:'H967B7'1I8:786:23'/I6&.I;	NM:i:2	MD:Z:37^G134^C21	oR:Z:1	oH:i:1	oP:i:7804	oS:A:R	XE [...]
+simulated.584	16	1	5745	255	77M1I97M1D14M	*	0	0	ATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCACGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAATCGGGTATAAA	;/53:45&*2II'H65(I:6736'H'I068'I59;8'I99'I:3;87<83:)I(I74'I(I7(I9836986479'H:%744'G89:688769:7)I665988)I<5'G*I:49(I1719893:666>4(I:<'I8(I86(I7'0I:9(I(1I39'/I8898(I795<477'0I(I)6I51&.I:37'1I	NM:i:2	MD:Z:174A14	oR:Z:1	oH:i:1	oP:i:5744	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.585	16	1	5278	255	32M1D92M1D95M	*	0	0	TAGGGTTTGCAGACGGACAGCCTTGGTACATTAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTAT	29'0I'0I898573'H:7;9'I'I(I969:'IC>696454'.I:;&,I5'.I'I'I='I9)I896;<6;7'.I56:0:5:(.AI7*I3(I;>:&.I7788876659'F6<'G<868857)I9;6+I85461'H7'G;(1I8'I:3&*3II7;:8;(I:85;6:7<(I77(I;9;86=(I89;7<5:48(I(I733(I;(I97;566(I'H4'H89763%	NM:i [...]
+simulated.586	16	1	7805	255	37M1D134M1D21M	*	0	0	AGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCACCCATAGCGATCCCGTTTC	97&*3II9:(I'0I:4;;689'H<8349776=(I;57,I73'/I'0I9<8(I7(I87787<:'I&.I7'G)I;64738568',=I6(I9>9(I*I49846445&.I89'I6*I9(I<5(I628(I77599588<(I=5'H4398977817;67(I:<944'H7)I:'H967B7'1I8:786:23'/I6&.I;	NM:i:2	MD:Z:37G134C21	oR:Z:1	oH:i:1	oP:i:7804	oS:A:R	XE:i [...]
 simulated.587	0	1	6069	255	183M	*	0	0	ACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTA	37I':84<7<I2(9I(8<4<787I(3I(6;9I*7447II2*&:I=,'=88I':65I-&I(5699<75785 at 7I)5I<+&I0';97=:68F'6695H':4I.'6@;I3(5997565785<7986<179G'948I'955I(=6H'9I/'7377:6I)68>;597688<=74I2(981G'68573@	NM:i:0	MD:Z:183	oR:Z:1	oH:i:1	oP:i:6068	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.588	0	1	4270	255	70M1D139M	*	0	0	CAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACC	<I(:6:=I*8I*G'89I-&66I=,'69>465:65I(I1(I0':;5I)94:5I(I/'870880:497;I(4DF&87=I(1I)3I(I'3199I';74I);8779=E&5=8:I'597I3(466:6918527:4577;7II3+'I(9278;;=<G'482;I'I(E&26I3(:153I*7;I(25996I'5II2*&35688=I(76875:657I'	NM:i:1	MD:Z:70^A139	oR:Z:1	oH [...]
+simulated.588	0	1	4270	255	70M1D139M	*	0	0	CAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACC	<I(:6:=I*8I*G'89I-&66I=,'69>465:65I(I1(I0':;5I)94:5I(I/'870880:497;I(4DF&87=I(1I)3I(I'3199I';74I);8779=E&5=8:I'597I3(466:6918527:4577;7II3+'I(9278;;=<G'482;I'I(E&26I3(:153I*7;I(25996I'5II2*&35688=I(76875:657I'	NM:i:1	MD:Z:70A139	oR:Z:1	oH: [...]
 simulated.589	16	1	8769	255	207M	*	0	0	AACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCG	)I<95)I<5648;98789(I59&-I586'G565:579&F(I599857'G5>68:7887(I4'H'I;)I&)1II79(I375486)I(1I:'H'/I=78'I88757'H;4(I7&-I'/I(I;89993905(I8'H84(I5:852=569:57&+:I36&F'I(I'I'I:1;754692(I4(I'H85)I5(I984(I(I67)I6'/I829>	NM:i:0	MD:Z:207	oR:Z:1	oH:i:1	oP:i:87 [...]
 simulated.590	0	1	2446	255	119M1I85M	*	0	0	GACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCGATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTT	37:E&9I/'8F&73I(598I)83798>9I'679;8H'939;I(:6;;>993=71<I(6H'I'I(I)95I(I(58566I'3I'G'5I-&54:45643;4><49793I'46I(5H'37883(446:999I)<I)<II2*&9:4I(;2736474I2(H'8754668I):=I(565:=72H'<78978766=II0)&7;H'1I-&<8F&	NM:i:1	MD:Z:204	oR:Z:1	oH:i:1	oP:i:24 [...]
-simulated.591	16	2	77	255	51M1D94M1I29M1D8M1I24M	*	0	0	ACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTACCTGGTTTGTCCCCAACAATCCAAGCAGATTAATATGTATGTCGTCGTCCAGCCTTTGACTA	553=)I4:856888:(I8&D)I:65'I'I4969644548)I='1I<=(I(I,I77679768(2I5597::(I9'/I:)I68929'G(I48&*9I(I3=:'G&-I'I(I;5'H9&.I(I46<3(I;'H5)I)I694892;6)I:94&'I<'I&-I49&+;I&E7(I8'H'H<8:88,I'I7495&949;:78<8:(I68(I(1I373=7	NM:i:4	MD:Z:51^C123 [...]
-simulated.592	16	1	4782	255	49M1D60M1I75M	*	0	0	ATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTAGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGT	:;;'G=85&+;I:(I847&D9='G(I93'H'0I6<'/I866'/I'I7)I(/FI7=896*I4'I(I9:'I8='F87'F:686.'.I87'H585:1:71953(I6(2I4:5%(I:&,<I8;1<7'G69(I)I9;(I)I922944:&F9=3(I'I6596:24659;8'I8(I88<7'I3>5(I9'.I5	NM:i:2	MD:Z:49^A135	oR:Z:1	oH:i:1	oP:i:4781	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.593	16	1	3665	255	180M1D39M	*	0	0	CTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTC	D'-?I8:'G1'I767(I'/I&+:I90;2=)I'H95;)I@:?388<(I=7(I:6;4(I'H(I97&.I77'G'/I(2I'I:(I17'0I;68765936(1I37'/I(I:'.I87'G9=55866(I5(I7679'0I=7'I'F3:8&E898;76467>7379;8<56:5'/I'G;6:6(I59:(I+I'I:(I36<4<;9513)I7'I7(I8853627(I7'I6:	NM:i:1	M [...]
+simulated.591	16	2	77	255	51M1D94M1I29M1D8M1I24M	*	0	0	ACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTACCTGGTTTGTCCCCAACAATCCAAGCAGATTAATATGTATGTCGTCGTCCAGCCTTTGACTA	553=)I4:856888:(I8&D)I:65'I'I4969644548)I='1I<=(I(I,I77679768(2I5597::(I9'/I:)I68929'G(I48&*9I(I3=:'G&-I'I(I;5'H9&.I(I46<3(I;'H5)I)I694892;6)I:94&'I<'I&-I49&+;I&E7(I8'H'H<8:88,I'I7495&949;:78<8:(I68(I(1I373=7	NM:i:4	MD:Z:51C123T [...]
+simulated.592	16	1	4782	255	49M1D60M1I75M	*	0	0	ATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTAGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGT	:;;'G=85&+;I:(I847&D9='G(I93'H'0I6<'/I866'/I'I7)I(/FI7=896*I4'I(I9:'I8='F87'F:686.'.I87'H585:1:71953(I6(2I4:5%(I:&,<I8;1<7'G69(I)I9;(I)I922944:&F9=3(I'I6596:24659;8'I8(I88<7'I3>5(I9'.I5	NM:i:2	MD:Z:49A135	oR:Z:1	oH:i:1	oP:i:4781	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.593	16	1	3665	255	180M1D39M	*	0	0	CTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTC	D'-?I8:'G1'I767(I'/I&+:I90;2=)I'H95;)I@:?388<(I=7(I:6;4(I'H(I97&.I77'G'/I(2I'I:(I17'0I;68765936(1I37'/I(I:'.I87'G9=55866(I5(I7679'0I=7'I'F3:8&E898;76467>7379;8<56:5'/I'G;6:6(I59:(I+I'I:(I36<4<;9513)I7'I7(I8853627(I7'I6:	NM:i:1	M [...]
 simulated.594	0	1	5671	255	1M1I213M1I14M	*	0	0	TACTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTAGAAATGTTCCCGAG	:'7I(I8*&587I(2:9I(:I)G';I'5I(7>I0'8I.'2546I-&4592;I(I)8G'9179I*47037I(466I(<8499:II1)&H'83I'371:3I(I(5:;I(<:69I'77I(584?88<66I)I)34I(D&;E&56477<6864I'4376I(;:6:98<?558I':97273I':7I(I(>58I'87:85>6856::9I(66G'8I'25I [...]
 simulated.595	16	1	5531	255	105M1I43M1I62M	*	0	0	CCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCTAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCGAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAA	(I778'0I3<)I'I(2I7'H7=74'F;(I688'H0697755)I7)I687668;::849,I:5'I*I=67712'H776699'H;=(I69/759777847A38:8*I2355;*I694488'1I82(I<595(I956(I384)I77'I',<I':96'G7:5'G6(I'F3(I5(I<7'0I5(2I716<&-I5587:'F(I5(I575;*I8;878'H	NM:i:2	MD:Z:210	o [...]
-simulated.596	0	1	829	255	18M1I154M1I16M1D13M	*	0	0	AGCTACACATGATCTACCTATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGACCCTGATGCCTTTAATCCTAGCGGCGGGT	4;8784=4;97;;5<9I(&8876:65<;0I'6I(F'=7I(729I'<I*;H'I/'I(85;6;7E&H'64688I(978I8*&8I(5:73:5=5<86;I>,'I(8385I1(G';4I0'9;I(<::6:73234;;734;8:7G'642:8:I)579426:78599I(6I0'<5G'<I)*I2(49775F&I.&I(<I,5676G'8I0';	NM:i:3	MD:Z:188^C13	oR:Z:1	oH:i: [...]
+simulated.596	0	1	829	255	18M1I154M1I16M1D13M	*	0	0	AGCTACACATGATCTACCTATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGACCCTGATGCCTTTAATCCTAGCGGCGGGT	4;8784=4;97;;5<9I(&8876:65<;0I'6I(F'=7I(729I'<I*;H'I/'I(85;6;7E&H'64688I(978I8*&8I(5:73:5=5<86;I>,'I(8385I1(G';4I0'9;I(<::6:73234;;734;8:7G'642:8:I)579426:78599I(6I0'<5G'<I)*I2(49775F&I.&I(<I,5676G'8I0';	NM:i:3	MD:Z:188C13	oR:Z:1	oH:i:1 [...]
 simulated.597	0	2	155	255	9M1I93M1I57M1I32M	*	0	0	CCTCATATTAGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAACTATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTAGTAGCGCGCACATAAACCAATCATCTCTTCCGG	I)73528H'&I(6:I;+&I(675H'I,&I'I(7;I)3I.'I(84=:I'9I(9I(I'77:47:98G'56=I(5I(I0'7:I9*&I'8H'1E&H'9;835I.&I'%:9<3<554356388I(>;I(I/'8928I):;I)98I(98<867977;=69673:I*7%869498;;385<I0'I(G'54:736:I(E&I*	NM:i:3	MD:Z:191	oR:Z:2	oH:i:1	oP:i:154	oS:A:F	XE:i:3 [...]
-simulated.598	0	1	671	255	32M1I71M1D82M1I22M	*	0	0	TGCACAGACTCAATCTAGTCACGTCCGCTAGCGATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACGTTCAAGGCAGGTGTCCGCCTGG	=4657989592I(;?57:67<>46I'::9;<7'985I(968I'9<5I(69I-&8I)66I(8:6978677<<I(::92I)97G'58955I)I(:647G'G'9I.'I+I'5456I.'<396778I9+&738<9:;95>56=94==I0'858<999<8:<H'58295571;<67639I(953:889640(I(7I)I'79I(68=I(6G'9I)	NM:i:3	MD:Z:103^A104	 [...]
+simulated.598	0	1	671	255	32M1I71M1D82M1I22M	*	0	0	TGCACAGACTCAATCTAGTCACGTCCGCTAGCGATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACGTTCAAGGCAGGTGTCCGCCTGG	=4657989592I(;?57:67<>46I'::9;<7'985I(968I'9<5I(69I-&8I)66I(8:6978677<<I(::92I)97G'58955I)I(:647G'G'9I.'I+I'5456I.'<396778I9+&738<9:;95>56=94==I0'858<999<8:<H'58295571;<67639I(953:889640(I(7I)I'79I(68=I(6G'9I)	NM:i:3	MD:Z:103A104	o [...]
 simulated.599	0	1	8050	255	185M	*	0	0	TCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTG	7:H'8=6I)I0'I(59I(8I(956I:+&356665I(:566535467I(I(4746;7G'I)E&944F'9<F&I(5805I(;7896;6495557F'4:72638:197I=,'5<;6H'I,&H';8I(66<I(9I(I/'51;4G'52357I1(9766I)I(93H'7:;6;=4;I'7H';7I'8476413	NM:i:0	MD:Z:185	oR:Z:1	oH:i:1	oP:i:8049	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.600	0	1	6815	255	61M1D78M1I61M	*	0	0	CTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTACTCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATA	8=5I'9<=8:I(38=9>:7279:6I'I)6I.&;I(:57;46I)694H'89I1(=;:8H'I(I,:8F'I'8I)9I(36I(:=:I(86I'5H'I(732463I)67;I.&I1'I(9I0':9I1'561558I'9398=94I(6&:I2(<I)9;989:774G'4H'566;I(I(:8431=89G'9:<67I-&36H'1:6I)7I(<5	NM:i:2	MD:Z:61^C139	oR:Z:1	oH:i:1	oP:i:68 [...]
+simulated.600	0	1	6815	255	61M1D78M1I61M	*	0	0	CTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTACTCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATA	8=5I'9<=8:I(38=9>:7279:6I'I)6I.&;I(:57;46I)694H'89I1(=;:8H'I(I,:8F'I'8I)9I(36I(:=:I(86I'5H'I(732463I)67;I.&I1'I(9I0':9I1'561558I'9398=94I(6&:I2(<I)9;989:774G'4H'566;I(I(:8431=89G'9:<67I-&36H'1:6I)7I(<5	NM:i:2	MD:Z:61C139	oR:Z:1	oH:i:1	oP:i:681 [...]
 simulated.601	16	1	5642	255	174M1I21M	*	0	0	GCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCGTCACCAGACGGATATAGTAGT	3933:9&-I:7(I83<1(I733)I9;<'I84(I',<I=<8(I539(I7(I'I8(I7'I58(1I6&-I4:;9'/I6695:)I'H8(I<49;(I96749(I694(I8614:7%)0GI+I:7(I7:895'H(I887(I7886(I77'F;746757<4(I(I48)I)I9&F9743733&878)I155<'H:56687487<	NM:i:1	MD:Z:195	oR:Z:1	oH:i:1	oP:i:5641	oS:A:R	XE:i:1	 [...]
 simulated.602	0	1	4897	255	19M1I176M	*	0	0	GGATGACTTGCGGCCATCCGAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGG	I(6:787I(:5I)G'98I''F&2979719I'566I'I(5<569:3497:7I'8I(86<=I(8;3I(;I2(I)I'><:7I*5I)62559I*69<7/I(7;;;I(;7<5030I1(6I2(9:49888I)167I'3:G'5:I.&8II9.(&5I:+&I(888<5:68I(96<I.':4I(725E&8:5:<I(8=I(5873I'	NM:i:1	MD:Z:195	oR:Z:1	oH:i:1	oP:i:4896	oS:A:F	XE:i:1	X [...]
-simulated.603	0	2	200	255	28M1D133M1I26M	*	0	0	TTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGGCGGGTCGGGGAGATTTATCCTCATC	I)9F'4I(H'<;;;996:D&62=G'4I(I,76IA-'I'7I(3I(I)56985I/'I(>7716=59;568;3I(15I)I0'6:<3G';5I)8AI*46;6;56989695=67:I(59435;4785869I-&I'I(=46574=I(I)E&9742:77<8I'3::F'E&9I1(66I;+&976I-&;9I*>;467	NM:i:2	MD:Z:28^T159	oR:Z:2	oH:i:1	oP:i:199	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.604	0	1	5410	255	7M1D21M1I72M1D100M	*	0	0	GCCAGGTGGTGGTGAAAAACACGTGGAGACTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGT	5I(8I(:I+7I)6:II2*&83478G'34*55>:75G'41G'884669I):<42483::I(H'802I(6I(747628G'I(3I)436;;I(;77>4=94I)9I,67F';4I2(I/'6/608I(5:6I0'99G'I(I.'9G'797 at I(9I)75:G'6=6:6;9H'=I)5<91985:71:6I)87E&I(68;577G'76:8793	NM:i:3	MD:Z:7^G93^A100	oR:Z:1	oH:i:1 [...]
+simulated.603	0	2	200	255	28M1D133M1I26M	*	0	0	TTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGGCGGGTCGGGGAGATTTATCCTCATC	I)9F'4I(H'<;;;996:D&62=G'4I(I,76IA-'I'7I(3I(I)56985I/'I(>7716=59;568;3I(15I)I0'6:<3G';5I)8AI*46;6;56989695=67:I(59435;4785869I-&I'I(=46574=I(I)E&9742:77<8I'3::F'E&9I1(66I;+&976I-&;9I*>;467	NM:i:2	MD:Z:28T159	oR:Z:2	oH:i:1	oP:i:199	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.604	0	1	5410	255	7M1D21M1I72M1D100M	*	0	0	GCCAGGTGGTGGTGAAAAACACGTGGAGACTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGT	5I(8I(:I+7I)6:II2*&83478G'34*55>:75G'41G'884669I):<42483::I(H'802I(6I(747628G'I(3I)436;;I(;77>4=94I)9I,67F';4I2(I/'6/608I(5:6I0'99G'I(I.'9G'797 at I(9I)75:G'6=6:6;9H'=I)5<91985:71:6I)87E&I(68;577G'76:8793	NM:i:3	MD:Z:7G93A100	oR:Z:1	oH:i:1	o [...]
 simulated.605	0	1	2452	255	56M1I142M	*	0	0	CCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTCGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTT	I4)9I(@6I'507I'76<496;E&6969=I)5841I'0883553:7=79I(4I(I)&I(I(7:I'I(:;4:1I*5I)I(6I/'87759491<79697877I(:7H'<I)798<6B88<3<<I(7G'5II0)&939H'87:4:>55I0'I)7.98666I(85I';453472I(:7747;7914II2*&86G'.I-&:6I(	NM:i:1	MD:Z:198	oR:Z:1	oH:i:1	oP:i:2451	oS:A:F	XE [...]
-simulated.606	0	2	141	255	59M1D76M1D85M	*	0	0	GTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAG	:9849=9I)7I0';I(1;578I)I':8I;+&I(888I)I,&H'G'38I(:I1'H'5785C7I)5H'I(54>6:7;6F&878I)7I)I0'9<I<,'G'7I'6I(H'8:8<:I/'G'3<6696768<76>5I(77H'I,:<6?I'68I)97I(95997755:967976:6I)765698;887788I2(I)I+:49:687F&I'I(22:998898H'577F&9	NM:i [...]
-simulated.607	0	1	4968	255	65M1D14M1I82M1I48M	*	0	0	CCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGTCCCCCCATTTTACCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGACATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTC	I*5<9;H';I'67485I*72816I'7588I(76:<;:>I.'9I-&8757=66I(;8<I(9;H';8I+8II</*&;I8*&&I(:;95;763I(126I3(78I';3;G'?;584G'77I)::7:I(/2:94;967I)774;7I):6:I(<7H'G';I/'5I(<:(<694II</)&:86::9<389I(;588I/'858G'8I'::96I'794;<	NM:i:3	MD:Z:65^G [...]
+simulated.606	0	2	141	255	59M1D76M1D85M	*	0	0	GTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAG	:9849=9I)7I0';I(1;578I)I':8I;+&I(888I)I,&H'G'38I(:I1'H'5785C7I)5H'I(54>6:7;6F&878I)7I)I0'9<I<,'G'7I'6I(H'8:8<:I/'G'3<6696768<76>5I(77H'I,:<6?I'68I)97I(95997755:967976:6I)765698;887788I2(I)I+:49:687F&I'I(22:998898H'577F&9	NM:i [...]
+simulated.607	0	1	4968	255	65M1D14M1I82M1I48M	*	0	0	CCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGTCCCCCCATTTTACCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGACATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTC	I*5<9;H';I'67485I*72816I'7588I(76:<;:>I.'9I-&8757=66I(;8<I(9;H';8I+8II</*&;I8*&&I(:;95;763I(126I3(78I';3;G'?;584G'77I)::7:I(/2:94;967I)774;7I):6:I(<7H'G';I/'5I(<:(<694II</)&:86::9<389I(;588I/'858G'8I'::96I'794;<	NM:i:3	MD:Z:65G1 [...]
 simulated.608	0	1	7735	255	191M	*	0	0	GATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAA	7926G'I)I)838H'7?4<6:6I'I(I(48I,&853I9*&9H'I-&G'I(:98:G';7549I(73I.&6486IG0)%36I'I/'2762:75I)999.=75;5E&<0<I-&5:I0'I0'7<6E&6I(99<56:<I)I-&4I'I(864278787I=,'5I(74=I)H'9<66?868I.':5I'5F'4H':4I(	NM:i:0	MD:Z:191	oR:Z:1	oH:i:1	oP:i:7734	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.609	16	2	197	255	66M1I41M1I38M1I50M1I17M	*	0	0	CACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATAGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCACTGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTACCGGTAGTCAGCGAACTGAAGCGGGTCGGGGAGATTTATCCTCATCTCTCGTTCTGGGAGGTAGCTAA	675(I9)I7&E'I<84391=6(I15<(I6(I(3I68&*8I'H9'F<(I)I8:<>6'/I'I1>866;'936>:965)I86(I(3I=?4:&F86(I9;(I4646;9:86:&68:7;=5(I5557489>759=:'/I(I'G:936:75'I)(I)I;>685:;<7&E769)I92'0I78&*9I796'1I78(I=7:4656:9&'I68(1I3(I89476(I	N [...]
 simulated.610	16	1	248	255	191M	*	0	0	CCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGC	)I'I7:(I'I&.I(I96(I8?9:&.I96;8'I:6649;(I54(I9'G6688'I8(I'H'H(I&+9I5879'H99'/I6:99446'G36<'F6394:=&*9I95/87(I(1I9;=(I6'G8'H9&-I7867667:'+3II4(I'G1A54'.I'0I76;8>47630&D'H'/I=32676348'1I(I768(I5	NM:i:0	MD:Z:191	oR:Z:1	oH:i:1	oP:i:247	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.611	16	1	6338	255	185M	*	0	0	GGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATC	)I'0I(I15(I9885&*2II'I75'H)I'F3:797:8'I598&-I5(I'1I(I7:'H6624;82'I54977:@7:'H'.I'G863@&-I358(I89'I7;4',>I;7(I88'I(I(I39:&E79(I7:6'I463766:<)I45;9'I98(I)I<457;46867888'H5:7(I66:;<57'0I64	NM:i:0	MD:Z:185	oR:Z:1	oH:i:1	oP:i:6337	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.612	0	1	3553	255	52M1I80M1D52M1D9M1D17M	*	0	0	CCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCGTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGTTGCCTACCGCAGATGTATTTCTA	I-&7<5I.&I(H'68I(;6974;I*E&I(I+69I)7:I.':786I(I(H'I(&3::6 at 28I2(9I)48I)6>I(8I=,'?4;=86I(38:6G'85E&48:6:57I'664I)5I)I7*&78I(7I)266I'I3(I7*</84>I'I(97<I(:75:6<:I'56I*8746I(H'I)86I/'87I(I5)I,I(;I(79I,8<2765:8:I2(:92	NM:i:4	MD:Z: [...]
-simulated.613	16	1	8347	255	129M1D74M1I23M	*	0	0	CCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGACTCATCCGGCCCCCGCTCAAAATA	(I9;7'G'I77'/I656(I7387;:7)I:96(I701<6:9342389;79724'I96&E8<6'G889777;5::(I3845'I(I=:(I65685'H37'G77768(I90:(I5:=68(I)I7:<::4)I(I,I838&-I76)I86(I587566578:9;87)I2553(I58(I4(I47(I7&.I58;:(I7'G99:985<(I(I9'5876'G)I&*1 [...]
+simulated.612	0	1	3553	255	52M1I80M1D52M1D9M1D17M	*	0	0	CCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCGTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGTTGCCTACCGCAGATGTATTTCTA	I-&7<5I.&I(H'68I(;6974;I*E&I(I+69I)7:I.':786I(I(H'I(&3::6 at 28I2(9I)48I)6>I(8I=,'?4;=86I(38:6G'85E&48:6:57I'664I)5I)I7*&78I(7I)266I'I3(I7*</84>I'I(97<I(:75:6<:I'56I*8746I(H'I)86I/'87I(I5)I,I(;I(79I,8<2765:8:I2(:92	NM:i:4	MD:Z: [...]
+simulated.613	16	1	8347	255	129M1D74M1I23M	*	0	0	CCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGACTCATCCGGCCCCCGCTCAAAATA	(I9;7'G'I77'/I656(I7387;:7)I:96(I701<6:9342389;79724'I96&E8<6'G889777;5::(I3845'I(I=:(I65685'H37'G77768(I90:(I5:=68(I)I7:<::4)I(I,I838&-I76)I86(I587566578:9;87)I2553(I58(I4(I47(I7&.I58;:(I7'G99:985<(I(I9'5876'G)I&*1 [...]
 simulated.614	16	2	31	255	39M1I161M	*	0	0	GCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCGAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTT	::'I)I;'/I6733876;8(I(I89799'/I58(I=876&'I7745:5655'H78:>:2;88'H5(I(I889*I)I6678478998(I;'/I69(I'I&-I888;8:99'/I57654=(I6&-I:&E3855;(I'H::',=I(I:78'H)5I*I)I59'H4(1I'H:857)I6(I<'G)I26:84765'I779'H9'I&.I	NM:i:1	MD:Z:200	oR:Z:2	oH:i:1	oP:i:30	oS:A:R	X [...]
 simulated.615	16	1	2381	255	204M	*	0	0	TGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTC	485767856'+4II77(I'/I)I8:64)I'/I'H'H95:2(I&.I'/I=75)I8;*I86(I6877<63(I>(2I8(I7<(I437(I=948:99'H97988'I751:(I66;93=:6846:'H1'H'F'G(I4:&E(I75:6;'H8(I'I<(2I77798:78678567895)I9:'H6'I:35;676959;6(I:(I8&*1II>6	NM:i:0	MD:Z:204	oR:Z:1	oH:i:1	oP:i:2380	oS: [...]
-simulated.616	16	1	4123	255	17M1I22M1I19M1I18M1D28M1I47M1I10M1I67M	*	0	0	CAGGGATTCCCAACTTGTACTGTGAATAACAGACAGGTCCGAATTGGCGGGTTACTGGCGACGAACATCCCAAGGCTCGTAGCTGAGGTCGGGCTCCACCAGAGAGACGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCTATAACTTGGCGACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGG	6;&.I=)I&.I(I7'H8';<=67;)I;'F858466(I6'F')I(I'I8'.I(I703'I6<&65)I?87'/I)I(I87=:D85695;)I88&.I9:'F4*I7975896'596499(I'/I9'1I(I'H(I7>3128:77:::666'I'/I73(I:9'98'I:(I(I<&:'0I37&+9I992457: [...]
-simulated.617	0	1	4525	255	10M1D192M	*	0	0	GGGTAATGCCTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGC	I.&@I(49G'C;:3545H'78I(859:8:68I-&:I(>9776<<I'6886;:9I(I(<:I'4I/'8::9I'2797;62444:H'I3(874I.&669I*I*9I(773I(697:282>I(4I3(8I)<956I(36I*3 at 848I.&56?;39I(6I(55444I.'I'986I(;::564I/'87:I(I(6769?G'5256I2(595	NM:i:1	MD:Z:10^T192	oR:Z:1	oH:i:1	oP:i:4524 [...]
+simulated.616	16	1	4123	255	17M1I22M1I19M1I18M1D28M1I47M1I10M1I67M	*	0	0	CAGGGATTCCCAACTTGTACTGTGAATAACAGACAGGTCCGAATTGGCGGGTTACTGGCGACGAACATCCCAAGGCTCGTAGCTGAGGTCGGGCTCCACCAGAGAGACGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCTATAACTTGGCGACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGG	6;&.I=)I&.I(I7'H8';<=67;)I;'F858466(I6'F')I(I'I8'.I(I703'I6<&65)I?87'/I)I(I87=:D85695;)I88&.I9:'F4*I7975896'596499(I'/I9'1I(I'H(I7>3128:77:::666'I'/I73(I:9'98'I:(I(I<&:'0I37&+9I992457: [...]
+simulated.617	0	1	4525	255	10M1D192M	*	0	0	GGGTAATGCCTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGC	I.&@I(49G'C;:3545H'78I(859:8:68I-&:I(>9776<<I'6886;:9I(I(<:I'4I/'8::9I'2797;62444:H'I3(874I.&669I*I*9I(773I(697:282>I(4I3(8I)<956I(36I*3 at 848I.&56?;39I(6I(55444I.'I'986I(;::564I/'87:I(I(6769?G'5256I2(595	NM:i:1	MD:Z:10T192	oR:Z:1	oH:i:1	oP:i:4524	 [...]
 simulated.618	0	1	2161	255	177M	*	0	0	CCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTT	I(5:I'I/'I'5774I(A9<845H':7E&54738H'8;6I.'I(60II:.)&28=8I9+&8567I(7<645=774364<9=G'69I1(:59>I)90765;797789/6I(I)5<:I0'9I(84:?/2>H'62786:9G'8571I(1G'I<,'<I0'I*82I'I(99 at 5I:+&9:2I(	NM:i:0	MD:Z:177	oR:Z:1	oH:i:1	oP:i:2160	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.619	16	1	4712	255	73M1I32M1I115M	*	0	0	GTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCGTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCGAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGG	7<56&F0378&.I<898'I24&F:9&*1II'/I(I4(I8:85(I3867(I:5458698&)1II7675'I55<7''G645&+;I6)I8:2(I66'I)I69'F&.I6:''.I;<6'0I'F='G'+3II9;;97(I/'I(I9;(I36)I48(I32:48&-I39'H94974;>9687'I9&-I783'F6&+;I;6966'H49(I'G85'G(I786=063'I86; [...]
 simulated.620	0	1	785	255	136M1I63M	*	0	0	CGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGTCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAG	9865:6<4I;+&<::8A6579::59836;I0'74755817698F'6679=8475;:>4<:H':>5595?<5<I(7H'I'14D&454I(>I(8I(I5)I)876893I(I'679:<I(777I>,'9G':689:48556%84I9*&I(5447I-&H'66I-&94I(98:7795>77;45676278I(89677=I)8:7:;667	NM:i:1	MD:Z:199	oR:Z:1	oH:i:1	oP:i:784	oS:A:F	XE [...]
 simulated.621	16	1	3821	255	27M1I68M1I123M	*	0	0	ACGTCTCTCCCGGTGACAACATGGAAAGTTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATCGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACT	:8<83:B4'/I'H5656(I:35(I'.I&)I2'H;2797::642'I4'G8'I3<95584'G;'I:5779:6&*/<II9;544386(I'I;(I77578'6898:58'0I6=9:'I6598(I95&.I4@(I(1I4837<8:60'H)I69591:7978;71(3I7*I74)I at 268(I836427;)I4(I6<*I99;:65;)5I&*9I6(I651636;83(I559	N [...]
-simulated.622	16	1	5104	255	30M1D95M1D65M1I7M	*	0	0	GTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACGAGCCTTG	8;74(I8:8(I35(I(I0'.I5(I38>6;6(-7II9655553<44'I8<75'0I::;*I5&F32;9'I7797',<I:(I'/I3::*I;67*I'I<4(I(I(2I>84&-I'I'I786=7767:44<,I78;(I7(I'H:'I989<(I9(I298678:455;(I;:<67'I(I7:5'/I'/I697382(I84'95*I'G:	NM:i:3	MD:Z:30^C95^C72	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.623	16	1	4530	255	80M1D116M	*	0	0	ATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCG	:@;(I'I>88447)I:8)I65777277(2I;(I:7792;6(I>8096=4'H(I84'H8(2I6159'H668:946;729'F+I336&-I:35)I'I8)I976(I;2;;75:1'I2'0I3'I:98;'I29)I87555'0I69437;)I8&F56879(1I*I699(I784;;;&-I469'H'H76@:6(I65:>'/I67	NM:i:1	MD:Z:80^G116	oR:Z:1	oH:i:1	oP:i:4529	oS:A:R	XE: [...]
-simulated.624	0	1	8108	255	11M1D24M1I158M	*	0	0	AATTCTGAATGTCCGTGTCCGACTCGTATGTCTAAGTGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCC	I)I(767I'<4CI(8:59I(2:95273479076I)&7599949555:I9+&8565I(I0'I(;9F'523I(6I(I/':=6:H'97=9:I.'6394I)I)83I*786:8558I(7G';:G'8338:;I/'I(;;I(=7<94H'7H'I(=;869:I):3355I(/<I*87:9969275I(G'I(I1(I(658:2I(	NM:i:2	MD:Z:11^T182	oR:Z:1	oH:i:1	oP:i:8107	oS:A:F	XE: [...]
-simulated.625	16	1	7828	255	18M1I41M1D21M1D128M	*	0	0	TCTCAGTATGGCGCGGGACTAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCTAAGACAAGGCATACGCTGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTT	9429252<;'F3;5'/I7&7'.I'0I7?8'I;(I57:8<39'I(1I4)I'H:973:6<55)5I8(I58:'G)I<8866588,IA6)I;(I0(I;;)I499)I<6<689=;4'G45&E9?89248685878(I558=5'H8)I6'H4;8'I8'0I;7856=98&,I6'/I'I2<8'I'G59896'H:'/I899:47514(I>(I9&E(1I	NM:i:3	MD:Z:59^C21 [...]
+simulated.622	16	1	5104	255	30M1D95M1D65M1I7M	*	0	0	GTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACGAGCCTTG	8;74(I8:8(I35(I(I0'.I5(I38>6;6(-7II9655553<44'I8<75'0I::;*I5&F32;9'I7797',<I:(I'/I3::*I;67*I'I<4(I(I(2I>84&-I'I'I786=7767:44<,I78;(I7(I'H:'I989<(I9(I298678:455;(I;:<67'I(I7:5'/I'/I697382(I84'95*I'G:	NM:i:3	MD:Z:30C95C72	oR:Z:1	oH:i:1	oP:i:51 [...]
+simulated.623	16	1	4530	255	80M1D116M	*	0	0	ATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCG	:@;(I'I>88447)I:8)I65777277(2I;(I:7792;6(I>8096=4'H(I84'H8(2I6159'H668:946;729'F+I336&-I:35)I'I8)I976(I;2;;75:1'I2'0I3'I:98;'I29)I87555'0I69437;)I8&F56879(1I*I699(I784;;;&-I469'H'H76@:6(I65:>'/I67	NM:i:1	MD:Z:80G116	oR:Z:1	oH:i:1	oP:i:4529	oS:A:R	XE:i [...]
+simulated.624	0	1	8108	255	11M1D24M1I158M	*	0	0	AATTCTGAATGTCCGTGTCCGACTCGTATGTCTAAGTGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCC	I)I(767I'<4CI(8:59I(2:95273479076I)&7599949555:I9+&8565I(I0'I(;9F'523I(6I(I/':=6:H'97=9:I.'6394I)I)83I*786:8558I(7G';:G'8338:;I/'I(;;I(=7<94H'7H'I(=;869:I):3355I(/<I*87:9969275I(G'I(I1(I(658:2I(	NM:i:2	MD:Z:11T182	oR:Z:1	oH:i:1	oP:i:8107	oS:A:F	XE:i [...]
+simulated.625	16	1	7828	255	18M1I41M1D21M1D128M	*	0	0	TCTCAGTATGGCGCGGGACTAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCTAAGACAAGGCATACGCTGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTT	9429252<;'F3;5'/I7&7'.I'0I7?8'I;(I57:8<39'I(1I4)I'H:973:6<55)5I8(I58:'G)I<8866588,IA6)I;(I0(I;;)I499)I<6<689=;4'G45&E9?89248685878(I558=5'H8)I6'H4;8'I8'0I;7856=98&,I6'/I'I2<8'I'G59896'H:'/I899:47514(I>(I9&E(1I	NM:i:3	MD:Z:59C21G [...]
 simulated.626	16	1	3508	255	199M1I6M	*	0	0	AAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTACGTAAT	'H<'I67:036=6'H3'/I7(I94<(I(I:'G>'0I)I>:<;76&*8I688'0I(I(I?2&E556;47'G(I(I'H6:)I44&.I5677(I'I(I'I897;:57'0I9(I95'H48&E8&+:I69:;9:'F6<:8(I76'I8:=7859'GA<7&E<(I&+:I42(I<(I43<)I'.I&+:I8:<26(I'H359)I9286)45:(I7	NM:i:1	MD:Z:205	oR:Z:1	oH:i:1	oP:i: [...]
 simulated.627	16	1	1247	255	74M1I136M	*	0	0	TCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTACATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATT	8686&-I54(I&E=&*8I(I7'I648538'H96(I63;(I787)I:859(I&-I5(I;&.I'/I9&-I>)I:(I&;8<'I&*7I;13399<9:>&E:(I(I;5'I'0I;66977>&-I<9)I=7'I9'0I9(I?2'H(I59;9<976<4:97(I86==6:782&+:I8'G4(I97'F8'0I854:79(I<(I977499(I9858)I(I9(I	NM:i:1	MD:Z:210	oR:Z:1	o [...]
-simulated.628	0	1	6045	255	99M1D128M	*	0	0	GCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTT	467I'6;;I-&9995886;9667<6:I(98;778I1'8I*99346:4F&6I(92BI)564;II3+'4I<,'997I*::7I0'G'655874:49627G':I5)I/'3:/7763F'<698I)67I/'947I/'1::7::<:77916:;89:8I'899E&:82I(<1E&6I.'737858I(/>71;5<97<8485I-&869I(::;;477I.'<8988;I/'48 [...]
-simulated.629	0	1	8532	255	95M1D53M1I38M1D21M	*	0	0	ACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCGAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAG	;7I)1I*885871:I(I(598:6G'I*II1)&1959I:+&79I)77>9I0':I/'8I';I(839<G'7I):8:I);I(9?8I:+&I.&H'677:4I5)44.:664I-&1557<1<775498I(5I)67:I(9I(;;6I.&@F&6I(8:)H'6?;I(H'I(7<8I?-'I(8;I.'I(I.&I(6I(I/'I*E&I.':86770897I/'<4	NM:i:3	MD:Z:95^T91^C21 [...]
-simulated.630	16	1	8525	255	29M1I54M1D18M1D88M1I11M	*	0	0	GATTTGTACTTGAAGACTACGAAGGATCAGTCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTAGGGCCCAAGGG	78(1I<864)I8'G6678398(I(I8886*4'G'H&*2II6>85&+;I3:'G;7:7&.I7'0I7'G4'I8488(I8(I:49)I3D=72&*7I&.I'H=5;15)6I3463788'.I8=655871>8587'I7'H649'I3'I;46&-I;)I8(I48(I954'F(I'G97:&+;I(I74&.I)I&-I(I6'F&'0I'/I'F'/I	NM:i:4	MD:Z:83^T18^T99	oR:Z: [...]
-simulated.631	16	1	6953	255	3M1D25M1D59M1I47M1I24M1I50M	*	0	0	TATCCATTCAGTATGTATTCAATCTAGGTAGCAGATGCCTAGCGAGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGTAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCGATAATCCACACGCTCTGGATCCTACTCGGATGGAACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTT	2;3,I9'I6979:7968(I6(I4498)ID8=5<:368(I8776%8,I94(I565&E9)I:&E89915&E(I8(3I(I?7)I;1&*7I&)I66=959594:7=3(I53%)0GI)4I8'H983696(I7566(I7>;'72(I4(I57884:877'F3?)I;9'76(I38,I&D(I'/I57'F58'I)I5'.I&.I56/(I6'F398>(I76)I	NM:i:8 [...]
+simulated.628	0	1	6045	255	99M1D128M	*	0	0	GCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTT	467I'6;;I-&9995886;9667<6:I(98;778I1'8I*99346:4F&6I(92BI)564;II3+'4I<,'997I*::7I0'G'655874:49627G':I5)I/'3:/7763F'<698I)67I/'947I/'1::7::<:77916:;89:8I'899E&:82I(<1E&6I.'737858I(/>71;5<97<8485I-&869I(::;;477I.'<8988;I/'48 [...]
+simulated.629	0	1	8532	255	95M1D53M1I38M1D21M	*	0	0	ACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCGAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCAAGGGCTGCTACTGCCCAG	;7I)1I*885871:I(I(598:6G'I*II1)&1959I:+&79I)77>9I0':I/'8I';I(839<G'7I):8:I);I(9?8I:+&I.&H'677:4I5)44.:664I-&1557<1<775498I(5I)67:I(9I(;;6I.&@F&6I(8:)H'6?;I(H'I(7<8I?-'I(8;I.'I(I.&I(6I(I/'I*E&I.':86770897I/'<4	NM:i:3	MD:Z:95T91C21	o [...]
+simulated.630	16	1	8525	255	29M1I54M1D18M1D88M1I11M	*	0	0	GATTTGTACTTGAAGACTACGAAGGATCAGTCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTAGGGCCCAAGGG	78(1I<864)I8'G6678398(I(I8886*4'G'H&*2II6>85&+;I3:'G;7:7&.I7'0I7'G4'I8488(I8(I:49)I3D=72&*7I&.I'H=5;15)6I3463788'.I8=655871>8587'I7'H649'I3'I;46&-I;)I8(I48(I954'F(I'G97:&+;I(I74&.I)I&-I(I6'F&'0I'/I'F'/I	NM:i:4	MD:Z:83T18T99	oR:Z:1	 [...]
+simulated.631	16	1	6953	255	3M1D25M1D59M1I47M1I24M1I50M	*	0	0	TATCCATTCAGTATGTATTCAATCTAGGTAGCAGATGCCTAGCGAGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGTAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCGATAATCCACACGCTCTGGATCCTACTCGGATGGAACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTT	2;3,I9'I6979:7968(I6(I4498)ID8=5<:368(I8776%8,I94(I565&E9)I:&E89915&E(I8(3I(I?7)I;1&*7I&)I66=959594:7=3(I53%)0GI)4I8'H983696(I7566(I7>;'72(I4(I57884:877'F3?)I;9'76(I38,I&D(I'/I57'F58'I)I5'.I&.I56/(I6'F398>(I76)I	NM:i:8 [...]
 simulated.632	16	1	4256	255	192M	*	0	0	CGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATT	96665:58&E'0I6:(I64=;)I6'I)I96&-I74&+:I21>67796:'G(3I&.I:;1'I5234(I(2I46688956596)I:'I)I76<'H6'G7(I(I635;(I626'H5545<6)I835<(I3::'/I<955::957968=56616%)0GI(I64746:32(I55;1'G(I)I34&-I97:6*I4;'F	NM:i:0	MD:Z:192	oR:Z:1	oH:i:1	oP:i:4255	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.633	16	1	2651	255	136M1D25M1I42M	*	0	0	TCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTGGTGCTATGTCCCCTAACTTTTGTAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTC	95;6163?;'H4;8728'I7<:2'H76?5:369:27::'I:94(I65:775;8<7(I8'I4533666:389;(I4',>I51&.I8(2I&+:I;6'G558'/I(I57798>6(I61(I(I3&+9I;9876?(I34'G,I(I;4:73564&+;I8)I:'- at I6&&-I75:8(I<5545768897;5&+:I6<&)0HI987947(I7	NM:i:2	MD:Z:136^T67	oR:Z:1	oH:i:1 [...]
+simulated.633	16	1	2651	255	136M1D25M1I42M	*	0	0	TCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTGGTGCTATGTCCCCTAACTTTTGTAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTC	95;6163?;'H4;8728'I7<:2'H76?5:369:27::'I:94(I65:775;8<7(I8'I4533666:389;(I4',>I51&.I8(2I&+:I;6'G558'/I(I57798>6(I61(I(I3&+9I;9876?(I34'G,I(I;4:73564&+;I8)I:'- at I6&&-I75:8(I<5545768897;5&+:I6<&)0HI987947(I7	NM:i:2	MD:Z:136T67	oR:Z:1	oH:i:1	 [...]
 simulated.634	16	1	6817	255	78M1I113M	*	0	0	ACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCTATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGA	6)I6=977(I6576;80994;6(I)I7&,I5'H58<64;)I796'I58(2I9989(I(I'0I5;(I'I<(I6(I95'G%7;6(I55(I:)I(I746765'I773&-I'/I(I5&.I8;'0I676:89'H1273489(I68&-I9'I977556;44(I4'H687:(I(I9:976644(I74626&-I68'F38	NM:i:1	MD:Z:191	oR:Z:1	oH:i:1	oP:i:6816	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.635	16	1	8824	255	3M1D141M1D45M	*	0	0	TACAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCG	87:C8(I'G9(I&)1II67+I59=7;9'H'/I9(I&-I:=5'I;9:74'H45(I8&.I'0I+I9::8;7469'G;(I98(I3755=6::<623&+;I87(I'G(I'H)I71:3:9867'I1(I'I34(I5'G3=4)I(I93*I5,I;;546(I859756:736&-I8(I7(I77464962657)I7668	NM:i:2	MD:Z:3^A141^G45	oR:Z:1	oH:i:1	oP:i:8823	oS:A:R	XE:i:2	XS: [...]
+simulated.635	16	1	8824	255	3M1D141M1D45M	*	0	0	TACAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCG	87:C8(I'G9(I&)1II67+I59=7;9'H'/I9(I&-I:=5'I;9:74'H45(I8&.I'0I+I9::8;7469'G;(I98(I3755=6::<623&+;I87(I'G(I'H)I71:3:9867'I1(I'I34(I5'G3=4)I(I93*I5,I;;546(I859756:736&-I8(I7(I77464962657)I7668	NM:i:2	MD:Z:3A141G45	oR:Z:1	oH:i:1	oP:i:8823	oS:A:R	XE:i:2	XS:i: [...]
 simulated.636	16	1	6159	255	19M1I185M	*	0	0	TGTCATTCACCCACAGGGTCGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACAC	7;7;6'I87(1I77;&.I6(679<;>:7;=655;95>>'I334(I=<9)I;7(I5&.I689995&E9<5557:;>97623'/I54=(I;4557;;'.I<47582&-I49262&-I9'I59&+;I5(I(1I650;@6'H7757667855789577)I8374564'I3857'/I595475'G(I&.I'H76(I958>&*2II&F945	NM:i:1	MD:Z:204	oR:Z:1	oH:i:1	oP:i:6 [...]
-simulated.637	16	1	4206	255	13M1D66M1D116M	*	0	0	AGGTCGGGCTCCACAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAG	6)I58'/I;<(I:?36365:93766=5(I'0I6&-I)I&E'G36776.87<748779(I'0I59'G<5:6'H7'H)I5;,I33',>I68792:566)I'/I&-I970)I<787(I'/I6865787999<(I8'H'I487(IA)I7&E'H6485*I7::(I4=:8:3(I4899(I355'1I87:564694494789	NM:i:2	MD:Z:13^C66^C116	oR:Z:1	oH:i:1	oP:i:4205	oS: [...]
+simulated.637	16	1	4206	255	13M1D66M1D116M	*	0	0	AGGTCGGGCTCCACAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAG	6)I58'/I;<(I:?36365:93766=5(I'0I6&-I)I&E'G36776.87<748779(I'0I59'G<5:6'H7'H)I5;,I33',>I68792:566)I'/I&-I970)I<787(I'/I6865787999<(I8'H'I487(IA)I7&E'H6485*I7::(I4=:8:3(I4899(I355'1I87:564694494789	NM:i:2	MD:Z:13C66C116	oR:Z:1	oH:i:1	oP:i:4205	oS:A: [...]
 simulated.638	0	1	7262	255	172M1I25M	*	0	0	AATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCGAAGCCCCACAGACAGCAAGGACAAG	H'7>I);H'9778779;H'I)16I(99I at -'I(657>9I(1I(;7I/'?99I(768I(I.&5;I.&888F'55;9H'4668I(62;65798F&=:59=:9<4I-&886:6I'29;6463I8*&5:1E&6I(:98I/'923946I(F&787917;8884;4586I0':I)278&I(3I:+&:914;595:I(I)98I(9	NM:i:1	MD:Z:197	oR:Z:1	oH:i:1	oP:i:7261	oS:A:F	XE:i [...]
 simulated.639	0	1	8784	255	154M1I56M	*	0	0	TGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTACTCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGC	8:>H'38I/'057G'7585:96F&I(;6:9?9I(8;6:788;7G'2I(I)9I(IG0)%65F&5::396F'I1'2I)I-&:1<I'49<73H'>6I(;I0'I.'I(68968;975I*9I'69H';63;86<9 at 738I@-'8;H'I(I(I'I(94:4*54<5;I'=G'H'=:I(8I)898I(I'47G'6I1(865;4I(8696896;4=I1'75	NM:i:1	MD:Z:210	oR:Z:1	oH [...]
-simulated.640	0	2	74	255	45M1D71M1D56M1I14M	*	0	0	CGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGACAGATTTAATATGA	:54</95I)99:848657I(7I,I)754I)I(6;85:44887I'6I,75I)I(I0'75787=39I,&:87496G'<I.&:I);6656H'H'87I<,'E&639I)I.'I'E&9:I':I+I':74<I)8I(BF'H'5;94789;I*856I*7F&I2(38I;+&I(6G'1H'I):&>975I.'I(;8754	NM:i:3	MD:Z:45^G71^G70	oR:Z:2	oH:i:1	oP:i:73	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.640	0	2	74	255	45M1D71M1D56M1I14M	*	0	0	CGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGACAGATTTAATATGA	:54</95I)99:848657I(7I,I)754I)I(6;85:44887I'6I,75I)I(I0'75787=39I,&:87496G'<I.&:I);6656H'H'87I<,'E&639I)I.'I'E&9:I':I+I':74<I)8I(BF'H'5;94789;I*856I*7F&I2(38I;+&I(6G'1H'I):&>975I.'I(;8754	NM:i:3	MD:Z:45G71G70	oR:Z:2	oH:i:1	oP:i:73	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.641	16	2	183	255	186M	*	0	0	TAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTC	0(I65(I:'/I'H17<6)I:'I6'G)I26825852(I4/3)I4'F'/I89',=I'H6(I1(I)I75;68(2I'H:<9;9:875:;7:3'G3;'G&-I=599(I84(I96)I65;:63644:=984587'G6946642583:9:'0I&E&F:8=5572'H)I(I3>685<<86'H896'H68(3I74	NM:i:0	MD:Z:186	oR:Z:2	oH:i:1	oP:i:182	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.642	0	1	5820	255	94M1D126M	*	0	0	CAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACA	783=;I)9<5866:674:H'<89;>7I(85I'I)777I':7986:8;64>5?I(39F':I(89I(4I-&:8H'I.&46I,&3689I(457::4;I+I(I8*&8<I3(748I;+&>I(H'I(I'87688:::9I(88>:I(6E&5I(7I'3I0'7<G'H'66=7;9I);59:2757I2(8E&I(6I2(5;4;779I at -':I/';II</*&5643;543;:6	NM:i:1	 [...]
+simulated.642	0	1	5820	255	94M1D126M	*	0	0	CAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACA	783=;I)9<5866:674:H'<89;>7I(85I'I)777I':7986:8;64>5?I(39F':I(89I(4I-&:8H'I.&46I,&3689I(457::4;I+I(I8*&8<I3(748I;+&>I(H'I(I'87688:::9I(88>:I(6E&5I(7I'3I0'7<G'H'66=7;9I);59:2757I2(8E&I(6I2(5;4;779I at -':I/';II</*&5643;543;:6	NM:i:1	 [...]
 simulated.643	0	1	4084	255	204M	*	0	0	TCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACC	15I(I)I(I'575:G'76673I'8I2(:87632865I)75<I/'6I(I1(I(=I(9;07;:8I(9I(683687G'<I(I(I)I)8I2(I(495I(6;86I(829I/'I)G'8;68I'8977<8I'83I0'98I(<H';:74755758964I'I3(>I0'I(I)I(866744357734445I(I/'87I)4688I(4I'I(48I(	NM:i:0	MD:Z:204	oR:Z:1	oH:i:1	oP:i:4083	oS:A [...]
 simulated.644	16	1	119	255	176M	*	0	0	AGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAA	;7805&D<8;6:857(I7>8:&.I7976707(I(I7;(1I5:99:6)I'0I8<'I786866(I2769'H9'H59)I'H78(I(I9)I8;6675862&F6(I='G*I687&D'I8863?'G&).:II888'H(I58'G)I'.I&E46(I:693'.I;946(I:=847;(I8='I9(I	NM:i:0	MD:Z:176	oR:Z:1	oH:i:1	oP:i:118	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.645	16	2	29	255	4M1D28M1I57M1D16M1I94M	*	0	0	CAGCGCCGTTTGCGTATATAGGAATAGCAGGGTCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGTCTTGGCCCGTATCGTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTT	8775D)I8'.I;6<:78995'I(I45476'0I(98'G9421*I84>86;361(I4<?3088:7'G9(I'H5=6(I(I8586585695(I<+I76)I'I(2I:9651'857'1I:36@:6(I7'0I8'G;8897)I)I:9(.DI(I3<5(I'/I(I(I6<'I;(2I'H776=(I?&E7'G(I9879;859'I28=(I2'I(I	NM:i:4	MD:Z:4^G85^G110	oR:Z:2	oH: [...]
-simulated.646	0	1	4580	255	30M1D10M1I116M1D46M1I3M	*	0	0	TGGAGCCGCCCTACTCCTAGCGATCGTCAAGGTACTTTGTAGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATACTT	<E&=6I(7I0'748;F&6;82889:5;4F'I,749I.&<8(4H'I(3I(538G'6=8=;749I(?I.&;I'7=69I'99I(<>496I2(8:6538I'8F'=:297I/'I(777I(49994:I.&<91I(H'55896H'5666I/'739:F':<H':;IC.(I0'I)=G'563:I)7>5<G'97:6;491II2*&7823I(>>3'6G'	NM:i:4	MD:Z:30^G126 [...]
-simulated.647	0	1	5192	255	13M1D153M1D53M	*	0	0	GCTAATTGCAAGGTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCC	85:I'I*;4I(I*I,787I/'I(F'8 at A958:;8:94I.&:68F'4I)I(7I'@:68I'8I(99549789458H'5:695I*I(558I.&I0'96;958I(7>55E&I)E&5975G'I)<:51<06I/'86I-&:I/'I(I*:G'5I(395=8;;9I,&0774;1;I6)6H'1I(758I1(9356;87443I*<3I'=67:698H'627I-&/=94;I)	NM:i [...]
-simulated.648	0	1	2559	255	154M1I23M1D10M	*	0	0	GACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACTAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTT	2?4:744838395I'8F&1II2*&<;4I'A6696599I3(I(::6:328I(7;I(5:699:6I*75755;>8;3II2*&9 at I(=I0'83I(57728<66;4I(588776F'899;G'98:335:86:343I(:<4F'628:64<<67I(8I)94'9725945585I'7I<,&42I/'7I,I8*&87I'	NM:i:2	MD:Z:177^T10	oR:Z:1	oH:i:1	oP:i:2558	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.649	16	1	1426	255	174M1D9M	*	0	0	TCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAGTCGCGT	=8:6469)I6'G4::397'I5786(I(I4'/I6(I(I&-I79687(I684;9;'/I88;2::'I)I6'F'G8;?5>9;;7979@:;;(I'/I<5523(1I874&*3II'H)I97(I)I:6:<;98&-I:7:;<7699'H47:;6867;'.I(I804<6:823'I87758<4:<4,I7348767	NM:i:1	MD:Z:174^A9	oR:Z:1	oH:i:1	oP:i:1425	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.645	16	2	29	255	4M1D28M1I57M1D16M1I94M	*	0	0	CAGCGCCGTTTGCGTATATAGGAATAGCAGGGTCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGTCTTGGCCCGTATCGTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTT	8775D)I8'.I;6<:78995'I(I45476'0I(98'G9421*I84>86;361(I4<?3088:7'G9(I'H5=6(I(I8586585695(I<+I76)I'I(2I:9651'857'1I:36@:6(I7'0I8'G;8897)I)I:9(.DI(I3<5(I'/I(I(I6<'I;(2I'H776=(I?&E7'G(I9879;859'I28=(I2'I(I	NM:i:4	MD:Z:4G85G110	oR:Z:2	oH:i: [...]
+simulated.646	0	1	4580	255	30M1D10M1I116M1D46M1I3M	*	0	0	TGGAGCCGCCCTACTCCTAGCGATCGTCAAGGTACTTTGTAGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATACTT	<E&=6I(7I0'748;F&6;82889:5;4F'I,749I.&<8(4H'I(3I(538G'6=8=;749I(?I.&;I'7=69I'99I(<>496I2(8:6538I'8F'=:297I/'I(777I(49994:I.&<91I(H'55896H'5666I/'739:F':<H':;IC.(I0'I)=G'563:I)7>5<G'97:6;491II2*&7823I(>>3'6G'	NM:i:4	MD:Z:30G126C [...]
+simulated.647	0	1	5192	255	13M1D153M1D53M	*	0	0	GCTAATTGCAAGGTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCC	85:I'I*;4I(I*I,787I/'I(F'8 at A958:;8:94I.&:68F'4I)I(7I'@:68I'8I(99549789458H'5:695I*I(558I.&I0'96;958I(7>55E&I)E&5975G'I)<:51<06I/'86I-&:I/'I(I*:G'5I(395=8;;9I,&0774;1;I6)6H'1I(758I1(9356;87443I*<3I'=67:698H'627I-&/=94;I)	NM:i [...]
+simulated.648	0	1	2559	255	154M1I23M1D10M	*	0	0	GACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACTAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTT	2?4:744838395I'8F&1II2*&<;4I'A6696599I3(I(::6:328I(7;I(5:699:6I*75755;>8;3II2*&9 at I(=I0'83I(57728<66;4I(588776F'899;G'98:335:86:343I(:<4F'628:64<<67I(8I)94'9725945585I'7I<,&42I/'7I,I8*&87I'	NM:i:2	MD:Z:177T10	oR:Z:1	oH:i:1	oP:i:2558	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.649	16	1	1426	255	174M1D9M	*	0	0	TCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAGTCGCGT	=8:6469)I6'G4::397'I5786(I(I4'/I6(I(I&-I79687(I684;9;'/I88;2::'I)I6'F'G8;?5>9;;7979@:;;(I'/I<5523(1I874&*3II'H)I97(I)I:6:<;98&-I:7:;<7699'H47:;6867;'.I(I804<6:823'I87758<4:<4,I7348767	NM:i:1	MD:Z:174A9	oR:Z:1	oH:i:1	oP:i:1425	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.650	0	1	8780	255	205M	*	0	0	ATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTA	9:77279I(8:I/'994I(98=:677I(I)9;889>I'24786:873I+1I'I(6G'II1*&52I(643:39I(I0'8I'I/';<:G'9;:6<I'5=I(6I2(I0'I(689645569I(9H'<6I(37<759<::662I;+&5 at I)I'I'I(I(68857;;68I(9I(I(:3I'8H'8::I(H'13I(7I/':6;65F'<8;17;	NM:i:0	MD:Z:205	oR:Z:1	oH:i:1	oP:i:8779	oS [...]
 simulated.651	16	1	8251	255	20M1I3M1I175M	*	0	0	AAGGTGATGTCCACTCTCCTAGAACGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTG	)I'H:97497'H8;446)I6%7)I&386839679;)I'I(I'0I'I9B47<(I8:(I;(I96'.I898)I4'G588:715994:(I72='/I(I4869'I9;<(I(I::'.I975'I7:::6;8(I797(I;8;238;83:5;:666858'H55(I576(I6888;;858;'I:8;7(I'I87'G;::77,I8:'I9785	NM:i:2	MD:Z:198	oR:Z:1	oH:i:1	oP:i:8250	oS [...]
 simulated.652	16	1	1231	255	204M	*	0	0	CGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCC	>(I16'H6'G'G<8)I13=8'/I=9)I(I6&+9I(I2(I<47433(I76'I57:'H>7:'I;:<7(I'/I8'G7&-I'0I4'/I9(I4)I:=7(I&+:I4:96;884<:(I5(I'F54'H)4I;1>9877'/I66)I76(I7'0I9(I5;'H'I788999748:779(I<7:939549&+<I6(I4(I:=(I3'/I9945:7'I	NM:i:0	MD:Z:204	oR:Z:1	oH:i:1	oP:i:1230	oS: [...]
-simulated.653	0	1	487	255	151M1I8M1D13M1I48M	*	0	0	AAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTACGACCAGACCCCCGGCGTCCCGTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGG	I*I*I';8I>,'65:78:1F'9=I'I>,'906I)94I2(8988I/'2I(I(7;:I/'7:9563I';9638I(4H'I(98897536I/'<8869I.&459;>75I'88<998<I/'89I0'8I'78532794I(4<>6;;=:I(48I'78I)%6:?I(7=8II7-(H'971I.&'57;5I(I)6I/'584:7988<3I(:/87;896=76I(9:67:41 [...]
-simulated.654	0	1	8963	255	26M1D12M1I99M1I63M	*	0	0	ATGCCAGGGCGCGCGGTCACTACGAGTTGCCGAAGCTCGATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGTCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGA	<;6H'6I/'67784I'?:6;649375I+9H'8H'2862&4566678I(684I1(556I)766<57H'64BI)I'9I(647I*:45346/89I(789=F&I'6<68:I/'I(I(3I'77:6;:I(959I/'I/'776H'&6I'6;5:788<I'G'96;96;I(8H'7I'I)5AI(4H'9=F'59I(8679I(:19;2 at 56:7:	NM:i:3	MD:Z:26^T174	oR:Z:1	oH:i:1	 [...]
-simulated.655	16	1	797	255	123M1I16M1D52M	*	0	0	AGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATCGCACCCCGGATAGCCCTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACG	69;657;7:65 at 78;87&-I48796239829*I86?:87:492:659B*I>55967=172(I9(I'I87(I59?'I4(I8(I'/I(I;66486(I&E;469:'G669'- at I8'G54867>0 at 8'<4:&+:I(I66=8&.ID77&-I96(I7799:496:9626378824(I3766<3(I98;=3;=9:4772	NM:i:2	MD:Z:139^T52	oR:Z:1	oH:i:1	oP:i:796	oS:A:R	XE:i:2	X [...]
-simulated.656	0	1	357	255	31M1I32M1I24M1D105M	*	0	0	GGATAGGAGGATTCGGGTGTGTCGCAAAAATAGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTAGTCACGTCAAATTCTCGGCTGGATCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCA	I'67:H'6I):G'7I.&;9;;4887II3*&6&I(I(8;76I/'I.&9848;@>:>:I(I)I2(6&37<757>8I0'I*5:8G'4;I(15I,I)3:878>;I(697I(4;7:65H'?9;>5466<H'76I(4G'G'H':=I;+&8885:66F'97H'I=,'686I(;<I1'6::6I-&5I(I(9;=I0'7:7366	NM:i:3	MD:Z:87^C105	oR:Z:1	oH:i:1	oP:i:356	oS:A:F	 [...]
-simulated.657	16	1	5319	255	84M1D88M	*	0	0	GGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATA	(1I91&-I9'.I&F*I9)I;'F:84457?4'/I9776777&+;I;)I<(I778&.I868;9=;6:4(I97&E9776659(I57;+I77935(I:(I9&.I5'I7:&)1II;8758'G485978=<)I89(I:63689)I765487699'G'I567(I5*I4=9>75'G)I40	NM:i:1	MD:Z:84^G88	oR:Z:1	oH:i:1	oP:i:5318	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.658	0	2	178	255	191M1D14M	*	0	0	CGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGAGATTTATCCT	8I0'I'I'<8F'6I.&I(34:8I)7G'3I(I)7775617<I'9<0I(6I(I1'5:I:+&F'9I(;I(I(97739I/'I(883476799;6;45I'87G'I/';696I(78I(19H'95<645498975580;;I(5787;9544;6;5I-&I'I'96:1987I(I(I);6=::7489I*957E&97I/'45I7*39:I.'=7I)9	NM:i:1	MD:Z:191^G14	oR:Z:2	oH:i:1	oP:i [...]
-simulated.659	0	1	8854	255	26M1D132M1I50M	*	0	0	GGGCTTAAATGATTACTGTAAGTAATGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGACGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAAC	I1'8I(I0'87>I'49989I(16I)8I,I0'I(>9:8729:8I(5I(66I'8;697997>;::I9*&;:F'I(I'I'I(:28977475I(2I'G'5:G'=I'7;9F'I(48I'2I/'3:3;3I(969:?9:88;I2(3I(6E&=79777;9:75I(91%6I.&:89I(:869:6I(466I(I(:I)878I(<:<873954I)8:88I(7	NM:i:2	MD:Z:26^G182	oR:Z [...]
-simulated.660	16	1	5083	255	49M1I73M1D75M	*	0	0	GAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCACTACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAG	8(I;834'H8774<:?96(I/78:9'H9;8)I92)I(I8(2I1'I<375&4;&).9II9:>53:5760(I434:&.I5:9(I4'H76>6(I=736&,<I:'H(1I86;'I578)I(I<A)I(I,I2?9&.I(I'H4:5357269563&-I785(I?)I(I3(I7;<7'G6(I:388555;947'G94<77(I)I::;8	NM:i:2	MD:Z:122^T75	oR:Z:1	oH:i:1	oP:i:5082	oS [...]
-simulated.661	0	1	7885	255	44M1I62M1D20M1I35M1D47M	*	0	0	AGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCGAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCGTTTCCACAGGAACTAGCTAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCAC	5;I9+&3I)663I(I(58;68486I.&7:H':I)9I)36I(7=4)I(=09886945I(/5I(3<6859659:5<9I(88<47I(3I)7I(2:3I'@I/'3807455:I,8I1(I'5<?I(H'<8875(I'7I1(/9=88<675F'8I)6I'I-&747677;02I,:5I)6:8I)I0'I(36I(5I(977IC.(83:9:7G'6=771567;	NM:i:4	MD:Z:1 [...]
-simulated.662	16	1	231	255	91M1D33M1D25M1I45M	*	0	0	CGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCGATCTATAATCTGGACGCACAAAATCATCTTGGATAGGAGGATTCGGGTGTGTCGCGAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGT	777954(I%(-7II7<8'G(I88'I(I'/I(I27)I8679'.I<:36'H359::7(I99(I8'G7:7:'H5)I'F'I'I&+9I4639'G47,I7778676+I559(I908;6:&+<I>7627'I,I5:9)I6)I<(I2'0I87967:93%%)/FI6'I)I;658&.I&.I6834751979(I(I'.I68==7498	NM:i:3	MD:Z:91^C33^G70	oR:Z:1	oH:i:1	oP:i:230	oS [...]
+simulated.653	0	1	487	255	151M1I8M1D13M1I48M	*	0	0	AAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTACGACCAGACCCCCGGCGTCCCGTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGG	I*I*I';8I>,'65:78:1F'9=I'I>,'906I)94I2(8988I/'2I(I(7;:I/'7:9563I';9638I(4H'I(98897536I/'<8869I.&459;>75I'88<998<I/'89I0'8I'78532794I(4<>6;;=:I(48I'78I)%6:?I(7=8II7-(H'971I.&'57;5I(I)6I/'584:7988<3I(:/87;896=76I(9:67:41 [...]
+simulated.654	0	1	8963	255	26M1D12M1I99M1I63M	*	0	0	ATGCCAGGGCGCGCGGTCACTACGAGTTGCCGAAGCTCGATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGTCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGA	<;6H'6I/'67784I'?:6;649375I+9H'8H'2862&4566678I(684I1(556I)766<57H'64BI)I'9I(647I*:45346/89I(789=F&I'6<68:I/'I(I(3I'77:6;:I(959I/'I/'776H'&6I'6;5:788<I'G'96;96;I(8H'7I'I)5AI(4H'9=F'59I(8679I(:19;2 at 56:7:	NM:i:3	MD:Z:26T174	oR:Z:1	oH:i:1	o [...]
+simulated.655	16	1	797	255	123M1I16M1D52M	*	0	0	AGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATCGCACCCCGGATAGCCCTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACG	69;657;7:65 at 78;87&-I48796239829*I86?:87:492:659B*I>55967=172(I9(I'I87(I59?'I4(I8(I'/I(I;66486(I&E;469:'G669'- at I8'G54867>0 at 8'<4:&+:I(I66=8&.ID77&-I96(I7799:496:9626378824(I3766<3(I98;=3;=9:4772	NM:i:2	MD:Z:139T52	oR:Z:1	oH:i:1	oP:i:796	oS:A:R	XE:i:2	XS [...]
+simulated.656	0	1	357	255	31M1I32M1I24M1D105M	*	0	0	GGATAGGAGGATTCGGGTGTGTCGCAAAAATAGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTAGTCACGTCAAATTCTCGGCTGGATCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCA	I'67:H'6I):G'7I.&;9;;4887II3*&6&I(I(8;76I/'I.&9848;@>:>:I(I)I2(6&37<757>8I0'I*5:8G'4;I(15I,I)3:878>;I(697I(4;7:65H'?9;>5466<H'76I(4G'G'H':=I;+&8885:66F'97H'I=,'686I(;<I1'6::6I-&5I(I(9;=I0'7:7366	NM:i:3	MD:Z:87C105	oR:Z:1	oH:i:1	oP:i:356	oS:A:F	X [...]
+simulated.657	16	1	5319	255	84M1D88M	*	0	0	GGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATA	(1I91&-I9'.I&F*I9)I;'F:84457?4'/I9776777&+;I;)I<(I778&.I868;9=;6:4(I97&E9776659(I57;+I77935(I:(I9&.I5'I7:&)1II;8758'G485978=<)I89(I:63689)I765487699'G'I567(I5*I4=9>75'G)I40	NM:i:1	MD:Z:84G88	oR:Z:1	oH:i:1	oP:i:5318	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.658	0	2	178	255	191M1D14M	*	0	0	CGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGAGATTTATCCT	8I0'I'I'<8F'6I.&I(34:8I)7G'3I(I)7775617<I'9<0I(6I(I1'5:I:+&F'9I(;I(I(97739I/'I(883476799;6;45I'87G'I/';696I(78I(19H'95<645498975580;;I(5787;9544;6;5I-&I'I'96:1987I(I(I);6=::7489I*957E&97I/'45I7*39:I.'=7I)9	NM:i:1	MD:Z:191G14	oR:Z:2	oH:i:1	oP:i: [...]
+simulated.659	0	1	8854	255	26M1D132M1I50M	*	0	0	GGGCTTAAATGATTACTGTAAGTAATGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGACGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAAC	I1'8I(I0'87>I'49989I(16I)8I,I0'I(>9:8729:8I(5I(66I'8;697997>;::I9*&;:F'I(I'I'I(:28977475I(2I'G'5:G'=I'7;9F'I(48I'2I/'3:3;3I(969:?9:88;I2(3I(6E&=79777;9:75I(91%6I.&:89I(:869:6I(466I(I(:I)878I(<:<873954I)8:88I(7	NM:i:2	MD:Z:26G182	oR:Z: [...]
+simulated.660	16	1	5083	255	49M1I73M1D75M	*	0	0	GAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCACTACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAG	8(I;834'H8774<:?96(I/78:9'H9;8)I92)I(I8(2I1'I<375&4;&).9II9:>53:5760(I434:&.I5:9(I4'H76>6(I=736&,<I:'H(1I86;'I578)I(I<A)I(I,I2?9&.I(I'H4:5357269563&-I785(I?)I(I3(I7;<7'G6(I:388555;947'G94<77(I)I::;8	NM:i:2	MD:Z:122T75	oR:Z:1	oH:i:1	oP:i:5082	oS: [...]
+simulated.661	0	1	7885	255	44M1I62M1D20M1I35M1D47M	*	0	0	AGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCGAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCGTTTCCACAGGAACTAGCTAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCAC	5;I9+&3I)663I(I(58;68486I.&7:H':I)9I)36I(7=4)I(=09886945I(/5I(3<6859659:5<9I(88<47I(3I)7I(2:3I'@I/'3807455:I,8I1(I'5<?I(H'<8875(I'7I1(/9=88<675F'8I)6I'I-&747677;02I,:5I)6:8I)I0'I(36I(5I(977IC.(83:9:7G'6=771567;	NM:i:4	MD:Z:1 [...]
+simulated.662	16	1	231	255	91M1D33M1D25M1I45M	*	0	0	CGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCGATCTATAATCTGGACGCACAAAATCATCTTGGATAGGAGGATTCGGGTGTGTCGCGAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGT	777954(I%(-7II7<8'G(I88'I(I'/I(I27)I8679'.I<:36'H359::7(I99(I8'G7:7:'H5)I'F'I'I&+9I4639'G47,I7778676+I559(I908;6:&+<I>7627'I,I5:9)I6)I<(I2'0I87967:93%%)/FI6'I)I;658&.I&.I6834751979(I(I'.I68==7498	NM:i:3	MD:Z:91C33G70	oR:Z:1	oH:i:1	oP:i:230	oS:A [...]
 simulated.663	16	1	7413	255	39M1I162M	*	0	0	GAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAACGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATA	6;;9778;;56?'/I6(I665'H;&*9I;74858475)I&(I66'I&F7:<:8:&.I'0I6986;26'I66(I8&.I(I'G28'F(I;86746445&-I1686(I&-I95&.I(I&,I:4'I(I'H'F618::9(I95'G'H4694(I:5788*I8)I7)I'H9;6(I840(I9?'I9(I'I6(I794;66=389'G;7;24	NM:i:1	MD:Z:201	oR:Z:1	oH:i:1	oP:i:7412	oS [...]
-simulated.664	16	1	3097	255	10M1D82M1D92M	*	0	0	CGTATGTCTTCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAA	:698=64:'IC(I'I7<97<7893996(I=68'/I<:386648&-I&)1II9962;78;6'G8276:5665'I9:5)I696<<(I87(I969C&-I78'I(I8(I5:7&-I77(1I(I*I'H'I:8',>I739:'I&)1II5(I;8'/I552&+:I(I886'G<(I&,<I7;:(I<559@(I)I	NM:i:2	MD:Z:10^C82^G92	oR:Z:1	oH:i:1	oP:i:3096	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.665	0	1	1763	255	20M1D189M	*	0	0	CGGCTATGCGTTGTATTCCACCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCC	6I)6727:79I(699I(I'9I7*6599I'I)74I2(I'8I*6:96763566:764I(39481F&?3I1(I-&I+65:I9*&6989H'7H'I(I(8I(76;I)498:H'H'8487:87=8A;G'I)767I(I2(9G'56:I(7686=I'53H'I(46;I(977I):7:61F'9I(0I(876H':99I(6=56>=57I(6563I8*&69G'	NM:i:1	MD:Z:20^C189	oR:Z:1	oH [...]
-simulated.666	16	1	7601	255	34M1I96M1D56M	*	0	0	AGTACGAATGATAGCGAATAGTGGTGGAACAGTGTCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAG	977686'I:794:;58'G4783'I8(I(I57785'66988=(I'/I8'G47(I<)4I'F:6;66<864?7(I598(I68'/I599:5'/I=68)I46(I177976'F(I)I83'H66(I&D56;7;'G778D7<:877(I'G(I949'H94 at 6:58)I(I)I54'0I758&+;I;'G&.I'I'G:67	NM:i:2	MD:Z:130^G56	oR:Z:1	oH:i:1	oP:i:7600	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.664	16	1	3097	255	10M1D82M1D92M	*	0	0	CGTATGTCTTCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAA	:698=64:'IC(I'I7<97<7893996(I=68'/I<:386648&-I&)1II9962;78;6'G8276:5665'I9:5)I696<<(I87(I969C&-I78'I(I8(I5:7&-I77(1I(I*I'H'I:8',>I739:'I&)1II5(I;8'/I552&+:I(I886'G<(I&,<I7;:(I<559@(I)I	NM:i:2	MD:Z:10C82G92	oR:Z:1	oH:i:1	oP:i:3096	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.665	0	1	1763	255	20M1D189M	*	0	0	CGGCTATGCGTTGTATTCCACCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCC	6I)6727:79I(699I(I'9I7*6599I'I)74I2(I'8I*6:96763566:764I(39481F&?3I1(I-&I+65:I9*&6989H'7H'I(I(8I(76;I)498:H'H'8487:87=8A;G'I)767I(I2(9G'56:I(7686=I'53H'I(46;I(977I):7:61F'9I(0I(876H':99I(6=56>=57I(6563I8*&69G'	NM:i:1	MD:Z:20C189	oR:Z:1	oH: [...]
+simulated.666	16	1	7601	255	34M1I96M1D56M	*	0	0	AGTACGAATGATAGCGAATAGTGGTGGAACAGTGTCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAG	977686'I:794:;58'G4783'I8(I(I57785'66988=(I'/I8'G47(I<)4I'F:6;66<864?7(I598(I68'/I599:5'/I=68)I46(I177976'F(I)I83'H66(I&D56;7;'G778D7<:877(I'G(I949'H94 at 6:58)I(I)I54'0I758&+;I;'G&.I'I'G:67	NM:i:2	MD:Z:130G56	oR:Z:1	oH:i:1	oP:i:7600	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.667	16	1	9043	255	217M	*	0	0	TTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAG	'I=88536876'I=638(I'I4;869'0I(I&D8'I55:574(I1;9&.I&.I097'H5(I>6365997'I)I88753<'H;)I;)I'I;7)I5(I96)I99'H484<&F:484678779)I'G&.I=2(I716)I9'/I:778:965;;;903:47:<:)I=6587793&.I8'I6<64(I(I'H6;9'G:(I'/I;)I(I7>6(I5&.I)I8'G3	NM:i:0	MD:Z:217	o [...]
 simulated.668	16	1	559	255	13M1I161M1I41M	*	0	0	TCCTTAGTATCTACTTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTCGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTT	4)I(I79:;59<7%(2I7::<8(3I7264;3:(I499?;46'0I87'/I;'I7<87:9=5(I6546683;'I89'I:8(I996(I529&)/;II(I<99(1I59<4'G(I;&.I<:9:.59879)I:766;57:874'H237879943'H657'H765'I31(1I5(I:6)I6;5%6:3<<9:4)I55:<)I43(I99696)I)I47;7(I'H1'/I	NM:i:2	M [...]
-simulated.669	0	1	8671	255	17M1D53M1I81M1I31M1D18M	*	0	0	AACTTGCCGCAATAGTTGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGTACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGACTACAAGCCAATGGAAAAAGATTCATAGCAAGGCTTAAATGATTACTGT	I(;I(:G'55I'/35G'DI)579I9+&G'56I0'H'I/'H'9H'I0'I1'I'I/'65937:384I0':I(&7:I(;8I'I(;:9I(I/'77:6?59I=,'<<3G'4595:5875:>H'39I.&88<I'/27=439I(I)88;497I(:8749&3597I(5G'H'5I*II1*&99I)5=4<76G'I,3I)I/'38;I'37695	NM:i:4	MD:Z:17^G165^G18	oR:Z: [...]
+simulated.669	0	1	8671	255	17M1D53M1I81M1I31M1D18M	*	0	0	AACTTGCCGCAATAGTTGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGGCTGCTACTGCCCAGGTACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGACTACAAGCCAATGGAAAAAGATTCATAGCAAGGCTTAAATGATTACTGT	I(;I(:G'55I'/35G'DI)579I9+&G'56I0'H'I/'H'9H'I0'I1'I'I/'65937:384I0':I(&7:I(;8I'I(;:9I(I/'77:6?59I=,'<<3G'4595:5875:>H'39I.&88<I'/27=439I(I)88;497I(:8749&3597I(5G'H'5I*II1*&99I)5=4<76G'I,3I)I/'38;I'37695	NM:i:4	MD:Z:17G165G18	oR:Z:1	 [...]
 simulated.670	0	2	116	255	132M1I44M1I31M	*	0	0	TTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGTCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACGAATCTATATGCATGTCTACTTATAGCGCGCA	H'=I0';5I(I(I.'<6;:2556I1(579869I(9I.'7I(:5998I(I,:5I9*&I)91;G'I/'I'I(5:I)8I0'H'933:H'8I(7H'I,926=8786I(669I'=H'I.&74I9*&I(6I)6I)I(7(4884I0'I)78=786>967=556I'87I'I0':528F&46I(76'I(=65?9<:4;3>7:99:4I)95;5683785	NM:i:2	MD:Z:207	oR:Z:2	oH [...]
-simulated.671	16	1	273	255	37M1D45M1D25M1D27M1I74M	*	0	0	GAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGATAGGAGGATTCGGGTGTGTCGCAAAATGGCCTAGCAAACCCTGTCGAGAGTAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGA	<9=39'GD679:7'G89'H8(I5555'H:(I(I(I'I*7I;>78'I29&-I7834774'I583(I=36948',<I6:=26'G,I957(I<(I:)I3'.I8468>96:(/FI8(I(I9:4:'/I'0I375;<987(8<'I(I'1I889A6>;86'0I&E<7:'F86)I77'0I)I76:4687)I628)I97946;(I;:95468:9(I:>	NM:i:4	MD:Z:37^ [...]
-simulated.672	16	1	7207	255	12M1D142M1I1M	*	0	0	GTCTCCTGGCGTGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCAGT	6842*I2'I96:,I:456(I675(I:39)I6(I'G87<)I5296845:766:&*9I86(I8'G65874914)I(I;8'H69&+;I(I077>:'I5'I9>&-I636(I793)I'/I9;'/I664(I6971(I>69:'I667/?<:4(I56==976'9	NM:i:2	MD:Z:12^G143	oR:Z:1	oH:i:1	oP:i:7206	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.671	16	1	273	255	37M1D45M1D25M1D27M1I74M	*	0	0	GAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGATAGGAGGATTCGGGTGTGTCGCAAAATGGCCTAGCAAACCCTGTCGAGAGTAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGA	<9=39'GD679:7'G89'H8(I5555'H:(I(I(I'I*7I;>78'I29&-I7834774'I583(I=36948',<I6:=26'G,I957(I<(I:)I3'.I8468>96:(/FI8(I(I9:4:'/I'0I375;<987(8<'I(I'1I889A6>;86'0I&E<7:'F86)I77'0I)I76:4687)I628)I97946;(I;:95468:9(I:>	NM:i:4	MD:Z:37T [...]
+simulated.672	16	1	7207	255	12M1D142M1I1M	*	0	0	GTCTCCTGGCGTGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCAGT	6842*I2'I96:,I:456(I675(I:39)I6(I'G87<)I5296845:766:&*9I86(I8'G65874914)I(I;8'H69&+;I(I077>:'I5'I9>&-I636(I793)I'/I9;'/I664(I6971(I>69:'I667/?<:4(I56==976'9	NM:i:2	MD:Z:12G143	oR:Z:1	oH:i:1	oP:i:7206	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.673	0	2	70	255	182M1I17M	*	0	0	AATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGACTTTAATATGATGTCGTC	I)27559?4.6I(69633;855I';H'I'<66I'I)89736:<<86I(6I-&34I(I(I.'78969476I/'569453E&:I/'7I(82457I(I(3:I8*&I)983I(I-&E&G'49I'9I0'I(8=95H'8I(3I(I(7:624;59I)6:9I'7I(I2(89I;+&H';I*:I)I(3966A%I/'I);;<8<5?68787	NM:i:1	MD:Z:199	oR:Z:2	oH:i:1	oP:i:69	oS:A:F	XE:i [...]
-simulated.674	0	1	5345	255	9M1I49M1D10M1I58M1I71M	*	0	0	CATGTTTCTAGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGTGATGCCACGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCTACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTT	876<I3(79*:<997I=,'7I';I(798I-&64868257=9I(43I(:64:7<5F&288I,86930I(6&I'3I-&:I(37II2*&864;5I(57:7:;::G';8G'7557?5I';;7578955I)I(&548I*=I(83974:I(I)5I):36:6G':3844<<;E&9I/':;I*=8I.&I/'8699:I(974I1(0:I)	NM:i:4	MD:Z:58^G139	oR:Z:1	oH:i:1	 [...]
-simulated.675	0	2	153	255	5M1I6M1D26M1D41M1D37M1I6M1D78M	*	0	0	CTCCTACATATTGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTACCAGCCTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGA	8:I(6%7467I'C68I;+&I(887I)I-&I(I'<0I'9I,I)8673I)5I'3I(I'5487:6<;G'627H':I'I/'67I7*I)6I'<I(G'349;7I/'I'2565536897657?(E&5=I)I,4788H'>6I(93G'5:4775683>6977:56I(929787;973695I/'I)I)7;98:48I'I'I(884873;968	NM:i:6	MD:Z:11^G26^G41^C4 [...]
-simulated.676	0	1	3285	255	90M1D104M	*	0	0	GTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAA	08I)29I0':9F&:617946;:8;H'4I)I(:I=,'9G'I(8=6;I(<2I)I(929I/'7379I=,'=I(65G'I(689;6I at -'I)H'7I+3<693I(599>?85I/'65I)E&:;58=5I(.4:85;5I)I/'I/'<8==I(7978948<119;3:9;4I):7;64I=,'53G'II2*&6I.'897:796I(	NM:i:1	MD:Z:90^T104	oR:Z:1	oH:i:1	oP:i:3284	oS:A:F	XE:i:1	X [...]
-simulated.677	0	1	8777	255	42M1I64M1D61M1I24M1D31M	*	0	0	GACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACTAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAACGTTGGATAACGGTAGTTAATGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCT	96>:>648=9F'89I.':;7E&68:9694G'I)895398I(9%;8879797I'7I'I(2I(II0)&32I(@677 at 4I(I0'<G'I/'477H'66;=7I(:7I'7I/'I,I'1:44<9<<0I(6H'85I(89:866154252I>,'<4I(H'G'I(I(85624:<C<I)(9I(I(56I)8H'543H'I(69I)6I+86;34H';298689: [...]
-simulated.678	0	1	3794	255	22M1I32M1D101M1I11M1I23M1D9M	*	0	0	TTTATGGTTGCGCCAGTGCTAGTATCGTACGTCTCTCCCGGTGACAACATGGAAATCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAAGTGCATGAGTAAGTTGACTGCGTCGCGCGGGTAAGTATGACTTAG	I.&88I'H'692I(=5736937&7758777683=72I.&I)==6<I*574H'I-&D3I(7777<67:78H'1I*7I'33:8874I(9I)8886759II9.)&58347844I(I(5I)35985;2>;896I0'8956G'88;<I(6<I1(48I(I3(&;</726278I(%H'59276:7915994I0'7I(88C3697G'<9	NM:i:5	MD:Z:54^T135^A9	oR: [...]
+simulated.674	0	1	5345	255	9M1I49M1D10M1I58M1I71M	*	0	0	CATGTTTCTAGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGTGATGCCACGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCTACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTT	876<I3(79*:<997I=,'7I';I(798I-&64868257=9I(43I(:64:7<5F&288I,86930I(6&I'3I-&:I(37II2*&864;5I(57:7:;::G';8G'7557?5I';;7578955I)I(&548I*=I(83974:I(I)5I):36:6G':3844<<;E&9I/':;I*=8I.&I/'8699:I(974I1(0:I)	NM:i:4	MD:Z:58G139	oR:Z:1	oH:i:1	o [...]
+simulated.675	0	2	153	255	5M1I6M1D26M1D41M1D37M1I6M1D78M	*	0	0	CTCCTACATATTGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTACCAGCCTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGA	8:I(6%7467I'C68I;+&I(887I)I-&I(I'<0I'9I,I)8673I)5I'3I(I'5487:6<;G'627H':I'I/'67I7*I)6I'<I(G'349;7I/'I'2565536897657?(E&5=I)I,4788H'>6I(93G'5:4775683>6977:56I(929787;973695I/'I)I)7;98:48I'I'I(884873;968	NM:i:6	MD:Z:11G26G41C43T7 [...]
+simulated.676	0	1	3285	255	90M1D104M	*	0	0	GTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAA	08I)29I0':9F&:617946;:8;H'4I)I(:I=,'9G'I(8=6;I(<2I)I(929I/'7379I=,'=I(65G'I(689;6I at -'I)H'7I+3<693I(599>?85I/'65I)E&:;58=5I(.4:85;5I)I/'I/'<8==I(7978948<119;3:9;4I):7;64I=,'53G'II2*&6I.'897:796I(	NM:i:1	MD:Z:90T104	oR:Z:1	oH:i:1	oP:i:3284	oS:A:F	XE:i:1	XS [...]
+simulated.677	0	1	8777	255	42M1I64M1D61M1I24M1D31M	*	0	0	GACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACTAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAACGTTGGATAACGGTAGTTAATGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCT	96>:>648=9F'89I.':;7E&68:9694G'I)895398I(9%;8879797I'7I'I(2I(II0)&32I(@677 at 4I(I0'<G'I/'477H'66;=7I(:7I'7I/'I,I'1:44<9<<0I(6H'85I(89:866154252I>,'<4I(H'G'I(I(85624:<C<I)(9I(I(56I)8H'543H'I(69I)6I+86;34H';298689: [...]
+simulated.678	0	1	3794	255	22M1I32M1D101M1I11M1I23M1D9M	*	0	0	TTTATGGTTGCGCCAGTGCTAGTATCGTACGTCTCTCCCGGTGACAACATGGAAATCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAAGTGCATGAGTAAGTTGACTGCGTCGCGCGGGTAAGTATGACTTAG	I.&88I'H'692I(=5736937&7758777683=72I.&I)==6<I*574H'I-&D3I(7777<67:78H'1I*7I'33:8874I(9I)8886759II9.)&58347844I(I(5I)35985;2>;896I0'8956G'88;<I(6<I1(48I(I3(&;</726278I(%H'59276:7915994I0'7I(88C3697G'<9	NM:i:5	MD:Z:54T135A9	oR:Z: [...]
 simulated.679	0	1	6377	255	154M1I35M	*	0	0	AGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACGTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGC	9<8I/'5I(I0'I):7I'8263;78I(7::6977=7I'I.'H'739;I0'968I(63F&969I8*&5:I*79I(I'I(9;9I(87I(569G':56<99:6I(5826F'=5I)I)<95<5:396;=45F'576I*9;9749;I0'<59;94<I*6&9<6;877656H'290;67:I*;I(6;466<I/':=	NM:i:1	MD:Z:189	oR:Z:1	oH:i:1	oP:i:6376	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.680	0	1	8505	255	2M1I44M1I8M1D8M1D136M	*	0	0	GTAGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGAGTCATCCGGCCCCGCTCAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCC	6;*I(78>6I':9I(9I(14D&6I.'58;8I(4I(;3862;4H'I(<';96:F'I(IE/(9666I7*46G';578I.';I/'4I(8I(5776I(7I)145I(6H'8:6I;+&I1'I(987;;I=,'65:695;I.&686:8:3994467G'2I'79:E&7I'66:I/'4I(6I(97I(334H'I*I(969I<+&I(<7I*	NM:i:4	MD:Z:54^C8^A136	oR:Z:1	oH:i: [...]
-simulated.681	16	1	7197	255	37M1I26M1D135M1D16M	*	0	0	TGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGACATTCGGAAGTCAAGTCATATATGAGAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCTCGTAGCCTTGTGT	878565;:9>6:69'F9(I83<&.I:786(I987)I8163'I2'I(I574(I4797<<5955::)5I4:)I5(I699749:8'H'I48)I;8&*8I'I8698<'H4)I57&-I367'I99:(I'/I77&.I6>=(I5:89(I7:77(I98:7975=)I6486:=5:8'0I66975'H;394:7<&,<I958'I:(I87:+I4;88:6'I'I958:	NM:i:3 [...]
+simulated.680	0	1	8505	255	2M1I44M1I8M1D8M1D136M	*	0	0	GTAGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGAGTCATCCGGCCCCGCTCAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCC	6;*I(78>6I':9I(9I(14D&6I.'58;8I(4I(;3862;4H'I(<';96:F'I(IE/(9666I7*46G';578I.';I/'4I(8I(5776I(7I)145I(6H'8:6I;+&I1'I(987;;I=,'65:695;I.&686:8:3994467G'2I'79:E&7I'66:I/'4I(6I(97I(334H'I*I(969I<+&I(<7I*	NM:i:4	MD:Z:54C8A136	oR:Z:1	oH:i:1	 [...]
+simulated.681	16	1	7197	255	37M1I26M1D135M1D16M	*	0	0	TGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGACATTCGGAAGTCAAGTCATATATGAGAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCTCGTAGCCTTGTGT	878565;:9>6:69'F9(I83<&.I:786(I987)I8163'I2'I(I574(I4797<<5955::)5I4:)I5(I699749:8'H'I48)I;8&*8I'I8698<'H4)I57&-I367'I99:(I'/I77&.I6>=(I5:89(I7:77(I98:7975=)I6486:=5:8'0I66975'H;394:7<&,<I958'I:(I87:+I4;88:6'I'I958:	NM:i:3 [...]
 simulated.682	0	1	6081	255	209M	*	0	0	GACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGT	<7I(799;835I(8I(7:4I'8:<7II2*&:I:+&387I':65I/'I'97296768;756I(<I;+&I/':65668=I(7/7=I(87I0'686I-&738298>666688;4=745I'5:8I(6;6I(98I(4I.&<6>;7:I)4:::94889::9:5I-&748I(2=1786;I1(775968I.&87488I-&2I(75I?-'5I(I/'88	NM:i:0	MD:Z:209	oR:Z:1	oH:i:1	oP:i [...]
-simulated.683	0	1	7653	255	118M1D66M	*	0	0	ACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATG	9I0'I)54577252598G';;5I(66I0'8;6;8I.&643I(76I)593742F'I(H'88I(64I'H'277>7I(7<4E&499/78I(I(H'367I*8:38>69I(F'I'64I1(7;3I4)7I)I0'I)H'79<2F'7449?I'7:I-&6784II2*&76I(I.&6789886I(7;7:894<9<	NM:i:1	MD:Z:118^G66	oR:Z:1	oH:i:1	oP:i:7652	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.683	0	1	7653	255	118M1D66M	*	0	0	ACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATG	9I0'I)54577252598G';;5I(66I0'8;6;8I.&643I(76I)593742F'I(H'88I(64I'H'277>7I(7<4E&499/78I(I(H'367I*8:38>69I(F'I'64I1(7;3I4)7I)I0'I)H'79<2F'7449?I'7:I-&6784II2*&76I(I.&6789886I(7;7:894<9<	NM:i:1	MD:Z:118G66	oR:Z:1	oH:i:1	oP:i:7652	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.684	16	1	5169	255	51M1I145M	*	0	0	GCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCTATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTC	75'G4:78',=I;'H)4I566'G97:(I(I78(I(I&.I797'/I'H(I75'9<4;;35:58(2I=57)I;(I*I;'G9:8;(I5(I6=78689:85:(I54768(I+I596(1I&.I6;5638)I5787&F)I(I<7;8)I(I:476297'/I88'.I<(2I'F'H:(I4'G85544266(1I96<15:9&*8I<8	NM:i:1	MD:Z:196	oR:Z:1	oH:i:1	oP:i:5168	oS:A:R	XE:i: [...]
-simulated.685	0	1	5576	255	38M1I49M1I24M1D95M1I4M	*	0	0	GTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCTATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGTAGGCAGAATCTTCCCCAGCTTAGATAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGACATT	85:5:=35=767<I(97I'I(<3;392I(7<:85:I(:)7H'2966;5798:=70:977I'7999I)53:694I.'56I(876;I(7:';I(37:H'77I'I8*&:68G'7:;D6I)I(5I*4I)=;I/'7I/'7587I/'75596I'I+6G':8:7I)99:23I(968G'987885II0)&I(78I)9399:I(I);55H'7;4?I(&69I(	NM:i:4	M [...]
-simulated.686	0	1	3590	255	37M1D38M1D98M1D32M	*	0	0	TTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAATTGAAACTCCAGCTAGATTGAACGAGTTTA	I1(8693I)I)I'I(8877365I/'5I*88G'3:I)8I6)775626I)789<I*26I(:958857I(679I)9G'I7*67F'8I'7<7I)I0'I<,&95497I(H'9;;I(5<475:9H':<H':577H'I(I)78I0'75G'I.&I-&G'9H'73I/'0863:5;77I-&:5I,I(5I0'87G'967:868I(4I(65;8I.&9	NM:i:3	MD:Z:37^T38^T98^A32	o [...]
-simulated.687	0	2	73	255	93M1I84M1I2M1D40M	*	0	0	GCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGTCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACA	:67:6486I)674636:5=G'8I(I(757I(I(857:7<>89:I'4I0'5;I'E&I1(77;/8695I/'85<598G'2I.'2I(4768<I)I'';9I<,'I)559I)I3(I(I(76I(7I/'I(79>7I(;I):I(I(?@7889;3I)867F':I'I.&9;I=,'I(7I(:I(I'7;8*;6I,I(847;755678875<F'49G'I/'1868I(87I(82: [...]
+simulated.685	0	1	5576	255	38M1I49M1I24M1D95M1I4M	*	0	0	GTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCTATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGTAGGCAGAATCTTCCCCAGCTTAGATAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGACATT	85:5:=35=767<I(97I'I(<3;392I(7<:85:I(:)7H'2966;5798:=70:977I'7999I)53:694I.'56I(876;I(7:';I(37:H'77I'I8*&:68G'7:;D6I)I(5I*4I)=;I/'7I/'7587I/'75596I'I+6G':8:7I)99:23I(968G'987885II0)&I(78I)9399:I(I);55H'7;4?I(&69I(	NM:i:4	M [...]
+simulated.686	0	1	3590	255	37M1D38M1D98M1D32M	*	0	0	TTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAATTGAAACTCCAGCTAGATTGAACGAGTTTA	I1(8693I)I)I'I(8877365I/'5I*88G'3:I)8I6)775626I)789<I*26I(:958857I(679I)9G'I7*67F'8I'7<7I)I0'I<,&95497I(H'9;;I(5<475:9H':<H':577H'I(I)78I0'75G'I.&I-&G'9H'73I/'0863:5;77I-&:5I,I(5I0'87G'967:868I(4I(65;8I.&9	NM:i:3	MD:Z:37T38T98A32	oR:Z [...]
+simulated.687	0	2	73	255	93M1I84M1I2M1D40M	*	0	0	GCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGTCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACA	:67:6486I)674636:5=G'8I(I(757I(I(857:7<>89:I'4I0'5;I'E&I1(77;/8695I/'85<598G'2I.'2I(4768<I)I'';9I<,'I)559I)I3(I(I(76I(7I/'I(79>7I(;I):I(I(?@7889;3I)867F':I'I.&9;I=,'I(7I(:I(I'7;8*;6I,I(847;755678875<F'49G'I/'1868I(87I(82: [...]
 simulated.688	16	1	1014	255	127M1I67M	*	0	0	AATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTACTAAAACCATGCTAGTGCATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAA	&E8'/I7852(I5'0I=08571&-I698796;'I35'I7'G96:7/'I'H:348755(I7?'- at I18(I;:944'/I2(I5='.I<<'I;45548:A46395)I'0I3082645'I=;'G;81:5:7'7&+:I'I8866956:539:3(I7(I;46:8>853368:;792;7&,<I+I8984<9<<)I9;'I>'H	NM:i:1	MD:Z:194	oR:Z:1	oH:i:1	oP:i:1013	oS:A:R	XE:i:1	XS [...]
 simulated.689	16	1	3761	255	200M	*	0	0	TTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAA	'H76'/I(I:'1I47'G6;68399(I8(I886:'/I69)I'I:58'I9186828662578836;4958(3I&E5:46(I:78)I&.I(I='I>886576:65(I5(I8(I75075:;(I6'I4>7;266%(-8II:96:5687)I(I4(I4<749:63;@:3&.I7:7;'I;6:5(I67'/I67)I'0I7769996;9(I	NM:i:0	MD:Z:200	oR:Z:1	oH:i:1	oP:i:3760	oS:A:R	XE:i [...]
-simulated.690	0	1	7614	255	151M1I35M1D17M	*	0	0	GCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCAGTTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGATAGCCCCCTGCCTT	8<7I'7788I(:I)H'42>45:9>964I(I-&:I'<6H'0I-&I(37843547:99I(26>I(47I0';9=96I2(;65H'83I(668997H'I)I):=I(97I)I*54547I'54<I(78::38H'I'I(;49I(666<7:9I'I)E&53-I0';77I;+&8I)I2(I*G'8676G'975:4I(64I+6758IG0)%57G'I(	NM:i:2	MD:Z:186^G17	oR:Z:1	oH:i:1	 [...]
-simulated.691	16	1	8680	255	33M1I11M1D14M1I113M1D55M	*	0	0	CAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGTATTGGGCCCAAGGCTGCTACTGCCCTAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTC	4(I27:'I)I)I:48&+<I'I59'/I*I&-I'I(7'G(2I'/I'I+I3749::749(1I':(I:?*I6=(I(I65;'I'0I9836;33'-?I7:4'G;>362;<6;;9'I69(1I783(I;888343(I(I35?7::(I7<55666>5'H8'I'H7(I'+4II6:(I:419:7D'0I>(I&-I9<8'G:<577)I26(I5'/I' [...]
-simulated.692	16	1	5482	255	41M1D176M	*	0	0	TCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCC	;8:8)I'H4'I:46;8'H564;4159'I4'0I6:(I:3'0I,I54::3(I78:'0I?:'H&D&.I7)I5276&E5'G/77(I:67:;<8'H8'I267578664::6'I38(I'G:76;5;'I=9:?49(I:8'H9858:67961;79:35;(I:785)I56138:'0I;9'H9:59'I655'G458(I92)I'- at I<;:(I588(I:(I'H:(I6'G	NM:i:1	MD:Z: [...]
-simulated.693	16	2	227	255	6M1D119M1I16M1D49M	*	0	0	GTTTGTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGACGAACTGAAGCGGGTCGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAA	5'/I79(3I'G6'I5(I(I4344:(2I*I45<3:56/9<:96:(I7;(I(1I7954'H98'I32'H74:639588;7:<965;(I7362734966:86'/I(I'H32<8:25'I*I)I7675289);8)I6;4'I/8'.I76*7I542'/I:;(I7>:856566'H0<'/I;)I:;7;9'H:'I'I'0I(I	NM:i:3	MD:Z:6^C135^G49	oR:Z:2	oH:i:1	oP:i:226	oS:A:R	XE: [...]
-simulated.694	16	1	4143	255	84M1I64M1D65M	*	0	0	GTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGTAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCC	533)I8*I69677:'H5(I'I'F(I:(2I(I:35&F-7:4'F937(3I(I'F75:6(I;86>48(I=>(3I<1)I8(I1907=7+7=95113(I'/I7&-I'G(I'G855:6;778349944(I&.I58'H:779(I8'I'I17&.I74*6I472?15944(I&,I(1I8;8'H4576'H'/I7977187657:(I4*I(I536(I9)I8'I'H	NM:i:2	MD:Z:14 [...]
-simulated.695	0	1	8148	255	48M1D62M1I90M	*	0	0	AGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATCGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACC	8565679I;+&694:I)I-&G'?7I(;:9I(5H'I/'93:8I(4=<95I,8<:9I(I'74I(899:882;I(7G'3;E&47446;I/'I(83I*;=556I)7I(G'6569*=5I'6<3<8I)66I'4:55576686I(I)I(I2(I)46599I'87H'7I)>5I1'48:I(6I(<6786661654I)4<<I0'G'4777I(	NM:i:2	MD:Z:48^C152	oR:Z:1	oH:i:1	oP:i:81 [...]
-simulated.696	16	1	6618	255	99M1D24M1I13M1I11M1D47M	*	0	0	TGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAAGCTGGGCTTTTTCTGAAGTTCATCAGGCCGTCGAGGCTGGTATGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTC	97:689(I at 688537'H6:85)I(2I:(I265(I(I'H659'H'/I6667956745397*I(I75568:5<59993'I6'H(I:967:(I57984*I77*7I9'/I=49'0I7&*2II3<5'G%)I5768>(I(I5:(:8(I8:'I;78*7I:77)I6'I:=6(I'G)I'H314'H(I8&+<I'I1(I=763&F35	NM:i:4	MD:Z:99^C48^G47	oR:Z:1	oH:i:1	oP: [...]
-simulated.697	16	1	3391	255	27M1D85M1D77M1I6M	*	0	0	GAAAGACCGGTATGTGAACAGTCTACCTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTCGGTATT	9'/I49(I&E8=9788(I8374;58&F,I&-I57:;(I4;:46936283799::8(I>:9;6(.BI:8(I',5II1(1I=43:4:9'I@'G<'/I64&.I'H2;29'H?8;1,I;&E5(I6<865868&F3(2I9'G;9:(I)I9(I4'0I(I:<?76;&+9I461'/I(I'H7;'I39859;'H(I(I('H73)I	NM:i:3	MD:Z:27^T85^G83	oR:Z:1	oH:i:1	oP:i:3390 [...]
-simulated.698	16	1	3569	255	21M1D52M1D138M	*	0	0	TGCTCGATTAATTGGTATTCGTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCT	9464;6<(I'I'I'H;;'H:;,I9887'I(I(I'H6624:<5(2I;)I6:)I:9(I6'-?I8;5825'I<:94C46&F5<9470@(I35<(I7(I&*9I;6(I5)I887)I&.I&+:I4<86<'G(I95>)I17:;817(I69(I7;5:'G(I'H98'/I7;(I'.I&.I'I3(I:9'0I55=<;6565'0I36'/I'H;'/I=4(I556<	NM:i:2	MD:Z:21^T52^ [...]
-simulated.699	16	1	7005	255	134M1D33M1D42M	*	0	0	TGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGG	78?5'F>(I3&E68375(I'I7(2I)I5;(I3;&+:I'F=7:84456856;7(I3<&)1II'.I9(I7;:65<)I:748'H979;7(I7(I4735191:7'H76(I<648'G=1'0I7'I'0I78(I88'I(I6,I'0I;76(I4(I9833'H<7(I377=484:3:D(2I6'1I8775*I'I:16766969<6588:5:7786(I8)I	NM:i:2	MD:Z:134^T33^G42 [...]
+simulated.690	0	1	7614	255	151M1I35M1D17M	*	0	0	GCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCAGTTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGATAGCCCCCTGCCTT	8<7I'7788I(:I)H'42>45:9>964I(I-&:I'<6H'0I-&I(37843547:99I(26>I(47I0';9=96I2(;65H'83I(668997H'I)I):=I(97I)I*54547I'54<I(78::38H'I'I(;49I(666<7:9I'I)E&53-I0';77I;+&8I)I2(I*G'8676G'975:4I(64I+6758IG0)%57G'I(	NM:i:2	MD:Z:186G17	oR:Z:1	oH:i:1	o [...]
+simulated.691	16	1	8680	255	33M1I11M1D14M1I113M1D55M	*	0	0	CAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGTATTGGGCCCAAGGCTGCTACTGCCCTAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTC	4(I27:'I)I)I:48&+<I'I59'/I*I&-I'I(7'G(2I'/I'I+I3749::749(1I':(I:?*I6=(I(I65;'I'0I9836;33'-?I7:4'G;>362;<6;;9'I69(1I783(I;888343(I(I35?7::(I7<55666>5'H8'I'H7(I'+4II6:(I:419:7D'0I>(I&-I9<8'G:<577)I26(I5'/I' [...]
+simulated.692	16	1	5482	255	41M1D176M	*	0	0	TCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCC	;8:8)I'H4'I:46;8'H564;4159'I4'0I6:(I:3'0I,I54::3(I78:'0I?:'H&D&.I7)I5276&E5'G/77(I:67:;<8'H8'I267578664::6'I38(I'G:76;5;'I=9:?49(I:8'H9858:67961;79:35;(I:785)I56138:'0I;9'H9:59'I655'G458(I92)I'- at I<;:(I588(I:(I'H:(I6'G	NM:i:1	MD:Z: [...]
+simulated.693	16	2	227	255	6M1D119M1I16M1D49M	*	0	0	GTTTGTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGACGAACTGAAGCGGGTCGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAGCCAATTTAA	5'/I79(3I'G6'I5(I(I4344:(2I*I45<3:56/9<:96:(I7;(I(1I7954'H98'I32'H74:639588;7:<965;(I7362734966:86'/I(I'H32<8:25'I*I)I7675289);8)I6;4'I/8'.I76*7I542'/I:;(I7>:856566'H0<'/I;)I:;7;9'H:'I'I'0I(I	NM:i:3	MD:Z:6C135G49	oR:Z:2	oH:i:1	oP:i:226	oS:A:R	XE:i: [...]
+simulated.694	16	1	4143	255	84M1I64M1D65M	*	0	0	GTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGTAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCC	533)I8*I69677:'H5(I'I'F(I:(2I(I:35&F-7:4'F937(3I(I'F75:6(I;86>48(I=>(3I<1)I8(I1907=7+7=95113(I'/I7&-I'G(I'G855:6;778349944(I&.I58'H:779(I8'I'I17&.I74*6I472?15944(I&,I(1I8;8'H4576'H'/I7977187657:(I4*I(I536(I9)I8'I'H	NM:i:2	MD:Z:14 [...]
+simulated.695	0	1	8148	255	48M1D62M1I90M	*	0	0	AGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATCGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACC	8565679I;+&694:I)I-&G'?7I(;:9I(5H'I/'93:8I(4=<95I,8<:9I(I'74I(899:882;I(7G'3;E&47446;I/'I(83I*;=556I)7I(G'6569*=5I'6<3<8I)66I'4:55576686I(I)I(I2(I)46599I'87H'7I)>5I1'48:I(6I(<6786661654I)4<<I0'G'4777I(	NM:i:2	MD:Z:48C152	oR:Z:1	oH:i:1	oP:i:814 [...]
+simulated.696	16	1	6618	255	99M1D24M1I13M1I11M1D47M	*	0	0	TGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAAGCTGGGCTTTTTCTGAAGTTCATCAGGCCGTCGAGGCTGGTATGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTC	97:689(I at 688537'H6:85)I(2I:(I265(I(I'H659'H'/I6667956745397*I(I75568:5<59993'I6'H(I:967:(I57984*I77*7I9'/I=49'0I7&*2II3<5'G%)I5768>(I(I5:(:8(I8:'I;78*7I:77)I6'I:=6(I'G)I'H314'H(I8&+<I'I1(I=763&F35	NM:i:4	MD:Z:99C48G47	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.697	16	1	3391	255	27M1D85M1D77M1I6M	*	0	0	GAAAGACCGGTATGTGAACAGTCTACCTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTCGGTATT	9'/I49(I&E8=9788(I8374;58&F,I&-I57:;(I4;:46936283799::8(I>:9;6(.BI:8(I',5II1(1I=43:4:9'I@'G<'/I64&.I'H2;29'H?8;1,I;&E5(I6<865868&F3(2I9'G;9:(I)I9(I4'0I(I:<?76;&+9I461'/I(I'H7;'I39859;'H(I(I('H73)I	NM:i:3	MD:Z:27T85G83	oR:Z:1	oH:i:1	oP:i:3390	o [...]
+simulated.698	16	1	3569	255	21M1D52M1D138M	*	0	0	TGCTCGATTAATTGGTATTCGTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCT	9464;6<(I'I'I'H;;'H:;,I9887'I(I(I'H6624:<5(2I;)I6:)I:9(I6'-?I8;5825'I<:94C46&F5<9470@(I35<(I7(I&*9I;6(I5)I887)I&.I&+:I4<86<'G(I95>)I17:;817(I69(I7;5:'G(I'H98'/I7;(I'.I&.I'I3(I:9'0I55=<;6565'0I36'/I'H;'/I=4(I556<	NM:i:2	MD:Z:21T52C1 [...]
+simulated.699	16	1	7005	255	134M1D33M1D42M	*	0	0	TGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGG	78?5'F>(I3&E68375(I'I7(2I)I5;(I3;&+:I'F=7:84456856;7(I3<&)1II'.I9(I7;:65<)I:748'H979;7(I7(I4735191:7'H76(I<648'G=1'0I7'I'0I78(I88'I(I6,I'0I;76(I4(I9833'H<7(I377=484:3:D(2I6'1I8775*I'I:16766969<6588:5:7786(I8)I	NM:i:2	MD:Z:134T33G42	o [...]
 simulated.700	16	1	6606	255	125M1I67M	*	0	0	TTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGTCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCT	(I'G5(I5(I7>74>:87(I557:69>)I8><6'H'0I6(I46;)I(I*I58.(I)4I8;59:87;;;6:4(I'I5648A;::533<4)I:&E(I76?8/'F2:45:(I8=&*8I5'.I952'0I&6&*3II347(I'I?:497(I'F68<<'I49'H79=&*9I355(I5(I7;7(I(I'I'G781(I(I94	NM:i:1	MD:Z:192	oR:Z:1	oH:i:1	oP:i:6605	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.701	16	2	129	255	31M1I53M1I44M1I47M1I42M	*	0	0	CCGTATCTCTGGGTCTACGTTGCCCTCCTCACTATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGTCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAACTATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCAGTGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGG	'I56<53<33'.I=75556(I9&-I5(I76:(6:)I)I47&+:I)I;9:)I'.I)I'F5:)I<&.I*I6081&E;(I7(I(I647&:88;9'H4<4'I1*I(3I27&+:I'I:(I:(I'I46:33(1I(I%9<7:679398;31:'I9;(I'0I8759'H6<)I96'H6;6879><44&:893722(I7<73956316459'0I)I)I8/::; [...]
-simulated.702	0	1	2189	255	28M1D64M1I86M	*	0	0	ACTGAGTTGAGCCCTTCATTTTTTGTAGCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAAGTCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTC	:3686;I(4;6I/'I(/7II;/)&758:I5)557<I'599;76595676902I(77I/'7<6;I(463:<6B55;:48:I(I(6<7I2(1I*(969384>I(=:524:4I'1;:8I)<H'I<,&<I0'H'::I(I)/78;I?-'8 at 7I(649I-&95I1(9I(/6845677I(4I'487	NM:i:2	MD:Z:28^C150	oR:Z:1	oH:i:1	oP:i:2188	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.702	0	1	2189	255	28M1D64M1I86M	*	0	0	ACTGAGTTGAGCCCTTCATTTTTTGTAGCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAAGTCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTC	:3686;I(4;6I/'I(/7II;/)&758:I5)557<I'599;76595676902I(77I/'7<6;I(463:<6B55;:48:I(I(6<7I2(1I*(969384>I(=:524:4I'1;:8I)<H'I<,&<I0'H'::I(I)/78;I?-'8 at 7I(649I-&95I1(9I(/6845677I(4I'487	NM:i:2	MD:Z:28C150	oR:Z:1	oH:i:1	oP:i:2188	oS:A:F	XE:i:2	XS:i:0	XI:i:0
 simulated.703	16	1	5483	255	202M	*	0	0	CATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTA	6::'I)I6'H49946'H5:77;978(I2&.I:9'I49'0I&-I8:335'F378'/I55'H(I'0I5(I57:9'I7)I97:'H67846;/'I7'H17596::85884'H57'I(I<68965'G858876)I<7'F695884777<75:57:7'H5695(I69;7:4'/I79)I57<:(I68@&E654)I;5'I&+:I=;<(I;	NM:i:0	MD:Z:202	oR:Z:1	oH:i:1	oP:i:5482	oS:A:R	 [...]
-simulated.704	0	1	2597	255	59M1I80M1D44M1D15M	*	0	0	TTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGACGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAGTCCTTTGGTGCTA	I(I'48B776:I)26I(97976:5I'169497;654II2*&94G'4I1(<:I(47;:53%7;59I*9:6>6:G'7348F&75538:?742278I)596I)258758;98=I(8I(9657;648886>I(=I?-'6:I-&6I,I8*&68G'868I1(I(>8602=6I'4;I)I(:I<,&C7925;D88I*I/'I(3<685	NM:i:3	MD:Z:139^T44^A15	oR:Z:1	oH:i:1	oP [...]
-simulated.705	16	1	7280	255	40M1D66M1I50M1D50M	*	0	0	GCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATAGTCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATT	5&E54'H6;',=I)I78565'I<'H86&,I8;6(I767(I+I7:'/I49<(I94;=(I5:79(I6;65>;56(I737>87755'1I89986(I938479;(-AI41);'I7(I269'0I677:37(I&F81<195/3<467486<&.I4(IA88(I4*7I6:5387659'G'G4;(I(I0;477:'/I(2I93;8996'G87'I7)I	NM:i:3	MD:Z:40^G116^C50 [...]
-simulated.706	16	1	8665	255	59M1D61M1I69M	*	0	0	CCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGTCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAG	(I625(3I6'H6'H5;'I559)I(I)I7:7&+<I'H73'.I(I'0I(I4'I&-I'0I'I+I393986488&-I8(I<9(I;5(I(I373)I'/I7:;::89&+:I>:9)I=6;:495956'7(I;8(2I25;(I7928;59'H+I84;:56'H3839:9436)I:'H(I9'I&)0II77'I7:8658'I8	NM:i:2	MD:Z:59^G130	oR:Z:1	oH:i:1	oP:i:8664	oS:A:R	XE:i:2	XS:i [...]
-simulated.707	16	1	1712	255	54M1I121M1D6M1D11M	*	0	0	TATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGTCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGCTCGGCCGTTGACTTA	3:=;7*I57:63554;6636;5'G:978'G67&-I6<:/67&+:I'I;/477(I%8;77705(I387(I(I4&*7I6558(I'I91'.I'H6(I:99:;2974095:5'I;3663(I68'0I'0I)I9B7&*9I6795(I7(I'G)I5&F199'I6847'H'G87:8687>6:8)IB897'H+I8)I657(I7	NM:i:3	MD:Z:175^G6^C11	oR:Z:1	oH:i:1	oP:i:1711	oS:A [...]
-simulated.708	0	1	1395	255	90M1I2M1I64M1D57M	*	0	0	ATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGTAGTAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCG	258I'4:19778:3I9+&5I'9I(56I(;I/';35778I)6I'6976;8I(7944H'I)9I-&<I)I(I0'787;5I(3:5498I/'?;8'85&7F&G'6I'G'8555576637646<57I(I/'?5476I1(826II1*&I'I(79I(I'?5867:5I,58355955;F'35554?886I1(H'4>9733877I(::658:5783I-&789818	NM:i:3	MD [...]
+simulated.704	0	1	2597	255	59M1I80M1D44M1D15M	*	0	0	TTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGACGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAGTCCTTTGGTGCTA	I(I'48B776:I)26I(97976:5I'169497;654II2*&94G'4I1(<:I(47;:53%7;59I*9:6>6:G'7348F&75538:?742278I)596I)258758;98=I(8I(9657;648886>I(=I?-'6:I-&6I,I8*&68G'868I1(I(>8602=6I'4;I)I(:I<,&C7925;D88I*I/'I(3<685	NM:i:3	MD:Z:139T44A15	oR:Z:1	oH:i:1	oP:i [...]
+simulated.705	16	1	7280	255	40M1D66M1I50M1D50M	*	0	0	GCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATAGTCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATT	5&E54'H6;',=I)I78565'I<'H86&,I8;6(I767(I+I7:'/I49<(I94;=(I5:79(I6;65>;56(I737>87755'1I89986(I938479;(-AI41);'I7(I269'0I677:37(I&F81<195/3<467486<&.I4(IA88(I4*7I6:5387659'G'G4;(I(I0;477:'/I(2I93;8996'G87'I7)I	NM:i:3	MD:Z:40G116C50	o [...]
+simulated.706	16	1	8665	255	59M1D61M1I69M	*	0	0	CCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCAAGGCTGCTACTGCCCAGGACAAGCAAGGCGTGGTTTCGTGACTAAAACTAGGAGACATCGTGTCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAG	(I625(3I6'H6'H5;'I559)I(I)I7:7&+<I'H73'.I(I'0I(I4'I&-I'0I'I+I393986488&-I8(I<9(I;5(I(I373)I'/I7:;::89&+:I>:9)I=6;:495956'7(I;8(2I25;(I7928;59'H+I84;:56'H3839:9436)I:'H(I9'I&)0II77'I7:8658'I8	NM:i:2	MD:Z:59G130	oR:Z:1	oH:i:1	oP:i:8664	oS:A:R	XE:i:2	XS:i: [...]
+simulated.707	16	1	1712	255	54M1I121M1D6M1D11M	*	0	0	TATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGTCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGCTCGGCCGTTGACTTA	3:=;7*I57:63554;6636;5'G:978'G67&-I6<:/67&+:I'I;/477(I%8;77705(I387(I(I4&*7I6558(I'I91'.I'H6(I:99:;2974095:5'I;3663(I68'0I'0I)I9B7&*9I6795(I7(I'G)I5&F199'I6847'H'G87:8687>6:8)IB897'H+I8)I657(I7	NM:i:3	MD:Z:175G6C11	oR:Z:1	oH:i:1	oP:i:1711	oS:A:R [...]
+simulated.708	0	1	1395	255	90M1I2M1I64M1D57M	*	0	0	ATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGTAGTAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCG	258I'4:19778:3I9+&5I'9I(56I(;I/';35778I)6I'6976;8I(7944H'I)9I-&<I)I(I0'787;5I(3:5498I/'?;8'85&7F&G'6I'G'8555576637646<57I(I/'?5476I1(826II1*&I'I(79I(I'?5867:5I,58355955;F'35554?886I1(H'4>9733877I(::658:5783I-&789818	NM:i:3	MD [...]
 simulated.709	16	1	7028	255	4M1I23M1I129M1I24M	*	0	0	AAGGTACTTACGGGGAACGTGCACGACTACACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTAGTGAACCGCTAGTGTGCGCGTGTAG	'H(I(>4(I8:&*7I(I6973896=:<:%58'G59'+3II'/I7(I657859(I5894(I45:66*I6(I8946;795='H;6(I4;:5(I95&.I7)I'/I;5(I76'H'H8'/I'/I.<9*I6(I879:'I95)I8956489895'G'.I9(2I98)75(I'G5796;5570=56=28;59	NM:i:3	MD:Z:180	oR:Z:1	oH:i:1	oP:i:7027	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.710	0	1	5903	255	202M	*	0	0	ATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCT	69E&2708:80I.&I(I<+&69I5)8:5I;+&:G'H'H'F'8980:8:57G'389;G'5I'2I(:I)6I/'5:I(F&<29788H'79:35675I/'2G'I(7I.&?678986I>,'8I0';II;/)&=58:;2;8;457I(E&9?I'73:I0'4258:6856563474H'94;;;3I3(1I'359845:I(5I'254G':77	NM:i:0	MD:Z:202	oR:Z:1	oH:i:1	oP:i:5902	oS:A:F	X [...]
-simulated.711	16	1	3467	255	54M1D129M1I27M	*	0	0	ACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGAGTCTAGAAGCTCCGCCTTTTGCGGACCT	:'.I575986?)I:(I8&-I=8&.I'G26;5&F:75:&-I4(I6(I:>9573<;@7(1I:'I7>7&E)I7'F7(2I(I;87882&*9I4:;(1I(I&D43)I=68918'H'H'I'I65'H13(1I3984(I(I'I(I969769<'/I9)I36&F67(I=&*8I996974(I8465'I77&F7>&:7655(I4:='I9'I&+9I35(I2'G4	NM:i:2	MD:Z:54^C156 [...]
+simulated.711	16	1	3467	255	54M1D129M1I27M	*	0	0	ACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGAGTCTAGAAGCTCCGCCTTTTGCGGACCT	:'.I575986?)I:(I8&-I=8&.I'G26;5&F:75:&-I4(I6(I:>9573<;@7(1I:'I7>7&E)I7'F7(2I(I;87882&*9I4:;(1I(I&D43)I=68918'H'H'I'I65'H13(1I3984(I(I'I(I969769<'/I9)I36&F67(I=&*8I996974(I8465'I77&F7>&:7655(I4:='I9'I&+9I35(I2'G4	NM:i:2	MD:Z:54C156	 [...]
 simulated.712	0	1	7013	255	13M1I194M	*	0	0	ATAATGCGTGGTTACAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTG	56G'4935 at G'G''=I.&F'68I(86I:+&I)9848:<5793647I)90II2*&I1(5I(7;77:8I)9398I'5956:I(9I(275527;98I(;7I(845:H'56I0'4I)I.'::I(79G'I(:I1(I0'755H';I)8;59I(35I(;;35==88;7I*I/'0I/'5747I(H'55<77655587;7977?93:3I(9I(:43:	NM:i:1	MD:Z:207	oR:Z:1	oH:i:1	o [...]
-simulated.713	0	1	6035	255	3M1I60M1I39M1I7M1D10M1I83M1D16M	*	0	0	TAGTACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCAGTGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACACGACGAAGCCCTTTCTATACTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCTATAACGTGTATCC	755':95:I(E&;5I)979I/'4739682;7447<9;I)966376I/'6H';575235I(.I(9'74I':69<IG0)%:I<,&977I(543I2(I'<698;7;8,084.I)7I7*I0'3755&::0I)1:47I)79I/'69:I1(5;855884885<8:88586I(6:5I)5;6H';<I'7I.&6<;4::I)67329;55:187 [...]
+simulated.713	0	1	6035	255	3M1I60M1I39M1I7M1D10M1I83M1D16M	*	0	0	TAGTACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCAGTGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACACGACGAAGCCCTTTCTATACTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCTATAACGTGTATCC	755':95:I(E&;5I)979I/'4739682;7447<9;I)966376I/'6H';575235I(.I(9'74I':69<IG0)%:I<,&977I(543I2(I'<698;7;8,084.I)7I7*I0'3755&::0I)1:47I)79I/'69:I1(5;855884885<8:88586I(6:5I)5;6H';<I'7I.&6<;4::I)67329;55:187 [...]
 simulated.714	0	1	7026	255	26M1I161M1I10M1I12M	*	0	0	CAAAGGACTTACGGGGAACGTGCACGTACTCACCACAAAAATTTACCGTCACAGGTGCGAACTCATAATCCACACGCTCTGGATCCTATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCGTGGCGTGGGCTATCAACACAAGC	9I.'I(62I(68I:+&I(=8585;<5+7;576H'@7II3+'I.&<I)67947:I'7647I(47:36I(5I(496:;2786I*76I(;6::I(6:I.':F&I5)49I'::I'I)3I0'I0'<72H'7I(6:7=I(;0I'::94983963I(I2(2I1(29,6H'I':;867=364666687<7:<56I(&5I);74I/'3%997I(679I(69	NM:i:3	MD:Z:2 [...]
-simulated.715	16	1	1938	255	76M1D78M1I3M1D27M	*	0	0	CTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCACGCTCCTACAATCCCGTCAACTTAGCGAGAC	5)I826)I436'I976;58>9(I7946',=I8<)I=6976785)I9'H7'/I&.I68=7:'I7736(I8'I67375(.CI6=(I:/::;(I77:8:6645993(I56?15'/I974(I7'H&-I(I at 8799&+:I1)I77:'G8(I6:143(I6&<77,I;;5'F6(1I586(I;)I75:98:34	NM:i:3	MD:Z:76^A81^C27	oR:Z:1	oH:i:1	oP:i:1937	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.715	16	1	1938	255	76M1D78M1I3M1D27M	*	0	0	CTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCACGCTCCTACAATCCCGTCAACTTAGCGAGAC	5)I826)I436'I976;58>9(I7946',=I8<)I=6976785)I9'H7'/I&.I68=7:'I7736(I8'I67375(.CI6=(I:/::;(I77:8:6645993(I56?15'/I974(I7'H&-I(I at 8799&+:I1)I77:'G8(I6:143(I6&<77,I;;5'F6(1I586(I;)I75:98:34	NM:i:3	MD:Z:76A81C27	oR:Z:1	oH:i:1	oP:i:1937	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.716	16	1	2085	255	188M	*	0	0	GCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCC	9775@*I8648(3I;75'I7'0I9;6'I8'I<9:299;=6448)I6'/I)I=77&.I(I74'G4;(I'H'G&+9I8'G5:(I(2I)I48:/(I788979(I54)I:5996'I578)5I'I=9%(-7II3:79&*8I<9?:'I8899<?:50/:83>9(I7=(1I75;4'F2557:45>2;877;(I'F	NM:i:0	MD:Z:188	oR:Z:1	oH:i:1	oP:i:2084	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.717	16	1	4015	255	26M1D164M1I7M	*	0	0	AAACCCCGCCACACAGCTCGGACTTTAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGTAGGTCGG	&-I'-AI='G7886:2>;9(I:;'0I)5I9;85::'/I'I8(I(I'I28864<<5(1I(I3544'/I75='H'I(I'F=987'H2;6;6(I;(2I98:686695'H673&.I7'H)4I'H3&E7?6;8<8(I7(I675;37'I<'I(I'F(I9)6I)I989'H>;>8'I683'.I'G(I:3;8'I5=@:<'9)I48&F	NM:i:2	MD:Z:26^A171	oR:Z:1	oH:i:1	oP:i:4014	oS [...]
-simulated.718	0	1	5022	255	175M1D33M	*	0	0	AGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATGCAAGGTTTGATGGGTTGGTCATCTCGACATC	;84I(;6I'48I/';II=0*';I:+&H'589B8567I(:8<I-&3>I(9<5I)7858:I(</I)@798H'779779:66I(39575I'985G'67I(I(6I-&5E&66:47;II9.)&335>987847G'775;I0';0;I'8I(7866G'1:67I;+&:I(I/':96I)858I(B57G'I(I3(1:8I0'I(I(58678=557>:76	NM:i:1	MD:Z:175^T33	oR:Z:1	oH:i [...]
+simulated.717	16	1	4015	255	26M1D164M1I7M	*	0	0	AAACCCCGCCACACAGCTCGGACTTTAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGTAGGTCGG	&-I'-AI='G7886:2>;9(I:;'0I)5I9;85::'/I'I8(I(I'I28864<<5(1I(I3544'/I75='H'I(I'F=987'H2;6;6(I;(2I98:686695'H673&.I7'H)4I'H3&E7?6;8<8(I7(I675;37'I<'I(I'F(I9)6I)I989'H>;>8'I683'.I'G(I:3;8'I5=@:<'9)I48&F	NM:i:2	MD:Z:26A171	oR:Z:1	oH:i:1	oP:i:4014	oS: [...]
+simulated.718	0	1	5022	255	175M1D33M	*	0	0	AGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATGCAAGGTTTGATGGGTTGGTCATCTCGACATC	;84I(;6I'48I/';II=0*';I:+&H'589B8567I(:8<I-&3>I(9<5I)7858:I(</I)@798H'779779:66I(39575I'985G'67I(I(6I-&5E&66:47;II9.)&335>987847G'775;I0';0;I'8I(7866G'1:67I;+&:I(I/':96I)858I(B57G'I(I3(1:8I0'I(I(58678=557>:76	NM:i:1	MD:Z:175T33	oR:Z:1	oH:i: [...]
 simulated.719	0	1	3295	255	172M1I8M1I11M	*	0	0	ATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCTACCCAGCACTGTAATGGTAA	3I(659:;::8897I'9E&I(7I<,'<I'I(3;<8I)56I(I(9<7I1(<257I:+&5I(<4I)I(9:852I9+&G'H'8I.'36149F'5:87856I.&>9I(I(7<838<E&687;3:3I(I1'I.'5859I(<:6799477<8;16597I(48744I:+&57I)II1*&'9I2(:=67&499H'3I(7I'	NM:i:2	MD:Z:191	oR:Z:1	oH:i:1	oP:i:3294	oS:A:F	XE:i:2	XS: [...]
-simulated.720	16	1	980	255	56M1D21M1I90M1I36M	*	0	0	TCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGTCGACTAGGCACCAGGTCACGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCGATGCTAGTGCATGAAGCCGACGTATACAGACTAGCT	?777<::2(I7)5I67'H<'H'0I78686(I'1I(I7(1I5984(I:&.I;5;8A8,I:8:<597(I92)I:'H:98)46'I'I;=957=8(I53',<I82(I9475:'0I5'H>9'0I6<'I7898585;46:66(I'0I9=21485'I96)I64577659',=I)I(/88463:9:<67;(I:(I943955787756957;9;	NM:i:3	MD:Z:56^G147	oR:Z:1	o [...]
+simulated.720	16	1	980	255	56M1D21M1I90M1I36M	*	0	0	TCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTGTAGCGGTCGACTAGGCACCAGGTCACGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTCTATAAAACCGATGCTAGTGCATGAAGCCGACGTATACAGACTAGCT	?777<::2(I7)5I67'H<'H'0I78686(I'1I(I7(1I5984(I:&.I;5;8A8,I:8:<597(I92)I:'H:98)46'I'I;=957=8(I53',<I82(I9475:'0I5'H>9'0I6<'I7898585;46:66(I'0I9=21485'I96)I64577659',=I)I(/88463:9:<67;(I:(I943955787756957;9;	NM:i:3	MD:Z:56G147	oR:Z:1	oH [...]
 simulated.721	0	1	1872	255	22M1I47M1I140M	*	0	0	CCTATCATGATACAAGGCTCGGTCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTAGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGA	H'43A2=<76<2;I*F&:47H''I/'?I)<58I(;6268I)98I(E&695H'358I(834:5I(;I*8I(&932I(837H'973856;8G'7867I?-'36H'33;89:5 at I(9I(6I0'I/'375;7I(757:I)8I(6::82II3+&76G'9:7>9I(68879;935:44I)56:57I.&853H'5I(I2(G'979=7I?-';G'3:<9	NM:i:2	MD:Z:209	oR:Z [...]
 simulated.722	16	1	8812	255	54M1I122M	*	0	0	CGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGACTTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGA	6:56(I:<:<57;9;&EC'I(I8)I&*2II65(I::46<9'H'.I5'I(2I897'(I40;85(I77)I5'/I'.I)I77;7548>3(I8(I6;'H8;<87<869:78&+;I54'G(I)I&E*I6226<:28<(I9'I*I68'I7(I:27)I)I;:'G4&-I87;:6'H9133593:6	NM:i:1	MD:Z:176	oR:Z:1	oH:i:1	oP:i:8811	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.723	16	2	120	255	8M1D35M1D68M1D18M1D48M	*	0	0	GGTCTTGGCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATAT	'H89)I'I,I948;8:77'/I568;25)I6'0I;'I::545'HD36&+;I(I;=8'H'.I*I(I99'I7'0I(I6864'I;'G7(I'G;65<3392)I669(I6'H'.I76)5I(I7&F9'H(I=6=92+I)I<71:4:65;96695)I=:(I'/I8:4<(I74(I76(I::14568	NM:i:4	MD:Z:8^C35^G68^C18^T48	oR:Z:2	oH:i:1	oP:i:119	oS:A:R	XE:i:4	XS:i:0	XI:i:0
-simulated.724	16	1	832	255	56M1I34M1I95M1D11M	*	0	0	TACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCACGACCTTCTCTGTTCATAAAACTTACGCATGATGCTACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCTAGCGGCGG	56695855:@695*I9866697;68)I;)I'G9<'I:57(I7'I8(I&-I'F3;97&:5&F'G25995&E3;8&,<I5(I5899<99388<&9',>I(I983:&.I(I77(1I66'I8<25:8:391968768547(I97=745(I6;7:5;;2;=:1(I6'1I7:'I8(I'1I=:166)I&-I'H1,I:546(I8,I	NM:i:3	MD:Z:185^C11	oR:Z:1	oH:i:1	oP:i:831 [...]
+simulated.723	16	2	120	255	8M1D35M1D68M1D18M1D48M	*	0	0	GGTCTTGGCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATAT	'H89)I'I,I948;8:77'/I568;25)I6'0I;'I::545'HD36&+;I(I;=8'H'.I*I(I99'I7'0I(I6864'I;'G7(I'G;65<3392)I669(I6'H'.I76)5I(I7&F9'H(I=6=92+I)I<71:4:65;96695)I=:(I'/I8:4<(I74(I76(I::14568	NM:i:4	MD:Z:8C35G68C18T48	oR:Z:2	oH:i:1	oP:i:119	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.724	16	1	832	255	56M1I34M1I95M1D11M	*	0	0	TACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCACGACCTTCTCTGTTCATAAAACTTACGCATGATGCTACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCTAGCGGCGG	56695855:@695*I9866697;68)I;)I'G9<'I:57(I7'I8(I&-I'F3;97&:5&F'G25995&E3;8&,<I5(I5899<99388<&9',>I(I983:&.I(I77(1I66'I8<25:8:391968768547(I97=745(I6;7:5;;2;=:1(I6'1I7:'I8(I'1I=:166)I&-I'H1,I:546(I8,I	NM:i:3	MD:Z:185C11	oR:Z:1	oH:i:1	oP:i:831	 [...]
 simulated.725	0	1	4827	255	178M1I27M	*	0	0	AGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACGTGGGTCCCATCGCATGGAGTAATGTTG	:5I(II4+':47?6I)<H'I(95I(96I'7=I(9;884I-&<8I'8874>9=;5<7I(5I/'738I(0I>,'4D4?6I(97H'I'9:I(G'8598989I(899I)I(776;;6967:89H';I*98:<H'7:;I(9I0'I(F'7698I'3I(46;98I(46895E&8276G'577284&2I-&:I/'<7866:;I(3;8I(59I*8	NM:i:1	MD:Z:205	oR:Z:1	oH:i:1	oP:i: [...]
 simulated.726	0	1	2267	255	194M	*	0	0	CTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGA	6;I)I)787I3(9F'2;759>4I*9748:45I(3757I(:I)I<,&;I.&I)78I(G'76:8I?-'499I(812I2(73I-&:F&65579709I(:H'7:6866@<275I)84:4933785;9II0)&9;H'I1(I(9667I(I1'I(I(95?3I(I-&I4):53I'7:I)85D&9699779H'7I-&5I(;7:	NM:i:0	MD:Z:194	oR:Z:1	oH:i:1	oP:i:2266	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.727	0	1	702	255	213M	*	0	0	CATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGC	4>51I(.8<H'69<I(>:I.&8F&51I*8893967::87I(6977I)93I(2<:<8I(I(;897I(F'8I1(I0'I(748 at I/'7576365I>,'45:9335:+6:=8<:86I3(64;47985849I):6638468;:683;1I(885965;87=G'8G'I*91G'542I(8I(5I(I1(I(759778G'I'885:6I'975I;+&6E&:7:4	NM:i:0	MD:Z:213	oR:Z:1	oH:i [...]
-simulated.728	16	1	7488	255	34M1D88M1I82M	*	0	0	TAAGGCTAATTGATGCATATCCCTGCACCTTTCATTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGTATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCAT	4'H'H36'H'H4<6755924'/I:538(I&.I9:+I'I&.I54)I)I)I(I66::88'I57'I'G8676(I95756)I3)I4'I'I48@'H7:6(I=4'H4)I'I=(I6876637977'F47%67:8;='H=688(I4(I*I786;498678:)I'/I5(I?>'I;'0I)I8:424362884*I977(I6:(1I9=999(3I<::	NM:i:2	MD:Z:34^T170	oR:Z:1	oH:i: [...]
-simulated.729	0	1	6384	255	13M1I48M1D60M1I66M	*	0	0	GGTTTGGTCTTGACGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTAGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGC	G'I1(I(3;I*<;'3;996E&3:38675 at 8I(I/'I)6;;;I/'865I(79H'588I8*&9;D87I(I(I):84I'65I'878I*7:4:969=I(2557I(8;I(H'66<2=46:76;<:I'%279I)76:;484I1(6:;5247I(;7566:988;8I(53>8679I'8F&43;227I2(77I(I'63	NM:i:3	MD:Z:61^T126	oR:Z:1	oH:i:1	oP:i:6383	oS:A:F	XE:i:3	XS [...]
-simulated.730	0	1	5450	255	7M1I41M1D161M	*	0	0	TACGCTGTAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGT	8:29967(I(99;9988;8I(F'653I'6I(;38;77I)F&7I)<=788C:98;<4;4I)=I1(85I'=6I-&I.'39;:<I(715I/'87I'G'I-&7H'6318I(4I'8=7I(5353=79I':G'7277<7835496I'66G'I(98977;H'855784I(79I(4:>26999986<:353;I'6:;8I(5;8679I.'<4I(48;59	NM:i:2	MD:Z:48^T161	oR: [...]
+simulated.728	16	1	7488	255	34M1D88M1I82M	*	0	0	TAAGGCTAATTGATGCATATCCCTGCACCTTTCATTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGTATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCAT	4'H'H36'H'H4<6755924'/I:538(I&.I9:+I'I&.I54)I)I)I(I66::88'I57'I'G8676(I95756)I3)I4'I'I48@'H7:6(I=4'H4)I'I=(I6876637977'F47%67:8;='H=688(I4(I*I786;498678:)I'/I5(I?>'I;'0I)I8:424362884*I977(I6:(1I9=999(3I<::	NM:i:2	MD:Z:34T170	oR:Z:1	oH:i:1 [...]
+simulated.729	0	1	6384	255	13M1I48M1D60M1I66M	*	0	0	GGTTTGGTCTTGACGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTAGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGC	G'I1(I(3;I*<;'3;996E&3:38675 at 8I(I/'I)6;;;I/'865I(79H'588I8*&9;D87I(I(I):84I'65I'878I*7:4:969=I(2557I(8;I(H'66<2=46:76;<:I'%279I)76:;484I1(6:;5247I(;7566:988;8I(53>8679I'8F&43;227I2(77I(I'63	NM:i:3	MD:Z:61T126	oR:Z:1	oH:i:1	oP:i:6383	oS:A:F	XE:i:3	XS: [...]
+simulated.730	0	1	5450	255	7M1I41M1D161M	*	0	0	TACGCTGTAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGT	8:29967(I(99;9988;8I(F'653I'6I(;38;77I)F&7I)<=788C:98;<4;4I)=I1(85I'=6I-&I.'39;:<I(715I/'87I'G'I-&7H'6318I(4I'8=7I(5353=79I':G'7277<7835496I'66G'I(98977;H'855784I(79I(4:>26999986<:353;I'6:;8I(5;8679I.'<4I(48;59	NM:i:2	MD:Z:48T161	oR:Z [...]
 simulated.731	16	1	1589	255	210M	*	0	0	TGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCC	8=776936873'0I:995786'/I>'I99:6(I(I(I49&+;I754)I&*9I8&-I;'F9>7:)I9456(I6)I5(I8)I453;:(I86857(I5:876997(I)I&-I(I9(I?>(I'F<:6;4;89(I64666619718786>'G9355'I87(1I754::<',<I'H48337'H975<889)I863(I'I6&+:I534;'I'H6;(I	NM:i:0	MD:Z:210	oR:Z:1	oH:i:1	o [...]
-simulated.732	16	1	1986	255	164M1I6M1D6M	*	0	0	TGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGTAACCTTGGGACC	:&.I(3I=<4=7'I897.(I9'H8:5;5&)0II67)I<896:&F547996594:5:'H4<3<8'1I99='I5'G&-I)I::36:',<I2'I58<&F1'G15::7(I6671(1I:9:(I8'/I;62(I4(I9765599:5575)I7(2I(I856'/I)I68(I99%)I&E'I)6I:'I	NM:i:2	MD:Z:170^G6	oR:Z:1	oH:i:1	oP:i:1985	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.732	16	1	1986	255	164M1I6M1D6M	*	0	0	TGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGTAACCTTGGGACC	:&.I(3I=<4=7'I897.(I9'H8:5;5&)0II67)I<896:&F547996594:5:'H4<3<8'1I99='I5'G&-I)I::36:',<I2'I58<&F1'G15::7(I6671(1I:9:(I8'/I;62(I4(I9765599:5575)I7(2I(I856'/I)I68(I99%)I&E'I)6I:'I	NM:i:2	MD:Z:170G6	oR:Z:1	oH:i:1	oP:i:1985	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.733	0	1	772	255	112M1I74M1I16M	*	0	0	TTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTACTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATCGCGAGCGACCGACGAC	I(I/'G'59:6I-&4447968I at -'868985995687246=9I.'6762::::664I(6::683676855767H'42:9::<95=I*4I(I(:7G':86I(9I(7I(I/'I(&654369I+I(584<9I'814IA-'6I(9<5;55596527I<,'I':6;6I0'H'B7I/';9H'957>;=7:7<<%798;266:I(99997:	NM:i:2	MD:Z:202	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.734	0	1	26	255	5M1I4M1D153M1D14M1D33M	*	0	0	CTTACTAGACTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCACGGAATCAAGGCGCTCATGCGTGGATTGCCTTGACTTCCGTAGCT	;I(0?&66;5I,9I0':I)<7:8;I.&96F'96I-&597457I(6787629I(:H'9;55I)5I-&E&69847H'7466I(8=4<<;I'I7*&8;:36I(9548=5;5I':82;I0'594:697I)H'94I1(96<:95I'I3(70I(95:719I(:5:9I'9C76G'H'86I'I)9D646==:587I(2I(9I)G'474I(F':5;<9:	NM:i:4	MD:Z:9^T1 [...]
-simulated.735	16	1	1694	255	136M1D45M1I50M	*	0	0	GCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTACTCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTA	:(2I'IA)I:4(I(I=5<88566'H:=6:925<7=6AC79(I5955(I88'0I99>8;:&*8I)I85857(I792=<98'H1:4&F'H3&*8I97>.'I)I76)4I*IA(I3544?67<8;>387(I59;49&E97,I'/I'H144&*8I7:;4)I5(I'I'H7'G9;3&F2396'G)I59+685676748(I'G997(I'0I9'G685& [...]
+simulated.734	0	1	26	255	5M1I4M1D153M1D14M1D33M	*	0	0	CTTACTAGACTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCACGGAATCAAGGCGCTCATGCGTGGATTGCCTTGACTTCCGTAGCT	;I(0?&66;5I,9I0':I)<7:8;I.&96F'96I-&597457I(6787629I(:H'9;55I)5I-&E&69847H'7466I(8=4<<;I'I7*&8;:36I(9548=5;5I':82;I0'594:697I)H'94I1(96<:95I'I3(70I(95:719I(:5:9I'9C76G'H'86I'I)9D646==:587I(2I(9I)G'474I(F':5;<9:	NM:i:4	MD:Z:9T15 [...]
+simulated.735	16	1	1694	255	136M1D45M1I50M	*	0	0	GCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTACTCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTA	:(2I'IA)I:4(I(I=5<88566'H:=6:925<7=6AC79(I5955(I88'0I99>8;:&*8I)I85857(I792=<98'H1:4&F'H3&*8I97>.'I)I76)4I*IA(I3544?67<8;>387(I59;49&E97,I'/I'H144&*8I7:;4)I5(I'I'H7'G9;3&F2396'G)I59+685676748(I'G997(I'0I9'G685& [...]
 simulated.736	0	1	9024	255	198M	*	0	0	GATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCAAGCG	803;I(685I*I)7H'8;7I(656195565H'4554I(I)61388I.&I'I):I(48789:I)763I/'I/'895I'6G'463:1696I*I)61;;78I(3H'5I(I(86I(5I*:6I(77I(8<67I(239:;66969I(I(I-&76I'932I'7I.&7997785;7;;7::655649I'995;:934I/'6H'568	NM:i:0	MD:Z:198	oR:Z:1	oH:i:1	oP:i:9023	oS:A:F	XE:i:0	XS [...]
 simulated.737	16	1	5039	255	15M1I185M	*	0	0	CCCCATTTTCCACATACATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTA	&+;I=',=I(I9859&;;55'G47:'0I95'I37:(I5;977'H-8'G:943(I;=7697;47*I58:27(I55;*I=8'G'H<&.I5'I5674:6%(-7II:94579::=:(I1198&.I458'G7)I5074'H3<56&,<I7(I&-I797'H648(I&E84(I'I&-I42;'0I(I(I;=731:637929'0I5=4&D3	NM:i:1	MD:Z:200	oR:Z:1	oH:i:1	oP:i:5038	oS:A [...]
-simulated.738	16	1	3928	255	12M1D22M1I67M1I107M	*	0	0	TGCCTATATTGCTTATCCAAATGCATGAGTAATTAGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACACGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAAC	8;'G6.:6(I88+I54'G'.I8:@9798;9)I)I(689866<75639:&-I8'G94(I75<;)I;856=:@'H4)I:9(I4>:7796&-I&+9I8'I4:554*7865'H56'0I&+9I86;?28&.I(I3(I(I'I1>06;883'0I'I88;9&.I278'I(I'I)I3868(I;988:'I7&-I86;868767(I34:'.I6'G&-I'H:	NM:i:3	MD:Z:12^T [...]
-simulated.739	16	1	1678	255	66M1D132M	*	0	0	TGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTAT	;96(I=7497663(I(I&-I(I4'I::(I'I<:98448<'G756553;:8557:48(I;647(I53,I486996&+:I&E77<6;'G46;:794(I4;;(I'I4&+9I726?(I*I;7&.I'H4'H2987363991716>)I76=95*I69(2I&.I(I<35&*7IB248(I;(I)I(I7(I847'H684:)I'I859	NM:i:1	MD:Z:66^G132	oR:Z:1	oH:i:1	oP:i:1677	oS:A:R [...]
-simulated.740	0	1	7489	255	198M1D13M	*	0	0	ACGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTCATGGACAATC	2%I)88E&I)85:7;9988I2(5<46I(I/';8I/'I(I.&46I(I(I(I+659;88I(=8I'I(=/73G'85974I(8I)9I)I(87:I(64<I'86G'9I(I';G'678:9;74:;G'82;;>552I(<848I(:I(I(764<:57633;I(I2(:G';4I'<I,&I(8:195:;<347I)778I(86I0'7266;I+::8I'53I)5=	NM:i:2	MD:Z:1A196^T13	oR: [...]
-simulated.741	16	1	8522	255	173M1D19M	*	0	0	CTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGCCAGCCCTTAAAGGAT	;8'H:'0I48;4'F2*I:384=48'H)I:68=8(I'I&*3II7734&+;I89&E>57:&-I6&-I:(I8(I619:)I;'I576)I7(I7;5&*8I'/I'H9848;',<I97<5/:5'.I798:75<754426(I4(I7<7)I:(I598'/I9(I9'G5:(I3;;'F'I'H785*7I(I4:&-I(I'1I(I39	NM:i:1	MD:Z:173^G19	oR:Z:1	oH:i:1	oP:i:8521	oS:A:R	XE:i:1	XS:i [...]
-simulated.742	16	1	2608	255	70M1I53M1I5M1D44M1I4M	*	0	0	GGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCAGTCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTAGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGTAAGT	(I49(I984<548)I:6927<5735'+4II96'I7'/I8;(I<77;;69784'I;84977)I7;86(I:=%9:948556475'H257(I7=2856775<*I8)I at 5955;38:565)I7&*8I8(6'0I5,I&,<I98'G372&-I)I?:5725:(I3:*I(I?&+:I=996;6))I96	NM:i:4	MD:Z:128^T48	oR:Z:1	oH:i:1	oP:i:2607	oS:A:R	XE:i:4	XS:i:0	XI:i:0
-simulated.743	0	2	206	255	8M1I155M1D40M	*	0	0	TTAAGAGCTATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAG	I(I*6.75&55;7H':;3H'7I(I0'79I=,'I(5I)<I(G'86954I.&F'7:>=:776898<66I(89I'I.&694<I'26F&93H'6;75;:;7?<4A536;7I(894897889657:I/'H'I(9:559:8I'I'F'567846839H'8:7I(8;I.&53I6)972I.&?:I'<7:85:688I(8<I/'7I(5767:I(8	NM:i:2	MD:Z:163^G40	oR:Z:2	oH:i:1	oP [...]
-simulated.744	16	1	1942	255	7M1D21M1I89M1D90M	*	0	0	CATTCGCTACGACTCTGGTATAGGGGTGTCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGA	54&E97:D67691644'I5368&*9I85%'I4;;86526)I;)I7&.I(2I6:9:8'H8=67(I9(I>6799&*2II79'G979:5'G77:9478;6477'G46463'/I7=5'H7)I,I*I76792&+:I6*I<76(I9(I7:9<:*I<565&.I:8?(I.&.I967(I6'G76;:186;4:7:'I;(1I(I955'/I'H55'I1;6	NM:i:3	MD:Z:7^T110^C90 [...]
-simulated.745	16	1	3385	255	5M1I90M1I84M1D34M	*	0	0	TGACACTGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAAGTGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTCATTGCTCGATTAATTGGTATTCGTTTGTGATT	8897-(7?'0I54)I'G436;88(I:883556(I'/I&.I6534'H;9:7953765748;=;3'I>7:04&*8I<:(I&*2II5'/I6<<6374(I)=)I7'1I57'1I(I6;8='I6989&-I6'G9(I588<7752*I<&.I5'G75;'I(I7'I6&.I(I64479:',=I756&,I(ID69(I7964:>*I(I(I(I=2'H58'0I879:'H	NM:i:3	M [...]
+simulated.738	16	1	3928	255	12M1D22M1I67M1I107M	*	0	0	TGCCTATATTGCTTATCCAAATGCATGAGTAATTAGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACACGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAAC	8;'G6.:6(I88+I54'G'.I8:@9798;9)I)I(689866<75639:&-I8'G94(I75<;)I;856=:@'H4)I:9(I4>:7796&-I&+9I8'I4:554*7865'H56'0I&+9I86;?28&.I(I3(I(I'I1>06;883'0I'I88;9&.I278'I(I'I)I3868(I;988:'I7&-I86;868767(I34:'.I6'G&-I'H:	NM:i:3	MD:Z:12T1 [...]
+simulated.739	16	1	1678	255	66M1D132M	*	0	0	TGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCATGCTTCAGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTAT	;96(I=7497663(I(I&-I(I4'I::(I'I<:98448<'G756553;:8557:48(I;647(I53,I486996&+:I&E77<6;'G46;:794(I4;;(I'I4&+9I726?(I*I;7&.I'H4'H2987363991716>)I76=95*I69(2I&.I(I<35&*7IB248(I;(I)I(I7(I847'H684:)I'I859	NM:i:1	MD:Z:66G132	oR:Z:1	oH:i:1	oP:i:1677	oS:A:R	 [...]
+simulated.740	0	1	7489	255	198M1D13M	*	0	0	ACGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTCATGGACAATC	2%I)88E&I)85:7;9988I2(5<46I(I/';8I/'I(I.&46I(I(I(I+659;88I(=8I'I(=/73G'85974I(8I)9I)I(87:I(64<I'86G'9I(I';G'678:9;74:;G'82;;>552I(<848I(:I(I(764<:57633;I(I2(:G';4I'<I,&I(8:195:;<347I)778I(86I0'7266;I+::8I'53I)5=	NM:i:2	MD:Z:1A196T13	oR:Z [...]
+simulated.741	16	1	8522	255	173M1D19M	*	0	0	CTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGCCAGCCCTTAAAGGAT	;8'H:'0I48;4'F2*I:384=48'H)I:68=8(I'I&*3II7734&+;I89&E>57:&-I6&-I:(I8(I619:)I;'I576)I7(I7;5&*8I'/I'H9848;',<I97<5/:5'.I798:75<754426(I4(I7<7)I:(I598'/I9(I9'G5:(I3;;'F'I'H785*7I(I4:&-I(I'1I(I39	NM:i:1	MD:Z:173G19	oR:Z:1	oH:i:1	oP:i:8521	oS:A:R	XE:i:1	XS:i: [...]
+simulated.742	16	1	2608	255	70M1I53M1I5M1D44M1I4M	*	0	0	GGATGGCAGTGTAGGAGCGACTAGATTTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCAGTCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTAGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGTAAGT	(I49(I984<548)I:6927<5735'+4II96'I7'/I8;(I<77;;69784'I;84977)I7;86(I:=%9:948556475'H257(I7=2856775<*I8)I at 5955;38:565)I7&*8I8(6'0I5,I&,<I98'G372&-I)I?:5725:(I3:*I(I?&+:I=996;6))I96	NM:i:4	MD:Z:128T48	oR:Z:1	oH:i:1	oP:i:2607	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.743	0	2	206	255	8M1I155M1D40M	*	0	0	TTAAGAGCTATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGCGGGTCGGGAGATTTATCCTCATCTCTCTTCTGGGAGGTAGCTAAG	I(I*6.75&55;7H':;3H'7I(I0'79I=,'I(5I)<I(G'86954I.&F'7:>=:776898<66I(89I'I.&694<I'26F&93H'6;75;:;7?<4A536;7I(894897889657:I/'H'I(9:559:8I'I'F'567846839H'8:7I(8;I.&53I6)972I.&?:I'<7:85:688I(8<I/'7I(5767:I(8	NM:i:2	MD:Z:163G40	oR:Z:2	oH:i:1	oP: [...]
+simulated.744	16	1	1942	255	7M1D21M1I89M1D90M	*	0	0	CATTCGCTACGACTCTGGTATAGGGGTGTCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGA	54&E97:D67691644'I5368&*9I85%'I4;;86526)I;)I7&.I(2I6:9:8'H8=67(I9(I>6799&*2II79'G979:5'G77:9478;6477'G46463'/I7=5'H7)I,I*I76792&+:I6*I<76(I9(I7:9<:*I<565&.I:8?(I.&.I967(I6'G76;:186;4:7:'I;(1I(I955'/I'H55'I1;6	NM:i:3	MD:Z:7T110C90	o [...]
+simulated.745	16	1	3385	255	5M1I90M1I84M1D34M	*	0	0	TGACACTGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAAGTGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTCATTGCTCGATTAATTGGTATTCGTTTGTGATT	8897-(7?'0I54)I'G436;88(I:883556(I'/I&.I6534'H;9:7953765748;=;3'I>7:04&*8I<:(I&*2II5'/I6<<6374(I)=)I7'1I57'1I(I6;8='I6989&-I6'G9(I588<7752*I<&.I5'G75;'I(I7'I6&.I(I64479:',=I756&,I(ID69(I7964:>*I(I(I(I=2'H58'0I879:'H	NM:i:3	M [...]
 simulated.746	16	1	3888	255	187M	*	0	0	AGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTGG	74&)/<II85684802)I)I8(I=7>8;:45;798'/I897;(I9665'I99'/I86(I'0I;4<365;9;(I)I756;459549:95'/I8&E24(I9556(I:665<98'G7(I98'H5927662&-I',=ID)I1767;:856(I78'/I',=I:;88<8(1I'I=(I(I'H66446976+I)I	NM:i:1	MD:Z:185T1	oR:Z:1	oH:i:1	oP:i:3887	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.747	0	1	6009	255	164M	*	0	0	TGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCAC	441286I:+&=I.&6II;/)&8947:65:6;7;I(I(65I(865I-&479:47<;65272;7F&69:777I0'8I(49 at 2453I(8I(;5<I(:7;7II2*&6I at -'394I(868I0'H':;5247576<<7I(3I at -'I.'875;96 at I)9551G'37I2(47	NM:i:0	MD:Z:164	oR:Z:1	oH:i:1	oP:i:6008	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.748	16	1	2213	255	31M1I164M	*	0	0	GTAGCCCCATCACCAGCGCAGTACTATCGTTAGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGT	7686(.AI:6;4'F06:89826765:858'I%69)4I38;4'I;4747=9;87=99;'I(I7:7&.I2'H7:>:85='G69:;694(I9593(I9'G'-AI=(1I'I<7(I(I7827'-?I579'H354(1I96'/I?(I85<587;7(I5(I784;82559<7'G979<:7;75 at 79&*1II67'I'/I(I:68;	NM:i:1	MD:Z:195	oR:Z:1	oH:i:1	oP:i:2212	oS:A:R	XE:i:1	 [...]
@@ -753,93 +753,93 @@ simulated.749	16	1	312	255	215M	*	0	0	TTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATC
 simulated.750	16	1	1541	255	10M1I49M1I125M	*	0	0	GAAGATAGTGTCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACGAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATG	<)I6676793''0I87874375=(I8:<9:76=8&.I(I774679679(I7856575778&&.I9;54997(2I2)I96;9)I'H(I5:'-?I89;*I&*9I8'/I:)I:973(I75:9(I>'I8'I;(I2995<'H28:76)I3;267969(I(I)4I(I8(I84(I'G:959:<:7(I483:76	NM:i:2	MD:Z:184	oR:Z:1	oH:i:1	oP:i:1540	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.751	16	1	458	255	188M	*	0	0	AGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGA	9;8(I93878:(I79993<979(I47)I5'I'G(I:8&+9I:=649@='H43*I'-?I588'I:6'/I5231(1I6'H(I869'/I9=5659)I4988:(I8)I'I86287978'1I794:4'/I<7:4878'I:8;687;&-I74(1I:)I6745<566)I23946268(I89)I57)I997&E;:8	NM:i:0	MD:Z:188	oR:Z:1	oH:i:1	oP:i:457	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.752	16	1	7112	255	220M	*	0	0	ATCGGATGGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTAGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTG	56>(I25'0I;'H'0I6:(I88)I*I4&.I'0I;82)I:'H6:29)I99'F895=:759<7&E(1I0'0IA<54'I'I483:<3=6;9983:8356365(I:'I:85&,I68;1'I697'I537(I7'I(I<27'H;<<:65;5576:&*9I:8(I<(I85;>=64:(I)I55)I94&+9I(I6651:(I7(I68'/I757'G5;3)I&-I86'.I6897	NM:i:1	MD:Z [...]
-simulated.753	16	1	7843	255	31M1D133M1I23M	*	0	0	GGATAAATTTCAGAAGAACAGAGTCTTCCCACAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACGTAGCAACGGGCTCATAGTATTGT	)I58(2I'0I389(I8(I=;85::6(I&-I2C'H88;55759>(.CI2'G>99(I'I65773579&.I13(I;'G=(I82(I834&F51<6;;636(I9='H6<8:459:?9968'I1>;:6(I5'H8&E73:(I7'/I<3895::<(1I8'.I(I8;:(I'H8&868:'H6'/I3:;7:<885(I<7	NM:i:2	MD:Z:31^C156	oR:Z:1	oH:i:1	oP:i:7842	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.754	16	1	253	255	40M1D96M1I64M	*	0	0	ACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGACCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCG	6'G(I&.I'H74(I4:74(2I6995(I=68874)I74'I7D87;9(I3'H'H)I(I',=I7:87'G9:&.I86<<678)I97<(I45=96;&+;I76:88(I'0I746'I8'F:(I7(1I68:84887&)1II8(I%(I6653'/I&.I72::6:8567(I)I'0I6389<6877'0I'H648'G64(I8;(2I(I;34:9	NM:i:2	MD:Z:40^A160	oR:Z:1	oH:i:1	oP:i:25 [...]
-simulated.755	0	1	5195	255	71M1D6M1D134M	*	0	0	AATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCTGCTCGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTG	I(I(7:I'I(I0'<55I.&I)I(558652859:@1I0'975I'9G'I(:H'<:43I*6I(58258::5548C=565:CI*9=<I/'I.'<88><7I(6874I(I(I'7>44I(I(56>6;;8I.&:8I/'2I1'I(I);I)7I)89498956I0':::9;53I:+&9H'6F'5;=I2(379989::58I(:5G'<987;88I'8:7I.&85	NM:i:2	MD:Z:71^C6^G13 [...]
+simulated.753	16	1	7843	255	31M1D133M1I23M	*	0	0	GGATAAATTTCAGAAGAACAGAGTCTTCCCACAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACGTAGCAACGGGCTCATAGTATTGT	)I58(2I'0I389(I8(I=;85::6(I&-I2C'H88;55759>(.CI2'G>99(I'I65773579&.I13(I;'G=(I82(I834&F51<6;;636(I9='H6<8:459:?9968'I1>;:6(I5'H8&E73:(I7'/I<3895::<(1I8'.I(I8;:(I'H8&868:'H6'/I3:;7:<885(I<7	NM:i:2	MD:Z:31C156	oR:Z:1	oH:i:1	oP:i:7842	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.754	16	1	253	255	40M1D96M1I64M	*	0	0	ACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGACCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCG	6'G(I&.I'H74(I4:74(2I6995(I=68874)I74'I7D87;9(I3'H'H)I(I',=I7:87'G9:&.I86<<678)I97<(I45=96;&+;I76:88(I'0I746'I8'F:(I7(1I68:84887&)1II8(I%(I6653'/I&.I72::6:8567(I)I'0I6389<6877'0I'H648'G64(I8;(2I(I;34:9	NM:i:2	MD:Z:40A160	oR:Z:1	oH:i:1	oP:i:252 [...]
+simulated.755	0	1	5195	255	71M1D6M1D134M	*	0	0	AATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCTGCTCGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTG	I(I(7:I'I(I0'<55I.&I)I(558652859:@1I0'975I'9G'I(:H'<:43I*6I(58258::5548C=565:CI*9=<I/'I.'<88><7I(6874I(I(I'7>44I(I(56>6;;8I.&:8I/'2I1'I(I);I)7I)89498956I0':::9;53I:+&9H'6F'5;=I2(379989::58I(:5G'<987;88I'8:7I.&85	NM:i:2	MD:Z:71C6G134	 [...]
 simulated.756	16	1	1495	255	88M1I84M1I22M	*	0	0	GGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCTACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGCCGGGGCAAACAACACTAAGTGTAACGGAGGTAGGTACATAAGCTGACCATAGTG	'G355;:55180;54<77)I&-I>669;'/I1:7&+3II(I*I86'I)I8677576&,I::/>69661'F67;809567(1I(I78<5*5;878'G6843697998(2I<48956=(3I3(I865<&E'H)I65&+:I965'I&*8I7'/I5'I692:(I5:58(I5(I8'I:&(I6<488'F464?4&F69:94:	NM:i:2	MD:Z:194	oR:Z:1	oH:i:1	oP:i:1494	oS:A:R	XE: [...]
-simulated.757	0	1	5273	255	86M1D7M1I25M1I62M	*	0	0	GGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGTCCGTCCTATAAAGTGACACTGTCCTGAACGTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACG	I(I(766I.&I-&71:5:=I'5635I*I(I)8978I(I)9596967I0'69I/'8I2(I'I(4I):I*5688898;I.'<9<798;I7*7G'7%I(9>>I/'79;778;>57I(4:I(8,36?673I)9;9I0'95553I'4I*<I1'6I(6;II1*&47833F'377;4768H'84H'B;6	NM:i:3	MD:Z:86^G94	oR:Z:1	oH:i:1	oP:i:5272	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.758	0	1	3842	255	3M1D32M1D88M1I54M	*	0	0	TGGAATTCGGAGTGTGCGAGAACTTCAATCAGCTGATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTAGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCC	3I)I+I(8I(759947376:I)8I(4I'677789?D8I(91:5587II;/)&376844:8I(I(1I'8654;7<6847<I-&4;77G'755<I)6?I-&<8I(I.'392877<7;I(I)?865'9595=7846I-&7I(44H'789:I(58389:2H'1G':1I*7;80788I4)I.'	NM:i:3	MD:Z:3^A32^A142	oR:Z:1	oH:i:1	oP:i:3841	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.757	0	1	5273	255	86M1D7M1I25M1I62M	*	0	0	GGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGTCCGTCCTATAAAGTGACACTGTCCTGAACGTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACG	I(I(766I.&I-&71:5:=I'5635I*I(I)8978I(I)9596967I0'69I/'8I2(I'I(4I):I*5688898;I.'<9<798;I7*7G'7%I(9>>I/'79;778;>57I(4:I(8,36?673I)9;9I0'95553I'4I*<I1'6I(6;II1*&47833F'377;4768H'84H'B;6	NM:i:3	MD:Z:86G94	oR:Z:1	oH:i:1	oP:i:5272	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.758	0	1	3842	255	3M1D32M1D88M1I54M	*	0	0	TGGAATTCGGAGTGTGCGAGAACTTCAATCAGCTGATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTAGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCC	3I)I+I(8I(759947376:I)8I(4I'677789?D8I(91:5587II;/)&376844:8I(I(1I'8654;7<6847<I-&4;77G'755<I)6?I-&<8I(I.'392877<7;I(I)?865'9595=7846I-&7I(44H'789:I(58389:2H'1G':1I*7;80788I4)I.'	NM:i:3	MD:Z:3A32A142	oR:Z:1	oH:i:1	oP:i:3841	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.759	0	1	5092	255	118M1I73M	*	0	0	CTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGAGTGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGG	457 at 8472:I'86468I+378G'88I(I(4I-&9H'4539<7II9.)&658646;676I'569:I/'064I(3I(56:8I(4234I<,&7I(I0':58I(989I)G'96G'I(I0'64*9I4)I)I(3;89683:8987I.&7::I'3I)I)3I(;889I(4I'3597<:4:777I)39866I(H'977I5)	NM:i:1	MD:Z:191	oR:Z:1	oH:i:1	oP:i:5091	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.760	0	1	3619	255	31M1I85M1I88M	*	0	0	TGGTGTTATTTTGTCTACGGTCTACCACTTGAATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCGTTTGGGTAGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTAC	9I*83F&6I;+&354648I'=778I'38I):E&67785I(>;;I'8E&I>,'7 at I(6I(568G'I-&I?-':9><8I(I(443I(<8<8467I(8:G'9989I'I(I(7:I2(@7I(%I2(I0'D'7I(77I.'2782<84:8I1'77I/'I(:I1'2<I'77.8;;=I(6I(8098I/'43I(I(867I(?44;99578759952	NM:i:3	MD:Z:123T80	oR:Z:1	oH:i: [...]
 simulated.761	16	1	9180	255	37M1I50M1I99M	*	0	0	GGGCATGCACATGATCGTACGCAGGCGCGCGCATTTCGAAGCGCGGAACCGACAACGGTTTGTTGGCTATTATTTAATAAGATCTAGACGGAACAGCTTCCGTAATACAATCTGTATAATGTAAACTGCCCACGTACCGCCAGAGAATTGATCGTCGACCTCATTGTATTCACGTAACGGGATGAGTT	'0I?7844476<6765566:898(I8779937<'0I8('I:49/'I'I'F>8:(I8(I'.I<'H'I978(I8(2I(I8)I6:3:;;:6''I(I5887&F)I97'F286'F6:9:988&F41>'0I894'0I:67=3(I6(I:;7@'G(I742354476'I;:5'H5AA(I;693;'I;'/I946:8(I	NM:i:2	MD:Z:186	oR:Z:1	oH:i:1	oP:i:9179	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.762	0	1	2241	255	195M	*	0	0	GTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATA	>I(:5I1(6:97I*75786675:78865I(F'=88I0'5I'4268657G'83:778:E&6877H'7I(I<,&6I0'I)38H'I(6457I9+&675I(965I/':4I1(;H';654:5;5I(9G':727=6567=3F':7:2?5293295IF/)%::E&I.'I)<689H'I.&I(I(4799I'I.'I/':83I':9	NM:i:0	MD:Z:195	oR:Z:1	oH:i:1	oP:i:2240	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.763	0	1	400	255	210M	*	0	0	CCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACC	I(4:5:565737I(I'I2(:879;9=<1I.&I(793G'57I(24I.&I)1<1572:I(768I(968799I'78<8974:/I(07F'4I'I(G'46IA-'9686686F':4I(I:+&956I'8<I/'7747I0';H'H'<97I.'8:888:I)67975I'7I)I(75<65365I,&77768I.';;5978:F':;74685I.'96I2(6I)	NM:i:0	MD:Z:210	oR:Z:1	oH:i:1	oP: [...]
-simulated.764	0	1	9002	255	112M1D75M	*	0	0	ATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCAC	637<767I(<>2I/'549I(8;6627H'896I)F&4I)44;I*385;:9;96I*;645I'I'977=8I-&I(I(3I)47:477H'?76I.&I.'>;9I(:I(5856B389I(B4:959;H'6I(:H'I(75I'<G'96I)5=H'76=5I(;2<76:3=18I(I*I.':4I)888I(;I0'7474<78	NM:i:1	MD:Z:112^C75	oR:Z:1	oH:i:1	oP:i:9001	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.765	0	1	4560	255	1M1I27M1D92M1I82M	*	0	0	GACCGCTAGTCGGTGATCACTTGGAGCCGCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCTACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAG	7%F':486479I(78>9986I)I(39I(<I+7555G'779699;9796H'I2(488I0':45I(H'4I'289I(9138;2:;F'5I/'9D&7;16I':9I(;93<6I.&7;::19I':I(;'8;45I/'I(6;:I(:99947I.&645G'I'47<87I)8;46I1'::59H'=5I)25IG0)%I/'G'9I(8538I(935<I'4	NM:i:3	MD:Z:28^C174	oR:Z:1	oH:i [...]
-simulated.766	16	1	2181	255	19M1D163M	*	0	0	CTATTATAACTGAGTTGAGCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCT	496'G7:(I98:5=)I593,I'H57%(-8II3845&*8I<:46'I8;95:78;9:8=;94(I67'/I9268(I;45:::695::5B9(I'H<;8'/I8(I772838;*I85=496;)I8784)I7(I'- at I7'/I'G76(I*I77:4&+:I>69'G687&.I77(3I7)I7>944993'G;9	NM:i:1	MD:Z:19^C163	oR:Z:1	oH:i:1	oP:i:2180	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.767	0	2	71	255	174M1D7M	*	0	0	ATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAGCAGAT	746;40:615I(7=6<96<:=I(5I(I'89:H'I(86 at 6:95:96H';I/';8I(I'I,&;:837874I2(:886<4H'8I.'<I(5<47<I(I):;I:+&I'397I*I-&I'G'79H';I2(I(4738F'0I)2I(F'8::68=<7I'643I(7I'I-&5;I at -'I(8F':H'B8;1863	NM:i:1	MD:Z:174^A7	oR:Z:2	oH:i:1	oP:i:70	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.768	0	1	2383	255	104M1D35M1I96M	*	0	0	TGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGATCGCGTGATACATTGCCTTGGAATCTTGGCTACAGTTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTG	655:794II1*&98I'I1'I(8837I'I1'I)I(>;53I*I1'I.&:86I(67I*73G'<=454<:I(<I0';I'::I'36;I'64;1749I(32888I(:649D7525=8;977:5I)9I(H'I(I(;6I(I'775:6*I)9I(I'2I.'<259;8<837:73;879I(26I'8I(73::8:>:3;4:I)<I*6II2*&5:4G'97 [...]
-simulated.769	0	1	4033	255	124M1I31M1D53M	*	0	0	CGGACGTTTAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACACGGTCCAATTGGCGGGTTACTGGCGCGAACATCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGG	9I(:8&I0'I7*4848<7I/'I'5I)I)G'873999=7I1'I(3:57I3(?72I'I(I(I(8;48I(55468I(8I/'51:349786I*6:7I0'9I(I3(H'<I+846:>03I'9H'573766%E&3G'I(I(H'5I/'I(77:I(6785I(856I,I)I);556I'8<7266I'89I1(46I(9I(68>8;53640;68I'I3(:I(	NM:i:4	MD:Z:5T2A146^C53	 [...]
-simulated.770	16	1	8478	255	72M1I9M1D117M	*	0	0	ATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGTATCATCCGGCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTG	:863'/I6;'H75)I9984866475893?(I8:15(I59(I8'H87(I5'.I5885'G:(I9:8:585'I)I)67255(I'I(.BI7:74&+9I=7(I;717'/I8(1I;'I3)I7=83'G3'H78@'G9'H596',=I&.I'H55613(.BI6;::8;0'/I86624:6:>7444(I9&E373'G7'I976(2I8'G7	NM:i:2	MD:Z:81^C117	oR:Z:1	oH:i:1	oP:i:8477	 [...]
-simulated.771	0	1	536	255	26M1D91M1I15M1I63M1I5M1I7M	*	0	0	AAGCGTTTGCATCATTCTGTCGGTCCTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGACGTCCCTAGTAAGGAGTTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACGTGTCAGTCGCGGC	G'758I/':825?8I'8:377I'8I'B98138694I1(97796I-&8898;66I(828515:I0'7?I.&6H'14=8:689I(8859342;I);/G'99I*83:H'66:II</*&I('537I4):736I)I(:&I0'6>56772:9;I(786499;777:I)679;::79:I)427F'76>H'89I.'2H'87I'9:&88;67';33?E&=	NM:i:5	MD [...]
-simulated.772	0	1	190	255	25M1I5M1I28M1D26M1I17M1I90M	*	0	0	CACGGAATCAAGGCGGCTCATGCGTCGGATTAGCCTTGACTTCCGTAGCTTGGGGGGTAGCGGCACCGGCCCGGCTAACAGCGGGACGTGCCATACACTTCTGGTCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGC	886G'I'76I'I)6I(98;6;;569&I*;G'%8G'I(776F'H'5598;I'II</*&977CI'57I'I)I1(I(64I(:@<3I1'9'778I)85?7<9I(4:I('<H'8=67I(2H'I)H'I(I9*&549:I(85I.&8<6>733H'993G'77:<;3I9+&81:52I*I/'<86I(7I':H':I3(7:5=;9:8	NM:i:5	MD:Z:58^C133	oR:Z:1	oH:i:1	oP:i:1 [...]
-simulated.773	16	1	8512	255	90M1I15M1D27M1I78M	*	0	0	ATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGACAGAAGTTCGTAAAACCAAGTGCGTTTTGCGACGCAAAGTAGTCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCA	2&D90&E6'I87(I:&.I349:)I7'G7879878(I(I767:4(I(I&*1II6=5=&+;I28(I4563&.I;(2I8(I8(I7<79'F9)I';68(I4'H?=9&+:I+I(I587>6&+;I?:6:5:7(2I9?:>'8>7276:96)I8'I964(I4&F;5;&-I4(I6'F8:(I:45'G(I)I>76&*9I(I19&-I'H&-I(I:&F'0I'.I5	NM:i:3	MD:Z:1 [...]
+simulated.764	0	1	9002	255	112M1D75M	*	0	0	ATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGGCATGCAC	637<767I(<>2I/'549I(8;6627H'896I)F&4I)44;I*385;:9;96I*;645I'I'977=8I-&I(I(3I)47:477H'?76I.&I.'>;9I(:I(5856B389I(B4:959;H'6I(:H'I(75I'<G'96I)5=H'76=5I(;2<76:3=18I(I*I.':4I)888I(;I0'7474<78	NM:i:1	MD:Z:112C75	oR:Z:1	oH:i:1	oP:i:9001	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.765	0	1	4560	255	1M1I27M1D92M1I82M	*	0	0	GACCGCTAGTCGGTGATCACTTGGAGCCGCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCTACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAG	7%F':486479I(78>9986I)I(39I(<I+7555G'779699;9796H'I2(488I0':45I(H'4I'289I(9138;2:;F'5I/'9D&7;16I':9I(;93<6I.&7;::19I':I(;'8;45I/'I(6;:I(:99947I.&645G'I'47<87I)8;46I1'::59H'=5I)25IG0)%I/'G'9I(8538I(935<I'4	NM:i:3	MD:Z:28C174	oR:Z:1	oH:i: [...]
+simulated.766	16	1	2181	255	19M1D163M	*	0	0	CTATTATAACTGAGTTGAGCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCT	496'G7:(I98:5=)I593,I'H57%(-8II3845&*8I<:46'I8;95:78;9:8=;94(I67'/I9268(I;45:::695::5B9(I'H<;8'/I8(I772838;*I85=496;)I8784)I7(I'- at I7'/I'G76(I*I77:4&+:I>69'G687&.I77(3I7)I7>944993'G;9	NM:i:1	MD:Z:19C163	oR:Z:1	oH:i:1	oP:i:2180	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.767	0	2	71	255	174M1D7M	*	0	0	ATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAGCAGAT	746;40:615I(7=6<96<:=I(5I(I'89:H'I(86 at 6:95:96H';I/';8I(I'I,&;:837874I2(:886<4H'8I.'<I(5<47<I(I):;I:+&I'397I*I-&I'G'79H';I2(I(4738F'0I)2I(F'8::68=<7I'643I(7I'I-&5;I at -'I(8F':H'B8;1863	NM:i:1	MD:Z:174A7	oR:Z:2	oH:i:1	oP:i:70	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.768	0	1	2383	255	104M1D35M1I96M	*	0	0	TGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGATCGCGTGATACATTGCCTTGGAATCTTGGCTACAGTTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTG	655:794II1*&98I'I1'I(8837I'I1'I)I(>;53I*I1'I.&:86I(67I*73G'<=454<:I(<I0';I'::I'36;I'64;1749I(32888I(:649D7525=8;977:5I)9I(H'I(I(;6I(I'775:6*I)9I(I'2I.'<259;8<837:73;879I(26I'8I(73::8:>:3;4:I)<I*6II2*&5:4G'97 [...]
+simulated.769	0	1	4033	255	124M1I31M1D53M	*	0	0	CGGACGTTTAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACACGGTCCAATTGGCGGGTTACTGGCGCGAACATCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGG	9I(:8&I0'I7*4848<7I/'I'5I)I)G'873999=7I1'I(3:57I3(?72I'I(I(I(8;48I(55468I(8I/'51:349786I*6:7I0'9I(I3(H'<I+846:>03I'9H'573766%E&3G'I(I(H'5I/'I(77:I(6785I(856I,I)I);556I'8<7266I'89I1(46I(9I(68>8;53640;68I'I3(:I(	NM:i:4	MD:Z:5T2A146C53	o [...]
+simulated.770	16	1	8478	255	72M1I9M1D117M	*	0	0	ATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGTATCATCCGGCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTG	:863'/I6;'H75)I9984866475893?(I8:15(I59(I8'H87(I5'.I5885'G:(I9:8:585'I)I)67255(I'I(.BI7:74&+9I=7(I;717'/I8(1I;'I3)I7=83'G3'H78@'G9'H596',=I&.I'H55613(.BI6;::8;0'/I86624:6:>7444(I9&E373'G7'I976(2I8'G7	NM:i:2	MD:Z:81C117	oR:Z:1	oH:i:1	oP:i:8477	o [...]
+simulated.771	0	1	536	255	26M1D91M1I15M1I63M1I5M1I7M	*	0	0	AAGCGTTTGCATCATTCTGTCGGTCCTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGACGTCCCTAGTAAGGAGTTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACGTGTCAGTCGCGGC	G'758I/':825?8I'8:377I'8I'B98138694I1(97796I-&8898;66I(828515:I0'7?I.&6H'14=8:689I(8859342;I);/G'99I*83:H'66:II</*&I('537I4):736I)I(:&I0'6>56772:9;I(786499;777:I)679;::79:I)427F'76>H'89I.'2H'87I'9:&88;67';33?E&=	NM:i:5	MD [...]
+simulated.772	0	1	190	255	25M1I5M1I28M1D26M1I17M1I90M	*	0	0	CACGGAATCAAGGCGGCTCATGCGTCGGATTAGCCTTGACTTCCGTAGCTTGGGGGGTAGCGGCACCGGCCCGGCTAACAGCGGGACGTGCCATACACTTCTGGTCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGC	886G'I'76I'I)6I(98;6;;569&I*;G'%8G'I(776F'H'5598;I'II</*&977CI'57I'I)I1(I(64I(:@<3I1'9'778I)85?7<9I(4:I('<H'8=67I(2H'I)H'I(I9*&549:I(85I.&8<6>733H'993G'77:<;3I9+&81:52I*I/'<86I(7I':H':I3(7:5=;9:8	NM:i:5	MD:Z:58C133	oR:Z:1	oH:i:1	oP:i:18 [...]
+simulated.773	16	1	8512	255	90M1I15M1D27M1I78M	*	0	0	ATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGACAGAAGTTCGTAAAACCAAGTGCGTTTTGCGACGCAAAGTAGTCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGGATTGGGCCCA	2&D90&E6'I87(I:&.I349:)I7'G7879878(I(I767:4(I(I&*1II6=5=&+;I28(I4563&.I;(2I8(I8(I7<79'F9)I';68(I4'H?=9&+:I+I(I587>6&+;I?:6:5:7(2I9?:>'8>7276:96)I8'I964(I4&F;5;&-I4(I6'F8:(I:45'G(I)I>76&*9I(I19&-I'H&-I(I:&F'0I'.I5	NM:i:3	MD:Z:1 [...]
 simulated.774	16	1	1254	255	2M1I100M1I16M1I79M	*	0	0	AGTCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGTCATCTCCCGAGGCAGGTAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACT	5:&(I&E7&+9I*I:+I::75;8(I;6'H38;)I9:6(I3859'F'/I7(I6(2I'0I6(1I<'I;(I7;5*I&+:I4::9750777)I6(I(I7<(I&.I;8'7<928'.I8;(I:=&E&6&.I6&E;5*I(I69:94796;995='H:7766669;&+;I8(I7'F:4)I9'.I8=787<)I6(I?295<:(I7:884	NM:i:3	MD:Z:197	oR:Z:1	oH:i:1	oP:i:12 [...]
-simulated.775	0	1	3053	255	16M1I182M1D9M	*	0	0	ATGTCTTCAATTTGATACTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTGGTATC	58=<6I(:H'I1(5;6'6<:85;I0'H';4I/'3:I)I at -'I(5<79967760I(I(I(I(637;9;888945I):98I/'6868=885I1(II1)&;964;8297I*793?;;656I(951I'5;965I(74I(2=8I'I/'76E&I(<F'464I4)6:I.&I(I)I(G'46I<,'3733I(IG0)%:H'9<I.&792I7*I(745;	NM:i:2	MD:Z:198^T9	oR:Z:1	o [...]
-simulated.776	0	1	898	255	24M1I52M1D39M1D81M	*	0	0	GTTCATAAAACTTACGCATGATGCGACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCT	=I(976I<,'4I(-8:56:87456&6I:+&F'75=8I0'I)2:I-&47I(98;5:6577;9>46;:672E&796654C777986;;:;;8I(7I-&87I(:I'I2(6=878I(I.&A=I/'995<I(3I0'71=853I1(:746480G'87I)8I'6469;I(I)466:374I'68I9*&86I(497<9I0'7I'57	NM:i:3	MD:Z:76^T39^A81	oR:Z:1	oH:i:1	oP:i:897 [...]
+simulated.775	0	1	3053	255	16M1I182M1D9M	*	0	0	ATGTCTTCAATTTGATACTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTGGTATC	58=<6I(:H'I1(5;6'6<:85;I0'H';4I/'3:I)I at -'I(5<79967760I(I(I(I(637;9;888945I):98I/'6868=885I1(II1)&;964;8297I*793?;;656I(951I'5;965I(74I(2=8I'I/'76E&I(<F'464I4)6:I.&I(I)I(G'46I<,'3733I(IG0)%:H'9<I.&792I7*I(745;	NM:i:2	MD:Z:198T9	oR:Z:1	oH [...]
+simulated.776	0	1	898	255	24M1I52M1D39M1D81M	*	0	0	GTTCATAAAACTTACGCATGATGCGACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCT	=I(976I<,'4I(-8:56:87456&6I:+&F'75=8I0'I)2:I-&47I(98;5:6577;9>46;:672E&796654C777986;;:;;8I(7I-&87I(:I'I2(6=878I(I.&A=I/'995<I(3I0'71=853I1(:746480G'87I)8I'6469;I(I)466:374I'68I9*&86I(497<9I0'7I'57	NM:i:3	MD:Z:76T39A81	oR:Z:1	oH:i:1	oP:i:897	o [...]
 simulated.777	16	1	8300	255	23M1I45M1I16M1I112M	*	0	0	CCATAAGAAGCGGGACGCCGCCGACTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCTACGACGGCTGCCATCTACACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAG	'I89'H7(I46'1I68;'I7)I9'64:5557;69(I967'/I(I<39=(I975'F'I59'/I745(I45&42:77(I7::(I4933'854646<:4798369'I=7+I486(I<7854:785=(I354<(I*I6:'H96:17'I47(I;167;)I85<)I9;9<8(I'I986;;4(I+I'1I893'.I78(I78(I3;4	NM:i:3	MD:Z:196	oR:Z:1	oH:i:1	oP:i:829 [...]
-simulated.778	16	1	4120	255	11M1D25M1D177M	*	0	0	CCACAGGGATTCCAACTTGACTGTGAATAACAGACAGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCG	)I8A<(2I7(I+I'G7'I<48:>:8'G6*I>454<7D2)I'H(I'H5(3I)I88:)I2697(I4:7&-I(I'H:894&F=:2;7=)I:5'.I:;(I8'I55:/6<765957;'I&.I6'/I'H'F(I=897873779775:3'G(2I97(I77;9(I7(I)I<7&-I23',>I=3;8748:5(I)6I'/I::4'I4=:8(I'/I7886>;6:9	NM:i:2	MD:Z:11^ [...]
+simulated.778	16	1	4120	255	11M1D25M1D177M	*	0	0	CCACAGGGATTCCAACTTGACTGTGAATAACAGACAGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGAGAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCG	)I8A<(2I7(I+I'G7'I<48:>:8'G6*I>454<7D2)I'H(I'H5(3I)I88:)I2697(I4:7&-I(I'H:894&F=:2;7=)I:5'.I:;(I8'I55:/6<765957;'I&.I6'/I'H'F(I=897873779775:3'G(2I97(I77;9(I7(I)I<7&-I23',>I=3;8748:5(I)6I'/I::4'I4=:8(I'/I7886>;6:9	NM:i:2	MD:Z:11C [...]
 simulated.779	16	1	5177	255	203M	*	0	0	CCCCAGGAAATCACCGCTAATTGCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGAC	',=I:'I&-I993'G431(I)I3:'G'I&.I88>(1I(I'I;;879855:;97&-I:89(I9(I'I6(I2446)I6'I8;7<86<73<;'F;;:56(I(I98;&.I'/I><9758(I4>88&F(I'I1444(I'H6;97756'/I87'/I8&.I(I(I:'I5(I7986686:&.I89955.2(.BI?'G:'I46<(1I6;89<	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:5176	oS:A: [...]
-simulated.780	0	1	8964	255	5M1D60M1I30M1I84M	*	0	0	TGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAACTGTAATTGAATGATTGCATGTGCGTTGCACTAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAAC	96I(7I,=2069I(3656659<<=I/'7I(8E&574:977=696I(546I.'608I):8;77;H'+789I)I)8I(799G'?54977;3<I'58:9(H'I(9534;I/'I'I(8I)247957I'<:8I2(I/'=84I(7H'96338674I(I)7:6945I(2I*3I'I';9I(8I):6I'8	NM:i:3	MD:Z:5^G174	oR:Z:1	oH:i:1	oP:i:8963	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.781	16	1	6873	255	42M1D145M1D11M	*	0	0	TAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAATTTACCG	4'I(1I36'I(I5'I;'F68)I:73)I38'G<(I(I4.8759D848&.I(2I'I8(1I;9'0I6427::'G6;839<5)I93)5I8(I57;868977'I5(I713?)I(I=7457;8:'I:86;7&-I47(I277'F8)I9(I82;;3'F(I4)4I(I43(I<3&+;I'H59:797<35:686'G86(.BI(2I2'G7	NM:i:2	MD:Z:42^C145^A11	oR:Z:1	oH:i:1	oP:i:68 [...]
-simulated.782	16	1	6655	255	62M1D39M1I103M	*	0	0	CAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGACGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTAC	9172'G'0I57;:6;7759<29'H(I55566763997=5'I4'F)I93366(I<6681'I;4)6I9(2I;72'/I:&*2II558'H(I6=:95(I'H<<9=%(I:6(I798'-?I?;7'I6(I53<)I)I(I(I756'H&F5'-?I(I:'I0548(I274:67'I9:267'I7B665997:48:)I)I:'/I3'I8;589:)I55	NM:i:2	MD:Z:62^C142	oR:Z:1	oH:i [...]
-simulated.783	16	1	6750	255	44M1D65M1I35M1I1M1I57M	*	0	0	GCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACGACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCGACTCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATAT	8(I:838)I92)I9>8&+;I69:(I9'H/78(I'I(I&E767'FC5'- at I(I:(I45;8'G4398;:)I<=;97'I8588<5:7=8<6(I'I8&.I6'G97::79'H37):(I07'1I:519(I(I'.I67(I'G6(I8)I75)I(9&7B(I<5)I6'I(I487659'I:27'/I(2I(I5'.I88'0I8:368='I77;;4498	NM:i:4	MD:Z:44^G158	oR: [...]
-simulated.784	16	1	2796	255	75M1D100M1D16M	*	0	0	ATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGCTTCACGCTGTCCTG	886<&*9I:'I;(/DI9(1I8749(I8<6:67644 at 77:&+<I5>&*1II at 9@<36(I:59&D834(I456=8'IC:(I=<9?8&F97'I66'H:4<;'/I645;1*I2:8@=48;78:2;6(I88;37'- at I6'H5277(I6A<:(I5659(1I56(I8998'H5(I9778:>:D8(I848:::45'F:<	NM:i:2	MD:Z:75^G100^G16	oR:Z:1	oH:i:1	oP:i:2795	oS:A:R	XE:i [...]
+simulated.780	0	1	8964	255	5M1D60M1I30M1I84M	*	0	0	TGCCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAACTGTAATTGAATGATTGCATGTGCGTTGCACTAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAAC	96I(7I,=2069I(3656659<<=I/'7I(8E&574:977=696I(546I.'608I):8;77;H'+789I)I)8I(799G'?54977;3<I'58:9(H'I(9534;I/'I'I(8I)247957I'<:8I2(I/'=84I(7H'96338674I(I)7:6945I(2I*3I'I';9I(8I):6I'8	NM:i:3	MD:Z:5G174	oR:Z:1	oH:i:1	oP:i:8963	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.781	16	1	6873	255	42M1D145M1D11M	*	0	0	TAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGTGCACGACTCACCACAAAATTTACCG	4'I(1I36'I(I5'I;'F68)I:73)I38'G<(I(I4.8759D848&.I(2I'I8(1I;9'0I6427::'G6;839<5)I93)5I8(I57;868977'I5(I713?)I(I=7457;8:'I:86;7&-I47(I277'F8)I9(I82;;3'F(I4)4I(I43(I<3&+;I'H59:797<35:686'G86(.BI(2I2'G7	NM:i:2	MD:Z:42C145A11	oR:Z:1	oH:i:1	oP:i:6872 [...]
+simulated.782	16	1	6655	255	62M1D39M1I103M	*	0	0	CAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGACGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTAC	9172'G'0I57;:6;7759<29'H(I55566763997=5'I4'F)I93366(I<6681'I;4)6I9(2I;72'/I:&*2II558'H(I6=:95(I'H<<9=%(I:6(I798'-?I?;7'I6(I53<)I)I(I(I756'H&F5'-?I(I:'I0548(I274:67'I9:267'I7B665997:48:)I)I:'/I3'I8;589:)I55	NM:i:2	MD:Z:62C142	oR:Z:1	oH:i: [...]
+simulated.783	16	1	6750	255	44M1D65M1I35M1I1M1I57M	*	0	0	GCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACGACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCGACTCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATAT	8(I:838)I92)I9>8&+;I69:(I9'H/78(I'I(I&E767'FC5'- at I(I:(I45;8'G4398;:)I<=;97'I8588<5:7=8<6(I'I8&.I6'G97::79'H37):(I07'1I:519(I(I'.I67(I'G6(I8)I75)I(9&7B(I<5)I6'I(I487659'I:27'/I(2I(I5'.I88'0I8:368='I77;;4498	NM:i:4	MD:Z:44G158	oR:Z [...]
+simulated.784	16	1	2796	255	75M1D100M1D16M	*	0	0	ATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGCTTCACGCTGTCCTG	886<&*9I:'I;(/DI9(1I8749(I8<6:67644 at 77:&+<I5>&*1II at 9@<36(I:59&D834(I456=8'IC:(I=<9?8&F97'I66'H:4<;'/I645;1*I2:8@=48;78:2;6(I88;37'- at I6'H5277(I6A<:(I5659(1I56(I8998'H5(I9778:>:D8(I848:::45'F:<	NM:i:2	MD:Z:75G100G16	oR:Z:1	oH:i:1	oP:i:2795	oS:A:R	XE:i:2 [...]
 simulated.785	16	1	2056	255	189M	*	0	0	ATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTG	97(I'0I'I3653='- at I9(I488(I9(I;5768(I:956'0I<37(I6'/I873'I5'G=4369<853939(I:&-I'I467'/I(I67'H=6'I'H'I&+;I4(I57(I'/I(I664:)I::5:=:(I66(I58:95'H96:&.I'I:3&).:II9556&+;I6948'G:7:4:2=5:<34745)I4	NM:i:0	MD:Z:189	oR:Z:1	oH:i:1	oP:i:2055	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.786	16	1	2141	255	99M1I99M	*	0	0	ATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATACGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTC	:(I58(I=4(I(I(I',=I<(I46'I&-I'G9565'H866666)I97(I89955*I477&.I(I36%(-8II76;8',=I7844(I;55<8663587;8&85(I8;&.I3877'I948<8566556689'H&F69:'0I6'I68:<659(I468A965&D25:3(I<'I&*8I7&.I(I8>(I)I56:4'- at I37<(I2	NM:i:1	MD:Z:198	oR:Z:1	oH:i:1	oP:i:2140	oS:A:R	XE [...]
-simulated.787	16	1	3320	255	28M1D84M1I21M1D41M1I37M	*	0	0	TGCCGGTCAGCCTCGGAATAGTTTGCTCTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATACGTGACTATGTGATAAGTATCAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGACGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTC	75'I'H8456'I07'H'I;>:'0I7<88)4I8)I98(I'G45729&*8I'I(I7&.I93256'I8:<;:;9'.I1:(I(I9:9996)I<64:858(I&-I'/I8679'I:83'676:598<>8 at 885&F:5;9:)5I69(I&*2II;'0I9556:99(I9(I3&-I>2'0I(I4;&<<'I7546'0I8(I3&F99:67=;8(I8'/I?&E947	NM:i:4 [...]
+simulated.787	16	1	3320	255	28M1D84M1I21M1D41M1I37M	*	0	0	TGCCGGTCAGCCTCGGAATAGTTTGCTCTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATACGTGACTATGTGATAAGTATCAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGACGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTC	75'I'H8456'I07'H'I;>:'0I7<88)4I8)I98(I'G45729&*8I'I(I7&.I93256'I8:<;:;9'.I1:(I(I9:9996)I<64:858(I&-I'/I8679'I:83'676:598<>8 at 885&F:5;9:)5I69(I&*2II;'0I9556:99(I9(I3&-I>2'0I(I4;&<<'I7546'0I8(I3&F99:67=;8(I8'/I?&E947	NM:i:4 [...]
 simulated.788	0	2	180	255	184M	*	0	0	GGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGCGAACTGAAGC	H'I(I(47H'5I1(H'465;I'7H'>I'D&799/;347I'8;9I(8H'I/'79IB.(I(:I(2I'H'558?5I,&I(6;:9586;8<755:I(89G'I1(43=4I(;4I'<6H'4759>@8;79:768>55I(679885;609966I-&E&H'98;/<77I(I'I':73;64789I(;98E&7:	NM:i:0	MD:Z:184	oR:Z:2	oH:i:1	oP:i:179	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.789	16	1	5943	255	101M1D8M1D98M	*	0	0	TACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGCGTTATGAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTC	;92;<:7?6;'G>472'G9'I6'H;*I:(1I88(I(I6;:798(I2:8:6662&.I7(I*I5'1I<717868&,<I:'0I5%(-8II69969475 at 93:'IC78(I::3,I4766:59;7699369(I6=93?6'.I6)I:549=68(I8)I284(I6:56&*2II=&*9I:74'I968'0I'G8;699;<79668'H;',=I'/I0	NM:i:2	MD:Z:101^G8^A98	oR:Z: [...]
+simulated.789	16	1	5943	255	101M1D8M1D98M	*	0	0	TACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGCGTTATGAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTC	;92;<:7?6;'G>472'G9'I6'H;*I:(1I88(I(I6;:798(I2:8:6662&.I7(I*I5'1I<717868&,<I:'0I5%(-8II69969475 at 93:'IC78(I::3,I4766:59;7699369(I6=93?6'.I6)I:549=68(I8)I284(I6:56&*2II=&*9I:74'I968'0I'G8;699;<79668'H;',=I'/I0	NM:i:2	MD:Z:101G8A98	oR:Z:1	 [...]
 simulated.790	0	1	2735	255	62M1I147M	*	0	0	CTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTACTGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACG	4I4)I9*&77H'2:6I1(I)6585587I(68I(I)6I<,&:6746:I(79I*I0'H'54;86'899I;+&6I)9I7*&5I0'5::5F&74;/6999;;7=9I;+&6;II0)&8;9775I(5=8I)686I(=5483I)I(5I(95=57H'68I(76I(9:;0I2(::766I(66964768:955=4H'974;6I;+&8I(178:I'74877	NM:i:1	MD:Z:209	oR:Z:1	oH:i [...]
-simulated.791	0	1	4421	255	1M1I103M1D84M	*	0	0	GCGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAA	5:D528;I(I'H'98I.&9875H'85I(:3789F':II1)&9<69<8I)63<685=99G'I)I'31843I4)6I-&I-&I(9I<,&:37;F&<I'54<8678;83I,7I':3I(I)842695I(;8I';6866769I/'9I'6548756I'798583:I(F&<8I(8I-&3:43I'384:6<49;45I)	NM:i:2	MD:Z:104^G84	oR:Z:1	oH:i:1	oP:i:4418	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.792	0	2	44	255	13M1I2M1D175M	*	0	0	TATATAGGAATAGACAGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCC	74486;I(E&6;8%9:I,79I(858:I(8:64744:5I)8:5>666<?I)6I'I'289I'E&=966><82:6I(5I0'86I(I(I/'45787:28I.&59;666I(8I.'<G'48=37I)I(59I=,'I(357I'I-&I)I(96I'6I0'I)6643I)7H'7F'I(:77<5;84G'533I)9I(I/'79I(	NM:i:2	MD:Z:15^G175	oR:Z:2	oH:i:1	oP:i:43	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.793	0	1	5515	255	20M1I138M1D43M	*	0	0	ATTACAAAGGGCATGTCCATAGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTG	7I)76I/'I/'3;:;8I(;4(;I/'77I)E&I-&7H'6385I(8H':3:H'97<6:38H'8I(97-38677;6;=I'=5I(H'9917:6E&973:<9I)91I(97833623::=3<;58:I)758:I)645:67I.'85E&8=96I(::6F'8:<I)4;CI:+&656I(;93I(>I'I(6G'=I*97I/'9I1';78:I-&;	NM:i:2	MD:Z:158^T43	oR:Z:1	oH:i:1	oP:i [...]
-simulated.794	0	1	3081	255	142M1I12M1D50M	*	0	0	CGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGACACCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGG	6I0':5I(I<,&I(:94895:7:8I(I(I(H'77758>;79566I'623I/'78:70::7I0'IG0)%:954747:;I(7949><89>I)<=8I(;6:72H'7;I(364I'I0'58G'H'4H'C;6I.&:7I2(I(I'I*H''87I7*&9996I)IB.(;G';:I/'8:8I9*&I)589I(9I)I:+&7>6I'96:85I)I'6I(	NM:i:2	MD:Z:154^A50	oR:Z:1	oH:i: [...]
+simulated.791	0	1	4421	255	1M1I103M1D84M	*	0	0	GCGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAA	5:D528;I(I'H'98I.&9875H'85I(:3789F':II1)&9<69<8I)63<685=99G'I)I'31843I4)6I-&I-&I(9I<,&:37;F&<I'54<8678;83I,7I':3I(I)842695I(;8I';6866769I/'9I'6548756I'798583:I(F&<8I(8I-&3:43I'384:6<49;45I)	NM:i:2	MD:Z:104G84	oR:Z:1	oH:i:1	oP:i:4418	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.792	0	2	44	255	13M1I2M1D175M	*	0	0	TATATAGGAATAGACAGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCC	74486;I(E&6;8%9:I,79I(858:I(8:64744:5I)8:5>666<?I)6I'I'289I'E&=966><82:6I(5I0'86I(I(I/'45787:28I.&59;666I(8I.'<G'48=37I)I(59I=,'I(357I'I-&I)I(96I'6I0'I)6643I)7H'7F'I(:77<5;84G'533I)9I(I/'79I(	NM:i:2	MD:Z:15G175	oR:Z:2	oH:i:1	oP:i:43	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.793	0	1	5515	255	20M1I138M1D43M	*	0	0	ATTACAAAGGGCATGTCCATAGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTG	7I)76I/'I/'3;:;8I(;4(;I/'77I)E&I-&7H'6385I(8H':3:H'97<6:38H'8I(97-38677;6;=I'=5I(H'9917:6E&973:<9I)91I(97833623::=3<;58:I)758:I)645:67I.'85E&8=96I(::6F'8:<I)4;CI:+&656I(;93I(>I'I(6G'=I*97I/'9I1';78:I-&;	NM:i:2	MD:Z:158T43	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.794	0	1	3081	255	142M1I12M1D50M	*	0	0	CGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGACACCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGG	6I0':5I(I<,&I(:94895:7:8I(I(I(H'77758>;79566I'623I/'78:70::7I0'IG0)%:954747:;I(7949><89>I)<=8I(;6:72H'7;I(364I'I0'58G'H'4H'C;6I.&:7I2(I(I'I*H''87I7*&9996I)IB.(;G';:I/'8:8I9*&I)589I(9I)I:+&7>6I'96:85I)I'6I(	NM:i:2	MD:Z:154A50	oR:Z:1	oH:i:1 [...]
 simulated.795	16	1	8882	255	27M1I41M1I126M	*	0	0	GCCCAAGTACACGTATTGTTCAGGTCTAGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGTATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAA	;(1I(I8978;54:7'H9'H9:*I966*0659:71 at 4',=I;6'I)I(I(I'I878;;3865)I6'F)I&8;(I:'G556)I(I94'G8(3I>86;@&F;<27>959;8'/I9(I5'G:92575:6758'F877'/I2<4(I2;3;78(I8<;(I'G8(I86<*I5?5688675&F:696*I)I66869'0I)I(I	NM:i:2	MD:Z:194	oR:Z:1	oH:i:1	oP:i:8881	oS:A:R	XE [...]
-simulated.796	16	1	3460	255	137M1D47M	*	0	0	AACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACC	(I&)1II:'/I8477?79'I6(I6&.I78'/I'I6269'G6545(1I<(I6(I95<7727=(I;(1I4)I:;8(I(I3&E9'/I(I7777>;',=I=52(2I&E'G39(I496<;9(I)I)I'I:<*I;<'0I9766D)I'H)I268:15;&.I8'H=7'I9:'I4&+9I9;7:49'H:84<(I	NM:i:1	MD:Z:137^T47	oR:Z:1	oH:i:1	oP:i:3459	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.796	16	1	3460	255	137M1D47M	*	0	0	AACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACC	(I&)1II:'/I8477?79'I6(I6&.I78'/I'I6269'G6545(1I<(I6(I95<7727=(I;(1I4)I:;8(I(I3&E9'/I(I7777>;',=I=52(2I&E'G39(I496<;9(I)I)I'I:<*I;<'0I9766D)I'H)I268:15;&.I8'H=7'I9:'I4&+9I9;7:49'H:84<(I	NM:i:1	MD:Z:137T47	oR:Z:1	oH:i:1	oP:i:3459	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.797	0	1	8784	255	219M	*	0	0	TGCGGATCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCA	653I(86I-&883I)3;979:9I)I)737;47G'79>83:7<6I(9I(I'6I(II1)&89I)<<6724I(I-&7I'I-&77:I(45454I(58I*7I-&I1(F'<8994:776G'6G'7:G'86449:9<:894I:+&:7H'H'I(I(I'756=98353I(=I(I(<:I)4I(685H'I)52I':I0'56<83I(63689645=7I0'8I'4I'78876	NM:i:0	MD:Z:21 [...]
-simulated.798	16	1	5320	255	39M1D25M1I32M1D87M	*	0	0	GGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGTCCGCCTATAAAGTGACACTGTACCTGAACTCAGATAAGACGGGTGATGCCAGGTGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAG	(I87&.I=(3I(I)I4'H5)I7766;;47&-I79:757:*7I9)I6(I925&-I4699;:9958*&E39'I:798686'I66:&.I=983:(I8(I8,I5'G:8&*2II97;<<'H:;7>9767'I:5(I9668<7(I;:6898445)I(I5=7(I6'I7986-;(I'I2(I9;:;5*I138<:	NM:i:3	MD:Z:39^G57^G87	oR:Z:1	oH:i:1	oP:i:5319	oS:A:R	XE:i:3	XS:i:0	XI:i:0
-simulated.799	0	1	7844	255	136M1D65M	*	0	0	GATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCG	38:I/'I2(796I)6I(664;04:H'I.'8H'I)57?57;3;2I=,'2I(9=6I*G'9767<58:I1(6;I(7I(;I*98I);56I'57=:9:688I)=3E&:947:856:5797I(2;:53I)5H'8I(566I(2I,7;595<78I.'/I.&I(349I(I(7<669I(4I/'848,4:5<3I(7I);G'I/':556;317	NM:i:1	MD:Z:136^C65	oR:Z:1	oH:i:1	oP:i:7843	o [...]
-simulated.800	16	1	7582	255	72M1D115M1I27M	*	0	0	GTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTACGGGGCAACCCAACCTAGTGGATCGAT	3(I<4'I?'H'G3(I773:2;;87='I2 at 84591:'IA:95)I='G(I88:19;:6755(I(1I8'I:7&E7,I)I6489;68655<'I=68)I=9&-I52955&-I567)I:;)I168;59'H'I*I;4(I3:(I'G:2978'H9;9'G96;;8;'G)I'I4;7(I533<.68'I'G(I43&.I77&>',=I=(I)4I'I)I67:?)I869795	NM:i:2	MD:Z [...]
-simulated.801	16	1	5991	255	183M1D27M	*	0	0	TAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGTGCATATCGATGTACATCGCCGATA	4554:&.I5(I'I3'/I695379:&+;I8'.I6&).:II87:<7<364798'H'G28'I78<(1I;99:3774;98=6?9)I9997;7&.I4(I6;67587(I8'I?9:'G9=95&*2II6'- at I49:(I=53'/I'H99<496:35954(I4'-?I'1I57:7:39'I2989)I38&-I683+I:83;688:39<7;36782:(I7687	NM:i:1	MD:Z:183^G27	oR:Z:1 [...]
-simulated.802	16	1	3512	255	154M1D62M	*	0	0	CTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACA	86:5;8957(I9&.I;(I:4:)I)I8'G4(2I(I7:57:6&*9I859&.I(I)I;9(I<6969;(I'I)I(I68&E88&.I::67(I(I'I'H86896:7(3I6'I77'G47(I2&+:I7:5;87&F>487(I46)I6:68>58'F:43'G9'I)5I>6(I<'H37:'I&.I'- at I889<9(I&E57=(I8663:4/(I at 6(I5887'F'I(I974	NM:i:1	MD:Z:15 [...]
+simulated.798	16	1	5320	255	39M1D25M1I32M1D87M	*	0	0	GGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGTCCGCCTATAAAGTGACACTGTACCTGAACTCAGATAAGACGGGTGATGCCAGGTGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAG	(I87&.I=(3I(I)I4'H5)I7766;;47&-I79:757:*7I9)I6(I925&-I4699;:9958*&E39'I:798686'I66:&.I=983:(I8(I8,I5'G:8&*2II97;<<'H:;7>9767'I:5(I9668<7(I;:6898445)I(I5=7(I6'I7986-;(I'I2(I9;:;5*I138<:	NM:i:3	MD:Z:39G57G87	oR:Z:1	oH:i:1	oP:i:5319	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.799	0	1	7844	255	136M1D65M	*	0	0	GATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCG	38:I/'I2(796I)6I(664;04:H'I.'8H'I)57?57;3;2I=,'2I(9=6I*G'9767<58:I1(6;I(7I(;I*98I);56I'57=:9:688I)=3E&:947:856:5797I(2;:53I)5H'8I(566I(2I,7;595<78I.'/I.&I(349I(I(7<669I(4I/'848,4:5<3I(7I);G'I/':556;317	NM:i:1	MD:Z:136C65	oR:Z:1	oH:i:1	oP:i:7843	oS [...]
+simulated.800	16	1	7582	255	72M1D115M1I27M	*	0	0	GTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTACGGGGCAACCCAACCTAGTGGATCGAT	3(I<4'I?'H'G3(I773:2;;87='I2 at 84591:'IA:95)I='G(I88:19;:6755(I(1I8'I:7&E7,I)I6489;68655<'I=68)I=9&-I52955&-I567)I:;)I168;59'H'I*I;4(I3:(I'G:2978'H9;9'G96;;8;'G)I'I4;7(I533<.68'I'G(I43&.I77&>',=I=(I)4I'I)I67:?)I869795	NM:i:2	MD:Z [...]
+simulated.801	16	1	5991	255	183M1D27M	*	0	0	TAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGTGCATATCGATGTACATCGCCGATA	4554:&.I5(I'I3'/I695379:&+;I8'.I6&).:II87:<7<364798'H'G28'I78<(1I;99:3774;98=6?9)I9997;7&.I4(I6;67587(I8'I?9:'G9=95&*2II6'- at I49:(I=53'/I'H99<496:35954(I4'-?I'1I57:7:39'I2989)I38&-I683+I:83;688:39<7;36782:(I7687	NM:i:1	MD:Z:183G27	oR:Z:1	 [...]
+simulated.802	16	1	3512	255	154M1D62M	*	0	0	CTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACA	86:5;8957(I9&.I;(I:4:)I)I8'G4(2I(I7:57:6&*9I859&.I(I)I;9(I<6969;(I'I)I(I68&E88&.I::67(I(I'I'H86896:7(3I6'I77'G47(I2&+:I7:5;87&F>487(I46)I6:68>58'F:43'G9'I)5I>6(I<'H37:'I&.I'- at I889<9(I&E57=(I8663:4/(I at 6(I5887'F'I(I974	NM:i:1	MD:Z:15 [...]
 simulated.803	16	1	3387	255	141M1I61M	*	0	0	ACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGTAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTC	39:88&-I8:*I(I7:3;49)I:436544(I&,I&-I7:68(I617736569;4:7;9;8(I25895',=I39(I%)0HI5'0IA868853)I6&E8&-I4;&-I'H6804(I;580(1I5'G8)I48479;59'H6&.I6.(I4::'F)I7*I:'0I'I:67839',=I;;9&-I)I'I86'I646;67(I*I(I(I66)I8	NM:i:1	MD:Z:202	oR:Z:1	oH:i:1	oP:i:3386	 [...]
 simulated.804	0	1	3364	255	75M1I132M	*	0	0	ATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACGTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTG	85I>,'I(D&5I1(80769I'86;6595I2(67I(F'9:9>8=I(7B63658I)I0'I1(3<8;I(66:7;7995%4808<897I);8876ID.(59I)II1)&9I.'9487896I'5I(7I.&69I.&H'@853G':78<I.&6E&;I*4*8865<6I(9I.&6I(6;8F'I(>I(6I0'I(958377I8*&7:5I/'I(I(4:I(:	NM:i:1	MD:Z:207	oR:Z:1	oH:i:1	o [...]
-simulated.805	0	1	7730	255	16M1I61M1D131M	*	0	0	AGGTCGATGAAGGTTACTAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAG	4I);;4297I(I(I'9%43I)8583461I'H'I)93I,&984I9*&6F&I/'I(I'5;47I*64765I)73I2(759:IC.(6/I'I0'8?66449I'97:68B795I(6:;I0'78I1(I0'85<I(7H'=85868<I(I.&:I(I(765985679I;+&6I(4<4I(G'<5<16357I-&49I(:I):I(=7I(966I(5;:67368	NM:i:2	MD:Z:77^C131	oR:Z [...]
-simulated.806	16	1	378	255	4M1D13M1D47M1D122M	*	0	0	TCGCAAAATGGCCTAGCAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGT	3697(.CI8'I(I95:8,I&.I9<52366669)I)I'/I:77756:56(2I*I775'G48'G78+I(I66;9878(I<86'F4=55;=(I7:7899566)I77)I8(I(I'H5;(/DI4161:=:'H55(I',>I>46'H57'0I52;5'0I5)I(I5:1'/I:77>>6(I64696(I<'I'G9:3	NM:i:3	MD:Z:4^A13^A47^C122	oR:Z:1	oH:i:1	oP:i:377	oS:A:R	XE:i:3	XS [...]
-simulated.807	16	1	8018	255	12M1D124M1D47M1D16M	*	0	0	CTCATAGTATTGTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGTTATGGACGCTGAGC	4:65:5264'G=D3'H'.I;;375=>57'0I<9(I:54(I(3I(I8;(I6(I776',>I45<587'H7898480:65(I)I:4:362'I&E&E:3>'H79(I)I3814(I64:6554766;99'F0=9/5=9<789)6I377<&E'1I*I77*I879'I5'I'0I8679'I;4<86'.I7638D'G=7)I89<77=:05	NM:i:3	MD:Z:12^T124^A47^G16	oR:Z:1	oH: [...]
+simulated.805	0	1	7730	255	16M1I61M1D131M	*	0	0	AGGTCGATGAAGGTTACTAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAG	4I);;4297I(I(I'9%43I)8583461I'H'I)93I,&984I9*&6F&I/'I(I'5;47I*64765I)73I2(759:IC.(6/I'I0'8?66449I'97:68B795I(6:;I0'78I1(I0'85<I(7H'=85868<I(I.&:I(I(765985679I;+&6I(4<4I(G'<5<16357I-&49I(:I):I(=7I(966I(5;:67368	NM:i:2	MD:Z:77C131	oR:Z: [...]
+simulated.806	16	1	378	255	4M1D13M1D47M1D122M	*	0	0	TCGCAAAATGGCCTAGCAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGT	3697(.CI8'I(I95:8,I&.I9<52366669)I)I'/I:77756:56(2I*I775'G48'G78+I(I66;9878(I<86'F4=55;=(I7:7899566)I77)I8(I(I'H5;(/DI4161:=:'H55(I',>I>46'H57'0I52;5'0I5)I(I5:1'/I:77>>6(I64696(I<'I'G9:3	NM:i:3	MD:Z:4A13A47C122	oR:Z:1	oH:i:1	oP:i:377	oS:A:R	XE:i:3	XS:i: [...]
+simulated.807	16	1	8018	255	12M1D124M1D47M1D16M	*	0	0	CTCATAGTATTGTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGTTATGGACGCTGAGC	4:65:5264'G=D3'H'.I;;375=>57'0I<9(I:54(I(3I(I8;(I6(I776',>I45<587'H7898480:65(I)I:4:362'I&E&E:3>'H79(I)I3814(I64:6554766;99'F0=9/5=9<789)6I377<&E'1I*I77*I879'I5'I'0I8679'I;4<86'.I7638D'G=7)I89<77=:05	NM:i:3	MD:Z:12T124A47G16	oR:Z:1	oH:i:1 [...]
 simulated.808	16	1	1347	255	219M	*	0	0	AGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGAAGTTGGTCGTCTGCTCGTCGTACCAAATCGTGCCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCCT	@9'H&.I4=83476&-I::(I93)I;&.I:*I8;*I)I89><53=66:497(I;5893<586',<I:'H6)I6;'I=&-I56;897'G8'H8;76=8'H9:56)I(I8'/I;)I)I'.I33646(I9=7366'0I:86844(I'H5'G(I98:9<33<<97:8:<<(I(1I38791(1I749&*2II)I&E39(I(I958:68:'/I36967>458'I7	NM:i:0	MD:Z:2 [...]
-simulated.809	0	1	34	255	49M1I67M1D80M	*	0	0	CTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGTCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTC	4I0'9I0'7I'46578I/'9;H'97I/'979;>9I(967=99<I'7I(;/:99I(7I1'G'68752I)55<2I+773278I(I=,'656:4I(5924<=53H'8468I0'596988:DI(:;I-&:9656;I(I/'94H'384517I'==<5I(;I(9:I'I)87I)I(9I(;5=69714<I(3I(5I)I(5<3I'9	NM:i:2	MD:Z:116^A80	oR:Z:1	oH:i:1	oP:i:33	oS:A:F	XE [...]
-simulated.810	0	1	4732	255	85M1D13M1D63M1D10M	*	0	0	CTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACTT	9I(28II3*&I-&I):H'6858I)7?;7I)5:3==:69II0)&59:7I'9220I)9;1I<,'6I'834G'56I(I*98I(I2(95I+:;;I/'I(=I)ID.(>777:I(9I(I)76I(>3I(5;I(<:6:7I0'68I(75:9:63>676I)5I-&8=7I(BI6)57:99I)	NM:i:3	MD:Z:85^A13^A63^G10	oR:Z:1	oH:i:1	oP:i:4731	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.811	0	1	3365	255	56M1D75M1I27M1D38M	*	0	0	TAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGTACCAGACGGGCAAGCCTCTCAGTGCCTAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTG	:I:+&I'I(<I5)8:;=:I(8;;6789I0'76H'I(:<::;2I(59::;26H'I.&I,63;3I*89668<6936;6396;<I'79573I;+&46I*II2*&3I0'76:5484I)5H'7I0'5:I/'G'666(<I)=0;5I0'8I'9I(977479;4G'<I,8I(<5<I'I(DI'2I0'G'979958I8*&868I-&;	NM:i:3	MD:Z:56^C102^A38	oR:Z:1	oH:i:1	oP:i:3 [...]
-simulated.812	0	2	42	255	84M1I28M1I74M1D24M	*	0	0	CGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTCGGCCCGTATCTCTGGGTCTACGTTGCCCGTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATCCAAGCAGAT	11969969I*I(5:697I/'7<I'416;H';=84;8988I(<35===<<5I'3I'I'697I(I(6:776=876;I):I2(76I()H'I.&76475:4:I/'6<658;I(7I.&%5H'29996I(E&:7I8*&F'675G'I.'I*I'3<I(:I/'I(7495I'3I(4I)I)5<788953H'834I(8I)I+84I=,'I)<I(8I(I(7777>6	NM:i:3	MD:Z:186^ [...]
+simulated.809	0	1	34	255	49M1I67M1D80M	*	0	0	CTTTATTTCTTCGTGAGGGAGTTGACCCATGCAGAACGAGAGCTTGCCGTCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTC	4I0'9I0'7I'46578I/'9;H'97I/'979;>9I(967=99<I'7I(;/:99I(7I1'G'68752I)55<2I+773278I(I=,'656:4I(5924<=53H'8468I0'596988:DI(:;I-&:9656;I(I/'94H'384517I'==<5I(;I(9:I'I)87I)I(9I(;5=69714<I(3I(5I)I(5<3I'9	NM:i:2	MD:Z:116A80	oR:Z:1	oH:i:1	oP:i:33	oS:A:F	XE: [...]
+simulated.810	0	1	4732	255	85M1D13M1D63M1D10M	*	0	0	CTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGATGACTT	9I(28II3*&I-&I):H'6858I)7?;7I)5:3==:69II0)&59:7I'9220I)9;1I<,'6I'834G'56I(I*98I(I2(95I+:;;I/'I(=I)ID.(>777:I(9I(I)76I(>3I(5;I(<:6:7I0'68I(75:9:63>676I)5I-&8=7I(BI6)57:99I)	NM:i:3	MD:Z:85A13A63G10	oR:Z:1	oH:i:1	oP:i:4731	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.811	0	1	3365	255	56M1D75M1I27M1D38M	*	0	0	TAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGTACCAGACGGGCAAGCCTCTCAGTGCCTAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTG	:I:+&I'I(<I5)8:;=:I(8;;6789I0'76H'I(:<::;2I(59::;26H'I.&I,63;3I*89668<6936;6396;<I'79573I;+&46I*II2*&3I0'76:5484I)5H'7I0'5:I/'G'666(<I)=0;5I0'8I'9I(977479;4G'<I,8I(<5<I'I(DI'2I0'G'979958I8*&868I-&;	NM:i:3	MD:Z:56C102A38	oR:Z:1	oH:i:1	oP:i:336 [...]
+simulated.812	0	2	42	255	84M1I28M1I74M1D24M	*	0	0	CGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTCGGCCCGTATCTCTGGGTCTACGTTGCCCGTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTGTCCCCAACAATCCAAGCAGAT	11969969I*I(5:697I/'7<I'416;H';=84;8988I(<35===<<5I'3I'I'697I(I(6:776=876;I):I2(76I()H'I.&76475:4:I/'6<658;I(7I.&%5H'29996I(E&:7I8*&F'675G'I.'I*I'3<I(:I/'I(7495I'3I(4I)I)5<788953H'834I(8I)I+84I=,'I)<I(8I(I(7777>6	NM:i:3	MD:Z:186T [...]
 simulated.813	0	1	5438	255	120M1I106M	*	0	0	GCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCACGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGA	8786739I'74I':56574I)845864<65I(H'57;I(:I*7;<7:7I'G'=I(2=4>4I)=548=;6:I(4I.';5I'4:I7*I0'5978:I'5;5I/'5/I'I*I-&9I(59A5I(8)I)566F&47:534:E&8H'55989895:8:6I'66H'G'8>2488F'4:588:I(07I)259396;5<:4996857I)69;5I)7:697<I/'69E&39 [...]
 simulated.814	16	1	4226	255	196M	*	0	0	GAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCG	7:725;83)I'/I7&-I(I'I'G:7728:968:488:;(I(1I65'I:569'H5'F(I87&.I:5',>I886751812'I(2I&.I:8;(I8387(I'1I78875476596)I6(I(I8;8(I6(I4&E)I54=1(I86;'G6<3564(I9<99)I835'/IA:98668:8539<86:;4&*2II(I949.75;:9	NM:i:0	MD:Z:196	oR:Z:1	oH:i:1	oP:i:4225	oS:A:R	XE:i:0	XS:i: [...]
 simulated.815	16	1	8137	255	201M	*	0	0	TGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCCGCTCTGCAGACGGCGA	9:897(I;3754394::7&*9I454:)I'/I)I54(I:75'G9*I'1I=;5:(I47?62&-I5749(I'I7:'F67777628(I:'I/6'H;88<96'/I(I4:)I98=7:(I2)I'H:D382;'I74:32(I3:'I7:58<068:<'I(I(I(1I'I5<617'I99'I6'F86&.I458'G6)I25::5679586(I567	NM:i:0	MD:Z:201	oR:Z:1	oH:i:1	oP:i:8136	oS:A:R	XE [...]
-simulated.816	16	1	141	255	68M1I30M1D118M	*	0	0	TTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCTATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGG	'I:7:9<69(I(I68(2I:57;9='H&-I73'H4877;7'I;698'H8'H:6)I(I5:(I'I7)I390(827686(I5(I6'I(I35:(I(I;;9:6)I(-7II72;)I)I:7(I)I'/I)I5:(I38=5'/I4987'I987985(I75(I7'I56;3'H7(I)I(I(I',<I7793(I8=&-I:395847'I865(I579547&+:I39466(I&E	NM:i:2	M [...]
-simulated.817	16	1	1176	255	23M1D10M1I51M1D112M	*	0	0	GACTAGCTAGGGGCCTACGCGCATAGCCGAATGTCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAG	886;;250;&*7I(I863:4805D68(I;(I:4&',=I8768'H98:(I566;:76(I73)I<)I(I67(I749;&.I86(I(I9)4I(I7(I79>973)I67&E>8;(I789(I5:>7)I'/I8)I:'0I'.I9'0I9(I9(I7:5(I&+:I39729::95:&E8'F(I95'H(2I37::796&.I<6)I94'I=:	NM:i:3	MD:Z:23^T61^A112	oR:Z:1	oH:i:1	oP:i [...]
-simulated.818	16	1	7905	255	75M1D125M	*	0	0	CGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTC	4664'.I56'I7&E5'G85'I787(I8:9388746'I8:(I@;:26957<9;9-)I;8::7)I;(I5'G7:6'H9+I2276><5:'/I1'/I(I962)I)I6;6;7(I6(2I623<246;1(I5&F<(I'/I=782=9:5:'/I89'G=89(I'/I'H8<'G2(I984&+9I:6:596)I5<:66=5<:4)I(I6367:8	NM:i:1	MD:Z:75^C125	oR:Z:1	oH:i:1	oP:i:7904	oS [...]
+simulated.816	16	1	141	255	68M1I30M1D118M	*	0	0	TTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCTATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGG	'I:7:9<69(I(I68(2I:57;9='H&-I73'H4877;7'I;698'H8'H:6)I(I5:(I'I7)I390(827686(I5(I6'I(I35:(I(I;;9:6)I(-7II72;)I)I:7(I)I'/I)I5:(I38=5'/I4987'I987985(I75(I7'I56;3'H7(I)I(I(I',<I7793(I8=&-I:395847'I865(I579547&+:I39466(I&E	NM:i:2	M [...]
+simulated.817	16	1	1176	255	23M1D10M1I51M1D112M	*	0	0	GACTAGCTAGGGGCCTACGCGCATAGCCGAATGTCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAACCGTTATCACAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAG	886;;250;&*7I(I863:4805D68(I;(I:4&',=I8768'H98:(I566;:76(I73)I<)I(I67(I749;&.I86(I(I9)4I(I7(I79>973)I67&E>8;(I789(I5:>7)I'/I8)I:'0I'.I9'0I9(I9(I7:5(I&+:I39729::95:&E8'F(I95'H(2I37::796&.I<6)I94'I=:	NM:i:3	MD:Z:23T61A112	oR:Z:1	oH:i:1	oP:i:1 [...]
+simulated.818	16	1	7905	255	75M1D125M	*	0	0	CGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTC	4664'.I56'I7&E5'G85'I787(I8:9388746'I8:(I@;:26957<9;9-)I;8::7)I;(I5'G7:6'H9+I2276><5:'/I1'/I(I962)I)I6;6;7(I6(2I623<246;1(I5&F<(I'/I=782=9:5:'/I89'G=89(I'/I'H8<'G2(I984&+9I:6:596)I5<:66=5<:4)I(I6367:8	NM:i:1	MD:Z:75C125	oR:Z:1	oH:i:1	oP:i:7904	oS: [...]
 simulated.819	16	1	8790	255	198M1I9M	*	0	0	TCCCGCTAAGACGATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGACGTTTGCCGA	<(2I<:5'H::2<:77(I(I55;269'I57<57<586(I4'G'I9)I',6II34(I894956'I&.I=)I'/I:87'I65787(I64(I<'0I'0I'G7968<=786(I2(I98(I416:;38;5877',<I78'I'I(I&E(I157@:837:'I8'G(I;2'I9'I67:(I(I4:'F<(1I:6784'I8:7464<75&:(2I8'I::	NM:i:1	MD:Z:207	oR:Z:1	oH:i:1	o [...]
-simulated.820	16	1	6546	255	113M1D95M	*	0	0	GTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGT	3678'F4'I49>=:9'0I67)I(I8(I:(I8996(I8642&*1II(2I:&F8978=88'H(I)I3(I6&E99:8<896(I:4553:9)I5;<9'H'0I8'H:78(I(I'G78CD'/I6673674885995'G(I:2878:;46869:'I9'I(I68984(I6:?84'I7;&+:I>&-I8;5&,I7'+3II4:4'G'I8566:'G(I;6	NM:i:1	MD:Z:113^C95	oR:Z:1	oH: [...]
+simulated.820	16	1	6546	255	113M1D95M	*	0	0	GTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGT	3678'F4'I49>=:9'0I67)I(I8(I:(I8996(I8642&*1II(2I:&F8978=88'H(I)I3(I6&E99:8<896(I:4553:9)I5;<9'H'0I8'H:78(I(I'G78CD'/I6673674885995'G(I:2878:;46869:'I9'I(I68984(I6:?84'I7;&+:I>&-I8;5&,I7'+3II4:4'G'I8566:'G(I;6	NM:i:1	MD:Z:113C95	oR:Z:1	oH:i [...]
 simulated.821	0	1	7588	255	194M	*	0	0	TATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCA	48I'I*7I(5979686933I(;6>58385I(6940I(<F'I(;;1071=3377I(I.&;E&:8I'4I-&I'68323::/>49I(::9H'67I/':4;;9I/'75<I'<:I(256464I(I(I+44I*77I(H'48;94H'6=;I*92:96:F'I)I(9<6I(64;;:;8I(I)I(7:I0'80:I9*&=I(I.'9	NM:i:0	MD:Z:194	oR:Z:1	oH:i:1	oP:i:7587	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.822	0	1	6744	255	32M1D179M	*	0	0	CATCAGGCCGTGAGGCTGGTATGGGGTGCAACTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTAT	373:3H'I(4=68I)::I(448I9+&<57I(4D499I+I'F'I(667I)I)5I:+&E&7E&3456I(;:018<E&86;87I(?963:2?7:88AF'I(<I0':H'97553;I(247G'98I-&;8;2I(I)I-&75I(I(7I)6I(78I(964I(@8H'2I+H'@919:9I)758I1(I/'I(7I2(55I.&9=8358H'8536898I(25	NM:i:1	MD:Z:32^T179	oR:Z: [...]
+simulated.822	0	1	6744	255	32M1D179M	*	0	0	CATCAGGCCGTGAGGCTGGTATGGGGTGCAACTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTAT	373:3H'I(4=68I)::I(448I9+&<57I(4D499I+I'F'I(667I)I)5I:+&E&7E&3456I(;:018<E&86;87I(?963:2?7:88AF'I(<I0':H'97553;I(247G'98I-&;8;2I(I)I-&75I(I(7I)6I(78I(964I(@8H'2I+H'@919:9I)758I1(I/'I(7I2(55I.&9=8358H'8536898I(25	NM:i:1	MD:Z:32T179	oR:Z:1 [...]
 simulated.823	0	2	59	255	185M	*	0	0	GGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATC	I0'39H'0;79I(=228;98::F'35281787;F&9I(I(;;;E&I(0714758:;?D&6I.&;2F'I)I1'8779616;I.&3954<5I)8I/'3I'85;;:I(I(2<I=,'I(8;2I'I0'I(I*48I(7I/'I(5989I(;I(7I(I(47697;=9I'67:I'=I(I/'89I=,'I(6H'59	NM:i:0	MD:Z:185	oR:Z:2	oH:i:1	oP:i:58	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.824	16	2	132	255	185M	*	0	0	TATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAG	6;=2:78(2I77974:'H3'/I6&F59176'G)I:9',>I(I66;'H'1I)I'H98'H8'0I'G:/37(I8+I9'I'I85954799'H;69(I6(I'0I54',=I(I?'H8(I'I86952&.I(I76>84;98777695&E87'I'.I86?9(I38&E:4(I=28;3;;897775:86=(I57;0	NM:i:0	MD:Z:185	oR:Z:2	oH:i:1	oP:i:131	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.825	16	1	3281	255	110M1I74M	*	0	0	AACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATAGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCC	(I5'I9(I96'/I59'I6;7357:6878(I8&D'G7&+<I;(I(I7579)I77'F'I6:6'0I:5=;(-AI?)I:4(I)I8/463&+;I(I'F9&.I78<85(I><8763&7'/I62'H)I466::9(I8443755'I&-I'.I3685'G=57323659=5940:66'I<95<5',=I>4)I'/I	NM:i:1	MD:Z:184	oR:Z:1	oH:i:1	oP:i:3280	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.826	16	1	2074	255	54M1I89M1D73M	*	0	0	TCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGACGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAA	:)I:73*I6&F96865)I:46<'0I934'H7&-I6;3'H8'I6449:898563:&(I8'/I(I766&.I(I;5&E38'F'I'H&+;I7(I:8(I&-I*I<659)I675/7=(I=8'I==548)I8;8'0I(I88&).9II4277)6I9:85(I7;544753;;88464(I46'.I8578(I=9;93>;6;77::6(I'I365'/I6(I288=86;(I	NM:i:2	M [...]
-simulated.827	16	1	3699	255	130M1D73M	*	0	0	CTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGT	8<(I757794:(I76(I775<(I)I&E@='/I<1&E&-I(3I(I3'I;6'/I7>6677669&.I96'0I'H7'1I95(I72<5588(I8(I4667'.I<5'I(I987)I36:83584898796653>569+I(I:245'G862*I'/I&E6'H563<;85679'I4&E8'I89758:8(I9'F8733775&(.9II5875:5;	NM:i:1	MD:Z:130^C73	oR:Z:1	oH:i:1	oP:i:3 [...]
+simulated.826	16	1	2074	255	54M1I89M1D73M	*	0	0	TCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGACGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAA	:)I:73*I6&F96865)I:46<'0I934'H7&-I6;3'H8'I6449:898563:&(I8'/I(I766&.I(I;5&E38'F'I'H&+;I7(I:8(I&-I*I<659)I675/7=(I=8'I==548)I8;8'0I(I88&).9II4277)6I9:85(I7;544753;;88464(I46'.I8578(I=9;93>;6;77::6(I'I365'/I6(I288=86;(I	NM:i:2	M [...]
+simulated.827	16	1	3699	255	130M1D73M	*	0	0	CTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGT	8<(I757794:(I76(I775<(I)I&E@='/I<1&E&-I(3I(I3'I;6'/I7>6677669&.I96'0I'H7'1I95(I72<5588(I8(I4667'.I<5'I(I987)I36:83584898796653>569+I(I:245'G862*I'/I&E6'H563<;85679'I4&E8'I89758:8(I9'F8733775&(.9II5875:5;	NM:i:1	MD:Z:130C73	oR:Z:1	oH:i:1	oP:i:36 [...]
 simulated.828	16	1	1541	255	94M1I103M	*	0	0	GAAGATAGTGCCCACATGTCATCCTATGATATCAAACCATGCACGTATTGTACTAGCACAAAGTCGCGTGGGTCCGTGTCCGGCCATAAAACAGACCGGGGCAAACAACACTAAGTGTAACGGAGGTGGTACATAAGCTGACCATAGTGCGTTGGCCCGGCTTGTAAGGTAGTATCGAACGTATGCGCAGCTGACCAT	5(I8:74976(3I219;47=:2*I46473<4:7'.I'H599:49995'H<289:276<4'.I8>9::47(1I2(I6928(I(I&E:=',>I794*'I&+:I2'0I:(I6844'I892:)I9(I<)I=)I7;;98(I8;?95'F7;>;:;99(I(I'.I'H3(I63)I'H89979598'G2560 at 6787<<0884(I76	NM:i:1	MD:Z:197	oR:Z:1	oH:i:1	oP:i:1540	oS:A:R	XE: [...]
 simulated.829	16	1	8327	255	63M1I123M	*	0	0	GCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGACGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACA	3<<995'G347(3I(I=176(I55?)I(I97'/I;6<'I3>2:880(I4;5)I9<88687867&7658 at 3>95(I8<)I7<5'G7=;87:4647)I8397'I'I;7(I48888'I65'G4=9;7)I:83(I65>:5'I)I9853:5'H(I'.I:7;'1I27(I68'H<7=3 at 4483;5797'I:;65	NM:i:1	MD:Z:186	oR:Z:1	oH:i:1	oP:i:8326	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.830	0	1	7503	255	191M	*	0	0	CATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATG	@58;7I/'49:8I(I.'62I/'I(I.'94I)I)I(I(987778I(83I)I(7987I)37996I(5H':I'I'820I(697I'84G'=I'I(7I(78<969;=23I(747<5998I(51;4G'5I(I)49:62<7<976I(I/'3I'66G'8I-&H'487=84:7956I(744G'87I3(54548I.&<89;	NM:i:0	MD:Z:191	oR:Z:1	oH:i:1	oP:i:7502	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.831	0	1	8062	255	93M1D58M1I56M	*	0	0	CCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGTCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCC	I(78I(8I(9:2I=,';47699I'15687;6636I'I(8969;8H'I)I)519I(69H'I(6867I(93868298567<4I(75=4989:476I7*;777G'I-&H'46I(75:I(:G'I0':6:7I(5<370I-&;564I)I(96I'66?&38<59I(7H'96I)7:8<99I2(H'=7H'3:=68I(;I'I'475670I)=459:I(	NM:i:2	MD:Z:93^A114	oR:Z:1	 [...]
-simulated.832	16	2	20	255	1M1I36M1I2M1D79M1D57M	*	0	0	GTTTTGGACTCAGCGGCCGTTTGCGTATATAGGAATAGTCAGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTA	6&*7I(I9<86763'I(I3&.I886386578*I)I37<&79,I88'F6;46'I9782<6;4='G::7:43748'H6(I)I5:8'H'H669<895598(I3(1I7:'I'I'0I;697943=,I63547;(I3'1I=)I2:942'H'H;1&+:I(I7=8(I&-I(I'I68'G2&,I)I3	NM:i:4	MD:Z:39^G79^G57	oR:Z:2	oH:i:1	oP:i:19	oS:A:R	XE:i:4	XS:i:0	XI:i:0
+simulated.831	0	1	8062	255	93M1D58M1I56M	*	0	0	CCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGTCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCACTCTCC	I(78I(8I(9:2I=,';47699I'15687;6636I'I(8969;8H'I)I)519I(69H'I(6867I(93868298567<4I(75=4989:476I7*;777G'I-&H'46I(75:I(:G'I0':6:7I(5<370I-&;564I)I(96I'66?&38<59I(7H'96I)7:8<99I2(H'=7H'3:=68I(;I'I'475670I)=459:I(	NM:i:2	MD:Z:93A114	oR:Z:1	o [...]
+simulated.832	16	2	20	255	1M1I36M1I2M1D79M1D57M	*	0	0	GTTTTGGACTCAGCGGCCGTTTGCGTATATAGGAATAGTCAGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTA	6&*7I(I9<86763'I(I3&.I886386578*I)I37<&79,I88'F6;46'I9782<6;4='G::7:43748'H6(I)I5:8'H'H669<895598(I3(1I7:'I'I'0I;697943=,I63547;(I3'1I=)I2:942'H'H;1&+:I(I7=8(I&-I(I'I68'G2&,I)I3	NM:i:4	MD:Z:39G79G57	oR:Z:2	oH:i:1	oP:i:19	oS:A:R	XE:i:4	XS:i:0	XI:i:0
 simulated.833	0	1	5291	255	68M1I140M	*	0	0	CGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGACGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTAT	7I'8949H'I)I(:785H'G'7=>;5;5I/'7;I0'<I/'I'I)7I(5I'896<;:9;I0'385:=87'I;+&6I)2I(:6<I/':6:4538=57G';9I)8866568I)676I.&16947I(<F'7I.&3H';4IG0)%6586;I'9968@;80I)6:I(885468I(8<7652>39I(I)666H'4I(65:46:I(I(7I*;989;9	NM:i:1	MD:Z:208	oR:Z:1	oH:i:1 [...]
-simulated.834	16	1	5796	255	71M1I19M1D70M1I25M1I18M	*	0	0	TTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGACGTCGTTCGTTGCCACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGACATTGAATCCGAACGGGTATTGGCACGCTCTTACGTAGTCTTTG	(I(I88'G'H9'H99:7:99467(I;98=(I7175<74997;(I694785(I5C(I(I/7;)I9:7>7827'34983'I42)I;'G9:(I/,I27(I'/I98'0I<=76(I;59:5<='0I&F&*8I9:'0I<=8',=I7'I'H(I'H8;>81397:(I67'91'I4)I2'I;)I6'/I88(I)I57&4195*I75617=31'/I5	NM:i:4	MD:Z:90^A113	 [...]
+simulated.834	16	1	5796	255	71M1I19M1D70M1I25M1I18M	*	0	0	TTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTAACGCATGAGACGTCGTTCGTTGCCACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGACATTGAATCCGAACGGGTATTGGCACGCTCTTACGTAGTCTTTG	(I(I88'G'H9'H99:7:99467(I;98=(I7175<74997;(I694785(I5C(I(I/7;)I9:7>7827'34983'I42)I;'G9:(I/,I27(I'/I98'0I<=76(I;59:5<='0I&F&*8I9:'0I<=8',=I7'I'H(I'H8;>81397:(I67'91'I4)I2'I;)I6'/I88(I)I57&4195*I75617=31'/I5	NM:i:4	MD:Z:90A113	o [...]
 simulated.835	16	1	8330	255	157M1I34M	*	0	0	GACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTAGGTCAATAGTATGCAGCTGTGGTACATTCTGGTG	764(I954'.I'I5::;)I668(I(I;6&-I:65)I8:06;99(I5<9)I587657:57:53447;:75*I69'I78=(I691;7;;;34(I9697'H(I57'H:83:7(I;9*I61586'H756)I965;1)I)I89:18;'I'I(2I544'/I4<%'I59(I24898<64477766(I739:'H/;)I9;	NM:i:1	MD:Z:191	oR:Z:1	oH:i:1	oP:i:8329	oS:A:R	XE:i:1	XS:i:0	XI:i:0
 simulated.836	16	1	1726	255	76M1I28M1I108M	*	0	0	GCAGCTGACCATGCTTCAGGGCTCACTCCCCTTGAGACGGCTATGCGTTGTATTCCACCCCGAGACCTTGTCCCTTAGCCACAGTATGATCGAGAATGACTAACTAGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAA	674=:688'I7:76'H45(1I7<>36:&+;I(I56656'H5604589)I473(I(I7',>I8:46'I)I87'0I(I-6(I55868:96997356'I7773?'H67(&-I&-I'I766&*7I:5?8(I<(I'G&E6(I84:)I7:76&F'I85827:5;88=(I)I;:5'H(2I;)I997'F67566(I5;'G(I7:7(I;99'I6>618'G:&E	NM:i:2	MD:Z:2 [...]
 simulated.837	16	1	85	255	140M1I74M	*	0	0	GAATGGGAACATCGCCGACGTTAGAGATGGCCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTCGACTTCCGTAGCTTGGGGGGTAGCCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGC	7'G7'0I(I94757(I95<6(I:6:763'F&+:I96;59'G;4885773(I7;38&-I?8566@:'H(I<;&-I8:8973(I'0I:1'G8<57=5)I85;4'F5'I56(I(I5;)I'H7'H88;556387)I<&E:'F)I%<57(I(I5987:'I%(.9II156(I(I56'I(I'/I(I71'H=7:3&-I:867(I962=78(I;:'H;'I9>;;	NM:i:1	MD:Z:214	oR [...]
 simulated.838	16	1	6836	255	211M	*	0	0	ACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGGAACGT	59:'H(I7(2I8)I56;687'I5<:(I98(2I6796(I(I'/I:>(I(I4'I7'I76)I947(I59)I7)I'I14:795'G27<'0I(2I(I;(3I87'/I574979)I86<45:9'H98'/I8(I47>9:69;2(I6(I57>:(I*I;8;:6799)I99:75&-I7:)I=;6(I5)I7'G5<588)I)I4(1I(I56(I8=&+:I(I:66	NM:i:0	MD:Z:211	oR:Z:1	oH:i:1 [...]
-simulated.839	0	1	8977	255	100M1D96M	*	0	0	GGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGG	I(877:688:5<I/'8I(6I(7879<4;3;79I(364I1(5;8I(575839I(85;I)I(9I(975I)78?888977I*1675I(G'3;7:9I1'G'I)5C:79865H'48<I.&I.&7;4I(/I'98:76;:7I(I)867998I(7I)3I*H'>6I'9I)68I(95I'889;I'696585<453I(I(I.'3;I(	NM:i:1	MD:Z:100^C96	oR:Z:1	oH:i:1	oP:i:8976	oS:A:F	XE:i [...]
+simulated.839	0	1	8977	255	100M1D96M	*	0	0	GGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCTCGAGATTCATGGGCCCGTCGGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGG	I(877:688:5<I/'8I(6I(7879<4;3;79I(364I1(5;8I(575839I(85;I)I(9I(975I)78?888977I*1675I(G'3;7:9I1'G'I)5C:79865H'48<I.&I.&7;4I(/I'98:76;:7I(I)867998I(7I)3I*H'>6I'9I)68I(95I'889;I'696585<453I(I(I.'3;I(	NM:i:1	MD:Z:100C96	oR:Z:1	oH:i:1	oP:i:8976	oS:A:F	XE:i: [...]
 simulated.840	16	1	2906	255	188M	*	0	0	ATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCT	0753975925:7<'H4987;&*7I:(I5688'I5694'I682;(1I66(I94;7(I6(I7558 at 4:(I8(I62477577*I695575&-I7'0I6)I2'G&E(I387)I7'H76766996;4:<8(IB35:6'F'G(I7&.I65;(I68297)I8)I'0I65;85?8::'1I'I51&-I96(I',<I8	NM:i:0	MD:Z:188	oR:Z:1	oH:i:1	oP:i:2905	oS:A:R	XE:i:0	XS:i:0	XI:i:0
 simulated.841	16	1	3987	255	67M1I130M	*	0	0	GACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCGAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGA	33;(I7;:8865)I7)I8:'H:47:476'/I&+;I3(I7=>967169'H98'/I&*8I955654(1I'(I1'I'I(I79:79857&-I(I4567(3I666(I'H(I(I556>(I148:6)I5(1I:903:4378'I819&.I8)I&.I)I=(I4348797(I7(I565748'G8'H'H'H+I,'0I)I:57(I63873	NM:i:1	MD:Z:197	oR:Z:1	oH:i:1	oP:i:3986	oS:A:R	XE: [...]
 simulated.842	0	1	4638	255	69M1I137M	*	0	0	GACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGTCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCT	7:7;I(7I.&:I)6956I(32G'54447I/'54;<25I)8I*6;782I1(E&98 at I*27<436I-&864&I'I(657:9I(3687I/'73:9G'59I(74II1*&I3(I*5I(4<87I)88=/I(8<765669II3+'8<03I'67?:I'726I<,'5I(663I'88I)I(69I'I0'68I-&8:9I2(I(5I)II3*&<65:7I(7	NM:i:1	MD:Z:206	oR:Z:1	oH:i:1	oP: [...]
@@ -848,111 +848,111 @@ simulated.844	0	1	1523	255	197M	*	0	0	CCCGCGTTTTTCCTTATGGAAGATAGTGCCCACATGTCATCC
 simulated.845	16	1	6165	255	199M	*	0	0	TCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACC	664(1I889'0I;7;7:8:7985=77;:62:'G73:*I7?3'H8=*I8(1I6:<77>(I578:6946459<74&-I494'H3897=59&-I596996'0I755=3'/I7'I35(/FI7'G(2I96:459&F=695375786679724(I88;626:(I71<:&-I:5=739(I)I(1I'G:3'I1::8&*2II'H;:(I	NM:i:0	MD:Z:199	oR:Z:1	oH:i:1	oP:i:6164	oS:A:R	XE:i:0 [...]
 simulated.846	0	1	248	255	81M1I104M	*	0	0	CCGGCACCGGCCCGGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCGTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATT	I(G'8:I(H'I/'F&86I(6089I/'97=4I*586321I(0?I'=I'9;=<F'6H'F'I)I(I9*&6463G'97I1'<958'681I(;46H'699141I9+&77466H'I-&9:7I(4G'8I(<I-&95176986II3*&9I(I'997:I2(I1(6:585;:959I(I)I1(4;96=:748I0'I'	NM:i:1	MD:Z:185	oR:Z:1	oH:i:1	oP:i:247	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.847	0	1	7340	255	97M1I7M1I99M	*	0	0	CTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGACCCCACACGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGT	1:;H'<6376858H'7=7553368I2(<7487I(45764:9I;+&663I(;H'556I.&89846;I)I(9647899:9373<838I-&4I'6:=I'4'I?-'93;&977133H'I(:8I(I'87;677I0'I1(6>85646I'78I'5I4)G'I(78H'I)478>=8:99I1';758I)I.&:<I.'I(I.&62I)H'G'H'987	NM:i:2	MD:Z:203	oR:Z:1	oH:i:1	oP:i [...]
-simulated.848	0	1	5079	255	55M1D65M1I61M	*	0	0	AGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGC	7F'47I':649I(446661688I(:6=;8I(6:9H'69F'I(7I/':H'355276II2*&97557:=;5:I(6:>7I0':;8I)<I(669;G'3948I:+&9E&I.&837I(76>I(F';F&H'I)I-&889I,&I(I(:68;4579:545I2(465I)AI'I(7G'555:I)5I)5:62;9	NM:i:2	MD:Z:55^C126	oR:Z:1	oH:i:1	oP:i:5078	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.849	0	1	486	255	37M1D48M1I8M1I63M1I34M1I17M	*	0	0	CAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTACTTTCTCAGTCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCTAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACACGACTCAATCTAGTCACG	9I'H'H'27I9*&328<9?8I*75I(I>,':82G'73I,5355I/'4F&I'56=I1(5276:5I(74>88H'6I(I';6388996&I.';29:3'I/'2758/76H'7536866I1(07I,&7I(4536;976I(779:8<:9I)56I(76I(?7>I*(897II9.)&I(878I.&8:8:I(G'8I1(4668<'6;968H'7;8359=B93	NM:i:5	M [...]
-simulated.850	0	1	544	255	24M1I18M1I13M1D135M1I20M	*	0	0	GCATCATTCTGTCGGTCCTTAGTAGTCTATTTCTCAGCCCACTACACGAATACTGTCTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTACATCGCGGCGTAGGATAATC	655:66F&4885>I(7G'I*8768&897;I.&757?8I1(677%/;62I(58::;5:I,19I1(5I)54976694I(:6;94664G'4;H'68I'6=2I(697II>1*'I(6:4I2(6C5?H'I):I.'9:194:8868I(7755:65553<I)7988=66B8I(7:7I)675I(64I2(4H'66I'7:9;2&2858 at 6I(8:87I(;3I'56	NM:i:4	 [...]
-simulated.851	0	1	3276	255	56M1I23M1I35M1I1M1I71M1D20M	*	0	0	TGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCGTCGGAATAGTTTGCTCTTTTCGGTAGAACCGCTATAAAACCAAGTTTAGCTGAATGACAGTCGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCACCCAGCATGTAATGG	397I(G'5I)9I(38I0'65I(678>1239784I'7I(I(8I;+&5I*I(4577I'&78I'H'4;4I0'58;9I?-'8I(&7 at I)I(:6;73I9*&G'I(7I/':1996H'=:7<9%?&5I-&?=I(I*482689I)7649668I(I1'I/'7778I(78545793799574935I'46:5<I>,'9;I(ID.(5I,&5<5889<I):I(	NM:i:5	MD [...]
+simulated.848	0	1	5079	255	55M1D65M1I61M	*	0	0	AGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCCAAGGTTTGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGC	7F'47I':649I(446661688I(:6=;8I(6:9H'69F'I(7I/':H'355276II2*&97557:=;5:I(6:>7I0':;8I)<I(669;G'3948I:+&9E&I.&837I(76>I(F';F&H'I)I-&889I,&I(I(:68;4579:545I2(465I)AI'I(7G'555:I)5I)5:62;9	NM:i:2	MD:Z:55C126	oR:Z:1	oH:i:1	oP:i:5078	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.849	0	1	486	255	37M1D48M1I8M1I63M1I34M1I17M	*	0	0	CAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAGTAGTTTCGGAAGCGTTTGCATCATTCTGTCGGTCCTTAGTATCTACTTTCTCAGTCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCTAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACACGACTCAATCTAGTCACG	9I'H'H'27I9*&328<9?8I*75I(I>,':82G'73I,5355I/'4F&I'56=I1(5276:5I(74>88H'6I(I';6388996&I.';29:3'I/'2758/76H'7536866I1(07I,&7I(4536;976I(779:8<:9I)56I(76I(?7>I*(897II9.)&I(878I.&8:8:I(G'8I1(4668<'6;968H'7;8359=B93	NM:i:5	M [...]
+simulated.850	0	1	544	255	24M1I18M1I13M1D135M1I20M	*	0	0	GCATCATTCTGTCGGTCCTTAGTAGTCTATTTCTCAGCCCACTACACGAATACTGTCTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTACATCGCGGCGTAGGATAATC	655:66F&4885>I(7G'I*8768&897;I.&757?8I1(677%/;62I(58::;5:I,19I1(5I)54976694I(:6;94664G'4;H'68I'6=2I(697II>1*'I(6:4I2(6C5?H'I):I.'9:194:8868I(7755:65553<I)7988=66B8I(7:7I)675I(64I2(4H'66I'7:9;2&2858 at 6I(8:87I(;3I'56	NM:i:4	 [...]
+simulated.851	0	1	3276	255	56M1I23M1I35M1I1M1I71M1D20M	*	0	0	TGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCGTCGGAATAGTTTGCTCTTTTCGGTAGAACCGCTATAAAACCAAGTTTAGCTGAATGACAGTCGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCACCCAGCATGTAATGG	397I(G'5I)9I(38I0'65I(678>1239784I'7I(I(8I;+&5I*I(4577I'&78I'H'4;4I0'58;9I?-'8I(&7 at I)I(:6;73I9*&G'I(7I/':1996H'=:7<9%?&5I-&?=I(I*482689I)7649668I(I1'I/'7778I(78545793799574935I'46:5<I>,'9;I(ID.(5I,&5<5889<I):I(	NM:i:5	MD [...]
 simulated.852	16	1	8049	255	65M1I139M	*	0	0	GTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTAGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAA	<96)I284(I'0I(I:6(I5(I775',>I<73:>4)I397;:66354)I(I:8572;'H(I(I77(9(I87(I(I587:)I54677>6;6;:78'H73:.8766:85',=I7567'H'0I)I48'I3;8(I9'I(1I:8<7(I:8855(2I=54:(I(I7:)I94:=77=9)I9(I:7'I729>4<'0I(I97)I67645'I:*I	NM:i:1	MD:Z:204	oR:Z:1	oH:i:1	oP:i:8 [...]
-simulated.853	16	1	445	255	96M1D98M1I20M	*	0	0	CCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGTACCAGACCCCCCGGCGTCCC	)I(I5886=5:'H985(I7/8887(I885479544'H74(I7(I(I(I95&+;I;745775'I54(I&+;I986&D59&.I786<(1I9'I'I7;5,I589867'I77847,I6'G)I;;?6;277&.I96755&.I8445597'H667?>9:(2I59'1I:'G<5;51>::(I7<777673'H47(I;=(I:3%8*I;68&(.9II'I785'/I	NM:i:2	MD:Z:9 [...]
-simulated.854	0	1	8921	255	3M1D20M1I69M1D87M	*	0	0	CTAGAACCGGTTCGTATCAGTAACGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGC	;95DF'I)E&H'56:3796:4I(&6I(F&58I';I)454I)I)86I(;I-&7;85;I(5574:77741I/'7I(:I(?8974189653E&8::I,648H'829:14I(7;6I)I(<H'679I)69998;:>6I(59:5I(I)49975I/'I*F&:I(84789;I)978I-&I0'632H'5	NM:i:3	MD:Z:3^G89^G87	oR:Z:1	oH:i:1	oP:i:8920	oS:A:F	XE:i:3	XS:i:0	XI:i:0
-simulated.855	16	1	5165	255	46M1I35M1I34M1D29M1D42M	*	0	0	GGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATCGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTCGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGTTTGCAGACGGACAGCCTTGGTACATTAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTC	(I9676(I7759&*8I6(I'.I356(I7;4(I'I7>(I(I'/I9:8&'/I'H'H;<285;587492'0I;;2'G9(I*I?(I';68:(I8'F=846=:98;94)I777;6(I'G35;,I&-I9:68;=(I<843'I'G(I5;:7(ID=8;=964&-I9:&.I:'/I(I(I7*I5'G44869854'/I;	NM:i:4	MD:Z:115^G29^A42	oR:Z:1	oH:i:1	oP:i:5164	oS:A:R	X [...]
+simulated.853	16	1	445	255	96M1D98M1I20M	*	0	0	CCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTGCATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGTACCAGACCCCCCGGCGTCCC	)I(I5886=5:'H985(I7/8887(I885479544'H74(I7(I(I(I95&+;I;745775'I54(I&+;I986&D59&.I786<(1I9'I'I7;5,I589867'I77847,I6'G)I;;?6;277&.I96755&.I8445597'H667?>9:(2I59'1I:'G<5;51>::(I7<777673'H47(I;=(I:3%8*I;68&(.9II'I785'/I	NM:i:2	MD:Z:9 [...]
+simulated.854	0	1	8921	255	3M1D20M1I69M1D87M	*	0	0	CTAGAACCGGTTCGTATCAGTAACGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGAGATTATGATGAATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGGC	;95DF'I)E&H'56:3796:4I(&6I(F&58I';I)454I)I)86I(;I-&7;85;I(5574:77741I/'7I(:I(?8974189653E&8::I,648H'829:14I(7;6I)I(<H'679I)69998;:>6I(59:5I(I)49975I/'I*F&:I(84789;I)978I-&I0'632H'5	NM:i:3	MD:Z:3G89G87	oR:Z:1	oH:i:1	oP:i:8920	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.855	16	1	5165	255	46M1I35M1I34M1D29M1D42M	*	0	0	GGTCGCTTCACTCCCCAGGAAATCACCGCTAATTGCAAGGTTTGATCGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTCGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGTTTGCAGACGGACAGCCTTGGTACATTAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTC	(I9676(I7759&*8I6(I'.I356(I7;4(I'I7>(I(I'/I9:8&'/I'H'H;<285;587492'0I;;2'G9(I*I?(I';68:(I8'F=846=:98;94)I777;6(I'G35;,I&-I9:68;=(I<843'I'G(I5;:7(ID=8;=964&-I9:&.I:'/I(I(I7*I5'G44869854'/I;	NM:i:4	MD:Z:115G29A42	oR:Z:1	oH:i:1	oP:i:5164	oS:A:R	XE: [...]
 simulated.856	0	1	5640	255	203M	*	0	0	TTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATG	I)6:3627I,&=8I(7669I)866I)886I(77I)I:+&559I)0:6I':I+E&:I'5I';:I.&8I-&84<6I0';93:;I(G'<I(4884I(45;89I':17H'0519:3II3+'I(59H'46:37I(I(65/I'7:76H'84I(96;;14332I(I(:;I)I(>H'88<;2=4<36I(1894I*;;;65885:66G'9:9	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:5639	oS:A:F [...]
 simulated.857	0	1	5451	255	42M1I166M	*	0	0	ACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAAGTACTATTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATG	>547;:I(8:79868:7I(I):63I(8I(86944;H'G'5I'*76593I(787507A4H'7I/'37I)85I0'I0'95;96G'361I/'8;I(I(I2(4I(?<76I(5I(687I*5644685I(5I(9;.96;75;8:2I(65I'I(<46053H'839767I(49I(56433695868667797I)5<93H'269547I/'57I)7;3:	NM:i:1	MD:Z:208	oR:Z:1	oH:i:1 [...]
 simulated.858	16	1	261	255	173M1I43M	*	0	0	GGCTAACAGCGGGAGTGCCATACACTTCTGGCAATCGCTTATTAAGGAATTTTCGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCGTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCA	'G65'G7448'/I9=87(I839468(I67'H8&D7657'H5'G)I(I)I'-?I79:<'F56&-I69:5296'G6:;)I866;;<&*8I78736(I&-I984(I3'H<(I9'0I;:476?9;&)1II7'I'I39<9(1I&-I:73863;3:@(I)I'/I<;8396679&.I*I6)57'G:7(I:4'0I(I829;>4:'G=34(I759=8:)I84667:	NM:i:1	MD:Z:2 [...]
-simulated.859	16	1	1287	255	39M1D18M1D145M	*	0	0	CTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCACAGACTGCGCCACCGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGA	3:8'G535;(I'/I4'H8&.I'/I<&,I:)I:(I56:'I*7I6:31;72877(I;'IC95)I'1I8886=99&-I78'G3:'I<&-I8'I;5(I)I;6>;:822866<7'I883663697&+:I;'I=(I9<(I2'/I<56367'I9'I;27766(I49;9(I(I8(1I9(I(I&.I448:5)I:<7777&.I967689(I@	NM:i:2	MD:Z:39^C18^G145	oR:Z:1	oH:i:1 [...]
+simulated.859	16	1	1287	255	39M1D18M1D145M	*	0	0	CTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCACAGACTGCGCCACCGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTTGGATTTGCCGGCCCGCACAGGCAGTACAAAGTGAGAGGA	3:8'G535;(I'/I4'H8&.I'/I<&,I:)I:(I56:'I*7I6:31;72877(I;'IC95)I'1I8886=99&-I78'G3:'I<&-I8'I;5(I)I;6>;:822866<7'I883663697&+:I;'I=(I9<(I2'/I<56367'I9'I;27766(I49;9(I(I8(1I9(I(I&.I448:5)I:<7777&.I967689(I@	NM:i:2	MD:Z:39C18G145	oR:Z:1	oH:i:1	o [...]
 simulated.860	16	1	5206	255	209M	*	0	0	TAGATGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGCAGACGGACAGCCTTGGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAC	8%666&.I*I'G68;598<76556'/I794(I3(I'H8)I39<>)I9*I997::466:76(I45;57'I)I898'0I'.I;86838(I;593)I(I'I6587(I(I<549266'0I;4&.I;(1I'G(I:'H@'G4236:195'/I=;:782:&+:I6(I4'H59:&.I68>76;:49='H71'I6:79:75'I846'.I573::)I:'	NM:i:2	MD:Z:1T206G	oR:Z:1	oH:i:1	 [...]
 simulated.861	16	1	4286	255	41M1I39M1I107M1I11M1I13M	*	0	0	CCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGAGTGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGTCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACTATCTACCTTGGTCACATCCCGTTTC	'0I;4&+9I76653:8::'I'/I'.I737'I6;<5)I&.I5-/8;6;7<7<8'H6(I)I933'G9'H7)I(I675:)I486**I592888'I74:9'H999'0I485765489<746:5829&*1II'I78958?A5'G:856'I*I(I55'/I7797'H67)I::688'H5%)0GI399;5:)I58:4'87978'G'F)I*87?>0'0I;'/I7	N [...]
 simulated.862	0	1	8246	255	17M1I43M1I133M	*	0	0	TATTCAAGGTGATGTCCTACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAACGAAGCGGGACGCCGCCGCTCTGCAGACGGCGATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCA	99E&9I)I(577:8;I(&79298I(78I(8>87=31<:<I(H'I'I0'I(67586I(8<I(&9I(57I/':64I(7I(439:486:48;H'95:I-&G'75<7I)888I(H'18I2(857G'873;776I(358H':69755;:9776D7883?6I(47I)88:I(7;39776867I'5:5<I)I(8>H'86993	NM:i:2	MD:Z:193	oR:Z:1	oH:i:1	oP:i:8245	oS:A:F	XE:i: [...]
 simulated.863	16	2	28	255	213M	*	0	0	TCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACA	79496&E)I;'/I79;664469(I)I6;792'/I<7*I73<9'G7;5:33696'F97;5;4879&D:(I(I58<'G'I8:<884;6;5(I5&.I<6(I'I'/I59679;7>&-I487674&E9'0I:&F743;2(I'H5:',>I'G752(I'/I'I'I4:)I7(1I)I9266(I8)I:'H'I;98795@=)I264(I6)I'0I89&+:I'H<7	NM:i:0	MD:Z:213	oR:Z:2	oH:i [...]
-simulated.864	0	1	3409	255	159M1I22M1D11M	*	0	0	CAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCACTTGCTCGATTAATTGGTATTCGTTGTGATTCCG	69;1179I(I4)I2(76:2I'56955747586564547I(4<9>8I7*&58I(II2*&7I-&598:9?8I)3I(5I-&69I.&F&694:I(5864I.'3I'8I*98585219I(3I0'8F&957I)I(6I(:I/'I)744574I:+&583I/'I(E&96%I(:68<;5I)I)I'I':;I'<6I,6:8;I(G';	NM:i:2	MD:Z:181^T11	oR:Z:1	oH:i:1	oP:i:3408	oS:A:F	XE:i: [...]
+simulated.864	0	1	3409	255	159M1I22M1D11M	*	0	0	CAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCACTTGCTCGATTAATTGGTATTCGTTGTGATTCCG	69;1179I(I4)I2(76:2I'56955747586564547I(4<9>8I7*&58I(II2*&7I-&598:9?8I)3I(5I-&69I.&F&694:I(5864I.'3I'8I*98585219I(3I0'8F&957I)I(6I(:I/'I)744574I:+&583I/'I(E&96%I(:68<;5I)I)I'I':;I'<6I,6:8;I(G';	NM:i:2	MD:Z:181T11	oR:Z:1	oH:i:1	oP:i:3408	oS:A:F	XE:i:2 [...]
 simulated.865	16	1	1250	255	42M1I160M	*	0	0	GTTTAGCCAATAAAACCGTTATCACAGGTGTTATGTTCTCAACTGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGGGCGCATCTCCCGAGGCAGGAGGGATTAGTTAAGTCTGTCTACATGTTGCGACAGACAAAACAAGAATCAAGTTTCTACAGCCGCCATCTCTAACTACTT	9'/I7:'I*I9&*8I(I;'H7<<9<6)I=3)I1;5'I25;(I&2976(I'0I3)I6'0I'/I7'.I8)I8(I:76'I',>I8969;6;13:)I;)I(I35)I&-I5::635;'/I;7(I55(I6'.I?'I7D'G'H=<:98>6976555'I4:2484:29&*8I0,I9)I68+I<'.I8:6952)I6'I77<:57(I8285(I	NM:i:1	MD:Z:202	oR:Z:1	oH:i:1	oP:i:1249	 [...]
-simulated.866	0	1	8323	255	14M1I145M1D37M1I15M	*	0	0	CTCTGCAGACGGCGTATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTAGGCTGGATTTGTACT	857469:67;I(6268I0'G'7785I'788I(I(95I-&669I(547449;G'6:7G'47=99;17725:;7388=:I(78I(94;I(;@4759/587G'095<G'I(:7I)379:8I(9>E&747:8I';76H'39:8<I'I(688=6;I)I'I.'985I,::I*6/E&7;5772;;:5:7:8I(;;61I(<8I'8)I(<8I(:I.'7:4<8	NM:i:3	MD:Z [...]
-simulated.867	16	1	3585	255	143M1D85M	*	0	0	ATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCT	5&F9;'/I:60;'H'I(I(I277=563&.I2)I64)I6<(I6'- at I6=9936(I6:59(I4<'H9;84;74(I584(I8'G',>I56'F7(I>75'H'/I&*8I639:6)I(I;84'G<:87:58(I:8'I7299(I'I)I95,I:@'H&.I&,I(I2'I>:'.I::5:726:5(3I5;(2I'G4'1I49(I6652;1='I3(I65<3(1I55)I(I4< [...]
+simulated.866	0	1	8323	255	14M1I145M1D37M1I15M	*	0	0	CTCTGCAGACGGCGTATTTCCACGACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTAGGCTGGATTTGTACT	857469:67;I(6268I0'G'7785I'788I(I(95I-&669I(547449;G'6:7G'47=99;17725:;7388=:I(78I(94;I(;@4759/587G'095<G'I(:7I)379:8I(9>E&747:8I';76H'39:8<I'I(688=6;I)I'I.'985I,::I*6/E&7;5772;;:5:7:8I(;;61I(<8I'8)I(<8I(:I.'7:4<8	NM:i:3	MD:Z [...]
+simulated.867	16	1	3585	255	143M1D85M	*	0	0	ATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCT	5&F9;'/I:60;'H'I(I(I277=563&.I2)I64)I6<(I6'- at I6=9936(I6:59(I4<'H9;84;74(I584(I8'G',>I56'F7(I>75'H'/I&*8I639:6)I(I;84'G<:87:58(I:8'I7299(I'I)I95,I:@'H&.I&,I(I2'I>:'.I::5:726:5(3I5;(2I'G4'1I49(I6652;1='I3(I65<3(1I55)I(I4< [...]
 simulated.868	16	1	4548	255	200M	*	0	0	ACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCT	76<8:6568'1I<'I<463936(I=455766(I(I67(I6(1I599.'F88:797;6946&F&-I946&-I2:5(I(I;(I441(I97658:75'G5'/I;'I96;5(I77'H9:;;2(2I:267;;(I;'H88785'0I(I:<5(I1496;7'/I621(I(I=5368(I;845'/I5?5;)I:3)I;3&*2II'0I*I9	NM:i:0	MD:Z:200	oR:Z:1	oH:i:1	oP:i:4547	oS:A:R	XE:i [...]
-simulated.869	0	2	171	255	8M1D120M1I8M1I45M1I29M	*	0	0	TAACTGCCGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATACTGCATGTCGTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGACGAACTGAAGCGGGTCGGGGAGATTTATC	5I(566I(I+I(H'96H'=I.&G'45;9I(4I(6I(I(578>7:84I(1;8G':H'I1(6>I8*&F'8I)8I(I)7679:I0'I)84:79;75:8777>I(4:F&I0'7986I(55I*7;H'>=987:'4283645<(789I(;:45;?574:9;6I/'I'I(:766456I'I(H'4658878&39I(553I(74I2(86I<+&496I/'64:	NM:i:4	MD [...]
-simulated.870	16	1	5350	255	71M1D68M1I8M1I42M	*	0	0	TTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAACTAATACTAGTTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCA	)I8;64=58&+;I5)I4(I765&.I5346:56:4:'G8:(I9968302)I57:&.I9:683'G9(I5(1I7B/9&*1II79>:6)I75667695(I88)I77;5>7&F739657644(I)I567(I8(I8:96<7'G'H&5'I86:52&&F97897:99(I8'/I57(I87'0I'0I:5449)I967'.I3	NM:i:3	MD:Z:71^G118	oR:Z:1	oH:i:1	oP:i:5349	oS:A:R	XE:i: [...]
-simulated.871	16	1	6346	255	7M1D183M	*	0	0	CAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAG	;'I8::8(/EI'G98'H(I'I98:7846'I4 at 7(1I4'I'/I(I66(I664;:<9'G63:;;4:02'I&.I&E22?4'/I87:+I65(I4;1&+;I:;(I81)I(I(I4;6'F/7(I646(I5=?:8<=4(I<7;7(I88)I)I5897:7:94;476&D:99(I877:767'0I2486657'H:677797	NM:i:1	MD:Z:7^C183	oR:Z:1	oH:i:1	oP:i:6345	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.872	16	1	2786	255	55M1D141M	*	0	0	CTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCT	6(1I'G7846;=97&+;I:(I:&*8I8(1I4770(I797;;;758;153&*9I44)/FI75?:96(I875'G945)I64665(I)I6'I729/8(I46(I68)I87::'0I59744'H848=2646:68468'G85964',=I2(I9983(I:9:9(I7644'/I96)I7648(I<'I:995::5(I5'H38;<<:	NM:i:1	MD:Z:55^A141	oR:Z:1	oH:i:1	oP:i:2785	oS:A:R	XE: [...]
+simulated.869	0	2	171	255	8M1D120M1I8M1I45M1I29M	*	0	0	TAACTGCCGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATACTGCATGTCGTACTTATAGCGCGCACATAAACCAATCATCTCTTCCGGTAGTCAGACGAACTGAAGCGGGTCGGGGAGATTTATC	5I(566I(I+I(H'96H'=I.&G'45;9I(4I(6I(I(578>7:84I(1;8G':H'I1(6>I8*&F'8I)8I(I)7679:I0'I)84:79;75:8777>I(4:F&I0'7986I(55I*7;H'>=987:'4283645<(789I(;:45;?574:9;6I/'I'I(:766456I'I(H'4658878&39I(553I(74I2(86I<+&496I/'64:	NM:i:4	MD [...]
+simulated.870	16	1	5350	255	71M1D68M1I8M1I42M	*	0	0	TTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAACTAATACTAGTTGCGAGCTCTTGAAACATTACAAAGGGCATGTCCATGCCCA	)I8;64=58&+;I5)I4(I765&.I5346:56:4:'G8:(I9968302)I57:&.I9:683'G9(I5(1I7B/9&*1II79>:6)I75667695(I88)I77;5>7&F739657644(I)I567(I8(I8:96<7'G'H&5'I86:52&&F97897:99(I8'/I57(I87'0I'0I:5449)I967'.I3	NM:i:3	MD:Z:71G118	oR:Z:1	oH:i:1	oP:i:5349	oS:A:R	XE:i:3 [...]
+simulated.871	16	1	6346	255	7M1D183M	*	0	0	CAACTAGCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAG	;'I8::8(/EI'G98'H(I'I98:7846'I4 at 7(1I4'I'/I(I66(I664;:<9'G63:;;4:02'I&.I&E22?4'/I87:+I65(I4;1&+;I:;(I81)I(I(I4;6'F/7(I646(I5=?:8<=4(I<7;7(I88)I)I5897:7:94;476&D:99(I877:767'0I2486657'H:677797	NM:i:1	MD:Z:7C183	oR:Z:1	oH:i:1	oP:i:6345	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.872	16	1	2786	255	55M1D141M	*	0	0	CTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGGATGTGCCTATGCAGTGTGCTACCTATACTTTTCGGCTATGGTGACGGCATACCCAGAACGATAAGCCAGTCGCTGGCTTCACGCT	6(1I'G7846;=97&+;I:(I:&*8I8(1I4770(I797;;;758;153&*9I44)/FI75?:96(I875'G945)I64665(I)I6'I729/8(I46(I68)I87::'0I59744'H848=2646:68468'G85964',=I2(I9983(I:9:9(I7644'/I96)I7648(I<'I:995::5(I5'H38;<<:	NM:i:1	MD:Z:55A141	oR:Z:1	oH:i:1	oP:i:2785	oS:A:R	XE:i [...]
 simulated.873	0	1	490	255	56M1I40M1I98M	*	0	0	GCCGTAAAACACGTATGGATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCTATCATTCTGTCGGTCCTTAGTATCTATTTCTCAGCCCACTACACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACAGGTACCTGTTCGACCAGACCCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAA	8I(29I=,'957588:I'77F&I?-':7:I(89I-&376AI0'6I)I*=8:I0'7:&7<:3E&85877I,<I(I(:7<6348AI.&:5567I.&8:8%2654I)5675<?7I-&9;I-&5I)597:678<I(72<57>95I(9;I'58I(68:I(5<9II9.(&I(84:I0':6;;G'I)7I.&7;28;5758?I'	NM:i:2	MD:Z:194	oR:Z:1	oH:i:1	oP:i:489	oS:A:F	XE:i:2 [...]
 simulated.874	16	1	6205	255	16M1I175M	*	0	0	ATTCGCCAGGGATCAGACGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTG	4'G77(I7'.I6996;'7(I;;:759933<7686'.I526(I<;5463>'/I8:5<59&-I=3;75(2I5(I68',=I3'I&,I976:43'H4;96<420<28863:6'I::86873&F4398'/I4::391(I'H'0I(I4<(I;63;&*2II'G><)I'I(I969347<'G5::'/I4(I'0I'H84'H6	NM:i:1	MD:Z:191	oR:Z:1	oH:i:1	oP:i:6204	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.875	16	1	375	255	19M1I101M1D12M1I42M1D3M1I14M	*	0	0	GTGTCGCAAAAATGGCCTACGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAACACGTATGGTATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATCTAGTCGGTCCTTAGTA	809196/(-7II6'I(I86(55'1I&-I;@8?05:357'H(I'0I7543<7669&.I(I757(I9>'I98&.I(I947<;63)I:98'H1883<2(I5376::489'H77(I>)I'H'H76*7I77989:;)I&:6&E'-?I587(I67(1I3>;4'0I6(I)I97B(2I6377;<D93'829(I7*I(I6855	NM:i:5	MD:Z:120^A54^T17	oR:Z:1	oH:i:1	oP [...]
+simulated.875	16	1	375	255	19M1I101M1D12M1I42M1D3M1I14M	*	0	0	GTGTCGCAAAAATGGCCTACGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAACACGTATGGTATAAGGGGATACCAGAAAGTAGTTTCGGAAGCGTTTGCATCATCTAGTCGGTCCTTAGTA	809196/(-7II6'I(I86(55'1I&-I;@8?05:357'H(I'0I7543<7669&.I(I757(I9>'I98&.I(I947<;63)I:98'H1883<2(I5376::489'H77(I>)I'H'H76*7I77989:;)I&:6&E'-?I587(I67(1I3>;4'0I6(I)I97B(2I6377;<D93'829(I7*I(I6855	NM:i:5	MD:Z:120A54T17	oR:Z:1	oH:i:1	oP:i [...]
 simulated.876	16	1	1135	255	23M1I117M1I78M	*	0	0	TGTCTATAAAACCATGCTAGTGCTATGAAGCCGACGTATACAGACTAGCTAGGGGCCTACGCGCATTAGCCGAATGCCCCGATGCCTCGCCTGACAGCGGTGCCATTCCGTGGTCTGTTTAGCCAATAAAACCGTTATCACTAGGTGTTATGTTCTCAATGAGTTAAACGGCAAATTTACCCACCGTTCATAACCCCACAGACTGCGCCACCGGAGTTGG	9976;:A&+;I(I77759:3859.077)I2)I577887::3;684274>76&+:I)I98<:>8:3'H52(I2'I9:&*8I4868'I63;)I97469;=(I95(I8(I(I58'F585=&-I5;(I)I/&+:I'H8(I;565B&2(I9>)I935(I389'H5735*I(2I8(I8&-I'0I9'/I3(I9)I5:3(I',=I8;837?9;;;*I7'F(I78(I&E	N [...]
 simulated.877	0	1	914	255	40M1I55M1I130M	*	0	0	CATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGTATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGTCCTTTAATCCCTAGCGGCGGGTGTAGCGGGTCGACTAGGCACCAGGTCAGCAACCTGACTAGAAGCGGGGTCAAGCGTGTTTAGGCTGGGCATTAGCTGCGTACATCGGTTTGCACTGTGGCTGGATGTC	;:9696799I at -'H'9=;7I/'G'98I2(7;I(8;34889'4;97;7;18978I(:0>844I(84;:39576787I'7I.'78I)7I(I1(;9386'I(I.&I(9I0'8859I(:I.';977:6I1(>795:84I':8I(,I'47<96I(I(6868:94H':8I9+&97I(<>877I0'2I(92I-&18G'<967<13878<92I'I/'1366825I [...]
 simulated.878	0	1	7564	255	62M1I155M1I4M	*	0	0	TGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTAGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAAACC	7G'8G'7I)I'419I*877I(:7I(4I(I(5I(6576794:;9I(<9868777H'3689I(3%I'I(654<979;865I)I/'7I)89I(3I0'G';<389<374;2I(776I)37I/'=<6=6I.';66I'86H'8799<4I(G'H':7I(64I)F&9;99:G'45:I(9645;9I(I'I';;6I'6727:?:H'I(H'98I/'0:8I=,';H'I.'I,& [...]
-simulated.879	0	1	7293	255	17M1I68M1I2M1I27M1D29M1D72M	*	0	0	AACATAGTTATTAGCCCTATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTCGTACAAAATATCCGCCATGCCCTCGTAGCCTGTGTGAGTGCGAGATGCCCACCATCAAGCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCC	I'96436H':I'?/I-&&677I)3;6I(I.'<3I/'407I)5756I(7753I(;48:7584I)79<7:=686I0'4;C<8I'8565(66&:I;+&668I'6I'47>I2(3=<98:I(C788:2917<53<8887I/'2F'/;3I)6I4)<98387319H'I'8;H'I(538765I,&I.&88545:=I(>5I)<I.&F&I'48I(I(53846 [...]
-simulated.880	16	1	6455	255	62M1I35M1I43M1D45M	*	0	0	CAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTAGAAATCGATCTAACTGATAGTATGAACGCGTAGTTCGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAA	49:(I;6'G785'I;73833<:(I><87)I98'I(I6;8;<8978;769(I8::'I232:66+6&-I9:47749'F8:5=>977786(I66659>9(I)9(I:?:79:&.I<:+I)I2'H8'G=645'H9:59&)1II'0I1D459<995'G'G'H8'I;)I=76?:/67(I7394=92(I86>5)I	NM:i:3	MD:Z:140^T45	oR:Z:1	oH:i:1	oP:i:6454	oS:A:R	XE:i:3	XS:i: [...]
+simulated.879	0	1	7293	255	17M1I68M1I2M1I27M1D29M1D72M	*	0	0	AACATAGTTATTAGCCCTATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTCGTACAAAATATCCGCCATGCCCTCGTAGCCTGTGTGAGTGCGAGATGCCCACCATCAAGCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCC	I'96436H':I'?/I-&&677I)3;6I(I.'<3I/'407I)5756I(7753I(;48:7584I)79<7:=686I0'4;C<8I'8565(66&:I;+&668I'6I'47>I2(3=<98:I(C788:2917<53<8887I/'2F'/;3I)6I4)<98387319H'I'8;H'I(538765I,&I.&88545:=I(>5I)<I.&F&I'48I(I(53846 [...]
+simulated.880	16	1	6455	255	62M1I35M1I43M1D45M	*	0	0	CAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTAGAAATCGATCTAACTGATAGTATGAACGCGTAGTTCGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAA	49:(I;6'G785'I;73833<:(I><87)I98'I(I6;8;<8978;769(I8::'I232:66+6&-I9:47749'F8:5=>977786(I66659>9(I)9(I:?:79:&.I<:+I)I2'H8'G=645'H9:59&)1II'0I1D459<995'G'G'H8'I;)I=76?:/67(I7394=92(I86>5)I	NM:i:3	MD:Z:140T45	oR:Z:1	oH:i:1	oP:i:6454	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.881	16	1	1979	255	217M	*	0	0	TCAACAATCGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGT	49)I7'I6(,I(1I686:7'H7547)I9(I23;7<&)1II97(I5:49:(I86;53:;8<737'H359C6(1I765)I7(I'0I(I676:5',>I6'I7;6(I7(I69335)I4756(2I:25'I5&,I569)I<*I177<98766844(I='/I)I977&-I(I83)I:6'I(I'G&+:I4(I29'I'0I(I7799(I>81=;8(I54'I6=626<	NM:i:1	MD:Z:8G208 [...]
 simulated.882	16	1	8107	255	144M1I5M1I66M	*	0	0	GAATTCTGAATGTTCCGTGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCTAAGGTCGATGTCCACTCTCCTGAAGTATGCAGATAATTGGCCCGGTCGCGCCATAAGAAGCGGGACGCCGCC	7'H'H6<9'I77'G'I9586(I4976;29;83;97'I;8789;758>6&*7I9:7<(I&.I(I48(I56>'I7*I'/I3874)I5:<58'0I:9:5)I'I53'H2;57<186(I8'H8='I37<8::'/I(I9:(I96995'F6''I)I7'39838(I6:6;5(I96(I529690:776'I'I*I(1I(I:7859'H64*I7)I=8'1I<86*I5(I	NM:i:2	M [...]
-simulated.883	0	1	561	255	16M1I50M1I19M1D116M1I8M	*	0	0	CTTAGTATCTATTTCTACAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACTAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGACATGGTTA	7I'8993:767I/'97(855I0'42656=7I'6575;6:I1(;8I0'8H';896<69:I'2<:367:'7I)68I'7>I(947H'469II7-(G':75I0'5:;8H'I(3I0'7:<6878:=8H'7;8:7894766I'4:7743562I'963I(79>G':;I.'1I*44I(=9=-84<<537I(4927F&26I'197?9G'I)9'855I)I(5	NM:i:4	MD: [...]
+simulated.883	0	1	561	255	16M1I50M1I19M1D116M1I8M	*	0	0	CTTAGTATCTATTTCTACAGCCCACTCACGAATACTGTCTTTCTCCCACCTATACATGAAGTCATACTAGGTACCTGTTCGACCAGACCCCCGGCGTCCCTAGTAAGGATTTGCACAGACTCAATCTAGTCACGTCCGCTAGCATCGGAGAGGCGACCATAAATGGACTTACTGTCATCGCGGCGTAGGATAATCTACGGTTGACATGGTTA	7I'8993:767I/'97(855I0'42656=7I'6575;6:I1(;8I0'8H';896<69:I'2<:367:'7I)68I'7>I(947H'469II7-(G':75I0'5:;8H'I(3I0'7:<6878:=8H'7;8:7894766I'4:7743562I'963I(79>G':;I.'1I*44I(=9=-84<<537I(4927F&26I'197?9G'I)9'855I)I(5	NM:i:4	MD: [...]
 simulated.884	16	1	822	255	20M1I190M	*	0	0	GCGAGCAAGCTACACATGATACTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGTCCCTCAATGGCCCTGATGCCTTTAATCCCTAGCGGCGGGTG	68;77:+I76665:637:7:*48;)I97888643;9'H5'I'F83(I48;'H1'I6(I'/I'H458716'I(I6459:'H649',=I;(I56<1677;59<6&*7I'I145;&-I'I7;&,I65(I8878:7;75.<=866296<'H643836'I:437;68;6855)I5'/I58)I8(I'/I7;73:)I'/I'G<'0I7475'I2'0I76	NM:i:1	MD:Z:210	oR:Z:1	oH [...]
 simulated.885	0	1	3503	255	29M1I160M	*	0	0	CGGGCAAGCCTCTCAGTGCCTAAAGAAGTACGGTTGCCTGGGCCGTCACACCCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCT	7I.'7I)6I(=7775464I(6I/'7I*73&5I'I(7I)5I.&I(69:7:5I:+&954I-&I(I)7<I(87652AG'I*I(I(68F'66I0'65::I(I(I(G'95948:8I.'7I(:7H'57I(3I<,'7646:9G'9498E&26I)49:6585I(8=6I(5I(I9*&:8I)8I(85:G'I-&I;+&3:4	NM:i:1	MD:Z:189	oR:Z:1	oH:i:1	oP:i:3502	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.886	0	1	1964	255	96M1D116M	*	0	0	AGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGT	2I<,'26I)85997:;7H'7I)7I-&I0':48:6H'4799I(8I(7;8:5II2*&97H'08>:2I(76:7;7758:65I*689>7I.&379G'>I(I+I(8;51:ID.(7I(956I'4I(=785:I(2503I.&632I)5I1'7:7I'9I(=9896448::50I(5I.&I(558I/'I)53I'92G'F'I'I=,'4I)75I(I.&H'98978	NM:i:1	MD:Z:96^C116	oR: [...]
-simulated.887	16	1	4221	255	12M1I133M1D65M1I1M	*	0	0	AGAGAGAGTCGACGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTACA	674:987856 at 2,3'H'.I3'/I(I'H'I6.37588996:7164*I(1I66(I4663(I=(I(I:7'0I75&,<I5689=9789(I'/I(2I716*I8628*I'/I25168569383(I6'H(I<;:(I:(I>(I'I5;;9(I5<8D<2:5<5'F=:86'H579'0I0798380;8678899<89&*1II(I713;4285(I;>46)I(IC65	NM:i:3	MD:Z [...]
+simulated.886	0	1	1964	255	96M1D116M	*	0	0	AGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTGGGGACCTCAATTTGGTACGT	2I<,'26I)85997:;7H'7I)7I-&I0':48:6H'4799I(8I(7;8:5II2*&97H'08>:2I(76:7;7758:65I*689>7I.&379G'>I(I+I(8;51:ID.(7I(956I'4I(=785:I(2503I.&632I)5I1'7:7I'9I(=9896448::50I(5I.&I(558I/'I)53I'92G'F'I'I=,'4I)75I(I.&H'98978	NM:i:1	MD:Z:96C116	oR:Z [...]
+simulated.887	16	1	4221	255	12M1I133M1D65M1I1M	*	0	0	AGAGAGAGTCGACGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGGACTAGCGCTCCTTTAAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTACA	674:987856 at 2,3'H'.I3'/I(I'H'I6.37588996:7164*I(1I66(I4663(I=(I(I:7'0I75&,<I5689=9789(I'/I(2I716*I8628*I'/I25168569383(I6'H(I<;:(I:(I>(I'I5;;9(I5<8D<2:5<5'F=:86'H579'0I0798380;8678899<89&*1II(I713;4285(I;>46)I(IC65	NM:i:3	MD:Z [...]
 simulated.888	16	1	2182	255	229M	*	0	0	TATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCCTTTTCTTTAAGATTAACGTCAAAAGTCTTCTACCCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGC	69(I55'H43:;0)I559'.I(I38&).9II<79:&*8I39=8(I<9<5;<;9<=<6969(I74'0I66;6'H4799688;@3=6:6(I'I687'0I:(I9<66:62(I?5<8948)I3875(I9'I&*9I8'0I'H98'G(I::5.',<I7:9(I9<8'0I:<(3I7)I:97:9878(I8)I;:37332:<55(I;468:=49:879&*2II57(I'/I(I8 [...]
-simulated.889	0	1	5861	255	3M1I3M1I19M1D75M1I88M	*	0	0	CATCGAGACGTCGTTCGTTGCCACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGTAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTT	975-6=5%@77>8I(55G'4I'69I(9I,94I(I-&5:I-&4789H'7688661I/'I)I8*&6AI1'677I<,'7I(I(I(I'9:6;52<5<I(;243I(;'I(7I)4I(9I.'57I(I(34:797I(751995:/I.'0H'I)8I0'45?175:I at -';I0'8II9.)&8557846286;;I(I(74I*	NM:i:4	MD:Z:25^A163	oR:Z:1	oH:i:1	oP:i:5860	oS:A:F	XE [...]
+simulated.889	0	1	5861	255	3M1I3M1I19M1D75M1I88M	*	0	0	CATCGAGACGTCGTTCGTTGCCACTTGAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGTAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTT	975-6=5%@77>8I(55G'4I'69I(9I,94I(I-&5:I-&4789H'7688661I/'I)I8*&6AI1'677I<,'7I(I(I(I'9:6;52<5<I(;243I(;'I(7I)4I(9I.'57I(I(34:797I(751995:/I.'0H'I)8I0'45?175:I at -';I0'8II9.)&8557846286;;I(I(74I*	NM:i:4	MD:Z:25A163	oR:Z:1	oH:i:1	oP:i:5860	oS:A:F	XE: [...]
 simulated.890	0	1	5622	255	23M1I36M1I39M1I72M	*	0	0	GTCTGCTGACTACCAGTATTGCGTACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGTCTTAGATTAGGTTACCGCCGCTTTCAAACTCATTTGTATAGCCGGCAAGCAGCCGTATCAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTG	:;7::9:;>767I(6766I(578&;93I-&74I(67;4I(5<9I(487G':7I(I8*&;7%4I(6:8I(3G'I(8I'9I)4>I1'5I.&89=8I.&839;*9I'H'3E&5945I(93097I(875E&8;4;99II3+'F'<7I'7:664H'I(665I(<;85I(8:I)677;?	NM:i:3	MD:Z:170	oR:Z:1	oH:i:1	oP:i:5621	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.891	0	2	24	255	174M1I22M1I13M	*	0	0	GGACTCAGCGGCCGTTTGCGTATATAGGAATAGCAGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACGACTTACCGTTAAGAGCATCGTTACGTCCTGGTTTGT	I)1957834I(H':I-&99794:4<4I'I(<:747I/'43I(7697I(8447:667<I(78::58:99I(7G'I(737I)G';83;<97:58F&;I0'77H'F'I.'89:6:;45I4)638:?9H'9I3(7I(983;3I(I*47I<+&E&6;5I(I1(I*G'<7I'6I0'H'99&<9I(8I*:I)G'876:777.F'%38:I(7I)I0'7:	NM:i:2	MD:Z:209	oR:Z:2 [...]
-simulated.892	16	1	8510	255	67M1I25M1I104M1D10M	*	0	0	ACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCACTCAGGGCTTTCGGTCCGCTCTTAGGTCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTAAAGGATTG	;98)I47(I6'H89'H:&.I3375)I4)I589:589'I+I;99<6)I(I&*1II6897&*8I89)I6(;9:'/I4&.I:(I='H84;3)I;(I&6<5)I4(I79:(.BI'0I(I:687;&+9I5<54788'0I5::9635476;67(I7(I99<)I7'I<36&-I5'I9(I:2)I892)I&F(I<64&+;I(I74'0ID(3I'H9(I8	NM:i:3	MD:Z:196^T10	 [...]
-simulated.893	0	2	129	255	47M1I57M1D91M	*	0	0	CCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTCGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACA	I':<848587I/'4554>7I*5I0'9I)77954I'I(93I;+&I(3?(7F'I2(I(I(83I(:I/'I(4899I(6I';I)H'5868=:33I)4;5I(8I(I-&3;I6)I(7G'=I)I(8?65:I/'I(:95<>5538<66:7I)9;I'I/':58 at I(:7I)9;I(4759;04747567<855I(;56<29::9659	NM:i:2	MD:Z:104^C91	oR:Z:2	oH:i:1	oP:i:128	oS:A:F	XE [...]
+simulated.892	16	1	8510	255	67M1I25M1I104M1D10M	*	0	0	ACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCACTCAGGGCTTTCGGTCCGCTCTTAGGTCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTAAAGGATTG	;98)I47(I6'H89'H:&.I3375)I4)I589:589'I+I;99<6)I(I&*1II6897&*8I89)I6(;9:'/I4&.I:(I='H84;3)I;(I&6<5)I4(I79:(.BI'0I(I:687;&+9I5<54788'0I5::9635476;67(I7(I99<)I7'I<36&-I5'I9(I:2)I892)I&F(I<64&+;I(I74'0ID(3I'H9(I8	NM:i:3	MD:Z:196T10	o [...]
+simulated.893	0	2	129	255	47M1I57M1D91M	*	0	0	CCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTCGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGCACA	I':<848587I/'4554>7I*5I0'9I)77954I'I(93I;+&I(3?(7F'I2(I(I(83I(:I/'I(4899I(6I';I)H'5868=:33I)4;5I(8I(I-&3;I6)I(7G'=I)I(8?65:I/'I(:95<>5538<66:7I)9;I'I/':58 at I(:7I)9;I(4759;04747567<855I(;56<29::9659	NM:i:2	MD:Z:104C91	oR:Z:2	oH:i:1	oP:i:128	oS:A:F	XE: [...]
 simulated.894	0	1	5931	255	171M	*	0	0	AAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCC	I>,'8I'I(I(I)899497396H'3:83I':I(7H':I(5I1(85F'I)787:6:I(:<558:83I2(3I(I(:I/'<978679I:+&4I1(:II;/)&47947<6977:6H'I(<<I(668I0'47<:81946596716I(9:6537I0'=G'2478:89I(;I)995I(	NM:i:0	MD:Z:171	oR:Z:1	oH:i:1	oP:i:5930	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.895	0	1	4770	255	47M1D47M1D95M	*	0	0	CCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGA	II1*&=9<=I(72:6I(;96I:+&2I(838F'96G'F';8I)I-&69I,;0=I.'I(4I(II3+';4843I):I'I(8;H';5I(79I):66;@I+8:I(48:37755747I(2I0'868H';ID/(<62?6I'37I(I(24I(I'96<8866I(:87H'G';7786545;9<7I)4I':;:7I(6785	NM:i:2	MD:Z:47^A47^T95	oR:Z:1	oH:i:1	oP:i:4769	oS:A:F	XE:i:2	XS:i [...]
-simulated.896	0	1	8502	255	111M1D90M	*	0	0	GCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGC	78<87E&:784I(>9I(:I'38I(6I1(7<32I*6G'96:84;1I(G'7;033D&I)IH0)%777;I<,'3:I(7A48I0';I/'6I(4I'6:64G'9E&6;3I):H'8:9I6*I2(F&::385I:+&6269:98I1(68838887669<6I(9G'3=7I(6I(95:I3(8I(5I(89I(6:3I*F'I)968IB.(H'6;7	NM:i:1	MD:Z:111^A90	oR:Z:1	oH:i:1	oP:i:8501	o [...]
-simulated.897	0	1	7231	255	28M1I48M1D130M	*	0	0	AAGCATTCGGAAGTCAAGTCATATATGACGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGC	I'868I'9I(I(668I(9=9:4458;77&8IA-'46I)8I(9689785;I(G'85I)68I>,'I)7<5::I(5G'84I,<4:I(758I'I/'7:I.&;96I)>198I(9698I(.6448565I(9=<<5::96I/'>;:6>I(9379587I:+&837H'6I(<47I0'47@>:=G'I(<26;4467;796748:I0'6I(949I(85	NM:i:2	MD:Z:76^C130	oR:Z:1	o [...]
-simulated.898	16	1	3688	255	40M1I37M1D10M1D85M1I33M	*	0	0	AGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACTAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAATTGAAACTCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGACGAACTTCAATCAGCTGAATGGTCACGAGAAAAA	678695'G'HA65(I677::29(I96(I5887(I(I'H98%&.I56'G'1I'0I'F7(I67'0I:758<67=:(3I27,I(I4&.I49D;277;67'I6(I6878&.I47'H(I797(I9;7908:77::3493=;276:'0I*I4963(I577'F'/I(I8)I;;<467:69)9'I:'I7'I<8:;653'I8'H:;68695',6II	NM:i:4	MD:Z:77^A10 [...]
-simulated.899	0	1	6673	255	42M1I2M1D65M1D51M1I43M	*	0	0	TGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGTCACCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACACTACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACC	97;:I)I'6689;45:48:58I'6I(I(59766I(<956:I(&9<I7*8I-&657I/'8II3+'867I(I(;4965I'I'3637I(89I'375I=,';=4I(9I(874I)DH'I(857H'H'7I:+&I'7I(4686F'4;=6=7F'7<226F'<699:5:1'3742I)G'8I2(;I(896796I(570G':7I-&7858I(I(I(	NM:i:4	MD:Z:44^C65^C94	o [...]
+simulated.895	0	1	4770	255	47M1D47M1D95M	*	0	0	CCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGA	II1*&=9<=I(72:6I(;96I:+&2I(838F'96G'F';8I)I-&69I,;0=I.'I(4I(II3+';4843I):I'I(8;H';5I(79I):66;@I+8:I(48:37755747I(2I0'868H';ID/(<62?6I'37I(I(24I(I'96<8866I(:87H'G';7786545;9<7I)4I':;:7I(6785	NM:i:2	MD:Z:47A47T95	oR:Z:1	oH:i:1	oP:i:4769	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.896	0	1	8502	255	111M1D90M	*	0	0	GCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGC	78<87E&:784I(>9I(:I'38I(6I1(7<32I*6G'96:84;1I(G'7;033D&I)IH0)%777;I<,'3:I(7A48I0';I/'6I(4I'6:64G'9E&6;3I):H'8:9I6*I2(F&::385I:+&6269:98I1(68838887669<6I(9G'3=7I(6I(95:I3(8I(5I(89I(6:3I*F'I)968IB.(H'6;7	NM:i:1	MD:Z:111A90	oR:Z:1	oH:i:1	oP:i:8501	oS [...]
+simulated.897	0	1	7231	255	28M1I48M1D130M	*	0	0	AAGCATTCGGAAGTCAAGTCATATATGACGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGC	I'868I'9I(I(668I(9=9:4458;77&8IA-'46I)8I(9689785;I(G'85I)68I>,'I)7<5::I(5G'84I,<4:I(758I'I/'7:I.&;96I)>198I(9698I(.6448565I(9=<<5::96I/'>;:6>I(9379587I:+&837H'6I(<47I0'47@>:=G'I(<26;4467;796748:I0'6I(949I(85	NM:i:2	MD:Z:76C130	oR:Z:1	oH [...]
+simulated.898	16	1	3688	255	40M1I37M1D10M1D85M1I33M	*	0	0	AGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACTAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAATTGAAACTCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGACGAACTTCAATCAGCTGAATGGTCACGAGAAAAA	678695'G'HA65(I677::29(I96(I5887(I(I'H98%&.I56'G'1I'0I'F7(I67'0I:758<67=:(3I27,I(I4&.I49D;277;67'I6(I6878&.I47'H(I797(I9;7908:77::3493=;276:'0I*I4963(I577'F'/I(I8)I;;<467:69)9'I:'I7'I<8:;653'I8'H:;68695',6II	NM:i:4	MD:Z:77A10C [...]
+simulated.899	0	1	6673	255	42M1I2M1D65M1D51M1I43M	*	0	0	TGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGTCACCCTAAAGCTGGGCTTTTTCTGAATTCATCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACACTACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACC	97;:I)I'6689;45:48:58I'6I(I(59766I(<956:I(&9<I7*8I-&657I/'8II3+'867I(I(;4965I'I'3637I(89I'375I=,';=4I(9I(874I)DH'I(857H'H'7I:+&I'7I(4686F'4;=6=7F'7<226F'<699:5:1'3742I)G'8I2(;I(896796I(570G':7I-&7858I(I(I(	NM:i:4	MD:Z:44C65C94	oR: [...]
 simulated.900	16	1	8099	255	26M1I138M1I24M	*	0	0	CGTGCTCGGAATTCTGAATGTTCCGTAGTCCGACTCGTATGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCATGTAACACAGCCCACACGGTTATGGACGCTGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCCGACTCTCCTGAAGTATGCAGATAAT	85:9855)I(I(I;98'F:8(I'H<4&:8(I966887677768;(I<<497687729&*8I<277)I(2I(I::(I;81'H8&F(1I:932(I735;<'1I9956(I'H31(I84;26:15'G7)I<2'I565487(2I(I;8(I=4687(I4(I(I4789;8(I%5656;(I:8'I5498<79;95(I3	NM:i:2	MD:Z:188	oR:Z:1	oH:i:1	oP:i:8098	oS:A:R	XE:i:2	XS:i:0	XI:i:0
-simulated.901	16	1	7790	255	10M1D146M1I17M	*	0	0	GATCGATTACGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTCGTAGTAGTGTATAACTC	;57?:='H43,I778<&*2II59*I'/I9689675)I74:64;24@'I7=:(1I7;'/I(2I:=:(I7)I489;3::(I'.I8)I)I4:737<58=&*9I8)I8><(I'I78793957'0I49(I;'H7(I84'H967(I7:497.466'I54(I2'58:7;55:58:8'H85;	NM:i:2	MD:Z:10^G163	oR:Z:1	oH:i:1	oP:i:7789	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.901	16	1	7790	255	10M1D146M1I17M	*	0	0	GATCGATTACGGATAGCCCCCTGCCTTTAGCTGCGAATCTCAGTATGGCGCGGGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTCGTAGTAGTGTATAACTC	;57?:='H43,I778<&*2II59*I'/I9689675)I74:64;24@'I7=:(1I7;'/I(2I:=:(I7)I489;3::(I'.I8)I)I4:737<58=&*9I8)I8><(I'I78793957'0I49(I;'H7(I84'H967(I7:497.466'I54(I2'58:7;55:58:8'H85;	NM:i:2	MD:Z:10G163	oR:Z:1	oH:i:1	oP:i:7789	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.902	0	1	1807	255	189M1I14M	*	0	0	AGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATACAGGTGTACCTGGA	358716=::5;:I'67684I(97I/'I0'H'86;I;+&58;5I(:F'I)I):G'549I*9879I)I(77274<73579I(I(775G'I.&:I(<;<I(;5688I(48I'I(877I'9<8I(69;7:I(9I(3E&16=I(855I'48537766I)988<I at -'7:I(9545::@?E&8G'8I.'I.&499(47I(466:G'8H'7	NM:i:1	MD:Z:203	oR:Z:1	oH:i:1	oP:i:1806 [...]
-simulated.903	16	1	7466	255	1M1I60M1D79M1D7M1I37M	*	0	0	CACCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGATGATAGTCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTC	57+I'.I::65578'I3:'H5'0I(I'G44'I)I78489:847'/I8892'F(1I37&-I'I,I96(I)I'G&F1=57;2(I7:(I)I9687'I66=67(I6(I5(I)I585'H4:7(I74(I0'I(I5'I5:8:55;:26B89<<56':8'H5196'G7(I)I6;5>78:83:8)I'0I7)I466	NM:i:4	MD:Z:61^T79^A44	oR:Z:1	oH:i:1	oP:i:7463	oS:A:R	XE:i:4	X [...]
-simulated.904	0	1	5380	255	80M1I51M1D58M	*	0	0	ACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACTAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTG	6787;I)84I)6<7:667I(7<8I.&665:7H'6G'5I.'7I(;<II3+'5:89;I(;8<68688I*;9I(;193<7I'1&:7898::8D&I)364I(6I)545;35I(H'7G'6=6<6I(63461647I(9I,8;I)54I,&I0';728:H':5>I-&;;H'H'I0'9I(66:5I'9I)896I'6788:	NM:i:2	MD:Z:131^A58	oR:Z:1	oH:i:1	oP:i:5379	oS:A:F	XE:i:2	XS:i: [...]
-simulated.905	16	1	3895	255	17M1I41M1I118M1D16M	*	0	0	ATGATCGTGCCGGTAATCGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCGATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTGGATACGGGATCGG	742:9:83='G(I<)I;)637786:7569(2I967=*I4<;9)I56&.I79&E&.I6:9%=95788)I'H5<65::659<788'/I8&E8;(I68>:'G4::7769)I5'I37(I9477769(2I',>I9'I/96786568'H98&-I&*8I788767'.I'G9(I'I'H2=86<955,I'I9;88&.I595(I	NM:i:3	MD:Z:176^T16	oR:Z:1	oH:i:1	oP:i:3894	oS:A [...]
-simulated.906	0	1	8502	255	66M1D125M	*	0	0	GCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGT	>3:34G'6755I(:8E&7I)3:F'8I.&:255I)2I)9=48<;8I(H'7:=39H'I(II1)&6;77I7*37E&94:6I-&8I.&6I)7I+9296G':I';54I)7I(458I<,&I1'I)876:7I>,'6658636I/'7978=:88:6819H'4F'843I(9H'648I.&8I)9I'::I(948H'I'I*67	NM:i:1	MD:Z:66^A125	oR:Z:1	oH:i:1	oP:i:8501	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.907	16	1	7614	255	93M1D29M1I28M1D9M1I35M	*	0	0	GCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGACCAGAATGCCTTCACTCAAGCAGGTCGAGTGAAGGTTATAGGCTGATCTGGCCGGCATTCTCGGGGACAACCCAACCTAGTGGATCGATTACGGGATAGCCC	@;8)I885=*I6'G(I99949349586)I'/I7(I5;'I6&.I&E;9:88887788(I548(I8;&-I6;7:7'/I/;5'H6:'H9986:6'ID'H75(I9;'I'G4268<(I7=8)I6668&87'G*I(I367&E75=3:<<'I'H(I56+I9<4',>I&;(I'0I'I'F2569'I88::8'F87&.I4967&.I	NM:i:4	MD:Z:93^A57^T44	oR:Z:1	oH:i:1	oP:i [...]
-simulated.908	0	1	3063	255	26M1D19M1I148M1I3M	*	0	0	TTTGATCTGTGCTTTCCACGGGACAACCCTTGACGTATGTCTTCCTAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTTAT	I/'6099=;446I-&F'7;I/'7<G'I5)I)6736:55446H'I(%I(I)695969?853;6G'884I/'4:85;538I1(II2*&96;4;7477I'36384:9;6H'379I(568?0I'67I)664I)I/'8;I)I'8I'657I3(74I1'G'H'I)I)33IA-'5889I(IH0)%9I';5I.&>84I;+&H'F'29	NM:i:3	MD:Z:26^C170	oR:Z:1	oH:i:1	oP:i:306 [...]
-simulated.909	16	2	97	255	94M1D100M	*	0	0	AAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTAC	'I758(I(I57<78<9>;7'I?(2I87'H(I&-I667<7358&.I9;6;34(I5'0I;)I8389:(I'I4;&,<I(I:87'H(1I(I'I85*I5+I'I6:73'I9'H8(I'G68955943(I76;(I9)I'.I4=&+:I(I8(I>'H(I7:499&-I'H608::954965893(I>5(I&-I9;45,I78(I;9	NM:i:1	MD:Z:94^G100	oR:Z:2	oH:i:1	oP:i:96	oS:A:R	XE:i:1	XS:i [...]
-simulated.910	16	1	8346	255	128M1D98M	*	0	0	ACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAAT	='I5;4'I)I7;(3I43<(I6::9=66(I868)I8;796<676:665:98466(I<9(I<9<(I45573384>9'I7278(I'H68(I59<;@'I:9'I84;5=(I785(I878:8'G'I464:<7'GD&-I699'/I16(I=7'H967;892291=<;9(I7478'G59)I4(I58(I9'.I95>5(I7'H<994678(I(I88968(I'H&*2II63:: [...]
+simulated.903	16	1	7466	255	1M1I60M1D79M1D7M1I37M	*	0	0	CACCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGATGATAGTCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTC	57+I'.I::65578'I3:'H5'0I(I'G44'I)I78489:847'/I8892'F(1I37&-I'I,I96(I)I'G&F1=57;2(I7:(I)I9687'I66=67(I6(I5(I)I585'H4:7(I74(I0'I(I5'I5:8:55;:26B89<<56':8'H5196'G7(I)I6;5>78:83:8)I'0I7)I466	NM:i:4	MD:Z:61T79A44	oR:Z:1	oH:i:1	oP:i:7463	oS:A:R	XE:i:4	XS: [...]
+simulated.904	0	1	5380	255	80M1I51M1D58M	*	0	0	ACTGTCCTGAACTCAGATAAGACGGGTGATGCCAGGTGGGTGGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACTAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTG	6787;I)84I)6<7:667I(7<8I.&665:7H'6G'5I.'7I(;<II3+'5:89;I(;8<68688I*;9I(;193<7I'1&:7898::8D&I)364I(6I)545;35I(H'7G'6=6<6I(63461647I(9I,8;I)54I,&I0';728:H':5>I-&;;H'H'I0'9I(66:5I'9I)896I'6788:	NM:i:2	MD:Z:131A58	oR:Z:1	oH:i:1	oP:i:5379	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.905	16	1	3895	255	17M1I41M1I118M1D16M	*	0	0	ATGATCGTGCCGGTAATCGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCGATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTGGATACGGGATCGG	742:9:83='G(I<)I;)637786:7569(2I967=*I4<;9)I56&.I79&E&.I6:9%=95788)I'H5<65::659<788'/I8&E8;(I68>:'G4::7769)I5'I37(I9477769(2I',>I9'I/96786568'H98&-I&*8I788767'.I'G9(I'I'H2=86<955,I'I9;88&.I595(I	NM:i:3	MD:Z:176T16	oR:Z:1	oH:i:1	oP:i:3894	oS:A: [...]
+simulated.906	0	1	8502	255	66M1D125M	*	0	0	GCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGT	>3:34G'6755I(:8E&7I)3:F'8I.&:255I)2I)9=48<;8I(H'7:=39H'I(II1)&6;77I7*37E&94:6I-&8I.&6I)7I+9296G':I';54I)7I(458I<,&I1'I)876:7I>,'6658636I/'7978=:88:6819H'4F'843I(9H'648I.&8I)9I'::I(948H'I'I*67	NM:i:1	MD:Z:66A125	oR:Z:1	oH:i:1	oP:i:8501	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.907	16	1	7614	255	93M1D29M1I28M1D9M1I35M	*	0	0	GCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGACCAGAATGCCTTCACTCAAGCAGGTCGAGTGAAGGTTATAGGCTGATCTGGCCGGCATTCTCGGGGACAACCCAACCTAGTGGATCGATTACGGGATAGCCC	@;8)I885=*I6'G(I99949349586)I'/I7(I5;'I6&.I&E;9:88887788(I548(I8;&-I6;7:7'/I/;5'H6:'H9986:6'ID'H75(I9;'I'G4268<(I7=8)I6668&87'G*I(I367&E75=3:<<'I'H(I56+I9<4',>I&;(I'0I'I'F2569'I88::8'F87&.I4967&.I	NM:i:4	MD:Z:93A57T44	oR:Z:1	oH:i:1	oP:i:7 [...]
+simulated.908	0	1	3063	255	26M1D19M1I148M1I3M	*	0	0	TTTGATCTGTGCTTTCCACGGGACAACCCTTGACGTATGTCTTCCTAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTTAT	I/'6099=;446I-&F'7;I/'7<G'I5)I)6736:55446H'I(%I(I)695969?853;6G'884I/'4:85;538I1(II2*&96;4;7477I'36384:9;6H'379I(568?0I'67I)664I)I/'8;I)I'8I'657I3(74I1'G'H'I)I)33IA-'5889I(IH0)%9I';5I.&>84I;+&H'F'29	NM:i:3	MD:Z:26C170	oR:Z:1	oH:i:1	oP:i:3062 [...]
+simulated.909	16	2	97	255	94M1D100M	*	0	0	AAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTAC	'I758(I(I57<78<9>;7'I?(2I87'H(I&-I667<7358&.I9;6;34(I5'0I;)I8389:(I'I4;&,<I(I:87'H(1I(I'I85*I5+I'I6:73'I9'H8(I'G68955943(I76;(I9)I'.I4=&+:I(I8(I>'H(I7:499&-I'H608::954965893(I>5(I&-I9;45,I78(I;9	NM:i:1	MD:Z:94G100	oR:Z:2	oH:i:1	oP:i:96	oS:A:R	XE:i:1	XS:i: [...]
+simulated.910	16	1	8346	255	128M1D98M	*	0	0	ACCGTGTTAATCTTTGTCGGTCACGACGGCTGCCATCTCACGCGCGCACGTCTCCGTCCACGAAGTATGCATCATTGTCGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAAT	='I5;4'I)I7;(3I43<(I6::9=66(I868)I8;796<676:665:98466(I<9(I<9<(I45573384>9'I7278(I'H68(I59<;@'I:9'I84;5=(I785(I878:8'G'I464:<7'GD&-I699'/I16(I=7'H967;892291=<;9(I7478'G59)I4(I58(I9'.I95>5(I7'H<994678(I(I88968(I'H&*2II63:: [...]
 simulated.911	16	1	314	255	98M1I101M	*	0	0	CGACAATGCCCGATCTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATACGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAG	8<87(I:6'1I8:5>276+I468&E859939'-?I64;>=(I&.I787(I1(I<'I7'0I78=56716&*2II8)I(I8388'0I(2I=635:6<9=4'(I)I'0I595753<:4(1I(I:89(I64)I8:&-I'G9886957)I81:(I>;8938(I77=757268'G<;(I3'I(I'H86&+;I593A48;'I39)I:	NM:i:1	MD:Z:199	oR:Z:1	oH:i:1	oP:i:313	oS:A:R	X [...]
 simulated.912	16	1	6037	255	211M	*	0	0	GACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACG	739:2*I'G58(I:5;(1I76767:><98:6637'I747348'0I9'G8453575'H8(I5>;'H5844&*2II4&*7I496'I1;2'/I'I:5864979;95;(I7&,<I'0I;88;9:=(I8>40(I96'.I757&.I474:588844478<28975(I263(I8=4'I07'G7'.I75464:(I6=676:6949:794'/I5::(I82	NM:i:0	MD:Z:211	oR:Z:1	oH:i:1 [...]
-simulated.913	16	1	74	255	2M1I39M1D123M1D31M	*	0	0	AGACTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGTAGCCGGCACCGGCCCGGCTAACAGC	:6&6(I7(I6:89'I7&.I'H64889'I>757'I8<5;:<(I)6I8;:25'I88953578(I;84:'0I2484669'H(I88'1I595565(I'.I;6'I477<7:)I8=67)I7(I85'G)I55'H'I6(I3=<87:37;(I6'I7'I(I5:6(I(I5774:)I',5II3<8)I'I5:'I'G'/I(I70)I57=9	NM:i:3	MD:Z:41^C123^G31	oR:Z:1	oH:i:1	oP:i:73	o [...]
+simulated.913	16	1	74	255	2M1I39M1D123M1D31M	*	0	0	AGACTTGCCGCTGAATGGGAACATCGCCGACGTTAGAGATGGCCCAGACAGGCATATCGTAAGTGATTTCGTAGCGAACCTACCCAGCTCTAAGGGTCGGTATGATCCAGTAGGTCCACGGAATCAAGGCGGCTCATGCGTGGATTGCCTTGACTTCCGTAGCTTGGGGGTAGCCGGCACCGGCCCGGCTAACAGC	:6&6(I7(I6:89'I7&.I'H64889'I>757'I8<5;:<(I)6I8;:25'I88953578(I;84:'0I2484669'H(I88'1I595565(I'.I;6'I477<7:)I8=67)I7(I85'G)I55'H'I6(I3=<87:37;(I6'I7'I(I5:6(I(I5774:)I',5II3<8)I'I5:'I'G'/I(I70)I57=9	NM:i:3	MD:Z:41C123G31	oR:Z:1	oH:i:1	oP:i:73	oS: [...]
 simulated.914	0	1	6267	255	38M1I13M1I172M	*	0	0	TCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTACAGTAGACCTGTGTCTCGGAGACAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTG	8<6I.'7H'2:I9+&8H'I0';55659I(B<882;;B9'09:487 at I(=>7<&8:<I(8765I0'962747F&I(I1(I(67I(99=<II5,'I(<3I(I(I)2640=;7I(6;2I2(2I(I/'I'98H'7579495I'39534991:I(I-&I'76;>I.':5;I(7:I(:94I at -'6=I'8:I(I)E&797G'48I(426I(=5265883I(;435 [...]
-simulated.915	0	1	6851	255	187M1D20M	*	0	0	ACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGAACGTGCACGACTCACC	:2667I(7>6I(7<I.'8953I(I(I1(;:G'G'9I';I)74H'472I(;6E&9I)I)931879I(757I0'I1'I);I/'76I.&:79877I(2959741I(6:I0'6I(:78;87644I(:I';3:;I*H';:6::488I'2:996I/'6=F&978I)7I)<I'76:35I'F&5I.'G'2>I(64I6*I(56568889=65:8I(	NM:i:1	MD:Z:187^G20	oR:Z:1	oH:i:1 [...]
-simulated.916	0	1	2950	255	132M1D35M	*	0	0	CCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGACAACCCCTTGACGTATGTCTTCCAATTATCGT	I(56I(4=88I(4I(729?:34H'7I(5>:;7586I)941>76I1'3I.&:F&4I(I)I(39<I(8I(=6;7;7<?;9942I);8:77I(I*H'7I.&68;I(489;3I(8I)I3(84:89<578I0'I(78I,37I(I=,'H'9<>:752745I'I)I(I)8838:	NM:i:1	MD:Z:132^G35	oR:Z:1	oH:i:1	oP:i:2949	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.915	0	1	6851	255	187M1D20M	*	0	0	ACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGGCCCTTCTTTAGTTTCTCGCTAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGTTAGCAGATGCCTAGCAGGGTCTTGACGGTAATAATGCGTGGTTCAAAGGACTTACGGGAACGTGCACGACTCACC	:2667I(7>6I(7<I.'8953I(I(I1(;:G'G'9I';I)74H'472I(;6E&9I)I)931879I(757I0'I1'I);I/'76I.&:79877I(2959741I(6:I0'6I(:78;87644I(:I';3:;I*H';:6::488I'2:996I/'6=F&978I)7I)<I'76:35I'F&5I.'G'2>I(64I6*I(56568889=65:8I(	NM:i:1	MD:Z:187G20	oR:Z:1	oH:i:1	 [...]
+simulated.916	0	1	2950	255	132M1D35M	*	0	0	CCAGAACGATAAGCCAGTCGCTGGCTTCACGCTGTCCTGTCATAAATAAAGCCTAACCTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGACAACCCCTTGACGTATGTCTTCCAATTATCGT	I(56I(4=88I(4I(729?:34H'7I(5>:;7586I)941>76I1'3I.&:F&4I(I)I(39<I(8I(=6;7;7<?;9942I);8:77I(I*H'7I.&68;I(489;3I(8I)I3(84:89<578I0'I(78I,37I(I=,'H'9<>:752745I'I)I(I)8838:	NM:i:1	MD:Z:132G35	oR:Z:1	oH:i:1	oP:i:2949	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.917	0	1	3049	255	12M1I26M1I175M	*	0	0	TCTTATGTCTTCGAATTTGATCTGTGCTTTCCACGGGACTAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCC	<7D&5878:I'5(I(I0'6<1;896;9I/'I(29I-&9:%I(I8*&I(6<;:69;75;I)I(I)I(54<44:549779H'772I0'9:596677I.'II1*&:9388;787F'<7428:686I(6=6I(8732<I*54I(799I(I/'7;I'I(6I'745I,&<9I0'H'I(I(I'46I;+&<345I)II4+'BG';4I1':84I;+&I)9?9I(	NM:i:2	MD:Z: [...]
 simulated.918	0	1	3842	255	192M	*	0	0	TGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAAATGCATGAGTAATTGACTGCGTCGCGCGGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGCCACACAGCTC	7G'I,&I'9I)77:8377644I';I(4I(5;;9785I*6I(675:7<1II8-(%;587572:I'I)8I(64773;880897I1(0;85I(5;88I'19I-&7<I(I0'81:578447I'I)<247;85536591I.&7I(;7H'86;3H'9:87:85I';I(83I(979856>I.'I;+&4G'6::9888:6	NM:i:0	MD:Z:192	oR:Z:1	oH:i:1	oP:i:3841	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.919	0	1	4463	255	94M1D111M	*	0	0	CACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAA	869:I(8<86987;5I(I(I)67:7:I3(0I1(I0'H'7I:+&79>6I);I(=0;4<67884I-&8I(7:G'I*<66:85I'96E&84<29568I,4I(7788=68E&;<516;6G'I'79I(:I.&;=96I*:3756588;66I(I0'586I0'398F'I)3I(528I(77747548I';I0'4I)::>6G'95I(@:743I1(	NM:i:1	MD:Z:94^T111	oR:Z:1	oH:i:1	oP: [...]
-simulated.920	0	2	51	255	8M1I107M1I42M1D19M1D7M	*	0	0	GAATAGCACGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGTCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAGAGCATCGTTCGTCCTGGTTGTCCC	9I(7;6<4&I0'78F&9556I(:9927;7<6I(2=2557849I)8I(F&876I(I':6855;197:I*:I0'96I(H'I/'6896491:I/'<::837I(;I.&5I':956=I(I(*95I9*&I'688I)I0'I'I)>9D&6I.&I(75;2I(9F'7I)B:0;3666<I'86;I)<I(I,87I-&	NM:i:4	MD:Z:157^A19^T7	oR:Z:2	oH:i:1	oP:i:50	oS:A:F	XE:i:4	XS:i:0	XI:i:0
-simulated.921	16	1	762	255	142M1D68M	*	0	0	GCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGA	77?:)I(I8'/I&-I'I:<67&-I5347774&+:I498<8849836649869'0I<69869735<7(I658;<37713756<6(I6:97?>9;>9(I:(I(I=:'I6>8'G9'G4(I'0I(I5;:8:;(I'I86:;8(I664)5I>'H866749;77794&+;I'I698<&-I'H98'/I48'I1;7=694740:58:;96;8(I8>7:2	NM:i:1	MD:Z:142^A68	oR:Z:1	 [...]
+simulated.919	0	1	4463	255	94M1D111M	*	0	0	CACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAA	869:I(8<86987;5I(I(I)67:7:I3(0I1(I0'H'7I:+&79>6I);I(=0;4<67884I-&8I(7:G'I*<66:85I'96E&84<29568I,4I(7788=68E&;<516;6G'I'79I(:I.&;=96I*:3756588;66I(I0'586I0'398F'I)3I(528I(77747548I';I0'4I)::>6G'95I(@:743I1(	NM:i:1	MD:Z:94T111	oR:Z:1	oH:i:1	oP:i [...]
+simulated.920	0	2	51	255	8M1I107M1I42M1D19M1D7M	*	0	0	GAATAGCACGGGCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGTCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAGAGCATCGTTCGTCCTGGTTGTCCC	9I(7;6<4&I0'78F&9556I(:9927;7<6I(2=2557849I)8I(F&876I(I':6855;197:I*:I0'96I(H'I/'6896491:I/'<::837I(;I.&5I':956=I(I(*95I9*&I'688I)I0'I'I)>9D&6I.&I(75;2I(9F'7I)B:0;3666<I'86;I)<I(I,87I-&	NM:i:4	MD:Z:157A19T7	oR:Z:2	oH:i:1	oP:i:50	oS:A:F	XE:i:4	XS:i:0	XI:i:0
+simulated.921	16	1	762	255	142M1D68M	*	0	0	GCATGGTTATTTAAAGGCTATCCCGTGACTACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCCTTCTCAGACCTTCTCTGTTCATAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGA	77?:)I(I8'/I&-I'I:<67&-I5347774&+:I498<8849836649869'0I<69869735<7(I658;<37713756<6(I6:97?>9;>9(I:(I(I=:'I6>8'G9'G4(I'0I(I5;:8:;(I'I86:;8(I664)5I>'H866749;77794&+;I'I698<&-I'H98'/I48'I1;7=694740:58:;96;8(I8>7:2	NM:i:1	MD:Z:142A68	oR:Z:1	o [...]
 simulated.922	0	1	6512	255	206M	*	0	0	ACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACACTAAGATCTGGCAC	79967>I1'9887>76I*79<83;6<B9:G'8=96685I*4E&759859I.&95I(I(5I(9I)9893I(7659II2*&I0'8G'7794662G'I'I'<I(5I(84A93998I(6:<;378I(6886I(I.&7I(489I'I'F&877H'I/'<284989487823I)I*:<5<2:3:1:6::I(7I)I(4648:I'96668E&;96	NM:i:0	MD:Z:206	oR:Z:1	oH:i:1	oP:i:6511	 [...]
-simulated.923	16	1	5898	255	82M1I40M1I79M	*	0	0	AGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGTCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGTAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCAT	9+I8795(I8279767(1I*I&*9I96'0I<;4&*8I9(I)I(I'I88::9:95>'I73;<(I9(I<)I6'G4'/I7:)I(I)85763;(I:542:143'0I6'H(I6'.I:6=6997'- at I8&(1I8%(-7II48/9;548996>'H'I97'H93:(1I5354>6=56579;96'G?5:9;7(2I?'G:8=58<;'G4(I38	NM:i:3	MD:Z:0G200	oR:Z:1	oH:i:1	oP:i [...]
-simulated.924	0	1	8803	255	80M1D104M	*	0	0	ATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGA	778I(I(9;;<36I(37<95995=I(<I)F&8I'II2*&66G'57;9:1I'I1(5H'I1(548I(7<886H';5I(3I0'I,G'677658798I)6I)37I(7673?40;5>96I8*&98I)I'G'I(G';45579=65G'5I'H':7I)3I(696I*I(>:F'=I6)49<20H'<89868999	NM:i:1	MD:Z:80^C104	oR:Z:1	oH:i:1	oP:i:8802	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.925	16	1	8548	255	74M1I89M1D35M	*	0	0	GGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAACGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAG	'G58<9;(I'I&*1II7676',>I7:(I6;67'/I6(1I=)I8'I7:66(I:(I778(I6)I9B9&,<I'0I(I&6;884',<I5815845&-I96;=844423458+I5'H479(I:(I46>'0I8(I;(I8>)I6:9)I(I)I7;7',<I)I6>'0I(I&.ID:'H&.I'1I'H)4I7868797=7&,I6)I>9'F;	NM:i:2	MD:Z:163^G35	oR:Z:1	oH:i:1	oP:i:8547	 [...]
-simulated.926	0	1	3225	255	10M1D81M1D100M1D21M	*	0	0	CCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTCCCGACTAACATCGTGACT	I9*&6733I(IC.(=I(A9I0'5=4I;+&H'845F&7F&I?-':5:G'67667I'G'5I*8I)65I-&87I(8786:5:9447I*5I'I(?I6)8I'H'3616I(60I(I(6;:I0'4;48I;+&4I'68I(I)4=376I;+&I(I(7I0'5134<I(3553698I.&97H'I)=5;87<I(557:6:9I(I,I0';=43H'46;;9;8<26	NM:i:3	MD:Z:1 [...]
-simulated.927	16	1	2128	255	28M1D152M	*	0	0	GGTAAATTGTGAAATTACAATGAACCTTGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCC	(I>&.I(I53;(1I'H8>(I3:(I(I'H)5I4)I17(I'0I)I5:69(I7867=='F82'I?3396(I875'0I'I97%(.8II483:&+:I678;'G25;8583<2876459(I;7'.I4;:=(I34<:7353966496)I'G607(1I9'G5579:58(I8:87;4<(I;627'G8(I	NM:i:1	MD:Z:28^G152	oR:Z:1	oH:i:1	oP:i:2127	oS:A:R	XE:i:1	XS:i:0	XI:i:0
-simulated.928	16	1	4793	255	99M1D2M1D78M1D15M	*	0	0	ATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGCGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTGCCGTGCATTACTG	98'FA8:'I?9(I*I8<'F'.I85'/I867&.I(I9(I&*2II7:87:(I9)I'H:6'I50)I89(I83686(1IA5(I96:6698>4;4(I8'0I678D9*7I5842;'I5<'H(I5:)I(I4306:89'I/84'G'I42957588;555)I2&E4<88'F?16'H5'/I(I'H>948C5'G55755)I917<	NM:i:3	MD:Z:99^G2^G78^T15	oR:Z:1	oH:i:1	oP:i:4792	 [...]
-simulated.929	0	1	7119	255	170M1D34M	*	0	0	GGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTAACATAGTTATTAGCCCATGTTCGACCGGGT	I/'4I)I1(77I)87I(I(>I.&I.&739I'9I)4647I(59H'49974784:3I)I1(7I/'8965I(I(99877747652658846>458I(9I(989I0';957I'479I(:43E&8H'F&648H'5:3938866439I7*&<8G'<I(8678::56H'I(37H'87I5)I(9;60:I'4G'<4I-&=57I)587I'I/'5	NM:i:1	MD:Z:170^T34	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.930	0	1	8457	255	67M1D54M1I46M1I17M	*	0	0	TGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCGAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGTCGTTTTGCGACGCAAAG	38796F'I'586994I'H'I0'58:I-&8;I(58I(668298=9<998:<I)=8::I(:7G'8I)76D5I/'74:;F'3I(86<<249I(G'7<@86I(I(II0)&6538I<,&23I)82:%/I/'3I.&:G'9F'24:8I(7I)4;4H'=H'76>I7*&I1(I(6;<&8<IA-'37677:=I/'5	NM:i:3	MD:Z:67^G117	oR:Z:1	oH:i:1	oP:i:8456	oS:A:F	XE:i:3	XS:i:0	XI:i:0
+simulated.923	16	1	5898	255	82M1I40M1I79M	*	0	0	AGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGTCAGCTCTTACGTAGTCTTTGCCGGATTTCTGAGTGAAAAGTAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCAT	9+I8795(I8279767(1I*I&*9I96'0I<;4&*8I9(I)I(I'I88::9:95>'I73;<(I9(I<)I6'G4'/I7:)I(I)85763;(I:542:143'0I6'H(I6'.I:6=6997'- at I8&(1I8%(-7II48/9;548996>'H'I97'H93:(1I5354>6=56579;96'G?5:9;7(2I?'G:8=58<;'G4(I38	NM:i:3	MD:Z:G200	oR:Z:1	oH:i:1	oP:i: [...]
+simulated.924	0	1	8803	255	80M1D104M	*	0	0	ATGTTAATACGTGAACAGTGCTACAAGCCAATGGAAAAAGATTCATAGCAAGGGCTTAAATGATTACTGTAAGTAATGGGCCAAGTACACGTATTGTTCAGGTCTGCTATCGAGCCCCTAGGAACCGGTTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGA	778I(I(9;;<36I(37<95995=I(<I)F&8I'II2*&66G'57;9:1I'I1(5H'I1(548I(7<886H';5I(3I0'I,G'677658798I)6I)37I(7673?40;5>96I8*&98I)I'G'I(G';45579=65G'5I'H':7I)3I(696I*I(>:F'=I6)49<20H'<89868999	NM:i:1	MD:Z:80C104	oR:Z:1	oH:i:1	oP:i:8802	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.925	16	1	8548	255	74M1I89M1D35M	*	0	0	GGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAACGTGCGTTTTGCGACGCAAAGTAGCACGTACGTAAGTTGCAGGTCCGTGAAACTTGCCGCAATAGTTGGTTGTCGGGGCCAGCCCTTAAAGATTGGGCCCAAGGGCTGCTACTGCCCAGGACAAG	'G58<9;(I'I&*1II7676',>I7:(I6;67'/I6(1I=)I8'I7:66(I:(I778(I6)I9B9&,<I'0I(I&6;884',<I5815845&-I96;=844423458+I5'H479(I:(I46>'0I8(I;(I8>)I6:9)I(I)I7;7',<I)I6>'0I(I&.ID:'H&.I'1I'H)4I7868797=7&,I6)I>9'F;	NM:i:2	MD:Z:163G35	oR:Z:1	oH:i:1	oP:i:8547	o [...]
+simulated.926	0	1	3225	255	10M1D81M1D100M1D21M	*	0	0	CCCCGCTATTAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTCCCGACTAACATCGTGACT	I9*&6733I(IC.(=I(A9I0'5=4I;+&H'845F&7F&I?-':5:G'67667I'G'5I*8I)65I-&87I(8786:5:9447I*5I'I(?I6)8I'H'3616I(60I(I(6;:I0'4;48I;+&4I'68I(I)4=376I;+&I(I(7I0'5134<I(3553698I.&97H'I)=5;87<I(557:6:9I(I,I0';=43H'46;;9;8<26	NM:i:3	MD:Z:1 [...]
+simulated.927	16	1	2128	255	28M1D152M	*	0	0	GGTAAATTGTGAAATTACAATGAACCTTGGGACCTCAATTTGGTACGTTCGACTATTATAACTGAGTTGAGCCCTTCATTTTTTGTAGCCCCATCACCAGCGCAGTACTATCGTTGTAAAGATCTTGCACGTAGACTACTGGCCTAGCCCTAATCTACGCAACACAGACGGTACGAAGCC	(I>&.I(I53;(1I'H8>(I3:(I(I'H)5I4)I17(I'0I)I5:69(I7867=='F82'I?3396(I875'0I'I97%(.8II483:&+:I678;'G25;8583<2876459(I;7'.I4;:=(I34<:7353966496)I'G607(1I9'G5579:58(I8:87;4<(I;627'G8(I	NM:i:1	MD:Z:28G152	oR:Z:1	oH:i:1	oP:i:2127	oS:A:R	XE:i:1	XS:i:0	XI:i:0
+simulated.928	16	1	4793	255	99M1D2M1D78M1D15M	*	0	0	ATCCGTGTTCTAAGGCGTTAAAGCAAACGATTTAAGCCAAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGCGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTGCCGTGCATTACTG	98'FA8:'I?9(I*I8<'F'.I85'/I867&.I(I9(I&*2II7:87:(I9)I'H:6'I50)I89(I83686(1IA5(I96:6698>4;4(I8'0I678D9*7I5842;'I5<'H(I5:)I(I4306:89'I/84'G'I42957588;555)I2&E4<88'F?16'H5'/I(I'H>948C5'G55755)I917<	NM:i:3	MD:Z:99G2G78T15	oR:Z:1	oH:i:1	oP:i:4792	oS: [...]
+simulated.929	0	1	7119	255	170M1D34M	*	0	0	GGGACCTTTAGAATGTTCCGTTTCCCGTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTAACATAGTTATTAGCCCATGTTCGACCGGGT	I/'4I)I1(77I)87I(I(>I.&I.&739I'9I)4647I(59H'49974784:3I)I1(7I/'8965I(I(99877747652658846>458I(9I(989I0';957I'479I(:43E&8H'F&648H'5:3938866439I7*&<8G'<I(8678::56H'I(37H'87I5)I(9;60:I'4G'<4I-&=57I)587I'I/'5	NM:i:1	MD:Z:170T34	oR:Z:1	oH:i:1	oP:i:7 [...]
+simulated.930	0	1	8457	255	67M1D54M1I46M1I17M	*	0	0	TGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCGAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGTCGTTTTGCGACGCAAAG	38796F'I'586994I'H'I0'58:I-&8;I(58I(668298=9<998:<I)=8::I(:7G'8I)76D5I/'74:;F'3I(86<<249I(G'7<@86I(I(II0)&6538I<,&23I)82:%/I/'3I.&:G'9F'24:8I(7I)4;4H'=H'76>I7*&I1(I(6;<&8<IA-'37677:=I/'5	NM:i:3	MD:Z:67G117	oR:Z:1	oH:i:1	oP:i:8456	oS:A:F	XE:i:3	XS:i:0	XI:i:0
 simulated.931	0	1	4612	255	209M	*	0	0	GTACTTTGTGTTGGCAATCAGGTGACGACGAAGTTTCGGCACAGGTGCCGCATCAAATAGTGTAACTTCACATGGGTTCTCAACGCGATAAAGCGCCTTCGTATCCTATCTTTCGCTCCGCTTATCCCCCAAACCTCCTCATGGAGCTAAGCTAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCAAAC	7561I0'76;F'I)8I(894I(3:69195<I(8I-&5I(<9:8I(62I'967;3I1(48579:I'7I(84248I-&H'875I(9<7:<;I2(=39H'I(:518=I(788:I.'6367G'5<I)9;II1*&I.'I)0I*7596I)98;8I)6<6677?4II2*&574:G'3774I(47:I at -'6I':.8I)46H'I(8=I'I0';5I2(9	NM:i:0	MD:Z:209	oR:Z:1	oH:i:1	oP:i [...]
-simulated.932	16	1	8450	255	55M1I122M1D18M1I14M	*	0	0	GGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTCGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCGACGTACGTAAGTTG	(I6;9)I9984?(I'G699<79'G(I(2I745'/I65(I69'H8696<7776934(97)I;498(I69&D:'H>2'I7&.I77=0(I9(I93>9546)I'I6817?)I'I'+4II0;55&+;I68'I5:76&-I5(1I3(I5(I7475(I7'I5;9'G9(I969&+:I&-I*I36;6;)6I53:?6;?(1I;-297&75882694(I:'I5	NM:i:3	MD:Z:17 [...]
+simulated.932	16	1	8450	255	55M1I122M1D18M1I14M	*	0	0	GGAGAGGTGCGTAACCGCAGTCTTCCAAATATCCCGTGGTCAATAGTATGCAGCTCGTGGTACATTCTGGTGGCTGGATTTGTACTTGAAGACTACGAAGGATCATCCGGCCCCCGCTCAAAATACCATCAGGGCTTTCGGTCCGCTCTTAGGCAGAAGTTCGTAAAACCCAAGTGCGTTTGCGACGCAAAGTAGCGACGTACGTAAGTTG	(I6;9)I9984?(I'G699<79'G(I(2I745'/I65(I69'H8696<7776934(97)I;498(I69&D:'H>2'I7&.I77=0(I9(I93>9546)I'I6817?)I'I'+4II0;55&+;I68'I5:76&-I5(1I3(I5(I7475(I7'I5;9'G9(I969&+:I&-I*I36;6;)6I53:?6;?(1I;-297&75882694(I:'I5	NM:i:3	MD:Z:17 [...]
 simulated.933	0	1	4945	255	211M	*	0	0	TGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCCACGTATGACTAATGCA	4I(7I(;8=8E&:91H'5I1(I(I(99;<I':I'68859I(45:94F'=;71I(67<676:I1'7I.&9;76=;9F';99I(78I'4:I0':II?1+';I9+&I)9739;96:H':66I-&;7I(544I(7;426I'31I(8777I(9<4=24456I(:8 at 8<I'977E&76I(I(8I-&8I(:8>8=9II9.)&76:9853:::G'35?8	NM:i:0	MD:Z:211	oR:Z:1	oH:i:1	 [...]
-simulated.934	0	1	3540	255	12M1D202M	*	0	0	TGGGCCGTCACACCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAG	8I/'I)9:4;77I5)997I/'I(H'36I(;56374I(I*I(I(;6I(56I1(;992I)I)I(I'77846;7I.':I(8<F':9I(7I8*&96778:I'68:9I)78I(:795:65I(468I(8I'I<,&:8I(9I'568F'I.&I8*&87;55I'G'=4:I'94878:=I(<7E&7A37I'I'I)89I0'56I(I1(I1'H'8E&<8I/'7996	NM:i:1	MD:Z:12^C202 [...]
-simulated.935	16	1	4220	255	7M1I64M1D17M1D102M	*	0	0	CAGAGAGTAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGACTAGCGCTCCTTTAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGC	766<78<':678658'H'/I8&.I*I(I(I6;516:74;4<6<55(I(1I82)I:;85'I5'I)I36'0I;9)5I9778966<5(I&.I,I:8;)I3889)I(1I:6978<49;:4(I8'H(I999'I8)I<(I(I862:*I855(I878745'H3799)I;;8&-I=65876565::3825323&)1II5	NM:i:3	MD:Z:71^G17^A102	oR:Z:1	oH:i:1	oP:i:4219	oS:A:R	 [...]
-simulated.936	0	1	5937	255	49M1I19M1I19M1D127M	*	0	0	ATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCGTTACGTAGTCTTTGCCGGAGTTTCTGAGTGAAAAGAAAGCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTC	;I(I(I(895598:;9I(5:66I(8I(9I(;I'8I.&95H'I(3678:3&I)29492 at 6:I0'6I(H'5'I1'464@:87ID.(9I.'7II6,(;:6<<79;3843F'I(66I(75=I1'33C<<8:368:8<95E&;=7;76I2(9H'5.89:;7I):I(69<I(0:29IG0)%0I:+&6:6I(8=9I-&I(51;35;624862I'9I9*&I0'5	NM:i: [...]
+simulated.934	0	1	3540	255	12M1D202M	*	0	0	TGGGCCGTCACACCCGACTTTGGTTCATTGCTCGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAG	8I/'I)9:4;77I5)997I/'I(H'36I(;56374I(I*I(I(;6I(56I1(;992I)I)I(I'77846;7I.':I(8<F':9I(7I8*&96778:I'68:9I)78I(:795:65I(468I(8I'I<,&:8I(9I'568F'I.&I8*&87;55I'G'=4:I'94878:=I(<7E&7A37I'I'I)89I0'56I(I1(I1'H'8E&<8I/'7996	NM:i:1	MD:Z:12C202	 [...]
+simulated.935	16	1	4220	255	7M1I64M1D17M1D102M	*	0	0	CAGAGAGTAGTCGAGTTAAACGGGCCAACCTACTCGTCGTCGAGTGGTTTACAAGCATAACTTGGCACCCGCGGGACTAGCGCTCCTTTAATGTCCAGCACCGGGATGTGTGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGC	766<78<':678658'H'/I8&.I*I(I(I6;516:74;4<6<55(I(1I82)I:;85'I5'I)I36'0I;9)5I9778966<5(I&.I,I:8;)I3889)I(1I:6978<49;:4(I8'H(I999'I8)I<(I(I862:*I855(I878745'H3799)I;;8&-I=65876565::3825323&)1II5	NM:i:3	MD:Z:71G17A102	oR:Z:1	oH:i:1	oP:i:4219	oS:A:R	XE [...]
+simulated.936	0	1	5937	255	49M1I19M1I19M1D127M	*	0	0	ATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCGTTACGTAGTCTTTGCCGGAGTTTCTGAGTGAAAAGAAAGCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCAGCCGCCATGCCGCTGTTTTTCGGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTC	;I(I(I(895598:;9I(5:66I(8I(9I(;I'8I.&95H'I(3678:3&I)29492 at 6:I0'6I(H'5'I1'464@:87ID.(9I.'7II6,(;:6<<79;3843F'I(66I(75=I1'33C<<8:368:8<95E&;=7;76I2(9H'5.89:;7I):I(69<I(0:29IG0)%0I:+&6:6I(8=9I-&I(51;35;624862I'9I9*&I0'5	NM:i: [...]
 simulated.937	0	1	7145	255	198M	*	0	0	GTCAACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTAGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCATATATGAGAAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTA	578I'>I(:368I(8;H'694;9765:9I'I1(6I-&9529I)I(99563;566:5:79757645;I(7I(7:6I.&557>I)792I(251I(7I(I(45:E&5;4;64536673I9*&38I(6I*48876958I(I)5;H'83I;+&I(:873;I)6I(69I0'39=I(652I(I.'8:I0'577I(831:I(55:>	NM:i:0	MD:Z:198	oR:Z:1	oH:i:1	oP:i:7144	oS:A:F	XE:i:0	XS [...]
-simulated.938	0	1	5477	255	43M1D41M1I81M1I27M	*	0	0	CGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTAGTCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGACGACGTTTCTGGCATGTTCGAGGCAGA	7I(755995I(I'9I(29383I(;88;;67=I)6I2(7:I(83I,I-&/6847G'886I0'<6I'I)I.&7I):869I*9H'87&7I(;9>4569I*:I(9797938::756H'92F'G'>85994I)8;358:H'99I)58;7484798428;768I(8;69I(<&=7;:;I1(5;I'58;8H'498I(6544	NM:i:3	MD:Z:43^A149	oR:Z:1	oH:i:1	oP:i:5476	oS:A:F [...]
-simulated.939	0	1	3280	255	37M1D174M	*	0	0	TAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTT	7I(8I(7I)18I/'72G';4:6175:7:<I(9F'I(6I6)2I(I'6978I)4;H'I)593I-&9718I<,&5F'<7I(I(5955<I8*&H'I(6I0'8944:I(65898:9I0':9I(I):676;3I)58;A59:I(I/'I.'9=48I(79878;27:37<745:7I*=78:>I:+&22I(II0)&9I/'9=9886>G';I(:I1(97I1'	NM:i:1	MD:Z:37^T174	oR:Z: [...]
-simulated.940	16	1	6715	255	17M1D11M1I22M1I157M	*	0	0	CACCCCTAAAGCTGGGCTTTTCTGAATTACATCAGGCCGTGAGGCTGGTATCGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGG	2:&+<I7'/I695'0I4)/FI9?1)I(I(6<6>;(I(I727:'G<7(I748&&+;I674*I='G:57'G*I)I'G/89(I'G;&+:I(I;'H<956(I749684'F88:=7*I7>>666867654&F(I4'/I:(I5838;2)I748(I49'/I::69'H'F'/I:<(I(I<(I7'H:9(I763)I9>)I5)I(I266:67(I6:7'/I	NM:i:3	MD:Z:17^T19 [...]
-simulated.941	0	1	8985	255	63M1I45M1D22M1I64M1D11M	*	0	0	CGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCACTGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCGTCGGCGGCATAGATGTTCCGTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGCATGCACAT	8286I.'>I)8I)>8:779;7:9;I'59;I/'685H'2:7:;8G'878I(I(6I*836I(>85'7545;4I'78:4G'H'66694I.'F&I'2G'957:66I(674I-&I,?8=I'6I)=579877?G'I((86<868I'9G'6H'I(63I(8I*1<I)5:I'6659I'<9650=:4>6I(I'I.&82G'688I(7I,886925377	NM:i:4	MD:Z:108^C86 [...]
-simulated.942	16	1	6349	255	113M1D34M1I45M	*	0	0	CTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACGTGTTATAGTAGCGGTCATAATATTGGAGCGTACTGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGA	269;&*1II'H8>(I'H*I6775565'G877'/I9'I'0I'I86)I94=5<29'I;48694869*I'/I(I:>:8)4I55<'H78(I5=4&+9I5;(I87(I'H'H779)I;5D75;'H;:8:884;(I864;(I34)I(I;79762-54:@4:5'G988(I;8<4876'0I44684:7'H3>;39<5:08;;	NM:i:2	MD:Z:113^C79	oR:Z:1	oH:i:1	oP:i:6348	oS:A:R	XE:i [...]
-simulated.943	0	1	4385	255	26M1D39M1I29M1D117M	*	0	0	TTTAGTGACGTGATATAGTGCGGGGGCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCGACAAGTTTTTGACACATTCTACATCTACCTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCT	I0';6;58993:966442<86II4+'C87454598H'>678I'I(H'79I1(8158I)4:I(674&;7H'8II0)&575464I(7=7758:67I'DE&74614I0':I.'I0'I+<I:+&5<;<I(5I)4:@=75;377I.';I(=9I'I(797;98G'69I(7458874=I/'9G'7635674H'87;8526I(I(:;I)5I/':8;8I)4	NM:i:3	MD:Z:2 [...]
-simulated.944	0	1	6510	255	51M1D99M1D33M	*	0	0	TCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTGCAGTCTGATGTACCAATACTCTCGCATATC	9884<7:2I1(5299:57F'869899:=669G'59;?746H'7I(9<9:79I+44I(G'9I(;I(>887I';57;II4+'I/';I(7775;54F'I)I(:I)7E&6653=97;I(=:7635;G':6:7I(I/'6I(7;9H'I)I(764I(I*68464:665=77;I(I)7<::38=7776;8;	NM:i:2	MD:Z:51^A99^T33	oR:Z:1	oH:i:1	oP:i:6509	oS:A:F	XE:i:2	XS:i:0	XI:i:0
-simulated.945	0	1	8363	255	30M1I31M1I52M1D47M1D36M	*	0	0	CGGTCACGACGGCTGCCATCTCACGCGCGCGACGTCTCCGTCCACGAAGTATGCATCATTGTACGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGATTTGTACTTGAAGACTACGAAGGATCATCCGGCC	<I(:73:378I(4?=H'4;85:8;022;54(:569<4E&6<I'=;2I)8188::6<97I)=9'97I(I(37I(35799I(8:I(72638I(794G'=7<?6I(I)855:36I(I(I,7;5I/'97I'53I(96;657;7:753=8I(7758G'75H'5H'<6D8I/'9637I';I':9:9:;5I(H'689<<I'H'I(	NM:i:4	MD:Z:113^A47^G36	oR:Z:1	oH:i:1 [...]
-simulated.946	16	1	4764	255	53M1I14M1D123M	*	0	0	TAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCTAAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACG	887661'+4II6781(I669:'H697&+:I9'H5<7(I7;'G(I43(I'0I6@('/I485(3I(I7'I(/DI6=869(I:(I(I86'I48'H64'G28:66&,I54)I489<6:=8:6<'I;'/I945'I9&*7I:9:56'H;9'H(I68'I(I99:<267(I967(I(I3A95:38869=7'H7'G589:	NM:i:2	MD:Z:67^A123	oR:Z:1	oH:i:1	oP:i:4763	oS:A:R	XE:i:2	X [...]
-simulated.947	16	1	2390	255	33M1D48M1I98M1I8M	*	0	0	GGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCGAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCTATAATCCA	'+3II;2(I'/I'H8:6;(I(2I'I(I:466'G,I'/I?43&E96(I28'G?794367'H9'/I3)I7>(I676)I29998':>)I45225+I7569)I:86577976658(I8)I*I'G*I91'H'H782:5(I7&E(I6'0I<;78598?;74<53958'H-9(I:(I=97:88;::7&;7(I7'H5	NM:i:3	MD:Z:33^T154	oR:Z:1	oH:i:1	oP:i:2389	oS:A:R	XE:i:3	XS [...]
-simulated.948	16	1	1949	255	22M1D172M	*	0	0	TTACGACTCTGGTATAGGGGTGCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATT	'I74<75424(I6764&+:I86D:3;2=7:=(I5'I8&.I(2I7457:'I<484(I7(I:971<%)0GI5>)I:853:(I6931;<:674;1)I58963'0I474*I:)I(2I'I568=1&+;I6'G444(I5(I56:<9(I2401'.I:63'F8&.I365'H;(I757759863979'H<'/I)I58:'0I'I	NM:i:1	MD:Z:22^C172	oR:Z:1	oH:i:1	oP:i:1948	oS:A:R	XE:i:1	 [...]
-simulated.949	16	1	5070	255	64M1D49M1I4M1I23M1I43M	*	0	0	CTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGTAAATACACCGCTAATTGCAAGGTTTGATCGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTAT	787(I63754&E56(I7847(I87858?:@6'H797<;)I7;7)I<8(I&E2&-I;(I55972<',6II646<=<;548'H<8<A&-I:76'I6(I5;66(I94<7&+9I2(I&&.I:%7/(I66<(I)I7;(I'G'/I77<%'0I)I'I69;:<75:;;6:&-I:55(I8(I(I4'G3380)I;9	NM:i:4	MD:Z:64^C119	oR:Z:1	oH:i:1	oP:i:5069	oS:A:R	XE:i:4	XS: [...]
-simulated.950	0	1	5592	255	79M1I35M1D32M1I63M	*	0	0	TAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAAGTCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAACTCATTTGTATGCCGGCAAGCAGCCGTATCGAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTA	9E&I'599;5:I'=65:78I(<:I'7686=<767:8963969I(8607H'>68=97I0'87I(7846I'9:8I':99H'';7I(I<,';63I)445I*9I'I(2I(4I)53I.'2I,;197I.&4385:I(I(7I(<>66G'84445,I)677I(567574II3*&I(32F&46<:8I)G'49:I)6665I'2/I)175:4616:I(I(:7	NM:i:3	MD:Z:114^ [...]
-simulated.951	16	1	3785	255	9M1D37M1D10M1D103M1D32M	*	0	0	TTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGTGACAACATGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAATGCATGAGTAATTGACTGCGTCGCGCGGGT	'F7'I78;7,I97(I(I66:'H928<887187372956=685:'1ID6;:8(I587C(2I(I6'H646:37579:)I8&E7(I7:<594<'I4)I;7<663?&).:II456>9/9;(I*I6(I?44:19:34<99&-I4<54&F6:55(I85(2I7:(I,I3:7671784'F(I7<76775:38199'.I4	NM:i:4	MD:Z:9^T37^G10^G103^A32	oR:Z:1	oH:i:1	oP:i: [...]
-simulated.952	16	1	8932	255	96M1D48M1I13M1D15M1I19M	*	0	0	TTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGTCCTCGAGATTCATGGCCCGTCGGCGGCAGTAGATGTTCCTCGTCACCG	(I7817836;7(I6(I(I=5'H3+I=77)I(I7<(I4(1I;757<'H72744384<8'/I;'H:'F:6971=87353(I696'/I::;)I94:589D67:'H'F4'I6<9(I=:;394955(I8<59'G(I69966'0I(I'I7-'I3;2664)I587+I(1I530(I8(I88'8:=6<8(I)I:87569(I9	NM:i:4	MD:Z:96^A61^G34	oR:Z:1	oH:i:1	oP:i:8931 [...]
+simulated.938	0	1	5477	255	43M1D41M1I81M1I27M	*	0	0	CGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTAGTCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGACGACGTTTCTGGCATGTTCGAGGCAGA	7I(755995I(I'9I(29383I(;88;;67=I)6I2(7:I(83I,I-&/6847G'886I0'<6I'I)I.&7I):869I*9H'87&7I(;9>4569I*:I(9797938::756H'92F'G'>85994I)8;358:H'99I)58;7484798428;768I(8;69I(<&=7;:;I1(5;I'58;8H'498I(6544	NM:i:3	MD:Z:43A149	oR:Z:1	oH:i:1	oP:i:5476	oS:A:F	 [...]
+simulated.939	0	1	3280	255	37M1D174M	*	0	0	TAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCCAGCATGTAATGGTAAATCTTT	7I(8I(7I)18I/'72G';4:6175:7:<I(9F'I(6I6)2I(I'6978I)4;H'I)593I-&9718I<,&5F'<7I(I(5955<I8*&H'I(6I0'8944:I(65898:9I0':9I(I):676;3I)58;A59:I(I/'I.'9=48I(79878;27:37<745:7I*=78:>I:+&22I(II0)&9I/'9=9886>G';I(:I1(97I1'	NM:i:1	MD:Z:37T174	oR:Z:1 [...]
+simulated.940	16	1	6715	255	17M1D11M1I22M1I157M	*	0	0	CACCCCTAAAGCTGGGCTTTTCTGAATTACATCAGGCCGTGAGGCTGGTATCGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGCGTCTTAACCCTACCGGCAAGCCTACCATCAAGTAATGGAATGATATCCTGCGGG	2:&+<I7'/I695'0I4)/FI9?1)I(I(6<6>;(I(I727:'G<7(I748&&+;I674*I='G:57'G*I)I'G/89(I'G;&+:I(I;'H<956(I749684'F88:=7*I7>>666867654&F(I4'/I:(I5838;2)I748(I49'/I::69'H'F'/I:<(I(I<(I7'H:9(I763)I9>)I5)I(I266:67(I6:7'/I	NM:i:3	MD:Z:17T190 [...]
+simulated.941	0	1	8985	255	63M1I45M1D22M1I64M1D11M	*	0	0	CGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGCACTGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCGTCGGCGGCATAGATGTTCCGTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACATGAACCGGGTCGGCTATTCGGCATGCACAT	8286I.'>I)8I)>8:779;7:9;I'59;I/'685H'2:7:;8G'878I(I(6I*836I(>85'7545;4I'78:4G'H'66694I.'F&I'2G'957:66I(674I-&I,?8=I'6I)=579877?G'I((86<868I'9G'6H'I(63I(8I*1<I)5:I'6659I'<9650=:4>6I(I'I.&82G'688I(7I,886925377	NM:i:4	MD:Z:108C86G [...]
+simulated.942	16	1	6349	255	113M1D34M1I45M	*	0	0	CTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACGTGTTATAGTAGCGGTCATAATATTGGAGCGTACTGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGA	269;&*1II'H8>(I'H*I6775565'G877'/I9'I'0I'I86)I94=5<29'I;48694869*I'/I(I:>:8)4I55<'H78(I5=4&+9I5;(I87(I'H'H779)I;5D75;'H;:8:884;(I864;(I34)I(I;79762-54:@4:5'G988(I;8<4876'0I44684:7'H3>;39<5:08;;	NM:i:2	MD:Z:113C79	oR:Z:1	oH:i:1	oP:i:6348	oS:A:R	XE:i: [...]
+simulated.943	0	1	4385	255	26M1D39M1I29M1D117M	*	0	0	TTTAGTGACGTGATATAGTGCGGGGGCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCGACAAGTTTTTGACACATTCTACATCTACCTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGCCCTACTCCT	I0';6;58993:966442<86II4+'C87454598H'>678I'I(H'79I1(8158I)4:I(674&;7H'8II0)&575464I(7=7758:67I'DE&74614I0':I.'I0'I+<I:+&5<;<I(5I)4:@=75;377I.';I(=9I'I(797;98G'69I(7458874=I/'9G'7635674H'87;8526I(I(:;I)5I/':8;8I)4	NM:i:3	MD:Z:2 [...]
+simulated.944	0	1	6510	255	51M1D99M1D33M	*	0	0	TCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGAGGTTGGCAAGTTACTGCGTATTGCATGAGCCAGATAACCCATTGACTTGGCCAGTCCTTGCAGTCTGATGTACCAATACTCTCGCATATC	9884<7:2I1(5299:57F'869899:=669G'59;?746H'7I(9<9:79I+44I(G'9I(;I(>887I';57;II4+'I/';I(7775;54F'I)I(:I)7E&6653=97;I(=:7635;G':6:7I(I/'6I(7;9H'I)I(764I(I*68464:665=77;I(I)7<::38=7776;8;	NM:i:2	MD:Z:51A99T33	oR:Z:1	oH:i:1	oP:i:6509	oS:A:F	XE:i:2	XS:i:0	XI:i:0
+simulated.945	0	1	8363	255	30M1I31M1I52M1D47M1D36M	*	0	0	CGGTCACGACGGCTGCCATCTCACGCGCGCGACGTCTCCGTCCACGAAGTATGCATCATTGTACGCCAACTCCGCGCACCTATTGCTGAGGAGAGGTGCGTAACCGCAGTCTTCCAATATCCCGTGGTCAATAGTATGCAGCTGTGGTACATTCTGGTGGCTGATTTGTACTTGAAGACTACGAAGGATCATCCGGCC	<I(:73:378I(4?=H'4;85:8;022;54(:569<4E&6<I'=;2I)8188::6<97I)=9'97I(I(37I(35799I(8:I(72638I(794G'=7<?6I(I)855:36I(I(I,7;5I/'97I'53I(96;657;7:753=8I(7758G'75H'5H'<6D8I/'9637I';I':9:9:;5I(H'689<<I'H'I(	NM:i:4	MD:Z:113A47G36	oR:Z:1	oH:i:1	o [...]
+simulated.946	16	1	4764	255	53M1I14M1D123M	*	0	0	TAGAGACCCCCTGCGCCTATCTTCGCAAAATCCGTGTTCTAAGGCGTTAAAGCTAAACGATTTAAGCCAAAAGATCACCTCCTTCATTCACCTATTATCAGTTTACTTGCTCTATGTATCCGTTTAGTGGCGGGGATGACTTGCGGCCATCCAATGTCTGCAATATGGAAGCGTCGTATCATGGCAAGACG	887661'+4II6781(I669:'H697&+:I9'H5<7(I7;'G(I43(I'0I6@('/I485(3I(I7'I(/DI6=869(I:(I(I86'I48'H64'G28:66&,I54)I489<6:=8:6<'I;'/I945'I9&*7I:9:56'H;9'H(I68'I(I99:<267(I967(I(I3A95:38869=7'H7'G589:	NM:i:2	MD:Z:67A123	oR:Z:1	oH:i:1	oP:i:4763	oS:A:R	XE:i:2	XS [...]
+simulated.947	16	1	2390	255	33M1D48M1I98M1I8M	*	0	0	GGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTAAAGTGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCGAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGCTAGGTACCTGGACAGCATAGCTATAATCCA	'+3II;2(I'/I'H8:6;(I(2I'I(I:466'G,I'/I?43&E96(I28'G?794367'H9'/I3)I7>(I676)I29998':>)I45225+I7569)I:86577976658(I8)I*I'G*I91'H'H782:5(I7&E(I6'0I<;78598?;74<53958'H-9(I:(I=97:88;::7&;7(I7'H5	NM:i:3	MD:Z:33T154	oR:Z:1	oH:i:1	oP:i:2389	oS:A:R	XE:i:3	XS: [...]
+simulated.948	16	1	1949	255	22M1D172M	*	0	0	TTACGACTCTGGTATAGGGGTGCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATT	'I74<75424(I6764&+:I86D:3;2=7:=(I5'I8&.I(2I7457:'I<484(I7(I:971<%)0GI5>)I:853:(I6931;<:674;1)I58963'0I474*I:)I(2I'I568=1&+;I6'G444(I5(I56:<9(I2401'.I:63'F8&.I365'H;(I757759863979'H<'/I)I58:'0I'I	NM:i:1	MD:Z:22C172	oR:Z:1	oH:i:1	oP:i:1948	oS:A:R	XE:i:1	X [...]
+simulated.949	16	1	5070	255	64M1D49M1I4M1I23M1I43M	*	0	0	CTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGTCCAAGTTTACCAGCATACCCCCACGTATGACTAATGCACCCGACTTCGGTCGCTTCACTCCCCAGGTAAATACACCGCTAATTGCAAGGTTTGATCGGGTTGGTCATCTCGACATCCCATCTTACCAAGTTGTAGTTAT	787(I63754&E56(I7847(I87858?:@6'H797<;)I7;7)I<8(I&E2&-I;(I55972<',6II646<=<;548'H<8<A&-I:76'I6(I5;66(I94<7&+9I2(I&&.I:%7/(I66<(I)I7;(I'G'/I77<%'0I)I'I69;:<75:;;6:&-I:55(I8(I(I4'G3380)I;9	NM:i:4	MD:Z:64C119	oR:Z:1	oH:i:1	oP:i:5069	oS:A:R	XE:i:4	XS:i [...]
+simulated.950	0	1	5592	255	79M1I35M1D32M1I63M	*	0	0	TAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAAGTCTTCCCCAGCTTAGATTAGGTTACCGCCGCTTTCAACTCATTTGTATGCCGGCAAGCAGCCGTATCGAACGTAATCGCATAAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTCCTA	9E&I'599;5:I'=65:78I(<:I'7686=<767:8963969I(8607H'>68=97I0'87I(7846I'9:8I':99H'';7I(I<,';63I)445I*9I'I(2I(4I)53I.'2I,;197I.&4385:I(I(7I(<>66G'84445,I)677I(567574II3*&I(32F&46<:8I)G'49:I)6665I'2/I)175:4616:I(I(:7	NM:i:3	MD:Z:114A [...]
+simulated.951	16	1	3785	255	9M1D37M1D10M1D103M1D32M	*	0	0	TTGAACGAGTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGTGACAACATGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATATTGCTTTATCCAATGCATGAGTAATTGACTGCGTCGCGCGGGT	'F7'I78;7,I97(I(I66:'H928<887187372956=685:'1ID6;:8(I587C(2I(I6'H646:37579:)I8&E7(I7:<594<'I4)I;7<663?&).:II456>9/9;(I*I6(I?44:19:34<99&-I4<54&F6:55(I85(2I7:(I,I3:7671784'F(I7<76775:38199'.I4	NM:i:4	MD:Z:9T37G10G103A32	oR:Z:1	oH:i:1	oP:i:3784 [...]
+simulated.952	16	1	8932	255	96M1D48M1I13M1D15M1I19M	*	0	0	TTCGTATCAGTAAGTTGGATAACGGTAGTTAATGCCAGGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGATGTAATTGAATGATTGCATGTGCGTTGCACAACCACTACAAAGGAAGTCCTCGAGATTCATGGCCCGTCGGCGGCAGTAGATGTTCCTCGTCACCG	(I7817836;7(I6(I(I=5'H3+I=77)I(I7<(I4(1I;757<'H72744384<8'/I;'H:'F:6971=87353(I696'/I::;)I94:589D67:'H'F4'I6<9(I=:;394955(I8<59'G(I69966'0I(I'I7-'I3;2664)I587+I(1I530(I8(I88'8:=6<8(I)I:87569(I9	NM:i:4	MD:Z:96A61G34	oR:Z:1	oH:i:1	oP:i:8931	o [...]
 simulated.953	0	1	4442	255	146M1I39M	*	0	0	CCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCTGAGTGGGTAATGCCTTCGCACTGGTCAACTGTCGCGTTTGCCGCTAGTCGGTGATCACTTGGAGCCGTCCCTACTCCTAGCGATCGTCAAGGGTACTTTGTGTTGGC	I(5:I(75457I(7IG/)%747768E&866:697<7I'H'I(92948I/'9I-&I.'I'9I<,'6635I';I(288885;765I0'7I*6=I(I)<26888I(87I'3:=97<93I-&2I+1:97292I(79:.;76G'I(39I(7/I/'6:6:H':77:7>764;8I'I.'6;6I-&<:7H'I(;	NM:i:1	MD:Z:185	oR:Z:1	oH:i:1	oP:i:4441	oS:A:F	XE:i:1	XS:i:0	XI:i:0
 simulated.954	0	1	1961	255	62M1I133M	*	0	0	TATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGTATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCCAATGTCGCCCCTCCATGAAGCCGCGCACCAGCTCCCTACAATCCCGTCAACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTT	59;5I<,&64I(1867966=I)6I(:I0'I.&96<>7I'5298I)8I(:4566II2*&97I)%46563I(99478:<4:66=I(99;67I/'952I)7I(I0'I(484:<I8*&:I)577I(6I(89635I'7799I.&559I)6I.'698I);I(8?95766579:6I(<I.&I)78<I1(I(<5I';7I)I(I(	NM:i:1	MD:Z:195	oR:Z:1	oH:i:1	oP:i:1960	oS:A:F	XE:i:1	X [...]
 simulated.955	16	1	3198	255	146M1I66M	*	0	0	TAATCCACGTTTCAGGGAAGGTTGGCACCCCGCTATTAAAAAGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTCGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAAC	;(I6'I3;3'/I=9'/I(I(I(I'H3;&*9I:568'I&)1II8)I;9(1I579&*7I(I3>5(I;(I&*8I53:(I;6:77'G'H<'G6'G49(2I84'I;88452<::48(I9(I'I:&*7I9(I(I:<89(I1;'I'H58:(2I&B=13&+:I<)I96)I)I88599(.BI(I'G9(2I63965'G77=889?'.I77*I(I:79154)I4	NM:i:1	MD:Z:212	oR:Z [...]
@@ -960,44 +960,44 @@ simulated.956	16	1	6942	255	190M	*	0	0	TAATACGATATTATCCCATTCAGTATGTATTCAATCTAGGT
 simulated.957	16	1	3007	255	215M	*	0	0	CTTAGATTGTTCGTAGAGCTGATACCGCTACTTGGTTAGGGATCTTATGTCTTCAATTTGATCTGTGCTTTCCACGGGACAACCCCTTGACGTATGTCTTCCAATTATCGTATAGCGCAAGCGCCCACATCGCTGGGCCCCCAGATCAGTGTTCTGTCGCTATTGAGAACTGACGGTACCAGAGGCCCGATTAATCCACGTTTCAGGGAAGGTTG	<'I97:(I8'I6958796::9:59(I86597(I(I(I;&,I577'I86::9(I7(I'0I<7859;998'/I(I7;'/I29'I&+;I(I668:7488:4'H)I'H(I2:857;6;78;A'G9;7'0I58865714&.I&*2II965<5:5<7)I;;598582<(I427)I8875<&F87'I748'H(2I76(I(I6'I677'/I57(1I(I(I(I9	NM:i:0	MD:Z:215	oR:Z: [...]
 simulated.958	0	1	4921	255	196M	*	0	0	CTGCAATATGGAAGCGTCGTATCATGGCAAGACGAACAGAACGGGTTCCAGAGTTGCCGTGCATTACTGTCCGAGCAAGCTGACTGGGTCCCATCGCATGGAGTAATGTTGAGGGTCCCCCCATTTTCCACATCATGAAGACGGGCGTTCTGTTCGTGAGGCGAAGTGCGGCTCGCAGTGCCTGTCTCCATGTTGT	8875I(8;5I(I)8<8=96?::;49I(4I'66;7I'5:8G';I.'I(H'463<G'9I)77>72H'54635I(:7:5I'5868956I-&:I2(266765;I(360I);9I'49I1(:II9.)&6I;+&I(=566<764I)469I1(75I(097I(<593;I'88H';:<4I(8=567:156I'84/47I(994I):=	NM:i:0	MD:Z:196	oR:Z:1	oH:i:1	oP:i:4920	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.959	16	1	7219	255	29M1I31M1I24M1I127M	*	0	0	GGGCATCAACACAAGCATTCGGAAGTCAACGTCATATATGAGAAAATGAATGGAGCATGCTCGGCCATCCTATTTTAACATAGTTACTTAGCCCATGTTCGACCGGGTACCCTGTGGAGAGCCTCTATTCACTACTAGGTGCGTCATACCCAGATGAACGCTGTCAAAATATCCGCCATGCCCTCGTAGCCTTGTGTGAGTGCGAGATGCCCAC	'0I6563(I77;*I947'I;'I)I749*I%667185685:83&+;I6:+I5'H2580888:%'G(I=7)I84&+9I(I:6<:7'H:&'H98(2I7:6'G858&F'/I48'/I648(I4578'I5693)I76698888'I27;;:34<9(2I:4964(I7:9:476&+9I855(I=(I188(2I97:66<(I'I5;5;64>4<4786567'0I6>	NM:i:3	M [...]
-simulated.960	16	1	5957	255	48M1D9M1D74M1I22M1D63M	*	0	0	CATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTCTGAGTGAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCTAGCCGCCATGCCGCTGTTTTTCGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGG	7<(I9*I6&D9&F9'0I56)I'H;593:8'F39827962'/I3'H(I5,I=5<;94;)6I7'/I4%(-7II964338;7A<5;'G(I66'G7:=&.I:494=6:66:=8:56)I749:84'/I4(I4867<&54(I9'F:?8'F::55&*2II5)5I252(I894(3I)I335;75776=:9&E6&+;I&-I668:89:(I<977'H96(2I284(I [...]
-simulated.961	16	1	2334	255	7M1D89M1I82M	*	0	0	TCTTCTACCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTAGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAAT	33)I;96+I=;'/I:(I67/55:23(I6(I689;:6737;3'I;68798698666%)/FI89'I'/I(I789:&F(3I'H&F93:1'G'/I(2I98+4'G69*I6;'I346<394)I5'0I3)I;2&E;89(I87<8564(I9::6=(I86;2'I<7:447:>496:'G9)I(I'H(I6	NM:i:2	MD:Z:7^C171	oR:Z:1	oH:i:1	oP:i:2333	oS:A:R	XE:i:2	XS:i:0	XI:i:0
+simulated.960	16	1	5957	255	48M1D9M1D74M1I22M1D63M	*	0	0	CATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTTGCCGGATTCTGAGTGAAAGAAAGCCCCCCTATGATAGACATCCGGCGTTATGAAACTGTACAGTACATACGGAGAGCTGGGACCTACTCTAGCCGCCATGCCGCTGTTTTTCGGGTCACCATGTTTCCTAGCTACAGACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGG	7<(I9*I6&D9&F9'0I56)I'H;593:8'F39827962'/I3'H(I5,I=5<;94;)6I7'/I4%(-7II964338;7A<5;'G(I66'G7:=&.I:494=6:66:=8:56)I749:84'/I4(I4867<&54(I9'F:?8'F::55&*2II5)5I252(I894(3I)I335;75776=:9&E6&+;I&-I668:89:(I<977'H96(2I284(I [...]
+simulated.961	16	1	2334	255	7M1D89M1I82M	*	0	0	TCTTCTACCACGGGTGGTCGCGTGAGGCTTGTCTATCTGAGTTGTCTGTGCTCACGGGGGCTAACCCTTCTGTGGCCCGGTTAGTCAATTTAAAGTAGAATATTAGTTGTATGACTTACCCTAATGAATACAACGAGCAGCCGACAGCCAGTGAATCGCGTGATACATTGCCTTGGAAT	33)I;96+I=;'/I:(I67/55:23(I6(I689;:6737;3'I;68798698666%)/FI89'I'/I(I789:&F(3I'H&F93:1'G'/I(2I98+4'G69*I6;'I346<394)I5'0I3)I;2&E;89(I87<8564(I9::6=(I86;2'I<7:447:>496:'G9)I(I'H(I6	NM:i:2	MD:Z:7C171	oR:Z:1	oH:i:1	oP:i:2333	oS:A:R	XE:i:2	XS:i:0	XI:i:0
 simulated.962	16	1	5504	255	190M	*	0	0	GCTCTTGAAACATTACAAAGGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATTCTCTAGTCTGCTGACTACCAGTATTGCGACGTTTCTGGCATGTTCGAGGCAGAATCTTCCCCAGCTTAGATTAGGTT	4;;5'I3'0I59(I46&.I&-I4697?(I296'/I66)I(I'0I3(I5898(I4'I98<(I;97;<78*I4)I?5698:869:;;'I85(I)I::8796&E9;;835)I:4'G6456444;8:93:59;8(I067:'G;5:68>'/I74'I5915(I977(I;55)I93'F',=I488(I66;(I6(I*I	NM:i:0	MD:Z:190	oR:Z:1	oH:i:1	oP:i:5503	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.963	16	1	6227	255	113M1D56M1I48M	*	0	0	TGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGACGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACG	745577>68>7'.I549'H065?672(1I735688&-I63378&.I9)I48',>I4(I&.I;63995(I667=<33:85565:54)I;9:2685'I677:'0I534867'G'G,I(I8<'G;979&*2II)I95(I(I*I:993978)I995'/I5(I(1I)I64*I:6'833<8(I7 at 944?:89)I'/I'G;877'0I77>'H4<)I:;5&,<I;>	NM:i: [...]
-simulated.964	0	1	7149	255	45M1I58M1I8M1D70M1I12M1I6M	*	0	0	ACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTACGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCACTATATGAGAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTCGGAGAGCCTCTAGTTCACT	78I(7605F'79I'5166998299G'I-&4I0'4988H'I(9684'55>88:53536698666G'=G'988I/'52;;H':9;I(;97I'5G'I(5::F'9857'85077397I5)6=E&5I)6=96;:49I)I(41I(96I8*&I(99676I)6G'68I/'357I(954I*I/'65I1(783(H';>63H'75=5'G'5648	NM:i:5	MD:Z:111^A88	oR:Z [...]
-simulated.965	0	1	7906	255	141M1D36M	*	0	0	GCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTA	5:<I1(46I'2I(9G'85I*:80I'7:8<5=@:7G'79F'7489795656695I(:654>I)8G';I)1:8F&9I-&9427<>7;I-&<I/'F'978I*G'79:;6I)7I/'275899497I)7I(7I(I1(:73;46963I+:5H'579I+I1(H'96I):I(:67I:+&:97;;<	NM:i:1	MD:Z:141^G36	oR:Z:1	oH:i:1	oP:i:7905	oS:A:F	XE:i:1	XS:i:0	XI:i:0
-simulated.966	16	1	7498	255	128M1D86M	*	0	0	TGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAG	998;8>4;;4(1I5666'I'0I77(1I(I'1I;8(I*I(I'G40:=:6(I94(I(I943;'I66849)I7(I;(I'H537)I7;8'I29'I;'H'I7)I6637;89552)I;>94;624)I1:78'F;C'G9=?85656;85(I'0I<&F5;'I8'.I(I963;49;;449(I;47'H68(2I37398'/I<36'G78'I>9688<*I)I'I;:	NM:i:1	MD:Z:128^G8 [...]
+simulated.963	16	1	6227	255	113M1D56M1I48M	*	0	0	TGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGACGCGCTCCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACG	745577>68>7'.I549'H065?672(1I735688&-I63378&.I9)I48',>I4(I&.I;63995(I667=<33:85565:54)I;9:2685'I677:'0I534867'G'G,I(I8<'G;979&*2II)I95(I(I*I:993978)I995'/I5(I(1I)I64*I:6'833<8(I7 at 944?:89)I'/I'G;877'0I77>'H4<)I:;5&,<I;>	NM:i: [...]
+simulated.964	0	1	7149	255	45M1I58M1I8M1D70M1I12M1I6M	*	0	0	ACTTGCGCAACGTTAGAGATCATAGGAAATGGGTATGAACCGCTACGTGTGCGCGTGTAGTCTCCTGGCGTGGGCATCAACACAAGCATTCGGAAGTCAAGTCACTATATGAGAAATGAATGGAGCATGCTGGCCATCCTATTTTAACATAGTTATTAGCCCATGTTCGACCGGGTACCCTGTCGGAGAGCCTCTAGTTCACT	78I(7605F'79I'5166998299G'I-&4I0'4988H'I(9684'55>88:53536698666G'=G'988I/'52;;H':9;I(;97I'5G'I(5::F'9857'85077397I5)6=E&5I)6=96;:49I)I(41I(96I8*&I(99676I)6G'68I/'357I(954I*I/'65I1(783(H';>63H'75=5'G'5648	NM:i:5	MD:Z:111A88	oR:Z: [...]
+simulated.965	0	1	7906	255	141M1D36M	*	0	0	GCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAGTATTGTTGAATTTCACGATCGCGGTCTTACTCCGGGCCTCAATAAGCGAAAAGACGTA	5:<I1(46I'2I(9G'85I*:80I'7:8<5=@:7G'79F'7489795656695I(:654>I)8G';I)1:8F&9I-&9427<>7;I-&<I/'F'978I*G'79:;6I)7I/'275899497I)7I(7I(I1(:73;46963I+:5H'579I+I1(H'96I):I(:67I:+&:97;;<	NM:i:1	MD:Z:141G36	oR:Z:1	oH:i:1	oP:i:7905	oS:A:F	XE:i:1	XS:i:0	XI:i:0
+simulated.966	16	1	7498	255	128M1D86M	*	0	0	TGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACAATCACGCGGAACCAG	998;8>4;;4(1I5666'I'0I77(1I(I'1I;8(I*I(I'G40:=:6(I94(I(I943;'I66849)I7(I;(I'H537)I7;8'I29'I;'H'I7)I6637;89552)I;>94;624)I1:78'F;C'G9=?85656;85(I'0I<&F5;'I8'.I(I963;49;;449(I;47'H68(2I37398'/I<36'G78'I>9688<*I)I'I;:	NM:i:1	MD:Z:128G86 [...]
 simulated.967	0	1	7843	255	182M	*	0	0	GGATAAATTTCAGAAGAACAGAGTCTTCCCACCAATCGTCTCAGCCCCTAAGACAAGGCATACGCTGGGTCAATGGATTCGAATGCAATGCGACAGTCCGTGGTGTAGTAGTGTATAACTCTGAATAAGAAGATCCACCCATAGCGATCCCGTTTCCACAGGAACTAGCAACGGGCTCATAG	H'6;I2(I/'458H'6I'8?55599I(I.&<F&I';68:944:8I?-'7H'7;7I'I'4687::78I.&9:G'4H'6I(84I(7;8I(739=A377<I'87I(;9=5:;7929663H'89>78I)0I'5I(>9<I(8I2(84868651I-&>I/'I(86:I(I(22339I(:I.'2876:;5	NM:i:0	MD:Z:182	oR:Z:1	oH:i:1	oP:i:7842	oS:A:F	XE:i:0	XS:i:0	XI:i:0
 simulated.968	16	1	7432	255	93M1I126M	*	0	0	TCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTACCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGACGTGCTGGAGGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTACGAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCT	57(I;&+:I9=6;622<2'I(I;<)I(I383;92'/I'0I8:79249'H5;)I6'1I)I(I98'I)I6368782<8(2I7<85(I(2I;7'/I,)I&-I57(I(I'I(I886<4<(I86(I)I;449C&5986;'F9(I:&E*I:6:(I887'H>6'I=(I)I8'G6;;477<;3=)I5978=.;:(I786:'H9*I(I089966;969<)I(2I9(I66	NM:i:2 [...]
-simulated.969	0	1	2492	255	56M1I85M1D65M	*	0	0	CGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGTCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCA	7986379?5I(9I(I(I(I':7I'H'66797H'7H'G'4I0'7:5C;7747<7;38&;;7I)9:I(3I(4;=;33295<64H'>I(7II2*&759I(456:6;5<I/'I)5;9<9;7I(<7F&3677;;9I'493:679663ID.(;8I(9I.&5=I(55<6746757I'799488G'6786I'94>4;::;72;;5H'898I(5<5	NM:i:2	MD:Z:141^T65	oR:Z:1	oH [...]
+simulated.969	0	1	2492	255	56M1I85M1D65M	*	0	0	CGTGATACATTGCCTTGGAATCTTGGCTACATTCGGTTGTTTGCATCGTCTAGTAGTCTAGGTACCTGGACAGCATAGCATAATCCACCCCCTCTCCTAGTAGTATTTAATGCTCATGGATGGCAGTGTAGGAGCGACTAGATTTTGTGGCAAATCTTATCTGAGACTCCTGATACGGACATGGCATCGCAGAGATCGGTGACCGCA	7986379?5I(9I(I(I(I':7I'H'66797H'7H'G'4I0'7:5C;7747<7;38&;;7I)9:I(3I(4;=;33295<64H'>I(7II2*&759I(456:6;5<I/'I)5;9<9;7I(<7F&3677;;9I'493:679663ID.(;8I(9I.&5=I(55<6746757I'799488G'6786I'94>4;::;72;;5H'898I(5<5	NM:i:2	MD:Z:141T65	oR:Z:1	oH: [...]
 simulated.970	16	1	8068	255	70M1I48M1I30M1I47M	*	0	0	TAAGCGAAAAGACGTACCTAGAGTCACTAACCGTGCTCGGAATTCTGAATGTTCCGTGTCCGACTCGTATAGTCTAATGTGAGTCTCGAAAAGTGTAACCCAAGAGGCTAGGATTCCCAGTGTAACACAGCCCACACGGTTATGGACGCTCGAGCCTAACATTAGCGCTGGGCCGTGGCTATATTCAAGGTGATGTCC	8&E576&+:I655=8:'I<94?74:<8>)I'G67:;86'H'I)I688(I78(I*I:=?5'F5<789779:'6886)I8=84899;:<7&+;I4979&E'0I'H:7&F792'I7(I(2I8'699(I58469'.I9956(I(I27'I2>87<'57=(I>(I;:'H=85765'/I(I69'I?;778'I8(I'H787967*I	NM:i:3	MD:Z:195	oR:Z:1	oH:i:1	oP:i:8067	o [...]
 simulated.971	16	1	328	255	192M	*	0	0	CTATAATCTGGACGCACAAAATCATCTTGGGATAGGAGGATTCGGGTGTGTCGCAAAAATGGCCTAGCAAACCCTGTCGAGATAGGCCGGGTGTCACGTCAAATTCTCGGCTGGATCCCTTAGTCGCATTAGTCCATGCAGAACGCGCACAGTTGAGGCAAGGCCGTAAAACACGTATGGATAAGGGGATAC	8;6:'G267'I595745&*8I36278(I'0I:68(I8*I8(I5'0I47585716&*2II:(I(I583;'/I(2I9<702=:94:'I'H'/I892<;5567(1I(I6::(I9?)I7.&.I&F886449:)I869'G356949)I979;:5885)I8<'I?'I)I*I99&+:I897877;)I=8&F&*8I75;5	NM:i:0	MD:Z:192	oR:Z:1	oH:i:1	oP:i:327	oS:A:R	XE:i:0	XS:i:0	XI:i:0
-simulated.972	16	1	4042	255	149M1D34M1I15M	*	0	0	AAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGACGAGTCGAGTTAAACG	'1I66=3>7)4I(I5(I(I)I8:9:445:'/I*I96::(3I649(I)I(I'H8<57)I77935'H:(2I7;3-9694;'G677(2I7'H(2I(I7(I8:969:7(I;(I061649*I;'G'G(I(I7'0I'I296*I758:'G468'.ID'H6415(I233879'I;2'/I:4(I7(I98894+5987;8;6)I'0I:8	NM:i:2	MD:Z:149^A49	oR:Z:1	oH:i:1	oP:i:4041 [...]
-simulated.973	0	1	5891	255	105M1D18M1D25M1I27M1I30M	*	0	0	TTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTGCCGGATTTCTGAGTGAAAGAAAGCCCCCCTATGATAGACACTCCGGCGTTATGAAACTGTACAGTACAGTACGGAGAGCTGGGACCTACTCAGCCGCCA	H'I1'59I1(8:7?I(68836>8I0'I(I at -'75I0'99:I>,'7I(I)I(H':76897697I'4<8:H'8I);I)3I'8I2(;9I(I*9196=8I*4;8;8796I+6I(I(8I0'82;6728I4)9I/'2II;/)&69<685779:3%6H'E&84I(876I1(78<425869578'<65I(98=;5;I/'9H'87<9;65I';G'9	NM:i:4	MD:Z:105^T1 [...]
-simulated.974	0	1	8966	255	3M1D76M1I53M1D60M1I2M	*	0	0	CCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGACATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACTAT	I)7I,77::5H'4;7965;98:I.&/I'7F'195;>88599;H'787I1(797I'469872F';3:I)I(7H'57:I)7'848>9195I,7:7:I'I(997>:I0'I(I'8I(635593I(77<I.'I.'9=7D:G'8599868;G'I(7<9;:=I(?I)5I(I(79I(<I(88H'04I(7<>5I(55295>;&7;	NM:i:4	MD:Z:3^G129^G62	oR:Z:1	oH:i:1	oP:i:8 [...]
-simulated.975	16	1	6137	255	141M1D66M	*	0	0	GACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCC	3059(I2&*8I'0I6;617::'I8387'G8;'/I49?'/I496696:4?0?674<6436(I3>5'I7:9'F36(I:&.I;62669'H79906792;658;6&.I457'F=;87765(2I?4<5::'.I68>65(1I<'H57)6I9)I&-I:84474(I8989956945727<75*I5:=1884*I967;'.I97<6:6'G&F(2I'I	NM:i:1	MD:Z:141^A66	oR:Z:1	oH:i: [...]
-simulated.976	0	1	1935	255	125M1D18M1I32M1D45M	*	0	0	GAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCAATGTCGCCCCTCCATCGAAGCCGCGCACCAGCTCCCTACAATCCCGTCACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTG	5I(7F&5;9H'569I(646:;79;I(68:4I:+&57I(8:6;4::9G'3I'9I2(I1'9349;G'>669H'4I'33:48II0)&9=I(69866E&5?24:;966785I(7769:I-&89<I'<H'I,I'3<954I9+&9I*5:%7H'6I(7;897I(6?9:I/'672H'5I0'84:D6I):7716;377564I(7I/'I(77=I0'I)23I(;6I'I [...]
+simulated.972	16	1	4042	255	149M1D34M1I15M	*	0	0	AAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAGGGATTCCCAACTTGACTGTGAATAACAGACAGGTCCAATTGGCGGGTTACTGGCGCGAACATCCCAGGCTCGTTAGCTGAGGTCGGGCTCCACCAGAGACGAGTCGAGTTAAACG	'1I66=3>7)4I(I5(I(I)I8:9:445:'/I*I96::(3I649(I)I(I'H8<57)I77935'H:(2I7;3-9694;'G677(2I7'H(2I(I7(I8:969:7(I;(I061649*I;'G'G(I(I7'0I'I296*I758:'G468'.ID'H6415(I233879'I;2'/I:4(I7(I98894+5987;8;6)I'0I:8	NM:i:2	MD:Z:149A49	oR:Z:1	oH:i:1	oP:i:4041	 [...]
+simulated.973	0	1	5891	255	105M1D18M1D25M1I27M1I30M	*	0	0	TTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTATAAAATAATTCCTTACGCGAGCTCCTGCATTGAATCCGAACGGGTATTGGCAGCTCTTACGTAGTCTTGCCGGATTTCTGAGTGAAAGAAAGCCCCCCTATGATAGACACTCCGGCGTTATGAAACTGTACAGTACAGTACGGAGAGCTGGGACCTACTCAGCCGCCA	H'I1'59I1(8:7?I(68836>8I0'I(I at -'75I0'99:I>,'7I(I)I(H':76897697I'4<8:H'8I);I)3I'8I2(;9I(I*9196=8I*4;8;8796I+6I(I(8I0'82;6728I4)9I/'2II;/)&69<685779:3%6H'E&84I(876I1(78<425869578'<65I(98=;5;I/'9H'87<9;65I';G'9	NM:i:4	MD:Z:105T18 [...]
+simulated.974	0	1	8966	255	3M1D76M1I53M1D60M1I2M	*	0	0	CCAGGCGCGCGGTCACTACGAGTTTGCCGAAGCTCATGCGTCTTCGCGGGAGATTATGATGAATGTAATTGAATGATTGACATGTGCGTTGCACAACCACTACAAAGGAAGCCTCGAGATTCATGGGCCCGTCGCGGCATAGATGTTCCTCGTCACCGCCGTTAACTGGCGGTGAACTAACTGCGGATCGTACTAT	I)7I,77::5H'4;7965;98:I.&/I'7F'195;>88599;H'787I1(797I'469872F';3:I)I(7H'57:I)7'848>9195I,7:7:I'I(997>:I0'I(I'8I(635593I(77<I.'I.'9=7D:G'8599868;G'I(7<9;:=I(?I)5I(I(79I(<I(88H'04I(7<>5I(55295>;&7;	NM:i:4	MD:Z:3G129G62	oR:Z:1	oH:i:1	oP:i:896 [...]
+simulated.975	16	1	6137	255	141M1D66M	*	0	0	GACGAAGCCCCTTTCTATCTCTTGTCATTCACCCACAGGGTGCATATCGATGTACATCGCCGATAATCATTCGCCAGGGATCAGCGGCAGTGCGACACGATCCCTATAACGTGTATCCCTATACACCCGATCATTTGTTATAAACTTAAAGTGTACTTATAGTGCGTCAGTAGACCTGTGCTCGGAGACAAACGCTATCCGGTTTCC	3059(I2&*8I'0I6;617::'I8387'G8;'/I49?'/I496696:4?0?674<6436(I3>5'I7:9'F36(I:&.I;62669'H79906792;658;6&.I457'F=;87765(2I?4<5::'.I68>65(1I<'H57)6I9)I&-I:84474(I8989956945727<75*I5:=1884*I967;'.I97<6:6'G&F(2I'I	NM:i:1	MD:Z:141A66	oR:Z:1	oH:i:1 [...]
+simulated.976	0	1	1935	255	125M1D18M1I32M1D45M	*	0	0	GAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGGAAAGATCAGGTGTACCTGGAGTAGAAAAATAGGATCTCAAGCACTATGATCAGGTGATATTTGCTAATAACCAATGTCGCCCCTCCATCGAAGCCGCGCACCAGCTCCCTACAATCCCGTCACTTAGCGAGACGAGAGGTAAATTGTGAAATTACAATGAACCTTG	5I(7F&5;9H'569I(646:;79;I(68:4I:+&57I(8:6;4::9G'3I'9I2(I1'9349;G'>669H'4I'33:48II0)&9=I(69866E&5?24:;966785I(7769:I-&89<I'<H'I,I'3<954I9+&9I*5:%7H'6I(7;897I(6?9:I/'672H'5I0'84:D6I):7716;377564I(7I/'I(77=I0'I)23I(;6I'I [...]
 simulated.977	0	2	61	255	192M	*	0	0	GCTGGAGTCAATGCGCACGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCATATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCAGAT	5?5I(;5;8I(5284728?6I'41996388<F'<I'E&58:I)H'5693674375I)5I0'24I'I(I/'9739<877I2(989.9:I)5I/'6H'24754I(G'=4I:+&I(738I'I/'I(H':5I*<I/'E&9757G'9I)7I(H'3<257;45I(>5:I(8I(I-&69I<,'I)5I'9I'I):97998	NM:i:0	MD:Z:192	oR:Z:2	oH:i:1	oP:i:60	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.978	16	2	195	255	55M1I71M1I7M2D12M1I20M1I33M1I2M	*	0	0	TACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGTCACATAACAATCATCTCTTACCGGTAGTCAGCGAACTGAACGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCGTG	455<7'I4)I=(I(I9<:;6:74(I6:6)I;(I&-I9@',=I(I6&E5'I)I:=8'56'/I&F9=7498272738;7'H=6'I'0I9781(I:5(I76(I479886;7797979977(I94<53266&89:36,I@'H8<36575'F*'I(I575==7;-;'H386'H&8;'1I58',<I573(3I:9(I7878;749<'I=&76	NM:i:7	MD:Z:133 [...]
+simulated.978	16	2	195	255	55M1I71M1I7M2D12M1I20M1I33M1I2M	*	0	0	TACACTTACCGTTAAGAGCATCGTTCGTCCTGGTTTGTCCCCAACAATCCAAGCACGATTTAATATGATGTCGTCGTCCAGCCTTTGACTAATATTACAATCTATATGCATGTCTACTTATAGCGCGTCACATAACAATCATCTCTTACCGGTAGTCAGCGAACTGAACGCGGGTCGGGGAGATTTATCCTCATCTCTCTTCGTG	455<7'I4)I=(I(I9<:;6:74(I6:6)I;(I&-I9@',=I(I6&E5'I)I:=8'56'/I&F9=7498272738;7'H=6'I'0I9781(I:5(I76(I479886;7797979977(I94<53266&89:36,I@'H8<36575'F*'I(I575==7;-;'H386'H&8;'1I58',<I573(3I:9(I7878;749<'I=&76	NM:i:7	MD:Z:133 [...]
 simulated.979	16	1	3463	255	81M1I29M1I101M	*	0	0	CCCTACCCAGCATGTAATGGTAAATCTTTAAGAGACCAGACGGGCAAGCCTCTCAGTGCCTAAAGAAGTCGGTTGCCTGGGTCCGTCACACCCCGACTTTGGTTCATTGCTACGATTAATTGGTATTCGTTTGTGATTCCGGCCTGAGATCGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGG	'1I%<(1I776A/79'I4(I5&-I44'.I'G7554)I8587(3I5'G8'I78:7::75'I<(1I1'G8<8(I&F5*I8(1I%(I89864<&+;I687'/I(I(I:6)I8:9'=7<'I'H&F(I=9&E77'0I7558(I(I)I(I8:56632'0I1(I81(I98(I<&*9I6475::'F4:5@(I58'I=50>855(I3=8'G:'I',<I=9'F	NM:i:3	MD:Z:3C2 [...]
-simulated.980	16	2	78	255	82M1I66M1D50M1I15M	*	0	0	CGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCACTATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCGTTTGACTAATATTAC	>:5(I365;77957(I8*I&F588(I(I78=;96<486'F5'/I9>'G(I(2I5<<9<;69'0I34:57>(I6'/I:(I685'65'G(I62',>I(I7;9(I'0I(I(I:7(I8&.I(I5797(I9'F;(I(I:796;677(I;79(I9C'/I75&+:I)I8(I5)I&F17775&-I)I373977<A55859:(I84'I&'0I8979'H6:'G69	NM:i:3	MD [...]
-simulated.981	16	1	5745	255	7M1D45M1I59M1D72M	*	0	0	ATCGCATAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTACCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTA	5:<;61:(/FI(I87)I;7456(I(IA78(I567:'H97(I658;96946(I%(I88(I(I5'G79:398:=96'I?<2;(I8;;::397953)I199847)I79'H(I64;D95:22:?7684;5(I85&F6(I76)I9&-I:9(I'/I1>&.I;6:5(I:852:96'.I)I',=I16&-I93	NM:i:3	MD:Z:7^A104^A72	oR:Z:1	oH:i:1	oP:i:5744	oS:A:R	XE:i:3	XS:i:0	XI:i:0
+simulated.980	16	2	78	255	82M1I66M1D50M1I15M	*	0	0	CGTAAGCACATAGTGGTCCAAGTATTCCTGTCAGAGCGTTAGGGTCTTGGCCCGTATCTCTGGGTCTACGTTGCCCTCCTCACTATTGGCGTTTTAACTGCCGGGTTAAGAGGTGGGTTACACTTACCGTTAAGAGCATCGTTCGTCCTGTTTGTCCCCAACAATCCAAGCAGATTTAATATGATGTCGTCGTCCAGCCGTTTGACTAATATTAC	>:5(I365;77957(I8*I&F588(I(I78=;96<486'F5'/I9>'G(I(2I5<<9<;69'0I34:57>(I6'/I:(I685'65'G(I62',>I(I7;9(I'0I(I(I:7(I8&.I(I5797(I9'F;(I(I:796;677(I;79(I9C'/I75&+:I)I8(I5)I&F17775&-I)I373977<A55859:(I84'I&'0I8979'H6:'G69	NM:i:3	MD [...]
+simulated.981	16	1	5745	255	7M1D45M1I59M1D72M	*	0	0	ATCGCATAAAAGGCAGGCATCTAATTATATTGCATGGCATTGTGTGTCGCTTACCTACCTTCGGTCACTGCTCACCAGACGGATATAGTAGTATTATGTATAACGCCGGACTACGCATGAGCGTCGTTCGTTGCCACTTGAAATGTTCCCGAGGGTGATCCATATGCTCCCTTAAAATCGGGTA	5:<;61:(/FI(I87)I;7456(I(IA78(I567:'H97(I658;96946(I%(I88(I(I5'G79:398:=96'I?<2;(I8;;::397953)I199847)I79'H(I64;D95:22:?7684;5(I85&F6(I76)I9&-I:9(I'/I1>&.I;6:5(I:852:96'.I)I',=I16&-I93	NM:i:3	MD:Z:7A104A72	oR:Z:1	oH:i:1	oP:i:5744	oS:A:R	XE:i:3	XS:i:0	XI:i:0
 simulated.982	0	1	6653	255	50M1I43M1I123M	*	0	0	GCCAGTCCTTTGCAGTCTGATGTACCAATACTCTCGCATATCCGCCGGACGACTAAGATCTGGCACCCCTAAAGCTGGGCTTTTTCTGAATTCAGTCAGGCCGTGAGGCTGGTATGGGGTGCAACTTCGCTTCCAAGGAGTCCGGCTTTTCCTCCGCGCGGTCGCTACCATATAGGAGAGCACATACACCGGTGGGTAATACGCGTTACACCGTGGGC	2I(5;8I)I/':46366696587=I(H'6:::778666874I)6I(H'78%:68I'78678I)4;I7*&8I0'67:I.&1II2*&85;I(I(=7%553I(I)92<5I(/7I(779I:+&5;5F'8I':46I(I(G'I(987F'H'8I=,'I)<I(7768I(978929H'5;837I'6A5666 at 63::=H'I)4I.&6I):73587F&46:I)66I/'9	NM:i:2 [...]
 simulated.983	16	1	3229	255	47M1I138M1I18M	*	0	0	GCTATTAAAACGAACTGGGTGATTTTGGTATCCGTTAAAACGCGGCAGTGATTAACGGTCCTATTTCATTGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGAATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGAATGACATGAAAGACCGGTATGTGAACAGTCGTACCTTTCCCGACTAACA	894:(I(/FI&5(I86'1I;44'-AI(I944'G8&E'- at I9:9(I43%:;3)I(I7(I8(I=1'/I75)I97:66844537+I3'I'G3'- at I8(I'F>84:&E7=(I&E92;&.I2888&+:I5'I66&D(I46997&*8I'I(I:&-I576:8)I68<9710'0I8<(I)I3;559:)I75535&=5'G'/I'/I8644'I57	NM:i:3	MD:Z:10A192	oR:Z:1	oH:i: [...]
-simulated.984	16	1	3911	255	33M1I32M1D46M1I103M	*	0	0	TGTATGCGAGACTTTCATGCCTATATTGCTTTACTCCAAATGCATGAGTAATTGACTGCGTCGCGCGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGTCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAG	42388>66:847'/I8<79&E88:8'G=:'0I6'9)I'0I:<8:>8:37(I(I17958:7<556?4+I3'H69'G57;6'G2517979(I<(I34'I6:89759'0I&+9I5&'I788:66653)I5:'0I'- at I7;58;4'0I'H9'G(I'H8576<8<;&-I(I8891&-I8,8(I(I'G'H959:'H at 5:96*I7(3I356;67747'G:8<:	NM:i [...]
-simulated.985	16	1	5222	255	65M1I15M1D98M1I27M	*	0	0	CTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGACAGACGGACAGCCTTGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGTACGGGTGATGCCAGGTGGGTGGTGAAA	65=:5;48(3I9:7(I0(I'G7(I376>(I7'I1>73725385:)I55962'G)I693'/I'.I8%58:4;)I5559'H'GD8:16(I(I7=353:0&.I77'.I9'.I(I'I;)I5(I7657898<'.I:7;4477&+;I6)I6)I387'/I887A:2;677'G67)I;?38578(I9&68'0I5:768'I8'I4'0I9)I95'0I	NM:i:3	MD:Z:80^G125	oR: [...]
-simulated.986	16	1	6386	255	38M1D179M	*	0	0	TTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGA	'.I(I46'G;97:766(I9<8;2756>'H'/I)I3:98,I:66'G86'I637&*8I67(I87(I)I)I868(I:9'I7<6(I48416971(I=279(I98'I(I<80586873372@(I:9;(I9699396(1I6:68972'H;763389::49'I5866:=5(I5(I;:32:6'.I;;'G(I9(I9(I4658'H9878%)0GI&-I8(I5795767	NM:i:1	MD:Z: [...]
-simulated.987	0	1	3611	255	149M1D57M	*	0	0	CGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGAT	8I.&;I):7I'77F&4I:+&7:5=:6I'5385I'8:I)4437:69I(479H'6I(I>,'77I(8I)17:H'I/'I=,'39966I)I)6:;I(;67484:I(99I);888I(H'H':6I-&:5I'I1(I.&I(9I(93I-&4;7286992I,89I3(I(3I.&:6I)71<6969I':I'7763I-&87I*E&675H'5<846778=>	NM:i:1	MD:Z:149^T57	oR:Z:1	oH:i:1	o [...]
-simulated.988	0	1	1790	255	7M1D167M1I34M	*	0	0	ACCTTGTCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATACGGGGTGCCTGTCACTCAACAATGGGAAAGATCAG	4I'G'=6I,E&<I):69?527:?65478I):478;G'.1I2(I/'I(:99I;+&3544I'3I(I)I(5F&<59I(68:5I(I(:869;58:;87H'I(877I(I/'7F&278I(81479I(74I)G'79=I)573I(79:82I(8I(2I(768I(8:2I(/586883>E&4838(I9*&>:I(;7;:7;76I'9I)9I/'I.&:6663;	NM:i:2	MD:Z:7^C201	oR:Z:1 [...]
-simulated.989	0	1	792	255	87M1D111M	*	0	0	ACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGT	6I;+&75739<=8;<4:4568<I.'<406:757998I):85978636:98684I';7:;5:46:9I(9H'G'75I(799I(:H'4H'I+G'879843H'I(8514=I(55<I9*&7I(=46;1924945;I;+&H'8788I/'G'47I.&<7I);5?:;<<3776946:;3::I)84578;I);4645778/686I)6	NM:i:1	MD:Z:87^C111	oR:Z:1	oH:i:1	oP:i:791	oS:A:F	XE [...]
-simulated.990	0	1	5421	255	101M2D93M	*	0	0	GGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATT	I(:;II0)&655@>I):7:;:687I(92I(;@8<88I(;85659;7.G'F'5;6G'8I(238578H'I(8I(8:878I):855=685I'8I0'75I(7:I,I,789B9I(87<I-&68G'I(I.&7I(1473I):I'7:8I'6675199I(6I(66569>>:8:;9I(46H'I)36:977G'798 at 58G'<8I(	NM:i:2	MD:Z:101^AG93	oR:Z:1	oH:i:1	oP:i:5420	oS:A:F	XE:i:2	 [...]
+simulated.984	16	1	3911	255	33M1I32M1D46M1I103M	*	0	0	TGTATGCGAGACTTTCATGCCTATATTGCTTTACTCCAAATGCATGAGTAATTGACTGCGTCGCGCGGTAAGTAATGACTTAGACAGAGGTCCTGCCTGACAGTAAACCCCGTCCACACAGCTCGGACTTTAAAACAGCTGCCCAAGTTCCGGTGAGACTCTTTGGATACGGGATCGGAATTGGACGTAAGTCACTTCTTTATCAGCGTACCACAG	42388>66:847'/I8<79&E88:8'G=:'0I6'9)I'0I:<8:>8:37(I(I17958:7<556?4+I3'H69'G57;6'G2517979(I<(I34'I6:89759'0I&+9I5&'I788:66653)I5:'0I'- at I7;58;4'0I'H9'G(I'H8576<8<;&-I(I8891&-I8,8(I(I'G'H959:'H at 5:96*I7(3I356;67747'G:8<:	NM:i [...]
+simulated.985	16	1	5222	255	65M1I15M1D98M1I27M	*	0	0	CTCGACATCCCATCTTACCAAGTTGTAGTTATTCAGCGCTGAGTCCTGCTCGGAACTAGGGTTTGACAGACGGACAGCCTTGTACATTAAGCTACTCGGGCGCCCGCCCAAGGCTTGCCGATGCATGTTTCTGCTGAGGGGTCCGCCTATAAAGTGACACTGTCCTGAACTCAGATAAGTACGGGTGATGCCAGGTGGGTGGTGAAA	65=:5;48(3I9:7(I0(I'G7(I376>(I7'I1>73725385:)I55962'G)I693'/I'.I8%58:4;)I5559'H'GD8:16(I(I7=353:0&.I77'.I9'.I(I'I;)I5(I7657898<'.I:7;4477&+;I6)I6)I387'/I887A:2;677'G67)I;?38578(I9&68'0I5:768'I8'I4'0I9)I95'0I	NM:i:3	MD:Z:80G125	oR:Z [...]
+simulated.986	16	1	6386	255	38M1D179M	*	0	0	TTTGGTCTTGAGCGCTCCGTAGTCGACAAGGGCCGCTGAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGATAGTATGAACGCGTAGTTGCCGTGCGCAAAGCAACCGCCTGGTGATCCTAGCTTTTTCCCATTCAGACGA	'.I(I46'G;97:766(I9<8;2756>'H'/I)I3:98,I:66'G86'I637&*8I67(I87(I)I)I868(I:9'I7<6(I48416971(I=279(I98'I(I<80586873372@(I:9;(I9699396(1I6:68972'H;763389::49'I5866:=5(I5(I;:32:6'.I;;'G(I9(I9(I4658'H9878%)0GI&-I8(I5795767	NM:i:1	MD:Z: [...]
+simulated.987	0	1	3611	255	149M1D57M	*	0	0	CGGGAGGATGGTGTTATTTTGTCTACGGTCTACCACTTGATCTAGAAGCTCCGCCTTTTGCGGACCTCAGGTTTAAAAGCTGCGGAAGCTAACGCTCGTAATCGGATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTCTAAATTGAAACTCCAGCTAGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGAT	8I.&;I):7I'77F&4I:+&7:5=:6I'5385I'8:I)4437:69I(479H'6I(I>,'77I(8I)17:H'I/'I=,'39966I)I)6:;I(;67484:I(99I);888I(H'H':6I-&:5I'I1(I.&I(9I(93I-&4;7286992I,89I3(I(3I.&:6I)71<6969I':I'7763I-&87I*E&675H'5<846778=>	NM:i:1	MD:Z:149T57	oR:Z:1	oH:i:1	oP [...]
+simulated.988	0	1	1790	255	7M1D167M1I34M	*	0	0	ACCTTGTCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATACGGGGTGCCTGTCACTCAACAATGGGAAAGATCAG	4I'G'=6I,E&<I):69?527:?65478I):478;G'.1I2(I/'I(:99I;+&3544I'3I(I)I(5F&<59I(68:5I(I(:869;58:;87H'I(877I(I/'7F&278I(81479I(74I)G'79=I)573I(79:82I(8I(2I(768I(8:2I(/586883>E&4838(I9*&>:I(;7;:7;76I'9I)9I/'I.&:6663;	NM:i:2	MD:Z:7C201	oR:Z:1	 [...]
+simulated.989	0	1	792	255	87M1D111M	*	0	0	ACCCCAGATCGTGAGTATACACAAAGTAGAGCGAGCAAGCTACACATGATCTACCATGTCGTCACTTCAAGGCAGGTGTCCGCCTGGCCTTCTCAGACCTTCTCTGTTCATAAAACTTACGCATGATGCACCCCGGATAGCCCTTCAGGGTAGGTGTCTAGATATGCGAGCGACCGACGACTTATAGTCAGCTACGGT	6I;+&75739<=8;<4:4568<I.'<406:757998I):85978636:98684I';7:;5:46:9I(9H'G'75I(799I(:H'4H'I+G'879843H'I(8514=I(55<I9*&7I(=46;1924945;I;+&H'8788I/'G'47I.&<7I);5?:;<<3776946:;3::I)84578;I);4645778/686I)6	NM:i:1	MD:Z:87C111	oR:Z:1	oH:i:1	oP:i:791	oS:A:F	XE: [...]
+simulated.990	0	1	5421	255	101M2D93M	*	0	0	GGTGAAAAACACGTGGAGCTCGCGTTCATTACGCTGAACAGTAGTCATTCCACTAACGGTATCATGGAATAATACTATTGCGAGCTCTTGAAACATTACAAGGCATGTCCATGCCCAGTTAACCCACCAGTACCAGGTATCCTGCTGCGAATGGTCACTAGATCAGCCGTAAGGTGCACTCCAGAGTGTTCATT	I(:;II0)&655@>I):7:;:687I(92I(;@8<88I(;85659;7.G'F'5;6G'8I(238578H'I(8I(8:878I):855=685I'8I0'75I(7:I,I,789B9I(87<I-&68G'I(I.&7I(1473I):I'7:8I'6675199I(6I(66569>>:8:;9I(46H'I)36:977G'798 at 58G'<8I(	NM:i:2	MD:Z:101AG93	oR:Z:1	oH:i:1	oP:i:5420	oS:A:F	XE:i:2	X [...]
 simulated.991	0	1	4331	255	190M	*	0	0	TGCGCATTGAAGGACGTTAGGTGGCCTCTATTACGCCATCGAGAATGCGTTCGCTTTAGTGACGTGATATAGTGCGGGGGCCGTGATCGCGGAGTAGGTTAACACCCGTCGCCGATTATCACAAGTTTTTGACACATTCTACATCTACCTTGGCACATCCCGTTTCCCGGTGGGGTAGCTTCAATCGTCT	<98787I)7I)G'467I(5I(:I)I*9947I)84=I'5:61;9G'9325G'85:I2(63:4693:996655:599IH0)&I)68797475H'7338H'I(I(47I2(5475I'85I(99854I(6II0)&56:667I(83985A75;I(I(I):3;89I,&8I.&I3(H'6I=,'9674I'8I(57:8;7	NM:i:0	MD:Z:190	oR:Z:1	oH:i:1	oP:i:4330	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.992	0	1	3727	255	41M1I33M1D131M	*	0	0	CAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAACTTGAAACTCCAGCTAGATTGAACGAGTTTATGGTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCT	7I/':4I(I-&I.&E&=I*78I0'087;;885;I1':6I-&'I(9I.&=3H'46<8858I'5I'3546I0'69I)C745I(:38;:9688=58:895:;>85I0'I(6566I(666H'I/'I)8I)48:7:67688I)6I(>I(49;@5?4I(:I)7866897II8-(%63458=85I)I'5E&7419679844:6I4)889;H'3	NM:i:2	MD:Z:74^T131	oR:Z:1	oH: [...]
-simulated.993	16	1	3715	255	68M1I107M1D45M	*	0	0	GATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTACGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATA	56:>8(I'I'I76(3I5>'I&-I(1I&F1'I;<&-I89;343368&-I:8(1I'I9'/I56(I6787;+99(I4'H4869'/I46(I'G9;;'I9<<;9732:7;47;8;59966&.I(I677;'I388(I(2I'I6'I44<<5:99=4(I6'H8(I9665868(I8)I68388:4(-7II3556883<(I'I;(I788887238<7>'.I6859(I8365 [...]
+simulated.992	0	1	3727	255	41M1I33M1D131M	*	0	0	CAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAACTTGAAACTCCAGCTAGATTGAACGAGTTTATGGTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCT	7I/':4I(I-&I.&E&=I*78I0'087;;885;I1':6I-&'I(9I.&=3H'46<8858I'5I'3546I0'69I)C745I(:38;:9688=58:895:;>85I0'I(6566I(666H'I/'I)8I)48:7:67688I)6I(>I(49;@5?4I(:I)7866897II8-(%63458=85I)I'5E&7419679844:6I4)889;H'3	NM:i:2	MD:Z:74T131	oR:Z:1	oH:i [...]
+simulated.993	16	1	3715	255	68M1I107M1D45M	*	0	0	GATGATTAACCACAAACACCTTTGGGTTGCCTACCCGCAGATGTATTTCTAAATTGAAACTCCAGCTACGATTGAACGAGTTTATGGTTGCGCCAGTGCTAGATCGTACGTCTCTCCCGGTGACAACATGGAAATTCGGAGTGTGCGAGAACTTCAATCAGCTGAATGGTCACGAGAAAAATGATCGTGCCGGTAATGTATGCGAGACTTTCATGCCTATA	56:>8(I'I'I76(3I5>'I&-I(1I&F1'I;<&-I89;343368&-I:8(1I'I9'/I56(I6787;+99(I4'H4869'/I46(I'G9;;'I9<<;9732:7;47;8;59966&.I(I677;'I388(I(2I'I6'I44<<5:99=4(I6'H8(I9665868(I8)I68388:4(-7II3556883<(I'I;(I788887238<7>'.I6859(I8365 [...]
 simulated.994	0	1	2671	255	195M	*	0	0	CATGGCATCGCAGAGATCGGTGACCGCAGACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGC	899I(1638=46833766I)9/;I(465267;5A9I(8I)::9>67679;94G';I:+&57I1'0I/'I8*&:9H'808I1(I(361604;G'78H'I)6I>,'<78878I(87H'I1(I(99850491I;+&9E&6I:+&>I2(8:>5I)85776<58:9655I7*&67II1)&2?5<<7I(363H'768I(48	NM:i:0	MD:Z:195	oR:Z:1	oH:i:1	oP:i:2670	oS:A:F	XE:i:0	XS:i:0	XI:i:0
-simulated.995	0	1	7606	255	91M1I110M1D15M1I6M	*	0	0	GAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACGAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCTGCCTTTAGCTCGCGAAT	2I*6566<=48I)889;I(6G'I(:36>87>89?8I(I1(4H'<8I(8I0'I(8:=88?6;525I(794I(77I.';>878I/'634G':3&H'9:4:5/I(G'I(75I'48G'I(5839;I'738I(8;5:66I)I(I)763I(89::495I)I(I(7;I/';83I at -'1I(I-&H'I(A974I(<856:I'67I-&34:<IC.(:8H'I2(77 [...]
-simulated.996	0	1	3256	255	40M1D39M1D46M1D87M	*	0	0	GTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCC	8>:7I)6I(I8*&:76I'58945I*I(6F&,I(6;I.'<8B66697568566F'9I(I)8I?-'5I'I*4987I(59I(C;28I1(45<;I:+&5I'96I(I(5C666I:+&I'I'9I0'91579C:659455I-&<4I(I(;2A4;5H'5967476I)I0'I/'1594I(8;854:9<46;65=48>I(86272IB.(75I(II1)&9I.'	NM:i:3	MD:Z:40 [...]
-simulated.997	16	1	2699	255	37M1D63M1D94M1D7M	*	0	0	GACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGATGTG	57=2864)I4(I87;8:7233:45(I7&,<I>:'.I;,I&*9I46)I889'/I(I88986;:&F95'I'H4'- at I859885(I3:'I'0I'I99:74864*6I6(I2&,<I5'1I;93>'H6:::6461956>9',=I28'+3II2;4869'H;76'G:2:*I65436(I&D3)I7:68:'I78)I96)I6698+I7:><7	NM:i:3	MD:Z:37^T63^C94^G7	oR:Z:1	oH: [...]
-simulated.998	16	1	6326	255	76M1D131M	*	0	0	CAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGA	4&-I877596(I'I'0I'I88*I:676&*3II(I<7)I)I&F9967:56(I394(1I3(I&-I&E59(I:6:8<76C:7=46>864)I(2I'I8686'.I8:5'I9?'G934&*8I46(I97(I(I(I79:)I4:(I06:*I7;553254(I177;'I39'I'G766 at 988:493?7)I=<4)I5377865(2I446746:'I:587	NM:i:1	MD:Z:76^C131	oR:Z:1	oH:i: [...]
+simulated.995	0	1	7606	255	91M1I110M1D15M1I6M	*	0	0	GAATGATAGCGAATAGTGGTGGAACAGTGCGCGCGAAGGGAGGCTCCACCCGGTAGTGTCGATCAATGTGGTGCCCGAGTGTTTCATGGACGAATCACGCGGAACCAGAATGCCTTCACTCAAGCAGGTCGATGAAGGTTATAGGCTGATCTGGCCGGCATTTCTCGGGGCAACCCAACCTAGTGGATCGATTACGGGATAGCCCCTGCCTTTAGCTCGCGAAT	2I*6566<=48I)889;I(6G'I(:36>87>89?8I(I1(4H'<8I(8I0'I(8:=88?6;525I(794I(77I.';>878I/'634G':3&H'9:4:5/I(G'I(75I'48G'I(5839;I'738I(8;5:66I)I(I)763I(89::495I)I(I(7;I/';83I at -'1I(I-&H'I(A974I(<856:I'67I-&34:<IC.(:8H'I2(77 [...]
+simulated.996	0	1	3256	255	40M1D39M1D46M1D87M	*	0	0	GTATCCGTTAAAACGCGGCATGATTAACGGTCCTATTTCATGACATAGATGAGGCTTAACTTTTGCCGGTCAGCCTCGGATAGTTTGCTCTTTTCGGAGAACCGCTATAAAACCAAGTTTAGCTGATGACATGAAAGACCGGTATGTGAACAGTCTACCTTTCCCGACTAACATCGTGACTATGTGATAAGTATCAAAATCAACCCCCACCC	8>:7I)6I(I8*&:76I'58945I*I(6F&,I(6;I.'<8B66697568566F'9I(I)8I?-'5I'I*4987I(59I(C;28I1(45<;I:+&5I'96I(I(5C666I:+&I'I'9I0'91579C:659455I-&<4I(I(;2A4;5H'5967476I)I0'I/'1594I(8;854:9<46;65=48>I(86272IB.(75I(II1)&9I.'	NM:i:3	MD:Z:40 [...]
+simulated.997	16	1	2699	255	37M1D63M1D94M1D7M	*	0	0	GACTCGCTTCGGACAGCATAGTGATTCGGGGTGTTTCTTGGGGTCTTAGATTTAAGCATCAGAACTCCGGCGGGGCGAGCGAAGTCCTTTGGTGCTATGTCCCTAACTTTTGAAACTAGAATGCGCATCGATATAAAAGTAAAAATCACTCTTCTAGGTGCAAGCGCTCCGGCTTATCGTCCATCCGACCAGTAGGATGTG	57=2864)I4(I87;8:7233:45(I7&,<I>:'.I;,I&*9I46)I889'/I(I88986;:&F95'I'H4'- at I859885(I3:'I'0I'I99:74864*6I6(I2&,<I5'1I;93>'H6:::6461956>9',=I28'+3II2;4869'H;76'G:2:*I65436(I&D3)I7:68:'I78)I96)I6698+I7:><7	NM:i:3	MD:Z:37T63C94G7	oR:Z:1	oH:i:1 [...]
+simulated.998	16	1	6326	255	76M1D131M	*	0	0	CAAACGCTATCCGGTTTCCGCAACTAGCCCCCAACACCAAGGTGCGCATGGAGACCCAGGTTTGGTCTTGAGCGCTCGTAGTCGACAAGGGCCGCTGAAACACGGAGCCATGAAAACGTTCGAATTAACAGCCGACCGTGTTATAGTAGCGGTCATAATATTGGAGCGTATGAGTCATTGCGTTCACACTGAAATCGATCTAACTGA	4&-I877596(I'I'0I'I88*I:676&*3II(I<7)I)I&F9967:56(I394(1I3(I&-I&E59(I:6:8<76C:7=46>864)I(2I'I8686'.I8:5'I9?'G934&*8I46(I97(I(I(I79:)I4:(I06:*I7;553254(I177;'I39'I'G766 at 988:493?7)I=<4)I5377865(2I446746:'I:587	NM:i:1	MD:Z:76C131	oR:Z:1	oH:i:1 [...]
 simulated.999	16	1	1787	255	203M	*	0	0	GAGACCTTGTCCCTTGCCACAGTATGATCGAGAATGACTAACTGGGCCCTTGCTGGGGCATAGGTGGAATTGAATGACCGAGCTTCCTATCATGATACAAGGCTCGGCCCGTTGACTTATCGACCACGGTTGTCAAGTACCTCACTCCGAACTTGCATTCGCTTACGACTCTGGTATAGGGGTGCCTGTCACTCAACAATGGG	7797'H(I5:'0I'F5(I178>;6>:6866B9(I76=54(I87&-I'.I'F155',>I6457(I<&E(I'F6&E7<4(I7673(I'H45279588788'I'I96=*I&-I6(I:64'I51:<>'I;;(I(I676)I<67'G87848'H8'F6(I4:='I7;5(I7:7::862(I:66:',<I;;(I;:575:51(I7'I;'.I	NM:i:0	MD:Z:203	oR:Z:1	oH:i:1	oP:i:1786	oS:A: [...]
-simulated.1000	0	1	7400	255	69M1D98M1D36M	*	0	0	CGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTA	35956D&I(9:59;64<=359;:8=I/'7I(497I(:I:+&787989977G'H'48I'I)773687I4)I+83718:6G';7I(2I/'I(I(:6H'I)898:89599I-&7244I)I-&65I0'G'I/'58I'I(I)I*6>5:<;I(41I(I)5:87I(95373I'6C9I)I(;86I(;::I);4I(7H'I)7I'70349;:9	NM:i:2	MD:Z:69^G98^G36	oR:Z:1	oH:i:1 [...]
+simulated.1000	0	1	7400	255	69M1D98M1D36M	*	0	0	CGTAGCCTTGTGTGAGTGCGAGATGCCCACCATCAAGCCCCACAGACAGCAAGGACAAGGTATACACCCGGCAGTACTGGATCCATTTAAGGCTAATTGATGCATATCCCTGCACCTTTCATTTCCTTTCTGGCCAAGGTGTGCAGGTCAAGGTCTGAAGTGCTGGAGACCTTCAGAAGTGTTAGTTATTCCATTCTATAGTA	35956D&I(9:59;64<=359;:8=I/'7I(497I(:I:+&787989977G'H'48I'I)773687I4)I+83718:6G';7I(2I/'I(I(:6H'I)898:89599I-&7244I)I-&65I0'G'I/'58I'I(I)I*6>5:<;I(41I(I)5:87I(95373I'6C9I)I(;86I(;::I);4I(7H'I)7I'70349;:9	NM:i:2	MD:Z:69G98G36	oR:Z:1	oH:i:1	o [...]
diff --git a/apps/micro_razers/CMakeLists.txt b/apps/micro_razers/CMakeLists.txt
index fe37950..429c19c 100644
--- a/apps/micro_razers/CMakeLists.txt
+++ b/apps/micro_razers/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_micro_razers)
 message (STATUS "Configuring apps/micro_razers")
 
-set (SEQAN_APP_VERSION "1.0.3")
+set (SEQAN_APP_VERSION "1.0.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/ngs_roi/CMakeLists.txt b/apps/ngs_roi/CMakeLists.txt
index 38d6968..e9519bf 100644
--- a/apps/ngs_roi/CMakeLists.txt
+++ b/apps/ngs_roi/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_ngs_roi)
 message (STATUS "Configuring apps/ngs_roi")
 
-set (SEQAN_APP_VERSION "0.2.4")
+set (SEQAN_APP_VERSION "0.2.3")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/pair_align/CMakeLists.txt b/apps/pair_align/CMakeLists.txt
index c3f5155..604e8e7 100644
--- a/apps/pair_align/CMakeLists.txt
+++ b/apps/pair_align/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_pair_align)
 message (STATUS "Configuring apps/pair_align")
 
-set (SEQAN_APP_VERSION "1.3")
+set (SEQAN_APP_VERSION "1.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
@@ -35,9 +35,6 @@ add_definitions (-DSEQAN_APP_VERSION="${SEQAN_APP_VERSION}")
 add_definitions (-DSEQAN_REVISION="${SEQAN_REVISION}")
 add_definitions (-DSEQAN_DATE="${SEQAN_DATE}")
 
-# Add CXX flags found by find_package (SeqAn).
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}")
-
 # Update the list of file names below if you add source files to your application.
 add_executable (pair_align pair_align.cpp)
 
@@ -48,6 +45,9 @@ add_subdirectory(lib)
 # Add dependencies found by find_package (SeqAn).
 target_link_libraries (pair_align pair_align_lib ${SEQAN_LIBRARIES})
 
+# Add CXX flags found by find_package (SeqAn).
+set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}")
+
 # ----------------------------------------------------------------------------
 # Installation
 # ----------------------------------------------------------------------------
diff --git a/apps/param_chooser/CMakeLists.txt b/apps/param_chooser/CMakeLists.txt
index b9e09ca..92471f0 100644
--- a/apps/param_chooser/CMakeLists.txt
+++ b/apps/param_chooser/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_param_chooser)
 message (STATUS "Configuring apps/param_chooser")
 
-set (SEQAN_APP_VERSION "0.0.1")
+set (SEQAN_APP_VERSION "0.0.0")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/rabema/CMakeLists.txt b/apps/rabema/CMakeLists.txt
index 6e0ed13..7006d5b 100644
--- a/apps/rabema/CMakeLists.txt
+++ b/apps/rabema/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_rabema)
 message (STATUS "Configuring apps/rabema")
 
-set (SEQAN_APP_VERSION "1.2.2")
+set (SEQAN_APP_VERSION "1.2.1")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/rabema/curve_smoothing.h b/apps/rabema/curve_smoothing.h
index a2b1fdb..3048d23 100644
--- a/apps/rabema/curve_smoothing.h
+++ b/apps/rabema/curve_smoothing.h
@@ -258,7 +258,7 @@ void smoothErrorCurve(String<WeightedMatch> & errorCurve)
             {
                 currentMax = _max(currentMax, value(it).distance);
 //                 std::cerr << "value(" << value(it) << ") = " << currentMax << std::endl;
-                value(host(it)).distance = currentMax;
+                value(it).distance = currentMax;
             }
         }
 
diff --git a/apps/rabema/rabema_build_gold_standard.cpp b/apps/rabema/rabema_build_gold_standard.cpp
index 1e92398..6169ffe 100644
--- a/apps/rabema/rabema_build_gold_standard.cpp
+++ b/apps/rabema/rabema_build_gold_standard.cpp
@@ -338,7 +338,7 @@ int intervalizeAndDumpErrorCurves(TStream & stream,
                 int gsiDistance = options.oracleMode ? readAlignmentDistances[readId] : distance;
                 if (options.oracleMode && options.maxErrorSet && gsiDistance > options.maxError)
                     continue;  // Skip if cut off in Rabema oracle mode.
-                GsiRecord gsiRecord(CharString(prefix(readNameStore[readId], length(readNameStore[readId]) - 2)), flags,
+                GsiRecord gsiRecord(prefix(readNameStore[readId], length(readNameStore[readId]) - 2), flags,
                                     gsiDistance, contigNameStore[it2->contigId],
                                     it2->isForward, it2->first, it2->last);
                 writeRecord(stream, gsiRecord, Gsi());
diff --git a/apps/razers/CMakeLists.txt b/apps/razers/CMakeLists.txt
index 3788365..9b62c61 100644
--- a/apps/razers/CMakeLists.txt
+++ b/apps/razers/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_razers)
 message (STATUS "Configuring apps/razers")
 
-set (SEQAN_APP_VERSION "1.5")
+set (SEQAN_APP_VERSION "1.4")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/razers2/CMakeLists.txt b/apps/razers2/CMakeLists.txt
index dcc9476..d72c492 100644
--- a/apps/razers2/CMakeLists.txt
+++ b/apps/razers2/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_razers2)
 message (STATUS "Configuring apps/razers2")
 
-set (SEQAN_APP_VERSION "2.5")
+set (SEQAN_APP_VERSION "2.4")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/razers2/outputFormat.h b/apps/razers2/outputFormat.h
index 78f2e87..34a0156 100644
--- a/apps/razers2/outputFormat.h
+++ b/apps/razers2/outputFormat.h
@@ -785,8 +785,9 @@ void dumpMatches(
 
 		case 2:	// Eland Format
 			_sep_ = '\t';
-			for (unsigned readNo = 0; readNo < length(store.readSeqStore); ++readNo)
+			for(unsigned readNo = 0; readNo < length(store.readSeqStore); ++readNo)
 			{
+				TQuality	qual = getValue(store.alignQualityStore, (*it).id);
 				switch (options.readNaming)
 				{
 					// 0..filename is the read's Fasta id
@@ -814,7 +815,6 @@ void dumpMatches(
 					}
 				} else
 				{
-					TQuality	qual = getValue(store.alignQualityStore, (*it).id);
 					SEQAN_ASSERT_EQ(readNo, (*it).readId);
 					file << store.readSeqStore[readNo] << _sep_;
 					unsigned bestMatches = 1;
diff --git a/apps/razers3/CMakeLists.txt b/apps/razers3/CMakeLists.txt
index 4cfc549..3c10464 100644
--- a/apps/razers3/CMakeLists.txt
+++ b/apps/razers3/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_razers3)
 message (STATUS "Configuring apps/razers3")
 
-set (SEQAN_APP_VERSION "3.5")
+set (SEQAN_APP_VERSION "3.4")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/razers3/README b/apps/razers3/README
index cd912ce..ad0e81c 100644
--- a/apps/razers3/README
+++ b/apps/razers3/README
@@ -7,7 +7,7 @@ Table of Contents
   1.   Overview
   2.   Installation
   3.   Usage
-  4.   Output Formats
+  4.   Output Format
   5.   Examples
   6.   Contact
   7.   References
@@ -44,8 +44,7 @@ bit-parallel approximate string search algorithm proposed by Myers (1999). The
 found matches are recorded, duplicate-filtered, and ranked by the number of
 errors (and deviation from a given paired-end insert size). At the end, the
 results are written to an output file (-o FILENAME). Besides others, RazerS 3
-supports a very efficient native format (.razers) and the commonly used SAM
-and BAM formats (.sam or .bam).
+supports a very efficient native format and the SAM format (-of sam).
 
 ------------------------------------------------------------------------------
 2. Installation
@@ -192,7 +191,7 @@ pairs.
   [ -o FILE ],  [ --output FILE ]
 
   Change the output filename to FILE. By default, this is the (first) read
-  filename extended by the suffix '.razers'.
+  filename extended by the suffix '.result'.
 
   [ -v ],  [ --verbose ]
 
@@ -215,6 +214,12 @@ pairs.
 3.2. Output Format Options
 ------------------------------------------------------------------------------
 
+  [ -of STRING ], [ --output-format STRING ]
+
+  Select the output format used for writing the results. Valid values are
+  razer (default), fasta, eland, gff, sam, and amos. See section 4, for more
+  details
+
   [ -a ],  [ --alignment ]
 
   Dump the alignment for each match in the ".result" file (only for razer or
@@ -374,15 +379,15 @@ pairs.
 4. Output Formats
 ------------------------------------------------------------------------------
 
-RazerS 3 supports currently 5 different output formats which are automatically
-chosen from the output filename suffix.
+RazerS 3 supports currently 4 different output formats selectable via the
+"--output-format NUM" option. The following values for NUM are possible:
+
+  0 = Razer Format
+  1 = Enhanced Fasta Format
+  2 = Eland Format
+  3 = General Feature Format (GFF)
+  4 = Sequence Alignment and Mapping Format (SAM)
 
-  .razers    = Razer Format
-  .fa|.fasta = Enhanced Fasta Format
-  .eland     = Eland Format
-  .sam|.bam  = Sequence Alignment and Mapping Format (SAM)
-  .afg       = AMOS assembler format 
-  
 ------------------------------------------------------------------------------
 4.1. Razer Format
 ------------------------------------------------------------------------------
@@ -465,20 +470,65 @@ Additional value description:
                (e.g. 12A: 12'th base was A in the genome)
 
 ------------------------------------------------------------------------------
-4.4. SAM or BAM Output Format
+4.4. General Feature Format
+------------------------------------------------------------------------------
+
+The General Feature Format is specified by the Sanger Institute as a tab-
+delimited text format with the following columns:
+
+<seqname> <src> <feat> <start> <end> <score> <strand> <frame> [attr] [cmts]
+
+See also: http://www.sanger.ac.uk/Software/formats/GFF/GFF_Spec.shtml
+Consistent with this specification razers3 GFF output looks as follows:
+
+GNAME razers read GBEGIN GEND PERCID GSTRAND . ATTRIBUTES
+
+Match value description:
+
+  GNAME        Name of the genome sequence (see --genome-naming)
+  razers       Constant
+  read         Constant
+  GBEGIN       Beginning position in the genome sequence
+               (positions are counted from 1)
+  GEND         End position in the genome sequence (included!)
+  PERCID       Percent identity (see --percent-identity)
+  GSTRAND      '+'=forward strand or '-'=reverse strand
+  .            Constant
+  ATTRIBUTES   A list of attributes in the format <tag_name>[=<tag>]
+               separated by ';'
+
+Attributes are:
+
+  ID=          Name of the read
+  quality=     Ascii coded quality values of the read
+  cigar=       Read-reference alignment description in cigar format*
+  mutations=   Positions and bases that differ from the reference
+               with respect to the read (counting from 1)
+  unique       This is the best read match and it is unique
+  multi        This is one of multiple best machtes
+  suboptimal   This is a suboptimal read match
+
+The original read sequence can be retrieved using the genomic subsequence
+and the information contained in the 'cigar' and 'mutations' tags.
+
+For matches on the reverse strand, GBEGIN and GEND are positions on the
+related forward strand. It holds GBEGIN < GEND, regardless of GSTRAND.
+
+*http://may2005.archive.ensembl.org/Docs/wiki/html/EnsemblDocs/CigarFormat.html
+
+------------------------------------------------------------------------------
+4.5. SAM Output Format
 ------------------------------------------------------------------------------
 
 The SAM output format has established itself as the standard output format for
 read alignments. Altough SAM is capable of representing a multiple alignment
 between reads and contig (with paddings), RazerS 3 only outputs pairwise
 alignments as this way has established to be the defacto standard.
-The BAM format is the binary representation of SAM compressed with gzip.
-Whenever possible the more compact BAM format should be preferred over SAM.
 
 See http://samtools.sourceforge.net/ for more details.
 
 ------------------------------------------------------------------------------
-4.5. AMOS Output Format
+4.6. AMOS Output Format
 ------------------------------------------------------------------------------
 
 The AMOS assembly format (aka AFG format) is used by the AMOS assembler and
diff --git a/apps/rep_sep/CMakeLists.txt b/apps/rep_sep/CMakeLists.txt
index 3247716..658be8e 100644
--- a/apps/rep_sep/CMakeLists.txt
+++ b/apps/rep_sep/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_rep_sep)
 message (STATUS "Configuring apps/rep_sep")
 
-set (SEQAN_APP_VERSION "0.1.3")
+set (SEQAN_APP_VERSION "0.1.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/sak/CMakeLists.txt b/apps/sak/CMakeLists.txt
index a3a3d21..8c3ceaa 100644
--- a/apps/sak/CMakeLists.txt
+++ b/apps/sak/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_sak)
 message (STATUS "Configuring apps/sak")
 
-set (SEQAN_APP_VERSION "0.4")
+set (SEQAN_APP_VERSION "0.3")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/sam2matrix/CMakeLists.txt b/apps/sam2matrix/CMakeLists.txt
index e2e09b8..9117128 100644
--- a/apps/sam2matrix/CMakeLists.txt
+++ b/apps/sam2matrix/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_sam2matrix)
 message (STATUS "Configuring apps/sam2matrix")
 
-set (SEQAN_APP_VERSION "0.3")
+set (SEQAN_APP_VERSION "0.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/samcat/CMakeLists.txt b/apps/samcat/CMakeLists.txt
index 5a5b9a8..cc29da2 100644
--- a/apps/samcat/CMakeLists.txt
+++ b/apps/samcat/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_samcat)
 message (STATUS "Configuring apps/samcat")
 
-set (SEQAN_APP_VERSION "0.3")
+set (SEQAN_APP_VERSION "0.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/searchjoin/CMakeLists.txt b/apps/searchjoin/CMakeLists.txt
index fe8eb62..2d3bb4f 100644
--- a/apps/searchjoin/CMakeLists.txt
+++ b/apps/searchjoin/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_searchjoin)
 message (STATUS "Configuring apps/searchjoin")
 
-set (SEQAN_APP_VERSION "0.5")
+set (SEQAN_APP_VERSION "0.4")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/seqan_flexbar/CMakeLists.txt b/apps/seqan_flexbar/CMakeLists.txt
index 6dd6318..e65134e 100644
--- a/apps/seqan_flexbar/CMakeLists.txt
+++ b/apps/seqan_flexbar/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_seqan_flexbar)
 message (STATUS "Configuring apps/seqan_flexbar")
 
-set (SEQAN_APP_VERSION "1.0.3")
+set (SEQAN_APP_VERSION "1.0.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/seqan_tcoffee/CMakeLists.txt b/apps/seqan_tcoffee/CMakeLists.txt
index 94ae2ea..2ba2682 100644
--- a/apps/seqan_tcoffee/CMakeLists.txt
+++ b/apps/seqan_tcoffee/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_seqan_tcoffee)
 message (STATUS "Configuring apps/seqan_tcoffee")
 
-set (SEQAN_APP_VERSION "1.13")
+set (SEQAN_APP_VERSION "1.12")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/seqan_tcoffee/tests/1aab.i.fasta b/apps/seqan_tcoffee/tests/1aab.i.fasta
index 37633af..7b66d0e 100644
--- a/apps/seqan_tcoffee/tests/1aab.i.fasta
+++ b/apps/seqan_tcoffee/tests/1aab.i.fasta
@@ -2,34 +2,33 @@ Scoring parameters:
 *Gap opening: -13
 *Gap extension: -1
 *Scoring matrix: 
-   A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z,X,*,
-A: 4,-2,0,-2,-1,-2,0,-2,-1,-1,-1,-1,-1,-2,0,-1,-1,-1,1,0,0,0,-3,-2,-1,0,-4
-B: -2,4,-3,4,1,-3,-1,0,-3,-4,0,-4,-3,3,-1,-2,0,-1,0,-1,-1,-3,-4,-3,1,-1,-4
-C: 0,-3,9,-3,-4,-2,-3,-3,-1,-1,-3,-1,-1,-3,-2,-3,-3,-3,-1,-1,-2,-1,-2,-2,-3,-2,-4
-D: -2,4,-3,6,2,-3,-1,-1,-3,-4,-1,-4,-3,1,-1,-1,0,-2,0,-1,-1,-3,-4,-3,1,-1,-4
-E: -1,1,-4,2,5,-3,-2,0,-3,-3,1,-3,-2,0,-1,-1,2,0,0,-1,-1,-2,-3,-2,4,-1,-4
-F: -2,-3,-2,-3,-3,6,-3,-1,0,0,-3,0,0,-3,-1,-4,-3,-3,-2,-2,-1,-1,1,3,-3,-1,-4
-G: 0,-1,-3,-1,-2,-3,6,-2,-4,-4,-2,-4,-3,0,-1,-2,-2,-2,0,-2,-1,-3,-2,-3,-2,-1,-4
-H: -2,0,-3,-1,0,-1,-2,8,-3,-3,-1,-3,-2,1,-1,-2,0,0,-1,-2,-1,-3,-2,2,0,-1,-4
-I: -1,-3,-1,-3,-3,0,-4,-3,4,3,-3,2,1,-3,-1,-3,-3,-3,-2,-1,-1,3,-3,-1,-3,-1,-4
-J: -1,-4,-1,-4,-3,0,-4,-3,3,3,-3,3,2,-3,-1,-3,-3,-3,-2,-1,-1,2,-3,-1,-3,-1,-4
-K: -1,0,-3,-1,1,-3,-2,-1,-3,-3,5,-2,-1,0,-1,-1,1,2,0,-1,-1,-2,-3,-2,1,-1,-4
-L: -1,-4,-1,-4,-3,0,-4,-3,2,3,-2,4,2,-3,-1,-3,-2,-2,-2,-1,-1,1,-2,-1,-3,-1,-4
-M: -1,-3,-1,-3,-2,0,-3,-2,1,2,-1,2,5,-2,-1,-2,0,-1,-1,-1,-1,1,-1,-1,-1,-1,-4
-N: -2,3,-3,1,0,-3,0,1,-3,-3,0,-3,-2,6,-1,-2,0,0,1,0,-1,-3,-4,-2,0,-1,-4
-O: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-P: -1,-2,-3,-1,-1,-4,-2,-2,-3,-3,-1,-3,-2,-2,-2,7,-1,-2,-1,-1,-2,-2,-4,-3,-1,-2,-4
-Q: -1,0,-3,0,2,-3,-2,0,-3,-3,1,-2,0,0,-1,-1,5,1,0,-1,-1,-2,-2,-1,3,-1,-4
-R: -1,-1,-3,-2,0,-3,-2,0,-3,-3,2,-2,-1,0,-1,-2,1,5,-1,-1,-1,-3,-3,-2,0,-1,-4
-S: 1,0,-1,0,0,-2,0,-1,-2,-2,0,-2,-1,1,0,-1,0,-1,4,1,0,-2,-3,-2,0,0,-4
-T: 0,-1,-1,-1,-1,-2,-2,-2,-1,-1,-1,-1,-1,0,0,-1,-1,-1,1,5,0,0,-2,-2,-1,0,-4
-U: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-V: 0,-3,-1,-3,-2,-1,-3,-3,3,2,-2,1,1,-3,-1,-2,-2,-3,-2,0,-1,4,-3,-1,-2,-1,-4
-W: -3,-4,-2,-4,-3,1,-2,-2,-3,-3,-3,-2,-1,-4,-2,-4,-2,-3,-3,-2,-2,-3,11,2,-3,-2,-4
-Y: -2,-3,-2,-3,-2,3,-3,2,-1,-1,-2,-1,-1,-2,-1,-3,-1,-2,-2,-2,-1,-1,2,7,-2,-1,-4
-Z: -1,1,-3,1,4,-3,-2,0,-3,-3,1,-3,-1,0,-1,-1,3,0,0,-1,-1,-2,-3,-2,4,-1,-4
-X: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-*: -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1
+   A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,Y,Z,X,*,
+A: 4,-2,0,-2,-1,-2,0,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,1,0,0,0,-3,-2,-1,0,-4
+B: -2,4,-3,4,1,-3,-1,0,-3,-4,0,-4,-3,3,-2,0,-1,0,-1,-1,-3,-4,-3,1,-1,-4
+C: 0,-3,9,-3,-4,-2,-3,-3,-1,-1,-3,-1,-1,-3,-3,-3,-3,-1,-1,-2,-1,-2,-2,-3,-2,-4
+D: -2,4,-3,6,2,-3,-1,-1,-3,-4,-1,-4,-3,1,-1,0,-2,0,-1,-1,-3,-4,-3,1,-1,-4
+E: -1,1,-4,2,5,-3,-2,0,-3,-3,1,-3,-2,0,-1,2,0,0,-1,-1,-2,-3,-2,4,-1,-4
+F: -2,-3,-2,-3,-3,6,-3,-1,0,0,-3,0,0,-3,-4,-3,-3,-2,-2,-1,-1,1,3,-3,-1,-4
+G: 0,-1,-3,-1,-2,-3,6,-2,-4,-4,-2,-4,-3,0,-2,-2,-2,0,-2,-1,-3,-2,-3,-2,-1,-4
+H: -2,0,-3,-1,0,-1,-2,8,-3,-3,-1,-3,-2,1,-2,0,0,-1,-2,-1,-3,-2,2,0,-1,-4
+I: -1,-3,-1,-3,-3,0,-4,-3,4,3,-3,2,1,-3,-3,-3,-3,-2,-1,-1,3,-3,-1,-3,-1,-4
+J: -1,-4,-1,-4,-3,0,-4,-3,3,3,-3,3,2,-3,-3,-3,-3,-2,-1,-1,2,-3,-1,-3,-1,-4
+K: -1,0,-3,-1,1,-3,-2,-1,-3,-3,5,-2,-1,0,-1,1,2,0,-1,-1,-2,-3,-2,1,-1,-4
+L: -1,-4,-1,-4,-3,0,-4,-3,2,3,-2,4,2,-3,-3,-2,-2,-2,-1,-1,1,-2,-1,-3,-1,-4
+M: -1,-3,-1,-3,-2,0,-3,-2,1,2,-1,2,5,-2,-2,0,-1,-1,-1,-1,1,-1,-1,-1,-1,-4
+N: -2,3,-3,1,0,-3,0,1,-3,-3,0,-3,-2,6,-2,0,0,1,0,-1,-3,-4,-2,0,-1,-4
+P: -1,-2,-3,-1,-1,-4,-2,-2,-3,-3,-1,-3,-2,-2,7,-1,-2,-1,-1,-2,-2,-4,-3,-1,-2,-4
+Q: -1,0,-3,0,2,-3,-2,0,-3,-3,1,-2,0,0,-1,5,1,0,-1,-1,-2,-2,-1,3,-1,-4
+R: -1,-1,-3,-2,0,-3,-2,0,-3,-3,2,-2,-1,0,-2,1,5,-1,-1,-1,-3,-3,-2,0,-1,-4
+S: 1,0,-1,0,0,-2,0,-1,-2,-2,0,-2,-1,1,-1,0,-1,4,1,0,-2,-3,-2,0,0,-4
+T: 0,-1,-1,-1,-1,-2,-2,-2,-1,-1,-1,-1,-1,0,-1,-1,-1,1,5,0,0,-2,-2,-1,0,-4
+U: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
+V: 0,-3,-1,-3,-2,-1,-3,-3,3,2,-2,1,1,-3,-2,-2,-3,-2,0,-1,4,-3,-1,-2,-1,-4
+W: -3,-4,-2,-4,-3,1,-2,-2,-3,-3,-3,-2,-1,-4,-4,-2,-3,-3,-2,-2,-3,11,2,-3,-2,-4
+Y: -2,-3,-2,-3,-2,3,-3,2,-1,-1,-2,-1,-1,-2,-3,-1,-2,-2,-2,-1,-1,2,7,-2,-1,-4
+Z: -1,1,-3,1,4,-3,-2,0,-3,-3,1,-3,-1,0,-1,3,0,0,-1,-1,-2,-3,-2,4,-1,-4
+X: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
+*: -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1
 
 Alignment Score: 317
 Alignment Length: 81
@@ -41,31 +40,30 @@ Score contribution by gap extensions: -51
 Score contribution by gap openings: -234
 
 #Pairs: 
-   A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z,X,*,
-A: 15,0,0,0,4,2,3,0,1,0,4,4,0,1,0,4,0,2,1,0,0,3,0,0,0,0,0
-B: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-C: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-D: 2,0,0,3,4,0,0,0,1,0,3,2,0,2,0,0,2,2,1,1,0,0,0,0,0,0,0
-E: 11,0,0,2,14,0,4,0,2,0,5,0,0,4,0,1,2,1,5,0,0,2,0,0,0,0,0
-F: 1,0,0,0,0,3,0,0,1,0,0,1,0,1,0,0,0,2,1,0,0,1,1,3,0,0,0
-G: 3,0,0,0,1,0,3,0,0,0,0,0,0,1,0,0,0,0,4,0,0,0,0,0,0,0,0
-H: 1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-I: 1,0,0,0,1,1,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,4,0,0,0,0,0
-J: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-K: 4,0,0,2,2,0,0,0,1,0,30,0,0,2,0,0,2,3,3,1,0,2,0,0,0,0,0
-L: 2,0,0,1,1,0,1,0,1,0,4,6,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0
-M: 0,0,0,0,1,2,0,0,2,0,3,4,2,2,0,1,0,1,0,0,0,2,0,0,0,0,0
-N: 0,0,0,1,2,1,4,0,0,0,1,0,1,2,0,0,0,1,1,0,0,0,0,0,0,0,0
-O: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-P: 2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0
-Q: 5,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0
-R: 0,0,0,0,2,1,0,0,0,0,9,1,0,3,0,1,1,11,0,0,0,0,0,0,0,0,0
-S: 8,0,0,0,5,1,3,0,0,0,3,2,1,6,0,1,1,0,6,0,0,1,0,0,0,0,0
-T: 1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0
-U: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-V: 3,0,0,0,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,0,2,0,0,0,0,0
-W: 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,3,0,0,0
-Y: 0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,11,0,0,0
-Z: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-X: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-*: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+   A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,Y,Z,X,*,
+A: 15,0,0,0,4,2,3,0,1,0,4,4,0,1,4,0,2,1,0,0,3,0,0,0,0,0
+B: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+C: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+D: 2,0,0,3,4,0,0,0,1,0,3,2,0,2,0,2,2,1,1,0,0,0,0,0,0,0
+E: 11,0,0,2,14,0,4,0,2,0,5,0,0,4,1,2,1,5,0,0,2,0,0,0,0,0
+F: 1,0,0,0,0,3,0,0,1,0,0,1,0,1,0,0,2,1,0,0,1,1,3,0,0,0
+G: 3,0,0,0,1,0,3,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0
+H: 1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+I: 1,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,0,0,0,0,4,0,0,0,0,0
+J: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+K: 4,0,0,2,2,0,0,0,1,0,30,0,0,2,0,2,3,3,1,0,2,0,0,0,0,0
+L: 2,0,0,1,1,0,1,0,1,0,4,6,1,0,1,0,1,0,0,0,1,0,0,0,0,0
+M: 0,0,0,0,1,2,0,0,2,0,3,4,2,2,1,0,1,0,0,0,2,0,0,0,0,0
+N: 0,0,0,1,2,1,4,0,0,0,1,0,1,2,0,0,1,1,0,0,0,0,0,0,0,0
+P: 2,0,0,0,2,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0
+Q: 5,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0
+R: 0,0,0,0,2,1,0,0,0,0,9,1,0,3,1,1,11,0,0,0,0,0,0,0,0,0
+S: 8,0,0,0,5,1,3,0,0,0,3,2,1,6,1,1,0,6,0,0,1,0,0,0,0,0
+T: 1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0
+U: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+V: 3,0,0,0,1,0,1,0,0,0,0,1,1,0,1,1,0,0,1,0,2,0,0,0,0,0
+W: 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,3,0,0,0
+Y: 0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,11,0,0,0
+Z: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+X: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+*: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/apps/seqan_tcoffee/tests/1ad2.i.fasta b/apps/seqan_tcoffee/tests/1ad2.i.fasta
index c9940b4..677840e 100644
--- a/apps/seqan_tcoffee/tests/1ad2.i.fasta
+++ b/apps/seqan_tcoffee/tests/1ad2.i.fasta
@@ -2,34 +2,33 @@ Scoring parameters:
 *Gap opening: -13
 *Gap extension: -1
 *Scoring matrix: 
-   A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z,X,*,
-A: 4,-2,0,-2,-1,-2,0,-2,-1,-1,-1,-1,-1,-2,0,-1,-1,-1,1,0,0,0,-3,-2,-1,0,-4
-B: -2,4,-3,4,1,-3,-1,0,-3,-4,0,-4,-3,3,-1,-2,0,-1,0,-1,-1,-3,-4,-3,1,-1,-4
-C: 0,-3,9,-3,-4,-2,-3,-3,-1,-1,-3,-1,-1,-3,-2,-3,-3,-3,-1,-1,-2,-1,-2,-2,-3,-2,-4
-D: -2,4,-3,6,2,-3,-1,-1,-3,-4,-1,-4,-3,1,-1,-1,0,-2,0,-1,-1,-3,-4,-3,1,-1,-4
-E: -1,1,-4,2,5,-3,-2,0,-3,-3,1,-3,-2,0,-1,-1,2,0,0,-1,-1,-2,-3,-2,4,-1,-4
-F: -2,-3,-2,-3,-3,6,-3,-1,0,0,-3,0,0,-3,-1,-4,-3,-3,-2,-2,-1,-1,1,3,-3,-1,-4
-G: 0,-1,-3,-1,-2,-3,6,-2,-4,-4,-2,-4,-3,0,-1,-2,-2,-2,0,-2,-1,-3,-2,-3,-2,-1,-4
-H: -2,0,-3,-1,0,-1,-2,8,-3,-3,-1,-3,-2,1,-1,-2,0,0,-1,-2,-1,-3,-2,2,0,-1,-4
-I: -1,-3,-1,-3,-3,0,-4,-3,4,3,-3,2,1,-3,-1,-3,-3,-3,-2,-1,-1,3,-3,-1,-3,-1,-4
-J: -1,-4,-1,-4,-3,0,-4,-3,3,3,-3,3,2,-3,-1,-3,-3,-3,-2,-1,-1,2,-3,-1,-3,-1,-4
-K: -1,0,-3,-1,1,-3,-2,-1,-3,-3,5,-2,-1,0,-1,-1,1,2,0,-1,-1,-2,-3,-2,1,-1,-4
-L: -1,-4,-1,-4,-3,0,-4,-3,2,3,-2,4,2,-3,-1,-3,-2,-2,-2,-1,-1,1,-2,-1,-3,-1,-4
-M: -1,-3,-1,-3,-2,0,-3,-2,1,2,-1,2,5,-2,-1,-2,0,-1,-1,-1,-1,1,-1,-1,-1,-1,-4
-N: -2,3,-3,1,0,-3,0,1,-3,-3,0,-3,-2,6,-1,-2,0,0,1,0,-1,-3,-4,-2,0,-1,-4
-O: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-P: -1,-2,-3,-1,-1,-4,-2,-2,-3,-3,-1,-3,-2,-2,-2,7,-1,-2,-1,-1,-2,-2,-4,-3,-1,-2,-4
-Q: -1,0,-3,0,2,-3,-2,0,-3,-3,1,-2,0,0,-1,-1,5,1,0,-1,-1,-2,-2,-1,3,-1,-4
-R: -1,-1,-3,-2,0,-3,-2,0,-3,-3,2,-2,-1,0,-1,-2,1,5,-1,-1,-1,-3,-3,-2,0,-1,-4
-S: 1,0,-1,0,0,-2,0,-1,-2,-2,0,-2,-1,1,0,-1,0,-1,4,1,0,-2,-3,-2,0,0,-4
-T: 0,-1,-1,-1,-1,-2,-2,-2,-1,-1,-1,-1,-1,0,0,-1,-1,-1,1,5,0,0,-2,-2,-1,0,-4
-U: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-V: 0,-3,-1,-3,-2,-1,-3,-3,3,2,-2,1,1,-3,-1,-2,-2,-3,-2,0,-1,4,-3,-1,-2,-1,-4
-W: -3,-4,-2,-4,-3,1,-2,-2,-3,-3,-3,-2,-1,-4,-2,-4,-2,-3,-3,-2,-2,-3,11,2,-3,-2,-4
-Y: -2,-3,-2,-3,-2,3,-3,2,-1,-1,-2,-1,-1,-2,-1,-3,-1,-2,-2,-2,-1,-1,2,7,-2,-1,-4
-Z: -1,1,-3,1,4,-3,-2,0,-3,-3,1,-3,-1,0,-1,-1,3,0,0,-1,-1,-2,-3,-2,4,-1,-4
-X: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-*: -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1
+   A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,Y,Z,X,*,
+A: 4,-2,0,-2,-1,-2,0,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,1,0,0,0,-3,-2,-1,0,-4
+B: -2,4,-3,4,1,-3,-1,0,-3,-4,0,-4,-3,3,-2,0,-1,0,-1,-1,-3,-4,-3,1,-1,-4
+C: 0,-3,9,-3,-4,-2,-3,-3,-1,-1,-3,-1,-1,-3,-3,-3,-3,-1,-1,-2,-1,-2,-2,-3,-2,-4
+D: -2,4,-3,6,2,-3,-1,-1,-3,-4,-1,-4,-3,1,-1,0,-2,0,-1,-1,-3,-4,-3,1,-1,-4
+E: -1,1,-4,2,5,-3,-2,0,-3,-3,1,-3,-2,0,-1,2,0,0,-1,-1,-2,-3,-2,4,-1,-4
+F: -2,-3,-2,-3,-3,6,-3,-1,0,0,-3,0,0,-3,-4,-3,-3,-2,-2,-1,-1,1,3,-3,-1,-4
+G: 0,-1,-3,-1,-2,-3,6,-2,-4,-4,-2,-4,-3,0,-2,-2,-2,0,-2,-1,-3,-2,-3,-2,-1,-4
+H: -2,0,-3,-1,0,-1,-2,8,-3,-3,-1,-3,-2,1,-2,0,0,-1,-2,-1,-3,-2,2,0,-1,-4
+I: -1,-3,-1,-3,-3,0,-4,-3,4,3,-3,2,1,-3,-3,-3,-3,-2,-1,-1,3,-3,-1,-3,-1,-4
+J: -1,-4,-1,-4,-3,0,-4,-3,3,3,-3,3,2,-3,-3,-3,-3,-2,-1,-1,2,-3,-1,-3,-1,-4
+K: -1,0,-3,-1,1,-3,-2,-1,-3,-3,5,-2,-1,0,-1,1,2,0,-1,-1,-2,-3,-2,1,-1,-4
+L: -1,-4,-1,-4,-3,0,-4,-3,2,3,-2,4,2,-3,-3,-2,-2,-2,-1,-1,1,-2,-1,-3,-1,-4
+M: -1,-3,-1,-3,-2,0,-3,-2,1,2,-1,2,5,-2,-2,0,-1,-1,-1,-1,1,-1,-1,-1,-1,-4
+N: -2,3,-3,1,0,-3,0,1,-3,-3,0,-3,-2,6,-2,0,0,1,0,-1,-3,-4,-2,0,-1,-4
+P: -1,-2,-3,-1,-1,-4,-2,-2,-3,-3,-1,-3,-2,-2,7,-1,-2,-1,-1,-2,-2,-4,-3,-1,-2,-4
+Q: -1,0,-3,0,2,-3,-2,0,-3,-3,1,-2,0,0,-1,5,1,0,-1,-1,-2,-2,-1,3,-1,-4
+R: -1,-1,-3,-2,0,-3,-2,0,-3,-3,2,-2,-1,0,-2,1,5,-1,-1,-1,-3,-3,-2,0,-1,-4
+S: 1,0,-1,0,0,-2,0,-1,-2,-2,0,-2,-1,1,-1,0,-1,4,1,0,-2,-3,-2,0,0,-4
+T: 0,-1,-1,-1,-1,-2,-2,-2,-1,-1,-1,-1,-1,0,-1,-1,-1,1,5,0,0,-2,-2,-1,0,-4
+U: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
+V: 0,-3,-1,-3,-2,-1,-3,-3,3,2,-2,1,1,-3,-2,-2,-3,-2,0,-1,4,-3,-1,-2,-1,-4
+W: -3,-4,-2,-4,-3,1,-2,-2,-3,-3,-3,-2,-1,-4,-4,-2,-3,-3,-2,-2,-3,11,2,-3,-2,-4
+Y: -2,-3,-2,-3,-2,3,-3,2,-1,-1,-2,-1,-1,-2,-3,-1,-2,-2,-2,-1,-1,2,7,-2,-1,-4
+Z: -1,1,-3,1,4,-3,-2,0,-3,-3,1,-3,-1,0,-1,3,0,0,-1,-1,-2,-3,-2,4,-1,-4
+X: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
+*: -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1
 
 Alignment Score: 8
 Alignment Length: 309
@@ -41,31 +40,30 @@ Score contribution by gap extensions: -600
 Score contribution by gap openings: -624
 
 #Pairs: 
-   A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z,X,*,
-A: 30,0,0,3,6,0,4,0,4,0,5,7,0,4,0,4,4,5,1,2,0,6,0,0,0,0,0
-B: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-C: 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0
-D: 4,0,0,13,22,0,1,0,2,0,8,3,0,5,0,3,3,1,1,5,0,4,0,0,0,0,0
-E: 5,0,0,10,25,0,0,0,2,0,5,4,0,4,0,3,7,4,0,2,0,2,0,1,0,0,0
-F: 0,0,0,0,0,8,0,0,2,0,3,4,3,1,0,0,0,1,0,1,0,5,2,0,0,0,0
-G: 2,0,0,3,3,0,34,0,3,0,3,0,0,1,0,2,6,3,9,5,0,3,0,2,0,0,0
-H: 1,0,0,0,0,0,0,1,1,0,1,0,0,2,0,0,4,0,0,0,0,0,0,0,0,0,0
-I: 10,0,0,0,4,2,0,0,6,0,0,9,0,0,0,0,0,1,0,2,0,14,0,0,0,0,0
-J: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-K: 1,0,0,3,2,0,1,0,2,0,24,4,0,5,0,1,2,4,1,4,0,4,0,0,0,0,0
-L: 5,0,0,0,3,4,0,0,14,0,3,23,4,0,0,1,2,3,2,2,0,13,0,2,0,0,0
-M: 0,0,0,0,0,3,0,0,0,0,0,2,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-N: 1,0,0,4,2,0,0,1,0,0,11,0,0,11,0,1,2,4,1,4,0,0,0,0,0,0,0
-O: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-P: 5,0,0,1,3,0,0,0,0,0,3,0,0,1,0,23,0,0,0,1,0,0,0,0,0,0,0
-Q: 4,0,0,6,1,0,1,0,1,0,8,3,0,2,0,5,2,1,0,0,0,2,0,1,0,0,0
-R: 2,0,0,0,1,1,0,1,1,0,10,2,0,6,0,3,3,17,3,6,0,2,0,1,0,0,0
-S: 0,0,0,0,4,0,1,1,0,0,8,0,0,0,0,1,0,0,2,5,0,0,0,0,0,0,0
-T: 3,0,0,2,3,0,2,1,0,0,13,3,0,3,0,7,2,3,6,10,0,3,0,5,0,0,0
-U: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-V: 7,0,0,0,2,5,0,0,18,0,1,12,0,0,0,2,0,0,1,1,0,36,0,0,0,0,0
-W: 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-Y: 0,0,0,0,0,0,0,0,2,0,1,0,0,1,0,2,2,0,1,1,0,0,0,3,0,0,0
-Z: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-X: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-*: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+   A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,Y,Z,X,*,
+A: 30,0,0,3,6,0,4,0,4,0,5,7,0,4,4,4,5,1,2,0,6,0,0,0,0,0
+B: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+C: 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0
+D: 4,0,0,13,22,0,1,0,2,0,8,3,0,5,3,3,1,1,5,0,4,0,0,0,0,0
+E: 5,0,0,10,25,0,0,0,2,0,5,4,0,4,3,7,4,0,2,0,2,0,1,0,0,0
+F: 0,0,0,0,0,8,0,0,2,0,3,4,3,1,0,0,1,0,1,0,5,2,0,0,0,0
+G: 2,0,0,3,3,0,34,0,3,0,3,0,0,1,2,6,3,9,5,0,3,0,2,0,0,0
+H: 1,0,0,0,0,0,0,1,1,0,1,0,0,2,0,4,0,0,0,0,0,0,0,0,0,0
+I: 10,0,0,0,4,2,0,0,6,0,0,9,0,0,0,0,1,0,2,0,14,0,0,0,0,0
+J: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+K: 1,0,0,3,2,0,1,0,2,0,24,4,0,5,1,2,4,1,4,0,4,0,0,0,0,0
+L: 5,0,0,0,3,4,0,0,14,0,3,23,4,0,1,2,3,2,2,0,13,0,2,0,0,0
+M: 0,0,0,0,0,3,0,0,0,0,0,2,9,0,0,0,0,0,0,0,0,0,0,0,0,0
+N: 1,0,0,4,2,0,0,1,0,0,11,0,0,11,1,2,4,1,4,0,0,0,0,0,0,0
+P: 5,0,0,1,3,0,0,0,0,0,3,0,0,1,23,0,0,0,1,0,0,0,0,0,0,0
+Q: 4,0,0,6,1,0,1,0,1,0,8,3,0,2,5,2,1,0,0,0,2,0,1,0,0,0
+R: 2,0,0,0,1,1,0,1,1,0,10,2,0,6,3,3,17,3,6,0,2,0,1,0,0,0
+S: 0,0,0,0,4,0,1,1,0,0,8,0,0,0,1,0,0,2,5,0,0,0,0,0,0,0
+T: 3,0,0,2,3,0,2,1,0,0,13,3,0,3,7,2,3,6,10,0,3,0,5,0,0,0
+U: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+V: 7,0,0,0,2,5,0,0,18,0,1,12,0,0,2,0,0,1,1,0,36,0,0,0,0,0
+W: 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+Y: 0,0,0,0,0,0,0,0,2,0,1,0,0,1,2,2,0,1,1,0,0,0,3,0,0,0
+Z: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+X: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+*: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/apps/seqan_tcoffee/tests/2trx.i.fasta b/apps/seqan_tcoffee/tests/2trx.i.fasta
index 87f4e6a..e523153 100644
--- a/apps/seqan_tcoffee/tests/2trx.i.fasta
+++ b/apps/seqan_tcoffee/tests/2trx.i.fasta
@@ -2,34 +2,33 @@ Scoring parameters:
 *Gap opening: -13
 *Gap extension: -1
 *Scoring matrix: 
-   A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z,X,*,
-A: 4,-2,0,-2,-1,-2,0,-2,-1,-1,-1,-1,-1,-2,0,-1,-1,-1,1,0,0,0,-3,-2,-1,0,-4
-B: -2,4,-3,4,1,-3,-1,0,-3,-4,0,-4,-3,3,-1,-2,0,-1,0,-1,-1,-3,-4,-3,1,-1,-4
-C: 0,-3,9,-3,-4,-2,-3,-3,-1,-1,-3,-1,-1,-3,-2,-3,-3,-3,-1,-1,-2,-1,-2,-2,-3,-2,-4
-D: -2,4,-3,6,2,-3,-1,-1,-3,-4,-1,-4,-3,1,-1,-1,0,-2,0,-1,-1,-3,-4,-3,1,-1,-4
-E: -1,1,-4,2,5,-3,-2,0,-3,-3,1,-3,-2,0,-1,-1,2,0,0,-1,-1,-2,-3,-2,4,-1,-4
-F: -2,-3,-2,-3,-3,6,-3,-1,0,0,-3,0,0,-3,-1,-4,-3,-3,-2,-2,-1,-1,1,3,-3,-1,-4
-G: 0,-1,-3,-1,-2,-3,6,-2,-4,-4,-2,-4,-3,0,-1,-2,-2,-2,0,-2,-1,-3,-2,-3,-2,-1,-4
-H: -2,0,-3,-1,0,-1,-2,8,-3,-3,-1,-3,-2,1,-1,-2,0,0,-1,-2,-1,-3,-2,2,0,-1,-4
-I: -1,-3,-1,-3,-3,0,-4,-3,4,3,-3,2,1,-3,-1,-3,-3,-3,-2,-1,-1,3,-3,-1,-3,-1,-4
-J: -1,-4,-1,-4,-3,0,-4,-3,3,3,-3,3,2,-3,-1,-3,-3,-3,-2,-1,-1,2,-3,-1,-3,-1,-4
-K: -1,0,-3,-1,1,-3,-2,-1,-3,-3,5,-2,-1,0,-1,-1,1,2,0,-1,-1,-2,-3,-2,1,-1,-4
-L: -1,-4,-1,-4,-3,0,-4,-3,2,3,-2,4,2,-3,-1,-3,-2,-2,-2,-1,-1,1,-2,-1,-3,-1,-4
-M: -1,-3,-1,-3,-2,0,-3,-2,1,2,-1,2,5,-2,-1,-2,0,-1,-1,-1,-1,1,-1,-1,-1,-1,-4
-N: -2,3,-3,1,0,-3,0,1,-3,-3,0,-3,-2,6,-1,-2,0,0,1,0,-1,-3,-4,-2,0,-1,-4
-O: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-P: -1,-2,-3,-1,-1,-4,-2,-2,-3,-3,-1,-3,-2,-2,-2,7,-1,-2,-1,-1,-2,-2,-4,-3,-1,-2,-4
-Q: -1,0,-3,0,2,-3,-2,0,-3,-3,1,-2,0,0,-1,-1,5,1,0,-1,-1,-2,-2,-1,3,-1,-4
-R: -1,-1,-3,-2,0,-3,-2,0,-3,-3,2,-2,-1,0,-1,-2,1,5,-1,-1,-1,-3,-3,-2,0,-1,-4
-S: 1,0,-1,0,0,-2,0,-1,-2,-2,0,-2,-1,1,0,-1,0,-1,4,1,0,-2,-3,-2,0,0,-4
-T: 0,-1,-1,-1,-1,-2,-2,-2,-1,-1,-1,-1,-1,0,0,-1,-1,-1,1,5,0,0,-2,-2,-1,0,-4
-U: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-V: 0,-3,-1,-3,-2,-1,-3,-3,3,2,-2,1,1,-3,-1,-2,-2,-3,-2,0,-1,4,-3,-1,-2,-1,-4
-W: -3,-4,-2,-4,-3,1,-2,-2,-3,-3,-3,-2,-1,-4,-2,-4,-2,-3,-3,-2,-2,-3,11,2,-3,-2,-4
-Y: -2,-3,-2,-3,-2,3,-3,2,-1,-1,-2,-1,-1,-2,-1,-3,-1,-2,-2,-2,-1,-1,2,7,-2,-1,-4
-Z: -1,1,-3,1,4,-3,-2,0,-3,-3,1,-3,-1,0,-1,-1,3,0,0,-1,-1,-2,-3,-2,4,-1,-4
-X: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
-*: -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1
+   A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,Y,Z,X,*,
+A: 4,-2,0,-2,-1,-2,0,-2,-1,-1,-1,-1,-1,-2,-1,-1,-1,1,0,0,0,-3,-2,-1,0,-4
+B: -2,4,-3,4,1,-3,-1,0,-3,-4,0,-4,-3,3,-2,0,-1,0,-1,-1,-3,-4,-3,1,-1,-4
+C: 0,-3,9,-3,-4,-2,-3,-3,-1,-1,-3,-1,-1,-3,-3,-3,-3,-1,-1,-2,-1,-2,-2,-3,-2,-4
+D: -2,4,-3,6,2,-3,-1,-1,-3,-4,-1,-4,-3,1,-1,0,-2,0,-1,-1,-3,-4,-3,1,-1,-4
+E: -1,1,-4,2,5,-3,-2,0,-3,-3,1,-3,-2,0,-1,2,0,0,-1,-1,-2,-3,-2,4,-1,-4
+F: -2,-3,-2,-3,-3,6,-3,-1,0,0,-3,0,0,-3,-4,-3,-3,-2,-2,-1,-1,1,3,-3,-1,-4
+G: 0,-1,-3,-1,-2,-3,6,-2,-4,-4,-2,-4,-3,0,-2,-2,-2,0,-2,-1,-3,-2,-3,-2,-1,-4
+H: -2,0,-3,-1,0,-1,-2,8,-3,-3,-1,-3,-2,1,-2,0,0,-1,-2,-1,-3,-2,2,0,-1,-4
+I: -1,-3,-1,-3,-3,0,-4,-3,4,3,-3,2,1,-3,-3,-3,-3,-2,-1,-1,3,-3,-1,-3,-1,-4
+J: -1,-4,-1,-4,-3,0,-4,-3,3,3,-3,3,2,-3,-3,-3,-3,-2,-1,-1,2,-3,-1,-3,-1,-4
+K: -1,0,-3,-1,1,-3,-2,-1,-3,-3,5,-2,-1,0,-1,1,2,0,-1,-1,-2,-3,-2,1,-1,-4
+L: -1,-4,-1,-4,-3,0,-4,-3,2,3,-2,4,2,-3,-3,-2,-2,-2,-1,-1,1,-2,-1,-3,-1,-4
+M: -1,-3,-1,-3,-2,0,-3,-2,1,2,-1,2,5,-2,-2,0,-1,-1,-1,-1,1,-1,-1,-1,-1,-4
+N: -2,3,-3,1,0,-3,0,1,-3,-3,0,-3,-2,6,-2,0,0,1,0,-1,-3,-4,-2,0,-1,-4
+P: -1,-2,-3,-1,-1,-4,-2,-2,-3,-3,-1,-3,-2,-2,7,-1,-2,-1,-1,-2,-2,-4,-3,-1,-2,-4
+Q: -1,0,-3,0,2,-3,-2,0,-3,-3,1,-2,0,0,-1,5,1,0,-1,-1,-2,-2,-1,3,-1,-4
+R: -1,-1,-3,-2,0,-3,-2,0,-3,-3,2,-2,-1,0,-2,1,5,-1,-1,-1,-3,-3,-2,0,-1,-4
+S: 1,0,-1,0,0,-2,0,-1,-2,-2,0,-2,-1,1,-1,0,-1,4,1,0,-2,-3,-2,0,0,-4
+T: 0,-1,-1,-1,-1,-2,-2,-2,-1,-1,-1,-1,-1,0,-1,-1,-1,1,5,0,0,-2,-2,-1,0,-4
+U: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
+V: 0,-3,-1,-3,-2,-1,-3,-3,3,2,-2,1,1,-3,-2,-2,-3,-2,0,-1,4,-3,-1,-2,-1,-4
+W: -3,-4,-2,-4,-3,1,-2,-2,-3,-3,-3,-2,-1,-4,-4,-2,-3,-3,-2,-2,-3,11,2,-3,-2,-4
+Y: -2,-3,-2,-3,-2,3,-3,2,-1,-1,-2,-1,-1,-2,-3,-1,-2,-2,-2,-1,-1,2,7,-2,-1,-4
+Z: -1,1,-3,1,4,-3,-2,0,-3,-3,1,-3,-1,0,-1,3,0,0,-1,-1,-2,-3,-2,4,-1,-4
+X: 0,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,-1,-1,0,0,-1,-1,-2,-1,-1,-1,-4
+*: -4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1
 
 Alignment Score: -292
 Alignment Length: 113
@@ -41,31 +40,30 @@ Score contribution by gap extensions: -86
 Score contribution by gap openings: -546
 
 #Pairs: 
-   A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,Y,Z,X,*,
-A: 4,0,0,0,2,1,3,0,2,0,2,5,1,0,0,0,0,1,5,2,0,1,0,0,0,0,0
-B: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-C: 0,0,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0
-D: 0,0,0,5,5,0,4,0,0,0,2,0,2,8,0,2,0,2,5,0,0,1,0,0,0,0,0
-E: 3,0,0,7,5,0,2,1,1,0,4,0,0,1,0,0,2,2,4,0,0,1,0,0,0,0,0
-F: 0,0,0,1,0,8,0,0,3,0,0,2,0,0,0,0,0,0,1,0,0,3,0,2,0,0,0
-G: 1,0,0,2,0,0,6,0,0,0,1,0,0,0,0,1,0,2,7,1,0,1,1,1,0,0,0
-H: 0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0
-I: 3,0,0,1,0,3,0,1,2,0,2,4,0,1,0,0,0,0,0,0,0,4,0,0,0,0,0
-J: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-K: 1,0,1,3,9,2,2,0,1,0,9,1,0,2,0,1,1,2,3,1,0,2,0,1,0,0,0
-L: 2,0,3,0,0,7,0,0,6,0,1,9,1,0,0,0,0,1,3,2,0,9,0,1,0,0,0
-M: 3,0,0,0,0,0,0,0,1,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-N: 3,0,1,1,4,1,0,1,0,0,0,1,1,4,0,0,0,0,0,1,0,0,0,0,0,0,0
-O: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-P: 0,0,0,3,1,0,3,0,0,0,0,1,0,1,0,8,2,1,3,2,0,0,0,1,0,0,0
-Q: 0,0,1,3,3,0,3,0,1,0,3,3,0,0,0,0,5,0,0,3,0,2,0,0,0,0,0
-R: 2,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,2,0,0,0,0,0,0,2,0,0,0
-S: 4,0,3,5,1,0,0,0,1,0,2,0,0,3,0,2,0,0,3,2,0,2,0,1,0,0,0
-T: 2,0,0,2,3,4,1,0,0,0,2,0,0,0,0,0,1,0,2,1,0,4,0,0,0,0,0
-U: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-V: 6,0,1,1,0,4,2,0,5,0,3,3,2,1,0,0,1,0,3,0,0,15,1,2,0,0,0
-W: 1,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0
-Y: 0,0,1,1,1,3,1,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,3,0,0,0
-Z: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-X: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-*: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+   A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,Y,Z,X,*,
+A: 4,0,0,0,2,1,3,0,2,0,2,5,1,0,0,0,1,5,2,0,1,0,0,0,0,0
+B: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+C: 0,0,6,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0
+D: 0,0,0,5,5,0,4,0,0,0,2,0,2,8,2,0,2,5,0,0,1,0,0,0,0,0
+E: 3,0,0,7,5,0,2,1,1,0,4,0,0,1,0,2,2,4,0,0,1,0,0,0,0,0
+F: 0,0,0,1,0,8,0,0,3,0,0,2,0,0,0,0,0,1,0,0,3,0,2,0,0,0
+G: 1,0,0,2,0,0,6,0,0,0,1,0,0,0,1,0,2,7,1,0,1,1,1,0,0,0
+H: 0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0
+I: 3,0,0,1,0,3,0,1,2,0,2,4,0,1,0,0,0,0,0,0,4,0,0,0,0,0
+J: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+K: 1,0,1,3,9,2,2,0,1,0,9,1,0,2,1,1,2,3,1,0,2,0,1,0,0,0
+L: 2,0,3,0,0,7,0,0,6,0,1,9,1,0,0,0,1,3,2,0,9,0,1,0,0,0
+M: 3,0,0,0,0,0,0,0,1,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+N: 3,0,1,1,4,1,0,1,0,0,0,1,1,4,0,0,0,0,1,0,0,0,0,0,0,0
+P: 0,0,0,3,1,0,3,0,0,0,0,1,0,1,8,2,1,3,2,0,0,0,1,0,0,0
+Q: 0,0,1,3,3,0,3,0,1,0,3,3,0,0,0,5,0,0,3,0,2,0,0,0,0,0
+R: 2,0,0,0,1,0,0,0,0,0,0,1,1,0,0,2,0,0,0,0,0,0,2,0,0,0
+S: 4,0,3,5,1,0,0,0,1,0,2,0,0,3,2,0,0,3,2,0,2,0,1,0,0,0
+T: 2,0,0,2,3,4,1,0,0,0,2,0,0,0,0,1,0,2,1,0,4,0,0,0,0,0
+U: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+V: 6,0,1,1,0,4,2,0,5,0,3,3,2,1,0,1,0,3,0,0,15,1,2,0,0,0
+W: 1,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0
+Y: 0,0,1,1,1,3,1,0,1,0,1,0,0,1,1,0,1,0,0,0,0,0,3,0,0,0
+Z: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+X: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+*: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
diff --git a/apps/seqcons/CMakeLists.txt b/apps/seqcons/CMakeLists.txt
index 1172b98..0514e7f 100644
--- a/apps/seqcons/CMakeLists.txt
+++ b/apps/seqcons/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_seqcons)
 message (STATUS "Configuring apps/seqcons")
 
-set (SEQAN_APP_VERSION "0.23.3")
+set (SEQAN_APP_VERSION "0.23.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/seqcons2/CMakeLists.txt b/apps/seqcons2/CMakeLists.txt
index a2e8f34..f2d8ef1 100644
--- a/apps/seqcons2/CMakeLists.txt
+++ b/apps/seqcons2/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_seqcons2)
 message (STATUS "Configuring apps/seqcons2")
 
-set (SEQAN_APP_VERSION "2.0.1")
+set (SEQAN_APP_VERSION "2.0.0")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/sgip/CMakeLists.txt b/apps/sgip/CMakeLists.txt
index b3566ce..75332d3 100755
--- a/apps/sgip/CMakeLists.txt
+++ b/apps/sgip/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_sgip)
 message (STATUS "Configuring apps/sgip")
 
-set (SEQAN_APP_VERSION "1.4")
+set (SEQAN_APP_VERSION "1.3")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/snp_store/CMakeLists.txt b/apps/snp_store/CMakeLists.txt
index 7885ba0..0a7c7c6 100644
--- a/apps/snp_store/CMakeLists.txt
+++ b/apps/snp_store/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_snp_store)
 message (STATUS "Configuring apps/snp_store")
 
-set (SEQAN_APP_VERSION "1.3")
+set (SEQAN_APP_VERSION "1.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/splazers/CMakeLists.txt b/apps/splazers/CMakeLists.txt
index 9db1880..895e8a2 100644
--- a/apps/splazers/CMakeLists.txt
+++ b/apps/splazers/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_splazers)
 message (STATUS "Configuring apps/splazers")
 
-set (SEQAN_APP_VERSION "1.3")
+set (SEQAN_APP_VERSION "1.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
@@ -20,11 +20,6 @@ set (SEQAN_APP_VERSION "1.3")
 set (SEQAN_FIND_DEPENDENCIES NONE)
 find_package (SeqAn REQUIRED)
 
-if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
-    message (STATUS "  Not building splazers on 32bit architectures.")
-    return ()
-endif()
-
 # ----------------------------------------------------------------------------
 # Build Setup
 # ----------------------------------------------------------------------------
diff --git a/apps/splazers/razers_spliced.h b/apps/splazers/razers_spliced.h
index 730b568..c3400dc 100644
--- a/apps/splazers/razers_spliced.h
+++ b/apps/splazers/razers_spliced.h
@@ -775,7 +775,7 @@ extendMatch(TReadSet &readSet, TSize rseqNo, TInf & inf, TMatch &m, TOptions &op
 
     TQueryPrefix queryPrefix = prefix(readSet[rseqNo], beginPositionH(seed));
     TDatabasePrefix databasePrefix = prefix(inf, beginPositionV(seed));
-    extScore = _extendSeedGappedXDropOneDirection(seed, databasePrefix, queryPrefix, EXTEND_LEFT, scoreMatrix, scoreDropOff);
+    extScore = _extendSeedGappedXDropOneDirection(seed, queryPrefix, databasePrefix, EXTEND_LEFT, scoreMatrix, scoreDropOff);
     
 //	m.gBegin = leftDim1(seed) + beginPosition(inf);
 //	m.mScore = rightDim0(seed) - leftDim0(seed) + 1;
@@ -837,7 +837,7 @@ extendMatch(TReadSet &readSet, TSize rseqNo, TInf & inf, TMatch &m, TOptions &op
 
     TQuerySuffix querySuffix = suffix(readSet[rseqNo], endPositionH(seed));
     TDatabaseSuffix databaseSuffix = suffix(inf, endPositionV(seed));
-    extScore = _extendSeedGappedXDropOneDirection(seed, databaseSuffix, querySuffix, EXTEND_RIGHT, scoreMatrix, scoreDropOff);
+    extScore = _extendSeedGappedXDropOneDirection(seed, querySuffix, databaseSuffix, EXTEND_RIGHT, scoreMatrix, scoreDropOff);
 
 
 	//extendSeedScore(seed,extScore,scoreDropOff,scoreMatrix, readSet[rseqNo],inf,1,GappedXDrop());
diff --git a/apps/stellar/CMakeLists.txt b/apps/stellar/CMakeLists.txt
index 5fe8a5d..1f77cab 100644
--- a/apps/stellar/CMakeLists.txt
+++ b/apps/stellar/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_stellar)
 message (STATUS "Configuring apps/stellar")
 
-set (SEQAN_APP_VERSION "1.4.3")
+set (SEQAN_APP_VERSION "1.4.2")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/stellar/stellar.cpp b/apps/stellar/stellar.cpp
index 8eb133c..54081d9 100644
--- a/apps/stellar/stellar.cpp
+++ b/apps/stellar/stellar.cpp
@@ -581,8 +581,6 @@ void _setParser(ArgumentParser & parser)
 
 // TODO(holtgrew): Move this into a SeqAn misc module.
 
-// not supported anymore in vc2015
-// https://msdn.microsoft.com/en-us/library/bb531344.aspx
 class ScientificNotationExponentOutputNormalizer
 {
 public:
@@ -592,22 +590,19 @@ public:
         _oldExponentFormat(0)
     {
 #ifdef PLATFORM_WINDOWS_VS
-#if _MSC_VER < 1900
         // Set scientific format to print two places.
         unsigned _oldExponentFormat = _set_output_format(_TWO_DIGIT_EXPONENT);
 #endif
-#endif
     }
 
     ~ScientificNotationExponentOutputNormalizer()
     {
 #ifdef PLATFORM_WINDOWS_VS
-#if _MSC_VER < 1900
         // Enable old exponent format.
         _set_output_format(_oldExponentFormat);
 #endif
-#endif
     }
+
 };
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/apps/tree_recon/CMakeLists.txt b/apps/tree_recon/CMakeLists.txt
index 39473a2..7496fd8 100644
--- a/apps/tree_recon/CMakeLists.txt
+++ b/apps/tree_recon/CMakeLists.txt
@@ -10,7 +10,7 @@ cmake_minimum_required (VERSION 2.8.2)
 project (seqan_apps_tree_recon)
 message (STATUS "Configuring apps/tree_recon")
 
-set (SEQAN_APP_VERSION "1.4")
+set (SEQAN_APP_VERSION "1.3")
 
 # ----------------------------------------------------------------------------
 # Dependencies
diff --git a/apps/yara/CMakeLists.txt b/apps/yara/CMakeLists.txt
index d368143..e6731bd 100644
--- a/apps/yara/CMakeLists.txt
+++ b/apps/yara/CMakeLists.txt
@@ -25,9 +25,9 @@ endif (NOT (CXX11_FOUND AND CXX11_STL_FOUND))
 
 # Disable parallelism in MSVC as it supports only OpenMP 2.0.
 if (MSVC)
-  set (SEQAN_FIND_DEPENDENCIES ZLIB BZip2)
+  set (SEQAN_FIND_DEPENDENCIES ZLIB BZIP2)
 else ()
-  set (SEQAN_FIND_DEPENDENCIES OpenMP ZLIB BZip2)
+  set (SEQAN_FIND_DEPENDENCIES OpenMP ZLIB BZIP2)
 endif ()
 
 # Search SeqAn and select dependencies.
@@ -43,9 +43,9 @@ if (NOT SEQAN_HAS_ZLIB)
   message (STATUS "  Zlib not found: building yara without gzipped input and BAM output.")
 endif (NOT SEQAN_HAS_ZLIB)
 
-# Warn if BZip2 was not found.
+# Warn if Bzip2 was not found.
 if (NOT SEQAN_HAS_BZIP2)
-  message (STATUS "  BZip2 not found: building yara without bzipped input.")
+  message (STATUS "  Bzip2 not found: building yara without bzipped input.")
 endif (NOT SEQAN_HAS_BZIP2)
 
 # ----------------------------------------------------------------------------
diff --git a/apps/yara/bits_context.h b/apps/yara/bits_context.h
index a6c28bb..78f74f0 100644
--- a/apps/yara/bits_context.h
+++ b/apps/yara/bits_context.h
@@ -50,8 +50,8 @@ struct ReadsContext
 {
     String<unsigned char>       seedErrors;
     String<unsigned char>       minErrors;
-    String<bool>                mapped;
-    String<bool>                paired;
+    String<bool, Packed<> >     mapped;
+    String<bool, Packed<> >     paired;
 };
 
 // ============================================================================
diff --git a/apps/yara/mapper.cpp b/apps/yara/mapper.cpp
index d1b9788..38a1c56 100644
--- a/apps/yara/mapper.cpp
+++ b/apps/yara/mapper.cpp
@@ -193,14 +193,12 @@ void setupArgumentParser(ArgumentParser & parser, Options const & options)
     // Setup performance options.
     addSection(parser, "Performance Options");
 
+#ifdef _OPENMP
     addOption(parser, ArgParseOption("t", "threads", "Specify the number of threads to use.", ArgParseOption::INTEGER));
     setMinValue(parser, "threads", "1");
-#ifdef _OPENMP
     setMaxValue(parser, "threads", "2048");
-#else
-    setMaxValue(parser, "threads", "1");
-#endif
     setDefaultValue(parser, "threads", options.threadsCount);
+#endif
 
     addOption(parser, ArgParseOption("rb", "reads-batch", "Specify the number of reads to process in one batch.",
                                      ArgParseOption::INTEGER));
@@ -285,7 +283,10 @@ parseCommandLine(Options & options, ArgumentParser & parser, int argc, char cons
     getOptionValue(options.libraryError, parser, "library-error");
     getOptionValue(options.libraryOrientation, parser, "library-orientation", options.libraryOrientationList);
 
+#ifdef _OPENMP
     getOptionValue(options.threadsCount, parser, "threads");
+#endif
+
     getOptionValue(options.readsCount, parser, "reads-batch");
 
     if (isSet(parser, "verbose")) options.verbose = 1;
@@ -295,7 +296,7 @@ parseCommandLine(Options & options, ArgumentParser & parser, int argc, char cons
     options.version = getVersion(parser);
 
     // Get command line.
-    for (int i = 0; i < argc; i++)
+    for (int i = 1; i < argc; i++)
     {
         append(options.commandLine, argv[i]);
         appendValue(options.commandLine, ' ');
diff --git a/apps/yara/misc_options.h b/apps/yara/misc_options.h
index de76426..492c555 100644
--- a/apps/yara/misc_options.h
+++ b/apps/yara/misc_options.h
@@ -354,7 +354,7 @@ void setDescription(ArgumentParser & parser)
 {
     addDescription(parser, "Yara - Yet Another Read Aligner.");
     addDescription(parser, "See \\fIhttp://www.seqan.de/projects/yara\\fP for more information.");
-    addDescription(parser, "(c) Copyright 2011-2014 by Enrico Siragusa.");
+    addDescription(parser, "(c) Copyright 2011-2014 by Enrico Siragusa <enrico.siragusa at fu-berlin.de>.");
     addDescription(parser, "(c) Copyright 2013 by NVIDIA Corporation.");
 }
 
diff --git a/apps/yara/tests/gold/adeno-reads_1.t1.sam b/apps/yara/tests/gold/adeno-reads_1.t1.sam
index 44cdae2..76f4b96 100644
--- a/apps/yara/tests/gold/adeno-reads_1.t1.sam
+++ b/apps/yara/tests/gold/adeno-reads_1.t1.sam
@@ -1,5 +1,5 @@
 @HD	VN:1.4	SO:unsorted
- at PG	ID:Yara	PN:Yara	VN:0.9.3 [1741c01]	CL:/Users/esiragusa/Code/seqan-builds/Release-Gcc/bin/yara_mapper gold/adeno-genome input/adeno-reads_1.fa -o gold/adeno-reads_1.t1.sam --threads 1
+ at PG	ID:Yara	PN:Yara	VN:0.9.3 [c4a5ded]	CL:gold/adeno-genome input/adeno-reads_1.fa -o gold/adeno-reads_1.t1.sam --threads 1
 @RG	ID:none	SM:none	PG:Yara
 @SQ	SN:gi|9632547|ref|NC_002077.1|	LN:4718
 adeno-reads100.fasta.000000000	16	gi|9632547|ref|NC_002077.1|	4411	40	100M	*	0	0	GTTACCTTACCCGTCCCCTGTAATTACGTGTTAATCAATAAACCGGTTGATTCGTTTCAGTTGAACTTTGGTCTCCTGTCCTTCTTATCTTATCGGTTAC	IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII	NM:i:0	X0:i:1	X1:i:0	XT:A:U	RG:Z:none
diff --git a/demos/dox/align/align.cpp b/demos/align/align.cpp
similarity index 100%
rename from demos/dox/align/align.cpp
rename to demos/align/align.cpp
diff --git a/demos/dox/align/align.cpp.stdout b/demos/align/align.cpp.stdout
similarity index 100%
rename from demos/dox/align/align.cpp.stdout
rename to demos/align/align.cpp.stdout
diff --git a/demos/align/compute_alignment_stats.cpp b/demos/align/compute_alignment_stats.cpp
new file mode 100644
index 0000000..f4b0212
--- /dev/null
+++ b/demos/align/compute_alignment_stats.cpp
@@ -0,0 +1,66 @@
+#include <iostream>
+
+#include <seqan/align.h>
+#include <seqan/sequence.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Create an alignment between subject and query.
+    Peptide subject =
+        "MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASE"
+        "DLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKIPVKYLEFISECIIQVLQSKH"
+        "PGDFGADAQGAMNKALELFRKDMASNYK";
+    Peptide query =
+        "MSLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHFDLHPGSA"
+        "QLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRVDPVNFKLLSHCLLVTLAARF"
+        "PADFTAEAHAAWDKFLSVTEKYR";
+
+    Align<Peptide> align;
+    resize(rows(align), 2);
+    setSource(row(align, 0), subject);
+    setSource(row(align, 1), query);
+
+    Blosum62 scoringScheme(-1, -12);
+    globalAlignment(align, scoringScheme);
+
+    // Compute the statistics of the alignment.
+    AlignmentStats stats;
+    int scoreVal = computeAlignmentStats(stats, align, scoringScheme);
+    SEQAN_ASSERT_EQ(scoreVal, stats.alignmentScore);
+    std::cout << align
+              << "gap opens:           " << stats.numGapOpens << "\n"
+              << "gap extensions:      " << stats.numGapExtensions << "\n"
+              << "num insertions:      " << stats.numInsertions << "\n"
+              << "num deletions:       " << stats.numDeletions << "\n"
+              << "num matches:         " << stats.numMatches << "\n"
+              << "num mismatches:      " << stats.numMismatches << "\n"
+              << "num positive scores: " << stats.numPositiveScores << "\n"
+              << "num negative scores: " << stats.numNegativeScores << "\n"
+              << "percent similarity:  " << stats.alignmentSimilarity << "\n"
+              << "percent identity:    " << stats.alignmentIdentity << "\n\n\n";
+
+    // Clip alignment rows and compute score of this view.
+    setClippedEndPosition(row(align, 0), 100);
+    setClippedEndPosition(row(align, 1), 100);
+    setClippedBeginPosition(row(align, 0), 5);
+    setClippedBeginPosition(row(align, 1), 5);
+
+    scoreVal = computeAlignmentStats(stats, align, scoringScheme);
+    SEQAN_ASSERT_EQ(scoreVal, stats.alignmentScore);
+    std::cout << "Clipping alignment to (5, 100)\n"
+              << align
+              << "gap opens:           " << stats.numGapOpens << "\n"
+              << "gap extensions:      " << stats.numGapExtensions << "\n"
+              << "num insertions:      " << stats.numInsertions << "\n"
+              << "num deletions:       " << stats.numDeletions << "\n"
+              << "num matches:         " << stats.numMatches << "\n"
+              << "num mismatches:      " << stats.numMismatches << "\n"
+              << "num positive scores: " << stats.numPositiveScores << "\n"
+              << "num negative scores: " << stats.numNegativeScores << "\n"
+              << "percent similarity:  " << stats.alignmentSimilarity << "\n"
+              << "percent identity:    " << stats.alignmentIdentity << "\n";
+
+    return 0;
+}
diff --git a/demos/align/compute_alignment_stats.cpp.stdout b/demos/align/compute_alignment_stats.cpp.stdout
new file mode 100644
index 0000000..027d946
--- /dev/null
+++ b/demos/align/compute_alignment_stats.cpp.stdout
@@ -0,0 +1,50 @@
+      0     .    :    .    :    .    :    .    :    .    : 
+        MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHL
+        | |   |       | |        | | | |||  || |   |  |   
+        MSLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF---
+
+     50     .    :    .    :    .    :    .    :    .    : 
+        KSEDEMKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKI
+           |    |  |  ||  |  | |   |           |   ||     
+        ---DLHPGSAQLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRV
+
+    100     .    :    .    :    .    :    .    :    .    
+        PVKYLEFISECIIQVLQSKHPGDFGADAQGAMNKALELFRKDMASNYK
+                | |    |    | || | |  |  | |    |     | 
+        DPVNFKLLSHCLLVTLAARFPADFTAEAHAAWDKFLSVTEK-----YR
+
+
+gap opens:           2
+gap extensions:      9
+num insertions:      11
+num deletions:       0
+num matches:         41
+num mismatches:      96
+num positive scores: 91
+num negative scores: 46
+percent similarity:  61.4865
+percent identity:    27.7027
+
+
+Clipping alignment to (5, 100)
+      0     .    :    .    :    .    :    .    :    .    : 
+        GEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDE
+         |       | |        | | | |||  || |   |  |      | 
+        TERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF------DL
+
+     50     .    :    .    :    .    :    .    :    . 
+        MKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKI
+           |  |  ||  |  | |   |           |   ||     
+        HPGSAQLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRV
+
+
+gap opens:           1
+gap extensions:      5
+num insertions:      6
+num deletions:       0
+num matches:         26
+num mismatches:      63
+num positive scores: 55
+num negative scores: 34
+percent similarity:  57.8947
+percent identity:    27.3684
diff --git a/demos/dox/align/gaps_example.cpp b/demos/align/gaps_example.cpp
similarity index 100%
rename from demos/dox/align/gaps_example.cpp
rename to demos/align/gaps_example.cpp
diff --git a/demos/dox/align/gaps_example.cpp.stdout b/demos/align/gaps_example.cpp.stdout
similarity index 100%
rename from demos/dox/align/gaps_example.cpp.stdout
rename to demos/align/gaps_example.cpp.stdout
diff --git a/demos/dox/align/global_alignment_banded.cpp b/demos/align/global_alignment_banded.cpp
similarity index 100%
rename from demos/dox/align/global_alignment_banded.cpp
rename to demos/align/global_alignment_banded.cpp
diff --git a/demos/dox/align/global_alignment_banded.cpp.stdout b/demos/align/global_alignment_banded.cpp.stdout
similarity index 100%
rename from demos/dox/align/global_alignment_banded.cpp.stdout
rename to demos/align/global_alignment_banded.cpp.stdout
diff --git a/demos/dox/align/global_alignment_unbanded.cpp b/demos/align/global_alignment_unbanded.cpp
similarity index 100%
rename from demos/dox/align/global_alignment_unbanded.cpp
rename to demos/align/global_alignment_unbanded.cpp
diff --git a/demos/dox/align/global_alignment_unbanded.cpp.stdout b/demos/align/global_alignment_unbanded.cpp.stdout
similarity index 100%
rename from demos/dox/align/global_alignment_unbanded.cpp.stdout
rename to demos/align/global_alignment_unbanded.cpp.stdout
diff --git a/demos/dox/align/integrate_align.cpp b/demos/align/integrate_align.cpp
similarity index 100%
rename from demos/dox/align/integrate_align.cpp
rename to demos/align/integrate_align.cpp
diff --git a/demos/dox/align/integrate_align.cpp.stdout b/demos/align/integrate_align.cpp.stdout
similarity index 100%
rename from demos/dox/align/integrate_align.cpp.stdout
rename to demos/align/integrate_align.cpp.stdout
diff --git a/demos/dox/align_extend/extend_alignment.cpp b/demos/align_extend/extend_alignment.cpp
similarity index 100%
rename from demos/dox/align_extend/extend_alignment.cpp
rename to demos/align_extend/extend_alignment.cpp
diff --git a/demos/dox/align_extend/extend_alignment.cpp.stdout b/demos/align_extend/extend_alignment.cpp.stdout
similarity index 100%
rename from demos/dox/align_extend/extend_alignment.cpp.stdout
rename to demos/align_extend/extend_alignment.cpp.stdout
diff --git a/demos/align_gaps_clipping.cpp b/demos/align_gaps_clipping.cpp
new file mode 100644
index 0000000..c09f659
--- /dev/null
+++ b/demos/align_gaps_clipping.cpp
@@ -0,0 +1,74 @@
+// Demo program for clipping with Gaps objects.
+
+#include <iostream>
+
+#include <seqan/sequence.h>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Position<Gaps<CharString> >::Type TPos;
+
+    // Create sequence variable and gaps basd on sequence.
+    CharString seq("ABCDEFGHIJ");
+    Gaps<CharString> gaps(seq);
+
+    // Insert gaps, the positions are in (clipped) view space.
+    insertGaps(gaps, 2, 2);
+    insertGap(gaps, 6);
+    insertGap(gaps, 10);
+
+    // Print to stdout.
+    std::cout << "gaps\t" << gaps << "\n"
+              << "seq \t" << seq << "\n\n";
+
+    // Print the begin and end positions in sequence space and the clipped
+    // begin and end positions in gap space.  We have no clipping, so no
+    // surprises here.
+    std::cout << "beginPosition(gaps)        == " << beginPosition(gaps) << "\n"
+              << "endPosition(gaps)          == " << endPosition(gaps) << "\n"
+              << "clippedBeginPosition(gaps) == " << clippedBeginPosition(gaps) << "\n"
+              << "clippedEndPosition(gaps)   == " << clippedEndPosition(gaps) << "\n\n";
+
+    // Now, clip the alignment and again print the gaps, sequence and begin/end
+    // positions.  Note that the clipping positions are relative to the unclipped
+    // view.
+    setClippedBeginPosition(gaps, 3);
+    setClippedEndPosition(gaps, 10);
+
+    std::cout << "gaps\t" << gaps << "\n"
+              << "seq \t" << infix(seq, beginPosition(gaps), endPosition(gaps)) << "\n\n";
+
+    std::cout << "beginPosition(gaps)        == " << beginPosition(gaps) << "\n"
+              << "endPosition(gaps)          == " << endPosition(gaps) << "\n"
+              << "clippedBeginPosition(gaps) == " << clippedBeginPosition(gaps) << "\n"
+              << "clippedEndPosition(gaps)   == " << clippedEndPosition(gaps) << "\n\n";
+
+    // We can translate between the (clipped) gapped position (aka view) and
+    // the unclipped ungapped positions (aka) source using toSourcePosition()
+    // and toViewPosition().  Note that because of projection to the right of
+    // gaps, these operations are not symmetric.
+    std::cout << "4 view position => " << toSourcePosition(gaps, 4) << " source position\n"
+              << "2 source position => " << toViewPosition(gaps, 2) << " view position\n\n";
+
+    // Translating between clipped gapped and unclipped gapped position can
+    // be done by adding/subtracting clippedBeginPosition(gaps).
+    std::cout << "3 clipped gapped => " << 3 + clippedBeginPosition(gaps) << " unclipped gapped\n"
+              << "6 unclipped gapped => " << 5 - clippedBeginPosition(gaps) << " clipped gapped\n\n";
+
+    // Translating between clipped ungapped and unclipped ungapped position can
+    // be done by adding/subtracing beginPosition(gaps).  Since there are no
+    // gaps, this operation is symmetric.
+    std::cout << "3 clipped ungapped => " << 3 + beginPosition(gaps) << " unclipped ungapped\n"
+              << "5 unclipped ungapped => " << 5 - beginPosition(gaps) << " clipped ungapped\n\n";
+
+    // Translating between gapped clipped position and ungapped clipped
+    // position and between gapped unclipped and ungapped unclipped positions
+    // has to be done using the translations above.
+    std::cout << "3 clipped gapped => " << toSourcePosition(gaps, 3) - beginPosition(gaps) << " clipped ungapped\n"
+              << "4 unclipped ungapped => " << toViewPosition(gaps, 4) + clippedBeginPosition(gaps) << " unclipped gapped\n";
+
+    return 0;
+}
diff --git a/demos/dox/align_profile/profile_seq_frac_score.cpp b/demos/align_profile/profile_seq_frac_score.cpp
similarity index 100%
rename from demos/dox/align_profile/profile_seq_frac_score.cpp
rename to demos/align_profile/profile_seq_frac_score.cpp
diff --git a/demos/dox/align_profile/profile_seq_score.cpp b/demos/align_profile/profile_seq_score.cpp
similarity index 100%
rename from demos/dox/align_profile/profile_seq_score.cpp
rename to demos/align_profile/profile_seq_score.cpp
diff --git a/demos/dox/align_split/split_alignment.cpp b/demos/align_split/split_alignment.cpp
similarity index 100%
rename from demos/dox/align_split/split_alignment.cpp
rename to demos/align_split/split_alignment.cpp
diff --git a/demos/dox/align_split/split_alignment.cpp.stdout b/demos/align_split/split_alignment.cpp.stdout
similarity index 100%
rename from demos/dox/align_split/split_alignment.cpp.stdout
rename to demos/align_split/split_alignment.cpp.stdout
diff --git a/demos/alignment.cpp b/demos/alignment.cpp
new file mode 100644
index 0000000..87ac745
--- /dev/null
+++ b/demos/alignment.cpp
@@ -0,0 +1,51 @@
+///A tutorial about global alignments.
+//#include <iostream>
+
+#include <seqan/basic.h>
+#include <seqan/stream.h>
+#include <seqan/align.h>
+
+int main()
+{
+    using namespace seqan;
+    typedef Value<Gaps<Dna5String, ArrayGaps> >::Type TValue;
+    using namespace seqan;
+
+///Two DNA sequences that shall be aligned.
+    typedef String<Dna> TSequence;
+    TSequence seq1 = "atcgaatgcgga";
+    TSequence seq2 = "actcgttgca";
+///Scoring objects are used to define a scoring scheme.
+///In this case, affine gap costs with match = 0, mismatch = -1, gapextend = -1 and gapopen = -2.
+    Score<int> scoringScheme(0, -1, -1, -2);
+///Example 1: We use @Class.Align@ to align the two sequences.
+///Since we do not specify an @Tag.Pairwise Global Alignment Algorithms|algorithm tag@ when we call @Function.globalAlignment@,
+///a suitable algorithm (@Tag.Pairwise Global Alignment Algorithms|Gotoh@) is automatically choosen.
+    Align<TSequence, ArrayGaps> align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), seq1);
+    assignSource(row(align, 1), seq2);
+
+    int score = globalAlignment(align, scoringScheme);
+    std::cout << "Score = " << score << std::endl;
+    std::cout << align << std::endl;
+///Example 2: We now choose explicitely the algorithm @Tag.Pairwise Global Alignment Algorithms|MyersHirschberg at .
+///Since this algorithm always works on Levenshtein distance, we do not need score.
+    score = globalAlignment(align, MyersHirschberg());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << align << std::endl;
+///Example 3: We now do the same as in case 1, but now we use an @Spec.Alignment Graph@ for storing the alignment.
+///Here we use @Tag.Pairwise Global Alignment Algorithms|Gotoh's algorithm at .
+    typedef StringSet<TSequence, Dependent<> > TStringSet;
+    typedef Graph<Alignment<TStringSet, void> > TAlignmentGraph;
+
+    TStringSet string_set;
+    appendValue(string_set, seq1);
+    appendValue(string_set, seq2);
+    TAlignmentGraph alignment_graph(string_set);
+
+    score = globalAlignment(alignment_graph, scoringScheme, Gotoh());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << alignment_graph << std::endl;
+    return 0;
+}
diff --git a/demos/alignment_local.cpp b/demos/alignment_local.cpp
new file mode 100644
index 0000000..60bad91
--- /dev/null
+++ b/demos/alignment_local.cpp
@@ -0,0 +1,91 @@
+///A tutorial about local alignments.
+#include <iostream>
+#include <seqan/score.h>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+///Example 1: This program applies the Smith-Waterman algorithm to compute the best local alignment between two given sequences.
+    StringSet<CharString> strings;
+    Align<String<char> > ali;
+    resize(rows(ali), 2);
+    assignSource(row(ali, 0), "aphilologicaltheorem");
+    assignSource(row(ali, 1), "bizarreamphibology");
+    int score = localAlignment(ali, Score<int>(3, -3, -2, -2));
+    std::cout << "Score = " << score << std::endl;
+    std::cout << ali;
+    unsigned cBeginPos = clippedBeginPosition(row(ali, 0));
+    unsigned cEndPos = clippedEndPosition(row(ali, 0)) - 1;
+    std::cout << "Aligns Seq1[" << cBeginPos << ":" << cEndPos << "]";
+    std::cout << " and Seq2[" << cBeginPos << ":" << cEndPos << "]" << std::endl << std::endl;
+
+
+///Example 2: This program applies the Waterman-Eggert algorithm to compute all non-overlapping local alignments with score better or equal 2.
+    Align<String<Dna> > ali2;
+    resize(rows(ali2), 2);
+    assignSource(row(ali2, 0), "ataagcgtctcg");
+    assignSource(row(ali2, 1), "tcatagagttgc");
+
+    Score<int> scoring(2, -1, -2, 0);
+    LocalAlignmentEnumerator<Score<int>, Unbanded> enumerator(scoring, 2);
+    while (nextLocalAlignment(ali2, enumerator))
+    {
+        std::cout << "Score = " << getScore(enumerator) << std::endl;
+        std::cout << ali2;
+        unsigned cBeginPos0 = clippedBeginPosition(row(ali2, 0));
+        unsigned cEndPos0 = clippedEndPosition(row(ali2, 0)) - 1;
+        unsigned cBeginPos1 = clippedBeginPosition(row(ali2, 1));
+        unsigned cEndPos1 = clippedBeginPosition(row(ali2, 1)) - 1;
+        std::cout << "Aligns Seq1[" << cBeginPos0 << ":" << cEndPos0 << "]";
+        std::cout << " and Seq2[" << cBeginPos1 << ":" <<  cEndPos1 << "]";
+        std::cout << std::endl << std::endl;
+    }
+
+///Example 3
+    Align<String<Dna> > ali3;
+    resize(rows(ali3), 2);
+    assignSource(row(ali3, 0), "cccccc");
+    assignSource(row(ali3, 1), "tttttggccccccgg");
+
+    Score<int> scoring3(1, -1, -1, -1);
+    LocalAlignmentEnumerator<Score<int>, Unbanded> enumerator3(scoring3, 5);
+    while (nextLocalAlignment(ali3, enumerator3))
+    {
+        std::cout << "Score = " << getScore(enumerator3) << std::endl;
+        std::cout << ali3;
+        unsigned cBeginPos0 = clippedBeginPosition(row(ali3, 0));
+        unsigned cEndPos0 = clippedEndPosition(row(ali3, 0)) - 1;
+        unsigned cBeginPos1 = clippedBeginPosition(row(ali3, 1));
+        unsigned cEndPos1 = clippedEndPosition(row(ali3, 1)) - 1;
+        std::cout << "Aligns Seq1[" << cBeginPos0 << ":" << cEndPos0 << "]";
+        std::cout << " and Seq2[" << cBeginPos1 << ":" << cEndPos1 << "]";
+        std::cout << std::endl << std::endl;
+    }
+
+///Example 4: This program applies the banded Waterman-Eggert algorithm to compute all non-overlapping local alignments with score or equal 5
+///           in the band from diagonal -1 to diagonal 8.
+    Align<String<Dna5> > ali4;
+    resize(rows(ali4), 2);
+    assignSource(row(ali4, 0), "AAAAAAANAAAGGGNGGGGGGGGNGGGGGANAA");
+    assignSource(row(ali4, 1), "GGGGGGCGGGGGGGA");
+
+    LocalAlignmentFinder<> finder4(ali4);
+    Score<int> scoring4(1, -1, -1, -1);
+    LocalAlignmentEnumerator<Score<int>, Banded> enumerator4(scoring3, -1, 8, 5);
+    while (nextLocalAlignment(ali4, enumerator4))
+    {
+        std::cout << "Score = " << getScore(enumerator4) << std::endl;
+        std::cout << ali4;
+        unsigned cBeginPos0 = clippedBeginPosition(row(ali4, 0));
+        unsigned cEndPos0 = clippedEndPosition(row(ali4, 0)) - 1;
+        unsigned cBeginPos1 = clippedBeginPosition(row(ali4, 1));
+        unsigned cEndPos1 = clippedEndPosition(row(ali4, 1)) - 1;
+        std::cout << "Aligns Seq1[" << cBeginPos0 << ":" << cEndPos0 << "]";
+        std::cout << " and Seq2[" << cBeginPos1 << ":" << cEndPos1 << "]";
+        std::cout << std::endl << std::endl;
+    }
+
+    return 0;
+}
diff --git a/demos/allocator.cpp b/demos/allocator.cpp
new file mode 100644
index 0000000..748f4f5
--- /dev/null
+++ b/demos/allocator.cpp
@@ -0,0 +1,28 @@
+///A tutorial about the use of allocators.
+
+#include <seqan/basic.h>
+using namespace seqan;
+
+///We define an arbitrary class.
+struct MyClass
+{};
+
+int main()
+{
+///We create 100 instances of $MyClass$ on the heap
+///using a default temporary allocator object $Default$.
+    MyClass * my_class_arr;
+    allocate(Default(), my_class_arr, 100);
+    arrayConstruct(my_class_arr, my_class_arr + 100);
+///Before the storage is deallocated, the $MyClass$ objects have to be destroyed.
+    arrayDestruct(my_class_arr, my_class_arr + 100);
+    deallocate(Default(), my_class_arr, 100);
+///We can use any kind of object as an allocator.
+///However, dedicated allocators offer more advanced functionality, e.g. @Function.clear at .
+    Allocator<SimpleAlloc<> > alloc1;
+    char * char_array;
+    allocate(alloc1, char_array, 300);
+///@Function.clear@ can be used to deallocate all storage at once.
+    clear(alloc1);
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/alphabet.cpp b/demos/alphabet.cpp
similarity index 100%
rename from demos/unassigned_or_unused/alphabet.cpp
rename to demos/alphabet.cpp
diff --git a/demos/unassigned_or_unused/annotation_converter.cpp b/demos/annotation_converter.cpp
similarity index 100%
rename from demos/unassigned_or_unused/annotation_converter.cpp
rename to demos/annotation_converter.cpp
diff --git a/demos/unassigned_or_unused/arg_align.README b/demos/arg_align.README
similarity index 100%
rename from demos/unassigned_or_unused/arg_align.README
rename to demos/arg_align.README
diff --git a/demos/unassigned_or_unused/arg_align.cpp b/demos/arg_align.cpp
similarity index 100%
rename from demos/unassigned_or_unused/arg_align.cpp
rename to demos/arg_align.cpp
diff --git a/demos/dox/arg_parse/argument_parser.cpp b/demos/arg_parse/argument_parser.cpp
similarity index 100%
rename from demos/dox/arg_parse/argument_parser.cpp
rename to demos/arg_parse/argument_parser.cpp
diff --git a/demos/dox/bam_io/bam_file_in.cpp b/demos/bam_io/bam_file_in.cpp
similarity index 100%
rename from demos/dox/bam_io/bam_file_in.cpp
rename to demos/bam_io/bam_file_in.cpp
diff --git a/demos/bam_io/bam_tags_dict.cpp b/demos/bam_io/bam_tags_dict.cpp
new file mode 100644
index 0000000..ac90018
--- /dev/null
+++ b/demos/bam_io/bam_tags_dict.cpp
@@ -0,0 +1,36 @@
+#include <iostream>
+#include <seqan/stream.h>
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    CharString bamStr, samStr = "AA:Z:value1\tAB:Z:value2\tAC:i:30";
+    assignTagsSamToBam(bamStr, samStr);
+    BamTagsDict tags(bamStr);
+    std::cout << length(tags) << std::endl;  // #=> "3"
+    for (unsigned id = 0; id < length(tags); ++id)
+    {
+        std::cout << getTagKey(tags, id) << " -> ";
+
+        if (getTagType(tags, id) == 'i')  // is 32 bit integer
+        {
+            __int32 x = 0;
+            bool res = extractTagValue(x, tags, id);
+            SEQAN_ASSERT_MSG(res, "Not a valid integer at pos %u!", id);
+            std::cout << x;
+        }
+        if (getTagType(tags, id) == 'Z')  // is string
+        {
+            CharString str;
+            bool res = extractTagValue(str, tags, id);
+            SEQAN_ASSERT_MSG(res, "Not a valid string at pos %u!", id);
+            std::cout << '"' << str << '"';
+        }
+
+        std::cout << std::endl;
+    }
+
+    return 0;
+}
diff --git a/demos/dox/bam_io/bam_tags_dict.cpp.stdout b/demos/bam_io/bam_tags_dict.cpp.stdout
similarity index 100%
rename from demos/dox/bam_io/bam_tags_dict.cpp.stdout
rename to demos/bam_io/bam_tags_dict.cpp.stdout
diff --git a/demos/bam_library_size.cpp b/demos/bam_library_size.cpp
new file mode 100644
index 0000000..a0ea80f
--- /dev/null
+++ b/demos/bam_library_size.cpp
@@ -0,0 +1,271 @@
+// ==========================================================================
+//                 SeqAn - The Library for Sequence Analysis
+// ==========================================================================
+// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright
+//       notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright
+//       notice, this list of conditions and the following disclaimer in the
+//       documentation and/or other materials provided with the distribution.
+//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
+//       its contributors may be used to endorse or promote products derived
+//       from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+//
+// ==========================================================================
+// Author: Tobias Rausch <rausch at embl.de>
+// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
+// ==========================================================================
+// Shows how to use the bam_io module to estimate the insert size from a SAM
+// or BAM file.
+// ==========================================================================
+
+#include <iostream>
+#include <vector>
+
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+#include <seqan/bam_io.h>
+
+#if SEQAN_HAS_ZLIB
+
+using namespace seqan;
+
+// Stores information about a library.
+
+struct LibraryInfo
+{
+    // This is the notation introduced by Illumina.
+    //
+    // F+: >R1 R2>
+    // F-: >R2 R1>
+    // R+: >R1 R2<
+    // R-: <R2 R1>
+    enum Orientation
+    {
+        F_PLUS  = 0,
+        F_MINUS = 1,
+        R_PLUS  = 2,
+        R_MINUS = 3
+    };
+
+    unsigned median;
+    double   stdDev;
+    unsigned maxNormalISize;
+    Orientation defaultOrient;
+
+    LibraryInfo() :
+        median(0), stdDev(0), maxNormalISize(0), defaultOrient(F_PLUS)
+    {}
+};
+
+inline int
+getStrandIndependentOrientation(BamAlignmentRecord const & rec)
+{
+    if (!hasFlagRC(rec))
+    {
+        if (!(hasFlagNextRC(rec)))
+        {
+            return (rec.beginPos < rec.pNext) ? LibraryInfo::F_PLUS : LibraryInfo::F_MINUS;
+        }
+        else
+        {
+            return (rec.beginPos < rec.pNext) ? LibraryInfo::R_PLUS : LibraryInfo::R_MINUS;
+        }
+    }
+    else
+    {
+        if (!hasFlagNextRC(rec))
+        {
+            return (rec.beginPos > rec.pNext) ? LibraryInfo::R_PLUS : LibraryInfo::R_MINUS;
+        }
+        else
+        {
+            return (rec.beginPos > rec.pNext) ? LibraryInfo::F_PLUS : LibraryInfo::F_MINUS;
+        }
+    }
+}
+
+bool endsWith(CharString const & str, CharString const & x)
+{
+    typedef Size<CharString>::Type TSize;
+
+    TSize len = std::min(length(str), length(x));
+    TSize pos = length(str) - len;
+    return suffix(str, pos) == x;
+}
+
+bool performEstimation(LibraryInfo & libInfo, BamFileIn & bamFileIn)
+{
+    typedef StringSet<String<char> >   TNameStore;
+    typedef NameStoreCache<TNameStore> TNameStoreCache;
+
+    // Vector of all insert sizes.
+    typedef std::vector<unsigned int> TVecISize;
+    TVecISize vecISize;
+
+    // Read Header.
+    BamHeader header;
+    readHeader(header, bamFileIn);
+
+    // Orientations.
+    unsigned orientationCounters[4] = {0, 0, 0, 0};
+
+    // Running mean.
+    __uint64 runningMean = 0;
+    unsigned pairCount = 0;
+
+    // Count.
+    BamAlignmentRecord record;
+    while (!atEnd(bamFileIn))
+    {
+        readRecord(record, bamFileIn);
+
+        // Skip all records except for first mate of properly mapped pairs.
+        if (!hasFlagMultiple(record) || hasFlagUnmapped(record) || hasFlagNextUnmapped(record) ||
+            hasFlagSecondary(record) || hasFlagFirst(record))
+            continue;
+
+        vecISize.push_back(abs(record.tLen));
+        runningMean += abs(record.tLen);
+        pairCount += 1;
+
+        orientationCounters[getStrandIndependentOrientation(record)] += 1;
+    }
+
+    // Get default orientation.
+    unsigned orientMax = 0;
+    for (unsigned i = 0; i < 4; ++i)
+        if (orientationCounters[i] > orientationCounters[orientMax])
+            orientMax = i;
+    LibraryInfo::Orientation orientations[4] = { LibraryInfo::F_PLUS, LibraryInfo::F_MINUS, LibraryInfo::R_PLUS, LibraryInfo::R_MINUS };
+    libInfo.defaultOrient = orientations[orientMax];
+
+    // Trim off the chimera peak in mate-pair libraries.
+    if ((libInfo.defaultOrient == LibraryInfo::R_MINUS) && (pairCount > 0) && (runningMean / pairCount) >= 1000u)
+    {
+        typedef TVecISize::const_iterator TVecISizeIter;
+        TVecISize vecISizeTmp;
+        for (TVecISizeIter it = vecISize.begin(); it < vecISize.end(); ++it)
+            if (*it > 1000)
+                vecISizeTmp.push_back(*it);
+        std::swap(vecISize, vecISizeTmp);
+    }
+
+
+    // Check that this is a proper paired-end library
+    if (vecISize.empty())
+        return true;
+
+    // Get library stats.
+    //
+    // Start with median.
+    typedef TVecISize::iterator TVecISizeIter;
+    TVecISizeIter begin = vecISize.begin();
+    TVecISizeIter end = vecISize.end();
+    std::nth_element(begin, begin + (end - begin) / 2, end);
+    begin = vecISize.begin();
+    end = vecISize.end();
+    libInfo.median = *(begin + (end - begin) / 2);
+    // Standard deviation is next.
+    //
+    // SD calculation cutoffs are 7 SDs to the left and right assuming 10% library deviation.
+    libInfo.stdDev = 0;
+    double cutoffMax = libInfo.median + 7 * 0.1 * libInfo.median;
+    double cutoffMin = libInfo.median - 7 * 0.1 * libInfo.median;
+    if ((cutoffMin < 0) || (cutoffMax < cutoffMin))
+        cutoffMin = 0;
+    unsigned int count = 0;
+    for (; begin < end; ++begin)
+    {
+        if ((*begin >= cutoffMin) && (*begin <= cutoffMax))
+        {
+            libInfo.stdDev += (*begin - libInfo.median) * (*begin - libInfo.median);
+            ++count;
+        }
+    }
+    if (count == 0u)  // prevent div-by-zero below
+        count = 1;
+    libInfo.stdDev = sqrt(libInfo.stdDev / count);
+    libInfo.maxNormalISize = static_cast<unsigned>(libInfo.median + 3 * libInfo.stdDev);
+
+    return true;
+}
+
+int main(int argc, char const ** argv)
+{
+    if (argc != 2)
+    {
+        std::cerr << "Invalid arguments!\n"
+                  << "USAGE: bam_library_size {IN.sam,IN.bam}\n";
+        return 1;
+    }
+
+    LibraryInfo libInfo;
+
+    BamFileIn bamFileIn;
+    if (!open(bamFileIn, argv[1]))
+    {
+        std::cerr << "Could not open input SAM/BAM file " << argv[1] << "\n";
+        return 1;
+    }
+
+    if (!performEstimation(libInfo, bamFileIn))
+        return 1;
+
+    // Print result.
+    std::cout << "Library Information\n\n"
+              << "path:                       " << argv[1] << "\n"
+              << "median:                     " << libInfo.median << "\n"
+              << "standard deviation:         " << libInfo.stdDev << "\n"
+              << "maximum normal insert size: " << libInfo.maxNormalISize << "\n";
+
+    std::cout << "orientation:                ";
+    switch (libInfo.defaultOrient)
+    {
+    case LibraryInfo::F_PLUS:
+        std::cout << "F+ R1 ---> ---> R2\n";
+        break;
+
+    case LibraryInfo::F_MINUS:
+        std::cout << "F- R1 ---> ---> R2\n";
+        break;
+
+    case LibraryInfo::R_PLUS:
+        std::cout << "R+ R1 ---> <--- R2\n";
+        break;
+
+    case LibraryInfo::R_MINUS:
+        std::cout << "R- R1 <--- ---> R2\n";
+        break;
+    }
+
+    return 0;
+}
+
+#else
+
+int main(int, char const **)
+{
+    std::cerr << "bam_library_size can only be compiled correctly with zlib." << std::endl;
+    return 0;
+}
+
+#endif  // #if SEQAN_HAS_ZLIB
diff --git a/demos/unassigned_or_unused/bam_print_alignments.cpp b/demos/bam_print_alignments.cpp
similarity index 100%
rename from demos/unassigned_or_unused/bam_print_alignments.cpp
rename to demos/bam_print_alignments.cpp
diff --git a/demos/unassigned_or_unused/bamutil.cpp b/demos/bamutil.cpp
similarity index 100%
rename from demos/unassigned_or_unused/bamutil.cpp
rename to demos/bamutil.cpp
diff --git a/demos/basic/enable_if.cpp b/demos/basic/enable_if.cpp
new file mode 100644
index 0000000..1f81034
--- /dev/null
+++ b/demos/basic/enable_if.cpp
@@ -0,0 +1,96 @@
+// ==========================================================================
+//                 SeqAn - The Library for Sequence Analysis
+// ==========================================================================
+// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright
+//       notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright
+//       notice, this list of conditions and the following disclaimer in the
+//       documentation and/or other materials provided with the distribution.
+//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
+//       its contributors may be used to endorse or promote products derived
+//       from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+//
+// ==========================================================================
+// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
+// ==========================================================================
+// Example program used in the documentation of the enable-if metaprogramming
+// utilities.
+// ==========================================================================
+
+#include <string>
+
+#include <seqan/basic.h>
+
+using namespace seqan;
+
+#if !defined(_MSC_VER)  // Currently, there are some issues with MSVC and concepts.
+class EnableIfExample
+{
+public:
+    int num;
+
+//![enable if example constructor]
+    template <typename T>
+    EnableIfExample(T const & n, SEQAN_CTOR_ENABLE_IF(Is<IntegerConcept<T> >)) :
+        num(0)
+    {
+        ignoreUnusedVariableWarning(dummy);
+    }
+
+//![enable if example constructor]
+
+//![disable if example constructor]
+    template <typename T>
+    EnableIfExample(T const & n, SEQAN_CTOR_DISABLE_IF(Is<IntegerConcept<T> >)) :
+        num(0)
+    {
+        ignoreUnusedVariableWarning(dummy);
+    }
+
+//![disable if example constructor]
+
+//![enable if example function]
+    template <typename T>
+    SEQAN_FUNC_ENABLE_IF(Is<IntegerConcept<T> >)
+    f(T /* x */)
+    { /* ... */ }
+//![enable if example function]
+
+//![disable if example function]
+    template <typename T>
+    SEQAN_FUNC_DISABLE_IF(Is<IntegerConcept<T> >)
+    f(T /* x */)
+    { /* ... */}
+//![disable if example function]
+};
+#endif  // #if !defined(_MSC_VER)
+
+int main()
+{
+#if !defined(_MSC_VER)
+    EnableIfExample ex1(1);
+    (void)ex1;
+    EnableIfExample ex2("asdf");
+    (void)ex2;
+#endif  // #if !defined(_MSC_VER)
+
+    return 0;
+}
diff --git a/demos/dox/basic/metaprogramming_control.cpp b/demos/basic/metaprogramming_control.cpp
similarity index 100%
rename from demos/dox/basic/metaprogramming_control.cpp
rename to demos/basic/metaprogramming_control.cpp
diff --git a/demos/dox/basic/metaprogramming_logic.cpp b/demos/basic/metaprogramming_logic.cpp
similarity index 100%
rename from demos/dox/basic/metaprogramming_logic.cpp
rename to demos/basic/metaprogramming_logic.cpp
diff --git a/demos/dox/basic/metaprogramming_math.cpp b/demos/basic/metaprogramming_math.cpp
similarity index 100%
rename from demos/dox/basic/metaprogramming_math.cpp
rename to demos/basic/metaprogramming_math.cpp
diff --git a/demos/dox/basic/metaprogramming_switch.cpp b/demos/basic/metaprogramming_switch.cpp
similarity index 100%
rename from demos/dox/basic/metaprogramming_switch.cpp
rename to demos/basic/metaprogramming_switch.cpp
diff --git a/demos/dox/basic/simple_type_construction.cpp b/demos/basic/simple_type_construction.cpp
similarity index 100%
rename from demos/dox/basic/simple_type_construction.cpp
rename to demos/basic/simple_type_construction.cpp
diff --git a/demos/dox/bed_io/UNUSED_bed_stream_read.cpp b/demos/bed_io/bed_stream_read.cpp
similarity index 100%
rename from demos/dox/bed_io/UNUSED_bed_stream_read.cpp
rename to demos/bed_io/bed_stream_read.cpp
diff --git a/demos/benchmark_stream.cpp b/demos/benchmark_stream.cpp
new file mode 100644
index 0000000..0b8ab6a
--- /dev/null
+++ b/demos/benchmark_stream.cpp
@@ -0,0 +1,422 @@
+// ==========================================================================
+//                 SeqAn - The Library for Sequence Analysis
+// ==========================================================================
+// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright
+//       notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright
+//       notice, this list of conditions and the following disclaimer in the
+//       documentation and/or other materials provided with the distribution.
+//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
+//       its contributors may be used to endorse or promote products derived
+//       from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+//
+// ==========================================================================
+// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
+// ==========================================================================
+// Stream Benchmark Demo.  This demo shows how to use different stream types
+// for reading and writing FASTA files.  The time required for this is
+// printed, and thus this demo can be used as a benchmark tool.
+// ==========================================================================
+
+// #define SEQAN_NEW_IO
+
+#include <cstdio>
+//#include <fstream>
+#if SEQAN_HAS_ZLIB
+#include <zlib.h>
+#endif  // #if SEQAN_HAS_ZLIB
+#if SEQAN_HAS_BZIP2
+#include <bzlib.h>
+#endif  // #if SEQAN_HAS_BZIP2
+
+#include <seqan/basic.h>
+#include <seqan/stream.h>
+#include <seqan/seq_io.h>
+#include <seqan/stream.h>
+#include <seqan/sequence.h>
+#include <seqan/arg_parse.h>
+
+using namespace seqan;
+
+// Setting buffer size to 4MB, such that the overhead for jumping buffers and
+// such only occurs every 4M chars.
+//const unsigned int BUFFER_SIZE = 1024 * 1024 * 4;
+
+typedef Dna5String TSequence;
+
+struct Options
+{
+    bool doublePass;
+    bool cstdio;
+    bool fstream;
+    bool mmapString;
+    bool gzip;
+    bool bzip2;
+    bool documentMMap;
+    bool nonConcat;
+    bool multiSeq;
+
+    Options() :
+        doublePass(false), cstdio(false), fstream(false),
+        mmapString(false), gzip(false), bzip2(false), documentMMap(false),
+        nonConcat(false), multiSeq(false)
+    {}
+};
+
+//int readFileMultiSeqFile(char const * filename, Options const & /*options*/)
+//{
+//    typedef StringSet<CharString> TSequenceIds;
+//    typedef StringSet<TSequence> TSequences;
+//    typedef Iterator<TSequenceIds>::Type TSequenceIdsIter;
+//    typedef Iterator<TSequences>::Type TSequencesIter;
+//    TSequenceIds sequenceIds;
+//    TSequences sequences;
+//
+//    double before = sysTime();
+//    std::cerr << "READING\tWHOLE\tOWNER";
+//    std::cerr << "\tmultiseq" << std::flush;
+//
+//    MultiSeqFile multiSeqFile;
+//    if (!open(multiSeqFile.concat, filename, OPEN_RDONLY))
+//    {
+//        std::cerr << std::endl << "Could not open mmap file for reading." << std::endl;
+//        return 1;
+//    }
+//
+//    AutoSeqFormat format;
+//    guessFormat(multiSeqFile.concat, format);
+//    split(multiSeqFile, format);
+//
+//    unsigned seqCount = length(multiSeqFile);
+//    StringSet<TSequence> seqs;
+//    StringSet<CharString> seqIDs;
+//    reserve(seqs, seqCount, Exact());
+//    reserve(seqIDs, seqCount, Exact());
+//
+//    TSequence seq;
+//    // CharString qual;
+//    CharString id;
+//    for (unsigned i = 0; i < seqCount; ++i)
+//    {
+//        assignSeq(seq, multiSeqFile[i], format);    // read sequence
+//        // assignQual(qual, multiSeqFile[i], format);  // read ascii quality values
+//        assignSeqId(id, multiSeqFile[i], format);   // read sequence id
+//
+//        // convert ascii to values from 0..62
+//        // store dna and quality together in Dna5Q
+//        // for (unsigned j = 0; j < length(qual) && j < length(seq); ++j)
+//        //     assignQualityValue(seq[j], (int)(ordValue(qual[j]) - 33));
+//        // we use reserve and append, as assign is not supported
+//        // by StringSet<..., Owner<ConcatDirect<> > >
+//        appendValue(seqs, seq, Generous());
+//        appendValue(seqIDs, id, Generous());
+//    }
+//
+//    double after = sysTime();
+//    fprintf(stderr, "\t%f\n", after - before);
+//    return 0;
+//}
+
+template <typename TSpec>
+int readFileMMapDocument(char const * filename, Options const & /*options*/, TSpec const & /*tag*/)
+{
+    typedef StringSet<CharString, TSpec> TSequenceIds;
+    typedef StringSet<TSequence, TSpec> TSequences;
+    typedef typename Iterator<TSequenceIds>::Type TSequenceIdsIter;
+    typedef typename Iterator<TSequences>::Type TSequencesIter;
+    TSequenceIds sequenceIds;
+    TSequences sequences;
+
+    double before = sysTime();
+    std::cerr << "READING\tWHOLE\t";
+    if (IsSameType<TSpec, Owner<> >::VALUE)
+        std::cerr << "OWNER";
+    else
+        std::cerr << "CONCAT";
+    std::cerr << "\tmmap" << std::flush;
+    // fprintf(stderr, "\t%f\n", after - before);
+    /*typedef File<Async<> > TFile;
+    typedef String<char, MMap< ExternalConfig<TFile> > > TMMapString;
+    TMMapString myString;
+    if (!open(myString, filename, OPEN_RDONLY)) {
+        std::cerr << std::endl << "Could not open mmap file for reading." << std::endl;
+        return 1;
+    }
+    RecordReader<TMMapString, DoublePass<StringReader> > reader(myString, BUFFER_SIZE);
+    */
+    SeqFileIn reader(filename);
+    readRecords(sequenceIds, sequences, reader);
+    SEQAN_ASSERT_EQ(length(sequenceIds), length(sequences));
+
+    // TSequenceIdsIter itId = begin(sequenceIds);
+    // TSequencesIter itSeq = begin(sequences);
+    // for (; !atEnd(itId); ++itId, ++itSeq) {
+    //std::cout << value(itId) << "\t" << value(itSeq) << "\n";
+    // }
+
+    double after = sysTime();
+    fprintf(stderr, "\t%f\n", after - before);
+    return 0;
+}
+
+int readFileMMapDocument(char const * filename, Options const & options)
+{
+    if (options.nonConcat)
+        return readFileMMapDocument(filename, options, Owner<Default>());
+
+    //else
+    //return readFileMMapDocument(filename, options, Owner<ConcatDirect<> >());
+    return 0;
+}
+
+int readFastaFile(StringSet<CharString> & sequenceIds,
+                  StringSet<TSequence> & sequences,
+                  SeqFileIn & file)
+{
+    (void)sequenceIds;
+    (void)sequences;
+
+    CharString meta;
+    TSequence seq;
+    while (!atEnd(file))
+        readRecord(meta, seq, file);
+
+    return 0;
+}
+
+template <typename TFile>
+int readFastaFile(StringSet<CharString> & sequenceIds,
+                  StringSet<TSequence> & sequences,
+                  TFile & file)
+{
+    (void)sequenceIds;
+    (void)sequences;
+
+    typename DirectionIterator<TFile, Input>::Type iter;
+    iter = begin(file);
+
+    CharString meta;
+    TSequence seq;
+    while (!atEnd(iter))
+        readRecord(meta, seq, iter, Fasta());
+
+    return 0;
+}
+
+void readFileMMap(char const * filename, Options const & /*options*/)
+{
+    StringSet<CharString> sequenceIds;
+    StringSet<TSequence> sequences;
+
+    double before = sysTime();
+    std::cerr << "READING\tRECORD\t" << std::flush;
+
+    typedef File<Async<> > TFile;
+    String<char, MMap<ExternalConfig<TFile> > > myString;
+    if (!open(myString, filename, OPEN_RDONLY))
+    {
+        std::cerr << std::endl << "Could not open mmap file for reading." << std::endl;
+        return;
+    }
+    readFastaFile(sequenceIds, sequences, myString);
+
+    double after = sysTime();
+    fprintf(stderr, "\t%f\n", after - before);
+}
+
+void readFileDefault(char const * filename, Options const & options)
+{
+    StringSet<CharString> sequenceIds;
+    StringSet<TSequence> sequences;
+
+    std::cerr << "READING\tRECORD\t" << std::flush;
+    double before = sysTime();
+    if (options.cstdio)
+    {
+        std::cerr << "cstdio" << std::flush;
+        FILE * f = fopen(filename, "rb");
+        if (!f)
+        {
+            std::cerr << std::endl << "ERROR: Could not open input file!" << std::endl;
+            return;
+        }
+        //readFastaFile(sequenceIds, sequences, f);
+        fclose(f);
+    }
+    else if (options.fstream)
+    {
+        std::cerr << "fstream" << std::flush;
+        std::ifstream f(filename, std::ios_base::in | std::ios_base::binary);
+        if (!f.is_open())
+        {
+            std::cerr << std::endl << "ERROR: Could not open input file!" << std::endl;
+            return;
+        }
+        //readFastaFile(sequenceIds, sequences, f);
+#if SEQAN_HAS_ZLIB
+    }
+    else if (options.gzip)
+    {
+        std::cerr << "gzip" << std::flush;
+        SeqFileIn f;
+        if (!open(f, filename))
+        {
+            std::cerr << "Could not open input file!" << std::endl;
+            return;
+        }
+        readFastaFile(sequenceIds, sequences, f);
+#endif  // #if SEQAN_HAS_ZLIB
+#if SEQAN_HAS_BZIP2
+    }
+    else if (options.bzip2)
+    {
+        std::cerr << "bzip2" << std::flush;
+        SeqFileIn f;
+        if (!open(f, filename))
+        {
+            std::cerr << "Could not open input file!" << std::endl;
+            return;
+        }
+        //readFastaFile(sequenceIds, sequences, f);
+#endif  // #if SEQAN_HAS_BZIP2
+    }
+    else
+    {
+        SEQAN_ASSERT_FAIL("SHOULD NEVER REACH HERE!");
+    }
+    double after = sysTime();
+    fprintf(stderr, "\t%f\n", after - before);
+}
+
+int main(int argc, char const ** argv)
+{
+    Options options;
+
+    // -----------------------------------------------------------------------
+    // Setup Command Line Parser
+    // -----------------------------------------------------------------------
+
+    ArgumentParser parser("demo_benchmark_stream");
+    setCategory(parser, "Demo");
+    setShortDescription(parser, "Just a demo for a simple file io benchmark.");
+
+    addUsageLine(parser, "benchmark_stream [OPTIONS] INPUT OUTPUT");
+    addSection(parser, "Read Variant");
+    addOption(parser, ArgParseOption("d", "double-pass", "Use double-pass parsing."));
+    addSection(parser, "Stream Type Options");
+    addOption(parser, ArgParseOption("c", "cstdio", "Use <cstdio> stream."));
+    addOption(parser, ArgParseOption("f", "fstream", "Use <fstream> stream."));
+#if SEQAN_HAS_ZLIB
+    addOption(parser, ArgParseOption("g", "gzip", "Use gzip stream."));
+#endif  // #if SEQAN_HAS_ZLIB
+#if SEQAN_HAS_BZIP2
+    addOption(parser, ArgParseOption("b", "bzip2", "Use bzlib stream."));
+#endif  // #if SEQAN_HAS_BZIP2
+    addOption(parser, ArgParseOption("m", "memory-mapped", "Use memory mapped I/O."));
+    addOption(parser, ArgParseOption("w", "document-mmapped", "Read whole document at once with memory mapped I/O."));
+    addOption(parser, ArgParseOption("n", "non-concat", "Do not use concat direct string for document-mmapped version."));
+    addOption(parser, ArgParseOption("s", "multi-seq", "Use MultiSeqFile to read input."));
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE, "IN"));
+
+    // -----------------------------------------------------------------------
+    // Parse And Check Command Line Parameters
+    // -----------------------------------------------------------------------
+
+    bool stop = !parse(parser, argc, argv);
+    if (stop)
+    {
+        if (isSet(parser, "help"))
+            return 0;
+
+        return 1;
+    }
+
+    if (isSet(parser, "double-pass"))
+        options.doublePass = true;
+    if (isSet(parser, "cstdio"))
+        options.cstdio = true;
+    if (isSet(parser, "fstream"))
+        options.fstream = true;
+#if SEQAN_HAS_ZLIB
+    if (isSet(parser, "gzip"))
+        options.gzip = true;
+#endif  // #if SEQAN_HAS_ZLIB
+#if SEQAN_HAS_BZIP2
+    if (isSet(parser, "bzip2"))
+        options.bzip2 = true;
+#endif  // #if SEQAN_HAS_BZIP2
+    if (isSet(parser, "memory-mapped"))
+        options.mmapString = true;
+    if (isSet(parser, "document-mmapped"))
+        options.documentMMap = true;
+    if (isSet(parser, "non-concat"))
+        options.nonConcat = true;
+    if (isSet(parser, "multi-seq"))
+        options.multiSeq = true;
+
+    if (options.cstdio + options.fstream + options.gzip + options.bzip2 + options.mmapString +
+        options.documentMMap + options.multiSeq == 0)
+    {
+        std::cerr << "You have to select exactly one stream type!" << std::endl;
+        return 1;
+    }
+    else if (options.cstdio + options.fstream + options.gzip + options.bzip2 + options.mmapString + options.documentMMap > 1)
+    {
+        std::cerr << "Only one stream type can be selected!" << std::endl;
+        return 1;
+    }
+    if (options.documentMMap && options.doublePass)
+    {
+        std::cerr << "Double-pass I/O is implicit with document-mapped." << std::endl;
+        return 1;
+    }
+
+    // -----------------------------------------------------------------------
+    // Read And Write FASTA file.
+    // -----------------------------------------------------------------------
+    String<char> inputFileName;
+    getArgumentValue(inputFileName, parser, 0);
+
+    if (options.multiSeq)
+    {
+        //readFileMultiSeqFile(toCString(getArgumentValue(parser, 0)), options);
+    }
+    else if (options.documentMMap)
+    {
+        readFileMMapDocument(toCString(inputFileName), options);
+    }
+    else
+    {
+        if (options.mmapString)
+            ;
+        //readFileMMap(toCString(inputFileName), options);
+        else
+            readFileDefault(toCString(inputFileName), options);
+    }
+
+    // for (unsigned i = 0; i < length(sequenceIds); ++i) {
+    //     std::cerr << '>' << sequenceIds[i] << '\n';
+    //     std::cerr << sequences[i] << '\n';
+    // }
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/benchmark_stream_write.cpp b/demos/benchmark_stream_write.cpp
similarity index 100%
rename from demos/unassigned_or_unused/benchmark_stream_write.cpp
rename to demos/benchmark_stream_write.cpp
diff --git a/demos/dox/consensus/consensus_alignment.cpp b/demos/consensus/consensus_alignment.cpp
similarity index 100%
rename from demos/dox/consensus/consensus_alignment.cpp
rename to demos/consensus/consensus_alignment.cpp
diff --git a/demos/dox/consensus/consensus_alignment.cpp.stdout b/demos/consensus/consensus_alignment.cpp.stdout
similarity index 100%
rename from demos/dox/consensus/consensus_alignment.cpp.stdout
rename to demos/consensus/consensus_alignment.cpp.stdout
diff --git a/demos/unassigned_or_unused/cuda/count.cu b/demos/cuda/count.cu
similarity index 100%
rename from demos/unassigned_or_unused/cuda/count.cu
rename to demos/cuda/count.cu
diff --git a/demos/unassigned_or_unused/cuda/hello.cu b/demos/cuda/hello.cu
similarity index 100%
rename from demos/unassigned_or_unused/cuda/hello.cu
rename to demos/cuda/hello.cu
diff --git a/demos/unassigned_or_unused/cuda/mmap.cu b/demos/cuda/mmap.cu
similarity index 100%
rename from demos/unassigned_or_unused/cuda/mmap.cu
rename to demos/cuda/mmap.cu
diff --git a/demos/dox/modifier/cyclic_shape.cpp b/demos/cyclic_shape.cpp
similarity index 100%
rename from demos/dox/modifier/cyclic_shape.cpp
rename to demos/cyclic_shape.cpp
diff --git a/demos/dox/modifier/cyclic_shape.cpp.stdout b/demos/cyclic_shape.cpp.stdout
similarity index 100%
rename from demos/dox/modifier/cyclic_shape.cpp.stdout
rename to demos/cyclic_shape.cpp.stdout
diff --git a/demos/dox/modifier/cyclic_shape_snippets.cpp b/demos/cyclic_shape_snippets.cpp
similarity index 100%
rename from demos/dox/modifier/cyclic_shape_snippets.cpp
rename to demos/cyclic_shape_snippets.cpp
diff --git a/demos/dox/align/compute_alignment_stats.cpp b/demos/dox/align/compute_alignment_stats.cpp
deleted file mode 100644
index 5801cf6..0000000
--- a/demos/dox/align/compute_alignment_stats.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <iostream>
-
-#include <seqan/align.h>
-#include <seqan/sequence.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Create an alignment between subject and query.
-    Peptide subject =
-        "MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASE"
-        "DLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKIPVKYLEFISECIIQVLQSKH"
-        "PGDFGADAQGAMNKALELFRKDMASNYK";
-    Peptide query =
-        "MSLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHFDLHPGSA"
-        "QLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRVDPVNFKLLSHCLLVTLAARF"
-        "PADFTAEAHAAWDKFLSVTEKYR";
-
-    Align<Peptide> align;
-    resize(rows(align), 2);
-    setSource(row(align, 0), subject);
-    setSource(row(align, 1), query);
-
-    Blosum62 scoringScheme(-1, -12);
-    globalAlignment(align, scoringScheme);
-
-    // Compute the statistics of the alignment.
-    AlignmentStats stats;
-    computeAlignmentStats(stats, align, scoringScheme);
-    std::cout << align
-              << "score:               " << stats.alignmentScore << "\n"
-              << "gap opens:           " << stats.numGapOpens << "\n"
-              << "gap extensions:      " << stats.numGapExtensions << "\n"
-              << "num insertions:      " << stats.numInsertions << "\n"
-              << "num deletions:       " << stats.numDeletions << "\n"
-              << "num matches:         " << stats.numMatches << "\n"
-              << "num mismatches:      " << stats.numMismatches << "\n"
-              << "num positive scores: " << stats.numPositiveScores << "\n"
-              << "num negative scores: " << stats.numNegativeScores << "\n"
-              << "percent similarity:  " << stats.alignmentSimilarity << "\n"
-              << "percent identity:    " << stats.alignmentIdentity << "\n\n\n";
-
-    // Clip alignment rows and compute score of this view.
-    setClippedEndPosition(row(align, 0), 100);
-    setClippedEndPosition(row(align, 1), 100);
-    setClippedBeginPosition(row(align, 0), 5);
-    setClippedBeginPosition(row(align, 1), 5);
-
-    computeAlignmentStats(stats, align, scoringScheme);
-    std::cout << "Clipping alignment to (5, 100)\n"
-              << align
-              << "score:               " << stats.alignmentScore << "\n"
-              << "gap opens:           " << stats.numGapOpens << "\n"
-              << "gap extensions:      " << stats.numGapExtensions << "\n"
-              << "num insertions:      " << stats.numInsertions << "\n"
-              << "num deletions:       " << stats.numDeletions << "\n"
-              << "num matches:         " << stats.numMatches << "\n"
-              << "num mismatches:      " << stats.numMismatches << "\n"
-              << "num positive scores: " << stats.numPositiveScores << "\n"
-              << "num negative scores: " << stats.numNegativeScores << "\n"
-              << "percent similarity:  " << stats.alignmentSimilarity << "\n"
-              << "percent identity:    " << stats.alignmentIdentity << "\n";
-    return 0;
-}
diff --git a/demos/dox/align/compute_alignment_stats.cpp.stdout b/demos/dox/align/compute_alignment_stats.cpp.stdout
deleted file mode 100644
index 3611358..0000000
--- a/demos/dox/align/compute_alignment_stats.cpp.stdout
+++ /dev/null
@@ -1,52 +0,0 @@
-      0     .    :    .    :    .    :    .    :    .    : 
-        MGLSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHL
-        | |   |       | |        | | | |||  || |   |  |   
-        MSLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF---
-
-     50     .    :    .    :    .    :    .    :    .    : 
-        KSEDEMKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKI
-           |    |  |  ||  |  | |   |           |   ||     
-        ---DLHPGSAQLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRV
-
-    100     .    :    .    :    .    :    .    :    .    
-        PVKYLEFISECIIQVLQSKHPGDFGADAQGAMNKALELFRKDMASNYK
-                | |    |    | || | |  |  | |    |     | 
-        DPVNFKLLSHCLLVTLAARFPADFTAEAHAAWDKFLSVTEK-----YR
-
-
-score:               159
-gap opens:           2
-gap extensions:      9
-num insertions:      11
-num deletions:       0
-num matches:         41
-num mismatches:      96
-num positive scores: 69
-num negative scores: 68
-percent similarity:  46.6216
-percent identity:    27.7027
-
-
-Clipping alignment to (5, 100)
-      0     .    :    .    :    .    :    .    :    .    : 
-        GEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDE
-         |       | |        | | | |||  || |   |  |      | 
-        TERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF------DL
-
-     50     .    :    .    :    .    :    .    :    . 
-        MKASEDLKKHGATVLTALGGILKKKGHHEAEIKPLAQSHATKHKI
-           |  |  ||  |  | |   |           |   ||     
-        HPGSAQLRAHGSKVVAAVGDAVKSIDDIGGALSKLSELHAYILRV
-
-
-score:               99
-gap opens:           1
-gap extensions:      5
-num insertions:      6
-num deletions:       0
-num matches:         26
-num mismatches:      63
-num positive scores: 43
-num negative scores: 46
-percent similarity:  45.2632
-percent identity:    27.3684
diff --git a/demos/dox/bam_io/bam_tags_dict.cpp b/demos/dox/bam_io/bam_tags_dict.cpp
deleted file mode 100644
index 04ce536..0000000
--- a/demos/dox/bam_io/bam_tags_dict.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <iostream>
-#include <seqan/stream.h>
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString bamStr, samStr = "AA:Z:value1\tAB:Z:value2\tAC:i:30";
-    assignTagsSamToBam(bamStr, samStr);
-    BamTagsDict tags(bamStr);
-    std::cout << length(tags) << std::endl;  // #=> "3"
-    for (unsigned id = 0; id < length(tags); ++id)
-    {
-        std::cout << getTagKey(tags, id) << " -> ";
-
-        if (getTagType(tags, id) == 'i')  // is 32 bit integer
-        {
-            __int32 x = 0;
-            if (!extractTagValue(x, tags, id))
-                SEQAN_ASSERT_FAIL("Not a valid integer at pos %u!", id);
-            std::cout << x;
-        }
-        if (getTagType(tags, id) == 'Z')  // is string
-        {
-            CharString str;
-            if (!extractTagValue(str, tags, id))
-                SEQAN_ASSERT_FAIL("Not a valid string at pos %u!", id);
-            std::cout << '"' << str << '"';
-        }
-
-        std::cout << std::endl;
-    }
-
-    return 0;
-}
diff --git a/demos/dox/basic/enable_if.cpp b/demos/dox/basic/enable_if.cpp
deleted file mode 100644
index 169cb5f..0000000
--- a/demos/dox/basic/enable_if.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// ==========================================================================
-//                 SeqAn - The Library for Sequence Analysis
-// ==========================================================================
-// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above copyright
-//       notice, this list of conditions and the following disclaimer in the
-//       documentation and/or other materials provided with the distribution.
-//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
-//       its contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-//
-// ==========================================================================
-// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
-// ==========================================================================
-// Example program used in the documentation of the enable-if metaprogramming
-// utilities.
-// ==========================================================================
-
-#include <string>
-
-#include <seqan/basic.h>
-
-using namespace seqan;
-
-#if !defined(_MSC_VER)  // Currently, there are some issues with MSVC and concepts.
-class EnableIfExample
-{
-public:
-    int num;
-
-//![enable if example constructor]
-    template <typename T>
-    EnableIfExample(T const & n, SEQAN_CTOR_ENABLE_IF(Is<IntegerConcept<T> >)) :
-        num(0)
-    {
-        ignoreUnusedVariableWarning(dummy);
-    }
-
-//![enable if example constructor]
-
-//![disable if example constructor]
-    template <typename T>
-    EnableIfExample(T const & n, SEQAN_CTOR_DISABLE_IF(Is<IntegerConcept<T> >)) :
-        num(0)
-    {
-        ignoreUnusedVariableWarning(dummy);
-    }
-
-//![disable if example constructor]
-
-//![enable if example function]
-    template <typename T>
-    SEQAN_FUNC_ENABLE_IF(Is<IntegerConcept<T> >)
-    f(T /* x */)
-    { /* ... */ }
-//![enable if example function]
-
-//![disable if example function]
-    template <typename T>
-    SEQAN_FUNC_DISABLE_IF(Is<IntegerConcept<T> >)
-    f(T /* x */)
-    { /* ... */}
-//![disable if example function]
-};
-#endif  // #if !defined(_MSC_VER)
-
-int main()
-{
-#if !defined(_MSC_VER)
-    EnableIfExample ex1(1);
-    ignoreUnusedVariableWarning(ex1);
-    EnableIfExample ex2("asdf");
-    ignoreUnusedVariableWarning(ex2);
-#endif  // #if !defined(_MSC_VER)
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/all_pairs_shortest_path.cpp b/demos/dox/graph_algorithms/all_pairs_shortest_path.cpp
deleted file mode 100644
index 9b41132..0000000
--- a/demos/dox/graph_algorithms/all_pairs_shortest_path.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create a graph with 9 directed edges (0,1), (0,2), ...
-    TSize numEdges = 9;
-    TVertexDescriptor edges[] = {0, 1, 0, 2, 0, 4, 1, 3, 1, 4, 2, 1, 3, 0, 3, 2, 4, 3};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << std::endl;
-
-    // Create a property map with edge weights.  Note that we can use negative
-    // weights since the edges are directed and there are no cycles.
-    int weights[] = {3, 8, -4, 1, 7, 4, 2, -5, 6};
-    String<int> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-
-    // Compute all-pairs shortest path.
-    String<int> distMat;
-    String<TVertexDescriptor> predMat;
-    allPairsShortestPath(distMat, predMat, g, weightMap);
-
-    // Print the result to stdout.
-    unsigned int len = static_cast<unsigned>(std::sqrt((double)length(distMat)));
-    for (TSize row = 0; row < len; ++row)
-        for (TSize col = 0; col < len; ++col)
-        {
-            std::cout << row << "," << col << " (Distance="
-                      << getValue(distMat, row * len + col) << "): ";
-            _printAllPairsShortestPath(g, predMat, row, col);
-            std::cout << "\n";
-        }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/bellman_ford_algorithm.cpp b/demos/dox/graph_algorithms/bellman_ford_algorithm.cpp
deleted file mode 100644
index 0e885bf..0000000
--- a/demos/dox/graph_algorithms/bellman_ford_algorithm.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 10 directed edges (0,1), (0,3), ...
-    TSize numEdges = 10;
-    TVertexDescriptor edges[] = {0, 1, 0, 3, 1, 2, 1, 3, 2, 4, 3, 1, 3, 2, 3, 4, 4, 0, 4, 2};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-
-    // Print graph.
-    std::cout << g << "\n";
-
-    // Create external edge property map and assign to graph.
-    unsigned weights[] =    {10, 5, 1, 2, 4, 3, 9, 2, 7, 6};
-    String<unsigned> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-
-    // Run Bellman-Ford algorithm from vertex 0.  NB: Ford-Fulkerson also
-    // detects negative cycles.
-    String<unsigned int> predMap;
-    String<unsigned int> distMap;
-    bool noNegativeCycle = bellmanFordAlgorithm(predMap, distMap, g, 0, weightMap);
-
-    // Print result to stdout.
-    std::cout << "Single-Source Shortest Paths: " << "\n"
-              << "Graph without negative cycles? " << noNegativeCycle << "\n";
-    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Path from 0 to " << getValue(it) << ": ";
-        _printPath(g, predMap, (TVertexDescriptor) 0, getValue(it));
-        std::cout << " (Distance: " << getProperty(distMap, getValue(it)) << ")\n";
-        goNext(it);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/breadth_first_search.cpp b/demos/dox/graph_algorithms/breadth_first_search.cpp
deleted file mode 100644
index 053250a..0000000
--- a/demos/dox/graph_algorithms/breadth_first_search.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Undirected<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create a graph with 10 undirected edges {0,1}, {0,4}, ...
-    TSize numEdges = 10;
-    TVertexDescriptor edges[] = {0, 1, 0, 4, 1, 5, 2, 5, 2, 6, 2, 3, 3, 6, 3, 7, 5, 6, 6, 7};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << "\n";
-
-    // Create external property map for the vertex names and assign to graph.
-    String<char> nameMap;
-    char names[] = {'r', 's', 't', 'u', 'v', 'w', 'x', 'y'};
-    assignVertexMap(nameMap, g, names);
-
-    // Perform a BFS search starting from vertex with descriptor 1.
-    String<unsigned int> predMap;
-    String<unsigned int> distMap;
-    breadthFirstSearch(predMap, distMap, g, 1);
-
-    // Write the result to stdout.
-    std::cout << "Breadth-First search: \n";
-    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Vertex " << getProperty(nameMap, getValue(it)) << ": ";
-        if (getProperty(distMap, getValue(it)) == _getInfinityDistance(distMap))
-            SEQAN_FAIL("Should never reach here!");
-        else
-            std::cout << "Level = " << getProperty(distMap, getValue(it));
-
-        typedef Value<String<unsigned int> >::Type TPredVal;
-        TPredVal pre = getProperty(predMap, getValue(it));
-        if (pre != getNil<TVertexDescriptor>())
-            std::cout << ", Predecessor = " << getProperty(nameMap, pre) << "\n";
-        else
-            std::cout << ", Predecessor = nil" << "\n";
-        goNext(it);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/dag_shortest_path.cpp b/demos/dox/graph_algorithms/dag_shortest_path.cpp
deleted file mode 100644
index 84f7937..0000000
--- a/demos/dox/graph_algorithms/dag_shortest_path.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 10 directed edges (0,2), (0,1), ...
-    TSize numEdges = 10;
-    TVertexDescriptor edges[] = {0, 2, 0, 1, 1, 3, 1, 2, 2, 5, 2, 4, 2, 3, 3, 5, 3, 4, 4, 5};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph to stdout.
-    std::cout << g << "\n";
-
-    // Create external edge property map with edge weights.
-    int weights[] = {3, 5, 6, 2, 2, 4, 7, 1, -1, -2};
-    String<int> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-
-    // Run DAG shortest path computation from vertex with descriptor 1.
-    String<unsigned> predMap;
-    String<unsigned> distMap;
-    dagShortestPath(predMap, distMap, g, 1, weightMap);
-
-    // Print result to stdout.
-    std::cout << "Single-Source Shortest Paths in DAG: \n";
-    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Path from 1 to " << getValue(it) << ": ";
-        _printPath(g, predMap, (TVertexDescriptor)1, getValue(it));
-        std::cout << " (Distance: " << getProperty(distMap, getValue(it)) << ")\n";
-        goNext(it);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/depth_first_search.cpp b/demos/dox/graph_algorithms/depth_first_search.cpp
deleted file mode 100644
index b34fe16..0000000
--- a/demos/dox/graph_algorithms/depth_first_search.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 8 directed edges (0,3), (0,1), ...
-    TSize numEdges = 8;
-    TVertexDescriptor edges[] = {0, 3, 0, 1, 1, 4, 2, 4, 2, 5, 3, 1, 4, 3, 5, 5};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << "\n";
-
-    // Create external property map for the vertex names and assign to graph.
-    char names[] = {'u', 'v', 'w', 'x', 'y', 'z'};
-    String<char> nameMap;
-    assignVertexMap(nameMap, g, names);
-
-    // Perform a DFS search.
-    String<unsigned int> predMap;
-    String<unsigned int> discoveryTimeMap;
-    String<unsigned int> finishingTimeMap;
-    depthFirstSearch(predMap, discoveryTimeMap, finishingTimeMap, g);
-
-    // Write the result to stdout.
-    std::cout << "Depth-First search: \n";
-    typedef Iterator<Graph<>, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Vertex " << getProperty(nameMap, getValue(it)) << ": ";
-        std::cout << "Discovery time = " << getProperty(discoveryTimeMap, getValue(it)) << ",";
-        std::cout << "Finishing time = " << getProperty(finishingTimeMap, getValue(it)) << ",";
-        typedef Value<String<unsigned int> >::Type TPredVal;
-        TPredVal pre = getProperty(predMap, getValue(it));
-        if (pre != getNil<TVertexDescriptor>())
-            std::cout << "Predecessor = " << getProperty(nameMap, pre) << "\n";
-        else
-            std::cout << "Predecessor = nil" << "\n";
-        goNext(it);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/dijkstra.cpp b/demos/dox/graph_algorithms/dijkstra.cpp
deleted file mode 100644
index 4abc874..0000000
--- a/demos/dox/graph_algorithms/dijkstra.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 10 directed edges (0,1), (0,3), ...
-    TSize numEdges = 10;
-    TVertexDescriptor edges[] = {0, 1, 0, 3, 1, 2, 1, 3, 2, 4, 3, 1, 3, 2, 3, 4, 4, 0, 4, 2};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-
-    // Fill external edge weight map.
-    unsigned weights[] = {10, 5, 1, 2, 4, 3, 9, 2, 7, 6};
-    String<unsigned> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-
-    // Run Dijkstra's algorithm from vertex 0.
-    String<unsigned> predMap;
-    String<unsigned> distMap;
-    dijkstra(predMap, distMap, g, 0, weightMap);
-
-    // Print results to stdout.
-    std::cout << "Single-Source Shortest Paths: \n";
-    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Path from 0 to " << getValue(it) << ": ";
-        _printPath(g, predMap, (TVertexDescriptor) 0, getValue(it));
-        std::cout << " (Distance: " << getProperty(distMap, getValue(it)) << ")\n";
-        goNext(it);
-    }
-
-    // We can achieve the same thing using an internal map that is edge cargos.
-    typedef unsigned int TEdgeCargo;
-    typedef Directed<TEdgeCargo> TEdges;
-    typedef Graph<TEdges> TCargoGraph;
-
-    // Construct graph with the same edges as above.
-    TCargoGraph cargoG;
-    addEdges(cargoG, edges, numEdges);
-
-    // Fill internal edge weight map.
-    InternalPropertyMap<TEdgeCargo> intMap;
-    assignEdgeMap(intMap, cargoG, weights);
-
-    // Run Dijkstra's algorithm from vertex 0.
-    clear(predMap);
-    clear(distMap);
-    dijkstra(predMap, distMap, cargoG, 0, intMap);
-
-    // Print result to stdout.
-    std::cout << "\nSingle-Source Shortest Paths: \n";
-    typedef Iterator<TCargoGraph, VertexIterator>::Type TCargoVertexIterator;
-    TCargoVertexIterator itC(cargoG);
-    while (!atEnd(itC))
-    {
-        std::cout << "Path from 0 to " << getValue(itC) << ": ";
-        _printPath(g, predMap, (TVertexDescriptor)0, getValue(itC));
-        std::cout << " (Distance: " << getProperty(distMap, getValue(itC)) << ")\n";
-        goNext(itC);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp b/demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp
deleted file mode 100644
index 484467d..0000000
--- a/demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 9 directed edges (0,1), (0,2)
-    TSize numEdges = 9;
-    TVertexDescriptor edges[] = {0, 1, 0, 2, 0, 4, 1, 3, 1, 4, 2, 1, 3, 0, 3, 2, 4, 3};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << "\n";
-
-    // Fill external property map with edge weights and assign to graph.
-    int weights[] = {3, 8, -4, 1, 7, 4, 2, -5, 6};
-    String<int> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-
-    // Run Floyd-Warshall algorithm.
-    String<int> distMat;
-    String<TVertexDescriptor> predMat;
-    floydWarshallAlgorithm(distMat, predMat, g, weightMap);
-
-    // Print result to stdout.
-    unsigned int len = static_cast<unsigned>(std::sqrt((double)length(distMat)));
-    for (TSize row = 0; row < len; ++row)
-        for (TSize col = 0; col < len; ++col)
-        {
-            std::cout << row << "," << col << " (Distance="
-                      << getValue(distMat, row * len + col) << "): ";
-            _printAllPairsShortestPath(g, predMat, row, col);
-            std::cout << std::endl;
-        }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp b/demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp
deleted file mode 100644
index bc8b6d3..0000000
--- a/demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Iterator<TGraph, EdgeIterator>::Type TEdgeIterator;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 10 directed edges (0,1), (0,4), ...
-    TSize numEdges = 10;
-    TVertexDescriptor edges[] = {0, 1, 0, 4, 1, 2, 1, 4, 2, 3, 2, 4, 4, 1, 4, 5, 5, 2, 5, 3};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << "\n";
-
-    // Create external property map for the edge capacities and assign to the graph.
-    String<unsigned int> capMap;
-    unsigned capacity[] =    {16, 13, 12, 10, 20, 9, 4, 14, 7, 4};
-    assignEdgeMap(capMap, g, capacity);
-
-    // Run the Ford-Fulkerson algorithm for maximum flow computation from source
-    // vertex 0 to sink vertex 3.  valF is the value of the flow.
-    String<unsigned int> flow;
-    unsigned valF = fordFulkersonAlgorithm(flow, g, 0, 3, capMap);
-
-    // Print the result to stdout.
-    std::cout << "Ford-Fulkerson (Value of the flow = " << valF << ")\n";
-    TEdgeIterator itEdge(g);
-    for (; !atEnd(itEdge); goNext(itEdge))
-        std::cout << "(" << sourceVertex(itEdge) << "," << targetVertex(itEdge) << "): "
-                  << "Flow: " << getProperty(flow, getValue(itEdge)) << ", Capacity: "
-                  << getProperty(capMap, getValue(itEdge)) << "\n";
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/kruskals_algorithm.cpp b/demos/dox/graph_algorithms/kruskals_algorithm.cpp
deleted file mode 100644
index 9f58ff5..0000000
--- a/demos/dox/graph_algorithms/kruskals_algorithm.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Undirected<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 14 undirected edges {0,1}, {0,6}, ...
-    TSize numEdges = 14;
-    TVertexDescriptor edges[] = {0, 1, 0, 6, 1, 2, 1, 6, 2, 3, 2, 4, 2, 8, 3, 5, 3, 8, 4, 6, 4, 7, 5, 8, 6, 7, 7, 8};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << std::endl;
-
-    // Fill external property map for each edge weight and vertex names.
-    unsigned int weights[] = {4, 8, 8, 11, 7, 2, 4, 9, 14, 7, 6, 10, 1, 2};
-    char names[] = {'a', 'b', 'c', 'd', 'i', 'e', 'h', 'g', 'f'};
-    String<int> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-    String<char> nameMap;
-    assignVertexMap(nameMap, g, names);
-
-    // Run Kruskal's algorithm.
-    String<TVertexDescriptor> treeEdges;
-    kruskalsAlgorithm(treeEdges, g, 0, weightMap);
-
-    // Print the result to stdout.
-    std::cout << "Minimum Spanning Tree (Kruskal's algorithm): \n"
-              << "Tree Edges: ";
-    typedef Iterator<String<TVertexDescriptor> >::Type TStrIterator;
-    TStrIterator it = begin(treeEdges);
-    TStrIterator itEnd = end(treeEdges);
-    while (it != itEnd)
-    {
-        std::cout << "(" << getProperty(nameMap, getValue(it)) << ",";
-        goNext(it);
-        std::cout << getProperty(nameMap, getValue(it)) << "), ";
-        goNext(it);
-    }
-    std::cout << "\n";
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/prims_algorithm.cpp b/demos/dox/graph_algorithms/prims_algorithm.cpp
deleted file mode 100644
index 6870d1f..0000000
--- a/demos/dox/graph_algorithms/prims_algorithm.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Undirected<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 14 undirected edges {0,1}, {0,6}, ...
-    TSize numEdges = 14;
-    TVertexDescriptor edges[] = {0, 1, 0, 6, 1, 2, 1, 6, 2, 3, 2, 4, 2, 8, 3, 5, 3, 8, 4, 6, 4, 7, 5, 8, 6, 7, 7, 8};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << std::endl;
-
-    // Fill two external property maps for edge weights and vertex names.
-    unsigned int weights[] = {4, 8, 8, 11, 7, 2, 4, 9, 14, 7, 6, 10, 1, 2};
-    char names[] = {'a', 'b', 'c', 'd', 'i', 'e', 'h', 'g', 'f'};
-    String<int> weightMap;
-    assignEdgeMap(weightMap, g, weights);
-    String<char> nameMap;
-    assignVertexMap(nameMap, g, names);
-
-    // Run Prim's algorithm.
-    String<TVertexDescriptor> predMap;
-    primsAlgorithm(predMap, g, 0, weightMap);
-
-    // Print result to stdout.
-    std::cout << "Minimum Spanning Tree (Prim's algorithm): \n";
-    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Path from " << getProperty(nameMap, 0) << " to "
-                  << getProperty(nameMap, getValue(it)) << ": ";
-        _printPath(g, predMap, (TVertexDescriptor)0, getValue(it), nameMap);
-        std::cout << "\n";
-        goNext(it);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/strongly_connected_components.cpp b/demos/dox/graph_algorithms/strongly_connected_components.cpp
deleted file mode 100644
index 08d1b98..0000000
--- a/demos/dox/graph_algorithms/strongly_connected_components.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create grap with 14 directed edges (1,0), (0,4), ...
-    TSize numEdges = 14;
-    TVertexDescriptor edges[] = {1, 0, 0, 4, 2, 1, 4, 1, 5, 1, 6, 2, 3, 2, 2, 3, 7, 3, 5, 4, 6, 5, 5, 6, 7, 6, 7, 7};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << std::endl;
-
-    // Create external property map with vertex names and assign to graph.
-    String<char> nameMap;
-    char names[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
-    assignVertexMap(nameMap, g, names);
-
-    // Compute strongly connected components.
-    String<unsigned int> component;
-    stronglyConnectedComponents(component, g);
-
-    // Print result to stdout.
-    std::cout << "Strongly Connected Components: \n";
-    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
-    TVertexIterator it(g);
-    while (!atEnd(it))
-    {
-        std::cout << "Vertex " << getProperty(nameMap, getValue(it)) << ": \n"
-                  << "Component = " << getProperty(component, getValue(it)) << "\n";
-        goNext(it);
-    }
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/topological_sort.cpp b/demos/dox/graph_algorithms/topological_sort.cpp
deleted file mode 100644
index 107b4d2..0000000
--- a/demos/dox/graph_algorithms/topological_sort.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 9 directed edges (0,3), (0,1), ...
-    TSize numEdges = 9;
-    TVertexDescriptor edges[] = {0, 3, 0, 1, 1, 2, 3, 2, 5, 7, 5, 6, 6, 7, 6, 3, 8, 7};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph.
-    std::cout << g << "\n";
-
-    // Create external property map with vertex labels.
-    String<std::string> nameMap;
-    std::string names[] = {"shirt", "tie", "jacket", "belt", "watch", "undershorts", "pants", "shoes", "socks"};
-    assignVertexMap(nameMap, g, names);
-
-    // Get vertex descriptor in topological sort order.
-    String<TVertexDescriptor> order;
-    topologicalSort(order, g);
-
-    // Write the result to stdout.
-    std::cout << "Topological sort: \n";
-    typedef Iterator<String<TVertexDescriptor> >::Type TStringIterator;
-    TStringIterator it = begin(order);
-    TStringIterator itEnd = end(order);
-    while (it != itEnd)
-    {
-        std::cout << getProperty(nameMap, getValue(it)) << ",";
-        goNext(it);
-    }
-    std::cout << "\n";
-
-    return 0;
-}
diff --git a/demos/dox/graph_algorithms/transitive_closure.cpp b/demos/dox/graph_algorithms/transitive_closure.cpp
deleted file mode 100644
index b1f8061..0000000
--- a/demos/dox/graph_algorithms/transitive_closure.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <iostream>
-#include <seqan/graph_algorithms.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef Graph<Directed<> > TGraph;
-    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
-    typedef Size<TGraph>::Type TSize;
-
-    // Create graph with 5 directed edges (3,0), (1,2), ...
-    TSize numEdges = 5;
-    TVertexDescriptor edges[] = {3, 0, 1, 2, 2, 1, 1, 3, 3, 2};
-    TGraph g;
-    addEdges(g, edges, numEdges);
-    // Print graph to stdout.
-    std::cout << g << "\n";
-
-    // Compute transitive closure.
-    String<bool> closure;
-    transitiveClosure(closure, g);
-
-    // Print result to stdout.
-    TSize len = static_cast<TSize>(std::sqrt((double) length(closure)));
-    for (TSize row = 0; row < len; ++row)
-    {
-        for (TSize col = 0; col < len; ++col)
-            std::cout << getValue(closure, row * len + col) << ",";
-        std::cout << std::endl;
-    }
-
-    return 0;
-}
diff --git a/demos/dox/index/length_countSequences.cpp b/demos/dox/index/length_countSequences.cpp
deleted file mode 100644
index b97a6da..0000000
--- a/demos/dox/index/length_countSequences.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <seqan/index.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef StringSet<String<char> >    TText;
-    typedef Index<TText>                TIndex;
-
-    TText text;
-    appendValue(text, "MISSISSIPPI");
-    appendValue(text, "MYMISSISAHAPPY");
-
-    TIndex index(text);
-    Finder<TIndex> finder(index);
-
-    std::cout << "The text has " << length(index) << " characters and consists of " << countSequences(index) <<
-    " sequences." << std::endl;
-
-    // The Finder object has a pointer to the first, current and last hit
-    // Each consecutive call sets the current pointer to the appropriate hit
-    while (find(finder, "MISS"))
-        std::cout << "Hit at position: " << position(finder) << std::endl;
-
-    return 0;
-}
diff --git a/demos/dox/index/open_save.cpp b/demos/dox/index/open_save.cpp
deleted file mode 100644
index 23ad113..0000000
--- a/demos/dox/index/open_save.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <seqan/index.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef StringSet<String<char> >    TText;
-    typedef Index<TText>                TIndex;
-
-    TText text;
-    appendValue(text, "MISSISSIPPI");
-    appendValue(text, "MYMISSISAHAPPY");
-
-    TIndex saveIndex(text);
-
-    // Because indices are build on demand we fore the index creation here.
-    indexCreate(saveIndex, FibreSA());
-
-    const char * tempFileName = SEQAN_TEMP_FILENAME();
-    std::cout << save(saveIndex, tempFileName) << std::endl;
-
-    // In a different program
-    TIndex openIndex;
-    std::cout << open(openIndex, tempFileName) << std::endl;
-
-    return 0;
-}
diff --git a/demos/dox/parallel/queue_example.cpp b/demos/dox/parallel/queue_example.cpp
deleted file mode 100644
index 687bf59..0000000
--- a/demos/dox/parallel/queue_example.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <iostream>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-int main()
-{
-    // instantiate an empty Queue
-    ConcurrentQueue<unsigned> queue;
-
-    // start two threads
-    SEQAN_OMP_PRAGMA(parallel sections num_threads(2))
-    {
-        SEQAN_OMP_PRAGMA(section)
-        {
-            for (unsigned i = 9999; i != 0; --i)
-                appendValue(queue, i);
-        }
-
-        SEQAN_OMP_PRAGMA(section)
-        {
-            bool equal = true;
-            for (unsigned i = 9999; i != 0; --i)
-                equal &= (i == popFront(queue));
-            std::cout << (equal ? "SUCCESS" : "FAILURE") << std::endl;
-        }
-    }
-
-    return 0;
-}
diff --git a/demos/dox/random/random.cpp b/demos/dox/random/random.cpp
deleted file mode 100644
index 625845b..0000000
--- a/demos/dox/random/random.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <iostream>
-
-#include <seqan/basic.h>
-#include <seqan/stream.h>
-#include <seqan/random.h>
-
-using namespace seqan;
-
-const int SEED = 42;
-
-int main()
-{
-    Rng<MersenneTwister> rng(SEED);
-    std::cout << "pickRandomNumber(rng) == " << pickRandomNumber(rng) << std::endl;
-
-    Pdf<Uniform<double> > uniformDouble(0, 1);
-    std::cout << "pickRandomNumber(rng, uniformDouble) == " << pickRandomNumber(rng, uniformDouble) << std::endl;
-
-    Pdf<Uniform<int> > uniformInt(0, 42);
-    std::cout << "pickRandomNumber(rng, uniformInt) == " << pickRandomNumber(rng, uniformInt) << std::endl;
-
-    Pdf<Normal> normal(0, 1);
-    std::cout << "pickRandomNumber(rng, normal) == " << pickRandomNumber(rng, normal) << std::endl;
-
-    Pdf<LogNormal> logNormal(0, 1);
-    std::cout << "pickRandomNumber(rng, logNormal) == " << pickRandomNumber(rng, logNormal) << std::endl;
-
-    Pdf<LogNormal> logNormal2(0, 1, MuSigma());
-    std::cout << "pickRandomNumber(rng, logNormal2) == " << pickRandomNumber(rng, logNormal2) << std::endl;
-
-    Pdf<LogNormal> logNormal3(0.1, 1, MeanStdDev());
-    std::cout << "pickRandomNumber(rng, logNormal3) == " << pickRandomNumber(rng, logNormal3) << std::endl;
-
-    CharString container = "Hello World!";
-    shuffle(container, rng);
-    std::cout << "shuffle(\"Hello World!\") == " << container << std::endl;
-
-    return 0;
-}
diff --git a/demos/dox/seq_io/fai_index_example.cpp b/demos/dox/seq_io/fai_index_example.cpp
deleted file mode 100644
index d4c91d8..0000000
--- a/demos/dox/seq_io/fai_index_example.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <seqan/basic.h>
-#include <seqan/seq_io.h>
-#include <seqan/sequence.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString path = getAbsolutePath("/demos/dox/seq_io/example.fa");
-
-    FaiIndex faiIndex;
-
-    // Try to read the FAI index.
-    if (!open(faiIndex, toCString(path)))
-    {
-        std::cerr << "Could not read the FAI index.  Not fatal, we can just build it.\n";
-        return 1;
-    }
-
-    // Try to build the FAI index (in memory) if reading was unsuccessful.  If
-    // building into memory succeeded, we try to write it out.
-    if (!build(faiIndex, toCString(path)))
-    {
-        std::cerr << "FATAL: Could not build FAI index.\n";
-        return 1;
-    }
-
-    if (!save(faiIndex))
-    {
-        std::cerr << "FATAL: Could not write out FAI index after building.\n";
-        return 1;
-    }
-
-    // Now, read the first 1000 characters of chr1.
-    unsigned idx = 0;
-    if (!getIdByName(idx, faiIndex, "chr"))
-    {
-        std::cerr << "FATAL: chr1 not found in FAI index.\n";
-        return 1;
-    }
-    CharString seq;
-    readRegion(seq, faiIndex, idx, 0, 100);
-
-    // Now print the first 100 characters we just read.
-    std::cout << "chr:1-100 = " << seq << "\n";
-
-    return 0;
-}
diff --git a/demos/dox/sequence/segment.cpp b/demos/dox/sequence/segment.cpp
deleted file mode 100644
index 720f19e..0000000
--- a/demos/dox/sequence/segment.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-// ==========================================================================
-//                 SeqAn - The Library for Sequence Analysis
-// ==========================================================================
-// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above copyright
-//       notice, this list of conditions and the following disclaimer in the
-//       documentation and/or other materials provided with the distribution.
-//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
-//       its contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-//
-// ==========================================================================
-// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
-// ==========================================================================
-// Example program used in the documentation of the Segment class.
-// ==========================================================================
-
-#include <seqan/basic.h>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>  // for I/O
-
-using namespace seqan;
-
-int main()
-{
-//![basic operations]
-    typedef Prefix<String<char> >::Type TPrefix;
-    typedef Infix<String<char> >::Type  TInfix;
-    typedef Suffix<String<char> >::Type TSuffix;
-
-    String<char> text = "This is a text!";
-
-    TPrefix preA(text, 4);
-    TInfix infA(text, 10, 14);
-    TSuffix sufA(text, 10);
-    std::cout << preA << " " << infA << " " << sufA << "\n";  // => "This text text!"
-
-    String<char> str;
-    append(str, preA);
-    append(str, infA);
-    append(str, sufA);
-    std::cout << str << "\n";  // => "This text text!"
-
-    std::cout << preA[0] << " " << infA[0] << " " << sufA[0] << "\n";  // => "T t t"
-
-    preA[0] = 'X';
-    infA[0] = 'X';
-    sufA[1] = 'X';
-    std::cout << text << "\n";  // => "Xhis is a XXxt!"
-
-    typedef Iterator<TInfix, Standard>::Type TIter;
-    TIter it = begin(preA, Standard());
-    it += 2;
-    *it = 'Y';
-    std::cout << text << "\n";  // => "XhYs is a XXxt!"
-//![basic operations]
-
-//![metafunction examples]
-    typedef Infix<TInfix>::Type  TInfix2;  // == TInfix
-    typedef Prefix<TInfix>::Type TInfix3;  // == TInfix
-    typedef Suffix<TInfix>::Type TInfix4;  // == TInfix
-
-    typedef Infix<TPrefix>::Type  TInfix5;   // == TInfix
-    typedef Prefix<TPrefix>::Type TPrefix2;  // == TPrefix
-    typedef Suffix<TPrefix>::Type TInfix6;   // == TInfix
-
-    typedef Infix<TSuffix>::Type  TInfix7;   // == TInfix
-    typedef Prefix<TSuffix>::Type TInfix8;   // == TPrefix
-    typedef Suffix<TSuffix>::Type TSuffix2;  // == TSuffix
-//![metafunction examples]
-
-//![explicit segment]
-    typedef Segment<TSuffix, PrefixSegment> TExplicitPrefix;
-    TExplicitPrefix preB(sufA, 3);
-    std::cout << preB << "\n";  // => "XXx"
-//![explicit segment]
-
-    // This section below is used to remove unused typedef warnings but is not
-    // shown anywhere within the docs. Only the fragments above are displayed.
-    TInfix2  _inf2;
-    TInfix3  _inf3;
-    TInfix4  _inf4;
-    TInfix5  _inf5;
-    TPrefix2 _pref2;
-    TInfix6  _inf6;
-    TInfix7  _inf7;
-    TInfix8  _inf8;
-    TSuffix2 _suf2;
-
-    ignoreUnusedVariableWarning(_inf2);
-    ignoreUnusedVariableWarning(_inf3);
-    ignoreUnusedVariableWarning(_inf4);
-    ignoreUnusedVariableWarning(_inf5);
-    ignoreUnusedVariableWarning(_inf6);
-    ignoreUnusedVariableWarning(_inf7);
-    ignoreUnusedVariableWarning(_inf8);
-    ignoreUnusedVariableWarning(_pref2);
-    ignoreUnusedVariableWarning(_suf2);
-
-    return 0;
-}
diff --git a/demos/dox/stream/lexical_cast.cpp b/demos/dox/stream/lexical_cast.cpp
deleted file mode 100644
index b3f9c6b..0000000
--- a/demos/dox/stream/lexical_cast.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <iostream>
-#include <string>
-
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-
-using namespace seqan;
-
-int main()
-{
-    // interpret string literal as int
-    int x = 0;
-    // successful cast
-    std::cout << "success=" << lexicalCast(x, "123") << ", x=" << x << "\n";
-    // unsuccessful cast
-    std::cout << "success=" << lexicalCast(x, "42a") << ", x=" << x << "\n";
-
-    // interpret std::string as int
-    std::cout << "success=" << lexicalCast(x, std::string("234")) << ", x=" << x << "\n";
-    // interpret CharString as int
-    std::cout << "success=" << lexicalCast(x, CharString("345")) << ", x=" << x << "\n";
-    // interpret infix as int
-    CharString str = "123";
-    std::cout << "success=" << lexicalCast(x, infix(str, 1, 2)) << ", x=" << x << "\n";
-
-    // interpret literal as float and double
-    float f = -1;
-    double d = -1;
-    std::cout << "success=" << lexicalCast(f, "3.1") << ", f=" << f << "\n"
-              << "success=" << lexicalCast(d, "4.2") << ", d=" << d << "\n";
-
-    // demonstrate throwing of exceptions with lexicalCast()
-    try
-    {
-        x = lexicalCast<int>("a");
-    }
-    catch (BadLexicalCast const & badCast)
-    {
-        std::cout << "error: " << badCast.what() << "\n";
-    }
-
-    // demonstrate throwing of exceptions with lexicalCastWithException
-    try
-    {
-        lexicalCastWithException(x, "b");
-    }
-    catch (BadLexicalCast const & badCast)
-    {
-        std::cout << "error: " << badCast.what() << "\n";
-    }
-
-    return 0;
-}
diff --git a/demos/unassigned_or_unused/ecoln.out b/demos/ecoln.out
similarity index 100%
rename from demos/unassigned_or_unused/ecoln.out
rename to demos/ecoln.out
diff --git a/demos/unassigned_or_unused/file_format.cpp b/demos/file_format.cpp
similarity index 100%
rename from demos/unassigned_or_unused/file_format.cpp
rename to demos/file_format.cpp
diff --git a/demos/unassigned_or_unused/file_readwrite.cpp b/demos/file_readwrite.cpp
similarity index 100%
rename from demos/unassigned_or_unused/file_readwrite.cpp
rename to demos/file_readwrite.cpp
diff --git a/demos/unassigned_or_unused/file_speed.cpp b/demos/file_speed.cpp
similarity index 100%
rename from demos/unassigned_or_unused/file_speed.cpp
rename to demos/file_speed.cpp
diff --git a/demos/unassigned_or_unused/filter_sam.cpp b/demos/filter_sam.cpp
similarity index 100%
rename from demos/unassigned_or_unused/filter_sam.cpp
rename to demos/filter_sam.cpp
diff --git a/demos/dox/find/finder_aho_corasick.cpp b/demos/find/finder_aho_corasick.cpp
similarity index 100%
rename from demos/dox/find/finder_aho_corasick.cpp
rename to demos/find/finder_aho_corasick.cpp
diff --git a/demos/dox/find/finder_index.cpp b/demos/find/finder_index.cpp
similarity index 100%
rename from demos/dox/find/finder_index.cpp
rename to demos/find/finder_index.cpp
diff --git a/demos/dox/find/finder_index.cpp.stdout b/demos/find/finder_index.cpp.stdout
similarity index 100%
rename from demos/dox/find/finder_index.cpp.stdout
rename to demos/find/finder_index.cpp.stdout
diff --git a/demos/dox/find/finder_online.cpp b/demos/find/finder_online.cpp
similarity index 100%
rename from demos/dox/find/finder_online.cpp
rename to demos/find/finder_online.cpp
diff --git a/demos/dox/find/finder_online.cpp.stdout b/demos/find/finder_online.cpp.stdout
similarity index 100%
rename from demos/dox/find/finder_online.cpp.stdout
rename to demos/find/finder_online.cpp.stdout
diff --git a/demos/find_approx.cpp b/demos/find_approx.cpp
new file mode 100644
index 0000000..a203eea
--- /dev/null
+++ b/demos/find_approx.cpp
@@ -0,0 +1,45 @@
+///A tutorial about the use of approximate find algorithms.
+#include <iostream>
+#include <seqan/find.h>
+
+using namespace seqan;
+
+///Example 1: This program finds all occurrences of $CCT$ in $AACTTAACCTAA$ with $\leq 1$ error using the @Shortcut.MyersUkkonen@ approximate search algorithm.
+int main()
+{
+    String<char> haystk("AACTTAACCTAA");
+    String<char> ndl("CCT");
+
+    Finder<String<char> > fnd(haystk);
+    Pattern<String<char>, MyersUkkonen> pat(ndl);
+///The function @Function.setScoreLimit@ sets the limit score an occurrence must reach.
+///Since the used scoring scheme is a distance measure (edit distance), all scores are negative.
+///A score limit of $\geq -1$ therefore means an edit distance $\leq 1$.
+///Note that @Function.position@ returns the position of the last found occurrence.
+    setScoreLimit(pat, -1);
+    while (find(fnd, pat))
+    {
+        std::cout << position(fnd) << ": " << getScore(pat) << "\n";
+    }
+
+///Example 2: Finding all start and endpositions
+    String<char> t = "babybanana";
+    String<char> p = "babana";
+    Finder<String<char> > finder(t);
+    Pattern<String<char>, Myers<FindInfix> > pattern(p);
+///Instead of using @Function.setScoreLimit@, we pass the score limit $-2$ as a third argument to find
+    while (find(finder, pattern, -2))
+    {
+        std::cout << "end: " << endPosition(finder) << std::endl;
+///In order to find the begin position, we have to call @Function.findBegin at .
+///Note that the third argument of @Function.findBegin@ is optional.
+///The default is the score limit that was used during the last call of @Function.find@ (i.e. -2 in this example).
+        while (findBegin(finder, pattern, getScore(pattern)))
+        {
+            std::cout << "begin: " << beginPosition(finder) << std::endl;
+            std::cout << infix(finder) << " matches with score ";
+            std::cout << getBeginScore(pattern) << std::endl;
+        }
+    }
+    return 0;
+}
diff --git a/demos/find_exact.cpp b/demos/find_exact.cpp
new file mode 100644
index 0000000..99b72ea
--- /dev/null
+++ b/demos/find_exact.cpp
@@ -0,0 +1,35 @@
+///A tutorial about the use of exact find algorithms.
+#include <iostream>
+#include <seqan/find.h>
+
+using namespace seqan;
+
+///This function prints the positions of all occurrences of $needle$ within $haystack$.
+///It uses the algorithm specified by $TAlgorithm$ that is passed as a @glos:Specialization@ to @Class.Pattern at .
+template <typename TAlgorithm>
+void printAllOccs(String<char> & haystack,
+                  String<char> & needle)
+{
+    Finder<String<char> > finder(haystack);
+    Pattern<String<char>, TAlgorithm> pattern(needle);
+    while (find(finder, pattern))
+    {
+        std::cout << position(finder) << ", ";
+    }
+    std::cout << std::endl;
+}
+
+///The main function calls $printAllOccs$ for different exact string matching algorithms.
+int main()
+{
+    String<char> haystack = "send more money!";
+    String<char> needle = "mo";
+
+    printAllOccs<Horspool>(haystack, needle);
+    printAllOccs<BomAlgo>(haystack, needle);
+    printAllOccs<BndmAlgo>(haystack, needle);
+    printAllOccs<ShiftAnd>(haystack, needle);
+    printAllOccs<ShiftOr>(haystack, needle);
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/find_wild.cpp b/demos/find_wild.cpp
similarity index 100%
rename from demos/unassigned_or_unused/find_wild.cpp
rename to demos/find_wild.cpp
diff --git a/demos/unassigned_or_unused/gff2gtf.cpp b/demos/gff2gtf.cpp
similarity index 100%
rename from demos/unassigned_or_unused/gff2gtf.cpp
rename to demos/gff2gtf.cpp
diff --git a/demos/dox/gff_io/UNUSED_gff_stream_read.cpp b/demos/gff_io/gff_stream_read.cpp
similarity index 100%
rename from demos/dox/gff_io/UNUSED_gff_stream_read.cpp
rename to demos/gff_io/gff_stream_read.cpp
diff --git a/demos/dox/graph_types/graph_algo_dijkstra.cpp b/demos/graph/graph_algo_dijkstra.cpp
similarity index 100%
rename from demos/dox/graph_types/graph_algo_dijkstra.cpp
rename to demos/graph/graph_algo_dijkstra.cpp
diff --git a/demos/dox/graph_types/graph_algo_dijkstra.cpp.stdout b/demos/graph/graph_algo_dijkstra.cpp.stdout
similarity index 100%
rename from demos/dox/graph_types/graph_algo_dijkstra.cpp.stdout
rename to demos/graph/graph_algo_dijkstra.cpp.stdout
diff --git a/demos/graph_algorithms/all_pairs_shortest_path.cpp b/demos/graph_algorithms/all_pairs_shortest_path.cpp
new file mode 100644
index 0000000..f777f48
--- /dev/null
+++ b/demos/graph_algorithms/all_pairs_shortest_path.cpp
@@ -0,0 +1,44 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create a graph with 9 directed edges (0,1), (0,2), ...
+    TSize numEdges = 9;
+    TVertexDescriptor edges[] = {0, 1, 0, 2, 0, 4, 1, 3, 1, 4, 2, 1, 3, 0, 3, 2, 4, 3};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << std::endl;
+
+    // Create a property map with edge weights.  Note that we can use negative
+    // weights since the edges are directed and there are no cycles.
+    int weights[] = {3, 8, -4, 1, 7, 4, 2, -5, 6};
+    String<int> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+
+    // Compute all-pairs shortest path.
+    String<int> distMat;
+    String<TVertexDescriptor> predMat;
+    allPairsShortestPath(distMat, predMat, g, weightMap);
+
+    // Print the result to stdout.
+    unsigned int len = static_cast<unsigned>(std::sqrt((double)length(distMat)));
+    for (TSize row = 0; row < len; ++row)
+        for (TSize col = 0; col < len; ++col)
+        {
+            std::cout << row << "," << col << " (Distance="
+                      << getValue(distMat, row * len + col) << "): ";
+            _printAllPairsShortestPath(g, predMat, row, col);
+            std::cout << "\n";
+        }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/all_pairs_shortest_path.cpp.stdout b/demos/graph_algorithms/all_pairs_shortest_path.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/all_pairs_shortest_path.cpp.stdout
rename to demos/graph_algorithms/all_pairs_shortest_path.cpp.stdout
diff --git a/demos/graph_algorithms/bellman_ford_algorithm.cpp b/demos/graph_algorithms/bellman_ford_algorithm.cpp
new file mode 100644
index 0000000..3608138
--- /dev/null
+++ b/demos/graph_algorithms/bellman_ford_algorithm.cpp
@@ -0,0 +1,47 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 10 directed edges (0,1), (0,3), ...
+    TSize numEdges = 10;
+    TVertexDescriptor edges[] = {0, 1, 0, 3, 1, 2, 1, 3, 2, 4, 3, 1, 3, 2, 3, 4, 4, 0, 4, 2};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+
+    // Print graph.
+    std::cout << g << "\n";
+
+    // Create external edge property map and assign to graph.
+    unsigned weights[] =    {10, 5, 1, 2, 4, 3, 9, 2, 7, 6};
+    String<unsigned> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+
+    // Run Bellman-Ford algorithm from vertex 0.  NB: Ford-Fulkerson also
+    // detects negative cycles.
+    String<unsigned int> predMap;
+    String<unsigned int> distMap;
+    bool noNegativeCycle = bellmanFordAlgorithm(predMap, distMap, g, 0, weightMap);
+
+    // Print result to stdout.
+    std::cout << "Single-Source Shortest Paths: " << "\n"
+              << "Graph without negative cycles? " << noNegativeCycle << "\n";
+    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Path from 0 to " << getValue(it) << ": ";
+        _printPath(g, predMap, (TVertexDescriptor) 0, getValue(it));
+        std::cout << " (Distance: " << getProperty(distMap, getValue(it)) << ")\n";
+        goNext(it);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/bellman_ford_algorithm.cpp.stdout b/demos/graph_algorithms/bellman_ford_algorithm.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/bellman_ford_algorithm.cpp.stdout
rename to demos/graph_algorithms/bellman_ford_algorithm.cpp.stdout
diff --git a/demos/graph_algorithms/breadth_first_search.cpp b/demos/graph_algorithms/breadth_first_search.cpp
new file mode 100644
index 0000000..f86bf09
--- /dev/null
+++ b/demos/graph_algorithms/breadth_first_search.cpp
@@ -0,0 +1,53 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Undirected<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create a graph with 10 undirected edges {0,1}, {0,4}, ...
+    TSize numEdges = 10;
+    TVertexDescriptor edges[] = {0, 1, 0, 4, 1, 5, 2, 5, 2, 6, 2, 3, 3, 6, 3, 7, 5, 6, 6, 7};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << "\n";
+
+    // Create external property map for the vertex names and assign to graph.
+    String<char> nameMap;
+    char names[] = {'r', 's', 't', 'u', 'v', 'w', 'x', 'y'};
+    assignVertexMap(nameMap, g, names);
+
+    // Perform a BFS search starting from vertex with descriptor 1.
+    String<unsigned int> predMap;
+    String<unsigned int> distMap;
+    breadthFirstSearch(predMap, distMap, g, 1);
+
+    // Write the result to stdout.
+    std::cout << "Breadth-First search: \n";
+    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Vertex " << getProperty(nameMap, getValue(it)) << ": ";
+        if (getProperty(distMap, getValue(it)) == _getInfinityDistance(distMap))
+            SEQAN_FAIL("Should never reach here!");
+        else
+            std::cout << "Level = " << getProperty(distMap, getValue(it));
+
+        typedef Value<String<unsigned int> >::Type TPredVal;
+        TPredVal pre = getProperty(predMap, getValue(it));
+        if (pre != getNil<TVertexDescriptor>())
+            std::cout << ", Predecessor = " << getProperty(nameMap, pre) << "\n";
+        else
+            std::cout << ", Predecessor = nil" << "\n";
+        goNext(it);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/breadth_first_search.cpp.stdout b/demos/graph_algorithms/breadth_first_search.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/breadth_first_search.cpp.stdout
rename to demos/graph_algorithms/breadth_first_search.cpp.stdout
diff --git a/demos/graph_algorithms/dag_shortest_path.cpp b/demos/graph_algorithms/dag_shortest_path.cpp
new file mode 100644
index 0000000..b7ffceb
--- /dev/null
+++ b/demos/graph_algorithms/dag_shortest_path.cpp
@@ -0,0 +1,44 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 10 directed edges (0,2), (0,1), ...
+    TSize numEdges = 10;
+    TVertexDescriptor edges[] = {0, 2, 0, 1, 1, 3, 1, 2, 2, 5, 2, 4, 2, 3, 3, 5, 3, 4, 4, 5};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph to stdout.
+    std::cout << g << "\n";
+
+    // Create external edge property map with edge weights.
+    int weights[] = {3, 5, 6, 2, 2, 4, 7, 1, -1, -2};
+    String<int> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+
+    // Run DAG shortest path computation from vertex with descriptor 1.
+    String<unsigned> predMap;
+    String<unsigned> distMap;
+    dagShortestPath(predMap, distMap, g, 1, weightMap);
+
+    // Print result to stdout.
+    std::cout << "Single-Source Shortest Paths in DAG: \n";
+    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Path from 1 to " << getValue(it) << ": ";
+        _printPath(g, predMap, (TVertexDescriptor)1, getValue(it));
+        std::cout << " (Distance: " << getProperty(distMap, getValue(it)) << ")\n";
+        goNext(it);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/dag_shortest_path.cpp.stdout b/demos/graph_algorithms/dag_shortest_path.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/dag_shortest_path.cpp.stdout
rename to demos/graph_algorithms/dag_shortest_path.cpp.stdout
diff --git a/demos/graph_algorithms/depth_first_search.cpp b/demos/graph_algorithms/depth_first_search.cpp
new file mode 100644
index 0000000..3c76799
--- /dev/null
+++ b/demos/graph_algorithms/depth_first_search.cpp
@@ -0,0 +1,51 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 8 directed edges (0,3), (0,1), ...
+    TSize numEdges = 8;
+    TVertexDescriptor edges[] = {0, 3, 0, 1, 1, 4, 2, 4, 2, 5, 3, 1, 4, 3, 5, 5};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << "\n";
+
+    // Create external property map for the vertex names and assign to graph.
+    char names[] = {'u', 'v', 'w', 'x', 'y', 'z'};
+    String<char> nameMap;
+    assignVertexMap(nameMap, g, names);
+
+    // Perform a DFS search.
+    String<unsigned int> predMap;
+    String<unsigned int> discoveryTimeMap;
+    String<unsigned int> finishingTimeMap;
+    depthFirstSearch(predMap, discoveryTimeMap, finishingTimeMap, g);
+
+    // Write the result to stdout.
+    std::cout << "Depth-First search: \n";
+    typedef Iterator<Graph<>, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Vertex " << getProperty(nameMap, getValue(it)) << ": ";
+        std::cout << "Discovery time = " << getProperty(discoveryTimeMap, getValue(it)) << ",";
+        std::cout << "Finishing time = " << getProperty(finishingTimeMap, getValue(it)) << ",";
+        typedef Value<String<unsigned int> >::Type TPredVal;
+        TPredVal pre = getProperty(predMap, getValue(it));
+        if (pre != getNil<TVertexDescriptor>())
+            std::cout << "Predecessor = " << getProperty(nameMap, pre) << "\n";
+        else
+            std::cout << "Predecessor = nil" << "\n";
+        goNext(it);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/depth_first_search.cpp.stdout b/demos/graph_algorithms/depth_first_search.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/depth_first_search.cpp.stdout
rename to demos/graph_algorithms/depth_first_search.cpp.stdout
diff --git a/demos/graph_algorithms/dijkstra.cpp b/demos/graph_algorithms/dijkstra.cpp
new file mode 100644
index 0000000..5eef344
--- /dev/null
+++ b/demos/graph_algorithms/dijkstra.cpp
@@ -0,0 +1,72 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 10 directed edges (0,1), (0,3), ...
+    TSize numEdges = 10;
+    TVertexDescriptor edges[] = {0, 1, 0, 3, 1, 2, 1, 3, 2, 4, 3, 1, 3, 2, 3, 4, 4, 0, 4, 2};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+
+    // Fill external edge weight map.
+    unsigned weights[] = {10, 5, 1, 2, 4, 3, 9, 2, 7, 6};
+    String<unsigned> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+
+    // Run Dijkstra's algorithm from vertex 0.
+    String<unsigned> predMap;
+    String<unsigned> distMap;
+    dijkstra(predMap, distMap, g, 0, weightMap);
+
+    // Print results to stdout.
+    std::cout << "Single-Source Shortest Paths: \n";
+    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Path from 0 to " << getValue(it) << ": ";
+        _printPath(g, predMap, (TVertexDescriptor) 0, getValue(it));
+        std::cout << " (Distance: " << getProperty(distMap, getValue(it)) << ")\n";
+        goNext(it);
+    }
+
+    // We can achieve the same thing using an internal map that is edge cargos.
+    typedef unsigned int TEdgeCargo;
+    typedef Directed<TEdgeCargo> TEdges;
+    typedef Graph<TEdges> TCargoGraph;
+
+    // Construct graph with the same edges as above.
+    TCargoGraph cargoG;
+    addEdges(cargoG, edges, numEdges);
+
+    // Fill internal edge weight map.
+    InternalPropertyMap<TEdgeCargo> intMap;
+    assignEdgeMap(intMap, cargoG, weights);
+
+    // Run Dijkstra's algorithm from vertex 0.
+    clear(predMap);
+    clear(distMap);
+    dijkstra(predMap, distMap, cargoG, 0, intMap);
+
+    // Print result to stdout.
+    std::cout << "\nSingle-Source Shortest Paths: \n";
+    typedef Iterator<TCargoGraph, VertexIterator>::Type TCargoVertexIterator;
+    TCargoVertexIterator itC(cargoG);
+    while (!atEnd(itC))
+    {
+        std::cout << "Path from 0 to " << getValue(itC) << ": ";
+        _printPath(g, predMap, (TVertexDescriptor)0, getValue(itC));
+        std::cout << " (Distance: " << getProperty(distMap, getValue(itC)) << ")\n";
+        goNext(itC);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/dijkstra.cpp.stdout b/demos/graph_algorithms/dijkstra.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/dijkstra.cpp.stdout
rename to demos/graph_algorithms/dijkstra.cpp.stdout
diff --git a/demos/graph_algorithms/floyd_warshall_algorithm.cpp b/demos/graph_algorithms/floyd_warshall_algorithm.cpp
new file mode 100644
index 0000000..847723e
--- /dev/null
+++ b/demos/graph_algorithms/floyd_warshall_algorithm.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 9 directed edges (0,1), (0,2)
+    TSize numEdges = 9;
+    TVertexDescriptor edges[] = {0, 1, 0, 2, 0, 4, 1, 3, 1, 4, 2, 1, 3, 0, 3, 2, 4, 3};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << "\n";
+
+    // Fill external property map with edge weights and assign to graph.
+    int weights[] = {3, 8, -4, 1, 7, 4, 2, -5, 6};
+    String<int> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+
+    // Run Floyd-Warshall algorithm.
+    String<int> distMat;
+    String<TVertexDescriptor> predMat;
+    floydWarshallAlgorithm(distMat, predMat, g, weightMap);
+
+    // Print result to stdout.
+    unsigned int len = static_cast<unsigned>(std::sqrt((double)length(distMat)));
+    for (TSize row = 0; row < len; ++row)
+        for (TSize col = 0; col < len; ++col)
+        {
+            std::cout << row << "," << col << " (Distance="
+                      << getValue(distMat, row * len + col) << "): ";
+            _printAllPairsShortestPath(g, predMat, row, col);
+            std::cout << std::endl;
+        }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp.stdout b/demos/graph_algorithms/floyd_warshall_algorithm.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp.stdout
rename to demos/graph_algorithms/floyd_warshall_algorithm.cpp.stdout
diff --git a/demos/graph_algorithms/ford_fulkerson_algorithm.cpp b/demos/graph_algorithms/ford_fulkerson_algorithm.cpp
new file mode 100644
index 0000000..fb27ab9
--- /dev/null
+++ b/demos/graph_algorithms/ford_fulkerson_algorithm.cpp
@@ -0,0 +1,41 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Iterator<TGraph, EdgeIterator>::Type TEdgeIterator;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 10 directed edges (0,1), (0,4), ...
+    TSize numEdges = 10;
+    TVertexDescriptor edges[] = {0, 1, 0, 4, 1, 2, 1, 4, 2, 3, 2, 4, 4, 1, 4, 5, 5, 2, 5, 3};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << "\n";
+
+    // Create external property map for the edge capacities and assign to the graph.
+    String<unsigned int> capMap;
+    unsigned capacity[] =    {16, 13, 12, 10, 20, 9, 4, 14, 7, 4};
+    assignEdgeMap(capMap, g, capacity);
+
+    // Run the Ford-Fulkerson algorithm for maximum flow computation from source
+    // vertex 0 to sink vertex 3.  valF is the value of the flow.
+    String<unsigned int> flow;
+    unsigned valF = fordFulkersonAlgorithm(flow, g, 0, 3, capMap);
+
+    // Print the result to stdout.
+    std::cout << "Ford-Fulkerson (Value of the flow = " << valF << ")\n";
+    TEdgeIterator itEdge(g);
+    for (; !atEnd(itEdge); goNext(itEdge))
+        std::cout << "(" << sourceVertex(itEdge) << "," << targetVertex(itEdge) << "): "
+                  << "Flow: " << getProperty(flow, getValue(itEdge)) << ", Capacity: "
+                  << getProperty(capMap, getValue(itEdge)) << "\n";
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp.stdout b/demos/graph_algorithms/ford_fulkerson_algorithm.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp.stdout
rename to demos/graph_algorithms/ford_fulkerson_algorithm.cpp.stdout
diff --git a/demos/dox/graph_algorithms/heaviest_increasing_subsequence.cpp b/demos/graph_algorithms/heaviest_increasing_subsequence.cpp
similarity index 100%
rename from demos/dox/graph_algorithms/heaviest_increasing_subsequence.cpp
rename to demos/graph_algorithms/heaviest_increasing_subsequence.cpp
diff --git a/demos/graph_algorithms/kruskals_algorithm.cpp b/demos/graph_algorithms/kruskals_algorithm.cpp
new file mode 100644
index 0000000..3665a27
--- /dev/null
+++ b/demos/graph_algorithms/kruskals_algorithm.cpp
@@ -0,0 +1,49 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Undirected<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 14 undirected edges {0,1}, {0,6}, ...
+    TSize numEdges = 14;
+    TVertexDescriptor edges[] = {0, 1, 0, 6, 1, 2, 1, 6, 2, 3, 2, 4, 2, 8, 3, 5, 3, 8, 4, 6, 4, 7, 5, 8, 6, 7, 7, 8};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << std::endl;
+
+    // Fill external property map for each edge weight and vertex names.
+    unsigned int weights[] = {4, 8, 8, 11, 7, 2, 4, 9, 14, 7, 6, 10, 1, 2};
+    char names[] = {'a', 'b', 'c', 'd', 'i', 'e', 'h', 'g', 'f'};
+    String<int> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+    String<char> nameMap;
+    assignVertexMap(nameMap, g, names);
+
+    // Run Kruskal's algorithm.
+    String<TVertexDescriptor> treeEdges;
+    kruskalsAlgorithm(treeEdges, g, 0, weightMap);
+
+    // Print the result to stdout.
+    std::cout << "Minimum Spanning Tree (Kruskal's algorithm): \n"
+              << "Tree Edges: ";
+    typedef Iterator<String<TVertexDescriptor> >::Type TStrIterator;
+    TStrIterator it = begin(treeEdges);
+    TStrIterator itEnd = end(treeEdges);
+    while (it != itEnd)
+    {
+        std::cout << "(" << getProperty(nameMap, getValue(it)) << ",";
+        goNext(it);
+        std::cout << getProperty(nameMap, getValue(it)) << "), ";
+        goNext(it);
+    }
+    std::cout << "\n";
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/kruskals_algorithm.cpp.stdout b/demos/graph_algorithms/kruskals_algorithm.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/kruskals_algorithm.cpp.stdout
rename to demos/graph_algorithms/kruskals_algorithm.cpp.stdout
diff --git a/demos/dox/graph_algorithms/longest_common_subsequence.cpp b/demos/graph_algorithms/longest_common_subsequence.cpp
similarity index 100%
rename from demos/dox/graph_algorithms/longest_common_subsequence.cpp
rename to demos/graph_algorithms/longest_common_subsequence.cpp
diff --git a/demos/dox/graph_algorithms/longest_increasing_subsequence.cpp b/demos/graph_algorithms/longest_increasing_subsequence.cpp
similarity index 100%
rename from demos/dox/graph_algorithms/longest_increasing_subsequence.cpp
rename to demos/graph_algorithms/longest_increasing_subsequence.cpp
diff --git a/demos/graph_algorithms/prims_algorithm.cpp b/demos/graph_algorithms/prims_algorithm.cpp
new file mode 100644
index 0000000..41c8774
--- /dev/null
+++ b/demos/graph_algorithms/prims_algorithm.cpp
@@ -0,0 +1,47 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Undirected<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 14 undirected edges {0,1}, {0,6}, ...
+    TSize numEdges = 14;
+    TVertexDescriptor edges[] = {0, 1, 0, 6, 1, 2, 1, 6, 2, 3, 2, 4, 2, 8, 3, 5, 3, 8, 4, 6, 4, 7, 5, 8, 6, 7, 7, 8};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << std::endl;
+
+    // Fill two external property maps for edge weights and vertex names.
+    unsigned int weights[] = {4, 8, 8, 11, 7, 2, 4, 9, 14, 7, 6, 10, 1, 2};
+    char names[] = {'a', 'b', 'c', 'd', 'i', 'e', 'h', 'g', 'f'};
+    String<int> weightMap;
+    assignEdgeMap(weightMap, g, weights);
+    String<char> nameMap;
+    assignVertexMap(nameMap, g, names);
+
+    // Run Prim's algorithm.
+    String<TVertexDescriptor> predMap;
+    primsAlgorithm(predMap, g, 0, weightMap);
+
+    // Print result to stdout.
+    std::cout << "Minimum Spanning Tree (Prim's algorithm): \n";
+    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Path from " << getProperty(nameMap, 0) << " to "
+                  << getProperty(nameMap, getValue(it)) << ": ";
+        _printPath(g, predMap, (TVertexDescriptor)0, getValue(it), nameMap);
+        std::cout << "\n";
+        goNext(it);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/prims_algorithm.cpp.stdout b/demos/graph_algorithms/prims_algorithm.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/prims_algorithm.cpp.stdout
rename to demos/graph_algorithms/prims_algorithm.cpp.stdout
diff --git a/demos/graph_algorithms/strongly_connected_components.cpp b/demos/graph_algorithms/strongly_connected_components.cpp
new file mode 100644
index 0000000..1d91879
--- /dev/null
+++ b/demos/graph_algorithms/strongly_connected_components.cpp
@@ -0,0 +1,42 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create grap with 14 directed edges (1,0), (0,4), ...
+    TSize numEdges = 14;
+    TVertexDescriptor edges[] = {1, 0, 0, 4, 2, 1, 4, 1, 5, 1, 6, 2, 3, 2, 2, 3, 7, 3, 5, 4, 6, 5, 5, 6, 7, 6, 7, 7};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << std::endl;
+
+    // Create external property map with vertex names and assign to graph.
+    String<char> nameMap;
+    char names[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
+    assignVertexMap(nameMap, g, names);
+
+    // Compute strongly connected components.
+    String<unsigned int> component;
+    stronglyConnectedComponents(component, g);
+
+    // Print result to stdout.
+    std::cout << "Strongly Connected Components: \n";
+    typedef Iterator<TGraph, VertexIterator>::Type TVertexIterator;
+    TVertexIterator it(g);
+    while (!atEnd(it))
+    {
+        std::cout << "Vertex " << getProperty(nameMap, getValue(it)) << ": \n"
+                  << "Component = " << getProperty(component, getValue(it)) << "\n";
+        goNext(it);
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/strongly_connected_components.cpp.stdout b/demos/graph_algorithms/strongly_connected_components.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/strongly_connected_components.cpp.stdout
rename to demos/graph_algorithms/strongly_connected_components.cpp.stdout
diff --git a/demos/graph_algorithms/topological_sort.cpp b/demos/graph_algorithms/topological_sort.cpp
new file mode 100644
index 0000000..1511a81
--- /dev/null
+++ b/demos/graph_algorithms/topological_sort.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 9 directed edges (0,3), (0,1), ...
+    TSize numEdges = 9;
+    TVertexDescriptor edges[] = {0, 3, 0, 1, 1, 2, 3, 2, 5, 7, 5, 6, 6, 7, 6, 3, 8, 7};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph.
+    std::cout << g << "\n";
+
+    // Create external property map with vertex labels.
+    String<std::string> nameMap;
+    std::string names[] = {"shirt", "tie", "jacket", "belt", "watch", "undershorts", "pants", "shoes", "socks"};
+    assignVertexMap(nameMap, g, names);
+
+    // Get vertex descriptor in topological sort order.
+    String<TVertexDescriptor> order;
+    topologicalSort(order, g);
+
+    // Write the result to stdout.
+    std::cout << "Topological sort: \n";
+    typedef Iterator<String<TVertexDescriptor> >::Type TStringIterator;
+    TStringIterator it = begin(order);
+    TStringIterator itEnd = end(order);
+    while (it != itEnd)
+    {
+        std::cout << getProperty(nameMap, getValue(it)) << ",";
+        goNext(it);
+    }
+    std::cout << "\n";
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/topological_sort.cpp.stdout b/demos/graph_algorithms/topological_sort.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/topological_sort.cpp.stdout
rename to demos/graph_algorithms/topological_sort.cpp.stdout
diff --git a/demos/graph_algorithms/transitive_closure.cpp b/demos/graph_algorithms/transitive_closure.cpp
new file mode 100644
index 0000000..4dda3ac
--- /dev/null
+++ b/demos/graph_algorithms/transitive_closure.cpp
@@ -0,0 +1,35 @@
+#include <iostream>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef Graph<Directed<> > TGraph;
+    typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
+    typedef Size<TGraph>::Type TSize;
+
+    // Create graph with 5 directed edges (3,0), (1,2), ...
+    TSize numEdges = 5;
+    TVertexDescriptor edges[] = {3, 0, 1, 2, 2, 1, 1, 3, 3, 2};
+    TGraph g;
+    addEdges(g, edges, numEdges);
+    // Print graph to stdout.
+    std::cout << g << "\n";
+
+    // Compute transitive closure.
+    String<bool> closure;
+    transitiveClosure(closure, g);
+
+    // Print result to stdout.
+    TSize len = static_cast<TSize>(std::sqrt((double) length(closure)));
+    for (TSize row = 0; row < len; ++row)
+    {
+        for (TSize col = 0; col < len; ++col)
+            std::cout << getValue(closure, row * len + col) << ",";
+        std::cout << std::endl;
+    }
+
+    return 0;
+}
diff --git a/demos/dox/graph_algorithms/transitive_closure.cpp.stdout b/demos/graph_algorithms/transitive_closure.cpp.stdout
similarity index 100%
rename from demos/dox/graph_algorithms/transitive_closure.cpp.stdout
rename to demos/graph_algorithms/transitive_closure.cpp.stdout
diff --git a/demos/dox/graph_align/graph_align.cpp b/demos/graph_align/graph_align.cpp
similarity index 100%
rename from demos/dox/graph_align/graph_align.cpp
rename to demos/graph_align/graph_align.cpp
diff --git a/demos/graph_hmm.cpp b/demos/graph_hmm.cpp
new file mode 100644
index 0000000..bdb9684
--- /dev/null
+++ b/demos/graph_hmm.cpp
@@ -0,0 +1,98 @@
+///A tutorial about HMMs.
+#include <iostream>
+#include <fstream>
+#include <seqan/basic.h>
+#include <seqan/graph_algorithms.h>
+
+using namespace seqan;
+
+int main()
+{
+///HMM creation
+    typedef LogProb<> TProbability;
+    typedef Dna TAlphabet;
+    typedef Size<TAlphabet>::Type TSize;
+    typedef Graph<Hmm<TAlphabet, TProbability, Default> > THmm;
+    typedef VertexDescriptor<THmm>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<THmm>::Type TEdgeDescriptor;
+
+    Dna dnaA = Dna('A');
+    Dna dnaC = Dna('C');
+    Dna dnaG = Dna('G');
+    Dna dnaT = Dna('T');
+
+    THmm hmm;
+
+///Begin state
+    TVertexDescriptor begState = addVertex(hmm);
+    assignBeginState(hmm, begState);
+
+///Add exon state
+    TVertexDescriptor exonState = addVertex(hmm);
+    emissionProbability(hmm, exonState, dnaA) = 0.25;
+    emissionProbability(hmm, exonState, dnaC) = 0.25;
+    emissionProbability(hmm, exonState, dnaG) = 0.25;
+    emissionProbability(hmm, exonState, dnaT) = 0.25;
+
+///Add 5' splice site
+    TVertexDescriptor spliceState = addVertex(hmm);
+    emissionProbability(hmm, spliceState, dnaA) = 0.05;
+    emissionProbability(hmm, spliceState, dnaC) = 0.0;
+    emissionProbability(hmm, spliceState, dnaG) = 0.95;
+    emissionProbability(hmm, spliceState, dnaT) = 0.0;
+
+///Add intron state
+    TVertexDescriptor intronState = addVertex(hmm);
+    emissionProbability(hmm, intronState, dnaA) = 0.4;
+    emissionProbability(hmm, intronState, dnaC) = 0.1;
+    emissionProbability(hmm, intronState, dnaG) = 0.1;
+    emissionProbability(hmm, intronState, dnaT) = 0.4;
+
+///End state
+    TVertexDescriptor eState = addVertex(hmm);
+    assignEndState(hmm, eState);
+
+///Transitions
+    addEdge(hmm, exonState, exonState, 0.9);
+    addEdge(hmm, exonState, spliceState, 0.1);
+    addEdge(hmm, spliceState, intronState, 1.0);
+    addEdge(hmm, begState, exonState, 1.0);
+    addEdge(hmm, intronState, intronState, 0.9);
+    addEdge(hmm, intronState, eState, 0.1);
+
+///Print the whole model
+    std::cout << hmm << std::endl;
+
+///Viterbi algorithm
+    String<Dna> sequence = "CTTCATGTGAAAGCAGACGTAAGTCA";
+    String<TVertexDescriptor> path;
+    TProbability p = viterbiAlgorithm(path, hmm, sequence);
+    std::cout << "Viterbi algorithm" << std::endl;
+    std::cout << "Probability of best path: " << p << std::endl;
+    std::cout << "Sequence: " << std::endl;
+    for (TSize i = 0; i < length(sequence); ++i)
+        std::cout << sequence[i] << ',';
+    std::cout << std::endl;
+    std::cout << "State path: " << std::endl;
+    for (TSize i = 0; i < length(path); ++i)
+    {
+        std::cout << path[i];
+        if (isSilent(hmm, path[i]))
+            std::cout << " (Silent)";
+        if (i < length(path) - 1)
+            std::cout << ',';
+    }
+    std::cout << std::endl;
+
+///Forward algorithm
+    std::cout << "Forward algorithm" << std::endl;
+    p = forwardAlgorithm(hmm, sequence);
+    std::cout << "Probability that the HMM generated the sequence: " << p << std::endl;
+
+///Backward algorithm
+    std::cout << "Backward algorithm" << std::endl;
+    p = backwardAlgorithm(hmm, sequence);
+    std::cout << "Probability that the HMM generated the sequence: " << p << std::endl;
+
+    return 0;
+}
diff --git a/demos/graph_hmm_silent.cpp b/demos/graph_hmm_silent.cpp
new file mode 100644
index 0000000..03dadc2
--- /dev/null
+++ b/demos/graph_hmm_silent.cpp
@@ -0,0 +1,118 @@
+///A tutorial about HMMs with silent states
+#include <iostream>
+#include <fstream>
+#include <seqan/graph_algorithms.h>
+#include <seqan/basic/basic_math.h>
+
+using namespace seqan;
+
+int main()
+{
+///HMM creation
+    typedef LogProb<> TProbability;
+    typedef Dna TAlphabet;
+    typedef Size<TAlphabet>::Type TSize;
+    typedef Graph<Hmm<TAlphabet, TProbability> > THmm;
+    typedef VertexDescriptor<THmm>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<THmm>::Type TEdgeDescriptor;
+
+    Dna dnaA = Dna('A');
+    Dna dnaC = Dna('C');
+    Dna dnaG = Dna('G');
+    Dna dnaT = Dna('T');
+
+    THmm hmm;
+
+///Begin state
+    TVertexDescriptor begState = addVertex(hmm);
+    assignBeginState(hmm, begState);
+
+///Emission states
+    TVertexDescriptor emitState1 = addVertex(hmm);
+    emissionProbability(hmm, emitState1, dnaA) = 0.0;
+    emissionProbability(hmm, emitState1, dnaC) = 0.8;
+    emissionProbability(hmm, emitState1, dnaG) = 0.1;
+    emissionProbability(hmm, emitState1, dnaT) = 0.1;
+
+    TVertexDescriptor emitState2 = addVertex(hmm);
+    emissionProbability(hmm, emitState2, dnaA) = 0.0;
+    emissionProbability(hmm, emitState2, dnaC) = 0.2;
+    emissionProbability(hmm, emitState2, dnaG) = 0.2;
+    emissionProbability(hmm, emitState2, dnaT) = 0.6;
+
+    TVertexDescriptor emitState3 = addVertex(hmm);
+    emissionProbability(hmm, emitState3, dnaA) = 0.7;
+    emissionProbability(hmm, emitState3, dnaC) = 0.1;
+    emissionProbability(hmm, emitState3, dnaG) = 0.1;
+    emissionProbability(hmm, emitState3, dnaT) = 0.1;
+
+    TVertexDescriptor emitState4 = addVertex(hmm);
+    emissionProbability(hmm, emitState4, dnaA) = 0.25;
+    emissionProbability(hmm, emitState4, dnaC) = 0.25;
+    emissionProbability(hmm, emitState4, dnaG) = 0.25;
+    emissionProbability(hmm, emitState4, dnaT) = 0.25;
+
+///Silent states (deletion states)
+    TVertexDescriptor delState1 = addVertex(hmm, true);
+    TVertexDescriptor delState2 = addVertex(hmm, true);
+    TVertexDescriptor delState3 = addVertex(hmm, true);
+    TVertexDescriptor delState4 = addVertex(hmm, true);
+
+///End state
+    TVertexDescriptor eState = addVertex(hmm);
+    assignEndState(hmm, eState);
+
+///Transitions
+    addEdge(hmm, begState, emitState1, 0.5);
+    addEdge(hmm, begState, delState1, 0.5);
+    addEdge(hmm, emitState1, emitState2, 0.5);
+    addEdge(hmm, emitState1, delState2, 0.5);
+    addEdge(hmm, delState1, emitState2, 0.5);
+    addEdge(hmm, delState1, delState2, 0.5);
+    addEdge(hmm, emitState2, emitState3, 0.5);
+    addEdge(hmm, emitState2, delState3, 0.5);
+    addEdge(hmm, delState2, emitState3, 0.5);
+    addEdge(hmm, delState2, delState3, 0.5);
+    addEdge(hmm, emitState3, emitState4, 0.5);
+    addEdge(hmm, emitState3, delState4, 0.5);
+    addEdge(hmm, delState3, emitState4, 0.5);
+    addEdge(hmm, delState3, delState4, 0.5);
+    addEdge(hmm, emitState4, eState, 1.0);
+    addEdge(hmm, delState4, eState, 1.0);
+
+///Print the whole model
+    std::cout << hmm << std::endl;
+
+///Viterbi algorithm
+    String<Dna> sequence = "CA";
+    String<TVertexDescriptor> path;
+    TProbability p = viterbiAlgorithm(path, hmm, sequence);
+    std::cout << "Viterbi algorithm" << std::endl;
+    std::cout << "Probability of the best path: " << p << std::endl;
+    std::cout << "Sequence: " << std::endl;
+    for (TSize i = 0; i < length(sequence); ++i)
+        std::cout << sequence[i] << ',';
+    std::cout << std::endl;
+    std::cout << "State path: " << std::endl;
+    for (TSize i = 0; i < length(path); ++i)
+    {
+        std::cout << path[i];
+        if (isSilent(hmm, path[i]))
+            std::cout << " (Silent)";
+        if (i < length(path) - 1)
+            std::cout << ',';
+    }
+    std::cout << std::endl;
+
+///Forward algorithm
+    std::cout << "Forward algorithm" << std::endl;
+    p = forwardAlgorithm(hmm, sequence);
+    std::cout << "Probability that the HMM generated the sequence: " << p << std::endl;
+
+///Backward algorithm
+    std::cout << "Backward algorithm" << std::endl;
+    p = backwardAlgorithm(hmm, sequence);
+    std::cout << "Probability that the HMM generated the sequence: " << p << std::endl;
+
+    return 0;
+}
diff --git a/demos/howto/align_gaps_clipping.cpp b/demos/howto/align_gaps_clipping.cpp
deleted file mode 100644
index 7c0e3e1..0000000
--- a/demos/howto/align_gaps_clipping.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// Demo program for clipping with Gaps objects.
-
-#include <iostream>
-
-#include <seqan/sequence.h>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Create sequence variable and gaps basd on sequence.
-    CharString seq("ABCDEFGHIJ");
-    Gaps<CharString> gaps(seq);
-
-    // Insert gaps, the positions are in (clipped) view space.
-    insertGaps(gaps, 2, 2);
-    insertGap(gaps, 6);
-    insertGap(gaps, 10);
-
-    // Print to stdout.
-    std::cout << "gaps\t" << gaps << "\n"
-              << "seq \t" << seq << "\n\n";
-
-    // Print the begin and end positions in sequence space and the clipped
-    // begin and end positions in gap space.  We have no clipping, so no
-    // surprises here.
-    std::cout << "beginPosition(gaps)        == " << beginPosition(gaps) << "\n"
-              << "endPosition(gaps)          == " << endPosition(gaps) << "\n"
-              << "clippedBeginPosition(gaps) == " << clippedBeginPosition(gaps) << "\n"
-              << "clippedEndPosition(gaps)   == " << clippedEndPosition(gaps) << "\n\n";
-
-    // Now, clip the alignment and again print the gaps, sequence and begin/end
-    // positions.  Note that the clipping positions are relative to the unclipped
-    // view.
-    setClippedBeginPosition(gaps, 3);
-    setClippedEndPosition(gaps, 10);
-
-    std::cout << "gaps\t" << gaps << "\n"
-              << "seq \t" << infix(seq, beginPosition(gaps), endPosition(gaps)) << "\n\n";
-
-    std::cout << "beginPosition(gaps)        == " << beginPosition(gaps) << "\n"
-              << "endPosition(gaps)          == " << endPosition(gaps) << "\n"
-              << "clippedBeginPosition(gaps) == " << clippedBeginPosition(gaps) << "\n"
-              << "clippedEndPosition(gaps)   == " << clippedEndPosition(gaps) << "\n\n";
-
-    // We can translate between the (clipped) gapped position (aka view) and
-    // the unclipped ungapped positions (aka) source using toSourcePosition()
-    // and toViewPosition().  Note that because of projection to the right of
-    // gaps, these operations are not symmetric.
-    std::cout << "4 view position => " << toSourcePosition(gaps, 4) << " source position\n"
-              << "2 source position => " << toViewPosition(gaps, 2) << " view position\n\n";
-
-    // Translating between clipped gapped and unclipped gapped position can
-    // be done by adding/subtracting clippedBeginPosition(gaps).
-    std::cout << "3 clipped gapped => " << 3 + clippedBeginPosition(gaps) << " unclipped gapped\n"
-              << "6 unclipped gapped => " << 5 - clippedBeginPosition(gaps) << " clipped gapped\n\n";
-
-    // Translating between clipped ungapped and unclipped ungapped position can
-    // be done by adding/subtracing beginPosition(gaps).  Since there are no
-    // gaps, this operation is symmetric.
-    std::cout << "3 clipped ungapped => " << 3 + beginPosition(gaps) << " unclipped ungapped\n"
-              << "5 unclipped ungapped => " << 5 - beginPosition(gaps) << " clipped ungapped\n\n";
-
-    // Translating between gapped clipped position and ungapped clipped
-    // position and between gapped unclipped and ungapped unclipped positions
-    // has to be done using the translations above.
-    std::cout << "3 clipped gapped => " << toSourcePosition(gaps, 3) - beginPosition(gaps) << " clipped ungapped\n"
-              << "4 unclipped ungapped => " << toViewPosition(gaps, 4) + clippedBeginPosition(gaps) << " unclipped gapped\n";
-
-    return 0;
-}
diff --git a/demos/howto/scores/init_score.cpp b/demos/howto/scores/init_score.cpp
index 7863cac..bd4fc21 100644
--- a/demos/howto/scores/init_score.cpp
+++ b/demos/howto/scores/init_score.cpp
@@ -39,12 +39,59 @@ using namespace seqan;
 namespace seqan {
 
 // We have to create a new specialization of the ScoringMatrix_ class
-// for the DNA alphabet.  For this, we first create a new tag.
+// for amino acids.  For this, we first create a new tag.
 struct UserDefinedMatrix {};
+// We also do this for the DNA alphabet.
+struct AnotherUserDefinedMatrix {};
 
-// Then, we specialize the class ScoringMatrix_ for the Dna5 alphabet.
+// Then, we specialize the class ScoringMatrix_.
 template <>
-struct ScoringMatrixData_<int, Dna5, UserDefinedMatrix>
+struct ScoringMatrixData_<int, AminoAcid, UserDefinedMatrix>
+{
+    enum
+    {
+        VALUE_SIZE = ValueSize<AminoAcid>::VALUE,
+        TAB_SIZE = VALUE_SIZE * VALUE_SIZE
+    };
+
+    static inline int const * getData()
+    {
+        // The user defined data table.  In this case, we use the data from BLOSUM-30.
+        static int const _data[TAB_SIZE] =
+        {
+            4, -1, 0, 0, -3, 1, 0, 0, -2, 0, -1, 0, 1, -2, -1, 1, 1, -5, -4, 1, 0, 0, 0, -7,
+            -1, 8, -2, -1, -2, 3, -1, -2, -1, -3, -2, 1, 0, -1, -1, -1, -3, 0, 0, -1, -2, 0, -1, -7,
+            0, -2, 8, 1, -1, -1, -1, 0, -1, 0, -2, 0, 0, -1, -3, 0, 1, -7, -4, -2, 4, -1, 0, -7,
+            0, -1, 1, 9, -3, -1, 1, -1, -2, -4, -1, 0, -3, -5, -1, 0, -1, -4, -1, -2, 5, 0, -1, -7,
+            -3, -2, -1, -3, 17, -2, 1, -4, -5, -2, 0, -3, -2, -3, -3, -2, -2, -2, -6, -2, -2, 0, -2, -7,
+            1, 3, -1, -1, -2, 8, 2, -2, 0, -2, -2, 0, -1, -3, 0, -1, 0, -1, -1, -3, -1, 4, 0, -7,
+            0, -1, -1, 1, 1, 2, 6, -2, 0, -3, -1, 2, -1, -4, 1, 0, -2, -1, -2, -3, 0, 5, -1, -7,
+            0, -2, 0, -1, -4, -2, -2, 8, -3, -1, -2, -1, -2, -3, -1, 0, -2, 1, -3, -3, 0, -2, -1, -7,
+            -2, -1, -1, -2, -5, 0, 0, -3, 14, -2, -1, -2, 2, -3, 1, -1, -2, -5, 0, -3, -2, 0, -1, -7,
+            0, -3, 0, -4, -2, -2, -3, -1, -2, 6, 2, -2, 1, 0, -3, -1, 0, -3, -1, 4, -2, -3, 0, -7,
+            -1, -2, -2, -1, 0, -2, -1, -2, -1, 2, 4, -2, 2, 2, -3, -2, 0, -2, 3, 1, -1, -1, 0, -7,
+            0, 1, 0, 0, -3, 0, 2, -1, -2, -2, -2, 4, 2, -1, 1, 0, -1, -2, -1, -2, 0, 1, 0, -7,
+            1, 0, 0, -3, -2, -1, -1, -2, 2, 1, 2, 2, 6, -2, -4, -2, 0, -3, -1, 0, -2, -1, 0, -7,
+            -2, -1, -1, -5, -3, -3, -4, -3, -3, 0, 2, -1, -2, 10, -4, -1, -2, 1, 3, 1, -3, -4, -1, -7,
+            -1, -1, -3, -1, -3, 0, 1, -1, 1, -3, -3, 1, -4, -4, 11, -1, 0, -3, -2, -4, -2, 0, -1, -7,
+            1, -1, 0, 0, -2, -1, 0, 0, -1, -1, -2, 0, -2, -1, -1, 4, 2, -3, -2, -1, 0, -1, 0, -7,
+            1, -3, 1, -1, -2, 0, -2, -2, -2, 0, 0, -1, 0, -2, 0, 2, 5, -5, -1, 1, 0, -1, 0, -7,
+            -5, 0, -7, -4, -2, -1, -1, 1, -5, -3, -2, -2, -3, 1, -3, -3, -5, 20, 5, -3, -5, -1, -2, -7,
+            -4, 0, -4, -1, -6, -1, -2, -3, 0, -1, 3, -1, -1, 3, -2, -2, -1, 5, 9, 1, -3, -2, -1, -7,
+            1, -1, -2, -2, -2, -3, -3, -3, -3, 4, 1, -2, 0, 1, -4, -1, 1, -3, 1, 5, -2, -3, 0, -7,
+            0, -2, 4, 5, -2, -1, 0, 0, -2, -2, -1, 0, -2, -3, -2, 0, 0, -5, -3, -2, 5, 0, -1, -7,
+            0, 0, -1, 0, 0, 4, 5, -2, 0, -3, -1, 1, -1, -4, 0, -1, -1, -1, -2, -3, 0, 4, 0, -7,
+            0, -1, 0, -1, -2, 0, -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, -2, -1, 0, -1, 0, -1, -7,
+            -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, 1,
+        };
+        return _data;
+    }
+
+};
+
+// And we do this for the Dna5 alphabet.
+template <>
+struct ScoringMatrixData_<int, Dna5, AnotherUserDefinedMatrix>
 {
     enum
     {
@@ -99,7 +146,7 @@ int main()
     //
     // Define types for the score value and the scoring scheme.
     typedef int TValue;
-    typedef Score<TValue, ScoreMatrix<Dna5, Default> > TScoringScheme;
+    typedef Score<TValue, ScoreMatrix<AminoAcid, Default> > TScoringScheme;
     // Define our gap scores in some constants.
     int const gapOpenScore = -1;
     int const gapExtendScore = -1;
@@ -113,28 +160,38 @@ int main()
     // 3. Fill the now-existing ScoreMatrix
     //
     // The scoring scheme now already has a matrix of the size
-    // ValueSize<Dna5>::VALUE x ValueSize<Dna5>::VALUE which
+    // ValueSize<AminoAcid>::VALUE x ValueSize<AminoAcid>::VALUE which
     // we can now fill.
 
-    // 3.1 We fill the scoring scheme with the product of the coordinates.
+    // 3.1 First, fill it with BLOSUM30.
+    std::cout << "BLOSUM 30" << std::endl;
+    setDefaultScoreMatrix(scoringScheme, Blosum30_());
+    showScoringMatrix(scoringScheme);
+
+    // 3.2 Now, we fill it with the product of the coordinates.
     std::cout << std::endl << "Coordinate Products" << std::endl;
-    for (unsigned i = 0; i < ValueSize<Dna5>::VALUE; ++i)
+    for (unsigned i = 0; i < ValueSize<AminoAcid>::VALUE; ++i)
     {
-        for (unsigned j = 0; j < ValueSize<Dna5>::VALUE; ++j)
+        for (unsigned j = 0; j < ValueSize<AminoAcid>::VALUE; ++j)
         {
-            setScore(scoringScheme, Dna5(i), Dna5(j), i * j);
+            setScore(scoringScheme, AminoAcid(i), AminoAcid(j), i * j);
         }
     }
     showScoringMatrix(scoringScheme);
 
-    // 3.2 Now, we fill it with the user defined matrix above.
-    std::cout << "User defined matrix (also Dna5 scoring matrix)..." << std::endl;
+    // 3.3 Now, we fill it with the user defined matrix above.
+    std::cout << "User defined matrix (also BLOSUM 30)..." << std::endl;
     setDefaultScoreMatrix(scoringScheme, UserDefinedMatrix());
     showScoringMatrix(scoringScheme);
 
-    // 4. Show our user-defined Dna5 scoring matrix.
+    // 4. Create ScoreMatrix object with user-defined matrix.
+    std::cout << "User scoring scheme..." << std::endl;
+    Score<TValue, ScoreMatrix<AminoAcid, UserDefinedMatrix> > userScoringScheme;
+    showScoringMatrix(userScoringScheme);
+
+    // 5. Show our Dna5 scoring matrix.
     std::cout << "User DNA scoring scheme..." << std::endl;
-    Score<TValue, ScoreMatrix<Dna5, UserDefinedMatrix> > userScoringSchemeDna;
+    Score<TValue, ScoreMatrix<Dna5, AnotherUserDefinedMatrix> > userScoringSchemeDna;
     showScoringMatrix(userScoringSchemeDna);
 
     return 0;
diff --git a/demos/howto/scores/init_score.cpp.stdout b/demos/howto/scores/init_score.cpp.stdout
deleted file mode 100644
index 02f83a6..0000000
--- a/demos/howto/scores/init_score.cpp.stdout
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Coordinate Products
-	A	C	G	T	N
-A	0	0	0	0	0
-C	0	1	2	3	4
-G	0	2	4	6	8
-T	0	3	6	9	12
-N	0	4	8	12	16
-User defined matrix (also Dna5 scoring matrix)...
-	A	C	G	T	N
-A	1	0	0	0	0
-C	0	1	0	0	0
-G	0	0	1	0	0
-T	0	0	0	1	0
-N	0	0	0	0	0
-User DNA scoring scheme...
-	A	C	G	T	N
-A	1	0	0	0	0
-C	0	1	0	0	0
-G	0	0	1	0	0
-T	0	0	0	1	0
-N	0	0	0	0	0
diff --git a/demos/howto/scores/load_score.cpp b/demos/howto/scores/load_score.cpp
index 7893acf..5a7abf4 100644
--- a/demos/howto/scores/load_score.cpp
+++ b/demos/howto/scores/load_score.cpp
@@ -55,10 +55,17 @@ void showScoringMatrix(Score<TScoreValue, ScoreMatrix<TSequenceValue, TSpec> > c
 //![main]
 int main(int argc, char ** argv)
 {
+    if (argc != 2)
+    {
+        std::cout << "Invalid argument count!" << std::endl
+                  << "USAGE: load_score FILENAME" << std::endl;
+        return 1;
+    }
+
     typedef int TScoreValue;
 
-    Score<TScoreValue, ScoreMatrix<Dna5, Default> > scoreMatrix;
-    loadScoreMatrix(scoreMatrix, toCString(getAbsolutePath("/demos/howto/scores/dna_example.txt")));
+    Score<TScoreValue, ScoreMatrix<Dna, Default> > scoreMatrix;
+    loadScoreMatrix(scoreMatrix, argv[1]);
     showScoringMatrix(scoreMatrix);
 
     return 0;
diff --git a/demos/howto/scores/load_score.cpp.stdout b/demos/howto/scores/load_score.cpp.stdout
deleted file mode 100644
index e11573d..0000000
--- a/demos/howto/scores/load_score.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-
-    A   C   G   T
-A   1   -1  -1  -1
-C   -1  1   -1  -1
-G   -1  -1  1   -1
-T   -1  -1  -1  1
diff --git a/demos/dox/index/demo_index_index_textAt_indexText_saAt_indexRequire.cpp.stdout b/demos/index/demo_index_index_textAt_indexText_saAt_indexRequire.cpp.stdout
similarity index 100%
rename from demos/dox/index/demo_index_index_textAt_indexText_saAt_indexRequire.cpp.stdout
rename to demos/index/demo_index_index_textAt_indexText_saAt_indexRequire.cpp.stdout
diff --git a/demos/dox/index/find_repeats.cpp b/demos/index/find_repeats.cpp
similarity index 100%
rename from demos/dox/index/find_repeats.cpp
rename to demos/index/find_repeats.cpp
diff --git a/demos/dox/index/begin_atEnd_representative.cpp b/demos/index/index_begin_atEnd_representative.cpp
similarity index 100%
rename from demos/dox/index/begin_atEnd_representative.cpp
rename to demos/index/index_begin_atEnd_representative.cpp
diff --git a/demos/dox/index/begin_atEnd_representative.cpp.stdout b/demos/index/index_begin_atEnd_representative.cpp.stdout
similarity index 100%
rename from demos/dox/index/begin_atEnd_representative.cpp.stdout
rename to demos/index/index_begin_atEnd_representative.cpp.stdout
diff --git a/demos/dox/index/begin_atEnd_representative_bottomUp.cpp b/demos/index/index_begin_atEnd_representative_bottomUp.cpp
similarity index 100%
rename from demos/dox/index/begin_atEnd_representative_bottomUp.cpp
rename to demos/index/index_begin_atEnd_representative_bottomUp.cpp
diff --git a/demos/dox/index/begin_range_goDown_representative_repLength.cpp b/demos/index/index_begin_range_goDown_representative_repLength.cpp
similarity index 100%
rename from demos/dox/index/begin_range_goDown_representative_repLength.cpp
rename to demos/index/index_begin_range_goDown_representative_repLength.cpp
diff --git a/demos/dox/index/counting.cpp b/demos/index/index_counting.cpp
similarity index 100%
rename from demos/dox/index/counting.cpp
rename to demos/index/index_counting.cpp
diff --git a/demos/dox/index/counting.cpp.stdout b/demos/index/index_counting.cpp.stdout
similarity index 100%
rename from demos/dox/index/counting.cpp.stdout
rename to demos/index/index_counting.cpp.stdout
diff --git a/demos/dox/index/finder.cpp b/demos/index/index_finder.cpp
similarity index 100%
rename from demos/dox/index/finder.cpp
rename to demos/index/index_finder.cpp
diff --git a/demos/dox/index/finder.cpp.stdout b/demos/index/index_finder.cpp.stdout
similarity index 100%
rename from demos/dox/index/finder.cpp.stdout
rename to demos/index/index_finder.cpp.stdout
diff --git a/demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp b/demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp
similarity index 100%
rename from demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp
rename to demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp
diff --git a/demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp.stdout b/demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp.stdout
similarity index 100%
rename from demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp.stdout
rename to demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp.stdout
diff --git a/demos/dox/index/iterator.cpp b/demos/index/index_iterator.cpp
similarity index 100%
rename from demos/dox/index/iterator.cpp
rename to demos/index/index_iterator.cpp
diff --git a/demos/dox/index/iterator.cpp.stdout b/demos/index/index_iterator.cpp.stdout
similarity index 100%
rename from demos/dox/index/iterator.cpp.stdout
rename to demos/index/index_iterator.cpp.stdout
diff --git a/demos/dox/index/iterator_short.cpp b/demos/index/index_iterator_short.cpp
similarity index 100%
rename from demos/dox/index/iterator_short.cpp
rename to demos/index/index_iterator_short.cpp
diff --git a/demos/dox/index/iterator_short.cpp.stdout b/demos/index/index_iterator_short.cpp.stdout
similarity index 100%
rename from demos/dox/index/iterator_short.cpp.stdout
rename to demos/index/index_iterator_short.cpp.stdout
diff --git a/demos/index/index_length_countSequences.cpp b/demos/index/index_length_countSequences.cpp
new file mode 100644
index 0000000..9697527
--- /dev/null
+++ b/demos/index/index_length_countSequences.cpp
@@ -0,0 +1,27 @@
+#include <seqan/index.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef StringSet<String<char> >    TText;
+    typedef Index<TText>                TIndex;
+    typedef SAValue<TIndex>::Type       TSAValue;
+
+    TText text;
+    appendValue(text, "MISSISSIPPI");
+    appendValue(text, "MYMISSISAHAPPY");
+
+    TIndex index(text);
+    Finder<TIndex> finder(index);
+
+    std::cout << "The text has " << length(index) << " characters and consists of " << countSequences(index) <<
+    " sequences." << std::endl;
+
+    // The Finder object has a pointer to the first, current and last hit
+    // Each consecutive call sets the current pointer to the appropriate hit
+    while (find(finder, "MISS"))
+        std::cout << "Hit at position: " << position(finder) << std::endl;
+
+    return 0;
+}
diff --git a/demos/dox/index/length_countSequences.cpp.stdout b/demos/index/index_length_countSequences.cpp.stdout
similarity index 100%
rename from demos/dox/index/length_countSequences.cpp.stdout
rename to demos/index/index_length_countSequences.cpp.stdout
diff --git a/demos/dox/index/mummy.cpp b/demos/index/index_mummy.cpp
similarity index 100%
rename from demos/dox/index/mummy.cpp
rename to demos/index/index_mummy.cpp
diff --git a/demos/dox/index/mummy.cpp.stdout b/demos/index/index_mummy.cpp.stdout
similarity index 100%
rename from demos/dox/index/mummy.cpp.stdout
rename to demos/index/index_mummy.cpp.stdout
diff --git a/demos/dox/index/mums.cpp b/demos/index/index_mums.cpp
similarity index 100%
rename from demos/dox/index/mums.cpp
rename to demos/index/index_mums.cpp
diff --git a/demos/dox/index/node_predicate.cpp b/demos/index/index_node_predicate.cpp
similarity index 100%
rename from demos/dox/index/node_predicate.cpp
rename to demos/index/index_node_predicate.cpp
diff --git a/demos/index/index_open_save.cpp b/demos/index/index_open_save.cpp
new file mode 100644
index 0000000..7062173
--- /dev/null
+++ b/demos/index/index_open_save.cpp
@@ -0,0 +1,28 @@
+#include <seqan/index.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef StringSet<String<char> >    TText;
+    typedef Index<TText>                TIndex;
+    typedef SAValue<TIndex>::Type       TSAValue;
+
+    TText text;
+    appendValue(text, "MISSISSIPPI");
+    appendValue(text, "MYMISSISAHAPPY");
+
+    TIndex saveIndex(text);
+
+    // Because indices are build on demand we fore the index creation here.
+    indexCreate(saveIndex, FibreSA());
+
+    const char * tempFileName = SEQAN_TEMP_FILENAME();
+    std::cout << save(saveIndex, tempFileName) << std::endl;
+
+    // In a different program
+    TIndex openIndex;
+    std::cout << open(openIndex, tempFileName) << std::endl;
+
+    return 0;
+}
diff --git a/demos/dox/index/open_save.cpp.stdout b/demos/index/index_open_save.cpp.stdout
similarity index 100%
rename from demos/dox/index/open_save.cpp.stdout
rename to demos/index/index_open_save.cpp.stdout
diff --git a/demos/index/index_qgram.cpp b/demos/index/index_qgram.cpp
new file mode 100644
index 0000000..66e8e4a
--- /dev/null
+++ b/demos/index/index_qgram.cpp
@@ -0,0 +1,16 @@
+#include <iostream>
+#include <seqan/index.h>
+
+using namespace seqan;
+
+int main()
+{
+    Index<DnaString, IndexQGram<OneGappedShape> > index("CATGATTACATA");
+    stringToShape(indexShape(index), "1101");
+
+    hash(indexShape(index), "ATCA");
+    for (unsigned i = 0; i < length(getOccurrences(index, indexShape(index))); ++i)
+        std::cout << getOccurrences(index, indexShape(index))[i] << std::endl;
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/index_sufarray.cpp b/demos/index/index_sufarray.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_sufarray.cpp
rename to demos/index/index_sufarray.cpp
diff --git a/demos/dox/index/sufarray.cpp.stdout b/demos/index/index_sufarray.cpp.stdout
similarity index 100%
rename from demos/dox/index/sufarray.cpp.stdout
rename to demos/index/index_sufarray.cpp.stdout
diff --git a/demos/dox/index/supermaxrepeats.cpp b/demos/index/index_supermaxrepeats.cpp
similarity index 100%
rename from demos/dox/index/supermaxrepeats.cpp
rename to demos/index/index_supermaxrepeats.cpp
diff --git a/demos/dox/index/textAt_indexText_saAt_indexRequire.cpp b/demos/index/index_textAt_indexText_saAt_indexRequire.cpp
similarity index 100%
rename from demos/dox/index/textAt_indexText_saAt_indexRequire.cpp
rename to demos/index/index_textAt_indexText_saAt_indexRequire.cpp
diff --git a/demos/dox/index/textAt_indexText_saAt_indexRequire.cpp.stdout b/demos/index/index_textAt_indexText_saAt_indexRequire.cpp.stdout
similarity index 100%
rename from demos/dox/index/textAt_indexText_saAt_indexRequire.cpp.stdout
rename to demos/index/index_textAt_indexText_saAt_indexRequire.cpp.stdout
diff --git a/demos/dox/index/ref.fa b/demos/index/ref.fa
similarity index 100%
rename from demos/dox/index/ref.fa
rename to demos/index/ref.fa
diff --git a/demos/dox/index/UNUSED_shape.cpp b/demos/index/shape.cpp
similarity index 100%
rename from demos/dox/index/UNUSED_shape.cpp
rename to demos/index/shape.cpp
diff --git a/demos/dox/index/UNUSED_shape_hash.cpp b/demos/index/shape_hash.cpp
similarity index 100%
rename from demos/dox/index/UNUSED_shape_hash.cpp
rename to demos/index/shape_hash.cpp
diff --git a/demos/dox/index/shape_hash_init.cpp b/demos/index/shape_hash_init.cpp
similarity index 100%
rename from demos/dox/index/shape_hash_init.cpp
rename to demos/index/shape_hash_init.cpp
diff --git a/demos/dox/index/UNUSED_shape_hash_next.cpp b/demos/index/shape_hash_next.cpp
similarity index 100%
rename from demos/dox/index/UNUSED_shape_hash_next.cpp
rename to demos/index/shape_hash_next.cpp
diff --git a/demos/index_counting.cpp b/demos/index_counting.cpp
new file mode 100644
index 0000000..551d25f
--- /dev/null
+++ b/demos/index_counting.cpp
@@ -0,0 +1,36 @@
+///An example to demonstrate  the functions countChildren and countOccurrences
+#include <iostream>
+#include <seqan/index.h>
+
+using namespace seqan;
+
+int main()
+{
+///We begin with a @Class.String@ to store our sequence.
+    String<char> myString = "How many wood would a woodchuck chuck. A woodchuck chucks as much wood as a woodchuck could";
+
+///Then we create an @Class.Index@ of this @Class.StringSet at .
+    typedef Index<String<char> > TMyIndex;
+    TMyIndex myIndex(myString);
+
+///we will use a  @Spec.TopDown Iterator@ that supports parent links, ommits empty edges and traverses the index in preorder to print out the number of children at each node (not the number of leafs in the subtree).
+    Iterator<TMyIndex, TopDown<ParentLinks<PreorderEmptyEdges> > >::Type tdIterator(myIndex);
+    Size<TMyIndex>::Type count;
+
+    while (!atEnd(tdIterator))
+    {
+///We print out the representatives of all nodes that have more than 3 children and the number of occurrences. Also, we print a message if a node is a leaf.
+        count = countChildren(tdIterator);
+        if (count >= 3)
+        {
+            std::cout << "Representative " << representative(tdIterator) << " has " <<  count << " children  and ";
+            std::cout << countOccurrences(tdIterator) << " occurrences " << std::endl;
+        }
+        if (isLeaf(tdIterator))
+            std::cout << "The node is a leaf " << std::endl;
+
+        tdIterator++;
+    }
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/index_find.cpp b/demos/index_find.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_find.cpp
rename to demos/index_find.cpp
diff --git a/demos/unassigned_or_unused/index_find_stringset.cpp b/demos/index_find_stringset.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_find_stringset.cpp
rename to demos/index_find_stringset.cpp
diff --git a/demos/unassigned_or_unused/index_lcp.cpp b/demos/index_lcp.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_lcp.cpp
rename to demos/index_lcp.cpp
diff --git a/demos/dox/index/maxrepeats.cpp b/demos/index_maxrepeats.cpp
similarity index 100%
rename from demos/dox/index/maxrepeats.cpp
rename to demos/index_maxrepeats.cpp
diff --git a/demos/unassigned_or_unused/index_mums.cpp b/demos/index_mums.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_mums.cpp
rename to demos/index_mums.cpp
diff --git a/demos/unassigned_or_unused/index_node_predicate.cpp b/demos/index_node_predicate.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_node_predicate.cpp
rename to demos/index_node_predicate.cpp
diff --git a/demos/unassigned_or_unused/index_qgram_counts.cpp b/demos/index_qgram_counts.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_qgram_counts.cpp
rename to demos/index_qgram_counts.cpp
diff --git a/demos/dox/index/sufarray.cpp b/demos/index_sufarray.cpp
similarity index 100%
rename from demos/dox/index/sufarray.cpp
rename to demos/index_sufarray.cpp
diff --git a/demos/unassigned_or_unused/index_supermaxrepeats.cpp b/demos/index_supermaxrepeats.cpp
similarity index 100%
rename from demos/unassigned_or_unused/index_supermaxrepeats.cpp
rename to demos/index_supermaxrepeats.cpp
diff --git a/demos/input_output/example.fa b/demos/input_output/example.fa
new file mode 100644
index 0000000..a9a6741
--- /dev/null
+++ b/demos/input_output/example.fa
@@ -0,0 +1,4 @@
+>one
+CGATCGAT
+>two
+TTTTTTTTTTTTTCGATAAAAAAAAAAAAA
\ No newline at end of file
diff --git a/demos/input_output/seqfile_reader.cpp b/demos/input_output/seqfile_reader.cpp
new file mode 100644
index 0000000..d5f11d2
--- /dev/null
+++ b/demos/input_output/seqfile_reader.cpp
@@ -0,0 +1,27 @@
+#include <fstream>
+#include <iostream>
+
+#include <seqan/sequence.h>
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    CharString path = SEQAN_PATH_TO_ROOT();
+    append(path, "/demos/input_output/example.fa");
+
+    // Open file
+    SeqFileIn inFile(toCString(path));
+
+    // Read file record-wise.
+    CharString id;
+    Dna5String seq;
+    while (!atEnd(inFile))
+    {
+        readRecord(id, seq, inFile);
+        std::cout << id << "\t" << seq << "\n";
+    }
+
+    return 0;
+}
diff --git a/demos/input_output/seqfile_reader.cpp.stdout b/demos/input_output/seqfile_reader.cpp.stdout
new file mode 100644
index 0000000..2a704da
--- /dev/null
+++ b/demos/input_output/seqfile_reader.cpp.stdout
@@ -0,0 +1,2 @@
+one	CGATCGAT
+two	TTTTTTTTTTTTTCGATAAAAAAAAAAAAA
diff --git a/demos/tutorial/simple_rna_seq/interval_tree.cpp b/demos/interval_tree.cpp
similarity index 100%
rename from demos/tutorial/simple_rna_seq/interval_tree.cpp
rename to demos/interval_tree.cpp
diff --git a/demos/unassigned_or_unused/iterator.cpp b/demos/iterator.cpp
similarity index 100%
rename from demos/unassigned_or_unused/iterator.cpp
rename to demos/iterator.cpp
diff --git a/demos/unassigned_or_unused/knime_node.cpp b/demos/knime_node.cpp
similarity index 100%
rename from demos/unassigned_or_unused/knime_node.cpp
rename to demos/knime_node.cpp
diff --git a/demos/unassigned_or_unused/lagan1.fasta b/demos/lagan1.fasta
similarity index 100%
rename from demos/unassigned_or_unused/lagan1.fasta
rename to demos/lagan1.fasta
diff --git a/demos/unassigned_or_unused/lagan2.fasta b/demos/lagan2.fasta
similarity index 100%
rename from demos/unassigned_or_unused/lagan2.fasta
rename to demos/lagan2.fasta
diff --git a/demos/dox/misc/enumerate_strings.cpp b/demos/misc/enumerate_strings.cpp
similarity index 100%
rename from demos/dox/misc/enumerate_strings.cpp
rename to demos/misc/enumerate_strings.cpp
diff --git a/demos/dox/misc/enumerate_strings.cpp.stdout b/demos/misc/enumerate_strings.cpp.stdout
similarity index 100%
rename from demos/dox/misc/enumerate_strings.cpp.stdout
rename to demos/misc/enumerate_strings.cpp.stdout
diff --git a/demos/dox/misc/get_terminal_size.cpp b/demos/misc/get_terminal_size.cpp
similarity index 100%
rename from demos/dox/misc/get_terminal_size.cpp
rename to demos/misc/get_terminal_size.cpp
diff --git a/demos/dox/misc/interval_tree_example.cpp b/demos/misc/interval_tree_example.cpp
similarity index 100%
rename from demos/dox/misc/interval_tree_example.cpp
rename to demos/misc/interval_tree_example.cpp
diff --git a/demos/dox/misc/name_store_cache.cpp b/demos/misc/name_store_cache.cpp
similarity index 100%
rename from demos/dox/misc/name_store_cache.cpp
rename to demos/misc/name_store_cache.cpp
diff --git a/demos/dox/misc/name_store_cache.cpp.stdout b/demos/misc/name_store_cache.cpp.stdout
similarity index 100%
rename from demos/dox/misc/name_store_cache.cpp.stdout
rename to demos/misc/name_store_cache.cpp.stdout
diff --git a/demos/dox/modifier/modified_string.cpp b/demos/modifier/modified_string.cpp
similarity index 100%
rename from demos/dox/modifier/modified_string.cpp
rename to demos/modifier/modified_string.cpp
diff --git a/demos/dox/modifier/modified_string.cpp.stdout b/demos/modifier/modified_string.cpp.stdout
similarity index 100%
rename from demos/dox/modifier/modified_string.cpp.stdout
rename to demos/modifier/modified_string.cpp.stdout
diff --git a/demos/dox/modifier/modified_string_mod_view.cpp b/demos/modifier/modified_string_mod_view.cpp
similarity index 100%
rename from demos/dox/modifier/modified_string_mod_view.cpp
rename to demos/modifier/modified_string_mod_view.cpp
diff --git a/demos/dox/modifier/modified_string_mod_view.cpp.stdout b/demos/modifier/modified_string_mod_view.cpp.stdout
similarity index 100%
rename from demos/dox/modifier/modified_string_mod_view.cpp.stdout
rename to demos/modifier/modified_string_mod_view.cpp.stdout
diff --git a/demos/dox/modifier/modified_string_nested.cpp b/demos/modifier/modified_string_nested.cpp
similarity index 100%
rename from demos/dox/modifier/modified_string_nested.cpp
rename to demos/modifier/modified_string_nested.cpp
diff --git a/demos/dox/modifier/modified_string_nested.cpp.stdout b/demos/modifier/modified_string_nested.cpp.stdout
similarity index 100%
rename from demos/dox/modifier/modified_string_nested.cpp.stdout
rename to demos/modifier/modified_string_nested.cpp.stdout
diff --git a/demos/unassigned_or_unused/modifier_modreverse.cpp b/demos/modifier_modreverse.cpp
similarity index 100%
rename from demos/unassigned_or_unused/modifier_modreverse.cpp
rename to demos/modifier_modreverse.cpp
diff --git a/demos/unassigned_or_unused/modifier_modview.cpp b/demos/modifier_modview.cpp
similarity index 100%
rename from demos/unassigned_or_unused/modifier_modview.cpp
rename to demos/modifier_modview.cpp
diff --git a/demos/unassigned_or_unused/modifier_nested.cpp b/demos/modifier_nested.cpp
similarity index 100%
rename from demos/unassigned_or_unused/modifier_nested.cpp
rename to demos/modifier_nested.cpp
diff --git a/demos/parallel/queue_example.cpp b/demos/parallel/queue_example.cpp
new file mode 100644
index 0000000..dc2b221
--- /dev/null
+++ b/demos/parallel/queue_example.cpp
@@ -0,0 +1,30 @@
+#include <iostream>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+int main()
+{
+    // instantiate an empty Queue
+    ConcurrentQueue<unsigned> queue;
+
+    // start two threads
+    SEQAN_OMP_PRAGMA(sections num_threads(2))
+    {
+        SEQAN_OMP_PRAGMA(section)
+        {
+            for (int i = 9999; i != 0; --i)
+                appendValue(queue, i);
+        }
+
+        SEQAN_OMP_PRAGMA(section)
+        {
+            bool equal = true;
+            for (int i = 9999; i != 0; --i)
+                equal &= (i == popFront(queue));
+            std::cout << (equal ? "SUCCESS" : "FAILURE") << std::endl;
+        }
+    }
+
+    return 0;
+}
diff --git a/demos/dox/parallel/queue_example.cpp.stdout b/demos/parallel/queue_example.cpp.stdout
similarity index 100%
rename from demos/dox/parallel/queue_example.cpp.stdout
rename to demos/parallel/queue_example.cpp.stdout
diff --git a/demos/dox/parallel/splitter_example.cpp b/demos/parallel/splitter_example.cpp
similarity index 100%
rename from demos/dox/parallel/splitter_example.cpp
rename to demos/parallel/splitter_example.cpp
diff --git a/demos/dox/parallel/splitter_example.cpp.stdout b/demos/parallel/splitter_example.cpp.stdout
similarity index 100%
rename from demos/dox/parallel/splitter_example.cpp.stdout
rename to demos/parallel/splitter_example.cpp.stdout
diff --git a/demos/unassigned_or_unused/parse_lm_stellar.cpp b/demos/parse_lm_stellar.cpp
similarity index 100%
rename from demos/unassigned_or_unused/parse_lm_stellar.cpp
rename to demos/parse_lm_stellar.cpp
diff --git a/demos/dox/pipe/pool_sorter.cpp b/demos/pipe/pool_sorter.cpp
similarity index 100%
rename from demos/dox/pipe/pool_sorter.cpp
rename to demos/pipe/pool_sorter.cpp
diff --git a/demos/random/random.cpp b/demos/random/random.cpp
new file mode 100644
index 0000000..44f4f10
--- /dev/null
+++ b/demos/random/random.cpp
@@ -0,0 +1,42 @@
+#include <iostream>
+
+#include <seqan/basic.h>
+#include <seqan/stream.h>
+#include <seqan/random.h>
+
+using namespace seqan;
+
+const int SEED = 42;
+
+int main()
+{
+    Rng<MersenneTwister> rng(SEED);
+    std::cout << "pickRandomNumber(rng) == " << pickRandomNumber(rng) << std::endl;
+
+    typedef Value<Rng<MersenneTwister> >::Type TMTValue;
+    TMTValue value = pickRandomNumber(rng);
+
+    Pdf<Uniform<double> > uniformDouble(0, 1);
+    std::cout << "pickRandomNumber(rng, uniformDouble) == " << pickRandomNumber(rng, uniformDouble) << std::endl;
+
+    Pdf<Uniform<int> > uniformInt(0, 42);
+    std::cout << "pickRandomNumber(rng, uniformInt) == " << pickRandomNumber(rng, uniformInt) << std::endl;
+
+    Pdf<Normal> normal(0, 1);
+    std::cout << "pickRandomNumber(rng, normal) == " << pickRandomNumber(rng, normal) << std::endl;
+
+    Pdf<LogNormal> logNormal(0, 1);
+    std::cout << "pickRandomNumber(rng, logNormal) == " << pickRandomNumber(rng, logNormal) << std::endl;
+
+    Pdf<LogNormal> logNormal2(0, 1, MuSigma());
+    std::cout << "pickRandomNumber(rng, logNormal2) == " << pickRandomNumber(rng, logNormal2) << std::endl;
+
+    Pdf<LogNormal> logNormal3(0.1, 1, MeanStdDev());
+    std::cout << "pickRandomNumber(rng, logNormal3) == " << pickRandomNumber(rng, logNormal3) << std::endl;
+
+    CharString container = "Hello World!";
+    shuffle(container, rng);
+    std::cout << "shuffle(\"Hello World!\") == " << container << std::endl;
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/rooted_iterator.cpp b/demos/rooted_iterator.cpp
similarity index 100%
rename from demos/unassigned_or_unused/rooted_iterator.cpp
rename to demos/rooted_iterator.cpp
diff --git a/demos/sam2svg.cpp b/demos/sam2svg.cpp
new file mode 100644
index 0000000..f45a06b
--- /dev/null
+++ b/demos/sam2svg.cpp
@@ -0,0 +1,222 @@
+#include <fstream>
+#include <iostream>
+#include <string>
+
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/svg.h>
+
+using namespace seqan;
+
+// Struct for storing command line options.
+struct Options
+{
+    int contigID;
+    int beginPos;
+    int endPos;
+    int beginLine;
+    int endLine;
+    bool writeAscii;
+    bool gapSpace;
+
+    std::string fileAliIn;
+    std::string fileOut;
+    std::string fileRefIn;
+
+    Options() :
+        contigID(-1), beginPos(-1), endPos(-1), beginLine(-1), endLine(-1), writeAscii(false), gapSpace(false)
+    {}
+};
+
+// Parse command line, write results to options, return PARSE_OK if everything went well.
+ArgumentParser::ParseResult parseCommandLine(Options & options, int argc, char const ** argv)
+{
+    ArgumentParser parser;
+    setShortDescription(parser, "draw SAM/BAM file as SVG vector graphics");
+    addUsageLine(parser, "[OPTION] -a <SAM/BAM file> [-r <GENOME file>] -o <SVG/ASCII file>");
+
+    addOption(parser, ArgParseOption("a", "alignment", "SAM/BAM file to load.", ArgParseOption::INPUT_FILE));
+    setRequired(parser, "alignment", true);
+    setValidValues(parser, "alignment", BamFileIn::getFileExtensions());
+
+    addOption(parser, ArgParseOption("r", "reference", "FASTA file to use as the reference.", ArgParseOption::INPUT_FILE));
+    setValidValues(parser, "reference", SeqFileIn::getFileExtensions());
+
+    addOption(parser, ArgParseOption("o", "out", "SVG/ASCII file to write.", ArgParseOption::OUTPUT_FILE));
+    setRequired(parser, "out", true);
+    setValidValues(parser, "out", ".txt .svg");
+
+    addOption(parser, ArgParseOption("", "contig", "Display contig with this numeric ID only (zero-based), default is to show all contigs.", ArgParseOption::INTEGER));
+    setDefaultValue(parser, "contig", -1);
+
+    addOption(parser, ArgParseOption("", "begin-pos", "Begin position of the region to show, default is to show all.", ArgParseOption::INTEGER));
+    setDefaultValue(parser, "begin-pos", -1);
+
+    addOption(parser, ArgParseOption("", "end-pos", "End position of the region to show, default is to show all.", ArgParseOption::INTEGER));
+    setDefaultValue(parser, "end-pos", -1);
+
+    addOption(parser, ArgParseOption("", "begin-line", "First line to show, zero-based", ArgParseOption::INTEGER));
+    setDefaultValue(parser, "begin-line", -1);
+
+    addOption(parser, ArgParseOption("", "end-line", "Last line to show, zero-based, default is to show all", ArgParseOption::INTEGER));
+    setDefaultValue(parser, "end-line", -1);
+
+    addOption(parser, ArgParseOption("", "gap-space", "begin and end position are given in gap space instead of in sequence space"));
+
+    // Parse command line.
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    // Only extract  options if the program will continue after parseCommandLine()
+    if (res != ArgumentParser::PARSE_OK)
+        return res;
+
+    getOptionValue(options.contigID, parser, "contig");
+    getOptionValue(options.beginPos, parser, "begin-pos");
+    getOptionValue(options.endPos, parser, "end-pos");
+    getOptionValue(options.beginLine, parser, "begin-line");
+    getOptionValue(options.endLine, parser, "end-line");
+
+    getOptionValue(options.fileAliIn, parser, "alignment");
+    getOptionValue(options.fileRefIn, parser, "reference");
+    getOptionValue(options.fileOut, parser, "out");
+
+    options.writeAscii = endsWith(options.fileOut, ".txt");
+    options.gapSpace = isSet(parser, "gap-space");
+
+    // Begin position cannot be greater than end position.
+    if (options.beginPos != -1 && options.endPos != -1 && options.beginPos > options.endPos)
+    {
+        std::cerr << "ERROR: begin position cannot be greater than end position!\n";
+        return ArgumentParser::PARSE_ERROR;
+    }
+
+    // First line number cannot be greater than last line number.
+    if (options.beginLine != -1 && options.endLine != -1 && options.beginLine < options.endLine)
+    {
+        std::cerr << "ERROR: first line cannot be greater than end position!\n";
+        return ArgumentParser::PARSE_ERROR;
+    }
+
+    return ArgumentParser::PARSE_OK;
+}
+
+int main(int argc, char const ** argv)
+{
+    // -----------------------------------------------------------------------
+    // Parse Options
+    // -----------------------------------------------------------------------
+    Options options;
+    ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+    // If parsing was not successful then exit with code 1 if there were errors.
+    // Otherwise, exit with code 0 (e.g. help was printed).
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    // -----------------------------------------------------------------------
+    // Load Files
+    // -----------------------------------------------------------------------
+
+    typedef FragmentStore<> TFragStore;
+
+    typedef TFragStore::TContigStore TContigStore;
+    typedef Value<TContigStore>::Type TContig;
+    typedef TFragStore::TContigPos TContigPos;
+
+    TFragStore store;
+    BamFileIn samFile(options.fileAliIn.c_str());
+    std::ofstream ascii;
+    SVGFile svg;
+
+    // Optionally load genome file
+    if (!options.fileRefIn.empty())
+    {
+        if (!loadContigs(store, options.fileRefIn.c_str()))
+        {
+            std::cerr << "Failed to load genome.\n";
+            return 1;
+        }
+    }
+
+    // Load Sam file
+    readRecords(store, samFile);
+
+    // Choose contigs
+    std::vector<int> contigs;
+    if (options.contigID == -1)
+        for (unsigned i = 0; i < length(store.contigStore); ++i)
+            contigs.push_back(i);
+    else
+        contigs.push_back(options.contigID);
+
+    // Optionally load genome and open SVG file for writing
+    if (options.writeAscii)
+    {
+        ascii.open(options.fileOut.c_str(), std::ios_base::out | std::ios_base::trunc);
+        if (!ascii.is_open())
+        {
+            std::cerr << "ERROR: could not open output file for writing.\n";
+            return 1;
+        }
+    }
+    else if (!open(svg, options.fileOut.c_str()))
+    {
+        std::cerr << "ERROR: could not open output file for writing.\n";
+        return 1;
+    }
+
+    // -----------------------------------------------------------------------
+    // Write Alignment
+    // -----------------------------------------------------------------------
+
+    AlignedReadLayout layout;
+    std::cerr << "Layouting reads ... ";
+    layoutAlignment(layout, store);
+    std::cerr << "done\n";
+
+    std::cerr << "Writing " << contigs.size() << " contigs...\n";
+
+    int beginLine = (options.beginLine == -1) ? 0 : options.beginLine;
+    int endLine = (options.endLine == -1) ? MaxValue<int>::VALUE : options.endLine;
+
+    for (unsigned i = 0; i < contigs.size(); ++i)
+        if (contigs[i] < length(store.contigStore))
+        {
+            std::cerr << "Writing contig " << store.contigNameStore[contigs[i]] << " ... ";
+
+            __int64 l = (options.beginPos == -1) ? 0 : options.beginPos;
+            __int64 r = (options.endPos == -1) ? MaxValue<TContigPos>::VALUE : options.endPos;
+
+            if (!options.gapSpace)
+            {
+                typedef Gaps<Nothing, AnchorGaps<TContig::TGapAnchors> >   TContigGaps;
+                TContigGaps contigGaps(store.contigStore[i].gaps);
+                l = positionSeqToGap(contigGaps, l);
+                if (r != MaxValue<TContigPos>::VALUE)
+                    r = positionSeqToGap(contigGaps, r);
+            }
+
+            if (r == MaxValue<TContigPos>::VALUE)
+            {
+                r = 0;
+                for (unsigned j = 0; j < length(layout.contigRows[i]); ++j)
+                {
+                    unsigned id = back(layout.contigRows[i][j]);
+                    if (r < store.alignedReadStore[id].beginPos)
+                        r = store.alignedReadStore[id].beginPos;
+                    if (r < store.alignedReadStore[id].endPos)
+                        r = store.alignedReadStore[id].endPos;
+                }
+            }
+
+            std::cerr << l << '\t' << r << '\t' << beginLine << '\t' << endLine << "\n";
+            if (options.writeAscii)
+                printAlignment(ascii, layout, store, contigs[i], l, r, beginLine, endLine);
+            else
+                printAlignment(svg, layout, store, contigs[i], l, r, beginLine, endLine);
+
+            std::cout << "done\n";
+        }
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/sample_seqs.cpp b/demos/sample_seqs.cpp
similarity index 100%
rename from demos/unassigned_or_unused/sample_seqs.cpp
rename to demos/sample_seqs.cpp
diff --git a/demos/dox/score/score.cpp b/demos/score/score.cpp
similarity index 100%
rename from demos/dox/score/score.cpp
rename to demos/score/score.cpp
diff --git a/demos/dox/score/score.cpp.stdout b/demos/score/score.cpp.stdout
similarity index 100%
rename from demos/dox/score/score.cpp.stdout
rename to demos/score/score.cpp.stdout
diff --git a/demos/unassigned_or_unused/seeds.cpp b/demos/seeds.cpp
similarity index 100%
rename from demos/unassigned_or_unused/seeds.cpp
rename to demos/seeds.cpp
diff --git a/demos/dox/seeds/seeds_add_seed.cpp b/demos/seeds/seeds_add_seed.cpp
similarity index 100%
rename from demos/dox/seeds/seeds_add_seed.cpp
rename to demos/seeds/seeds_add_seed.cpp
diff --git a/demos/dox/seeds/seeds_chaining.cpp b/demos/seeds/seeds_chaining.cpp
similarity index 100%
rename from demos/dox/seeds/seeds_chaining.cpp
rename to demos/seeds/seeds_chaining.cpp
diff --git a/demos/dox/seeds/seeds_chaining.cpp.stdout b/demos/seeds/seeds_chaining.cpp.stdout
similarity index 100%
rename from demos/dox/seeds/seeds_chaining.cpp.stdout
rename to demos/seeds/seeds_chaining.cpp.stdout
diff --git a/demos/dox/seeds/seeds_extension.cpp b/demos/seeds/seeds_extension.cpp
similarity index 100%
rename from demos/dox/seeds/seeds_extension.cpp
rename to demos/seeds/seeds_extension.cpp
diff --git a/demos/dox/seeds/seeds_extension.cpp.stdout b/demos/seeds/seeds_extension.cpp.stdout
similarity index 100%
rename from demos/dox/seeds/seeds_extension.cpp.stdout
rename to demos/seeds/seeds_extension.cpp.stdout
diff --git a/demos/unassigned_or_unused/segmentalignment.cpp b/demos/segmentalignment.cpp
similarity index 100%
rename from demos/unassigned_or_unused/segmentalignment.cpp
rename to demos/segmentalignment.cpp
diff --git a/demos/dox/seq_io/example.fa b/demos/seq_io/example.fa
similarity index 100%
rename from demos/dox/seq_io/example.fa
rename to demos/seq_io/example.fa
diff --git a/demos/dox/seq_io/example.fa.fai b/demos/seq_io/example.fa.fai
similarity index 100%
rename from demos/dox/seq_io/example.fa.fai
rename to demos/seq_io/example.fa.fai
diff --git a/demos/seq_io/fai_index_example.cpp b/demos/seq_io/fai_index_example.cpp
new file mode 100644
index 0000000..edde0c8
--- /dev/null
+++ b/demos/seq_io/fai_index_example.cpp
@@ -0,0 +1,49 @@
+#include <seqan/basic.h>
+#include <seqan/seq_io.h>
+#include <seqan/sequence.h>
+
+using namespace seqan;
+
+int main()
+{
+    CharString path = SEQAN_PATH_TO_ROOT();
+    append(path, "/demos/seq_io/example.fa");
+
+    FaiIndex faiIndex;
+
+    // Try to read the FAI index.
+    if (!open(faiIndex, toCString(path)))
+    {
+        std::cerr << "Could not read the FAI index.  Not fatal, we can just build it.\n";
+        return 1;
+    }
+
+    // Try to build the FAI index (in memory) if reading was unsuccessful.  If
+    // building into memory succeeded, we try to write it out.
+    if (!build(faiIndex, toCString(path)))
+    {
+        std::cerr << "FATAL: Could not build FAI index.\n";
+        return 1;
+    }
+
+    if (!save(faiIndex))
+    {
+        std::cerr << "FATAL: Could not write out FAI index after building.\n";
+        return 1;
+    }
+
+    // Now, read the first 1000 characters of chr1.
+    unsigned idx = 0;
+    if (!getIdByName(idx, faiIndex, "chr"))
+    {
+        std::cerr << "FATAL: chr1 not found in FAI index.\n";
+        return 1;
+    }
+    CharString seq;
+    readRegion(seq, faiIndex, idx, 0, 100);
+
+    // Now print the first 100 characters we just read.
+    std::cout << "chr:1-100 = " << seq << "\n";
+
+    return 0;
+}
diff --git a/demos/dox/seq_io/fai_index_example.cpp.stdout b/demos/seq_io/fai_index_example.cpp.stdout
similarity index 100%
rename from demos/dox/seq_io/fai_index_example.cpp.stdout
rename to demos/seq_io/fai_index_example.cpp.stdout
diff --git a/demos/seq_io/sequence_stream_read.cpp b/demos/seq_io/sequence_stream_read.cpp
new file mode 100644
index 0000000..3a0654d
--- /dev/null
+++ b/demos/seq_io/sequence_stream_read.cpp
@@ -0,0 +1,68 @@
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main(int argc, char ** argv)
+{
+    CharString path;
+
+    if (argc > 1)
+    {
+        path = argv[1];
+    }
+    else
+    {
+        path = SEQAN_PATH_TO_ROOT();
+        append(path, "/tests/seq_io/test_dna.fq");
+    }
+
+    SeqFileIn file;
+    if (!open(file, toCString(path)))
+    {
+        std::cerr << "Can't open the file." << std::endl;
+        return 1;
+    }
+
+    CharString id;
+    DnaString seq;
+    CharString qual;
+
+    Size<CharString>::Type records = 0;
+    Size<CharString>::Type bases = 0;
+
+    double start, finish;
+
+    start = sysTime();
+
+    while (!atEnd(file))
+    {
+        try
+        {
+            readRecord(id, seq, qual, file);
+        }
+        catch (UnexpectedEnd &)
+        {
+            break;
+        }
+        catch (ParseError & e)
+        {
+            std::cerr << "Record #" << records + 1 << ": " << e.what() << std::endl;
+            continue;
+        }
+
+        records += 1;
+        bases += length(seq);
+    }
+
+    finish = sysTime();
+
+    close(file);
+
+    std::cout << finish - start << " sec" << std::endl;
+    std::cout << records << " records" << std::endl;
+    std::cout << bases << " bases" << std::endl;
+
+    return 0;
+}
diff --git a/demos/seq_io/sequence_stream_read.cpp.stdout b/demos/seq_io/sequence_stream_read.cpp.stdout
new file mode 100644
index 0000000..008f76e
--- /dev/null
+++ b/demos/seq_io/sequence_stream_read.cpp.stdout
@@ -0,0 +1 @@
+chr	CCTATCTAATAATATACCTTATACTGGACTAGTGCCAATATTAAAATGAAGTGGGCGTAGTGTGTAATTTGATTGGGTGGAGGTGTGGCTTTGGCGTGCTTGTAAGTTTGGGCGGATGAGGAAGTGGGGCGCGGCGTGGGAGCCGGGCGCGCCGGATGTGACGTTTTAGACGCCATTTTACACGGAAATGATGTTTTTTGGGCGTTGTTTGTGCAAATTTTGTGTTTTAGGCGCGAAAACTGAAATGCGGAAGTGAAAATTGATGACGGCAATTTTATTATAGGCGCGGAATATTTACCGAGGGCAGAGTGAACTCTGAGCCTCTACGTGTGGGTTTCGATACGTGAGCGACGGGGAAACTCCACGTTGGCGCTCAAAGGGCGCGTTTATTGTTCTGTCAGCTGATCGTTTGGGTATTTAATGCCGCCGTGTTCGTCAAGAGGCCACTCTTGAGTGCCAGCGAGAAGAGTTTTCTCTGCCAGCTCATT [...]
diff --git a/demos/seq_io/sequence_stream_write.cpp b/demos/seq_io/sequence_stream_write.cpp
new file mode 100644
index 0000000..cad1300
--- /dev/null
+++ b/demos/seq_io/sequence_stream_write.cpp
@@ -0,0 +1,17 @@
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main(int argc, char ** argv)
+{
+    CharString path = SEQAN_TEMP_FILENAME();
+    append(path, ".fa");
+
+    SeqFileOut file(toCString(path));
+    writeRecord(file, "chr1", "ACGT");
+    close(file);
+
+    return 0;
+}
diff --git a/demos/dox/sequence/UNUSED_infix.cpp b/demos/sequence/infix.cpp
similarity index 100%
rename from demos/dox/sequence/UNUSED_infix.cpp
rename to demos/sequence/infix.cpp
diff --git a/demos/dox/sequence/UNUSED_prefix.cpp b/demos/sequence/prefix.cpp
similarity index 100%
rename from demos/dox/sequence/UNUSED_prefix.cpp
rename to demos/sequence/prefix.cpp
diff --git a/demos/sequence/segment.cpp b/demos/sequence/segment.cpp
new file mode 100644
index 0000000..34da250
--- /dev/null
+++ b/demos/sequence/segment.cpp
@@ -0,0 +1,98 @@
+// ==========================================================================
+//                 SeqAn - The Library for Sequence Analysis
+// ==========================================================================
+// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//     * Redistributions of source code must retain the above copyright
+//       notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above copyright
+//       notice, this list of conditions and the following disclaimer in the
+//       documentation and/or other materials provided with the distribution.
+//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
+//       its contributors may be used to endorse or promote products derived
+//       from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+// DAMAGE.
+//
+// ==========================================================================
+// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
+// ==========================================================================
+// Example program used in the documentation of the Segment class.
+// ==========================================================================
+
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>  // for I/O
+
+using namespace seqan;
+
+int main()
+{
+//![basic operations]
+    typedef Prefix<String<char> >::Type TPrefix;
+    typedef Infix<String<char> >::Type  TInfix;
+    typedef Suffix<String<char> >::Type TSuffix;
+
+    String<char> text = "This is a text!";
+
+    TPrefix preA(text, 4);
+    TInfix infA(text, 10, 14);
+    TSuffix sufA(text, 10);
+    std::cout << preA << " " << infA << " " << sufA << "\n";  // => "This text text!"
+
+    String<char> str;
+    append(str, preA);
+    append(str, infA);
+    append(str, sufA);
+    std::cout << str << "\n";  // => "This text text!"
+
+    std::cout << preA[0] << " " << infA[0] << " " << sufA[0] << "\n";  // => "T t t"
+
+    preA[0] = 'X';
+    infA[0] = 'X';
+    sufA[1] = 'X';
+    std::cout << text << "\n";  // => "Xhis is a XXxt!"
+
+    typedef Iterator<TInfix, Standard>::Type TIter;
+    TIter it = begin(preA, Standard());
+    it += 2;
+    *it = 'Y';
+    std::cout << text << "\n";  // => "XhYs is a XXxt!"
+//![basic operations]
+
+//![metafunction examples]
+    typedef Infix<TInfix>::Type  TInfix2;  // == TInfix
+    typedef Prefix<TInfix>::Type TInfix3;  // == TInfix
+    typedef Suffix<TInfix>::Type TInfix4;  // == TInfix
+
+    typedef Infix<TPrefix>::Type  TInfix5;   // == TInfix
+    typedef Prefix<TPrefix>::Type TPrefix2;  // == TPrefix
+    typedef Suffix<TPrefix>::Type TInfix6;   // == TInfix
+
+    typedef Infix<TSuffix>::Type  TInfix7;   // == TInfix
+    typedef Prefix<TSuffix>::Type TInfix8;   // == TPrefix
+    typedef Suffix<TSuffix>::Type TSuffix2;  // == TSuffix
+//![metafunction examples]
+
+//![explicit segment]
+    typedef Segment<TSuffix, PrefixSegment> TExplicitPrefix;
+    TExplicitPrefix preB(sufA, 3);
+    std::cout << preB << "\n";  // => "XXx"
+//![explicit segment]
+
+    return 0;
+}
diff --git a/demos/dox/sequence/string.cpp b/demos/sequence/string.cpp
similarity index 100%
rename from demos/dox/sequence/string.cpp
rename to demos/sequence/string.cpp
diff --git a/demos/dox/sequence/string2.cpp b/demos/sequence/string2.cpp
similarity index 100%
rename from demos/dox/sequence/string2.cpp
rename to demos/sequence/string2.cpp
diff --git a/demos/dox/sequence/string2.cpp.stdout b/demos/sequence/string2.cpp.stdout
similarity index 100%
rename from demos/dox/sequence/string2.cpp.stdout
rename to demos/sequence/string2.cpp.stdout
diff --git a/demos/dox/sequence/stringset.cpp b/demos/sequence/stringset.cpp
similarity index 100%
rename from demos/dox/sequence/stringset.cpp
rename to demos/sequence/stringset.cpp
diff --git a/demos/dox/sequence/stringset.cpp.stdout b/demos/sequence/stringset.cpp.stdout
similarity index 100%
rename from demos/dox/sequence/stringset.cpp.stdout
rename to demos/sequence/stringset.cpp.stdout
diff --git a/demos/dox/sequence/UNUSED_suffix.cpp b/demos/sequence/suffix.cpp
similarity index 100%
rename from demos/dox/sequence/UNUSED_suffix.cpp
rename to demos/sequence/suffix.cpp
diff --git a/demos/unassigned_or_unused/sequence_1.fa b/demos/sequence_1.fa
similarity index 100%
rename from demos/unassigned_or_unused/sequence_1.fa
rename to demos/sequence_1.fa
diff --git a/demos/unassigned_or_unused/sequence_2.fa b/demos/sequence_2.fa
similarity index 100%
rename from demos/unassigned_or_unused/sequence_2.fa
rename to demos/sequence_2.fa
diff --git a/demos/unassigned_or_unused/sequence_length.cpp b/demos/sequence_length.cpp
similarity index 100%
rename from demos/unassigned_or_unused/sequence_length.cpp
rename to demos/sequence_length.cpp
diff --git a/demos/unassigned_or_unused/soft_to_hard_masking.cpp b/demos/soft_to_hard_masking.cpp
similarity index 100%
rename from demos/unassigned_or_unused/soft_to_hard_masking.cpp
rename to demos/soft_to_hard_masking.cpp
diff --git a/demos/dox/statistics/background.fa b/demos/statistics/background.fa
similarity index 100%
rename from demos/dox/statistics/background.fa
rename to demos/statistics/background.fa
diff --git a/demos/dox/statistics/build_markov_model.cpp b/demos/statistics/build_markov_model.cpp
similarity index 100%
rename from demos/dox/statistics/build_markov_model.cpp
rename to demos/statistics/build_markov_model.cpp
diff --git a/demos/dox/statistics/load_markov_model.cpp b/demos/statistics/load_markov_model.cpp
similarity index 100%
rename from demos/dox/statistics/load_markov_model.cpp
rename to demos/statistics/load_markov_model.cpp
diff --git a/demos/dox/statistics/zscore_example_mm.3 b/demos/statistics/zscore_example_mm.3
similarity index 100%
rename from demos/dox/statistics/zscore_example_mm.3
rename to demos/statistics/zscore_example_mm.3
diff --git a/demos/dox/statistics/zscore_human_mm.3 b/demos/statistics/zscore_human_mm.3
similarity index 100%
rename from demos/dox/statistics/zscore_human_mm.3
rename to demos/statistics/zscore_human_mm.3
diff --git a/demos/dox/store/store_example.cpp b/demos/store/store_example.cpp
similarity index 100%
rename from demos/dox/store/store_example.cpp
rename to demos/store/store_example.cpp
diff --git a/demos/stream/lexical_cast.cpp b/demos/stream/lexical_cast.cpp
new file mode 100644
index 0000000..5cecce4
--- /dev/null
+++ b/demos/stream/lexical_cast.cpp
@@ -0,0 +1,55 @@
+#include <iostream>
+#include <string>
+
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+
+int main()
+{
+    bool success;
+
+    // interpret string literal as int
+    int x = 0;
+    // successful cast
+    std::cout << "success=" << lexicalCast(x, "123") << ", x=" << x << "\n";
+    // unsuccessful cast
+    std::cout << "success=" << lexicalCast(x, "42a") << ", x=" << x << "\n";
+
+    // interpret std::string as int
+    std::cout << "success=" << lexicalCast(x, std::string("234")) << ", x=" << x << "\n";
+    // interpret CharString as int
+    std::cout << "success=" << lexicalCast(x, CharString("345")) << ", x=" << x << "\n";
+    // interpret infix as int
+    CharString str = "123";
+    std::cout << "success=" << lexicalCast(x, infix(str, 1, 2)) << ", x=" << x << "\n";
+
+    // interpret literal as float and double
+    float f = -1;
+    double d = -1;
+    std::cout << "success=" << lexicalCast(f, "3.1") << ", f=" << f << "\n"
+              << "success=" << lexicalCast(d, "4.2") << ", d=" << d << "\n";
+
+    // demonstrate throwing of exceptions with lexicalCast()
+    try
+    {
+        x = lexicalCast<int>("a");
+    }
+    catch (BadLexicalCast const & badCast)
+    {
+        std::cout << "error: " << badCast.what() << "\n";
+    }
+
+    // demonstrate throwing of exceptions with lexicalCastWithException
+    try
+    {
+        lexicalCastWithException(x, "b");
+    }
+    catch (BadLexicalCast const & badCast)
+    {
+        std::cout << "error: " << badCast.what() << "\n";
+    }
+
+    return 0;
+}
diff --git a/demos/dox/stream/lexical_cast.cpp.stdout b/demos/stream/lexical_cast.cpp.stdout
similarity index 100%
rename from demos/dox/stream/lexical_cast.cpp.stdout
rename to demos/stream/lexical_cast.cpp.stdout
diff --git a/demos/tutorial/a_first_example/basic_code.cpp.stdout b/demos/tutorial/a_first_example/basic_code.cpp.stdout
deleted file mode 100644
index b4d9330..0000000
--- a/demos/tutorial/a_first_example/basic_code.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 0 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/basic_code_detailed.cpp.stdout b/demos/tutorial/a_first_example/basic_code_detailed.cpp.stdout
deleted file mode 100644
index b4d9330..0000000
--- a/demos/tutorial/a_first_example/basic_code_detailed.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 0 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/code_encapsulation.cpp.stdout b/demos/tutorial/a_first_example/code_encapsulation.cpp.stdout
deleted file mode 100644
index b4d9330..0000000
--- a/demos/tutorial/a_first_example/code_encapsulation.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 0 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/final_result.cpp.stdout b/demos/tutorial/a_first_example/final_result.cpp.stdout
deleted file mode 100644
index 5558d1a..0000000
--- a/demos/tutorial/a_first_example/final_result.cpp.stdout
+++ /dev/null
@@ -1,10 +0,0 @@
-This is an awesome tutorial to get to now SeqAn!
-tutorial
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 1 0 0 0 0 
-19 
-(2; 1) (5; 1) (12; 1) (17; 1) (19; 8) (21; 1) (26; 2) (28; 1) (31; 1) (33; 3) (35; 1) (36; 1) 
-This is an awesome tutorial to get to now SeqAn!
-TUTORIAL
-6 -9 -3 -6 -6 0 -9 -8 -7 -3 -9 -5 -8 -4 -5 -6 -6 1 -6 25 -7 2 -6 -6 -9 -6 -5 -7 1 -7 -5 -4 -6 2 -6 -3 -8 -9 -10 -4 -6 
-19 
-(17; 1) (19; 25) (21; 2) (28; 1) (33; 2) 
diff --git a/demos/tutorial/a_first_example/solution_1.cpp.stdout b/demos/tutorial/a_first_example/solution_1.cpp.stdout
deleted file mode 100644
index b4d9330..0000000
--- a/demos/tutorial/a_first_example/solution_1.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 0 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/solution_2.cpp.stdout b/demos/tutorial/a_first_example/solution_2.cpp.stdout
deleted file mode 100644
index 76bbad7..0000000
--- a/demos/tutorial/a_first_example/solution_2.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/solution_3.cpp.stdout b/demos/tutorial/a_first_example/solution_3.cpp.stdout
deleted file mode 100644
index 76bbad7..0000000
--- a/demos/tutorial/a_first_example/solution_3.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/solution_4.cpp.stdout b/demos/tutorial/a_first_example/solution_4.cpp.stdout
deleted file mode 100644
index 76bbad7..0000000
--- a/demos/tutorial/a_first_example/solution_4.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/solution_5.cpp.stdout b/demos/tutorial/a_first_example/solution_5.cpp.stdout
deleted file mode 100644
index 9d0b9b8..0000000
--- a/demos/tutorial/a_first_example/solution_5.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-This is an awesome tutorial to get to now SeqAn!
-tutorial
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 1 0 0 0 0 
diff --git a/demos/tutorial/a_first_example/solution_6.cpp.stdout b/demos/tutorial/a_first_example/solution_6.cpp.stdout
deleted file mode 100644
index 5558d1a..0000000
--- a/demos/tutorial/a_first_example/solution_6.cpp.stdout
+++ /dev/null
@@ -1,10 +0,0 @@
-This is an awesome tutorial to get to now SeqAn!
-tutorial
-1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 8 0 1 0 0 0 0 2 0 1 0 0 1 0 3 0 1 1 0 0 0 0 
-19 
-(2; 1) (5; 1) (12; 1) (17; 1) (19; 8) (21; 1) (26; 2) (28; 1) (31; 1) (33; 3) (35; 1) (36; 1) 
-This is an awesome tutorial to get to now SeqAn!
-TUTORIAL
-6 -9 -3 -6 -6 0 -9 -8 -7 -3 -9 -5 -8 -4 -5 -6 -6 1 -6 25 -7 2 -6 -6 -9 -6 -5 -7 1 -7 -5 -4 -6 2 -6 -3 -8 -9 -10 -4 -6 
-19 
-(17; 1) (19; 25) (21; 2) (28; 1) (33; 2) 
diff --git a/demos/tutorial/alignment_representation/align.cpp.stdout b/demos/tutorial/alignment_representation/align.cpp.stdout
deleted file mode 100644
index f8816e5..0000000
--- a/demos/tutorial/alignment_representation/align.cpp.stdout
+++ /dev/null
@@ -1,42 +0,0 @@
-      0     .  
-        CDFGDC
-        ||    
-        CDEFGA
-
-
-      0     .     
-        CD-FG--DC
-        || ||   |
-        CDEFGAHGC
-
-
-
-ViewToSource1: 0,1,2,2,3,4,4,4,5,
-ViewToSource2: 0,1,2,3,4,5,6,7,8,
-
-SourceToView1: 0,1,3,4,7,8,
-SourceToView2: 0,1,2,3,4,5,6,7,8,
-
-Before clipping:
-      0     .     
-        CD-FG--DC
-        || ||   |
-        CDEFGAHGC
-
-
-
-After clipping:
-      0     .  
-        D-FG--
-        | ||  
-        DEFGAH
-
-
-
-ViewToSource1: 1,2,2,3,4,4,
-ViewToSource2: 1,2,3,4,5,6,
-
-SourceToView1: -1,0,2,3,6,7,
-SourceToView2: -1,0,1,2,3,4,5,6,7,
-D-FG--
-CD-FG--DC
diff --git a/demos/tutorial/alignment_representation/align_assignment1.cpp.stdout b/demos/tutorial/alignment_representation/align_assignment1.cpp.stdout
deleted file mode 100644
index 3255e3b..0000000
--- a/demos/tutorial/alignment_representation/align_assignment1.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Number of gaps: 5
diff --git a/demos/tutorial/alignment_representation/graph.cpp.stdout b/demos/tutorial/alignment_representation/graph.cpp.stdout
deleted file mode 100644
index 6d3c3bd..0000000
--- a/demos/tutorial/alignment_representation/graph.cpp.stdout
+++ /dev/null
@@ -1,11 +0,0 @@
-Adjacency list:
-Edge list:
-
-Alignment matrix:
-      0     . 
-        TT-GT
-        || ||
-        TTAGT
-
-
-
diff --git a/demos/tutorial/alignment_representation/graph_assignment1.cpp.stdout b/demos/tutorial/alignment_representation/graph_assignment1.cpp.stdout
deleted file mode 100644
index 99c3c75..0000000
--- a/demos/tutorial/alignment_representation/graph_assignment1.cpp.stdout
+++ /dev/null
@@ -1,10 +0,0 @@
-Alignment matrix:
-      0     .    :    .   
-        GARFIELDTHE---CAT
-        |||||||||||   |||
-        GARFIELDTHEBIGCAT
-                |||||||||
-        --------THEBIGCAT
-
-
-
diff --git a/demos/tutorial/alignments/CMakeLists.txt b/demos/tutorial/alignments/CMakeLists.txt
new file mode 100644
index 0000000..7d769a6
--- /dev/null
+++ b/demos/tutorial/alignments/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_alignments)
+
+seqan_setup_apps(demos_tutorials_alignments)
+seqan_add_all_executables(demos_tutorials_alignments tutorial_)
diff --git a/demos/tutorial/alignment_representation/align.cpp b/demos/tutorial/alignments/alignment2_align.cpp
similarity index 100%
rename from demos/tutorial/alignment_representation/align.cpp
rename to demos/tutorial/alignments/alignment2_align.cpp
diff --git a/demos/tutorial/alignment_representation/align_assignmen1.cpp b/demos/tutorial/alignments/alignment_align_assignment1.cpp
similarity index 100%
rename from demos/tutorial/alignment_representation/align_assignmen1.cpp
rename to demos/tutorial/alignments/alignment_align_assignment1.cpp
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp b/demos/tutorial/alignments/alignment_banded.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp
rename to demos/tutorial/alignments/alignment_banded.cpp
diff --git a/demos/tutorial/alignments/alignment_example.png b/demos/tutorial/alignments/alignment_example.png
new file mode 100755
index 0000000..bba1e70
Binary files /dev/null and b/demos/tutorial/alignments/alignment_example.png differ
diff --git a/demos/tutorial/alignments/alignment_gaps.cpp b/demos/tutorial/alignments/alignment_gaps.cpp
new file mode 100644
index 0000000..7f6cca4
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_gaps.cpp
@@ -0,0 +1,58 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+//![main]
+//![typedefs]
+    typedef String<char> TSequence;                 // sequence type
+    typedef Align<TSequence, ArrayGaps> TAlign;      // align type
+    typedef Row<TAlign>::Type TRow;                 // gapped sequence type
+//![typedefs]
+
+//![init]
+    TSequence seq1 = "CDFGHC";
+    TSequence seq2 = "CDEFGAHC";
+
+    TAlign align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), seq1);
+    assignSource(row(align, 1), seq2);
+//![init]
+
+//![manipulation]
+    std::cout << align;
+    TRow & row1 = row(align, 0);
+    TRow & row2 = row(align, 1);
+    insertGap(row1, 2);
+    insertGap(row1, 5);
+    std::cout << align;
+//![manipulation]
+
+//![printingViewPos]
+    std::cout << std::endl << "ViewToSource1: ";
+    for (unsigned i = 0; i < length(row1); ++i)
+        std::cout << toSourcePosition(row1, i) << ",";
+
+    std::cout << std::endl << "ViewToSource2: ";
+    for (unsigned i = 0; i < length(row2); ++i)
+        std::cout << toSourcePosition(row2, i) << ",";
+    std::cout << std::endl;
+//![printingViewPos]
+
+//![printingSourcePos]
+    std::cout << std::endl << "SourceToView1: ";
+    for (unsigned i = 0; i < length(source(row1)); ++i)
+        std::cout << toViewPosition(row1, i) << ",";
+
+    std::cout << std::endl << "SourceToView2: ";
+    for (unsigned i = 0; i < length(source(row2)); ++i)
+        std::cout << toViewPosition(row2, i) << ",";
+    std::cout << std::endl;
+
+    return 0;
+}
+//![printingSourcePos]
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp b/demos/tutorial/alignments/alignment_global_assignment1.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp
rename to demos/tutorial/alignments/alignment_global_assignment1.cpp
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp b/demos/tutorial/alignments/alignment_global_assignment2.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp
rename to demos/tutorial/alignments/alignment_global_assignment2.cpp
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp b/demos/tutorial/alignments/alignment_global_assignment3.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp
rename to demos/tutorial/alignments/alignment_global_assignment3.cpp
diff --git a/demos/tutorial/alignments/alignment_global_assignment4_part1.cpp b/demos/tutorial/alignments/alignment_global_assignment4_part1.cpp
new file mode 100644
index 0000000..7e5600b
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_global_assignment4_part1.cpp
@@ -0,0 +1,40 @@
+//![completeSolution]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<Dna> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Align<TSequence, ArrayGaps> TAlign;
+
+    TStringSet strings;
+    appendValue(strings, "AAATGACATGGATTG");
+    appendValue(strings, "AGCGGACTCTACTTG");
+    appendValue(strings, "AGTCGATAACTG");
+    appendValue(strings, "AGTCGGATCTACTG");
+    appendValue(strings, "AGCGGCATTG");
+
+    int bestScore = MinValue<int>::VALUE;
+    int bestSeqIdx1 = 0;
+    int bestSeqIdx2 = 0;
+    for (unsigned i = 0; i < length(strings) - 1; ++i)
+    {
+        for (unsigned j = i + 1; j < length(strings); ++j)
+        {
+            int tmpScore = globalAlignmentScore(strings[i], strings[j], MyersBitVector());
+            if (tmpScore > bestScore)
+            {
+                bestScore = tmpScore;
+                bestSeqIdx1 = i;
+                bestSeqIdx2 = j;
+            }
+
+        }
+    }
+
+    return 0;
+}
+//![completeSolution]
diff --git a/demos/tutorial/alignments/alignment_global_assignment4_part2.cpp b/demos/tutorial/alignments/alignment_global_assignment4_part2.cpp
new file mode 100644
index 0000000..7a9b860
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_global_assignment4_part2.cpp
@@ -0,0 +1,50 @@
+//![completeSolution]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<Dna> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Align<TSequence, ArrayGaps> TAlign;
+
+    TStringSet strings;
+    appendValue(strings, "AAATGACATGGATTG");
+    appendValue(strings, "AGCGGACTCTACTTG");
+    appendValue(strings, "AGTCGATAACTG");
+    appendValue(strings, "AGTCGGATCTACTG");
+    appendValue(strings, "AGCGGCATTG");
+
+    int bestScore = MinValue<int>::VALUE;
+    int bestSeqIdx1 = 0;
+    int bestSeqIdx2 = 0;
+    for (unsigned i = 0; i < length(strings) - 1; ++i)
+    {
+        for (unsigned j = i + 1; j < length(strings); ++j)
+        {
+            int tmpScore = globalAlignmentScore(strings[i], strings[j], MyersBitVector());
+            if (tmpScore > bestScore)
+            {
+                bestScore = tmpScore;
+                bestSeqIdx1 = i;
+                bestSeqIdx2 = j;
+            }
+
+        }
+    }
+
+    TAlign align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), strings[bestSeqIdx1]);
+    assignSource(row(align, 1), strings[bestSeqIdx2]);
+
+    globalAlignment(align, MyersHirschberg());
+    std::cout << "Best alignment between sequences at position " << bestSeqIdx1 << " and " << bestSeqIdx2 << std::endl;
+    std::cout << "Score: " << bestScore << std::endl;
+    std::cout << align << std::endl;
+
+    return 0;
+}
+//![completeSolution]
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp b/demos/tutorial/alignments/alignment_global_overlap.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp
rename to demos/tutorial/alignments/alignment_global_overlap.cpp
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp b/demos/tutorial/alignments/alignment_global_specialised.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp
rename to demos/tutorial/alignments/alignment_global_specialised.cpp
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp b/demos/tutorial/alignments/alignment_global_standard.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp
rename to demos/tutorial/alignments/alignment_global_standard.cpp
diff --git a/demos/tutorial/alignments/alignment_local_standard.cpp b/demos/tutorial/alignments/alignment_local_standard.cpp
new file mode 100644
index 0000000..5dbe91a
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_local_standard.cpp
@@ -0,0 +1,30 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<Dna> TSequence;                 // sequence type
+    typedef Align<TSequence, ArrayGaps> TAlign;      // align type
+//![main]
+
+//![init]
+    TSequence seq1 = "ACGTGACGGGATGTG";
+    TSequence seq2 = "ACGGCGGGACTGACTG";
+
+    TAlign align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), seq1);
+    assignSource(row(align, 1), seq2);
+//![init]
+
+//![alignment]
+    int score = localAlignment(align, Score<int, Simple>(1, -1, -1, -1));
+    std::cout << "Score: " << score << std::endl;
+    std::cout << align << std::endl;
+
+    return 0;
+}
+//![alignment]
diff --git a/demos/tutorial/alignments/alignment_local_waterman_eggert.cpp b/demos/tutorial/alignments/alignment_local_waterman_eggert.cpp
new file mode 100644
index 0000000..5ccc4de
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_local_waterman_eggert.cpp
@@ -0,0 +1,32 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<Dna> TSequence;                 // sequence type
+    typedef Align<TSequence, ArrayGaps> TAlign;    // align type
+//![main]
+
+//![init]
+    Align<String<char> > ali;
+    resize(rows(ali), 2);
+    assignSource(row(ali, 0), "ataagcgtctcg");
+    assignSource(row(ali, 1), "tcatagagttgc");
+//![init]
+
+//![alignment]
+    Score<int> scoring(2, -1, -2, 0);
+    LocalAlignmentEnumerator<Score<int>, Unbanded> enumerator(scoring, 5);
+    while (nextLocalAlignment(ali, enumerator))
+    {
+        std::cout << "Score = " << getScore(enumerator) << std::endl;
+        std::cout << ali;
+        std::cout << "Aligns Seq1[" << clippedBeginPosition(row(ali, 0)) << ":" << (clippedEndPosition(row(ali, 0)) - 1) << "]";
+        std::cout << " and Seq2[" << clippedBeginPosition(row(ali, 1)) << ":" <<  (clippedEndPosition(row(ali, 1)) - 1) << "]" << std::endl << std::endl;
+    }
+    return 0;
+}
+//![alignment]
diff --git a/demos/tutorial/multiple_sequence_alignment/msa.cpp b/demos/tutorial/alignments/alignment_msa.cpp
similarity index 100%
rename from demos/tutorial/multiple_sequence_alignment/msa.cpp
rename to demos/tutorial/alignments/alignment_msa.cpp
diff --git a/demos/tutorial/multiple_sequence_alignment/msa.cpp.stdout b/demos/tutorial/alignments/alignment_msa.cpp.stdout
similarity index 100%
rename from demos/tutorial/multiple_sequence_alignment/msa.cpp.stdout
rename to demos/tutorial/alignments/alignment_msa.cpp.stdout
diff --git a/demos/tutorial/multiple_sequence_alignment/assignment1.cpp b/demos/tutorial/alignments/alignment_msa_assignment1.cpp
similarity index 100%
rename from demos/tutorial/multiple_sequence_alignment/assignment1.cpp
rename to demos/tutorial/alignments/alignment_msa_assignment1.cpp
diff --git a/demos/tutorial/multiple_sequence_alignment/assignment1.cpp.stdout b/demos/tutorial/alignments/alignment_msa_assignment1.cpp.stdout
similarity index 100%
rename from demos/tutorial/multiple_sequence_alignment/assignment1.cpp.stdout
rename to demos/tutorial/alignments/alignment_msa_assignment1.cpp.stdout
diff --git a/demos/tutorial/multiple_sequence_alignment/consensus.cpp b/demos/tutorial/alignments/alignment_msa_consensus.cpp
similarity index 100%
rename from demos/tutorial/multiple_sequence_alignment/consensus.cpp
rename to demos/tutorial/alignments/alignment_msa_consensus.cpp
diff --git a/demos/tutorial/multiple_sequence_alignment/consensus.cpp.stdout b/demos/tutorial/alignments/alignment_msa_consensus.cpp.stdout
similarity index 100%
rename from demos/tutorial/multiple_sequence_alignment/consensus.cpp.stdout
rename to demos/tutorial/alignments/alignment_msa_consensus.cpp.stdout
diff --git a/demos/tutorial/alignments/alignment_pairwise_global.cpp b/demos/tutorial/alignments/alignment_pairwise_global.cpp
new file mode 100644
index 0000000..016525f
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_pairwise_global.cpp
@@ -0,0 +1,55 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char>                TSequence;  // sequence type
+    typedef Align<TSequence, ArrayGaps>  TAlign;     // align type
+    typedef Row<TAlign>::Type           TRow;
+    typedef Iterator<TRow>::Type        TIterator;
+//![main]
+
+//![init]
+    TSequence seq1 = "CDFGHC";
+    TSequence seq2 = "CDEFGAHC";
+
+    TAlign align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), seq1);
+    assignSource(row(align, 1), seq2);
+//![init]
+
+//![alignment]
+    int score = globalAlignment(align, Score<int>(1, -1, -1, -1), Hirschberg());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << align;
+//![alignment]
+
+//![iterate]
+    TIterator it1 = begin(row(align, 0));
+    TIterator it1End = end(row(align, 0));
+    TIterator it2 = begin(row(align, 1));
+    TIterator it2End = end(row(align, 1));
+
+    while (it1 != it1End && it2 != it2End)
+    {
+        if (isGap(it1))
+            std::cout << "#";
+        else
+            std::cout << *it1;
+        std::cout << ' ';
+        if (isGap(it2))
+            std::cout << "#";
+        else
+            std::cout << *it2;
+        std::cout << std::endl;
+        ++it1;
+        ++it2;
+    }
+
+    return 0;
+}
+//![iterate]
diff --git a/demos/tutorial/alignments/alignment_pairwise_global2.cpp b/demos/tutorial/alignments/alignment_pairwise_global2.cpp
new file mode 100644
index 0000000..383c7bb
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_pairwise_global2.cpp
@@ -0,0 +1,45 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+//![main]
+//![init]
+    typedef String<char>              TSequence;  // sequence type
+    typedef Align<TSequence, ArrayGaps>  TAlign;  // align type
+
+    TSequence seq1 = "CDFGHC";
+    TSequence seq2 = "CDEFGAHC";
+
+    TAlign align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), seq1);
+    assignSource(row(align, 1), seq2);
+//![main]
+
+//![alignment]
+    int score = globalAlignment(align, Score<int>(1, -1, -1, -1), Hirschberg());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << align;
+//![alignment]
+
+//![typedef2]
+    StringSet<TSequence> sequences;
+    appendValue(sequences, seq1);
+    appendValue(sequences, seq2);
+    typedef StringSet<TSequence, Dependent<> > TDepStringSet;
+    typedef Graph<Alignment<TDepStringSet> > TAlignGraph;
+    TAlignGraph alignG(sequences);
+//![typedef2]
+
+//![alignment2]
+    score = globalAlignment(alignG, Score<int>(1, -1, -1, -1), NeedlemanWunsch());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << alignG;
+
+    return 0;
+}
+//![alignment2]
diff --git a/demos/tutorial/alignments/alignment_pairwise_global_assignment1.cpp b/demos/tutorial/alignments/alignment_pairwise_global_assignment1.cpp
new file mode 100644
index 0000000..a750fcb
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_pairwise_global_assignment1.cpp
@@ -0,0 +1,51 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<Dna>         TSequence;  // sequence type
+    typedef Align<TSequence, ArrayGaps>  TAlign;     // align type
+    typedef Row<TAlign>::Type       TRow;
+    typedef Iterator<TRow>::Type        TIterator;
+//![main]
+
+//![init]
+    TSequence seq1 = "acgtacgtact";
+    TSequence seq2 = "actactacgt";
+
+    TAlign align;
+    resize(rows(align), 2);
+    assignSource(row(align, 0), seq1);
+    assignSource(row(align, 1), seq2);
+//![init]
+
+//![alignment]
+    int score = globalAlignment(align, Score<int>(1, -1, -1, -1), Hirschberg());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << align;
+//![alignment]
+
+//![iterate]
+    unsigned aliLength = _max(length(row(align, 0)), length(row(align, 1)));
+    for (unsigned i = 0; i < length(rows(align)); ++i)
+    {
+        TIterator it = iter(row(align, i), 0);
+        TIterator itEnd = iter(row(align, i), aliLength);
+        unsigned pos = 0;
+        std::cout << "Row " << i << " contains gaps at positions: ";
+        std::cout << std::endl;
+        while (it != itEnd)
+        {
+            if (isGap(it))
+                std::cout << pos << std::endl;
+            ++it;
+            ++pos;
+        }
+    }
+
+    return 0;
+}
+//![iterate]
diff --git a/demos/tutorial/alignments/alignment_pairwise_global_assignment2.cpp b/demos/tutorial/alignments/alignment_pairwise_global_assignment2.cpp
new file mode 100644
index 0000000..d32c30d
--- /dev/null
+++ b/demos/tutorial/alignments/alignment_pairwise_global_assignment2.cpp
@@ -0,0 +1,30 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char>                TSequence;  // sequence type
+    typedef StringSet<TSequence, Dependent<> >   TDepStringSet;
+    typedef Graph<Alignment<TDepStringSet> >    TAlignGraph;
+//![main]
+
+//![init]
+    StringSet<TSequence> seq;
+    appendValue(seq, "blablablu");
+    appendValue(seq, "abab");
+
+    TAlignGraph alignG(seq);
+//![init]
+
+//![alignment]
+    AlignConfig<true, false, false, true> ac;
+    int score = globalAlignment(alignG, Score<int>(1, -1, -1, -1), ac, Gotoh());
+    std::cout << "Score = " << score << std::endl;
+    std::cout << alignG;
+
+    return 0;
+}
+//![alignment]
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp b/demos/tutorial/alignments/alignment_pairwise_local.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp
rename to demos/tutorial/alignments/alignment_pairwise_local.cpp
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp b/demos/tutorial/alignments/alignment_pairwise_local_assignment1.cpp
similarity index 100%
rename from demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp
rename to demos/tutorial/alignments/alignment_pairwise_local_assignment1.cpp
diff --git a/demos/tutorial/alignment_representation/graph.cpp b/demos/tutorial/alignments/alignment_representation_ag.cpp
similarity index 100%
rename from demos/tutorial/alignment_representation/graph.cpp
rename to demos/tutorial/alignments/alignment_representation_ag.cpp
diff --git a/demos/tutorial/alignment_representation/graph_assignment1.cpp b/demos/tutorial/alignments/alignment_representation_ag_assignment1.cpp
similarity index 100%
rename from demos/tutorial/alignment_representation/graph_assignment1.cpp
rename to demos/tutorial/alignments/alignment_representation_ag_assignment1.cpp
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
new file mode 100644
index 0000000..29124d6
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
@@ -0,0 +1,136 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+//![main]
+
+//![verification]
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+//![verification]
+
+//![alignment]
+    TGaps gapsText;
+    TGaps gapsPattern;
+    assignSource(gapsPattern, pattern);
+    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
+    for (TIterator it = begin(locations); it != end(locations); ++it)
+    {
+        // Clear previously computed gaps.
+        clearGaps(gapsText);
+        clearGaps(gapsPattern);
+        // Only recompute the area within the current window over the text.
+        TSequence textInfix = infix(text, *it, *it + length(pattern));
+        assignSource(gapsText, textInfix);
+
+        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
+        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
+        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
+//![alignment]
+
+//![cigar]
+        TGapsIterator itGapsPattern = begin(gapsPattern);
+        TGapsIterator itGapsEnd = end(gapsPattern);
+
+        // Remove trailing gaps in pattern.
+        int count = 0;
+        while (isGap(--itGapsEnd))
+            ++count;
+        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
+
+        // Remove leading gaps in pattern.
+        if (isGap(itGapsPattern))
+        {
+            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
+            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
+        }
+
+        // Reinitilaize the iterators.
+        TGapsIterator itGapsText = begin(gapsText);
+        itGapsPattern = begin(gapsPattern);
+        itGapsEnd = end(gapsPattern);
+
+        // Use a stringstream to construct the cigar string.
+        std::stringstream cigar;
+        int numChar = 0;
+        while (itGapsPattern != itGapsEnd)
+        {
+//![cigar]
+//![cigarInsertion]
+            // Count insertions.
+            if (isGap(itGapsText))
+            {
+                int numGaps = countGaps(itGapsText);
+                cigar << numGaps << "I";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+//![cigarInsertion]
+//![cigarDeletion]
+            // Count deletions.
+            if (isGap(itGapsPattern))
+            {
+                int numGaps = countGaps(itGapsPattern);
+                cigar << numGaps << "D";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+//![cigarDeletion]
+//![cigarMatch]
+            // Count matches.
+            while (*itGapsText == *itGapsPattern && itGapsPattern != itGapsEnd)
+            {
+                ++numChar;
+                ++itGapsText;
+                ++itGapsPattern;
+            }
+            if (numChar != 0)
+            {
+                cigar << numChar << "M";
+                numChar = 0;
+                continue;
+            }
+//![cigarMatch]
+//![cigarMismatch]
+            // Count mismatches.
+            while (*itGapsText != *itGapsPattern && itGapsPattern != itGapsEnd)
+            {
+                ++numChar;
+                ++itGapsText;
+                ++itGapsPattern;
+            }
+            if (numChar != 0)
+                cigar << numChar << "S";
+            numChar = 0;
+        }
+        // Output the hit position in the text, the total number of edits and the corresponding cigar string.
+        std::cout << "Hit at position  " << *it << "\ttotal edits: " << abs(score) << "\tcigar: " << cigar.str() << std::endl;
+    }
+
+    return 0;
+}
+//![cigarMismatch]
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step1.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step1.cpp
new file mode 100644
index 0000000..d0368b8
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step1.cpp
@@ -0,0 +1,32 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step2.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step2.cpp
new file mode 100644
index 0000000..7a8e4c5
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step2.cpp
@@ -0,0 +1,53 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+
+    TGaps gapsText;
+    TGaps gapsPattern;
+    assignSource(gapsPattern, pattern);
+    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
+    for (TIterator it = begin(locations); it != end(locations); ++it)
+    {
+        // Clear previously computed gaps.
+        clearGaps(gapsText);
+        clearGaps(gapsPattern);
+
+        // Only recompute the area within the current window over the text.
+        TSequence textInfix = infix(text, *it, *it + length(pattern));
+        assignSource(gapsText, textInfix);
+
+        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
+        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
+        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
+        std::cout << "Hit at position " << *it << "\ttotal edits: " << abs(score) << std::endl;
+    }
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step3.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step3.cpp
new file mode 100644
index 0000000..1bd6837
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step3.cpp
@@ -0,0 +1,68 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+
+    TGaps gapsText;
+    TGaps gapsPattern;
+    assignSource(gapsPattern, pattern);
+    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
+    for (TIterator it = begin(locations); it != end(locations); ++it)
+    {
+        // Clear previously computed gaps.
+        clearGaps(gapsText);
+        clearGaps(gapsPattern);
+
+        // Only recompute the area within the current window over the text.
+        TSequence textInfix = infix(text, *it, *it + length(pattern));
+        assignSource(gapsText, textInfix);
+
+        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
+        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
+        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
+
+        TGapsIterator itGapsPattern = begin(gapsPattern);
+        TGapsIterator itGapsEnd = end(gapsPattern);
+
+        // Remove trailing gaps in pattern.
+        int count = 0;
+        while (isGap(--itGapsEnd))
+            ++count;
+        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
+
+        // Remove leading gaps in pattern.
+        if (isGap(itGapsPattern))
+        {
+            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
+            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
+        }
+        std::cout << "Hit at position " << *it << "\ttotal edits: " << abs(score) << std::endl;
+    }
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step4.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step4.cpp
new file mode 100644
index 0000000..051720e
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step4.cpp
@@ -0,0 +1,89 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+
+    TGaps gapsText;
+    TGaps gapsPattern;
+    assignSource(gapsPattern, pattern);
+    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
+    for (TIterator it = begin(locations); it != end(locations); ++it)
+    {
+        // Clear previously computed gaps.
+        clearGaps(gapsText);
+        clearGaps(gapsPattern);
+
+        // Only recompute the area within the current window over the text.
+        TSequence textInfix = infix(text, *it, *it + length(pattern));
+        assignSource(gapsText, textInfix);
+
+        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
+        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
+        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
+
+        TGapsIterator itGapsPattern = begin(gapsPattern);
+        TGapsIterator itGapsEnd = end(gapsPattern);
+
+        // Remove trailing gaps in pattern.
+        int count = 0;
+        while (isGap(--itGapsEnd))
+            ++count;
+        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
+
+        // Remove leading gaps in pattern.
+        if (isGap(itGapsPattern))
+        {
+            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
+            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
+        }
+
+        // Reinitilaize the iterators.
+        TGapsIterator itGapsText = begin(gapsText);
+        itGapsPattern = begin(gapsPattern);
+        itGapsEnd = end(gapsPattern);
+
+        // Use a stringstream to construct the cigar string.
+        std::stringstream cigar;
+        while (itGapsPattern != itGapsEnd)
+        {
+            // Count insertions.
+            if (isGap(itGapsText))
+            {
+                int numGaps = countGaps(itGapsText);
+                cigar << numGaps << "I";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+            ++itGapsText;
+            ++itGapsPattern;
+        }
+        std::cout << "Hit at position " << *it << "\ttotal edits: " << abs(score) << std::endl;
+    }
+    return 0;
+}
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step5.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step5.cpp
new file mode 100644
index 0000000..0da4b9b
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step5.cpp
@@ -0,0 +1,101 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+
+    TGaps gapsText;
+    TGaps gapsPattern;
+    assignSource(gapsPattern, pattern);
+    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
+    for (TIterator it = begin(locations); it != end(locations); ++it)
+    {
+        // Clear previously computed gaps.
+        clearGaps(gapsText);
+        clearGaps(gapsPattern);
+
+        // Only recompute the area within the current window over the text.
+        TSequence textInfix = infix(text, *it, *it + length(pattern));
+        assignSource(gapsText, textInfix);
+
+        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
+        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
+        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
+
+        TGapsIterator itGapsPattern = begin(gapsPattern);
+        TGapsIterator itGapsEnd = end(gapsPattern);
+
+        // Remove trailing gaps in pattern.
+        int count = 0;
+        while (isGap(--itGapsEnd))
+            ++count;
+        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
+
+        // Remove leading gaps in pattern.
+        if (isGap(itGapsPattern))
+        {
+            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
+            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
+        }
+
+        // Reinitilaize the iterators.
+        TGapsIterator itGapsText = begin(gapsText);
+        itGapsPattern = begin(gapsPattern);
+        itGapsEnd = end(gapsPattern);
+
+        // Use a stringstream to construct the cigar string.
+        std::stringstream cigar;
+        while (itGapsPattern != itGapsEnd)
+        {
+            // Count insertions.
+            if (isGap(itGapsText))
+            {
+                int numGaps = countGaps(itGapsText);
+                cigar << numGaps << "I";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+            // Count deletions.
+            if (isGap(itGapsPattern))
+            {
+                int numGaps = countGaps(itGapsPattern);
+                cigar << numGaps << "D";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+            ++itGapsText;
+            ++itGapsPattern;
+        }
+        // Output the hit position in the text, the total number of edits and the corresponding cigar string.
+        std::cout << "Hit at position  " << *it << "\ttotal edits: " << abs(score) << std::endl;
+    }
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step6.cpp b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step6.cpp
new file mode 100644
index 0000000..4b0294c
--- /dev/null
+++ b/demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step6.cpp
@@ -0,0 +1,124 @@
+//![main]
+#include <iostream>
+#include <seqan/align.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef String<char> TSequence;
+    typedef StringSet<TSequence> TStringSet;
+    typedef Gaps<TSequence, ArrayGaps> TGaps;
+    typedef Iterator<TGaps>::Type TGapsIterator;
+    typedef Iterator<String<int> >::Type TIterator;
+
+    TSequence text =    "MISSISSIPPIANDMISSOURI";
+    TSequence pattern = "SISSI";
+
+    String<int> locations;
+    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
+    {
+        // Compute the MyersBitVector in current window of text.
+        TSequence tmp = infix(text, i, i + length(pattern));
+
+        // Report hits with at most 2 errors.
+        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
+        {
+            appendValue(locations, i);
+        }
+    }
+
+    TGaps gapsText;
+    TGaps gapsPattern;
+    assignSource(gapsPattern, pattern);
+    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
+    for (TIterator it = begin(locations); it != end(locations); ++it)
+    {
+        // Clear previously computed gaps.
+        clearGaps(gapsText);
+        clearGaps(gapsPattern);
+
+        // Only recompute the area within the current window over the text.
+        TSequence textInfix = infix(text, *it, *it + length(pattern));
+        assignSource(gapsText, textInfix);
+
+        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
+        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
+        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
+
+        TGapsIterator itGapsPattern = begin(gapsPattern);
+        TGapsIterator itGapsEnd = end(gapsPattern);
+
+        // Remove trailing gaps in pattern.
+        int count = 0;
+        while (isGap(--itGapsEnd))
+            ++count;
+        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
+
+        // Remove leading gaps in pattern.
+        if (isGap(itGapsPattern))
+        {
+            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
+            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
+        }
+
+        // Reinitilaize the iterators.
+        TGapsIterator itGapsText = begin(gapsText);
+        itGapsPattern = begin(gapsPattern);
+        itGapsEnd = end(gapsPattern);
+
+        // Use a stringstream to construct the cigar string.
+        std::stringstream cigar;
+        int numChar = 0;
+        while (itGapsPattern != itGapsEnd)
+        {
+            // Count insertions.
+            if (isGap(itGapsText))
+            {
+                int numGaps = countGaps(itGapsText);
+                cigar << numGaps << "I";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+            // Count deletions.
+            if (isGap(itGapsPattern))
+            {
+                int numGaps = countGaps(itGapsPattern);
+                cigar << numGaps << "D";
+                itGapsText += numGaps;
+                itGapsPattern += numGaps;
+                continue;
+            }
+            // Count matches.
+            while (*itGapsText == *itGapsPattern && itGapsPattern != itGapsEnd)
+            {
+                ++numChar;
+                ++itGapsText;
+                ++itGapsPattern;
+            }
+            if (numChar != 0)
+            {
+                cigar << numChar << "M";
+                numChar = 0;
+                continue;
+            }
+
+            // Count mismatches.
+            while (*itGapsText != *itGapsPattern && itGapsPattern != itGapsEnd)
+            {
+                ++numChar;
+                ++itGapsText;
+                ++itGapsPattern;
+            }
+            if (numChar != 0)
+                cigar << numChar << "S";
+            numChar = 0;
+        }
+        // Output the hit position in the text, the total number of edits and the corresponding cigar string.
+        std::cout << "Hit at position  " << *it << "\ttotal edits: " << abs(score) << "\tcigar: " << cigar.str() << std::endl;
+    }
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/alphabets/alphabet_assignment_1_solution.cpp.stdout b/demos/tutorial/alphabets/alphabet_assignment_1_solution.cpp.stdout
deleted file mode 100644
index e96d70f..0000000
Binary files a/demos/tutorial/alphabets/alphabet_assignment_1_solution.cpp.stdout and /dev/null differ
diff --git a/demos/tutorial/annotation_store/assignment_1_hint.cpp b/demos/tutorial/annotation_store/assignment_1_hint.cpp
new file mode 100644
index 0000000..8a9f788
--- /dev/null
+++ b/demos/tutorial/annotation_store/assignment_1_hint.cpp
@@ -0,0 +1,22 @@
+#include <fstream>
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+int main()
+{
+    FragmentStore<> store;
+
+    GffFileIn file("assignment_annotations.gtf");
+    readRecords(store, file);
+    // Create AnnotationTree iterator
+    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
+    it = begin(store, AnnotationTree<>());
+    // Move iterator one node down
+    goDown(it);
+
+    return 0;
+}
diff --git a/demos/tutorial/annotation_store/assignment_1_solution.cpp b/demos/tutorial/annotation_store/assignment_1_solution.cpp
new file mode 100644
index 0000000..015d58e
--- /dev/null
+++ b/demos/tutorial/annotation_store/assignment_1_solution.cpp
@@ -0,0 +1,26 @@
+#include <fstream>
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+int main()
+{
+    FragmentStore<> store;
+    GffFileIn file("assignment_annotations.gtf");
+    readRecords(store, file);
+    // Create AnnotationTree iterator
+    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
+    it = begin(store, AnnotationTree<>());
+    unsigned count = 0;
+    // Go down to the first leaf (first child of the first mRNA)
+    while (goDown(it))
+        ;
+    ++count;
+    // Iterate over all siblings and count
+    while (goRight(it))
+        ++count;
+    std::cout << "No. of children of the first mRNA: " << count << std::endl;
+    return 0;
+}
diff --git a/demos/tutorial/annotation_store/assignment_2_solution.cpp b/demos/tutorial/annotation_store/assignment_2_solution.cpp
new file mode 100644
index 0000000..ac62644
--- /dev/null
+++ b/demos/tutorial/annotation_store/assignment_2_solution.cpp
@@ -0,0 +1,40 @@
+#include <fstream>
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+int main()
+{
+    FragmentStore<> store;
+    GffFileIn file("assignment_annotations.gtf");
+    readRecords(store, file);
+    // Iterate over all leafs, count and print the result
+    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
+    it = begin(store, AnnotationTree<>());
+    unsigned count = 0;
+    std::cout << "Number of children for each mRNA: " << std::endl;
+    // Go down to the first leaf (first child of the first mRNA)
+    while (goDown(it))
+        ;
+    while (!atEnd(it))
+    {
+        ++count;
+        // Iterate over all siblings and count
+        while (goRight(it))
+            ++count;
+        std::cout << count << std::endl;
+        count = 0;
+        // Jump to the next mRNA or gene, go down to its first leaf and count it
+        if (!atEnd(it))
+        {
+            goNext(it);
+            if (!atEnd(it))
+                while (goDown(it))
+                    ;
+        }
+    }
+    return 0;
+}
diff --git a/demos/tutorial/annotation_store/assignment_3_solution.cpp b/demos/tutorial/annotation_store/assignment_3_solution.cpp
new file mode 100644
index 0000000..8c0fe5e
--- /dev/null
+++ b/demos/tutorial/annotation_store/assignment_3_solution.cpp
@@ -0,0 +1,28 @@
+#include <fstream>
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+int main()
+{
+    FragmentStore<> store;
+    GffFileIn file("assignment_annotations.gtf");
+    readRecords(store, file);
+    // Create iterator
+    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
+    it = begin(store, AnnotationTree<>());
+    // Iterate to the first annotation of type "exon"
+    while (!atEnd(it) && getType(it) != "exon")
+        goNext(it);
+    // Output:
+    std::cout << "  type: " << getType(it) << std::endl;
+    std::cout << "  begin position: " << getAnnotation(it).beginPos << std::endl;
+    std::cout << "  end position: " << getAnnotation(it).endPos << std::endl;
+    std::cout << "  id: " << value(it) << std::endl;
+    std::cout << "  parent id: " << getAnnotation(it).parentId << std::endl;
+    std::cout << "  parent name: " << getParentName(it) << std::endl;
+    return 0;
+}
diff --git a/demos/tutorial/annotation_store/assignment_4_solution.cpp b/demos/tutorial/annotation_store/assignment_4_solution.cpp
new file mode 100644
index 0000000..1bfd472
--- /dev/null
+++ b/demos/tutorial/annotation_store/assignment_4_solution.cpp
@@ -0,0 +1,50 @@
+#include <fstream>
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+int main()
+{
+    FragmentStore<> store;
+    GffFileIn file("assignment_annotations.gtf");
+    readRecords(store, file);
+    // Create iterator
+    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
+    it = begin(store, AnnotationTree<>());
+    unsigned countGenes = 0;
+    unsigned countmRNAs = 0;
+    unsigned countExons = 0;
+    unsigned length = 0;
+    // Iterate over annotation tree and count different elements and compute exon lengths
+    while (!atEnd(it))
+    {
+        if (getType(it) == "gene")
+        {
+            ++countGenes;
+        }
+        else if (getType(it) == "mRNA")
+        {
+            ++countmRNAs;
+        }
+        else if (getType(it) == "exon")
+        {
+            ++countExons;
+            length += abs((int)getAnnotation(it).endPos - (int)getAnnotation(it).beginPos);
+        }
+        goNext(it);
+    }
+    if (countGenes == 0u)  // prevent div-by-zero below
+        countGenes = 1;
+    if (countmRNAs == 0u)  // prevent div-by-zero below
+        countmRNAs = 1;
+    if (countExons == 0u)  // prevent div-by-zero below
+        countExons = 1;
+    // Ouput some stats:
+    std::cout << "Average number of mRNAs for genes: " << (float)countmRNAs / (float)countGenes << std::endl;
+    std::cout << "Average number of exons for mRNAs: " << (float)countExons / (float)countmRNAs << std::endl;
+    std::cout << "Average length of exons: " << (float)length / (float)countExons << std::endl;
+    return 0;
+}
diff --git a/demos/tutorial/genome_annotations/assignment_annotations.gtf b/demos/tutorial/annotation_store/assignment_annotations.gtf
similarity index 100%
rename from demos/tutorial/genome_annotations/assignment_annotations.gtf
rename to demos/tutorial/annotation_store/assignment_annotations.gtf
diff --git a/demos/tutorial/sam_and_bam_io/example.sam b/demos/tutorial/bam_io/example.sam
similarity index 100%
rename from demos/tutorial/sam_and_bam_io/example.sam
rename to demos/tutorial/bam_io/example.sam
diff --git a/demos/tutorial/bam_io/example1.cpp b/demos/tutorial/bam_io/example1.cpp
new file mode 100644
index 0000000..6ef26c5
--- /dev/null
+++ b/demos/tutorial/bam_io/example1.cpp
@@ -0,0 +1,27 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input file, BamFileIn can read SAM and BAM files.
+    BamFileIn bamFileIn("example.sam");
+
+    // Open output file, BamFileOut accepts also an ostream and a format tag.
+    BamFileOut bamFileOut(std::cout, Sam());
+
+    // Copy header.
+    BamHeader header;
+    readHeader(header, bamFileIn);
+    writeHeader(bamFileOut, header);
+
+    // Copy records.
+    BamAlignmentRecord record;
+    while (!atEnd(bamFileIn))
+    {
+        readRecord(record, bamFileIn);
+        writeRecord(bamFileOut, record);
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/example2.cpp b/demos/tutorial/bam_io/example2.cpp
new file mode 100644
index 0000000..3cc0743
--- /dev/null
+++ b/demos/tutorial/bam_io/example2.cpp
@@ -0,0 +1,21 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    BamFileIn bamFileIn("example.bam");
+
+    BamHeader header;
+    readHeader(header, bamFileIn);
+
+    typedef FormattedFileContext<BamFileIn, void>::Type TBamContext;
+
+    TBamContext const & bamContext = context(bamFileIn);
+
+    for (unsigned i = 0; i < length(contigNames(bamContext)); ++i)
+        std::cout << contigNames(bamContext)[i] << '\t'
+                  << contigLengths(bamContext)[i] << '\n';
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/example3.cpp b/demos/tutorial/bam_io/example3.cpp
new file mode 100644
index 0000000..b9a2aa4
--- /dev/null
+++ b/demos/tutorial/bam_io/example3.cpp
@@ -0,0 +1,32 @@
+#include <seqan/seq_io.h>  // for FaiIndex
+#include <seqan/bam_io.h>  // for BamStream
+
+using namespace seqan;
+
+int main()
+{
+    // Open FASTA, FAI, and BAM file.  Build FAI if necessary.
+    FaiIndex faiIndex;
+    if (!open(faiIndex, "filename.fasta"))          // try to load
+        if (!build(faiIndex, "filename.fasta"))     // try to build
+            return 1;
+
+    // Error.
+    BamFileIn bamFileIn("file.bam");
+    BamHeader header;
+    readHeader(header, bamFileIn);
+
+    // Build mapping from bamSeqIds to fastaSeqIds;
+    String<int> mapping;
+    resize(mapping, length(contigNames(context(bamFileIn))), -1);
+    for (unsigned i = 0; i < length(contigNames(context(bamFileIn))); ++i)
+        if (!getIdByName(mapping[i], faiIndex, contigNames(context(bamFileIn))[i]))
+        {
+            std::cerr << "ERROR: Sequence "
+                      << contigNames(context(bamFileIn))[i]
+                      << "unknown in FASTA Index.\n";
+            return 1;
+        }
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/example7.cpp b/demos/tutorial/bam_io/example7.cpp
new file mode 100644
index 0000000..133cae0
--- /dev/null
+++ b/demos/tutorial/bam_io/example7.cpp
@@ -0,0 +1,100 @@
+#include <iostream>
+#include <fstream>
+
+#include <seqan/sequence.h>
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const * argv[])
+{
+    if (argc != 7)
+    {
+        std::cerr << "USAGE: " << argv[0] << " IN.bam IN.bam.bai REF BEGIN END COUNT\n";
+        return 1;
+    }
+
+    // Open BamFileIn for reading.
+    BamFileIn inFile;
+    if (!open(inFile, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open " << argv[1] << " for reading.\n";
+        return 1;
+    }
+
+    // Read BAI index.
+    BamIndex<Bai> baiIndex;
+    if (!open(baiIndex, argv[2]))
+    {
+        std::cerr << "ERROR: Could not read BAI index file " << argv[2] << "\n";
+        return 1;
+    }
+
+    // Read header.
+    BamHeader header;
+    readHeader(header, inFile);
+
+    // Translate from reference name to rID.
+    int rID = 0;
+    if (!getIdByName(rID, contigNamesCache(context(inFile)), argv[3]))
+    {
+        std::cerr << "ERROR: Reference sequence named " << argv[3] << " not known.\n";
+        return 1;
+    }
+
+    // Translate BEGIN and END arguments to number, 1-based to 0-based.
+    int beginPos = 0, endPos = 0;
+    if (!lexicalCast(beginPos, argv[4]) || beginPos <= 0)
+    {
+        std::cerr << "ERROR: Begin position " << argv[4] << " is invalid.\n";
+        return 1;
+    }
+    beginPos -= 1;  // 1-based to 0-based.
+    if (!lexicalCast(endPos, argv[5]) || endPos <= 0)
+    {
+        std::cerr << "ERROR: End position " << argv[5] << " is invalid.\n";
+        return 1;
+    }
+    endPos -= 1;  // 1-based to 0-based.
+
+    // Translate number of elements to print to number.
+    int num = 0;
+    if (!lexicalCast(num, argv[6]))
+    {
+        std::cerr << "ERROR: Count " << argv[6] << " is invalid.\n";
+        return 1;
+    }
+
+    // Jump the BGZF stream to this position.
+    bool hasAlignments = false;
+    if (!jumpToRegion(inFile, hasAlignments, rID, beginPos, endPos, baiIndex))
+    {
+        std::cerr << "ERROR: Could not jump to " << argv[3] << ":" << argv[4] << "\n";
+        return 1;
+    }
+    if (!hasAlignments)
+        return 0;  // No alignments here.
+
+    // Seek linearly to the selected position.
+    BamAlignmentRecord record;
+    int numPrinted = 0;
+    BamFileOut out(inFile, std::cout, Sam());
+
+    while (!atEnd(inFile) && numPrinted < num)
+    {
+        readRecord(record, inFile);
+
+        // If we are on the next reference or at the end already then we stop.
+        if (record.rID == -1 || record.rID > rID || record.beginPos >= endPos)
+            break;
+        // If we are left of the selected position then we skip this record.
+        if (record.beginPos < beginPos)
+            continue;
+
+        // Otherwise, we print it to the user.
+        numPrinted++;
+        writeRecord(out, record);
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution1.cpp b/demos/tutorial/bam_io/solution1.cpp
new file mode 100644
index 0000000..c8a627f
--- /dev/null
+++ b/demos/tutorial/bam_io/solution1.cpp
@@ -0,0 +1,39 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input file, BamFileIn can read SAM and BAM files.
+    BamFileIn bamFileIn;
+    if (!open(bamFileIn, "example.sam"))
+    {
+        std::cerr << "ERROR: Could not open example.sam!" << std::endl;
+        return 1;
+    }
+    // Open output file, BamFileOut accepts also an ostream and a format tag.
+    BamFileOut bamFileOut(context(bamFileIn), std::cout, Sam());
+
+    try
+    {
+        // Copy header.
+        BamHeader header;
+        readHeader(header, bamFileIn);
+        writeHeader(bamFileOut, header);
+
+        // Copy records.
+        BamAlignmentRecord record;
+        while (!atEnd(bamFileIn))
+        {
+            readRecord(record, bamFileIn);
+            writeRecord(bamFileOut, record);
+        }
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution2.cpp b/demos/tutorial/bam_io/solution2.cpp
new file mode 100644
index 0000000..3423bab
--- /dev/null
+++ b/demos/tutorial/bam_io/solution2.cpp
@@ -0,0 +1,41 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input file.
+    BamFileIn bamFileIn;
+    if (!open(bamFileIn, "example.sam"))
+    {
+        std::cerr << "ERROR: Could not open example.sam!" << std::endl;
+        return 1;
+    }
+
+    unsigned numUnmappedReads = 0;
+
+    try
+    {
+        // Read header.
+        BamHeader header;
+        readHeader(header, bamFileIn);
+
+        // Read records.
+        BamAlignmentRecord record;
+        while (!atEnd(bamFileIn))
+        {
+            readRecord(record, bamFileIn);
+            if (hasFlagUnmapped(record))
+                numUnmappedReads += 1;
+        }
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    std::cout << "Number of unmapped reads: " << numUnmappedReads << "\n";
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution3.cpp b/demos/tutorial/bam_io/solution3.cpp
new file mode 100644
index 0000000..0907be9
--- /dev/null
+++ b/demos/tutorial/bam_io/solution3.cpp
@@ -0,0 +1,44 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input file.
+    BamFileIn bamFileIn;
+    if (!open(bamFileIn, "example.sam"))
+    {
+        std::cerr << "ERROR: Could not open example.sam!" << std::endl;
+        return 1;
+    }
+
+    unsigned numXXtags = 0;
+
+    try
+    {
+        // Read header.
+        BamHeader header;
+        readHeader(header, bamFileIn);
+
+        // Rear records.
+        BamAlignmentRecord record;
+        while (!atEnd(bamFileIn))
+        {
+            readRecord(record, bamFileIn);
+            BamTagsDict tagsDict(record.tags);
+
+            unsigned tagIdx = 0;
+            if (findTagKey(tagIdx, tagsDict, "XX"))
+                numXXtags += 1;
+        }
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    std::cout << "Number of records with the XX tag: " << numXXtags << "\n";
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution4.cpp b/demos/tutorial/bam_io/solution4.cpp
new file mode 100644
index 0000000..11f8395
--- /dev/null
+++ b/demos/tutorial/bam_io/solution4.cpp
@@ -0,0 +1,67 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    Dna5String ref = "CCCGATGAGCACACGATCACACGATGACA";
+
+    // --------------------------------------------------------
+    // Build header.
+    // --------------------------------------------------------
+    BamFileOut bamFileOut(std::cout, Sam());
+
+    // Fill sequenceInfos.
+    assignValueById(contigLengths(context(bamFileOut)),
+                    nameToId(contigNamesCache(context(bamFileOut)), "REF"),
+                    length(ref));
+
+    // Fill header records.
+    BamHeader header;
+    resize(header, 1);
+    // @HD header.
+    header[0].type = BAM_HEADER_FIRST;
+    resize(header[0].tags, 1);
+    // @HD header, tag/value: VN:1.4.
+    header[0].tags[0].i1 = "VN";
+    header[0].tags[0].i2 = "1.4";
+
+    writeHeader(bamFileOut, header);
+
+    // --------------------------------------------------------
+    // Write out records.
+    // --------------------------------------------------------
+
+    BamAlignmentRecord record;
+
+    for (unsigned i = 0; i + 12 - 1 < length(ref); ++i)
+    {
+        clear(record);
+        // Set members that are the same for all records.
+        record.rID = 0;
+        record.flag = 0;
+        resize(record.cigar, 1);
+        record.cigar[0].operation = '=';
+        record.cigar[0].count = 12;
+
+        // The query name is REF_${START}_${END}.
+        record.qName = "REF_";
+        appendNumber(record.qName, i);
+        appendValue(record.qName, '_');
+        appendNumber(record.qName, i + 12);
+        // Set position.
+        record.beginPos = i;
+        // Set sequence.
+        record.seq = infix(ref, i, i + 12);
+
+        // Write "NH" tag.
+        BamTagsDict tagsDict(record.tags);
+        setTagValue(tagsDict, "NH", 1);
+
+        writeRecord(bamFileOut, record);
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution5.cpp b/demos/tutorial/bam_io/solution5.cpp
new file mode 100644
index 0000000..3eeb9ff
--- /dev/null
+++ b/demos/tutorial/bam_io/solution5.cpp
@@ -0,0 +1,47 @@
+#include <iostream>
+#include <fstream>
+
+#include <seqan/sequence.h>
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const * argv[])
+{
+    if (argc != 3)
+    {
+        std::cerr << "USAGE: " << argv[0] << " IN.[sam|bam] OUT.[sam|bam]\n";
+        return 1;
+    }
+
+    // Open BamFileIn for reading.
+    BamFileIn inFile;
+    if (!open(inFile, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open " << argv[1] << " for reading.\n";
+        return 1;
+    }
+
+    // Open BamFileOut for writing. Give inFile to share its BamIoContext
+    BamFileOut outFile(inFile);
+    if (!open(outFile, argv[2]))
+    {
+        std::cerr << "ERROR: Could not open " << argv[2] << " for writing.\n";
+        return 1;
+    }
+
+    // Read header.
+    BamHeader header;
+    readHeader(header, inFile);
+    writeHeader(outFile, header);
+
+    // Copy over the alignment records.
+    BamAlignmentRecord record;
+    while (!atEnd(inFile))
+    {
+        readRecord(record, inFile);
+        writeRecord(outFile, record);
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution6.cpp b/demos/tutorial/bam_io/solution6.cpp
new file mode 100644
index 0000000..e688bef
--- /dev/null
+++ b/demos/tutorial/bam_io/solution6.cpp
@@ -0,0 +1,40 @@
+#include <iostream>
+#include <fstream>
+
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc != 3)
+    {
+        std::cerr << "USAGE: " << argv[0] << " IN.bam OUT.bin\n";
+        return 1;
+    }
+
+    // Open BGZF file for reading.
+    typedef VirtualStream<char, Input> TInStream;
+    TInStream inStream;
+    if (!open(inStream, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open " << argv[1] << " for reading.\n";
+        return 1;
+    }
+
+    // Open std::fstream for writing.
+    std::fstream outStream(argv[2], std::ios::binary | std::ios::out);
+    if (!outStream.good())
+    {
+        std::cerr << "ERROR: Could not open " << argv[2] << " for writing.\n";
+        return 1;
+    }
+
+    // Copy over data.
+    DirectionIterator<TInStream, Input>::Type reader = directionIterator(inStream, Input());
+    while (!atEnd(reader))
+        read(outStream, reader, 1000);
+
+    return 0;
+}
diff --git a/demos/tutorial/bam_io/solution7.cpp b/demos/tutorial/bam_io/solution7.cpp
new file mode 100644
index 0000000..1bbb7b4
--- /dev/null
+++ b/demos/tutorial/bam_io/solution7.cpp
@@ -0,0 +1,43 @@
+#include <iostream>
+#include <fstream>
+
+#include <seqan/sequence.h>
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc != 2)
+    {
+        std::cerr << "USAGE: " << argv[0] << " IN.bam\n";
+        return 1;
+    }
+
+    // Open BGZF Stream for reading.
+    typedef VirtualStream<char, Input> TInStream;
+    TInStream inStream;
+    if (!open(inStream, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open " << argv[1] << " for reading.\n";
+        return 1;
+    }
+
+    // Setup name store, cache, and BAM I/O context.
+    typedef StringSet<CharString> TNameStore;
+    typedef NameStoreCache<TNameStore>   TNameStoreCache;
+    typedef BamIOContext<TNameStore>     TBamIOContext;
+    TNameStore      contigNames;
+    TNameStoreCache contigNamesCache(contigNames);
+    TBamIOContext   context(contigNames, contigNamesCache);
+
+    // Read header.
+    BamHeader header;
+    DirectionIterator<TInStream, Input>::Type reader = directionIterator(inStream, Input());
+    readHeader(header, context, reader, Bam());
+
+    // Write out header again.
+    write(std::cout, header, context, Sam());
+
+    return 0;
+}
diff --git a/demos/tutorial/base_io/example1.cpp b/demos/tutorial/base_io/example1.cpp
new file mode 100644
index 0000000..d5df4b1
--- /dev/null
+++ b/demos/tutorial/base_io/example1.cpp
@@ -0,0 +1,38 @@
+//![include]
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main()
+{
+//![include]
+//![ctor]
+    // Open input BAM file, BamFileIn supports both SAM and BAM files.
+    BamFileIn bamFileIn("example.bam");
+//![ctor]
+
+//![open]
+    // Open output SAM file by passing the filename to open.
+    BamFileOut samFileOut;
+    open(samFileOut, "example.sam");
+//![open]
+
+//![header]
+    // Copy header.
+    BamHeader header;
+    readHeader(header, bamFileIn);
+    writeHeader(samFileOut, header);
+//![header]
+
+//![records]
+    // Copy all records.
+    BamAlignmentRecord record;
+    while (!atEnd(bamFileIn))
+    {
+        readRecord(record, bamFileIn);
+        writeRecord(samFileOut, record);
+    }
+
+    return 0;
+}
+//![records]
diff --git a/demos/tutorial/base_io/solution1.cpp b/demos/tutorial/base_io/solution1.cpp
new file mode 100644
index 0000000..52653cd
--- /dev/null
+++ b/demos/tutorial/base_io/solution1.cpp
@@ -0,0 +1,57 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 3)
+    {
+        std::cerr << "USAGE: " << argv[0] << " INPUT.bam OUTPUT.sam" << "\n";
+        return 1;
+    }
+
+    // Open input BAM file.
+    BamFileIn bamFileIn;
+    if (!open(bamFileIn, argv[1]))
+    {
+        std::cerr << "ERROR: could not open input file " << argv[1] << ".\n";
+        return 1;
+    }
+
+    // Open output SAM file.
+    BamFileOut samFileOut;
+    if (!open(samFileOut, argv[2]))
+    {
+        std::cerr << "ERROR: could not open output file " << argv[2] << ".\n";
+        return 1;
+    }
+
+    // Copy header.
+    BamHeader header;
+    try
+    {
+        readHeader(header, bamFileIn);
+        writeHeader(samFileOut, header);
+    }
+    catch (IOError const & e)
+    {
+        std::cerr << "ERROR: could not copy header. " << e.what() << "\n";
+    }
+
+    // Copy all records.
+    BamAlignmentRecord record;
+    while (!atEnd(bamFileIn))
+    {
+        try
+        {
+            readHeader(header, bamFileIn);
+            writeRecord(samFileOut, record);
+        }
+        catch (IOError const & e)
+        {
+            std::cerr << "ERROR: could not copy record. " << e.what() << "\n";
+        }
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/base_io/solution2.cpp b/demos/tutorial/base_io/solution2.cpp
new file mode 100644
index 0000000..eb9a7c6
--- /dev/null
+++ b/demos/tutorial/base_io/solution2.cpp
@@ -0,0 +1,65 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 3)
+    {
+        std::cerr << "USAGE: " << argv[0] << " INPUT.bam OUTPUT.sam" << "\n";
+        return 1;
+    }
+
+    // Open input BAM file.
+    BamFileIn bamFileIn;
+    if (!open(bamFileIn, argv[1]))
+    {
+        std::cerr << "ERROR: could not open input file " << argv[1] << ".\n";
+        return 1;
+    }
+
+    // Open output SAM file.
+    BamFileOut samFileOut;
+    if (!open(samFileOut, argv[2]))
+    {
+        std::cerr << "ERROR: could not open output file " << argv[2] << ".\n";
+        return 1;
+    }
+
+    // Copy header.
+    BamHeader header;
+    try
+    {
+        readHeader(header, bamFileIn);
+        writeHeader(samFileOut, header);
+    }
+    catch (ParseError const & e)
+    {
+        std::cerr << "ERROR: input header is badly formatted. " << e.what() << "\n";
+    }
+    catch (IOError const & e)
+    {
+        std::cerr << "ERROR: could not copy header. " << e.what() << "\n";
+    }
+
+    // Copy all records.
+    BamAlignmentRecord record;
+    while (!atEnd(bamFileIn))
+    {
+        try
+        {
+            readHeader(header, bamFileIn);
+            writeRecord(samFileOut, record);
+        }
+        catch (ParseError const & e)
+        {
+            std::cerr << "ERROR: input record is badly formatted. " << e.what() << "\n";
+        }
+        catch (IOError const & e)
+        {
+            std::cerr << "ERROR: could not copy record. " << e.what() << "\n";
+        }
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/base_io/solution3.cpp b/demos/tutorial/base_io/solution3.cpp
new file mode 100644
index 0000000..c69128a
--- /dev/null
+++ b/demos/tutorial/base_io/solution3.cpp
@@ -0,0 +1,73 @@
+#include <seqan/bam_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 2)
+    {
+        std::cerr << "USAGE: " << argv[0] << " INPUT.bam [OUTPUT.sam]" << "\n";
+        return 1;
+    }
+
+    // Open input BAM stream or file.
+    BamFileIn bamFileIn;
+    if (isEqual(CharString(argv[1]), "-"))
+    {
+        open(bamFileIn, std::cin);
+    }
+    else if (!open(bamFileIn, argv[1]))
+    {
+        std::cerr << "ERROR: could not open input file " << argv[1] << ".\n";
+        return 1;
+    }
+
+    // Open output SAM stream or file.
+    BamFileOut samFileOut;
+    if (argc < 3)
+    {
+        open(samFileOut, std::cout, Sam());
+    }
+    else if (!open(samFileOut, argv[2]))
+    {
+        std::cerr << "ERROR: could not open output file " << argv[2] << ".\n";
+        return 1;
+    }
+
+    // Copy header.
+    BamHeader header;
+    try
+    {
+        readHeader(header, bamFileIn);
+        writeHeader(samFileOut, header);
+    }
+    catch (ParseError const & e)
+    {
+        std::cerr << "ERROR: input header is badly formatted. " << e.what() << "\n";
+    }
+    catch (IOError const & e)
+    {
+        std::cerr << "ERROR: could not copy header. " << e.what() << "\n";
+    }
+
+    // Copy all records.
+    BamAlignmentRecord record;
+    while (!atEnd(bamFileIn))
+    {
+        try
+        {
+            readHeader(header, bamFileIn);
+            writeRecord(samFileOut, record);
+        }
+        catch (ParseError const & e)
+        {
+            std::cerr << "ERROR: input record is badly formatted. " << e.what() << "\n";
+        }
+        catch (IOError const & e)
+        {
+            std::cerr << "ERROR: could not copy record. " << e.what() << "\n";
+        }
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/basics/CMakeLists.txt b/demos/tutorial/basics/CMakeLists.txt
new file mode 100644
index 0000000..455eace
--- /dev/null
+++ b/demos/tutorial/basics/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_basics)
+
+seqan_setup_apps(demos_tutorials_basics)
+seqan_add_all_executables(demos_tutorials_basics tutorial_)
diff --git a/demos/tutorial/basics/allocator.cpp.stdout b/demos/tutorial/basics/allocator.cpp.stdout
deleted file mode 100644
index ab914df..0000000
--- a/demos/tutorial/basics/allocator.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-Allocating and clearing 100000 times blocks of size 10 with MultiPool Allocator took 0.00160217
-Allocating and clearing 100000 times blocks of size 10 with Standard Allocator took 0.023572
-Allocating and clearing 100000 times blocks of size 100 with MultiPool Allocator took 0.0129499
-Allocating and clearing 100000 times blocks of size 100 with Standard Allocator took 0.0315518
-Allocating and clearing 100000 times blocks of size 1000 with MultiPool Allocator took 0.132747
-Allocating and clearing 100000 times blocks of size 1000 with Standard Allocator took 0.119664
diff --git a/demos/tutorial/basics/show_alphabets.cpp.stdout b/demos/tutorial/basics/show_alphabets.cpp.stdout
deleted file mode 100644
index e7f0050..0000000
--- a/demos/tutorial/basics/show_alphabets.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-0,A  1,B  2,C  3,D  4,E  5,F  6,G  7,H  8,I  9,J  10,K  11,L  12,M  13,N  14,O  15,P  16,Q  17,R  18,S  19,T  20,U  21,V  22,W  23,Y  24,Z  25,X  26,*  
-0,A  1,C  2,G  3,T  
-0,A  1,C  2,G  3,T  4,N  
diff --git a/demos/tutorial/basics/strings.cpp.stdout b/demos/tutorial/basics/strings.cpp.stdout
deleted file mode 100644
index ac371b8..0000000
--- a/demos/tutorial/basics/strings.cpp.stdout
+++ /dev/null
@@ -1,28 +0,0 @@
-M,Q,D,A,V,K,A,P,M,N,A,F,I,V,W,S,A,D,Q,A,A,K,M,A,L,E,N,
-A:7
-B:0
-C:0
-D:2
-E:1
-F:1
-G:0
-H:0
-I:1
-J:0
-K:2
-L:1
-M:3
-N:2
-O:0
-P:1
-Q:2
-R:0
-S:1
-T:0
-U:0
-V:2
-W:1
-Y:0
-Z:0
-X:0
-*:0
diff --git a/demos/tutorial/metafunctions/swap.cpp b/demos/tutorial/basics/swap.cpp
similarity index 100%
rename from demos/tutorial/metafunctions/swap.cpp
rename to demos/tutorial/basics/swap.cpp
diff --git a/demos/tutorial/bed_io/example.bed b/demos/tutorial/bed_io/example.bed
deleted file mode 100644
index 683fbdd..0000000
--- a/demos/tutorial/bed_io/example.bed
+++ /dev/null
@@ -1,5 +0,0 @@
-chr1	66999824	67210768	NM_032291	0	+	6700004167208778	0	25	227,64,25,72,57,55,176,12,12,25,52,86,93,75,501,128,127,60,112,156,133,203,65,165,2013,	0,91705,98928,101802,105635,108668,109402,126371,133388,136853,137802,139139,142862,145536,147727,155006,156048,161292,185152,195122,199606,205193,206516,207130,208931,
-chr1	48998526	50489626	NM_032785	0	-	4899984450489468	0	14	1439,27,97,163,153,112,115,90,40,217,95,125,123,192,	0,2035,6787,54149,57978,101638,120482,130297,334336,512729,712915,1164458,1318541,1490908,
-chr1	16767166	16786584	NM_018090	0	+	1676725616785385	0	8	182,101,105,82,109,178,76,1248,	0,2960,7198,7388,8421,11166,15146,18170,
-chr1	33546713	33585995	NM_052998	0	+	3354785033585783	0	12	182,121,212,177,174,173,135,166,163,113,215,351,0,275,488,1065,2841,10937,12169,13435,15594,16954,36789,38931,
-chr1	16767166	16786584	NM_001145278	0	+	1676725616785385	0	8	104,101,105,82,109,178,76,1248,	0,2960,7198,7388,8421,11166,15146,18170,
diff --git a/demos/tutorial/bed_io/example1.cpp b/demos/tutorial/bed_io/example1.cpp
index a1c6ff1..981b840 100644
--- a/demos/tutorial/bed_io/example1.cpp
+++ b/demos/tutorial/bed_io/example1.cpp
@@ -1,10 +1,11 @@
 #include <seqan/bed_io.h>
+
 using namespace seqan;
 
 int main()
 {
     // Open input bed file.
-    BedFileIn bedIn(toCString(getAbsolutePath("/demos/tutorial/bed_io/example.bed")));
+    BedFileIn bedIn("example.bed");
 
     // Attach to standard output.
     BedFileOut bedOut(std::cout, Bed());
diff --git a/demos/tutorial/bed_io/example1.cpp.stdout b/demos/tutorial/bed_io/example1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/bed_io/solution1.cpp b/demos/tutorial/bed_io/solution1.cpp
index dcddcbf..ddc3a9e 100644
--- a/demos/tutorial/bed_io/solution1.cpp
+++ b/demos/tutorial/bed_io/solution1.cpp
@@ -6,7 +6,7 @@ int main()
 {
     // Open input bed file.
     BedFileIn bedIn;
-    if (!open(bedIn, toCString(getAbsolutePath("/demos/tutorial/bed_io/example.bed"))))
+    if (!open(bedIn, "example.bed"))
     {
         std::cerr << "ERROR: Could not open example.bed" << std::endl;
         return 1;
diff --git a/demos/tutorial/bed_io/solution1.cpp.stdout b/demos/tutorial/bed_io/solution1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/bed_io/solution2.cpp b/demos/tutorial/bed_io/solution2.cpp
index 1212ff8..fbc8a12 100644
--- a/demos/tutorial/bed_io/solution2.cpp
+++ b/demos/tutorial/bed_io/solution2.cpp
@@ -7,7 +7,7 @@ int main()
 {
     // Open input bed file.
     BedFileIn bedIn;
-    if (!open(bedIn, toCString(getAbsolutePath("/demos/tutorial/bed_io/example.bed"))))
+    if (!open(bedIn, "example.bed"))
     {
         std::cerr << "ERROR: Could not open example.bed\n";
         return 1;
diff --git a/demos/tutorial/bed_io/solution2.cpp.stdout b/demos/tutorial/bed_io/solution2.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/bed_io/solution3.cpp.stdout b/demos/tutorial/bed_io/solution3.cpp.stdout
deleted file mode 100644
index 19a3a54..0000000
--- a/demos/tutorial/bed_io/solution3.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-chr7	127471195	127472363	Pos1	0	+
-chr7	127472362	127473530	Pos2	0	+
diff --git a/demos/tutorial/blast_io/read_assignment.cpp.stdout b/demos/tutorial/blast_io/read_assignment.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/blast_io/write_assignment.cpp.stdout b/demos/tutorial/blast_io/write_assignment.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/consensus_alignment/with_positions.cpp b/demos/tutorial/consensus/with_positions.cpp
similarity index 100%
rename from demos/tutorial/consensus_alignment/with_positions.cpp
rename to demos/tutorial/consensus/with_positions.cpp
diff --git a/demos/tutorial/consensus_alignment/with_positions.cpp.stdout b/demos/tutorial/consensus/with_positions.cpp.stdout
similarity index 100%
rename from demos/tutorial/consensus_alignment/with_positions.cpp.stdout
rename to demos/tutorial/consensus/with_positions.cpp.stdout
diff --git a/demos/tutorial/consensus_alignment/without_positions.cpp b/demos/tutorial/consensus/without_positions.cpp
similarity index 100%
rename from demos/tutorial/consensus_alignment/without_positions.cpp
rename to demos/tutorial/consensus/without_positions.cpp
diff --git a/demos/tutorial/consensus_alignment/without_positions.cpp.stdout b/demos/tutorial/consensus/without_positions.cpp.stdout
similarity index 100%
rename from demos/tutorial/consensus_alignment/without_positions.cpp.stdout
rename to demos/tutorial/consensus/without_positions.cpp.stdout
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/NC_001405.fasta b/demos/tutorial/custom_io/NC_001405.fasta
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/NC_001405.fasta
rename to demos/tutorial/custom_io/NC_001405.fasta
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/NC_001460.fasta b/demos/tutorial/custom_io/NC_001460.fasta
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/NC_001460.fasta
rename to demos/tutorial/custom_io/NC_001460.fasta
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/blast_example.txt b/demos/tutorial/custom_io/blast_example.txt
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/blast_example.txt
rename to demos/tutorial/custom_io/blast_example.txt
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/example1.cpp b/demos/tutorial/custom_io/example1.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/example1.cpp
rename to demos/tutorial/custom_io/example1.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/gff2_example.txt b/demos/tutorial/custom_io/gff2_example.txt
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/gff2_example.txt
rename to demos/tutorial/custom_io/gff2_example.txt
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/newick_example.txt b/demos/tutorial/custom_io/newick_example.txt
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/newick_example.txt
rename to demos/tutorial/custom_io/newick_example.txt
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/parse_blastn.cpp b/demos/tutorial/custom_io/parse_blastn.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/parse_blastn.cpp
rename to demos/tutorial/custom_io/parse_blastn.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/parse_gff2.cpp b/demos/tutorial/custom_io/parse_gff2.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/parse_gff2.cpp
rename to demos/tutorial/custom_io/parse_gff2.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/reader_demo.cpp b/demos/tutorial/custom_io/reader_demo.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/reader_demo.cpp
rename to demos/tutorial/custom_io/reader_demo.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/solution1.cpp b/demos/tutorial/custom_io/solution1.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/solution1.cpp
rename to demos/tutorial/custom_io/solution1.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/solution2.cpp b/demos/tutorial/custom_io/solution2.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/solution2.cpp
rename to demos/tutorial/custom_io/solution2.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/solution3.cpp b/demos/tutorial/custom_io/solution3.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/solution3.cpp
rename to demos/tutorial/custom_io/solution3.cpp
diff --git a/demos/unassigned_or_unused/tutorials_custim_io/solution4.cpp b/demos/tutorial/custom_io/solution4.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorials_custim_io/solution4.cpp
rename to demos/tutorial/custom_io/solution4.cpp
diff --git a/demos/tutorial/journaled_set/example_join.cpp b/demos/tutorial/data_journaling/example_join.cpp
similarity index 100%
rename from demos/tutorial/journaled_set/example_join.cpp
rename to demos/tutorial/data_journaling/example_join.cpp
diff --git a/demos/tutorial/data_journaling/example_journal_string_basic.cpp b/demos/tutorial/data_journaling/example_journal_string_basic.cpp
new file mode 100644
index 0000000..d4f6f05
--- /dev/null
+++ b/demos/tutorial/data_journaling/example_journal_string_basic.cpp
@@ -0,0 +1,47 @@
+//![main]
+#include <seqan/stream.h>
+#include <seqan/sequence_journaled.h>
+
+using namespace seqan;
+
+int main()
+{
+//![main]
+//![typedef]
+    typedef String<char, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournaledString;
+    typedef Host<TJournaledString>::Type THost;
+//![typedef]
+
+//![init]
+    String<char> hostStr = "thisisahostsequence";
+    TJournaledString journalStr;
+    setHost(journalStr, hostStr);
+
+    std::cout << "After creating the Journaled String:" << std::endl;
+    std::cout << "Host: " << host(journalStr) << std::endl;
+    std::cout << "Journal: " << journalStr << std::endl;
+    std::cout << "Nodes: " << journalStr._journalEntries << std::endl;
+    std::cout << std::endl;
+//![init]
+
+//![modification]
+    insert(journalStr, 7, "modified");
+    erase(journalStr, 19, 27);
+
+    std::cout << "After modifying the Journaled String:" << std::endl;
+    std::cout << "Host: " << host(journalStr) << std::endl;
+    std::cout << "Journal: " << journalStr << std::endl;
+    std::cout << "Nodes: " << journalStr._journalEntries << std::endl;
+    std::cout << std::endl;
+//![modification]
+
+//![flatten]
+    flatten(journalStr);
+    std::cout << "After flatten the Journaled String:" << std::endl;
+    std::cout << "Host: " << host(journalStr) << std::endl;
+    std::cout << "Journal: " << journalStr << std::endl;
+    std::cout << "Nodes: " << journalStr._journalEntries << std::endl;
+
+    return 0;
+}
+//![flatten]
diff --git a/demos/tutorial/data_journaling/example_online_search.cpp b/demos/tutorial/data_journaling/example_online_search.cpp
new file mode 100644
index 0000000..9e64b36
--- /dev/null
+++ b/demos/tutorial/data_journaling/example_online_search.cpp
@@ -0,0 +1,307 @@
+//![include]
+#include <iostream>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+//![include]
+
+//![searchAtBorder]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _searchAtBorder(String<int> & hitTarget,
+                     TJournalEntriesIterator & entriesIt,
+                     TJournal const & journal,
+                     TPattern const & pattern)
+{
+    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
+
+    // Define region before the border to the next node to search for the pattern.
+    TJournalIterator nodeIter = iter(journal, entriesIt->virtualPosition +
+                                     _max(0, (int) entriesIt->length - (int) length(pattern) + 1));
+    // Define end of search region.
+    TJournalIterator nodeEnd = iter(journal, _min(entriesIt->virtualPosition + entriesIt->length, length(journal) -
+                                                  length(pattern) + 1));
+    // Move step by step over search region.
+    if (nodeEnd == end(journal))
+        return;
+
+    for (; nodeIter != nodeEnd; ++nodeIter)
+    {
+        // Define compare iterator.
+        TJournalIterator verifyIter = nodeIter;
+        bool isHit = true;
+        // Compare pattern with current search window.
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
+        {
+            // Comparing the pattern value with the current value of the iterator.
+            if (pattern[posPattern] != getValue(verifyIter))
+            {
+                isHit = false;
+                break;
+            }
+        }
+        // Report hit if found.
+        if (isHit)
+            appendValue(hitTarget, position(nodeIter));
+    }
+}
+//![searchAtBorder]
+
+//![findInPatchNodePart1]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _findInPatchNode(String<int> & hitTarget,
+                      TJournalEntriesIterator & entriesIt,
+                      TJournal const & journal,
+                      TPattern const & pattern)
+{
+    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
+//![findInPatchNodePart1]
+
+//![findInPatchNodePart2]
+    // Search for pattern in the insertion node.
+    TJournalIterator patchIter = iter(journal, entriesIt->virtualPosition);
+    TJournalIterator patchEnd = patchIter + _max(0, (int)entriesIt->length - (int)length(pattern) + 1);
+    // Move step by step over search region.
+    for (; patchIter != patchEnd; ++patchIter)
+    {
+//![findInPatchNodePart2]
+//![findInPatchNodePart3]
+        TJournalIterator verifyIter = patchIter;
+        bool isHit = true;
+        // Search for pattern in the insertion node.
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
+        {
+            // Comparing the pattern value with the current value of the iterator.
+            if (pattern[posPattern] != getValue(verifyIter))
+            {
+                isHit = false;
+                break;
+            }
+        }
+        if (isHit)
+            appendValue(hitTarget, position(patchIter));
+    }
+}
+//![findInPatchNodePart3]
+
+//![findInOriginalNode]
+template <typename TJournalEntriesIterator, typename TPattern>
+void _findInOriginalNode(String<int> & hitTarget,
+                         TJournalEntriesIterator & entriesIt,
+                         TPattern const & pattern,
+                         String<int> const & refHits)
+{
+    // Define an Iterator which iterates over the reference hit set.
+    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
+
+    // Check if hits exist in the reference.
+    if (!empty(refHits))
+    {
+        // Find upper bound to physical position in sorted refHits.
+        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
+        // Make sure we do not miss hits that begin at physical position of current node.
+        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
+            --itHit;
+        // Store all hits that are found in the region of the reference which is covered by this node.
+        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
+        {
+            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
+            ++itHit;
+        }
+    }
+}
+//![findInOriginalNode]
+
+//![findPatternInJournalStringPart1]
+template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
+void findPatternInJournalString(String<int> & hitTarget,
+                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
+                                TPattern const & pattern,
+                                String<int> const & refHits)
+{
+    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
+    typedef typename JournalType<TJournal>::Type TJournalEntries;
+    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
+
+    if (length(pattern) > length(journal))
+        return;
+//![findPatternInJournalStringPart1]
+
+//![findPatternInJournalStringPart2]
+    TJournalEntriesIterator it = begin(journal._journalEntries);
+    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
+//![findPatternInJournalStringPart2]
+
+//![findPatternInJournalStringPart3]
+    while (it != itEnd)
+    {
+        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
+        {
+            _findInOriginalNode(hitTarget, it, pattern, refHits);
+        }
+        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
+        {
+            _findInPatchNode(hitTarget, it, journal, pattern);
+        }
+        // Scan the border for a possible match.
+        _searchAtBorder(hitTarget, it, journal, pattern);
+        ++it;
+    }
+}
+//![findPatternInJournalStringPart3]
+
+//![findPatternInReference]
+template <typename TString, typename TPattern>
+void findPatternInReference(String<int> & hits,
+                            TString const & reference,
+                            TPattern const & pattern)
+{
+    // Check whether the pattern fits into the sequence.
+    if (length(pattern) > length(reference))
+        return;
+
+    //
+    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
+    {
+        bool isHit = true;
+
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
+        {
+            if (pattern[posPattern] != reference[posPattern + pos])
+            {
+                isHit = false;
+                break;
+            }
+        }
+        // Report the position if found a hit.
+        if (isHit)
+            appendValue(hits, pos);
+    }
+}
+//![findPatternInReference]
+
+//![searchPatternPart1]
+template <typename TString, typename TPattern>
+void searchPattern(StringSet<String<int> > & hitSet,
+                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
+                   TPattern const & pattern)
+{
+    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
+    typedef typename Host<TJournalSet const>::Type THost;
+
+    // Check for valid initial state.
+    if (empty(host(journalSet)))
+    {
+        std::cout << "No reference set. Aborted search!" << std::endl;
+        return;
+    }
+
+    // Reset the hitSet to avoid phantom hits coming from a previous search.
+    clear(hitSet);
+    resize(hitSet, length(journalSet) + 1);
+//![searchPatternPart1]
+//![searchPatternPart2]
+    // Access the reference sequence.
+    THost & globalRef = host(journalSet);
+    // Search for pattern in the reference sequence.
+    findPatternInReference(hitSet[0], globalRef, pattern);
+//![searchPatternPart2]
+
+//![searchPatternPart3]
+    // Search for pattern in the journaled sequences.
+    for (unsigned i = 0; i < length(journalSet); ++i)
+        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
+}
+//![searchPatternPart3]
+
+//![laodAndJoin]
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & joinConfig)
+{
+    typedef typename Host<TString>::Type THost;
+
+    clear(journalSet);
+
+    String<char> seqId;
+    THost sequence;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(seqId, sequence, databaseFile);
+
+    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
+    createHost(journalSet, sequence);
+
+    // If there are more
+    while (!atEnd(databaseFile))
+    {
+        readRecord(seqId, sequence, databaseFile);
+        appendValue(journalSet, TString(sequence));
+        join(journalSet, length(journalSet) - 1, joinConfig);
+    }
+    return 0;
+}
+//![laodAndJoin]
+
+//![main]
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    TJournaledSet journalSet;
+    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
+    loadAndJoin(journalSet, databaseFile, joinConfig);
+
+    // Define a pattern and start search.
+    StringSet<String<int> > hitSet;
+    TSequence pattern = "GTGGT";
+    std::cout << "Search for: " << pattern << ":\n";
+    searchPattern(hitSet, journalSet, pattern);
+//![main]
+
+//![printResult]
+    if (empty(hitSet[0]))
+    {
+        std::cout << "No hit in reference " << std::endl;
+    }
+    else
+    {
+        std::cout << "Hit in reference " << " at ";
+        for (unsigned j = 0; j < length(hitSet[0]); ++j)
+            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
+    }
+    std::cout << std::endl;
+
+    for (unsigned i = 1; i < length(hitSet); ++i)
+    {
+        if (empty(hitSet[i]))
+        {
+            std::cout << "No hit in sequence " << i - 1 << std::endl;
+        }
+        else
+        {
+            std::cout << "Hit in sequence " << i - 1 << " at ";
+            for (unsigned j = 0; j < length(hitSet[i]); ++j)
+                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
+        }
+        std::cout << std::endl;
+    }
+    return 0;
+}
+//![printResult]
diff --git a/demos/tutorial/data_journaling/example_online_search_assignment1_hint.cpp b/demos/tutorial/data_journaling/example_online_search_assignment1_hint.cpp
new file mode 100644
index 0000000..a24fe31
--- /dev/null
+++ b/demos/tutorial/data_journaling/example_online_search_assignment1_hint.cpp
@@ -0,0 +1,58 @@
+//![main]
+#include <iostream>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & /*journalSet*/,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & /*joinConfig*/)
+{
+    typedef typename Host<TString>::Type THost;
+
+    // [A] Ensure the Journal Set is not occupied by other sequences.
+
+    // Construct the temporary buffers for the read id and sequence.
+    String<char> tempSeqId;
+    THost tempSeq;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(tempSeqId, tempSeq, databaseFile);
+
+    // [B] Set the reference sequence to the Journal Set
+
+    // Read remaining sequences.
+    while (!atEnd(databaseFile))
+    {
+        readRecord(tempSeqId, tempSeq, databaseFile);
+        // [C] Append and join the current read sequence.
+    }
+    return 0;
+}
+
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    // [D] Construct Journaled Set and call loadAndJoin
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/data_journaling/example_online_search_assignment2_hint.cpp b/demos/tutorial/data_journaling/example_online_search_assignment2_hint.cpp
new file mode 100644
index 0000000..503ec7b
--- /dev/null
+++ b/demos/tutorial/data_journaling/example_online_search_assignment2_hint.cpp
@@ -0,0 +1,27 @@
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+
+using namespace seqan;
+
+//![findPatternInReferenceHint]
+template <typename TString, typename TPattern>
+void findPatternInReference(String<int> & hits,
+                            TString const & reference,
+                            TPattern const & pattern)
+{
+    // [A] Check whether pattern fits into the sequence.
+
+    // [B] Iterate over all positions at which the pattern might occur.
+
+    // [C] Evaluate all positions of the pattern until you find a mismatch or you have found a hit.
+
+    // [D] Report begin position at which pattern matches the sequence.
+}
+//![findPatternInReferenceHint]
+
+//![main]
+int main()
+{
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/data_journaling/example_online_search_assignment3_hint.cpp b/demos/tutorial/data_journaling/example_online_search_assignment3_hint.cpp
new file mode 100644
index 0000000..52b9fa2
--- /dev/null
+++ b/demos/tutorial/data_journaling/example_online_search_assignment3_hint.cpp
@@ -0,0 +1,30 @@
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+
+using namespace seqan;
+
+//![findInOriginalNode]
+template <typename TJournalEntriesIterator, typename TPattern>
+void _findInOriginalNode(String<int> & hitTarget,
+                         TJournalEntriesIterator & entriesIt,
+                         TPattern const & pattern,
+                         String<int> const & refHits)
+{
+    // [A] Check if hits exist in the reference.
+
+    // [B] Find upper bound to current physical position in sorted refHits using std::upper_bound.
+
+    // [C] Make sure we do not miss hits that begin at physical position of current node.
+
+    // [D] Store all hits that are found in the region of the reference which is covered by this node.
+
+    // [E] Store the correct virtual position and check next hit.
+}
+//![findInOriginalNode]
+
+//![main]
+int main()
+{
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/data_journaling/example_online_search_assignment4_hint.cpp b/demos/tutorial/data_journaling/example_online_search_assignment4_hint.cpp
new file mode 100644
index 0000000..6789819
--- /dev/null
+++ b/demos/tutorial/data_journaling/example_online_search_assignment4_hint.cpp
@@ -0,0 +1,28 @@
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+
+using namespace seqan;
+
+//![searchAtBorder]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _searchAtBorder(String<int> & hitTarget,
+                     TJournalEntriesIterator & entriesIt,
+                     TJournal const & journal,
+                     TPattern const & pattern)
+{
+    // [A] Determine first position of the at which pattern crosses the border of current node.
+
+    // [B] Determine last position before pattern exits the current node or reaches the end of the sequence.
+
+    // [C] Move step by step over search region.
+
+    // [D] Scan pattern in current window and report possible hits.
+}
+//![searchAtBorder]
+
+//![main]
+int main()
+{
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/data_journaling/solution_online_search_assignment1.cpp b/demos/tutorial/data_journaling/solution_online_search_assignment1.cpp
new file mode 100644
index 0000000..5ae9b0f
--- /dev/null
+++ b/demos/tutorial/data_journaling/solution_online_search_assignment1.cpp
@@ -0,0 +1,62 @@
+//![main]
+#include <iostream>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & joinConfig)
+{
+    typedef typename Host<TString>::Type THost;
+    // [A]
+    clear(journalSet);
+
+    // Construct the temporary buffers for the read id and sequence.
+    String<char> tempSeqId;
+    THost sequence;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(tempSeqId, sequence, databaseFile);
+    // [B]
+    createHost(journalSet, sequence);  // When using create we copy the reference instead of storing a pointer.
+
+    // Read remaining sequences.
+    while (!atEnd(databaseFile))
+    {
+        readRecord(tempSeqId, sequence, databaseFile);
+        // [C]
+        appendValue(journalSet, TString(sequence)); // First we append the sequence to the set.
+        join(journalSet, length(journalSet) - 1, joinConfig); // Second we join it to the set.
+    }
+    return 0;
+}
+
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    TJournaledSet journalSet;
+    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
+    loadAndJoin(journalSet, databaseFile, joinConfig);
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/data_journaling/solution_online_search_assignment2.cpp b/demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
new file mode 100644
index 0000000..e202bcf
--- /dev/null
+++ b/demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
@@ -0,0 +1,147 @@
+//![include]
+#include <iostream>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+//![include]
+
+//![findPatternInReference]
+template <typename TString, typename TPattern>
+void findPatternInReference(String<int> & hits,
+                            TString const & reference,
+                            TPattern const & pattern)
+{
+    // [A] Check whether pattern fits into the sequence.
+    if (length(pattern) > length(reference))
+        return;
+
+    // [B] Iterate over all positions at which the pattern might occur.
+    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
+    {
+        bool isHit = true;
+        // [C] Evaluate all positions of the pattern until you find a mismatch or you have found a hit.
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
+        {
+            if (pattern[posPattern] != reference[posPattern + pos])
+            {
+                isHit = false;
+                break;
+            }
+        }
+        // [D] Report begin position at which pattern matches the sequence.
+        if (isHit)
+            appendValue(hits, pos);
+    }
+}
+//![findPatternInReference]
+
+//![searchPattern]
+template <typename TString, typename TPattern>
+void searchPattern(StringSet<String<int> > & hitSet,
+                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
+                   TPattern const & pattern)
+{
+    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
+    typedef typename Host<TJournalSet const>::Type THost;
+
+    // Check for valid initial state.
+    if (empty(host(journalSet)))
+    {
+        std::cout << "No reference set. Aborted search!" << std::endl;
+        return;
+    }
+
+    // Reset the hitSet to avoid phantom hits coming from a previous search.
+    clear(hitSet);
+    resize(hitSet, length(journalSet) + 1);
+    // Access the reference sequence.
+    THost & globalRef = host(journalSet);
+    // Search for pattern in the reference sequence.
+    findPatternInReference(hitSet[0], globalRef, pattern);
+
+    // Search for pattern in the journaled sequences.
+    for (unsigned i = 0; i < length(journalSet); ++i)
+    {
+//        findPatternInJournalString(hitSet[i+1], journalSet[i], pattern, hitSet[0]);
+    }
+}
+//![searchPattern]
+
+//![loadAndJoin]
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & joinConfig)
+{
+    typedef typename Host<TString>::Type THost;
+
+    clear(journalSet);
+
+    String<char> seqId;
+    THost sequence;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(seqId, sequence, databaseFile);
+
+    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
+    createHost(journalSet, sequence);
+
+    // If there are more
+    while (!atEnd(databaseFile))
+    {
+        readRecord(seqId, sequence, databaseFile);
+        appendValue(journalSet, TString(sequence));
+        join(journalSet, length(journalSet) - 1, joinConfig);
+    }
+    return 0;
+}
+//![loadAndJoin]
+
+//![main]
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    TJournaledSet journalSet;
+    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
+    loadAndJoin(journalSet, databaseFile, joinConfig);
+
+    // Define a pattern and start search.
+    StringSet<String<int> > hitSet;
+    TSequence pattern = "GTGGT";
+    std::cout << "Search for: " << pattern << ":\n";
+    searchPattern(hitSet, journalSet, pattern);
+//![main]
+
+//![printResult]
+    if (empty(hitSet[0]))
+    {
+        std::cout << "No hit in reference " << std::endl;
+    }
+    else
+    {
+        std::cout << "Hit in reference " << " at ";
+        for (unsigned j = 0; j < length(hitSet[0]); ++j)
+            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
+    }
+    std::cout << std::endl;
+
+    return 0;
+}
+//![printResult]
diff --git a/demos/tutorial/data_journaling/solution_online_search_assignment3.cpp b/demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
new file mode 100644
index 0000000..5c9df07
--- /dev/null
+++ b/demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
@@ -0,0 +1,222 @@
+//![include]
+#include <iostream>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+//![include]
+
+//![findInOriginalNode]
+template <typename TJournalEntriesIterator, typename TPattern>
+void _findInOriginalNode(String<int> & hitTarget,
+                         TJournalEntriesIterator & entriesIt,
+                         TPattern const & pattern,
+                         String<int> const & refHits)
+{
+    // Define an Iterator which iterates over the reference hit set.
+    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
+
+    // [A] Check if hits exist in the reference.
+    if (!empty(refHits))
+    {
+        // [B] Find upper bound to current physical position in sorted refHits using std::upper_bound.
+        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
+        // [C] Make sure we do not miss hits that begin at physical position of current node.
+        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
+            --itHit;
+        // [D] Store all hits that are found in the region of the reference which is covered by this node.
+        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
+        {
+            // [E] Store the correct virtual position and check next hit.
+            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
+            ++itHit;
+        }
+    }
+}
+//![findInOriginalNode]
+
+//![findPatternInJournalString]
+template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
+void findPatternInJournalString(String<int> & hitTarget,
+                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
+                                TPattern const & pattern,
+                                String<int> const & refHits)
+{
+    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
+    typedef typename JournalType<TJournal>::Type TJournalEntries;
+    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
+
+    if (length(pattern) > length(journal))
+        return;
+
+    TJournalEntriesIterator it = begin(journal._journalEntries);
+    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
+
+    while (it != itEnd)
+    {
+        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
+        {
+            _findInOriginalNode(hitTarget, it, pattern, refHits);
+        }
+        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
+        { //            _findInPatchNode(hitTarget, it, journal, pattern);
+        }
+        // Scan the border for a possible match.
+//        _searchAtBorder(hitTarget, it, journal, pattern);
+        ++it;
+    }
+}
+//![findPatternInJournalString]
+
+//![findPatternInReference]
+template <typename TString, typename TPattern>
+void findPatternInReference(String<int> & hits,
+                            TString const & reference,
+                            TPattern const & pattern)
+{
+    // Check whether the pattern fits into the sequence.
+    if (length(pattern) > length(reference))
+        return;
+
+    //
+    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
+    {
+        bool isHit = true;
+
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
+        {
+            if (pattern[posPattern] != reference[posPattern + pos])
+            {
+                isHit = false;
+                break;
+            }
+        }
+        // Report the position if found a hit.
+        if (isHit)
+            appendValue(hits, pos);
+    }
+}
+//![findPatternInReference]
+
+//![searchPattern]
+template <typename TString, typename TPattern>
+void searchPattern(StringSet<String<int> > & hitSet,
+                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
+                   TPattern const & pattern)
+{
+    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
+    typedef typename Host<TJournalSet const>::Type THost;
+
+    // Check for valid initial state.
+    if (empty(host(journalSet)))
+    {
+        std::cout << "No reference set. Aborted search!" << std::endl;
+        return;
+    }
+
+    // Reset the hitSet to avoid phantom hits coming from a previous search.
+    clear(hitSet);
+    resize(hitSet, length(journalSet) + 1);
+    // Access the reference sequence.
+    THost & globalRef = host(journalSet);
+    // Search for pattern in the reference sequence.
+    findPatternInReference(hitSet[0], globalRef, pattern);
+    // Search for pattern in the journaled sequences.
+    for (unsigned i = 0; i < length(journalSet); ++i)
+        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
+}
+//![searchPattern]
+
+//![laodAndJoin]
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & joinConfig)
+{
+    typedef typename Host<TString>::Type THost;
+
+    clear(journalSet);
+
+    String<char> seqId;
+    THost sequence;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(seqId, sequence, databaseFile);
+
+    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
+    createHost(journalSet, sequence);
+
+    // If there are more
+    while (!atEnd(databaseFile))
+    {
+        readRecord(seqId, sequence, databaseFile);
+        appendValue(journalSet, TString(sequence));
+        join(journalSet, length(journalSet) - 1, joinConfig);
+    }
+    return 0;
+}
+//![laodAndJoin]
+
+//![main]
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    TJournaledSet journalSet;
+    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
+    loadAndJoin(journalSet, databaseFile, joinConfig);
+
+    // Define a pattern and start search.
+    StringSet<String<int> > hitSet;
+    TSequence pattern = "GTGGT";
+    std::cout << "Search for: " << pattern << ":\n";
+    searchPattern(hitSet, journalSet, pattern);
+//![main]
+
+//![printResultReference]
+    if (empty(hitSet[0]))
+    {
+        std::cout << "No hit in reference " << std::endl;
+    }
+    else
+    {
+        std::cout << "Hit in reference " << " at ";
+        for (unsigned j = 0; j < length(hitSet[0]); ++j)
+            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
+    }
+    std::cout << std::endl;
+//![printResultReference]
+
+//![printResultJournalSequence]
+    for (unsigned i = 1; i < length(hitSet); ++i)
+    {
+        if (empty(hitSet[i]))
+        {
+            std::cout << "No hit in sequence " << i - 1 << std::endl;
+        }
+        else
+        {
+            std::cout << "Hit in sequence " << i - 1 << " at ";
+            for (unsigned j = 0; j < length(hitSet[i]); ++j)
+                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
+        }
+        std::cout << std::endl;
+    }
+    return 0;
+}
+//![printResultJournalSequence]
diff --git a/demos/tutorial/data_journaling/solution_online_search_assignment4.cpp b/demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
new file mode 100644
index 0000000..6cdac07
--- /dev/null
+++ b/demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
@@ -0,0 +1,294 @@
+//![include]
+#include <iostream>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+//![include]
+
+//![searchAtBorder]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _searchAtBorder(String<int> & hitTarget,
+                     TJournalEntriesIterator & entriesIt,
+                     TJournal const & journal,
+                     TPattern const & pattern)
+{
+    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
+
+    // [A] Determine first position of the at which pattern crosses the border of current node.
+    TJournalIterator nodeIter = iter(journal, entriesIt->virtualPosition + _max(0, (int)entriesIt->length - (int)length(pattern) + 1));
+    // [B] Determine last position before pattern exits the current node or reaches the end of the sequence.
+    TJournalIterator nodeEnd = iter(journal, _min(entriesIt->virtualPosition + entriesIt->length, length(journal) - length(pattern) + 1));
+    if (nodeEnd == end(journal))
+        return;
+
+    // [C] Move step by step over search region.
+    for (; nodeIter != nodeEnd; ++nodeIter)
+    {
+        // [D] Scan pattern in current window and report possible hits.
+        TJournalIterator verifyIter = nodeIter;
+        bool isHit = true;
+        // Compare pattern with current search window.
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
+        {
+            // Comparing the pattern value with the current value of the iterator.
+            if (pattern[posPattern] != getValue(verifyIter))
+            {
+                isHit = false;
+                break;
+            }
+        }
+        // Report hit if found.
+        if (isHit)
+            appendValue(hitTarget, position(nodeIter));
+    }
+}
+//![searchAtBorder]
+
+//![findInPatchNode]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _findInPatchNode(String<int> & hitTarget,
+                      TJournalEntriesIterator & entriesIt,
+                      TJournal const & journal,
+                      TPattern const & pattern)
+{
+    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
+
+    // Search for pattern in the insertion node.
+    TJournalIterator patchIter = iter(journal, entriesIt->virtualPosition);
+    TJournalIterator patchEnd = patchIter + _max(0, (int)entriesIt->length - (int)length(pattern) + 1);
+    // Move step by step over search region.
+    for (; patchIter != patchEnd; ++patchIter)
+    {
+        TJournalIterator verifyIter = patchIter;
+        bool isHit = true;
+        // Search for pattern in the insertion node.
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
+        {
+            // Comparing the pattern value with the current value of the iterator.
+            if (pattern[posPattern] != getValue(verifyIter))
+            {
+                isHit = false;
+                break;
+            }
+        }
+        if (isHit)
+            appendValue(hitTarget, position(patchIter));
+    }
+}
+//![findInPatchNode]
+
+//![findInOriginalNode]
+template <typename TJournalEntriesIterator, typename TPattern>
+void _findInOriginalNode(String<int> & hitTarget,
+                         TJournalEntriesIterator & entriesIt,
+                         TPattern const & pattern,
+                         String<int> const & refHits)
+{
+    // Define an Iterator which iterates over the reference hit set.
+    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
+
+    // Check if hits exist in the reference.
+    if (!empty(refHits))
+    {
+        // Find upper bound to physical position in sorted refHits.
+        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
+        // Make sure we do not miss hits that begin at physical position of current node.
+        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
+            --itHit;
+        // Store all hits that are found in the region of the reference which is covered by this node.
+        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
+        {
+            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
+            ++itHit;
+        }
+    }
+}
+//![findInOriginalNode]
+
+//![findPatternInJournalStringPart1]
+template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
+void findPatternInJournalString(String<int> & hitTarget,
+                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
+                                TPattern const & pattern,
+                                String<int> const & refHits)
+{
+    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
+    typedef typename JournalType<TJournal>::Type TJournalEntries;
+    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
+
+    if (length(pattern) > length(journal))
+        return;
+
+    TJournalEntriesIterator it = begin(journal._journalEntries);
+    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
+
+    while (it != itEnd)
+    {
+        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
+        {
+            _findInOriginalNode(hitTarget, it, pattern, refHits);
+        }
+        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
+        {
+            _findInPatchNode(hitTarget, it, journal, pattern);
+        }
+        // Scan the border for a possible match.
+        _searchAtBorder(hitTarget, it, journal, pattern);
+        ++it;
+    }
+}
+//![findPatternInJournalStringPart1]
+
+//![findPatternInReference]
+template <typename TString, typename TPattern>
+void findPatternInReference(String<int> & hits,
+                            TString const & reference,
+                            TPattern const & pattern)
+{
+    // Check whether the pattern fits into the sequence.
+    if (length(pattern) > length(reference))
+        return;
+
+    //
+    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
+    {
+        bool isHit = true;
+
+        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
+        {
+            if (pattern[posPattern] != reference[posPattern + pos])
+            {
+                isHit = false;
+                break;
+            }
+        }
+        // Report the position if found a hit.
+        if (isHit)
+            appendValue(hits, pos);
+    }
+}
+//![findPatternInReference]
+
+//![searchPatternPart1]
+template <typename TString, typename TPattern>
+void searchPattern(StringSet<String<int> > & hitSet,
+                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
+                   TPattern const & pattern)
+{
+    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
+    typedef typename Host<TJournalSet const>::Type THost;
+
+    // Check for valid initial state.
+    if (empty(host(journalSet)))
+    {
+        std::cout << "No reference set. Aborted search!" << std::endl;
+        return;
+    }
+
+    // Reset the hitSet to avoid phantom hits coming from a previous search.
+    clear(hitSet);
+    resize(hitSet, length(journalSet) + 1);
+    // Access the reference sequence.
+    THost & globalRef = host(journalSet);
+    // Search for pattern in the reference sequence.
+    findPatternInReference(hitSet[0], globalRef, pattern);
+
+    // Search for pattern in the journaled sequences.
+    for (unsigned i = 0; i < length(journalSet); ++i)
+        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
+}
+//![searchPatternPart1]
+
+//![laodAndJoin]
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & joinConfig)
+{
+    typedef typename Host<TString>::Type THost;
+
+    clear(journalSet);
+
+    String<char> seqId;
+    THost sequence;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(seqId, sequence, databaseFile);
+
+    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
+    createHost(journalSet, sequence);
+
+    // If there are more
+    while (!atEnd(databaseFile))
+    {
+        readRecord(seqId, sequence, databaseFile);
+        appendValue(journalSet, TString(sequence));
+        join(journalSet, length(journalSet) - 1, joinConfig);
+    }
+    return 0;
+}
+//![laodAndJoin]
+
+//![main]
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    TJournaledSet journalSet;
+    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
+    loadAndJoin(journalSet, databaseFile, joinConfig);
+
+    // Define a pattern and start search.
+    StringSet<String<int> > hitSet;
+    TSequence pattern = "GTGGT";
+    std::cout << "Search for: " << pattern << ":\n";
+    searchPattern(hitSet, journalSet, pattern);
+//![main]
+
+//![printResult]
+    if (empty(hitSet[0]))
+    {
+        std::cout << "No hit in reference " << std::endl;
+    }
+    else
+    {
+        std::cout << "Hit in reference " << " at ";
+        for (unsigned j = 0; j < length(hitSet[0]); ++j)
+            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
+    }
+    std::cout << std::endl;
+
+    for (unsigned i = 1; i < length(hitSet); ++i)
+    {
+        if (empty(hitSet[i]))
+        {
+            std::cout << "No hit in sequence " << i - 1 << std::endl;
+        }
+        else
+        {
+            std::cout << "Hit in sequence " << i - 1 << " at ";
+            for (unsigned j = 0; j < length(hitSet[i]); ++j)
+                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
+        }
+        std::cout << std::endl;
+    }
+    
+    return 0;
+}
+//![printResult]
diff --git a/demos/tutorial/data_journaling/solution_online_search_finder.cpp b/demos/tutorial/data_journaling/solution_online_search_finder.cpp
new file mode 100644
index 0000000..c8775a8
--- /dev/null
+++ b/demos/tutorial/data_journaling/solution_online_search_finder.cpp
@@ -0,0 +1,251 @@
+//![include]
+#include <iostream>
+#include <seqan/find.h>
+#include <seqan/seq_io.h>
+#include <seqan/journaled_set.h>
+
+using namespace seqan;
+//![include]
+
+//![searchAtBorder]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _searchAtBorder(String<int> & hitTarget,
+                     TJournalEntriesIterator & entriesIt,
+                     TJournal const & journal,
+                     TPattern const & needle)
+{
+    typedef typename Position<TJournal>::Type TPosition;
+
+    // Define region before the border to the next node to search for the pattern.
+    TPosition infixBegin = entriesIt->virtualPosition + _max(0, (int)entriesIt->length - (int)length(needle) + 1);
+    TPosition infixEnd = _min(length(journal), entriesIt->virtualPosition + entriesIt->length + length(needle) - 1);
+
+    TPattern tmpInsBuffer = infix(journal, infixBegin, infixEnd);
+    Finder<TPattern const> finder(tmpInsBuffer);
+    Pattern<TPattern, Horspool> pattern(needle);
+    while (find(finder, pattern))
+    {
+        appendValue(hitTarget, infixBegin + beginPosition(finder));
+    }
+}
+//![searchAtBorder]
+
+//![findInPatchNodePart1]
+template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
+void _findInPatchNode(String<int> & hitTarget,
+                      TJournalEntriesIterator & entriesIt,
+                      TJournal const & journal,
+                      TPattern const & needle)
+{
+    typedef typename Position<TJournal>::Type TPosition;
+
+    TPosition infixBegin = entriesIt->virtualPosition;
+    TPosition infixEnd = entriesIt->virtualPosition + entriesIt->length;
+
+    TPattern tmpInsBuffer = infix(journal, infixBegin, infixEnd);
+    Finder<TPattern const> finder(tmpInsBuffer);
+    Pattern<TPattern, Horspool> pattern(needle);
+
+    while (find(finder, pattern))
+        appendValue(hitTarget, entriesIt->virtualPosition + beginPosition(finder));
+}
+//![findInPatchNodePart1]
+
+//![findInOriginalNode]
+template <typename TJournalEntriesIterator, typename TPattern>
+void _findInOriginalNode(String<int> & hitTarget,
+                         TJournalEntriesIterator & entriesIt,
+                         TPattern const & pattern,
+                         String<int> const & refHits)
+{
+    // Define an Iterator which iterates over the reference hit set.
+    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
+
+    // Check if hits exist in the reference.
+    if (!empty(refHits))
+    {
+        // Find upper bound to physical position in sorted refHits.
+        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
+        // Make sure we do not miss hits that begin at physical position of current node.
+        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
+            --itHit;
+        // Store all hits that are found in the region of the reference which is covered by this node.
+        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
+        {
+            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
+            ++itHit;
+        }
+    }
+}
+//![findInOriginalNode]
+
+//![findPatternInJournalString]
+template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
+void findPatternInJournalString(String<int> & hitTarget,
+                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
+                                TPattern const & pattern,
+                                String<int> const & refHits)
+{
+    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
+    typedef typename JournalType<TJournal>::Type TJournalEntries;
+    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
+
+    if (length(pattern) > length(journal))
+        return;
+
+    TJournalEntriesIterator it = begin(journal._journalEntries);
+    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
+
+    while (it != itEnd)
+    {
+        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
+        {
+            _findInOriginalNode(hitTarget, it, pattern, refHits);
+        }
+        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
+        {
+            _findInPatchNode(hitTarget, it, journal, pattern);
+        }
+        // Scan the border for a possible match.
+        _searchAtBorder(hitTarget, it, journal, pattern);
+        ++it;
+    }
+}
+//![findPatternInJournalString]
+
+//![findPatternInReference]
+template <typename TString>
+void findPatternInReference(String<int> & hits,
+                            TString const & reference,
+                            TString const & needle)
+{
+    // Check whether the pattern fits into the sequence.
+    if (length(needle) > length(reference))
+        return;
+
+    Finder<TString const> finder(reference);
+    Pattern<TString, Horspool> pattern(needle);
+    while (find(finder, pattern))
+        appendValue(hits, beginPosition(finder));
+}
+//![findPatternInReference]
+
+//![searchPatternPart1]
+template <typename TString, typename TPattern>
+void searchPattern(StringSet<String<int> > & hitSet,
+                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
+                   TPattern const & pattern)
+{
+    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
+    typedef typename Host<TJournalSet const>::Type THost;
+
+    // Check for valid initial state.
+    if (empty(host(journalSet)))
+    {
+        std::cout << "No reference set. Aborted search!" << std::endl;
+        return;
+    }
+
+    // Reset the hitSet to avoid phantom hits coming from a previous search.
+    clear(hitSet);
+    resize(hitSet, length(journalSet) + 1);
+    // Access the reference sequence.
+    THost & globalRef = host(journalSet);
+    // Search for pattern in the reference sequence.
+    findPatternInReference(hitSet[0], globalRef, pattern);
+
+    // Search for pattern in the journaled sequences.
+    for (unsigned i = 0; i < length(journalSet); ++i)
+        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
+}
+//![searchPatternPart1]
+
+//![laodAndJoin]
+template <typename TString, typename TSpec>
+inline int
+loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
+            SeqFileIn & databaseFile,
+            JoinConfig<TSpec> const & joinConfig)
+{
+    typedef typename Host<TString>::Type THost;
+
+    clear(journalSet);
+
+    String<char> seqId;
+    THost sequence;
+
+    // No sequences in the fasta file!
+    if (atEnd(databaseFile))
+    {
+        std::cerr << "Empty FASTA file." << std::endl;
+        return -1;
+    }
+    // First read sequence for reference sequence.
+    readRecord(seqId, sequence, databaseFile);
+    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
+    createHost(journalSet, sequence);
+
+    // If there are more
+    while (!atEnd(databaseFile))
+    {
+        readRecord(seqId, sequence, databaseFile);
+        appendValue(journalSet, TString(sequence));
+        join(journalSet, length(journalSet) - 1, joinConfig);
+    }
+    return 0;
+}
+//![laodAndJoin]
+
+//![main]
+int main()
+{
+    // Definition of the used types.
+    typedef String<Dna, Alloc<> > TSequence;
+    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
+    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
+
+    // Open the stream to the file containing the sequences.
+    CharString seqDatabasePath = "/path/to/your/fasta/file/sequences.fasta";
+    SeqFileIn databaseFile(toCString(seqDatabasePath));
+
+    // Reading each sequence and journal them.
+    TJournaledSet journalSet;
+    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
+    loadAndJoin(journalSet, databaseFile, joinConfig);
+
+    // Define a pattern and start search.
+    StringSet<String<int> > hitSet;
+    TSequence pattern = "GTGGT";
+    std::cout << "Search for: " << pattern << "\n";
+    searchPattern(hitSet, journalSet, pattern);
+
+
+    if (empty(hitSet[0]))
+    {
+        std::cout << "No hit in reference " << std::endl;
+    }
+    else
+    {
+        std::cout << "Hit in reference " << " at ";
+        for (unsigned j = 0; j < length(hitSet[0]); ++j)
+            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
+    }
+    std::cout << std::endl;
+
+    for (unsigned i = 1; i < length(hitSet); ++i)
+    {
+        if (empty(hitSet[i]))
+        {
+            std::cout << "No hit in sequence " << i - 1 << std::endl;
+        }
+        else
+        {
+            std::cout << "Hit in sequence " << i - 1 << " at ";
+            for (unsigned j = 0; j < length(hitSet[i]); ++j)
+                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
+        }
+        std::cout << std::endl;
+    }
+    return 0;
+}
+//![main]
diff --git a/demos/unassigned_or_unused/tutorial_file_io/example1.cpp b/demos/tutorial/file_io/example1.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_file_io/example1.cpp
rename to demos/tutorial/file_io/example1.cpp
diff --git a/demos/unassigned_or_unused/tutorial_file_io/mmap_string_example.cpp b/demos/tutorial/file_io/mmap_string_example.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_file_io/mmap_string_example.cpp
rename to demos/tutorial/file_io/mmap_string_example.cpp
diff --git a/demos/unassigned_or_unused/tutorial_file_io/solution1.cpp b/demos/tutorial/file_io/solution1.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_file_io/solution1.cpp
rename to demos/tutorial/file_io/solution1.cpp
diff --git a/demos/unassigned_or_unused/tutorial_file_io/solution2.cpp b/demos/tutorial/file_io/solution2.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_file_io/solution2.cpp
rename to demos/tutorial/file_io/solution2.cpp
diff --git a/demos/unassigned_or_unused/tutorial_file_io/solution3.cpp b/demos/tutorial/file_io/solution3.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_file_io/solution3.cpp
rename to demos/tutorial/file_io/solution3.cpp
diff --git a/demos/unassigned_or_unused/tutorial_file_io/stream_compression_formats.cpp b/demos/tutorial/file_io/stream_compression_formats.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_file_io/stream_compression_formats.cpp
rename to demos/tutorial/file_io/stream_compression_formats.cpp
diff --git a/demos/tutorial/file_io_overview/example.bam b/demos/tutorial/file_io_overview/example.bam
deleted file mode 100644
index 782c43e..0000000
Binary files a/demos/tutorial/file_io_overview/example.bam and /dev/null differ
diff --git a/demos/tutorial/file_io_overview/example.sam b/demos/tutorial/file_io_overview/example.sam
deleted file mode 100644
index 93d2747..0000000
--- a/demos/tutorial/file_io_overview/example.sam
+++ /dev/null
@@ -1,9 +0,0 @@
- at HD	VN:1.3	SO:coordinate
- at SQ	SN:ref	LN:45
- at SQ	SN:ref2	LN:40
-r001	163	ref	7	30	8M4I4M1D3M	=	37	39	TTAGATAAAGAGGATACTG	                   	XX:B:S,12561,2,20,112
-r002	0	ref	9	30	1S2I6M1P1I1P1I4M2I	*	0	0	AAAAGATAAGGGATAAA	                 
-r003	0	ref	9	30	5H6M	*	0	0	AGCTAA	      
-r004	0	ref	16	30	6M14N1I5M	*	0	0	ATAGCTCTCAGC	            
-r003	16	ref	29	30	6H5M	*	0	0	TAGGC	     
-r001	83	ref	37	30	9M	=	7	-39	CAGCGCCAT	         
diff --git a/demos/tutorial/file_io_overview/example1.cpp b/demos/tutorial/file_io_overview/example1.cpp
deleted file mode 100644
index 47f0e67..0000000
--- a/demos/tutorial/file_io_overview/example1.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//![include]
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-//![include]
-//![ctor]
-    // Open input BAM file, BamFileIn supports both SAM and BAM files.
-    CharString bamFileInName = getAbsolutePath("/demos/tutorial/file_io_overview/example.bam");
-    CharString samFileOutName = getAbsolutePath("/demos/tutorial/file_io_overview/example.sam");
-    BamFileIn bamFileIn(toCString(bamFileInName));
-//![ctor]
-
-//![open]
-    // Open output SAM file by passing the context of bamFileIn and the filename to open.
-    BamFileOut samFileOut(context(bamFileIn), toCString(samFileOutName));
-//![open]
-
-//![header]
-    // Copy header.
-    BamHeader header;
-    readHeader(header, bamFileIn);
-    writeHeader(samFileOut, header);
-//![header]
-
-//![records]
-    // Copy all records.
-    BamAlignmentRecord record;
-    while (!atEnd(bamFileIn))
-    {
-        readRecord(record, bamFileIn);
-        writeRecord(samFileOut, record);
-    }
-
-    return 0;
-}
-//![records]
diff --git a/demos/tutorial/file_io_overview/example1.cpp.stdout b/demos/tutorial/file_io_overview/example1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/file_io_overview/solution1.cpp b/demos/tutorial/file_io_overview/solution1.cpp
deleted file mode 100644
index aaf2ca8..0000000
--- a/demos/tutorial/file_io_overview/solution1.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main(int argc, char const ** argv)
-{
-    CharString bamFileInName = getAbsolutePath("/demos/tutorial/file_io_overview/example.bam");
-    CharString samFileOutName = getAbsolutePath("/demos/tutorial/file_io_overview/example.sam");
-
-    // Open input BAM file.
-    BamFileIn bamFileIn;
-    BamHeader header;
-    if (!open(bamFileIn, toCString(bamFileInName)))
-    {
-        std::cerr << "ERROR: could not open input file " << bamFileInName << ".\n";
-        return 1;
-    }
-
-    // Open output SAM file.
-    BamFileOut samFileOut(context(bamFileIn), toCString(samFileOutName));
-
-    // Copy header.
-    try
-    {
-        readHeader(header, bamFileIn);
-        writeHeader(samFileOut, header);
-    }
-    catch (IOError const & e)
-    {
-        std::cerr << "ERROR: could not copy header. " << e.what() << "\n";
-    }
-
-    // Copy all records.
-    BamAlignmentRecord record;
-    while (!atEnd(bamFileIn))
-    {
-        try
-        {
-            readRecord(record, bamFileIn);
-            writeRecord(samFileOut, record);
-        }
-        catch (IOError const & e)
-        {
-            std::cerr << "ERROR: could not copy record. " << e.what() << "\n";
-        }
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/file_io_overview/solution1.cpp.stdout b/demos/tutorial/file_io_overview/solution1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/file_io_overview/solution2.cpp b/demos/tutorial/file_io_overview/solution2.cpp
deleted file mode 100644
index 5010a4b..0000000
--- a/demos/tutorial/file_io_overview/solution2.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main(int argc, char const ** argv)
-{
-    CharString bamFileInName = getAbsolutePath("/demos/tutorial/file_io_overview/example.bam");
-    CharString samFileOutName = getAbsolutePath("/demos/tutorial/file_io_overview/example.sam");
-
-    // Open input BAM file.
-    BamFileIn bamFileIn;
-    if (!open(bamFileIn, toCString(bamFileInName)))
-    {
-        std::cerr << "ERROR: could not open input file " << bamFileInName << ".\n";
-        return 1;
-    }
-
-    // Open output SAM file.
-    BamFileOut samFileOut(context(bamFileIn), toCString(samFileOutName));
-    // Copy header.
-    BamHeader header;
-    try
-    {
-        readHeader(header, bamFileIn);
-        writeHeader(samFileOut, header);
-    }
-    catch (ParseError const & e)
-    {
-        std::cerr << "ERROR: input header is badly formatted. " << e.what() << "\n";
-    }
-    catch (IOError const & e)
-    {
-        std::cerr << "ERROR: could not copy header. " << e.what() << "\n";
-    }
-
-    // Copy all records.
-    BamAlignmentRecord record;
-    while (!atEnd(bamFileIn))
-    {
-        try
-        {
-            readRecord(record, bamFileIn);
-            writeRecord(samFileOut, record);
-        }
-        catch (ParseError const & e)
-        {
-            std::cerr << "ERROR: input record is badly formatted. " << e.what() << "\n";
-        }
-        catch (IOError const & e)
-        {
-            std::cerr << "ERROR: could not copy record. " << e.what() << "\n";
-        }
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/file_io_overview/solution2.cpp.stdout b/demos/tutorial/file_io_overview/solution2.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/file_io_overview/solution3.cpp b/demos/tutorial/file_io_overview/solution3.cpp
deleted file mode 100644
index 1c79bae..0000000
--- a/demos/tutorial/file_io_overview/solution3.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main(int argc, char const ** argv)
-{
-    CharString bamFileInName = getAbsolutePath("/demos/tutorial/file_io_overview/example.bam");
-
-    // Open input BAM file.
-    BamFileIn bamFileIn;
-    if (!open(bamFileIn, toCString(bamFileInName)))
-    {
-        std::cerr << "ERROR: could not open input file " << bamFileInName << ".\n";
-        return 1;
-    }
-
-    // Open output SAM which is the standard output.
-    BamFileOut samFileOut(context(bamFileIn), std::cout, Sam());
-
-    // Copy header.
-    BamHeader header;
-    try
-    {
-        readHeader(header, bamFileIn);
-        writeHeader(samFileOut, header);
-    }
-    catch (ParseError const & e)
-    {
-        std::cerr << "ERROR: input header is badly formatted. " << e.what() << "\n";
-    }
-    catch (IOError const & e)
-    {
-        std::cerr << "ERROR: could not copy header. " << e.what() << "\n";
-    }
-
-    // Copy all records.
-    BamAlignmentRecord record;
-    while (!atEnd(bamFileIn))
-    {
-        try
-        {
-            readRecord(record, bamFileIn);
-            writeRecord(samFileOut, record);
-        }
-        catch (ParseError const & e)
-        {
-            std::cerr << "ERROR: input record is badly formatted. " << e.what() << "\n";
-        }
-        catch (IOError const & e)
-        {
-            std::cerr << "ERROR: could not copy record. " << e.what() << "\n";
-        }
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/file_io_overview/solution3.cpp.stdout b/demos/tutorial/file_io_overview/solution3.cpp.stdout
deleted file mode 100644
index 93d2747..0000000
--- a/demos/tutorial/file_io_overview/solution3.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
- at HD	VN:1.3	SO:coordinate
- at SQ	SN:ref	LN:45
- at SQ	SN:ref2	LN:40
-r001	163	ref	7	30	8M4I4M1D3M	=	37	39	TTAGATAAAGAGGATACTG	                   	XX:B:S,12561,2,20,112
-r002	0	ref	9	30	1S2I6M1P1I1P1I4M2I	*	0	0	AAAAGATAAGGGATAAA	                 
-r003	0	ref	9	30	5H6M	*	0	0	AGCTAA	      
-r004	0	ref	16	30	6M14N1I5M	*	0	0	ATAGCTCTCAGC	            
-r003	16	ref	29	30	6H5M	*	0	0	TAGGC	     
-r001	83	ref	37	30	9M	=	7	-39	CAGCGCCAT	         
diff --git a/demos/tutorial/find/CMakeLists.txt b/demos/tutorial/find/CMakeLists.txt
new file mode 100644
index 0000000..8a97c63
--- /dev/null
+++ b/demos/tutorial/find/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_find)
+
+seqan_setup_apps(demos_tutorials_find)
+seqan_add_all_executables(demos_tutorials_find tutorial_)
diff --git a/demos/tutorial/pattern_matching/find_approx.cpp b/demos/tutorial/find/find_approx.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/find_approx.cpp
rename to demos/tutorial/find/find_approx.cpp
diff --git a/demos/tutorial/pattern_matching/assignment1.cpp b/demos/tutorial/find/find_assignment1.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/assignment1.cpp
rename to demos/tutorial/find/find_assignment1.cpp
diff --git a/demos/tutorial/pattern_matching/assignment1_solution.cpp b/demos/tutorial/find/find_assignment1_solution.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/assignment1_solution.cpp
rename to demos/tutorial/find/find_assignment1_solution.cpp
diff --git a/demos/tutorial/pattern_matching/assignment2.cpp b/demos/tutorial/find/find_assignment2.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/assignment2.cpp
rename to demos/tutorial/find/find_assignment2.cpp
diff --git a/demos/tutorial/pattern_matching/assignment2_solution.cpp b/demos/tutorial/find/find_assignment2_solution.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/assignment2_solution.cpp
rename to demos/tutorial/find/find_assignment2_solution.cpp
diff --git a/demos/tutorial/pattern_matching/assignment3.cpp b/demos/tutorial/find/find_assignment3.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/assignment3.cpp
rename to demos/tutorial/find/find_assignment3.cpp
diff --git a/demos/tutorial/pattern_matching/assignment3_solution.cpp b/demos/tutorial/find/find_assignment3_solution.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/assignment3_solution.cpp
rename to demos/tutorial/find/find_assignment3_solution.cpp
diff --git a/demos/tutorial/pattern_matching/find_exact.cpp b/demos/tutorial/find/find_exact.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/find_exact.cpp
rename to demos/tutorial/find/find_exact.cpp
diff --git a/demos/tutorial/pattern_matching/find_index.cpp b/demos/tutorial/find/find_index.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/find_index.cpp
rename to demos/tutorial/find/find_index.cpp
diff --git a/demos/tutorial/pattern_matching/find_index_multiple.cpp b/demos/tutorial/find/find_index_multiple.cpp
similarity index 100%
rename from demos/tutorial/pattern_matching/find_index_multiple.cpp
rename to demos/tutorial/find/find_index_multiple.cpp
diff --git a/demos/tutorial/a_first_example/basic_code.cpp b/demos/tutorial/first_steps/basic_code.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/basic_code.cpp
rename to demos/tutorial/first_steps/basic_code.cpp
diff --git a/demos/tutorial/a_first_example/basic_code_detailed.cpp b/demos/tutorial/first_steps/basic_code_detailed.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/basic_code_detailed.cpp
rename to demos/tutorial/first_steps/basic_code_detailed.cpp
diff --git a/demos/tutorial/a_first_example/code_encapsulation.cpp b/demos/tutorial/first_steps/code_encapsulation.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/code_encapsulation.cpp
rename to demos/tutorial/first_steps/code_encapsulation.cpp
diff --git a/demos/tutorial/a_first_example/final_result.cpp b/demos/tutorial/first_steps/final_result.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/final_result.cpp
rename to demos/tutorial/first_steps/final_result.cpp
diff --git a/demos/tutorial/a_first_example/solution_1.cpp b/demos/tutorial/first_steps/solution_1.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/solution_1.cpp
rename to demos/tutorial/first_steps/solution_1.cpp
diff --git a/demos/tutorial/a_first_example/solution_2.cpp b/demos/tutorial/first_steps/solution_2.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/solution_2.cpp
rename to demos/tutorial/first_steps/solution_2.cpp
diff --git a/demos/tutorial/a_first_example/solution_3.cpp b/demos/tutorial/first_steps/solution_3.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/solution_3.cpp
rename to demos/tutorial/first_steps/solution_3.cpp
diff --git a/demos/tutorial/a_first_example/solution_4.cpp b/demos/tutorial/first_steps/solution_4.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/solution_4.cpp
rename to demos/tutorial/first_steps/solution_4.cpp
diff --git a/demos/tutorial/a_first_example/solution_5.cpp b/demos/tutorial/first_steps/solution_5.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/solution_5.cpp
rename to demos/tutorial/first_steps/solution_5.cpp
diff --git a/demos/tutorial/a_first_example/solution_6.cpp b/demos/tutorial/first_steps/solution_6.cpp
similarity index 100%
rename from demos/tutorial/a_first_example/solution_6.cpp
rename to demos/tutorial/first_steps/solution_6.cpp
diff --git a/demos/tutorial/fragment_store/access_aligned_reads.cpp b/demos/tutorial/fragment_store/access_aligned_reads.cpp
deleted file mode 100644
index 1150c69..0000000
--- a/demos/tutorial/fragment_store/access_aligned_reads.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//![includes]
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/svg.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fastaFileName = getAbsolutePath("/demos/tutorial/fragment_store/example.fa");
-    CharString samFileName = getAbsolutePath("/demos/tutorial/fragment_store/example.sam");
-
-    typedef FragmentStore<> TStore;
-
-    TStore store;
-    loadContigs(store, toCString(fastaFileName));
-    BamFileIn file(toCString(samFileName));
-    readRecords(store, file);
-
-    SEQAN_ASSERT_GEQ(length(store.alignedReadStore), 5u);
-//![includes]
-
-//![typedefs]
-    typedef Value<TStore::TContigStore>::Type                               TContig;
-    typedef Value<TStore::TAlignedReadStore>::Type                          TAlignedRead;
-
-    typedef Gaps<TContig::TContigSeq, AnchorGaps<TContig::TGapAnchors> >    TContigGaps;
-    typedef Gaps<TStore::TReadSeq, AnchorGaps<TAlignedRead::TGapAnchors> >  TReadGaps;
-
-    TStore::TReadSeq readSeq;
-//![typedefs]
-
-//![output]
-    for (int i = 140; i < 160; i += 4)
-    {
-        TAlignedRead & ar = store.alignedReadStore[i];
-
-        readSeq = store.readSeqStore[ar.readId];
-        if (ar.endPos < ar.beginPos)
-            reverseComplement(readSeq);
-
-        TContigGaps contigGaps(
-            store.contigStore[ar.contigId].seq,
-            store.contigStore[ar.contigId].gaps);
-
-        TReadGaps readGaps(
-            readSeq,
-            ar.gaps);
-
-        setBeginPosition(contigGaps, std::min(ar.beginPos, ar.endPos));
-        setEndPosition(contigGaps, std::max(ar.beginPos, ar.endPos));
-
-        std::cout << "ALIGNMENT " << i << std::endl;
-        std::cout << "\tcontig " << ar.contigId << ":\t" << contigGaps;
-        std::cout << "     \t[" << beginPosition(contigGaps) << ".." << endPosition(contigGaps) << "[" << std::endl;
-        std::cout << "\tread "   << ar.readId   << ":\t" << readGaps << std::endl;
-        std::cout << std::endl;
-    }
-//![output]
-//![appendix]
-    return 0;
-}
-//![appendix]
diff --git a/demos/tutorial/fragment_store/access_aligned_reads.cpp.stdout b/demos/tutorial/fragment_store/access_aligned_reads.cpp.stdout
deleted file mode 100644
index 53811d1..0000000
--- a/demos/tutorial/fragment_store/access_aligned_reads.cpp.stdout
+++ /dev/null
@@ -1,20 +0,0 @@
-ALIGNMENT 140
-	contig 0:	CTGTGTTTAGTGCCTTTGTTCA-----ACCCCCTTGCAACAACCT     	[266..306[
-	read 149:	CTGTGTTTAGTGCCTTTGTTCA-----ACCCCCTTGCAAC
-
-ALIGNMENT 144
-	contig 0:	AGTGCCTTTGTTCA-----ACCCCCTTGCAACAACCTTGAG     	[274..310[
-	read 153:	AGTGCCTTTGTTCACATAGACCCCCTTGCAACAACC
-
-ALIGNMENT 148
-	contig 0:	TTCA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT     	[284..324[
-	read 157:	ATAG-----ACCCCCTTGCAACAACCTTGAGAACCCCAGG
-
-ALIGNMENT 152
-	contig 0:	CA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGGGAATTTG     	[286..326[
-	read 161:	CA-----ACCCCCTTGCAACAACCTTGCGAACCCCAGGGA
-
-ALIGNMENT 156
-	contig 0:	TTGCAACAACCTTGAGAACCCCAGGGAATTTGTCA     	[294..329[
-	read 165:	CCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT
-
diff --git a/demos/tutorial/fragment_store/access_aligned_reads2.cpp b/demos/tutorial/fragment_store/access_aligned_reads2.cpp
deleted file mode 100644
index 208aec4..0000000
--- a/demos/tutorial/fragment_store/access_aligned_reads2.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//![includes]
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/svg.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fastaFileName = getAbsolutePath("/demos/tutorial/fragment_store/example.fa");
-    CharString samFileName = getAbsolutePath("/demos/tutorial/fragment_store/example.sam");
-
-    typedef FragmentStore<> TStore;
-
-    TStore store;
-    loadContigs(store, toCString(fastaFileName));
-    BamFileIn file(toCString(samFileName));
-    readRecords(store, file);
-
-    SEQAN_ASSERT_GEQ(length(store.alignedReadStore), 5u);
-//![includes]
-
-//![typedefs]
-    typedef Value<TStore::TContigStore>::Type                               TContig;
-    typedef Value<TStore::TAlignedReadStore>::Type                          TAlignedRead;
-
-    typedef Gaps<TContig::TContigSeq, AnchorGaps<TContig::TGapAnchors> >    TContigGaps;
-    typedef Gaps<TStore::TReadSeq, AnchorGaps<TAlignedRead::TGapAnchors> >  TReadGaps;
-
-    TStore::TReadSeq readSeq;
-//![typedefs]
-
-//![output]
-    for (int i = 140; i < 160; i += 4)
-    {
-        TAlignedRead & ar = store.alignedReadStore[i];
-
-        readSeq = store.readSeqStore[ar.readId];
-        if (ar.endPos < ar.beginPos)
-        {
-            reverseComplement(readSeq);
-            toLower(readSeq);
-        }
-
-        TContigGaps contigGaps(
-            store.contigStore[ar.contigId].seq,
-            store.contigStore[ar.contigId].gaps);
-
-        TReadGaps readGaps(
-            readSeq,
-            ar.gaps);
-
-        setBeginPosition(contigGaps, std::min(ar.beginPos, ar.endPos));
-        setEndPosition(contigGaps, std::max(ar.beginPos, ar.endPos));
-
-        std::cout << "ALIGNMENT " << i << std::endl;
-        std::cout << "\tcontig " << ar.contigId << ":\t" << contigGaps;
-        std::cout << "     \t[" << beginPosition(contigGaps) << ".." << endPosition(contigGaps) << "[" << std::endl;
-        std::cout << "\tread "   << ar.readId   << ":\t" << readGaps << std::endl;
-        std::cout << std::endl;
-    }
-//![output]
-//![appendix]
-    return 0;
-}
-//![appendix]
diff --git a/demos/tutorial/fragment_store/access_aligned_reads2.cpp.stdout b/demos/tutorial/fragment_store/access_aligned_reads2.cpp.stdout
deleted file mode 100644
index 215e5bf..0000000
--- a/demos/tutorial/fragment_store/access_aligned_reads2.cpp.stdout
+++ /dev/null
@@ -1,20 +0,0 @@
-ALIGNMENT 140
-	contig 0:	CTGTGTTTAGTGCCTTTGTTCA-----ACCCCCTTGCAACAACCT     	[266..306[
-	read 149:	ctgtgtttagtgcctttgttca-----acccccttgcaac
-
-ALIGNMENT 144
-	contig 0:	AGTGCCTTTGTTCA-----ACCCCCTTGCAACAACCTTGAG     	[274..310[
-	read 153:	AGTGCCTTTGTTCACATAGACCCCCTTGCAACAACC
-
-ALIGNMENT 148
-	contig 0:	TTCA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT     	[284..324[
-	read 157:	ATAG-----ACCCCCTTGCAACAACCTTGAGAACCCCAGG
-
-ALIGNMENT 152
-	contig 0:	CA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGGGAATTTG     	[286..326[
-	read 161:	CA-----ACCCCCTTGCAACAACCTTGCGAACCCCAGGGA
-
-ALIGNMENT 156
-	contig 0:	TTGCAACAACCTTGAGAACCCCAGGGAATTTGTCA     	[294..329[
-	read 165:	cccccttgcaacaaccttgagaaccccagggaatt
-
diff --git a/demos/tutorial/fragment_store/display_aligned_reads.cpp b/demos/tutorial/fragment_store/display_aligned_reads.cpp
deleted file mode 100644
index 3a53734..0000000
--- a/demos/tutorial/fragment_store/display_aligned_reads.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//![includes]
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/svg.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fastaFileName = getAbsolutePath("/demos/tutorial/fragment_store/example.fa");
-    CharString samFileName = getAbsolutePath("/demos/tutorial/fragment_store/example.sam");
-
-    typedef FragmentStore<> TStore;
-
-    TStore store;
-    loadContigs(store, toCString(fastaFileName));
-    BamFileIn file(toCString(samFileName));
-    readRecords(store, file);
-
-//![includes]
-
-//![ascii]
-    AlignedReadLayout layout;
-    layoutAlignment(layout, store);
-    printAlignment(std::cout, layout, store, 1, 0, 150, 0, 36);
-//![ascii]
-
-//![svg]
-    SVGFile svg("layout.svg");
-    printAlignment(svg, layout, store, 1, 0, 150, 0, 36);
-
-    return 0;
-}
-//![svg]
diff --git a/demos/tutorial/fragment_store/display_aligned_reads.cpp.stdout b/demos/tutorial/fragment_store/display_aligned_reads.cpp.stdout
deleted file mode 100644
index e9f0031..0000000
--- a/demos/tutorial/fragment_store/display_aligned_reads.cpp.stdout
+++ /dev/null
@@ -1,37 +0,0 @@
-TTCAAATGAACTTCTGTAATTGAAAAATTCATTTAAGAAATTACAAAATATAGTTGAAAGCTCTAACAATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGAATTAACCCAGTCAGACAAAAATAAA
-....................................  ...................................   ...................................  ................................... .
-................................... ................................... ................................... ...................................    ...
-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ....................................    ....................C..............  ................................... .
- ...................................   .....................A.............    ....................................     ...............................
-    ................................... ...................................     ...................................     ..............................
-     ...................................  ...................................     ...................................    ...........A.................
-     ...................................  ...................................      ...................................    ............................
-     ...................................  ...................................      .................N.NNN...N.........    ............................
-      .................................... ...................................       ...................................   .......................NN..
-      ...................................   ...................................       .................................G.  ...........................
-      ...................................   ...................................       ...................................   ..........................
-      ...................................    ...................................        ....................................                       ...
-       ...................................   ...................................          ...................................
-       ...................................    ....................................        ...................................
-          ...................................  ...................................          ...................................
-           ...................................   ...................................        ...................................
-               ................................... ...................................       ...................................
-                ...................................  ...................................      ...................................
-                 ...................................   ........................................ ...................................
-                       ...................................    .................................T.      ...................................
-                        ...................................   ....................................      ...................................
-                         ...................................   ...................................       ...................................
-                             ................................... ...................................     ........................................
-                                ...................................    ................................... ...................................
-                                 ........................................                     ...................................
-                                        ...................................                   ...................................
-                                                 ...................................           ....................................
-                                                        ...................................      ...................................
-                                                        ...................................               N...................................
-                                                         ...................................              ...................................
-                                                               ...................................               ...................................
-                                                               ...................................                ...................................
-                                                                ...................................
-                                                                ...................................
-                                                                   ...................................
-                                                                   ...................................
diff --git a/demos/tutorial/generic_programming/template_subclassing.cpp.stdout b/demos/tutorial/generic_programming/template_subclassing.cpp.stdout
deleted file mode 100644
index 3f06229..0000000
--- a/demos/tutorial/generic_programming/template_subclassing.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-Template Subclassing Demo
-foo(MyClass<typename TSpec> const & obj) called!  obj.x == 0
-foo(MyClass<SpecB> const & obj) called!  obj.x == 1
-foo(MyClass<SpecC> const & obj) called!  obj.x == 0
-foo(MyClass<typename TSpec> const & obj) called!  obj.x == 2
diff --git a/demos/tutorial/genome_annotations/assignment_1_hint.cpp b/demos/tutorial/genome_annotations/assignment_1_hint.cpp
deleted file mode 100644
index 49a4026..0000000
--- a/demos/tutorial/genome_annotations/assignment_1_hint.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-#include <seqan/store.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fileName = getAbsolutePath("/demos/tutorial/genome_annotations/assignment_annotations.gtf");
-    GffFileIn file(toCString(fileName));
-
-    FragmentStore<> store;
-    readRecords(store, file);
-    // Create AnnotationTree iterator
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
-    it = begin(store, AnnotationTree<>());
-    // Move iterator one node down
-    goDown(it);
-
-    std::cout << "Is leaf: " << isLeaf(it) << std::endl;
-    return 0;
-}
diff --git a/demos/tutorial/genome_annotations/assignment_1_hint.cpp.stdout b/demos/tutorial/genome_annotations/assignment_1_hint.cpp.stdout
deleted file mode 100644
index 39d76a6..0000000
--- a/demos/tutorial/genome_annotations/assignment_1_hint.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Is leaf: 0
diff --git a/demos/tutorial/genome_annotations/assignment_1_solution.cpp b/demos/tutorial/genome_annotations/assignment_1_solution.cpp
deleted file mode 100644
index a2d856c..0000000
--- a/demos/tutorial/genome_annotations/assignment_1_solution.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-#include <seqan/store.h>
-
-using namespace seqan;
-int main()
-{
-    CharString fileName = getAbsolutePath("/demos/tutorial/genome_annotations/assignment_annotations.gtf");
-    GffFileIn file(toCString(fileName));
-
-    FragmentStore<> store;
-    readRecords(store, file);
-    // Create AnnotationTree iterator
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
-    it = begin(store, AnnotationTree<>());
-    unsigned count = 0;
-    // Go down to the first leaf (first child of the first mRNA)
-    while (goDown(it))
-    {}
-    std::cout << "Is leaf: " << isLeaf(it) << std::endl;
-
-    ++count;
-    // Iterate over all siblings and count
-    while (goRight(it))
-        ++count;
-    std::cout << "No. of children of the first mRNA: " << count << std::endl;
-    return 0;
-}
diff --git a/demos/tutorial/genome_annotations/assignment_1_solution.cpp.stdout b/demos/tutorial/genome_annotations/assignment_1_solution.cpp.stdout
deleted file mode 100644
index 62ee58c..0000000
--- a/demos/tutorial/genome_annotations/assignment_1_solution.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Is leaf: 1
-No. of children of the first mRNA: 9
diff --git a/demos/tutorial/genome_annotations/assignment_2_solution.cpp b/demos/tutorial/genome_annotations/assignment_2_solution.cpp
deleted file mode 100644
index 9dba3df..0000000
--- a/demos/tutorial/genome_annotations/assignment_2_solution.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-#include <seqan/store.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fileName = getAbsolutePath("/demos/tutorial/genome_annotations/assignment_annotations.gtf");
-    GffFileIn file(toCString(fileName));
-
-    FragmentStore<> store;
-    readRecords(store, file);
-    // Iterate over all leafs, count and print the result
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
-    it = begin(store, AnnotationTree<>());
-    unsigned count = 0;
-    std::cout << "Number of children for each mRNA: " << std::endl;
-    // Go down to the first leaf (first child of the first mRNA)
-    while (goDown(it))
-    {}
-
-    while (!atEnd(it))
-    {
-        ++count;
-        // Iterate over all siblings and count
-        while (goRight(it))
-            ++count;
-        std::cout << count << std::endl;
-        count = 0;
-        // Jump to the next mRNA or gene, go down to its first leaf and count it
-        if (!atEnd(it))
-        {
-            goNext(it);
-            if (!atEnd(it))
-                while (goDown(it))
-                {}
-        }
-    }
-    return 0;
-}
diff --git a/demos/tutorial/genome_annotations/assignment_2_solution.cpp.stdout b/demos/tutorial/genome_annotations/assignment_2_solution.cpp.stdout
deleted file mode 100644
index c0426c2..0000000
--- a/demos/tutorial/genome_annotations/assignment_2_solution.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Number of children for each mRNA: 
-9
-2
-2
diff --git a/demos/tutorial/genome_annotations/assignment_3_solution.cpp b/demos/tutorial/genome_annotations/assignment_3_solution.cpp
deleted file mode 100644
index 2de4f3a..0000000
--- a/demos/tutorial/genome_annotations/assignment_3_solution.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-#include <seqan/store.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fileName = getAbsolutePath("/demos/tutorial/genome_annotations/assignment_annotations.gtf");
-    GffFileIn file(toCString(fileName));
-
-    FragmentStore<> store;
-    readRecords(store, file);
-    // Create iterator
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
-    it = begin(store, AnnotationTree<>());
-    // Iterate to the first annotation of type "exon"
-    while (!atEnd(it) && getType(it) != "exon")
-        goNext(it);
-    // Output:
-    std::cout << "  type: " << getType(it) << std::endl;
-    std::cout << "  begin position: " << getAnnotation(it).beginPos << std::endl;
-    std::cout << "  end position: " << getAnnotation(it).endPos << std::endl;
-    std::cout << "  id: " << value(it) << std::endl;
-    std::cout << "  parent id: " << getAnnotation(it).parentId << std::endl;
-    std::cout << "  parent name: " << getParentName(it) << std::endl;
-    return 0;
-}
diff --git a/demos/tutorial/genome_annotations/assignment_3_solution.cpp.stdout b/demos/tutorial/genome_annotations/assignment_3_solution.cpp.stdout
deleted file mode 100644
index 1433f45..0000000
--- a/demos/tutorial/genome_annotations/assignment_3_solution.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-  type: exon
-  begin position: 149
-  end position: 200
-  id: 3
-  parent id: 2
-  parent name: 381.000.1
diff --git a/demos/tutorial/genome_annotations/assignment_4_solution.cpp b/demos/tutorial/genome_annotations/assignment_4_solution.cpp
deleted file mode 100644
index e259c7c..0000000
--- a/demos/tutorial/genome_annotations/assignment_4_solution.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-#include <seqan/store.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString fileName = getAbsolutePath("/demos/tutorial/genome_annotations/assignment_annotations.gtf");
-    GffFileIn file(toCString(fileName));
-
-    FragmentStore<> store;
-    readRecords(store, file);
-    // Create iterator
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
-    it = begin(store, AnnotationTree<>());
-    unsigned countGenes = 0;
-    unsigned countmRNAs = 0;
-    unsigned countExons = 0;
-    unsigned length = 0;
-    // Iterate over annotation tree and count different elements and compute exon lengths
-    while (!atEnd(it))
-    {
-        if (getType(it) == "gene")
-        {
-            ++countGenes;
-        }
-        else if (getType(it) == "mRNA")
-        {
-            ++countmRNAs;
-        }
-        else if (getType(it) == "exon")
-        {
-            ++countExons;
-            length += abs((int)getAnnotation(it).endPos - (int)getAnnotation(it).beginPos);
-        }
-        goNext(it);
-    }
-    if (countGenes == 0u)  // prevent div-by-zero below
-        countGenes = 1;
-    if (countmRNAs == 0u)  // prevent div-by-zero below
-        countmRNAs = 1;
-    if (countExons == 0u)  // prevent div-by-zero below
-        countExons = 1;
-    // Ouput some stats:
-    std::cout << "Average number of mRNAs for genes: " << (float)countmRNAs / (float)countGenes << std::endl;
-    std::cout << "Average number of exons for mRNAs: " << (float)countExons / (float)countmRNAs << std::endl;
-    std::cout << "Average length of exons: " << (float)length / (float)countExons << std::endl;
-    return 0;
-}
diff --git a/demos/tutorial/genome_annotations/assignment_4_solution.cpp.stdout b/demos/tutorial/genome_annotations/assignment_4_solution.cpp.stdout
deleted file mode 100644
index 5ac98fc..0000000
--- a/demos/tutorial/genome_annotations/assignment_4_solution.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-Average number of mRNAs for genes: 1.5
-Average number of exons for mRNAs: 3
-Average length of exons: 95.5556
diff --git a/demos/tutorial/genome_annotations/base.cpp b/demos/tutorial/genome_annotations/base.cpp
deleted file mode 100644
index 63161c3..0000000
--- a/demos/tutorial/genome_annotations/base.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//![INCLUDE]
-#include <seqan/store.h>
-//![INCLUDE]
-//![MAIN]
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-
-using namespace seqan;
-
-int main()
-{
-//![MAIN]
-//![SIGNATURE]
-    FragmentStore<> store;
-//![SIGNATURE]
-//![LOAD]
-    CharString fileName = getAbsolutePath("/demos/tutorial/genome_annotations/example.gtf");
-    GffFileIn file(toCString(fileName));
-
-    readRecords(store, file);
-//![LOAD]
-//![ITERATOR]
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
-    it = begin(store, AnnotationTree<>());
-//![ITERATOR]
-//![MOVE]
-    // Move the iterator down to a leaf
-    while (goDown(it))
-    {}
-    // Create a new iterator and if possible move it to the right sibling of the first iterator
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it2;
-    if (isLastChild(it))
-        it2 = nodeRight(it);
-//![MOVE]
-//![DFS]
-    // Move the iterator back to the beginning
-    goBegin(it);
-    // Iterate over the nodes in preorder DFS while the end is not reached and
-    // output if the current node is a leaf
-    while (!atEnd(it))
-    {
-        if (isLeaf(it))
-            std::cout << " current node is leaf" << std::endl;
-        goNext(it);
-    }
-//![DFS]
-//![ACCESS]
-    // Move the iterator to the begin of the annotation tree
-    it = begin(store, AnnotationTree<>());
-    // Go down to exon level
-    while (goDown(it)) ;
-    std::cout << "type: " <<  getType(it) << std::endl;
-    std::cout << "id: " << value(it) << std::endl;
-    std::cout << "begin position: " <<  getAnnotation(it).beginPos << std::endl;
-//![ACCESS]
-//![CREATE]
-    Iterator<FragmentStore<>, AnnotationTree<> >::Type it3;
-    // Create a right sibling of the current node and return an iterator to this new node
-    it3 = createSibling(it);
-//![CREATE]
-//![OUT]
-    // Open output stream
-    GffFileOut fileOut("example_out.gtf");
-    // Write annotations to GTF file
-    writeRecords(fileOut, store);
-//![OUT]
-    return 0;
-}
\ No newline at end of file
diff --git a/demos/tutorial/genome_annotations/base.cpp.stdout b/demos/tutorial/genome_annotations/base.cpp.stdout
deleted file mode 100644
index c9e19ef..0000000
--- a/demos/tutorial/genome_annotations/base.cpp.stdout
+++ /dev/null
@@ -1,7 +0,0 @@
- current node is leaf
- current node is leaf
- current node is leaf
- current node is leaf
-type: exon
-id: 3
-begin position: 149
diff --git a/demos/tutorial/genome_annotations/example.gtf b/demos/tutorial/genome_annotations/example.gtf
deleted file mode 100644
index 939dfd1..0000000
--- a/demos/tutorial/genome_annotations/example.gtf
+++ /dev/null
@@ -1,4 +0,0 @@
-chr1	MySource	exon	150	200	.	+	.	gene_id "381.000"; transcript_id "381.000.1";
-chr1	MySource	exon	300	401	.	+	.	gene_id "381.000"; transcript_id "381.000.1";
-chr1	MySource	CDS	380	401	.	+	0	gene_id "381.000"; transcript_id "381.000.1";
-chr1	MySource	exon	160	210	.	+	.	gene_id "381.000"; transcript_id "381.000.2";
\ No newline at end of file
diff --git a/demos/tutorial/getting_started/CMakeLists.txt b/demos/tutorial/getting_started/CMakeLists.txt
new file mode 100644
index 0000000..058744e
--- /dev/null
+++ b/demos/tutorial/getting_started/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_getting_started)
+
+seqan_setup_apps(demos_tutorials_getting_started)
+seqan_add_all_executables(demos_tutorials_getting_started tutorial_)
diff --git a/demos/tutorial/getting_started/cmd_dir_build_src.png b/demos/tutorial/getting_started/cmd_dir_build_src.png
new file mode 100644
index 0000000..d059b92
Binary files /dev/null and b/demos/tutorial/getting_started/cmd_dir_build_src.png differ
diff --git a/demos/tutorial/getting_started/eclipse_convert_to_cpp_project.png b/demos/tutorial/getting_started/eclipse_convert_to_cpp_project.png
new file mode 100644
index 0000000..7995f6e
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_convert_to_cpp_project.png differ
diff --git a/demos/tutorial/getting_started/eclipse_hello_world.png b/demos/tutorial/getting_started/eclipse_hello_world.png
new file mode 100644
index 0000000..69e427d
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_hello_world.png differ
diff --git a/demos/tutorial/getting_started/eclipse_import_build_project.png b/demos/tutorial/getting_started/eclipse_import_build_project.png
new file mode 100644
index 0000000..5e719a6
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_import_build_project.png differ
diff --git a/demos/tutorial/getting_started/eclipse_new_repository_location.png b/demos/tutorial/getting_started/eclipse_new_repository_location.png
new file mode 100644
index 0000000..37ccce2
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_new_repository_location.png differ
diff --git a/demos/tutorial/getting_started/eclipse_preference_build_on_launch.png b/demos/tutorial/getting_started/eclipse_preference_build_on_launch.png
new file mode 100644
index 0000000..5207d28
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_preference_build_on_launch.png differ
diff --git a/demos/tutorial/getting_started/eclipse_required_plugins.png b/demos/tutorial/getting_started/eclipse_required_plugins.png
new file mode 100644
index 0000000..4a8748f
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_required_plugins.png differ
diff --git a/demos/tutorial/getting_started/eclipse_run_configurations.png b/demos/tutorial/getting_started/eclipse_run_configurations.png
new file mode 100644
index 0000000..2806439
Binary files /dev/null and b/demos/tutorial/getting_started/eclipse_run_configurations.png differ
diff --git a/demos/tutorial/getting_started/mingw_installation.png b/demos/tutorial/getting_started/mingw_installation.png
new file mode 100644
index 0000000..9ed9838
Binary files /dev/null and b/demos/tutorial/getting_started/mingw_installation.png differ
diff --git a/demos/tutorial/getting_started/repository_overview.pptx b/demos/tutorial/getting_started/repository_overview.pptx
new file mode 100644
index 0000000..335e587
Binary files /dev/null and b/demos/tutorial/getting_started/repository_overview.pptx differ
diff --git a/demos/tutorial/getting_started/repository_overview/Folie1.jpg b/demos/tutorial/getting_started/repository_overview/Folie1.jpg
new file mode 100644
index 0000000..9ce828e
Binary files /dev/null and b/demos/tutorial/getting_started/repository_overview/Folie1.jpg differ
diff --git a/demos/tutorial/getting_started/win_command_arguments.jpg b/demos/tutorial/getting_started/win_command_arguments.jpg
new file mode 100755
index 0000000..1cb322f
Binary files /dev/null and b/demos/tutorial/getting_started/win_command_arguments.jpg differ
diff --git a/demos/tutorial/getting_started/win_new_file.jpg b/demos/tutorial/getting_started/win_new_file.jpg
new file mode 100755
index 0000000..c3a6733
Binary files /dev/null and b/demos/tutorial/getting_started/win_new_file.jpg differ
diff --git a/demos/tutorial/getting_started/win_save_file.jpg b/demos/tutorial/getting_started/win_save_file.jpg
new file mode 100755
index 0000000..1db095d
Binary files /dev/null and b/demos/tutorial/getting_started/win_save_file.jpg differ
diff --git a/demos/tutorial/getting_started/win_solution_explorer.png b/demos/tutorial/getting_started/win_solution_explorer.png
new file mode 100755
index 0000000..49449d5
Binary files /dev/null and b/demos/tutorial/getting_started/win_solution_explorer.png differ
diff --git a/demos/tutorial/getting_started/win_start_up_project.png b/demos/tutorial/getting_started/win_start_up_project.png
new file mode 100755
index 0000000..53fae94
Binary files /dev/null and b/demos/tutorial/getting_started/win_start_up_project.png differ
diff --git a/demos/tutorial/getting_started/win_tortoise.png b/demos/tutorial/getting_started/win_tortoise.png
new file mode 100755
index 0000000..f79143f
Binary files /dev/null and b/demos/tutorial/getting_started/win_tortoise.png differ
diff --git a/demos/tutorial/getting_started/xcode/base_sdk.png b/demos/tutorial/getting_started/xcode/base_sdk.png
new file mode 100644
index 0000000..c818510
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/base_sdk.png differ
diff --git a/demos/tutorial/getting_started/xcode/base_sdk_selection.png b/demos/tutorial/getting_started/xcode/base_sdk_selection.png
new file mode 100644
index 0000000..dddbba5
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/base_sdk_selection.png differ
diff --git a/demos/tutorial/getting_started/xcode/download-command-line-tools.png b/demos/tutorial/getting_started/xcode/download-command-line-tools.png
new file mode 100644
index 0000000..e651f53
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/download-command-line-tools.png differ
diff --git a/demos/tutorial/getting_started/xcode/first_app_new.png b/demos/tutorial/getting_started/xcode/first_app_new.png
new file mode 100644
index 0000000..fd922ba
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/first_app_new.png differ
diff --git a/demos/tutorial/getting_started/xcode/first_app_old.png b/demos/tutorial/getting_started/xcode/first_app_old.png
new file mode 100644
index 0000000..ac4fb0e
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/first_app_old.png differ
diff --git a/demos/tutorial/getting_started/xcode/razers2_built.png b/demos/tutorial/getting_started/xcode/razers2_built.png
new file mode 100644
index 0000000..7a847ff
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/razers2_built.png differ
diff --git a/demos/tutorial/getting_started/xcode/razers2_selection.png b/demos/tutorial/getting_started/xcode/razers2_selection.png
new file mode 100644
index 0000000..35dc444
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/razers2_selection.png differ
diff --git a/demos/tutorial/getting_started/xcode/test_stream_selection.png b/demos/tutorial/getting_started/xcode/test_stream_selection.png
new file mode 100644
index 0000000..61dd0e9
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/test_stream_selection.png differ
diff --git a/demos/tutorial/getting_started/xcode/xcode_startup.png b/demos/tutorial/getting_started/xcode/xcode_startup.png
new file mode 100644
index 0000000..1a488b6
Binary files /dev/null and b/demos/tutorial/getting_started/xcode/xcode_startup.png differ
diff --git a/demos/tutorial/getting_started/xcode_first_app.jpg b/demos/tutorial/getting_started/xcode_first_app.jpg
new file mode 100644
index 0000000..f159c06
Binary files /dev/null and b/demos/tutorial/getting_started/xcode_first_app.jpg differ
diff --git a/demos/tutorial/getting_started/xcode_start_up_view.png b/demos/tutorial/getting_started/xcode_start_up_view.png
new file mode 100644
index 0000000..aae04d9
Binary files /dev/null and b/demos/tutorial/getting_started/xcode_start_up_view.png differ
diff --git a/demos/tutorial/gff_and_gtf_io/example.gff b/demos/tutorial/gff_and_gtf_io/example.gff
deleted file mode 100644
index 017d855..0000000
--- a/demos/tutorial/gff_and_gtf_io/example.gff
+++ /dev/null
@@ -1,23 +0,0 @@
-ctg123	.	gene	1000	9000	.	+	.	ID=gene00001;Name=EDEN
-ctg123	.	TF_binding_site	1000	1012	.	+	.	Parent=gene00001
-ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00001;Parent=gene00001
-ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00002;Parent=gene00001
-ctg123	.	mRNA	1300	9000	.	+	.	ID=mRNA00003;Parent=gene00001
-ctg123	.	exon	1300	1500	.	+	.	Parent=mRNA00003
-ctg123	.	exon	1050	1500	.	+	.	Parent=mRNA00001,mRNA00002
-ctg123	.	exon	3000	3902	.	+	.	Parent=mRNA00001,mRNA00003
-ctg123	.	exon	5000	5500	.	+	.	Parent=mRNA00001,mRNA00002,mRNA00003
-ctg123	.	exon	7000	9000	.	+	.	Parent=mRNA00001,mRNA00002,mRNA00003
-ctg123	.	CDS	1201	1500	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	3000	3902	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	5000	5500	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	7000	7600	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	1201	1500	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	5000	5500	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	7000	7600	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	3301	3902	.	+	0	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	5000	5500	.	+	1	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	7000	7600	.	+	1	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	3391	3902	.	+	0	ID=cds00004;Parent=mRNA00003
-ctg123	.	CDS	5000	5500	.	+	1	ID=cds00004;Parent=mRNA00003
-ctg123	.	CDS	7000	7600	.	+	1	ID=cds00004;Parent=mRNA00003
\ No newline at end of file
diff --git a/demos/tutorial/gff_and_gtf_io/example1.cpp b/demos/tutorial/gff_and_gtf_io/example1.cpp
deleted file mode 100644
index 0ba0884..0000000
--- a/demos/tutorial/gff_and_gtf_io/example1.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <seqan/basic.h>
-#include <seqan/gff_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Get path to example file.
-    CharString file = getAbsolutePath("/demos/tutorial/gff_and_gtf_io/example.gff");
-
-    // Open input file.
-    GffFileIn gffIn(toCString(file));
-
-    // Attach to standard output.
-    GffFileOut gffOut(std::cout, Gff());
-
-    // Copy the file record by record.
-    GffRecord record;
-    while (!atEnd(gffIn))
-    {
-        readRecord(record, gffIn);
-        writeRecord(gffOut, record);
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/gff_and_gtf_io/example1.cpp.stdout b/demos/tutorial/gff_and_gtf_io/example1.cpp.stdout
deleted file mode 100644
index 42708f7..0000000
--- a/demos/tutorial/gff_and_gtf_io/example1.cpp.stdout
+++ /dev/null
@@ -1,23 +0,0 @@
-ctg123	.	gene	1000	9000	.	+	.	ID=gene00001;Name=EDEN
-ctg123	.	TF_binding_site	1000	1012	.	+	.	Parent=gene00001
-ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00001;Parent=gene00001
-ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00002;Parent=gene00001
-ctg123	.	mRNA	1300	9000	.	+	.	ID=mRNA00003;Parent=gene00001
-ctg123	.	exon	1300	1500	.	+	.	Parent=mRNA00003
-ctg123	.	exon	1050	1500	.	+	.	Parent=mRNA00001,mRNA00002
-ctg123	.	exon	3000	3902	.	+	.	Parent=mRNA00001,mRNA00003
-ctg123	.	exon	5000	5500	.	+	.	Parent=mRNA00001,mRNA00002,mRNA00003
-ctg123	.	exon	7000	9000	.	+	.	Parent=mRNA00001,mRNA00002,mRNA00003
-ctg123	.	CDS	1201	1500	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	3000	3902	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	5000	5500	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	7000	7600	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	1201	1500	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	5000	5500	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	7000	7600	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	3301	3902	.	+	0	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	5000	5500	.	+	1	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	7000	7600	.	+	1	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	3391	3902	.	+	0	ID=cds00004;Parent=mRNA00003
-ctg123	.	CDS	5000	5500	.	+	1	ID=cds00004;Parent=mRNA00003
-ctg123	.	CDS	7000	7600	.	+	1	ID=cds00004;Parent=mRNA00003
diff --git a/demos/tutorial/gff_and_gtf_io/example2.cpp b/demos/tutorial/gff_and_gtf_io/example2.cpp
deleted file mode 100644
index 613b638..0000000
--- a/demos/tutorial/gff_and_gtf_io/example2.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <seqan/basic.h>
-#include <seqan/gff_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Get path to example file.
-    CharString file = getAbsolutePath("/demos/tutorial/gff_and_gtf_io/example.gff");
-
-    // Open input file.
-    GffFileIn gffIn(toCString(file));
-
-    // Open output stream. If target is a ostream we must specify the format.
-    GffFileOut gffOut(std::cout, Gtf());
-
-    // Read the file record by record.
-    GffRecord record;
-    while (!atEnd(gffIn))
-    {
-        readRecord(record, gffIn);
-        writeRecord(gffOut, record);
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/gff_and_gtf_io/example2.cpp.stdout b/demos/tutorial/gff_and_gtf_io/example2.cpp.stdout
deleted file mode 100644
index a212948..0000000
--- a/demos/tutorial/gff_and_gtf_io/example2.cpp.stdout
+++ /dev/null
@@ -1,23 +0,0 @@
-ctg123	.	gene	1000	9000	.	+	.	ID "gene00001"; Name "EDEN";
-ctg123	.	TF_binding_site	1000	1012	.	+	.	Parent "gene00001";
-ctg123	.	mRNA	1050	9000	.	+	.	ID "mRNA00001"; Parent "gene00001";
-ctg123	.	mRNA	1050	9000	.	+	.	ID "mRNA00002"; Parent "gene00001";
-ctg123	.	mRNA	1300	9000	.	+	.	ID "mRNA00003"; Parent "gene00001";
-ctg123	.	exon	1300	1500	.	+	.	Parent "mRNA00003";
-ctg123	.	exon	1050	1500	.	+	.	Parent "mRNA00001,mRNA00002";
-ctg123	.	exon	3000	3902	.	+	.	Parent "mRNA00001,mRNA00003";
-ctg123	.	exon	5000	5500	.	+	.	Parent "mRNA00001,mRNA00002,mRNA00003";
-ctg123	.	exon	7000	9000	.	+	.	Parent "mRNA00001,mRNA00002,mRNA00003";
-ctg123	.	CDS	1201	1500	.	+	0	ID "cds00001"; Parent "mRNA00001";
-ctg123	.	CDS	3000	3902	.	+	0	ID "cds00001"; Parent "mRNA00001";
-ctg123	.	CDS	5000	5500	.	+	0	ID "cds00001"; Parent "mRNA00001";
-ctg123	.	CDS	7000	7600	.	+	0	ID "cds00001"; Parent "mRNA00001";
-ctg123	.	CDS	1201	1500	.	+	0	ID "cds00002"; Parent "mRNA00002";
-ctg123	.	CDS	5000	5500	.	+	0	ID "cds00002"; Parent "mRNA00002";
-ctg123	.	CDS	7000	7600	.	+	0	ID "cds00002"; Parent "mRNA00002";
-ctg123	.	CDS	3301	3902	.	+	0	ID "cds00003"; Parent "mRNA00003";
-ctg123	.	CDS	5000	5500	.	+	1	ID "cds00003"; Parent "mRNA00003";
-ctg123	.	CDS	7000	7600	.	+	1	ID "cds00003"; Parent "mRNA00003";
-ctg123	.	CDS	3391	3902	.	+	0	ID "cds00004"; Parent "mRNA00003";
-ctg123	.	CDS	5000	5500	.	+	1	ID "cds00004"; Parent "mRNA00003";
-ctg123	.	CDS	7000	7600	.	+	1	ID "cds00004"; Parent "mRNA00003";
diff --git a/demos/tutorial/gff_and_gtf_io/solution1.cpp b/demos/tutorial/gff_and_gtf_io/solution1.cpp
deleted file mode 100644
index fdd2e46..0000000
--- a/demos/tutorial/gff_and_gtf_io/solution1.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <seqan/gff_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Get path to example file.
-    CharString file = getAbsolutePath("/demos/tutorial/gff_and_gtf_io/example.gff");
-
-    // Open input file.
-    GffFileIn gffIn;
-    if (!open(gffIn, toCString(file)))
-    {
-        std::cerr << "ERROR: Could not open example.gff" << std::endl;
-        return 1;
-    }
-
-    // Attach to standard output.
-    GffFileOut gffOut(std::cout, Gff());
-
-    // Copy the file record by record.
-    GffRecord record;
-
-    try
-    {
-        while (!atEnd(gffIn))
-        {
-            readRecord(record, gffIn);
-            writeRecord(gffOut, record);
-        }
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/gff_and_gtf_io/solution1.cpp.stdout b/demos/tutorial/gff_and_gtf_io/solution1.cpp.stdout
deleted file mode 100644
index 42708f7..0000000
--- a/demos/tutorial/gff_and_gtf_io/solution1.cpp.stdout
+++ /dev/null
@@ -1,23 +0,0 @@
-ctg123	.	gene	1000	9000	.	+	.	ID=gene00001;Name=EDEN
-ctg123	.	TF_binding_site	1000	1012	.	+	.	Parent=gene00001
-ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00001;Parent=gene00001
-ctg123	.	mRNA	1050	9000	.	+	.	ID=mRNA00002;Parent=gene00001
-ctg123	.	mRNA	1300	9000	.	+	.	ID=mRNA00003;Parent=gene00001
-ctg123	.	exon	1300	1500	.	+	.	Parent=mRNA00003
-ctg123	.	exon	1050	1500	.	+	.	Parent=mRNA00001,mRNA00002
-ctg123	.	exon	3000	3902	.	+	.	Parent=mRNA00001,mRNA00003
-ctg123	.	exon	5000	5500	.	+	.	Parent=mRNA00001,mRNA00002,mRNA00003
-ctg123	.	exon	7000	9000	.	+	.	Parent=mRNA00001,mRNA00002,mRNA00003
-ctg123	.	CDS	1201	1500	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	3000	3902	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	5000	5500	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	7000	7600	.	+	0	ID=cds00001;Parent=mRNA00001
-ctg123	.	CDS	1201	1500	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	5000	5500	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	7000	7600	.	+	0	ID=cds00002;Parent=mRNA00002
-ctg123	.	CDS	3301	3902	.	+	0	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	5000	5500	.	+	1	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	7000	7600	.	+	1	ID=cds00003;Parent=mRNA00003
-ctg123	.	CDS	3391	3902	.	+	0	ID=cds00004;Parent=mRNA00003
-ctg123	.	CDS	5000	5500	.	+	1	ID=cds00004;Parent=mRNA00003
-ctg123	.	CDS	7000	7600	.	+	1	ID=cds00004;Parent=mRNA00003
diff --git a/demos/tutorial/gff_and_gtf_io/solution2.cpp b/demos/tutorial/gff_and_gtf_io/solution2.cpp
deleted file mode 100644
index dcac315..0000000
--- a/demos/tutorial/gff_and_gtf_io/solution2.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <seqan/gff_io.h>
-#include <seqan/misc/name_store_cache.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Get path to example file.
-    CharString file = getAbsolutePath("/demos/tutorial/gff_and_gtf_io/example.gff");
-
-    // Open input file.
-    GffFileIn gffIn;
-    if (!open(gffIn, toCString(file)))
-    {
-        std::cerr << "ERROR: Could not open example.gff" << std::endl;
-        return 1;
-    }
-
-    // Array of counters and sequence names.
-    String<unsigned> counters;
-    StringSet<CharString> seqNames;
-    NameStoreCache<StringSet<CharString> > cache(seqNames);
-
-    // Read the file record by record.
-    GffRecord record;
-
-    try
-    {
-        while (!atEnd(gffIn))
-        {
-            readRecord(record, gffIn);
-            unsigned rID = nameToId(cache, record.ref);
-
-            // Resize counters if necessary and increment counter.
-            assignValueById(counters, rID, getValueById(counters, rID) + 1);
-        }
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    // Print result.
-    std::cout << "RECORDS ON CONTIGS\n";
-    for (unsigned i = 0; i < length(seqNames); ++i)
-        if (counters[i] != 0u)
-            std::cout << seqNames[i] << '\t' << counters[i] << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/gff_and_gtf_io/solution2.cpp.stdout b/demos/tutorial/gff_and_gtf_io/solution2.cpp.stdout
deleted file mode 100644
index 2e3359d..0000000
--- a/demos/tutorial/gff_and_gtf_io/solution2.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-RECORDS ON CONTIGS
-ctg123	23
diff --git a/demos/tutorial/gff_and_gtf_io/solution3.cpp.stdout b/demos/tutorial/gff_and_gtf_io/solution3.cpp.stdout
deleted file mode 100644
index cd1578e..0000000
--- a/demos/tutorial/gff_and_gtf_io/solution3.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-ctg123	.	gene	1000	9000	.	+	.	ID=gene0001;Name=EDEN
-ctg123	.	TF_binding_site	1000	1012	.	+	.	Parent=gene0001
diff --git a/demos/tutorial/gff_io/example1.cpp b/demos/tutorial/gff_io/example1.cpp
new file mode 100644
index 0000000..d6b9438
--- /dev/null
+++ b/demos/tutorial/gff_io/example1.cpp
@@ -0,0 +1,22 @@
+#include <seqan/gff_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input file.
+    GffFileIn gffIn("example.gff");
+
+    // Attach to standard output.
+    GffFileOut gffOut(std::cout, Gff());
+
+    // Copy the file record by record.
+    GffRecord record;
+    while (!atEnd(gffIn))
+    {
+        readRecord(record, gffIn);
+        writeRecord(gffOut, record);
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/gff_io/example2.cpp b/demos/tutorial/gff_io/example2.cpp
new file mode 100644
index 0000000..8c990b2
--- /dev/null
+++ b/demos/tutorial/gff_io/example2.cpp
@@ -0,0 +1,22 @@
+#include <seqan/basic.h>
+#include <seqan/gff_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input stream.
+    GffFileIn gffIn("example.gff");
+    // Open output stream. If target is a ostream we must specify the format.
+    GffFileOut gffOut(std::cout, Gtf());
+
+    // Read the file record by record.
+    GffRecord record;
+    while (!atEnd(gffIn))
+    {
+        readRecord(record, gffIn);
+        writeRecord(gffOut, record);
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/gff_io/solution1.cpp b/demos/tutorial/gff_io/solution1.cpp
new file mode 100644
index 0000000..46c0adf
--- /dev/null
+++ b/demos/tutorial/gff_io/solution1.cpp
@@ -0,0 +1,36 @@
+#include <seqan/gff_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input file.
+    GffFileIn gffIn;
+    if (!open(gffIn, "example.gff"))
+    {
+        std::cerr << "ERROR: Could not open example.gff" << std::endl;
+        return 1;
+    }
+
+    // Attach to standard output.
+    GffFileOut gffOut(std::cout, Gff());
+
+    // Copy the file record by record.
+    GffRecord record;
+
+    try
+    {
+        while (!atEnd(gffIn))
+        {
+            readRecord(record, gffIn);
+            writeRecord(gffOut, record);
+        }
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    return 0;
+}
diff --git a/demos/tutorial/gff_io/solution2.cpp b/demos/tutorial/gff_io/solution2.cpp
new file mode 100644
index 0000000..8aa719b
--- /dev/null
+++ b/demos/tutorial/gff_io/solution2.cpp
@@ -0,0 +1,48 @@
+#include <seqan/gff_io.h>
+#include <seqan/misc/name_store_cache.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Open input gff file.
+    GffFileIn gffIn;
+    if (!open(gffIn, "example.gff"))
+    {
+        std::cerr << "ERROR: Could not open example.gff\n";
+        return 1;
+    }
+
+    // Array of counters and sequence names.
+    String<unsigned> counters;
+    StringSet<CharString> seqNames;
+    NameStoreCache<StringSet<CharString> > cache(seqNames);
+
+    // Read the file record by record.
+    GffRecord record;
+
+    try
+    {
+        while (!atEnd(gffIn))
+        {
+            readRecord(record, gffIn);
+            unsigned rID = nameToId(cache, record.ref);
+
+            // Resize counters if necessary and increment counter.
+            assignValueById(counters, rID, getValueById(counters, rID) + 1);
+        }
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    // Print result.
+    std::cout << "RECORDS ON CONTIGS\n";
+    for (unsigned i = 0; i < length(seqNames); ++i)
+        if (counters[i] != 0u)
+            std::cout << seqNames[i] << '\t' << counters[i] << '\n';
+
+    return 0;
+}
diff --git a/demos/tutorial/gff_and_gtf_io/solution3.cpp b/demos/tutorial/gff_io/solution3.cpp
similarity index 100%
rename from demos/tutorial/gff_and_gtf_io/solution3.cpp
rename to demos/tutorial/gff_io/solution3.cpp
diff --git a/demos/tutorial/graph/CMakeLists.txt b/demos/tutorial/graph/CMakeLists.txt
new file mode 100644
index 0000000..0c447c7
--- /dev/null
+++ b/demos/tutorial/graph/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_graph)
+
+seqan_setup_apps(demos_tutorials_graph)
+seqan_add_all_executables(demos_tutorials_graph tutorial_)
diff --git a/demos/tutorial/graph/graph_algo_scc.cpp b/demos/tutorial/graph/graph_algo_scc.cpp
index 960b93e..83abfdd 100644
--- a/demos/tutorial/graph/graph_algo_scc.cpp
+++ b/demos/tutorial/graph/graph_algo_scc.cpp
@@ -9,6 +9,7 @@ int main()
 {
     typedef Graph<Directed<> > TGraph;
     typedef VertexDescriptor<TGraph>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<TGraph>::Type TEdgeDescriptor;
     typedef Size<TGraph>::Type TSize;
 //![typedefs]
 
diff --git a/demos/tutorial/graph/graph_algo_scc.cpp.stdout b/demos/tutorial/graph/graph_algo_scc.cpp.stdout
deleted file mode 100644
index 768722a..0000000
--- a/demos/tutorial/graph/graph_algo_scc.cpp.stdout
+++ /dev/null
@@ -1,35 +0,0 @@
-Adjacency list:
-0 -> 4,
-1 -> 0,
-2 -> 3,1,
-3 -> 2,
-4 -> 1,
-5 -> 6,4,1,
-6 -> 5,2,
-7 -> 7,6,3,
-Edge list:
-Source: 0,Target: 4 (Id: 1)
-Source: 1,Target: 0 (Id: 0)
-Source: 2,Target: 3 (Id: 7)
-Source: 2,Target: 1 (Id: 2)
-Source: 3,Target: 2 (Id: 6)
-Source: 4,Target: 1 (Id: 3)
-Source: 5,Target: 6 (Id: 11)
-Source: 5,Target: 4 (Id: 9)
-Source: 5,Target: 1 (Id: 4)
-Source: 6,Target: 5 (Id: 10)
-Source: 6,Target: 2 (Id: 5)
-Source: 7,Target: 7 (Id: 13)
-Source: 7,Target: 6 (Id: 12)
-Source: 7,Target: 3 (Id: 8)
-
-Iterate from 'a' in depth-first-search ordering: a, e, b, 
-Strongly Connected Components: 
-Vertex a: Component = 3
-Vertex b: Component = 3
-Vertex c: Component = 2
-Vertex d: Component = 2
-Vertex e: Component = 3
-Vertex f: Component = 1
-Vertex g: Component = 1
-Vertex h: Component = 0
diff --git a/demos/tutorial/graph/graph_dijkstra.cpp.stdout b/demos/tutorial/graph/graph_dijkstra.cpp.stdout
deleted file mode 100644
index 52d0f89..0000000
--- a/demos/tutorial/graph/graph_dijkstra.cpp.stdout
+++ /dev/null
@@ -1,10 +0,0 @@
-0:Berlin
-1:Hamburg
-2:Hannover
-3:Mainz
-4:Munich
-Shortest path from Hannover to Berlin: 286
-Shortest path from Hannover to Hamburg: 575
-Shortest path from Hannover to Hannover: 0
-Shortest path from Hannover to Mainz: 859
-Shortest path from Hannover to Munich: 572
diff --git a/demos/tutorial/graph/graph_hmm.cpp b/demos/tutorial/graph/graph_hmm.cpp
index cd30895..fdc6634 100644
--- a/demos/tutorial/graph/graph_hmm.cpp
+++ b/demos/tutorial/graph/graph_hmm.cpp
@@ -14,6 +14,7 @@ int main()
     typedef Size<TAlphabet>::Type TSize;
     typedef Graph<Hmm<TAlphabet, TProbability, Default> > THmm;
     typedef VertexDescriptor<THmm>::Type TVertexDescriptor;
+    typedef EdgeDescriptor<THmm>::Type TEdgeDescriptor;
 //![typedefs]
 
 //![variables]
diff --git a/demos/tutorial/graph/graph_hmm.cpp.stdout b/demos/tutorial/graph/graph_hmm.cpp.stdout
deleted file mode 100644
index 660956e..0000000
--- a/demos/tutorial/graph/graph_hmm.cpp.stdout
+++ /dev/null
@@ -1,26 +0,0 @@
-Alphabet:
-{A,C,G,T}
-States:
-{0 (Silent),1,2,3,4 (Silent)}
-Begin state: 0
-End state: 4
-Transition probabilities:
-0 -> 1 (1) 
-1 -> 2 (0.1) ,1 (0.9) 
-2 -> 3 (1) 
-3 -> 4 (0.1) ,3 (0.9) 
-4 -> 
-Emission probabilities:
-1: A (0.25) ,C (0.25) ,G (0.25) ,T (0.25) 
-2: A (0.05) ,C (0) ,G (0.95) ,T (0) 
-3: A (0.4) ,C (0.1) ,G (0.1) ,T (0.4) 
-Viterbi algorithm
-Probability of best path: 1.25465e-18
-Sequence: 
-C,T,T,C,A,T,G,T,G,A,A,A,G,C,A,G,A,C,G,T,A,A,G,T,C,A,
-State path: 
-0 (Silent),1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,3,3,3,3,3,3,3,4 (Silent)
-Forward algorithm
-Probability that the HMM generated the sequence: 2.71585e-18
-Backward algorithm
-Probability that the HMM generated the sequence: 2.71585e-18
diff --git a/demos/tutorial/graph/solution_1.cpp.stdout b/demos/tutorial/graph/solution_1.cpp.stdout
deleted file mode 100644
index 5994679..0000000
--- a/demos/tutorial/graph/solution_1.cpp.stdout
+++ /dev/null
@@ -1,10 +0,0 @@
-Adjacency list:
-0 -> 1,
-1 -> 2,
-2 -> 3,
-3 -> 
-Edge list:
-Source: 0,Target: 1 (Id: 0)
-Source: 1,Target: 2 (Id: 1)
-Source: 2,Target: 3 (Id: 2)
-
diff --git a/demos/tutorial/index/CMakeLists.txt b/demos/tutorial/index/CMakeLists.txt
new file mode 100644
index 0000000..638d341
--- /dev/null
+++ b/demos/tutorial/index/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_index)
+
+seqan_setup_apps(demos_tutorials_index)
+seqan_add_all_executables(demos_tutorials_index tutorial_)
diff --git a/demos/tutorial/index_iterators/index_assignment1.cpp b/demos/tutorial/index/index_assignment1.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_assignment1.cpp
rename to demos/tutorial/index/index_assignment1.cpp
diff --git a/demos/tutorial/index_iterators/index_assignment2.cpp b/demos/tutorial/index/index_assignment2.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_assignment2.cpp
rename to demos/tutorial/index/index_assignment2.cpp
diff --git a/demos/tutorial/index_iterators/UNUSED_index_assignment3.cpp b/demos/tutorial/index/index_assignment3.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/UNUSED_index_assignment3.cpp
rename to demos/tutorial/index/index_assignment3.cpp
diff --git a/demos/tutorial/index_iterators/index_assignment4.cpp b/demos/tutorial/index/index_assignment4.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_assignment4.cpp
rename to demos/tutorial/index/index_assignment4.cpp
diff --git a/demos/tutorial/q_gram_index/index_assignment5.cpp b/demos/tutorial/index/index_assignment5.cpp
similarity index 100%
rename from demos/tutorial/q_gram_index/index_assignment5.cpp
rename to demos/tutorial/index/index_assignment5.cpp
diff --git a/demos/tutorial/q_gram_index/index_assignment6.cpp b/demos/tutorial/index/index_assignment6.cpp
similarity index 100%
rename from demos/tutorial/q_gram_index/index_assignment6.cpp
rename to demos/tutorial/index/index_assignment6.cpp
diff --git a/demos/tutorial/index_iterators/index_preorder.cpp b/demos/tutorial/index/index_preorder.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_preorder.cpp
rename to demos/tutorial/index/index_preorder.cpp
diff --git a/demos/tutorial/index_iterators/index_property_maps.cpp b/demos/tutorial/index/index_property_maps.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_property_maps.cpp
rename to demos/tutorial/index/index_property_maps.cpp
diff --git a/demos/tutorial/q_gram_index/index_qgram.cpp b/demos/tutorial/index/index_qgram.cpp
similarity index 100%
rename from demos/tutorial/q_gram_index/index_qgram.cpp
rename to demos/tutorial/index/index_qgram.cpp
diff --git a/demos/tutorial/q_gram_index/index_qgram_hash.cpp b/demos/tutorial/index/index_qgram_hash.cpp
similarity index 100%
rename from demos/tutorial/q_gram_index/index_qgram_hash.cpp
rename to demos/tutorial/index/index_qgram_hash.cpp
diff --git a/demos/tutorial/index_iterators/index_search.cpp b/demos/tutorial/index/index_search.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_search.cpp
rename to demos/tutorial/index/index_search.cpp
diff --git a/demos/tutorial/index_iterators/index_search2.cpp b/demos/tutorial/index/index_search2.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/index_search2.cpp
rename to demos/tutorial/index/index_search2.cpp
diff --git a/demos/tutorial/indices/assignment_1.cpp b/demos/tutorial/index/indices_assignment_1.cpp
similarity index 100%
rename from demos/tutorial/indices/assignment_1.cpp
rename to demos/tutorial/index/indices_assignment_1.cpp
diff --git a/demos/tutorial/indices/assignment_2.cpp b/demos/tutorial/index/indices_assignment_2.cpp
similarity index 100%
rename from demos/tutorial/indices/assignment_2.cpp
rename to demos/tutorial/index/indices_assignment_2.cpp
diff --git a/demos/tutorial/index_iterators/iterator_solution1.cpp b/demos/tutorial/index/iterator_solution1.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/iterator_solution1.cpp
rename to demos/tutorial/index/iterator_solution1.cpp
diff --git a/demos/tutorial/index_iterators/iterator_solution2.cpp b/demos/tutorial/index/iterator_solution2.cpp
similarity index 100%
rename from demos/tutorial/index_iterators/iterator_solution2.cpp
rename to demos/tutorial/index/iterator_solution2.cpp
diff --git a/demos/tutorial/index_iterators/UNUSED_index_assignment3.cpp.stdout b/demos/tutorial/index_iterators/UNUSED_index_assignment3.cpp.stdout
deleted file mode 100644
index dc5b0d9..0000000
--- a/demos/tutorial/index_iterators/UNUSED_index_assignment3.cpp.stdout
+++ /dev/null
@@ -1,16 +0,0 @@
-
-be
-beornottobe
-e
-eornottobe
-nottobe
-o
-obe
-obeornottobe
-ornottobe
-ottobe
-rnottobe
-t
-tobe
-tobeornottobe
-ttobe
diff --git a/demos/tutorial/index_iterators/index_assignment1.cpp.stdout b/demos/tutorial/index_iterators/index_assignment1.cpp.stdout
deleted file mode 100644
index f6200a5..0000000
--- a/demos/tutorial/index_iterators/index_assignment1.cpp.stdout
+++ /dev/null
@@ -1,111 +0,0 @@
-alkovich
-beeonthecomb
-beingjohnmalkovich
-beornottobe
-be
-b
-ch
-comb
-c
-ebeeonthecomb
-ecomb
-eeonthecomb
-eingjohnmalkovich
-eonthecomb
-eornottobe
-eo
-e
-gjohnmalkovich
-hebeeonthecomb
-hecomb
-he
-hnmalkovich
-h
-ich
-ingjohnmalkovich
-i
-johnmalkovich
-kovich
-lkovich
-malkovich
-mb
-m
-ngjohnmalkovich
-nmalkovich
-nottobe
-nthecomb
-n
-obeornottobe
-obe
-ohnmalkovich
-omb
-onthecomb
-ornottobe
-ottobe
-ovich
-o
-rnottobe
-thebeeonthecomb
-thecomb
-the
-tobeornottobe
-tobe
-ttobe
-t
-vich
-
-alkovich
-beeonthecomb
-beingjohnmalkovich
-beornottobe
-be
-b
-ch
-comb
-c
-ebeeonthecomb
-ecomb
-eeonthecomb
-eingjohnmalkovich
-eonthecomb
-eornottobe
-eo
-e
-gjohnmalkovich
-hebeeonthecomb
-hecomb
-he
-hnmalkovich
-h
-ich
-ingjohnmalkovich
-i
-johnmalkovich
-kovich
-lkovich
-malkovich
-mb
-m
-ngjohnmalkovich
-nmalkovich
-nottobe
-nthecomb
-n
-obeornottobe
-obe
-ohnmalkovich
-omb
-onthecomb
-ornottobe
-ottobe
-ovich
-o
-rnottobe
-thebeeonthecomb
-thecomb
-the
-tobeornottobe
-tobe
-ttobe
-t
-vich
diff --git a/demos/tutorial/index_iterators/index_assignment2.cpp.stdout b/demos/tutorial/index_iterators/index_assignment2.cpp.stdout
deleted file mode 100644
index ccda7f1..0000000
--- a/demos/tutorial/index_iterators/index_assignment2.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-CD
-FG
-HC
diff --git a/demos/tutorial/index_iterators/index_assignment4.cpp.stdout b/demos/tutorial/index_iterators/index_assignment4.cpp.stdout
deleted file mode 100644
index 5f658ce..0000000
--- a/demos/tutorial/index_iterators/index_assignment4.cpp.stdout
+++ /dev/null
@@ -1,14 +0,0 @@
-
-be
-e
-o
-obe
-t
-
-
-be
-e
-o
-obe
-t
-
diff --git a/demos/tutorial/index_iterators/index_preorder.cpp.stdout b/demos/tutorial/index_iterators/index_preorder.cpp.stdout
deleted file mode 100644
index 120f4a4..0000000
--- a/demos/tutorial/index_iterators/index_preorder.cpp.stdout
+++ /dev/null
@@ -1,12 +0,0 @@
-
-a
-abra
-abracadabra
-acadabra
-adabra
-bra
-bracadabra
-cadabra
-dabra
-ra
-racadabra
diff --git a/demos/tutorial/index_iterators/index_property_maps.cpp.stdout b/demos/tutorial/index_iterators/index_property_maps.cpp.stdout
deleted file mode 100644
index 00d4c7d..0000000
--- a/demos/tutorial/index_iterators/index_property_maps.cpp.stdout
+++ /dev/null
@@ -1,12 +0,0 @@
-0	
-1	a
-2	abra
-3	abracadabra
-2	acadabra
-2	adabra
-1	bra
-2	bracadabra
-1	cadabra
-1	dabra
-1	ra
-2	racadabra
diff --git a/demos/tutorial/index_iterators/index_search.cpp.stdout b/demos/tutorial/index_iterators/index_search.cpp.stdout
deleted file mode 100644
index 2eb0624..0000000
--- a/demos/tutorial/index_iterators/index_search.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-w
-wo
-wood
-9
-22
diff --git a/demos/tutorial/index_iterators/index_search2.cpp.stdout b/demos/tutorial/index_iterators/index_search2.cpp.stdout
deleted file mode 100644
index 86a6d3a..0000000
--- a/demos/tutorial/index_iterators/index_search2.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-9
-22
diff --git a/demos/tutorial/index_iterators/iterator_solution1.cpp.stdout b/demos/tutorial/index_iterators/iterator_solution1.cpp.stdout
deleted file mode 100644
index d0f90ab..0000000
--- a/demos/tutorial/index_iterators/iterator_solution1.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-w
-wo
-wood
-< 1 , 1 >
-< 2 , 3 >
diff --git a/demos/tutorial/index_iterators/iterator_solution2.cpp.stdout b/demos/tutorial/index_iterators/iterator_solution2.cpp.stdout
deleted file mode 100644
index dc5b0d9..0000000
--- a/demos/tutorial/index_iterators/iterator_solution2.cpp.stdout
+++ /dev/null
@@ -1,16 +0,0 @@
-
-be
-beornottobe
-e
-eornottobe
-nottobe
-o
-obe
-obeornottobe
-ornottobe
-ottobe
-rnottobe
-t
-tobe
-tobeornottobe
-ttobe
diff --git a/demos/tutorial/indices/assignment_1.cpp.stdout b/demos/tutorial/indices/assignment_1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/indices/assignment_2.cpp.stdout b/demos/tutorial/indices/assignment_2.cpp.stdout
deleted file mode 100644
index 4d5b7a3..0000000
--- a/demos/tutorial/indices/assignment_2.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-24
-18
diff --git a/demos/tutorial/iterators/assignment_1_solution.cpp.stdout b/demos/tutorial/iterators/assignment_1_solution.cpp.stdout
deleted file mode 100644
index 9ed0038..0000000
--- a/demos/tutorial/iterators/assignment_1_solution.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Modified genome: AATGGTTACAACAGTAAATGCTGAAAAACATGTACGCGTGTA
diff --git a/demos/tutorial/iterators/assignment_2_solution.cpp.stdout b/demos/tutorial/iterators/assignment_2_solution.cpp.stdout
deleted file mode 100644
index 9ed0038..0000000
--- a/demos/tutorial/iterators/assignment_2_solution.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Modified genome: AATGGTTACAACAGTAAATGCTGAAAAACATGTACGCGTGTA
diff --git a/demos/tutorial/iterators/assignment_3_workshop_solution.cpp b/demos/tutorial/iterators/assignment_3_workshop_solution.cpp
deleted file mode 100644
index 27ed533..0000000
--- a/demos/tutorial/iterators/assignment_3_workshop_solution.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-
-using namespace seqan;
-// Function to print simple alignment between two sequences with the same length
-template <typename TText1, typename TText2>
-void printAlign(TText1 const & genomeFragment, TText2 const & read)
-{
-    std::cout <<  "Alignment " << std::endl;
-    std::cout << "  genome : " << genomeFragment << std::endl;
-    std::cout << "  read   : " << read << std::endl;
-}
-
-int main(int, char const **)
-{
-    // Build reads and genomes
-    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
-
-    // Build List containing all reads
-    typedef String<DnaString> TDnaList;
-    TDnaList readList;
-    resize(readList, 4);
-    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
-    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
-    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
-    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
-
-    // Append a second chromosome sequence fragment to chr1
-    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
-    append(chr1, chr2);
-
-    // Print readlist
-    std::cout << " \n Read list: " << std::endl;
-    for (unsigned i = 0; i < length(readList); ++i)
-        std::cout << readList[i] << std::endl;
-
-    // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
-    // Store the start position in a String alignPosList: 7, 100, 172, 272
-    String<unsigned> alignPosList;
-    resize(alignPosList, 4);
-    alignPosList[0] = 7;
-    alignPosList[1] = 100;
-    alignPosList[2] = 172;
-    alignPosList[3] = 272;
-
-    // Print alignments using Segment
-    std::cout << " \n Print alignment using Segment: " << std::endl;
-    for (unsigned i = 0; i < length(readList); ++i)
-    {
-        // Temporary copy of begin and end position (beginPosition) from alignPosList
-        // of a given alignment between the read and the genome
-        unsigned beginPosition = alignPosList[i];
-        unsigned endPosition = beginPosition + length(readList[i]);
-        // Build infix
-        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, readList[i]);
-    }
-    // Iterators :)
-    // Print alignments using Iterators: Do the same as above, but use Iterators to iterate over the read list.
-    // First, use Standard Iterators.
-    Iterator<TDnaList>::Type it = begin(readList);
-    Iterator<TDnaList, Standard>::Type itEnd = end(readList); //same Iterator as above
-
-    std::cout << " \n Print alignment using Standard Iterators: " << std::endl;
-    for (; it != itEnd; goNext(it))
-    {
-        // Get the right index for alignPosList
-        int i = position(it, readList);
-        // Temporary copy of begin and end position (beginPosition) from alignPosList
-        // of a given alignment between the read and the genome
-        unsigned beginPosition = alignPosList[i];
-        unsigned endPosition = beginPosition + length(value(it));
-        // Build Infix
-        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, value(it));
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/iterators/assignment_3_workshop_solution.cpp.stdout b/demos/tutorial/iterators/assignment_3_workshop_solution.cpp.stdout
deleted file mode 100644
index ddfd5a6..0000000
--- a/demos/tutorial/iterators/assignment_3_workshop_solution.cpp.stdout
+++ /dev/null
@@ -1,34 +0,0 @@
- 
- Read list: 
-TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Segment: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Standard Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
diff --git a/demos/tutorial/iterators/assignment_4_workshop_solution.cpp b/demos/tutorial/iterators/assignment_4_workshop_solution.cpp
deleted file mode 100644
index 8c213cd..0000000
--- a/demos/tutorial/iterators/assignment_4_workshop_solution.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-
-using namespace seqan;
-// Function to print simple alignment between two sequences with the same length
-template <typename TText1, typename TText2>
-void printAlign(TText1 const & genomeFragment, TText2 const & read)
-{
-    std::cout <<  "Alignment " << std::endl;
-    std::cout << "  genome : " << genomeFragment << std::endl;
-    std::cout << "  read   : " << read << std::endl;
-}
-
-int main(int, char const **)
-{
-    // Build reads and genomes
-    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
-    // Build List containing all reads
-    typedef String<DnaString> TDnaList;
-    TDnaList readList;
-    resize(readList, 4);
-    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
-    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
-    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
-    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
-    // Append a second chromosome sequence fragment to chr1
-    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
-    append(chr1, chr2);
-    // Print readlist
-    std::cout << " \n Read list: " << std::endl;
-    for (unsigned i = 0; i < length(readList); ++i)
-        std::cout << readList[i] << std::endl;
-    // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
-    // Store the start position in a String alignPosList: 7, 100, 172, 272
-    String<unsigned> alignPosList;
-    resize(alignPosList, 4);
-    alignPosList[0] = 7;
-    alignPosList[1] = 100;
-    alignPosList[2] = 172;
-    alignPosList[3] = 272;
-    // Print alignments using Segment
-    std::cout << " \n Print alignment using Segment: " << std::endl;
-    for (unsigned i = 0; i < length(readList); ++i)
-    {
-        // Temporary copy of begin and end position (beginPosition) from alignPosList
-        // of a given alignment between the read and the genome
-        unsigned beginPosition = alignPosList[i];
-        unsigned endPosition = beginPosition + length(readList[i]);
-        // Build infix
-        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, readList[i]);
-    }
-    // Iterators :)
-    // Print alignments using Iterators: Do the same as above, but use Iterators to iterate over the read list.
-    // First, use Standard Iterators.
-    Iterator<TDnaList>::Type it = begin(readList);
-    Iterator<TDnaList, Standard>::Type itEnd = end(readList); //same Iterator as above
-
-    std::cout << " \n Print alignment using Standard Iterators: " << std::endl;
-    for (; it != itEnd; goNext(it))
-    {
-        // Get the right index for alignPosList
-        int i = position(it, readList);
-        // Temporary copy of begin and end position (beginPosition) from alignPosList
-        // of a given alignment between the read and the genome
-        unsigned beginPosition = alignPosList[i];
-        unsigned endPosition = beginPosition + length(value(it));
-        // Build Infix
-        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, value(it));
-    }
-    // Now, use Rooted Iterators.
-    Iterator<TDnaList, Rooted>::Type it2 = begin(readList);
-    std::cout << " \n Print alignment using Rooted Iterators: " << std::endl;
-    for (; !atEnd(it2); goNext(it2))
-    {
-        int i = position(it2);
-        // Temporary copy of begin and end position (beginPosition) from alignPosList
-        // of a given alignment between the read and the genome
-        unsigned beginPosition = alignPosList[i];
-        unsigned endPosition = beginPosition + length(value(it2));
-        // Build Infix
-        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, value(it2));
-    }
-    return 0;
-}
diff --git a/demos/tutorial/iterators/assignment_4_workshop_solution.cpp.stdout b/demos/tutorial/iterators/assignment_4_workshop_solution.cpp.stdout
deleted file mode 100644
index cc3d034..0000000
--- a/demos/tutorial/iterators/assignment_4_workshop_solution.cpp.stdout
+++ /dev/null
@@ -1,48 +0,0 @@
- 
- Read list: 
-TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Segment: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Standard Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Rooted Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
diff --git a/demos/tutorial/iterators/assignment_1_solution.cpp b/demos/tutorial/iterators/iterators_assignment_1_solution.cpp
similarity index 100%
rename from demos/tutorial/iterators/assignment_1_solution.cpp
rename to demos/tutorial/iterators/iterators_assignment_1_solution.cpp
diff --git a/demos/tutorial/iterators/assignment_2_solution.cpp b/demos/tutorial/iterators/iterators_assignment_2_solution.cpp
similarity index 100%
rename from demos/tutorial/iterators/assignment_2_solution.cpp
rename to demos/tutorial/iterators/iterators_assignment_2_solution.cpp
diff --git a/demos/tutorial/iterators/iterators_assignment_3_workshop_solution.cpp b/demos/tutorial/iterators/iterators_assignment_3_workshop_solution.cpp
new file mode 100644
index 0000000..6e46fd9
--- /dev/null
+++ b/demos/tutorial/iterators/iterators_assignment_3_workshop_solution.cpp
@@ -0,0 +1,82 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+// Function to print simple alignment between two sequences with the same length
+template <typename TText1, typename TText2>
+void printAlign(TText1 const & genomeFragment, TText2 const & read)
+{
+    std::cout <<  "Alignment " << std::endl;
+    std::cout << "  genome : " << genomeFragment << std::endl;
+    std::cout << "  read   : " << read << std::endl;
+}
+
+int main(int, char const **)
+{
+    // Build reads and genomes
+    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
+
+    // Build List containing all reads
+    typedef String<DnaString> TDnaList;
+    TDnaList readList;
+    resize(readList, 4);
+    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
+    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
+    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
+    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
+
+    // Append a second chromosome sequence fragment to chr1
+    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
+    append(chr1, chr2);
+
+    // Print readlist
+    std::cout << " \n Read list: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+        std::cout << readList[i] << std::endl;
+
+    // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
+    // Store the start position in a String alignPosList: 7, 100, 172, 272
+    String<unsigned> alignPosList;
+    resize(alignPosList, 4);
+    alignPosList[0] = 7;
+    alignPosList[1] = 100;
+    alignPosList[2] = 172;
+    alignPosList[3] = 272;
+
+    // Print alignments using Segment
+    std::cout << " \n Print alignment using Segment: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+    {
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(readList[i]);
+        // Build infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, readList[i]);
+    }
+    // Iterators :)
+    // Print alignments using Iterators: Do the same as above, but use Iterators to iterate over the read list.
+    // First, use Standard Iterators.
+    Iterator<TDnaList>::Type it = begin(readList);
+    Iterator<TDnaList, Standard>::Type itEnd = end(readList); //same Iterator as above
+
+    std::cout << " \n Print alignment using Standard Iterators: " << std::endl;
+    for (; it != itEnd; goNext(it))
+    {
+        // Get the right index for alignPosList
+        int i = position(it, readList);
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(value(it));
+        // Build Infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, value(it));
+    }
+
+    return 1;
+}
diff --git a/demos/tutorial/iterators/iterators_assignment_4_workshop_solution.cpp b/demos/tutorial/iterators/iterators_assignment_4_workshop_solution.cpp
new file mode 100644
index 0000000..e544ddb
--- /dev/null
+++ b/demos/tutorial/iterators/iterators_assignment_4_workshop_solution.cpp
@@ -0,0 +1,91 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+// Function to print simple alignment between two sequences with the same length
+template <typename TText1, typename TText2>
+void printAlign(TText1 const & genomeFragment, TText2 const & read)
+{
+    std::cout <<  "Alignment " << std::endl;
+    std::cout << "  genome : " << genomeFragment << std::endl;
+    std::cout << "  read   : " << read << std::endl;
+}
+
+int main(int, char const **)
+{
+    // Build reads and genomes
+    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
+    // Build List containing all reads
+    typedef String<DnaString> TDnaList;
+    TDnaList readList;
+    resize(readList, 4);
+    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
+    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
+    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
+    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
+    // Append a second chromosome sequence fragment to chr1
+    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
+    append(chr1, chr2);
+    // Print readlist
+    std::cout << " \n Read list: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+        std::cout << readList[i] << std::endl;
+    // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
+    // Store the start position in a String alignPosList: 7, 100, 172, 272
+    String<unsigned> alignPosList;
+    resize(alignPosList, 4);
+    alignPosList[0] = 7;
+    alignPosList[1] = 100;
+    alignPosList[2] = 172;
+    alignPosList[3] = 272;
+    // Print alignments using Segment
+    std::cout << " \n Print alignment using Segment: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+    {
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(readList[i]);
+        // Build infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, readList[i]);
+    }
+    // Iterators :)
+    // Print alignments using Iterators: Do the same as above, but use Iterators to iterate over the read list.
+    // First, use Standard Iterators.
+    Iterator<TDnaList>::Type it = begin(readList);
+    Iterator<TDnaList, Standard>::Type itEnd = end(readList); //same Iterator as above
+
+    std::cout << " \n Print alignment using Standard Iterators: " << std::endl;
+    for (; it != itEnd; goNext(it))
+    {
+        // Get the right index for alignPosList
+        int i = position(it, readList);
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(value(it));
+        // Build Infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, value(it));
+    }
+    // Now, use Rooted Iterators.
+    Iterator<TDnaList, Rooted>::Type it2 = begin(readList);
+    std::cout << " \n Print alignment using Rooted Iterators: " << std::endl;
+    for (; !atEnd(it2); goNext(it2))
+    {
+        int i = position(it2);
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(value(it2));
+        // Build Infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, value(it2));
+    }
+    return 1;
+}
diff --git a/demos/tutorial/iterators/sequence_iterator_demo.cpp.stdout b/demos/tutorial/iterators/sequence_iterator_demo.cpp.stdout
deleted file mode 100644
index fa8abe5..0000000
--- a/demos/tutorial/iterators/sequence_iterator_demo.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-TATANNNGCGCG
-TATANNNGCGCG
-ATATNNNCGCGC
-GCGCGNNNATAT
-NATANNNGCGCG
diff --git a/demos/tutorial/journaled_set/example_join.cpp.stdout b/demos/tutorial/journaled_set/example_join.cpp.stdout
deleted file mode 100644
index 1b8dfd1..0000000
--- a/demos/tutorial/journaled_set/example_join.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Reference: DPKKPRGKMSSYAFFVQTSREEHKKKHPDASVNFSEFSKKCSERWKTMSAKEKGKFEDMAKADKARYEREMKTYIPPKGE
-Journaled Sequence 0: DPKKPRGKMVNSPPAFFVQTSREEHKKKHPDASVFSKKCSERWKTMSAKEKGKFEDMAKARYEREMKTTYIPKGETYIPPKGE
-Journaled Sequence 1: DPHHPPKPRGKMVNSPPAFFVQTSREEHKPDASVFSKKCSERRMPNHHTMSAKEKGKFEDMAKARYEREMKTTYIPKGETYIPPKGE
-Journaled Sequence 2: DPKKPRGKMSSYAFFVQTSREEHKKKHPKKCDEFSKKCSERWKTMSAKEKGKFEDARYEREMKTYIPPKGE
diff --git a/demos/tutorial/journaled_set/example_journal_string_basic.cpp b/demos/tutorial/journaled_set/example_journal_string_basic.cpp
deleted file mode 100644
index 63532d5..0000000
--- a/demos/tutorial/journaled_set/example_journal_string_basic.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//![main]
-#include <seqan/stream.h>
-#include <seqan/sequence_journaled.h>
-
-using namespace seqan;
-
-int main()
-{
-//![main]
-//![typedef]
-    typedef String<char, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournaledString;
-    typedef Host<TJournaledString>::Type THost;
-//![typedef]
-
-//![init]
-    THost hostStr = "thisisahostsequence";
-    TJournaledString journalStr;
-    setHost(journalStr, hostStr);
-
-    std::cout << "After creating the Journaled String:" << std::endl;
-    std::cout << "Host: " << host(journalStr) << std::endl;
-    std::cout << "Journal: " << journalStr << std::endl;
-    std::cout << "Nodes: " << journalStr._journalEntries << std::endl;
-    std::cout << std::endl;
-//![init]
-
-//![modification]
-    insert(journalStr, 7, "modified");
-    erase(journalStr, 19, 27);
-
-    std::cout << "After modifying the Journaled String:" << std::endl;
-    std::cout << "Host: " << host(journalStr) << std::endl;
-    std::cout << "Journal: " << journalStr << std::endl;
-    std::cout << "Nodes: " << journalStr._journalEntries << std::endl;
-    std::cout << std::endl;
-//![modification]
-
-//![flatten]
-    flatten(journalStr);
-    std::cout << "After flatten the Journaled String:" << std::endl;
-    std::cout << "Host: " << host(journalStr) << std::endl;
-    std::cout << "Journal: " << journalStr << std::endl;
-    std::cout << "Nodes: " << journalStr._journalEntries << std::endl;
-
-    return 0;
-}
-//![flatten]
diff --git a/demos/tutorial/journaled_set/example_journal_string_basic.cpp.stdout b/demos/tutorial/journaled_set/example_journal_string_basic.cpp.stdout
deleted file mode 100644
index ae1ab01..0000000
--- a/demos/tutorial/journaled_set/example_journal_string_basic.cpp.stdout
+++ /dev/null
@@ -1,14 +0,0 @@
-After creating the Journaled String:
-Host: thisisahostsequence
-Journal: thisisahostsequence
-Nodes: JournalEntries({segmentSource=1, virtualPosition=0, physicalPosition=0, physicalOriginPosition=0, length=19})
-
-After modifying the Journaled String:
-Host: thisisahostsequence
-Journal: thisisamodifiedhost
-Nodes: JournalEntries({segmentSource=1, virtualPosition=0, physicalPosition=0, physicalOriginPosition=0, length=7}, {segmentSource=2, virtualPosition=7, physicalPosition=0, physicalOriginPosition=0, length=8}, {segmentSource=1, virtualPosition=15, physicalPosition=7, physicalOriginPosition=7, length=4})
-
-After flatten the Journaled String:
-Host: thisisamodifiedhost
-Journal: thisisamodifiedhost
-Nodes: JournalEntries({segmentSource=1, virtualPosition=0, physicalPosition=0, physicalOriginPosition=0, length=19})
diff --git a/demos/tutorial/journaled_set/example_online_search.cpp b/demos/tutorial/journaled_set/example_online_search.cpp
deleted file mode 100644
index 8145bda..0000000
--- a/demos/tutorial/journaled_set/example_online_search.cpp
+++ /dev/null
@@ -1,309 +0,0 @@
-//![include]
-#include <iostream>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-//![include]
-
-//![searchAtBorder]
-template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
-void _searchAtBorder(String<int> & hitTarget,
-                     TJournalEntriesIterator & entriesIt,
-                     TJournal const & journal,
-                     TPattern const & pattern)
-{
-    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
-
-    // Define region before the border to the next node to search for the pattern.
-    TJournalIterator nodeIter = iter(journal, entriesIt->virtualPosition +
-                                     _max(0, (int) entriesIt->length - (int) length(pattern) + 1));
-    // Define end of search region.
-    TJournalIterator nodeEnd = iter(journal, _min(entriesIt->virtualPosition + entriesIt->length, length(journal) -
-                                                  length(pattern) + 1));
-    // Move step by step over search region.
-    if (nodeEnd == end(journal))
-        return;
-
-    for (; nodeIter != nodeEnd; ++nodeIter)
-    {
-        // Define compare iterator.
-        TJournalIterator verifyIter = nodeIter;
-        bool isHit = true;
-        // Compare pattern with current search window.
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
-        {
-            // Comparing the pattern value with the current value of the iterator.
-            if (pattern[posPattern] != getValue(verifyIter))
-            {
-                isHit = false;
-                break;
-            }
-        }
-        // Report hit if found.
-        if (isHit)
-            appendValue(hitTarget, position(nodeIter));
-    }
-}
-//![searchAtBorder]
-
-//![findInPatchNodePart1]
-template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
-void _findInPatchNode(String<int> & hitTarget,
-                      TJournalEntriesIterator & entriesIt,
-                      TJournal const & journal,
-                      TPattern const & pattern)
-{
-    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
-//![findInPatchNodePart1]
-
-//![findInPatchNodePart2]
-    // Search for pattern in the insertion node.
-    TJournalIterator patchIter = iter(journal, entriesIt->virtualPosition);
-    TJournalIterator patchEnd = patchIter + _max(0, (int)entriesIt->length - (int)length(pattern) + 1);
-    // Move step by step over search region.
-    for (; patchIter != patchEnd; ++patchIter)
-    {
-//![findInPatchNodePart2]
-//![findInPatchNodePart3]
-        TJournalIterator verifyIter = patchIter;
-        bool isHit = true;
-        // Search for pattern in the insertion node.
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
-        {
-            // Comparing the pattern value with the current value of the iterator.
-            if (pattern[posPattern] != getValue(verifyIter))
-            {
-                isHit = false;
-                break;
-            }
-        }
-        if (isHit)
-            appendValue(hitTarget, position(patchIter));
-    }
-}
-//![findInPatchNodePart3]
-
-//![findInOriginalNode]
-template <typename TJournalEntriesIterator, typename TPattern>
-void _findInOriginalNode(String<int> & hitTarget,
-                         TJournalEntriesIterator & entriesIt,
-                         TPattern const & pattern,
-                         String<int> const & refHits)
-{
-    // Define an Iterator which iterates over the reference hit set.
-    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
-
-    // Check if hits exist in the reference.
-    if (!empty(refHits))
-    {
-        // Find upper bound to physical position in sorted refHits.
-        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
-        // Make sure we do not miss hits that begin at physical position of current node.
-        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
-            --itHit;
-        // Store all hits that are found in the region of the reference which is covered by this node.
-        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
-        {
-            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
-            ++itHit;
-        }
-    }
-}
-//![findInOriginalNode]
-
-//![findPatternInJournalStringPart1]
-template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
-void findPatternInJournalString(String<int> & hitTarget,
-                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
-                                TPattern const & pattern,
-                                String<int> const & refHits)
-{
-    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
-    typedef typename JournalType<TJournal>::Type TJournalEntries;
-    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
-
-    if (length(pattern) > length(journal))
-        return;
-//![findPatternInJournalStringPart1]
-
-//![findPatternInJournalStringPart2]
-    TJournalEntriesIterator it = begin(journal._journalEntries);
-    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
-//![findPatternInJournalStringPart2]
-
-//![findPatternInJournalStringPart3]
-    while (it != itEnd)
-    {
-        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
-        {
-            _findInOriginalNode(hitTarget, it, pattern, refHits);
-        }
-        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
-        {
-            _findInPatchNode(hitTarget, it, journal, pattern);
-        }
-        // Scan the border for a possible match.
-        _searchAtBorder(hitTarget, it, journal, pattern);
-        ++it;
-    }
-}
-//![findPatternInJournalStringPart3]
-
-//![findPatternInReference]
-template <typename TString, typename TPattern>
-void findPatternInReference(String<int> & hits,
-                            TString const & reference,
-                            TPattern const & pattern)
-{
-    // Check whether the pattern fits into the sequence.
-    if (length(pattern) > length(reference))
-        return;
-
-    //
-    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
-    {
-        bool isHit = true;
-
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
-        {
-            if (pattern[posPattern] != reference[posPattern + pos])
-            {
-                isHit = false;
-                break;
-            }
-        }
-        // Report the position if found a hit.
-        if (isHit)
-            appendValue(hits, pos);
-    }
-}
-//![findPatternInReference]
-
-//![searchPatternPart1]
-template <typename TString, typename TPattern>
-void searchPattern(StringSet<String<int> > & hitSet,
-                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
-                   TPattern const & pattern)
-{
-    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
-    typedef typename Host<TJournalSet const>::Type THost;
-
-    // Check for valid initial state.
-    if (empty(host(journalSet)))
-    {
-        std::cout << "No reference set. Aborted search!" << std::endl;
-        return;
-    }
-
-    // Reset the hitSet to avoid phantom hits coming from a previous search.
-    clear(hitSet);
-    resize(hitSet, length(journalSet) + 1);
-//![searchPatternPart1]
-//![searchPatternPart2]
-    // Access the reference sequence.
-    THost & globalRef = host(journalSet);
-    // Search for pattern in the reference sequence.
-    findPatternInReference(hitSet[0], globalRef, pattern);
-//![searchPatternPart2]
-
-//![searchPatternPart3]
-    // Search for pattern in the journaled sequences.
-    for (unsigned i = 0; i < length(journalSet); ++i)
-        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
-}
-//![searchPatternPart3]
-
-//![laodAndJoin]
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & joinConfig)
-{
-    typedef typename Host<TString>::Type THost;
-
-    clear(journalSet);
-
-    String<char> seqId;
-    THost sequence;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(seqId, sequence, databaseFile);
-
-    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
-    createHost(journalSet, sequence);
-
-    // If there are more
-    while (!atEnd(databaseFile))
-    {
-        readRecord(seqId, sequence, databaseFile);
-        appendValue(journalSet, TString(sequence));
-        join(journalSet, length(journalSet) - 1, joinConfig);
-    }
-    return 0;
-}
-//![laodAndJoin]
-
-//![main]
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Alloc<> > TSequence;
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    // Define a pattern and start search.
-    StringSet<String<int> > hitSet;
-    TSequence pattern = "GTGGT";
-    std::cout << "Search for: " << pattern << ":\n";
-    searchPattern(hitSet, journalSet, pattern);
-//![main]
-
-//![printResult]
-    if (empty(hitSet[0]))
-    {
-        std::cout << "No hit in reference " << std::endl;
-    }
-    else
-    {
-        std::cout << "Hit in reference " << " at ";
-        for (unsigned j = 0; j < length(hitSet[0]); ++j)
-            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
-    }
-    std::cout << std::endl;
-
-    for (unsigned i = 1; i < length(hitSet); ++i)
-    {
-        if (empty(hitSet[i]))
-        {
-            std::cout << "No hit in sequence " << i - 1 << std::endl;
-        }
-        else
-        {
-            std::cout << "Hit in sequence " << i - 1 << " at ";
-            for (unsigned j = 0; j < length(hitSet[i]); ++j)
-                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
-        }
-        std::cout << std::endl;
-    }
-
-    std::cout << "Done!" << std::endl;
-    return 0;
-}
-//![printResult]
diff --git a/demos/tutorial/journaled_set/example_online_search.cpp.stdout b/demos/tutorial/journaled_set/example_online_search.cpp.stdout
deleted file mode 100644
index f13c664..0000000
--- a/demos/tutorial/journaled_set/example_online_search.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
-Search for: GTGGT:
-Hit in reference  at 311: GTGGT	644: GTGGT	
-Hit in sequence 0 at 151: GTGGT	312: GTGGT	
-Hit in sequence 1 at 308: GTGGT	
-Hit in sequence 2 at 311: GTGGT	507: GTGGT	
-Hit in sequence 3 at 327: GTGGT	
-Hit in sequence 4 at 307: GTGGT	312: GTGGT	317: GTGGT	
-Hit in sequence 5 at 0: GTGGT	320: GTGGT	986: GTGGT	
-Done!
diff --git a/demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp b/demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp
deleted file mode 100644
index 1ff5dde..0000000
--- a/demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & /*journalSet*/,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & /*joinConfig*/)
-{
-    typedef typename Host<TString>::Type THost;
-
-    // [A] Ensure the Journal Set is not occupied by other sequences.
-
-    // Construct the temporary buffers for the read id and sequence.
-    String<char> tempSeqId;
-    THost tempSeq;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(tempSeqId, tempSeq, databaseFile);
-
-    // [B] Set the reference sequence to the Journal Set
-
-    // Read remaining sequences.
-    while (!atEnd(databaseFile))
-    {
-        readRecord(tempSeqId, tempSeq, databaseFile);
-        // [C] Append and join the current read sequence.
-    }
-    return 0;
-}
-
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    // [D] Construct Journaled Set and call loadAndJoin
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    std::cout << "Done!" << std::endl;
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp.stdout b/demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp.stdout
deleted file mode 100644
index 76f5a5a..0000000
--- a/demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Done!
diff --git a/demos/tutorial/journaled_set/sequences.fasta b/demos/tutorial/journaled_set/sequences.fasta
deleted file mode 100644
index 70e5ce3..0000000
--- a/demos/tutorial/journaled_set/sequences.fasta
+++ /dev/null
@@ -1,111 +0,0 @@
->seq_ref
-GTAGGTAAGCGGGGTATTTGCACTTCCCTTAATCCATAAGGGCTTTTGCCGCGTGTTAGAGGAAGCTATC
-CCACACTTGTGTATGGCATCTTCCCCCTCAGCCTCCCTCGTGTCGTACTATACGATCATTTAAAGAAAGA
-TATTTGGGATGGAGACGCATGATTCATGGCTAGTTCGGAGAGCGAACGGCGGAGGCCTAGGTGATATTCA
-GGAGGATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCTTGGCTTTATACAC
-TTCGCGAAATAGACCTCGATAAGCCATCTCTGTGGTGAGCTATCCCGGTTAATGCTAGTTGTGCGGGTTG
-TAATTGCTAGTAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTATTGATTCTTCGTCAGAACTC
-CCCGTAATATACATTTTTGGATATTGGCGCCCCCAGCTGGCACATGTAATATGTGTATATTCACACGTAA
-TAACAGGTATGAATGATGTCACGCCGTCTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATTCTC
-TGGGTCCTGGCGACGCACCCCATCCGCGTAATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGG
-ATAACCAGCTCCTAGTGGTTAAATAGTGACAGGTCTGACAACTAGACCCTATTCCTAGTACCAGCCCATC
-TGCCGCTATAATTTTGCATTTGTTTCGTAAAGGATGAATCGTAATGCCAGCGGACTACCCCCGAGTCACA
-AAATCAATTGAGTTCAGTTGCTATAGAGAGACAACTTACAGGATTAAGTAGTCGTTGCGTAAGTATGATA
-GTAGAACCGCGCAGGAGGCGTACCTAACGCATCACGCCAAACGTTAACTAGGAATTCTGGATCGGCCGGC
-GAACTCCTTTAGAGAGATCAGTAATACACCTATAAGATCAGTATGGTACGAACGGAACCGTGAGTCTTTC
-TTTATCTTCTCTCTTAATTG
->seq_1
-GTAGGTAAGCGGGGTATTTGCACTTCCCTTAATCCACGCTATAAGGGCTTTTGCCGCGTGTTAGAGGAAG
-CTATCCCACACTTGTGTATGGCATCTTCCCCCTCAGCCTCCCTCGTGTCGTACTATACGATCATTTAAAG
-AAAGATATTTGGTGGTGACGCATGATTCATGGCTAGTTCGGAGAGCGAACGGCGGAGGCCTAGGTGATAT
-TCAGGAGGATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCGGCTTTATACA
-CTTCGCGAAATAGACCTCGATAAGCCATCTCTGTGGTGAGCTATCCCGGTTAATGCTAGTTGTGCGGGTT
-GTAATTGCTAGTAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTAATTCTTCGTCAGAACTCCC
-CGTAATATACATTTTTGGATATTGGCGCCCCCAGCTGGCACATGTAATATGTGTATATTCACACGTAAAG
-GTATGAATGATGTCACGCCGTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATTCTCTGGGTCCT
-GGCGACGCACCCCATCCGCGTAATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGGGACGACTC
-ATAACCAGCTCCTATAAATAGTGACATCTGACAACTAGACCCTATTCCTAGTACCAGCCCATCTGCCGCT
-ATAATTTTGCATTTGTTTCGTAAAGGATGAATCGTAATGCCAGCGGACTACCCCCGAGTCACAGATTAAA
-ATCAATTGAGTTCAGTTGCTATAGAGAGAacgtCTTACAGGATTAAGTAGTCGTTGCGTAAGTATGATAG
-TAGAACCGCGCAGGAGGCGTACCTAACGCATCACGCCAAACGTTAACTAGGAATTCTGGATCGGCCGGGA
-ACTCCTTTAGAGAGATCAGTAATACACCTATAAGATCAGTATGGTACGAACGGAACCGTGAGTCTTTCTT
-TATCTTCTCTCTTA
->seq_2
-GTAGGTAAGCGGGGTATTTGCACTTCCCTTAATCCATAAGGGCTTTTGCCGCGTGTTAGAGGAAGCTATC
-CCACACTTGTGTATGGCATCTTCCCCCTCAGCCTCCCTCGTGTCGTACTATACGATCATTTAAAGAAAGA
-TATTTGGGATGGAGACGCATGATTCATGGCTAGTTCGGAGAGCGAACGGCGGAGGCCTAGGTGATATTCA
-GGAGGATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCTTGGCTTTATACAC
-TTCGCGAAGACCTCGATAAGCCATCTCTGTGGTGAGCTATCCCGGTTAATGCTAGTTGTGCGGGTTGACG
-TAATTGCTAGTAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTATTGATTCTTCGTCAGAACTC
-CCCGTAATATACATTTTTGGAACGACTGTTGGCGCCCCCAGCTGGCACATGTAATATGTGTATATTCACA
-TAACAGGTATGAATGATGTCACGCCGTCTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATTCTC
-TGGGTCCTGGCGACGCACCCCATCCGCGTAATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGG
-ATAACCAGCTCCTATAAATAGTGACAGGTCTGACAACTAGACCCTATTCCTAGTACCAGCCCATCTGCCG
-CTATAATTTTGCATTTGTTTCGTAAAGGATGAATCGTAATGCCAGCGGACTACCCCCGAGTCACAGATTA
-AAATCAATTGAGTTCAGTTGCTATAGAGAGACAACTTAACGTATTAAGTAGTCGTTGCGTAAGTATGATA
-GTAGAACCGCGCGGCGTACCTAACGCATCACGCCAAACGTTAACTAGGAATTCTGGATCGGCCGGCGAAC
-TCCTTACCCAACTAGAGAGATCAGTAATACACCTATAAGATCAGTATGGTACGAACGGAACCGTGAGTCT
-TTTATCTTCCTTAATTG
->seq_3
-GTAGGTAAGCGGGGTATTTCTTCCCGTCCTTAATCCATAAGGGCTTTTGCCGCGTGTTAGAGGAAGCTAT
-CCACACTTGTGTATGGCATCTTCCCCCTCCGTCGTAGCCTCCCTCGTGTATACGATCATTTAAAGAAAGA
-TATTTGGGATGGAGACGCATGATTCATGGCTAGTTCGGAGAGCGAACGGCGGAGGCCTAGGTGATATTCA
-GGAGGATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCTTGGCTTTATACAC
-TTCGCGAAATAGACCTCGATAAGCCATCTCTGTGGTGAGCTATCCCGGTTAATGCTAGTTGTGCGGGTTG
-TAATTGCTAGTAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTATTGATTCTTCGTCAGAACTC
-CCCGTAATATACTTGGATATTGGCGCCCCCAGCTGGCACGTCCATGTAATATGTGTATATTCACACGTAA
-TAACAGGTATGAATGATGTGGTCACGCCGTCTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATT
-TGGGTCCTGGCGACGCACCCCATCCGATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGGATAA
-CCAGCTCCTATAAATAGTGACAGGTCTGACAACTAGACCCTATTCCTAGTACCAGCCCATCTGCCGCTAT
-AATTTTGCATTTGTTTCGTCGCGTAAAGGATGAATCGTAATGCCAGCGGACTACCCCCGAGTCACAGATT
-AAATCAATTGAGTTCAGTTGCTATAGAGAGACAACTTACAGGATTAAGTAGTCGTTGCGTAAGTATGATA
-GTAGAACCGCGCAGGAGGTACCTAACGCATCACGCCAAACGTACTAGGAATTCTGGATCGGCCGGGAACT
-CCTTTAGAGAGATCAGTAATACACCTAGATCAGTATGGTACGAACGGAACCGTGAGTCTTTCTTTATCTT
-CTCTCTTAATTG
->seq_4
-GGGGGTGATGAGTAGTAGGTAAGCGGGGTATTTGCACTTCCCTTAATCCATAAGGGCTTTTGCCGCGTGT
-CCACACTTGTGTATGGCATCTTCCCCCTCAGCCTCCCTCGTGTCGTACTATACGATCATTTAAAGAAAGA
-TATTTGGGATGGAGACGCATGATTCATGGCTAGTTCGGAGAGCGAACGGCGGAGGCCTAGGTGATATTCA
-GGAGGATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCTTGGCTTTATACAC
-TTCGCGAAATAGACCTCGATAAGCCAGGCCGCTCGACTCAGCTCTCTGTGGTGAGCTATCCCGGTTAATG
-TAATTGCTAGTAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTATTGATTCTTCGTCAGAACTC
-CCCGTAATATACATTTTTGGATATTGGCGCCCCCAGCTGGCACATGTAATATGTGTATATTCACACGTAA
-TAACAGGTATGAATGATGTCACGCCGTCTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATTCTC
-TGGGTCCTGGCGACGCACCCCATCCGCGTAATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGG
-ATAACCAGCTCCTATAAATAGTGACAGGTCTGACAACTAGACCCTATTCCTAGTACCAGCCCATCTGCCG
-CTATAATTTTGCATTTGTTTCGTAAAGGAACGTACGAGCGACTACGAGCGAGCGACTAGTTAAAATCAAT
-TGAGTTCAGTTGCTATAGAGAGACAACTTACAGGATTAAGTAGTCGTTGCGTAAGTATGATAGTAGAACC
-GCGCAGGAGGCGTACCTAACGCATCACGCCAAACGTTAACTAGGAATTCTGGATCGGCCGGCGAACTCCT
-TTAGAGAGATCAGTAATACACCTATAAGATCAGTATGGTACGAACGGAACCGTGAGTCTTTCTTTATCTT
-CTCTCTTAATTG
->seq_5
-GTAGGTAAGCGGCACTTCCCTTAATCCATAAGGGCTTTTGCCGCGTGTTAGAGGAAGCTATCCCACACTT
-GTGACGACGACTCTATGGCATCTTCCCCCTCAGCCTCCCTCGTGTCGTACTATACGATCATTTAAAGAAA
-GATATTTGGGATGGAGACGCATGATTCATGGCTAGTTCGGAGAGCGGGAGGCCTAGGTGATATTCAGGAG
-GATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCTTGGCTTTATACACTTCG
-CGAAATAGACCTCGATAAGCCATCTCTGTGGTGTGGTGTGGTGAGCTATCCCGGTTAGTTGTGCGGGTTG
-TAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTATTGATTCTTCGTCAGAACTCCCCGTAATAT
-ACATTTTTGGATATTGGCGCCCCCAGCTGGCACATGTAATATGTGTATATTCACACGTAATAACAGGTAT
-GAATGATGTCACGCCGTCTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATTCTCTGGGTCCTGG
-CGACGCACCCCATCCGCGTAATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGGATAACCAGCT
-CCTAACGACGAGCGACACACTGACTACGCTAGACCCTATTCCTAGTACCAGCCCATCTGCCGCTATAATT
-TTGCATTTGTTTCGTAAAGGATGAATCGTAATGCCAGCACAGTATTATATTTTTTCCGAGTCACAGATTA
-AAATCAATTGAGTTCAGTTGCTATAGAGAGACAACTTACAGGATTAAGTAGTCGTTGCGTAAGTATGATA
-GTAGAACCGCGCAGGAGGCGTACCTAACGCATCACGACTAGGAATTCTGGATCGGCCGGCGAACTCCTTT
-AGAGAGATCAGTAATACACCTATAAGATCAGTATGGTACGAACGGTTTATCTTCTCTCTTAATTG
->seq_6
-GTGGTGTAGGTAAGCGGGGTATTTGCACTTCCCTTAATCCATAAGGGCTTTTGCCGCGTGTTAGAGGAAG
-CCACACTTGTGTATGGCATCTTCCCCCTCAGCCTCCCTCGTGTCGTACTATACGATCATTTAAAGAAAGA
-TATTTGGGATGGAGACGCATGAACGACTGACGACTACGCTAGTTCGGAGAGCGAACGGCGGAGGCCTAGG
-TGATATTCAGGAGGATATGGGCTCCACAACTTTTTCCGTCGTAGCAAAGCATAAGGCTGACAAGCTTGGC
-TTTATACACTTCGCGAAATAGACCTCGATAAGCCATCTCTGTGGTGAGCTATCCCGGTTAATGCTAGTTG
-TGCGGGTTGTAATTGCTAGTAACGGCCGGTTCTATTACATCTAATGGAAGGTTGTTCTATTGATTCTTCG
-TCAGAACTCCCCGTAATATACATTTTTGGATGCTGGCACATGTAATATGTGTATATTCACACGTAATAAC
-AGGTATGAATGATGTCACGCCGTCTCTGCGCGGCCCATAAGCTGACGCGCATATCGATATATTCTCTGGG
-TCCTGGCGACGCACCCCATCCGCGTAATATTTAGTCATTCGGGTTTACTCCGATGGTCGCACACGGATAA
-CCAGCTCCTATAAATAGTGACAGGTCTGACAACTAGACCCTATTCCTAGTACCAGCCCATCTGCCGCTAT
-AATTTTGCATTTGTTTCGTAAAGGATGAATCGTAACGATCGACCGGACTACCCCCGAGTCACAGATTAAA
-ATCAATTGAGTTCAGTTGCTATAGAGAGACAACTTACAGGATTAAGTAGTCGTTGCGTAAGTATGATAGT
-AGAACCGCGCTAACGCATCACGCCAAACGTTAACTAGGAATTCTGGATCGGCCGGCGAACTCCTTTAGAG
-AGATCAGTAATACACCTATAAGATCAGTATGGTACGAACGGAACCGTGAGTCTTTCTTTATCTTCTCTCT
-TAATTGGTGGT
\ No newline at end of file
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment1.cpp b/demos/tutorial/journaled_set/solution_online_search_assignment1.cpp
deleted file mode 100644
index 88ceef6..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment1.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & joinConfig)
-{
-    typedef typename Host<TString>::Type THost;
-    // [A]
-    clear(journalSet);
-
-    // Construct the temporary buffers for the read id and sequence.
-    String<char> tempSeqId;
-    THost sequence;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(tempSeqId, sequence, databaseFile);
-    // [B]
-    createHost(journalSet, sequence);  // When using create we copy the reference instead of storing a pointer.
-
-    // Read remaining sequences.
-    while (!atEnd(databaseFile))
-    {
-        readRecord(tempSeqId, sequence, databaseFile);
-        // [C]
-        appendValue(journalSet, TString(sequence)); // First we append the sequence to the set.
-        join(journalSet, length(journalSet) - 1, joinConfig); // Second we join it to the set.
-    }
-    return 0;
-}
-
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    std::cout << "Done!" << std::endl;
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment1.cpp.stdout b/demos/tutorial/journaled_set/solution_online_search_assignment1.cpp.stdout
deleted file mode 100644
index 76f5a5a..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment1.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Done!
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment2.cpp b/demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
deleted file mode 100644
index 151f3af..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//![include]
-#include <iostream>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-//![include]
-
-//![findPatternInReference]
-template <typename TString, typename TPattern>
-void findPatternInReference(String<int> & hits,
-                            TString const & reference,
-                            TPattern const & pattern)
-{
-    // [A] Check whether pattern fits into the sequence.
-    if (length(pattern) > length(reference))
-        return;
-
-    // [B] Iterate over all positions at which the pattern might occur.
-    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
-    {
-        bool isHit = true;
-        // [C] Evaluate all positions of the pattern until you find a mismatch or you have found a hit.
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
-        {
-            if (pattern[posPattern] != reference[posPattern + pos])
-            {
-                isHit = false;
-                break;
-            }
-        }
-        // [D] Report begin position at which pattern matches the sequence.
-        if (isHit)
-            appendValue(hits, pos);
-    }
-}
-//![findPatternInReference]
-
-//![searchPattern]
-template <typename TString, typename TPattern>
-void searchPattern(StringSet<String<int> > & hitSet,
-                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
-                   TPattern const & pattern)
-{
-    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
-    typedef typename Host<TJournalSet const>::Type THost;
-
-    // Check for valid initial state.
-    if (empty(host(journalSet)))
-    {
-        std::cout << "No reference set. Aborted search!" << std::endl;
-        return;
-    }
-
-    // Reset the hitSet to avoid phantom hits coming from a previous search.
-    clear(hitSet);
-    resize(hitSet, length(journalSet) + 1);
-    // Access the reference sequence.
-    THost & globalRef = host(journalSet);
-    // Search for pattern in the reference sequence.
-    findPatternInReference(hitSet[0], globalRef, pattern);
-
-    // Search for pattern in the journaled sequences.
-    for (unsigned i = 0; i < length(journalSet); ++i)
-    {
-//        findPatternInJournalString(hitSet[i+1], journalSet[i], pattern, hitSet[0]);
-    }
-}
-//![searchPattern]
-
-//![loadAndJoin]
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & joinConfig)
-{
-    typedef typename Host<TString>::Type THost;
-
-    clear(journalSet);
-
-    String<char> seqId;
-    THost sequence;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(seqId, sequence, databaseFile);
-
-    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
-    createHost(journalSet, sequence);
-
-    // If there are more
-    while (!atEnd(databaseFile))
-    {
-        readRecord(seqId, sequence, databaseFile);
-        appendValue(journalSet, TString(sequence));
-        join(journalSet, length(journalSet) - 1, joinConfig);
-    }
-    return 0;
-}
-//![loadAndJoin]
-
-//![main]
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Alloc<> > TSequence;
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    // Define a pattern and start search.
-    StringSet<String<int> > hitSet;
-    TSequence pattern = "GTGGT";
-    std::cout << "Search for: " << pattern << ":\n";
-    searchPattern(hitSet, journalSet, pattern);
-//![main]
-
-//![printResult]
-    if (empty(hitSet[0]))
-    {
-        std::cout << "No hit in reference " << std::endl;
-    }
-    else
-    {
-        std::cout << "Hit in reference " << " at ";
-        for (unsigned j = 0; j < length(hitSet[0]); ++j)
-            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
-    }
-    std::cout << std::endl;
-
-    std::cout << "Done!" << std::endl;
-    return 0;
-}
-//![printResult]
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment2.cpp.stdout b/demos/tutorial/journaled_set/solution_online_search_assignment2.cpp.stdout
deleted file mode 100644
index f426b48..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment2.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-Search for: GTGGT:
-Hit in reference  at 311: GTGGT	644: GTGGT	
-Done!
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment3.cpp b/demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
deleted file mode 100644
index a9d56b1..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-//![include]
-#include <iostream>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-//![include]
-
-//![findInOriginalNode]
-template <typename TJournalEntriesIterator, typename TPattern>
-void _findInOriginalNode(String<int> & hitTarget,
-                         TJournalEntriesIterator & entriesIt,
-                         TPattern const & pattern,
-                         String<int> const & refHits)
-{
-    // Define an Iterator which iterates over the reference hit set.
-    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
-
-    // [A] Check if hits exist in the reference.
-    if (!empty(refHits))
-    {
-        // [B] Find upper bound to current physical position in sorted refHits using std::upper_bound.
-        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
-        // [C] Make sure we do not miss hits that begin at physical position of current node.
-        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
-            --itHit;
-        // [D] Store all hits that are found in the region of the reference which is covered by this node.
-        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
-        {
-            // [E] Store the correct virtual position and check next hit.
-            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
-            ++itHit;
-        }
-    }
-}
-//![findInOriginalNode]
-
-//![findPatternInJournalString]
-template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
-void findPatternInJournalString(String<int> & hitTarget,
-                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
-                                TPattern const & pattern,
-                                String<int> const & refHits)
-{
-    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
-    typedef typename JournalType<TJournal>::Type TJournalEntries;
-    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
-
-    if (length(pattern) > length(journal))
-        return;
-
-    TJournalEntriesIterator it = begin(journal._journalEntries);
-    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
-
-    while (it != itEnd)
-    {
-        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
-        {
-            _findInOriginalNode(hitTarget, it, pattern, refHits);
-        }
-        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
-        { //            _findInPatchNode(hitTarget, it, journal, pattern);
-        }
-        // Scan the border for a possible match.
-//        _searchAtBorder(hitTarget, it, journal, pattern);
-        ++it;
-    }
-}
-//![findPatternInJournalString]
-
-//![findPatternInReference]
-template <typename TString, typename TPattern>
-void findPatternInReference(String<int> & hits,
-                            TString const & reference,
-                            TPattern const & pattern)
-{
-    // Check whether the pattern fits into the sequence.
-    if (length(pattern) > length(reference))
-        return;
-
-    //
-    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
-    {
-        bool isHit = true;
-
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
-        {
-            if (pattern[posPattern] != reference[posPattern + pos])
-            {
-                isHit = false;
-                break;
-            }
-        }
-        // Report the position if found a hit.
-        if (isHit)
-            appendValue(hits, pos);
-    }
-}
-//![findPatternInReference]
-
-//![searchPattern]
-template <typename TString, typename TPattern>
-void searchPattern(StringSet<String<int> > & hitSet,
-                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
-                   TPattern const & pattern)
-{
-    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
-    typedef typename Host<TJournalSet const>::Type THost;
-
-    // Check for valid initial state.
-    if (empty(host(journalSet)))
-    {
-        std::cout << "No reference set. Aborted search!" << std::endl;
-        return;
-    }
-
-    // Reset the hitSet to avoid phantom hits coming from a previous search.
-    clear(hitSet);
-    resize(hitSet, length(journalSet) + 1);
-    // Access the reference sequence.
-    THost & globalRef = host(journalSet);
-    // Search for pattern in the reference sequence.
-    findPatternInReference(hitSet[0], globalRef, pattern);
-    // Search for pattern in the journaled sequences.
-    for (unsigned i = 0; i < length(journalSet); ++i)
-        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
-}
-//![searchPattern]
-
-//![laodAndJoin]
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & joinConfig)
-{
-    typedef typename Host<TString>::Type THost;
-
-    clear(journalSet);
-
-    String<char> seqId;
-    THost sequence;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(seqId, sequence, databaseFile);
-
-    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
-    createHost(journalSet, sequence);
-
-    // If there are more
-    while (!atEnd(databaseFile))
-    {
-        readRecord(seqId, sequence, databaseFile);
-        appendValue(journalSet, TString(sequence));
-        join(journalSet, length(journalSet) - 1, joinConfig);
-    }
-    return 0;
-}
-//![laodAndJoin]
-
-//![main]
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Alloc<> > TSequence;
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    // Define a pattern and start search.
-    StringSet<String<int> > hitSet;
-    TSequence pattern = "GTGGT";
-    std::cout << "Search for: " << pattern << ":\n";
-    searchPattern(hitSet, journalSet, pattern);
-//![main]
-
-//![printResultReference]
-    if (empty(hitSet[0]))
-    {
-        std::cout << "No hit in reference " << std::endl;
-    }
-    else
-    {
-        std::cout << "Hit in reference " << " at ";
-        for (unsigned j = 0; j < length(hitSet[0]); ++j)
-            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
-    }
-    std::cout << std::endl;
-//![printResultReference]
-
-//![printResultJournalSequence]
-    for (unsigned i = 1; i < length(hitSet); ++i)
-    {
-        if (empty(hitSet[i]))
-        {
-            std::cout << "No hit in sequence " << i - 1 << std::endl;
-        }
-        else
-        {
-            std::cout << "Hit in sequence " << i - 1 << " at ";
-            for (unsigned j = 0; j < length(hitSet[i]); ++j)
-                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
-        }
-        std::cout << std::endl;
-    }
-    std::cout << "Done!" << std::endl;
-    return 0;
-}
-//![printResultJournalSequence]
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment3.cpp.stdout b/demos/tutorial/journaled_set/solution_online_search_assignment3.cpp.stdout
deleted file mode 100644
index 1f22450..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment3.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
-Search for: GTGGT:
-Hit in reference  at 311: GTGGT	644: GTGGT	
-Hit in sequence 0 at 312: GTGGT	
-Hit in sequence 1 at 308: GTGGT	
-Hit in sequence 2 at 311: GTGGT	
-Hit in sequence 3 at 327: GTGGT	
-Hit in sequence 4 at 317: GTGGT	
-Hit in sequence 5 at 320: GTGGT	
-Done!
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment4.cpp b/demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
deleted file mode 100644
index 255b97e..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-//![include]
-#include <iostream>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-//![include]
-
-//![searchAtBorder]
-template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
-void _searchAtBorder(String<int> & hitTarget,
-                     TJournalEntriesIterator & entriesIt,
-                     TJournal const & journal,
-                     TPattern const & pattern)
-{
-    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
-
-    // [A] Determine first position of the at which pattern crosses the border of current node.
-    TJournalIterator nodeIter = iter(journal, entriesIt->virtualPosition + _max(0, (int)entriesIt->length - (int)length(pattern) + 1));
-    // [B] Determine last position before pattern exits the current node or reaches the end of the sequence.
-    TJournalIterator nodeEnd = iter(journal, _min(entriesIt->virtualPosition + entriesIt->length, length(journal) - length(pattern) + 1));
-    if (nodeEnd == end(journal))
-        return;
-
-    // [C] Move step by step over search region.
-    for (; nodeIter != nodeEnd; ++nodeIter)
-    {
-        // [D] Scan pattern in current window and report possible hits.
-        TJournalIterator verifyIter = nodeIter;
-        bool isHit = true;
-        // Compare pattern with current search window.
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
-        {
-            // Comparing the pattern value with the current value of the iterator.
-            if (pattern[posPattern] != getValue(verifyIter))
-            {
-                isHit = false;
-                break;
-            }
-        }
-        // Report hit if found.
-        if (isHit)
-            appendValue(hitTarget, position(nodeIter));
-    }
-}
-//![searchAtBorder]
-
-//![findInPatchNode]
-template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
-void _findInPatchNode(String<int> & hitTarget,
-                      TJournalEntriesIterator & entriesIt,
-                      TJournal const & journal,
-                      TPattern const & pattern)
-{
-    typedef typename Iterator<TJournal const, Standard>::Type TJournalIterator;
-
-    // Search for pattern in the insertion node.
-    TJournalIterator patchIter = iter(journal, entriesIt->virtualPosition);
-    TJournalIterator patchEnd = patchIter + _max(0, (int)entriesIt->length - (int)length(pattern) + 1);
-    // Move step by step over search region.
-    for (; patchIter != patchEnd; ++patchIter)
-    {
-        TJournalIterator verifyIter = patchIter;
-        bool isHit = true;
-        // Search for pattern in the insertion node.
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern, ++verifyIter)
-        {
-            // Comparing the pattern value with the current value of the iterator.
-            if (pattern[posPattern] != getValue(verifyIter))
-            {
-                isHit = false;
-                break;
-            }
-        }
-        if (isHit)
-            appendValue(hitTarget, position(patchIter));
-    }
-}
-//![findInPatchNode]
-
-//![findInOriginalNode]
-template <typename TJournalEntriesIterator, typename TPattern>
-void _findInOriginalNode(String<int> & hitTarget,
-                         TJournalEntriesIterator & entriesIt,
-                         TPattern const & pattern,
-                         String<int> const & refHits)
-{
-    // Define an Iterator which iterates over the reference hit set.
-    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
-
-    // Check if hits exist in the reference.
-    if (!empty(refHits))
-    {
-        // Find upper bound to physical position in sorted refHits.
-        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
-        // Make sure we do not miss hits that begin at physical position of current node.
-        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
-            --itHit;
-        // Store all hits that are found in the region of the reference which is covered by this node.
-        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
-        {
-            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
-            ++itHit;
-        }
-    }
-}
-//![findInOriginalNode]
-
-//![findPatternInJournalStringPart1]
-template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
-void findPatternInJournalString(String<int> & hitTarget,
-                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
-                                TPattern const & pattern,
-                                String<int> const & refHits)
-{
-    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
-    typedef typename JournalType<TJournal>::Type TJournalEntries;
-    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
-
-    if (length(pattern) > length(journal))
-        return;
-
-    TJournalEntriesIterator it = begin(journal._journalEntries);
-    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
-
-    while (it != itEnd)
-    {
-        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
-        {
-            _findInOriginalNode(hitTarget, it, pattern, refHits);
-        }
-        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
-        {
-            _findInPatchNode(hitTarget, it, journal, pattern);
-        }
-        // Scan the border for a possible match.
-        _searchAtBorder(hitTarget, it, journal, pattern);
-        ++it;
-    }
-}
-//![findPatternInJournalStringPart1]
-
-//![findPatternInReference]
-template <typename TString, typename TPattern>
-void findPatternInReference(String<int> & hits,
-                            TString const & reference,
-                            TPattern const & pattern)
-{
-    // Check whether the pattern fits into the sequence.
-    if (length(pattern) > length(reference))
-        return;
-
-    //
-    for (unsigned pos = 0; pos < length(reference) - length(pattern) + 1; ++pos)
-    {
-        bool isHit = true;
-
-        for (unsigned posPattern = 0; posPattern < length(pattern); ++posPattern)
-        {
-            if (pattern[posPattern] != reference[posPattern + pos])
-            {
-                isHit = false;
-                break;
-            }
-        }
-        // Report the position if found a hit.
-        if (isHit)
-            appendValue(hits, pos);
-    }
-}
-//![findPatternInReference]
-
-//![searchPatternPart1]
-template <typename TString, typename TPattern>
-void searchPattern(StringSet<String<int> > & hitSet,
-                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
-                   TPattern const & pattern)
-{
-    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
-    typedef typename Host<TJournalSet const>::Type THost;
-
-    // Check for valid initial state.
-    if (empty(host(journalSet)))
-    {
-        std::cout << "No reference set. Aborted search!" << std::endl;
-        return;
-    }
-
-    // Reset the hitSet to avoid phantom hits coming from a previous search.
-    clear(hitSet);
-    resize(hitSet, length(journalSet) + 1);
-    // Access the reference sequence.
-    THost & globalRef = host(journalSet);
-    // Search for pattern in the reference sequence.
-    findPatternInReference(hitSet[0], globalRef, pattern);
-
-    // Search for pattern in the journaled sequences.
-    for (unsigned i = 0; i < length(journalSet); ++i)
-        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
-}
-//![searchPatternPart1]
-
-//![laodAndJoin]
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & joinConfig)
-{
-    typedef typename Host<TString>::Type THost;
-
-    clear(journalSet);
-
-    String<char> seqId;
-    THost sequence;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(seqId, sequence, databaseFile);
-
-    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
-    createHost(journalSet, sequence);
-
-    // If there are more
-    while (!atEnd(databaseFile))
-    {
-        readRecord(seqId, sequence, databaseFile);
-        appendValue(journalSet, TString(sequence));
-        join(journalSet, length(journalSet) - 1, joinConfig);
-    }
-    return 0;
-}
-//![laodAndJoin]
-
-//![main]
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Alloc<> > TSequence;
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    // Define a pattern and start search.
-    StringSet<String<int> > hitSet;
-    TSequence pattern = "GTGGT";
-    std::cout << "Search for: " << pattern << ":\n";
-    searchPattern(hitSet, journalSet, pattern);
-//![main]
-
-//![printResult]
-    if (empty(hitSet[0]))
-    {
-        std::cout << "No hit in reference " << std::endl;
-    }
-    else
-    {
-        std::cout << "Hit in reference " << " at ";
-        for (unsigned j = 0; j < length(hitSet[0]); ++j)
-            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
-    }
-    std::cout << std::endl;
-
-    for (unsigned i = 1; i < length(hitSet); ++i)
-    {
-        if (empty(hitSet[i]))
-        {
-            std::cout << "No hit in sequence " << i - 1 << std::endl;
-        }
-        else
-        {
-            std::cout << "Hit in sequence " << i - 1 << " at ";
-            for (unsigned j = 0; j < length(hitSet[i]); ++j)
-                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
-        }
-        std::cout << std::endl;
-    }
-    std::cout << "Done!" << std::endl;
-    return 0;
-}
-//![printResult]
diff --git a/demos/tutorial/journaled_set/solution_online_search_assignment4.cpp.stdout b/demos/tutorial/journaled_set/solution_online_search_assignment4.cpp.stdout
deleted file mode 100644
index f13c664..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_assignment4.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
-Search for: GTGGT:
-Hit in reference  at 311: GTGGT	644: GTGGT	
-Hit in sequence 0 at 151: GTGGT	312: GTGGT	
-Hit in sequence 1 at 308: GTGGT	
-Hit in sequence 2 at 311: GTGGT	507: GTGGT	
-Hit in sequence 3 at 327: GTGGT	
-Hit in sequence 4 at 307: GTGGT	312: GTGGT	317: GTGGT	
-Hit in sequence 5 at 0: GTGGT	320: GTGGT	986: GTGGT	
-Done!
diff --git a/demos/tutorial/journaled_set/solution_online_search_finder.cpp b/demos/tutorial/journaled_set/solution_online_search_finder.cpp
deleted file mode 100644
index e9415a5..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_finder.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-//![include]
-#include <iostream>
-#include <seqan/find.h>
-#include <seqan/seq_io.h>
-#include <seqan/journaled_set.h>
-
-using namespace seqan;
-//![include]
-
-//![searchAtBorder]
-template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
-void _searchAtBorder(String<int> & hitTarget,
-                     TJournalEntriesIterator & entriesIt,
-                     TJournal const & journal,
-                     TPattern const & needle)
-{
-    typedef typename Position<TJournal>::Type TPosition;
-
-    // Define region before the border to the next node to search for the pattern.
-    TPosition infixBegin = entriesIt->virtualPosition + _max(0, (int)entriesIt->length - (int)length(needle) + 1);
-    TPosition infixEnd = _min(length(journal), entriesIt->virtualPosition + entriesIt->length + length(needle) - 1);
-
-    TPattern tmpInsBuffer = infix(journal, infixBegin, infixEnd);
-    Finder<TPattern const> finder(tmpInsBuffer);
-    Pattern<TPattern, Horspool> pattern(needle);
-    while (find(finder, pattern))
-    {
-        appendValue(hitTarget, infixBegin + beginPosition(finder));
-    }
-}
-//![searchAtBorder]
-
-//![findInPatchNodePart1]
-template <typename TJournalEntriesIterator, typename TJournal, typename TPattern>
-void _findInPatchNode(String<int> & hitTarget,
-                      TJournalEntriesIterator & entriesIt,
-                      TJournal const & journal,
-                      TPattern const & needle)
-{
-    typedef typename Position<TJournal>::Type TPosition;
-
-    TPosition infixBegin = entriesIt->virtualPosition;
-    TPosition infixEnd = entriesIt->virtualPosition + entriesIt->length;
-
-    TPattern tmpInsBuffer = infix(journal, infixBegin, infixEnd);
-    Finder<TPattern const> finder(tmpInsBuffer);
-    Pattern<TPattern, Horspool> pattern(needle);
-
-    while (find(finder, pattern))
-        appendValue(hitTarget, entriesIt->virtualPosition + beginPosition(finder));
-}
-//![findInPatchNodePart1]
-
-//![findInOriginalNode]
-template <typename TJournalEntriesIterator, typename TPattern>
-void _findInOriginalNode(String<int> & hitTarget,
-                         TJournalEntriesIterator & entriesIt,
-                         TPattern const & pattern,
-                         String<int> const & refHits)
-{
-    // Define an Iterator which iterates over the reference hit set.
-    typedef typename Iterator<String<int> const, Standard>::Type THitIterator;
-
-    // Check if hits exist in the reference.
-    if (!empty(refHits))
-    {
-        // Find upper bound to physical position in sorted refHits.
-        THitIterator itHit = std::upper_bound(begin(refHits), end(refHits), (int)entriesIt->physicalPosition);
-        // Make sure we do not miss hits that begin at physical position of current node.
-        if (itHit != begin(refHits) && *(itHit - 1) >= (int)entriesIt->physicalPosition)
-            --itHit;
-        // Store all hits that are found in the region of the reference which is covered by this node.
-        while ((int)*itHit < ((int)entriesIt->physicalPosition + (int)entriesIt->length - (int)length(pattern) + 1) && itHit != end(refHits))
-        {
-            appendValue(hitTarget, entriesIt->virtualPosition + (*itHit - (int)entriesIt->physicalPosition));
-            ++itHit;
-        }
-    }
-}
-//![findInOriginalNode]
-
-//![findPatternInJournalString]
-template <typename TValue, typename THostSpec, typename TJournalSpec, typename TBufferSpec, typename TPattern>
-void findPatternInJournalString(String<int> & hitTarget,
-                                String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const & journal,
-                                TPattern const & pattern,
-                                String<int> const & refHits)
-{
-    typedef String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> > const TJournal;
-    typedef typename JournalType<TJournal>::Type TJournalEntries;
-    typedef typename Iterator<TJournalEntries>::Type TJournalEntriesIterator;
-
-    if (length(pattern) > length(journal))
-        return;
-
-    TJournalEntriesIterator it = begin(journal._journalEntries);
-    TJournalEntriesIterator itEnd = findInJournalEntries(journal._journalEntries, length(journal) - length(pattern) + 1) + 1;
-
-    while (it != itEnd)
-    {
-        if (it->segmentSource == SOURCE_ORIGINAL) // Find a possible hit in the current source vertex.
-        {
-            _findInOriginalNode(hitTarget, it, pattern, refHits);
-        }
-        if (it->segmentSource == SOURCE_PATCH) // Search for pattern within the patch node.
-        {
-            _findInPatchNode(hitTarget, it, journal, pattern);
-        }
-        // Scan the border for a possible match.
-        _searchAtBorder(hitTarget, it, journal, pattern);
-        ++it;
-    }
-}
-//![findPatternInJournalString]
-
-//![findPatternInReference]
-template <typename TString>
-void findPatternInReference(String<int> & hits,
-                            TString const & reference,
-                            TString const & needle)
-{
-    // Check whether the pattern fits into the sequence.
-    if (length(needle) > length(reference))
-        return;
-
-    Finder<TString const> finder(reference);
-    Pattern<TString, Horspool> pattern(needle);
-    while (find(finder, pattern))
-        appendValue(hits, beginPosition(finder));
-}
-//![findPatternInReference]
-
-//![searchPatternPart1]
-template <typename TString, typename TPattern>
-void searchPattern(StringSet<String<int> > & hitSet,
-                   StringSet<TString, Owner<JournaledSet> > const & journalSet,
-                   TPattern const & pattern)
-{
-    typedef StringSet<TString, Owner<JournaledSet> > TJournalSet;
-    typedef typename Host<TJournalSet const>::Type THost;
-
-    // Check for valid initial state.
-    if (empty(host(journalSet)))
-    {
-        std::cout << "No reference set. Aborted search!" << std::endl;
-        return;
-    }
-
-    // Reset the hitSet to avoid phantom hits coming from a previous search.
-    clear(hitSet);
-    resize(hitSet, length(journalSet) + 1);
-    // Access the reference sequence.
-    THost & globalRef = host(journalSet);
-    // Search for pattern in the reference sequence.
-    findPatternInReference(hitSet[0], globalRef, pattern);
-
-    // Search for pattern in the journaled sequences.
-    for (unsigned i = 0; i < length(journalSet); ++i)
-        findPatternInJournalString(hitSet[i + 1], journalSet[i], pattern, hitSet[0]);
-}
-//![searchPatternPart1]
-
-//![laodAndJoin]
-template <typename TString, typename TSpec>
-inline int
-loadAndJoin(StringSet<TString, Owner<JournaledSet> > & journalSet,
-            SeqFileIn & databaseFile,
-            JoinConfig<TSpec> const & joinConfig)
-{
-    typedef typename Host<TString>::Type THost;
-
-    clear(journalSet);
-
-    String<char> seqId;
-    THost sequence;
-
-    // No sequences in the fasta file!
-    if (atEnd(databaseFile))
-    {
-        std::cerr << "Empty FASTA file." << std::endl;
-        return -1;
-    }
-    // First read sequence for reference sequence.
-    readRecord(seqId, sequence, databaseFile);
-    // We have to create the global reference sequence otherwise we loose the information after this function terminates.
-    createHost(journalSet, sequence);
-
-    // If there are more
-    while (!atEnd(databaseFile))
-    {
-        readRecord(seqId, sequence, databaseFile);
-        appendValue(journalSet, TString(sequence));
-        join(journalSet, length(journalSet) - 1, joinConfig);
-    }
-    return 0;
-}
-//![laodAndJoin]
-
-//![main]
-int main()
-{
-    // Definition of the used types.
-    typedef String<Dna, Alloc<> > TSequence;
-    typedef String<Dna, Journaled<Alloc<>, SortedArray, Alloc<> > > TJournal;
-    typedef StringSet<TJournal, Owner<JournaledSet> > TJournaledSet;
-
-    // Open the stream to the file containing the sequences.
-    CharString seqDatabasePath = getAbsolutePath("/demos/tutorial/journaled_set/sequences.fasta");
-    SeqFileIn databaseFile(toCString(seqDatabasePath));
-
-    // Reading each sequence and journal them.
-    TJournaledSet journalSet;
-    JoinConfig<GlobalAlign<JournaledCompact> > joinConfig;
-    loadAndJoin(journalSet, databaseFile, joinConfig);
-
-    // Define a pattern and start search.
-    StringSet<String<int> > hitSet;
-    TSequence pattern = "GTGGT";
-    std::cout << "Search for: " << pattern << "\n";
-    searchPattern(hitSet, journalSet, pattern);
-
-
-    if (empty(hitSet[0]))
-    {
-        std::cout << "No hit in reference " << std::endl;
-    }
-    else
-    {
-        std::cout << "Hit in reference " << " at ";
-        for (unsigned j = 0; j < length(hitSet[0]); ++j)
-            std::cout << hitSet[0][j] << ": " << infix(host(journalSet), hitSet[0][j], hitSet[0][j] + length(pattern)) << "\t";
-    }
-    std::cout << std::endl;
-
-    for (unsigned i = 1; i < length(hitSet); ++i)
-    {
-        if (empty(hitSet[i]))
-        {
-            std::cout << "No hit in sequence " << i - 1 << std::endl;
-        }
-        else
-        {
-            std::cout << "Hit in sequence " << i - 1 << " at ";
-            for (unsigned j = 0; j < length(hitSet[i]); ++j)
-                std::cout << hitSet[i][j] << ": " << infix(value(journalSet, i - 1), hitSet[i][j], hitSet[i][j] + length(pattern)) << "\t";
-        }
-        std::cout << std::endl;
-    }
-    std::cout << "Done!" << std::endl;
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/journaled_set/solution_online_search_finder.cpp.stdout b/demos/tutorial/journaled_set/solution_online_search_finder.cpp.stdout
deleted file mode 100644
index 99fc3ff..0000000
--- a/demos/tutorial/journaled_set/solution_online_search_finder.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
-Search for: GTGGT
-Hit in reference  at 311: GTGGT	644: GTGGT	
-Hit in sequence 0 at 151: GTGGT	312: GTGGT	
-Hit in sequence 1 at 308: GTGGT	
-Hit in sequence 2 at 311: GTGGT	507: GTGGT	
-Hit in sequence 3 at 327: GTGGT	
-Hit in sequence 4 at 307: GTGGT	312: GTGGT	317: GTGGT	
-Hit in sequence 5 at 0: GTGGT	320: GTGGT	986: GTGGT	
-Done!
diff --git a/demos/tutorial/metafunctions/swap.cpp.stdout b/demos/tutorial/metafunctions/swap.cpp.stdout
deleted file mode 100644
index da392f0..0000000
--- a/demos/tutorial/metafunctions/swap.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-ATTAAATT
-133111311333
diff --git a/demos/tutorial/mini_bowtie/mini_bowtie.cpp b/demos/tutorial/mini_bowtie/mini_bowtie.cpp
new file mode 100644
index 0000000..fcbd05a
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/mini_bowtie.cpp
@@ -0,0 +1,138 @@
+// ==========================================================================
+//                                mini_bowtie
+// ==========================================================================
+
+#include <iostream>
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/file.h>
+#include <seqan/index.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+struct ForwardTag {};
+struct ReverseTag {};
+
+template <typename TStore, typename TIter, typename TPatternIt>
+void addMatchToStore(TStore & fragStore, TPatternIt const & patternIt, TIter const & localIt, ForwardTag)
+{
+    typedef FragmentStore<>::TAlignedReadStore TAlignedReadStore;
+    typedef Value<TAlignedReadStore>::Type TAlignedRead;
+
+    for (unsigned num = 0; num < countOccurrences(localIt); ++num)
+    {
+        unsigned pos = getOccurrences(localIt)[num].i2;
+        TAlignedRead match(length(fragStore.alignedReadStore), position(patternIt), getOccurrences(localIt)[num].i1,
+                           pos, pos + length(value(patternIt)));
+        appendValue(fragStore.alignedReadStore, match);
+    }
+}
+
+template <typename TStore, typename TIter, typename TPatternIt>
+void addMatchToStore(TStore & fragStore, TPatternIt const & patternIt, TIter const & localIt, ReverseTag)
+{
+    typedef FragmentStore<>::TAlignedReadStore TAlignedReadStore;
+    typedef Value<TAlignedReadStore>::Type TAlignedRead;
+
+    for (unsigned num = 0; num < countOccurrences(localIt); ++num)
+    {
+        unsigned contigLength = length(fragStore.contigStore[getOccurrences(localIt)[num].i1].seq);
+        unsigned pos = contigLength - getOccurrences(localIt)[num].i2 - length(value(patternIt));
+        TAlignedRead match(length(fragStore.alignedReadStore), position(patternIt), getOccurrences(localIt)[num].i1,
+                           pos, pos + length(value(patternIt)));
+        appendValue(fragStore.alignedReadStore, match);
+    }
+}
+
+template <typename TIter, typename TStringSet, typename TStore, typename DirectionTag>
+void search(TIter & it, TStringSet const & pattern, TStore & fragStore, DirectionTag /*tag*/)
+{
+    typedef typename Iterator<TStringSet const, Standard>::Type TPatternIter;
+
+    for (TPatternIter patternIt = begin(pattern, Standard()); patternIt != end(pattern, Standard()); ++patternIt)
+    {
+        // exact search on pattern half
+        unsigned startApproxSearch = length(value(patternIt)) / 2;
+        if (goDown(it, infix(value(patternIt), 0, startApproxSearch - 1)))
+        {
+            for (unsigned i = startApproxSearch;; ++i)
+            {
+                Dna character = getValue(patternIt)[i];
+                for (Dna5 c = MinValue<Dna>::VALUE; c < valueSize<Dna>(); ++c)
+                {
+                    if (c != character)
+                    {
+                        TIter localIt = it;
+                        if (goDown(localIt, c))
+                        {
+                            if (goDown(localIt, infix(value(patternIt), i + 1, length(value(patternIt)))))
+                            {
+                                addMatchToStore(fragStore, patternIt, localIt, DirectionTag());
+                            }
+                        }
+                    }
+                }
+                if (!goDown(it, character))
+                    break;
+                else if (i == length(value(patternIt)) - 1)
+                {
+                    if (IsSameType<DirectionTag, ForwardTag>::VALUE)
+                        addMatchToStore(fragStore, patternIt, it, DirectionTag());
+                    break;
+                }
+            }
+        }
+        goRoot(it);
+    }
+}
+
+int main(int argc, char * argv[])
+{
+    typedef String<Dna5> TString;
+    typedef StringSet<String<Dna5> > TStringSet;
+    typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+    typedef Iterator<TIndex, TopDown<> >::Type TIter;
+
+    // 0) Handle command line arguments.
+    if (argc < 3)
+    {
+        std::cerr << "Invalid number of arguments." << std::endl
+                  << "USAGE: minimapper GENOME.fasta READS.fasta OUT.sam" << std::endl;
+        return 1;
+    }
+    // 1) Load contigs and reads.
+    FragmentStore<> fragStore;
+    if (!loadContigs(fragStore, argv[1]))
+        return 1;
+
+    if (!loadReads(fragStore, argv[2]))
+        return 1;
+
+    StringSet<TString> text;
+    for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+        appendValue(text, fragStore.contigStore[i].seq);
+
+    reverse(text);
+    TIndex fmIndex(text);
+    TIter it(fmIndex);
+    search(it, fragStore.readSeqStore, fragStore, ForwardTag());
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+
+    fmIndex = TIndex(text);
+    it = TIter(fmIndex);
+    search(it, fragStore.readSeqStore, fragStore, ReverseTag());
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+    BamFileOut bamFile(argv[3]);
+    writeRecords(bamFile, fragStore);
+
+    return 0;
+}
diff --git a/demos/tutorial/mini_bowtie/nc_001454.fasta b/demos/tutorial/mini_bowtie/nc_001454.fasta
new file mode 100755
index 0000000..ad0d239
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/nc_001454.fasta
@@ -0,0 +1,491 @@
+>gi|9626553|ref|NC_001454.1| Human adenovirus F, complete genome
+CATCATCAATAATATACCTTAAAACTGGAAACGAGCCAATATGATAATGAGGGAGGAGGGACTAGGGGTG
+GTGTAAGGTGACGTAGAGGCGGGCGGGGTGGGAAAGGGTGGAGGCGGATGACGTGTGGGGTCGGAGGACG
+GGCGCGGTGCGGCGGAAGTGACGGAAAATCTGGTGTATTGGGCGGGTTTTTGTAACTTTTGGCCATTTTG
+GCGCGAAAACTGAGTAATGAGGACGTGGGACGAACTTTGGACTTTTGTGTTTATGGAGGAAAAACTGCTG
+ATTATTACTGAACTTTGGCCCATGACGAACCGGTTTTTCTACGTGGCAGTGCCACGAGACGGCTCAAAGT
+CCTAATTTTTTATTGTGTGCTCAGCCCGTTTGAGGGTATTTAAACACAGCCAGAACATCAAGAGGCCACT
+CTTGAGTGCGAGCGAGTAGAGTTTTCTCCTCCATTGCTGTTGGCGCTTTTGACATAGCCACCAAGATGAG
+AATGCTGCCGGATTTTTTTACCGGGAACTGGGATGACATGTTCCAGGGGTTGCTGGAGACTGAATATGTG
+TTTGATTTCCCTGAACCTTCTGAGGCTTCTGAAGAAATGTCGCTTCATGATCTTTTTGATGTGGAGGTGG
+ATGGTTTCGAAGAGGACGCCAACCAGGAAGCGGTTGATGGTATGTTTCCCGAGAGGTTGCTGTCCGAGGC
+TGAGAGCGCTGCAGAGAGCGGTTCGGGTGATTCTGGGGTTGGCGAAGAGTTGTTGCCGGTTGATCTGGAT
+TTGAAATGCTATGAAGACGGTTTGCCTCCTAGCGATCCTGAAACTGATGAGGCTACAGAGGCGGAAGAAG
+AGGCGGCTATGCCGACTTATGTGAATGAAAATGAAAATGAGCTGGTGCTGGACTGTCCAGAGAACCCTGG
+GCGAGGTTGTCGGGCTTGTGATTTCCATCGGGGCACTAGTGGCAATCCTGAAGCTATGTGTGCTTTGTGT
+TATATGCGTTTAACTGGACACTGTATCTACAGTAAGTAAAAAAGTTTTTATTTGTTTGGTGGTGTTGGTT
+AATATGAACAAGAGTTAACGACTTTTTGTTATTTTAGGTCCAATTTCAGATGCGGAAGGGGAGTCTGAGT
+CGGGGTCGCCTGAGGACACTGATTTTCCCCACCCTTTAACCGCCACGCCGCCACATGGAATTGTGAGAAC
+CATCCCGTGCAGAGTTTCTTGTAGACGACGCCCAGCTGTTGAGTGCATAGAAGATTTACTTGAGGAAGAT
+CCAACAGATGAACCTTTGAACCTGTCCTTAAAGCGCCCCAAGTGCTCCTGAGATCATAGTAATAAAGTTA
+TTGACCCTTACCCTGTGTTTATTTCTTGGGCGTGTTTGTGGGTATATAAGCAGGTAGAATGGTTTTAGTG
+TTAGTTTATTCTGATGGAGTTGTGGAGTGAGTTACAAAGTTATCAGAACCTCCGACGCTTGCTGGAGTTG
+GCTTCTGCCAGAACTTCCAGCTGTTGGAGAATCCTTTTTGGCTCAACTTTAACTAATGTAATCTATAGAG
+CTAAGGAGGAGTACTCTTCGCGGTTTGCTGACCTTTTGTCGCATAACCCTGGAATTTTTGCTTCTTTGAA
+TTTGGGGCATCACTCATTTTTTCAAGAAATTGTGATCAGAAATTTAGATTTTTCTTCTCCTGGCCGTACG
+GTTTCTGGGCTTGCTTTTATTTGTTTTATATTGGATCAATGGAGCGCCCAAACTCATCTGTCGCAGGGTT
+ATACTCTGGATTACATGGCAATGGCTCTGTGGAGAACCTTGCTACGGAGGAAGAGGGTCTTAGGTTGCTT
+GCCGGCGCAGCGTCCGCACGGTTTGGATCCAGTGCAGGAAGAGGAGGAGGAGGAGGAGAACCTGAGGGCC
+GGCCTGGACCCTTCAACGGAATTGTAACTGAGCCTGATCCCGAAGAGGGTACTAGCAGTGGGCAAAGGGG
+GGGCATTAATGGGCAAAGGGGGACAAAGAGAAAGATGGAAAACGAGGGGGAGGACTTTTTAAAGGAGTTA
+ACCTTGAGTTTAATGTCTCGTCGCCATCATGAGTCTGTTTGGTGGGCTGATTTGGAAGATGAGTTTAAAA
+ACGGTGAAATGAATTTGTTATACAAGTATACATTTGAACAGCTGAAGACACATTGGCTGGAGGCTTGGGA
+GGATTTTGAGTTAGCTCTGAACACTTTTGCCAAAGTGGCTCTTCGCCCGGACACTATTTATACCATTAAG
+AAGACTGTTAATATACGTAAATGTGCCTATGTGCTGGGGAATGGAGCTGTGGTGCGGTTTCAAACATGTG
+ACCGTGTAGCCTTTAACTGCGCAATGCAGAGCTTGGGCCCTGGGCTTATTGGCATGAGTGGGGTAACTTT
+TATGAATGTGAGATTTGTAGTGGAGGGATTTAATGGCACAGTGTTTGCTTCTACCACTCAATTAACCTTG
+CATGGTGTGTTTTTTCAAAATTGCAGCGGTATCTGCGTGGATTCCTGGGGTAGGGTGTCTGCCAGAGGGT
+GTACGTTTGTTGCATGTTGGAAAGGGGTGGTGGGGCGAAACAAAAGTCAAATGTCTGTAAAGAAGTGTGT
+GTTTGAACGTTGCATTATGGCCATGGTGGTAGAAGGTCAGGCGCGGATTCGCCATAATGCGGGCTCTGAT
+AATGTGTGTTTTTTACTGCTAAAGGGAACTGCCAGTGTAAAGCATAACATGATTTGTGGCGGTGGTCACT
+CTCAGCTGCTAACCTGTGCAGATGGAAACTGTCAGGCTCTGAGAGTGTTTCACGTAGTATCTCATCCCCG
+CCGCCCCTGGCCTGTTTTTGAGCACAACATGCTTATGCGCTGTACTGTGCATTTGGGAGCTCGTCGTGGC
+ATGTTTTCTCCATACCAGAGTAACTTTTGCCACACTAAAGTTTTAATGGAAACTGATGCTTTTTCTCGGG
+TATGGTGGAACGGGGTATTTGATTTAACCATGGAGCTATTTAAAGTGGTGAGGTATGATGAGTCAAAGGT
+TCGTTGTCGCCCCTGTGAGTGTGGAGCTAATCATATTAGGTTATATCCAGCAACTCTGAACGTGACCGAG
+CAGCTGCGTACGGACCACCAGATGATGTCGTGTCTGCGTACTGACTACGAATCCAGCGATGAGGATTAAG
+GGTAAGGGGCGGAGCCTATTACAGGTATAAAGGTTGGGGTAGAGTAAAAAAAAGGGAAGTTACAAAATGA
+GTGGCTTCACGGAAGGAAACGCTGTGAGTTTTGAGGGTGGGGTGTTTAGCCCATATCTGACAACCCGTCT
+TCCCTCTTGGGCAGGAGTGCGTCAGAATGTGGTGGGGTCCAACGTTGATGGTCGTCCTGTCGCCCCTGCC
+AACTCGACAACCCTTACCTACGCCACTATTGGATCGTCGGTGGATACCGCTGCAGCTGCTGCCGCGTCTG
+CTGCTGCCTCTACTGCTCGTGGCATGGCAGCAGATTTTGGACTGTACAATCAACTGGCCGCGTCTCGGTT
+AAGAGAAGAAGATGCCCTGTCCGTGGTGTTGACCCGCTTGGAGGAGCTGTCTCAGCAGTTGCAAGATATG
+TCTGCCAAAATGGCTCTGCTTAACCCTCCCGCTAATACTTCTTAATAAAGACACAATTGGTTGGAAAAGT
+CAAAAGTGTTTATTTATTTCTTTTGCGGTAGGCCCTAGACCACCTGTCGCGGTCGTTTAAAACTTTATGG
+ATGTTTTCCAAGACCCGGTACAGGTGGGCTTGGATGTTCAAATACATAGGCATTAGGCCGTCCCTGGGAT
+GCAGGTAGGACCACTGGAGGGCGTCATGCTCTGGGGTGGTGTTGTAAATAATCCAATCGTAGCAGGGTTT
+TTGAGCATGAAACTGGAAGATGTCCTTAAGGAGGAGGCTAATGGCCAGAGGTAGCCCCTTGGTGAAGGTA
+TTAACAAATCGATTAAGTTGGGAGGGATGCATGCGAGGGGAAATCAGATGCATTTTGGCCTGAATTTTTA
+GGTTGGCAATGTTGCCACCGAGATCACGTCTGGGGTTCATGTTGTGCAGAACCACTAGCACGGTATAGCC
+GGTGCACTTGGGGAATTTGTCATGCAACTTGGAAGGGAAGGCGTGGAAAAACTTGGAAACCCCTTTGTGC
+CCTCCCAAATTTTCCATGCACTCATCCATAATGATGGCGATGGGGCCTTGGGATGCAGCCTTAGCAAAAA
+TGTTATCGGGGTGGGAAACATCGTAGTTTTGCTCCAGGGTAAGCTCGTCATAGGCCATTTTGATGAAGCG
+TGGTAAAAGGGTGCCCGACTGGGGTATAATGGTCCCTTCTGGACCTGGGGCGTAGTTACCCTCGCAGATT
+TGCATCTCCCAAGCCTTAATTTCTGAGGGGGGGATCATGTCCACCTGAGGGGCAATAAAAAAAACGGTTT
+CGGGTGGAGGGTTAATAAGCTGGGTGGAAAGCAAGTTTCGCAAAAGCTGGGATTTGCCGCAGCCAGTGGG
+ACCGTAAATGACCCCAATGACAGGCTGTAGTTGATAGTTTAAGGAGATGCAACTGCCATCTTCCCGCAAA
+AGCGGAGTGACTTCGTTCATCATGCTTCTGACATGCTGGTTTTCTTTAACCAAGTCTTGCAAGAGACGCT
+CACCGCCCAGGGAAAGTAGCTCTTCCAAGCTGCGGAAATGCTTTAGTGGTTTTAGGCCATCGGCCATGGT
+CATTTTTTCAAGGGATTGACGCAGCAAATAGAGCCGATCCCAGAGCTCGGTAATATGGTCTATGGCATCT
+CGATCCAACAAACTTCTTGGTTGCGGGGGTTGGGACGGCTTTGGCTGTACGGTACCAGTCGGTGGGCGTC
+CAGTGGAGCAAGGGTAATGTCTTTCCAGGGTCGCAGGGTTCGCGTTAGGTTGGTTTCGGTGACGGTAAAG
+GGGCGCGCTCCGGGTTGGGCGCTTGCCAGGGTTCTCTTCAGGCTCATCCTGCTGGTGTGAAAACGCGCGT
+CTTCGCCCTGAAAGTCGGCCAAGTAGCATTTTAACATGAGATCATAGTTGAGGGTTTCGGCAGCGTGTCC
+TTTGGCGCGAAGCTTGCCCTTGGAAATTTGCTGACAGCTGGGACAGCGGAGGCATTTTAGGGCGTAGAGT
+TTGGGAGCCAGGAAGACGGACTCTGGTGAATAAGCGTCGGCGCCACACTGTGCACACACGGTTTCGCACT
+CCACTAACCAGGCGAGCTCAGGGTGTTTTGGGTCAAAAACCAGATTGCCTCCGTGTTTTTTGATGCGTTT
+CTTACCTCGTGTTTCCATGAGGCGGTATCCGGCTTCGGTGACAAACAAGCTGTCTGTGTCTCCGTAAACT
+GATTTGAGGGTACGCTGTTCCAACGGTGTGCCTCTGTCCTCTGCGTACAAGATCTCGGACCATTCTGAGA
+CAAAAGCCCGGGTCCAGGCTAAAACAAAGGAGGCGATTTGGGAGGGATAACGGTTGTTTTCCACCAGGGG
+GTCGACCTTTTCTAGGGTGTGAAGGCAAAGGTCATCTTCTTCTGCATCCATAAAGGTAATTGGTTTGTAA
+GTGTAGGTCACGTGGTCATTGGGCTTGTGCGTGGGTGTATAAAAGGGGGCGTGTCCGGGCTCTTCATCAC
+TTTCTTCCGCATCGCTGTGGACGACAGCCAGCTGTTCGGGTGAGTATGCGCGTTGAAAGGTGGGCATAAC
+TTCAGCACTTAGAGTGTCAGTTTCCACAAACGAGGTGGATTTGATATTTATCTGCCCTGCGGCAATGCTT
+TTGATGGTGGCTGAATCCATTTGGTCAGAAAATACAATTTTTTTGTTATCAAGTTTGGTAGCAAAGGATC
+CATAGAGGGCGTTGGAGAGCAGTTTGGCAATGGAACGCAGTGTTTGGTTTTTTTCGCGGTCGGCACGCTC
+CTTGGCGGTGATATTAAGATGAACGTACTCTTTTGCCACGCAGCGCCACTCGGGAAAGACAGTGGCGCGC
+TCGTCGGGAAGCAACCGCACATGCCAGCCCCGGTTGTGCAGTGTTATAAGGTCCACACTGGTAACTACCT
+CGCCGCGCAGGGGCTCATTGGTCCAGCAAAGGCGCCCTCCTTTGCGCGAACAGAGTGGGGGCAAAACATC
+TAGTAGGTTTTCAGGTGGGGGGTCGGCGTCGATGGTAAAAATGCCAGGCAGCAGGGTGCGATTGAAATAA
+TCAATGGGGGTACCAACTTGCAAAAGAGCGTGTTCCCAATCTCGGACCGCTAGGGCGCGCTCGTAGGGAT
+TGAGTGGGAAGCCCCACGGCATGGGATGGGTAAGTGCAGAGGCGTACATGCCACAGATGTCATAAACGTA
+AAGTGGTTCGCGTAGCACCCCAATGTAAGTTGGATAACAGCGTCCTCCGCGAATGCTAGCCCGAACATAG
+TCATACATTTCGTGGGAAGGGGCCAGCAAGCTGCCGCCTAGGTCCGACCGCTGGGGTTTTACTGTCCGGT
+ACAAGATTTGACGAAAGATGGCGTGGGAGTTGGAGGAGATGGTGGGCCGCTGAAAGACGTTAAAGCTGGC
+TTCGGGTAGACCTACCGCGTCGCGGATAAACTGAGCGTAGGATTCGCGCAACTTTTGCACCAGGGCGGCG
+GTAACAAGCACATCCAGGGCACAGTAATCAAGGGTTTCACGCACCAGGTCGTAATGAGGACATTGCTTTT
+TTTCCCAGAGTTCGCGGTTCAGGAGGTACTCCTCGCGATCCTTCCAGTAATCTTCGGCAGGAAAGCCACG
+CTCGTCTGCGCGGTAAGAACCCAGCATGTAAAACTCGTTTACGGCCTTGTATGGGCAGCATCCTTTTTCT
+ACCGGAAGGGTATAGGCTTGTGCGGCTTTTCGCAGAGACGTGTGTGTGAGGGCAAAAGTGTCGCGCACCA
+TAACCTTGAGGAATTGATACTTAAAATCAGAGTCGTCGCAGGCGCCCTGCTCCCATAGGCGATAGTCGGT
+GCGTTTTTTTGAGCTTGGATTAGGAAGGGCAAAGGTGATATCATTAAAAAGGATTTTGCCGGCTCTAGGC
+ATAAAGTTGCGGGTGATTTTGAAAGGCCCGGGCACATCAGAACGGTTGTTAATAACCTGAGCTGCAAGTA
+CGATTTCATCGAAGCCGTTGATGTTATGCCCCACAATGTAAAGTTCTAAAAAGCGGGGGCGTCCCTGGAG
+TTTGGGGGCCTTTTGTAACTCTTCATAGGTAAGGTAATCAGGAGAAAAAAGACCCATTTCCAAGCAAGCC
+CATTCTGCCAGTTGGGGATTGGCGGCTAGAAAACCGCGCCATAGCTGGAGGGCAAAATGGGCTTGCAAGC
+GGTTGCGGTACTCTCGAAACTTTTTGCCCACCGCCAATTTTTCGGGGGTCACCACGTAAAAGGTACGTTC
+GTCGTTTCCCCAAGTGTCCCACTGCAACTCGCAGGCCAGTCGGCAGGCTTCCTTAACAAGGGCTTCCTCC
+CCCGAGAGATGCATAACTAGCATAAAGGGGACCAGCTGTTTACCAAAGGCTCCCATCCACGTGTAGGTTT
+CGACGTCGTAGGTGACAAAGAGGCGTTCGACGCGAGGATGAGAGCCGATCGGAAAGAAATTGATTTTCTG
+CCACCAGCCGGAGGAGTGGGCGTTGATATGATGAAAGTAGAAGTCTCTCCGGCGGACCGTGCATTCGTGC
+TGATATTTGTAAAAGCGGGCGCAATACTCGCAGCGTTGCACGCTCTGCATCTCTTGAATGAGGTGTACCT
+GTCGCCCACGTACGAGAAATCGGAGAGGGAAGTTGAGAAAATCCTCAGTGTCTTGCCTTTCACCCTCGTC
+GCCCTCTTCTGCACCTGCACGCTCTTGCTGTGGGTGGATGATGGAGGGAACGACAACGCCCCGCGAGCCA
+CAGGTCCAGACCTCAACGCGGGGCACCTTCAGCTTGAGAGCAAGAGTGCGGATTTGGGAACTGTCCAGGG
+AGTCCAGGAAGGCCTCGTTCAGATCAGCGGGCACAGATCGAAGGTTGACTTGCAGGAGACGGGTAAGGGC
+CGATGCCAGGCGGCGATGAAACTTGATTTCCATTGGTGAGTTGGTAGCAGTGTCAATAGCATACAGAAGA
+CCTTGTCCGCGGGGAGCTACAATGGTACCACGCAGGCGAGAGTTGGGGGTAAGGCTTACATTGTTCGCTG
+CGGGCGGGCGTCCGGAGGCAGTGGTGGATGGGGGTTCGCCTGGAGAGGCGGTAGCGGCACGTCGGCGTGG
+AGCTCGGGTAGCGGTTGGTGCTGCGCCCGCAGTTGACTGGCGTACGCGACGACGCGGCGGTTGAGGTCCT
+GAATGTGTCTCCGCTGGGAGAAAACCACCGGCCCTCGGACTCGGAACCTGAAAGAGAGTTCAACAGAATC
+AATATCGGCATCGTTGACCGCGGCTTGTCGCAGAATCTCCTGCACGTCGCCAGAGTTGTCTTGGTAGGCA
+ATCTCCGACATAAACTGGTCAATCTCTTCGTCCTGGAGTTCTCCGTGTCCTGCGCGCTCCACCGTGGCTG
+CAAGGTCATTAGAGATGCGCCTCATGAGCTGGGAGAAAGCGTTAAGACCGTTTTCGTTCCACACGCGGCT
+GTAGACCACGTCGCCAACAGTGTTTCGGGCGCGCATCACCACTTGTGCAATGTTCAGTTCTACGTGTCTT
+GCAAAGACGGCGTAGTTGCGTAGACGCTGGAAGAGGTAGTTGAGCGTGGTGGCAATGTGCTCGCAAACAA
+AGAAGTACATGACCCAGCGCCGAAGCGTCATTTCGTTAATATCTCCGAGGGCTTCCAAGCGGTCCATTGC
+CTCGTAGAAGTCAACCGCGAAGTTGAAGAACTGGGAGTTGCGCGCCGCAAACGTCAACTCCTCTTGCAGG
+AGCCGAATTGCCTCGGCTACAGTTTCGCGCACCTCTTGTTCGAAGGCTGCCGGCGTTTCCTCGATTTCCA
+TAAACTCCTCTTCCTCCACAGCGGGACCCTCGGGGCTGACCGGCGCTGGGACGGGTTGTCGTCGACGACG
+GCGCCGGACGGGCAGCCGGTCAATGAAACGTTGAATCATTTCTCCGCGACGGCGACGCATGGTTTCGGTG
+ACGGCGCGCCCGTTTTCTCGGGGGCGAAGTTCAAAGACGCCGCCTTGCATGCCCGAGCCGGAGAGGGGAG
+GAAGTAGGTGGGGCCCCTGAGGCAGCGACAGGGCGCTAACTGTGCATCTTATCATCTGTTGCATAGGTAG
+AGACTGCCAAGCCTCATTGAGCGAGTCCAGTTGGACGGGATCAGAGAATTTTTCGAGGAAAGCTTCCAGC
+CAATCGCAGTCGCAAGGTAAGCTAAGGACGGTGGCATGAGGGATTCTAAGGGAGGCAGCAGAGGAGGTGA
+TGCTGCTGATGAGGAAATTGAAGTAGGCGGTCTTCAAACGGCGGATGGTGGCAAGGAGAGTGACGTCTTT
+TGGTCCGGCCTGTTGAATTCGCAGGCGGTCTGCCATGCCCCAAGCTTCGTTCTGACATCGGCGCAGGTCC
+TTGTAATAATCTTGCATGAGACTTTCTACGGGTATTTCCAATTCCCCTCGGTCGGCCATGCGTGTGGAAC
+CAAACCCGCGCAGGGGCTGCAGCAGGGCCAAGTCGGCAACTACGCGTTCGGCGAGCACAGCCTGCTGTAT
+CTGAGTTAAAGTGTTTTGGAAATCATCCAAGTCCACAAAGCGGTGGTAGGAACCGGTGTTGATGGTGTAC
+GTGCAGTTGGCCATGACGGACCAGTTGACTACTTGCATCCCGGGCTGTGTAATCTCGGTATACCTAAGGC
+GCGAGTAGGCTCTGGATTCAAAAACGTAGTCGTTGCAGGTGCGAACCAAGTACTGGTAGCCAACAAGGAA
+GTGGGGCGGCGGCTCGCGGTAAAGGGGCCAGCGAAGTGTGGCGGGCGTACCGGGGGCCAGGTCCTCCAGC
+ATAAGGCGATGGTAGTGGTAAACATATCGAGAGAGCCAGGTGATGCCGGCGGCGGTAGTGGCGGCGCGGG
+CGTATTCGCGAACGCGGTTCCAGATGTTACGCAACGGGGAGAAGCGTTCCATGGCGGGCACGCTTTGACC
+AGTCAGACGGGCGCAATCTTGTACGCTCTAGATGAAAAAACAGAGAGCGGTCACGGACTTTCCTCCGTAG
+CCTGGAGGACAGACCGCCAGGGTGCAGTGGCAAACAACCCCCGGTTCGAGACCGGCTGGATCTGCCACTC
+CCGACGCGCCGGCCGTGCGTCCACGACGGAAACCCCGCCGAGACCTAGCCGCGGTCCCTGGATCTCCAGA
+TACGGAGGGGAGTCTTTTTGTTGTTTTTTGTAGATGCATCCGGTGTTGCGACAGATGCGTCCGACGGCGC
+CTCCAACACAGCCGCCGCTCCCGCCCCCCACTAGCGCCCCTGCAGCCGTTGCTCTCTCCGGAGCCGGCGG
+TGGCAACCCTGAGGAGGAGGCCATCCTGGACCTGGAAGAGGGCGAGGGGCTGGCCCGCTTGGGGGCGCCA
+TCCCCCGAGCGCCATCCCCGCGTGCAACTTAAAAAGGACTCACGCCAGGCGTACGTACCGCCTCAGAATT
+TATTCAGGGATCGCAGCGGGCAGGAGCCCGAAGAGATGAGGGATCGCAGGTTTTACGCGGGGCAGGAGCT
+GCGGGCCGGTTTTAACCGCCAACGGGTGCTACGCGCCGAAGATTTTGAACCCGACGAACATAGCGGAATA
+AGTCCGGCACGGGCGCACGTGTCGGCGGCCGATTTGGTAACCGCGTACGAGCAAACGGTGAACGAGGAGC
+GCAACTTTCAGAAAAGTTTTAACAATCACGTGCGCACCCTGGTGGCGCGCGAGGAGGTGGCCATTGGGCT
+GATGCATTTGTGGGACTTTATGGAGGCGTACGTGCAAAATCCTTCGAGCAAGCCGCTGACGGCGCAGCTG
+TTTTTGATTGTGCAACACAGCCGGGACAACGAGGCTTTCCGCGAGGCCATGCTGAATATTGCGGAGCCTG
+AGGGTCGCTGGCTTTTGGACCTGGTTAATATCCTTCAGAGCATTGTGGTACAGGAGCGCAGTCTAAGCCT
+GGCCGACAAGGTGGCGGCCATTAATTACAGCATGCTTAGCCTCGGCAAGTTTTACGCCCGCAAGATTTAC
+AAAACCCCCTATGTGCCCATAGACAAGGAGGTTAAAATAGATAGCTTTTACATGCGCATGGCGCTAAAGG
+TGTTAACGCTGAGTGACGATCTGGGGGTGTACCGCAACGACCGTATTCACAAAGCTGTGAGCGCCAGCCG
+CCGTCGCGAGCTTAGCGACCGCGAACTAATGCACAGCCTGCGTCGGGCTCTAACGGGCACCGGCACTGAT
+GCCGAAACTGAATCTTACTTTGACATGGGGGCGGACCTGCAATGGCAGCCCAGCGCCCGGGCCCTGGAGG
+CGGCTGGTTATGTTGGCGCGGAAGAAGATGAGGAGGACTATGAGGACGAGCCCTGATCAGCCAGGTGGTG
+TTTTTGTAGATGCTGCGTTCGACGGCGGTGGCGGACGGGTCGCAGCAGGTGAATCCCGCTATGTTGGCGG
+CCCTGCAAAGCCAACCTTCGGGCGTGACACCCTCAGACGACTGGGCGGCGGCCATGGATCGCATCCTGGC
+CCTAACCACCCGCAATCCCGAAGCCTTCAGGCAGCAGCCCCAGGCCAACCGCTTTTCGGCCATTTTGGAA
+GCCGTGGTTCCTTCTCGCACTAACCCTACCCACGAAAAGGTGTTGGCGATTGTAAACGCTCTGGTAGAAA
+GCAAAGCCATCCGCAAGGATGAGGCGGGACTGATATATAATGCCTTACTGGAGCGGGTAGCGCGCTATAA
+TAGCACCAACGTGCAGGCCAACCTAGACCGACTGACAACGGACGTGAGAGAGGCGGTGGCGCAGCGGGAA
+CGCTTTATGCATGACGTTAACCTAGGATCCCAAGTGGCCCTTAATGCTTTTCTGAGCACATTGCCAGCTA
+ATGTGCCGCGCGGGCAGGAGGACTATGTCAGCTTTATCAGCGCGCTTCGCCTCCTGGTGGCGGAGGTGCC
+CCAGAGTGAGGTGTACCAGTCCGGGCCAGACTACTTTTTCCAAACTTCACGGCAGGGTTTGCAAACTGTA
+AACCTAACACAGGCGTTTAAAAACTTGCAAGGAATGTGGGGCGTGCGAGCCCCCGTGGGGGACCGAGCCA
+CCATCTCCAGCTTATTGACGCCGAACACTCGGTTGTTGCTGTTGTTGATAGCGCCATTTACCAATAGCAG
+CACCATTAGCCGTGACTCGTACCTTGGTCATCTAATCACGCTGTACCAGGAGGCTATTGGCCAGACGCAG
+GTGGACGAACAGACCTTCCAGGAAATCACCAGCGTGAGTCGGGCTCTTGGTCAGCAAGACACCAGTAGCT
+TGGAAGCCACGCTGAACTTTTTGCTAACCAACCGCCGGCAAAAAATTCCATCGCAATTTACTTTAAATTC
+TGAAGAGGAACGTATTTTGCGCTATGTGCAGCAGTCCGTCAGCTTGTATTTAATGCGCGAGGGGGCTACT
+GCGTCGTCGGCTCTGGACATGACGGCACGTAACATGGAACCGTCGCTATACTCGTCCAACCGGCCTTTTA
+TTAACCGCCTGATGGACTATCTGCACCGCGCGGCGGCCATGAACAGCGAGTACTTCACCAATGCCATTCT
+TAACCCGCACTGGATGCCACCGTCCGGTTTTTACACGGGCGAGTTTGACGTGCCTGAGGGCGACGACGGA
+TTTTTGTGGGATGACGTGTCCGAAAGCATTTTCGAACCAATGCGTTCCCGTAAAAAGGAGGGCGGAGACG
+AGCTGCCGCTGTCGTTAGTGGAGGCAGCTTCTCGAGGCCAAACCCCCGTTCCCAGTCTGCCATCGCTGAC
+CAGCAGCAGCAGCGGACGGGTGTTTCGACCCCGTTTGCCCGGGGAGTTGGACTACCTCAGCGATCCCCTA
+TTGCGACCGGCCCGGAAAAAAAATTTTCCCAACAACGGGGTGGAAAGCCTGGTAGATAAGATGAATCGCT
+GGAAAACCTACGCCCAGGAGCAGCGGGAAGAGAGGCAGCCCCGCCCACTGACCGGCACCTTCAGTCGTTG
+GCGCCGGCGGGAAGAGGACGCTTACGACTCGGCCGATGATAGTAGCGTGTTGGACTTGGGGGGAACCGGC
+GCCGCTTCTGATCCCTTTGCTCATCTGCGGCCTCAGGGTCAACTGGGTCGTTTGTATTAAAAAAATAAAA
+TAAAAAGAAATCCACTTACCAGAGCCATAGCAACAGCGTCCGTCCCTTTGTCTGTTTTTTCCCTCTTCCC
+GGTAGTCAAAATGAGACGTGCGGTGGGAGTGCCGCCGGTGATGGCGTACGCCGAGGGTCCTCCTCCTTCT
+TACGAAAGCGTGATGGAAACAGCGGATTTGCCGGCAACGCTGCAGGCGCTCCACGTCCCTCCCCGTTACC
+TGGGGCCTACGGAAGGGCGGAACAGCATACGTTACTCGGAGCTGGCGCCTCTATACGACACCACCCGGGT
+TTACCTGGTGGACAACAAGTCGGCGGACATTGCCTCCCTGAACTACCAGAACGACCATAGTAACTTTCAA
+ACCACGGTGGTACAAAATAATGACTTTACCCCGACAGAGGCCGGTACCCAGACCATCAATTTTGACGATC
+GCTCCAGGTGGGGCGGCGACCTGAAAACCATTTTGCGCACCAATATGCCCAACATCAATGAGTTTATGTC
+TACCAACAAGTTTCGGGCGCGGGTGATGGTAGAAAAAGTGAACCGGAAAACCAACGCTCCTCGTTACGAG
+TGGTTCGAGTTCACTTTGCCAGAGGGCAACTATTCGGAAACTATGACTATAGACCTTATGAATAACGCGA
+TCGTAGACAACTACTTAGCAGTAGGACGTCAGAACGGCGTGCTGGAAAGCGACATTGGGGTGAAGTTTGA
+CACGCGCAACTTCCGGTTGGGTTGGGATCCCGTAACCAAGTTGGTGATGCCCGGCGTGTACACCAACGAG
+GCCTTTCACCCAGACATTGTTTTGCTACCTGGTTGCGGCGTGGATTTCACGCAAAGTCGTCTGAACAACT
+TGCTAGGAATACGCAAGCGAATGCCCTTTCAAAAAGGTTTCCAAATCATGTATGAGGATTTGGAGGGCGG
+CAACATTCCTGCTCTATTAGATGTGGAAAAGTACGAAGCTAGCATAAAAGAAGCACAGGAGATCCGTGGA
+GCCGACTTCAAGCCCAATCCTCAAGACTTGGAAATCGTGCCCGTGGAAAAAGACAGCAAGGAAAGAAGTT
+ACAATCTCCTAGAGGGAGATAAAAATAACACTGCCTACCGCAGCTGGTTTTTGGCCTACAACTACGGAGA
+TGCAGAGAAAGGAGTAAAGTCTTGGACCTTGTTAACAACCACGGATGTGACCTGTGGGTCGCAGCAGGTG
+TACTGGTCCCTTCCCGACATGATGCAAGATCCAGTAACGTTTCGACCGTCCACGCAAGTCAGCAACTACC
+CTGTAGTGGGGGTGGAATTACTGCCAGTACATGCCAAGAGTTTTTACAACGAGCAGGCCGTGTATTCTCA
+GCTTATTCGCCAGTCCACCGCGCTTACGCACATCTTCAATCGTTTTCCTGAGAATCAGATACTAGTGCGT
+CCGCCCGCTCCGACCATTACCACCGTCAGTGAAAACGTTCCCGCCCTCACAGATCACGGAACCCTGCCGC
+TGCGCAGCAGTATCAGTGGAGTTCAGCGCGTGACCATCACTGACGCCCGCCGTCGGACCTGCCCCTACGT
+GCACAAAGCTCTGGGCATAGTTGCTCCCAAAGTGCTGTCTAGCCGCACGTTTTAACATGTCCATTCTTAT
+TTCGCCCGACAACAATACCGGCTGGGGACTTTGCTCCGCCGGCATGTACGGCGGCGCCAAACGGCGTTCT
+AGCCAACACCCTGTTCGCGTGCGCGGACATTACCGCGCCCCCTGGGGGGCTTACACCCGCGGTGTTATCT
+CAAGACGTACCACCGTTGATGACGTCATTGACTCCGTGGTAGCCGATGCCCAACGCTACACGCGGCCCGT
+TGCCACGTCCACCGTGGATTCCGTGATTGATAGTGTGGTGGCCAACGCCAGGCGTTACGCGCAACGCAAG
+AGACGTTTGCAACGTCGCCGTCGTCGGCCTACTGCCGCCATGACTGCCGCTCGGGCGGTACTAAGGCGGG
+CACAAAGGATAGGACGTCGGGCCATGCGCCGAGCGGCTGCTTCTGCCAGTGCAGGTCGGGCCCGTCGTCA
+GGCCGCCCGTCAGGCCGCGGCGGCTATTGCCAGCATGGCTCAGCCCCGCCGGGGGAATATCTACTGGGTG
+CGAGATGCGTCGGGCGTGCGGGTGCCGGTGCGAAGCCGTCCCCCTCGGAGTTAGAAGACGCGTTCACAAA
+ATGGACGAAGACTGAGTTTCCCTGTCGTTGCCAGCCGGTCCCCGTCAGCATGAGCAAGCGCAAGTTCAAA
+GAAGAGCTGCTGGAGGCCCTTGTGCCTGAAATCTATGGCCCTGCCGCGGACGTCAAGCCCGACATTAAGC
+CTCGCGTGCTCAAGCGGGTTAAAAAGCGAGAAAAAAAAGAGGAAAAGGAGGAAGCAGGGTTGCTAGACGA
+CGGTGTTGAGTTTGTGCGGTCCTTTGCCCCCCGGCGGCGGGTGCAGTGGCGGGGACGTAAAGTCCAGCGC
+GTGCTTAGACCCGGCACTACTGTAGTATTTACTCCCGGAGAGCGGTCCGTCACGCGGGCCTTAAAACGGG
+ATTACGATGAGGTTTACGCTGACGAAGACATTCTTGAGCAGGCCGCCCAACAGGTTGGGGAATTCGCCTA
+CGGCAAGCGCGGCCGCTACGGAGAGTTGGGACTCTTGCTGGACCAAAGCAACCCCACGCCAAGCCTGAAG
+CCCGCAACGGCGCAGCAGATCCTTCCCGTGACAGAAATCAAGCGGGGCGTCAAGAGGGAAAACAAAGACG
+AATTGCAGCCCACCATGCAACTCATGGTGCCAAAGCGGCAAAAGCTTGAGGAGGTGTTGGAGAACATGAA
+AGTGGATCCCAGCGTTGAGCCGGAAGTTAAAGTGCGCCCCATTAAAGAAATAGGGCCCGGACTTGGCGTG
+CAGACGGTGGATATCCAAATCCCCGTGCGTGCGTCTTCGTCCACCGTTAGCACTGCGGTGGAGGCCATGG
+AAACGCAGCCTGAGCTGCCAGAGGCCGTAGCCCGTGCGGTTGCGGCCACGCGAGAGATGGGTTTGCAAAC
+GGATCCGTGGTACGAATTCGTGGCCCCTACCAGCCGTCCACGCTCCCGGAAATACACAACCGCTAATTCG
+ATTTTACCGGAGTATGCCTTGCATCCATCCATCACGCCAACGCCCGGTTACCGCGGAACAACCTTCAAAC
+CCAGCCGCACTCGCTCCACCCGCCGTCGTCGCTCTGTCCGCCGCCGCTCAAGGCGCACGGCCCCCATCTC
+TGTGCGTCGCGTAACCCGCCGTGGACGCACGCTGACCCTTCCCAACGCGCGTTACCACCCTAGCATTCTC
+GTTTAATCCGTGCGCTGCCGTTTTTTCAGATGGCTTTGACTTGCCGGTTTCGCATTCCCGTTCCGTCCTA
+CCGAGGAAGATCTCGCCGTAGGAGAGGCATGGCGGGCAGTGGCCGCCGACGCGCTTTGCGCAGGCGAATA
+AAAGGCGGATTTTTGCCCGCGTTGATTCCCATCATCGCCGCCGCCATAGGCGCAATCCCAGGCGTGGCCT
+CCGTGGCCTTGCAAGCAGCTCGCAAACAATAAAAGAAGGCTTAACACTGACTTCCTGGTCCTGACTATTT
+TATGCAGACAAGACATGGAAGACATCAATTTTGCGTCGCTGGCTCCGCGGCACGGCTCGCGGCCGTTTAT
+GGGCACCTGGAACGAGATCGGCACCAGCCAGCTCAACGGGGGCGCTTTCAGTTGGAGCAGCCTGTGGAGT
+GGCATTAAAAACTTTGGGTCCTCCATTAAGTCATTTGGTAACAAGGCCTGGAACAGTAACACAGGTCAAA
+TGCTCCGGGATAAGCTAAAGGACCAAAACTTTCAACAAAAAGTCGTGGACGGGCTGGCTTCCGGCATTAA
+CGGCGTGGTGGATATAGCCAACCAGGCCTTGCAAAACCAAATCAATCAGCGGCTGGAAAATAGCCGCCAG
+CCTCCGGTGGCTCTGCAGCAGCGCCCGCCTCCCAAAGTCGAGGAGGTAGAAGTGGAGGAAAAACTACCGC
+CTTTGGAGGTGGCACCCCCCCTGCCTAGTAAAGGCGAAAAGCGGCCGCGACCGGATCTGGAGGAAACCCT
+AGTTGTGGAATCCCGCGAGCCCCCCTCGTACGAGCAGGCTTTGAAAGAGGGCGCTTCACCTTATCCCATG
+ACCAAACCTATTGGTTCCATGGCCCGACCTGTATACGGGAAGGAAAGCAAACCCGTGACCTTAGAACTAC
+CTCCACCCGTGCCCACCGTTCCGCCCATGCCGGCTCCGACGCTTGGCACCGCCGTTTCTCGCCCCACCGC
+CCCCACTGTTGCCGTGGCTACCCCCGCCCGCCGCCCTCGCGGGGCTAACTGGCAGAGCACTCTTAACAGC
+ATTGTGGGTCTGGGAGTAAAAAGCCTGAAACGCCGCCGGTGCTATTAAAATGGAACCAAGCTAAATGCCA
+TTATTGTGTACGCCTCCTGTGTTACGCCAGAGAGCCGAGTGACACGTCACCGCCAAGAGCGCCGCTTGCA
+AGATGGCCACCCCCTCGATGATGCCGCAATGGTCTTACATGCACATCGCCGGGCAGGACGCCTCGGAGTA
+CCTGAGCCCGGGCCTGGTGCAGTTCGCCCGTGCCACCGATACCTACTTCAGCCTGGGGAACAAGTTCAGA
+AACCCCACCGTGGCTCCCACCCACGATGTAACCACAGACAGGTCGCAGCGACTGACGCTGCGCTTCGTGC
+CCGTCGACCGCGAGGAAACCGCCTACTCTTACAAAGTGCGCTTTACGCTGGCCGTGGGCGACAACCGGGT
+TTTGGACATGGCCAGCACCTACTTTGACATCCGCGGCGTGCTGGATCGTGGTCCCAGCTTTAAACCCTAT
+TCGGGCACTGCATACAACTCCCTGGCCCCCAAAGGTGCTCCCAATCCTAGCCAGTGGACAAACCAAAACA
+AAACAAACTCCTTTGGACAAGCTCCCTATATAGGACAAAAAATCACCAATCAGGGCGTGCAAGTGGGCTC
+AGACTCCAACAATCGCGATGTGTTTGCCGATAAAACGTACCAACCGGAGCCTCAAGTGGGGCAGACGCAA
+TGGAACATTAATCCAATGCAAAACGCTGCGGGAAGAATACTAAAACAAACCACGCCCATGCAGCCATGTT
+ATGGGTCATACGCTAGACCAACAAACGAAAAAGGAGGTCAAGCCAAGCTGGTAAAAAATGACGACAATCA
+GACCACAACAACAAACGTAGGTTTAAACTTTTTTACCACTGCCACTGAAACCGCTAATTTTTCACCAAAG
+GTGGTTCTGTACAGCGAAGATGTTAACTTAGAAGCGCCCGATACCCACCTTGTGTTTAAGCCAGATGTCA
+ACGGCACAAGTGCCGAGCTTTTACTGGGACAGCAGGCCGCTCCCAATCGACCTAATTACATTGGTTTTAG
+GGACAACTTCATTGGTTTGATGTACTACAATTCCACTGGCAACATGGGAGTGCTGGCCGGGCAAGCTTCT
+CAGCTCAACGCAGTGGTGGACTTACAAGATAGAAACACGGAGCTGTCTTACCAGTTAATGCTTGACGCTT
+TAGGGGATCGGAGTCGATACTTCTCCATGTGGAACCAGGCAGTGGACAGCTATGACCCAGACGTGAGAAT
+TATTGAAAATCATGGCGTGGAAGACGAGCTCCCCAACTATTGCTTTCCTCTTAATGGGCAAGGAATATCT
+AACAGTTACCAAGGCGTAAAGACTGACAATGGAACTAACTGGTCTCAGAATAATACAGACGTCTCAAGCA
+ACAACGAAATTTCCATTGGCAATGTGTTTGCCATGGAGATTAATCTGGCGGCTAACTTGTGGAGAAGCTT
+CTTGTACTCAAATGTAGCCCTGTACTTGCCTGACTCTTACAAAATAACCCCCGATAACATTACTTTACCC
+GACAACAAAAATACATATGCCTACATGAACGGTCGGGTTGCCGTCCCCAGCGCCCTGGATACATACGTGA
+ACATTGGGGCGCGGTGGTCTCCAGACCCCATGGACAACGTTAATCCCTTTAACCACCACCGCAATGCTGG
+TCTGCGCTACCGTTCTATGCTCCTGGGTAACGGCCGCTACGTGCCTTTTCACATCCAAGTGCCCCAGAAA
+TTTTTCGCCATTAAAAATCTCCTGCTCCTGCCCGGGTCCTACACCTATGAGTGGAACTTCCGGAAGGATG
+TTAACATGATTCTCCAAAGCAGTCTCGGTAACGACCTCAGGGTCGATGGAGCCAGCGTCAGGTTTGACAG
+CATTAACCTGTATGCCAACTTTTTCCCCATGGCTCACAACACCGCTTCCACCTTGGAAGCAATGCTTCGT
+AATGATACCAACGATCAGTCTTTCAACGACTACCTCTGCGCTGCAAACATGCTTTACCCCATACCCGCCA
+ACGCTACTAGCGTGCCCATTTCTATTCCTTCGCGAAATTGGGCTGCTTTTCGGGGGTGGAGTTTTACTAG
+ACTAAAAACTAAAGAAACCCCCTCTTTGGGGTCCGGGTTTGATCCATATTTCACCTACTCTGGCTCCGTC
+CCATACTTGGATGGCACCTTTTACCTGAACCACACTTTTAAAAAGGTGTCCGTTATGTTCGACTCCTCTG
+TGAGCTGGCCTGGTAACGACCGACTACTTACTCCCAACGAGTTTGAAATCAAACGAACCGTGGATGGGGA
+AGGATACAACGTGGCTCAATGTAACATGACCAAGGACTGGTTCCTCATACAAATGCTCAGTCACTACAAT
+ATTGGCTACCAGGGTTTCCACGTACCAGAAAGCTACAAGGACAGGATGTACTCCTTTTTCCGAAACTTCC
+AACCCATGAGCCGCCAGGTGGTAGACACTACCACCTACACGGAGTATCAGAATGTAACTCTCCCTTTCCA
+GCATAATAACTCTGGCTTTGTAGGATACATGGGACCTGCCATACGGGAGGGACAAGCTTACCCCGCCAAC
+TATCCATACCCCCTTATTGGTCAGACGGCCGTACCAAGCCTGACTCAGAAAAAATTTCTTTGCGATCGTA
+CCATGTGGCGCATTCCCTTTTCCAGCAACTTTATGTCTATGGGGGCCCTGACCGACCTGGGGCAAAACAT
+GCTGTACGCCAACTCCGCCCACGCGCTCGACATGACTTTTGAGGTGGACCCCATGGATGAGCCCACACTT
+CTCTATGTTCTGTTCGAAGTTTTCGACGTTGTGCGCATCCACCAGCCGCACCGCGGCGTCATCGAGGCCG
+TCTACCTGCGTACGCCGTTCTCGGCCGGTAACGCCACCACATAAGAAGCCAGCCAATGGGCTCCAGCGAG
+CAGGAGTTGGTCGCCATCGTGCGCGAACTGGGCTGCGGACCTTACTTTCTGGGCACGTTTGACAAACGCT
+TTCCGGGTTTTATGGCACCGCATAAGCTGGCGTGTGCCATTGTTAACACGGCGGGCCGCGAAACCGGCGG
+CGTACACTGGCTGGCCCTGGCCTGGAACCCAAAGAACCGTACCTGCTACCTCTTCGACCCATTTGGCTTT
+TCGGACGAGCGCCTCAAACAGATTTACCAGTTTGAGTATGAAGGTCTCCTAAAGCGTAGTGCGTTGGCCT
+CAACCCCGGACCATTGTATCACCCTAATTAAGTCCACCCAAACTGTTCAAGGACCGTTTTCGGCGGCCTG
+CGGCCTTTTCTGCTGCATGTTTTTACATGCTTTTGTAAACTGGCCCACCAGTCCCATGGAGCGCAACCCC
+ACCATGGACCTTCTTACCGGCGTTCCAAACAGCATGCTTCAAAGCCCCCAGGTTGTACCCACCCTGCGTC
+ACAACCAGGAGCGGTTGTACCGTTTCCTGGCGCAACGTTCTCCCTACTTTCAGCGTCATTGCGAGCGTAT
+CAAAAAAGCCACCGCGTTTGACCAAATGAAAAACAACATGTAACGGTTCAATAAAAGCTTTTATTGATTC
+AAAAAATTCATGCATGCAGACTTTTTATTTTAAAATGGTTCTTTCTCCCCATCGCCGTGGCTGGCGGGCA
+AAGCTACGTTGCGATACTGCAAACGAGAGGACCACTTAAATTCTGGAATCAGCATCTTAGGAAGGGGGCC
+ATCGACGTTCTCTCCCCACAGCCGTCGTACAAGTTGCAAAGCTCCCAAAAGGTCAGGTGCAGAAATTTTG
+AAATCACAGTTGGGACCTTGGCCACCACGGGAGTTGCGGTATACGGGGTTAGCGCACTGGTAAACCAGCA
+CACAGGGATACTGGATACTGGCAAGAGCCACCTTGTCGGTTACTTCTTCAGCTCTAAGACTGTCAACATT
+GCTTAGAGCGAAAGGGGTGGCTTTACACATTTGCCGACCCAATTGGGGCACACCGGTGGGCTTGTACAGG
+CAGTCGCAGCGCATCACCATTAATAGGCGTTTTAGCCCGTTTTGCATTTTTGGATATTCGGCTTGCATAA
+AAGCTTCTATCTGCAAAAAAGCCGTCTGAGCCTTTGTTCCTTCCGAGAAAAACAGACCGCAGGACTTGGC
+AGAAAACACATTGGTGGCACAGCTCACGTCTTCTACACAACAACGGGCATCGTCATTCTTCAGTTGAACC
+ACGCTGCGCCCCCACCGGTTTTGTACCACCTTGGCTCGACTCGGGTGCTCCTTTAACGCCCGCTGAGCGT
+TCTCGCTCGCTACATCCATTTCCACCAACTGCTCTTTTTGAATCATTTCCAGGCCATGATAACAGCGTAG
+CACTCCCTCTTGCTCGGTGCAGCCGTGAAGCCAAATCGCGCAACCAGTGGGCTCCCATTCATTGTTTTTT
+ACCCCGGCGTACGACTCCACGTAGGCTCTCAAAAAACGTCCCATCATTTCCACAAATGTCTTGTGGCTGG
+TGAAGGTGAGAGGGAGGCCGCGATGCTCCTCGTTAAGCCACGTTTGGCAAATTTTGCGATAAACGTTGCT
+TTGTTCGGGTAGGAACTTGAAGCCATTCTTCTCTTCGGCCTCCACATGATACTTTTCCATTAGCTTTATC
+ATTAAATCCATGCCTTTCTCCCAGGCGGAAACCAAGGGCTCTGCCTGCGGATTAAGAACCACTGATGTAA
+CAGCTTTGGAAGTGCTAGGCTCTTCTTCCTCGTTGTTTTCCTCTGACGGGGGAGGCACACCTTTGGGCTC
+CAAGCGTCTTACATATCGCTTGCCACTGGCCTTTTGAACGACCTGCACGCCGGGGTGACTGAACCCGGTG
+TACACCACCTCTTCTTCTTCCTCCTCGCTGTCTGGAACCACTTCGGGAGACGGAGGCAAAACTGGAACGC
+GATCCGGCACTTGAACATTCTTGCGCAACTTCTTTTTGGGAGGAAGTGACGGGGCCCGTTCTGGACTCGT
+CTCCTGCAAGTAGGGAGTGATGGTGGGGAGTTCTTGCTGACGGCCGGCCATGCTTTACTCCTAGGCGAGA
+AAATATGGAGGAGGATCTTAAGCTGCAGCCAGACTCCGAAACCTTAACCACCCCCAACTCTGAGGTCGGC
+GCCGTCGAGCTAGTGAAACATGAGGAGGAAAATGAGCAAGTGGAGCAAGATCCGGGCTATGTAACGCCCC
+CCGAGGACGGCAAGGAACCAGTGGCCGCACTCAGCGAACCCAACTATTTGGGAGGGGAGGACGACGTGCT
+CCTGAAGCACATAGCGCGACAGAGCACCATTGTACGAGAAGCCCTCAAGGAATGCACACAGACTCCGCTG
+ACGGTGGAGGAATTAAGCCGCGCGTATGAAGCTAACCTGTTTTCGCCGCGTGTACCGCCAAAAAAGCAGC
+CTAACGGCACCTGCGAAACAAACCCGCGCCTCAATTTTTATCCCGTCTTTGCGGTGCCTGAAGCACTGGC
+TACTTATCACATCTTTTTCAAGAACCAACGCATTCCCCTCTCTTGCCGCGCCAACCGTACACGCGGTGAC
+GGCCTTTTGCATCTCAAAGCTGGAGCTCACATACCTGAGATCGTTTCTTTAGAAGAAGTACCCAAGATTT
+TTGAAGGTCTTGGCAAGGACGAAAAACGGGCGGCAAATGCTCTGCAAAAAAACGAAACCGAGAATCAGAA
+CGTGTTGGTAGAGCTGGAGGGTGACAACGCGCGTTTGGCCGTACTCAAACGCACCATTGAAGTTTCACAC
+TTTGCTTATCCCGCGCTAAATCTTCCTCCCAAAGTAATGCGTTCTGTTATGGATCAAGTGCTTATTAAGC
+GAGCAGAGCCCATTGATCCCCAACAACCCGACCTAAACTCTGAGGACGGACAACCCGTAGTCTCAGACGA
+CGAGCTTGCTCGCTGGCTAGGTACCCAGGATCCCTCAGAGCTGCAAGAGCGGCGAAAAATGATGATGGCA
+GCAGTTTTGGTTACAGTGGAATTGGAATGCCTGCAGCGCTTCTTTGCTAACCCTCAAACACTGCGCAAAG
+TCGAGGAGTCCCTGCACTATGCCTTCCGTCATGGCTACGTTCGTCAGGCCTGCAAGATCTCCAACGTAGA
+GCTCAGCAATCTGATCTCTTACATGGGCATTCTACACGAAAACCGGCTGGGGCAGAACGTTCTTCACTGC
+ACCTTGCAAGGGGAGGCCCGCCGAGACTACGTCCGCGACTGCATCTATCTTTTCCTTATTCTCACCTGGC
+AAACCGCTATGGGAGTCTGGCAGCAGTGCTTGGAAGAGCAAAACCTCCAGGAGCTTAATAAATTGCTAGT
+ACGAGCCCGTCGCGAACTCTGGACGTCTTTTGACGAGCGTACGGTTGCCCGCCAGCTGGCAAACCTCATT
+TTTCCCGAGCGGCTTATGCAAACATTGCAAAATGGTTTGCCAGACTTTGTCAGCCAAAGTATCTTGCAAA
+ACTTTCGCTCCTTTGTACTCGAGCGTTCCGGCATCTTGCCGGCTATGAGTTGTGCTTTGCCCTCCGATTT
+TGTCCCCCTCTGCTACCGCGAATGCCCCCCACCGTTGTGGAGTCACTGCTACCTCCTCCGTCTAGCCAAC
+TATTTGGCCCACCACTCTGATCTTATGGAAGACTCTAGCGGCGACGGACTGCTAGAATGTCACTGCCGTT
+GCAACCTCTGCACCCCTCATCGCTCACTGGTCTGTAACACCGAGCTTCTTAGCGAAACCCAAGTAATCGG
+TACCTTTGAGATTCAAGGGCCAGAGCAACAAGAAGGTGCTTCCAGCCTCAAACTCACGCCGGCGTTGTGG
+ACTTCCGCCTACCTACGCAAATTTATTCCCGAAGACTATCACGCCCACCAAATTAAATTTTATGAAGACC
+AATCACGACCTCCCAAAGTCCCCCTTACAGCCTGTGTTATCACCCAAAGCCAAATTCTGGCCCAATTACA
+AGCTATTCAGCAGGCGCGTCAGGAATTTCTTTTAAAAAAAGGACACGGGGTCTATTTGGACCCCCAAACC
+GGTGAAGAACTTAATACCCCGTCACTCTCCGCCGCCGCTTCGTGCCGTTCGCAGAAACATGCCACCCAAG
+GGAAACAAGCATCCCATCGCGCAACGGCAATCCCAGCAGAAACTACAAAAGCAGTGGGACGAGGAGGAGA
+CGTGGGACGACAGCCAGGCAGAGGAAGTTTCAGACGAGGAGGCGGAGGAGCAGATGGAGAGCTGGGACAG
+CCTAGACGAGGAGGACCTAGAGGACGTGGAGGAAGAAACCATCGCCAGCGACAAGGCACCATCTTTCAAA
+AAACCCGTTCGGAGCCAACCTCCGAAAACTATCCCGCCCCTGCCACCGCAACCATGTTCACTGAAAGCCA
+GCCGTAGGTGGGACACCGTCTCCATCGCCGGATCGCCAACAGCCCCAGCTGGTAAGCAGCCTAAGCGCGC
+ACGACGGGGATACTGCTCCTGGCGAGCCCATAAAAGCAATATTGTCGCATGCCTCCAGCACTGCCGGGGC
+AATATCTCATTCGCACGGCGTTACTTGCTTTTTCACGACGGGGTGGCGGTTCCTCGCAACGTCCTCTACT
+ATTACCGTCATCTCTACAGCCCCTACGAAACGTTTGGAGAAAACACCTCGAGTGCGTAAGACCTCATCCG
+CCATTGCCACCCGCCAGGATTCGCCCGCCACGCAGGAGCTCAGAAAACGCATCTTTCCGACGCTGTATGC
+TATTTTCCAGCAGAGCCGCGGTCAACAGCTGGAACTCAAAGTAAAAAACCGATCACTCCGTTCGCTCACC
+CGCAGCTGCTTGTATCACAGAAGTGAAGACCAACTGCAGCGCACGCTGGAGGACGCCGAGGCACTGTTCA
+ATAAATATTGCTCGGTGTCTCTTAAGGACTAAACACCCGCGCTTTTTTTAGGCGCCAAATTACGTCATTG
+ACATTATGAGCAAAGACATTCCCACGCCTTACATGTGGAGCTATCAGCCGCAAATGGGCCTGGCAGCTGG
+AGCTTCTCAGGATTACTCCAGTCGCATGAATTGGCTTAGTGCCGGCCCCCACATGATTGGGCGGGTAAAT
+GGAATTCGTGCCACTCGAAACCAAATTCTGCTAGAACAGGCCGCCCTAACCTCTACCCCGCGACGTCAGC
+TGAACCCACCCTCTTGGCCTGCCGCCCAGGTTTATCAGGAAAACCCCGCCCCGACCACAGTCCTTCTGCC
+ACGCGACGCGGAAGCCGAAGTCCAAATGACTAACTCCGGAGCGCAATTAGCGGGCGGCGCCAGACACGTC
+AGGTTCAGAGATCGACCCTCGCCCTATTCCTCCGGCTCTATAAAAAGGCTAATCATTCGAGGCCGAGGTA
+TCCAGCTCAACGACGAGGTAGTGAGCTCTTCCACCGGTCCTAGACCTGACGGAGTCTTTCAGCTTGGAGG
+CGCCGGGCGGTCTTCCTTCACTCCTCGCCAGGCGTACTTAACGCTTCAGAGCTCTTCATCCCAGCCTCGC
+TCCGGCGGCATCGGAACCCTCCAGTTTGTGGAGGAGTTTGTACCCTCCGTTTACTTCAACCCCTTCTCGG
+GCGCTCCTGGTCTTTACCCAGACGACTTCATCCCGAACTACGACGCGGTGAGCGAATCTGTGGACGGCTA
+CGACTGAAGACCGATAGTACGGCCGTGACTGCGCGGCTGTAACATCTGCATCGGTGCCGTAACCTTCGCT
+GCTTTACTTAAAAAGCCTGTGATTTCATTTACCACCCCAGCACTTGGATTACATGAAGATCTGTGTTCTT
+TTTTGTGTGCTAAGTTTAACAAGTAGCCTAAGGACTTCACCTACAACCGTTGGTTCCTTACGTCAGCTAC
+AAGATTCCACCAAAGGTACACACCAAACTCTTTATTTTTCTGAGTCTACCACTTCTATTGCACTTAACTG
+TTCTTGTCGTAACCAACTCGTTCAGTGGCGCGCTAACAGACAATTTTGCAAACTATTCTGGGACGCTCTT
+ATTGTTCAAGGAAACAACAGCCTTTGTAACAACTGTACTGCTACTACTTTAACTCTTACACCTCCTTTTG
+TTCCCGGTCCATACTTGTGCATTGGCACAGGAAGAGGGCCTAGCTGCTTTAATCGCTGGACTTTACAAAA
+AGAGAATCTAACCACTACCACCCTCCTTCCCCTTACTACTTATACTTTTTCCCAAAAAAAGAATTACTTT
+TTGCCCATTATTGCACTTTTGGCCTTTGTCTGTGTTATTACCGCTAATTATATTTTAATTTTCAATCTTG
+ATAATTTTTACTAATCATGCTGCTGTTTTTACTTTGCCTTCTTTTCTGCTCTGCCTATGCCGCCGTGCCA
+GAAAAAACCCTTAACAACCTCGTTCGGGTGTACGCCTTAGTTGGTACCAATCTATCCCTTGATTCTATGA
+AAACTCCTCAGATTGACGAACTTACTAGTCTTAGCTGGATCAAACAGGAAGACAATCCTAACAAAAACTT
+ACAATCATTTTTTTTTATTGGTCAAAAACTCTGTGAAGTTACCAAAGACAAAATCACTGTTTTTAACTAT
+TATCCGTTGGAATTTTCCTGCGCTAACGTAACCTTGTATTTGTATAATCTTAAAACTGACGATTCTGGCC
+TCTATAATGGAAAGGCCCATACCAAAGAGCTTGAACATAACACCTATGTTAGGCTTTATGTTATTGACAT
+TCCTCCGCCTAAGTGTGACATTACTTCACGTTACTTAGGCATACAGGCTACTGGGGAAGATTATTGTTTA
+ATTGAAATTAATTGCACTAACTCCAAATACCCAGCTGTGGTTAAATTTAATGGCAGGCAAAGCAACTTCT
+ACCATTATGTTAGCGAAAACGGAAACAAAAAACTTCCAAATTTTTATGAAACACACATCACTGTTAATGG
+TACCCACAAAAGCTTTCACTTTAATTACCCTTTTAACGACCTTTGTCAAACAACCAGCGCTCTACAATAT
+AATGACAATGTCCAGGTAGTCCTCATTCTTCTCATAGTAGTTGGCTTAATAATAATTTCCGCTAGTTTAA
+TATTGCTTTATTGCCACCGCAAAAAAATCAAGGCCAAAGTTCAACATCAACCAGTGCATATTTGTTTAGA
+AAAATAAAAATTTTTTTCTTTTCAGTATGGTAACTCCTCTTCTCCTGCTTGTCTGTCTGCCAATTATCTA
+CGCCTCCACCACCTTCGCCGCAGTCTCCCACCTTGATACGGATTGTCTTCCCGCCTTGCTGACTTATCTC
+ATCTTCACCTCTGTTTGCTGCACTGCCATCTGCAGCATTGCCACTTTTTTTGTGGCCATTTTCCAAACTG
+CGGACTACCTATACGTTAGAGTGGCATACTATCGTCATCATCCCCAATATAGGAACCACGAGGTGGCTAC
+CCTTCTGTGCCTGTCATGAAAGTTCCTCTTCTCTGTCTTATCCTCCTTCACAAAGTCCTGGCCAACTGCC
+ACCTCCACCGGCCCACCGAGTTCCTGCGCTGCTACTCAACAGAAACCTCTTCCTTTTGGCTGTACTCCAT
+TATTTTTATTTTGATTTTCTTTGCCACCTTTTTGGGATTACAAATTTACGGGTGCCTTCACCTGGGCTGG
+ATGCATCCTCCCAACAACCTACCCAGATTTCCTGGTTTCCTATTACAGCCCCCACCGCCCCCACCGGCTC
+CTGTGCAGCGCGCTCCATCAGTTATTAGCTACTTTCATCTTAACTCTGAAGATGTCTGACCAACTAGAAA
+TCGACGGGCAGTGCACTGAGCAGCTTATCCTTGCTCGGCGAAAACTCAAACAACAAAATCAGGAACTGTT
+CAACCTTCAAGCCCTACACCAATGCAAAAAGGGTCTTTTTTGTCTGGTTAAACAAGCTGAACTTTGTTAT
+GATGTAACCCAACAGGGACACGAGCTGTCATATACTTTAAACAAGCAAAGACAGAGCTTTATGACTATGG
+TGGGGGTTAAGCCCATTAAGGTTACTCAGCAATCCGGCCCAGTTGAGGGAAGCATTCTTTGTCAGTGTAC
+CAATCCTGAATGCATGTACACTATGGTAAAAACCCTGTGTGGTCTAAGGGAACTTCTCCCCTTTAATTAA
+AGTTATTCTGATTAATAAAGCTTACCTTAAATTTGATATCAGTTGTTTGTCAAGTTTTTCCAGCAGCACC
+ACCTGCCCTTCCTCCCAACTTTCGTACGGGATGTGCCAACGGGCGGCAAACTTTCTCCACGTCCTAAAGG
+GTATATCGGTGTTCACCTTTTTACCCTGACCCACAATCTTCATCTTGCAGATGAAAAGAACCAGAATTGA
+AGACGACTTCAACCCCGTCTACCCCTATGACACCTCCTCAACTCCCAGCATTCCCTATGTAGCTCCGCCC
+TTCGTTTCTTCCGACGGGTTACAGGAAAACCCCCCGGGAGTTTTAGCACTCAAGTACACTGACCCCATTA
+CTACCAATGCTAAACATGAGCTTACTTTAAAACTTGGCAGCAACATAACTTTACAAAATGGGTTACTTTC
+GGCCACCGTTCCCACTGTTTCTCCTCCCCTTACAAACAGTAACAACTCCTTGGGTTTAGCCACATCCGCT
+CCTATAGCTGTGTCAGCTAACTCTCTTACATTGGCCACCGCCGCACCACTGACAGTAAGCAACAACCAGC
+TTAGTATTAACACTGGCAGAGGCTTAGTTATAACTAACAATGCCGTAGCAGTTAATCCTACCGGAGCGTT
+AGGCTTTAACAACACAGGAGCTTTACAATTAAACGCTGCGGGAGGAATGAGAGTGGACGGCGCCAACTTA
+ATTCTTCATGTAGCATACCCCTTTGAAGCAATCAACCAACTAACACTGCGATTAGAAAACGGGTTAGAAG
+TAACCAACGGAGGAAAACTCAACGTTAAGTTGGGATCAGGCCTCCAATTTGACAATAACGGACGCATTAC
+CATTAGTAATCGCATCCAGACTCGAGGTGTAACATCCCTCACTACCATTTGGTCTATCTCGCCTACGCCT
+AACTGCTCCATCTATGAAACCCAAGATGCAAATCTATTTCTTTGTCTAACTAAAAACGGAGCTCACGTGT
+TAGGTACTATAACAATTAAAGGTCTTAAAGGAGCACTGCGGGAAATGAACGATAACGCTTTATCTGTAAA
+ACTTCCCTTTGACAATCAGGGAAATTTACTCAACTGTGCCTTGGAATCATCCACCTGGCGTTACCAGGAA
+ACCAACGCAGTGGCCTCTAATGCCTTAACATTTATGCCCAACAGTACAGTGTATCCCCGAAACAAAACCG
+CCGACCCAGGCAACATGCTCATCCAAATCTCGCCTAACATCACCTTCAGTGTCGTCTACAACGAGATAAA
+CAGTGGGTATGCTTTTACGTTTAAATGGTCAGCCGAACCGGGAAAACCTTTTCACCCACCCACCGCTGTA
+TTTTGCTACATAACTGAACAATAAAATCATTGCAGGCGCAATCTTCGCATTTCTTTTTTCCAGATGAAAC
+GAGCCAGATTTGAAGATGACTTCAACCCCGTCTACCCTTACGAACACTACAATCCCCTTGACATTCCATT
+TATTACACCCCCGTTTGCTTCCTCCAACGGCTTGCAAGAAAAACCTCCGGGAGTCCTCAGCCTGAAATAC
+ACTGATCCACTTACAACCAAAAACGGGGCTTTAACCTTAAAATTGGGCACGGGACTAAACATTGATAAAA
+ATGGAGATCTTTCTTCAGATGCTAGCGTGGAAGTTAGCGCCCCTATCACTAAAACCAACAAAATCGTAGG
+TTTAAATTACACTAAGCCTCTCGCTCTGCAAAATAACGCGCTTACTCTTTCTTACAACGCGCCCTTTAAC
+GTAGTAAATAATAATTTAGCTCTAAATATGTCACAGCCTGTTACTATTAATGCAAACAACGAACTTTCTC
+TCTTAATAGACGCCCCACTTAATGCTGACACGGGCACTCTTCGCCTTCGAAGTGATGCACCTCTTGGACT
+AGTAGACAAAACACTAAAGGTTTTGTTTTCTAGCCCCCTCTATCTAGATAATAACTTTCTTACACTAGCC
+ATTGAACGCCCGCTAGCTCTATCCAGTAACAGAGCAGTGGCCCTTAAGTATTCACCACCTTTAAAAATAG
+AAAACGAAAACTTAACCCTAAGCACAGGCGGACCTTTTACTGTAAGCGGGGGAAATTTAAACCTGGCAAC
+ATCGGCACCCCTCTCCGTGCAAAACAATTCTCTCTCCTTAGGGGTTAACCCGCCTTTTCTCATCACTGAC
+TCTGGATTAGCTATGGACTTAGGAGACGGTCTTGCATTAGGTGGCTCTAAGTTAATAATCAATCTTGGTC
+CAGGTTTACAAATGTCTAATGGAGCTATTACTTTAGCACTAGATGCAGCGCTGCCTTTGCAATATAAAAA
+CAACCAACTTCAACTCAGAATTGGCTCCGCGTCTGCTTTAATTATGAGCGGAGTAACACAAACATTAAAC
+GTCAATGCCAATACCAGCAAAGGTCTTGCTATTGAAAATAACTCACTAGTTGTTAAGCTAGGAAACGGTC
+TTCGCTTTGATAGCTGGGGAAGCATAGCTGTCTCACCTACTACCACTACCCCTACCACCCTATGGACCAC
+CGCGGACCCGTCTCCTAACGCCACTTTTTATGAATCACTAGACGCCAAAGTGTGGCTAGTTTTAGTAAAA
+TGCAACGGCATGGTTAACGGGACCATATCCATTAAAGCTCAAAAAGGCACTTTACTTAAACCCACAGCTA
+GCTTTATTTCCTTTGTCATGTATTTTTACAGCGACGGAACGTGGAGGAAAAACTATCCCGTGTTTGACAA
+CGAAGGGATACTAGCAAACAGTGCCACATGGGGTTATCGACAAGGACAGTCTGCCAACACTAACGTTTCC
+AATGCTGTAGAATTTATGCCTAGCTCTAAAAGGTATCCCAATGAAAAAGGTTCTGAAGTTCAGAACATGG
+CTCTTACCTACACTTTTTTGCAAGGTGACCCTAACATGGCCATATCTTTTCAGAGCATTTATAATCATGC
+AATAGAAGGCTACTCATTAAAATTCACCTGGCGCGTTCGAAATAATGAACGTTTTGACATCCCCTGTTGC
+TCATTTTCTTATGTAACAGAACAATAAAATATTGTTATTTTGTATTTTCAACTTTATTGATACTTTTACA
+GAATTCTAACCGTTAATCTCCCTCCCCCCTTCCACTTTACCTTATACACCTCCCTTTCCCCCTGTACCAC
+CGCAAACAACTGCAATTTAGGATTTACACAACGATTCTTCTGTGACAAAATCAACACAGGTTCTTTGCTG
+GCAAAGCGCTGATCCGTAATGGAAATGAAACCTTCAGAAACATCGTCCAACAGCACGGTGGAGTCCAAAG
+CAGAGCTCTGCAAAAACAAATACAGTCAAGCTCTCCACGGGTTCTCGCCTCTGTTGTAGTCTGCCAACGT
+AAACGGGCAGTACCGCTCCATCAAGCCCCGCAGTAATCCCTGTCTCCGGGGTTCCACCAAGCTCCTCATG
+AGTGACCTAACGGTGAAGCTTCCCAACACTTTCACCGCCTTGGCCAGCAGCCGCCGCGTCCGACGAGCGC
+AGCACCGCACAGAAAGCTCATCCAAGTTTTTACAATAGGTACAGCCCAACACCACCATATTATTCATAAT
+TCCATAACTAAAAAAACTCCACCCAAACGACATGCGCTCCAACACTATAGCCGCGTGCCCATCATACAGC
+AGGCGAATATATATAAAATGCCTACCTCTGACAAACACGCTCCCCATAAATAACACTTCCTTGGGCATGC
+CACAATTTACAATTTCTCGATACCAAGGGAATCTTAAGTTATACAGTGAACCATAAATCATCATTTTAAA
+CCAATTTGCTAACACTACACCCCCCGCCTTACATTGAAGAGACCCAGGTTTAATACAGTGACAGTGTATA
+GTCCAGCGTTCAAAACCTCTTACAATTTGATTAAAATCAACATTAATAGTGGCACAGCAAACACAAACAC
+GCATGTAAATTTTGCACACATGCTTTTCCCATTTAGACAATATCATGTCCCACCACATTGGCCACTCCTG
+CAATACTACAAAAGGCGCACAAGATGGAATAGACCTCACCTCGCTCACATAATGCATATTCAAATGTTCA
+CACTCTAAAAGTCCAGGAGTCCTTTCCATTGTGGCAATAGGCACAGAATCCTCAGAGGGAGGTGGAAGAC
+GGTGGGTTTGGTACGAACTCAGTCTGCAGCGAAACCATCTGTCGCGTTGCATCATAAATTAAAAGCTCGC
+GCACAGCTTCGTACTTCTGTTTTAAGAAACGAACACGCTGCCAACAAATGTTCGCAAATCGACGGTTTCG
+TTGTCGCGCTCTTTCAGTTTTCAGGGCAACGTTCAGCCACTCCTGCAGTCCACTTAACAGCTCCTCAGCC
+CGTGGAGATATGCTGACATTATACCTTATTATGTCCCCATAAACGTTCAAACAGCAGGTTAAAGCCAACT
+CCAACCAAGAAATACAAAGGCCTTGATCCCGACTCACTGGAGGTGGAGGGAGAGACGGAAGAGGCATAAT
+TATTCCAGACGGTTGTAAAGCGAGCCAAAGTGCAAGTCACGAAGATCACACCTCTCCCCACCGCTGCGTT
+GGTGAAAAATTACAGCCAAGTCAAAAAAGATGCGATTTTCCAAATTACCAATCACGGCTTCCACTAAGGC
+TGGCACACGCACTTCAAGAAACACAAACATAGCAAAAGCATTTTCCTCAAAATCTTCAAACATTAAGCTG
+CAATCTTGAATAATTCCCAAATAATTTTCCGCTTGCCACCCGCGCAACACATCCATTAAAATTTCTTGTA
+AACTGGCGCCATGTAATTCAAAAAGTTTGTTAAGAGCACCCTCTACTGTCATACGCAGGCACACCTTCAT
+GGTTGAAAAAGATCAGGTTCCCGTGTCACCTGCAGTTCATTTAAAAGATTAACATTAGGCTCAAAACCCC
+GATCCCGAATCTCCATGCGTAGCATTAGTTGTACAAAGTCATCCAAATCATTGCATATAAGCTCTGTCAG
+TTCGCTATCAGGAAGCAGCTCAGGTGATGCTACACAACAAATCATCTCTAGCGTAGGAGCTAAAGACGTT
+AAGGTAAAGCCACAATAAGCAGCTTGAAGAACTGGAGTAACACAATGCAAAATGTGCAGCAAAAACTCCG
+ACATGTTTGTCTTTAAAAAATCTACCACAGAAATGTCCATATTATTTAAATAAAACATCAGGGGCTCAGG
+AACCACCACCGAAATAAAAACCGGTCGTAACAAATACATTGTGTCCTGCAACAAAAAAAAAATATTAATG
+CCCACACCTGGGAAAACCTGTTCTAAAACCAAACAGGTATAAGTATTACAAATGCCTCCCTTTGCCCCCC
+AATCCAAACCAAATAAGCTGCCCCGTCTTACCGCGACAAAGCACACAGAACAAAACACACTCCGCAGACG
+AACACAATATTTATACACTCCCTTTGCCGTCAAAAGTCCACAAAAACTCCAAAGGTCAGAAAAACCGCCA
+CATGAACACTTCCGCATACTGTTTCACATATCGTCACTTCCGCCGCACCGCGCCCGTCCTCCGACCCCAC
+ACGTCATCCGCCTCCACCCTTTCCCACCCCGCCCGCCTCTACGTCACCTTACACCACCCCTAGTCCCTCC
+TCCCTCATTATCATATTGGCTCGTTTCCAGTTTTAAGGTATATTATTGATGATG
+
diff --git a/demos/tutorial/mini_bowtie/reads_hamming.fasta b/demos/tutorial/mini_bowtie/reads_hamming.fasta
new file mode 100755
index 0000000..81d14ca
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/reads_hamming.fasta
@@ -0,0 +1,20 @@
+>nc_001454.fasta.fasta.000000000 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16508 orig_end=16544 haplotype_infix=CGTTCCGTCCTACCGAGGAAGATCTCGCCGTAGGAG edit_string=MMMMMMMMMMMMMMMMMMMMMMMMEMMMMMMMMMMM strand=reverse
+CTCCTACGGCGGGATCTTCCTCGGTAGGACGGAACG
+>nc_001454.fasta.fasta.000000001 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16065 orig_end=16101 haplotype_infix=TTCGTCCACCGTTAGCACTGCGGTGGAGGCCATGGA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TCCATGGCCTCCACCGCAGTGCTAACGGTGGACGAA
+>nc_001454.fasta.fasta.000000002 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=33793 orig_end=33829 haplotype_infix=AAAAAAAAATATTAATGCCCACACCTGGGAAAACCT edit_string=MMMMMMEMMMMMMMMMMMMMMMMMMMMMMMMMEMMM strand=reverse
+AGGNTTTCCCAGGTGTGGGCATTAATATTNTTTTTT
+>nc_001454.fasta.fasta.000000003 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=20573 orig_end=20609 haplotype_infix=GCACCGCGCCCGTCCTCCGACCCCACACGTCATCCA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMEMMMMMMMMMM strand=forward
+GCACCGCGCCCGTCCTCCGACCCCACACGTCATCCA
+>nc_001454.fasta.fasta.000000004 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=6227 orig_end=6263 haplotype_infix=GATTGAGTGGGAAGCCCCACGGCATGGGATGGGTAA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TTACCCATCCCATGCCGTGGGGCTTCCCACTCAATC
+>nc_001454.fasta.fasta.000000005 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=1395 orig_end=1431 haplotype_infix=TAGTGTTAGTTTATTCTGATGGAGTTGTGGAGTGAG edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+TAGTGTTAGTTTATTCTGATGGAGTTGTGGAGTGAG
+>nc_001454.fasta.fasta.000000006 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=29589 orig_end=29625 haplotype_infix=CGATAACGCTTTATCTGTAAAACTTCCCTTTGACAA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TTGTCAAAGGGAAGTTTTACAGATAAAGCGTTATCG
+>nc_001454.fasta.fasta.000000007 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=23190 orig_end=23226 haplotype_infix=GTGACAACGCGCGTTTGGCCGTACTCAAACGCACCA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+GTGACAACGCGCGTTTGGCCGTACTCAAACGCACCA
+>nc_001454.fasta.fasta.000000008 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=15308 orig_end=15344 haplotype_infix=AGTTAGAAGACGCGTTCACAAAATGGACGAAGACTG edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMEMMEME strand=reverse
+TAATCNTCGTCCATTTTGTGAACGCGTCTTCTAACT
+>nc_001454.fasta.fasta.000000009 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16745 orig_end=16781 haplotype_infix=TGGAAGACATCAATTTTGCGTCGCTGGCTCCGCGGC edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMME strand=reverse
+TCCGCGGAGCCAGCGACGCAAAATTGATGTCTTCCA
diff --git a/demos/tutorial/mini_bowtie/solution1.cpp b/demos/tutorial/mini_bowtie/solution1.cpp
new file mode 100644
index 0000000..bd25145
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/solution1.cpp
@@ -0,0 +1,65 @@
+// ==========================================================================
+//                                mini_bowtie
+// ==========================================================================
+
+#include <iostream>
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/file.h>
+#include <seqan/index.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+void search() {}
+
+int main(int argc, char * argv[])
+{
+    // type definitions
+    typedef String<Dna5> TString;
+    typedef StringSet<TString> TStringSet;
+    typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+    typedef Iterator<TIndex, TopDown<ParentLinks<> > >::Type TIter;
+
+    // reading the command line arguments
+    if (argc < 3)
+    {
+        std::cerr << "Invalid number of arguments." << std::endl
+                  << "USAGE: minimapper GENOME.fasta READS.fasta OUT.sam" << std::endl;
+        return 1;
+    }
+
+    // declaration and initialization of the fragment store
+    FragmentStore<> fragStore;
+    if (!loadContigs(fragStore, argv[1]))
+        return 1;
+
+    if (!loadReads(fragStore, argv[2]))
+        return 1;
+
+    StringSet<TString> text;
+    for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+        appendValue(text, fragStore.contigStore[i].seq);
+
+    TIndex fmIndex(text);
+    TIter it(fmIndex);
+    search();
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+
+    fmIndex = TIndex(text);
+    it = TIter(fmIndex);
+    search();
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    return 0;
+}
diff --git a/demos/tutorial/mini_bowtie/solution2.cpp b/demos/tutorial/mini_bowtie/solution2.cpp
new file mode 100644
index 0000000..d32a012
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/solution2.cpp
@@ -0,0 +1,82 @@
+// ==========================================================================
+//                                mini_bowtie
+// ==========================================================================
+
+#include <iostream>
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/file.h>
+#include <seqan/index.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+template <typename TIter, typename TStringSet>
+void search(TIter & it, TStringSet const & pattern)
+{
+    typedef typename Iterator<TStringSet const, Standard>::Type TPatternIter;
+
+    for (TPatternIter patternIt = begin(pattern, Standard()); patternIt != end(pattern, Standard()); ++patternIt)
+    {
+        unsigned startApproxSearch = length(value(patternIt)) / 2;
+        goDown(it, infix(value(patternIt), 0, startApproxSearch - 1));
+        goRoot(it);
+    }
+}
+
+int main(int argc, char * argv[])
+{
+    typedef String<Dna5> TString;
+    typedef StringSet<String<Dna5> > TStringSet;
+    typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+    typedef Iterator<TIndex, TopDown<ParentLinks<> > >::Type TIter;
+
+    /*String<Dna> text = "ACGTACGT";
+    Index<String<Dna>, FMIndex<> > index(text);
+
+    Finder<Index<String<Dna> > > finder(index);
+
+    find(finder, "AC");
+    std::cerr << position("AC") << std::endl;
+*/
+    // reading the command line arguments
+    if (argc < 3)
+    {
+        std::cerr << "Invalid number of arguments." << std::endl
+                  << "USAGE: minimapper GENOME.fasta READS.fasta OUT.sam" << std::endl;
+        return 1;
+    }
+    // declaration and initialization of the fragment store
+    FragmentStore<> fragStore;
+    if (!loadContigs(fragStore, argv[1]))
+        return 1;
+
+    if (!loadReads(fragStore, argv[2]))
+        return 1;
+
+    // combining the contigs of the reference into one string set
+    StringSet<TString> text;
+    for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+        appendValue(text, fragStore.contigStore[i].seq);
+
+    // forward search
+    reverse(text);
+    TIndex fmIndex(text);
+    TIter it(fmIndex);
+    search(it, fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    // reversing the sequences for backward search
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+
+    // backward search
+    fmIndex = TIndex(text);
+    it = TIter(fmIndex);
+    search(it, fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    return 0;
+}
diff --git a/demos/tutorial/mini_bowtie/solution3.cpp b/demos/tutorial/mini_bowtie/solution3.cpp
new file mode 100644
index 0000000..6c3bd1e
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/solution3.cpp
@@ -0,0 +1,89 @@
+// ==========================================================================
+//                                mini_bowtie
+// ==========================================================================
+
+#include <iostream>
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/file.h>
+#include <seqan/index.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+template <typename TIter, typename TStringSet>
+void search(TIter & it, TStringSet const & pattern)
+{
+    typedef typename Iterator<TStringSet const, Standard>::Type TPatternIter;
+
+    for (TPatternIter patternIt = begin(pattern, Standard()); patternIt != end(pattern, Standard()); ++patternIt)
+    {
+        unsigned startApproxSearch = length(value(patternIt)) / 2;
+        if (goDown(it, infix(value(patternIt), 0, startApproxSearch - 1)))
+        {
+            for (unsigned i = startApproxSearch;; ++i)
+            {
+                for (Dna5 c = MinValue<Dna>::VALUE; c < valueSize<Dna>(); ++c)
+                {
+                    TIter localIt = it;
+                    if (goDown(localIt, c))
+                    {
+                        if (goDown(localIt, infix(value(patternIt), i + 1, length(value(patternIt)))))
+                        {
+                            // HIT
+                        }
+                    }
+                }
+                if (i == length(value(patternIt)) - 1 || !goDown(it, getValue(patternIt)[i]))
+                {
+                    break;
+                }
+            }
+        }
+        goRoot(it);
+    }
+}
+
+int main(int argc, char * argv[])
+{
+    typedef String<Dna5> TString;
+    typedef StringSet<String<Dna5> > TStringSet;
+    typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+    typedef Iterator<TIndex, TopDown<> >::Type TIter;
+
+    // 0) Handle command line arguments.
+    if (argc < 3)
+    {
+        std::cerr << "Invalid number of arguments." << std::endl
+                  << "USAGE: minimapper GENOME.fasta READS.fasta OUT.sam" << std::endl;
+        return 1;
+    }
+    // 1) Load contigs and reads.
+    FragmentStore<> fragStore;
+    if (!loadContigs(fragStore, argv[1]))
+        return 1;
+
+    if (!loadReads(fragStore, argv[2]))
+        return 1;
+
+    StringSet<TString> text;
+    for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+        appendValue(text, fragStore.contigStore[i].seq);
+    reverse(text);
+    TIndex fmIndex(text);
+    TIter it(fmIndex);
+    search(it, fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+
+    fmIndex = TIndex(text);
+    it = TIter(fmIndex);
+    search(it, fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    return 0;
+}
diff --git a/demos/tutorial/mini_bowtie/solution4.cpp b/demos/tutorial/mini_bowtie/solution4.cpp
new file mode 100644
index 0000000..f4fea38
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/solution4.cpp
@@ -0,0 +1,103 @@
+// ==========================================================================
+//                                mini_bowtie
+// ==========================================================================
+
+#include <iostream>
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/file.h>
+#include <seqan/index.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+template <typename TIter, typename TStringSet>
+void search(TIter & it, TStringSet const & pattern)
+{
+    typedef typename Iterator<TStringSet const, Standard>::Type TPatternIter;
+
+    for (TPatternIter patternIt = begin(pattern, Standard()); patternIt != end(pattern, Standard()); ++patternIt)
+    {
+        // exact search on pattern half
+        unsigned startApproxSearch = length(value(patternIt)) / 2;
+        if (goDown(it, infix(value(patternIt), 0, startApproxSearch - 1)))
+        {
+            for (unsigned i = startApproxSearch;; ++i)
+            {
+                Dna character = getValue(patternIt)[i];
+                for (Dna5 c = MinValue<Dna>::VALUE; c < valueSize<Dna>(); ++c)
+                {
+                    if (c != character)
+                    {
+                        TIter localIt = it;
+                        if (goDown(localIt, c))
+                        {
+                            if (goDown(localIt, infix(value(patternIt), i + 1, length(value(patternIt)))))
+                            {
+                                //HIT
+                            }
+                        }
+                    }
+                }
+                if (!goDown(it, character))
+                    break;
+                else if (i == length(value(patternIt)) - 1)
+                {
+                    // HIT
+                    break;
+                }
+            }
+        }
+        goRoot(it);
+    }
+}
+
+int main(int argc, char * argv[])
+{
+    typedef String<Dna5> TString;
+    typedef StringSet<String<Dna5> > TStringSet;
+    typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+    typedef Iterator<TIndex, TopDown<> >::Type TIter;
+
+    // 0) Handle command line arguments.
+    if (argc < 3)
+    {
+        std::cerr << "Invalid number of arguments." << std::endl
+                  << "USAGE: minimapper GENOME.fasta READS.fasta OUT.sam" << std::endl;
+        return 1;
+    }
+    // 1) Load contigs and reads.
+    FragmentStore<> fragStore;
+    if (!loadContigs(fragStore, argv[1]))
+        return 1;
+
+    if (!loadReads(fragStore, argv[2]))
+        return 1;
+
+    StringSet<TString> text;
+    for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+        appendValue(text, fragStore.contigStore[i].seq);
+
+    reverse(text);
+    TIndex fmIndex(text);
+    TIter it(fmIndex);
+    search(it, fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+
+    fmIndex = TIndex(text);
+    it = TIter(fmIndex);
+    search(it, fragStore.readSeqStore);
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+    BamFileOut bamFile(argv[3]);
+    writeRecords(bamFile, fragStore);
+
+    return 0;
+}
diff --git a/demos/tutorial/mini_bowtie/solution5.cpp b/demos/tutorial/mini_bowtie/solution5.cpp
new file mode 100644
index 0000000..fcbd05a
--- /dev/null
+++ b/demos/tutorial/mini_bowtie/solution5.cpp
@@ -0,0 +1,138 @@
+// ==========================================================================
+//                                mini_bowtie
+// ==========================================================================
+
+#include <iostream>
+#include <seqan/basic.h>
+#include <seqan/sequence.h>
+#include <seqan/file.h>
+#include <seqan/index.h>
+#include <seqan/store.h>
+
+using namespace seqan;
+
+struct ForwardTag {};
+struct ReverseTag {};
+
+template <typename TStore, typename TIter, typename TPatternIt>
+void addMatchToStore(TStore & fragStore, TPatternIt const & patternIt, TIter const & localIt, ForwardTag)
+{
+    typedef FragmentStore<>::TAlignedReadStore TAlignedReadStore;
+    typedef Value<TAlignedReadStore>::Type TAlignedRead;
+
+    for (unsigned num = 0; num < countOccurrences(localIt); ++num)
+    {
+        unsigned pos = getOccurrences(localIt)[num].i2;
+        TAlignedRead match(length(fragStore.alignedReadStore), position(patternIt), getOccurrences(localIt)[num].i1,
+                           pos, pos + length(value(patternIt)));
+        appendValue(fragStore.alignedReadStore, match);
+    }
+}
+
+template <typename TStore, typename TIter, typename TPatternIt>
+void addMatchToStore(TStore & fragStore, TPatternIt const & patternIt, TIter const & localIt, ReverseTag)
+{
+    typedef FragmentStore<>::TAlignedReadStore TAlignedReadStore;
+    typedef Value<TAlignedReadStore>::Type TAlignedRead;
+
+    for (unsigned num = 0; num < countOccurrences(localIt); ++num)
+    {
+        unsigned contigLength = length(fragStore.contigStore[getOccurrences(localIt)[num].i1].seq);
+        unsigned pos = contigLength - getOccurrences(localIt)[num].i2 - length(value(patternIt));
+        TAlignedRead match(length(fragStore.alignedReadStore), position(patternIt), getOccurrences(localIt)[num].i1,
+                           pos, pos + length(value(patternIt)));
+        appendValue(fragStore.alignedReadStore, match);
+    }
+}
+
+template <typename TIter, typename TStringSet, typename TStore, typename DirectionTag>
+void search(TIter & it, TStringSet const & pattern, TStore & fragStore, DirectionTag /*tag*/)
+{
+    typedef typename Iterator<TStringSet const, Standard>::Type TPatternIter;
+
+    for (TPatternIter patternIt = begin(pattern, Standard()); patternIt != end(pattern, Standard()); ++patternIt)
+    {
+        // exact search on pattern half
+        unsigned startApproxSearch = length(value(patternIt)) / 2;
+        if (goDown(it, infix(value(patternIt), 0, startApproxSearch - 1)))
+        {
+            for (unsigned i = startApproxSearch;; ++i)
+            {
+                Dna character = getValue(patternIt)[i];
+                for (Dna5 c = MinValue<Dna>::VALUE; c < valueSize<Dna>(); ++c)
+                {
+                    if (c != character)
+                    {
+                        TIter localIt = it;
+                        if (goDown(localIt, c))
+                        {
+                            if (goDown(localIt, infix(value(patternIt), i + 1, length(value(patternIt)))))
+                            {
+                                addMatchToStore(fragStore, patternIt, localIt, DirectionTag());
+                            }
+                        }
+                    }
+                }
+                if (!goDown(it, character))
+                    break;
+                else if (i == length(value(patternIt)) - 1)
+                {
+                    if (IsSameType<DirectionTag, ForwardTag>::VALUE)
+                        addMatchToStore(fragStore, patternIt, it, DirectionTag());
+                    break;
+                }
+            }
+        }
+        goRoot(it);
+    }
+}
+
+int main(int argc, char * argv[])
+{
+    typedef String<Dna5> TString;
+    typedef StringSet<String<Dna5> > TStringSet;
+    typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+    typedef Iterator<TIndex, TopDown<> >::Type TIter;
+
+    // 0) Handle command line arguments.
+    if (argc < 3)
+    {
+        std::cerr << "Invalid number of arguments." << std::endl
+                  << "USAGE: minimapper GENOME.fasta READS.fasta OUT.sam" << std::endl;
+        return 1;
+    }
+    // 1) Load contigs and reads.
+    FragmentStore<> fragStore;
+    if (!loadContigs(fragStore, argv[1]))
+        return 1;
+
+    if (!loadReads(fragStore, argv[2]))
+        return 1;
+
+    StringSet<TString> text;
+    for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+        appendValue(text, fragStore.contigStore[i].seq);
+
+    reverse(text);
+    TIndex fmIndex(text);
+    TIter it(fmIndex);
+    search(it, fragStore.readSeqStore, fragStore, ForwardTag());
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+
+    fmIndex = TIndex(text);
+    it = TIter(fmIndex);
+    search(it, fragStore.readSeqStore, fragStore, ReverseTag());
+    clear(fmIndex);
+    clear(it);
+
+    reverse(text);
+    reverse(fragStore.readSeqStore);
+    BamFileOut bamFile(argv[3]);
+    writeRecords(bamFile, fragStore);
+
+    return 0;
+}
diff --git a/demos/tutorial/modifiers/UNUSED_modcomplementdna.cpp.stdout b/demos/tutorial/modifiers/UNUSED_modcomplementdna.cpp.stdout
deleted file mode 100644
index 96dc2e2..0000000
--- a/demos/tutorial/modifiers/UNUSED_modcomplementdna.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-ACCGTT
-TGGCAA
diff --git a/demos/tutorial/modifiers/UNUSED_modview.cpp.stdout b/demos/tutorial/modifiers/UNUSED_modview.cpp.stdout
deleted file mode 100644
index 35dae98..0000000
--- a/demos/tutorial/modifiers/UNUSED_modview.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-A man, a plan, a canal-Panama
-A MAN, A PLAN, A CANAL-PANAMA
-A man, a master plan, a canal-Panama
-A MAN, A MASTER PLAN, A CANAL-PANAMA
diff --git a/demos/tutorial/modifiers/UNUSED_nested.cpp.stdout b/demos/tutorial/modifiers/UNUSED_nested.cpp.stdout
deleted file mode 100644
index 85dfd4c..0000000
--- a/demos/tutorial/modifiers/UNUSED_nested.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-ATTACGG
-CCGTAAT
-ACGTTTACGG
-CCGTAAACGT
-CCGTAAACGT
diff --git a/demos/tutorial/modifiers/assignment1.cpp.stdout b/demos/tutorial/modifiers/assignment1.cpp.stdout
deleted file mode 100644
index a61a4ed..0000000
--- a/demos/tutorial/modifiers/assignment1.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-CCCGGCATCATCC
-CTTGGCATTATTC
-
diff --git a/demos/tutorial/modifiers/assignment1_solution.cpp.stdout b/demos/tutorial/modifiers/assignment1_solution.cpp.stdout
deleted file mode 100644
index 09e37a4..0000000
--- a/demos/tutorial/modifiers/assignment1_solution.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-CCCGGCATCATCC
-CTTGGCATTATTC
-
-TTTGGTATTATTT
-TTTGGTATTATTT
diff --git a/demos/tutorial/modifiers/UNUSED_modcomplementdna.cpp b/demos/tutorial/modifiers/modifier_modcomplementdna.cpp
similarity index 100%
rename from demos/tutorial/modifiers/UNUSED_modcomplementdna.cpp
rename to demos/tutorial/modifiers/modifier_modcomplementdna.cpp
diff --git a/demos/tutorial/modifiers/modreverse.cpp b/demos/tutorial/modifiers/modifier_modreverse.cpp
similarity index 100%
rename from demos/tutorial/modifiers/modreverse.cpp
rename to demos/tutorial/modifiers/modifier_modreverse.cpp
diff --git a/demos/tutorial/modifiers/UNUSED_modview.cpp b/demos/tutorial/modifiers/modifier_modview.cpp
similarity index 100%
rename from demos/tutorial/modifiers/UNUSED_modview.cpp
rename to demos/tutorial/modifiers/modifier_modview.cpp
diff --git a/demos/tutorial/modifiers/UNUSED_nested.cpp b/demos/tutorial/modifiers/modifier_nested.cpp
similarity index 100%
rename from demos/tutorial/modifiers/UNUSED_nested.cpp
rename to demos/tutorial/modifiers/modifier_nested.cpp
diff --git a/demos/tutorial/modifiers/modreverse.cpp.stdout b/demos/tutorial/modifiers/modreverse.cpp.stdout
deleted file mode 100644
index 624cf11..0000000
--- a/demos/tutorial/modifiers/modreverse.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-A man, a plan, a canal-Panama
-amanaP-lanac a ,nalp a ,nam A
-A man, a master plan, a canal-Panama
-amanaP-lanac a ,nalp retsam a ,nam A
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp.stdout
deleted file mode 100644
index 0c0c40c..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Score: -2
-      0     .    
-        CD-FG-HC
-        || || ||
-        CDEFGAHC
-
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp.stdout
deleted file mode 100644
index 2c40729..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Score: 16
-      0     .    :    .   
-        AAATGACGGAT----TG
-        |   | |||||    ||
-        A---GTCGGATCTACTG
-
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp.stdout
deleted file mode 100644
index 1ad536f..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
-Score: 3
-Alignment matrix:
-      0     .    :    
-        AAATGACGGATTG
-           ||  |||   
-        ---TG--GGA---
-
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp.stdout
deleted file mode 100644
index 6113385..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp.stdout
+++ /dev/null
@@ -1,15 +0,0 @@
-Score: -6
-      0     .    :    .  
-        AAGU--GA-CUUAUUG
-        | ||  || || | ||
-        A-GUCGGAUCU-ACUG
-
-
-
-Row 0 contains gaps at positions: 
-4
-5
-8
-Row 1 contains gaps at positions: 
-1
-11
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp.stdout
deleted file mode 100644
index 29ece1d..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
-Score: 2
-Alignment matrix:
-      0     .    : 
-        blablubalu
-          ||  ||  
-        --ab--ba--
-
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp.stdout
deleted file mode 100644
index b66663f..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Score: 11
-      0     .    :    .   
-        GARFIELDTHE---CAT
-        |||||||||||   |||
-        GARFIELDTHEBIGCAT
-
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp.stdout
deleted file mode 100644
index 0c0c40c..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Score: -2
-      0     .    
-        CD-FG-HC
-        || || ||
-        CDEFGAHC
-
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp.stdout
deleted file mode 100644
index 313de95..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp.stdout
+++ /dev/null
@@ -1,27 +0,0 @@
-Score = 19
-      0     .    : 
-        a-philolog
-        | ||| ||||
-        amphibolog
-
-
-Aligns Seq1[0:9] and Seq2[7:16]
-
-Score = 9
-      0     .    
-        ATAAGCGT
-        ||| | ||
-        ATA-GAGT
-
-
-Aligns Seq1[0:7] and Seq2[2:9]
-
-Score = 5
-      0     .  
-        TC-TCG
-        || | |
-        TCATAG
-
-
-Aligns Seq1[7:12] and Seq2[0:5]
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp.stdout
deleted file mode 100644
index deb7a01..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp.stdout
+++ /dev/null
@@ -1,21 +0,0 @@
-Score = 21
-      0     .    :     
-        CFDAKQ---RTASR
-        ||| ||   ||| |
-        CFD-KQKNNRTATR
-
-
-Score = 8
-      0     .   
-        AKQR-TA
-        |  | ||
-        AT-RDTA
-
-
-Score = 5
-      0     
-        D-A
-        | |
-        DTA
-
-
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
deleted file mode 100644
index 8d5146a..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-    typedef Gaps<TSequence, ArrayGaps> TGaps;
-    typedef Iterator<TGaps>::Type TGapsIterator;
-    typedef Iterator<String<int> >::Type TIterator;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-//![main]
-
-//![verification]
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-//![verification]
-
-//![alignment]
-    TGaps gapsText;
-    TGaps gapsPattern;
-    assignSource(gapsPattern, pattern);
-    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
-    for (TIterator it = begin(locations); it != end(locations); ++it)
-    {
-        // Clear previously computed gaps.
-        clearGaps(gapsText);
-        clearGaps(gapsPattern);
-        // Only recompute the area within the current window over the text.
-        TSequence textInfix = infix(text, *it, *it + length(pattern));
-        assignSource(gapsText, textInfix);
-
-        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
-        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
-        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
-//![alignment]
-
-//![cigar]
-        TGapsIterator itGapsPattern = begin(gapsPattern);
-        TGapsIterator itGapsEnd = end(gapsPattern);
-
-        // Remove trailing gaps in pattern.
-        int count = 0;
-        while (isGap(--itGapsEnd))
-            ++count;
-        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
-
-        // Remove leading gaps in pattern.
-        if (isGap(itGapsPattern))
-        {
-            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
-            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
-        }
-
-        // Reinitilaize the iterators.
-        TGapsIterator itGapsText = begin(gapsText);
-        itGapsPattern = begin(gapsPattern);
-        itGapsEnd = end(gapsPattern);
-
-        // Use a stringstream to construct the cigar string.
-        std::stringstream cigar;
-        int numChar = 0;
-        while (itGapsPattern != itGapsEnd)
-        {
-//![cigar]
-//![cigarInsertion]
-            // Count insertions.
-            if (isGap(itGapsText))
-            {
-                int numGaps = countGaps(itGapsText);
-                cigar << numGaps << "I";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-//![cigarInsertion]
-//![cigarDeletion]
-            // Count deletions.
-            if (isGap(itGapsPattern))
-            {
-                int numGaps = countGaps(itGapsPattern);
-                cigar << numGaps << "D";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-//![cigarDeletion]
-//![cigarMatch]
-            // Count matches.
-            while (*itGapsText == *itGapsPattern && itGapsPattern != itGapsEnd)
-            {
-                ++numChar;
-                ++itGapsText;
-                ++itGapsPattern;
-            }
-            if (numChar != 0)
-            {
-                cigar << numChar << "M";
-                numChar = 0;
-                continue;
-            }
-//![cigarMatch]
-//![cigarMismatch]
-            // Count mismatches.
-            while (*itGapsText != *itGapsPattern && itGapsPattern != itGapsEnd)
-            {
-                ++numChar;
-                ++itGapsText;
-                ++itGapsPattern;
-            }
-            if (numChar != 0)
-                cigar << numChar << "S";
-            numChar = 0;
-        }
-        // Output the hit position in the text, the total number of edits and the corresponding cigar string.
-        std::cout << "Hit at position  " << *it << "\ttotal edits: " << abs(score) << "\tcigar: " << cigar.str() << std::endl;
-    }
-
-    return 0;
-}
-//![cigarMismatch]
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5.cpp.stdout
deleted file mode 100644
index e0d9158..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Text: MISSISSIPPIANDMISSOURI	Pattern: SISSI
-Hit at position  0	total edits: 1	cigar: 1S4M
-Hit at position  1	total edits: 1	cigar: 1I4M
-Hit at position  2	total edits: 1	cigar: 4M1I
-Hit at position  3	total edits: 0	cigar: 5M
-Hit at position  4	total edits: 1	cigar: 1I4M
-Hit at position  6	total edits: 2	cigar: 2M2S1M
-Hit at position  14	total edits: 2	cigar: 1S3M1I
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step1.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5_step1.cpp
deleted file mode 100644
index d40ec29..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step1.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step1.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5_step1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp
deleted file mode 100644
index 0d67966..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-    typedef Gaps<TSequence, ArrayGaps> TGaps;
-    typedef Iterator<String<int> >::Type TIterator;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-
-    TGaps gapsText;
-    TGaps gapsPattern;
-    assignSource(gapsPattern, pattern);
-    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
-    for (TIterator it = begin(locations); it != end(locations); ++it)
-    {
-        // Clear previously computed gaps.
-        clearGaps(gapsText);
-        clearGaps(gapsPattern);
-
-        // Only recompute the area within the current window over the text.
-        TSequence textInfix = infix(text, *it, *it + length(pattern));
-        assignSource(gapsText, textInfix);
-
-        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
-        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
-        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
-        std::cout << "Hit at position " << *it << "\ttotal edits: " << abs(score) << std::endl;
-    }
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp.stdout
deleted file mode 100644
index c631124..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Text: MISSISSIPPIANDMISSOURI	Pattern: SISSI
-Hit at position 0	total edits: 1
-Hit at position 1	total edits: 1
-Hit at position 2	total edits: 1
-Hit at position 3	total edits: 0
-Hit at position 4	total edits: 1
-Hit at position 6	total edits: 2
-Hit at position 14	total edits: 2
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp
deleted file mode 100644
index 1f937c4..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-    typedef Gaps<TSequence, ArrayGaps> TGaps;
-    typedef Iterator<TGaps>::Type TGapsIterator;
-    typedef Iterator<String<int> >::Type TIterator;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-
-    TGaps gapsText;
-    TGaps gapsPattern;
-    assignSource(gapsPattern, pattern);
-    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
-    for (TIterator it = begin(locations); it != end(locations); ++it)
-    {
-        // Clear previously computed gaps.
-        clearGaps(gapsText);
-        clearGaps(gapsPattern);
-
-        // Only recompute the area within the current window over the text.
-        TSequence textInfix = infix(text, *it, *it + length(pattern));
-        assignSource(gapsText, textInfix);
-
-        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
-        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
-        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
-
-        TGapsIterator itGapsPattern = begin(gapsPattern);
-        TGapsIterator itGapsEnd = end(gapsPattern);
-
-        // Remove trailing gaps in pattern.
-        int count = 0;
-        while (isGap(--itGapsEnd))
-            ++count;
-        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
-
-        // Remove leading gaps in pattern.
-        if (isGap(itGapsPattern))
-        {
-            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
-            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
-        }
-        std::cout << "Hit at position " << *it << "\ttotal edits: " << abs(score) << std::endl;
-    }
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp.stdout
deleted file mode 100644
index c631124..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Text: MISSISSIPPIANDMISSOURI	Pattern: SISSI
-Hit at position 0	total edits: 1
-Hit at position 1	total edits: 1
-Hit at position 2	total edits: 1
-Hit at position 3	total edits: 0
-Hit at position 4	total edits: 1
-Hit at position 6	total edits: 2
-Hit at position 14	total edits: 2
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp
deleted file mode 100644
index f538f5f..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-    typedef Gaps<TSequence, ArrayGaps> TGaps;
-    typedef Iterator<TGaps>::Type TGapsIterator;
-    typedef Iterator<String<int> >::Type TIterator;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-
-    TGaps gapsText;
-    TGaps gapsPattern;
-    assignSource(gapsPattern, pattern);
-    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
-    for (TIterator it = begin(locations); it != end(locations); ++it)
-    {
-        // Clear previously computed gaps.
-        clearGaps(gapsText);
-        clearGaps(gapsPattern);
-
-        // Only recompute the area within the current window over the text.
-        TSequence textInfix = infix(text, *it, *it + length(pattern));
-        assignSource(gapsText, textInfix);
-
-        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
-        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
-        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
-
-        TGapsIterator itGapsPattern = begin(gapsPattern);
-        TGapsIterator itGapsEnd = end(gapsPattern);
-
-        // Remove trailing gaps in pattern.
-        int count = 0;
-        while (isGap(--itGapsEnd))
-            ++count;
-        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
-
-        // Remove leading gaps in pattern.
-        if (isGap(itGapsPattern))
-        {
-            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
-            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
-        }
-
-        // Reinitilaize the iterators.
-        TGapsIterator itGapsText = begin(gapsText);
-        itGapsPattern = begin(gapsPattern);
-        itGapsEnd = end(gapsPattern);
-
-        // Use a stringstream to construct the cigar string.
-        std::stringstream cigar;
-        while (itGapsPattern != itGapsEnd)
-        {
-            // Count insertions.
-            if (isGap(itGapsText))
-            {
-                int numGaps = countGaps(itGapsText);
-                cigar << numGaps << "I";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-            ++itGapsText;
-            ++itGapsPattern;
-        }
-        std::cout << "Hit at position " << *it << "\ttotal edits: " << abs(score) << std::endl;
-    }
-    return 0;
-}
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp.stdout
deleted file mode 100644
index c631124..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Text: MISSISSIPPIANDMISSOURI	Pattern: SISSI
-Hit at position 0	total edits: 1
-Hit at position 1	total edits: 1
-Hit at position 2	total edits: 1
-Hit at position 3	total edits: 0
-Hit at position 4	total edits: 1
-Hit at position 6	total edits: 2
-Hit at position 14	total edits: 2
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp
deleted file mode 100644
index 7c9c8f6..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-    typedef Gaps<TSequence, ArrayGaps> TGaps;
-    typedef Iterator<TGaps>::Type TGapsIterator;
-    typedef Iterator<String<int> >::Type TIterator;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-
-    TGaps gapsText;
-    TGaps gapsPattern;
-    assignSource(gapsPattern, pattern);
-    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
-    for (TIterator it = begin(locations); it != end(locations); ++it)
-    {
-        // Clear previously computed gaps.
-        clearGaps(gapsText);
-        clearGaps(gapsPattern);
-
-        // Only recompute the area within the current window over the text.
-        TSequence textInfix = infix(text, *it, *it + length(pattern));
-        assignSource(gapsText, textInfix);
-
-        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
-        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
-        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
-
-        TGapsIterator itGapsPattern = begin(gapsPattern);
-        TGapsIterator itGapsEnd = end(gapsPattern);
-
-        // Remove trailing gaps in pattern.
-        int count = 0;
-        while (isGap(--itGapsEnd))
-            ++count;
-        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
-
-        // Remove leading gaps in pattern.
-        if (isGap(itGapsPattern))
-        {
-            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
-            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
-        }
-
-        // Reinitilaize the iterators.
-        TGapsIterator itGapsText = begin(gapsText);
-        itGapsPattern = begin(gapsPattern);
-        itGapsEnd = end(gapsPattern);
-
-        // Use a stringstream to construct the cigar string.
-        std::stringstream cigar;
-        while (itGapsPattern != itGapsEnd)
-        {
-            // Count insertions.
-            if (isGap(itGapsText))
-            {
-                int numGaps = countGaps(itGapsText);
-                cigar << numGaps << "I";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-            // Count deletions.
-            if (isGap(itGapsPattern))
-            {
-                int numGaps = countGaps(itGapsPattern);
-                cigar << numGaps << "D";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-            ++itGapsText;
-            ++itGapsPattern;
-        }
-        // Output the hit position in the text, the total number of edits and the corresponding cigar string.
-        std::cout << "Hit at position  " << *it << "\ttotal edits: " << abs(score) << std::endl;
-    }
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp.stdout
deleted file mode 100644
index 7a198aa..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Text: MISSISSIPPIANDMISSOURI	Pattern: SISSI
-Hit at position  0	total edits: 1
-Hit at position  1	total edits: 1
-Hit at position  2	total edits: 1
-Hit at position  3	total edits: 0
-Hit at position  4	total edits: 1
-Hit at position  6	total edits: 2
-Hit at position  14	total edits: 2
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp b/demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp
deleted file mode 100644
index 7598e88..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-//![main]
-#include <iostream>
-#include <seqan/align.h>
-
-using namespace seqan;
-
-int main()
-{
-    typedef String<char> TSequence;
-    typedef Gaps<TSequence, ArrayGaps> TGaps;
-    typedef Iterator<TGaps>::Type TGapsIterator;
-    typedef Iterator<String<int> >::Type TIterator;
-
-    TSequence text =    "MISSISSIPPIANDMISSOURI";
-    TSequence pattern = "SISSI";
-
-    String<int> locations;
-    for (unsigned i = 0; i < length(text) - length(pattern); ++i)
-    {
-        // Compute the MyersBitVector in current window of text.
-        TSequence tmp = infix(text, i, i + length(pattern));
-
-        // Report hits with at most 2 errors.
-        if (globalAlignmentScore(tmp, pattern, MyersBitVector()) >= -2)
-        {
-            appendValue(locations, i);
-        }
-    }
-
-    TGaps gapsText;
-    TGaps gapsPattern;
-    assignSource(gapsPattern, pattern);
-    std::cout << "Text: " << text << "\tPattern: " << pattern << std::endl;
-    for (TIterator it = begin(locations); it != end(locations); ++it)
-    {
-        // Clear previously computed gaps.
-        clearGaps(gapsText);
-        clearGaps(gapsPattern);
-
-        // Only recompute the area within the current window over the text.
-        TSequence textInfix = infix(text, *it, *it + length(pattern));
-        assignSource(gapsText, textInfix);
-
-        // Use semi-global alignment since we do not want to track leading/trailing gaps in the pattern.
-        // Restirct search space using a band allowing at most 2 errors in vertical/horizontal direction.
-        int score = globalAlignment(gapsText, gapsPattern, Score<int>(0, -1, -1), AlignConfig<true, false, false, true>(), -2, 2);
-
-        TGapsIterator itGapsPattern = begin(gapsPattern);
-        TGapsIterator itGapsEnd = end(gapsPattern);
-
-        // Remove trailing gaps in pattern.
-        int count = 0;
-        while (isGap(--itGapsEnd))
-            ++count;
-        setClippedEndPosition(gapsPattern, length(gapsPattern) - count);
-
-        // Remove leading gaps in pattern.
-        if (isGap(itGapsPattern))
-        {
-            setClippedBeginPosition(gapsPattern, countGaps(itGapsPattern));
-            setClippedBeginPosition(gapsText, countGaps(itGapsPattern));
-        }
-
-        // Reinitilaize the iterators.
-        TGapsIterator itGapsText = begin(gapsText);
-        itGapsPattern = begin(gapsPattern);
-        itGapsEnd = end(gapsPattern);
-
-        // Use a stringstream to construct the cigar string.
-        std::stringstream cigar;
-        int numChar = 0;
-        while (itGapsPattern != itGapsEnd)
-        {
-            // Count insertions.
-            if (isGap(itGapsText))
-            {
-                int numGaps = countGaps(itGapsText);
-                cigar << numGaps << "I";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-            // Count deletions.
-            if (isGap(itGapsPattern))
-            {
-                int numGaps = countGaps(itGapsPattern);
-                cigar << numGaps << "D";
-                itGapsText += numGaps;
-                itGapsPattern += numGaps;
-                continue;
-            }
-            // Count matches.
-            while (*itGapsText == *itGapsPattern && itGapsPattern != itGapsEnd)
-            {
-                ++numChar;
-                ++itGapsText;
-                ++itGapsPattern;
-            }
-            if (numChar != 0)
-            {
-                cigar << numChar << "M";
-                numChar = 0;
-                continue;
-            }
-
-            // Count mismatches.
-            while (*itGapsText != *itGapsPattern && itGapsPattern != itGapsEnd)
-            {
-                ++numChar;
-                ++itGapsText;
-                ++itGapsPattern;
-            }
-            if (numChar != 0)
-                cigar << numChar << "S";
-            numChar = 0;
-        }
-        // Output the hit position in the text, the total number of edits and the corresponding cigar string.
-        std::cout << "Hit at position  " << *it << "\ttotal edits: " << abs(score) << "\tcigar: " << cigar.str() << std::endl;
-    }
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp.stdout b/demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp.stdout
deleted file mode 100644
index e0d9158..0000000
--- a/demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Text: MISSISSIPPIANDMISSOURI	Pattern: SISSI
-Hit at position  0	total edits: 1	cigar: 1S4M
-Hit at position  1	total edits: 1	cigar: 1I4M
-Hit at position  2	total edits: 1	cigar: 4M1I
-Hit at position  3	total edits: 0	cigar: 5M
-Hit at position  4	total edits: 1	cigar: 1I4M
-Hit at position  6	total edits: 2	cigar: 2M2S1M
-Hit at position  14	total edits: 2	cigar: 1S3M1I
diff --git a/demos/tutorial/parsing_command_line_arguments/assignment2_solution.cpp b/demos/tutorial/parsing_command_line_arguments/assignment2_solution.cpp
deleted file mode 100644
index 5342bdb..0000000
--- a/demos/tutorial/parsing_command_line_arguments/assignment2_solution.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-int main(int argc, char const ** argv)
-{
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-
-    addArgument(parser, seqan::ArgParseArgument(
-    seqan::ArgParseArgument::STRING, "TEXT"));
-
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-    addOption(parser, seqan::ArgParseOption(
-        "L", "lowercase", "Select to-lowercase as operation."));
-
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-
-    // Extract option values and print them.
-    unsigned period = 0;
-    getOptionValue(period, parser, "period");
-    bool toUppercase = isSet(parser, "uppercase");
-    bool toLowercase = isSet(parser, "lowercase");
-    seqan::CharString text;
-    getArgumentValue(text, parser, 0);
-
-    std::cout << "period   \t" << period << '\n'
-              << "uppercase\t" << toUppercase << '\n'
-              << "lowercase\t" << toLowercase << '\n'
-              << "text     \t" << text << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/parsing_command_line_arguments/assignment3_solution.cpp b/demos/tutorial/parsing_command_line_arguments/assignment3_solution.cpp
deleted file mode 100644
index 3c21916..0000000
--- a/demos/tutorial/parsing_command_line_arguments/assignment3_solution.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-int main(int argc, char const ** argv)
-{
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-
-    addArgument(parser, seqan::ArgParseArgument(
-        seqan::ArgParseArgument::STRING, "TEXT"));
-
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    setDefaultValue(parser, "period", "1");
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-    addOption(parser, seqan::ArgParseOption(
-        "L", "lowercase", "Select to-lowercase as operation."));
-
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-
-    // Extract option values and print them.
-    unsigned period = 0;
-    getOptionValue(period, parser, "period");
-    bool toUppercase = isSet(parser, "uppercase");
-    bool toLowercase = isSet(parser, "lowercase");
-    seqan::CharString text;
-    getArgumentValue(text, parser, 0);
-
-    std::cout << "period   \t" << period << '\n'
-              << "uppercase\t" << toUppercase << '\n'
-              << "lowercase\t" << toLowercase << '\n'
-              << "text     \t" << text << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/parsing_command_line_arguments/assignment4_solution.cpp b/demos/tutorial/parsing_command_line_arguments/assignment4_solution.cpp
deleted file mode 100644
index 4b76fcb..0000000
--- a/demos/tutorial/parsing_command_line_arguments/assignment4_solution.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-struct ModifyStringOptions
-{
-    unsigned period;
-    unsigned rangeBegin, rangeEnd;
-    bool toUppercase;
-    bool toLowercase;
-    seqan::CharString text;
-
-    ModifyStringOptions() :
-        period(1), rangeBegin(0), rangeEnd(0),toUppercase(false),
-        toLowercase(false)
-    {}
-};
-
-seqan::ArgumentParser::ParseResult
-parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
-{
-	// Setup ArgumentParser.
-	seqan::ArgumentParser parser("modify_string");
-
-	// We require one argument.
-	addArgument(parser, seqan::ArgParseArgument(
-	    seqan::ArgParseArgument::STRING, "TEXT"));
-
-	// Define Options
-	addOption(parser, seqan::ArgParseOption(
-	    "i", "period", "Period to use for the index.",
-	    seqan::ArgParseArgument::INTEGER, "INT"));
-	setMinValue(parser, "period", "1");
-	setDefaultValue(parser, "period", "1");
-	addOption(parser, seqan::ArgParseOption(
-	    "r", "range", "Range of the text to modify.",
-	    seqan::ArgParseArgument::INTEGER, "INT", false, 2));
-	addOption(parser, seqan::ArgParseOption(
-	    "U", "uppercase", "Select to-uppercase as operation."));
-	addOption(parser, seqan::ArgParseOption(
-	    "L", "lowercase", "Select to-lowercase as operation."));
-
-	// Parse command line.
-	seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-	// Only extract  options if the program will continue after parseCommandLine()
-	if (res != seqan::ArgumentParser::PARSE_OK)
-	    return res;
-
-	// Extract option values.
-	getOptionValue(options.period, parser, "period");
-	getOptionValue(options.rangeBegin, parser, "range", 0);
-	getOptionValue(options.rangeEnd, parser, "range", 1);
-	options.toUppercase = isSet(parser, "uppercase");
-	options.toLowercase = isSet(parser, "lowercase");
-	seqan::getArgumentValue(options.text, parser, 0);
-
-	// If both to-uppercase and to-lowercase were selected then this is an error.
-	if (options.toUppercase && options.toLowercase)
-	{
-	    std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
-	    return seqan::ArgumentParser::PARSE_ERROR;
-	}
-
-	return seqan::ArgumentParser::PARSE_OK;
-}
-
-seqan::CharString modifyString(seqan::CharString const & text,
-				   ModifyStringOptions const & options)
-{
-	seqan::CharString result;
-
-	if (options.toLowercase)
-	{
-	    for (unsigned i = 0; i < length(text); ++i)
-	    {
-		if (i >= options.rangeBegin && i < options.rangeEnd &&
-		    (i % options.period == 0u))
-		    appendValue(result, tolower(text[i]));
-		else
-		    appendValue(result, text[i]);
-	    }
-	}
-	else
-	{
-	    for (unsigned i = 0; i < length(text); ++i)
-	    {
-		if (i >= options.rangeBegin && i < options.rangeEnd &&
-		    (i % options.period == 0u))
-		    appendValue(result, toupper(text[i]));
-		else
-		    appendValue(result, text[i]);
-	    }
-	}
-
-	return result;
-}
-
-int main(int argc, char const ** argv)
-{
-	// Parse the command line.
-	ModifyStringOptions options;
-	seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-	// If parsing was not successful then exit with code 1 if there were errors.
-	// Otherwise, exit with code 0 (e.g. help was printed).
-	if (res != seqan::ArgumentParser::PARSE_OK)
-	    return res == seqan::ArgumentParser::PARSE_ERROR;
-
-	std::cout << modifyString(options.text, options) << '\n';
-
-	return 0;
-}
-
diff --git a/demos/tutorial/parsing_command_line_arguments/assignment5_solution.cpp b/demos/tutorial/parsing_command_line_arguments/assignment5_solution.cpp
deleted file mode 100644
index 6160aa3..0000000
--- a/demos/tutorial/parsing_command_line_arguments/assignment5_solution.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-    #include <iostream>
-
-    #include <seqan/arg_parse.h>
-
-    struct ModifyStringOptions
-    {
-	unsigned period;
-	unsigned rangeBegin, rangeEnd;
-	bool toUppercase;
-	bool toLowercase;
-	seqan::CharString inputFileName;
-
-	ModifyStringOptions() :
-	    period(1), rangeBegin(0), rangeEnd(0),toUppercase(false),
-	    toLowercase(false)
-	{}
-    };
-
-    seqan::ArgumentParser::ParseResult
-    parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
-    {
-	// Setup ArgumentParser.
-	seqan::ArgumentParser parser("modify_string");
-
-	// Define Options
-	addOption(parser, seqan::ArgParseOption(
-	    "I", "input-file",
-	    "A text file that will printed with the modifications applied.",
-	    seqan::ArgParseArgument::INPUT_FILE));
-	setValidValues(parser, "input-file", "txt");
-	setRequired(parser, "input-file");
-
-	addOption(parser, seqan::ArgParseOption(
-	    "i", "period", "Period to use for the index.",
-	    seqan::ArgParseArgument::INTEGER, "INT"));
-	setMinValue(parser, "period", "1");
-	setDefaultValue(parser, "period", "1");
-	addOption(parser, seqan::ArgParseOption(
-	    "U", "uppercase", "Select to-uppercase as operation."));
-	addOption(parser, seqan::ArgParseOption(
-	    "L", "lowercase", "Select to-lowercase as operation."));
-
-	// Parse command line.
-	seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-	// Only extract  options if the program will continue after parseCommandLine()
-	if (res != seqan::ArgumentParser::PARSE_OK)
-	    return res;
-
-	// Extract option values.
-	getOptionValue(options.period, parser, "period");
-	options.toUppercase = isSet(parser, "uppercase");
-	options.toLowercase = isSet(parser, "lowercase");
-	getOptionValue(options.inputFileName, parser, "input-file");
-
-	// If both to-uppercase and to-lowercase were selected then this is an error.
-	if (options.toUppercase && options.toLowercase)
-	{
-	    std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
-	    return seqan::ArgumentParser::PARSE_ERROR;
-	}
-
-	return seqan::ArgumentParser::PARSE_OK;
-    }
-
-    seqan::CharString modifyString(seqan::CharString const & text,
-				   ModifyStringOptions const & options)
-    {
-	seqan::CharString result;
-
-	if (options.toLowercase)
-	{
-	    for (unsigned i = 0; i < length(text); ++i)
-	    {
-		if (i % options.period == 0u)
-		    appendValue(result, tolower(text[i]));
-		else
-		    appendValue(result, text[i]);
-	    }
-	}
-	else
-	{
-	    for (unsigned i = 0; i < length(text); ++i)
-	    {
-		if (i % options.period == 0u)
-		    appendValue(result, toupper(text[i]));
-		else
-		    appendValue(result, text[i]);
-	    }
-	}
-
-	return result;
-    }
-
-    int main(int argc, char const ** argv)
-    {
-	// Parse the command line.
-	ModifyStringOptions options;
-	seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-	// If parsing was not successful then exit with code 1 if there were errors.
-	// Otherwise, exit with code 0 (e.g. help was printed).
-	if (res != seqan::ArgumentParser::PARSE_OK)
-	    return res == seqan::ArgumentParser::PARSE_ERROR;
-
-	std::fstream inFile(toCString(options.inputFileName), std::ios::binary | std::ios::in);
-	if (inFile.good())
-	{
-	    std::cerr << "ERROR: Could not open input file " << options.inputFileName << '\n';
-	    return 1;
-	}
-	seqan::CharString text;
-	while (inFile.good())
-	{
-	    char c = inFile.get();
-	    if (inFile.good())
-		appendValue(text, c);
-	}
-	std::cout << modifyString(text, options);
-
-	return 0;
-    }
-
-
diff --git a/demos/tutorial/parsing_command_line_arguments/assignment6_solution.cpp b/demos/tutorial/parsing_command_line_arguments/assignment6_solution.cpp
deleted file mode 100644
index b0b26ad..0000000
--- a/demos/tutorial/parsing_command_line_arguments/assignment6_solution.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-    #include <iostream>
-
-    #include <seqan/arg_parse.h>
-
-    struct ModifyStringOptions
-    {   
-	unsigned period;
-	unsigned rangeBegin, rangeEnd;
-	bool toUppercase;
-	bool toLowercase;
-	seqan::CharString text;
-
-	ModifyStringOptions() :
-	    period(1), rangeBegin(0), rangeEnd(0),toUppercase(false),
-	    toLowercase(false)
-	{}  
-    };  
-
-    seqan::ArgumentParser::ParseResult
-    parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
-    {   
-	// Setup ArgumentParser.
-	seqan::ArgumentParser parser("modify_string");
-
-	// We require one argument.
-	addArgument(parser, seqan::ArgParseArgument(
-	    seqan::ArgParseArgument::STRING, "TEXT"));
-
-	// Define Options
-	addOption(parser, seqan::ArgParseOption(
-	    "i", "period", "Period to use for the index.",
-	    seqan::ArgParseArgument::INTEGER, "INT"));
-	setMinValue(parser, "period", "1");
-	setDefaultValue(parser, "period", "1");
-	addOption(parser, seqan::ArgParseOption(
-	    "U", "uppercase", "Select to-uppercase as operation."));
-	addOption(parser, seqan::ArgParseOption(
-	    "L", "lowercase", "Select to-lowercase as operation."));
-
-	// Parse command line.
-	seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-	// Only extract  options if the program will continue after parseCommandLine()
-	if (res != seqan::ArgumentParser::PARSE_OK)
-	    return res;
-
-	// Extract option values.
-	getOptionValue(options.period, parser, "period");
-	options.toUppercase = isSet(parser, "uppercase");
-	options.toLowercase = isSet(parser, "lowercase");
-	seqan::getArgumentValue(options.text, parser, 0);
-
-	// If both to-uppercase and to-lowercase were selected then this is an error.
-	if (options.toUppercase && options.toLowercase)
-	{
-	    std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
-	    return seqan::ArgumentParser::PARSE_ERROR;
-	}
-
-	return seqan::ArgumentParser::PARSE_OK;
-    }
-
-    seqan::CharString modifyString(seqan::CharString const & text,
-				   ModifyStringOptions const & options)
-    {
-	seqan::CharString result;
-
-	if (options.toLowercase)
-	{
-	    for (unsigned i = 0; i < length(text); ++i)
-	    {
-		if (i % options.period == 0u)
-		    appendValue(result, tolower(text[i]));
-		else
-		    appendValue(result, text[i]);
-	    }
-	}
-	else
-	{
-	    for (unsigned i = 0; i < length(text); ++i)
-	    {
-		if (i % options.period == 0u)
-		    appendValue(result, toupper(text[i]));
-		else
-		    appendValue(result, text[i]);
-	    }
-	}
-
-	return result;
-    }
-
-    int main(int argc, char const ** argv)
-    {
-	// Parse the command line.
-	ModifyStringOptions options;
-	seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-	// If parsing was not successful then exit with code 1 if there were errors.
-	// Otherwise, exit with code 0 (e.g. help was printed).
-	if (res != seqan::ArgumentParser::PARSE_OK)
-	    return res == seqan::ArgumentParser::PARSE_ERROR;
-
-	std::cout << modifyString(options.text, options) << '\n';
-
-	return 0;
-    }
diff --git a/demos/tutorial/parsing_command_line_arguments/example1.cpp b/demos/tutorial/parsing_command_line_arguments/example1.cpp
deleted file mode 100644
index 6db6dcf..0000000
--- a/demos/tutorial/parsing_command_line_arguments/example1.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-int main(int argc, char const ** argv)
-{
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-
-    addArgument(parser, seqan::ArgParseArgument(
-        seqan::ArgParseArgument::STRING, "TEXT"));
-
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-
-    // Extract option values and print them.
-    unsigned period = 0;
-    getOptionValue(period, parser, "period");
-    bool toUppercase = isSet(parser, "uppercase");
-    seqan::CharString text;
-    getArgumentValue(text, parser, 0);
-
-    std::cout << "period   \t" << period << '\n'
-              << "uppercase\t" << toUppercase << '\n'
-              << "text     \t" << text << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp b/demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
deleted file mode 100644
index a0e520c..0000000
--- a/demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-int main(int argc, char const ** argv)
-{
-    //![object]
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-    //![object]
-
-    //![argument]
-    addArgument(parser, seqan::ArgParseArgument(
-        seqan::ArgParseArgument::STRING, "TEXT"));
-    //![argument]
-
-    //![option]
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-    //![option]
-
-    //![parse]
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-    //![parse]
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    //![check]
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-    //![check]
-
-    //![print]
-    // Extract option values and print them.
-    unsigned period = 0;
-    getOptionValue(period, parser, "period");
-    bool toUppercase = isSet(parser, "uppercase");
-    seqan::CharString text;
-    getArgumentValue(text, parser, 0);
-
-    std::cout << "period   \t" << period << '\n'
-              << "uppercase\t" << toUppercase << '\n'
-              << "text     \t" << text << '\n';
-    //![print]
-
-    return 0;
-}
-
diff --git a/demos/tutorial/parsing_command_line_arguments/example_with_modifyString.cpp b/demos/tutorial/parsing_command_line_arguments/example_with_modifyString.cpp
deleted file mode 100644
index abc706f..0000000
--- a/demos/tutorial/parsing_command_line_arguments/example_with_modifyString.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-struct ModifyStringOptions
-{
-    unsigned period;
-    bool toUppercase;
-    bool toLowercase;
-    seqan::CharString text;
-
-    ModifyStringOptions() :
-    period(1), toUppercase(false), toLowercase(false)
-    {}
-};
-
-seqan::ArgumentParser::ParseResult
-parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
-{
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-
-    // We require one argument.
-    addArgument(parser, seqan::ArgParseArgument(
-        seqan::ArgParseArgument::STRING, "TEXT"));
-
-    // Define Options
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    setDefaultValue(parser, "period", "1");
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-    addOption(parser, seqan::ArgParseOption(
-        "L", "lowercase", "Select to-lowercase as operation."));
-
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-    // Only extract  options if the program will continue after parseCommandLine()
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res;
-
-    // Extract option values.    
-    getOptionValue(options.period, parser, "period");
-    options.toUppercase = isSet(parser, "uppercase");
-    options.toLowercase = isSet(parser, "lowercase");
-    getArgumentValue(options.text, parser, 0);
-
-    // If both to-uppercase and to-lowercase were selected then this is an error.
-    if (options.toUppercase && options.toLowercase)
-    {
-        std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
-        return seqan::ArgumentParser::PARSE_ERROR;
-    }
-
-    return seqan::ArgumentParser::PARSE_OK;
-}
-
-seqan::CharString modifyString(seqan::CharString const & text,
-                               ModifyStringOptions const & options)
-{
-    seqan::CharString result;
-
-    if (options.toLowercase)
-    {
-        for (unsigned i = 0; i < length(text); ++i)
-        {
-            if (i % options.period == 0u)
-                appendValue(result, tolower(text[i]));
-            else
-                appendValue(result, text[i]);
-        }
-    }
-    else
-    {
-        for (unsigned i = 0; i < length(text); ++i)
-        {
-            if (i % options.period == 0u)
-                appendValue(result, toupper(text[i]));
-            else
-                appendValue(result, text[i]);
-        }
-    }
-
-    return result;
-}
-
-int main(int argc, char const ** argv)
-{
-    // Parse the command line.
-    ModifyStringOptions options;
-    seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-
-    std::cout << modifyString(options.text, options) << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/parsing_command_line_arguments/example_with_own_function.cpp b/demos/tutorial/parsing_command_line_arguments/example_with_own_function.cpp
deleted file mode 100644
index 1248a29..0000000
--- a/demos/tutorial/parsing_command_line_arguments/example_with_own_function.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-struct ModifyStringOptions
-{
-    unsigned period;
-    bool toUppercase;
-    bool toLowercase;
-    seqan::CharString text;
-
-    ModifyStringOptions() :
-    period(1), toUppercase(false), toLowercase(false)
-    {}
-};
-
-seqan::ArgumentParser::ParseResult
-parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
-{
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-
-    // We require one argument.
-    addArgument(parser, seqan::ArgParseArgument(
-        seqan::ArgParseArgument::STRING, "TEXT"));
-
-    // Define Options
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    setDefaultValue(parser, "period", "1");
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-    addOption(parser, seqan::ArgParseOption(
-        "L", "lowercase", "Select to-lowercase as operation."));
-
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-    // Only extract  options if the program will continue after parseCommandLine()
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res;
-
-    // Extract option values.    
-    getOptionValue(options.period, parser, "period");
-    options.toUppercase = isSet(parser, "uppercase");
-    options.toLowercase = isSet(parser, "lowercase");
-    getArgumentValue(options.text, parser, 0);
-
-    // If both to-uppercase and to-lowercase were selected then this is an error.
-    if (options.toUppercase && options.toLowercase)
-    {
-        std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
-        return seqan::ArgumentParser::PARSE_ERROR;
-    }
-
-    return seqan::ArgumentParser::PARSE_OK;
-}
-
-
-int main(int argc, char const ** argv)
-{
-    // Parse the command line.
-    ModifyStringOptions options;
-    seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-
-    std::cout << "period   \t" << options.period << '\n'
-              << "uppercase\t" << options.toUppercase << '\n'
-              << "lowercase\t" << options.toLowercase << '\n'
-              << "text     \t" << options.text << '\n';
-
-    return 0;
-}
-
diff --git a/demos/tutorial/parsing_command_line_arguments/example_with_struct.cpp b/demos/tutorial/parsing_command_line_arguments/example_with_struct.cpp
deleted file mode 100644
index e16b448..0000000
--- a/demos/tutorial/parsing_command_line_arguments/example_with_struct.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <iostream>
-
-#include <seqan/arg_parse.h>
-
-struct ModifyStringOptions
-{
-    unsigned period;
-    bool toUppercase;
-    bool toLowercase;
-    seqan::CharString text;
-
-    ModifyStringOptions() :
-    period(1), toUppercase(false), toLowercase(false)
-    {}
-};
-
-int main(int argc, char const ** argv)
-{
-    // Setup ArgumentParser.
-    seqan::ArgumentParser parser("modify_string");
-
-    addArgument(parser, seqan::ArgParseArgument(
-        seqan::ArgParseArgument::STRING, "TEXT"));
-
-    addOption(parser, seqan::ArgParseOption(
-        "i", "period", "Period to use for the index.",
-        seqan::ArgParseArgument::INTEGER, "INT"));
-    setDefaultValue(parser, "period", "1");
-    addOption(parser, seqan::ArgParseOption(
-        "U", "uppercase", "Select to-uppercase as operation."));
-    addOption(parser, seqan::ArgParseOption(
-        "L", "lowercase", "Select to-lowercase as operation."));
-
-    // Parse command line.
-    seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != seqan::ArgumentParser::PARSE_OK)
-        return res == seqan::ArgumentParser::PARSE_ERROR;
-
-    // Extract option values and print them.
-    ModifyStringOptions options;    
-    getOptionValue(options.period, parser, "period");
-    options.toUppercase = isSet(parser, "uppercase");
-    options.toLowercase = isSet(parser, "lowercase");
-    getArgumentValue(options.text, parser, 0);
-
-    std::cout << "period   \t" << options.period << '\n'
-              << "uppercase\t" << options.toUppercase << '\n'
-              << "lowercase\t" << options.toLowercase << '\n'
-              << "text     \t" << options.text << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/parsing_command_line_arguments/final_solution.cpp b/demos/tutorial/parsing_command_line_arguments/final_solution.cpp
deleted file mode 100644
index 3140b2c..0000000
--- a/demos/tutorial/parsing_command_line_arguments/final_solution.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-      #include <iostream>
-
-      #include <seqan/arg_parse.h>
-
-      struct ModifyStringOptions
-      {
-          unsigned period;
-          bool toUppercase;
-          bool toLowercase;
-          seqan::CharString text;
-
-          ModifyStringOptions() :
-              period(1), toUppercase(false), toLowercase(false)
-          {}
-      };
-
-      seqan::ArgumentParser::ParseResult
-      parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
-      {
-          // Setup ArgumentParser.
-          seqan::ArgumentParser parser("modify_string");
-          // Set short description, version, and date.
-          setShortDescription(parser, "String Modifier");
-          setVersion(parser, "1.0");
-          setDate(parser, "July 2012");
-
-          // Define usage line and long description.
-          addUsageLine(parser,
-                       "[\\fIOPTIONS\\fP] \"\\fITEXT\\fP\"");
-          addDescription(parser,
-                         "This program allows simple character modifications to "
-                         "each i-th character.");
-
-          // We require one argument.
-          addArgument(parser, seqan::ArgParseArgument(
-              seqan::ArgParseArgument::STRING, "TEXT"));
-
-          // Define Options -- Section Modification Options
-          addSection(parser, "Modification Options");
-          addOption(parser, seqan::ArgParseOption(
-              "i", "period", "Period to use for the index.",
-              seqan::ArgParseArgument::INTEGER, "INT"));
-          setDefaultValue(parser, "period", "1");
-          addOption(parser, seqan::ArgParseOption(
-              "U", "uppercase", "Select to-uppercase as operation."));
-          addOption(parser, seqan::ArgParseOption(
-              "L", "lowercase", "Select to-lowercase as operation."));
-
-          // Add Examples Section.
-          addTextSection(parser, "Examples");
-          addListItem(parser,
-                      "\\fBmodify_string\\fP \\fB-U\\fP \\fIveryverylongword\\fP",
-                      "Print upper case version of \"veryverylongword\"");
-          addListItem(parser,
-                      "\\fBmodify_string\\fP \\fB-L\\fP \\fB-i\\fP \\fI3\\fP "
-                      "\\fIveryverylongword\\fP",
-                      "Print \"veryverylongword\" with every third character "
-                      "converted to upper case.");
-
-          // Parse command line.
-          seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
-
-          // Only extract  options if the program will continue after parseCommandLine()
-          if (res != seqan::ArgumentParser::PARSE_OK)
-              return res;
-
-          // Extract option values.
-          getOptionValue(options.period, parser, "period");
-          options.toUppercase = isSet(parser, "uppercase");
-          options.toLowercase = isSet(parser, "lowercase");
-          seqan::getArgumentValue(options.text, parser, 0);
-
-          // If both to-uppercase and to-lowercase were selected then this is an error.
-          if (options.toUppercase && options.toLowercase)
-          {
-              std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
-              return seqan::ArgumentParser::PARSE_ERROR;
-          }
-
-          return seqan::ArgumentParser::PARSE_OK;
-      }
-
-      seqan::CharString modifyString(seqan::CharString const & text,
-                                     ModifyStringOptions const & options)
-      {
-          seqan::CharString result;
-
-          if (options.toLowercase)
-          {
-              for (unsigned i = 0; i < length(text); ++i)
-                  appendValue(result, tolower(text[i]));
-          }
-          else
-          {
-              for (unsigned i = 0; i < length(text); ++i)
-                  appendValue(result, toupper(text[i]));
-          }
-
-          return result;
-      }
-
-      int main(int argc, char const ** argv)
-      {
-          // Parse the command line.
-          ModifyStringOptions options;
-          seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-          // If parsing was not successful then exit with code 1 if there were errors.
-          // Otherwise, exit with code 0 (e.g. help was printed).
-          if (res != seqan::ArgumentParser::PARSE_OK)
-              return res == seqan::ArgumentParser::PARSE_ERROR;
-
-          std::cout << modifyString(options.text, options) << '\n';
-
-          return 0;
-      }
-
diff --git a/demos/tutorial/pattern_matching/assignment1.cpp.stdout b/demos/tutorial/pattern_matching/assignment1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/pattern_matching/assignment1_solution.cpp.stdout b/demos/tutorial/pattern_matching/assignment1_solution.cpp.stdout
deleted file mode 100644
index 53a83a0..0000000
--- a/demos/tutorial/pattern_matching/assignment1_solution.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-[2,4)	0	mo
-[7,11)	1	send
-[12,14)	0	mo
-[12,16)	2	more
-[17,19)	0	mo
diff --git a/demos/tutorial/pattern_matching/assignment2.cpp.stdout b/demos/tutorial/pattern_matching/assignment2.cpp.stdout
deleted file mode 100644
index 564a2c8..0000000
--- a/demos/tutorial/pattern_matching/assignment2.cpp.stdout
+++ /dev/null
@@ -1,12 +0,0 @@
-[2,4)	mo
-[2,5)	mon
-[2,6)	mon,
-[12,14)	mo
-[12,15)	mor
-[12,16)	more
-[12,17)	more 
-[12,18)	more m
-[17,19)	mo
-[17,20)	mon
-[17,21)	mone
-[17,22)	money
diff --git a/demos/tutorial/pattern_matching/assignment2_solution.cpp.stdout b/demos/tutorial/pattern_matching/assignment2_solution.cpp.stdout
deleted file mode 100644
index 564a2c8..0000000
--- a/demos/tutorial/pattern_matching/assignment2_solution.cpp.stdout
+++ /dev/null
@@ -1,12 +0,0 @@
-[2,4)	mo
-[2,5)	mon
-[2,6)	mon,
-[12,14)	mo
-[12,15)	mor
-[12,16)	more
-[12,17)	more 
-[12,18)	more m
-[17,19)	mo
-[17,20)	mon
-[17,21)	mone
-[17,22)	money
diff --git a/demos/tutorial/pattern_matching/assignment3.cpp.stdout b/demos/tutorial/pattern_matching/assignment3.cpp.stdout
deleted file mode 100644
index f5dbb82..0000000
--- a/demos/tutorial/pattern_matching/assignment3.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-[0,4)	tobe
-[9,13)	tobe
diff --git a/demos/tutorial/pattern_matching/assignment3_solution.cpp.stdout b/demos/tutorial/pattern_matching/assignment3_solution.cpp.stdout
deleted file mode 100644
index f5dbb82..0000000
--- a/demos/tutorial/pattern_matching/assignment3_solution.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-[0,4)	tobe
-[9,13)	tobe
diff --git a/demos/tutorial/pattern_matching/find_approx.cpp.stdout b/demos/tutorial/pattern_matching/find_approx.cpp.stdout
deleted file mode 100644
index 3cf1cc3..0000000
--- a/demos/tutorial/pattern_matching/find_approx.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-[2,4)	mo
-[12,14)	mo
-[12,15)	mor
-[12,16)	more
-[12,17)	more 
-[12,18)	more m
-[17,19)	mo
-[17,21)	mone
diff --git a/demos/tutorial/pattern_matching/find_exact.cpp.stdout b/demos/tutorial/pattern_matching/find_exact.cpp.stdout
deleted file mode 100644
index 69aa5a2..0000000
--- a/demos/tutorial/pattern_matching/find_exact.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-[2,4)	mo
-[12,14)	mo
-[17,19)	mo
diff --git a/demos/tutorial/pattern_matching/find_index.cpp.stdout b/demos/tutorial/pattern_matching/find_index.cpp.stdout
deleted file mode 100644
index b9bdfbc..0000000
--- a/demos/tutorial/pattern_matching/find_index.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-[11,13)	be
-[2,4)	be
-[11,13)	be
-[2,4)	be
diff --git a/demos/tutorial/pattern_matching/find_index_multiple.cpp.stdout b/demos/tutorial/pattern_matching/find_index_multiple.cpp.stdout
deleted file mode 100644
index 1e0203e..0000000
--- a/demos/tutorial/pattern_matching/find_index_multiple.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-[< 0 , 11 >,< 0 , 13 >)	be
-[< 1 , 3 >,< 1 , 5 >)	be
-[< 2 , 0 >,< 2 , 2 >)	be
-[< 0 , 2 >,< 0 , 4 >)	be
diff --git a/demos/tutorial/q_gram_index/index_assignment5.cpp.stdout b/demos/tutorial/q_gram_index/index_assignment5.cpp.stdout
deleted file mode 100644
index 2f1b638..0000000
--- a/demos/tutorial/q_gram_index/index_assignment5.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-1
-4
diff --git a/demos/tutorial/q_gram_index/index_assignment6.cpp.stdout b/demos/tutorial/q_gram_index/index_assignment6.cpp.stdout
deleted file mode 100644
index b05395f..0000000
--- a/demos/tutorial/q_gram_index/index_assignment6.cpp.stdout
+++ /dev/null
@@ -1,20 +0,0 @@
->Seq0
-TCATTTTCTCGATGAAAGCGTTGACCCCACATATCGTTAGTACTCTTGTACCCT
->Seq1
-TGATTGTGTAGAAACCGAACTACGGTACCTCCTGTTGGTAGTCACGATAGATTATAAAAGTATGTTCCCACCCTATCGACGAGACTGGCA
->Seq2
-CCTAGGTGTTTGCGGTGTTGGTACGTGCG
-
-Length of the CountsDir fibre: 1025
-
-Common 5-mers for Seq_i, Seq_j
-50	4	0
-0	86	5
-0	0	25
-
-Length of the CountsDir fibre: 513
-
-Common 5-mers for Seq_i, Seq_j
-50	4	0
-0	86	5
-0	0	25
diff --git a/demos/tutorial/q_gram_index/index_qgram.cpp.stdout b/demos/tutorial/q_gram_index/index_qgram.cpp.stdout
deleted file mode 100644
index f8f9fdf..0000000
--- a/demos/tutorial/q_gram_index/index_qgram.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-0
-8
diff --git a/demos/tutorial/q_gram_index/index_qgram_hash.cpp.stdout b/demos/tutorial/q_gram_index/index_qgram_hash.cpp.stdout
deleted file mode 100644
index 8070d39..0000000
--- a/demos/tutorial/q_gram_index/index_qgram_hash.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-0	0	1	4	17	4	18	11	47	63	62	56	0	0	1	4	17	4	18	11	47	63	62	56	
\ No newline at end of file
diff --git a/demos/tutorial/random/CMakeLists.txt b/demos/tutorial/random/CMakeLists.txt
new file mode 100644
index 0000000..99369be
--- /dev/null
+++ b/demos/tutorial/random/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_random)
+
+seqan_setup_apps(demos_tutorials_random)
+seqan_add_all_executables(demos_tutorials_random tutorial_)
diff --git a/demos/tutorial/random/random_examples.cpp b/demos/tutorial/random/random_examples.cpp
new file mode 100644
index 0000000..723b541
--- /dev/null
+++ b/demos/tutorial/random/random_examples.cpp
@@ -0,0 +1,55 @@
+//![header]
+#include <iostream>
+
+#include <seqan/basic.h>
+#include <seqan/stream.h>
+#include <seqan/random.h>
+
+using namespace seqan;
+
+const int SEED = 42;
+
+int main()
+{
+//![header]
+//![random-number-generation-raw]
+    Rng<MersenneTwister> rng(SEED);
+    std::cout << "pickRandomNumber(rng) == " << pickRandomNumber(rng) << std::endl;
+//![random-number-generation-raw]
+
+//![random-number-generation-metafunction-value]
+    typedef Value<Rng<MersenneTwister> >::Type TMTValue;
+    TMTValue value = pickRandomNumber(rng);
+//![random-number-generation-metafunction-value]
+
+//![ignore-variable-value]
+    // This fragment is not included from the tutorial.
+    (void) value;  // Suppress unused variable warning.
+//![ignore-variable-value]
+
+//![random-number-generation-pdf]
+    Pdf<Uniform<double> > uniformDouble(0, 1);
+    std::cout << "pickRandomNumber(rng, uniformDouble) == " << pickRandomNumber(rng, uniformDouble) << std::endl;
+    Pdf<Uniform<int> > uniformInt(0, 42);
+    std::cout << "pickRandomNumber(rng, uniformInt) == " << pickRandomNumber(rng, uniformInt) << std::endl;
+    Pdf<Normal> normal(0, 1);
+    std::cout << "pickRandomNumber(rng, normal) == " << pickRandomNumber(rng, normal) << std::endl;
+    Pdf<LogNormal> logNormal(0, 1);
+    std::cout << "pickRandomNumber(rng, logNormal) == " << pickRandomNumber(rng, logNormal) << std::endl;
+//![random-number-generation-pdf]
+
+//![random-number-generation-log-normal]
+    Pdf<LogNormal> logNormal2(0, 1, MuSigma());
+    std::cout << "pickRandomNumber(rng, logNormal2) == " << pickRandomNumber(rng, logNormal2) << std::endl;
+    Pdf<LogNormal> logNormal3(0.1, 1, MeanStdDev());
+    std::cout << "pickRandomNumber(rng, logNormal3) == " << pickRandomNumber(rng, logNormal3) << std::endl;
+//![random-number-generation-log-normal]
+
+//![shuffling]
+    CharString container = "Hello World!";
+    shuffle(container, rng);
+    std::cout << "shuffle(\"Hello World!\") == " << container << std::endl;
+
+    return 0;
+}
+//![shuffling]
diff --git a/demos/tutorial/randomness/examples.cpp b/demos/tutorial/randomness/examples.cpp
deleted file mode 100644
index 900a19f..0000000
--- a/demos/tutorial/randomness/examples.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//![header]
-#include <iostream>
-
-#include <seqan/basic.h>
-#include <seqan/stream.h>
-#include <seqan/random.h>
-
-using namespace seqan;
-
-const int SEED = 42;
-
-int main()
-{
-//![header]
-//![random-number-generation-raw]
-    Rng<MersenneTwister> rng(SEED);
-    std::cout << "pickRandomNumber(rng) == " << pickRandomNumber(rng) << std::endl;
-//![random-number-generation-raw]
-
-//![random-number-generation-metafunction-value]
-    typedef Value<Rng<MersenneTwister> >::Type TMTValue;
-    TMTValue value = pickRandomNumber(rng);
-//![random-number-generation-metafunction-value]
-
-//![ignore-variable-value]
-    // This fragment is not included from the tutorial.
-    ignoreUnusedVariableWarning(value);  // Suppress unused variable warning.
-//![ignore-variable-value]
-
-//![random-number-generation-pdf]
-    Pdf<Uniform<double> > uniformDouble(0, 1);
-    std::cout << "pickRandomNumber(rng, uniformDouble) == " << pickRandomNumber(rng, uniformDouble) << std::endl;
-    Pdf<Uniform<int> > uniformInt(0, 42);
-    std::cout << "pickRandomNumber(rng, uniformInt) == " << pickRandomNumber(rng, uniformInt) << std::endl;
-    Pdf<Normal> normal(0, 1);
-    std::cout << "pickRandomNumber(rng, normal) == " << pickRandomNumber(rng, normal) << std::endl;
-    Pdf<LogNormal> logNormal(0, 1);
-    std::cout << "pickRandomNumber(rng, logNormal) == " << pickRandomNumber(rng, logNormal) << std::endl;
-//![random-number-generation-pdf]
-
-//![random-number-generation-log-normal]
-    Pdf<LogNormal> logNormal2(0, 1, MuSigma());
-    std::cout << "pickRandomNumber(rng, logNormal2) == " << pickRandomNumber(rng, logNormal2) << std::endl;
-    Pdf<LogNormal> logNormal3(0.1, 1, MeanStdDev());
-    std::cout << "pickRandomNumber(rng, logNormal3) == " << pickRandomNumber(rng, logNormal3) << std::endl;
-//![random-number-generation-log-normal]
-
-//![shuffling]
-    CharString container = "Hello World!";
-    shuffle(container, rng);
-    std::cout << "shuffle(\"Hello World!\") == " << container << std::endl;
-
-    return 0;
-}
-//![shuffling]
diff --git a/demos/tutorial/randomness/examples.cpp.stdout b/demos/tutorial/randomness/examples.cpp.stdout
deleted file mode 100644
index 03a0825..0000000
--- a/demos/tutorial/randomness/examples.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-pickRandomNumber(rng) == 1608637542
-pickRandomNumber(rng, uniformDouble) == 0.950714
-pickRandomNumber(rng, uniformInt) == 27
-pickRandomNumber(rng, normal) == 0.419823
-pickRandomNumber(rng, logNormal) == 1.22431
-pickRandomNumber(rng, logNormal2) == 2.78004
-pickRandomNumber(rng, logNormal3) == 0.00155248
-shuffle("Hello World!") ==  o!reWlloHld
diff --git a/demos/tutorial/read_mapping/CMakeLists.txt b/demos/tutorial/read_mapping/CMakeLists.txt
new file mode 100644
index 0000000..14cf2d5
--- /dev/null
+++ b/demos/tutorial/read_mapping/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_read_mapping)
+
+seqan_setup_apps(demos_tutorials_read_mapping)
+seqan_add_all_executables(demos_tutorials_read_mapping tutorial_)
diff --git a/demos/unassigned_or_unused/minimapper.cpp b/demos/tutorial/read_mapping/minimapper.cpp
similarity index 100%
rename from demos/unassigned_or_unused/minimapper.cpp
rename to demos/tutorial/read_mapping/minimapper.cpp
diff --git a/demos/tutorial/read_mapping/nc_001454.fasta b/demos/tutorial/read_mapping/nc_001454.fasta
new file mode 100644
index 0000000..ad0d239
--- /dev/null
+++ b/demos/tutorial/read_mapping/nc_001454.fasta
@@ -0,0 +1,491 @@
+>gi|9626553|ref|NC_001454.1| Human adenovirus F, complete genome
+CATCATCAATAATATACCTTAAAACTGGAAACGAGCCAATATGATAATGAGGGAGGAGGGACTAGGGGTG
+GTGTAAGGTGACGTAGAGGCGGGCGGGGTGGGAAAGGGTGGAGGCGGATGACGTGTGGGGTCGGAGGACG
+GGCGCGGTGCGGCGGAAGTGACGGAAAATCTGGTGTATTGGGCGGGTTTTTGTAACTTTTGGCCATTTTG
+GCGCGAAAACTGAGTAATGAGGACGTGGGACGAACTTTGGACTTTTGTGTTTATGGAGGAAAAACTGCTG
+ATTATTACTGAACTTTGGCCCATGACGAACCGGTTTTTCTACGTGGCAGTGCCACGAGACGGCTCAAAGT
+CCTAATTTTTTATTGTGTGCTCAGCCCGTTTGAGGGTATTTAAACACAGCCAGAACATCAAGAGGCCACT
+CTTGAGTGCGAGCGAGTAGAGTTTTCTCCTCCATTGCTGTTGGCGCTTTTGACATAGCCACCAAGATGAG
+AATGCTGCCGGATTTTTTTACCGGGAACTGGGATGACATGTTCCAGGGGTTGCTGGAGACTGAATATGTG
+TTTGATTTCCCTGAACCTTCTGAGGCTTCTGAAGAAATGTCGCTTCATGATCTTTTTGATGTGGAGGTGG
+ATGGTTTCGAAGAGGACGCCAACCAGGAAGCGGTTGATGGTATGTTTCCCGAGAGGTTGCTGTCCGAGGC
+TGAGAGCGCTGCAGAGAGCGGTTCGGGTGATTCTGGGGTTGGCGAAGAGTTGTTGCCGGTTGATCTGGAT
+TTGAAATGCTATGAAGACGGTTTGCCTCCTAGCGATCCTGAAACTGATGAGGCTACAGAGGCGGAAGAAG
+AGGCGGCTATGCCGACTTATGTGAATGAAAATGAAAATGAGCTGGTGCTGGACTGTCCAGAGAACCCTGG
+GCGAGGTTGTCGGGCTTGTGATTTCCATCGGGGCACTAGTGGCAATCCTGAAGCTATGTGTGCTTTGTGT
+TATATGCGTTTAACTGGACACTGTATCTACAGTAAGTAAAAAAGTTTTTATTTGTTTGGTGGTGTTGGTT
+AATATGAACAAGAGTTAACGACTTTTTGTTATTTTAGGTCCAATTTCAGATGCGGAAGGGGAGTCTGAGT
+CGGGGTCGCCTGAGGACACTGATTTTCCCCACCCTTTAACCGCCACGCCGCCACATGGAATTGTGAGAAC
+CATCCCGTGCAGAGTTTCTTGTAGACGACGCCCAGCTGTTGAGTGCATAGAAGATTTACTTGAGGAAGAT
+CCAACAGATGAACCTTTGAACCTGTCCTTAAAGCGCCCCAAGTGCTCCTGAGATCATAGTAATAAAGTTA
+TTGACCCTTACCCTGTGTTTATTTCTTGGGCGTGTTTGTGGGTATATAAGCAGGTAGAATGGTTTTAGTG
+TTAGTTTATTCTGATGGAGTTGTGGAGTGAGTTACAAAGTTATCAGAACCTCCGACGCTTGCTGGAGTTG
+GCTTCTGCCAGAACTTCCAGCTGTTGGAGAATCCTTTTTGGCTCAACTTTAACTAATGTAATCTATAGAG
+CTAAGGAGGAGTACTCTTCGCGGTTTGCTGACCTTTTGTCGCATAACCCTGGAATTTTTGCTTCTTTGAA
+TTTGGGGCATCACTCATTTTTTCAAGAAATTGTGATCAGAAATTTAGATTTTTCTTCTCCTGGCCGTACG
+GTTTCTGGGCTTGCTTTTATTTGTTTTATATTGGATCAATGGAGCGCCCAAACTCATCTGTCGCAGGGTT
+ATACTCTGGATTACATGGCAATGGCTCTGTGGAGAACCTTGCTACGGAGGAAGAGGGTCTTAGGTTGCTT
+GCCGGCGCAGCGTCCGCACGGTTTGGATCCAGTGCAGGAAGAGGAGGAGGAGGAGGAGAACCTGAGGGCC
+GGCCTGGACCCTTCAACGGAATTGTAACTGAGCCTGATCCCGAAGAGGGTACTAGCAGTGGGCAAAGGGG
+GGGCATTAATGGGCAAAGGGGGACAAAGAGAAAGATGGAAAACGAGGGGGAGGACTTTTTAAAGGAGTTA
+ACCTTGAGTTTAATGTCTCGTCGCCATCATGAGTCTGTTTGGTGGGCTGATTTGGAAGATGAGTTTAAAA
+ACGGTGAAATGAATTTGTTATACAAGTATACATTTGAACAGCTGAAGACACATTGGCTGGAGGCTTGGGA
+GGATTTTGAGTTAGCTCTGAACACTTTTGCCAAAGTGGCTCTTCGCCCGGACACTATTTATACCATTAAG
+AAGACTGTTAATATACGTAAATGTGCCTATGTGCTGGGGAATGGAGCTGTGGTGCGGTTTCAAACATGTG
+ACCGTGTAGCCTTTAACTGCGCAATGCAGAGCTTGGGCCCTGGGCTTATTGGCATGAGTGGGGTAACTTT
+TATGAATGTGAGATTTGTAGTGGAGGGATTTAATGGCACAGTGTTTGCTTCTACCACTCAATTAACCTTG
+CATGGTGTGTTTTTTCAAAATTGCAGCGGTATCTGCGTGGATTCCTGGGGTAGGGTGTCTGCCAGAGGGT
+GTACGTTTGTTGCATGTTGGAAAGGGGTGGTGGGGCGAAACAAAAGTCAAATGTCTGTAAAGAAGTGTGT
+GTTTGAACGTTGCATTATGGCCATGGTGGTAGAAGGTCAGGCGCGGATTCGCCATAATGCGGGCTCTGAT
+AATGTGTGTTTTTTACTGCTAAAGGGAACTGCCAGTGTAAAGCATAACATGATTTGTGGCGGTGGTCACT
+CTCAGCTGCTAACCTGTGCAGATGGAAACTGTCAGGCTCTGAGAGTGTTTCACGTAGTATCTCATCCCCG
+CCGCCCCTGGCCTGTTTTTGAGCACAACATGCTTATGCGCTGTACTGTGCATTTGGGAGCTCGTCGTGGC
+ATGTTTTCTCCATACCAGAGTAACTTTTGCCACACTAAAGTTTTAATGGAAACTGATGCTTTTTCTCGGG
+TATGGTGGAACGGGGTATTTGATTTAACCATGGAGCTATTTAAAGTGGTGAGGTATGATGAGTCAAAGGT
+TCGTTGTCGCCCCTGTGAGTGTGGAGCTAATCATATTAGGTTATATCCAGCAACTCTGAACGTGACCGAG
+CAGCTGCGTACGGACCACCAGATGATGTCGTGTCTGCGTACTGACTACGAATCCAGCGATGAGGATTAAG
+GGTAAGGGGCGGAGCCTATTACAGGTATAAAGGTTGGGGTAGAGTAAAAAAAAGGGAAGTTACAAAATGA
+GTGGCTTCACGGAAGGAAACGCTGTGAGTTTTGAGGGTGGGGTGTTTAGCCCATATCTGACAACCCGTCT
+TCCCTCTTGGGCAGGAGTGCGTCAGAATGTGGTGGGGTCCAACGTTGATGGTCGTCCTGTCGCCCCTGCC
+AACTCGACAACCCTTACCTACGCCACTATTGGATCGTCGGTGGATACCGCTGCAGCTGCTGCCGCGTCTG
+CTGCTGCCTCTACTGCTCGTGGCATGGCAGCAGATTTTGGACTGTACAATCAACTGGCCGCGTCTCGGTT
+AAGAGAAGAAGATGCCCTGTCCGTGGTGTTGACCCGCTTGGAGGAGCTGTCTCAGCAGTTGCAAGATATG
+TCTGCCAAAATGGCTCTGCTTAACCCTCCCGCTAATACTTCTTAATAAAGACACAATTGGTTGGAAAAGT
+CAAAAGTGTTTATTTATTTCTTTTGCGGTAGGCCCTAGACCACCTGTCGCGGTCGTTTAAAACTTTATGG
+ATGTTTTCCAAGACCCGGTACAGGTGGGCTTGGATGTTCAAATACATAGGCATTAGGCCGTCCCTGGGAT
+GCAGGTAGGACCACTGGAGGGCGTCATGCTCTGGGGTGGTGTTGTAAATAATCCAATCGTAGCAGGGTTT
+TTGAGCATGAAACTGGAAGATGTCCTTAAGGAGGAGGCTAATGGCCAGAGGTAGCCCCTTGGTGAAGGTA
+TTAACAAATCGATTAAGTTGGGAGGGATGCATGCGAGGGGAAATCAGATGCATTTTGGCCTGAATTTTTA
+GGTTGGCAATGTTGCCACCGAGATCACGTCTGGGGTTCATGTTGTGCAGAACCACTAGCACGGTATAGCC
+GGTGCACTTGGGGAATTTGTCATGCAACTTGGAAGGGAAGGCGTGGAAAAACTTGGAAACCCCTTTGTGC
+CCTCCCAAATTTTCCATGCACTCATCCATAATGATGGCGATGGGGCCTTGGGATGCAGCCTTAGCAAAAA
+TGTTATCGGGGTGGGAAACATCGTAGTTTTGCTCCAGGGTAAGCTCGTCATAGGCCATTTTGATGAAGCG
+TGGTAAAAGGGTGCCCGACTGGGGTATAATGGTCCCTTCTGGACCTGGGGCGTAGTTACCCTCGCAGATT
+TGCATCTCCCAAGCCTTAATTTCTGAGGGGGGGATCATGTCCACCTGAGGGGCAATAAAAAAAACGGTTT
+CGGGTGGAGGGTTAATAAGCTGGGTGGAAAGCAAGTTTCGCAAAAGCTGGGATTTGCCGCAGCCAGTGGG
+ACCGTAAATGACCCCAATGACAGGCTGTAGTTGATAGTTTAAGGAGATGCAACTGCCATCTTCCCGCAAA
+AGCGGAGTGACTTCGTTCATCATGCTTCTGACATGCTGGTTTTCTTTAACCAAGTCTTGCAAGAGACGCT
+CACCGCCCAGGGAAAGTAGCTCTTCCAAGCTGCGGAAATGCTTTAGTGGTTTTAGGCCATCGGCCATGGT
+CATTTTTTCAAGGGATTGACGCAGCAAATAGAGCCGATCCCAGAGCTCGGTAATATGGTCTATGGCATCT
+CGATCCAACAAACTTCTTGGTTGCGGGGGTTGGGACGGCTTTGGCTGTACGGTACCAGTCGGTGGGCGTC
+CAGTGGAGCAAGGGTAATGTCTTTCCAGGGTCGCAGGGTTCGCGTTAGGTTGGTTTCGGTGACGGTAAAG
+GGGCGCGCTCCGGGTTGGGCGCTTGCCAGGGTTCTCTTCAGGCTCATCCTGCTGGTGTGAAAACGCGCGT
+CTTCGCCCTGAAAGTCGGCCAAGTAGCATTTTAACATGAGATCATAGTTGAGGGTTTCGGCAGCGTGTCC
+TTTGGCGCGAAGCTTGCCCTTGGAAATTTGCTGACAGCTGGGACAGCGGAGGCATTTTAGGGCGTAGAGT
+TTGGGAGCCAGGAAGACGGACTCTGGTGAATAAGCGTCGGCGCCACACTGTGCACACACGGTTTCGCACT
+CCACTAACCAGGCGAGCTCAGGGTGTTTTGGGTCAAAAACCAGATTGCCTCCGTGTTTTTTGATGCGTTT
+CTTACCTCGTGTTTCCATGAGGCGGTATCCGGCTTCGGTGACAAACAAGCTGTCTGTGTCTCCGTAAACT
+GATTTGAGGGTACGCTGTTCCAACGGTGTGCCTCTGTCCTCTGCGTACAAGATCTCGGACCATTCTGAGA
+CAAAAGCCCGGGTCCAGGCTAAAACAAAGGAGGCGATTTGGGAGGGATAACGGTTGTTTTCCACCAGGGG
+GTCGACCTTTTCTAGGGTGTGAAGGCAAAGGTCATCTTCTTCTGCATCCATAAAGGTAATTGGTTTGTAA
+GTGTAGGTCACGTGGTCATTGGGCTTGTGCGTGGGTGTATAAAAGGGGGCGTGTCCGGGCTCTTCATCAC
+TTTCTTCCGCATCGCTGTGGACGACAGCCAGCTGTTCGGGTGAGTATGCGCGTTGAAAGGTGGGCATAAC
+TTCAGCACTTAGAGTGTCAGTTTCCACAAACGAGGTGGATTTGATATTTATCTGCCCTGCGGCAATGCTT
+TTGATGGTGGCTGAATCCATTTGGTCAGAAAATACAATTTTTTTGTTATCAAGTTTGGTAGCAAAGGATC
+CATAGAGGGCGTTGGAGAGCAGTTTGGCAATGGAACGCAGTGTTTGGTTTTTTTCGCGGTCGGCACGCTC
+CTTGGCGGTGATATTAAGATGAACGTACTCTTTTGCCACGCAGCGCCACTCGGGAAAGACAGTGGCGCGC
+TCGTCGGGAAGCAACCGCACATGCCAGCCCCGGTTGTGCAGTGTTATAAGGTCCACACTGGTAACTACCT
+CGCCGCGCAGGGGCTCATTGGTCCAGCAAAGGCGCCCTCCTTTGCGCGAACAGAGTGGGGGCAAAACATC
+TAGTAGGTTTTCAGGTGGGGGGTCGGCGTCGATGGTAAAAATGCCAGGCAGCAGGGTGCGATTGAAATAA
+TCAATGGGGGTACCAACTTGCAAAAGAGCGTGTTCCCAATCTCGGACCGCTAGGGCGCGCTCGTAGGGAT
+TGAGTGGGAAGCCCCACGGCATGGGATGGGTAAGTGCAGAGGCGTACATGCCACAGATGTCATAAACGTA
+AAGTGGTTCGCGTAGCACCCCAATGTAAGTTGGATAACAGCGTCCTCCGCGAATGCTAGCCCGAACATAG
+TCATACATTTCGTGGGAAGGGGCCAGCAAGCTGCCGCCTAGGTCCGACCGCTGGGGTTTTACTGTCCGGT
+ACAAGATTTGACGAAAGATGGCGTGGGAGTTGGAGGAGATGGTGGGCCGCTGAAAGACGTTAAAGCTGGC
+TTCGGGTAGACCTACCGCGTCGCGGATAAACTGAGCGTAGGATTCGCGCAACTTTTGCACCAGGGCGGCG
+GTAACAAGCACATCCAGGGCACAGTAATCAAGGGTTTCACGCACCAGGTCGTAATGAGGACATTGCTTTT
+TTTCCCAGAGTTCGCGGTTCAGGAGGTACTCCTCGCGATCCTTCCAGTAATCTTCGGCAGGAAAGCCACG
+CTCGTCTGCGCGGTAAGAACCCAGCATGTAAAACTCGTTTACGGCCTTGTATGGGCAGCATCCTTTTTCT
+ACCGGAAGGGTATAGGCTTGTGCGGCTTTTCGCAGAGACGTGTGTGTGAGGGCAAAAGTGTCGCGCACCA
+TAACCTTGAGGAATTGATACTTAAAATCAGAGTCGTCGCAGGCGCCCTGCTCCCATAGGCGATAGTCGGT
+GCGTTTTTTTGAGCTTGGATTAGGAAGGGCAAAGGTGATATCATTAAAAAGGATTTTGCCGGCTCTAGGC
+ATAAAGTTGCGGGTGATTTTGAAAGGCCCGGGCACATCAGAACGGTTGTTAATAACCTGAGCTGCAAGTA
+CGATTTCATCGAAGCCGTTGATGTTATGCCCCACAATGTAAAGTTCTAAAAAGCGGGGGCGTCCCTGGAG
+TTTGGGGGCCTTTTGTAACTCTTCATAGGTAAGGTAATCAGGAGAAAAAAGACCCATTTCCAAGCAAGCC
+CATTCTGCCAGTTGGGGATTGGCGGCTAGAAAACCGCGCCATAGCTGGAGGGCAAAATGGGCTTGCAAGC
+GGTTGCGGTACTCTCGAAACTTTTTGCCCACCGCCAATTTTTCGGGGGTCACCACGTAAAAGGTACGTTC
+GTCGTTTCCCCAAGTGTCCCACTGCAACTCGCAGGCCAGTCGGCAGGCTTCCTTAACAAGGGCTTCCTCC
+CCCGAGAGATGCATAACTAGCATAAAGGGGACCAGCTGTTTACCAAAGGCTCCCATCCACGTGTAGGTTT
+CGACGTCGTAGGTGACAAAGAGGCGTTCGACGCGAGGATGAGAGCCGATCGGAAAGAAATTGATTTTCTG
+CCACCAGCCGGAGGAGTGGGCGTTGATATGATGAAAGTAGAAGTCTCTCCGGCGGACCGTGCATTCGTGC
+TGATATTTGTAAAAGCGGGCGCAATACTCGCAGCGTTGCACGCTCTGCATCTCTTGAATGAGGTGTACCT
+GTCGCCCACGTACGAGAAATCGGAGAGGGAAGTTGAGAAAATCCTCAGTGTCTTGCCTTTCACCCTCGTC
+GCCCTCTTCTGCACCTGCACGCTCTTGCTGTGGGTGGATGATGGAGGGAACGACAACGCCCCGCGAGCCA
+CAGGTCCAGACCTCAACGCGGGGCACCTTCAGCTTGAGAGCAAGAGTGCGGATTTGGGAACTGTCCAGGG
+AGTCCAGGAAGGCCTCGTTCAGATCAGCGGGCACAGATCGAAGGTTGACTTGCAGGAGACGGGTAAGGGC
+CGATGCCAGGCGGCGATGAAACTTGATTTCCATTGGTGAGTTGGTAGCAGTGTCAATAGCATACAGAAGA
+CCTTGTCCGCGGGGAGCTACAATGGTACCACGCAGGCGAGAGTTGGGGGTAAGGCTTACATTGTTCGCTG
+CGGGCGGGCGTCCGGAGGCAGTGGTGGATGGGGGTTCGCCTGGAGAGGCGGTAGCGGCACGTCGGCGTGG
+AGCTCGGGTAGCGGTTGGTGCTGCGCCCGCAGTTGACTGGCGTACGCGACGACGCGGCGGTTGAGGTCCT
+GAATGTGTCTCCGCTGGGAGAAAACCACCGGCCCTCGGACTCGGAACCTGAAAGAGAGTTCAACAGAATC
+AATATCGGCATCGTTGACCGCGGCTTGTCGCAGAATCTCCTGCACGTCGCCAGAGTTGTCTTGGTAGGCA
+ATCTCCGACATAAACTGGTCAATCTCTTCGTCCTGGAGTTCTCCGTGTCCTGCGCGCTCCACCGTGGCTG
+CAAGGTCATTAGAGATGCGCCTCATGAGCTGGGAGAAAGCGTTAAGACCGTTTTCGTTCCACACGCGGCT
+GTAGACCACGTCGCCAACAGTGTTTCGGGCGCGCATCACCACTTGTGCAATGTTCAGTTCTACGTGTCTT
+GCAAAGACGGCGTAGTTGCGTAGACGCTGGAAGAGGTAGTTGAGCGTGGTGGCAATGTGCTCGCAAACAA
+AGAAGTACATGACCCAGCGCCGAAGCGTCATTTCGTTAATATCTCCGAGGGCTTCCAAGCGGTCCATTGC
+CTCGTAGAAGTCAACCGCGAAGTTGAAGAACTGGGAGTTGCGCGCCGCAAACGTCAACTCCTCTTGCAGG
+AGCCGAATTGCCTCGGCTACAGTTTCGCGCACCTCTTGTTCGAAGGCTGCCGGCGTTTCCTCGATTTCCA
+TAAACTCCTCTTCCTCCACAGCGGGACCCTCGGGGCTGACCGGCGCTGGGACGGGTTGTCGTCGACGACG
+GCGCCGGACGGGCAGCCGGTCAATGAAACGTTGAATCATTTCTCCGCGACGGCGACGCATGGTTTCGGTG
+ACGGCGCGCCCGTTTTCTCGGGGGCGAAGTTCAAAGACGCCGCCTTGCATGCCCGAGCCGGAGAGGGGAG
+GAAGTAGGTGGGGCCCCTGAGGCAGCGACAGGGCGCTAACTGTGCATCTTATCATCTGTTGCATAGGTAG
+AGACTGCCAAGCCTCATTGAGCGAGTCCAGTTGGACGGGATCAGAGAATTTTTCGAGGAAAGCTTCCAGC
+CAATCGCAGTCGCAAGGTAAGCTAAGGACGGTGGCATGAGGGATTCTAAGGGAGGCAGCAGAGGAGGTGA
+TGCTGCTGATGAGGAAATTGAAGTAGGCGGTCTTCAAACGGCGGATGGTGGCAAGGAGAGTGACGTCTTT
+TGGTCCGGCCTGTTGAATTCGCAGGCGGTCTGCCATGCCCCAAGCTTCGTTCTGACATCGGCGCAGGTCC
+TTGTAATAATCTTGCATGAGACTTTCTACGGGTATTTCCAATTCCCCTCGGTCGGCCATGCGTGTGGAAC
+CAAACCCGCGCAGGGGCTGCAGCAGGGCCAAGTCGGCAACTACGCGTTCGGCGAGCACAGCCTGCTGTAT
+CTGAGTTAAAGTGTTTTGGAAATCATCCAAGTCCACAAAGCGGTGGTAGGAACCGGTGTTGATGGTGTAC
+GTGCAGTTGGCCATGACGGACCAGTTGACTACTTGCATCCCGGGCTGTGTAATCTCGGTATACCTAAGGC
+GCGAGTAGGCTCTGGATTCAAAAACGTAGTCGTTGCAGGTGCGAACCAAGTACTGGTAGCCAACAAGGAA
+GTGGGGCGGCGGCTCGCGGTAAAGGGGCCAGCGAAGTGTGGCGGGCGTACCGGGGGCCAGGTCCTCCAGC
+ATAAGGCGATGGTAGTGGTAAACATATCGAGAGAGCCAGGTGATGCCGGCGGCGGTAGTGGCGGCGCGGG
+CGTATTCGCGAACGCGGTTCCAGATGTTACGCAACGGGGAGAAGCGTTCCATGGCGGGCACGCTTTGACC
+AGTCAGACGGGCGCAATCTTGTACGCTCTAGATGAAAAAACAGAGAGCGGTCACGGACTTTCCTCCGTAG
+CCTGGAGGACAGACCGCCAGGGTGCAGTGGCAAACAACCCCCGGTTCGAGACCGGCTGGATCTGCCACTC
+CCGACGCGCCGGCCGTGCGTCCACGACGGAAACCCCGCCGAGACCTAGCCGCGGTCCCTGGATCTCCAGA
+TACGGAGGGGAGTCTTTTTGTTGTTTTTTGTAGATGCATCCGGTGTTGCGACAGATGCGTCCGACGGCGC
+CTCCAACACAGCCGCCGCTCCCGCCCCCCACTAGCGCCCCTGCAGCCGTTGCTCTCTCCGGAGCCGGCGG
+TGGCAACCCTGAGGAGGAGGCCATCCTGGACCTGGAAGAGGGCGAGGGGCTGGCCCGCTTGGGGGCGCCA
+TCCCCCGAGCGCCATCCCCGCGTGCAACTTAAAAAGGACTCACGCCAGGCGTACGTACCGCCTCAGAATT
+TATTCAGGGATCGCAGCGGGCAGGAGCCCGAAGAGATGAGGGATCGCAGGTTTTACGCGGGGCAGGAGCT
+GCGGGCCGGTTTTAACCGCCAACGGGTGCTACGCGCCGAAGATTTTGAACCCGACGAACATAGCGGAATA
+AGTCCGGCACGGGCGCACGTGTCGGCGGCCGATTTGGTAACCGCGTACGAGCAAACGGTGAACGAGGAGC
+GCAACTTTCAGAAAAGTTTTAACAATCACGTGCGCACCCTGGTGGCGCGCGAGGAGGTGGCCATTGGGCT
+GATGCATTTGTGGGACTTTATGGAGGCGTACGTGCAAAATCCTTCGAGCAAGCCGCTGACGGCGCAGCTG
+TTTTTGATTGTGCAACACAGCCGGGACAACGAGGCTTTCCGCGAGGCCATGCTGAATATTGCGGAGCCTG
+AGGGTCGCTGGCTTTTGGACCTGGTTAATATCCTTCAGAGCATTGTGGTACAGGAGCGCAGTCTAAGCCT
+GGCCGACAAGGTGGCGGCCATTAATTACAGCATGCTTAGCCTCGGCAAGTTTTACGCCCGCAAGATTTAC
+AAAACCCCCTATGTGCCCATAGACAAGGAGGTTAAAATAGATAGCTTTTACATGCGCATGGCGCTAAAGG
+TGTTAACGCTGAGTGACGATCTGGGGGTGTACCGCAACGACCGTATTCACAAAGCTGTGAGCGCCAGCCG
+CCGTCGCGAGCTTAGCGACCGCGAACTAATGCACAGCCTGCGTCGGGCTCTAACGGGCACCGGCACTGAT
+GCCGAAACTGAATCTTACTTTGACATGGGGGCGGACCTGCAATGGCAGCCCAGCGCCCGGGCCCTGGAGG
+CGGCTGGTTATGTTGGCGCGGAAGAAGATGAGGAGGACTATGAGGACGAGCCCTGATCAGCCAGGTGGTG
+TTTTTGTAGATGCTGCGTTCGACGGCGGTGGCGGACGGGTCGCAGCAGGTGAATCCCGCTATGTTGGCGG
+CCCTGCAAAGCCAACCTTCGGGCGTGACACCCTCAGACGACTGGGCGGCGGCCATGGATCGCATCCTGGC
+CCTAACCACCCGCAATCCCGAAGCCTTCAGGCAGCAGCCCCAGGCCAACCGCTTTTCGGCCATTTTGGAA
+GCCGTGGTTCCTTCTCGCACTAACCCTACCCACGAAAAGGTGTTGGCGATTGTAAACGCTCTGGTAGAAA
+GCAAAGCCATCCGCAAGGATGAGGCGGGACTGATATATAATGCCTTACTGGAGCGGGTAGCGCGCTATAA
+TAGCACCAACGTGCAGGCCAACCTAGACCGACTGACAACGGACGTGAGAGAGGCGGTGGCGCAGCGGGAA
+CGCTTTATGCATGACGTTAACCTAGGATCCCAAGTGGCCCTTAATGCTTTTCTGAGCACATTGCCAGCTA
+ATGTGCCGCGCGGGCAGGAGGACTATGTCAGCTTTATCAGCGCGCTTCGCCTCCTGGTGGCGGAGGTGCC
+CCAGAGTGAGGTGTACCAGTCCGGGCCAGACTACTTTTTCCAAACTTCACGGCAGGGTTTGCAAACTGTA
+AACCTAACACAGGCGTTTAAAAACTTGCAAGGAATGTGGGGCGTGCGAGCCCCCGTGGGGGACCGAGCCA
+CCATCTCCAGCTTATTGACGCCGAACACTCGGTTGTTGCTGTTGTTGATAGCGCCATTTACCAATAGCAG
+CACCATTAGCCGTGACTCGTACCTTGGTCATCTAATCACGCTGTACCAGGAGGCTATTGGCCAGACGCAG
+GTGGACGAACAGACCTTCCAGGAAATCACCAGCGTGAGTCGGGCTCTTGGTCAGCAAGACACCAGTAGCT
+TGGAAGCCACGCTGAACTTTTTGCTAACCAACCGCCGGCAAAAAATTCCATCGCAATTTACTTTAAATTC
+TGAAGAGGAACGTATTTTGCGCTATGTGCAGCAGTCCGTCAGCTTGTATTTAATGCGCGAGGGGGCTACT
+GCGTCGTCGGCTCTGGACATGACGGCACGTAACATGGAACCGTCGCTATACTCGTCCAACCGGCCTTTTA
+TTAACCGCCTGATGGACTATCTGCACCGCGCGGCGGCCATGAACAGCGAGTACTTCACCAATGCCATTCT
+TAACCCGCACTGGATGCCACCGTCCGGTTTTTACACGGGCGAGTTTGACGTGCCTGAGGGCGACGACGGA
+TTTTTGTGGGATGACGTGTCCGAAAGCATTTTCGAACCAATGCGTTCCCGTAAAAAGGAGGGCGGAGACG
+AGCTGCCGCTGTCGTTAGTGGAGGCAGCTTCTCGAGGCCAAACCCCCGTTCCCAGTCTGCCATCGCTGAC
+CAGCAGCAGCAGCGGACGGGTGTTTCGACCCCGTTTGCCCGGGGAGTTGGACTACCTCAGCGATCCCCTA
+TTGCGACCGGCCCGGAAAAAAAATTTTCCCAACAACGGGGTGGAAAGCCTGGTAGATAAGATGAATCGCT
+GGAAAACCTACGCCCAGGAGCAGCGGGAAGAGAGGCAGCCCCGCCCACTGACCGGCACCTTCAGTCGTTG
+GCGCCGGCGGGAAGAGGACGCTTACGACTCGGCCGATGATAGTAGCGTGTTGGACTTGGGGGGAACCGGC
+GCCGCTTCTGATCCCTTTGCTCATCTGCGGCCTCAGGGTCAACTGGGTCGTTTGTATTAAAAAAATAAAA
+TAAAAAGAAATCCACTTACCAGAGCCATAGCAACAGCGTCCGTCCCTTTGTCTGTTTTTTCCCTCTTCCC
+GGTAGTCAAAATGAGACGTGCGGTGGGAGTGCCGCCGGTGATGGCGTACGCCGAGGGTCCTCCTCCTTCT
+TACGAAAGCGTGATGGAAACAGCGGATTTGCCGGCAACGCTGCAGGCGCTCCACGTCCCTCCCCGTTACC
+TGGGGCCTACGGAAGGGCGGAACAGCATACGTTACTCGGAGCTGGCGCCTCTATACGACACCACCCGGGT
+TTACCTGGTGGACAACAAGTCGGCGGACATTGCCTCCCTGAACTACCAGAACGACCATAGTAACTTTCAA
+ACCACGGTGGTACAAAATAATGACTTTACCCCGACAGAGGCCGGTACCCAGACCATCAATTTTGACGATC
+GCTCCAGGTGGGGCGGCGACCTGAAAACCATTTTGCGCACCAATATGCCCAACATCAATGAGTTTATGTC
+TACCAACAAGTTTCGGGCGCGGGTGATGGTAGAAAAAGTGAACCGGAAAACCAACGCTCCTCGTTACGAG
+TGGTTCGAGTTCACTTTGCCAGAGGGCAACTATTCGGAAACTATGACTATAGACCTTATGAATAACGCGA
+TCGTAGACAACTACTTAGCAGTAGGACGTCAGAACGGCGTGCTGGAAAGCGACATTGGGGTGAAGTTTGA
+CACGCGCAACTTCCGGTTGGGTTGGGATCCCGTAACCAAGTTGGTGATGCCCGGCGTGTACACCAACGAG
+GCCTTTCACCCAGACATTGTTTTGCTACCTGGTTGCGGCGTGGATTTCACGCAAAGTCGTCTGAACAACT
+TGCTAGGAATACGCAAGCGAATGCCCTTTCAAAAAGGTTTCCAAATCATGTATGAGGATTTGGAGGGCGG
+CAACATTCCTGCTCTATTAGATGTGGAAAAGTACGAAGCTAGCATAAAAGAAGCACAGGAGATCCGTGGA
+GCCGACTTCAAGCCCAATCCTCAAGACTTGGAAATCGTGCCCGTGGAAAAAGACAGCAAGGAAAGAAGTT
+ACAATCTCCTAGAGGGAGATAAAAATAACACTGCCTACCGCAGCTGGTTTTTGGCCTACAACTACGGAGA
+TGCAGAGAAAGGAGTAAAGTCTTGGACCTTGTTAACAACCACGGATGTGACCTGTGGGTCGCAGCAGGTG
+TACTGGTCCCTTCCCGACATGATGCAAGATCCAGTAACGTTTCGACCGTCCACGCAAGTCAGCAACTACC
+CTGTAGTGGGGGTGGAATTACTGCCAGTACATGCCAAGAGTTTTTACAACGAGCAGGCCGTGTATTCTCA
+GCTTATTCGCCAGTCCACCGCGCTTACGCACATCTTCAATCGTTTTCCTGAGAATCAGATACTAGTGCGT
+CCGCCCGCTCCGACCATTACCACCGTCAGTGAAAACGTTCCCGCCCTCACAGATCACGGAACCCTGCCGC
+TGCGCAGCAGTATCAGTGGAGTTCAGCGCGTGACCATCACTGACGCCCGCCGTCGGACCTGCCCCTACGT
+GCACAAAGCTCTGGGCATAGTTGCTCCCAAAGTGCTGTCTAGCCGCACGTTTTAACATGTCCATTCTTAT
+TTCGCCCGACAACAATACCGGCTGGGGACTTTGCTCCGCCGGCATGTACGGCGGCGCCAAACGGCGTTCT
+AGCCAACACCCTGTTCGCGTGCGCGGACATTACCGCGCCCCCTGGGGGGCTTACACCCGCGGTGTTATCT
+CAAGACGTACCACCGTTGATGACGTCATTGACTCCGTGGTAGCCGATGCCCAACGCTACACGCGGCCCGT
+TGCCACGTCCACCGTGGATTCCGTGATTGATAGTGTGGTGGCCAACGCCAGGCGTTACGCGCAACGCAAG
+AGACGTTTGCAACGTCGCCGTCGTCGGCCTACTGCCGCCATGACTGCCGCTCGGGCGGTACTAAGGCGGG
+CACAAAGGATAGGACGTCGGGCCATGCGCCGAGCGGCTGCTTCTGCCAGTGCAGGTCGGGCCCGTCGTCA
+GGCCGCCCGTCAGGCCGCGGCGGCTATTGCCAGCATGGCTCAGCCCCGCCGGGGGAATATCTACTGGGTG
+CGAGATGCGTCGGGCGTGCGGGTGCCGGTGCGAAGCCGTCCCCCTCGGAGTTAGAAGACGCGTTCACAAA
+ATGGACGAAGACTGAGTTTCCCTGTCGTTGCCAGCCGGTCCCCGTCAGCATGAGCAAGCGCAAGTTCAAA
+GAAGAGCTGCTGGAGGCCCTTGTGCCTGAAATCTATGGCCCTGCCGCGGACGTCAAGCCCGACATTAAGC
+CTCGCGTGCTCAAGCGGGTTAAAAAGCGAGAAAAAAAAGAGGAAAAGGAGGAAGCAGGGTTGCTAGACGA
+CGGTGTTGAGTTTGTGCGGTCCTTTGCCCCCCGGCGGCGGGTGCAGTGGCGGGGACGTAAAGTCCAGCGC
+GTGCTTAGACCCGGCACTACTGTAGTATTTACTCCCGGAGAGCGGTCCGTCACGCGGGCCTTAAAACGGG
+ATTACGATGAGGTTTACGCTGACGAAGACATTCTTGAGCAGGCCGCCCAACAGGTTGGGGAATTCGCCTA
+CGGCAAGCGCGGCCGCTACGGAGAGTTGGGACTCTTGCTGGACCAAAGCAACCCCACGCCAAGCCTGAAG
+CCCGCAACGGCGCAGCAGATCCTTCCCGTGACAGAAATCAAGCGGGGCGTCAAGAGGGAAAACAAAGACG
+AATTGCAGCCCACCATGCAACTCATGGTGCCAAAGCGGCAAAAGCTTGAGGAGGTGTTGGAGAACATGAA
+AGTGGATCCCAGCGTTGAGCCGGAAGTTAAAGTGCGCCCCATTAAAGAAATAGGGCCCGGACTTGGCGTG
+CAGACGGTGGATATCCAAATCCCCGTGCGTGCGTCTTCGTCCACCGTTAGCACTGCGGTGGAGGCCATGG
+AAACGCAGCCTGAGCTGCCAGAGGCCGTAGCCCGTGCGGTTGCGGCCACGCGAGAGATGGGTTTGCAAAC
+GGATCCGTGGTACGAATTCGTGGCCCCTACCAGCCGTCCACGCTCCCGGAAATACACAACCGCTAATTCG
+ATTTTACCGGAGTATGCCTTGCATCCATCCATCACGCCAACGCCCGGTTACCGCGGAACAACCTTCAAAC
+CCAGCCGCACTCGCTCCACCCGCCGTCGTCGCTCTGTCCGCCGCCGCTCAAGGCGCACGGCCCCCATCTC
+TGTGCGTCGCGTAACCCGCCGTGGACGCACGCTGACCCTTCCCAACGCGCGTTACCACCCTAGCATTCTC
+GTTTAATCCGTGCGCTGCCGTTTTTTCAGATGGCTTTGACTTGCCGGTTTCGCATTCCCGTTCCGTCCTA
+CCGAGGAAGATCTCGCCGTAGGAGAGGCATGGCGGGCAGTGGCCGCCGACGCGCTTTGCGCAGGCGAATA
+AAAGGCGGATTTTTGCCCGCGTTGATTCCCATCATCGCCGCCGCCATAGGCGCAATCCCAGGCGTGGCCT
+CCGTGGCCTTGCAAGCAGCTCGCAAACAATAAAAGAAGGCTTAACACTGACTTCCTGGTCCTGACTATTT
+TATGCAGACAAGACATGGAAGACATCAATTTTGCGTCGCTGGCTCCGCGGCACGGCTCGCGGCCGTTTAT
+GGGCACCTGGAACGAGATCGGCACCAGCCAGCTCAACGGGGGCGCTTTCAGTTGGAGCAGCCTGTGGAGT
+GGCATTAAAAACTTTGGGTCCTCCATTAAGTCATTTGGTAACAAGGCCTGGAACAGTAACACAGGTCAAA
+TGCTCCGGGATAAGCTAAAGGACCAAAACTTTCAACAAAAAGTCGTGGACGGGCTGGCTTCCGGCATTAA
+CGGCGTGGTGGATATAGCCAACCAGGCCTTGCAAAACCAAATCAATCAGCGGCTGGAAAATAGCCGCCAG
+CCTCCGGTGGCTCTGCAGCAGCGCCCGCCTCCCAAAGTCGAGGAGGTAGAAGTGGAGGAAAAACTACCGC
+CTTTGGAGGTGGCACCCCCCCTGCCTAGTAAAGGCGAAAAGCGGCCGCGACCGGATCTGGAGGAAACCCT
+AGTTGTGGAATCCCGCGAGCCCCCCTCGTACGAGCAGGCTTTGAAAGAGGGCGCTTCACCTTATCCCATG
+ACCAAACCTATTGGTTCCATGGCCCGACCTGTATACGGGAAGGAAAGCAAACCCGTGACCTTAGAACTAC
+CTCCACCCGTGCCCACCGTTCCGCCCATGCCGGCTCCGACGCTTGGCACCGCCGTTTCTCGCCCCACCGC
+CCCCACTGTTGCCGTGGCTACCCCCGCCCGCCGCCCTCGCGGGGCTAACTGGCAGAGCACTCTTAACAGC
+ATTGTGGGTCTGGGAGTAAAAAGCCTGAAACGCCGCCGGTGCTATTAAAATGGAACCAAGCTAAATGCCA
+TTATTGTGTACGCCTCCTGTGTTACGCCAGAGAGCCGAGTGACACGTCACCGCCAAGAGCGCCGCTTGCA
+AGATGGCCACCCCCTCGATGATGCCGCAATGGTCTTACATGCACATCGCCGGGCAGGACGCCTCGGAGTA
+CCTGAGCCCGGGCCTGGTGCAGTTCGCCCGTGCCACCGATACCTACTTCAGCCTGGGGAACAAGTTCAGA
+AACCCCACCGTGGCTCCCACCCACGATGTAACCACAGACAGGTCGCAGCGACTGACGCTGCGCTTCGTGC
+CCGTCGACCGCGAGGAAACCGCCTACTCTTACAAAGTGCGCTTTACGCTGGCCGTGGGCGACAACCGGGT
+TTTGGACATGGCCAGCACCTACTTTGACATCCGCGGCGTGCTGGATCGTGGTCCCAGCTTTAAACCCTAT
+TCGGGCACTGCATACAACTCCCTGGCCCCCAAAGGTGCTCCCAATCCTAGCCAGTGGACAAACCAAAACA
+AAACAAACTCCTTTGGACAAGCTCCCTATATAGGACAAAAAATCACCAATCAGGGCGTGCAAGTGGGCTC
+AGACTCCAACAATCGCGATGTGTTTGCCGATAAAACGTACCAACCGGAGCCTCAAGTGGGGCAGACGCAA
+TGGAACATTAATCCAATGCAAAACGCTGCGGGAAGAATACTAAAACAAACCACGCCCATGCAGCCATGTT
+ATGGGTCATACGCTAGACCAACAAACGAAAAAGGAGGTCAAGCCAAGCTGGTAAAAAATGACGACAATCA
+GACCACAACAACAAACGTAGGTTTAAACTTTTTTACCACTGCCACTGAAACCGCTAATTTTTCACCAAAG
+GTGGTTCTGTACAGCGAAGATGTTAACTTAGAAGCGCCCGATACCCACCTTGTGTTTAAGCCAGATGTCA
+ACGGCACAAGTGCCGAGCTTTTACTGGGACAGCAGGCCGCTCCCAATCGACCTAATTACATTGGTTTTAG
+GGACAACTTCATTGGTTTGATGTACTACAATTCCACTGGCAACATGGGAGTGCTGGCCGGGCAAGCTTCT
+CAGCTCAACGCAGTGGTGGACTTACAAGATAGAAACACGGAGCTGTCTTACCAGTTAATGCTTGACGCTT
+TAGGGGATCGGAGTCGATACTTCTCCATGTGGAACCAGGCAGTGGACAGCTATGACCCAGACGTGAGAAT
+TATTGAAAATCATGGCGTGGAAGACGAGCTCCCCAACTATTGCTTTCCTCTTAATGGGCAAGGAATATCT
+AACAGTTACCAAGGCGTAAAGACTGACAATGGAACTAACTGGTCTCAGAATAATACAGACGTCTCAAGCA
+ACAACGAAATTTCCATTGGCAATGTGTTTGCCATGGAGATTAATCTGGCGGCTAACTTGTGGAGAAGCTT
+CTTGTACTCAAATGTAGCCCTGTACTTGCCTGACTCTTACAAAATAACCCCCGATAACATTACTTTACCC
+GACAACAAAAATACATATGCCTACATGAACGGTCGGGTTGCCGTCCCCAGCGCCCTGGATACATACGTGA
+ACATTGGGGCGCGGTGGTCTCCAGACCCCATGGACAACGTTAATCCCTTTAACCACCACCGCAATGCTGG
+TCTGCGCTACCGTTCTATGCTCCTGGGTAACGGCCGCTACGTGCCTTTTCACATCCAAGTGCCCCAGAAA
+TTTTTCGCCATTAAAAATCTCCTGCTCCTGCCCGGGTCCTACACCTATGAGTGGAACTTCCGGAAGGATG
+TTAACATGATTCTCCAAAGCAGTCTCGGTAACGACCTCAGGGTCGATGGAGCCAGCGTCAGGTTTGACAG
+CATTAACCTGTATGCCAACTTTTTCCCCATGGCTCACAACACCGCTTCCACCTTGGAAGCAATGCTTCGT
+AATGATACCAACGATCAGTCTTTCAACGACTACCTCTGCGCTGCAAACATGCTTTACCCCATACCCGCCA
+ACGCTACTAGCGTGCCCATTTCTATTCCTTCGCGAAATTGGGCTGCTTTTCGGGGGTGGAGTTTTACTAG
+ACTAAAAACTAAAGAAACCCCCTCTTTGGGGTCCGGGTTTGATCCATATTTCACCTACTCTGGCTCCGTC
+CCATACTTGGATGGCACCTTTTACCTGAACCACACTTTTAAAAAGGTGTCCGTTATGTTCGACTCCTCTG
+TGAGCTGGCCTGGTAACGACCGACTACTTACTCCCAACGAGTTTGAAATCAAACGAACCGTGGATGGGGA
+AGGATACAACGTGGCTCAATGTAACATGACCAAGGACTGGTTCCTCATACAAATGCTCAGTCACTACAAT
+ATTGGCTACCAGGGTTTCCACGTACCAGAAAGCTACAAGGACAGGATGTACTCCTTTTTCCGAAACTTCC
+AACCCATGAGCCGCCAGGTGGTAGACACTACCACCTACACGGAGTATCAGAATGTAACTCTCCCTTTCCA
+GCATAATAACTCTGGCTTTGTAGGATACATGGGACCTGCCATACGGGAGGGACAAGCTTACCCCGCCAAC
+TATCCATACCCCCTTATTGGTCAGACGGCCGTACCAAGCCTGACTCAGAAAAAATTTCTTTGCGATCGTA
+CCATGTGGCGCATTCCCTTTTCCAGCAACTTTATGTCTATGGGGGCCCTGACCGACCTGGGGCAAAACAT
+GCTGTACGCCAACTCCGCCCACGCGCTCGACATGACTTTTGAGGTGGACCCCATGGATGAGCCCACACTT
+CTCTATGTTCTGTTCGAAGTTTTCGACGTTGTGCGCATCCACCAGCCGCACCGCGGCGTCATCGAGGCCG
+TCTACCTGCGTACGCCGTTCTCGGCCGGTAACGCCACCACATAAGAAGCCAGCCAATGGGCTCCAGCGAG
+CAGGAGTTGGTCGCCATCGTGCGCGAACTGGGCTGCGGACCTTACTTTCTGGGCACGTTTGACAAACGCT
+TTCCGGGTTTTATGGCACCGCATAAGCTGGCGTGTGCCATTGTTAACACGGCGGGCCGCGAAACCGGCGG
+CGTACACTGGCTGGCCCTGGCCTGGAACCCAAAGAACCGTACCTGCTACCTCTTCGACCCATTTGGCTTT
+TCGGACGAGCGCCTCAAACAGATTTACCAGTTTGAGTATGAAGGTCTCCTAAAGCGTAGTGCGTTGGCCT
+CAACCCCGGACCATTGTATCACCCTAATTAAGTCCACCCAAACTGTTCAAGGACCGTTTTCGGCGGCCTG
+CGGCCTTTTCTGCTGCATGTTTTTACATGCTTTTGTAAACTGGCCCACCAGTCCCATGGAGCGCAACCCC
+ACCATGGACCTTCTTACCGGCGTTCCAAACAGCATGCTTCAAAGCCCCCAGGTTGTACCCACCCTGCGTC
+ACAACCAGGAGCGGTTGTACCGTTTCCTGGCGCAACGTTCTCCCTACTTTCAGCGTCATTGCGAGCGTAT
+CAAAAAAGCCACCGCGTTTGACCAAATGAAAAACAACATGTAACGGTTCAATAAAAGCTTTTATTGATTC
+AAAAAATTCATGCATGCAGACTTTTTATTTTAAAATGGTTCTTTCTCCCCATCGCCGTGGCTGGCGGGCA
+AAGCTACGTTGCGATACTGCAAACGAGAGGACCACTTAAATTCTGGAATCAGCATCTTAGGAAGGGGGCC
+ATCGACGTTCTCTCCCCACAGCCGTCGTACAAGTTGCAAAGCTCCCAAAAGGTCAGGTGCAGAAATTTTG
+AAATCACAGTTGGGACCTTGGCCACCACGGGAGTTGCGGTATACGGGGTTAGCGCACTGGTAAACCAGCA
+CACAGGGATACTGGATACTGGCAAGAGCCACCTTGTCGGTTACTTCTTCAGCTCTAAGACTGTCAACATT
+GCTTAGAGCGAAAGGGGTGGCTTTACACATTTGCCGACCCAATTGGGGCACACCGGTGGGCTTGTACAGG
+CAGTCGCAGCGCATCACCATTAATAGGCGTTTTAGCCCGTTTTGCATTTTTGGATATTCGGCTTGCATAA
+AAGCTTCTATCTGCAAAAAAGCCGTCTGAGCCTTTGTTCCTTCCGAGAAAAACAGACCGCAGGACTTGGC
+AGAAAACACATTGGTGGCACAGCTCACGTCTTCTACACAACAACGGGCATCGTCATTCTTCAGTTGAACC
+ACGCTGCGCCCCCACCGGTTTTGTACCACCTTGGCTCGACTCGGGTGCTCCTTTAACGCCCGCTGAGCGT
+TCTCGCTCGCTACATCCATTTCCACCAACTGCTCTTTTTGAATCATTTCCAGGCCATGATAACAGCGTAG
+CACTCCCTCTTGCTCGGTGCAGCCGTGAAGCCAAATCGCGCAACCAGTGGGCTCCCATTCATTGTTTTTT
+ACCCCGGCGTACGACTCCACGTAGGCTCTCAAAAAACGTCCCATCATTTCCACAAATGTCTTGTGGCTGG
+TGAAGGTGAGAGGGAGGCCGCGATGCTCCTCGTTAAGCCACGTTTGGCAAATTTTGCGATAAACGTTGCT
+TTGTTCGGGTAGGAACTTGAAGCCATTCTTCTCTTCGGCCTCCACATGATACTTTTCCATTAGCTTTATC
+ATTAAATCCATGCCTTTCTCCCAGGCGGAAACCAAGGGCTCTGCCTGCGGATTAAGAACCACTGATGTAA
+CAGCTTTGGAAGTGCTAGGCTCTTCTTCCTCGTTGTTTTCCTCTGACGGGGGAGGCACACCTTTGGGCTC
+CAAGCGTCTTACATATCGCTTGCCACTGGCCTTTTGAACGACCTGCACGCCGGGGTGACTGAACCCGGTG
+TACACCACCTCTTCTTCTTCCTCCTCGCTGTCTGGAACCACTTCGGGAGACGGAGGCAAAACTGGAACGC
+GATCCGGCACTTGAACATTCTTGCGCAACTTCTTTTTGGGAGGAAGTGACGGGGCCCGTTCTGGACTCGT
+CTCCTGCAAGTAGGGAGTGATGGTGGGGAGTTCTTGCTGACGGCCGGCCATGCTTTACTCCTAGGCGAGA
+AAATATGGAGGAGGATCTTAAGCTGCAGCCAGACTCCGAAACCTTAACCACCCCCAACTCTGAGGTCGGC
+GCCGTCGAGCTAGTGAAACATGAGGAGGAAAATGAGCAAGTGGAGCAAGATCCGGGCTATGTAACGCCCC
+CCGAGGACGGCAAGGAACCAGTGGCCGCACTCAGCGAACCCAACTATTTGGGAGGGGAGGACGACGTGCT
+CCTGAAGCACATAGCGCGACAGAGCACCATTGTACGAGAAGCCCTCAAGGAATGCACACAGACTCCGCTG
+ACGGTGGAGGAATTAAGCCGCGCGTATGAAGCTAACCTGTTTTCGCCGCGTGTACCGCCAAAAAAGCAGC
+CTAACGGCACCTGCGAAACAAACCCGCGCCTCAATTTTTATCCCGTCTTTGCGGTGCCTGAAGCACTGGC
+TACTTATCACATCTTTTTCAAGAACCAACGCATTCCCCTCTCTTGCCGCGCCAACCGTACACGCGGTGAC
+GGCCTTTTGCATCTCAAAGCTGGAGCTCACATACCTGAGATCGTTTCTTTAGAAGAAGTACCCAAGATTT
+TTGAAGGTCTTGGCAAGGACGAAAAACGGGCGGCAAATGCTCTGCAAAAAAACGAAACCGAGAATCAGAA
+CGTGTTGGTAGAGCTGGAGGGTGACAACGCGCGTTTGGCCGTACTCAAACGCACCATTGAAGTTTCACAC
+TTTGCTTATCCCGCGCTAAATCTTCCTCCCAAAGTAATGCGTTCTGTTATGGATCAAGTGCTTATTAAGC
+GAGCAGAGCCCATTGATCCCCAACAACCCGACCTAAACTCTGAGGACGGACAACCCGTAGTCTCAGACGA
+CGAGCTTGCTCGCTGGCTAGGTACCCAGGATCCCTCAGAGCTGCAAGAGCGGCGAAAAATGATGATGGCA
+GCAGTTTTGGTTACAGTGGAATTGGAATGCCTGCAGCGCTTCTTTGCTAACCCTCAAACACTGCGCAAAG
+TCGAGGAGTCCCTGCACTATGCCTTCCGTCATGGCTACGTTCGTCAGGCCTGCAAGATCTCCAACGTAGA
+GCTCAGCAATCTGATCTCTTACATGGGCATTCTACACGAAAACCGGCTGGGGCAGAACGTTCTTCACTGC
+ACCTTGCAAGGGGAGGCCCGCCGAGACTACGTCCGCGACTGCATCTATCTTTTCCTTATTCTCACCTGGC
+AAACCGCTATGGGAGTCTGGCAGCAGTGCTTGGAAGAGCAAAACCTCCAGGAGCTTAATAAATTGCTAGT
+ACGAGCCCGTCGCGAACTCTGGACGTCTTTTGACGAGCGTACGGTTGCCCGCCAGCTGGCAAACCTCATT
+TTTCCCGAGCGGCTTATGCAAACATTGCAAAATGGTTTGCCAGACTTTGTCAGCCAAAGTATCTTGCAAA
+ACTTTCGCTCCTTTGTACTCGAGCGTTCCGGCATCTTGCCGGCTATGAGTTGTGCTTTGCCCTCCGATTT
+TGTCCCCCTCTGCTACCGCGAATGCCCCCCACCGTTGTGGAGTCACTGCTACCTCCTCCGTCTAGCCAAC
+TATTTGGCCCACCACTCTGATCTTATGGAAGACTCTAGCGGCGACGGACTGCTAGAATGTCACTGCCGTT
+GCAACCTCTGCACCCCTCATCGCTCACTGGTCTGTAACACCGAGCTTCTTAGCGAAACCCAAGTAATCGG
+TACCTTTGAGATTCAAGGGCCAGAGCAACAAGAAGGTGCTTCCAGCCTCAAACTCACGCCGGCGTTGTGG
+ACTTCCGCCTACCTACGCAAATTTATTCCCGAAGACTATCACGCCCACCAAATTAAATTTTATGAAGACC
+AATCACGACCTCCCAAAGTCCCCCTTACAGCCTGTGTTATCACCCAAAGCCAAATTCTGGCCCAATTACA
+AGCTATTCAGCAGGCGCGTCAGGAATTTCTTTTAAAAAAAGGACACGGGGTCTATTTGGACCCCCAAACC
+GGTGAAGAACTTAATACCCCGTCACTCTCCGCCGCCGCTTCGTGCCGTTCGCAGAAACATGCCACCCAAG
+GGAAACAAGCATCCCATCGCGCAACGGCAATCCCAGCAGAAACTACAAAAGCAGTGGGACGAGGAGGAGA
+CGTGGGACGACAGCCAGGCAGAGGAAGTTTCAGACGAGGAGGCGGAGGAGCAGATGGAGAGCTGGGACAG
+CCTAGACGAGGAGGACCTAGAGGACGTGGAGGAAGAAACCATCGCCAGCGACAAGGCACCATCTTTCAAA
+AAACCCGTTCGGAGCCAACCTCCGAAAACTATCCCGCCCCTGCCACCGCAACCATGTTCACTGAAAGCCA
+GCCGTAGGTGGGACACCGTCTCCATCGCCGGATCGCCAACAGCCCCAGCTGGTAAGCAGCCTAAGCGCGC
+ACGACGGGGATACTGCTCCTGGCGAGCCCATAAAAGCAATATTGTCGCATGCCTCCAGCACTGCCGGGGC
+AATATCTCATTCGCACGGCGTTACTTGCTTTTTCACGACGGGGTGGCGGTTCCTCGCAACGTCCTCTACT
+ATTACCGTCATCTCTACAGCCCCTACGAAACGTTTGGAGAAAACACCTCGAGTGCGTAAGACCTCATCCG
+CCATTGCCACCCGCCAGGATTCGCCCGCCACGCAGGAGCTCAGAAAACGCATCTTTCCGACGCTGTATGC
+TATTTTCCAGCAGAGCCGCGGTCAACAGCTGGAACTCAAAGTAAAAAACCGATCACTCCGTTCGCTCACC
+CGCAGCTGCTTGTATCACAGAAGTGAAGACCAACTGCAGCGCACGCTGGAGGACGCCGAGGCACTGTTCA
+ATAAATATTGCTCGGTGTCTCTTAAGGACTAAACACCCGCGCTTTTTTTAGGCGCCAAATTACGTCATTG
+ACATTATGAGCAAAGACATTCCCACGCCTTACATGTGGAGCTATCAGCCGCAAATGGGCCTGGCAGCTGG
+AGCTTCTCAGGATTACTCCAGTCGCATGAATTGGCTTAGTGCCGGCCCCCACATGATTGGGCGGGTAAAT
+GGAATTCGTGCCACTCGAAACCAAATTCTGCTAGAACAGGCCGCCCTAACCTCTACCCCGCGACGTCAGC
+TGAACCCACCCTCTTGGCCTGCCGCCCAGGTTTATCAGGAAAACCCCGCCCCGACCACAGTCCTTCTGCC
+ACGCGACGCGGAAGCCGAAGTCCAAATGACTAACTCCGGAGCGCAATTAGCGGGCGGCGCCAGACACGTC
+AGGTTCAGAGATCGACCCTCGCCCTATTCCTCCGGCTCTATAAAAAGGCTAATCATTCGAGGCCGAGGTA
+TCCAGCTCAACGACGAGGTAGTGAGCTCTTCCACCGGTCCTAGACCTGACGGAGTCTTTCAGCTTGGAGG
+CGCCGGGCGGTCTTCCTTCACTCCTCGCCAGGCGTACTTAACGCTTCAGAGCTCTTCATCCCAGCCTCGC
+TCCGGCGGCATCGGAACCCTCCAGTTTGTGGAGGAGTTTGTACCCTCCGTTTACTTCAACCCCTTCTCGG
+GCGCTCCTGGTCTTTACCCAGACGACTTCATCCCGAACTACGACGCGGTGAGCGAATCTGTGGACGGCTA
+CGACTGAAGACCGATAGTACGGCCGTGACTGCGCGGCTGTAACATCTGCATCGGTGCCGTAACCTTCGCT
+GCTTTACTTAAAAAGCCTGTGATTTCATTTACCACCCCAGCACTTGGATTACATGAAGATCTGTGTTCTT
+TTTTGTGTGCTAAGTTTAACAAGTAGCCTAAGGACTTCACCTACAACCGTTGGTTCCTTACGTCAGCTAC
+AAGATTCCACCAAAGGTACACACCAAACTCTTTATTTTTCTGAGTCTACCACTTCTATTGCACTTAACTG
+TTCTTGTCGTAACCAACTCGTTCAGTGGCGCGCTAACAGACAATTTTGCAAACTATTCTGGGACGCTCTT
+ATTGTTCAAGGAAACAACAGCCTTTGTAACAACTGTACTGCTACTACTTTAACTCTTACACCTCCTTTTG
+TTCCCGGTCCATACTTGTGCATTGGCACAGGAAGAGGGCCTAGCTGCTTTAATCGCTGGACTTTACAAAA
+AGAGAATCTAACCACTACCACCCTCCTTCCCCTTACTACTTATACTTTTTCCCAAAAAAAGAATTACTTT
+TTGCCCATTATTGCACTTTTGGCCTTTGTCTGTGTTATTACCGCTAATTATATTTTAATTTTCAATCTTG
+ATAATTTTTACTAATCATGCTGCTGTTTTTACTTTGCCTTCTTTTCTGCTCTGCCTATGCCGCCGTGCCA
+GAAAAAACCCTTAACAACCTCGTTCGGGTGTACGCCTTAGTTGGTACCAATCTATCCCTTGATTCTATGA
+AAACTCCTCAGATTGACGAACTTACTAGTCTTAGCTGGATCAAACAGGAAGACAATCCTAACAAAAACTT
+ACAATCATTTTTTTTTATTGGTCAAAAACTCTGTGAAGTTACCAAAGACAAAATCACTGTTTTTAACTAT
+TATCCGTTGGAATTTTCCTGCGCTAACGTAACCTTGTATTTGTATAATCTTAAAACTGACGATTCTGGCC
+TCTATAATGGAAAGGCCCATACCAAAGAGCTTGAACATAACACCTATGTTAGGCTTTATGTTATTGACAT
+TCCTCCGCCTAAGTGTGACATTACTTCACGTTACTTAGGCATACAGGCTACTGGGGAAGATTATTGTTTA
+ATTGAAATTAATTGCACTAACTCCAAATACCCAGCTGTGGTTAAATTTAATGGCAGGCAAAGCAACTTCT
+ACCATTATGTTAGCGAAAACGGAAACAAAAAACTTCCAAATTTTTATGAAACACACATCACTGTTAATGG
+TACCCACAAAAGCTTTCACTTTAATTACCCTTTTAACGACCTTTGTCAAACAACCAGCGCTCTACAATAT
+AATGACAATGTCCAGGTAGTCCTCATTCTTCTCATAGTAGTTGGCTTAATAATAATTTCCGCTAGTTTAA
+TATTGCTTTATTGCCACCGCAAAAAAATCAAGGCCAAAGTTCAACATCAACCAGTGCATATTTGTTTAGA
+AAAATAAAAATTTTTTTCTTTTCAGTATGGTAACTCCTCTTCTCCTGCTTGTCTGTCTGCCAATTATCTA
+CGCCTCCACCACCTTCGCCGCAGTCTCCCACCTTGATACGGATTGTCTTCCCGCCTTGCTGACTTATCTC
+ATCTTCACCTCTGTTTGCTGCACTGCCATCTGCAGCATTGCCACTTTTTTTGTGGCCATTTTCCAAACTG
+CGGACTACCTATACGTTAGAGTGGCATACTATCGTCATCATCCCCAATATAGGAACCACGAGGTGGCTAC
+CCTTCTGTGCCTGTCATGAAAGTTCCTCTTCTCTGTCTTATCCTCCTTCACAAAGTCCTGGCCAACTGCC
+ACCTCCACCGGCCCACCGAGTTCCTGCGCTGCTACTCAACAGAAACCTCTTCCTTTTGGCTGTACTCCAT
+TATTTTTATTTTGATTTTCTTTGCCACCTTTTTGGGATTACAAATTTACGGGTGCCTTCACCTGGGCTGG
+ATGCATCCTCCCAACAACCTACCCAGATTTCCTGGTTTCCTATTACAGCCCCCACCGCCCCCACCGGCTC
+CTGTGCAGCGCGCTCCATCAGTTATTAGCTACTTTCATCTTAACTCTGAAGATGTCTGACCAACTAGAAA
+TCGACGGGCAGTGCACTGAGCAGCTTATCCTTGCTCGGCGAAAACTCAAACAACAAAATCAGGAACTGTT
+CAACCTTCAAGCCCTACACCAATGCAAAAAGGGTCTTTTTTGTCTGGTTAAACAAGCTGAACTTTGTTAT
+GATGTAACCCAACAGGGACACGAGCTGTCATATACTTTAAACAAGCAAAGACAGAGCTTTATGACTATGG
+TGGGGGTTAAGCCCATTAAGGTTACTCAGCAATCCGGCCCAGTTGAGGGAAGCATTCTTTGTCAGTGTAC
+CAATCCTGAATGCATGTACACTATGGTAAAAACCCTGTGTGGTCTAAGGGAACTTCTCCCCTTTAATTAA
+AGTTATTCTGATTAATAAAGCTTACCTTAAATTTGATATCAGTTGTTTGTCAAGTTTTTCCAGCAGCACC
+ACCTGCCCTTCCTCCCAACTTTCGTACGGGATGTGCCAACGGGCGGCAAACTTTCTCCACGTCCTAAAGG
+GTATATCGGTGTTCACCTTTTTACCCTGACCCACAATCTTCATCTTGCAGATGAAAAGAACCAGAATTGA
+AGACGACTTCAACCCCGTCTACCCCTATGACACCTCCTCAACTCCCAGCATTCCCTATGTAGCTCCGCCC
+TTCGTTTCTTCCGACGGGTTACAGGAAAACCCCCCGGGAGTTTTAGCACTCAAGTACACTGACCCCATTA
+CTACCAATGCTAAACATGAGCTTACTTTAAAACTTGGCAGCAACATAACTTTACAAAATGGGTTACTTTC
+GGCCACCGTTCCCACTGTTTCTCCTCCCCTTACAAACAGTAACAACTCCTTGGGTTTAGCCACATCCGCT
+CCTATAGCTGTGTCAGCTAACTCTCTTACATTGGCCACCGCCGCACCACTGACAGTAAGCAACAACCAGC
+TTAGTATTAACACTGGCAGAGGCTTAGTTATAACTAACAATGCCGTAGCAGTTAATCCTACCGGAGCGTT
+AGGCTTTAACAACACAGGAGCTTTACAATTAAACGCTGCGGGAGGAATGAGAGTGGACGGCGCCAACTTA
+ATTCTTCATGTAGCATACCCCTTTGAAGCAATCAACCAACTAACACTGCGATTAGAAAACGGGTTAGAAG
+TAACCAACGGAGGAAAACTCAACGTTAAGTTGGGATCAGGCCTCCAATTTGACAATAACGGACGCATTAC
+CATTAGTAATCGCATCCAGACTCGAGGTGTAACATCCCTCACTACCATTTGGTCTATCTCGCCTACGCCT
+AACTGCTCCATCTATGAAACCCAAGATGCAAATCTATTTCTTTGTCTAACTAAAAACGGAGCTCACGTGT
+TAGGTACTATAACAATTAAAGGTCTTAAAGGAGCACTGCGGGAAATGAACGATAACGCTTTATCTGTAAA
+ACTTCCCTTTGACAATCAGGGAAATTTACTCAACTGTGCCTTGGAATCATCCACCTGGCGTTACCAGGAA
+ACCAACGCAGTGGCCTCTAATGCCTTAACATTTATGCCCAACAGTACAGTGTATCCCCGAAACAAAACCG
+CCGACCCAGGCAACATGCTCATCCAAATCTCGCCTAACATCACCTTCAGTGTCGTCTACAACGAGATAAA
+CAGTGGGTATGCTTTTACGTTTAAATGGTCAGCCGAACCGGGAAAACCTTTTCACCCACCCACCGCTGTA
+TTTTGCTACATAACTGAACAATAAAATCATTGCAGGCGCAATCTTCGCATTTCTTTTTTCCAGATGAAAC
+GAGCCAGATTTGAAGATGACTTCAACCCCGTCTACCCTTACGAACACTACAATCCCCTTGACATTCCATT
+TATTACACCCCCGTTTGCTTCCTCCAACGGCTTGCAAGAAAAACCTCCGGGAGTCCTCAGCCTGAAATAC
+ACTGATCCACTTACAACCAAAAACGGGGCTTTAACCTTAAAATTGGGCACGGGACTAAACATTGATAAAA
+ATGGAGATCTTTCTTCAGATGCTAGCGTGGAAGTTAGCGCCCCTATCACTAAAACCAACAAAATCGTAGG
+TTTAAATTACACTAAGCCTCTCGCTCTGCAAAATAACGCGCTTACTCTTTCTTACAACGCGCCCTTTAAC
+GTAGTAAATAATAATTTAGCTCTAAATATGTCACAGCCTGTTACTATTAATGCAAACAACGAACTTTCTC
+TCTTAATAGACGCCCCACTTAATGCTGACACGGGCACTCTTCGCCTTCGAAGTGATGCACCTCTTGGACT
+AGTAGACAAAACACTAAAGGTTTTGTTTTCTAGCCCCCTCTATCTAGATAATAACTTTCTTACACTAGCC
+ATTGAACGCCCGCTAGCTCTATCCAGTAACAGAGCAGTGGCCCTTAAGTATTCACCACCTTTAAAAATAG
+AAAACGAAAACTTAACCCTAAGCACAGGCGGACCTTTTACTGTAAGCGGGGGAAATTTAAACCTGGCAAC
+ATCGGCACCCCTCTCCGTGCAAAACAATTCTCTCTCCTTAGGGGTTAACCCGCCTTTTCTCATCACTGAC
+TCTGGATTAGCTATGGACTTAGGAGACGGTCTTGCATTAGGTGGCTCTAAGTTAATAATCAATCTTGGTC
+CAGGTTTACAAATGTCTAATGGAGCTATTACTTTAGCACTAGATGCAGCGCTGCCTTTGCAATATAAAAA
+CAACCAACTTCAACTCAGAATTGGCTCCGCGTCTGCTTTAATTATGAGCGGAGTAACACAAACATTAAAC
+GTCAATGCCAATACCAGCAAAGGTCTTGCTATTGAAAATAACTCACTAGTTGTTAAGCTAGGAAACGGTC
+TTCGCTTTGATAGCTGGGGAAGCATAGCTGTCTCACCTACTACCACTACCCCTACCACCCTATGGACCAC
+CGCGGACCCGTCTCCTAACGCCACTTTTTATGAATCACTAGACGCCAAAGTGTGGCTAGTTTTAGTAAAA
+TGCAACGGCATGGTTAACGGGACCATATCCATTAAAGCTCAAAAAGGCACTTTACTTAAACCCACAGCTA
+GCTTTATTTCCTTTGTCATGTATTTTTACAGCGACGGAACGTGGAGGAAAAACTATCCCGTGTTTGACAA
+CGAAGGGATACTAGCAAACAGTGCCACATGGGGTTATCGACAAGGACAGTCTGCCAACACTAACGTTTCC
+AATGCTGTAGAATTTATGCCTAGCTCTAAAAGGTATCCCAATGAAAAAGGTTCTGAAGTTCAGAACATGG
+CTCTTACCTACACTTTTTTGCAAGGTGACCCTAACATGGCCATATCTTTTCAGAGCATTTATAATCATGC
+AATAGAAGGCTACTCATTAAAATTCACCTGGCGCGTTCGAAATAATGAACGTTTTGACATCCCCTGTTGC
+TCATTTTCTTATGTAACAGAACAATAAAATATTGTTATTTTGTATTTTCAACTTTATTGATACTTTTACA
+GAATTCTAACCGTTAATCTCCCTCCCCCCTTCCACTTTACCTTATACACCTCCCTTTCCCCCTGTACCAC
+CGCAAACAACTGCAATTTAGGATTTACACAACGATTCTTCTGTGACAAAATCAACACAGGTTCTTTGCTG
+GCAAAGCGCTGATCCGTAATGGAAATGAAACCTTCAGAAACATCGTCCAACAGCACGGTGGAGTCCAAAG
+CAGAGCTCTGCAAAAACAAATACAGTCAAGCTCTCCACGGGTTCTCGCCTCTGTTGTAGTCTGCCAACGT
+AAACGGGCAGTACCGCTCCATCAAGCCCCGCAGTAATCCCTGTCTCCGGGGTTCCACCAAGCTCCTCATG
+AGTGACCTAACGGTGAAGCTTCCCAACACTTTCACCGCCTTGGCCAGCAGCCGCCGCGTCCGACGAGCGC
+AGCACCGCACAGAAAGCTCATCCAAGTTTTTACAATAGGTACAGCCCAACACCACCATATTATTCATAAT
+TCCATAACTAAAAAAACTCCACCCAAACGACATGCGCTCCAACACTATAGCCGCGTGCCCATCATACAGC
+AGGCGAATATATATAAAATGCCTACCTCTGACAAACACGCTCCCCATAAATAACACTTCCTTGGGCATGC
+CACAATTTACAATTTCTCGATACCAAGGGAATCTTAAGTTATACAGTGAACCATAAATCATCATTTTAAA
+CCAATTTGCTAACACTACACCCCCCGCCTTACATTGAAGAGACCCAGGTTTAATACAGTGACAGTGTATA
+GTCCAGCGTTCAAAACCTCTTACAATTTGATTAAAATCAACATTAATAGTGGCACAGCAAACACAAACAC
+GCATGTAAATTTTGCACACATGCTTTTCCCATTTAGACAATATCATGTCCCACCACATTGGCCACTCCTG
+CAATACTACAAAAGGCGCACAAGATGGAATAGACCTCACCTCGCTCACATAATGCATATTCAAATGTTCA
+CACTCTAAAAGTCCAGGAGTCCTTTCCATTGTGGCAATAGGCACAGAATCCTCAGAGGGAGGTGGAAGAC
+GGTGGGTTTGGTACGAACTCAGTCTGCAGCGAAACCATCTGTCGCGTTGCATCATAAATTAAAAGCTCGC
+GCACAGCTTCGTACTTCTGTTTTAAGAAACGAACACGCTGCCAACAAATGTTCGCAAATCGACGGTTTCG
+TTGTCGCGCTCTTTCAGTTTTCAGGGCAACGTTCAGCCACTCCTGCAGTCCACTTAACAGCTCCTCAGCC
+CGTGGAGATATGCTGACATTATACCTTATTATGTCCCCATAAACGTTCAAACAGCAGGTTAAAGCCAACT
+CCAACCAAGAAATACAAAGGCCTTGATCCCGACTCACTGGAGGTGGAGGGAGAGACGGAAGAGGCATAAT
+TATTCCAGACGGTTGTAAAGCGAGCCAAAGTGCAAGTCACGAAGATCACACCTCTCCCCACCGCTGCGTT
+GGTGAAAAATTACAGCCAAGTCAAAAAAGATGCGATTTTCCAAATTACCAATCACGGCTTCCACTAAGGC
+TGGCACACGCACTTCAAGAAACACAAACATAGCAAAAGCATTTTCCTCAAAATCTTCAAACATTAAGCTG
+CAATCTTGAATAATTCCCAAATAATTTTCCGCTTGCCACCCGCGCAACACATCCATTAAAATTTCTTGTA
+AACTGGCGCCATGTAATTCAAAAAGTTTGTTAAGAGCACCCTCTACTGTCATACGCAGGCACACCTTCAT
+GGTTGAAAAAGATCAGGTTCCCGTGTCACCTGCAGTTCATTTAAAAGATTAACATTAGGCTCAAAACCCC
+GATCCCGAATCTCCATGCGTAGCATTAGTTGTACAAAGTCATCCAAATCATTGCATATAAGCTCTGTCAG
+TTCGCTATCAGGAAGCAGCTCAGGTGATGCTACACAACAAATCATCTCTAGCGTAGGAGCTAAAGACGTT
+AAGGTAAAGCCACAATAAGCAGCTTGAAGAACTGGAGTAACACAATGCAAAATGTGCAGCAAAAACTCCG
+ACATGTTTGTCTTTAAAAAATCTACCACAGAAATGTCCATATTATTTAAATAAAACATCAGGGGCTCAGG
+AACCACCACCGAAATAAAAACCGGTCGTAACAAATACATTGTGTCCTGCAACAAAAAAAAAATATTAATG
+CCCACACCTGGGAAAACCTGTTCTAAAACCAAACAGGTATAAGTATTACAAATGCCTCCCTTTGCCCCCC
+AATCCAAACCAAATAAGCTGCCCCGTCTTACCGCGACAAAGCACACAGAACAAAACACACTCCGCAGACG
+AACACAATATTTATACACTCCCTTTGCCGTCAAAAGTCCACAAAAACTCCAAAGGTCAGAAAAACCGCCA
+CATGAACACTTCCGCATACTGTTTCACATATCGTCACTTCCGCCGCACCGCGCCCGTCCTCCGACCCCAC
+ACGTCATCCGCCTCCACCCTTTCCCACCCCGCCCGCCTCTACGTCACCTTACACCACCCCTAGTCCCTCC
+TCCCTCATTATCATATTGGCTCGTTTCCAGTTTTAAGGTATATTATTGATGATG
+
diff --git a/demos/tutorial/read_mapping/reads_edit.fasta b/demos/tutorial/read_mapping/reads_edit.fasta
new file mode 100644
index 0000000..56d763b
--- /dev/null
+++ b/demos/tutorial/read_mapping/reads_edit.fasta
@@ -0,0 +1,20 @@
+>nc_001454.fasta.fasta.000000000 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16508 orig_end=16544 haplotype_infix=CGTTCCGTCCTACCGAGGAAGATCTCGCCGTAGGAG edit_string=MMMMIMMMMMMMMMMMMMMMMMMMDMMMMMMMMMMMM strand=reverse
+CTCCTACGGCGAATCTTCCTCGGTAGGACGGAAACG
+>nc_001454.fasta.fasta.000000001 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=34087 orig_end=34123 haplotype_infix=CACACGTCATCCGCCTCCACCCTTTCCCACCCCGCC edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+CACACGTCATCCGCCTCCACCCTTTCCCACCCCGCC
+>nc_001454.fasta.fasta.000000002 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16601 orig_end=16638 haplotype_infix=TTTGCCCGCGTTGATTCCCATCATCGCCGCCGCCATA edit_string=MMMMMDMMMMMMMMMMMMMMMMMMMMMMMMMEMMMMM strand=reverse
+TATGGNGGCGGCGATGATGGGAATCAACGCGGCAAA
+>nc_001454.fasta.fasta.000000003 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=11962 orig_end=11997 haplotype_infix=GAGGTGCCCCAGAGTGAGGTGTACCAGTCCGGGCC edit_string=MMMMMMMMMMMMMMMMMMMMMMMMIMMMMMMMMMMM strand=reverse
+GGCCCGGACTGTGTACACCTCACTCTGGGGCACCTC
+>nc_001454.fasta.fasta.000000004 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=28007 orig_end=28043 haplotype_infix=ATTTTGATTTTCTTTGCCACCTTTTTGGGATTACAA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TTGTAATCCCAAAAAGGTGGCAAAGAAAATCAAAAT
+>nc_001454.fasta.fasta.000000005 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=24529 orig_end=24565 haplotype_infix=CGCCGCCGCTTCGTGCCGTTCGCAGAAACATGCCAC edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+CGCCGCCGCTTCGTGCCGTTCGCAGAAACATGCCAC
+>nc_001454.fasta.fasta.000000006 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=17674 orig_end=17710 haplotype_infix=TTACATGCACATCGCCGGGCAGGACGCCTCGGAGTA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+TTACATGCACATCGCCGGGCAGGACGCCTCGGAGTA
+>nc_001454.fasta.fasta.000000007 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=11062 orig_end=11097 haplotype_infix=AACCCCCTATGTGCCCATAGACAAGGAGGTTAAAA edit_string=MMMMMMMMMMMMMMMMMIMMMMMMMMMMMMMMMMMM strand=reverse
+TTTTAACCTCCTTGTCTAGTGGGCACATAGGGGGTT
+>nc_001454.fasta.fasta.000000008 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=12221 orig_end=12258 haplotype_infix=TGTACCAGGAGGCTATTGGCCAGACGCAGGTGGACGA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMEMMEMDMMM strand=reverse
+TCGCNACGTGCGTCTGGCCAATAGCCTCCTGGTACA
+>nc_001454.fasta.fasta.000000009 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=15100 orig_end=15136 haplotype_infix=TCGGGCGGTACTAAGGCGGGCACAAAGGATAGGACG edit_string=MMMMMMMMMMMMEMMMMMMMMMMMMMMMMMMMMEMM strand=forward
+TCGGGCGGTACTTAGGCGGGCACAAAGGATAGGGCG
diff --git a/demos/tutorial/read_mapping/reads_hamming.fasta b/demos/tutorial/read_mapping/reads_hamming.fasta
new file mode 100644
index 0000000..5c57d0e
--- /dev/null
+++ b/demos/tutorial/read_mapping/reads_hamming.fasta
@@ -0,0 +1,20 @@
+>nc_001454.fasta.fasta.000000000 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16508 orig_end=16544 haplotype_infix=CGTTCCGTCCTACCGAGGAAGATCTCGCCGTAGGAG edit_string=MMMMMMMMMMMMMMMMMMMMMMMMEMMMMMMMMMMM strand=reverse
+CTCCTACGGCGGGATCTTCCTCGGTAGGACGGAACG
+>nc_001454.fasta.fasta.000000001 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16065 orig_end=16101 haplotype_infix=TTCGTCCACCGTTAGCACTGCGGTGGAGGCCATGGA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TCCATGGCCTCCACCGCAGTGCTAACGGTGGACGAA
+>nc_001454.fasta.fasta.000000002 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=33793 orig_end=33829 haplotype_infix=AAAAAAAAATATTAATGCCCACACCTGGGAAAACCT edit_string=MMMMMMEMMMMMMMMMMMMMMMMMMMMMMMMMEMMM strand=reverse
+AGGNTTTCCCAGGTGTGGGCATTAATATTNTTTTTT
+>nc_001454.fasta.fasta.000000003 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=20573 orig_end=20609 haplotype_infix=CCGGCGGCGTACACTGGCTGGCCCTGGCCTGGAACC edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMEMMMMMMMMMM strand=forward
+CCGGCGGCGTACACTGGCTGGCCCTNGCCTGGAACC
+>nc_001454.fasta.fasta.000000004 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=6227 orig_end=6263 haplotype_infix=GATTGAGTGGGAAGCCCCACGGCATGGGATGGGTAA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TTACCCATCCCATGCCGTGGGGCTTCCCACTCAATC
+>nc_001454.fasta.fasta.000000005 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=1395 orig_end=1431 haplotype_infix=TAGTGTTAGTTTATTCTGATGGAGTTGTGGAGTGAG edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+TAGTGTTAGTTTATTCTGATGGAGTTGTGGAGTGAG
+>nc_001454.fasta.fasta.000000006 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=29589 orig_end=29625 haplotype_infix=CGATAACGCTTTATCTGTAAAACTTCCCTTTGACAA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=reverse
+TTGTCAAAGGGAAGTTTTACAGATAAAGCGTTATCG
+>nc_001454.fasta.fasta.000000007 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=23190 orig_end=23226 haplotype_infix=GTGACAACGCGCGTTTGGCCGTACTCAAACGCACCA edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM strand=forward
+GTGACAACGCGCGTTTGGCCGTACTCAAACGCACCA
+>nc_001454.fasta.fasta.000000008 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=15308 orig_end=15344 haplotype_infix=AGTTAGAAGACGCGTTCACAAAATGGACGAAGACTG edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMEMMEME strand=reverse
+TAATCNTCGTCCATTTTGTGAACGCGTCTTCTAACT
+>nc_001454.fasta.fasta.000000009 contig=gi|9626553|ref|NC_001454.1| haplotype=0 length=36 orig_begin=16745 orig_end=16781 haplotype_infix=TGGAAGACATCAATTTTGCGTCGCTGGCTCCGCGGC edit_string=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMME strand=reverse
+TCCGCGGAGCCAGCGACGCAAAATTGATGTCTTCCA
diff --git a/demos/tutorial/realignment/reads.sam b/demos/tutorial/realign/reads.sam
similarity index 100%
rename from demos/tutorial/realignment/reads.sam
rename to demos/tutorial/realign/reads.sam
diff --git a/demos/tutorial/realignment/ref.fa b/demos/tutorial/realign/ref.fa
similarity index 100%
rename from demos/tutorial/realignment/ref.fa
rename to demos/tutorial/realign/ref.fa
diff --git a/demos/tutorial/realign/step1.cpp b/demos/tutorial/realign/step1.cpp
new file mode 100644
index 0000000..935930a
--- /dev/null
+++ b/demos/tutorial/realign/step1.cpp
@@ -0,0 +1,32 @@
+#include <iostream>
+#include <string>
+
+#include <seqan/store.h>
+#include <seqan/realign.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Build paths to reference and to alignment.
+    std::string refPath = SEQAN_PATH_TO_ROOT();
+    refPath.append("/demos/tutorial/realign/ref.fa");
+    std::string samPath = SEQAN_PATH_TO_ROOT();
+    samPath.append("/demos/tutorial/realign/reads.sam");
+
+    // Declare fragment store.
+    FragmentStore<> store;
+
+    // Load contigs and read alignment.
+    loadContigs(store, refPath.c_str());
+    BamFileIn bamFileIn(samPath.c_str());
+    readRecords(store, bamFileIn);
+
+    // Layout alignment and print.
+    AlignedReadLayout layout;
+    layoutAlignment(layout, store);
+    printAlignment(std::cout, layout, store, /*contigID=*/ 0, /*posBegin=*/ 1060,
+                   /*posEnd=*/ 1140, /*lineBegin=*/ 0, /*lineEnd=*/ 100);
+
+    return 0;
+}
diff --git a/demos/tutorial/realignment/step1.cpp.stdout b/demos/tutorial/realign/step1.cpp.stdout
similarity index 100%
rename from demos/tutorial/realignment/step1.cpp.stdout
rename to demos/tutorial/realign/step1.cpp.stdout
diff --git a/demos/tutorial/realign/step2.cpp b/demos/tutorial/realign/step2.cpp
new file mode 100644
index 0000000..005f6c2
--- /dev/null
+++ b/demos/tutorial/realign/step2.cpp
@@ -0,0 +1,36 @@
+#include <iostream>
+#include <string>
+
+#include <seqan/store.h>
+#include <seqan/realign.h>
+
+using namespace seqan;
+
+int main()
+{
+    // Build paths to reference and to alignment.
+    std::string refPath = SEQAN_PATH_TO_ROOT();
+    refPath.append("/demos/tutorial/realign/ref.fa");
+    std::string samPath = SEQAN_PATH_TO_ROOT();
+    samPath.append("/demos/tutorial/realign/reads.sam");
+
+    // Declare fragment store.
+    FragmentStore<> store;
+
+    // Load contigs and read alignment.
+    loadContigs(store, refPath.c_str());
+    BamFileIn bamFileIn(samPath.c_str());
+    readRecords(store, bamFileIn);
+
+    // Perform the realignment.
+    reAlignment(store, /*contigID=*/ 0, /*method=*/ 1, /*bandwidth=*/ 20,
+                /*includeReference=*/ true);
+
+    // Layout alignment and print.
+    AlignedReadLayout layout;
+    layoutAlignment(layout, store);
+    printAlignment(std::cout, layout, store, /*contigID=*/ 0, /*posBegin=*/ 1060,
+                   /*posEnd=*/ 1140, /*lineBegin=*/ 0, /*lineEnd=*/ 100);
+
+    return 0;
+}
diff --git a/demos/tutorial/realignment/step2.cpp.stdout b/demos/tutorial/realign/step2.cpp.stdout
similarity index 100%
rename from demos/tutorial/realignment/step2.cpp.stdout
rename to demos/tutorial/realign/step2.cpp.stdout
diff --git a/demos/tutorial/realignment/step1.cpp b/demos/tutorial/realignment/step1.cpp
deleted file mode 100644
index fc0821e..0000000
--- a/demos/tutorial/realignment/step1.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <seqan/store.h>
-#include <seqan/realign.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Build paths to reference and to alignment.
-    std::string refPath = getAbsolutePath("/demos/tutorial/realignment/ref.fa");
-    std::string samPath = getAbsolutePath("/demos/tutorial/realignment/reads.sam");
-
-    // Declare fragment store.
-    FragmentStore<> store;
-
-    // Load contigs and read alignment.
-    loadContigs(store, refPath.c_str());
-    BamFileIn bamFileIn(samPath.c_str());
-    readRecords(store, bamFileIn);
-
-    // Layout alignment and print.
-    AlignedReadLayout layout;
-    layoutAlignment(layout, store);
-    printAlignment(std::cout, layout, store, /*contigID=*/ 0, /*posBegin=*/ 1060,
-                   /*posEnd=*/ 1140, /*lineBegin=*/ 0, /*lineEnd=*/ 100);
-
-    return 0;
-}
diff --git a/demos/tutorial/realignment/step2.cpp b/demos/tutorial/realignment/step2.cpp
deleted file mode 100644
index 4512033..0000000
--- a/demos/tutorial/realignment/step2.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <seqan/store.h>
-#include <seqan/realign.h>
-
-using namespace seqan;
-
-int main()
-{
-    // Build paths to reference and to alignment.
-    std::string refPath = getAbsolutePath("/demos/tutorial/realignment/ref.fa");
-    std::string samPath = getAbsolutePath("/demos/tutorial/realignment/reads.sam");
-
-    // Declare fragment store.
-    FragmentStore<> store;
-
-    // Load contigs and read alignment.
-    loadContigs(store, refPath.c_str());
-    BamFileIn bamFileIn(samPath.c_str());
-    readRecords(store, bamFileIn);
-
-    // Perform the realignment.
-    reAlignment(store, /*contigID=*/ 0, /*method=*/ 1, /*bandwidth=*/ 20,
-                /*includeReference=*/ true);
-
-    // Layout alignment and print.
-    AlignedReadLayout layout;
-    layoutAlignment(layout, store);
-    printAlignment(std::cout, layout, store, /*contigID=*/ 0, /*posBegin=*/ 1060,
-                   /*posEnd=*/ 1140, /*lineBegin=*/ 0, /*lineEnd=*/ 100);
-
-    return 0;
-}
diff --git a/demos/tutorial/rnaseq/CMakeLists.txt b/demos/tutorial/rnaseq/CMakeLists.txt
new file mode 100644
index 0000000..c25f01e
--- /dev/null
+++ b/demos/tutorial/rnaseq/CMakeLists.txt
@@ -0,0 +1,13 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_rnaseq)
+
+if (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
+	set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-parameter")
+endif (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
+
+if (OpenMP_FLAG_DETECTED)
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+endif (OpenMP_FLAG_DETECTED)
+
+seqan_setup_apps(demos_tutorials_rnaseq)
+seqan_add_all_executables(demos_tutorials_rnaseq tutorial_)
diff --git a/demos/tutorial/rnaseq/genequant_assignment1.cpp b/demos/tutorial/rnaseq/genequant_assignment1.cpp
new file mode 100644
index 0000000..6eeb5be
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_assignment1.cpp
@@ -0,0 +1,73 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+// define used types
+typedef FragmentStore<> TStore;
+
+
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    // INSERT YOUR CODE HERE ...
+    //
+
+    return true;
+}
+
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+
+    return 0;
+}
diff --git a/demos/tutorial/rnaseq/genequant_assignment2.cpp b/demos/tutorial/rnaseq/genequant_assignment2.cpp
new file mode 100644
index 0000000..75ebc55
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_assignment2.cpp
@@ -0,0 +1,121 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+//![definitions]
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+//![definitions]
+
+//![definitions_end]
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+//![definitions_end]
+
+//![yourcode]
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // INSERT YOUR CODE HERE ...
+    //
+}
+//![yourcode]
+
+//![yourcode_end]
+int main(int argc, char const * argv[])
+{
+    Options options;
+//![main]
+    TStore store;
+    String<String<TInterval> > intervals;
+//![main]
+
+//![main_end]
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+//![main_end]
+
+//![main2]
+    if (!loadFiles(store, options))
+        return 1;
+
+    extractGeneIntervals(intervals, store);
+//![main2]
+
+//![main2_end]
+    return 0;
+}
+//![main2_end]
diff --git a/demos/tutorial/rnaseq/genequant_assignment3.cpp b/demos/tutorial/rnaseq/genequant_assignment3.cpp
new file mode 100644
index 0000000..6c191b6
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_assignment3.cpp
@@ -0,0 +1,155 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+//![definitions]
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+typedef IntervalTree<TPos, TId>                 TIntervalTree;
+//![definitions]
+
+//![definitions_end]
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+//![definitions_end]
+
+//![yourcode]
+//
+// 4. Construct interval trees
+//
+void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
+                            String<String<TInterval> > & intervals)
+{
+    // INSERT YOUR CODE HERE ...
+    //
+}
+//![yourcode]
+
+//![yourcode_end]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+//![yourcode_end]
+//![main]
+    String<String<TInterval> > intervals;
+    String<TIntervalTree> intervalTrees;
+//![main]
+
+//![main_end]
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+//![main_end]
+
+//![main2]
+    extractGeneIntervals(intervals, store);
+    constructIntervalTrees(intervalTrees, intervals);
+//![main2]
+
+//![main2_end]
+    return 0;
+}
+//![main2_end]
diff --git a/demos/tutorial/rnaseq/genequant_assignment4.cpp b/demos/tutorial/rnaseq/genequant_assignment4.cpp
new file mode 100644
index 0000000..a2f388e
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_assignment4.cpp
@@ -0,0 +1,172 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+//![definitions]
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+typedef IntervalTree<TPos, TId>                 TIntervalTree;
+typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
+//![definitions]
+
+//![definitions_end]
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+
+//
+// 4. Construct interval trees
+//
+void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
+                            String<String<TInterval> > & intervals)
+{
+    int numContigs = length(intervals);
+    resize(intervalTrees, numContigs);
+
+    SEQAN_OMP_PRAGMA(parallel for)
+    for (int i = 0; i < numContigs; ++i)
+        createIntervalTree(intervalTrees[i], intervals[i]);
+}
+//![definitions_end]
+
+//![yourcode]
+//
+// 5. Count reads per gene
+//
+void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
+{
+    // INSERT YOUR CODE HERE ...
+    //
+}
+//![yourcode]
+
+//![yourcode_end]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+    String<String<TInterval> > intervals;
+//![yourcode_end]
+
+//![main]
+    String<TIntervalTree> intervalTrees;
+    String<unsigned> readsPerGene;
+//![main]
+
+//![main_end]
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+//![main_end]
+
+//![main2]
+    extractGeneIntervals(intervals, store);
+    constructIntervalTrees(intervalTrees, intervals);
+    countReadsPerGene(readsPerGene, intervalTrees, store);
+//![main2]
+
+//![main2_end]
+    return 0;
+}
+//![main2_end]
diff --git a/demos/tutorial/rnaseq/genequant_assignment5.cpp b/demos/tutorial/rnaseq/genequant_assignment5.cpp
new file mode 100644
index 0000000..926f22f
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_assignment5.cpp
@@ -0,0 +1,198 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+//![definitions]
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+typedef IntervalTree<TPos, TId>                 TIntervalTree;
+typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
+//![definitions]
+
+//![definitions_end]
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+
+//
+// 4. Construct interval trees
+//
+void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
+                            String<String<TInterval> > & intervals)
+{
+    int numContigs = length(intervals);
+    resize(intervalTrees, numContigs);
+
+    SEQAN_OMP_PRAGMA(parallel for)
+    for (int i = 0; i < numContigs; ++i)
+        createIntervalTree(intervalTrees[i], intervals[i]);
+}
+
+//
+// 5. Count reads per gene
+//
+void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
+{
+    resize(readsPerGene, length(store.annotationStore), 0);
+    String<TId> result;
+    int numAlignments = length(store.alignedReadStore);
+
+    // iterate aligned reads and get search their begin and end positions
+    SEQAN_OMP_PRAGMA(parallel for private (result))
+    for (int i = 0; i < numAlignments; ++i)
+    {
+        TAlignedRead const & ar = store.alignedReadStore[i];
+        TPos queryBegin = _min(ar.beginPos, ar.endPos);
+        TPos queryEnd = _max(ar.beginPos, ar.endPos);
+
+        // search read-overlapping genes
+        findIntervals(result, intervalTrees[ar.contigId], queryBegin, queryEnd);
+
+        // increase read counter for each overlapping annotation given the id in the interval tree
+        for (unsigned j = 0; j < length(result); ++j)
+        {
+            SEQAN_OMP_PRAGMA(atomic)
+            readsPerGene[result[j]] += 1;
+        }
+    }
+}
+//![definitions_end]
+
+//![yourcode]
+//
+// 6. Output RPKM values
+//
+void outputGeneCoverage(String<unsigned> const & readsPerGene, TStore const & store)
+{
+    // INSERT YOUR CODE HERE ...
+    //
+}
+//![yourcode]
+
+//![yourcode_end]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+    String<String<TInterval> > intervals;
+    String<TIntervalTree> intervalTrees;
+    String<unsigned> readsPerGene;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+//![yourcode_end]
+
+//![main]
+    extractGeneIntervals(intervals, store);
+    constructIntervalTrees(intervalTrees, intervals);
+    countReadsPerGene(readsPerGene, intervalTrees, store);
+    outputGeneCoverage(readsPerGene, store);
+//![main]
+
+//![main_end]
+    return 0;
+}
+//![main_end]
diff --git a/demos/tutorial/rnaseq/genequant_solution1.cpp b/demos/tutorial/rnaseq/genequant_solution1.cpp
new file mode 100644
index 0000000..dd4df83
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_solution1.cpp
@@ -0,0 +1,95 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+// define used types
+typedef FragmentStore<> TStore;
+
+
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//![solution]
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+//![solution]
+
+//![main]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/rnaseq/genequant_solution2.cpp b/demos/tutorial/rnaseq/genequant_solution2.cpp
new file mode 100644
index 0000000..cf0fc72
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_solution2.cpp
@@ -0,0 +1,131 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//![solution]
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+//![solution]
+
+//![main]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+    String<String<TInterval> > intervals;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+
+    extractGeneIntervals(intervals, store);
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/rnaseq/genequant_solution3.cpp b/demos/tutorial/rnaseq/genequant_solution3.cpp
new file mode 100644
index 0000000..060b270
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_solution3.cpp
@@ -0,0 +1,148 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+typedef IntervalTree<TPos, TId>                 TIntervalTree;
+
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+
+//![solution]
+//
+// 4. Construct interval trees
+//
+void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
+                            String<String<TInterval> > & intervals)
+{
+    int numContigs = length(intervals);
+    resize(intervalTrees, numContigs);
+
+    SEQAN_OMP_PRAGMA(parallel for)
+    for (int i = 0; i < numContigs; ++i)
+        createIntervalTree(intervalTrees[i], intervals[i]);
+}
+//![solution]
+
+//![main]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+    String<String<TInterval> > intervals;
+    String<TIntervalTree> intervalTrees;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+
+    extractGeneIntervals(intervals, store);
+    constructIntervalTrees(intervalTrees, intervals);
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/rnaseq/genequant_solution4.cpp b/demos/tutorial/rnaseq/genequant_solution4.cpp
new file mode 100644
index 0000000..d7ea866
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_solution4.cpp
@@ -0,0 +1,180 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+typedef IntervalTree<TPos, TId>                 TIntervalTree;
+typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
+
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+
+//
+// 4. Construct interval trees
+//
+void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
+                            String<String<TInterval> > & intervals)
+{
+    int numContigs = length(intervals);
+    resize(intervalTrees, numContigs);
+
+    SEQAN_OMP_PRAGMA(parallel for)
+    for (int i = 0; i < numContigs; ++i)
+        createIntervalTree(intervalTrees[i], intervals[i]);
+}
+
+//![solution]
+//
+// 5. Count reads per gene
+//
+void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
+{
+    resize(readsPerGene, length(store.annotationStore), 0);
+    String<TId> result;
+    int numAlignments = length(store.alignedReadStore);
+
+    // iterate aligned reads and get search their begin and end positions
+    SEQAN_OMP_PRAGMA(parallel for private (result))
+    for (int i = 0; i < numAlignments; ++i)
+    {
+        TAlignedRead const & ar = store.alignedReadStore[i];
+        TPos queryBegin = _min(ar.beginPos, ar.endPos);
+        TPos queryEnd = _max(ar.beginPos, ar.endPos);
+
+        // search read-overlapping genes
+        findIntervals(result, intervalTrees[ar.contigId], queryBegin, queryEnd);
+
+        // increase read counter for each overlapping annotation given the id in the interval tree
+        for (unsigned j = 0; j < length(result); ++j)
+        {
+            SEQAN_OMP_PRAGMA(atomic)
+            readsPerGene[result[j]] += 1;
+        }
+    }
+}
+//![solution]
+
+//![main]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+    String<String<TInterval> > intervals;
+    String<TIntervalTree> intervalTrees;
+    String<unsigned> readsPerGene;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+
+    extractGeneIntervals(intervals, store);
+    constructIntervalTrees(intervalTrees, intervals);
+    countReadsPerGene(readsPerGene, intervalTrees, store);
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/rnaseq/genequant_solution5.cpp b/demos/tutorial/rnaseq/genequant_solution5.cpp
new file mode 100644
index 0000000..dd38b98
--- /dev/null
+++ b/demos/tutorial/rnaseq/genequant_solution5.cpp
@@ -0,0 +1,229 @@
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/arg_parse.h>
+#include <seqan/misc/interval_tree.h>
+#include <seqan/parallel.h>
+
+using namespace seqan;
+
+
+// define used types
+typedef FragmentStore<>                         TStore;
+typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
+typedef TAnnotation::TId                        TId;
+typedef TAnnotation::TPos                       TPos;
+typedef IntervalAndCargo<TPos, TId>             TInterval;
+typedef IntervalTree<TPos, TId>                 TIntervalTree;
+typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
+
+// define options
+struct Options
+{
+    std::string annotationFileName;
+    std::string alignmentFileName;
+};
+
+
+//
+// 1. Parse command line and fill Options object
+//
+ArgumentParser::ParseResult parseOptions(Options & options, int argc, char const * argv[])
+{
+    ArgumentParser parser("gene_quant");
+    setShortDescription(parser, "A simple gene quantification tool");
+    setVersion(parser, "1.0");
+    setDate(parser, "Sep 2012");
+
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE));
+    addUsageLine(parser, "[\\fIOPTIONS\\fP] <\\fIANNOTATION FILE\\fP> <\\fIREAD ALIGNMENT FILE\\fP>");
+
+    // Parse command line
+    ArgumentParser::ParseResult res = parse(parser, argc, argv);
+
+    if (res == ArgumentParser::PARSE_OK)
+    {
+        // Extract option values
+        getArgumentValue(options.annotationFileName, parser, 0);
+        getArgumentValue(options.alignmentFileName, parser, 1);
+    }
+
+    return res;
+}
+
+//
+// 2. Load annotations and alignments from files
+//
+bool loadFiles(TStore & store, Options const & options)
+{
+    BamFileIn alignmentFile;
+    if (!open(alignmentFile, options.alignmentFileName.c_str()))
+    {
+        std::cerr << "Couldn't open alignment file " << options.alignmentFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading read alignments ..... " << std::flush;
+    readRecords(store, alignmentFile);
+    std::cerr << "[" << length(store.alignedReadStore) << "]" << std::endl;
+
+    // load annotations
+    GffFileIn annotationFile;
+    if (!open(annotationFile, options.annotationFileName.c_str()))
+    {
+        std::cerr << "Couldn't open annotation file" << options.annotationFileName << std::endl;
+        return false;
+    }
+    std::cerr << "Loading genome annotation ... " << std::flush;
+    readRecords(store, annotationFile);
+    std::cerr << "[" << length(store.annotationStore) << "]" << std::endl;
+
+    return true;
+}
+
+//
+// 3. Extract intervals from gene annotations (grouped by contigId)
+//
+void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
+{
+    // extract intervals from gene annotations (grouped by contigId)
+    resize(intervals, length(store.contigStore));
+
+    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
+
+    if (!goDown(it))
+        return;
+
+    do
+    {
+        SEQAN_ASSERT_EQ(getType(it), "gene");
+
+        TPos beginPos = getAnnotation(it).beginPos;
+        TPos endPos = getAnnotation(it).endPos;
+        TId contigId = getAnnotation(it).contigId;
+
+        if (beginPos > endPos)
+            std::swap(beginPos, endPos);
+
+        // insert forward-strand interval of the gene and its annotation id
+        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
+    }
+    while (goRight(it));
+}
+
+//
+// 4. Construct interval trees
+//
+void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
+                            String<String<TInterval> > & intervals)
+{
+    int numContigs = length(intervals);
+    resize(intervalTrees, numContigs);
+
+    SEQAN_OMP_PRAGMA(parallel for)
+    for (int i = 0; i < numContigs; ++i)
+        createIntervalTree(intervalTrees[i], intervals[i]);
+}
+
+//
+// 5. Count reads per gene
+//
+void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
+{
+    resize(readsPerGene, length(store.annotationStore), 0);
+    String<TId> result;
+    int numAlignments = length(store.alignedReadStore);
+
+    // iterate aligned reads and get search their begin and end positions
+    SEQAN_OMP_PRAGMA(parallel for private (result))
+    for (int i = 0; i < numAlignments; ++i)
+    {
+        TAlignedRead const & ar = store.alignedReadStore[i];
+        TPos queryBegin = _min(ar.beginPos, ar.endPos);
+        TPos queryEnd = _max(ar.beginPos, ar.endPos);
+
+        // search read-overlapping genes
+        findIntervals(result, intervalTrees[ar.contigId], queryBegin, queryEnd);
+
+        // increase read counter for each overlapping annotation given the id in the interval tree
+        for (unsigned j = 0; j < length(result); ++j)
+        {
+            SEQAN_OMP_PRAGMA(atomic)
+            readsPerGene[result[j]] += 1;
+        }
+    }
+}
+
+//![solution]
+//
+// 6. Output RPKM values
+//
+void outputGeneCoverage(String<unsigned> const & readsPerGene, TStore const & store)
+{
+    // output abundances for covered genes
+    Iterator<TStore const, AnnotationTree<> >::Type transIt = begin(store, AnnotationTree<>());
+    Iterator<TStore const, AnnotationTree<> >::Type exonIt;
+    double millionMappedReads = length(store.alignedReadStore) / 1000000.0;
+
+    std::cout << "#gene name\tRPKM value" << std::endl;
+    for (unsigned j = 0; j < length(readsPerGene); ++j)
+    {
+        if (readsPerGene[j] == 0)
+            continue;
+
+        unsigned mRNALengthMax = 0;
+        goTo(transIt, j);
+
+        // determine maximal mRNA length (which we use as gene length)
+        SEQAN_ASSERT_NOT(isLeaf(transIt));
+        goDown(transIt);
+
+        do
+        {
+            exonIt = nodeDown(transIt);
+            unsigned mRNALength = 0;
+
+            // determine mRNA length, sum up the lengths of its exons
+            do
+            {
+                if (getAnnotation(exonIt).typeId == store.ANNO_EXON)
+                    mRNALength += abs((int)getAnnotation(exonIt).beginPos - (int)getAnnotation(exonIt).endPos);
+            }
+            while (goRight(exonIt));
+
+            if (mRNALengthMax < mRNALength)
+                mRNALengthMax = mRNALength;
+        }
+        while (goRight(transIt));
+
+        // RPKM is number of reads mapped to a gene divided by its gene length in kbps
+        // and divided by millions of total mapped reads
+        std::cout << store.annotationNameStore[j] << '\t';
+        std::cout << readsPerGene[j] / (mRNALengthMax / 1000.0) / millionMappedReads << std::endl;
+    }
+}
+//![solution]
+
+//![main]
+int main(int argc, char const * argv[])
+{
+    Options options;
+    TStore store;
+    String<String<TInterval> > intervals;
+    String<TIntervalTree> intervalTrees;
+    String<unsigned> readsPerGene;
+
+    ArgumentParser::ParseResult res = parseOptions(options, argc, argv);
+    if (res != ArgumentParser::PARSE_OK)
+        return res == ArgumentParser::PARSE_ERROR;
+
+    if (!loadFiles(store, options))
+        return 1;
+
+    extractGeneIntervals(intervals, store);
+    constructIntervalTrees(intervalTrees, intervals);
+    countReadsPerGene(readsPerGene, intervalTrees, store);
+    outputGeneCoverage(readsPerGene, store);
+
+    return 0;
+}
+//![main]
diff --git a/demos/tutorial/sam_and_bam_io/example.bam b/demos/tutorial/sam_and_bam_io/example.bam
deleted file mode 100644
index 782c43e..0000000
Binary files a/demos/tutorial/sam_and_bam_io/example.bam and /dev/null differ
diff --git a/demos/tutorial/sam_and_bam_io/example.bam.bai b/demos/tutorial/sam_and_bam_io/example.bam.bai
deleted file mode 100644
index dfc795b..0000000
Binary files a/demos/tutorial/sam_and_bam_io/example.bam.bai and /dev/null differ
diff --git a/demos/tutorial/sam_and_bam_io/example1.cpp b/demos/tutorial/sam_and_bam_io/example1.cpp
deleted file mode 100644
index f9dc508..0000000
--- a/demos/tutorial/sam_and_bam_io/example1.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString bamFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.sam");
-
-    // Open input file, BamFileIn can read SAM and BAM files.
-    BamFileIn bamFileIn(toCString(bamFileName));
-
-    // Open output file, BamFileOut accepts also an ostream and a format tag.
-    BamFileOut bamFileOut(context(bamFileIn), std::cout, Sam());
-    
-    // Copy header.
-    BamHeader header;
-    readHeader(header, bamFileIn);
-    writeHeader(bamFileOut, header);
-
-    // Copy records.
-    BamAlignmentRecord record;
-    while (!atEnd(bamFileIn))
-    {
-        readRecord(record, bamFileIn);
-        writeRecord(bamFileOut, record);
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/sam_and_bam_io/example1.cpp.stdout b/demos/tutorial/sam_and_bam_io/example1.cpp.stdout
deleted file mode 100644
index ea243b5..0000000
--- a/demos/tutorial/sam_and_bam_io/example1.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
- at HD	VN:1.3	SO:coordinate
- at SQ	SN:ref	LN:45
- at SQ	SN:ref2	LN:40
-r001	163	ref	7	30	8M4I4M1D3M	=	37	39	TTAGATAAAGAGGATACTG	*	XX:B:S,12561,2,20,112
-r002	0	ref	9	30	1S2I6M1P1I1P1I4M2I	*	0	0	AAAAGATAAGGGATAAA	*
-r003	0	ref	9	30	5H6M	*	0	0	AGCTAA	*
-r004	0	ref	16	30	6M14N1I5M	*	0	0	ATAGCTCTCAGC	*
-r003	16	ref	29	30	6H5M	*	0	0	TAGGC	*
-r001	83	ref	37	30	9M	=	7	-39	CAGCGCCAT	*
diff --git a/demos/tutorial/sam_and_bam_io/example2.cpp b/demos/tutorial/sam_and_bam_io/example2.cpp
deleted file mode 100644
index 0f8d18e..0000000
--- a/demos/tutorial/sam_and_bam_io/example2.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString bamFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.sam");
-
-    BamFileIn bamFileIn(toCString(bamFileName));
-
-    BamHeader header;
-    readHeader(header, bamFileIn);
-
-    typedef FormattedFileContext<BamFileIn, void>::Type TBamContext;
-
-    TBamContext const & bamContext = context(bamFileIn);
-
-    for (unsigned i = 0; i < length(contigNames(bamContext)); ++i)
-        std::cout << contigNames(bamContext)[i] << '\t'
-                  << contigLengths(bamContext)[i] << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/sam_and_bam_io/example2.cpp.stdout b/demos/tutorial/sam_and_bam_io/example2.cpp.stdout
deleted file mode 100644
index c3e6f91..0000000
--- a/demos/tutorial/sam_and_bam_io/example2.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-ref	45
-ref2	40
diff --git a/demos/tutorial/sam_and_bam_io/example7.cpp b/demos/tutorial/sam_and_bam_io/example7.cpp
deleted file mode 100644
index 235e0ad..0000000
--- a/demos/tutorial/sam_and_bam_io/example7.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-#include <seqan/sequence.h>
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main(int argc, char const * argv[])
-{
-    CharString bamFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.bam");
-    CharString baiFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.bam.bai");
-    CharString rName = "ref";
-
-    // Open BamFileIn for reading.
-    BamFileIn inFile;
-    if (!open(inFile, toCString(bamFileName)))
-    {
-        std::cerr << "ERROR: Could not open " << bamFileName << " for reading.\n";
-        return 1;
-    }
-
-    // Read BAI index.
-    BamIndex<Bai> baiIndex;
-    if (!open(baiIndex, toCString(baiFileName)))
-    {
-        std::cerr << "ERROR: Could not read BAI index file " << baiFileName << "\n";
-        return 1;
-    }
-
-    // Read header.
-    BamHeader header;
-    readHeader(header, inFile);
-
-    // Translate from reference name to rID.
-    int rID = 0;
-    if (!getIdByName(rID, contigNamesCache(context(inFile)), rName))
-    {
-        std::cerr << "ERROR: Reference sequence named " << rName << " not known.\n";
-        return 1;
-    }
-
-    // Translate BEGIN and END arguments to number, 1-based to 0-based.
-    int beginPos = 9, endPos = 30;
-
-    // 1-based to 0-based.
-    beginPos -= 1;
-    endPos -= 1;
-
-    // Translate number of elements to print to number.
-    int num = 3;
-
-    // Jump the BGZF stream to this position.
-    bool hasAlignments = false;
-    if (!jumpToRegion(inFile, hasAlignments, rID, beginPos, endPos, baiIndex))
-    {
-        std::cerr << "ERROR: Could not jump to " << beginPos << ":" << endPos << "\n";
-        return 1;
-    }
-    if (!hasAlignments)
-        return 0;  // No alignments here.
-
-    // Seek linearly to the selected position.
-    BamAlignmentRecord record;
-    int numPrinted = 0;
-    BamFileOut out(inFile, std::cout, Sam());
-
-    while (!atEnd(inFile) && numPrinted < num)
-    {
-        readRecord(record, inFile);
-
-        // If we are on the next reference or at the end already then we stop.
-        if (record.rID == -1 || record.rID > rID || record.beginPos >= endPos)
-            break;
-        // If we are left of the selected position then we skip this record.
-        if (record.beginPos < beginPos)
-            continue;
-
-        // Otherwise, we print it to the user.
-        numPrinted++;
-        writeRecord(out, record);
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/sam_and_bam_io/example7.cpp.stdout b/demos/tutorial/sam_and_bam_io/example7.cpp.stdout
deleted file mode 100644
index b87004f..0000000
--- a/demos/tutorial/sam_and_bam_io/example7.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-r002	0	ref	9	30	1S2I6M1P1I1P1I4M2I	*	0	0	AAAAGATAAGGGATAAA	                 
-r003	0	ref	9	30	5H6M	*	0	0	AGCTAA	      
-r004	0	ref	16	30	6M14N1I5M	*	0	0	ATAGCTCTCAGC	            
diff --git a/demos/tutorial/sam_and_bam_io/solution1.cpp b/demos/tutorial/sam_and_bam_io/solution1.cpp
deleted file mode 100644
index 25a755c..0000000
--- a/demos/tutorial/sam_and_bam_io/solution1.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString bamFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.sam");
-
-    // Open input file, BamFileIn can read SAM and BAM files.
-    BamFileIn bamFileIn;
-    if (!open(bamFileIn, toCString(bamFileName)))
-    {
-        std::cerr << "ERROR: Could not open " << bamFileName << std::endl;
-        return 1;
-    }
-    // Open output file, BamFileOut accepts also an ostream and a format tag.
-    BamFileOut bamFileOut(context(bamFileIn), std::cout, Sam());
-
-    try
-    {
-        // Copy header.
-        BamHeader header;
-        readHeader(header, bamFileIn);
-        writeHeader(bamFileOut, header);
-
-        // Copy records.
-        BamAlignmentRecord record;
-        while (!atEnd(bamFileIn))
-        {
-            readRecord(record, bamFileIn);
-            writeRecord(bamFileOut, record);
-        }
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    return 0;
-}
diff --git a/demos/tutorial/sam_and_bam_io/solution1.cpp.stdout b/demos/tutorial/sam_and_bam_io/solution1.cpp.stdout
deleted file mode 100644
index ea243b5..0000000
--- a/demos/tutorial/sam_and_bam_io/solution1.cpp.stdout
+++ /dev/null
@@ -1,9 +0,0 @@
- at HD	VN:1.3	SO:coordinate
- at SQ	SN:ref	LN:45
- at SQ	SN:ref2	LN:40
-r001	163	ref	7	30	8M4I4M1D3M	=	37	39	TTAGATAAAGAGGATACTG	*	XX:B:S,12561,2,20,112
-r002	0	ref	9	30	1S2I6M1P1I1P1I4M2I	*	0	0	AAAAGATAAGGGATAAA	*
-r003	0	ref	9	30	5H6M	*	0	0	AGCTAA	*
-r004	0	ref	16	30	6M14N1I5M	*	0	0	ATAGCTCTCAGC	*
-r003	16	ref	29	30	6H5M	*	0	0	TAGGC	*
-r001	83	ref	37	30	9M	=	7	-39	CAGCGCCAT	*
diff --git a/demos/tutorial/sam_and_bam_io/solution2.cpp b/demos/tutorial/sam_and_bam_io/solution2.cpp
deleted file mode 100644
index 2bb60c3..0000000
--- a/demos/tutorial/sam_and_bam_io/solution2.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString bamFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.sam");
-
-    // Open input file.
-    BamFileIn bamFileIn;
-    if (!open(bamFileIn, toCString(bamFileName)))
-    {
-        std::cerr << "ERROR: Could not open " << bamFileName << std::endl;
-        return 1;
-    }
-
-    unsigned numUnmappedReads = 0;
-
-    try
-    {
-        // Read header.
-        BamHeader header;
-        readHeader(header, bamFileIn);
-
-        // Read records.
-        BamAlignmentRecord record;
-        while (!atEnd(bamFileIn))
-        {
-            readRecord(record, bamFileIn);
-            if (hasFlagUnmapped(record))
-                numUnmappedReads += 1;
-        }
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    std::cout << "Number of unmapped reads: " << numUnmappedReads << "\n";
-
-    return 0;
-}
diff --git a/demos/tutorial/sam_and_bam_io/solution2.cpp.stdout b/demos/tutorial/sam_and_bam_io/solution2.cpp.stdout
deleted file mode 100644
index 8a81d80..0000000
--- a/demos/tutorial/sam_and_bam_io/solution2.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Number of unmapped reads: 0
diff --git a/demos/tutorial/sam_and_bam_io/solution3.cpp b/demos/tutorial/sam_and_bam_io/solution3.cpp
deleted file mode 100644
index 59c5599..0000000
--- a/demos/tutorial/sam_and_bam_io/solution3.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <seqan/bam_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString bamFileName = getAbsolutePath("/demos/tutorial/sam_and_bam_io/example.sam");
-
-    // Open input file.
-    BamFileIn bamFileIn;
-    if (!open(bamFileIn, toCString(bamFileName)))
-    {
-        std::cerr << "ERROR: Could not open " << bamFileName << std::endl;
-        return 1;
-    }
-
-    unsigned numXXtags = 0;
-
-    try
-    {
-        // Read header.
-        BamHeader header;
-        readHeader(header, bamFileIn);
-
-        // Rear records.
-        BamAlignmentRecord record;
-        while (!atEnd(bamFileIn))
-        {
-            readRecord(record, bamFileIn);
-            BamTagsDict tagsDict(record.tags);
-
-            unsigned tagIdx = 0;
-            if (findTagKey(tagIdx, tagsDict, "XX"))
-                numXXtags += 1;
-        }
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    std::cout << "Number of records with the XX tag: " << numXXtags << "\n";
-
-    return 0;
-}
diff --git a/demos/tutorial/sam_and_bam_io/solution3.cpp.stdout b/demos/tutorial/sam_and_bam_io/solution3.cpp.stdout
deleted file mode 100644
index 05ba41e..0000000
--- a/demos/tutorial/sam_and_bam_io/solution3.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-Number of records with the XX tag: 1
diff --git a/demos/tutorial/seed_and_extend/example1.cpp.stdout b/demos/tutorial/seed_and_extend/example1.cpp.stdout
deleted file mode 100644
index eda0f3f..0000000
--- a/demos/tutorial/seed_and_extend/example1.cpp.stdout
+++ /dev/null
@@ -1,16 +0,0 @@
-seed1
-beginPositionH == 0
-endPositionH == 0
-beginPositionV == 0
-endPositionV == 0
-lowerDiagonal == 0
-upperDiagonal == 0
-
-seed2
-beginPositionH == 3
-endPositionH == 7
-beginPositionV == 10
-endPositionV == 14
-lowerDiagonal == -9
-upperDiagonal == -7
-
diff --git a/demos/tutorial/seed_and_extend/example2.cpp.stdout b/demos/tutorial/seed_and_extend/example2.cpp.stdout
deleted file mode 100644
index 15abffd..0000000
--- a/demos/tutorial/seed_and_extend/example2.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-original
-seedH: ROW
-seedV: ROW
-result
-seedH: ick BROW
-seedV: ick BROW
diff --git a/demos/tutorial/seed_and_extend/example3.cpp.stdout b/demos/tutorial/seed_and_extend/example3.cpp.stdout
deleted file mode 100644
index 227e1f1..0000000
--- a/demos/tutorial/seed_and_extend/example3.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-original
-seedH: ROW
-seedV: ROW
-result
-seedH: ick BROWN fox
-seedV: ick BROWN box
diff --git a/demos/tutorial/seed_and_extend/example4.cpp b/demos/tutorial/seed_and_extend/example4.cpp
index 8857656..805626b 100644
--- a/demos/tutorial/seed_and_extend/example4.cpp
+++ b/demos/tutorial/seed_and_extend/example4.cpp
@@ -32,7 +32,7 @@ int main()
                                       endPositionV(seed)));
 
     globalAlignment(align, scoringScheme);
-    std::cout << "Resulting alignment\n" << align << "\n";
+    std::cerr << "Resulting alignment\n" << align << "\n";
 //![example]
 
 //![footer]
diff --git a/demos/tutorial/seed_and_extend/example4.cpp.stdout b/demos/tutorial/seed_and_extend/example4.cpp.stdout
deleted file mode 100644
index f307f80..0000000
--- a/demos/tutorial/seed_and_extend/example4.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Resulting alignment
-      0     .    :    
-        ick BROWN fox
-        |||||||||| ||
-        ick BROWN box
-
-
-
diff --git a/demos/tutorial/seed_and_extend/example5.cpp.stdout b/demos/tutorial/seed_and_extend/example5.cpp.stdout
deleted file mode 100644
index 0d2f7ff..0000000
--- a/demos/tutorial/seed_and_extend/example5.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-Resulting seeds.
-(3, 5, 5, 7, -2, -2)
-(0, 2, 0, 2, 0, 0)
-(9, 11, 9, 11, 0, 0)
-(4, 7, 2, 5, 2, 2)
diff --git a/demos/tutorial/seed_and_extend/example6.cpp.stdout b/demos/tutorial/seed_and_extend/example6.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/seed_and_extend/example7.cpp.stdout b/demos/tutorial/seed_and_extend/example7.cpp.stdout
deleted file mode 100644
index 3d57ac6..0000000
--- a/demos/tutorial/seed_and_extend/example7.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Resulting seeds.
-(3, 5, 5, 7, -2, -2)
-(0, 7, 0, 5, 0, 2)
-(9, 11, 9, 11, 0, 0)
diff --git a/demos/tutorial/seed_and_extend/example8.cpp.stdout b/demos/tutorial/seed_and_extend/example8.cpp.stdout
deleted file mode 100644
index ffe6240..0000000
--- a/demos/tutorial/seed_and_extend/example8.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Score: 5
-      0     .    :    .    :  
-        --CGAAT--CCATCCCACACA
-          || ||   |||    ||||
-        GGCG-ATNNNCATGG--CACA
-
-
-
diff --git a/demos/tutorial/seed_and_extend/solution1.cpp.stdout b/demos/tutorial/seed_and_extend/solution1.cpp.stdout
deleted file mode 100644
index 473922b..0000000
--- a/demos/tutorial/seed_and_extend/solution1.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-seed1
-beginPositionH == 6
-endPositionH == 14
-beginPositionV == 20
-endPositionV == 28
-lowerDiagonal == -18
-upperDiagonal == -14
-
diff --git a/demos/tutorial/seed_and_extend/solution2.cpp.stdout b/demos/tutorial/seed_and_extend/solution2.cpp.stdout
deleted file mode 100644
index 07814fd..0000000
--- a/demos/tutorial/seed_and_extend/solution2.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-original
-seedH: ROW
-seedV: ROW
-result
-seedH: ick BROWN
-seedV: ick BROWN
diff --git a/demos/tutorial/seed_and_extend/solution3.cpp.stdout b/demos/tutorial/seed_and_extend/solution3.cpp.stdout
deleted file mode 100644
index 9961e05..0000000
--- a/demos/tutorial/seed_and_extend/solution3.cpp.stdout
+++ /dev/null
@@ -1,6 +0,0 @@
-original
-seedH: ROW
-seedV: ROW
-result
-seedH:  quick BROWN fox ju
-seedV: thick BROWN boxes of
diff --git a/demos/tutorial/seed_and_extend/solution4.cpp b/demos/tutorial/seed_and_extend/solution4.cpp
index 4000bc0..5c276ee 100644
--- a/demos/tutorial/seed_and_extend/solution4.cpp
+++ b/demos/tutorial/seed_and_extend/solution4.cpp
@@ -28,8 +28,9 @@ int main()
     assignSource(row(align, 1), infix(seqV, beginPositionV(seed),
                                       endPositionV(seed)));
 
+    // TODO(holtgrew): Use seed diagonals as bands.
     globalAlignment(align, scoringScheme);
-    std::cout << "Resulting alignment\n" << align << "\n";
+    std::cerr << "Resulting alignment\n" << align << "\n";
 
     return 0;
 }
diff --git a/demos/tutorial/seed_and_extend/solution4.cpp.stdout b/demos/tutorial/seed_and_extend/solution4.cpp.stdout
deleted file mode 100644
index 52cc4c7..0000000
--- a/demos/tutorial/seed_and_extend/solution4.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Resulting alignment
-      0     .    :    .    :  
-         quick BROWN fox-- ju
-           |||||||||| ||  |  
-        -thick BROWN boxes of
-
-
-
diff --git a/demos/tutorial/seed_and_extend/solution5.cpp.stdout b/demos/tutorial/seed_and_extend/solution5.cpp.stdout
deleted file mode 100644
index 3d57ac6..0000000
--- a/demos/tutorial/seed_and_extend/solution5.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Resulting seeds.
-(3, 5, 5, 7, -2, -2)
-(0, 7, 0, 5, 0, 2)
-(9, 11, 9, 11, 0, 0)
diff --git a/demos/tutorial/seed_and_extend/solution6.cpp.stdout b/demos/tutorial/seed_and_extend/solution6.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/seed_and_extend/solution7.cpp.stdout b/demos/tutorial/seed_and_extend/solution7.cpp.stdout
deleted file mode 100644
index 51a1601..0000000
--- a/demos/tutorial/seed_and_extend/solution7.cpp.stdout
+++ /dev/null
@@ -1,8 +0,0 @@
-Score: 1
-      0     .    :    .    :  
-        --CGAAT--CCATCCCACACA
-          || ||   |||  ||||  
-        GGCG-ATNNNCATGGCACA--
-
-
-
diff --git a/demos/tutorial/seq_io/example1.cpp b/demos/tutorial/seq_io/example1.cpp
new file mode 100644
index 0000000..b4405b6
--- /dev/null
+++ b/demos/tutorial/seq_io/example1.cpp
@@ -0,0 +1,15 @@
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    CharString id;
+    Dna5String seq;
+
+    SeqFileIn seqFileIn("example.fa");
+    readRecord(id, seq, seqFileIn);
+    std::cout << id << '\t' << seq << '\n';
+
+    return 0;
+}
diff --git a/demos/tutorial/seq_io/solution1.cpp b/demos/tutorial/seq_io/solution1.cpp
new file mode 100644
index 0000000..b5cee95
--- /dev/null
+++ b/demos/tutorial/seq_io/solution1.cpp
@@ -0,0 +1,21 @@
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 2)
+    {
+        std::cerr << "USAGE: basic_seq_io_example FILENAME\n";
+        return 1;
+    }
+
+    CharString id;
+    Dna5String seq;
+
+    SeqFileIn seqFileIn(argv[1]);
+    readRecord(id, seq, seqFileIn);
+    std::cout << id << '\t' << seq << '\n';
+
+    return 0;
+}
diff --git a/demos/tutorial/seq_io/solution2.cpp b/demos/tutorial/seq_io/solution2.cpp
new file mode 100644
index 0000000..afe9c13
--- /dev/null
+++ b/demos/tutorial/seq_io/solution2.cpp
@@ -0,0 +1,36 @@
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 2)
+    {
+        std::cerr << "USAGE: basic_seq_io_example FILENAME\n";
+        return 1;
+    }
+
+    CharString id;
+    Dna5String seq;
+
+    SeqFileIn seqFileIn;
+    if (!open(seqFileIn, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open the file.\n";
+        return 1;
+    }
+
+    try
+    {
+        readRecord(id, seq, seqFileIn);
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    std::cout << id << '\t' << seq << '\n';
+
+    return 0;
+}
diff --git a/demos/tutorial/seq_io/solution3.cpp b/demos/tutorial/seq_io/solution3.cpp
new file mode 100644
index 0000000..9f6391e
--- /dev/null
+++ b/demos/tutorial/seq_io/solution3.cpp
@@ -0,0 +1,37 @@
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 2)
+    {
+        std::cerr << "USAGE: basic_seq_io_example FILENAME\n";
+        return 1;
+    }
+
+    SeqFileIn seqFileIn;
+    if (!open(seqFileIn, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open the file.\n";
+        return 1;
+    }
+
+    StringSet<CharString> ids;
+    StringSet<Dna5String> seqs;
+
+    try
+    {
+        readRecords(ids, seqs, seqFileIn);
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    for (unsigned i = 0; i < length(ids); ++i)
+        std::cout << ids[i] << '\t' << seqs[i] << '\n';
+
+    return 0;
+}
diff --git a/demos/tutorial/seq_io/solution4.cpp b/demos/tutorial/seq_io/solution4.cpp
new file mode 100644
index 0000000..c023408
--- /dev/null
+++ b/demos/tutorial/seq_io/solution4.cpp
@@ -0,0 +1,38 @@
+#include <seqan/seq_io.h>
+
+using namespace seqan;
+
+int main(int argc, char const ** argv)
+{
+    if (argc < 2)
+    {
+        std::cerr << "USAGE: basic_seq_io_example FILENAME\n";
+        return 1;
+    }
+
+    SeqFileIn seqFileIn;
+    if (!open(seqFileIn, argv[1]))
+    {
+        std::cerr << "ERROR: Could not open the file.\n";
+        return 1;
+    }
+
+    StringSet<CharString> ids;
+    StringSet<Dna5String> seqs;
+    StringSet<CharString> quals;
+
+    try
+    {
+        readRecords(ids, seqs, quals, seqFileIn);
+    }
+    catch (Exception const & e)
+    {
+        std::cout << "ERROR: " << e.what() << std::endl;
+        return 1;
+    }
+
+    for (unsigned i = 0; i < length(ids); ++i)
+        std::cout << ids[i] << '\t' << seqs[i] << quals[i] << '\n';
+
+    return 0;
+}
diff --git a/demos/unassigned_or_unused/tutorial_sequence/CMakeLists.txt b/demos/tutorial/sequence/CMakeLists.txt
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_sequence/CMakeLists.txt
rename to demos/tutorial/sequence/CMakeLists.txt
diff --git a/demos/unassigned_or_unused/tutorial_sequence/count_characters.cpp b/demos/tutorial/sequence/count_characters.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_sequence/count_characters.cpp
rename to demos/tutorial/sequence/count_characters.cpp
diff --git a/demos/unassigned_or_unused/tutorial_sequence/count_generic_characters.cpp b/demos/tutorial/sequence/count_generic_characters.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_sequence/count_generic_characters.cpp
rename to demos/tutorial/sequence/count_generic_characters.cpp
diff --git a/demos/unassigned_or_unused/tutorial_sequence/replace_as.cpp b/demos/tutorial/sequence/replace_as.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_sequence/replace_as.cpp
rename to demos/tutorial/sequence/replace_as.cpp
diff --git a/demos/unassigned_or_unused/tutorial_sequence/sequence_all_strings.cpp b/demos/tutorial/sequence/sequence_all_strings.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_sequence/sequence_all_strings.cpp
rename to demos/tutorial/sequence/sequence_all_strings.cpp
diff --git a/demos/unassigned_or_unused/tutorial_sequence/sequence_iterator_demo.cpp b/demos/tutorial/sequence/sequence_iterator_demo.cpp
similarity index 100%
rename from demos/unassigned_or_unused/tutorial_sequence/sequence_iterator_demo.cpp
rename to demos/tutorial/sequence/sequence_iterator_demo.cpp
diff --git a/demos/tutorial/sequence_io/example.fa b/demos/tutorial/sequence_io/example.fa
deleted file mode 100644
index 7b80ab1..0000000
--- a/demos/tutorial/sequence_io/example.fa
+++ /dev/null
@@ -1,6 +0,0 @@
->seq1
-CCCCCCCCCCCCCCC
->seq2
-CGATCGATC
->seq3
-TTTTTTT
\ No newline at end of file
diff --git a/demos/tutorial/sequence_io/example.fq b/demos/tutorial/sequence_io/example.fq
deleted file mode 100644
index a924750..0000000
--- a/demos/tutorial/sequence_io/example.fq
+++ /dev/null
@@ -1,12 +0,0 @@
- at seq1
-CCCCCCCCCCCCCCC
-+
-IIIIIHIIIIIIIII
- at seq2
-CGATCGATC
-+
-IIIIIIIII
- at seq3
-TTTTTTT
-+
-IIIIHHG
diff --git a/demos/tutorial/sequence_io/example1.cpp b/demos/tutorial/sequence_io/example1.cpp
deleted file mode 100644
index c207cbc..0000000
--- a/demos/tutorial/sequence_io/example1.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <seqan/seq_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString seqFileName = getAbsolutePath("/demos/tutorial/sequence_io/example.fa");
-    CharString id;
-    Dna5String seq;
-
-    SeqFileIn seqFileIn(toCString(seqFileName));
-    readRecord(id, seq, seqFileIn);
-    std::cout << id << '\t' << seq << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/sequence_io/example1.cpp.stdout b/demos/tutorial/sequence_io/example1.cpp.stdout
deleted file mode 100644
index af1d184..0000000
--- a/demos/tutorial/sequence_io/example1.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-seq1	CCCCCCCCCCCCCCC
diff --git a/demos/tutorial/sequence_io/solution1.cpp b/demos/tutorial/sequence_io/solution1.cpp
deleted file mode 100644
index c207cbc..0000000
--- a/demos/tutorial/sequence_io/solution1.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-#include <seqan/seq_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString seqFileName = getAbsolutePath("/demos/tutorial/sequence_io/example.fa");
-    CharString id;
-    Dna5String seq;
-
-    SeqFileIn seqFileIn(toCString(seqFileName));
-    readRecord(id, seq, seqFileIn);
-    std::cout << id << '\t' << seq << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/sequence_io/solution1.cpp.stdout b/demos/tutorial/sequence_io/solution1.cpp.stdout
deleted file mode 100644
index af1d184..0000000
--- a/demos/tutorial/sequence_io/solution1.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-seq1	CCCCCCCCCCCCCCC
diff --git a/demos/tutorial/sequence_io/solution2.cpp b/demos/tutorial/sequence_io/solution2.cpp
deleted file mode 100644
index d4fa1d2..0000000
--- a/demos/tutorial/sequence_io/solution2.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <seqan/seq_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString seqFileName = getAbsolutePath("/demos/tutorial/sequence_io/example.fa");
-    CharString id;
-    Dna5String seq;
-
-    SeqFileIn seqFileIn;
-    if (!open(seqFileIn, toCString(seqFileName)))
-    {
-        std::cerr << "ERROR: Could not open the file.\n";
-        return 1;
-    }
-
-    try
-    {
-        readRecord(id, seq, seqFileIn);
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    std::cout << id << '\t' << seq << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/sequence_io/solution2.cpp.stdout b/demos/tutorial/sequence_io/solution2.cpp.stdout
deleted file mode 100644
index af1d184..0000000
--- a/demos/tutorial/sequence_io/solution2.cpp.stdout
+++ /dev/null
@@ -1 +0,0 @@
-seq1	CCCCCCCCCCCCCCC
diff --git a/demos/tutorial/sequence_io/solution3.cpp b/demos/tutorial/sequence_io/solution3.cpp
deleted file mode 100644
index d13e2d0..0000000
--- a/demos/tutorial/sequence_io/solution3.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#include <seqan/seq_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString seqFileName = getAbsolutePath("/demos/tutorial/sequence_io/example.fa");
-
-    SeqFileIn seqFileIn;
-    if (!open(seqFileIn, toCString(seqFileName)))
-    {
-        std::cerr << "ERROR: Could not open the file.\n";
-        return 1;
-    }
-
-    StringSet<CharString> ids;
-    StringSet<Dna5String> seqs;
-
-    try
-    {
-        readRecords(ids, seqs, seqFileIn);
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    for (unsigned i = 0; i < length(ids); ++i)
-        std::cout << ids[i] << '\t' << seqs[i] << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/sequence_io/solution3.cpp.stdout b/demos/tutorial/sequence_io/solution3.cpp.stdout
deleted file mode 100644
index c03106f..0000000
--- a/demos/tutorial/sequence_io/solution3.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-seq1	CCCCCCCCCCCCCCC
-seq2	CGATCGATC
-seq3	TTTTTTT
diff --git a/demos/tutorial/sequence_io/solution4.cpp b/demos/tutorial/sequence_io/solution4.cpp
deleted file mode 100644
index 4e6b7ed..0000000
--- a/demos/tutorial/sequence_io/solution4.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <seqan/seq_io.h>
-
-using namespace seqan;
-
-int main()
-{
-    CharString seqFileName = getAbsolutePath("/demos/tutorial/sequence_io/example.fq");
-
-    SeqFileIn seqFileIn;
-    if (!open(seqFileIn, toCString(seqFileName)))
-    {
-        std::cerr << "ERROR: Could not open the file.\n";
-        return 1;
-    }
-
-    StringSet<CharString> ids;
-    StringSet<Dna5String> seqs;
-    StringSet<CharString> quals;
-
-    try
-    {
-        readRecords(ids, seqs, quals, seqFileIn);
-    }
-    catch (Exception const & e)
-    {
-        std::cout << "ERROR: " << e.what() << std::endl;
-        return 1;
-    }
-
-    for (unsigned i = 0; i < length(ids); ++i)
-        std::cout << ids[i] << '\t' << seqs[i] << quals[i] << '\n';
-
-    return 0;
-}
diff --git a/demos/tutorial/sequence_io/solution4.cpp.stdout b/demos/tutorial/sequence_io/solution4.cpp.stdout
deleted file mode 100644
index 94d654e..0000000
--- a/demos/tutorial/sequence_io/solution4.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-seq1	CCCCCCCCCCCCCCCIIIIIHIIIIIIIII
-seq2	CGATCGATCIIIIIIIII
-seq3	TTTTTTTIIIIHHG
diff --git a/demos/tutorial/sequences/assignment_1_solution.cpp b/demos/tutorial/sequences/assignment_1_solution.cpp
deleted file mode 100644
index ce3347b..0000000
--- a/demos/tutorial/sequences/assignment_1_solution.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// The comment lines containing ![fragment-line] are there for the
-// documentation system.  You can ignore them when reading this file.
-//![full]
-//![top]
-#include <seqan/sequence.h>
-#include <seqan/basic.h>
-#include <seqan/stream.h>
-#include <seqan/file.h>
-#include <seqan/modifier.h>
-
-using namespace seqan;
-
-Dna getRevCompl(Dna const & nucleotide)
-{
-    if (nucleotide == 'A')
-        return 'T';
-    if (nucleotide == 'T')
-        return 'A';
-    if (nucleotide == 'C')
-        return 'G';
-    return 'C';
-}
-
-int main()
-{
-    DnaString genome = "TATATACGCGCGAGTCGT";
-    DnaString revComplGenome;
-//![top]
-    //1.
-    resize(revComplGenome, length(genome));
-    //2.
-    for (unsigned i = 0; i < length(genome); ++i)
-        revComplGenome[length(genome) - 1 - i] = getRevCompl(genome[i]);
-    //3.
-    std::cout << genome << std::endl;
-    std::cout << revComplGenome << std::endl;
-//![bottom]
-
-    // And to check if your output is correct,
-    // use the given SeqAn function reverseComplement(),
-    // which modifies the sequence in-place:
-    reverseComplement(genome);
-    std::cout << genome << std::endl;
-    return 0;
-}
-//![bottom]
-//![full]
diff --git a/demos/tutorial/sequences/assignment_1_solution.cpp.stdout b/demos/tutorial/sequences/assignment_1_solution.cpp.stdout
deleted file mode 100644
index 85268ea..0000000
--- a/demos/tutorial/sequences/assignment_1_solution.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-TATATACGCGCGAGTCGT
-ACGACTCGCGCGTATATA
-ACGACTCGCGCGTATATA
diff --git a/demos/tutorial/sequences/assignment_2_solution.cpp b/demos/tutorial/sequences/assignment_2_solution.cpp
deleted file mode 100644
index 12aa4dc..0000000
--- a/demos/tutorial/sequences/assignment_2_solution.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// The comment lines containing ![fragment-line] are there for the
-// documentation system.  You can ignore them when reading this file.
-//![full]
-//![one]
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-
-using namespace seqan;
-// Function to print simple alignment between two sequences with the same length
-template <typename TText1, typename TText2>
-void printAlign(TText1 const & genomeFragment, TText2 const & read)
-{
-    std::cout <<  "Alignment " << std::endl;
-    std::cout << "  genome : " << genomeFragment << std::endl;
-    std::cout << "  read   : " << read << std::endl;
-}
-
-int main()
-{
-    // Build reads and genomes
-    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
-
-    // Build List containing all reads
-    typedef String<DnaString> TDnaList;
-    TDnaList readList;
-    resize(readList, 4);
-    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
-    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
-    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
-    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
-
-    // Append a second chromosome sequence fragment to chr1
-    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
-    append(chr1, chr2);
-
-    // Print readlist
-    std::cout << " \n Read list: " << std::endl;
-    for (unsigned i = 0; i < length(readList); ++i)
-        std::cout << readList[i] << std::endl;
-
-    // 1. Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
-    // Store the start position in a String alignPosList: 7, 100, 172, 272
-//![one]
-    String<unsigned> alignPosList;
-    resize(alignPosList, 4);
-    alignPosList[0] = 7;
-    alignPosList[1] = 100;
-    alignPosList[2] = 172;
-    alignPosList[3] = 272;
-
-    // 2. Bisulfite conversion
-    // Assume chr1 is beeing bisulfate treated: Copy chr1 to a new genome bsChr1 and exchange every 'C' with a 'T'
-    DnaString bsChr1;
-    assign(bsChr1, chr1);
-    for (unsigned i = 0; i < length(bsChr1); ++i)
-        if (bsChr1[i] == 'C')
-            bsChr1[i] = 'T';
-//![two]
-    // 3. Print alignments of the reads with chr1 (or bsChr1) sequence using the function printAlign
-    // and the positions in alignPosList.
-    // To do that, you have to create a copy of the fragment in chr1 (bsChr1) that is aligned to the read.
-    std::cout << " \n Print alignment: " << std::endl;
-    for (unsigned i = 0; i < length(readList); ++i)
-    {
-        // Begin position beginPosition of a given alignment between the read and the genome
-//![two]
-        unsigned beginPosition = alignPosList[i];
-//![three]
-
-        // Genome fragment
-        DnaString genomeFragment;
-//![three]
-
-        // We have to create a copy of the corresponding fragment of the genome, where the read aligns to
-        for (unsigned j = 0; j < length(readList[i]); ++j)
-            appendValue(genomeFragment, chr1[beginPosition + j]);
-//![four]
-
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, readList[i]);
-    }
-    return 0;
-}
-//![four]
-//![full]
diff --git a/demos/tutorial/sequences/assignment_2_solution.cpp.stdout b/demos/tutorial/sequences/assignment_2_solution.cpp.stdout
deleted file mode 100644
index e25d230..0000000
--- a/demos/tutorial/sequences/assignment_2_solution.cpp.stdout
+++ /dev/null
@@ -1,20 +0,0 @@
- 
- Read list: 
-TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
diff --git a/demos/tutorial/sequences/assignment_3_solution.cpp b/demos/tutorial/sequences/assignment_3_solution.cpp
deleted file mode 100644
index 546772d..0000000
--- a/demos/tutorial/sequences/assignment_3_solution.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-   #include <seqan/stream.h>
-   #include <seqan/sequence.h>
-   #include <seqan/file.h>
-
-   using namespace seqan;
-
-   int main()
-   {
-       String<Dna5> nucleotides = "AGTCGTGNNANCT";
-       String<Dna5> lesser;
-       String<Dna5> greater;
-
-       for (unsigned i = 0; i < length(nucleotides); ++i){
-	   if (nucleotides[i] < 'G')
-	       appendValue(lesser, nucleotides[i]);
-	   else if (nucleotides[i] > 'G')
-	       appendValue(greater, nucleotides[i]);
-       }
-       std::cout << "Lesser nucleotides: " << lesser << std::endl;
-       std::cout << "Greater nucleotides: " << greater << std::endl;
-   }
-
diff --git a/demos/tutorial/sequences/assignment_3_solution.cpp.stdout b/demos/tutorial/sequences/assignment_3_solution.cpp.stdout
deleted file mode 100644
index f267017..0000000
--- a/demos/tutorial/sequences/assignment_3_solution.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Lesser nucleotides: ACAC
-Greater nucleotides: TTNNNT
diff --git a/demos/tutorial/sequences/assignment_4_solution.cpp.stdout b/demos/tutorial/sequences/assignment_4_solution.cpp.stdout
deleted file mode 100644
index 0fd9ed9..0000000
--- a/demos/tutorial/sequences/assignment_4_solution.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Lesser sequences: 
-ATATANGCGT, AAGCATGANT, 
-Greater sequences: 
-TGAAANTGAC, 
\ No newline at end of file
diff --git a/demos/tutorial/sequences/assignment_5_solution.cpp b/demos/tutorial/sequences/assignment_5_solution.cpp
deleted file mode 100644
index 8d2a37d..0000000
--- a/demos/tutorial/sequences/assignment_5_solution.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// The comment lines containing ![fragment-line] are there for the
-// documentation system.  You can ignore them when reading this file.
-//![full]
-//![top]
-#include <iostream>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-
-using namespace seqan;
-
-// Function to print simple alignment between two sequences with the same length
-// .. for two sequences of different types
-template <typename TText1, typename TText2>
-void printAlign(TText1 const & genomeFragment, TText2 const & read)
-{
-    std::cout <<  "Alignment " << std::endl;
-    std::cout << "  genome : ";
-    std::cout << genomeFragment << std::endl;
-    std::cout << "  read   : ";
-    std::cout << read << std::endl;
-}
-
-int main()
-{
-    // We have given a genome sequence
-    Dna5String genome = "ATGGTTTCAACGTAATGCTGAACATGTCGCGT";
-    // A read sequence
-    Dna5String read = "TGGTNTCA";
-    // And the begin position of a given alignment between the read and the genome
-    unsigned beginPosition = 1;
-//![top]
-
-    // Create Infix of type Dna5String and get the corresponding infix sequence of genome
-    Infix<Dna5String>::Type inf = infix(genome, beginPosition, beginPosition + length(read));
-
-//![bottom]
-    // Call of our function to print the simple alignment
-    printAlign(inf, read);
-    return 0;
-}
-//![bottom]
-//![full]
diff --git a/demos/tutorial/sequences/assignment_5_solution.cpp.stdout b/demos/tutorial/sequences/assignment_5_solution.cpp.stdout
deleted file mode 100644
index 9b30e21..0000000
--- a/demos/tutorial/sequences/assignment_5_solution.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-Alignment 
-  genome : TGGTTTCA
-  read   : TGGTNTCA
diff --git a/demos/tutorial/sequences/assignment_4_solution.cpp b/demos/tutorial/sequences/lexical_assignment_solution.cpp
similarity index 100%
rename from demos/tutorial/sequences/assignment_4_solution.cpp
rename to demos/tutorial/sequences/lexical_assignment_solution.cpp
diff --git a/demos/tutorial/sequences/assignment_6_solution.cpp b/demos/tutorial/sequences/segments_assignment_2_solution.cpp
similarity index 100%
rename from demos/tutorial/sequences/assignment_6_solution.cpp
rename to demos/tutorial/sequences/segments_assignment_2_solution.cpp
diff --git a/demos/tutorial/sequences/segments_assignment_hint.cpp b/demos/tutorial/sequences/segments_assignment_hint.cpp
new file mode 100644
index 0000000..ebf161d
--- /dev/null
+++ b/demos/tutorial/sequences/segments_assignment_hint.cpp
@@ -0,0 +1,38 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+
+// Function to print simple alignment between two sequences with the same length
+// .. for two sequences of the same type
+template <typename TText>
+void printAlign(TText const & genomeFragment, TText const & read)
+{
+    std::cout <<  "Alignment " << std::endl;
+    std::cout << "  genome : ";
+    std::cout << genomeFragment << std::endl;
+    std::cout << "  read   : ";
+    std::cout << read << std::endl;
+}
+
+int main()
+{
+    // We have given a genome sequence
+    Dna5String genome = "ATGGTTTCAACGTAATGCTGAACATGTCGCGT";
+    // A read sequence
+    Dna5String read = "TGGTNTCA";
+    // And the begin position of a given alignment between the read and the genome
+    unsigned beginPosition = 1;
+
+    Dna5String genomeFragment;
+    // We have to create a copy of the corresponding fragment of the genome, where the read aligns to
+    for (unsigned i = 0; i < length(read); ++i)
+    {
+        appendValue(genomeFragment, genome[beginPosition + i]);
+    }
+    // Call of our function to print the simple alignment
+    printAlign(genomeFragment, read);
+
+    return 0;
+}
diff --git a/demos/tutorial/sequences/segments_assignment_solution.cpp b/demos/tutorial/sequences/segments_assignment_solution.cpp
new file mode 100644
index 0000000..f1360fe
--- /dev/null
+++ b/demos/tutorial/sequences/segments_assignment_solution.cpp
@@ -0,0 +1,33 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+
+// Function to print simple alignment between two sequences with the same length
+// .. for two sequences of different types
+template <typename TText1, typename TText2>
+void printAlign(TText1 const & genomeFragment, TText2 const & read)
+{
+    std::cout <<  "Alignment " << std::endl;
+    std::cout << "  genome : ";
+    std::cout << genomeFragment << std::endl;
+    std::cout << "  read   : ";
+    std::cout << read << std::endl;
+}
+
+int main()
+{
+    // We have given a genome sequence
+    Dna5String genome = "ATGGTTTCAACGTAATGCTGAACATGTCGCGT";
+    // A read sequence
+    Dna5String read = "TGGTNTCA";
+    // And the begin position of a given alignment between the read and the genome
+    unsigned beginPosition = 1;
+
+    // Create Infix of type Dna5String and get the corresponding infix sequence of genome
+    Infix<Dna5String>::Type inf = infix(genome, beginPosition, beginPosition + length(read));
+    // Call of our function to print the simple alignment
+    printAlign(inf, read);
+    return 0;
+}
diff --git a/demos/tutorial/sequences/string_assignment_1_solution.cpp b/demos/tutorial/sequences/string_assignment_1_solution.cpp
new file mode 100644
index 0000000..f1b832f
--- /dev/null
+++ b/demos/tutorial/sequences/string_assignment_1_solution.cpp
@@ -0,0 +1,67 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+// Function to print simple alignment between two sequences with the same length
+template <typename TText1, typename TText2>
+void printAlign(TText1 const & genomeFragment, TText2 const & read)
+{
+    std::cout <<  "Alignment " << std::endl;
+    std::cout << "  genome : " << genomeFragment << std::endl;
+    std::cout << "  read   : " << read << std::endl;
+}
+
+int main(int, char const **)
+{
+    // Build reads and genomes
+    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
+    // Build List containing all reads
+    typedef String<DnaString> TDnaList;
+    TDnaList readList;
+    resize(readList, 4);
+    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
+    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
+    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
+    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
+    // Append a second chromosome sequence fragment to chr1
+    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
+    append(chr1, chr2);
+    // Print readlist
+    std::cout << " \n Read list: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+        std::cout << readList[i] << std::endl;
+    // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
+    // Store the start position in a String alignPosList: 7, 100, 172, 272
+    String<unsigned> alignPosList;
+    resize(alignPosList, 4);
+    alignPosList[0] = 7;
+    alignPosList[1] = 100;
+    alignPosList[2] = 172;
+    alignPosList[3] = 272;
+    // Optional
+    // Bisulfite conversion
+    // Assume chr1 is beeing bisulfate treated: Copy chr1 to a new genome bsChr1 and exchange every 'C' with a 'T'
+    DnaString bsChr1;
+    assign(bsChr1, chr1);
+    for (unsigned i = 0; i < length(bsChr1); ++i)
+        if (bsChr1[i] == 'C')
+            bsChr1[i] = 'T';
+    // Print alignments of the reads with chr1 (or bsChr1) sequence using the function printAlign
+    // and the positions in alignPosList.
+    // To do that, you have to create a copy of the fragment in chr1 (bsChr1) that is aligned to the read.
+    std::cout << " \n Print alignment: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+    {
+        // Begin position beginPosition of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        // Genome fragment
+        DnaString genomeFragment;
+        // We have to create a copy of the corresponding fragment of the genome, where the read aligns to
+        for (unsigned j = 0; j < length(readList[i]); ++j)
+            appendValue(genomeFragment, chr1[beginPosition + j]);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, readList[i]);
+    }
+    return 1;
+}
diff --git a/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp b/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp
index 05c0279..312131e 100644
--- a/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp
+++ b/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp
@@ -1,26 +1,34 @@
 #include <iostream>
 #include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+#include <time.h>
 
 using namespace seqan;
 
 int main()
 {
-    unsigned num = 100000;
-    double start;
+    unsigned num = 1000000;
+    time_t start;
 
     String<Dna> str;
     clear(str);
-    start = sysTime();
+    start = time(NULL);
     for (unsigned i = 0; i < num; ++i)
+    {
+
         appendValue(str, 'A', Exact());
-    std::cout << "Strategy Exact() took: " << sysTime() - start << " s\n\n";
+    }
+    std::cout << "Strategy Exact() took: " << time(NULL) - start << " s\n\n";
 
     clear(str);
-    shrinkToFit(str);
-    start = sysTime();
+    start = time(NULL);
     for (unsigned i = 0; i < num; ++i)
+    {
+
         appendValue(str, 'A', Generous());
-    std::cout << "Strategy Generous() took: " << sysTime() - start << " s\n\n";
+    }
+    std::cout << "Strategy Generous() took: " << time(NULL) - start << " s\n\n";
 
     return 0;
 }
diff --git a/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp.stdout b/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp.stdout
deleted file mode 100644
index 1d843ad..0000000
--- a/demos/tutorial/sequences_in_depth/assignment_exact_generous_solution.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Strategy Exact() took: 380 s
-
-Strategy Generous() took: 0 s
-
diff --git a/demos/tutorial/sequences_in_depth/example_overflow.cpp b/demos/tutorial/sequences_in_depth/example_overflow.cpp
deleted file mode 100644
index 926fe68..0000000
--- a/demos/tutorial/sequences_in_depth/example_overflow.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <seqan/stream.h>
-
-using namespace seqan;
-
-int main()
-{
-//![example]
-   String<Dna> dnaSeq;
-   // Sets the capacity of dnaSeq to 5.
-   resize(dnaSeq, 4, Exact());
-   // Only "TATA" is assigned to dnaSeq, since dnaSeq is limited to 4.
-   assign(dnaSeq, "TATAGGGG", Limit());
-   std::cout << dnaSeq << std::endl;
-   // Use the default expansion strategy.
-   append(dnaSeq, "GCGCGC");
-   std::cout << dnaSeq << std::endl;
-//![example]
-   return 0;
-}
\ No newline at end of file
diff --git a/demos/tutorial/sequences_in_depth/example_overflow.cpp.stdout b/demos/tutorial/sequences_in_depth/example_overflow.cpp.stdout
deleted file mode 100644
index fb21fe6..0000000
--- a/demos/tutorial/sequences_in_depth/example_overflow.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-TATA
-TATAGCGCGC
diff --git a/demos/tutorial/simple_rna_seq/example.gtf b/demos/tutorial/simple_rna_seq/example.gtf
deleted file mode 100644
index bac3f84..0000000
--- a/demos/tutorial/simple_rna_seq/example.gtf
+++ /dev/null
@@ -1,12 +0,0 @@
-#!genome-build BDGP 5
-#!genome-version BDGP5
-#!genome-date 2006-04
-#!genome-build-accession NCBI:GCA_000001215.1
-#!genebuild-last-updated 2012-04
-Uextra	FlyBase	gene	523024	523086	.	-	.	gene_id "FBgn0264003"; gene_version "5"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA";
-Uextra	FlyBase	transcript	523024	523086	.	-	.	gene_id "FBgn0264003"; gene_version "5"; transcript_id "FBtr0330361"; transcript_version "5"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA"; transcript_name "mir-5613-RM"; transcript_source "FlyBase"; transcript_biotype "pre_miRNA";
-Uextra	FlyBase	exon	523024	523086	.	-	.	gene_id "FBgn0264003"; gene_version "5"; transcript_id "FBtr0330361"; transcript_version "5"; exon_number "1"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA"; transcript_name "mir-5613-RM"; transcript_source "FlyBase"; transcript_biotype "pre_miRNA"; exon_id "FBtr0330361:1"; exon_version "1";
-Uextra	FlyBase	transcript	523024	523048	.	-	.	gene_id "FBgn0264003"; gene_version "5"; transcript_id "FBtr0330363"; transcript_version "5"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA"; transcript_name "mir-5613-RB"; transcript_source "FlyBase"; transcript_biotype "miRNA";
-Uextra	FlyBase	exon	523024	523048	.	-	.	gene_id "FBgn0264003"; gene_version "5"; transcript_id "FBtr0330363"; transcript_version "5"; exon_number "1"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA"; transcript_name "mir-5613-RB"; transcript_source "FlyBase"; transcript_biotype "miRNA"; exon_id "FBtr0330363:1"; exon_version "1";
-Uextra	FlyBase	transcript	523060	523086	.	-	.	gene_id "FBgn0264003"; gene_version "5"; transcript_id "FBtr0330362"; transcript_version "5"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA"; transcript_name "mir-5613-RA"; transcript_source "FlyBase"; transcript_biotype "miRNA";
-Uextra	FlyBase	exon	523060	523086	.	-	.	gene_id "FBgn0264003"; gene_version "5"; transcript_id "FBtr0330362"; transcript_version "5"; exon_number "1"; gene_name "mir-5613"; gene_source "FlyBase"; gene_biotype "pre_miRNA"; transcript_name "mir-5613-RA"; transcript_source "FlyBase"; transcript_biotype "miRNA"; exon_id "FBtr0330362:1"; exon_version "1";
diff --git a/demos/tutorial/simple_rna_seq/example.sam b/demos/tutorial/simple_rna_seq/example.sam
deleted file mode 100644
index fc20de2..0000000
--- a/demos/tutorial/simple_rna_seq/example.sam
+++ /dev/null
@@ -1,22 +0,0 @@
-sim020940898	163	Y	61657	255	36M	=	61815	0	TAAAATTTATTTCTCACACTTTGTCAGTCTGTAAAG	*	XS:A:-
-sim005851145	163	Y	61680	255	36M	=	61894	0	TCAGTCTGTAAAGGATATATTGAATACCCTATTTAA	*	XS:A:-
-sim013167198	163	Y	61684	255	36M	=	61866	0	TCTGTAAAGGATATATTGAATACCCTATTTAATAAA	*	XS:A:-
-sim030230963	99	Y	61714	255	36M	=	61924	0	AATAAAACATAAAGTCAAATAGGCGCAATATCATCT	*	XS:A:-
-sim031859056	163	Y	61720	255	36M	=	61944	0	ACATAAAGTCAAATAGGCGCAATATCATCTTTATAT	*	XS:A:-
-sim038307292	163	Y	61724	255	36M	=	61912	0	AAAGTCAAATAGGCGCAATATCATCTTTATATTCAC	*	XS:A:-
-sim029261458	99	Y	61735	255	36M	=	61926	0	GGCGCAATATCATCTTTATATTCACTTGACAAATTC	*	XS:A:-
-sim026623121	99	Y	61742	255	36M	=	61906	0	TATCATATTTATATTCACTTGACAAATTCATGACAT	*	XS:A:-
-sim030145028	163	Y	61750	255	36M	=	61925	0	TTATATTCACTTGACAAATTCATGACATTGAATGTG	*	XS:A:-
-sim032741464	163	Y	61751	255	36M	=	61925	0	TATATTCACTTGACAAATTCATGACATTGAATGTGA	*	XS:A:-
-sim006398871	99	Y	61756	255	36M	=	61921	0	TCACTTGACAAATTCATGACATTGAATGTGAACAAG	*	XS:A:-
-sim023135580	163	Y	61756	255	36M	=	61946	0	TCACTTGACAAATTCATGACATTGAATGTGAACAAG	*	XS:A:-
-sim022488315	99	Y	61777	255	36M	=	61984	0	TTGAATGTGAACAAGGATGCCTACTTTTAAAATGAA	*	XS:A:-
-sim038909996	99	Y	61778	255	36M	=	61964	0	TGAATGTGAACAAGGATGCCTACTTTTAAAATGAAT	*	XS:A:-
-sim012316743	163	Y	61783	255	36M	=	61957	0	GTGAACAAGGATGCCTACTTTTAAAATGAATTTCCT	*	XS:A:-
-sim026592158	99	Y	61784	255	36M	=	61963	0	TGAACAAGGATGCCTACTTTTAAAATGAATTTCCTG	*	XS:A:-
-sim018913416	99	Y	61785	255	36M	=	61954	0	GAACAAGGATGCCTGCTTTTAAAATGAATTTACTGT	*	XS:A:-
-sim012768899	99	Y	61793	255	36M	=	61984	0	ATGCCTGCTTTTAAAATGAATTTACTGTCTCAATGC	*	XS:A:-
-sim007458546	99	Y	61807	255	36M	=	61952	0	AATGAATTTACTGTCTCAATGCCAATATCCCTATAT	*	XS:A:-
-sim020940898	83	Y	61815	255	36M	=	61657	0	TACTGTCTCAATGCCAATATCCCTATATGTTAGGAT	*	XS:A:-
-sim001086279	99	Y	61831	255	36M	=	62036	0	ATATCCCTATATGTTAGGATTATACACTTAGGGCAG	*	XS:A:-
-sim024860817	163	Y	61833	255	36M	=	62032	0	ATCCCTATATGTTAGGATTATACACTTAGGGCAGGC	*	XS:A:-
\ No newline at end of file
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment1.cpp b/demos/tutorial/simple_rna_seq/genequant_assignment1.cpp
deleted file mode 100644
index c1f044f..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_assignment1.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-// define used types
-typedef FragmentStore<> TStore;
-//
-// 2. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    // INSERT YOUR CODE HERE ...
-    //
-
-    return true;
-}
-
-//![main]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, annotationFileName))
-        return 1;
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment1.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_assignment1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment2.cpp b/demos/tutorial/simple_rna_seq/genequant_assignment2.cpp
deleted file mode 100644
index 45b244e..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_assignment2.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-//![definitions]
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-//![definitions]
-
-//![definitions_end]
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//![definitions_end]
-
-//![yourcode]
-//
-// 3. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // INSERT YOUR CODE HERE ...
-    //
-}
-//![yourcode]
-
-//![yourcode_end]
-int main(int argc, char const * argv[])
-{
-//![main]
-    TStore store;
-    String<String<TInterval> > intervals;
-//![main]
-//![main_end]
-
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-//![main_end]
-//![main2]
-    extractGeneIntervals(intervals, store);
-//![main2]
-
-//![main2_end]
-    return 0;
-}
-//![main2_end]
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment2.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_assignment2.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment3.cpp b/demos/tutorial/simple_rna_seq/genequant_assignment3.cpp
deleted file mode 100644
index 685ae7c..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_assignment3.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-//![definitions]
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-typedef IntervalTree<TPos, TId>                 TIntervalTree;
-//![definitions]
-//![definitions_end]
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-
-//![definitions_end]
-//![yourcode]
-//
-// 3. Construct interval trees
-//
-void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
-                            String<String<TInterval> > & intervals)
-{
-    // INSERT YOUR CODE HERE ...
-    //
-}
-//![yourcode]
-
-//![yourcode_end]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-//![yourcode_end]
-//![main]
-    String<String<TInterval> > intervals;
-    String<TIntervalTree> intervalTrees;
-//![main]
-
-//![main_end]
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-//![main_end]
-
-//![main2]
-    extractGeneIntervals(intervals, store);
-    constructIntervalTrees(intervalTrees, intervals);
-//![main2]
-
-//![main2_end]
-    return 0;
-}
-//![main2_end]
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment3.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_assignment3.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment4.cpp b/demos/tutorial/simple_rna_seq/genequant_assignment4.cpp
deleted file mode 100644
index 7270b3b..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_assignment4.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/arg_parse.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-//![definitions]
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-typedef IntervalTree<TPos, TId>                 TIntervalTree;
-typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
-//![definitions]
-
-//![definitions_end]
-
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-
-//
-// 3. Construct interval trees
-//
-void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
-                            String<String<TInterval> > & intervals)
-{
-    int numContigs = length(intervals);
-    resize(intervalTrees, numContigs);
-
-    SEQAN_OMP_PRAGMA(parallel for)
-    for (int i = 0; i < numContigs; ++i)
-        createIntervalTree(intervalTrees[i], intervals[i]);
-}
-
-//![definitions_end]
-
-//![yourcode]
-//
-// 4. Count reads per gene
-//
-void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
-{
-    // INSERT YOUR CODE HERE ...
-    //
-}
-//![yourcode]
-
-//![yourcode_end]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    String<String<TInterval> > intervals;
-//![yourcode_end]
-
-//![main]
-    String<TIntervalTree> intervalTrees;
-    String<unsigned> readsPerGene;
-//![main]
-
-//![main_end]
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-//![main_end]
-
-//![main2]
-    extractGeneIntervals(intervals, store);
-    constructIntervalTrees(intervalTrees, intervals);
-    countReadsPerGene(readsPerGene, intervalTrees, store);
-//![main2]
-
-//![main2_end]
-    return 0;
-}
-//![main2_end]
\ No newline at end of file
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment4.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_assignment4.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment5.cpp b/demos/tutorial/simple_rna_seq/genequant_assignment5.cpp
deleted file mode 100644
index a83190b..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_assignment5.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/arg_parse.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-//![definitions]
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-typedef IntervalTree<TPos, TId>                 TIntervalTree;
-typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
-//![definitions]
-
-//![definitions_end]
-
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-
-//
-// 3. Construct interval trees
-//
-void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
-                            String<String<TInterval> > & intervals)
-{
-    int numContigs = length(intervals);
-    resize(intervalTrees, numContigs);
-
-    SEQAN_OMP_PRAGMA(parallel for)
-    for (int i = 0; i < numContigs; ++i)
-        createIntervalTree(intervalTrees[i], intervals[i]);
-}
-
-//
-// 4. Count reads per gene
-//
-void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
-{
-    resize(readsPerGene, length(store.annotationStore), 0);
-    String<TId> result;
-    int numAlignments = length(store.alignedReadStore);
-
-    // iterate aligned reads and get search their begin and end positions
-    SEQAN_OMP_PRAGMA(parallel for private (result))
-    for (int i = 0; i < numAlignments; ++i)
-    {
-        TAlignedRead const & ar = store.alignedReadStore[i];
-        TPos queryBegin = _min(ar.beginPos, ar.endPos);
-        TPos queryEnd = _max(ar.beginPos, ar.endPos);
-
-        // search read-overlapping genes
-        findIntervals(result, intervalTrees[ar.contigId], queryBegin, queryEnd);
-
-        // increase read counter for each overlapping annotation given the id in the interval tree
-        for (unsigned j = 0; j < length(result); ++j)
-        {
-            SEQAN_OMP_PRAGMA(atomic)
-            readsPerGene[result[j]] += 1;
-        }
-    }
-}
-
-//![definitions_end]
-
-//![yourcode]
-//
-// 5. Output RPKM values
-//
-void outputGeneCoverage(String<unsigned> const & readsPerGene, TStore const & store)
-{
-    // INSERT YOUR CODE HERE ...
-    //
-}
-//![yourcode]
-
-//![yourcode_end]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    String<String<TInterval> > intervals;
-    String<TIntervalTree> intervalTrees;
-    String<unsigned> readsPerGene;
-
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-
-//![yourcode_end]
-
-//![main]
-    extractGeneIntervals(intervals, store);
-    constructIntervalTrees(intervalTrees, intervals);
-    countReadsPerGene(readsPerGene, intervalTrees, store);
-    outputGeneCoverage(readsPerGene, store);
-//![main]
-
-//![main_end]
-    return 0;
-}
-//![main_end]
diff --git a/demos/tutorial/simple_rna_seq/genequant_assignment5.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_assignment5.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution1.cpp b/demos/tutorial/simple_rna_seq/genequant_solution1.cpp
deleted file mode 100644
index 29f01ec..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution1.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-// define used types
-typedef FragmentStore<> TStore;
-
-//![solution]
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-//![solution]
-
-//![main]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution1.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_solution1.cpp.stdout
deleted file mode 100644
index d08b74c..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution1.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Loading read alignments ..... [22]
-Loading genome annotation ... [12]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution2.cpp b/demos/tutorial/simple_rna_seq/genequant_solution2.cpp
deleted file mode 100644
index ff81bfb..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution2.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//![solution]
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-//![solution]
-
-//![main]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    String<String<TInterval> > intervals;
-
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-
-    extractGeneIntervals(intervals, store);    
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution2.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_solution2.cpp.stdout
deleted file mode 100644
index d08b74c..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution2.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Loading read alignments ..... [22]
-Loading genome annotation ... [12]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution3.cpp b/demos/tutorial/simple_rna_seq/genequant_solution3.cpp
deleted file mode 100644
index 14a4353..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution3.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-typedef IntervalTree<TPos, TId>                 TIntervalTree;
-
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-
-//![solution]
-//
-// 3. Construct interval trees
-//
-void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
-                            String<String<TInterval> > & intervals)
-{
-    int numContigs = length(intervals);
-    resize(intervalTrees, numContigs);
-
-    SEQAN_OMP_PRAGMA(parallel for)
-    for (int i = 0; i < numContigs; ++i)
-        createIntervalTree(intervalTrees[i], intervals[i]);
-}
-//![solution]
-
-//![main]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    String<String<TInterval> > intervals;
-    String<TIntervalTree> intervalTrees;
-
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-
-    extractGeneIntervals(intervals, store);
-    constructIntervalTrees(intervalTrees, intervals);
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution3.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_solution3.cpp.stdout
deleted file mode 100644
index d08b74c..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution3.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Loading read alignments ..... [22]
-Loading genome annotation ... [12]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution4.cpp b/demos/tutorial/simple_rna_seq/genequant_solution4.cpp
deleted file mode 100644
index f8381b0..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution4.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-typedef IntervalTree<TPos, TId>                 TIntervalTree;
-typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
-
-
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-
-//
-// 3. Construct interval trees
-//
-void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
-                            String<String<TInterval> > & intervals)
-{
-    int numContigs = length(intervals);
-    resize(intervalTrees, numContigs);
-
-    SEQAN_OMP_PRAGMA(parallel for)
-    for (int i = 0; i < numContigs; ++i)
-        createIntervalTree(intervalTrees[i], intervals[i]);
-}
-
-//![solution]
-//
-// 4. Count reads per gene
-//
-void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
-{
-    resize(readsPerGene, length(store.annotationStore), 0);
-    String<TId> result;
-    int numAlignments = length(store.alignedReadStore);
-
-    // iterate aligned reads and get search their begin and end positions
-    SEQAN_OMP_PRAGMA(parallel for private (result))
-    for (int i = 0; i < numAlignments; ++i)
-    {
-        TAlignedRead const & ar = store.alignedReadStore[i];
-        TPos queryBegin = _min(ar.beginPos, ar.endPos);
-        TPos queryEnd = _max(ar.beginPos, ar.endPos);
-
-        // search read-overlapping genes
-        findIntervals(result, intervalTrees[ar.contigId], queryBegin, queryEnd);
-
-        // increase read counter for each overlapping annotation given the id in the interval tree
-        for (unsigned j = 0; j < length(result); ++j)
-        {
-            SEQAN_OMP_PRAGMA(atomic)
-            readsPerGene[result[j]] += 1;
-        }
-    }
-}
-//![solution]
-
-//![main]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    String<String<TInterval> > intervals;
-    String<TIntervalTree> intervalTrees;
-    String<unsigned> readsPerGene;
-
-
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-
-    extractGeneIntervals(intervals, store);
-    constructIntervalTrees(intervalTrees, intervals);
-    countReadsPerGene(readsPerGene, intervalTrees, store);
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution4.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_solution4.cpp.stdout
deleted file mode 100644
index d08b74c..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution4.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Loading read alignments ..... [22]
-Loading genome annotation ... [12]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution5.cpp b/demos/tutorial/simple_rna_seq/genequant_solution5.cpp
deleted file mode 100644
index fdb22bc..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution5.cpp
+++ /dev/null
@@ -1,191 +0,0 @@
-#include <iostream>
-#include <seqan/store.h>
-#include <seqan/arg_parse.h>
-#include <seqan/misc/interval_tree.h>
-#include <seqan/parallel.h>
-
-using namespace seqan;
-
-
-// define used types
-typedef FragmentStore<>                         TStore;
-typedef Value<TStore::TAnnotationStore>::Type   TAnnotation;
-typedef TAnnotation::TId                        TId;
-typedef TAnnotation::TPos                       TPos;
-typedef IntervalAndCargo<TPos, TId>             TInterval;
-typedef IntervalTree<TPos, TId>                 TIntervalTree;
-typedef Value<TStore::TAlignedReadStore>::Type  TAlignedRead;
-
-//
-// 1. Load annotations and alignments from files
-//
-bool loadFiles(TStore & store, std::string const & annotationFileName,  std::string const & alignmentFileName)
-{
-    BamFileIn alignmentFile;
-    if (!open(alignmentFile, alignmentFileName.c_str()))
-    {
-        std::cerr << "Couldn't open alignment file " << alignmentFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading read alignments ..... " << std::flush;
-    readRecords(store, alignmentFile);
-    std::cout << "[" << length(store.alignedReadStore) << "]" << std::endl;
-
-    // load annotations
-    GffFileIn annotationFile;
-    if (!open(annotationFile, toCString(annotationFileName)))
-    {
-        std::cerr << "Couldn't open annotation file" << annotationFileName << std::endl;
-        return false;
-    }
-    std::cout << "Loading genome annotation ... " << std::flush;
-    readRecords(store, annotationFile);
-    std::cout << "[" << length(store.annotationStore) << "]" << std::endl;
-
-    return true;
-}
-
-//
-// 2. Extract intervals from gene annotations (grouped by contigId)
-//
-void extractGeneIntervals(String<String<TInterval> > & intervals, TStore const & store)
-{
-    // extract intervals from gene annotations (grouped by contigId)
-    resize(intervals, length(store.contigStore));
-
-    Iterator<TStore const, AnnotationTree<> >::Type it = begin(store, AnnotationTree<>());
-
-    if (!goDown(it))
-        return;
-
-    do
-    {
-        SEQAN_ASSERT_EQ(getType(it), "gene");
-        TPos beginPos = getAnnotation(it).beginPos;
-        TPos endPos = getAnnotation(it).endPos;
-        TId contigId = getAnnotation(it).contigId;
-
-        if (beginPos > endPos)
-            std::swap(beginPos, endPos);
-
-        // insert forward-strand interval of the gene and its annotation id
-        appendValue(intervals[contigId], TInterval(beginPos, endPos, value(it)));
-    }
-    while (goRight(it));
-}
-
-//
-// 3. Construct interval trees
-//
-void constructIntervalTrees(String<TIntervalTree> & intervalTrees,
-                            String<String<TInterval> > & intervals)
-{
-    int numContigs = length(intervals);
-    resize(intervalTrees, numContigs);
-
-    SEQAN_OMP_PRAGMA(parallel for)
-    for (int i = 0; i < numContigs; ++i)
-        createIntervalTree(intervalTrees[i], intervals[i]);
-}
-
-//
-// 4. Count reads per gene
-//
-void countReadsPerGene(String<unsigned> & readsPerGene, String<TIntervalTree> const & intervalTrees, TStore const & store)
-{
-    resize(readsPerGene, length(store.annotationStore), 0);
-    String<TId> result;
-    int numAlignments = length(store.alignedReadStore);
-
-    // iterate aligned reads and get search their begin and end positions
-    SEQAN_OMP_PRAGMA(parallel for private (result))
-    for (int i = 0; i < numAlignments; ++i)
-    {
-        TAlignedRead const & ar = store.alignedReadStore[i];
-        TPos queryBegin = _min(ar.beginPos, ar.endPos);
-        TPos queryEnd = _max(ar.beginPos, ar.endPos);
-
-        // search read-overlapping genes
-        findIntervals(result, intervalTrees[ar.contigId], queryBegin, queryEnd);
-
-        // increase read counter for each overlapping annotation given the id in the interval tree
-        for (unsigned j = 0; j < length(result); ++j)
-        {
-            SEQAN_OMP_PRAGMA(atomic)
-            readsPerGene[result[j]] += 1;
-        }
-    }
-}
-
-//![solution]
-//
-// 5. Output RPKM values
-//
-void outputGeneCoverage(String<unsigned> const & readsPerGene, TStore const & store)
-{
-    // output abundances for covered genes
-    Iterator<TStore const, AnnotationTree<> >::Type transIt = begin(store, AnnotationTree<>());
-    Iterator<TStore const, AnnotationTree<> >::Type exonIt;
-    double millionMappedReads = length(store.alignedReadStore) / 1000000.0;
-
-    std::cout << "#gene name\tRPKM value" << std::endl;
-    for (unsigned j = 0; j < length(readsPerGene); ++j)
-    {
-        if (readsPerGene[j] == 0)
-            continue;
-
-        unsigned mRNALengthMax = 0;
-        goTo(transIt, j);
-
-        // determine maximal mRNA length (which we use as gene length)
-        SEQAN_ASSERT_NOT(isLeaf(transIt));
-        goDown(transIt);
-
-        do
-        {
-            exonIt = nodeDown(transIt);
-            unsigned mRNALength = 0;
-
-            // determine mRNA length, sum up the lengths of its exons
-            do
-            {
-                if (getAnnotation(exonIt).typeId == store.ANNO_EXON)
-                    mRNALength += abs((int)getAnnotation(exonIt).beginPos - (int)getAnnotation(exonIt).endPos);
-            }
-            while (goRight(exonIt));
-
-            if (mRNALengthMax < mRNALength)
-                mRNALengthMax = mRNALength;
-        }
-        while (goRight(transIt));
-
-        // RPKM is number of reads mapped to a gene divided by its gene length in kbps
-        // and divided by millions of total mapped reads
-        std::cout << store.annotationNameStore[j] << '\t';
-        std::cout << readsPerGene[j] / (mRNALengthMax / 1000.0) / millionMappedReads << std::endl;
-    }
-}
-//![solution]
-
-//![main]
-int main(int argc, char const * argv[])
-{
-    TStore store;
-    String<String<TInterval> > intervals;
-    String<TIntervalTree> intervalTrees;
-    String<unsigned> readsPerGene;
-
-    std::string annotationFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.gtf");
-    std::string alignmentFileName = getAbsolutePath("/demos/tutorial/simple_rna_seq/example.sam");
-
-    if (!loadFiles(store, annotationFileName, alignmentFileName))
-        return 1;
-
-    extractGeneIntervals(intervals, store);
-    constructIntervalTrees(intervalTrees, intervals);
-    countReadsPerGene(readsPerGene, intervalTrees, store);
-    outputGeneCoverage(readsPerGene, store);
-
-    return 0;
-}
-//![main]
diff --git a/demos/tutorial/simple_rna_seq/genequant_solution5.cpp.stdout b/demos/tutorial/simple_rna_seq/genequant_solution5.cpp.stdout
deleted file mode 100644
index 5492d46..0000000
--- a/demos/tutorial/simple_rna_seq/genequant_solution5.cpp.stdout
+++ /dev/null
@@ -1,3 +0,0 @@
-Loading read alignments ..... [22]
-Loading genome annotation ... [12]
-#gene name	RPKM value
diff --git a/demos/tutorial/simple_rna_seq/interval_tree.cpp.stdout b/demos/tutorial/simple_rna_seq/interval_tree.cpp.stdout
deleted file mode 100644
index 937d4b1..0000000
--- a/demos/tutorial/simple_rna_seq/interval_tree.cpp.stdout
+++ /dev/null
@@ -1,4 +0,0 @@
-Deletion 300..500 overlaps with gene,intron,
-SNP 150 overlaps with gene,exon,coding,
-Removed exon interval 50..200.
-SNP 150 overlaps with gene,coding,
diff --git a/demos/tutorial/store/CMakeLists.txt b/demos/tutorial/store/CMakeLists.txt
new file mode 100644
index 0000000..cbe833b
--- /dev/null
+++ b/demos/tutorial/store/CMakeLists.txt
@@ -0,0 +1,5 @@
+cmake_minimum_required (VERSION 2.6)
+project (seqan_demos_tutorials_store)
+
+seqan_setup_apps(demos_tutorials_store)
+seqan_add_all_executables(demos_tutorials_store tutorial_)
diff --git a/demos/tutorial/fragment_store/example.fa b/demos/tutorial/store/ex1.fa
similarity index 100%
rename from demos/tutorial/fragment_store/example.fa
rename to demos/tutorial/store/ex1.fa
diff --git a/demos/tutorial/fragment_store/example.sam b/demos/tutorial/store/ex1.sam
similarity index 100%
rename from demos/tutorial/fragment_store/example.sam
rename to demos/tutorial/store/ex1.sam
diff --git a/demos/tutorial/store/store_access_aligned_reads.cpp b/demos/tutorial/store/store_access_aligned_reads.cpp
new file mode 100644
index 0000000..30943b5
--- /dev/null
+++ b/demos/tutorial/store/store_access_aligned_reads.cpp
@@ -0,0 +1,61 @@
+//![includes]
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/misc/svg.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef FragmentStore<> TStore;
+
+    TStore store;
+    loadContigs(store, "ex1.fa");
+    BamFileIn file("ex1.sam");
+    readRecords(store, file);
+
+    SEQAN_ASSERT_GEQ(length(store.alignedReadStore), 5u);
+//![includes]
+
+//![typedefs]
+    typedef Value<TStore::TReadSeqStore>::Type                              TReadSeq;
+    typedef Value<TStore::TContigStore>::Type                               TContig;
+    typedef Value<TStore::TAlignedReadStore>::Type                          TAlignedRead;
+
+    typedef Gaps<TContig::TContigSeq, AnchorGaps<TContig::TGapAnchors> >    TContigGaps;
+    typedef Gaps<TStore::TReadSeq, AnchorGaps<TAlignedRead::TGapAnchors> >  TReadGaps;
+
+    TStore::TReadSeq readSeq;
+//![typedefs]
+
+//![output]
+    for (int i = 140; i < 160; i += 4)
+    {
+        TAlignedRead & ar = store.alignedReadStore[i];
+
+        readSeq = store.readSeqStore[ar.readId];
+        if (ar.endPos < ar.beginPos)
+            reverseComplement(readSeq);
+
+        TContigGaps contigGaps(
+            store.contigStore[ar.contigId].seq,
+            store.contigStore[ar.contigId].gaps);
+
+        TReadGaps readGaps(
+            readSeq,
+            ar.gaps);
+
+        setBeginPosition(contigGaps, std::min(ar.beginPos, ar.endPos));
+        setEndPosition(contigGaps, std::max(ar.beginPos, ar.endPos));
+
+        std::cout << "ALIGNMENT " << i << std::endl;
+        std::cout << "\tcontig " << ar.contigId << ":\t" << contigGaps;
+        std::cout << "     \t[" << beginPosition(contigGaps) << ".." << endPosition(contigGaps) << "[" << std::endl;
+        std::cout << "\tread "   << ar.readId   << ":\t" << readGaps << std::endl;
+        std::cout << std::endl;
+    }
+//![output]
+//![appendix]
+    return 0;
+}
+//![appendix]
diff --git a/demos/tutorial/store/store_access_aligned_reads2.cpp b/demos/tutorial/store/store_access_aligned_reads2.cpp
new file mode 100644
index 0000000..e8aaf58
--- /dev/null
+++ b/demos/tutorial/store/store_access_aligned_reads2.cpp
@@ -0,0 +1,64 @@
+//![includes]
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/misc/svg.h>
+
+using namespace seqan;
+
+int main()
+{
+    typedef FragmentStore<> TStore;
+
+    TStore store;
+    loadContigs(store, "ex1.fa");
+    BamFileIn file("ex1.sam");
+    readRecords(store, file);
+
+    SEQAN_ASSERT_GEQ(length(store.alignedReadStore), 5u);
+//![includes]
+
+//![typedefs]
+    typedef Value<TStore::TReadSeqStore>::Type                              TReadSeq;
+    typedef Value<TStore::TContigStore>::Type                               TContig;
+    typedef Value<TStore::TAlignedReadStore>::Type                          TAlignedRead;
+
+    typedef Gaps<TContig::TContigSeq, AnchorGaps<TContig::TGapAnchors> >    TContigGaps;
+    typedef Gaps<CharString, AnchorGaps<TAlignedRead::TGapAnchors> >  TReadGaps;
+
+    CharString readSeq;
+//![typedefs]
+
+//![output]
+    for (int i = 140; i < 160; i += 4)
+    {
+        TAlignedRead & ar = store.alignedReadStore[i];
+
+        readSeq = store.readSeqStore[ar.readId];
+        if (ar.endPos < ar.beginPos)
+        {
+            reverseComplement(readSeq);
+            toLower(readSeq);
+        }
+
+        TContigGaps contigGaps(
+            store.contigStore[ar.contigId].seq,
+            store.contigStore[ar.contigId].gaps);
+
+        TReadGaps readGaps(
+            readSeq,
+            ar.gaps);
+
+        setBeginPosition(contigGaps, std::min(ar.beginPos, ar.endPos));
+        setEndPosition(contigGaps, std::max(ar.beginPos, ar.endPos));
+
+        std::cout << "ALIGNMENT " << i << std::endl;
+        std::cout << "\tcontig " << ar.contigId << ":\t" << contigGaps;
+        std::cout << "     \t[" << beginPosition(contigGaps) << ".." << endPosition(contigGaps) << "[" << std::endl;
+        std::cout << "\tread "   << ar.readId   << ":\t" << readGaps << std::endl;
+        std::cout << std::endl;
+    }
+//![output]
+//![appendix]
+    return 0;
+}
+//![appendix]
diff --git a/demos/tutorial/store/store_diplay_aligned_reads.cpp b/demos/tutorial/store/store_diplay_aligned_reads.cpp
new file mode 100644
index 0000000..ef9199e
--- /dev/null
+++ b/demos/tutorial/store/store_diplay_aligned_reads.cpp
@@ -0,0 +1,28 @@
+//![includes]
+#include <iostream>
+#include <seqan/store.h>
+#include <seqan/misc/svg.h>
+
+using namespace seqan;
+
+int main()
+{
+    FragmentStore<> store;
+    loadContigs(store, "ex1.fa");
+    BamFileIn file("ex1.sam");
+    readRecords(store, file);
+//![includes]
+
+//![ascii]
+    AlignedReadLayout layout;
+    layoutAlignment(layout, store);
+    printAlignment(std::cout, layout, store, 1, 0, 150, 0, 36);
+//![ascii]
+
+//![svg]
+    SVGFile svg("layout.svg");
+    printAlignment(svg, layout, store, 1, 0, 150, 0, 36);
+
+    return 0;
+}
+//![svg]
diff --git a/demos/tutorial/string_sets/assignment_1_solution.cpp.stdout b/demos/tutorial/string_sets/assignment_1_solution.cpp.stdout
deleted file mode 100644
index f04fd70..0000000
--- a/demos/tutorial/string_sets/assignment_1_solution.cpp.stdout
+++ /dev/null
@@ -1,5 +0,0 @@
-4
-AAA
-CCC
-GGG
-TTT
diff --git a/demos/tutorial/string_sets/assignment_2_solution.cpp.stdout b/demos/tutorial/string_sets/assignment_2_solution.cpp.stdout
deleted file mode 100644
index e5fdb5d..0000000
--- a/demos/tutorial/string_sets/assignment_2_solution.cpp.stdout
+++ /dev/null
@@ -1,2 +0,0 @@
-Does the string set contain the string with the id 'id3'? 1
-Does the string set contain the string with the id 'id2'? 0
diff --git a/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp b/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp
index 07302ff..6e46fd9 100644
--- a/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp
+++ b/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp
@@ -3,7 +3,6 @@
 #include <seqan/stream.h>
 
 using namespace seqan;
-
 // Function to print simple alignment between two sequences with the same length
 template <typename TText1, typename TText2>
 void printAlign(TText1 const & genomeFragment, TText2 const & read)
@@ -17,6 +16,7 @@ int main(int, char const **)
 {
     // Build reads and genomes
     DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
+
     // Build List containing all reads
     typedef String<DnaString> TDnaList;
     TDnaList readList;
@@ -25,13 +25,16 @@ int main(int, char const **)
     readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
     readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
     readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
+
     // Append a second chromosome sequence fragment to chr1
     DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
     append(chr1, chr2);
+
     // Print readlist
     std::cout << " \n Read list: " << std::endl;
     for (unsigned i = 0; i < length(readList); ++i)
         std::cout << readList[i] << std::endl;
+
     // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
     // Store the start position in a String alignPosList: 7, 100, 172, 272
     String<unsigned> alignPosList;
@@ -40,6 +43,7 @@ int main(int, char const **)
     alignPosList[1] = 100;
     alignPosList[2] = 172;
     alignPosList[3] = 272;
+
     // Print alignments using Segment
     std::cout << " \n Print alignment using Segment: " << std::endl;
     for (unsigned i = 0; i < length(readList); ++i)
@@ -73,20 +77,6 @@ int main(int, char const **)
         // Call of our function to print the simple alignment
         printAlign(genomeFragment, value(it));
     }
-    // Now, use Rooted Iterators.
-    Iterator<TDnaList, Rooted>::Type it2 = begin(readList);
-    std::cout << " \n Print alignment using Rooted Iterators: " << std::endl;
-    for (; !atEnd(it2); goNext(it2))
-    {
-        int i = position(it2);
-        // Temporary copy of begin and end position (beginPosition) from alignPosList
-        // of a given alignment between the read and the genome
-        unsigned beginPosition = alignPosList[i];
-        unsigned endPosition = beginPosition + length(value(it2));
-        // Build Infix
-        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
-        // Call of our function to print the simple alignment
-        printAlign(genomeFragment, value(it2));
-    }
-    return 0;
+
+    return 1;
 }
diff --git a/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp.stdout b/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp.stdout
deleted file mode 100644
index cc3d034..0000000
--- a/demos/tutorial/string_sets/assignment_3_workshop_solution.cpp.stdout
+++ /dev/null
@@ -1,48 +0,0 @@
- 
- Read list: 
-TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Segment: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Standard Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Rooted Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
diff --git a/demos/tutorial/string_sets/assignment_3b_workshop_solution.cpp b/demos/tutorial/string_sets/assignment_3b_workshop_solution.cpp
new file mode 100644
index 0000000..d2efd1e
--- /dev/null
+++ b/demos/tutorial/string_sets/assignment_3b_workshop_solution.cpp
@@ -0,0 +1,92 @@
+#include <iostream>
+#include <seqan/sequence.h>
+#include <seqan/stream.h>
+
+using namespace seqan;
+
+// Function to print simple alignment between two sequences with the same length
+template <typename TText1, typename TText2>
+void printAlign(TText1 const & genomeFragment, TText2 const & read)
+{
+    std::cout <<  "Alignment " << std::endl;
+    std::cout << "  genome : " << genomeFragment << std::endl;
+    std::cout << "  read   : " << read << std::endl;
+}
+
+int main(int, char const **)
+{
+    // Build reads and genomes
+    DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATTTAG";
+    // Build List containing all reads
+    typedef String<DnaString> TDnaList;
+    TDnaList readList;
+    resize(readList, 4);
+    readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
+    readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
+    readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
+    readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
+    // Append a second chromosome sequence fragment to chr1
+    DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACACATGCTGCTG";
+    append(chr1, chr2);
+    // Print readlist
+    std::cout << " \n Read list: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+        std::cout << readList[i] << std::endl;
+    // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
+    // Store the start position in a String alignPosList: 7, 100, 172, 272
+    String<unsigned> alignPosList;
+    resize(alignPosList, 4);
+    alignPosList[0] = 7;
+    alignPosList[1] = 100;
+    alignPosList[2] = 172;
+    alignPosList[3] = 272;
+    // Print alignments using Segment
+    std::cout << " \n Print alignment using Segment: " << std::endl;
+    for (unsigned i = 0; i < length(readList); ++i)
+    {
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(readList[i]);
+        // Build infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, readList[i]);
+    }
+    // Iterators :)
+    // Print alignments using Iterators: Do the same as above, but use Iterators to iterate over the read list.
+    // First, use Standard Iterators.
+    Iterator<TDnaList>::Type it = begin(readList);
+    Iterator<TDnaList, Standard>::Type itEnd = end(readList); //same Iterator as above
+
+    std::cout << " \n Print alignment using Standard Iterators: " << std::endl;
+    for (; it != itEnd; goNext(it))
+    {
+        // Get the right index for alignPosList
+        int i = position(it, readList);
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(value(it));
+        // Build Infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, value(it));
+    }
+    // Now, use Rooted Iterators.
+    Iterator<TDnaList, Rooted>::Type it2 = begin(readList);
+    std::cout << " \n Print alignment using Rooted Iterators: " << std::endl;
+    for (; !atEnd(it2); goNext(it2))
+    {
+        int i = position(it2);
+        // Temporary copy of begin and end position (beginPosition) from alignPosList
+        // of a given alignment between the read and the genome
+        unsigned beginPosition = alignPosList[i];
+        unsigned endPosition = beginPosition + length(value(it2));
+        // Build Infix
+        Infix<DnaString>::Type genomeFragment = infix(chr1, beginPosition, endPosition);
+        // Call of our function to print the simple alignment
+        printAlign(genomeFragment, value(it2));
+    }
+    return 1;
+}
diff --git a/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp b/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp
index 3c1fec1..4fa81a4 100644
--- a/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp
+++ b/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp
@@ -106,5 +106,5 @@ int main(int, char const **)
     for (; !atEnd(it3); goNext(it3))
         std::cout << value(it3) << std::endl;
 
-    return 0;
+    return 1;
 }
diff --git a/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp.stdout b/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp.stdout
deleted file mode 100644
index 22fc77d..0000000
--- a/demos/tutorial/string_sets/assignment_4_workshop_solution.cpp.stdout
+++ /dev/null
@@ -1,54 +0,0 @@
- 
- Read list: 
-TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Segment: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Standard Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print alignment using Rooted Iterators: 
-Alignment 
-  genome : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-  read   : TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-Alignment 
-  genome : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-  read   : TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-Alignment 
-  genome : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-  read   : AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-Alignment 
-  genome : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
-  read   : CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
- 
- Print reads stored in a StringSet using Rooted Iterators: 
-TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT
-TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT
-AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA
-CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA
diff --git a/demos/tutorial/vcf_io/example.vcf b/demos/tutorial/vcf_io/example.vcf
deleted file mode 100644
index 27d4500..0000000
--- a/demos/tutorial/vcf_io/example.vcf
+++ /dev/null
@@ -1,24 +0,0 @@
-##fileformat=VCFv4.1
-##fileDate=20090805
-##source=myImputationProgramV3.1
-##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
-##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
-##phasing=partial
-##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
-##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
-##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
-##FILTER=<ID=q10,Description="Quality below 10">
-##FILTER=<ID=s50,Description="Less than 50% of samples have data">
-##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
-##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
-##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00003
-20	14370	rs6054257	G	A	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5:.,.
-20	17330	.	T	A	3	q10	NS=3;DP=11;AF=0.017	GT:GQ:DP:HQ	0|0:49:3:58,50	0|1:3:5:65,3	0/0:41:3
-20	1110696	rs6040355	A	G,T	67	PASS	NS=2;DP=10;AF=0.333,0.667;AA=T;DB	GT:GQ:DP:HQ	1|2:21:6:23,27	2|1:2:0:18,2	2/2:35:4
-20	1230237	.	T	.	47	PASS	NS=3;DP=13;AA=T	GT:GQ:DP:HQ	0|0:54:7:56,60	0|0:48:4:51,51	0/0:61:2
-20	1234567	microsat1	GTC	G,GTCT	50	PASS	NS=3;DP=9;AA=G	GT:GQ:DP	0/1:35:4	0/2:17:2	1/1:40:3
diff --git a/demos/tutorial/vcf_io/example1.cpp b/demos/tutorial/vcf_io/example1.cpp
index d7aca67..1a7a184 100644
--- a/demos/tutorial/vcf_io/example1.cpp
+++ b/demos/tutorial/vcf_io/example1.cpp
@@ -5,7 +5,7 @@ using namespace seqan;
 int main()
 {
     // Open input file.
-    VcfFileIn vcfIn(toCString(getAbsolutePath("/demos/tutorial/vcf_io/example.vcf")));
+    VcfFileIn vcfIn("example.vcf");
 
     // Attach to standard output.
     VcfFileOut vcfOut(vcfIn);
diff --git a/demos/tutorial/vcf_io/example1.cpp.stdout b/demos/tutorial/vcf_io/example1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/vcf_io/solution1.cpp b/demos/tutorial/vcf_io/solution1.cpp
index d7648f2..e296a11 100644
--- a/demos/tutorial/vcf_io/solution1.cpp
+++ b/demos/tutorial/vcf_io/solution1.cpp
@@ -5,7 +5,7 @@ using namespace seqan;
 int main()
 {
     // Open input file.
-    VcfFileIn vcfIn(toCString(getAbsolutePath("/demos/tutorial/vcf_io/example.vcf")));
+    VcfFileIn vcfIn("example.vcf");
 
     // Attach to standard output.
     VcfFileOut vcfOut(vcfIn);
diff --git a/demos/tutorial/vcf_io/solution1.cpp.stdout b/demos/tutorial/vcf_io/solution1.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/vcf_io/solution2.cpp b/demos/tutorial/vcf_io/solution2.cpp
index 29cc117..8978822 100644
--- a/demos/tutorial/vcf_io/solution2.cpp
+++ b/demos/tutorial/vcf_io/solution2.cpp
@@ -7,7 +7,7 @@ int main()
     try
     {
         // Open input file.
-        VcfFileIn vcfIn(toCString(getAbsolutePath("/demos/tutorial/vcf_io/example.vcf")));
+        VcfFileIn vcfIn("example.vcf");
 
         // Copy over header.
         VcfHeader header;
diff --git a/demos/tutorial/vcf_io/solution2.cpp.stdout b/demos/tutorial/vcf_io/solution2.cpp.stdout
deleted file mode 100644
index e69de29..0000000
diff --git a/demos/tutorial/vcf_io/solution3.cpp.stdout b/demos/tutorial/vcf_io/solution3.cpp.stdout
deleted file mode 100644
index 1996786..0000000
--- a/demos/tutorial/vcf_io/solution3.cpp.stdout
+++ /dev/null
@@ -1,20 +0,0 @@
-##fileformat=VCFv4.1
-##fileDate=20090805
-##source=myImputationProgramV3.1
-##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
-##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
-##phasing=partial
-##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
-##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
-##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
-##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
-##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
-##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
-##FILTER=<ID=q10,Description="Quality below 10">
-##FILTER=<ID=s50,Description="Less than 50% of samples have data">
-##ID=<ID=GT,Number=1,Type=String,Description="Genotype">
-##ID=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
-##ID=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
-##ID=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
-#CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	NA00001	NA00002	NA00002
-20	14370	rs6054257	G	A	29	PASS	NS=3;DP=14;AF=0.5;DB;H2	GT:GQ:DP:HQ	0|0:48:1:51,51	1|0:48:8:51,51	1/1:43:5:.,.
diff --git a/demos/unassigned_or_unused/bam_library_size.cpp b/demos/unassigned_or_unused/bam_library_size.cpp
deleted file mode 100644
index a6370eb..0000000
--- a/demos/unassigned_or_unused/bam_library_size.cpp
+++ /dev/null
@@ -1,268 +0,0 @@
-// ==========================================================================
-//                 SeqAn - The Library for Sequence Analysis
-// ==========================================================================
-// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above copyright
-//       notice, this list of conditions and the following disclaimer in the
-//       documentation and/or other materials provided with the distribution.
-//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
-//       its contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-//
-// ==========================================================================
-// Author: Tobias Rausch <rausch at embl.de>
-// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
-// ==========================================================================
-// Shows how to use the bam_io module to estimate the insert size from a SAM
-// or BAM file.
-// ==========================================================================
-
-#include <iostream>
-#include <vector>
-
-#include <seqan/basic.h>
-#include <seqan/sequence.h>
-#include <seqan/stream.h>
-#include <seqan/bam_io.h>
-
-#if SEQAN_HAS_ZLIB
-
-using namespace seqan;
-
-// Stores information about a library.
-
-struct LibraryInfo
-{
-    // This is the notation introduced by Illumina.
-    //
-    // F+: >R1 R2>
-    // F-: >R2 R1>
-    // R+: >R1 R2<
-    // R-: <R2 R1>
-    enum Orientation
-    {
-        F_PLUS  = 0,
-        F_MINUS = 1,
-        R_PLUS  = 2,
-        R_MINUS = 3
-    };
-
-    unsigned median;
-    double   stdDev;
-    unsigned maxNormalISize;
-    Orientation defaultOrient;
-
-    LibraryInfo() :
-        median(0), stdDev(0), maxNormalISize(0), defaultOrient(F_PLUS)
-    {}
-};
-
-inline int
-getStrandIndependentOrientation(BamAlignmentRecord const & rec)
-{
-    if (!hasFlagRC(rec))
-    {
-        if (!(hasFlagNextRC(rec)))
-        {
-            return (rec.beginPos < rec.pNext) ? LibraryInfo::F_PLUS : LibraryInfo::F_MINUS;
-        }
-        else
-        {
-            return (rec.beginPos < rec.pNext) ? LibraryInfo::R_PLUS : LibraryInfo::R_MINUS;
-        }
-    }
-    else
-    {
-        if (!hasFlagNextRC(rec))
-        {
-            return (rec.beginPos > rec.pNext) ? LibraryInfo::R_PLUS : LibraryInfo::R_MINUS;
-        }
-        else
-        {
-            return (rec.beginPos > rec.pNext) ? LibraryInfo::F_PLUS : LibraryInfo::F_MINUS;
-        }
-    }
-}
-
-bool endsWith(CharString const & str, CharString const & x)
-{
-    typedef Size<CharString>::Type TSize;
-
-    TSize len = std::min(length(str), length(x));
-    TSize pos = length(str) - len;
-    return suffix(str, pos) == x;
-}
-
-bool performEstimation(LibraryInfo & libInfo, BamFileIn & bamFileIn)
-{
-    // Vector of all insert sizes.
-    typedef std::vector<unsigned int> TVecISize;
-    TVecISize vecISize;
-
-    // Read Header.
-    BamHeader header;
-    readHeader(header, bamFileIn);
-
-    // Orientations.
-    unsigned orientationCounters[4] = {0, 0, 0, 0};
-
-    // Running mean.
-    __uint64 runningMean = 0;
-    unsigned pairCount = 0;
-
-    // Count.
-    BamAlignmentRecord record;
-    while (!atEnd(bamFileIn))
-    {
-        readRecord(record, bamFileIn);
-
-        // Skip all records except for first mate of properly mapped pairs.
-        if (!hasFlagMultiple(record) || hasFlagUnmapped(record) || hasFlagNextUnmapped(record) ||
-            hasFlagSecondary(record) || hasFlagFirst(record))
-            continue;
-
-        vecISize.push_back(abs(record.tLen));
-        runningMean += abs(record.tLen);
-        pairCount += 1;
-
-        orientationCounters[getStrandIndependentOrientation(record)] += 1;
-    }
-
-    // Get default orientation.
-    unsigned orientMax = 0;
-    for (unsigned i = 0; i < 4; ++i)
-        if (orientationCounters[i] > orientationCounters[orientMax])
-            orientMax = i;
-    LibraryInfo::Orientation orientations[4] = { LibraryInfo::F_PLUS, LibraryInfo::F_MINUS, LibraryInfo::R_PLUS, LibraryInfo::R_MINUS };
-    libInfo.defaultOrient = orientations[orientMax];
-
-    // Trim off the chimera peak in mate-pair libraries.
-    if ((libInfo.defaultOrient == LibraryInfo::R_MINUS) && (pairCount > 0) && (runningMean / pairCount) >= 1000u)
-    {
-        typedef TVecISize::const_iterator TVecISizeIter;
-        TVecISize vecISizeTmp;
-        for (TVecISizeIter it = vecISize.begin(); it < vecISize.end(); ++it)
-            if (*it > 1000)
-                vecISizeTmp.push_back(*it);
-        std::swap(vecISize, vecISizeTmp);
-    }
-
-
-    // Check that this is a proper paired-end library
-    if (vecISize.empty())
-        return true;
-
-    // Get library stats.
-    //
-    // Start with median.
-    typedef TVecISize::iterator TVecISizeIter;
-    TVecISizeIter begin = vecISize.begin();
-    TVecISizeIter end = vecISize.end();
-    std::nth_element(begin, begin + (end - begin) / 2, end);
-    begin = vecISize.begin();
-    end = vecISize.end();
-    libInfo.median = *(begin + (end - begin) / 2);
-    // Standard deviation is next.
-    //
-    // SD calculation cutoffs are 7 SDs to the left and right assuming 10% library deviation.
-    libInfo.stdDev = 0;
-    double cutoffMax = libInfo.median + 7 * 0.1 * libInfo.median;
-    double cutoffMin = libInfo.median - 7 * 0.1 * libInfo.median;
-    if ((cutoffMin < 0) || (cutoffMax < cutoffMin))
-        cutoffMin = 0;
-    unsigned int count = 0;
-    for (; begin < end; ++begin)
-    {
-        if ((*begin >= cutoffMin) && (*begin <= cutoffMax))
-        {
-            libInfo.stdDev += (*begin - libInfo.median) * (*begin - libInfo.median);
-            ++count;
-        }
-    }
-    if (count == 0u)  // prevent div-by-zero below
-        count = 1;
-    libInfo.stdDev = sqrt(libInfo.stdDev / count);
-    libInfo.maxNormalISize = static_cast<unsigned>(libInfo.median + 3 * libInfo.stdDev);
-
-    return true;
-}
-
-int main(int argc, char const ** argv)
-{
-    if (argc != 2)
-    {
-        std::cerr << "Invalid arguments!\n"
-                  << "USAGE: bam_library_size {IN.sam,IN.bam}\n";
-        return 1;
-    }
-
-    LibraryInfo libInfo;
-
-    BamFileIn bamFileIn;
-    if (!open(bamFileIn, argv[1]))
-    {
-        std::cerr << "Could not open input SAM/BAM file " << argv[1] << "\n";
-        return 1;
-    }
-
-    if (!performEstimation(libInfo, bamFileIn))
-        return 1;
-
-    // Print result.
-    std::cout << "Library Information\n\n"
-              << "path:                       " << argv[1] << "\n"
-              << "median:                     " << libInfo.median << "\n"
-              << "standard deviation:         " << libInfo.stdDev << "\n"
-              << "maximum normal insert size: " << libInfo.maxNormalISize << "\n";
-
-    std::cout << "orientation:                ";
-    switch (libInfo.defaultOrient)
-    {
-    case LibraryInfo::F_PLUS:
-        std::cout << "F+ R1 ---> ---> R2\n";
-        break;
-
-    case LibraryInfo::F_MINUS:
-        std::cout << "F- R1 ---> ---> R2\n";
-        break;
-
-    case LibraryInfo::R_PLUS:
-        std::cout << "R+ R1 ---> <--- R2\n";
-        break;
-
-    case LibraryInfo::R_MINUS:
-        std::cout << "R- R1 <--- ---> R2\n";
-        break;
-    }
-
-    return 0;
-}
-
-#else
-
-int main(int, char const **)
-{
-    std::cerr << "bam_library_size can only be compiled correctly with zlib." << std::endl;
-    return 0;
-}
-
-#endif  // #if SEQAN_HAS_ZLIB
diff --git a/demos/unassigned_or_unused/benchmark_stream.cpp b/demos/unassigned_or_unused/benchmark_stream.cpp
deleted file mode 100644
index 9d608fe..0000000
--- a/demos/unassigned_or_unused/benchmark_stream.cpp
+++ /dev/null
@@ -1,422 +0,0 @@
-// ==========================================================================
-//                 SeqAn - The Library for Sequence Analysis
-// ==========================================================================
-// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above copyright
-//       notice, this list of conditions and the following disclaimer in the
-//       documentation and/or other materials provided with the distribution.
-//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
-//       its contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-//
-// ==========================================================================
-// Author: Manuel Holtgrewe <manuel.holtgrewe at fu-berlin.de>
-// ==========================================================================
-// Stream Benchmark Demo.  This demo shows how to use different stream types
-// for reading and writing FASTA files.  The time required for this is
-// printed, and thus this demo can be used as a benchmark tool.
-// ==========================================================================
-
-// #define SEQAN_NEW_IO
-
-#include <cstdio>
-//#include <fstream>
-#if SEQAN_HAS_ZLIB
-#include <zlib.h>
-#endif  // #if SEQAN_HAS_ZLIB
-#if SEQAN_HAS_BZIP2
-#include <bzlib.h>
-#endif  // #if SEQAN_HAS_BZIP2
-
-#include <seqan/basic.h>
-#include <seqan/stream.h>
-#include <seqan/seq_io.h>
-#include <seqan/stream.h>
-#include <seqan/sequence.h>
-#include <seqan/arg_parse.h>
-
-using namespace seqan;
-
-// Setting buffer size to 4MB, such that the overhead for jumping buffers and
-// such only occurs every 4M chars.
-//const unsigned int BUFFER_SIZE = 1024 * 1024 * 4;
-
-typedef Dna5String TSequence;
-
-struct Options
-{
-    bool doublePass;
-    bool cstdio;
-    bool fstream;
-    bool mmapString;
-    bool gzip;
-    bool bzip2;
-    bool documentMMap;
-    bool nonConcat;
-    bool multiSeq;
-
-    Options() :
-        doublePass(false), cstdio(false), fstream(false),
-        mmapString(false), gzip(false), bzip2(false), documentMMap(false),
-        nonConcat(false), multiSeq(false)
-    {}
-};
-
-//int readFileMultiSeqFile(char const * filename, Options const & /*options*/)
-//{
-//    typedef StringSet<CharString> TSequenceIds;
-//    typedef StringSet<TSequence> TSequences;
-//    typedef Iterator<TSequenceIds>::Type TSequenceIdsIter;
-//    typedef Iterator<TSequences>::Type TSequencesIter;
-//    TSequenceIds sequenceIds;
-//    TSequences sequences;
-//
-//    double before = sysTime();
-//    std::cerr << "READING\tWHOLE\tOWNER";
-//    std::cerr << "\tmultiseq" << std::flush;
-//
-//    MultiSeqFile multiSeqFile;
-//    if (!open(multiSeqFile.concat, filename, OPEN_RDONLY))
-//    {
-//        std::cerr << std::endl << "Could not open mmap file for reading." << std::endl;
-//        return 1;
-//    }
-//
-//    AutoSeqFormat format;
-//    guessFormat(multiSeqFile.concat, format);
-//    split(multiSeqFile, format);
-//
-//    unsigned seqCount = length(multiSeqFile);
-//    StringSet<TSequence> seqs;
-//    StringSet<CharString> seqIDs;
-//    reserve(seqs, seqCount, Exact());
-//    reserve(seqIDs, seqCount, Exact());
-//
-//    TSequence seq;
-//    // CharString qual;
-//    CharString id;
-//    for (unsigned i = 0; i < seqCount; ++i)
-//    {
-//        assignSeq(seq, multiSeqFile[i], format);    // read sequence
-//        // assignQual(qual, multiSeqFile[i], format);  // read ascii quality values
-//        assignSeqId(id, multiSeqFile[i], format);   // read sequence id
-//
-//        // convert ascii to values from 0..62
-//        // store dna and quality together in Dna5Q
-//        // for (unsigned j = 0; j < length(qual) && j < length(seq); ++j)
-//        //     assignQualityValue(seq[j], (int)(ordValue(qual[j]) - 33));
-//        // we use reserve and append, as assign is not supported
-//        // by StringSet<..., Owner<ConcatDirect<> > >
-//        appendValue(seqs, seq, Generous());
-//        appendValue(seqIDs, id, Generous());
-//    }
-//
-//    double after = sysTime();
-//    fprintf(stderr, "\t%f\n", after - before);
-//    return 0;
-//}
-
-template <typename TSpec>
-int readFileMMapDocument(char const * filename, Options const & /*options*/, TSpec const & /*tag*/)
-{
-    typedef StringSet<CharString, TSpec> TSequenceIds;
-    typedef StringSet<TSequence, TSpec> TSequences;
-//     typedef typename Iterator<TSequenceIds>::Type TSequenceIdsIter;
-//     typedef typename Iterator<TSequences>::Type TSequencesIter;
-    TSequenceIds sequenceIds;
-    TSequences sequences;
-
-    double before = sysTime();
-    std::cerr << "READING\tWHOLE\t";
-    if (IsSameType<TSpec, Owner<> >::VALUE)
-        std::cerr << "OWNER";
-    else
-        std::cerr << "CONCAT";
-    std::cerr << "\tmmap" << std::flush;
-    // fprintf(stderr, "\t%f\n", after - before);
-    /*typedef File<Async<> > TFile;
-    typedef String<char, MMap< ExternalConfig<TFile> > > TMMapString;
-    TMMapString myString;
-    if (!open(myString, filename, OPEN_RDONLY)) {
-        std::cerr << std::endl << "Could not open mmap file for reading." << std::endl;
-        return 1;
-    }
-    RecordReader<TMMapString, DoublePass<StringReader> > reader(myString, BUFFER_SIZE);
-    */
-    SeqFileIn reader(filename);
-    readRecords(sequenceIds, sequences, reader);
-    SEQAN_ASSERT_EQ(length(sequenceIds), length(sequences));
-
-    // TSequenceIdsIter itId = begin(sequenceIds);
-    // TSequencesIter itSeq = begin(sequences);
-    // for (; !atEnd(itId); ++itId, ++itSeq) {
-    //std::cout << value(itId) << "\t" << value(itSeq) << "\n";
-    // }
-
-    double after = sysTime();
-    fprintf(stderr, "\t%f\n", after - before);
-    return 0;
-}
-
-int readFileMMapDocument(char const * filename, Options const & options)
-{
-    if (options.nonConcat)
-        return readFileMMapDocument(filename, options, Owner<Default>());
-
-    //else
-    //return readFileMMapDocument(filename, options, Owner<ConcatDirect<> >());
-    return 0;
-}
-
-int readFastaFile(StringSet<CharString> & sequenceIds,
-                  StringSet<TSequence> & sequences,
-                  SeqFileIn & file)
-{
-    (void)sequenceIds;
-    (void)sequences;
-
-    CharString meta;
-    TSequence seq;
-    while (!atEnd(file))
-        readRecord(meta, seq, file);
-
-    return 0;
-}
-
-template <typename TFile>
-int readFastaFile(StringSet<CharString> & sequenceIds,
-                  StringSet<TSequence> & sequences,
-                  TFile & file)
-{
-    (void)sequenceIds;
-    (void)sequences;
-
-    typename DirectionIterator<TFile, Input>::Type iter;
-    iter = begin(file);
-
-    CharString meta;
-    TSequence seq;
-    while (!atEnd(iter))
-        readRecord(meta, seq, iter, Fasta());
-
-    return 0;
-}
-
-void readFileMMap(char const * filename, Options const & /*options*/)
-{
-    StringSet<CharString> sequenceIds;
-    StringSet<TSequence> sequences;
-
-    double before = sysTime();
-    std::cerr << "READING\tRECORD\t" << std::flush;
-
-    typedef File<Async<> > TFile;
-    String<char, MMap<ExternalConfig<TFile> > > myString;
-    if (!open(myString, filename, OPEN_RDONLY))
-    {
-        std::cerr << std::endl << "Could not open mmap file for reading." << std::endl;
-        return;
-    }
-    readFastaFile(sequenceIds, sequences, myString);
-
-    double after = sysTime();
-    fprintf(stderr, "\t%f\n", after - before);
-}
-
-void readFileDefault(char const * filename, Options const & options)
-{
-    StringSet<CharString> sequenceIds;
-    StringSet<TSequence> sequences;
-
-    std::cerr << "READING\tRECORD\t" << std::flush;
-    double before = sysTime();
-    if (options.cstdio)
-    {
-        std::cerr << "cstdio" << std::flush;
-        FILE * f = fopen(filename, "rb");
-        if (!f)
-        {
-            std::cerr << std::endl << "ERROR: Could not open input file!" << std::endl;
-            return;
-        }
-        //readFastaFile(sequenceIds, sequences, f);
-        fclose(f);
-    }
-    else if (options.fstream)
-    {
-        std::cerr << "fstream" << std::flush;
-        std::ifstream f(filename, std::ios_base::in | std::ios_base::binary);
-        if (!f.is_open())
-        {
-            std::cerr << std::endl << "ERROR: Could not open input file!" << std::endl;
-            return;
-        }
-        //readFastaFile(sequenceIds, sequences, f);
-#if SEQAN_HAS_ZLIB
-    }
-    else if (options.gzip)
-    {
-        std::cerr << "gzip" << std::flush;
-        SeqFileIn f;
-        if (!open(f, filename))
-        {
-            std::cerr << "Could not open input file!" << std::endl;
-            return;
-        }
-        readFastaFile(sequenceIds, sequences, f);
-#endif  // #if SEQAN_HAS_ZLIB
-#if SEQAN_HAS_BZIP2
-    }
-    else if (options.bzip2)
-    {
-        std::cerr << "bzip2" << std::flush;
-        SeqFileIn f;
-        if (!open(f, filename))
-        {
-            std::cerr << "Could not open input file!" << std::endl;
-            return;
-        }
-        //readFastaFile(sequenceIds, sequences, f);
-#endif  // #if SEQAN_HAS_BZIP2
-    }
-    else
-    {
-        SEQAN_ASSERT_FAIL("SHOULD NEVER REACH HERE!");
-    }
-    double after = sysTime();
-    fprintf(stderr, "\t%f\n", after - before);
-}
-
-int main(int argc, char const ** argv)
-{
-    Options options;
-
-    // -----------------------------------------------------------------------
-    // Setup Command Line Parser
-    // -----------------------------------------------------------------------
-
-    ArgumentParser parser("demo_benchmark_stream");
-    setCategory(parser, "Demo");
-    setShortDescription(parser, "Just a demo for a simple file io benchmark.");
-
-    addUsageLine(parser, "benchmark_stream [OPTIONS] INPUT OUTPUT");
-    addSection(parser, "Read Variant");
-    addOption(parser, ArgParseOption("d", "double-pass", "Use double-pass parsing."));
-    addSection(parser, "Stream Type Options");
-    addOption(parser, ArgParseOption("c", "cstdio", "Use <cstdio> stream."));
-    addOption(parser, ArgParseOption("f", "fstream", "Use <fstream> stream."));
-#if SEQAN_HAS_ZLIB
-    addOption(parser, ArgParseOption("g", "gzip", "Use gzip stream."));
-#endif  // #if SEQAN_HAS_ZLIB
-#if SEQAN_HAS_BZIP2
-    addOption(parser, ArgParseOption("b", "bzip2", "Use bzlib stream."));
-#endif  // #if SEQAN_HAS_BZIP2
-    addOption(parser, ArgParseOption("m", "memory-mapped", "Use memory mapped I/O."));
-    addOption(parser, ArgParseOption("w", "document-mmapped", "Read whole document at once with memory mapped I/O."));
-    addOption(parser, ArgParseOption("n", "non-concat", "Do not use concat direct string for document-mmapped version."));
-    addOption(parser, ArgParseOption("s", "multi-seq", "Use MultiSeqFile to read input."));
-
-    addArgument(parser, ArgParseArgument(ArgParseArgument::INPUT_FILE, "IN"));
-
-    // -----------------------------------------------------------------------
-    // Parse And Check Command Line Parameters
-    // -----------------------------------------------------------------------
-
-    bool stop = !parse(parser, argc, argv);
-    if (stop)
-    {
-        if (isSet(parser, "help"))
-            return 0;
-
-        return 1;
-    }
-
-    if (isSet(parser, "double-pass"))
-        options.doublePass = true;
-    if (isSet(parser, "cstdio"))
-        options.cstdio = true;
-    if (isSet(parser, "fstream"))
-        options.fstream = true;
-#if SEQAN_HAS_ZLIB
-    if (isSet(parser, "gzip"))
-        options.gzip = true;
-#endif  // #if SEQAN_HAS_ZLIB
-#if SEQAN_HAS_BZIP2
-    if (isSet(parser, "bzip2"))
-        options.bzip2 = true;
-#endif  // #if SEQAN_HAS_BZIP2
-    if (isSet(parser, "memory-mapped"))
-        options.mmapString = true;
-    if (isSet(parser, "document-mmapped"))
-        options.documentMMap = true;
-    if (isSet(parser, "non-concat"))
-        options.nonConcat = true;
-    if (isSet(parser, "multi-seq"))
-        options.multiSeq = true;
-
-    if (options.cstdio + options.fstream + options.gzip + options.bzip2 + options.mmapString +
-        options.documentMMap + options.multiSeq == 0)
-    {
-        std::cerr << "You have to select exactly one stream type!" << std::endl;
-        return 1;
-    }
-    else if (options.cstdio + options.fstream + options.gzip + options.bzip2 + options.mmapString + options.documentMMap > 1)
-    {
-        std::cerr << "Only one stream type can be selected!" << std::endl;
-        return 1;
-    }
-    if (options.documentMMap && options.doublePass)
-    {
-        std::cerr << "Double-pass I/O is implicit with document-mapped." << std::endl;
-        return 1;
-    }
-
-    // -----------------------------------------------------------------------
-    // Read And Write FASTA file.
-    // -----------------------------------------------------------------------
-    String<char> inputFileName;
-    getArgumentValue(inputFileName, parser, 0);
-
-    if (options.multiSeq)
-    {
-        //readFileMultiSeqFile(toCString(getArgumentValue(parser, 0)), options);
-    }
-    else if (options.documentMMap)
-    {
-        readFileMMapDocument(toCString(inputFileName), options);
-    }
-    else
-    {
-        if (options.mmapString)
-            ;
-        //readFileMMap(toCString(inputFileName), options);
-        else
-            readFileDefault(toCString(inputFileName), options);
-    }
-
-    // for (unsigned i = 0; i < length(sequenceIds); ++i) {
-    //     std::cerr << '>' << sequenceIds[i] << '\n';
-    //     std::cerr << sequences[i] << '\n';
-    // }
-
-    return 0;
-}
diff --git a/demos/unassigned_or_unused/graph_hmm_silent.cpp b/demos/unassigned_or_unused/graph_hmm_silent.cpp
deleted file mode 100644
index e44c14c..0000000
--- a/demos/unassigned_or_unused/graph_hmm_silent.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-///A tutorial about HMMs with silent states
-#include <iostream>
-#include <fstream>
-#include <seqan/graph_algorithms.h>
-#include <seqan/basic/basic_math.h>
-
-using namespace seqan;
-
-int main()
-{
-///HMM creation
-    typedef LogProb<> TProbability;
-    typedef Dna TAlphabet;
-    typedef Size<TAlphabet>::Type TSize;
-    typedef Graph<Hmm<TAlphabet, TProbability> > THmm;
-    typedef VertexDescriptor<THmm>::Type TVertexDescriptor;
-
-    Dna dnaA = Dna('A');
-    Dna dnaC = Dna('C');
-    Dna dnaG = Dna('G');
-    Dna dnaT = Dna('T');
-
-    THmm hmm;
-
-///Begin state
-    TVertexDescriptor begState = addVertex(hmm);
-    assignBeginState(hmm, begState);
-
-///Emission states
-    TVertexDescriptor emitState1 = addVertex(hmm);
-    emissionProbability(hmm, emitState1, dnaA) = 0.0;
-    emissionProbability(hmm, emitState1, dnaC) = 0.8;
-    emissionProbability(hmm, emitState1, dnaG) = 0.1;
-    emissionProbability(hmm, emitState1, dnaT) = 0.1;
-
-    TVertexDescriptor emitState2 = addVertex(hmm);
-    emissionProbability(hmm, emitState2, dnaA) = 0.0;
-    emissionProbability(hmm, emitState2, dnaC) = 0.2;
-    emissionProbability(hmm, emitState2, dnaG) = 0.2;
-    emissionProbability(hmm, emitState2, dnaT) = 0.6;
-
-    TVertexDescriptor emitState3 = addVertex(hmm);
-    emissionProbability(hmm, emitState3, dnaA) = 0.7;
-    emissionProbability(hmm, emitState3, dnaC) = 0.1;
-    emissionProbability(hmm, emitState3, dnaG) = 0.1;
-    emissionProbability(hmm, emitState3, dnaT) = 0.1;
-
-    TVertexDescriptor emitState4 = addVertex(hmm);
-    emissionProbability(hmm, emitState4, dnaA) = 0.25;
-    emissionProbability(hmm, emitState4, dnaC) = 0.25;
-    emissionProbability(hmm, emitState4, dnaG) = 0.25;
-    emissionProbability(hmm, emitState4, dnaT) = 0.25;
-
-///Silent states (deletion states)
-    TVertexDescriptor delState1 = addVertex(hmm, true);
-    TVertexDescriptor delState2 = addVertex(hmm, true);
-    TVertexDescriptor delState3 = addVertex(hmm, true);
-    TVertexDescriptor delState4 = addVertex(hmm, true);
-
-///End state
-    TVertexDescriptor eState = addVertex(hmm);
-    assignEndState(hmm, eState);
-
-///Transitions
-    addEdge(hmm, begState, emitState1, 0.5);
-    addEdge(hmm, begState, delState1, 0.5);
-    addEdge(hmm, emitState1, emitState2, 0.5);
-    addEdge(hmm, emitState1, delState2, 0.5);
-    addEdge(hmm, delState1, emitState2, 0.5);
-    addEdge(hmm, delState1, delState2, 0.5);
-    addEdge(hmm, emitState2, emitState3, 0.5);
-    addEdge(hmm, emitState2, delState3, 0.5);
-    addEdge(hmm, delState2, emitState3, 0.5);
-    addEdge(hmm, delState2, delState3, 0.5);
-    addEdge(hmm, emitState3, emitState4, 0.5);
-    addEdge(hmm, emitState3, delState4, 0.5);
-    addEdge(hmm, delState3, emitState4, 0.5);
-    addEdge(hmm, delState3, delState4, 0.5);
-    addEdge(hmm, emitState4, eState, 1.0);
-    addEdge(hmm, delState4, eState, 1.0);
-
-///Print the whole model
-    std::cout << hmm << std::endl;
-
-///Viterbi algorithm
-    String<Dna> sequence = "CA";
-    String<TVertexDescriptor> path;
-    TProbability p = viterbiAlgorithm(path, hmm, sequence);
-    std::cout << "Viterbi algorithm" << std::endl;
-    std::cout << "Probability of the best path: " << p << std::endl;
-    std::cout << "Sequence: " << std::endl;
-    for (TSize i = 0; i < length(sequence); ++i)
-        std::cout << sequence[i] << ',';
-    std::cout << std::endl;
-    std::cout << "State path: " << std::endl;
-    for (TSize i = 0; i < length(path); ++i)
-    {
-        std::cout << path[i];
-        if (isSilent(hmm, path[i]))
-            std::cout << " (Silent)";
-        if (i < length(path) - 1)
-            std::cout << ',';
-    }
-    std::cout << std::endl;
-
-///Forward algorithm
-    std::cout << "Forward algorithm" << std::endl;
-    p = forwardAlgorithm(hmm, sequence);
-    std::cout << "Probability that the HMM generated the sequence: " << p << std::endl;
-
-///Backward algorithm
-    std::cout << "Backward algorithm" << std::endl;
-    p = backwardAlgorithm(hmm, sequence);
-    std::cout << "Probability that the HMM generated the sequence: " << p << std::endl;
-
-    return 0;
-}
diff --git a/demos/unassigned_or_unused/sam2svg.cpp b/demos/unassigned_or_unused/sam2svg.cpp
deleted file mode 100644
index a50d0cf..0000000
--- a/demos/unassigned_or_unused/sam2svg.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-#include <fstream>
-#include <iostream>
-#include <string>
-
-#include <seqan/store.h>
-#include <seqan/arg_parse.h>
-#include <seqan/misc/svg.h>
-
-using namespace seqan;
-
-// Struct for storing command line options.
-struct Options
-{
-    int contigID;
-    int beginPos;
-    int endPos;
-    int beginLine;
-    int endLine;
-    bool writeAscii;
-    bool gapSpace;
-
-    std::string fileAliIn;
-    std::string fileOut;
-    std::string fileRefIn;
-
-    Options() :
-        contigID(-1), beginPos(-1), endPos(-1), beginLine(-1), endLine(-1), writeAscii(false), gapSpace(false)
-    {}
-};
-
-// Parse command line, write results to options, return PARSE_OK if everything went well.
-ArgumentParser::ParseResult parseCommandLine(Options & options, int argc, char const ** argv)
-{
-    ArgumentParser parser;
-    setShortDescription(parser, "draw SAM/BAM file as SVG vector graphics");
-    addUsageLine(parser, "[OPTION] -a <SAM/BAM file> [-r <GENOME file>] -o <SVG/ASCII file>");
-
-    addOption(parser, ArgParseOption("a", "alignment", "SAM/BAM file to load.", ArgParseOption::INPUT_FILE));
-    setRequired(parser, "alignment", true);
-    setValidValues(parser, "alignment", BamFileIn::getFileExtensions());
-
-    addOption(parser, ArgParseOption("r", "reference", "FASTA file to use as the reference.", ArgParseOption::INPUT_FILE));
-    setValidValues(parser, "reference", SeqFileIn::getFileExtensions());
-
-    addOption(parser, ArgParseOption("o", "out", "SVG/ASCII file to write.", ArgParseOption::OUTPUT_FILE));
-    setRequired(parser, "out", true);
-    setValidValues(parser, "out", ".txt .svg");
-
-    addOption(parser, ArgParseOption("", "contig", "Display contig with this numeric ID only (zero-based), default is to show all contigs.", ArgParseOption::INTEGER));
-    setDefaultValue(parser, "contig", -1);
-
-    addOption(parser, ArgParseOption("", "begin-pos", "Begin position of the region to show, default is to show all.", ArgParseOption::INTEGER));
-    setDefaultValue(parser, "begin-pos", -1);
-
-    addOption(parser, ArgParseOption("", "end-pos", "End position of the region to show, default is to show all.", ArgParseOption::INTEGER));
-    setDefaultValue(parser, "end-pos", -1);
-
-    addOption(parser, ArgParseOption("", "begin-line", "First line to show, zero-based", ArgParseOption::INTEGER));
-    setDefaultValue(parser, "begin-line", -1);
-
-    addOption(parser, ArgParseOption("", "end-line", "Last line to show, zero-based, default is to show all", ArgParseOption::INTEGER));
-    setDefaultValue(parser, "end-line", -1);
-
-    addOption(parser, ArgParseOption("", "gap-space", "begin and end position are given in gap space instead of in sequence space"));
-
-    // Parse command line.
-    ArgumentParser::ParseResult res = parse(parser, argc, argv);
-
-    // Only extract  options if the program will continue after parseCommandLine()
-    if (res != ArgumentParser::PARSE_OK)
-        return res;
-
-    getOptionValue(options.contigID, parser, "contig");
-    getOptionValue(options.beginPos, parser, "begin-pos");
-    getOptionValue(options.endPos, parser, "end-pos");
-    getOptionValue(options.beginLine, parser, "begin-line");
-    getOptionValue(options.endLine, parser, "end-line");
-
-    getOptionValue(options.fileAliIn, parser, "alignment");
-    getOptionValue(options.fileRefIn, parser, "reference");
-    getOptionValue(options.fileOut, parser, "out");
-
-    options.writeAscii = endsWith(options.fileOut, ".txt");
-    options.gapSpace = isSet(parser, "gap-space");
-
-    // Begin position cannot be greater than end position.
-    if (options.beginPos != -1 && options.endPos != -1 && options.beginPos > options.endPos)
-    {
-        std::cerr << "ERROR: begin position cannot be greater than end position!\n";
-        return ArgumentParser::PARSE_ERROR;
-    }
-
-    // First line number cannot be greater than last line number.
-    if (options.beginLine != -1 && options.endLine != -1 && options.beginLine < options.endLine)
-    {
-        std::cerr << "ERROR: first line cannot be greater than end position!\n";
-        return ArgumentParser::PARSE_ERROR;
-    }
-
-    return ArgumentParser::PARSE_OK;
-}
-
-int main(int argc, char const ** argv)
-{
-    // -----------------------------------------------------------------------
-    // Parse Options
-    // -----------------------------------------------------------------------
-    Options options;
-    ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
-
-    // If parsing was not successful then exit with code 1 if there were errors.
-    // Otherwise, exit with code 0 (e.g. help was printed).
-    if (res != ArgumentParser::PARSE_OK)
-        return res == ArgumentParser::PARSE_ERROR;
-
-    // -----------------------------------------------------------------------
-    // Load Files
-    // -----------------------------------------------------------------------
-
-    typedef FragmentStore<> TFragStore;
-
-    typedef TFragStore::TContigStore TContigStore;
-    typedef Value<TContigStore>::Type TContig;
-    typedef TFragStore::TContigPos TContigPos;
-
-    TFragStore store;
-    BamFileIn samFile(options.fileAliIn.c_str());
-    std::ofstream ascii;
-    SVGFile svg;
-
-    // Optionally load genome file
-    if (!options.fileRefIn.empty())
-    {
-        if (!loadContigs(store, options.fileRefIn.c_str()))
-        {
-            std::cerr << "Failed to load genome.\n";
-            return 1;
-        }
-    }
-
-    // Load Sam file
-    readRecords(store, samFile);
-
-    // Choose contigs
-    std::vector<unsigned> contigs;
-    if (options.contigID == -1)
-        for (unsigned i = 0; i < length(store.contigStore); ++i)
-            contigs.push_back(i);
-    else
-        contigs.push_back(options.contigID);
-
-    // Optionally load genome and open SVG file for writing
-    if (options.writeAscii)
-    {
-        ascii.open(options.fileOut.c_str(), std::ios_base::out | std::ios_base::trunc);
-        if (!ascii.is_open())
-        {
-            std::cerr << "ERROR: could not open output file for writing.\n";
-            return 1;
-        }
-    }
-    else if (!open(svg, options.fileOut.c_str()))
-    {
-        std::cerr << "ERROR: could not open output file for writing.\n";
-        return 1;
-    }
-
-    // -----------------------------------------------------------------------
-    // Write Alignment
-    // -----------------------------------------------------------------------
-
-    AlignedReadLayout layout;
-    std::cerr << "Layouting reads ... ";
-    layoutAlignment(layout, store);
-    std::cerr << "done\n";
-
-    std::cerr << "Writing " << contigs.size() << " contigs...\n";
-
-    int beginLine = (options.beginLine == -1) ? 0 : options.beginLine;
-    int endLine = (options.endLine == -1) ? MaxValue<int>::VALUE : options.endLine;
-
-    for (unsigned i = 0; i < contigs.size(); ++i)
-        if (contigs[i] < length(store.contigStore))
-        {
-            std::cerr << "Writing contig " << store.contigNameStore[contigs[i]] << " ... ";
-
-            __int64 l = (options.beginPos == -1) ? 0 : options.beginPos;
-            __int64 r = (options.endPos == -1) ? MaxValue<TContigPos>::VALUE : options.endPos;
-
-            if (!options.gapSpace)
-            {
-                typedef Gaps<Nothing, AnchorGaps<TContig::TGapAnchors> >   TContigGaps;
-                TContigGaps contigGaps(store.contigStore[i].gaps);
-                l = positionSeqToGap(contigGaps, l);
-                if (r != MaxValue<TContigPos>::VALUE)
-                    r = positionSeqToGap(contigGaps, r);
-            }
-
-            if (r == MaxValue<TContigPos>::VALUE)
-            {
-                r = 0;
-                for (unsigned j = 0; j < length(layout.contigRows[i]); ++j)
-                {
-                    unsigned id = back(layout.contigRows[i][j]);
-                    if (r < store.alignedReadStore[id].beginPos)
-                        r = store.alignedReadStore[id].beginPos;
-                    if (r < store.alignedReadStore[id].endPos)
-                        r = store.alignedReadStore[id].endPos;
-                }
-            }
-
-            std::cerr << l << '\t' << r << '\t' << beginLine << '\t' << endLine << "\n";
-            if (options.writeAscii)
-                printAlignment(ascii, layout, store, contigs[i], l, r, beginLine, endLine);
-            else
-                printAlignment(svg, layout, store, contigs[i], l, r, beginLine, endLine);
-
-            std::cout << "done\n";
-        }
-
-    return 0;
-}
diff --git a/demos/dox/vcf_io/example.vcf b/demos/vcf_io/example.vcf
similarity index 100%
rename from demos/dox/vcf_io/example.vcf
rename to demos/vcf_io/example.vcf
diff --git a/demos/vcf_io/vcf_stream_read.cpp b/demos/vcf_io/vcf_stream_read.cpp
new file mode 100644
index 0000000..52450ec
--- /dev/null
+++ b/demos/vcf_io/vcf_stream_read.cpp
@@ -0,0 +1,33 @@
+#include <seqan/basic.h>
+#include <seqan/vcf_io.h>
+
+using namespace seqan;
+
+int main()
+{
+    CharString path = SEQAN_PATH_TO_ROOT();
+    append(path, "/demos/vcf_io/example.vcf");
+
+    VcfFileIn vcfIn;
+    if (!open(vcfIn, toCString(path)))
+    {
+        std::cerr << "ERROR: Could not open " << path << " for reading!\n";
+        return 1;
+    }
+
+    VcfHeader header;
+    readHeader(header, vcfIn);
+
+    VcfRecord record;
+    while (!atEnd(vcfIn))
+    {
+        readRecord(record, vcfIn);
+
+        // Note that we print the position 1-based since we use text output
+        // whereas it is 0-based in the VcfRecord.
+        std::cout << contigNames(context(vcfIn))[record.rID]
+                  << "\t" << (record.beginPos + 1) << "\n";
+    }
+
+    return 0;
+}
diff --git a/demos/vcf_io/vcf_stream_read.cpp.stdout b/demos/vcf_io/vcf_stream_read.cpp.stdout
new file mode 100644
index 0000000..83031b6
--- /dev/null
+++ b/demos/vcf_io/vcf_stream_read.cpp.stdout
@@ -0,0 +1,5 @@
+20	14370
+20	17330
+20	1110696
+20	1230237
+20	1234567
diff --git a/dox/pages/constraint_iterator.dox b/dox/pages/constraint_iterator.dox
index a43ff68..4de99ca 100644
--- a/dox/pages/constraint_iterator.dox
+++ b/dox/pages/constraint_iterator.dox
@@ -11,28 +11,28 @@
  *
  * We start by including the necessary headers and use the namespace seqan;
  *
- * @snippet demos/dox/index/node_predicate.cpp includes
+ * @snippet demos/index/index_node_predicate.cpp includes
  *
  * Afterwards we create a struct containing the constraints.
  *
- * @snippet demos/dox/index/node_predicate.cpp constraints
+ * @snippet demos/index/index_node_predicate.cpp constraints
  *
  * In the following we do the requiered extensions.
  *
- * @snippet demos/dox/index/node_predicate.cpp extensions
+ * @snippet demos/index/index_node_predicate.cpp extensions
  *
  * Now we start the main program with a sequence initialization.
  *
- * @snippet demos/dox/index/node_predicate.cpp main
+ * @snippet demos/index/index_node_predicate.cpp main
  *
  * Then we create our customized index which is a specialization of the deferred @Class.Index.wotd-Index@
  * 
- * @snippet demos/dox/index/node_predicate.cpp specialisation
+ * @snippet demos/index/index_node_predicate.cpp specialisation
  *
  * And finaly we search by traversing a string tree.  To find all strings that fulfill our constraints, we simply do a
  * dfs-traversal via @Function.goBegin@ and @Function.goNext at .
  * 
- * @snippet demos/dox/index/node_predicate.cpp traversal
+ * @snippet demos/index/index_node_predicate.cpp traversal
  *
  * @code{.console}
  * weese at tanne:~/seqan$ cd demos
diff --git a/dox/pages/index_count_children.dox b/dox/pages/index_count_children.dox
index 4396269..93ffa3b 100644
--- a/dox/pages/index_count_children.dox
+++ b/dox/pages/index_count_children.dox
@@ -5,7 +5,7 @@
  * This example shows how to iterate over a suffix tree and print the number of children and the number of occurrences
  * of the node representatitves.
  *
- * @include demos/dox/index/counting.cpp
+ * @include demos/index/index_counting.cpp
  *
  * The only maximal matches that occur in all 3 sequences are "SeqAn" and "sequence". They occur exactly once and thus
  * are maximal unique matches.
diff --git a/dox/pages/maxima_unique_matches.dox b/dox/pages/maxima_unique_matches.dox
index dfa4a0f..74e102d 100644
--- a/dox/pages/maxima_unique_matches.dox
+++ b/dox/pages/maxima_unique_matches.dox
@@ -6,7 +6,7 @@
  * (MUM) is a unique match that is not part of any longer unique match. The following example demonstrates how to iterate
  * over all MUMs and output them.
  *
- * @include demos/dox/index/mums.cpp
+ * @include demos/index/index_mums.cpp
  *
  * The only maximal matches that occur in all 3 sequences are "SeqAn" and "sequence". They occur exactly once and thus
  * are maximal unique matches.
diff --git a/dox/pages/maximal_repeats.dox b/dox/pages/maximal_repeats.dox
index d7ea1f0..7e801ad 100644
--- a/dox/pages/maximal_repeats.dox
+++ b/dox/pages/maximal_repeats.dox
@@ -6,17 +6,17 @@
  * A maximal repeat is a repeat that cannot be extended to the left or to right to a longer repeat. The following
  * example demonstrates how to iterate over all maximal repeats and output them.
  *
- * @snippet demos/dox/index/maxrepeats.cpp includes
+ * @snippet demos/index_maxrepeats.cpp includes
  *
  * We begin with a @Class.String@ to store our sequence. Then we create an @Class.Index@ of this @link StringSet @endlink.
  *
  * Afterwards we initialize a string with the sequence and build an index over it
  *
- * @snippet demos/dox/index/maxrepeats.cpp init
+ * @snippet demos/index_maxrepeats.cpp init
  *
  * To find maximal repeats, we use SeqAn's @link MaxRepeatsIterator @endlink and set the minimum repeat length to 3.
  *
- * @snippet demos/dox/index/maxrepeats.cpp iteration
+ * @snippet demos/index_maxrepeats.cpp iteration
  *
  * A repeat can be represented by its length and positions it occurs at.
  * $myRepeatIterator$ iterates over all repeat strings.
diff --git a/dox/pages/mummy.dox b/dox/pages/mummy.dox
index 46de1f6..fdb7f29 100644
--- a/dox/pages/mummy.dox
+++ b/dox/pages/mummy.dox
@@ -6,7 +6,7 @@ MUMmer is a tool to search for multiple exact matches (MUMs) between 2 given seq
 starting point for a multiple genome alignment algorithm.  This example shows how to implement a simple version of
 MUMer to find multiple exact matches of n sequences (n>=2) in SeqAn.
 
- at include demos/dox/index/mummy.cpp
+ at include demos/index/index_mummy.cpp
 
 If you run the tool on 2 sequences it outputs exactly the same matches as MUMmer (called with -mum option), it only
 differs in the * order of outputted matches.  To get matches with increasing positions at the first sequence we
diff --git a/dox/pages/suffix_array.dox b/dox/pages/suffix_array.dox
index 89628c4..d4582ea 100644
--- a/dox/pages/suffix_array.dox
+++ b/dox/pages/suffix_array.dox
@@ -17,7 +17,7 @@
  * This is only an example for @link createSuffixArray @endlink and similar functions. For an index based substring search
  * better use the more generic @link Finder @endlink class (see @Demo.Index Finder@ demo).
  *
- * @include demos/dox/index/sufarray.cpp
+ * @include demos/index/index_sufarray.cpp
  *
  * @code{.console}
  * weese at tanne:~/seqan$ cd demos
diff --git a/dox/pages/supermaximal_repeats.dox b/dox/pages/supermaximal_repeats.dox
index fbf1b4d..b688018 100644
--- a/dox/pages/supermaximal_repeats.dox
+++ b/dox/pages/supermaximal_repeats.dox
@@ -9,15 +9,15 @@
  *
  * We start by including the required headers and using the namespace seqan.
  *
- * @snippet demos/dox/index/supermaxrepeats.cpp includes
+ * @snippet demos/index/index_supermaxrepeats.cpp includes
  *
  * Afterwards we initialize a stirng with the sequence and build an index over it
  *
- * @snippet demos/dox/index/supermaxrepeats.cpp init
+ * @snippet demos/index/index_supermaxrepeats.cpp init
  *
  * To find supermaximal repeats, we use SeqAn's @link SuperMaxRepeatsIterator SuperMaxRepeats Iterator @endlink and set the minimum repeat length to 3.
  *
- * @snippet demos/dox/index/supermaxrepeats.cpp iteration
+ * @snippet demos/index/index_supermaxrepeats.cpp iteration
  *
  * The only supermaximal repeats of "How many wood would a woodchuck chuck." of length at least 3 are " wood" and
  * "chuck". There are repeats of " wo" which are maximal (see Maximal Repeats), ut not supermaximal, as " wo" is part of
diff --git a/include/seqan/align/align_base.h b/include/seqan/align/align_base.h
index 4aa31d9..02a91e6 100644
--- a/include/seqan/align/align_base.h
+++ b/include/seqan/align/align_base.h
@@ -72,11 +72,11 @@ namespace seqan {
  *
  * Here is an example of using an Align object with @link globalAlignment @endlink.
  *
- * @include demos/dox/align/align.cpp
+ * @include demos/align/align.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align/align.cpp.stdout
+ * @include demos/align/align.cpp.stdout
  *
  * @see globalAlignment
  * @see localAlignment
diff --git a/include/seqan/align/alignment_operations.h b/include/seqan/align/alignment_operations.h
index f00df50..10c1fc2 100644
--- a/include/seqan/align/alignment_operations.h
+++ b/include/seqan/align/alignment_operations.h
@@ -72,11 +72,11 @@ namespace seqan {
  *
  * @section Examples
  *
- * @include demos/dox/align/integrate_align.cpp
+ * @include demos/align/integrate_align.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align/integrate_align.cpp.stdout
+ * @include demos/align/integrate_align.cpp.stdout
  */
 
 template <typename TSource1, typename TSpec1, typename TSource2, typename TSpec2, typename TPos>
diff --git a/include/seqan/align/evaluate_alignment.h b/include/seqan/align/evaluate_alignment.h
index 132d5c8..caba74c 100644
--- a/include/seqan/align/evaluate_alignment.h
+++ b/include/seqan/align/evaluate_alignment.h
@@ -187,11 +187,11 @@ void clear(AlignmentStats & stats)
  *
  * @section Examples
  *
- * @include demos/dox/align/compute_alignment_stats.cpp
+ * @include demos/align/compute_alignment_stats.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align/compute_alignment_stats.cpp.stdout
+ * @include demos/align/compute_alignment_stats.cpp.stdout
  */
 
 template <typename TSource, typename TAlignSpec, typename TScoreVal, typename TScoreSpec>
@@ -221,7 +221,7 @@ TScoreVal computeAlignmentStats(AlignmentStats & stats,
     {
         if (isGap(it0))
         {
-            if (!isGapOpen0)
+            if (isGapOpen0)
             {
                 stats.numGapOpens += 1;
                 stats.alignmentScore += scoreGapOpen(scoringScheme);
@@ -267,7 +267,7 @@ TScoreVal computeAlignmentStats(AlignmentStats & stats,
             stats.alignmentScore += scoreVal;
             // Register other statistics.
             bool isMatch = (c0 == c1);
-            bool isPositive = (scoreVal > 0);
+            bool isPositive = (scoreVal >= 0);
             stats.numMatches += isMatch;
             stats.numMismatches += !isMatch;
             stats.numPositiveScores += isPositive;
diff --git a/include/seqan/align/gaps_anchor.h b/include/seqan/align/gaps_anchor.h
index ef00050..2129d29 100644
--- a/include/seqan/align/gaps_anchor.h
+++ b/include/seqan/align/gaps_anchor.h
@@ -117,9 +117,6 @@ public:
     typedef typename Position<Gaps>::Type      TPosition_;
     typedef typename Value<Gaps>::Type         TValue_;
 
-    typedef typename RemoveReference<typename RemoveConst<TSource>::Type>::Type TSourceNoConstNoRef;
-    typedef TSourceNoConstNoRef const & TSourceConstRef;
-
     // -----------------------------------------------------------------------
     // Member Variables
     // -----------------------------------------------------------------------
@@ -170,8 +167,33 @@ public:
     {
     }
 
-    // everybody has const & constructors
-    Gaps(TSourceNoConstNoRef const & source, TGapAnchors & anchors) :
+    // Note: We need the variants with the first parameter "TSource const &" here because TSource can be a Segment which
+    // is often given as a temporary.
+
+    Gaps(TSource & source, TGapAnchors & anchors) :
+        data_source(source),
+        data_gaps(anchors),
+        data_cutBegin(0),
+        data_cutEnd(0),
+        data_viewCutBegin(0),
+        data_viewCutEnd(0)
+    {
+    }
+
+    Gaps(TSource & source, TGapAnchors const & anchors) :
+        data_source(source),
+        data_gaps(anchors),
+        data_cutBegin(0),
+        data_cutEnd(0),
+        data_viewCutBegin(0),
+        data_viewCutEnd(0)
+    {
+    }
+
+    // TODO(holtgrew): These constructors are only here because of const-Holder issues.
+
+    template <typename TSource2>
+    Gaps(TSource2 & source, TGapAnchors & anchors) :
         data_source(source),
         data_gaps(anchors),
         data_cutBegin(0),
@@ -181,7 +203,8 @@ public:
     {
     }
 
-    Gaps(TSourceNoConstNoRef const & source, TGapAnchors const & anchors) :
+    template <typename TSource2>
+    Gaps(TSource2 & source, TGapAnchors const & anchors) :
         data_source(source),
         data_gaps(anchors),
         data_cutBegin(0),
@@ -191,9 +214,8 @@ public:
     {
     }
 
-    // if source is not const & (but possibly const) there are also regular & constructors
-    Gaps(TSourceNoConstNoRef & source, TGapAnchors & anchors,
-         SEQAN_CTOR_DISABLE_IF(IsSameType<TSource, TSourceConstRef>)) :
+    template <typename TSource2>
+    Gaps(TSource2 const & source, TGapAnchors & anchors) :
         data_source(source),
         data_gaps(anchors),
         data_cutBegin(0),
@@ -201,11 +223,10 @@ public:
         data_viewCutBegin(0),
         data_viewCutEnd(0)
     {
-        ignoreUnusedVariableWarning(dummy);
     }
 
-    Gaps(TSourceNoConstNoRef & source, TGapAnchors const & anchors,
-        SEQAN_CTOR_DISABLE_IF(IsSameType<TSource, TSourceConstRef>)) :
+    template <typename TSource2>
+    Gaps(TSource2 const & source, TGapAnchors const & anchors) :
         data_source(source),
         data_gaps(anchors),
         data_cutBegin(0),
@@ -213,7 +234,6 @@ public:
         data_viewCutBegin(0),
         data_viewCutEnd(0)
     {
-        ignoreUnusedVariableWarning(dummy);
     }
 
     // -----------------------------------------------------------------------
diff --git a/include/seqan/align/gaps_base.h b/include/seqan/align/gaps_base.h
index ea9af69..683034e 100644
--- a/include/seqan/align/gaps_base.h
+++ b/include/seqan/align/gaps_base.h
@@ -104,11 +104,11 @@ typedef Tag<ArrayGaps_> ArrayGaps;
  * The following example shows the construction of the gaps object from the image above together with some calls to
  * <tt>toViewPosition</tt> and <tt>toSourcePosition</tt>.
  *
- * @include demos/dox/align/gaps_example.cpp
+ * @include demos/align/gaps_example.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align/gaps_example.cpp.stdout
+ * @include demos/align/gaps_example.cpp.stdout
  */
 
 template <typename TSequence, typename TSpec = ArrayGaps>
diff --git a/include/seqan/align/global_alignment_unbanded.h b/include/seqan/align/global_alignment_unbanded.h
index 8c4a1bd..4c78e51 100644
--- a/include/seqan/align/global_alignment_unbanded.h
+++ b/include/seqan/align/global_alignment_unbanded.h
@@ -134,19 +134,19 @@ class Fragment;
  * Global alignment of two sequences using an @link Align @endlink object and
  * the Needleman-Wunsch algorithm.
  *
- * @include demos/dox/align/global_alignment_unbanded.cpp
+ * @include demos/align/global_alignment_unbanded.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align/global_alignment_unbanded.cpp.stdout
+ * @include demos/align/global_alignment_unbanded.cpp.stdout
  *
  * Global banded alignment of two sequences using two @link Gaps @endlink objects and the Gotoh algorithm.
  *
- * @include demos/dox/align/global_alignment_banded.cpp
+ * @include demos/align/global_alignment_banded.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align/global_alignment_banded.cpp.stdout
+ * @include demos/align/global_alignment_banded.cpp.stdout
  *
  * http://seqan.readthedocs.org/en/develop/Tutorial/PairwiseSequenceAlignment.html
  *
diff --git a/include/seqan/align_extend/align_extend.h b/include/seqan/align_extend/align_extend.h
index d00c20f..11a930f 100644
--- a/include/seqan/align_extend/align_extend.h
+++ b/include/seqan/align_extend/align_extend.h
@@ -450,11 +450,11 @@ _extendAlignmentImpl(Align<TStringInfix, TAlignSpec> & align,
  *
  * @section Example
  *
- * @include demos/dox/align_extend/extend_alignment.cpp
+ * @include demos/align_extend/extend_alignment.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/align_extend/extend_alignment.cpp.stdout
+ * @include demos/align_extend/extend_alignment.cpp.stdout
  *
  * @section Remarks
  *
diff --git a/include/seqan/align_profile/score_profile_seq.h b/include/seqan/align_profile/score_profile_seq.h
index c557340..609390f 100644
--- a/include/seqan/align_profile/score_profile_seq.h
+++ b/include/seqan/align_profile/score_profile_seq.h
@@ -105,7 +105,7 @@ typedef Tag<ProfileSeqScore_> ProfileSeqScore;
  * The following example uses the ProfileSeq Score to align a sequence against a profile.
  * Note that we print the gap state for each position since profiles cannot be printed to one stdout character.
  *
- * @include demos/dox/align_profile/profile_seq_score.cpp
+ * @include demos/align_profile/profile_seq_score.cpp
  *
  * The output is as follows:
  *
@@ -186,7 +186,7 @@ typedef Tag<ProfileSeqFracScore_> ProfileSeqFracScore;
  * The following example uses the ProfileSeqFrac Score to align a sequence against a profile.  Note that we print the
  * gap state for each position since profiles cannot be printed to one stdout character.
  *
- * @include demos/dox/align_profile/profile_seq_frac_score.cpp
+ * @include demos/align_profile/profile_seq_frac_score.cpp
  *
  * The output is as follows:
  *
diff --git a/include/seqan/align_split/align_split_interface.h b/include/seqan/align_split/align_split_interface.h
index e0623e2..ff9e657 100644
--- a/include/seqan/align_split/align_split_interface.h
+++ b/include/seqan/align_split/align_split_interface.h
@@ -485,11 +485,11 @@ int _splitAlignmentImpl(Gaps<TContigSeqL> & gapsContigL,
  * The following example demonstrates the usage of <tt>splitAlignment</tt> in the first case.  The second case
  * works accordingly.
  *
- * @include demos/dox/align_split/split_alignment.cpp
+ * @include demos/align_split/split_alignment.cpp
  *
  * The output is as follows.
  *
- * @include demos/dox/align_split/split_alignment.cpp.stdout
+ * @include demos/align_split/split_alignment.cpp.stdout
  */
 
 // Variant: unbanded, with Align objects.
diff --git a/include/seqan/arg_parse/arg_parse_argument.h b/include/seqan/arg_parse/arg_parse_argument.h
index c33a1be..afaf720 100644
--- a/include/seqan/arg_parse/arg_parse_argument.h
+++ b/include/seqan/arg_parse/arg_parse_argument.h
@@ -80,7 +80,7 @@ inline std::string getFileExtension(ArgParseArgument const & me, unsigned pos);
  *
  * In the following example, the types <tt>INPUT_FILE</tt>, <tt>OUTPUT_FILE</tt>, and <tt>DOUBLE</tt> are used.
  *
- * @include demos/dox/arg_parse/argument_parser.cpp
+ * @include demos/arg_parse/argument_parser.cpp
  */
 
 /*!
@@ -499,14 +499,14 @@ inline std::string const getArgumentLabel(ArgParseArgument const & me)
 // Helper Function _intervalAssert()
 // ----------------------------------------------------------------------------
 
-// this methods ensures that the given arguments define a valid interval
+// this methods ensures that the given arguments define a non emtpy value interval
 // otherwise it will trigger a SEQAN_CHECK failure
 template <typename TIntervalBorder>
 inline void _intervalAssert(const std::string minValueAsString, const std::string maxValueAsString)
 {
     if (minValueAsString != "" && maxValueAsString != "")
-        SEQAN_CHECK(_cast<TIntervalBorder>(minValueAsString) <= _cast<TIntervalBorder>(maxValueAsString),
-                    "The interval [%s:%s] is invalid. Please specify a valid interval.",
+        SEQAN_CHECK(_cast<TIntervalBorder>(minValueAsString) < _cast<TIntervalBorder>(maxValueAsString),
+                    "The interval [%s:%s] is empty. Please specify a valid, non-empty interval.",
                     minValueAsString.c_str(),
                     maxValueAsString.c_str());
 }
diff --git a/include/seqan/arg_parse/argument_parser.h b/include/seqan/arg_parse/argument_parser.h
index 06e21dd..ae3b791 100644
--- a/include/seqan/arg_parse/argument_parser.h
+++ b/include/seqan/arg_parse/argument_parser.h
@@ -91,7 +91,7 @@ inline ArgParseArgument & getArgument(ArgumentParser & me, unsigned position);
  *
  * The following gives a simple example of how to use the ArgumentParser class.
  *
- * @include demos/dox/arg_parse/argument_parser.cpp
+ * @include demos/arg_parse/argument_parser.cpp
  *
  * @code{.console}
  * $ demo_arg_parse_argument_parser in.fa out.txt --id 0
diff --git a/include/seqan/arg_parse/tool_doc.h b/include/seqan/arg_parse/tool_doc.h
index ee20baf..acf179c 100644
--- a/include/seqan/arg_parse/tool_doc.h
+++ b/include/seqan/arg_parse/tool_doc.h
@@ -359,7 +359,7 @@ public:
     {
         std::ostream_iterator<char> out(stream);
         stream << '\n' << _toText("\\fB");
-        std::transform(begin(section._title), end(section._title), out, static_cast < int(*)(int) > (toupper));
+        std::transform(begin(section._title), end(section._title), out, toupper);
         stream << _toText("\\fP") << '\n';
     }
 
@@ -992,7 +992,7 @@ inline CharString const & getManTitle(ToolDoc & doc)
 }
 
 // --------------------------------------------------------------------------
-// Function addSection()ToolDoc
+// Function addSection()                                              ToolDoc
 // --------------------------------------------------------------------------
 
 /*!
@@ -1290,9 +1290,9 @@ void ManToolDocPrinter_::print(std::ostream & stream, ToolDoc const & doc)
 
     // Print .TH line.
     stream << ".TH ";
-    std::transform(begin(doc._name), end(doc._name), out, static_cast < int(*)(int) > (toupper));
+    std::transform(begin(doc._name), end(doc._name), out, toupper);
     stream << " " << doc._manSection << " \"" << doc._date << "\" \"";
-    std::transform(begin(doc._name), end(doc._name), out, static_cast < int(*)(int) > (tolower));
+    std::transform(begin(doc._name), end(doc._name), out, tolower);
     stream << " " << doc._version << "\" \"" << doc._manTitle << "\"\n";
 
     // Print NAME section.
@@ -1319,7 +1319,7 @@ void ManToolDocPrinter_::print(std::ostream & stream, ToolDoc const & doc)
         {
             ToolDocSection_ const * sec = static_cast<ToolDocSection_ const *>(entry);
             stream << ".SH ";
-            std::transform(begin(sec->_title), end(sec->_title), out, static_cast < int(*)(int) > (toupper));
+            std::transform(begin(sec->_title), end(sec->_title), out, toupper);
             stream << "\n";
             isFirstInSection = true;
         }
diff --git a/include/seqan/bam_io/bam_file.h b/include/seqan/bam_io/bam_file.h
index d262943..68c666f 100644
--- a/include/seqan/bam_io/bam_file.h
+++ b/include/seqan/bam_io/bam_file.h
@@ -61,11 +61,11 @@ namespace seqan {
  *
  * Access SAM or BAM files.
  *
- * @include demos/tutorial/sam_and_bam_io/solution1.cpp
+ * @include demos/tutorial/bam_io/solution1.cpp
  *
  * The output is as follows:
  *
- * @include demos/tutorial/sam_and_bam_io/example.sam
+ * @include demos/tutorial/bam_io/example.sam
  */
 
 typedef FormattedFile<Bam, Input> BamFileIn;
@@ -88,11 +88,11 @@ typedef FormattedFile<Bam, Input> BamFileIn;
  *
  * Access SAM or BAM files.
  *
- * @include demos/tutorial/sam_and_bam_io/solution1.cpp
+ * @include demos/tutorial/bam_io/solution1.cpp
  *
  * The output is as follows:
  *
- * @include demos/tutorial/sam_and_bam_io/example.sam
+ * @include demos/tutorial/bam_io/example.sam
  */
 
 typedef FormattedFile<Bam, Output> BamFileOut;
@@ -247,11 +247,11 @@ inline SEQAN_FUNC_ENABLE_IF(And<IsSameType<typename Value<TRecords>::Type, BamAl
 readRecords(TRecords & records, FormattedFile<Bam, Input, TSpec> & file, TSize maxRecords)
 {
     String<CharString> & buffers = context(file).buffers;
-    if (static_cast<TSize>(length(buffers)) < maxRecords)
+    if ((TSize)length(buffers) < maxRecords)
+    {
         resize(buffers, maxRecords, Exact());
-    if (static_cast<TSize>(length(records)) < maxRecords)
         resize(records, maxRecords, Exact());
-
+    }
 
     TSize numRecords = 0;
     for (; numRecords < maxRecords && !atEnd(file.iter); ++numRecords)
@@ -359,24 +359,6 @@ writeRecords(FormattedFile<Bam, Output, TSpec> & file, TRecords const & records)
         write(file.iter, buffers[i]);
 }
 
-// ----------------------------------------------------------------------------
-// Function getFileExtensions()
-// ----------------------------------------------------------------------------
-// NOTE(h-2): this is overloaded so we get Bgzf in addition to other
-// compressions which is crucial for Bam
-
-template <typename TDirection, typename TSpec>
-static std::vector<std::string>
-getFileExtensions(FormattedFile<Bam, TDirection, TSpec> const &)
-{
-    std::vector<std::string> extensions;
-    _getCompressionExtensions(extensions,
-                              typename FormattedFile<Bam, TDirection, TSpec>::TFileFormats(),
-                              CompressedFileTypes(),
-                              false);
-    return extensions;
-}
-
 }  // namespace seqan
 
 #endif // SEQAN_BAM_IO_BAM_FILE_H_
diff --git a/include/seqan/bam_io/bam_index_bai.h b/include/seqan/bam_io/bam_index_bai.h
index e07a717..e32de3e 100644
--- a/include/seqan/bam_io/bam_index_bai.h
+++ b/include/seqan/bam_io/bam_index_bai.h
@@ -334,7 +334,7 @@ jumpToRegion(FormattedFile<Bam, Input, TSpec> & bamFile,
  * @param[in]     index          The @link BamIndex @endlink to use for jumping.
  */
 
-template <typename TSpec>
+template <typename TSpec, typename TNameStore, typename TNameStoreCache>
 bool jumpToOrphans(FormattedFile<Bam, Input, TSpec> & bamFile,
                    bool & hasAlignments,
                    BamIndex<Bai> const & index)
@@ -377,7 +377,7 @@ bool jumpToOrphans(FormattedFile<Bam, Input, TSpec> & bamFile,
     // Jump back to the first alignment.
     if (offset != MaxValue<__uint64>::VALUE)
     {
-        if (!setPosition(bamFile, offset))
+        if (!setPosition(bamFile, offset, SEEK_SET))
             return false;  // Error while seeking.
     }
 
@@ -523,26 +523,15 @@ open(BamIndex<Bai> & index, char * filename)
     return open(index, static_cast<char const *>(filename));
 }
 
-// ---------------------------------------------------------------------------
-// Function save()
-// ---------------------------------------------------------------------------
-
-/*!
- * @fn BamIndex#save
- * @brief Save a BamIndex object.
- *
- * @signature bool save(baiIndex, baiFileName);
- *
- * @param[in] baiIndex    The BamIndex to write out.
- * @param[in] baiFileName The name of the BAI file to write to.
- *
- * @return bool <tt>true</tt> on success, <tt>false</tt> otherwise.
- */
+// ----------------------------------------------------------------------------
+// Function buildIndex()
+// ----------------------------------------------------------------------------
 
-inline bool save(BamIndex<Bai> const & index, char const * baiFilename)
+inline bool _saveIndex(BamIndex<Bai> const & index, char const * filename)
 {
+    std::cerr << "WRITE INDEX TO " << filename << std::endl;
     // Open output file.
-    std::ofstream out(baiFilename, std::ios::binary | std::ios::out);
+    std::ofstream out(filename, std::ios::binary | std::ios::out);
 
     SEQAN_ASSERT_EQ(length(index._binIndices), length(index._linearIndices));
 
@@ -581,7 +570,7 @@ inline bool save(BamIndex<Bai> const & index, char const * baiFilename)
         }
 
         // Write out linear index.
-        __int32 numIntervals = length(linearIndex);
+        __int32 numIntervals = length(index._linearIndices);
         out.write(reinterpret_cast<char *>(&numIntervals), 4);
         typedef Iterator<String<__uint64> const, Rooted>::Type TLinearIndexIter;
         for (TLinearIndexIter it = begin(linearIndex, Rooted()); !atEnd(it); goNext(it))
@@ -589,14 +578,13 @@ inline bool save(BamIndex<Bai> const & index, char const * baiFilename)
     }
 
     // Write the number of unaligned reads if set.
-    //std::cerr << "UNALIGNED\t" << index._unalignedCount << std::endl;
+    std::cerr << "UNALIGNED\t" << index._unalignedCount << std::endl;
     if (index._unalignedCount != maxValue<__uint64>())
         out.write(reinterpret_cast<char const *>(&index._unalignedCount), 8);
 
     return out.good();  // false on error, true on success.
 }
 
-
 inline void _baiAddAlignmentChunkToBin(BamIndex<Bai> & index,
                                        __uint32 currBin,
                                        __uint32 currOffset,
@@ -620,24 +608,10 @@ inline void _baiAddAlignmentChunkToBin(BamIndex<Bai> & index,
     }
 }
 
-// ---------------------------------------------------------------------------
-// Function build()
-// ---------------------------------------------------------------------------
-// TODO(dadi): uncomment when BamIndex.build index is fixed. DOX commented out
-/*
- * @fn BamIndex#build
- * @brief Create a BamIndex from BAM file.
- *
- * @signature bool build(baiIndex, bamFileName);
- *
- * @param[out] baiIndex    The BamIndex to build into.
- * @param[in]  bamFileName Path to the BAM file to build an index for.  Type: <tt>char const *</tt>.
- *
- * @return bool <tt>true</tt> on success, <tt>false</tt> otherwise.
- */
-inline bool build(BamIndex<Bai> & index, char const * bamFilename)
+inline bool
+buildIndex(BamIndex<Bai> & index, char const * filename)
 {
-    // SEQAN_FAIL("This does not work yet!");
+    SEQAN_FAIL("This does not work yet!");
 
     index._unalignedCount = 0;
     clear(index._binIndices);
@@ -645,7 +619,7 @@ inline bool build(BamIndex<Bai> & index, char const * bamFilename)
 
     // Open BAM file for reading.
     BamFileIn bamFile;
-    if (!open(bamFile, bamFilename))
+    if (!open(bamFile, filename))
         return false;  // Could not open BAM file.
 
     // Read BAM header.
@@ -784,10 +758,13 @@ inline bool build(BamIndex<Bai> & index, char const * bamFilename)
     }
 
     // Merge small bins if possible.
-    // SEQAN_FAIL("TODO: Merge bins!");
-    return true;
-}
+    SEQAN_FAIL("TODO: Merge bins!");
 
+    // Write out index.
+    CharString baiFilename(filename);
+    append(baiFilename, ".bai");
+    return _saveIndex(index, toCString(baiFilename));
+}
 
 }  // namespace seqan
 
diff --git a/include/seqan/bam_io/bam_tags_dict.h b/include/seqan/bam_io/bam_tags_dict.h
index cdfb886..07c27e4 100644
--- a/include/seqan/bam_io/bam_tags_dict.h
+++ b/include/seqan/bam_io/bam_tags_dict.h
@@ -94,11 +94,11 @@ struct Position<BamTagsDict>
  *
  * @section Example
  *
- * @include demos/dox/bam_io/bam_tags_dict.cpp
+ * @include demos/bam_io/bam_tags_dict.cpp
  *
  * Output is:
  *
- * @include demos/dox/bam_io/bam_tags_dict.cpp.stdout
+ * @include demos/bam_io/bam_tags_dict.cpp.stdout
  *
  * @see getBamTypeSize
  * @see getBamTypeChar
diff --git a/include/seqan/bam_io/cigar.h b/include/seqan/bam_io/cigar.h
index c5bb34a..9de3e8b 100644
--- a/include/seqan/bam_io/cigar.h
+++ b/include/seqan/bam_io/cigar.h
@@ -545,7 +545,7 @@ alignAndGetCigarString(
     typedef typename TContig::TContigSeq                                            TContigSeq;
     typedef Gaps<TContigSeq, AnchorGaps<typename TContig::TGapAnchors> >            TContigGaps;
     typedef typename ReverseComplementString<TReadSeq const>::Type                  TRefCompReadSeq;
-    typedef Gaps<TReadSeq, AnchorGaps<typename TAlignedRead::TGapAnchors> >   TReadGaps;
+    typedef Gaps<TReadSeq const, AnchorGaps<typename TAlignedRead::TGapAnchors> >   TReadGaps;
     typedef Gaps<TRefCompReadSeq, AnchorGaps<typename TAlignedRead::TGapAnchors> >  TRCReadGaps;
 
     TContigGaps contigGaps(contig.seq, contig.gaps);
diff --git a/include/seqan/bam_io/read_bam.h b/include/seqan/bam_io/read_bam.h
index 3377d6c..a3d318c 100644
--- a/include/seqan/bam_io/read_bam.h
+++ b/include/seqan/bam_io/read_bam.h
@@ -96,7 +96,6 @@ readHeader(BamHeader & header,
            TForwardIter & iter,
            Bam const & /*tag*/)
 {
-    clear(header);
     // Read BAM magic string.
     String<char, Array<4> > magic;
     read(magic, iter, 4);
diff --git a/include/seqan/bam_io/write_bam.h b/include/seqan/bam_io/write_bam.h
index 3fd7ca1..b0f8673 100644
--- a/include/seqan/bam_io/write_bam.h
+++ b/include/seqan/bam_io/write_bam.h
@@ -144,7 +144,7 @@ _writeBamRecord(TTarget & target,
     // bin_mq_nl
     unsigned l = 0;
     _getLengthInRef(l, record.cigar);
-    record.bin =_reg2Bin(record.beginPos, record.beginPos + std::max(1u, l));
+    record.bin =_reg2Bin(record.beginPos, record.beginPos + l);
 
     // Write fixed-size BamAlignmentRecordCore.
     appendRawPod(target, (BamAlignmentRecordCore &)record);
@@ -238,14 +238,9 @@ _writeBamRecordWrapper(TTarget & target,
 template <typename TTarget, typename TNameStore, typename TNameStoreCache, typename TStorageSpec>
 void write(TTarget & target,
            BamAlignmentRecord const & record,
-           BamIOContext<TNameStore, TNameStoreCache, TStorageSpec> & context,
+           BamIOContext<TNameStore, TNameStoreCache, TStorageSpec> & /* context */,
            Bam const & tag)
 {
-    // Check for valid IO Context.
-    SEQAN_ASSERT_LT_MSG(record.rID, static_cast<__int32>(length(contigNames(context))), "BAM IO Assertion: Unknown REF ID!");
-    SEQAN_ASSERT_LT_MSG(record.rNextId, static_cast<__int32>(length(contigNames(context))), "BAM IO Assertion: Unknown NEXT REF ID!");
-    ignoreUnusedVariableWarning(context);
-
     // Update internal lengths
     __uint32 size = updateLengths(record);
 
diff --git a/include/seqan/bam_io/write_sam.h b/include/seqan/bam_io/write_sam.h
index bb101e1..10a63bc 100644
--- a/include/seqan/bam_io/write_sam.h
+++ b/include/seqan/bam_io/write_sam.h
@@ -128,10 +128,6 @@ inline void write(TTarget & target,
                   BamIOContext<TNameStore, TNameStoreCache, TStorageSpec> const & context,
                   Sam const & /*tag*/)
 {
-    // Check for valid IO Context.
-    SEQAN_ASSERT_LT_MSG(record.rID, static_cast<__int32>(length(contigNames(context))), "SAM IO Assertion: Unknown REF ID!");
-    SEQAN_ASSERT_LT_MSG(record.rNextId, static_cast<__int32>(length(contigNames(context))), "SAM IO Assertion: Unknown NEXT REF ID!");
-
     write(target, record.qName);
     writeValue(target, '\t');
 
diff --git a/include/seqan/basic/alphabet_residue.h b/include/seqan/basic/alphabet_residue.h
index c05d254..106b168 100644
--- a/include/seqan/basic/alphabet_residue.h
+++ b/include/seqan/basic/alphabet_residue.h
@@ -525,18 +525,18 @@ unknownValueImpl(Iupac *)
  * @brief IUPAC code for amino acids.
  * @signature typedef SingleType<unsigned char, AminoAcid_> AminoAcid;
  *
- * The ValueSize of <tt>AminoAcid</tt> is 27.
+ * The ValueSize of <tt>AminoAcid</tt> is 26.
  *
  * The amino acid symbols are as follows, i.e. they are sorted alphabetically
  * up until the last two symbols:
  *
- * 'A' = 0, 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y', 'Z', 'X'. '*'
+ * 'A' = 0, 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y', 'Z', 'X'. '*'
  *
  * Of these 'B' is a wildcard for (Aspartic Acid, Asparagine),
  * 'J' for (Leucine, Isoleucine), 'Z' for (Glutamic Acid, Glutamine) and
  * 'X' for "any amino acid".
  *
- * 'O' refers to the rare Pyrrolysine, 'U' refers to the rare Selenocysteine and '*' to the terminator tRNA.
+ * 'U' refers to the rare Selenocysteine and '*' to the terminator tRNA.
  *
  * Objects of type <tt>AminoAcid</tt> can be converted to <tt>char</tt> and vice versa.  Unknown values are converted to
  * <tt>'X'</tt>.
@@ -552,7 +552,7 @@ typedef SimpleType<unsigned char, AminoAcid_> AminoAcid;
 template <> struct ValueSize<AminoAcid>
 {
     typedef __uint8 Type;
-    static const Type VALUE = 27;
+    static const Type VALUE = 26;
 };
 
 template <> struct BitsPerValue<AminoAcid>
@@ -592,7 +592,7 @@ struct Finite;
 template <typename TValue, unsigned SIZE>
 struct ValueSize<SimpleType<TValue, Finite<SIZE> > >
 {
-    typedef unsigned Type;
+    typedef __uint8 Type;
     static const Type VALUE = SIZE;
 };
 
diff --git a/include/seqan/basic/alphabet_residue_tabs.h b/include/seqan/basic/alphabet_residue_tabs.h
index 2a94c11..3a01d80 100644
--- a/include/seqan/basic/alphabet_residue_tabs.h
+++ b/include/seqan/basic/alphabet_residue_tabs.h
@@ -359,10 +359,10 @@ char const TranslateTableByteToIupac_<T>::VALUE[256] =
 template <typename T = void>
 struct TranslateTableAAToChar_
 {
-    static char const VALUE[27];
+    static char const VALUE[26];
 };
 template <typename T>
-char const TranslateTableAAToChar_<T>::VALUE[27] =
+char const TranslateTableAAToChar_<T>::VALUE[26] =
 {
     'A', // Ala Alanine
     'B', // Aspartic Acid, Asparagine
@@ -373,18 +373,17 @@ char const TranslateTableAAToChar_<T>::VALUE[27] =
     'G', // Gly Glycine
     'H', // His Histidine
     'I', // Ile Isoleucine
-    'J', // Leucine, Isoleucine
+    'J', // Leucine, Isoleucine.........
     'K', // Lys Lysine
     'L', // Leu Leucine
     'M', // Met Methionine
     'N', // Asn Asparagine
-    'O', // Pyl Pyrrolysine
     'P', // Pro Proline
     'Q', // Gln Glutamine
     'R', // Arg Arginine
     'S', // Ser Serine
     'T', // Thr Threonine
-    'U', // Selenocystein
+    'U', // Selenocystein...............
     'V', // Val Valine
     'W', // Trp Tryptophan
     'Y', // Tyr Tyrosine
@@ -402,31 +401,31 @@ struct TranslateTableCharToAA_
 template <typename T>
 char const TranslateTableCharToAA_<T>::VALUE[256] =
 {
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //0
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //1
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  26,  25,  25,  25,  25,  25, //2
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //0
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //1
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  25,  24,  24,  24,  24,  24, //2
 //                                                     *
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //3
-    25,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14, //4
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //3
+    24,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  24, //4
 //    ,   A,   B,   C,   D,   E,   F,   G,   H,   I,   J,   K,   L,   M,   N,   O,
 
-    15,  16,  17,  18,  19,  20,  21,  22,  25,  23,  24,  25,  25,  25,  25,  25, //5
+    14,  15,  16,  17,  18,  19,  20,  21,  24,  22,  23,  24,  24,  24,  24,  24, //5
 //   P,   Q,   R,   S,   T,   U,   V,   W,   X,   Y,   Z,    ,    ,    ,    ,    ,
 
-    25,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14, //6
+    24,   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  24, //6
 //    ,   a,   b,   c,   d,   e,   f,   g,   h,   i,   j,   k,   l,   m,   n,   o,
 
-    15,  16,  17,  18,  19,  20,  21,  22,  25,  23,  24,  25,  25,  25,  25, //7
+    14,  15,  16,  17,  18,  19,  20,  21,  24,  22,  23,  24,  24,  24,  24,  24, //7
 //   p,   q,   r,   s,   t,   u,   v,   w,   x,   y,   z,    ,    ,    ,    ,    ,
 
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //8
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //9
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //10
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //11
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //12
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //13
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //14
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25  //15
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //8
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //9
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //10
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //11
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //12
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //13
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //14
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24  //15
 };
 
 template <typename T = void>
@@ -439,21 +438,21 @@ template <typename T>
 char const TranslateTableByteToAA_<T>::VALUE[256] =
 {
     0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15, //0
-    16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  25,  25,  25,  25,  25,  25, //1
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //2
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //3
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //4
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //5
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //6
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //7
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //8
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //9
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //10
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //11
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //12
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //13
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25, //14
-    25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25,  25  //15
+    16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  24,  24,  24,  24,  24,  24, //1
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //2
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //3
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //4
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //5
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //6
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //7
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //8
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //9
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //10
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //11
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //12
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //13
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24, //14
+    24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24,  24  //15
 };
 
 }  // namespace seqan
diff --git a/include/seqan/basic/alphabet_simple_type.h b/include/seqan/basic/alphabet_simple_type.h
index 535ea52..eddfb36 100644
--- a/include/seqan/basic/alphabet_simple_type.h
+++ b/include/seqan/basic/alphabet_simple_type.h
@@ -123,7 +123,7 @@ namespace seqan {
  * The following example shows construction of a @link Dna @endlink (specialization of SimpleType) object with from
  * <tt>char</tt> and integer values.
  *
- * @snippet demos/dox/basic/simple_type_construction.cpp simple type construction and assignment
+ * @snippet demos/basic/simple_type_construction.cpp simple type construction and assignment
  */
 
 #ifdef PLATFORM_WINDOWS
diff --git a/include/seqan/basic/basic_exception.h b/include/seqan/basic/basic_exception.h
index 4e84e41..7885ed0 100644
--- a/include/seqan/basic/basic_exception.h
+++ b/include/seqan/basic/basic_exception.h
@@ -350,8 +350,13 @@ struct AssertFunctor
 // Function globalExceptionHandler()
 // ----------------------------------------------------------------------------
 
-#if defined(SEQAN_EXCEPTIONS) && defined(SEQAN_GLOBAL_EXCEPTION_HANDLER)
+#if defined(SEQAN_EXCEPTIONS) && !defined(SEQAN_NO_GLOBAL_EXCEPTION_HANDLER)
 // Declare global exception handler.
+static void globalExceptionHandler();
+
+// Install global exception handler.
+static const std::terminate_handler _globalExceptionHandler = std::set_terminate(globalExceptionHandler);
+
 inline static void globalExceptionHandler()
 {
     SEQAN_TRY
@@ -367,11 +372,7 @@ inline static void globalExceptionHandler()
         SEQAN_FAIL("Uncaught exception of unknown type.\n");
     }
 }
-
-// Install global exception handler.
-static const std::terminate_handler SEQAN_UNUSED _globalExceptionHandler = std::set_terminate(globalExceptionHandler);
-
-#endif  // #if defined(SEQAN_EXCEPTIONS) && defined(SEQAN_GLOBAL_EXCEPTION_HANDLER)
+#endif  // #if defined(SEQAN_EXCEPTIONS) && !defined(SEQAN_NO_GLOBAL_EXCEPTION_HANDLER)
 
 }  // namespace seqan
 
diff --git a/include/seqan/basic/basic_stream.h b/include/seqan/basic/basic_stream.h
index 7bc6e9f..ac76cfd 100644
--- a/include/seqan/basic/basic_stream.h
+++ b/include/seqan/basic/basic_stream.h
@@ -62,10 +62,6 @@ template <typename TChar, typename TCharTraits, typename TAlloc>
 inline typename std::basic_string<TChar, TCharTraits, TAlloc>::size_type
 length(std::basic_string<TChar, TCharTraits, TAlloc> const & me);
 
-// Needed for std::basic_string.
-template <typename TContainer, typename TValue>
-inline void appendValue(TContainer SEQAN_FORWARD_ARG me, TValue SEQAN_FORWARD_CARG val);
-
 /*!
  * @macro SEQAN_HAS_ZLIB
  * @headerfile <seqan/stream.h>
@@ -1049,13 +1045,12 @@ write(TTarget &target, TFwdIterator &iter, TSize n)
 }
 
 // ----------------------------------------------------------------------------
-// Function write(TContainer) but not container of container
+// Function write(TContainer)
 // ----------------------------------------------------------------------------
 
 template <typename TTarget, typename TContainer>
-inline SEQAN_FUNC_ENABLE_IF(And< Not<IsContiguous<TContainer> >,
-                                 And< Is<ContainerConcept<TContainer> >,
-                                      Not<Is<ContainerConcept<typename Value<TContainer>::Type> > > > >, void)
+inline SEQAN_FUNC_ENABLE_IF(And< Is<ContainerConcept<TContainer> >,
+                                 Not<IsContiguous<TContainer> > >, void)
 write(TTarget &target, TContainer &cont)
 {
     typename DirectionIterator<TContainer, Input>::Type iter = directionIterator(cont, Input());
@@ -1063,19 +1058,19 @@ write(TTarget &target, TContainer &cont)
 }
 
 template <typename TTarget, typename TContainer>
-inline SEQAN_FUNC_ENABLE_IF(And< IsContiguous<TContainer>,
-                                 And< Is<ContainerConcept<TContainer> >,
-                                      Not<Is<ContainerConcept<typename Value<TContainer>::Type> > > > >, void)
+inline SEQAN_FUNC_ENABLE_IF(And< Is<ContainerConcept<TContainer> >,
+                                 IsContiguous<TContainer> >, void)
 write(TTarget &target, TContainer &cont)
 {
     typename Iterator<TContainer, Standard>::Type iter = begin(cont, Standard());
     write(target, iter, length(cont));
 }
 
+
+
 template <typename TTarget, typename TContainer>
-inline SEQAN_FUNC_ENABLE_IF(And< Not<IsContiguous<TContainer> >,
-                                 And< Is<ContainerConcept<TContainer> >,
-                                      Not<Is<ContainerConcept<typename Value<TContainer>::Type> > > > >, void)
+inline SEQAN_FUNC_ENABLE_IF(And< Is<ContainerConcept<TContainer> >,
+                                 Not<IsContiguous<TContainer> > >, void)
 write(TTarget &target, TContainer const &cont)
 {
     typename DirectionIterator<TContainer const, Input>::Type iter = directionIterator(cont, Input());
@@ -1083,15 +1078,16 @@ write(TTarget &target, TContainer const &cont)
 }
 
 template <typename TTarget, typename TContainer>
-inline SEQAN_FUNC_ENABLE_IF(And< IsContiguous<TContainer>,
-                                 And< Is<ContainerConcept<TContainer> >,
-                                      Not<Is<ContainerConcept<typename Value<TContainer>::Type> > > > >, void)
+inline SEQAN_FUNC_ENABLE_IF(And< Is<ContainerConcept<TContainer> >,
+                                 IsContiguous<TContainer> >, void)
 write(TTarget &target, TContainer const &cont)
 {
     typename Iterator<TContainer const, Standard>::Type iter = begin(cont, Standard());
     write(target, iter, length(cont));
 }
 
+
+
 template <typename TTarget, typename TValue>
 inline void
 write(TTarget &target, TValue * ptr)
diff --git a/include/seqan/basic/concept_checking.h b/include/seqan/basic/concept_checking.h
index d7512fa..108b7b7 100644
--- a/include/seqan/basic/concept_checking.h
+++ b/include/seqan/basic/concept_checking.h
@@ -73,6 +73,15 @@ namespace seqan {
 #  define SEQAN_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
 //#endif
 
+//
+// If the compiler warns about unused typedefs then enable this:
+//
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
+#  define SEQAN_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
+#else
+#  define SEQAN_STATIC_ASSERT_UNUSED_ATTRIBUTE
+#endif
+
 #ifdef SEQAN_CXX11_STANDARD
 #  define SEQAN_STATIC_ASSERT( B ) static_assert(B, #B)
 #else
@@ -151,7 +160,7 @@ template<int x> struct static_assert_test{};
 #define SEQAN_STATIC_ASSERT( B ) \
    typedef static_assert_test<\
       sizeof(STATIC_ASSERTION_FAILURE< SEQAN_STATIC_ASSERT_BOOL_CAST( B ) >)>\
-         SEQAN_JOIN(seqan_static_assert_typedef_, __LINE__) SEQAN_UNUSED
+         SEQAN_JOIN(seqan_static_assert_typedef_, __LINE__) SEQAN_STATIC_ASSERT_UNUSED_ATTRIBUTE
 #endif
 /*
 #else
@@ -223,7 +232,7 @@ struct concept_check_<void(*)(Model)>
 #  define SEQAN_CONCEPT_ASSERT_FN( ModelFnPtr )             \
     typedef seqan::detail::instantiate<          \
     &seqan::requirement_<ModelFnPtr>::failed>    \
-      SEQAN_PP_CAT(seqan_concept_check,__LINE__) SEQAN_UNUSED
+      SEQAN_PP_CAT(seqan_concept_check,__LINE__) SEQAN_STATIC_ASSERT_UNUSED_ATTRIBUTE
 
 // ---------------------------------------------------------------------------
 // ==> boost/concept/assert.hpp <==
@@ -420,7 +429,7 @@ struct requirement_<void(*)(Model)>
 #  define SEQAN_CONCEPT_ASSERT_FN( ModelFnPtr )             \
     typedef seqan::detail::instantiate<          \
     &seqan::requirement_<ModelFnPtr>::failed>    \
-      SEQAN_PP_CAT(seqan_concept_check,__LINE__) SEQAN_UNUSED
+      SEQAN_PP_CAT(seqan_concept_check,__LINE__) SEQAN_STATIC_ASSERT_UNUSED_ATTRIBUTE
 
 // ---------------------------------------------------------------------------
 // ==> boost/concept_check/detail/requires.hpp <==
diff --git a/include/seqan/basic/debug_test_system.h b/include/seqan/basic/debug_test_system.h
index b4a17bf..5c7ee24 100644
--- a/include/seqan/basic/debug_test_system.h
+++ b/include/seqan/basic/debug_test_system.h
@@ -361,9 +361,20 @@ inline const char * toCString(Demangler<T> const & me)
  */
 
 #if !SEQAN_ENABLE_DEBUG
-#define SEQAN_TYPEDEF_FOR_DEBUG SEQAN_UNUSED
+#  if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
+#    define SEQAN_TYPEDEF_FOR_DEBUG __attribute__((unused))
+#  else
+#    define SEQAN_TYPEDEF_FOR_DEBUG
+#  endif
 #else
-#define SEQAN_TYPEDEF_FOR_DEBUG
+#  define SEQAN_TYPEDEF_FOR_DEBUG
+#endif
+
+// TODO(holtgrew): This one is for profiling and in tests.
+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
+#  define SEQAN_UNUSED_TYPEDEF __attribute__((unused))
+#else
+#  define SEQAN_UNUSED_TYPEDEF
 #endif
 
 namespace seqan {
@@ -2650,6 +2661,10 @@ void SEQAN_ASSERT_NOT_MSG(T1 const & _arg1, const char * comment, ...) {}
  *
  * @return TCharPtr <tt>char const *</tt>, string with the path to the parent directory of the tests directory.
  *
+ * This only works when using the SeqAn SVN checkout!
+ *
+ * The pointed to string is initialized on program startup by the code generated by SEQAN_BEGIN_TESTSUITE.
+ *
  * @section Examples
  *
  * @code{.cpp}
@@ -2661,9 +2676,6 @@ void SEQAN_ASSERT_NOT_MSG(T1 const & _arg1, const char * comment, ...) {}
  * fclose(f);
  * @endcode
  *
- * @deprecated Unsafe.
- * @see getAbsolutePath
-
  * @see SEQAN_TEMP_FILENAME
  */
 
@@ -2749,26 +2761,6 @@ void SEQAN_ASSERT_NOT_MSG(T1 const & _arg1, const char * comment, ...) {}
 
 #endif  // #if !SEQAN_ENABLE_TESTING
 
-
-// ----------------------------------------------------------------------------
-// Function getAbsolutePath()
-// ----------------------------------------------------------------------------
-
-/*!
- * @fn getAbsolutePath
- * @headerfile <seqan/basic.h>
- * @brief Returns absolute path for a filename within the source repository.
- *
- * @signature std::string getAbsolutePath(const char * filename)
- *
- * @return <tt>std::string</tt>, absolute path for a filename within the source repository.
- */
-
-inline std::string getAbsolutePath(const char * path)
-{
-    return std::string(SEQAN_PATH_TO_ROOT()) + path;
-}
-
 }  // namespace seqan
 
 #endif  // SEQAN_INCLUDE_SEQAN_BASIC_DEBUG_TEST_SYSTEM_H_
diff --git a/include/seqan/basic/fundamental_tags.h b/include/seqan/basic/fundamental_tags.h
index 66713ee..141c10e 100644
--- a/include/seqan/basic/fundamental_tags.h
+++ b/include/seqan/basic/fundamental_tags.h
@@ -553,10 +553,7 @@ inline void assign(TagSelector<TTagList> &selector, TagSelector<TTagList> const
     selector.tagId = other.tagId;
 }
 
-// --------------------------------------------------------------------------
-// Function tagApply()
-// --------------------------------------------------------------------------
-
+// tagApply()
 template <typename TFunctor, typename TTag>
 inline bool
 tagApply(TFunctor &func, TagList<TTag>)
@@ -573,29 +570,6 @@ tagApply(TFunctor &func, TagList<TTag, TSubList>)
     return tagApply(func, TSubList());
 }
 
-// --------------------------------------------------------------------------
-// Function tagApply()
-// --------------------------------------------------------------------------
-
-template <typename TContext>
-inline typename Value<TContext>::Type
-tagApply(TContext &, TagSelector<>)
-{
-    return typename Value<TContext>::Type();
-}
-
-template <typename TContext, typename TTagList>
-inline typename Value<TContext>::Type
-tagApply(TContext &ctx, TagSelector<TTagList> &format)
-{
-    typedef typename TTagList::Type TFormatTag;
-
-    if (isEqual(format, TFormatTag()))
-        return tagApply(ctx, TFormatTag());
-
-    return tagApply(ctx, static_cast<typename TagSelector<TTagList>::Base &>(format));
-}
-
 
 }  // namespace seqan
 
diff --git a/include/seqan/basic/iterator_adapt_std.h b/include/seqan/basic/iterator_adapt_std.h
index 38a3628..2757970 100644
--- a/include/seqan/basic/iterator_adapt_std.h
+++ b/include/seqan/basic/iterator_adapt_std.h
@@ -55,17 +55,6 @@ namespace std
         typedef typename seqan::Value<TIter>::Type * pointer; // nolint
         typedef typename seqan::Reference<TIter>::Type reference; // nolint
     };
-
-	// there is a bug in vc2015 stl, it doesnt check the iterator_traits correctly
-	// I have reported this bug to microsoft already (filed as DevDiv#1208117). 
-	// For now, this is a workaround.
-#if _MSC_VER == 1900
-	template<class _Ty, class Tag>
-	struct _Is_iterator<typename seqan::Iter<_Ty, Tag> >
-		: true_type
-	{
-	};
-#endif
 }
 
 namespace seqan {
@@ -371,11 +360,12 @@ moveValue(Iter<TContainer, StdIteratorAdaptor> & me,
 // Function operator==()
 // ----------------------------------------------------------------------------
 
-template <typename TContainer, typename TContainer2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TContainer const &, TContainer2 const &>, bool)
+template <typename TContainer>
+inline bool
 operator==(Iter<TContainer, StdIteratorAdaptor> const & left,
-           Iter<TContainer2, StdIteratorAdaptor> const & right)
+           Iter<TContainer, StdIteratorAdaptor> const & right)
 {
+    SEQAN_CHECKPOINT;
     return hostIterator(left) == hostIterator(right);
 }
 
@@ -383,11 +373,12 @@ operator==(Iter<TContainer, StdIteratorAdaptor> const & left,
 // Function operator!=()
 // ----------------------------------------------------------------------------
 
-template <typename TContainer, typename TContainer2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TContainer const &, TContainer2 const &>, bool)
+template <typename TContainer>
+inline bool
 operator!=(Iter<TContainer, StdIteratorAdaptor> const & left,
-           Iter<TContainer2, StdIteratorAdaptor> const & right)
+           Iter<TContainer, StdIteratorAdaptor> const & right)
 {
+    SEQAN_CHECKPOINT;
     return hostIterator(left) != hostIterator(right);
 }
 
@@ -395,11 +386,12 @@ operator!=(Iter<TContainer, StdIteratorAdaptor> const & left,
 // Function operator<()
 // ----------------------------------------------------------------------------
 
-template <typename TContainer, typename TContainer2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TContainer const &, TContainer2 const &>, bool)
+template <typename TContainer>
+inline bool
 operator<(Iter<TContainer, StdIteratorAdaptor> const & left,
-          Iter<TContainer2, StdIteratorAdaptor> const & right)
+          Iter<TContainer, StdIteratorAdaptor> const & right)
 {
+    SEQAN_CHECKPOINT;
     return hostIterator(left) < hostIterator(right);
 }
 
@@ -407,11 +399,12 @@ operator<(Iter<TContainer, StdIteratorAdaptor> const & left,
 // Function operator>()
 // ----------------------------------------------------------------------------
 
-template <typename TContainer, typename TContainer2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TContainer const &, TContainer2 const &>, bool)
+template <typename TContainer>
+inline bool
 operator>(Iter<TContainer, StdIteratorAdaptor> const & left,
-          Iter<TContainer2, StdIteratorAdaptor> const & right)
+          Iter<TContainer, StdIteratorAdaptor> const & right)
 {
+    SEQAN_CHECKPOINT;
     return hostIterator(left) > hostIterator(right);
 }
 
@@ -419,10 +412,10 @@ operator>(Iter<TContainer, StdIteratorAdaptor> const & left,
 // Function operator<=()
 // ----------------------------------------------------------------------------
 
-template <typename TContainer, typename TContainer2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TContainer const &, TContainer2 const &>, bool)
+template <typename TContainer>
+inline bool
 operator<=(Iter<TContainer, StdIteratorAdaptor> const & left,
-           Iter<TContainer2, StdIteratorAdaptor> const & right)
+           Iter<TContainer, StdIteratorAdaptor> const & right)
 {
     return hostIterator(left) <= hostIterator(right);
 }
@@ -431,11 +424,12 @@ operator<=(Iter<TContainer, StdIteratorAdaptor> const & left,
 // Function operator>=()
 // ----------------------------------------------------------------------------
 
-template <typename TContainer, typename TContainer2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TContainer const &, TContainer2 const &>, bool)
+template <typename TContainer>
+inline bool
 operator>=(Iter<TContainer, StdIteratorAdaptor> const & left,
-           Iter<TContainer2, StdIteratorAdaptor> const & right)
+           Iter<TContainer, StdIteratorAdaptor> const & right)
 {
+    SEQAN_CHECKPOINT;
     return hostIterator(left) >= hostIterator(right);
 }
 
diff --git a/include/seqan/basic/iterator_adaptor.h b/include/seqan/basic/iterator_adaptor.h
index 61bf347..f627d93 100644
--- a/include/seqan/basic/iterator_adaptor.h
+++ b/include/seqan/basic/iterator_adaptor.h
@@ -725,12 +725,20 @@ operator-=(Iter<TContainer, AdaptorIterator<TIterator, TSpec> > & left,
 // Function atEnd()
 // ----------------------------------------------------------------------------
 
+//template <typename TContainer, typename TIterator, typename TSpec>
+//inline SEQAN_HOST_DEVICE bool
+//atEnd(Iter<TContainer, AdaptorIterator<TIterator, TSpec> > & me)
+//{
+//    SEQAN_CHECKPOINT;
+//    return atEnd(me, container(me));
+//}
+//
 template <typename TContainer, typename TIterator, typename TSpec>
 inline SEQAN_HOST_DEVICE bool
 atEnd(Iter<TContainer, AdaptorIterator<TIterator, TSpec> > const & me)
 {
     SEQAN_CHECKPOINT;
-    return atEnd(hostIterator(me), container(me));
+    return atEnd(me, container(me));
 }
 
 // ----------------------------------------------------------------------------
diff --git a/include/seqan/basic/iterator_counting.h b/include/seqan/basic/iterator_counting.h
index d48b2ae..1465506 100644
--- a/include/seqan/basic/iterator_counting.h
+++ b/include/seqan/basic/iterator_counting.h
@@ -170,11 +170,10 @@ assignValue(Iter<TIncrementable, CountingIteratorImpl_<TSpec> > & me, TValue _va
 // Function operator==()
 // ----------------------------------------------------------------------------
 
-//NOTE(h-2): the other operators should get a similar const-container-tolerant interface
-template <typename TSpec, typename TIncrementable, typename TIncrementable2>
-inline SEQAN_FUNC_ENABLE_IF(IsSameType<TIncrementable const &, TIncrementable2 const &>, bool)
+template <typename TSpec, typename TIncrementable>
+inline bool
 operator==(Iter<TIncrementable, CountingIteratorImpl_<TSpec> > const & left,
-           Iter<TIncrementable2, CountingIteratorImpl_<TSpec> > const & right)
+           Iter<TIncrementable, CountingIteratorImpl_<TSpec> > const & right)
 {
     return position(left) == position(right);
 }
diff --git a/include/seqan/basic/iterator_interface.h b/include/seqan/basic/iterator_interface.h
index bee86c9..75042be 100644
--- a/include/seqan/basic/iterator_interface.h
+++ b/include/seqan/basic/iterator_interface.h
@@ -338,6 +338,7 @@ inline SEQAN_HOST_DEVICE typename Position<TContainer>::Type
 position(TIterator const & it,
          TContainer const & me)
 {
+    SEQAN_CHECKPOINT;
     return it - begin(me, Standard());
 }
 
@@ -349,12 +350,43 @@ position(TIterator const & it,
 
 template <typename T, typename TContainer>
 inline SEQAN_HOST_DEVICE bool
-atBegin(T const & it,
-        TContainer const & cont)
+atBegin(T const & it, TContainer const & cont)
+{
+    SEQAN_CHECKPOINT;
+    return it == begin(cont, Standard());
+}
+
+template <typename T, typename TContainer>
+inline SEQAN_HOST_DEVICE bool
+atBegin(T const & it, TContainer & cont)
 {
+    SEQAN_CHECKPOINT;
     return it == begin(cont, Standard());
 }
 
+template <typename T, typename TContainer>
+inline SEQAN_HOST_DEVICE bool
+atBegin(T & it, TContainer & cont)
+{
+    SEQAN_CHECKPOINT;
+    return it == begin(cont, Standard());
+}
+
+template <typename T, typename TContainer>
+inline SEQAN_HOST_DEVICE bool
+atBegin(T & it, TContainer const & cont)
+{
+    SEQAN_CHECKPOINT;
+    return it == begin(cont, Standard());
+}
+
+template <typename T>
+inline SEQAN_HOST_DEVICE bool
+atBegin(T & it)
+{
+    return atBegin(it, container(it));
+}
+
 template <typename T>
 inline SEQAN_HOST_DEVICE bool
 atBegin(T const & it)
@@ -368,12 +400,48 @@ atBegin(T const & it)
 
 template <typename T, typename TContainer>
 inline SEQAN_HOST_DEVICE bool
+atEnd(T & it,
+      TContainer const & cont)
+{
+    SEQAN_CHECKPOINT;
+    return it == end(cont, Standard());
+}
+
+template <typename T, typename TContainer>
+inline SEQAN_HOST_DEVICE bool
 atEnd(T const & it,
       TContainer const & cont)
 {
+    SEQAN_CHECKPOINT;
     return it == end(cont, Standard());
 }
 
+template <typename T, typename TContainer>
+inline SEQAN_HOST_DEVICE bool
+atEnd(T & it,
+      TContainer & cont)
+{
+    SEQAN_CHECKPOINT;
+    return it == end(cont, Standard());
+}
+
+template <typename T, typename TContainer>
+inline SEQAN_HOST_DEVICE bool
+atEnd(T const & it,
+      TContainer & cont)
+{
+    SEQAN_CHECKPOINT;
+    return it == end(cont, Standard());
+}
+
+//template <typename T>
+//inline SEQAN_HOST_DEVICE bool
+//atEnd(T & it)
+//{
+//    SEQAN_CHECKPOINT;
+//    return atEnd(it, container(it));
+//}
+
 template <typename T>
 inline SEQAN_HOST_DEVICE bool
 atEnd(T const & it)
diff --git a/include/seqan/basic/iterator_range.h b/include/seqan/basic/iterator_range.h
old mode 100644
new mode 100755
diff --git a/include/seqan/basic/metaprogramming_control.h b/include/seqan/basic/metaprogramming_control.h
index e4b5119..30fa4cd 100644
--- a/include/seqan/basic/metaprogramming_control.h
+++ b/include/seqan/basic/metaprogramming_control.h
@@ -66,7 +66,7 @@ namespace seqan {
  *
  * The following shows a complete example of using the Switch statement.
  *
- * @snippet demos/dox/basic/metaprogramming_switch.cpp switch demo
+ * @snippet demos/basic/metaprogramming_switch.cpp switch demo
  */
 
 // TODO(holtgrew): Use Tag<>?
@@ -158,13 +158,13 @@ struct Switch<TAG, NilCase>
  * We define the following worker to print an integer.  The first argument is of <tt>Nothing</tt> as a dummy.  Note that
  * the parameter is not const.
  *
- * @snippet demos/dox/basic/metaprogramming_control.cpp print worker
+ * @snippet demos/basic/metaprogramming_control.cpp print worker
  *
  * The following shows an example calling <tt>PrintWorker::body()</tt> through Loop.  We have to create a local variable
  * since the first parameter is not const.  The reason for this is that the parameter can also be used for a mutable
  * object that holds some state.
  *
- * @snippet demos/dox/basic/metaprogramming_control.cpp print worker call loop reverse
+ * @snippet demos/basic/metaprogramming_control.cpp print worker call loop reverse
  *
  * @see LoopReverse
  *
@@ -231,13 +231,13 @@ public:
  * We define the following worker to print an integer.  The first argument is of <tt>Nothing</tt> as a dummy.  Note that
  * the parameter is not const.
  *
- * @snippet demos/dox/basic/metaprogramming_control.cpp print worker
+ * @snippet demos/basic/metaprogramming_control.cpp print worker
  *
  * The following shows an example calling <tt>PrintWorker::body()</tt> through LoopReverse.  We have to create a local
  * variable since the first parameter is not const.  The reason for this is that the parameter can also be used for a
  * mutable object that holds some state.
  *
- * @snippet demos/dox/basic/metaprogramming_control.cpp print worker call loop
+ * @snippet demos/basic/metaprogramming_control.cpp print worker call loop
  *
  * @see Loop
  *
diff --git a/include/seqan/basic/metaprogramming_enable_if.h b/include/seqan/basic/metaprogramming_enable_if.h
index 513d54d..e78301a 100644
--- a/include/seqan/basic/metaprogramming_enable_if.h
+++ b/include/seqan/basic/metaprogramming_enable_if.h
@@ -265,7 +265,7 @@ struct DisableIf2<true, T> {};
  * The following shows an example on how to properly use <tt>SEQAN_CTOR_ENABLE_IF</tt> as the last argument to the
  * constructor and suppressing the unused variable warning for the dummy parameter.
  *
- * @snippet demos/dox/basic/enable_if.cpp enable if example constructor
+ * @snippet demos/basic/enable_if.cpp enable if example constructor
  */
 
 #define SEQAN_CTOR_ENABLE_IF(...) typename seqan::EnableIf<__VA_ARGS__>::Type * dummy = 0
@@ -293,7 +293,7 @@ struct DisableIf2<true, T> {};
  * The following shows an example on how to properly use <tt>SEQAN_CTOR_DISABLE_IF</tt> as the last argument to the
  * constructor and suppressing the unused variable warning for the dummy parameter.
  *
- * @snippet demos/dox/basic/enable_if.cpp disable if example constructor
+ * @snippet demos/basic/enable_if.cpp disable if example constructor
  */
 
 #define SEQAN_CTOR_DISABLE_IF(...) typename seqan::DisableIf<__VA_ARGS__>::Type * dummy = 0
@@ -322,7 +322,7 @@ struct DisableIf2<true, T> {};
  * The following shows an example on how to properly use <tt>SEQAN_FUNC_ENABLE_IF</tt> as the last argument to the
  * constructor and suppressing the unused variable warning for the dummy parameter.
  *
- * @snippet demos/dox/basic/enable_if.cpp enable if example function
+ * @snippet demos/basic/enable_if.cpp enable if example function
  */
 
 #define SEQAN_FUNC_ENABLE_IF(...) typename seqan::EnableIf<__VA_ARGS__>::Type
@@ -351,7 +351,7 @@ struct DisableIf2<true, T> {};
  * The following shows an example on how to properly use <tt>SEQAN_FUNC_DISABLE_IF</tt> as the last argument to the
  * constructor and suppressing the unused variable warning for the dummy parameter.
  *
- * @snippet demos/dox/basic/enable_if.cpp disable if example function
+ * @snippet demos/basic/enable_if.cpp disable if example function
  */
 
 #define SEQAN_FUNC_DISABLE_IF(...) typename seqan::DisableIf<__VA_ARGS__>::Type
diff --git a/include/seqan/basic/metaprogramming_logic.h b/include/seqan/basic/metaprogramming_logic.h
index 824a06e..c65f832 100644
--- a/include/seqan/basic/metaprogramming_logic.h
+++ b/include/seqan/basic/metaprogramming_logic.h
@@ -67,18 +67,18 @@ namespace seqan {
  *
  * Print the values of the tags/metafunctions <tt>True</tt> and <tt>False</tt>.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp tags true false
+ * @snippet demos/basic/metaprogramming_logic.cpp tags true false
  *
  * @section Inheriting from True and False
  *
  * The two tags True and False have the special property that they can also be used as metafunctions and both have a
  * <tt>VALUE</tt> as well as a <tt>TYPE</tt>.  This property makes it very convenient to define metafunctions by inheriting from the <tt>True</tt> or <tt>False</tt>.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp inheriting from true false
+ * @snippet demos/basic/metaprogramming_logic.cpp inheriting from true false
  *
  * The metafunction <tt>IsInt32</tt> can now be used as follows.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp using isint32
+ * @snippet demos/basic/metaprogramming_logic.cpp using isint32
  */
 
 /*!
@@ -158,7 +158,7 @@ struct False
  *
  * Here is an example for this:
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp shortcut to type feature
+ * @snippet demos/basic/metaprogramming_logic.cpp shortcut to type feature
  *
  * @see LogicalValuesTags#True
  * @see LogicalValuesTags#False
@@ -179,11 +179,11 @@ struct False
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code and achieve the following output:
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type eval
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type eval
  */
 
 template <bool B>
@@ -213,11 +213,11 @@ struct Eval<true> : True {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using Not.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type not
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type not
  */
 
 template <typename TBool1>
@@ -249,11 +249,11 @@ struct Not<True> : False {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using NotC.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type notc
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type notc
  */
 
 template <bool B>
@@ -286,11 +286,11 @@ struct NotC<true> : False {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using Or.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type or
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type or
  */
 
 template <typename TBool1, typename TBool2>
@@ -327,11 +327,11 @@ struct Or<True, True> : True {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using OrC.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type orc
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type orc
  */
 
 template <bool B1, bool B2>
@@ -368,11 +368,11 @@ struct OrC<true, true> : True {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using And.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type and
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type and
  */
 
 template <typename TBool1, typename TBool2>
@@ -409,11 +409,11 @@ struct And<True, True> : True {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using AndC.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type andc
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type andc
  */
 
 template <bool B1, bool B2>
@@ -449,11 +449,11 @@ struct AndC<true, true> : True {};
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using If.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type if
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type if
  */
 
 template <typename TCondition, typename T1, typename T2>
@@ -526,11 +526,11 @@ ifSwitch(False, TArgT const &, TArgF const & argFalse)
  *
  * We define the following two helper functions.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp true false print helpers
+ * @snippet demos/basic/metaprogramming_logic.cpp true false print helpers
  *
  * Now, we can write the following code using If.
  *
- * @snippet demos/dox/basic/metaprogramming_logic.cpp print bool type if
+ * @snippet demos/basic/metaprogramming_logic.cpp print bool type if
  */
 
 template <bool FLAG, typename T1, typename T2>
diff --git a/include/seqan/basic/metaprogramming_math.h b/include/seqan/basic/metaprogramming_math.h
index 78348fd..e2426b1 100644
--- a/include/seqan/basic/metaprogramming_math.h
+++ b/include/seqan/basic/metaprogramming_math.h
@@ -81,7 +81,7 @@ struct ConstUInt {};
  *
  * @section Example
  *
- * @snippet demos/dox/basic/metaprogramming_math.cpp log2 call
+ * @snippet demos/basic/metaprogramming_math.cpp log2 call
  */
 
 template <__uint64 numerus, __uint64 base>
@@ -113,7 +113,7 @@ template <__uint64 base> struct LogN<0, base> { static const __uint64 VALUE = 0;
  *
  * @section Example
  *
- * @snippet demos/dox/basic/metaprogramming_math.cpp log2floor call
+ * @snippet demos/basic/metaprogramming_math.cpp log2floor call
  */
 
 template <__uint64 numerus, __uint64 base>
@@ -144,7 +144,7 @@ template <__uint64 base> struct LogNFloor<0, base> { static const __uint64 VALUE
  *
  * @return __uint64 b<sup>e</sup
  *
- * @snippet demos/dox/basic/metaprogramming_math.cpp power call
+ * @snippet demos/basic/metaprogramming_math.cpp power call
  */
 
 template <__int64 base, __int64 exponent>
diff --git a/include/seqan/consensus/consensus_aligner_interface.h b/include/seqan/consensus/consensus_aligner_interface.h
index 98c1e50..3e2f054 100644
--- a/include/seqan/consensus/consensus_aligner_interface.h
+++ b/include/seqan/consensus/consensus_aligner_interface.h
@@ -124,11 +124,11 @@ namespace seqan {
  * <tt>consensusAlignment()</tt> is then used to compute a MSA and the consensus sequence is stored in
  * <tt>store.contigStore[0].seq</tt>.
  *
- * @include demos/dox/consensus/consensus_alignment.cpp
+ * @include demos/consensus/consensus_alignment.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/consensus/consensus_alignment.cpp.stdout
+ * @include demos/consensus/consensus_alignment.cpp.stdout
  */
 
 template <typename TSpec, typename TConfig>
diff --git a/include/seqan/consensus/consensus_builder.h b/include/seqan/consensus/consensus_builder.h
index 38463b3..7cc8b61 100644
--- a/include/seqan/consensus/consensus_builder.h
+++ b/include/seqan/consensus/consensus_builder.h
@@ -290,8 +290,7 @@ bool alignmentGraphToFragmentStore(TFragmentStore & store,
             typedef typename TAlignedRead::TGapAnchors TGapAnchors;
             typedef typename TFragmentStore::TReadSeq TReadSeq;
             SEQAN_ASSERT_NOT(empty(store.readSeqStore[*itS]));
-            Gaps<TReadSeq, AnchorGaps<TGapAnchors> > gaps(static_cast<TReadSeq>(store.readSeqStore[*itS]),
-                                                          store.alignedReadStore[*itS].gaps);
+            Gaps<TReadSeq, AnchorGaps<TGapAnchors> > gaps(store.readSeqStore[*itS], store.alignedReadStore[*itS].gaps);
             insertGaps(gaps, from - store.alignedReadStore[*itS].beginPos, fLen);
             store.alignedReadStore[*itS].endPos += fLen;
             if (DEBUG_INCONSISTENT_LEN)
@@ -317,7 +316,7 @@ bool alignmentGraphToFragmentStore(TFragmentStore & store,
         for (TAlignedReadIter it2 = begin(store.alignedReadStore, Standard()); it2 != itEnd; ++it2)
         {
             typedef Gaps<TReadSeq, AnchorGaps<String<typename TFragmentStore::TReadGapAnchor> > > TReadGaps;
-            TReadGaps readGaps(static_cast<TReadSeq>(store.readSeqStore[it2->readId]), it2->gaps);
+            TReadGaps readGaps(store.readSeqStore[it2->readId], it2->gaps);
             SEQAN_ASSERT_EQ(length(readGaps) - length(store.readSeqStore[it2->readId]), gapCount[it2->readId]);
             if (DEBUG_INCONSISTENT_LEN)
                 std::cerr << "READ GAPS\t" << (it2 - begin(store.alignedReadStore, Standard())) << "\t>>>" << readGaps << "<<< (" << length(readGaps) << ")\n"
diff --git a/include/seqan/find/find_ahocorasick.h b/include/seqan/find/find_ahocorasick.h
index fde25ee..566868c 100644
--- a/include/seqan/find/find_ahocorasick.h
+++ b/include/seqan/find/find_ahocorasick.h
@@ -66,7 +66,7 @@ namespace SEQAN_NAMESPACE_MAIN
  * The following example program searches for three needles (<tt>queries</tt>) in two haystack sequences (<tt>db</tt>)
  * using the Aho-Corasick algorithm.
  *
- * @include demos/dox/find/finder_aho_corasick.cpp
+ * @include demos/find/finder_aho_corasick.cpp
  *
  * When executed, this program will create the following output.
  *
diff --git a/include/seqan/find/find_base.h b/include/seqan/find/find_base.h
index ecc2651..c8f1c66 100644
--- a/include/seqan/find/find_base.h
+++ b/include/seqan/find/find_base.h
@@ -196,20 +196,20 @@ struct Needle<Segment<THost, TSpec> const>
  * The following example shows how one can search online for a pattern in a haystack.  Note that it is neccessary to
  * reset the finder befor searching for another pattern.
  *
- * @include demos/dox/find/finder_online.cpp
+ * @include demos/find/finder_online.cpp
  *
  * The output is as follows.
  *
- * @include demos/dox/find/finder_online.cpp.stdout
+ * @include demos/find/finder_online.cpp.stdout
  *
  * In contrast to the example above the code below shows how one can use a Finder with an index as base.  Again, note
  * that it is neccessary to reset the finder befor searching for another pattern.
  *
- * @include demos/dox/find/finder_index.cpp
+ * @include demos/find/finder_index.cpp
  *
  * The output is as follows.
  *
- * @include demos/dox/find/finder_index.cpp.stdout
+ * @include demos/find/finder_index.cpp.stdout
  */
 
 
diff --git a/include/seqan/find/find_set_horspool.h b/include/seqan/find/find_set_horspool.h
index 6572e93..8e395ca 100644
--- a/include/seqan/find/find_set_horspool.h
+++ b/include/seqan/find/find_set_horspool.h
@@ -286,8 +286,6 @@ inline bool find(TFinder & finder, Pattern<TNeedle, SetHorspool> & me) {
             else clear(me.data_endPositions);
             me.data_lastState = current;
             finder -= me.data_needleLength;
-            _setFinderLength(finder, me.data_needleLength+1);
-            _setFinderEnd(finder, position(finder)+length(finder));            
             return true;
         }
         oldMatch = false;
diff --git a/include/seqan/gff_io/gff_io_base.h b/include/seqan/gff_io/gff_io_base.h
index d1ec0a8..3e576ba 100644
--- a/include/seqan/gff_io/gff_io_base.h
+++ b/include/seqan/gff_io/gff_io_base.h
@@ -349,12 +349,9 @@ void readRecord(GffRecord & record, CharString & buffer, TFwdIterator & iter)
 {
     IsNewline isNewline;
 
-    // skip commented lines
-    while (!atEnd(iter) && value(iter) == '#')
-        skipLine(iter);
-
     clear(record);
-    skipUntil(iter, NotFunctor<IsWhitespace>());  //skip empty lines
+
+    skipUntil(iter, NotFunctor<OrFunctor<EqualsChar<'#'>, IsWhitespace> >());  //skip commments and empty lines
 
     // read column 1: seqid
     readUntil(record.ref, iter, OrFunctor<IsTab, AssertFunctor<NotFunctor<IsNewline>, ParseError, Gff> >());
diff --git a/include/seqan/graph_algorithms/all_pairs_shortest_path.h b/include/seqan/graph_algorithms/all_pairs_shortest_path.h
index e0df2f2..a164553 100644
--- a/include/seqan/graph_algorithms/all_pairs_shortest_path.h
+++ b/include/seqan/graph_algorithms/all_pairs_shortest_path.h
@@ -170,9 +170,9 @@ _extendShortestPaths(TMatrix& local,
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/all_pairs_shortest_path.cpp
+ * @include demos/graph_algorithms/all_pairs_shortest_path.cpp
  *
- * @include demos/dox/graph_algorithms/all_pairs_shortest_path.cpp.stdout
+ * @include demos/graph_algorithms/all_pairs_shortest_path.cpp.stdout
  *
  * @see floydWarshallAlgorithm
  */
diff --git a/include/seqan/graph_algorithms/bellman_ford.h b/include/seqan/graph_algorithms/bellman_ford.h
index dee3e62..cd92d72 100644
--- a/include/seqan/graph_algorithms/bellman_ford.h
+++ b/include/seqan/graph_algorithms/bellman_ford.h
@@ -82,9 +82,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/bellman_ford_algorithm.cpp
+ * @include demos/graph_algorithms/bellman_ford_algorithm.cpp
  *
- * @include demos/dox/graph_algorithms/bellman_ford_algorithm.cpp.stdout
+ * @include demos/graph_algorithms/bellman_ford_algorithm.cpp.stdout
  *
  * @see dagShortestPath
  * @see dijkstra
diff --git a/include/seqan/graph_algorithms/breadth_first_search.h b/include/seqan/graph_algorithms/breadth_first_search.h
index 8c8730f..904f197 100644
--- a/include/seqan/graph_algorithms/breadth_first_search.h
+++ b/include/seqan/graph_algorithms/breadth_first_search.h
@@ -77,9 +77,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/breadth_first_search.cpp
+ * @include demos/graph_algorithms/breadth_first_search.cpp
  *
- * @include demos/dox/graph_algorithms/breadth_first_search.cpp.stdout
+ * @include demos/graph_algorithms/breadth_first_search.cpp.stdout
  *
  * @see depthFirstSearch
  */
diff --git a/include/seqan/graph_algorithms/depth_first_search.h b/include/seqan/graph_algorithms/depth_first_search.h
index 7966b42..f4990b9 100644
--- a/include/seqan/graph_algorithms/depth_first_search.h
+++ b/include/seqan/graph_algorithms/depth_first_search.h
@@ -104,9 +104,9 @@ _dfsVisit(Graph<TSpec> const& g,
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/depth_first_search.cpp
+ * @include demos/graph_algorithms/depth_first_search.cpp
  *
- * @include demos/dox/graph_algorithms/depth_first_search.cpp.stdout
+ * @include demos/graph_algorithms/depth_first_search.cpp.stdout
  *
  * @see breadthFirstSearch
  */
diff --git a/include/seqan/graph_algorithms/dijkstra.h b/include/seqan/graph_algorithms/dijkstra.h
index 683a04d..384b4fb 100644
--- a/include/seqan/graph_algorithms/dijkstra.h
+++ b/include/seqan/graph_algorithms/dijkstra.h
@@ -78,9 +78,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/dijkstra.cpp
+ * @include demos/graph_algorithms/dijkstra.cpp
  *
- * @include demos/dox/graph_algorithms/dijkstra.cpp.stdout
+ * @include demos/graph_algorithms/dijkstra.cpp.stdout
  *
  * @see dagShortestPath
  * @see bellmanFordAlgorithm
diff --git a/include/seqan/graph_algorithms/floyd_warshall.h b/include/seqan/graph_algorithms/floyd_warshall.h
index 8d399f9..5611838 100644
--- a/include/seqan/graph_algorithms/floyd_warshall.h
+++ b/include/seqan/graph_algorithms/floyd_warshall.h
@@ -78,9 +78,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp
+ * @include demos/graph_algorithms/floyd_warshall_algorithm.cpp
  *
- * @include demos/dox/graph_algorithms/floyd_warshall_algorithm.cpp.stdout
+ * @include demos/graph_algorithms/floyd_warshall_algorithm.cpp.stdout
  *
  * @see allPairsShortestPath
  */
diff --git a/include/seqan/graph_algorithms/ford_fulkerson.h b/include/seqan/graph_algorithms/ford_fulkerson.h
index 08d8e90..0362026 100644
--- a/include/seqan/graph_algorithms/ford_fulkerson.h
+++ b/include/seqan/graph_algorithms/ford_fulkerson.h
@@ -153,9 +153,9 @@ _getMinimumAug(Graph<TSpec> const & rG,
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp
+ * @include demos/graph_algorithms/ford_fulkerson_algorithm.cpp
  *
- * @include demos/dox/graph_algorithms/ford_fulkerson_algorithm.cpp.stdout
+ * @include demos/graph_algorithms/ford_fulkerson_algorithm.cpp.stdout
  */
 template <typename TSpec, typename TVertexDescriptor, typename TCapMap, typename TFlowMap>
 typename Value<TFlowMap>::Type
diff --git a/include/seqan/graph_algorithms/graph_algorithm_lis_his.h b/include/seqan/graph_algorithms/graph_algorithm_lis_his.h
index e1cfa6c..d489a3b 100644
--- a/include/seqan/graph_algorithms/graph_algorithm_lis_his.h
+++ b/include/seqan/graph_algorithms/graph_algorithm_lis_his.h
@@ -108,7 +108,7 @@ _nextInSortedSequence(TSortedSequence const& list, TIterator const& prev) {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/longest_increasing_subsequence.cpp
+ * @include demos/graph_algorithms/longest_increasing_subsequence.cpp
  *
  * @code{.console}
  * 5,3,4,9,6,2,1,8,7,10,
@@ -196,7 +196,7 @@ longestIncreasingSubsequence(TString const& str, TPositions& pos) {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/longest_common_subsequence.cpp
+ * @include demos/graph_algorithms/longest_common_subsequence.cpp
  *
  * @code{.console}
  * Score = 3
@@ -351,7 +351,7 @@ globalAlignment(TAlign& align,
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/heaviest_increasing_subsequence.cpp
+ * @include demos/graph_algorithms/heaviest_increasing_subsequence.cpp
  *
  * @code{.console}
  * z(Weight=1),e(Weight=1),i(Weight=10),t(Weight=1),g(Weight=1),e(Weight=1),i(Weight=1),s(Weight=1),t(Weight=1),
diff --git a/include/seqan/graph_algorithms/kruskal.h b/include/seqan/graph_algorithms/kruskal.h
index ab5316b..af45cd7 100644
--- a/include/seqan/graph_algorithms/kruskal.h
+++ b/include/seqan/graph_algorithms/kruskal.h
@@ -84,9 +84,9 @@ struct LessPairI1_ : public std::unary_function<Pair<TWeight, TPair>, bool>
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/kruskals_algorithm.cpp
+ * @include demos/graph_algorithms/kruskals_algorithm.cpp
  *
- * @include demos/dox/graph_algorithms/kruskals_algorithm.cpp.stdout
+ * @include demos/graph_algorithms/kruskals_algorithm.cpp.stdout
  *
  * @see primsAlgorithm
  */
diff --git a/include/seqan/graph_algorithms/prim.h b/include/seqan/graph_algorithms/prim.h
index 0aa30dc..3835e7c 100644
--- a/include/seqan/graph_algorithms/prim.h
+++ b/include/seqan/graph_algorithms/prim.h
@@ -75,9 +75,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/prims_algorithm.cpp
+ * @include demos/graph_algorithms/prims_algorithm.cpp
  *
- * @include demos/dox/graph_algorithms/prims_algorithm.cpp.stdout
+ * @include demos/graph_algorithms/prims_algorithm.cpp.stdout
  *
  * @see kruskalsAlgorithm
  */
diff --git a/include/seqan/graph_algorithms/single_source_shortest_path.h b/include/seqan/graph_algorithms/single_source_shortest_path.h
index 74e6219..4e6feaf 100644
--- a/include/seqan/graph_algorithms/single_source_shortest_path.h
+++ b/include/seqan/graph_algorithms/single_source_shortest_path.h
@@ -190,9 +190,9 @@ _relax(Graph<TSpec> const& g,
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/dag_shortest_path.cpp
+ * @include demos/graph_algorithms/dag_shortest_path.cpp
  *
- * @include demos/dox/graph_algorithms/dag_shortest_path.cpp.stdout
+ * @include demos/graph_algorithms/dag_shortest_path.cpp.stdout
  *
  * @see bellmanFordAlgorithm
  * @see dijkstra
diff --git a/include/seqan/graph_algorithms/strongly_connected_compnents.h b/include/seqan/graph_algorithms/strongly_connected_compnents.h
index deccda6..1ee4837 100644
--- a/include/seqan/graph_algorithms/strongly_connected_compnents.h
+++ b/include/seqan/graph_algorithms/strongly_connected_compnents.h
@@ -74,9 +74,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/strongly_connected_components.cpp
+ * @include demos/graph_algorithms/strongly_connected_components.cpp
  *
- * @include demos/dox/graph_algorithms/strongly_connected_components.cpp.stdout
+ * @include demos/graph_algorithms/strongly_connected_components.cpp.stdout
  */
 template <typename TSpec, typename TComponents>
 typename Size<Graph<TSpec> >::Type
diff --git a/include/seqan/graph_algorithms/topological_sort.h b/include/seqan/graph_algorithms/topological_sort.h
index 35a7048..9cf81bd 100644
--- a/include/seqan/graph_algorithms/topological_sort.h
+++ b/include/seqan/graph_algorithms/topological_sort.h
@@ -74,9 +74,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/topological_sort.cpp
+ * @include demos/graph_algorithms/topological_sort.cpp
  *
- * @include demos/dox/graph_algorithms/topological_sort.cpp.stdout
+ * @include demos/graph_algorithms/topological_sort.cpp.stdout
  */
 template <typename TSpec, typename TVertexDescriptor>
 void topologicalSort(String<TVertexDescriptor> & topSort,
diff --git a/include/seqan/graph_algorithms/transitive_closure.h b/include/seqan/graph_algorithms/transitive_closure.h
index b553c86..6e8374c 100644
--- a/include/seqan/graph_algorithms/transitive_closure.h
+++ b/include/seqan/graph_algorithms/transitive_closure.h
@@ -72,9 +72,9 @@ namespace seqan {
  *
  * @section Example
  *
- * @include demos/dox/graph_algorithms/transitive_closure.cpp
+ * @include demos/graph_algorithms/transitive_closure.cpp
  *
- * @include demos/dox/graph_algorithms/transitive_closure.cpp.stdout
+ * @include demos/graph_algorithms/transitive_closure.cpp.stdout
  */
 template <typename TSpec, typename TMatrix>
 void transitiveClosure(TMatrix & closure,
diff --git a/include/seqan/graph_align/graph_impl_align.h b/include/seqan/graph_align/graph_impl_align.h
index 4313fbd..33f9cfa 100644
--- a/include/seqan/graph_align/graph_impl_align.h
+++ b/include/seqan/graph_align/graph_impl_align.h
@@ -195,7 +195,7 @@ public:
  *
  * @section Example
  *
- * @include demos/dox/graph_align/graph_align.cpp
+ * @include demos/graph_align/graph_align.cpp
  *
  * @code{.console}
  * Score = -8
diff --git a/include/seqan/graph_types/graph_interface.h b/include/seqan/graph_types/graph_interface.h
index 1f4ec57..03f1d19 100644
--- a/include/seqan/graph_types/graph_interface.h
+++ b/include/seqan/graph_types/graph_interface.h
@@ -79,11 +79,11 @@ struct Hmm;
  * This is an example for Dijktra's algorithm on a directed graph with an external property map.  The property map
  * labels the edges with weights.  The xample only outputs distances, not th edetails of the paths.
  *
- * @include demos/dox/graph_types/graph_algo_dijkstra.cpp
+ * @include demos/graph/graph_algo_dijkstra.cpp
  *
  * The output of the distances is as follows:
  *
- * @include demos/dox/graph_types/graph_algo_dijkstra.cpp.stdout
+ * @include demos/graph/graph_algo_dijkstra.cpp.stdout
  */
 
 template<typename TSpec = Directed<> >
diff --git a/include/seqan/index/index_base.h b/include/seqan/index/index_base.h
index 1b965ae..34abc67 100644
--- a/include/seqan/index/index_base.h
+++ b/include/seqan/index/index_base.h
@@ -195,20 +195,20 @@ template <
  * The following code shows how to search for exact matches between the reference "tobeornottobe" and the
  * pattern "to" with the means of a Finder.
  *
- * @include demos/dox/index/finder.cpp
+ * @include demos/index/index_finder.cpp
  *
  * The result is as follows
  *
- * @include demos/dox/index/finder.cpp.stdout
+ * @include demos/index/index_finder.cpp.stdout
  *
  * This code shows how an index can be used with iterators to achieve a pre-order tree like traversal
  * in DFS of the text "tobeornottobe". In order to do so a Top-Down History iterator is used.
  *
- * @include demos/dox/index/iterator.cpp
+ * @include demos/index/index_iterator.cpp
  *
  * The result is as follows
  *
- * @include demos/dox/index/iterator.cpp.stdout
+ * @include demos/index/index_iterator.cpp.stdout
  *
  * Note that you can also use specialized iterators such as:
  *
@@ -224,11 +224,11 @@ template <
  *
  * You can achieve a post-order traversal like this:
  *
- * @snippet demos/dox/index/iterator_short.cpp iteration
+ * @snippet demos/index/index_iterator_short.cpp iteration
  *
  * The result is as follows
  *
- * @include demos/dox/index/iterator_short.cpp.stdout
+ * @include demos/index/index_iterator_short.cpp.stdout
  */
 
     template <typename TObject, typename TSpec>
@@ -717,11 +717,11 @@ template <
  *
  * The following example shows how to search for a pattern in a string.
  *
- * @include demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp
+ * @include demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp.stdout
+ * @include demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp.stdout
  *
  * @see Fibre
  */
@@ -893,11 +893,11 @@ template <
  * The following example shows how to count characters of an index, determine the number of sequences involved and how
  * to search for a pattern.
  *
- * @include demos/dox/index/length_countSequences.cpp
+ * @include demos/index/index_length_countSequences.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/length_countSequences.cpp.stdout
+ * @include demos/index/index_length_countSequences.cpp.stdout
  */
 
     template <typename TText, typename TSpec>
@@ -923,7 +923,7 @@ template <
  * The following example shows how to count characters of an index, determine the number of sequences involved and how
  * to search for a pattern.
  *
- * @include demos/dox/index/length_countSequences.cpp
+ * @include demos/index/index_length_countSequences.cpp
  *
  * The output is as follows:
  *
@@ -1292,11 +1292,11 @@ template <
  *
  * The following code shows how the BWT of a text can be computed.
  *
- * @include demos/dox/index/textAt_indexText_saAt_indexRequire.cpp
+ * @include demos/index/index_textAt_indexText_saAt_indexRequire.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/textAt_indexText_saAt_indexRequire.cpp.stdout
+ * @include demos/index/index_textAt_indexText_saAt_indexRequire.cpp.stdout
  */
 
     template <typename TText, typename TSpec>
@@ -1527,11 +1527,11 @@ template <
  *
  * The following code shows how the function @link Index#open @endlink is used with indices.
  *
- * @include demos/dox/index/open_save.cpp
+ * @include demos/index/index_open_save.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/open_save.cpp.stdout
+ * @include demos/index/index_open_save.cpp.stdout
  */
 
 // ----------------------------------------------------------------------------
@@ -1559,11 +1559,11 @@ template <
  *
  * The following code shows how the function @link Index#save @endlink is used with indices.
  *
- * @include demos/dox/index/open_save.cpp
+ * @include demos/index/index_open_save.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/open_save.cpp.stdout
+ * @include demos/index/index_open_save.cpp.stdout
  */
 }
 
diff --git a/include/seqan/index/index_esa_base.h b/include/seqan/index/index_esa_base.h
index e321b43..7fd34e5 100644
--- a/include/seqan/index/index_esa_base.h
+++ b/include/seqan/index/index_esa_base.h
@@ -99,7 +99,7 @@ namespace SEQAN_NAMESPACE_MAIN
  *
  * The following example shows how a the @link TopDown @endlink tag is used.
  *
- * @include demos/dox/index/begin_atEnd_representative.cpp
+ * @include demos/index/index_begin_atEnd_representative.cpp
  *
  * @code{.output}
  * A
@@ -144,7 +144,7 @@ namespace SEQAN_NAMESPACE_MAIN
  *
  * The following example shows how the @link BottomUp @endlink tag is used.
  *
- * @include demos/dox/index/begin_atEnd_representative_bottomUp.cpp
+ * @include demos/index/index_begin_atEnd_representative_bottomUp.cpp
  *
  * @code{.txt}
  * AA
diff --git a/include/seqan/index/index_esa_stree.h b/include/seqan/index/index_esa_stree.h
index c108c26..7e8d845 100644
--- a/include/seqan/index/index_esa_stree.h
+++ b/include/seqan/index/index_esa_stree.h
@@ -121,7 +121,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  * This code shows how an index can be used with iterators to achieve a pre-order tree like traversal
  * in DFS of the text "tobeornottobe". In order to do so a Top-Down History iterator is used.
  *
- * @include demos/dox/index/iterator.cpp
+ * @include demos/index/index_iterator.cpp
  *
  * @code{.output}
  *
@@ -1062,11 +1062,11 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  *
  * @section Examples
  *
- * @include demos/dox/index/counting.cpp
+ * @include demos/index/index_counting.cpp
  *
  * The result is as follows:
  *
- * @include demos/dox/index/counting.cpp.stdout
+ * @include demos/index/index_counting.cpp.stdout
  */
 
     template < typename TIndex, class TSpec >
@@ -1547,11 +1547,11 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  * returns an iterator pointing to the root node, while in the second case @link StringTreeConcept#begin @endlink returns a pointer to the
  * left most node.
  *
- * @include demos/dox/index/begin_atEnd_representative.cpp
+ * @include demos/index/index_begin_atEnd_representative.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/begin_atEnd_representative.cpp.stdout
+ * @include demos/index/index_begin_atEnd_representative.cpp.stdout
  */
     template < typename TText, typename TIndexSpec, class TSpec >
     inline typename Iterator<Index<TText, TIndexSpec>, TSpec >::Type
@@ -1738,7 +1738,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  *
  * The following code shows a simple example how the function @link TopDownIterator#goDown @endlink is used.
  *
- * @include demos/dox/index/begin_range_goDown_representative_repLength.cpp
+ * @include demos/index/index_begin_range_goDown_representative_repLength.cpp
  *
  * @code{.output}
  * The string ISSI occurs 2 times in MISSISSIPPI and has 4 characters.
@@ -2040,7 +2040,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  *
  * The following code shows how the function @link TopDownHistoryIterator#goUp @endlink is used.
  *
- * @include demos/dox/index/iterator.cpp
+ * @include demos/index/index_iterator.cpp
  *
  * @code{.output}
  * be
@@ -2386,7 +2386,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  *
  * The following example shows the usage of the @link VSTreeIterator#atEnd @endlink function.
  *
- * @include demos/dox/index/begin_atEnd_representative.cpp
+ * @include demos/index/index_begin_atEnd_representative.cpp
  *
  * @code{.output}
  * A
@@ -2421,7 +2421,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  *
  * The following example shows the usage of the @link BottomUp#atEnd @endlink function.
  *
- * @include demos/dox/index/begin_atEnd_representative.cpp
+ * @include demos/index/index_begin_atEnd_representative.cpp
  *
  * @code{.output}
  * A
@@ -2467,7 +2467,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  *
  * The following example shows the usage of the @Function.isRoot@ function.
  *
- * @include demos/dox/index/begin_atEnd_representative_bottomUp.cpp
+ * @include demos/index/index_begin_atEnd_representative_bottomUp.cpp
  *
  * code{.output}
  * output:AA
@@ -2698,7 +2698,7 @@ SEQAN_CONCEPT_IMPL((Index<TText, IndexEsa<TSpec> > const), (StringTreeConcept));
  * The following code how @link VSTreeIterator#getFrequency @endlink is used. Note that the result of alternative 1 and 2 is the same,
  * however alternative one copies a string which requires more memory.
  *
- * @include demos/dox/index/getOccurrences_getFrequency_range_getFibre.cpp
+ * @include demos/index/index_getOccurrences_getFrequency_range_getFibre.cpp
  *
  * @code{.output}
  * SSI occurs in 2 sequences.
diff --git a/include/seqan/index/index_fm.h b/include/seqan/index/index_fm.h
index 72faa94..96128a5 100644
--- a/include/seqan/index/index_fm.h
+++ b/include/seqan/index/index_fm.h
@@ -366,10 +366,9 @@ _findFirstIndex(Finder<Index<TText, FMIndex<TSpec, TConfig> >, TSpecFinder> & fi
 template <typename TText, typename TSpec, typename TConfig>
 inline bool indexCreate(Index<TText, FMIndex<TSpec, TConfig> > & index, FibreSALF)
 {
-    typedef Index<TText, FMIndex<TSpec, TConfig> >               TIndex;
-    typedef typename Fibre<TIndex, FibreTempSA>::Type            TTempSA;
-    typedef typename Size<TIndex>::Type                          TSize;
-    typedef typename DefaultIndexCreator<TIndex, FibreSA>::Type  TAlgo;
+    typedef Index<TText, FMIndex<TSpec, TConfig> >      TIndex;
+    typedef typename Fibre<TIndex, FibreTempSA>::Type   TTempSA;
+    typedef typename Size<TIndex>::Type                 TSize;
 
     TText const & text = indexText(index);
 
@@ -380,7 +379,7 @@ inline bool indexCreate(Index<TText, FMIndex<TSpec, TConfig> > & index, FibreSAL
 
     // Create the full SA.
     resize(tempSA, lengthSum(text), Exact());
-    createSuffixArray(tempSA, text, TAlgo());
+    createSuffixArray(tempSA, text, Skew7());
 
     // Create the LF table.
     createLF(indexLF(index), text, tempSA);
diff --git a/include/seqan/index/index_fm_rank_dictionary_wt.h b/include/seqan/index/index_fm_rank_dictionary_wt.h
index 4d956a3..cb58f3a 100644
--- a/include/seqan/index/index_fm_rank_dictionary_wt.h
+++ b/include/seqan/index/index_fm_rank_dictionary_wt.h
@@ -115,8 +115,7 @@ typedef Tag<FibreTreeStructure_>    const FibreTreeStructure;
 template <typename TValue, typename TSpec, typename TConfig>
 struct Fibre<RankDictionary<TValue, WaveletTree<TSpec, TConfig> >, FibreRanks>
 {
-    // TODO(esiragusa): use String and investigate issues with open/save() and valgrind.
-    typedef StringSet<RankDictionary<bool, Levels<TSpec, TConfig> > > Type;
+    typedef String<RankDictionary<bool, Levels<TSpec, TConfig> > > Type;
 };
 
 template <typename TValue, typename TSpec, typename TConfig>
diff --git a/include/seqan/index/index_qgram_openaddressing.h b/include/seqan/index/index_qgram_openaddressing.h
index f199230..ffda280 100644
--- a/include/seqan/index/index_qgram_openaddressing.h
+++ b/include/seqan/index/index_qgram_openaddressing.h
@@ -333,66 +333,6 @@ namespace SEQAN_NAMESPACE_MAIN
         return qgrams + 1;
     }
 
-// ----------------------------------------------------------------------------
-// Function open()
-// ----------------------------------------------------------------------------
-
-template < typename TText, typename TShapeSpec>
-inline bool open(Index<TText, IndexQGram<TShapeSpec, OpenAddressing> > &index, const char *fileName, int openMode)
-{
-    String<char> name;
-    
-    name = fileName;    append(name, ".txt");
-    if (!open(getFibre(index, QGramText()), toCString(name), openMode)) return false;
-    
-    name = fileName;    append(name, ".sa");
-    if (!open(getFibre(index, QGramSA()), toCString(name), openMode)) return false;
-    
-    name = fileName;    append(name, ".dir");
-    if (!open(getFibre(index, QGramDir()), toCString(name), openMode)) return false;
-
-    name = fileName;    append(name, ".bkt");
-    if (!open(getFibre(index, QGramBucketMap()).qgramCode, toCString(name), openMode)) return false;
-
-    return true;
-}
-
-template <typename TText, typename TShapeSpec>
-inline bool open(Index<TText, IndexQGram<TShapeSpec, OpenAddressing> > &index, const char *fileName)
-{
-    return open(index, fileName, OPEN_RDONLY);
-}
-
-// ----------------------------------------------------------------------------
-// Function save()
-// ----------------------------------------------------------------------------
-
-template <typename TText, typename TShapeSpec>
-inline bool save(Index<TText, IndexQGram<TShapeSpec, OpenAddressing> > &index, const char *fileName, int openMode)
-{
-    String<char> name;
-    
-    name = fileName;    append(name, ".txt");
-    if (!save(getFibre(index, QGramText()), toCString(name), openMode)) return false;
-    
-    name = fileName;    append(name, ".sa");
-    if (!save(getFibre(index, QGramSA()), toCString(name), openMode)) return false;
-    
-    name = fileName;    append(name, ".dir");
-    if (!save(getFibre(index, QGramDir()), toCString(name), openMode)) return false;
-
-    name = fileName;    append(name, ".bkt");
-    if (!save(getFibre(index, QGramBucketMap()).qgramCode, toCString(name), openMode)) return false;
-
-    return true;
-}
-
-template <typename TText, typename TShapeSpec>
-inline bool save(Index<TText, IndexQGram<TShapeSpec, OpenAddressing> > &index, const char *fileName)
-{
-    return save(index, fileName, OPEN_WRONLY | OPEN_CREATE);
-}
-
 }
 
 #endif //#ifndef SEQAN_HEADER_...
diff --git a/include/seqan/index/index_sa_qsort.h b/include/seqan/index/index_sa_qsort.h
index 81c2df9..cea710d 100644
--- a/include/seqan/index/index_sa_qsort.h
+++ b/include/seqan/index/index_sa_qsort.h
@@ -86,8 +86,8 @@ namespace SEQAN_NAMESPACE_MAIN
     {
         typedef StringSet<TString, TSetSpec> const TText;
 
-        TText &_text;
         typename Size<TString>::Type _offset;
+        TText &_text;
 
         SuffixLess_(TText &text):
             _text(text) {}
diff --git a/include/seqan/index/index_shims.h b/include/seqan/index/index_shims.h
index cc45db7..1dbffc6 100644
--- a/include/seqan/index/index_shims.h
+++ b/include/seqan/index/index_shims.h
@@ -757,11 +757,11 @@ inline bool indexCreate(Index<TText, TSpec> & index, FibreSA, Trie)
  *
  * The following code shows how the BWT of an text can be computed.
  *
- * @include demos/dox/index/textAt_indexText_saAt_indexRequire.cpp
+ * @include demos/index/index_textAt_indexText_saAt_indexRequire.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/index/textAt_indexText_saAt_indexRequire.cpp.stdout
+ * @include demos/index/index_textAt_indexText_saAt_indexRequire.cpp.stdout
  */
 
     template <typename TText, typename TSpec, typename TFibre>
diff --git a/include/seqan/index/repeat_base.h b/include/seqan/index/repeat_base.h
index f2605c4..33e6002 100644
--- a/include/seqan/index/repeat_base.h
+++ b/include/seqan/index/repeat_base.h
@@ -174,7 +174,7 @@ namespace seqan {
  *
  * The following demonstrates finding repeats of period 3.
  *
- * @include demos/dox/index/find_repeats.cpp
+ * @include demos/index/find_repeats.cpp
  *
  * @code{.console}
  * # of repeats: 15
diff --git a/include/seqan/index/shape_base.h b/include/seqan/index/shape_base.h
index 93fcb32..2f0c72f 100644
--- a/include/seqan/index/shape_base.h
+++ b/include/seqan/index/shape_base.h
@@ -471,7 +471,7 @@ namespace SEQAN_NAMESPACE_MAIN
  * Two hash loop examples.
  * The first loop uses @link Shape#hash @endlink/@link Shape#hashNext @endlink while the second use @link Shape#hashInit @endlink/@link Shape#hashNext @endlink and can process all hashes within the loop.
  *
- * @include demos/dox/index/shape_hash_init.cpp
+ * @include demos/index/shape_hash_init.cpp
  *
  * @code{.stdout}
  * 0    0    1    4    17    4    18    11    47    63    62    56
diff --git a/include/seqan/index/shape_threshold.h b/include/seqan/index/shape_threshold.h
old mode 100644
new mode 100755
diff --git a/include/seqan/misc/edit_environment.h b/include/seqan/misc/edit_environment.h
index 5d3e293..8bc1466 100644
--- a/include/seqan/misc/edit_environment.h
+++ b/include/seqan/misc/edit_environment.h
@@ -88,9 +88,9 @@ struct EditEnvironment;
  *
  * @section Examples
  *
- * @include demos/dox/misc/enumerate_strings.cpp
+ * @include demos/misc/enumerate_strings.cpp
  *
- * @include demos/dox/misc/enumerate_strings.cpp.stdout
+ * @include demos/misc/enumerate_strings.cpp.stdout
  */
 
 /*!
diff --git a/include/seqan/misc/interval_tree.h b/include/seqan/misc/interval_tree.h
index da2f336..6b9f809 100644
--- a/include/seqan/misc/interval_tree.h
+++ b/include/seqan/misc/interval_tree.h
@@ -325,7 +325,7 @@ public:
  * The following example creates an integer interval tree with string keys.  This tree is quired for keys of intervals
  * that overlap the interval <tt>[550, 990)</tt>.
  *
- * @include demos/dox/misc/interval_tree_example.cpp
+ * @include demos/misc/interval_tree_example.cpp
  *
  * The resulting keys are:
  *
diff --git a/include/seqan/misc/name_store_cache.h b/include/seqan/misc/name_store_cache.h
old mode 100644
new mode 100755
index 3216549..bc10dfa
--- a/include/seqan/misc/name_store_cache.h
+++ b/include/seqan/misc/name_store_cache.h
@@ -120,11 +120,11 @@ struct NameStoreLess_
  * The demo below shows how to initialize a NameStoreCache with an existing name store, lookup existing names, add new
  * names, and add names during lookup.
  *
- * @include demos/dox/misc/name_store_cache.cpp
+ * @include demos/misc/name_store_cache.cpp
  *
  * Here is the output:
  *
- * @include demos/dox/misc/name_store_cache.cpp.stdout
+ * @include demos/misc/name_store_cache.cpp.stdout
  */
 
 /*!
diff --git a/include/seqan/misc/terminal.h b/include/seqan/misc/terminal.h
index 82fba15..78536c1 100644
--- a/include/seqan/misc/terminal.h
+++ b/include/seqan/misc/terminal.h
@@ -163,7 +163,7 @@ inline bool isAnsiColorTerminal()
  *
  * The following demonstrates the usage.
  *
- * @include demos/dox/misc/get_terminal_size.cpp
+ * @include demos/misc/get_terminal_size.cpp
  *
  * @see isTerminal
  * @see isAnsiColorTerminal
diff --git a/include/seqan/modifier/cyclic_shape.h b/include/seqan/modifier/cyclic_shape.h
index 967cf76..d920dab 100644
--- a/include/seqan/modifier/cyclic_shape.h
+++ b/include/seqan/modifier/cyclic_shape.h
@@ -85,11 +85,11 @@ typedef GappedShape<Default> GenericShape;
  * is not allowed in @link Shape @endlink.
  *
  * @section Examples
- * @include demos/dox/modifier/cyclic_shape.cpp
+ * @include demos/cyclic_shape.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/modifier/cyclic_shape.cpp.stdout
+ * @include demos/cyclic_shape.cpp.stdout
  *
  * @see ModCyclicShapeModifiedString
  * @see ModCyclicShapeModifiedIterator
@@ -145,11 +145,11 @@ struct Size<CyclicShape<TSpec> >
  * For longer sequences, prefer the @link FixedCyclicShape @endlink.
  *
  * @section Examples
- * @include demos/dox/modifier/cyclic_shape.cpp
+ * @include demos/cyclic_shape.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/modifier/cyclic_shape.cpp.stdout
+ * @include demos/cyclic_shape.cpp.stdout
  *
  * @see ModCyclicShapeModifiedString
  * @see ModCyclicShapeModifiedIterator
@@ -186,7 +186,7 @@ public:
      * The default constructor generates the pattern "1".
      * The copy constructor copies the GenericCyclicShape shape.
      *
-     * @snippet demos/dox/modifier/cyclic_shape_snippets.cpp Define GenericCyclicShape
+     * @snippet demos/cyclic_shape_snippets.cpp Define GenericCyclicShape
      *
      * @Remarks
      *
@@ -280,7 +280,7 @@ public:
      * This constructor does not do anything, the FixedCyclicShape is defined by its type alone.
      * See the example on how to create a CyclicShape:
      *
-     * @snippet demos/dox/modifier/cyclic_shape_snippets.cpp Define FixedCyclicShape
+     * @snippet demos/cyclic_shape_snippets.cpp Define FixedCyclicShape
      */
     CyclicShape()
     {}
@@ -546,7 +546,7 @@ cyclicShapeToString(
  * the distances between care positions, to a <tt>positions</tt> string directly
  * containing the care positions. See the example:
  *
- * @snippet demos/dox/modifier/cyclic_shape_snippets.cpp CyclicShape Care Positions
+ * @snippet demos/cyclic_shape_snippets.cpp CyclicShape Care Positions
  */
 
 template<typename TString, typename TSpec>
diff --git a/include/seqan/modifier/modifier_cyclic_shape.h b/include/seqan/modifier/modifier_cyclic_shape.h
index f77f3a0..b9887c7 100644
--- a/include/seqan/modifier/modifier_cyclic_shape.h
+++ b/include/seqan/modifier/modifier_cyclic_shape.h
@@ -75,7 +75,7 @@ struct ModCyclicShape
  * CyclicShape is repeated till the end of the string. The iterator behaves as if
  * the don't-care-positions had been deleted without actually copying the string.
  *
- * @snippet demos/dox/modifier/cyclic_shape_snippets.cpp Define CyclicShape Modified Iterator
+ * @snippet demos/cyclic_shape_snippets.cpp Define CyclicShape Modified Iterator
  *
  * @see ModCyclicShapeModifiedString
  * @see CyclicShape
@@ -168,11 +168,11 @@ public:
  *
  * Use case for GenericCyclicShapes:
  *
- * @snippet demos/dox/modifier/cyclic_shape_snippets.cpp Define GenericCyclicShape Modified String
+ * @snippet demos/cyclic_shape_snippets.cpp Define GenericCyclicShape Modified String
  *
  * Use case for FixedCyclicShapes:
  *
- * @snippet demos/dox/modifier/cyclic_shape_snippets.cpp Define FixedCyclicShape Modified String
+ * @snippet demos/cyclic_shape_snippets.cpp Define FixedCyclicShape Modified String
  *
  *
  * @see CyclicShape
diff --git a/include/seqan/modifier/modifier_iterator.h b/include/seqan/modifier/modifier_iterator.h
index 2b15381..fd0f1bb 100644
--- a/include/seqan/modifier/modifier_iterator.h
+++ b/include/seqan/modifier/modifier_iterator.h
@@ -68,25 +68,25 @@ template <typename THost, typename TSpec> class ModifiedString;
  * <tt>THost</tt> can also be a modified iterator, so you can create custom iterators by combining predefined ones.
  */
 
-template <typename THostIter, typename TSpec = void>
+template <typename THost, typename TSpec = void>
 class ModifiedIterator
 {
 public:
     typedef typename Cargo<ModifiedIterator>::Type TCargo_;
 
-    THostIter _host;
+    THost _host;
     TCargo_ _cargo;
 
     ModifiedIterator()
     {}
 
-    template <typename TOtherHostIter>
-    ModifiedIterator(ModifiedIterator<TOtherHostIter, TSpec> const & origin):
+    template <typename TOtherHost>
+    ModifiedIterator(ModifiedIterator<TOtherHost, TSpec> const & origin):
             _host(origin._host), _cargo(origin._cargo)
     {}
 
     explicit
-    ModifiedIterator(THostIter const & host): _host(host)
+    ModifiedIterator(THost const & host): _host(host)
     {}
 };
 
@@ -147,7 +147,7 @@ struct Reference<ModifiedIterator<THost, TSpec> > : Reference<THost>
 {};
 
 template <typename THost, typename TSpec>
-struct Reference<ModifiedIterator<THost, TSpec> const> : Reference<THost>
+struct Reference<ModifiedIterator<THost, TSpec> const> : Reference< ModifiedIterator<THost, TSpec> >
 {};
 
 // --------------------------------------------------------------------------
@@ -374,7 +374,7 @@ goNext(ModifiedIterator<THost, TSpec> & me)
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TSpec>
-inline ModifiedIterator<THost, TSpec> &
+inline ModifiedIterator<THost, TSpec> const &
 operator++(ModifiedIterator<THost, TSpec> & me)
 {
     goNext(me);
@@ -406,7 +406,7 @@ goPrevious(ModifiedIterator<THost, TSpec> & me)
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TSpec>
-inline ModifiedIterator<THost, TSpec> &
+inline ModifiedIterator<THost, TSpec> const &
 operator--(ModifiedIterator<THost, TSpec> & me)
 {
     goPrevious(me);
@@ -520,7 +520,7 @@ operator-(ModifiedIterator<THost, TSpec> const & a, ModifiedIterator<THost, TSpe
 //}
 
 // --------------------------------------------------------------------------
-// Function position() (overloads for rooted iterators only)
+// Function position()
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TSpec>
@@ -530,12 +530,11 @@ position(ModifiedIterator<THost, TSpec> const & me)
     return position(host(me));
 }
 
-template <typename TContainer1, typename TIterator, typename TSpec1, typename TSpec2, typename TContainer2>
-inline typename Position<ModifiedIterator<Iter<TContainer1, AdaptorIterator<TIterator, TSpec1> >, TSpec2> const>::Type
-position(ModifiedIterator<Iter<TContainer1, AdaptorIterator<TIterator, TSpec1> >, TSpec2> const & me,
-        TContainer2 const &)
+template <typename THost, typename TSpec, typename TContainer>
+inline typename Position<ModifiedIterator<THost, TSpec> const>::Type
+position(ModifiedIterator<THost, TSpec> const & me, TContainer const &cont)
 {
-    return position(me); // rooted has container
+    return position(host(me), cont);
 }
 
 // --------------------------------------------------------------------------
@@ -583,43 +582,71 @@ operator>(ModifiedIterator<THost, TSpec> const & a, ModifiedIterator<THost, TSpe
 }
 
 // --------------------------------------------------------------------------
-// Function atBegin() (overloads for rooted iterators only)
+// Function atBegin()
 // --------------------------------------------------------------------------
 
+template <typename THost, typename TSpec, typename TContainer>
+inline bool
+atBegin(ModifiedIterator<THost, TSpec> & me,
+        TContainer const & container)
+{
+    return atBegin(const_cast<ModifiedIterator<THost, TSpec> const &>(me), container);
+}
+
+template <typename THost, typename TSpec, typename TContainer>
+inline bool
+atBegin(ModifiedIterator<THost, TSpec> const & me,
+        TContainer const & container)
+{
+    return atBegin(host(me), container);
+}
+
 template <typename THost, typename TSpec>
 inline bool
-atBegin(ModifiedIterator<THost, TSpec> const & me)
+atBegin(ModifiedIterator<THost, TSpec> & me)
 {
-    return atBegin(host(me));
+    return atBegin(const_cast<ModifiedIterator<THost, TSpec> const &>(me));
 }
 
-// rooted overload
-template <typename TContainer1, typename TIterator, typename TSpec1, typename TSpec2, typename TContainer2>
+template <typename THost, typename TSpec>
 inline bool
-atBegin(ModifiedIterator<Iter<TContainer1, AdaptorIterator<TIterator, TSpec1> >, TSpec2> const & me,
-        TContainer2 const &)
+atBegin(ModifiedIterator<THost, TSpec> const & me)
 {
-    return atBegin(me);
+    return atBegin(host(me));
 }
 
 // --------------------------------------------------------------------------
-// Function atEnd() (overloads for rooted iterators only)
+// Function atEnd()
 // --------------------------------------------------------------------------
 
+template <typename THost, typename TSpec, typename TContainer>
+inline bool
+atEnd(ModifiedIterator<THost, TSpec> & me,
+      TContainer const & container)
+{
+    return atEnd(const_cast<ModifiedIterator<THost, TSpec> const &>(me), container);
+}
+
+template <typename THost, typename TSpec, typename TContainer>
+inline bool
+atEnd(ModifiedIterator<THost, TSpec> const & me,
+      TContainer const & container)
+{
+    return atEnd(host(me), container);
+}
+
 template <typename THost, typename TSpec>
 inline bool
-atEnd(ModifiedIterator<THost, TSpec> const & me)
+atEnd(ModifiedIterator<THost, TSpec> & me)
 {
-    return atEnd(host(me));
+    return atEnd(const_cast<ModifiedIterator<THost, TSpec> const &>(me));
 }
 
-// rooted overload
-template <typename TContainer1, typename TIterator, typename TSpec1, typename TSpec2, typename TContainer2>
+template <typename THost, typename TSpec>
 inline bool
-atEnd(ModifiedIterator<Iter<TContainer1, AdaptorIterator<TIterator, TSpec1> >, TSpec2> const & me,
-      TContainer2 const &)
+atEnd(ModifiedIterator<THost, TSpec> const & me)
 {
-    return atEnd(me);
+    return atEnd(host(me));
 }
 
 }
diff --git a/include/seqan/modifier/modifier_reverse.h b/include/seqan/modifier/modifier_reverse.h
index 083cb1d..53fde53 100644
--- a/include/seqan/modifier/modifier_reverse.h
+++ b/include/seqan/modifier/modifier_reverse.h
@@ -103,13 +103,13 @@ struct Cargo<ModifiedIterator<THost, ModReverse> >
 template <typename THost>
 struct Iterator<ModifiedString<THost, ModReverse>, Standard>
 {
-    typedef ModifiedIterator<typename Iterator<THost, Rooted>::Type, ModReverse> Type;
+    typedef ModifiedIterator<typename Iterator<THost const, Rooted>::Type, ModReverse> Type;
 };
 
 template <typename THost>
 struct Iterator<ModifiedString<THost, ModReverse> const, Standard>
 {
-    typedef ModifiedIterator<typename Iterator<THost, Rooted>::Type, ModReverse> Type;
+    typedef ModifiedIterator<typename Iterator<THost const, Rooted>::Type, ModReverse> Type;
 };
 
 // --------------------------------------------------------------------------
@@ -274,16 +274,6 @@ operator-=(ModifiedIterator<THost, ModReverse> & me, TDelta delta)
     }
     return me;
 }
-// --------------------------------------------------------------------------
-// Function operator-()                         [ModReverse ModifiedIterator]
-// --------------------------------------------------------------------------
-
-template <typename THost, typename TPos>
-inline ModifiedIterator<THost, ModReverse>
-operator-(ModifiedIterator<THost, ModReverse> me, TPos const i)
-{
-    return me -= i;
-}
 
 // --------------------------------------------------------------------------
 // Function operator-()                         [ModReverse ModifiedIterator]
@@ -316,15 +306,6 @@ position(ModifiedIterator<THost, ModReverse> const & me)
         return length(container(host(me))) - 1 - position(host(me));
 }
 
-// rooted overload
-template <typename TContainer1, typename TIterator, typename TSpec, typename TContainer2>
-inline typename Position<ModifiedIterator<Iter<TContainer1, AdaptorIterator<TIterator, TSpec> >, ModReverse> const>::Type
-position(ModifiedIterator<Iter<TContainer1, AdaptorIterator<TIterator, TSpec> >, ModReverse> const & me,
-         TContainer2 const &)
-{
-    return position(me); // rooted has container
-}
-
 template <typename THost, typename TContainer>
 inline typename Position<ModifiedIterator<THost, ModReverse> const>::Type
 position(ModifiedIterator<THost, ModReverse> const & me, TContainer const &cont)
diff --git a/include/seqan/modifier/modifier_string.h b/include/seqan/modifier/modifier_string.h
index 5b95afa..0679cdb 100644
--- a/include/seqan/modifier/modifier_string.h
+++ b/include/seqan/modifier/modifier_string.h
@@ -73,27 +73,27 @@ template <typename TType, typename TTestType> struct IsAnInnerHost;
  *
  * @subsection Using ModReverseString
  *
- * @include demos/dox/modifier/modified_string.cpp
+ * @include demos/modifier/modified_string.cpp
  *
  * The output is als follows:
  *
- * @include demos/dox/modifier/modified_string.cpp.stdout
+ * @include demos/modifier/modified_string.cpp.stdout
  *
  * @subsection Using a custom functor for ModViewString
  *
- * @include demos/dox/modifier/modified_string_mod_view.cpp
+ * @include demos/modifier/modified_string_mod_view.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/modifier/modified_string_mod_view.cpp.stdout
+ * @include demos/modifier/modified_string_mod_view.cpp.stdout
  *
  * @subsection Using nested modified strings.
  *
- * @include demos/dox/modifier/modified_string_nested.cpp
+ * @include demos/modifier/modified_string_nested.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/modifier/modified_string_nested.cpp.stdout
+ * @include demos/modifier/modified_string_nested.cpp.stdout
  */
 
 template <typename THost, typename TSpec = void>
@@ -125,6 +125,22 @@ public:
         ignoreUnusedVariableWarning(dummy);
     }
 
+#ifdef SEQAN_CXX11_STANDARD
+
+    // Constructor for an inner host type; forward host to hosted type.
+    template <typename THost_>
+    explicit
+    ModifiedString(THost_ && host,
+                   SEQAN_CTOR_ENABLE_IF(IsAnInnerHost<
+                                            typename RemoveReference<THost>::Type,
+                                            typename RemoveReference<THost_>::Type >)) :
+            _host(std::forward<THost_>(host)), _cargo()
+    {
+        ignoreUnusedVariableWarning(dummy);
+    }
+
+#else // SEQAN_CXX11_STANDARD
+
     // Constructor for an inner host type; forward host to hosted type.
     template <typename THost_>
     explicit
@@ -135,6 +151,17 @@ public:
         ignoreUnusedVariableWarning(dummy);
     }
 
+    template <typename THost_>
+    explicit
+    ModifiedString(THost_ const & host,
+                   SEQAN_CTOR_ENABLE_IF(IsAnInnerHost<THost, THost_ const>)) :
+            _host(host), _cargo()
+    {
+        ignoreUnusedVariableWarning(dummy);
+    }
+
+#endif // SEQAN_CXX11_STANDARD
+
     template <typename TPos>
     inline typename Reference<ModifiedString>::Type
     operator[](TPos pos)
@@ -325,16 +352,16 @@ struct Iterator<ModifiedString<THost, TSpec> const, Rooted>
 };
 
 // VARIANT B: const ModifiedString propagates its constness upwards
-// template <typename THost, typename TSpec >
-// struct Iterator<ModifiedString<THost, TSpec> const, Standard>
-// {
+//template <typename THost, typename TSpec >
+//struct Iterator<ModifiedString<THost, TSpec> const, Standard>
+//{
 //    typedef ModifiedIterator<typename Iterator<THost const, Standard>::Type, TSpec> Type;
-// };
-// template <typename THost, typename TSpec >
-// struct Iterator<ModifiedString<THost, TSpec> const, Rooted>
-// {
+//};
+//template <typename THost, typename TSpec >
+//struct Iterator<ModifiedString<THost, TSpec> const, Rooted>
+//{
 //    typedef ModifiedIterator<typename Iterator<THost const, Rooted>::Type, TSpec> Type;
-// };
+//};
 
 // --------------------------------------------------------------------------
 // Metafunction Host
@@ -364,10 +391,10 @@ struct Host<ModifiedString<THost, TSpec> const > {
 };
 
 // VARIANT B: const ModifiedString propagates its constness upwards
-// template <typename THost, typename TSpec >
-// struct Host<ModifiedString<THost, TSpec> const > {
+//template <typename THost, typename TSpec >
+//struct Host<ModifiedString<THost, TSpec> const > {
 //    typedef typename ConvertArrayToPointer<THost const>::Type Type;
-// };
+//};
 
 // --------------------------------------------------------------------------
 // Metafunction Parameter_
@@ -552,7 +579,7 @@ value(ModifiedString<THost, TSpec> & me, TPos pos)
 }
 
 template <typename THost, typename TSpec, typename TPos>
-inline typename Reference<ModifiedString<THost, TSpec> const>::Type
+inline typename Reference<ModifiedString<THost, TSpec> const >::Type
 value(ModifiedString<THost, TSpec> const & me, TPos pos)
 {
     return value(begin(me, Standard()) + pos);
@@ -851,14 +878,14 @@ open(StringSet<ModifiedString<THost, TSpec>, Owner<ConcatDirect<TSpec2> > > &,
 
 template <typename THost, typename TSpec >
 inline bool
-save(ModifiedString<THost, TSpec> const &, const char *, int)
+save(ModifiedString<THost, TSpec> &, const char *, int)
 {
     return true; // NOOP; this has to be done manually right now
 }
 
 template <typename THost, typename TSpec, typename TSpec2>
 inline bool
-save(StringSet<ModifiedString<THost, TSpec>, Owner<ConcatDirect<TSpec2> > > const &,
+save(StringSet<ModifiedString<THost, TSpec>, Owner<ConcatDirect<TSpec2> > > &,
      const char *,
      int)
 {
diff --git a/include/seqan/modifier/modifier_view.h b/include/seqan/modifier/modifier_view.h
index 96db20c..7b4c43f 100644
--- a/include/seqan/modifier/modifier_view.h
+++ b/include/seqan/modifier/modifier_view.h
@@ -306,23 +306,12 @@ struct Value<ModifiedIterator<THost, ModView<TFunctor> > >
     typedef typename RemoveConst_<TResult_>::Type   Type;
 };
 
-template <typename THost, typename TFunctor>
-struct Value<ModifiedIterator<THost, ModView<TFunctor> > const> :
-    Value<ModifiedIterator<THost, ModView<TFunctor> > >
-{};
-
 // --------------------------------------------------------------------------
 // Metafunction GetValue                                   [ModifiedIterator]
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TFunctor>
-struct GetValue<ModifiedIterator<THost, ModView<TFunctor> > > :
-    Value<ModifiedIterator<THost, ModView<TFunctor> > >
-{};
-
-template <typename THost, typename TFunctor>
-struct GetValue<ModifiedIterator<THost, ModView<TFunctor> > const> :
-    Value<ModifiedIterator<THost, ModView<TFunctor> > >
+struct GetValue<ModifiedIterator<THost, ModView<TFunctor> > > : Value<ModifiedIterator<THost, ModView<TFunctor> > >
 {};
 
 // --------------------------------------------------------------------------
@@ -330,26 +319,10 @@ struct GetValue<ModifiedIterator<THost, ModView<TFunctor> > const> :
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TFunctor>
-struct Reference<ModifiedIterator<THost, ModView<TFunctor> > > :
-    Value<ModifiedIterator<THost, ModView<TFunctor> > >
-{};
-
-template <typename THost, typename TFunctor>
-struct Reference<ModifiedIterator<THost, ModView<TFunctor> > const> :
-    Value<ModifiedIterator<THost, ModView<TFunctor> > >
-{};
-
-// NOTE(h-2): ModView element access is always by copy never by reference
-// This is a workaround for dangling references to the stack when
-// combining infixes and modified views, more precisely:
-//  if you iterate over an infix of a modview then value() on the iterator
-//  will return reference to the tmp_value inside the moditerator
-//  which might have been destructed.
-// This is a more general problem that stems from the fact that
-// "virtual strings" of the same type (infixes, modstrings) can be
-// automatically compacted into one layer, but combinations cannot.
-// This workaround happens in ModView, because it is used less frequently
-// then Infixes.
+struct Reference<ModifiedIterator<THost, ModView<TFunctor> > >
+{
+    typedef typename Value<ModifiedIterator<THost, ModView<TFunctor> > >::Type & Type;
+};
 
 // --------------------------------------------------------------------------
 // Metafunction Cargo                                        [ModifiedString]
@@ -366,75 +339,79 @@ struct Cargo< ModifiedString<THost, ModView<TFunctor> > >
 // ==========================================================================
 
 // --------------------------------------------------------------------------
-// Function getValue()                                     [ModifiedIterator]
+// Function value()                                        [ModifiedIterator]
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TFunctor>
-inline typename GetValue<ModifiedIterator<THost, ModView<TFunctor> > >::Type
-getValue(ModifiedIterator<THost, ModView<TFunctor> > & me)
+inline typename Reference<ModifiedIterator<THost, ModView<TFunctor> > >::Type
+value(ModifiedIterator<THost, ModView<TFunctor> > & me)
 {
-    return cargo(me).func(getValue(host(me)));
+    me.tmp_value = cargo(me).func(getValue(host(me)));
+    return me.tmp_value;
 }
 
 template <typename THost, typename TFunctor>
-inline typename GetValue<ModifiedIterator<THost, ModView<TFunctor> > const>::Type
-getValue(ModifiedIterator<THost, ModView<TFunctor> > const & me)
+inline typename Reference<ModifiedIterator<THost, ModView<TFunctor> > const>::Type
+value(ModifiedIterator<THost, ModView<TFunctor> > const & me)
 {
-    return cargo(me).func(getValue(host(me)));
+    me.tmp_value = cargo(me).func(getValue(host(me)));
+    return me.tmp_value;
 }
 
 // --------------------------------------------------------------------------
-// Function value()                                        [ModifiedIterator]
+// Function getValue()                                     [ModifiedIterator]
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TFunctor>
 inline typename GetValue<ModifiedIterator<THost, ModView<TFunctor> > >::Type
-value(ModifiedIterator<THost, ModView<TFunctor> > & me)
+getValue(ModifiedIterator<THost, ModView<TFunctor> > & me)
 {
-    return getValue(me);
+    return cargo(me).func(getValue(host(me)));
 }
 
 template <typename THost, typename TFunctor>
 inline typename GetValue<ModifiedIterator<THost, ModView<TFunctor> > const>::Type
-value(ModifiedIterator<THost, ModView<TFunctor> > const & me)
+getValue(ModifiedIterator<THost, ModView<TFunctor> > const & me)
 {
-    return getValue(me);
+    return cargo(me).func(getValue(host(me)));
 }
 
 // --------------------------------------------------------------------------
-// Function getValue()                                       [ModifiedString]
+// Function value()                                          [ModifiedString]
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TFunctor, typename TPos>
-inline typename GetValue<ModifiedString<THost, ModView<TFunctor> > >::Type
-getValue(ModifiedString<THost, ModView<TFunctor> > & me, TPos pos)
+inline typename Reference<ModifiedString<THost, ModView<TFunctor> > >::Type
+value(ModifiedString<THost, ModView<TFunctor> > & me, TPos pos)
 {
-    return cargo(me).func(getValue(host(me), pos));
+    me.tmp_value = cargo(me).func(getValue(host(me), pos));
+    return me.tmp_value;
 }
 
 template <typename THost, typename TFunctor, typename TPos>
-inline typename GetValue<ModifiedString<THost, ModView<TFunctor> > const>::Type
-getValue(ModifiedString<THost, ModView<TFunctor> > const & me, TPos pos)
+inline typename Reference<ModifiedString<THost, ModView<TFunctor> > const>::Type
+value(ModifiedString<THost, ModView<TFunctor> > const & me, TPos pos)
 {
-    return cargo(me).func(getValue(host(me), pos));
+    me.tmp_value = cargo(me).func(getValue(host(me), pos));
+    return me.tmp_value;
 }
 
 // --------------------------------------------------------------------------
-// Function value()                                          [ModifiedString]
+// Function getValue()                                       [ModifiedString]
 // --------------------------------------------------------------------------
 
 template <typename THost, typename TFunctor, typename TPos>
 inline typename GetValue<ModifiedString<THost, ModView<TFunctor> > >::Type
-value(ModifiedString<THost, ModView<TFunctor> > & me, TPos pos)
+getValue(ModifiedString<THost, ModView<TFunctor> > & me, TPos pos)
 {
-    return getValue(me, pos);
+    return cargo(me).func(getValue(host(me), pos));
 }
 
 template <typename THost, typename TFunctor, typename TPos>
 inline typename GetValue<ModifiedString<THost, ModView<TFunctor> > const>::Type
-value(ModifiedString<THost, ModView<TFunctor> > const & me, TPos pos)
+getValue(ModifiedString<THost, ModView<TFunctor> > const & me, TPos pos)
 {
-    return getValue(me, pos);
+    return cargo(me).func(getValue(host(me), pos));
 }
 
 // --------------------------------------------------------------------------
diff --git a/include/seqan/parallel/parallel_macros.h b/include/seqan/parallel/parallel_macros.h
index 11f0fe7..780b088 100644
--- a/include/seqan/parallel/parallel_macros.h
+++ b/include/seqan/parallel/parallel_macros.h
@@ -124,10 +124,10 @@ inline double omp_get_wtime()
 
 SEQAN_HOST_DEVICE inline unsigned getThreadId()
 {
-#if defined(__CUDA_ARCH__)
+#ifdef __CUDA_ARCH__
     return blockIdx.x * blockDim.x + threadIdx.x;
 
-#elif defined(_OPENMP)
+#elif _OPENMP
     return omp_get_thread_num();
 
 #else
diff --git a/include/seqan/parallel/parallel_queue.h b/include/seqan/parallel/parallel_queue.h
index 7c88ddb..688e252 100644
--- a/include/seqan/parallel/parallel_queue.h
+++ b/include/seqan/parallel/parallel_queue.h
@@ -72,11 +72,11 @@ namespace seqan {
  *
  * Simple example for a single producer single consumer (SPSC) dynamic queue.
  *
- * @include demos/dox/parallel/queue_example.cpp
+ * @include demos/parallel/queue_example.cpp
  *
  * The output is:
  *
- * @include demos/dox/parallel/queue_example.cpp.stdout
+ * @include demos/parallel/queue_example.cpp.stdout
  */
 
 template <typename TValue, typename TSpec = void>
diff --git a/include/seqan/parallel/parallel_splitting.h b/include/seqan/parallel/parallel_splitting.h
index 65686db..2f7ae1e 100644
--- a/include/seqan/parallel/parallel_splitting.h
+++ b/include/seqan/parallel/parallel_splitting.h
@@ -65,11 +65,11 @@ typedef Tag<Equidistant_> Equidistant;
  *
  * Simple example for equidistant (default) splitting.
  *
- * @include demos/dox/parallel/splitter_example.cpp
+ * @include demos/parallel/splitter_example.cpp
  *
  * The output is:
  *
- * @include demos/dox/parallel/splitter_example.cpp.stdout
+ * @include demos/parallel/splitter_example.cpp.stdout
  */
 
 /*!
@@ -109,7 +109,7 @@ typedef Tag<Equidistant_> Equidistant;
  *
  * Simple example for equidistant splitting.
  *
- * @include demos/dox/parallel/splitter_example.cpp
+ * @include demos/parallel/splitter_example.cpp
  *
  * Output:
  *
diff --git a/include/seqan/pipe/pool_sorter.h b/include/seqan/pipe/pool_sorter.h
index 69a5469..3d906c7 100644
--- a/include/seqan/pipe/pool_sorter.h
+++ b/include/seqan/pipe/pool_sorter.h
@@ -147,7 +147,7 @@ namespace SEQAN_NAMESPACE_MAIN
  *
  * @section Example
  *
- * @include demos/dox/pipe/pool_sorter.cpp
+ * @include demos/pipe/pool_sorter.cpp
  *
  * @code{.console}
  * Sorted elements:
diff --git a/include/seqan/platform.h b/include/seqan/platform.h
index 12c5f72..2249d4f 100755
--- a/include/seqan/platform.h
+++ b/include/seqan/platform.h
@@ -97,13 +97,4 @@
 #define SEQAN_UNLIKELY(x) (x)
 #endif
 
-// A macro to eliminate warnings on GCC and Clang
-#if (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))) || defined(__clang__)
-#  define SEQAN_UNUSED __attribute__((unused))
-#else
-#  define SEQAN_UNUSED
-#endif
-// backwards compatibility
-#define SEQAN_UNUSED_TYPEDEF SEQAN_UNUSED
-
 #endif
diff --git a/include/seqan/platform/platform_windows.h b/include/seqan/platform/platform_windows.h
index 273b444..f0ca0c8 100644
--- a/include/seqan/platform/platform_windows.h
+++ b/include/seqan/platform/platform_windows.h
@@ -71,11 +71,6 @@
 #pragma warning( disable : 4345 )
 #pragma warning( disable : 4351 )
 
-// Disable warning for "this" used in derived c'tor
-// Documentation of C4355 from Microsoft:
-//   https://msdn.microsoft.com/en-us/library/3c594ae3(v=vs.100).aspx
-#pragma warning( disable : 4355 )
-
 // ==========================================================================
 // Define Integers
 // ==========================================================================
@@ -133,11 +128,9 @@ inline T round(T const & x)
 }
 
 // Rename some underscore-functions in Windows.
-#if _MSC_VER < 1900
 #ifndef snprintf
 #define snprintf _snprintf
 #endif  // #ifndef snprintf
-#endif
 
 // Define ftello
 #ifndef ftello
diff --git a/include/seqan/random/ext_MersenneTwister.h b/include/seqan/random/ext_MersenneTwister.h
old mode 100644
new mode 100755
diff --git a/include/seqan/random/random_base.h b/include/seqan/random/random_base.h
index 19e8d79..83ffa29 100644
--- a/include/seqan/random/random_base.h
+++ b/include/seqan/random/random_base.h
@@ -60,7 +60,7 @@ struct MersenneTwister;
  *
  * The following code shows how to generate random numbers and shuffle a text.
  *
- * @include demos/dox/random/random.cpp
+ * @include demos/random/random.cpp
  *
  * @code{.console}
  * pickRandomNumber(rng) == 1608637542
diff --git a/include/seqan/realign/realign_base.h b/include/seqan/realign/realign_base.h
index 61e649b..b2fcad1 100644
--- a/include/seqan/realign/realign_base.h
+++ b/include/seqan/realign/realign_base.h
@@ -592,7 +592,7 @@ public:
         for (TAlignedReadIter it2 = begin(alignedReadStore, Standard()); it2 != itEnd; ++it2)
         {
             typedef Gaps<TReadSeq, AnchorGaps<String<typename TFragmentStore::TReadGapAnchor> > > TReadGaps;
-            TReadGaps readGaps(static_cast<TReadSeq>(store.readSeqStore[it2->readId]), it2->gaps);
+            TReadGaps readGaps(store.readSeqStore[it2->readId], it2->gaps);
             // if (options.debug)
             //     std::cerr << "it2->beginPos == " << it2->beginPos << ", it2->endPos == " << it2->endPos << "\n";
             if ((unsigned)abs((int)(it2->endPos - it2->beginPos)) != length(readGaps))
@@ -813,7 +813,7 @@ void AnsonMyersRealigner_<TFragmentStore>::_beginContig(unsigned contigID)
 
         // We create Gaps for the read we are iterating over.
         // TODO(holtgrew): Is clipping stored in the read gaps? It appears so in Tobias' original code.
-        TReadGaps readGaps(static_cast<TReadSeq>(store.readSeqStore[it->readId]), it->gaps);
+        TReadGaps readGaps(store.readSeqStore[it->readId], it->gaps);
 
         // Get iterators to beginning of read gaps and the corresponding positions in the contig gaps and the profile
         // string.
diff --git a/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_base.h b/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_base.h
index 387d13e..7a0980b 100644
--- a/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_base.h
+++ b/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_base.h
@@ -66,7 +66,7 @@ namespace seqan {
  * Since it was created from the 20-letter alphabet the clusters in SeqAn are
  * not identical (they contain more symbols). This is the clustering:
  * @code{.txt}
- *   'A', // A O U X
+ *   'A', // A U X
  *   'B', // B D E N Q Z
  *   'C', // C
  *   'F', // F W Y *
diff --git a/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_tables.h b/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_tables.h
index c2e8083..6ba0650 100644
--- a/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_tables.h
+++ b/include/seqan/reduced_aminoacid/reduced_aminoacid_murphy10_tables.h
@@ -66,7 +66,7 @@ struct TranslateTableCharToRedAA_<Murphy10, TSpec>
 template <typename TSpec>
 struct TranslateTableAAToRedAA_<Murphy10, TSpec>
 {
-    static const char VALUE[27];
+    static const char VALUE[26];
 };
 
 template <typename TSpec>
@@ -80,7 +80,7 @@ struct TranslateTableByteToRedAA_<Murphy10, TSpec>
 template <typename TVoidSpec>
 char const TranslateTableRedAAToChar_<Murphy10, TVoidSpec>::VALUE[10] =
 {
-    'A', // A O U X
+    'A', // A U X
     'B', // B D E N Q Z
     'C', // C
     'F', // F W Y *
@@ -116,10 +116,10 @@ char const TranslateTableCharToRedAA_<Murphy10, TVoidSpec>::VALUE[256] =
 };
 
 template <typename TVoidSpec>
-char const TranslateTableAAToRedAA_<Murphy10, TVoidSpec>::VALUE[27] =
+char const TranslateTableAAToRedAA_<Murphy10, TVoidSpec>::VALUE[26] =
 {
      0,  1,  2,  1,  1,  3,  4,  5,  6,  6,  7,  6,  6,
-     1,  0,  8,  1,  7,  9,  9,  0,  6,  3,  3,  1,  0,  3
+     1,  8,  1,  7,  9,  9,  0,  6,  3,  3,  1,  0,  3
 };
 
 template <typename TVoidSpec>
diff --git a/include/seqan/score/score_base.h b/include/seqan/score/score_base.h
index 4346d61..e8bd441 100644
--- a/include/seqan/score/score_base.h
+++ b/include/seqan/score/score_base.h
@@ -57,11 +57,11 @@ namespace seqan {
  *
  * @section Examples
  *
- * @include demos/dox/score/score.cpp
+ * @include demos/score/score.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/score/score.cpp.stdout
+ * @include demos/score/score.cpp.stdout
  */
 
 template <typename TValue = int, typename TSpec = Simple>
diff --git a/include/seqan/score/score_matrix_data.h b/include/seqan/score/score_matrix_data.h
index 0ae9c17..54ebef5 100644
--- a/include/seqan/score/score_matrix_data.h
+++ b/include/seqan/score/score_matrix_data.h
@@ -60,12 +60,9 @@ M3 = M2(:,[1 21 5 4 7 14 8 9 10 12 11 13 3 15 6 2 16 17 20 18 19 22 23 24]);
 ## add J column
 M4 = [M3(1:9,:); round((M3(9,:) + M3(11,:)) /2); M3(10:end,:)];
 M4 = [M4(:,1:9), round((M4(:,9) + M4(:,11)) /2), M4(:,10:end)];
-## add O column
-M5 = [M4(:,1:14), M4(:,24), M4(:,15:25)];
-M5 = [M5(1:14,:); M5(24,:); M5(15:25,:)];
 ## add U column
-M6 = [M5(:,1:20), M5(:,25), M5(:,21:26)];
-M6 = [M6(1:20,:); M6(25,:); M6(21:26,:)];
+M5 = [M4(:,1:19), M4(:,24), M4(:,20:25)];
+M5 = [M5(1:19,:); M5(24,:); M5(20:25,:)];
  */
 
 #ifndef SEQAN_SSCORE_MATRIX_DATA_H_
@@ -98,21 +95,20 @@ typedef Blosum30_ ScoreSpecBlosum30;
  * L  -1 -1  0 -1 -1  2 -2 -1  2  3 -2  4
  * M   1 -2 -2 -3 -1 -2 -2  2  1  2  2  2  6
  * N   0  4 -1  1 -1 -1  0 -1  0 -1  0 -2  0  8
- * X   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1
- * P  -1 -2 -3 -1  1 -4 -1  1 -3 -3  1 -3 -4 -3 -1 11
- * Q   1 -1 -2 -1  2 -3 -2  0 -2 -2  0 -2 -1 -1  0  0  8
- * R  -1 -2 -2 -1 -1 -1 -2 -1 -3 -3  1 -2  0 -2 -1 -1  3  8
- * S   1  0 -2  0  0 -1  0 -1 -1 -2  0 -2 -2  0  0 -1 -1 -1  4
- * T   1  0 -2 -1 -2 -2 -2 -2  0  0 -1  0  0  1  0  0  0 -3  2  5
- * U   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1 -1  0 -1  0  0 -1
- * V   1 -2 -2 -2 -3  1 -3 -3  4  3 -2  1  0 -2  0 -4 -3 -1 -1  1  0  5
- * W  -5 -5 -2 -4 -1  1  1 -5 -3 -3 -2 -2 -3 -7 -2 -3 -1  0 -3 -5 -2 -3 20
- * Y  -4 -3 -6 -1 -2  3 -3  0 -1  1 -1  3 -1 -4 -1 -2 -1  0 -2 -1 -1  1  5  9
- * Z   0  0  0  0  5 -4 -2  0 -3 -2  1 -1 -1 -1  0  0  4  0 -1 -1  0 -3 -1 -2  4
- * X   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1 -1  0 -1  0  0 -1  0 -2 -1  0 -1
- * *  -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
+ * P  -1 -2 -3 -1  1 -4 -1  1 -3 -3  1 -3 -4 -3 11
+ * Q   1 -1 -2 -1  2 -3 -2  0 -2 -2  0 -2 -1 -1  0  8
+ * R  -1 -2 -2 -1 -1 -1 -2 -1 -3 -3  1 -2  0 -2 -1  3  8
+ * S   1  0 -2  0  0 -1  0 -1 -1 -2  0 -2 -2  0 -1 -1 -1  4
+ * T   1  0 -2 -1 -2 -2 -2 -2  0  0 -1  0  0  1  0  0 -3  2  5
+ * U   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1  0 -1  0  0 -1
+ * V   1 -2 -2 -2 -3  1 -3 -3  4  3 -2  1  0 -2 -4 -3 -1 -1  1  0  5
+ * W  -5 -5 -2 -4 -1  1  1 -5 -3 -3 -2 -2 -3 -7 -3 -1  0 -3 -5 -2 -3 20
+ * Y  -4 -3 -6 -1 -2  3 -3  0 -1  1 -1  3 -1 -4 -2 -1  0 -2 -1 -1  1  5  9
+ * Z   0  0  0  0  5 -4 -2  0 -3 -2  1 -1 -1 -1  0  4  0 -1 -1  0 -3 -1 -2  4
+ * X   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1  0 -1  0  0 -1  0 -2 -1  0 -1
+ * *  -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -136,33 +132,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecBlosum30> {
         // Cluster Percentage: >= 30
         // Entropy =   0.1424, Expected =  -0.1074
         static int const _data[TAB_SIZE] = {
-             4,  0, -3,  0,  0, -2,  0, -2,  0, -1,  0, -1,  1,  0,  0, -1,  1, -1,  1,  1,  0,  1, -5, -4,  0,  0, -7,
-             0,  5, -2,  5,  0, -3,  0, -2, -2, -2,  0, -1, -2,  4, -1, -2, -1, -2,  0,  0, -1, -2, -5, -3,  0, -1, -7,
-            -3, -2, 17, -3,  1, -3, -4, -5, -2, -1, -3,  0, -2, -1, -2, -3, -2, -2, -2, -2, -2, -2, -2, -6,  0, -2, -7,
-             0,  5, -3,  9,  1, -5, -1, -2, -4, -3,  0, -1, -3,  1, -1, -1, -1, -1,  0, -1, -1, -2, -4, -1,  0, -1, -7,
-             0,  0,  1,  1,  6, -4, -2,  0, -3, -2,  2, -1, -1, -1, -1,  1,  2, -1,  0, -2, -1, -3, -1, -2,  5, -1, -7,
-            -2, -3, -3, -5, -4, 10, -3, -3,  0,  1, -1,  2, -2, -1, -1, -4, -3, -1, -1, -2, -1,  1,  1,  3, -4, -1, -7,
-             0,  0, -4, -1, -2, -3,  8, -3, -1, -2, -1, -2, -2,  0, -1, -1, -2, -2,  0, -2, -1, -3,  1, -3, -2, -1, -7,
-            -2, -2, -5, -2,  0, -3, -3, 14, -2, -2, -2, -1,  2, -1, -1,  1,  0, -1, -1, -2, -1, -3, -5,  0,  0, -1, -7,
-             0, -2, -2, -4, -3,  0, -1, -2,  6,  4, -2,  2,  1,  0,  0, -3, -2, -3, -1,  0,  0,  4, -3, -1, -3,  0, -7,
-            -1, -2, -1, -3, -2,  1, -2, -2,  4,  4, -2,  3,  2, -1,  0, -3, -2, -3, -2,  0,  0,  3, -3,  1, -2,  0, -7,
-             0,  0, -3,  0,  2, -1, -1, -2, -2, -2,  4, -2,  2,  0,  0,  1,  0,  1,  0, -1,  0, -2, -2, -1,  1,  0, -7,
-            -1, -1,  0, -1, -1,  2, -2, -1,  2,  3, -2,  4,  2, -2,  0, -3, -2, -2, -2,  0,  0,  1, -2,  3, -1,  0, -7,
-             1, -2, -2, -3, -1, -2, -2,  2,  1,  2,  2,  2,  6,  0,  0, -4, -1,  0, -2,  0,  0,  0, -3, -1, -1,  0, -7,
-             0,  4, -1,  1, -1, -1,  0, -1,  0, -1,  0, -2,  0,  8,  0, -3, -1, -2,  0,  1,  0, -2, -7, -4, -1,  0, -7,
-             0, -1, -2, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,  0, -1, -1,  0, -1,  0,  0, -1,  0, -2, -1,  0, -1, -7,
-            -1, -2, -3, -1,  1, -4, -1,  1, -3, -3,  1, -3, -4, -3, -1, 11,  0, -1, -1,  0, -1, -4, -3, -2,  0, -1, -7,
-             1, -1, -2, -1,  2, -3, -2,  0, -2, -2,  0, -2, -1, -1,  0,  0,  8,  3, -1,  0,  0, -3, -1, -1,  4,  0, -7,
-            -1, -2, -2, -1, -1, -1, -2, -1, -3, -3,  1, -2,  0, -2, -1, -1,  3,  8, -1, -3, -1, -1,  0,  0,  0, -1, -7,
-             1,  0, -2,  0,  0, -1,  0, -1, -1, -2,  0, -2, -2,  0,  0, -1, -1, -1,  4,  2,  0, -1, -3, -2, -1,  0, -7,
-             1,  0, -2, -1, -2, -2, -2, -2,  0,  0, -1,  0,  0,  1,  0,  0,  0, -3,  2,  5,  0,  1, -5, -1, -1,  0, -7,
-             0, -1, -2, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,  0, -1, -1,  0, -1,  0,  0, -1,  0, -2, -1,  0, -1, -7,
-             1, -2, -2, -2, -3,  1, -3, -3,  4,  3, -2,  1,  0, -2,  0, -4, -3, -1, -1,  1,  0,  5, -3,  1, -3,  0, -7,
-            -5, -5, -2, -4, -1,  1,  1, -5, -3, -3, -2, -2, -3, -7, -2, -3, -1,  0, -3, -5, -2, -3, 20,  5, -1, -2, -7,
-            -4, -3, -6, -1, -2,  3, -3,  0, -1,  1, -1,  3, -1, -4, -1, -2, -1,  0, -2, -1, -1,  1,  5,  9, -2, -1, -7,
-             0,  0,  0,  0,  5, -4, -2,  0, -3, -2,  1, -1, -1, -1,  0,  0,  4,  0, -1, -1,  0, -3, -1, -2,  4,  0, -7,
-             0, -1, -2, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,  0, -1, -1,  0, -1,  0,  0, -1,  0, -2, -1,  0, -1, -7,
-            -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,  1
+             4,  0, -3,  0,  0, -2,  0, -2,  0, -1,  0, -1,  1,  0, -1,  1, -1,  1,  1,  0,  1, -5, -4,  0,  0, -7,
+             0,  5, -2,  5,  0, -3,  0, -2, -2, -2,  0, -1, -2,  4, -2, -1, -2,  0,  0, -1, -2, -5, -3,  0, -1, -7,
+            -3, -2, 17, -3,  1, -3, -4, -5, -2, -1, -3,  0, -2, -1, -3, -2, -2, -2, -2, -2, -2, -2, -6,  0, -2, -7,
+             0,  5, -3,  9,  1, -5, -1, -2, -4, -3,  0, -1, -3,  1, -1, -1, -1,  0, -1, -1, -2, -4, -1,  0, -1, -7,
+             0,  0,  1,  1,  6, -4, -2,  0, -3, -2,  2, -1, -1, -1,  1,  2, -1,  0, -2, -1, -3, -1, -2,  5, -1, -7,
+            -2, -3, -3, -5, -4, 10, -3, -3,  0,  1, -1,  2, -2, -1, -4, -3, -1, -1, -2, -1,  1,  1,  3, -4, -1, -7,
+             0,  0, -4, -1, -2, -3,  8, -3, -1, -2, -1, -2, -2,  0, -1, -2, -2,  0, -2, -1, -3,  1, -3, -2, -1, -7,
+            -2, -2, -5, -2,  0, -3, -3, 14, -2, -2, -2, -1,  2, -1,  1,  0, -1, -1, -2, -1, -3, -5,  0,  0, -1, -7,
+             0, -2, -2, -4, -3,  0, -1, -2,  6,  4, -2,  2,  1,  0, -3, -2, -3, -1,  0,  0,  4, -3, -1, -3,  0, -7,
+            -1, -2, -1, -3, -2,  1, -2, -2,  4,  4, -2,  3,  2, -1, -3, -2, -3, -2,  0,  0,  3, -3,  1, -2,  0, -7,
+             0,  0, -3,  0,  2, -1, -1, -2, -2, -2,  4, -2,  2,  0,  1,  0,  1,  0, -1,  0, -2, -2, -1,  1,  0, -7,
+            -1, -1,  0, -1, -1,  2, -2, -1,  2,  3, -2,  4,  2, -2, -3, -2, -2, -2,  0,  0,  1, -2,  3, -1,  0, -7,
+             1, -2, -2, -3, -1, -2, -2,  2,  1,  2,  2,  2,  6,  0, -4, -1,  0, -2,  0,  0,  0, -3, -1, -1,  0, -7,
+             0,  4, -1,  1, -1, -1,  0, -1,  0, -1,  0, -2,  0,  8, -3, -1, -2,  0,  1,  0, -2, -7, -4, -1,  0, -7,
+            -1, -2, -3, -1,  1, -4, -1,  1, -3, -3,  1, -3, -4, -3, 11,  0, -1, -1,  0, -1, -4, -3, -2,  0, -1, -7,
+             1, -1, -2, -1,  2, -3, -2,  0, -2, -2,  0, -2, -1, -1,  0,  8,  3, -1,  0,  0, -3, -1, -1,  4,  0, -7,
+            -1, -2, -2, -1, -1, -1, -2, -1, -3, -3,  1, -2,  0, -2, -1,  3,  8, -1, -3, -1, -1,  0,  0,  0, -1, -7,
+             1,  0, -2,  0,  0, -1,  0, -1, -1, -2,  0, -2, -2,  0, -1, -1, -1,  4,  2,  0, -1, -3, -2, -1,  0, -7,
+             1,  0, -2, -1, -2, -2, -2, -2,  0,  0, -1,  0,  0,  1,  0,  0, -3,  2,  5,  0,  1, -5, -1, -1,  0, -7,
+             0, -1, -2, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,  0, -1,  0, -1,  0,  0, -1,  0, -2, -1,  0, -1, -7,
+             1, -2, -2, -2, -3,  1, -3, -3,  4,  3, -2,  1,  0, -2, -4, -3, -1, -1,  1,  0,  5, -3,  1, -3,  0, -7,
+            -5, -5, -2, -4, -1,  1,  1, -5, -3, -3, -2, -2, -3, -7, -3, -1,  0, -3, -5, -2, -3, 20,  5, -1, -2, -7,
+            -4, -3, -6, -1, -2,  3, -3,  0, -1,  1, -1,  3, -1, -4, -2, -1,  0, -2, -1, -1,  1,  5,  9, -2, -1, -7,
+             0,  0,  0,  0,  5, -4, -2,  0, -3, -2,  1, -1, -1, -1,  0,  4,  0, -1, -1,  0, -3, -1, -2,  4,  0, -7,
+             0, -1, -2, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,  0, -1,  0, -1,  0,  0, -1,  0, -2, -1,  0, -1, -7,
+            -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,  1
         };
         return _data;
     }
@@ -193,21 +188,20 @@ typedef Blosum45_ ScoreSpecBlosum45;
  * L  -1 -3 -2 -3 -2  1 -3 -2  2  4 -3  5
  * M  -1 -2 -2 -3 -2  0 -2  0  2  2 -1  2  6
  * N  -1  4 -2  2  0 -2  0  1 -2 -3  0 -3 -2  6
- * O   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- * P  -1 -2 -4 -1  0 -3 -2 -2 -2 -3 -1 -3 -2 -2 -1  9
- * Q  -1  0 -3  0  2 -4 -2  1 -2 -2  1 -2  0  0 -1 -1  6
- * R  -2 -1 -3 -1  0 -2 -2  0 -3 -3  3 -2 -1  0 -1 -2  1  7
- * S   1  0 -1  0  0 -2  0 -1 -2 -3 -1 -3 -2  1  0 -1  0 -1  4
- * T   0  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1  0  0 -1 -1 -1  2  5
- * U   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1
- * V   0 -3 -1 -3 -3  0 -3 -3  3  2 -2  1  1 -3 -1 -3 -3 -2 -1  0 -1  5
- * W  -2 -4 -5 -4 -3  1 -2 -3 -2 -2 -2 -2 -2 -4 -2 -3 -2 -2 -4 -3 -2 -3 15
- * Y  -2 -2 -3 -2 -2  3 -3  2  0  0 -1  0  0 -2 -1 -3 -1 -1 -2 -1 -1 -1  3  8
- * Z  -1  2 -3  1  4 -3 -2  0 -3 -3  1 -2 -1  0 -1 -1  4  0  0 -1 -1 -3 -2 -2  4
- * X   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1
- * *  -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1
+ * P  -1 -2 -4 -1  0 -3 -2 -2 -2 -3 -1 -3 -2 -2  9
+ * Q  -1  0 -3  0  2 -4 -2  1 -2 -2  1 -2  0  0 -1  6
+ * R  -2 -1 -3 -1  0 -2 -2  0 -3 -3  3 -2 -1  0 -2  1  7
+ * S   1  0 -1  0  0 -2  0 -1 -2 -3 -1 -3 -2  1 -1  0 -1  4
+ * T   0  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1  0 -1 -1 -1  2  5
+ * U   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1
+ * V   0 -3 -1 -3 -3  0 -3 -3  3  2 -2  1  1 -3 -3 -3 -2 -1  0 -1  5
+ * W  -2 -4 -5 -4 -3  1 -2 -3 -2 -2 -2 -2 -2 -4 -3 -2 -2 -4 -3 -2 -3 15
+ * Y  -2 -2 -3 -2 -2  3 -3  2  0  0 -1  0  0 -2 -3 -1 -1 -2 -1 -1 -1  3  8
+ * Z  -1  2 -3  1  4 -3 -2  0 -3 -3  1 -2 -1  0 -1  4  0  0 -1 -1 -3 -2 -2  4
+ * X   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1
+ * *  -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  *
  * @endcode
  */
@@ -231,33 +225,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecBlosum45> {
         // Cluster Percentage: >= 45
         // Entropy =   0.3795, Expected =  -0.2789
         static int const _data[TAB_SIZE] = {
-             5, -1, -1, -2, -1, -2,  0, -2, -1, -1, -1, -1, -1, -1,  0, -1, -1, -2,  1,  0,  0,  0, -2, -2, -1,  0, -5,
-            -1,  4, -2,  5,  1, -3, -1,  0, -3, -3,  0, -3, -2,  4, -1, -2,  0, -1,  0,  0, -1, -3, -4, -2,  2, -1, -5,
-            -1, -2, 12, -3, -3, -2, -3, -3, -3, -3, -3, -2, -2, -2, -2, -4, -3, -3, -1, -1, -2, -1, -5, -3, -3, -2, -5,
-            -2,  5, -3,  7,  2, -4, -1,  0, -4, -4,  0, -3, -3,  2, -1, -1,  0, -1,  0, -1, -1, -3, -4, -2,  1, -1, -5,
-            -1,  1, -3,  2,  6, -3, -2,  0, -3, -3,  1, -2, -2,  0, -1,  0,  2,  0,  0, -1, -1, -3, -3, -2,  4, -1, -5,
-            -2, -3, -2, -4, -3,  8, -3, -2,  0,  1, -3,  1,  0, -2, -1, -3, -4, -2, -2, -1, -1,  0,  1,  3, -3, -1, -5,
-             0, -1, -3, -1, -2, -3,  7, -2, -4, -4, -2, -3, -2,  0, -1, -2, -2, -2,  0, -2, -1, -3, -2, -3, -2, -1, -5,
-            -2,  0, -3,  0,  0, -2, -2, 10, -3, -3, -1, -2,  0,  1, -1, -2,  1,  0, -1, -2, -1, -3, -3,  2,  0, -1, -5,
-            -1, -3, -3, -4, -3,  0, -4, -3,  5,  4, -3,  2,  2, -2, -1, -2, -2, -3, -2, -1, -1,  3, -2,  0, -3, -1, -5,
-            -1, -3, -3, -4, -3,  1, -4, -3,  4,  4, -3,  4,  2, -3, -1, -3, -2, -3, -3, -1, -1,  2, -2,  0, -3, -1, -5,
-            -1,  0, -3,  0,  1, -3, -2, -1, -3, -3,  5, -3, -1,  0, -1, -1,  1,  3, -1, -1, -1, -2, -2, -1,  1, -1, -5,
-            -1, -3, -2, -3, -2,  1, -3, -2,  2,  4, -3,  5,  2, -3, -1, -3, -2, -2, -3, -1, -1,  1, -2,  0, -2, -1, -5,
-            -1, -2, -2, -3, -2,  0, -2,  0,  2,  2, -1,  2,  6, -2, -1, -2,  0, -1, -2, -1, -1,  1, -2,  0, -1, -1, -5,
-            -1,  4, -2,  2,  0, -2,  0,  1, -2, -3,  0, -3, -2,  6, -1, -2,  0,  0,  1,  0, -1, -3, -4, -2,  0, -1, -5,
-             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -5,
-            -1, -2, -4, -1,  0, -3, -2, -2, -2, -3, -1, -3, -2, -2, -1,  9, -1, -2, -1, -1, -1, -3, -3, -3, -1, -1, -5,
-            -1,  0, -3,  0,  2, -4, -2,  1, -2, -2,  1, -2,  0,  0, -1, -1,  6,  1,  0, -1, -1, -3, -2, -1,  4, -1, -5,
-            -2, -1, -3, -1,  0, -2, -2,  0, -3, -3,  3, -2, -1,  0, -1, -2,  1,  7, -1, -1, -1, -2, -2, -1,  0, -1, -5,
-             1,  0, -1,  0,  0, -2,  0, -1, -2, -3, -1, -3, -2,  1,  0, -1,  0, -1,  4,  2,  0, -1, -4, -2,  0,  0, -5,
-             0,  0, -1, -1, -1, -1, -2, -2, -1, -1, -1, -1, -1,  0,  0, -1, -1, -1,  2,  5,  0,  0, -3, -1, -1,  0, -5,
-             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -5,
-             0, -3, -1, -3, -3,  0, -3, -3,  3,  2, -2,  1,  1, -3, -1, -3, -3, -2, -1,  0, -1,  5, -3, -1, -3, -1, -5,
-            -2, -4, -5, -4, -3,  1, -2, -3, -2, -2, -2, -2, -2, -4, -2, -3, -2, -2, -4, -3, -2, -3, 15,  3, -2, -2, -5,
-            -2, -2, -3, -2, -2,  3, -3,  2,  0,  0, -1,  0,  0, -2, -1, -3, -1, -1, -2, -1, -1, -1,  3,  8, -2, -1, -5,
-            -1,  2, -3,  1,  4, -3, -2,  0, -3, -3,  1, -2, -1,  0, -1, -1,  4,  0,  0, -1, -1, -3, -2, -2,  4, -1, -5,
-             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -5,
-            -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,  1
+             5, -1, -1, -2, -1, -2,  0, -2, -1, -1, -1, -1, -1, -1, -1, -1, -2,  1,  0,  0,  0, -2, -2, -1,  0, -5,
+            -1,  4, -2,  5,  1, -3, -1,  0, -3, -3,  0, -3, -2,  4, -2,  0, -1,  0,  0, -1, -3, -4, -2,  2, -1, -5,
+            -1, -2, 12, -3, -3, -2, -3, -3, -3, -3, -3, -2, -2, -2, -4, -3, -3, -1, -1, -2, -1, -5, -3, -3, -2, -5,
+            -2,  5, -3,  7,  2, -4, -1,  0, -4, -4,  0, -3, -3,  2, -1,  0, -1,  0, -1, -1, -3, -4, -2,  1, -1, -5,
+            -1,  1, -3,  2,  6, -3, -2,  0, -3, -3,  1, -2, -2,  0,  0,  2,  0,  0, -1, -1, -3, -3, -2,  4, -1, -5,
+            -2, -3, -2, -4, -3,  8, -3, -2,  0,  1, -3,  1,  0, -2, -3, -4, -2, -2, -1, -1,  0,  1,  3, -3, -1, -5,
+             0, -1, -3, -1, -2, -3,  7, -2, -4, -4, -2, -3, -2,  0, -2, -2, -2,  0, -2, -1, -3, -2, -3, -2, -1, -5,
+            -2,  0, -3,  0,  0, -2, -2, 10, -3, -3, -1, -2,  0,  1, -2,  1,  0, -1, -2, -1, -3, -3,  2,  0, -1, -5,
+            -1, -3, -3, -4, -3,  0, -4, -3,  5,  4, -3,  2,  2, -2, -2, -2, -3, -2, -1, -1,  3, -2,  0, -3, -1, -5,
+            -1, -3, -3, -4, -3,  1, -4, -3,  4,  4, -3,  4,  2, -3, -3, -2, -3, -3, -1, -1,  2, -2,  0, -3, -1, -5,
+            -1,  0, -3,  0,  1, -3, -2, -1, -3, -3,  5, -3, -1,  0, -1,  1,  3, -1, -1, -1, -2, -2, -1,  1, -1, -5,
+            -1, -3, -2, -3, -2,  1, -3, -2,  2,  4, -3,  5,  2, -3, -3, -2, -2, -3, -1, -1,  1, -2,  0, -2, -1, -5,
+            -1, -2, -2, -3, -2,  0, -2,  0,  2,  2, -1,  2,  6, -2, -2,  0, -1, -2, -1, -1,  1, -2,  0, -1, -1, -5,
+            -1,  4, -2,  2,  0, -2,  0,  1, -2, -3,  0, -3, -2,  6, -2,  0,  0,  1,  0, -1, -3, -4, -2,  0, -1, -5,
+            -1, -2, -4, -1,  0, -3, -2, -2, -2, -3, -1, -3, -2, -2,  9, -1, -2, -1, -1, -1, -3, -3, -3, -1, -1, -5,
+            -1,  0, -3,  0,  2, -4, -2,  1, -2, -2,  1, -2,  0,  0, -1,  6,  1,  0, -1, -1, -3, -2, -1,  4, -1, -5,
+            -2, -1, -3, -1,  0, -2, -2,  0, -3, -3,  3, -2, -1,  0, -2,  1,  7, -1, -1, -1, -2, -2, -1,  0, -1, -5,
+             1,  0, -1,  0,  0, -2,  0, -1, -2, -3, -1, -3, -2,  1, -1,  0, -1,  4,  2,  0, -1, -4, -2,  0,  0, -5,
+             0,  0, -1, -1, -1, -1, -2, -2, -1, -1, -1, -1, -1,  0, -1, -1, -1,  2,  5,  0,  0, -3, -1, -1,  0, -5,
+             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -5,
+             0, -3, -1, -3, -3,  0, -3, -3,  3,  2, -2,  1,  1, -3, -3, -3, -2, -1,  0, -1,  5, -3, -1, -3, -1, -5,
+            -2, -4, -5, -4, -3,  1, -2, -3, -2, -2, -2, -2, -2, -4, -3, -2, -2, -4, -3, -2, -3, 15,  3, -2, -2, -5,
+            -2, -2, -3, -2, -2,  3, -3,  2,  0,  0, -1,  0,  0, -2, -3, -1, -1, -2, -1, -1, -1,  3,  8, -2, -1, -5,
+            -1,  2, -3,  1,  4, -3, -2,  0, -3, -3,  1, -2, -1,  0, -1,  4,  0,  0, -1, -1, -3, -2, -2,  4, -1, -5,
+             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -5,
+            -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,  1
         };
         return _data;
     }
@@ -288,21 +281,20 @@ typedef Blosum62_ ScoreSpecBlosum62;
  * L  -1 -4 -1 -4 -3  0 -4 -3  2  3 -2  4
  * M  -1 -3 -1 -3 -2  0 -3 -2  1  2 -1  2  5
  * N  -2  3 -3  1  0 -3  0  1 -3 -3  0 -3 -2  6
- * X   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
- * P  -1 -2 -3 -1 -1 -4 -2 -2 -3 -3 -1 -3 -2 -2 -2  7
- * Q  -1  0 -3  0  2 -3 -2  0 -3 -3  1 -2  0  0 -1 -1  5
- * R  -1 -1 -3 -2  0 -3 -2  0 -3 -3  2 -2 -1  0 -1 -2  1  5
- * S   1  0 -1  0  0 -2  0 -1 -2 -2  0 -2 -1  1  0 -1  0 -1  4
- * T   0 -1 -1 -1 -1 -2 -2 -2 -1 -1 -1 -1 -1  0  0 -1 -1 -1  1  5
- * U   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1
- * V   0 -3 -1 -3 -2 -1 -3 -3  3  2 -2  1  1 -3 -1 -2 -2 -3 -2  0 -1  4
- * W  -3 -4 -2 -4 -3  1 -2 -2 -3 -3 -3 -2 -1 -4 -2 -4 -2 -3 -3 -2 -2 -3 11
- * Y  -2 -3 -2 -3 -2  3 -3  2 -1 -1 -2 -1 -1 -2 -1 -3 -1 -2 -2 -2 -1 -1  2  7
- * Z  -1  1 -3  1  4 -3 -2  0 -3 -3  1 -3 -1  0 -1 -1  3  0  0 -1 -1 -2 -3 -2  4
- * X   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1
- * *  -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1
+ * P  -1 -2 -3 -1 -1 -4 -2 -2 -3 -3 -1 -3 -2 -2  7
+ * Q  -1  0 -3  0  2 -3 -2  0 -3 -3  1 -2  0  0 -1  5
+ * R  -1 -1 -3 -2  0 -3 -2  0 -3 -3  2 -2 -1  0 -2  1  5
+ * S   1  0 -1  0  0 -2  0 -1 -2 -2  0 -2 -1  1 -1  0 -1  4
+ * T   0 -1 -1 -1 -1 -2 -2 -2 -1 -1 -1 -1 -1  0 -1 -1 -1  1  5
+ * U   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1
+ * V   0 -3 -1 -3 -2 -1 -3 -3  3  2 -2  1  1 -3 -2 -2 -3 -2  0 -1  4
+ * W  -3 -4 -2 -4 -3  1 -2 -2 -3 -3 -3 -2 -1 -4 -4 -2 -3 -3 -2 -2 -3 11
+ * Y  -2 -3 -2 -3 -2  3 -3  2 -1 -1 -2 -1 -1 -2 -3 -1 -2 -2 -2 -1 -1  2  7
+ * Z  -1  1 -3  1  4 -3 -2  0 -3 -3  1 -3 -1  0 -1  3  0  0 -1 -1 -2 -3 -2  4
+ * X   0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1
+ * *  -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -325,33 +317,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecBlosum62> {
         // Cluster Percentage: >= 62
         // Entropy =   0.6979, Expected =  -0.5209
         static int const _data[TAB_SIZE] = {
-             4, -2,  0, -2, -1, -2,  0, -2, -1, -1, -1, -1, -1, -2,  0, -1, -1, -1,  1,  0,  0,  0, -3, -2, -1,  0, -4,
-            -2,  4, -3,  4,  1, -3, -1,  0, -3, -4,  0, -4, -3,  3, -1, -2,  0, -1,  0, -1, -1, -3, -4, -3,  1, -1, -4,
-             0, -3,  9, -3, -4, -2, -3, -3, -1, -1, -3, -1, -1, -3, -2, -3, -3, -3, -1, -1, -2, -1, -2, -2, -3, -2, -4,
-            -2,  4, -3,  6,  2, -3, -1, -1, -3, -4, -1, -4, -3,  1, -1, -1,  0, -2,  0, -1, -1, -3, -4, -3,  1, -1, -4,
-            -1,  1, -4,  2,  5, -3, -2,  0, -3, -3,  1, -3, -2,  0, -1, -1,  2,  0,  0, -1, -1, -2, -3, -2,  4, -1, -4,
-            -2, -3, -2, -3, -3,  6, -3, -1,  0,  0, -3,  0,  0, -3, -1, -4, -3, -3, -2, -2, -1, -1,  1,  3, -3, -1, -4,
-             0, -1, -3, -1, -2, -3,  6, -2, -4, -4, -2, -4, -3,  0, -1, -2, -2, -2,  0, -2, -1, -3, -2, -3, -2, -1, -4,
-            -2,  0, -3, -1,  0, -1, -2,  8, -3, -3, -1, -3, -2,  1, -1, -2,  0,  0, -1, -2, -1, -3, -2,  2,  0, -1, -4,
-            -1, -3, -1, -3, -3,  0, -4, -3,  4,  3, -3,  2,  1, -3, -1, -3, -3, -3, -2, -1, -1,  3, -3, -1, -3, -1, -4,
-            -1, -4, -1, -4, -3,  0, -4, -3,  3,  3, -3,  3,  2, -3, -1, -3, -3, -3, -2, -1, -1,  2, -3, -1, -3, -1, -4,
-            -1,  0, -3, -1,  1, -3, -2, -1, -3, -3,  5, -2, -1,  0, -1, -1,  1,  2,  0, -1, -1, -2, -3, -2,  1, -1, -4,
-            -1, -4, -1, -4, -3,  0, -4, -3,  2,  3, -2,  4,  2, -3, -1, -3, -2, -2, -2, -1, -1,  1, -2, -1, -3, -1, -4,
-            -1, -3, -1, -3, -2,  0, -3, -2,  1,  2, -1,  2,  5, -2, -1, -2,  0, -1, -1, -1, -1,  1, -1, -1, -1, -1, -4,
-            -2,  3, -3,  1,  0, -3,  0,  1, -3, -3,  0, -3, -2,  6, -1, -2,  0,  0,  1,  0, -1, -3, -4, -2,  0, -1, -4,
-             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -4,
-            -1, -2, -3, -1, -1, -4, -2, -2, -3, -3, -1, -3, -2, -2, -2,  7, -1, -2, -1, -1, -2, -2, -4, -3, -1, -2, -4,
-            -1,  0, -3,  0,  2, -3, -2,  0, -3, -3,  1, -2,  0,  0, -1, -1,  5,  1,  0, -1, -1, -2, -2, -1,  3, -1, -4,
-            -1, -1, -3, -2,  0, -3, -2,  0, -3, -3,  2, -2, -1,  0, -1, -2,  1,  5, -1, -1, -1, -3, -3, -2,  0, -1, -4,
-             1,  0, -1,  0,  0, -2,  0, -1, -2, -2,  0, -2, -1,  1,  0, -1,  0, -1,  4,  1,  0, -2, -3, -2,  0,  0, -4,
-             0, -1, -1, -1, -1, -2, -2, -2, -1, -1, -1, -1, -1,  0,  0, -1, -1, -1,  1,  5,  0,  0, -2, -2, -1,  0, -4,
-             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -4,
-             0, -3, -1, -3, -2, -1, -3, -3,  3,  2, -2,  1,  1, -3, -1, -2, -2, -3, -2,  0, -1,  4, -3, -1, -2, -1, -4,
-            -3, -4, -2, -4, -3,  1, -2, -2, -3, -3, -3, -2, -1, -4, -2, -4, -2, -3, -3, -2, -2, -3, 11,  2, -3, -2, -4,
-            -2, -3, -2, -3, -2,  3, -3,  2, -1, -1, -2, -1, -1, -2, -1, -3, -1, -2, -2, -2, -1, -1,  2,  7, -2, -1, -4,
-            -1,  1, -3,  1,  4, -3, -2,  0, -3, -3,  1, -3, -1,  0, -1, -1,  3,  0,  0, -1, -1, -2, -3, -2,  4, -1, -4,
-             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -4,
-            -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,  1
+             4, -2,  0, -2, -1, -2,  0, -2, -1, -1, -1, -1, -1, -2, -1, -1, -1,  1,  0,  0,  0, -3, -2, -1,  0, -4,
+            -2,  4, -3,  4,  1, -3, -1,  0, -3, -4,  0, -4, -3,  3, -2,  0, -1,  0, -1, -1, -3, -4, -3,  1, -1, -4,
+             0, -3,  9, -3, -4, -2, -3, -3, -1, -1, -3, -1, -1, -3, -3, -3, -3, -1, -1, -2, -1, -2, -2, -3, -2, -4,
+            -2,  4, -3,  6,  2, -3, -1, -1, -3, -4, -1, -4, -3,  1, -1,  0, -2,  0, -1, -1, -3, -4, -3,  1, -1, -4,
+            -1,  1, -4,  2,  5, -3, -2,  0, -3, -3,  1, -3, -2,  0, -1,  2,  0,  0, -1, -1, -2, -3, -2,  4, -1, -4,
+            -2, -3, -2, -3, -3,  6, -3, -1,  0,  0, -3,  0,  0, -3, -4, -3, -3, -2, -2, -1, -1,  1,  3, -3, -1, -4,
+             0, -1, -3, -1, -2, -3,  6, -2, -4, -4, -2, -4, -3,  0, -2, -2, -2,  0, -2, -1, -3, -2, -3, -2, -1, -4,
+            -2,  0, -3, -1,  0, -1, -2,  8, -3, -3, -1, -3, -2,  1, -2,  0,  0, -1, -2, -1, -3, -2,  2,  0, -1, -4,
+            -1, -3, -1, -3, -3,  0, -4, -3,  4,  3, -3,  2,  1, -3, -3, -3, -3, -2, -1, -1,  3, -3, -1, -3, -1, -4,
+            -1, -4, -1, -4, -3,  0, -4, -3,  3,  3, -3,  3,  2, -3, -3, -3, -3, -2, -1, -1,  2, -3, -1, -3, -1, -4,
+            -1,  0, -3, -1,  1, -3, -2, -1, -3, -3,  5, -2, -1,  0, -1,  1,  2,  0, -1, -1, -2, -3, -2,  1, -1, -4,
+            -1, -4, -1, -4, -3,  0, -4, -3,  2,  3, -2,  4,  2, -3, -3, -2, -2, -2, -1, -1,  1, -2, -1, -3, -1, -4,
+            -1, -3, -1, -3, -2,  0, -3, -2,  1,  2, -1,  2,  5, -2, -2,  0, -1, -1, -1, -1,  1, -1, -1, -1, -1, -4,
+            -2,  3, -3,  1,  0, -3,  0,  1, -3, -3,  0, -3, -2,  6, -2,  0,  0,  1,  0, -1, -3, -4, -2,  0, -1, -4,
+            -1, -2, -3, -1, -1, -4, -2, -2, -3, -3, -1, -3, -2, -2,  7, -1, -2, -1, -1, -2, -2, -4, -3, -1, -2, -4,
+            -1,  0, -3,  0,  2, -3, -2,  0, -3, -3,  1, -2,  0,  0, -1,  5,  1,  0, -1, -1, -2, -2, -1,  3, -1, -4,
+            -1, -1, -3, -2,  0, -3, -2,  0, -3, -3,  2, -2, -1,  0, -2,  1,  5, -1, -1, -1, -3, -3, -2,  0, -1, -4,
+             1,  0, -1,  0,  0, -2,  0, -1, -2, -2,  0, -2, -1,  1, -1,  0, -1,  4,  1,  0, -2, -3, -2,  0,  0, -4,
+             0, -1, -1, -1, -1, -2, -2, -2, -1, -1, -1, -1, -1,  0, -1, -1, -1,  1,  5,  0,  0, -2, -2, -1,  0, -4,
+             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -4,
+             0, -3, -1, -3, -2, -1, -3, -3,  3,  2, -2,  1,  1, -3, -2, -2, -3, -2,  0, -1,  4, -3, -1, -2, -1, -4,
+            -3, -4, -2, -4, -3,  1, -2, -2, -3, -3, -3, -2, -1, -4, -4, -2, -3, -3, -2, -2, -3, 11,  2, -3, -2, -4,
+            -2, -3, -2, -3, -2,  3, -3,  2, -1, -1, -2, -1, -1, -2, -3, -1, -2, -2, -2, -1, -1,  2,  7, -2, -1, -4,
+            -1,  1, -3,  1,  4, -3, -2,  0, -3, -3,  1, -3, -1,  0, -1,  3,  0,  0, -1, -1, -2, -3, -2,  4, -1, -4,
+             0, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1,  0,  0, -1, -1, -2, -1, -1, -1, -4,
+            -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,  1
         };
         return _data;
     }
@@ -382,21 +373,22 @@ typedef Blosum80_ ScoreSpecBlosum80;
  * L  -3 -7 -3 -7 -6  0 -7 -5  2  4 -4  6
  * M  -2 -5 -3 -6 -4  0 -5 -4  2  3 -3  3  9
  * N  -3  5 -5  2 -1 -6 -1  1 -6 -6  0 -6 -4  9
- * O  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -2
- * P  -1 -4 -6 -3 -2 -6 -5 -4 -5 -5 -2 -5 -4 -4 -3 12
- * Q  -2 -1 -5 -1  3 -5 -4  1 -5 -5  2 -4 -1  0 -2 -3  9
- * R  -3 -2 -6 -3 -1 -5 -4  0 -5 -5  3 -4 -3 -1 -2 -3  1  9
- * S   2  0 -2 -1 -1 -4 -1 -2 -4 -4 -1 -4 -3  1 -1 -2 -1 -2  7
- * T   0 -1 -2 -2 -2 -4 -3 -3 -2 -3 -1 -3 -1  0 -1 -3 -1 -2  2  8
- * U  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2
- * V  -1 -6 -2 -6 -4 -2 -6 -5  4  3 -4  1  1 -5 -2 -4 -4 -4 -3  0 -2  7
- * W  -5 -8 -5 -8 -6  0 -6 -4 -5 -5 -6 -4 -3 -7 -5 -7 -4 -5 -6 -5 -5 -5 16
- * Y  -4 -5 -5 -6 -5  4 -6  3 -3 -3 -4 -2 -3 -4 -3 -6 -3 -4 -3 -3 -3 -3  3 11
- * Z  -2  0 -7  1  6 -6 -4  0 -6 -6  1 -5 -3 -1 -1 -2  5  0 -1 -2 -1 -4 -5 -4  6
- * X  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2
- * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+ * P  -1 -4 -6 -3 -2 -6 -5 -4 -5 -5 -2 -5 -4 -4 12
+ * Q  -2 -1 -5 -1  3 -5 -4  1 -5 -5  2 -4 -1  0 -3  9
+ * R  -3 -2 -6 -3 -1 -5 -4  0 -5 -5  3 -4 -3 -1 -3  1  9
+ * S   2  0 -2 -1 -1 -4 -1 -2 -4 -4 -1 -4 -3  1 -2 -1 -2  7
+ * T   0 -1 -2 -2 -2 -4 -3 -3 -2 -3 -1 -3 -1  0 -3 -1 -2  2  8
+ * U  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2
+ * V  -1 -6 -2 -6 -4 -2 -6 -5  4  3 -4  1  1 -5 -4 -4 -4 -3  0 -2  7
+ * W  -5 -8 -5 -8 -6  0 -6 -4 -5 -5 -6 -4 -3 -7 -7 -4 -5 -6 -5 -5 -5 16
+ * Y  -4 -5 -5 -6 -5  4 -6  3 -3 -3 -4 -2 -3 -4 -6 -3 -4 -3 -3 -3 -3  3 11
+ * Z  -2  0 -7  1  6 -6 -4  0 -6 -6  1 -5 -3 -1 -2  5  0 -1 -2 -1 -4 -5 -4  6
+ * X  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2
+ * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+ *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -419,33 +411,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecBlosum80> {
         // Cluster Percentage: >= 80
         // Entropy =   0.9868, Expected =  -0.7442
         static int const _data[TAB_SIZE] = {
-             7,  -3,  -1,  -3,  -2,  -4,   0,  -3,  -3,  -3,  -1,  -3,  -2,  -3,  -1,  -1,  -2,  -3,   2,   0,  -1,  -1,  -5,  -4,  -2,  -1,  -8,
-            -3,   6,  -6,   6,   1,  -6,  -2,  -1,  -6,  -7,  -1,  -7,  -5,   5,  -3,  -4,  -1,  -2,   0,  -1,  -3,  -6,  -8,  -5,   0,  -3,  -8,
-            -1,  -6,  13,  -7,  -7,  -4,  -6,  -7,  -2,  -3,  -6,  -3,  -3,  -5,  -4,  -6,  -5,  -6,  -2,  -2,  -4,  -2,  -5,  -5,  -7,  -4,  -8,
-            -3,   6,  -7,  10,   2,  -6,  -3,  -2,  -7,  -7,  -2,  -7,  -6,   2,  -3,  -3,  -1,  -3,  -1,  -2,  -3,  -6,  -8,  -6,   1,  -3,  -8,
-            -2,   1,  -7,   2,   8,  -6,  -4,   0,  -6,  -6,   1,  -6,  -4,  -1,  -2,  -2,   3,  -1,  -1,  -2,  -2,  -4,  -6,  -5,   6,  -2,  -8,
-            -4,  -6,  -4,  -6,  -6,  10,  -6,  -2,  -1,  -1,  -5,   0,   0,  -6,  -3,  -6,  -5,  -5,  -4,  -4,  -3,  -2,   0,   4,  -6,  -3,  -8,
-             0,  -2,  -6,  -3,  -4,  -6,   9,  -4,  -7,  -7,  -3,  -7,  -5,  -1,  -3,  -5,  -4,  -4,  -1,  -3,  -3,  -6,  -6,  -6,  -4,  -3,  -8,
-            -3,  -1,  -7,  -2,   0,  -2,  -4,  12,  -6,  -6,  -1,  -5,  -4,   1,  -2,  -4,   1,   0,  -2,  -3,  -2,  -5,  -4,   3,   0,  -2,  -8,
-            -3,  -6,  -2,  -7,  -6,  -1,  -7,  -6,   7,   5,  -5,   2,   2,  -6,  -2,  -5,  -5,  -5,  -4,  -2,  -2,   4,  -5,  -3,  -6,  -2,  -8,
-            -3,  -7,  -3,  -7,  -6,  -1,  -7,  -6,   5,   5,  -5,   4,   3,  -6,  -2,  -5,  -5,  -5,  -4,  -3,  -2,   3,  -5,  -3,  -6,  -2,  -8,
-            -1,  -1,  -6,  -2,   1,  -5,  -3,  -1,  -5,  -5,   8,  -4,  -3,   0,  -2,  -2,   2,   3,  -1,  -1,  -2,  -4,  -6,  -4,   1,  -2,  -8,
-            -3,  -7,  -3,  -7,  -6,   0,  -7,  -5,   2,   4,  -4,   6,   3,  -6,  -2,  -5,  -4,  -4,  -4,  -3,  -2,   1,  -4,  -2,  -5,  -2,  -8,
-            -2,  -5,  -3,  -6,  -4,   0,  -5,  -4,   2,   3,  -3,   3,   9,  -4,  -2,  -4,  -1,  -3,  -3,  -1,  -2,   1,  -3,  -3,  -3,  -2,  -8,
-            -3,   5,  -5,   2,  -1,  -6,  -1,   1,  -6,  -6,   0,  -6,  -4,   9,  -2,  -4,   0,  -1,   1,   0,  -2,  -5,  -7,  -4,  -1,  -2,  -8,
-            -1,  -3,  -4,  -3,  -2,  -3,  -3,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -3,  -2,  -2,  -1,  -1,  -2,  -2,  -5,  -3,  -1,  -2,  -8,
-            -1,  -4,  -6,  -3,  -2,  -6,  -5,  -4,  -5,  -5,  -2,  -5,  -4,  -4,  -3,  12,  -3,  -3,  -2,  -3,  -3,  -4,  -7,  -6,  -2,  -3,  -8,
-            -2,  -1,  -5,  -1,   3,  -5,  -4,   1,  -5,  -5,   2,  -4,  -1,   0,  -2,  -3,   9,   1,  -1,  -1,  -2,  -4,  -4,  -3,   5,  -2,  -8,
-            -3,  -2,  -6,  -3,  -1,  -5,  -4,   0,  -5,  -5,   3,  -4,  -3,  -1,  -2,  -3,   1,   9,  -2,  -2,  -2,  -4,  -5,  -4,   0,  -2,  -8,
-             2,   0,  -2,  -1,  -1,  -4,  -1,  -2,  -4,  -4,  -1,  -4,  -3,   1,  -1,  -2,  -1,  -2,   7,   2,  -1,  -3,  -6,  -3,  -1,  -1,  -8,
-             0,  -1,  -2,  -2,  -2,  -4,  -3,  -3,  -2,  -3,  -1,  -3,  -1,   0,  -1,  -3,  -1,  -2,   2,   8,  -1,   0,  -5,  -3,  -2,  -1,  -8,
-            -1,  -3,  -4,  -3,  -2,  -3,  -3,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -3,  -2,  -2,  -1,  -1,  -2,  -2,  -5,  -3,  -1,  -2,  -8,
-            -1,  -6,  -2,  -6,  -4,  -2,  -6,  -5,   4,   3,  -4,   1,   1,  -5,  -2,  -4,  -4,  -4,  -3,   0,  -2,   7,  -5,  -3,  -4,  -2,  -8,
-            -5,  -8,  -5,  -8,  -6,   0,  -6,  -4,  -5,  -5,  -6,  -4,  -3,  -7,  -5,  -7,  -4,  -5,  -6,  -5,  -5,  -5,  16,   3,  -5,  -5,  -8,
-            -4,  -5,  -5,  -6,  -5,   4,  -6,   3,  -3,  -3,  -4,  -2,  -3,  -4,  -3,  -6,  -3,  -4,  -3,  -3,  -3,  -3,   3,  11,  -4,  -3,  -8,
-            -2,   0,  -7,   1,   6,  -6,  -4,   0,  -6,  -6,   1,  -5,  -3,  -1,  -1,  -2,   5,   0,  -1,  -2,  -1,  -4,  -5,  -4,   6,  -1,  -8,
-            -1,  -3,  -4,  -3,  -2,  -3,  -3,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -3,  -2,  -2,  -1,  -1,  -2,  -2,  -5,  -3,  -1,  -2,  -8,
-            -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,   1
+             7,  -3,  -1,  -3,  -2,  -4,   0,  -3,  -3,  -3,  -1,  -3,  -2,  -3,  -1,  -2,  -3,   2,   0,  -1,  -1,  -5,  -4,  -2,  -1,  -8,
+            -3,   6,  -6,   6,   1,  -6,  -2,  -1,  -6,  -7,  -1,  -7,  -5,   5,  -4,  -1,  -2,   0,  -1,  -3,  -6,  -8,  -5,   0,  -3,  -8,
+            -1,  -6,  13,  -7,  -7,  -4,  -6,  -7,  -2,  -3,  -6,  -3,  -3,  -5,  -6,  -5,  -6,  -2,  -2,  -4,  -2,  -5,  -5,  -7,  -4,  -8,
+            -3,   6,  -7,  10,   2,  -6,  -3,  -2,  -7,  -7,  -2,  -7,  -6,   2,  -3,  -1,  -3,  -1,  -2,  -3,  -6,  -8,  -6,   1,  -3,  -8,
+            -2,   1,  -7,   2,   8,  -6,  -4,   0,  -6,  -6,   1,  -6,  -4,  -1,  -2,   3,  -1,  -1,  -2,  -2,  -4,  -6,  -5,   6,  -2,  -8,
+            -4,  -6,  -4,  -6,  -6,  10,  -6,  -2,  -1,  -1,  -5,   0,   0,  -6,  -6,  -5,  -5,  -4,  -4,  -3,  -2,   0,   4,  -6,  -3,  -8,
+             0,  -2,  -6,  -3,  -4,  -6,   9,  -4,  -7,  -7,  -3,  -7,  -5,  -1,  -5,  -4,  -4,  -1,  -3,  -3,  -6,  -6,  -6,  -4,  -3,  -8,
+            -3,  -1,  -7,  -2,   0,  -2,  -4,  12,  -6,  -6,  -1,  -5,  -4,   1,  -4,   1,   0,  -2,  -3,  -2,  -5,  -4,   3,   0,  -2,  -8,
+            -3,  -6,  -2,  -7,  -6,  -1,  -7,  -6,   7,   5,  -5,   2,   2,  -6,  -5,  -5,  -5,  -4,  -2,  -2,   4,  -5,  -3,  -6,  -2,  -8,
+            -3,  -7,  -3,  -7,  -6,  -1,  -7,  -6,   5,   5,  -5,   4,   3,  -6,  -5,  -5,  -5,  -4,  -3,  -2,   3,  -5,  -3,  -6,  -2,  -8,
+            -1,  -1,  -6,  -2,   1,  -5,  -3,  -1,  -5,  -5,   8,  -4,  -3,   0,  -2,   2,   3,  -1,  -1,  -2,  -4,  -6,  -4,   1,  -2,  -8,
+            -3,  -7,  -3,  -7,  -6,   0,  -7,  -5,   2,   4,  -4,   6,   3,  -6,  -5,  -4,  -4,  -4,  -3,  -2,   1,  -4,  -2,  -5,  -2,  -8,
+            -2,  -5,  -3,  -6,  -4,   0,  -5,  -4,   2,   3,  -3,   3,   9,  -4,  -4,  -1,  -3,  -3,  -1,  -2,   1,  -3,  -3,  -3,  -2,  -8,
+            -3,   5,  -5,   2,  -1,  -6,  -1,   1,  -6,  -6,   0,  -6,  -4,   9,  -4,   0,  -1,   1,   0,  -2,  -5,  -7,  -4,  -1,  -2,  -8,
+            -1,  -4,  -6,  -3,  -2,  -6,  -5,  -4,  -5,  -5,  -2,  -5,  -4,  -4,  12,  -3,  -3,  -2,  -3,  -3,  -4,  -7,  -6,  -2,  -3,  -8,
+            -2,  -1,  -5,  -1,   3,  -5,  -4,   1,  -5,  -5,   2,  -4,  -1,   0,  -3,   9,   1,  -1,  -1,  -2,  -4,  -4,  -3,   5,  -2,  -8,
+            -3,  -2,  -6,  -3,  -1,  -5,  -4,   0,  -5,  -5,   3,  -4,  -3,  -1,  -3,   1,   9,  -2,  -2,  -2,  -4,  -5,  -4,   0,  -2,  -8,
+             2,   0,  -2,  -1,  -1,  -4,  -1,  -2,  -4,  -4,  -1,  -4,  -3,   1,  -2,  -1,  -2,   7,   2,  -1,  -3,  -6,  -3,  -1,  -1,  -8,
+             0,  -1,  -2,  -2,  -2,  -4,  -3,  -3,  -2,  -3,  -1,  -3,  -1,   0,  -3,  -1,  -2,   2,   8,  -1,   0,  -5,  -3,  -2,  -1,  -8,
+            -1,  -3,  -4,  -3,  -2,  -3,  -3,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -3,  -2,  -2,  -1,  -1,  -2,  -2,  -5,  -3,  -1,  -2,  -8,
+            -1,  -6,  -2,  -6,  -4,  -2,  -6,  -5,   4,   3,  -4,   1,   1,  -5,  -4,  -4,  -4,  -3,   0,  -2,   7,  -5,  -3,  -4,  -2,  -8,
+            -5,  -8,  -5,  -8,  -6,   0,  -6,  -4,  -5,  -5,  -6,  -4,  -3,  -7,  -7,  -4,  -5,  -6,  -5,  -5,  -5,  16,   3,  -5,  -5,  -8,
+            -4,  -5,  -5,  -6,  -5,   4,  -6,   3,  -3,  -3,  -4,  -2,  -3,  -4,  -6,  -3,  -4,  -3,  -3,  -3,  -3,   3,  11,  -4,  -3,  -8,
+            -2,   0,  -7,   1,   6,  -6,  -4,   0,  -6,  -6,   1,  -5,  -3,  -1,  -2,   5,   0,  -1,  -2,  -1,  -4,  -5,  -4,   6,  -1,  -8,
+            -1,  -3,  -4,  -3,  -2,  -3,  -3,  -2,  -2,  -2,  -2,  -2,  -2,  -2,  -3,  -2,  -2,  -1,  -1,  -2,  -2,  -5,  -3,  -1,  -2,  -8,
+            -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,  -8,   1
         };
         return _data;
     }
@@ -462,35 +453,34 @@ typedef Pam40_ ScoreSpecPam40;
  * @signature typedef Score<int, ScoreMatrix<AminoAcid, ScoreSpecPam40> > Pam40;
  *
  * @code{.txt}
- * A     6
- * B    -3   6
- * C    -6 -11   9
- * D    -3   6 -12   7
- * E    -2   2 -12   3   7
- * F    -7  -9 -11 -13 -12   9
- * G    -1  -2  -8  -3  -3  -8   6
- * H    -6  -1  -7  -3  -4  -5  -8   9
- * I    -4  -5  -5  -6  -5  -2  -9  -8   8
- * J    -5  -7  -9  -9  -7  -2  -9  -7   4   4
- * K    -6  -2 -12  -4  -4 -12  -6  -5  -5  -6   6
- * L    -5  -8 -13 -11  -8  -2  -9  -5  -1   3  -7   7
- * M    -4  -8 -12  -9  -6  -3  -7  -9   0   1  -1   1  11
- * N    -3   6  -9   2  -1  -8  -2   1  -4  -5   0  -6  -7   7
- * O    -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4
- * P    -1  -6  -7  -7  -5  -9  -5  -3  -7  -7  -6  -6  -7  -5  -4   8
- * Q    -3  -2 -12  -2   2 -11  -6   1  -7  -6  -2  -4  -3  -3  -4  -2   8
- * R    -6  -6  -7  -9  -8  -8  -8  -1  -5  -7   1  -8  -3  -5  -5  -3  -1   8
- * S     0  -1  -2  -3  -4  -6  -1  -5  -6  -7  -3  -7  -5   0  -2  -1  -4  -2   6
- * T     0  -2  -7  -4  -5  -8  -5  -6  -2  -4  -2  -6  -3  -1  -3  -3  -5  -5   1   7
- * U    -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -4  -5  -2  -3  -4
- * V    -2  -7  -5  -7  -6  -7  -5  -6   2   0  -8  -2  -1  -7  -4  -5  -6  -7  -5  -2  -4   7
- * W   -12  -9 -14 -13 -15  -4 -13  -6 -12  -9 -10  -5 -11  -7  -9 -12 -11  -1  -4 -11  -9 -14  13
- * Y    -7  -6  -3 -10  -8   2 -12  -3  -5  -6  -8  -6 -10  -4  -7 -12 -10  -9  -6  -6  -7  -6  -4  10
- * Z    -2   1 -12   2   6 -12  -4   0  -5  -6  -3  -6  -4  -2  -4  -3   6  -3  -4  -5  -4  -6 -13  -8   6
- * X    -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -4  -5  -2  -3  -4  -4  -9  -7  -4  -4
- * *   -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15   1
+ * A   7
+ * B  -3  6
+ * C  -1 -6 13
+ * D  -3  6 -7 10
+ * E  -2  1 -7  2  8
+ * F  -4 -6 -4 -6 -6 10
+ * G   0 -2 -6 -3 -4 -6  9
+ * H  -3 -1 -7 -2  0 -2 -4 12
+ * I  -3 -6 -2 -7 -6 -1 -7 -6  7
+ * J  -3 -7 -3 -7 -6 -1 -7 -6  5  5
+ * K  -1 -1 -6 -2  1 -5 -3 -1 -5 -5  8
+ * L  -3 -7 -3 -7 -6  0 -7 -5  2  4 -4  6
+ * M  -2 -5 -3 -6 -4  0 -5 -4  2  3 -3  3  9
+ * N  -3  5 -5  2 -1 -6 -1  1 -6 -6  0 -6 -4  9
+ * P  -1 -4 -6 -3 -2 -6 -5 -4 -5 -5 -2 -5 -4 -4 12
+ * Q  -2 -1 -5 -1  3 -5 -4  1 -5 -5  2 -4 -1  0 -3  9
+ * R  -3 -2 -6 -3 -1 -5 -4  0 -5 -5  3 -4 -3 -1 -3  1  9
+ * S   2  0 -2 -1 -1 -4 -1 -2 -4 -4 -1 -4 -3  1 -2 -1 -2  7
+ * T   0 -1 -2 -2 -2 -4 -3 -3 -2 -3 -1 -3 -1  0 -3 -1 -2  2  8
+ * U  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2
+ * V  -1 -6 -2 -6 -4 -2 -6 -5  4  3 -4  1  1 -5 -4 -4 -4 -3  0 -2  7
+ * W  -5 -8 -5 -8 -6  0 -6 -4 -5 -5 -6 -4 -3 -7 -7 -4 -5 -6 -5 -5 -5 16
+ * Y  -4 -5 -5 -6 -5  4 -6  3 -3 -3 -4 -2 -3 -4 -6 -3 -4 -3 -3 -3 -3  3 11
+ * Z  -2  0 -7  1  6 -6 -4  0 -6 -6  1 -5 -3 -1 -2  5  0 -1 -2 -1 -4 -5 -4  6
+ * X  -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2
+ * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
  *
- *       A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   Y   Z   X   *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -516,33 +506,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecPam40> {
         // Lowest score = -15, Highest score = 13
         //
         static int const _data[TAB_SIZE] = {
-             6,  -3,  -6,  -3,  -2,  -7,  -1,  -6,  -4,  -5,  -6,  -5,  -4,  -3,  -3,  -1,  -3,  -6,   0,   0,  -3,  -2, -12,  -7,  -2,  -3, -15,
-            -3,   6, -11,   6,   2,  -9,  -2,  -1,  -5,  -7,  -2,  -8,  -8,   6,  -4,  -6,  -2,  -6,  -1,  -2,  -4,  -7,  -9,  -6,   1,  -4, -15,
-            -6, -11,   9, -12, -12, -11,  -8,  -7,  -5,  -9, -12, -13, -12,  -9,  -8,  -7, -12,  -7,  -2,  -7,  -8,  -5, -14,  -3, -12,  -8, -15,
-            -3,   6, -12,   7,   3, -13,  -3,  -3,  -6,  -9,  -4, -11,  -9,   2,  -5,  -7,  -2,  -9,  -3,  -4,  -5,  -7, -13, -10,   2,  -5, -15,
-            -2,   2, -12,   3,   7, -12,  -3,  -4,  -5,  -7,  -4,  -8,  -6,  -1,  -4,  -5,   2,  -8,  -4,  -5,  -4,  -6, -15,  -8,   6,  -4, -15,
-            -7,  -9, -11, -13, -12,   9,  -8,  -5,  -2,  -2, -12,  -2,  -3,  -8,  -7,  -9, -11,  -8,  -6,  -8,  -7,  -7,  -4,   2, -12,  -7, -15,
-            -1,  -2,  -8,  -3,  -3,  -8,   6,  -8,  -9,  -9,  -6,  -9,  -7,  -2,  -4,  -5,  -6,  -8,  -1,  -5,  -4,  -5, -13, -12,  -4,  -4, -15,
-            -6,  -1,  -7,  -3,  -4,  -5,  -8,   9,  -8,  -7,  -5,  -5,  -9,   1,  -4,  -3,   1,  -1,  -5,  -6,  -4,  -6,  -6,  -3,   0,  -4, -15,
-            -4,  -5,  -5,  -6,  -5,  -2,  -9,  -8,   8,   4,  -5,  -1,   0,  -4,  -4,  -7,  -7,  -5,  -6,  -2,  -4,   2, -12,  -5,  -5,  -4, -15,
-            -5,  -7,  -9,  -9,  -7,  -2,  -9,  -7,   4,   4,  -6,   3,   1,  -5,  -5,  -7,  -6,  -7,  -7,  -4,  -5,   0,  -9,  -6,  -6,  -5, -15,
-            -6,  -2, -12,  -4,  -4, -12,  -6,  -5,  -5,  -6,   6,  -7,  -1,   0,  -4,  -6,  -2,   1,  -3,  -2,  -4,  -8, -10,  -8,  -3,  -4, -15,
-            -5,  -8, -13, -11,  -8,  -2,  -9,  -5,  -1,   3,  -7,   7,   1,  -6,  -5,  -6,  -4,  -8,  -7,  -6,  -5,  -2,  -5,  -6,  -6,  -5, -15,
-            -4,  -8, -12,  -9,  -6,  -3,  -7,  -9,   0,   1,  -1,   1,  11,  -7,  -4,  -7,  -3,  -3,  -5,  -3,  -4,  -1, -11, -10,  -4,  -4, -15,
-            -3,   6,  -9,   2,  -1,  -8,  -2,   1,  -4,  -5,   0,  -6,  -7,   7,  -3,  -5,  -3,  -5,   0,  -1,  -3,  -7,  -7,  -4,  -2,  -3, -15,
-            -3,  -4,  -8,  -5,  -4,  -7,  -4,  -4,  -4,  -5,  -4,  -5,  -4,  -3,  -4,  -4,  -4,  -5,  -2,  -3,  -4,  -4,  -9,  -7,  -4,  -4, -15,
-            -1,  -6,  -7,  -7,  -5,  -9,  -5,  -3,  -7,  -7,  -6,  -6,  -7,  -5,  -4,   8,  -2,  -3,  -1,  -3,  -4,  -5, -12, -12,  -3,  -4, -15,
-            -3,  -2, -12,  -2,   2, -11,  -6,   1,  -7,  -6,  -2,  -4,  -3,  -3,  -4,  -2,   8,  -1,  -4,  -5,  -4,  -6, -11, -10,   6,  -4, -15,
-            -6,  -6,  -7,  -9,  -8,  -8,  -8,  -1,  -5,  -7,   1,  -8,  -3,  -5,  -5,  -3,  -1,   8,  -2,  -5,  -5,  -7,  -1,  -9,  -3,  -5, -15,
-             0,  -1,  -2,  -3,  -4,  -6,  -1,  -5,  -6,  -7,  -3,  -7,  -5,   0,  -2,  -1,  -4,  -2,   6,   1,  -2,  -5,  -4,  -6,  -4,  -2, -15,
-             0,  -2,  -7,  -4,  -5,  -8,  -5,  -6,  -2,  -4,  -2,  -6,  -3,  -1,  -3,  -3,  -5,  -5,   1,   7,  -3,  -2, -11,  -6,  -5,  -3, -15,
-            -3,  -4,  -8,  -5,  -4,  -7,  -4,  -4,  -4,  -5,  -4,  -5,  -4,  -3,  -4,  -4,  -4,  -5,  -2,  -3,  -4,  -4,  -9,  -7,  -4,  -4, -15,
-            -2,  -7,  -5,  -7,  -6,  -7,  -5,  -6,   2,   0,  -8,  -2,  -1,  -7,  -4,  -5,  -6,  -7,  -5,  -2,  -4,   7, -14,  -6,  -6,  -4, -15,
-           -12,  -9, -14, -13, -15,  -4, -13,  -6, -12,  -9, -10,  -5, -11,  -7,  -9, -12, -11,  -1,  -4, -11,  -9, -14,  13,  -4, -13,  -9, -15,
-            -7,  -6,  -3, -10,  -8,   2, -12,  -3,  -5,  -6,  -8,  -6, -10,  -4,  -7, -12, -10,  -9,  -6,  -6,  -7,  -6,  -4,  10,  -8,  -7, -15,
-            -2,   1, -12,   2,   6, -12,  -4,   0,  -5,  -6,  -3,  -6,  -4,  -2,  -4,  -3,   6,  -3,  -4,  -5,  -4,  -6, -13,  -8,   6,  -4, -15,
-            -3,  -4,  -8,  -5,  -4,  -7,  -4,  -4,  -4,  -5,  -4,  -5,  -4,  -3,  -4,  -4,  -4,  -5,  -2,  -3,  -4,  -4,  -9,  -7,  -4,  -4, -15,
-           -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,   1
+             6,  -3,  -6,  -3,  -2,  -7,  -1,  -6,  -4,  -5,  -6,  -5,  -4,  -3,  -1,  -3,  -6,   0,   0,  -3,  -2, -12,  -7,  -2,  -3, -15,
+            -3,   6, -11,   6,   2,  -9,  -2,  -1,  -5,  -7,  -2,  -8,  -8,   6,  -6,  -2,  -6,  -1,  -2,  -4,  -7,  -9,  -6,   1,  -4, -15,
+            -6, -11,   9, -12, -12, -11,  -8,  -7,  -5,  -9, -12, -13, -12,  -9,  -7, -12,  -7,  -2,  -7,  -8,  -5, -14,  -3, -12,  -8, -15,
+            -3,   6, -12,   7,   3, -13,  -3,  -3,  -6,  -9,  -4, -11,  -9,   2,  -7,  -2,  -9,  -3,  -4,  -5,  -7, -13, -10,   2,  -5, -15,
+            -2,   2, -12,   3,   7, -12,  -3,  -4,  -5,  -7,  -4,  -8,  -6,  -1,  -5,   2,  -8,  -4,  -5,  -4,  -6, -15,  -8,   6,  -4, -15,
+            -7,  -9, -11, -13, -12,   9,  -8,  -5,  -2,  -2, -12,  -2,  -3,  -8,  -9, -11,  -8,  -6,  -8,  -7,  -7,  -4,   2, -12,  -7, -15,
+            -1,  -2,  -8,  -3,  -3,  -8,   6,  -8,  -9,  -9,  -6,  -9,  -7,  -2,  -5,  -6,  -8,  -1,  -5,  -4,  -5, -13, -12,  -4,  -4, -15,
+            -6,  -1,  -7,  -3,  -4,  -5,  -8,   9,  -8,  -7,  -5,  -5,  -9,   1,  -3,   1,  -1,  -5,  -6,  -4,  -6,  -6,  -3,   0,  -4, -15,
+            -4,  -5,  -5,  -6,  -5,  -2,  -9,  -8,   8,   4,  -5,  -1,   0,  -4,  -7,  -7,  -5,  -6,  -2,  -4,   2, -12,  -5,  -5,  -4, -15,
+            -5,  -7,  -9,  -9,  -7,  -2,  -9,  -7,   4,   4,  -6,   3,   1,  -5,  -7,  -6,  -7,  -7,  -4,  -5,   0,  -9,  -6,  -6,  -5, -15,
+            -6,  -2, -12,  -4,  -4, -12,  -6,  -5,  -5,  -6,   6,  -7,  -1,   0,  -6,  -2,   1,  -3,  -2,  -4,  -8, -10,  -8,  -3,  -4, -15,
+            -5,  -8, -13, -11,  -8,  -2,  -9,  -5,  -1,   3,  -7,   7,   1,  -6,  -6,  -4,  -8,  -7,  -6,  -5,  -2,  -5,  -6,  -6,  -5, -15,
+            -4,  -8, -12,  -9,  -6,  -3,  -7,  -9,   0,   1,  -1,   1,  11,  -7,  -7,  -3,  -3,  -5,  -3,  -4,  -1, -11, -10,  -4,  -4, -15,
+            -3,   6,  -9,   2,  -1,  -8,  -2,   1,  -4,  -5,   0,  -6,  -7,   7,  -5,  -3,  -5,   0,  -1,  -3,  -7,  -7,  -4,  -2,  -3, -15,
+            -1,  -6,  -7,  -7,  -5,  -9,  -5,  -3,  -7,  -7,  -6,  -6,  -7,  -5,   8,  -2,  -3,  -1,  -3,  -4,  -5, -12, -12,  -3,  -4, -15,
+            -3,  -2, -12,  -2,   2, -11,  -6,   1,  -7,  -6,  -2,  -4,  -3,  -3,  -2,   8,  -1,  -4,  -5,  -4,  -6, -11, -10,   6,  -4, -15,
+            -6,  -6,  -7,  -9,  -8,  -8,  -8,  -1,  -5,  -7,   1,  -8,  -3,  -5,  -3,  -1,   8,  -2,  -5,  -5,  -7,  -1,  -9,  -3,  -5, -15,
+             0,  -1,  -2,  -3,  -4,  -6,  -1,  -5,  -6,  -7,  -3,  -7,  -5,   0,  -1,  -4,  -2,   6,   1,  -2,  -5,  -4,  -6,  -4,  -2, -15,
+             0,  -2,  -7,  -4,  -5,  -8,  -5,  -6,  -2,  -4,  -2,  -6,  -3,  -1,  -3,  -5,  -5,   1,   7,  -3,  -2, -11,  -6,  -5,  -3, -15,
+            -3,  -4,  -8,  -5,  -4,  -7,  -4,  -4,  -4,  -5,  -4,  -5,  -4,  -3,  -4,  -4,  -5,  -2,  -3,  -4,  -4,  -9,  -7,  -4,  -4, -15,
+            -2,  -7,  -5,  -7,  -6,  -7,  -5,  -6,   2,   0,  -8,  -2,  -1,  -7,  -5,  -6,  -7,  -5,  -2,  -4,   7, -14,  -6,  -6,  -4, -15,
+           -12,  -9, -14, -13, -15,  -4, -13,  -6, -12,  -9, -10,  -5, -11,  -7, -12, -11,  -1,  -4, -11,  -9, -14,  13,  -4, -13,  -9, -15,
+            -7,  -6,  -3, -10,  -8,   2, -12,  -3,  -5,  -6,  -8,  -6, -10,  -4, -12, -10,  -9,  -6,  -6,  -7,  -6,  -4,  10,  -8,  -7, -15,
+            -2,   1, -12,   2,   6, -12,  -4,   0,  -5,  -6,  -3,  -6,  -4,  -2,  -3,   6,  -3,  -4,  -5,  -4,  -6, -13,  -8,   6,  -4, -15,
+            -3,  -4,  -8,  -5,  -4,  -7,  -4,  -4,  -4,  -5,  -4,  -5,  -4,  -3,  -4,  -4,  -5,  -2,  -3,  -4,  -4,  -9,  -7,  -4,  -4, -15,
+           -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,   1
         };
         return _data;
     }
@@ -573,21 +562,20 @@ typedef Pam120_ ScoreSpecPam120;
  * L  -3 -4 -7 -5 -4  0 -5 -3  1  3 -4  5
  * M  -2 -4 -6 -4 -3 -1 -4 -4  1  2  0  3  8
  * N  -1  3 -5  2  1 -4  0  2 -2 -3  1 -4 -3  4
- * O  -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -1
- * P   1 -2 -4 -3 -2 -5 -2 -1 -3 -3 -2 -3 -3 -2 -2  6
- * Q  -1  0 -7  1  2 -6 -3  3 -3 -3  0 -2 -1  0 -1  0  6
- * R  -3 -2 -4 -3 -3 -5 -4  1 -2 -3  2 -4 -1 -1 -2 -1  1  6
- * S   1  0  0  0 -1 -3  1 -2 -2 -3 -1 -4 -2  1 -1  1 -2 -1  3
- * T   1  0 -3 -1 -2 -4 -1 -3  0 -2 -1 -3 -1  0 -1 -1 -2 -2  2  4
- * U  -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -2 -1 -2 -1 -1 -2
- * V   0 -3 -3 -3 -3 -3 -2 -3  3  2 -4  1  1 -3 -1 -2 -3 -3 -2  0 -1  5
- * W  -7 -6 -8 -8 -8 -1 -8 -3 -6 -5 -5 -3 -6 -4 -5 -7 -6  1 -2 -6 -5 -8 12
- * Y  -4 -3 -1 -5 -5  4 -6 -1 -2 -2 -5 -2 -4 -2 -3 -6 -5 -5 -3 -3 -3 -3 -2  8
- * Z  -1  2 -7  3  4 -6 -2  1 -3 -3 -1 -3 -2  0 -1 -1  4 -1 -1 -2 -1 -3 -7 -5  4
- * X  -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2
- * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+ * P   1 -2 -4 -3 -2 -5 -2 -1 -3 -3 -2 -3 -3 -2  6
+ * Q  -1  0 -7  1  2 -6 -3  3 -3 -3  0 -2 -1  0  0  6
+ * R  -3 -2 -4 -3 -3 -5 -4  1 -2 -3  2 -4 -1 -1 -1  1  6
+ * S   1  0  0  0 -1 -3  1 -2 -2 -3 -1 -4 -2  1  1 -2 -1  3
+ * T   1  0 -3 -1 -2 -4 -1 -3  0 -2 -1 -3 -1  0 -1 -2 -2  2  4
+ * U  -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -1 -2 -1 -1 -2
+ * V   0 -3 -3 -3 -3 -3 -2 -3  3  2 -4  1  1 -3 -2 -3 -3 -2  0 -1  5
+ * W  -7 -6 -8 -8 -8 -1 -8 -3 -6 -5 -5 -3 -6 -4 -7 -6  1 -2 -6 -5 -8 12
+ * Y  -4 -3 -1 -5 -5  4 -6 -1 -2 -2 -5 -2 -4 -2 -6 -5 -5 -3 -3 -3 -3 -2  8
+ * Z  -1  2 -7  3  4 -6 -2  1 -3 -3 -1 -3 -2  0 -1  4 -1 -1 -2 -1 -3 -7 -5  4
+ * X  -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2
+ * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -612,33 +600,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecPam120> {
         // Lowest score = -8, Highest score = 12
         //
         static int const _data[TAB_SIZE] = {
-             3,  0, -3,  0,  0, -4,  1, -3, -1, -2, -2, -3, -2, -1, -1,  1, -1, -3,  1,  1, -1,  0, -7, -4, -1, -1, -8,
-             0,  4, -6,  4,  3, -5,  0,  1, -3, -4,  0, -4, -4,  3, -1, -2,  0, -2,  0,  0, -1, -3, -6, -3,  2, -1, -8,
-            -3, -6,  9, -7, -7, -6, -4, -4, -3, -5, -7, -7, -6, -5, -4, -4, -7, -4,  0, -3, -4, -3, -8, -1, -7, -4, -8,
-             0,  4, -7,  5,  3, -7,  0,  0, -3, -4, -1, -5, -4,  2, -2, -3,  1, -3,  0, -1, -2, -3, -8, -5,  3, -2, -8,
-             0,  3, -7,  3,  5, -7, -1, -1, -3, -4, -1, -4, -3,  1, -1, -2,  2, -3, -1, -2, -1, -3, -8, -5,  4, -1, -8,
-            -4, -5, -6, -7, -7,  8, -5, -3,  0,  0, -7,  0, -1, -4, -3, -5, -6, -5, -3, -4, -3, -3, -1,  4, -6, -3, -8,
-             1,  0, -4,  0, -1, -5,  5, -4, -4, -5, -3, -5, -4,  0, -2, -2, -3, -4,  1, -1, -2, -2, -8, -6, -2, -2, -8,
-            -3,  1, -4,  0, -1, -3, -4,  7, -4, -4, -2, -3, -4,  2, -2, -1,  3,  1, -2, -3, -2, -3, -3, -1,  1, -2, -8,
-            -1, -3, -3, -3, -3,  0, -4, -4,  6,  4, -3,  1,  1, -2, -1, -3, -3, -2, -2,  0, -1,  3, -6, -2, -3, -1, -8,
-            -2, -4, -5, -4, -4,  0, -5, -4,  4,  4, -4,  3,  2, -3, -2, -3, -3, -3, -3, -2, -2,  2, -5, -2, -3, -2, -8,
-            -2,  0, -7, -1, -1, -7, -3, -2, -3, -4,  5, -4,  0,  1, -2, -2,  0,  2, -1, -1, -2, -4, -5, -5, -1, -2, -8,
-            -3, -4, -7, -5, -4,  0, -5, -3,  1,  3, -4,  5,  3, -4, -2, -3, -2, -4, -4, -3, -2,  1, -3, -2, -3, -2, -8,
-            -2, -4, -6, -4, -3, -1, -4, -4,  1,  2,  0,  3,  8, -3, -2, -3, -1, -1, -2, -1, -2,  1, -6, -4, -2, -2, -8,
-            -1,  3, -5,  2,  1, -4,  0,  2, -2, -3,  1, -4, -3,  4, -1, -2,  0, -1,  1,  0, -1, -3, -4, -2,  0, -1, -8,
-            -1, -1, -4, -2, -1, -3, -2, -2, -1, -2, -2, -2, -2, -1, -2, -2, -1, -2, -1, -1, -2, -1, -5, -3, -1, -2, -8,
-             1, -2, -4, -3, -2, -5, -2, -1, -3, -3, -2, -3, -3, -2, -2,  6,  0, -1,  1, -1, -2, -2, -7, -6, -1, -2, -8,
-            -1,  0, -7,  1,  2, -6, -3,  3, -3, -3,  0, -2, -1,  0, -1,  0,  6,  1, -2, -2, -1, -3, -6, -5,  4, -1, -8,
-            -3, -2, -4, -3, -3, -5, -4,  1, -2, -3,  2, -4, -1, -1, -2, -1,  1,  6, -1, -2, -2, -3,  1, -5, -1, -2, -8,
-             1,  0,  0,  0, -1, -3,  1, -2, -2, -3, -1, -4, -2,  1, -1,  1, -2, -1,  3,  2, -1, -2, -2, -3, -1, -1, -8,
-             1,  0, -3, -1, -2, -4, -1, -3,  0, -2, -1, -3, -1,  0, -1, -1, -2, -2,  2,  4, -1,  0, -6, -3, -2, -1, -8,
-            -1, -1, -4, -2, -1, -3, -2, -2, -1, -2, -2, -2, -2, -1, -2, -2, -1, -2, -1, -1, -2, -1, -5, -3, -1, -2, -8,
-             0, -3, -3, -3, -3, -3, -2, -3,  3,  2, -4,  1,  1, -3, -1, -2, -3, -3, -2,  0, -1,  5, -8, -3, -3, -1, -8,
-            -7, -6, -8, -8, -8, -1, -8, -3, -6, -5, -5, -3, -6, -4, -5, -7, -6,  1, -2, -6, -5, -8, 12, -2, -7, -5, -8,
-            -4, -3, -1, -5, -5,  4, -6, -1, -2, -2, -5, -2, -4, -2, -3, -6, -5, -5, -3, -3, -3, -3, -2,  8, -5, -3, -8,
-            -1,  2, -7,  3,  4, -6, -2,  1, -3, -3, -1, -3, -2,  0, -1, -1,  4, -1, -1, -2, -1, -3, -7, -5,  4, -1, -8,
-            -1, -1, -4, -2, -1, -3, -2, -2, -1, -2, -2, -2, -2, -1, -2, -2, -1, -2, -1, -1, -2, -1, -5, -3, -1, -2, -8,
-            -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,  1
+             3,  0, -3,  0,  0, -4,  1, -3, -1, -2, -2, -3, -2, -1,  1, -1, -3,  1,  1, -1,  0, -7, -4, -1, -1, -8,
+             0,  4, -6,  4,  3, -5,  0,  1, -3, -4,  0, -4, -4,  3, -2,  0, -2,  0,  0, -1, -3, -6, -3,  2, -1, -8,
+            -3, -6,  9, -7, -7, -6, -4, -4, -3, -5, -7, -7, -6, -5, -4, -7, -4,  0, -3, -4, -3, -8, -1, -7, -4, -8,
+             0,  4, -7,  5,  3, -7,  0,  0, -3, -4, -1, -5, -4,  2, -3,  1, -3,  0, -1, -2, -3, -8, -5,  3, -2, -8,
+             0,  3, -7,  3,  5, -7, -1, -1, -3, -4, -1, -4, -3,  1, -2,  2, -3, -1, -2, -1, -3, -8, -5,  4, -1, -8,
+            -4, -5, -6, -7, -7,  8, -5, -3,  0,  0, -7,  0, -1, -4, -5, -6, -5, -3, -4, -3, -3, -1,  4, -6, -3, -8,
+             1,  0, -4,  0, -1, -5,  5, -4, -4, -5, -3, -5, -4,  0, -2, -3, -4,  1, -1, -2, -2, -8, -6, -2, -2, -8,
+            -3,  1, -4,  0, -1, -3, -4,  7, -4, -4, -2, -3, -4,  2, -1,  3,  1, -2, -3, -2, -3, -3, -1,  1, -2, -8,
+            -1, -3, -3, -3, -3,  0, -4, -4,  6,  4, -3,  1,  1, -2, -3, -3, -2, -2,  0, -1,  3, -6, -2, -3, -1, -8,
+            -2, -4, -5, -4, -4,  0, -5, -4,  4,  4, -4,  3,  2, -3, -3, -3, -3, -3, -2, -2,  2, -5, -2, -3, -2, -8,
+            -2,  0, -7, -1, -1, -7, -3, -2, -3, -4,  5, -4,  0,  1, -2,  0,  2, -1, -1, -2, -4, -5, -5, -1, -2, -8,
+            -3, -4, -7, -5, -4,  0, -5, -3,  1,  3, -4,  5,  3, -4, -3, -2, -4, -4, -3, -2,  1, -3, -2, -3, -2, -8,
+            -2, -4, -6, -4, -3, -1, -4, -4,  1,  2,  0,  3,  8, -3, -3, -1, -1, -2, -1, -2,  1, -6, -4, -2, -2, -8,
+            -1,  3, -5,  2,  1, -4,  0,  2, -2, -3,  1, -4, -3,  4, -2,  0, -1,  1,  0, -1, -3, -4, -2,  0, -1, -8,
+             1, -2, -4, -3, -2, -5, -2, -1, -3, -3, -2, -3, -3, -2,  6,  0, -1,  1, -1, -2, -2, -7, -6, -1, -2, -8,
+            -1,  0, -7,  1,  2, -6, -3,  3, -3, -3,  0, -2, -1,  0,  0,  6,  1, -2, -2, -1, -3, -6, -5,  4, -1, -8,
+            -3, -2, -4, -3, -3, -5, -4,  1, -2, -3,  2, -4, -1, -1, -1,  1,  6, -1, -2, -2, -3,  1, -5, -1, -2, -8,
+             1,  0,  0,  0, -1, -3,  1, -2, -2, -3, -1, -4, -2,  1,  1, -2, -1,  3,  2, -1, -2, -2, -3, -1, -1, -8,
+             1,  0, -3, -1, -2, -4, -1, -3,  0, -2, -1, -3, -1,  0, -1, -2, -2,  2,  4, -1,  0, -6, -3, -2, -1, -8,
+            -1, -1, -4, -2, -1, -3, -2, -2, -1, -2, -2, -2, -2, -1, -2, -1, -2, -1, -1, -2, -1, -5, -3, -1, -2, -8,
+             0, -3, -3, -3, -3, -3, -2, -3,  3,  2, -4,  1,  1, -3, -2, -3, -3, -2,  0, -1,  5, -8, -3, -3, -1, -8,
+            -7, -6, -8, -8, -8, -1, -8, -3, -6, -5, -5, -3, -6, -4, -7, -6,  1, -2, -6, -5, -8, 12, -2, -7, -5, -8,
+            -4, -3, -1, -5, -5,  4, -6, -1, -2, -2, -5, -2, -4, -2, -6, -5, -5, -3, -3, -3, -3, -2,  8, -5, -3, -8,
+            -1,  2, -7,  3,  4, -6, -2,  1, -3, -3, -1, -3, -2,  0, -1,  4, -1, -1, -2, -1, -3, -7, -5,  4, -1, -8,
+            -1, -1, -4, -2, -1, -3, -2, -2, -1, -2, -2, -2, -2, -1, -2, -1, -2, -1, -1, -2, -1, -5, -3, -1, -2, -8,
+            -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,  1
         };
         return _data;
     }
@@ -669,21 +656,20 @@ typedef Pam200_ ScoreSpecPam200;
  * L  -2 -4 -7 -5 -4  2 -5 -3  2  5 -4  7
  * M  -2 -3 -6 -4 -3  0 -4 -3  2  3  1  4  8
  * N   0  3 -5  3  2 -4  0  2 -2 -3  1 -4 -2  3
- * O   0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1
- * P   1 -1 -4 -2 -1 -6 -1 -1 -3 -3 -2 -3 -3 -1 -1  7
- * Q  -1  1 -7  2  3 -6 -2  3 -3 -3  1 -2 -1  1 -1  0  5
- * R  -2 -1 -4 -2 -2 -5 -4  2 -2 -3  4 -4 -1  0 -1  0  1  7
- * S   1  1  0  0  0 -4  1 -1 -2 -3  0 -4 -2  1  0  1 -1 -1  2
- * T   1  0 -3  0 -1 -4  0 -2  0 -1  0 -2 -1  0  0  0 -1 -1  2  4
- * U   0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1 -1  0  0 -1
- * V   0 -3 -2 -3 -2 -2 -2 -3  4  3 -3  2  2 -2 -1 -2 -3 -3 -1  0 -1  5
- * W  -7 -6 -9 -8 -9  0 -8 -3 -6 -4 -4 -2 -5 -5 -5 -7 -6  2 -3 -6 -5 -8 18
- * Y  -4 -4  0 -5 -5  7 -6  0 -2 -2 -5 -2 -3 -2 -3 -6 -5 -5 -3 -3 -3 -3 -1 11
- * Z   0  2 -7  3  4 -6 -1  2 -3 -3  0 -3 -2  1 -1 -1  4  0 -1 -1 -1 -2 -7 -5  4
- * X   0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1
- * *  -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
+ * P   1 -1 -4 -2 -1 -6 -1 -1 -3 -3 -2 -3 -3 -1  7
+ * Q  -1  1 -7  2  3 -6 -2  3 -3 -3  1 -2 -1  1  0  5
+ * R  -2 -1 -4 -2 -2 -5 -4  2 -2 -3  4 -4 -1  0  0  1  7
+ * S   1  1  0  0  0 -4  1 -1 -2 -3  0 -4 -2  1  1 -1 -1  2
+ * T   1  0 -3  0 -1 -4  0 -2  0 -1  0 -2 -1  0  0 -1 -1  2  4
+ * U   0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1  0  0 -1
+ * V   0 -3 -2 -3 -2 -2 -2 -3  4  3 -3  2  2 -2 -2 -3 -3 -1  0 -1  5
+ * W  -7 -6 -9 -8 -9  0 -8 -3 -6 -4 -4 -2 -5 -5 -7 -6  2 -3 -6 -5 -8 18
+ * Y  -4 -4  0 -5 -5  7 -6  0 -2 -2 -5 -2 -3 -2 -6 -5 -5 -3 -3 -3 -3 -1 11
+ * Z   0  2 -7  3  4 -6 -1  2 -3 -3  0 -3 -2  1 -1  4  0 -1 -1 -1 -2 -7 -5  4
+ * X   0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1
+ * *  -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -708,33 +694,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecPam200> {
         // Lowest score = -9, Highest score = 18
         //
         static int const _data[TAB_SIZE] = {
-             3,  0, -3,  0,  0, -4,  1, -2, -1, -2, -2, -2, -2,  0,  0,  1, -1, -2,  1,  1,  0,  0, -7, -4,  0,  0, -9,
-             0,  3, -5,  4,  3, -6,  0,  1, -3, -4,  0, -4, -3,  3, -1, -1,  1, -1,  1,  0, -1, -3, -6, -4,  2, -1, -9,
-            -3, -5, 12, -6, -7, -6, -4, -4, -3, -5, -7, -7, -6, -5, -4, -4, -7, -4,  0, -3, -4, -2, -9,  0, -7, -4, -9,
-             0,  4, -6,  5,  4, -7,  0,  0, -3, -4,  0, -5, -4,  3, -1, -2,  2, -2,  0,  0, -1, -3, -8, -5,  3, -1, -9,
-             0,  3, -7,  4,  5, -7,  0,  0, -3, -4,  0, -4, -3,  2, -1, -1,  3, -2,  0, -1, -1, -2, -9, -5,  4, -1, -9,
-            -4, -6, -6, -7, -7, 10, -6, -2,  1,  2, -7,  2,  0, -4, -3, -6, -6, -5, -4, -4, -3, -2,  0,  7, -6, -3, -9,
-             1,  0, -4,  0,  0, -6,  6, -3, -3, -4, -2, -5, -4,  0, -1, -1, -2, -4,  1,  0, -1, -2, -8, -6, -1, -1, -9,
-            -2,  1, -4,  0,  0, -2, -3,  8, -3, -3, -1, -3, -3,  2, -1, -1,  3,  2, -1, -2, -1, -3, -3,  0,  2, -1, -9,
-            -1, -3, -3, -3, -3,  1, -3, -3,  6,  4, -2,  2,  2, -2, -1, -3, -3, -2, -2,  0, -1,  4, -6, -2, -3, -1, -9,
-            -2, -4, -5, -4, -4,  2, -4, -3,  4,  5, -3,  5,  3, -3, -2, -3, -3, -3, -3, -1, -2,  3, -4, -2, -3, -2, -9,
-            -2,  0, -7,  0,  0, -7, -2, -1, -2, -3,  6, -4,  1,  1, -1, -2,  1,  4,  0,  0, -1, -3, -4, -5,  0, -1, -9,
-            -2, -4, -7, -5, -4,  2, -5, -3,  2,  5, -4,  7,  4, -4, -2, -3, -2, -4, -4, -2, -2,  2, -2, -2, -3, -2, -9,
-            -2, -3, -6, -4, -3,  0, -4, -3,  2,  3,  1,  4,  8, -2, -1, -3, -1, -1, -2, -1, -1,  2, -5, -3, -2, -1, -9,
-             0,  3, -5,  3,  2, -4,  0,  2, -2, -3,  1, -4, -2,  3,  0, -1,  1,  0,  1,  0,  0, -2, -5, -2,  1,  0, -9,
-             0, -1, -4, -1, -1, -3, -1, -1, -1, -2, -1, -2, -1,  0, -1, -1, -1, -1,  0,  0, -1, -1, -5, -3, -1, -1, -9,
-             1, -1, -4, -2, -1, -6, -1, -1, -3, -3, -2, -3, -3, -1, -1,  7,  0,  0,  1,  0, -1, -2, -7, -6, -1, -1, -9,
-            -1,  1, -7,  2,  3, -6, -2,  3, -3, -3,  1, -2, -1,  1, -1,  0,  5,  1, -1, -1, -1, -3, -6, -5,  4, -1, -9,
-            -2, -1, -4, -2, -2, -5, -4,  2, -2, -3,  4, -4, -1,  0, -1,  0,  1,  7, -1, -1, -1, -3,  2, -5,  0, -1, -9,
-             1,  1,  0,  0,  0, -4,  1, -1, -2, -3,  0, -4, -2,  1,  0,  1, -1, -1,  2,  2,  0, -1, -3, -3, -1,  0, -9,
-             1,  0, -3,  0, -1, -4,  0, -2,  0, -1,  0, -2, -1,  0,  0,  0, -1, -1,  2,  4,  0,  0, -6, -3, -1,  0, -9,
-             0, -1, -4, -1, -1, -3, -1, -1, -1, -2, -1, -2, -1,  0, -1, -1, -1, -1,  0,  0, -1, -1, -5, -3, -1, -1, -9,
-             0, -3, -2, -3, -2, -2, -2, -3,  4,  3, -3,  2,  2, -2, -1, -2, -3, -3, -1,  0, -1,  5, -8, -3, -2, -1, -9,
-            -7, -6, -9, -8, -9,  0, -8, -3, -6, -4, -4, -2, -5, -5, -5, -7, -6,  2, -3, -6, -5, -8, 18, -1, -7, -5, -9,
-            -4, -4,  0, -5, -5,  7, -6,  0, -2, -2, -5, -2, -3, -2, -3, -6, -5, -5, -3, -3, -3, -3, -1, 11, -5, -3, -9,
-             0,  2, -7,  3,  4, -6, -1,  2, -3, -3,  0, -3, -2,  1, -1, -1,  4,  0, -1, -1, -1, -2, -7, -5,  4, -1, -9,
-             0, -1, -4, -1, -1, -3, -1, -1, -1, -2, -1, -2, -1,  0, -1, -1, -1, -1,  0,  0, -1, -1, -5, -3, -1, -1, -9,
-            -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,  1
+             3,  0, -3,  0,  0, -4,  1, -2, -1, -2, -2, -2, -2,  0,  1, -1, -2,  1,  1,  0,  0, -7, -4,  0,  0, -9,
+             0,  3, -5,  4,  3, -6,  0,  1, -3, -4,  0, -4, -3,  3, -1,  1, -1,  1,  0, -1, -3, -6, -4,  2, -1, -9,
+            -3, -5, 12, -6, -7, -6, -4, -4, -3, -5, -7, -7, -6, -5, -4, -7, -4,  0, -3, -4, -2, -9,  0, -7, -4, -9,
+             0,  4, -6,  5,  4, -7,  0,  0, -3, -4,  0, -5, -4,  3, -2,  2, -2,  0,  0, -1, -3, -8, -5,  3, -1, -9,
+             0,  3, -7,  4,  5, -7,  0,  0, -3, -4,  0, -4, -3,  2, -1,  3, -2,  0, -1, -1, -2, -9, -5,  4, -1, -9,
+            -4, -6, -6, -7, -7, 10, -6, -2,  1,  2, -7,  2,  0, -4, -6, -6, -5, -4, -4, -3, -2,  0,  7, -6, -3, -9,
+             1,  0, -4,  0,  0, -6,  6, -3, -3, -4, -2, -5, -4,  0, -1, -2, -4,  1,  0, -1, -2, -8, -6, -1, -1, -9,
+            -2,  1, -4,  0,  0, -2, -3,  8, -3, -3, -1, -3, -3,  2, -1,  3,  2, -1, -2, -1, -3, -3,  0,  2, -1, -9,
+            -1, -3, -3, -3, -3,  1, -3, -3,  6,  4, -2,  2,  2, -2, -3, -3, -2, -2,  0, -1,  4, -6, -2, -3, -1, -9,
+            -2, -4, -5, -4, -4,  2, -4, -3,  4,  5, -3,  5,  3, -3, -3, -3, -3, -3, -1, -2,  3, -4, -2, -3, -2, -9,
+            -2,  0, -7,  0,  0, -7, -2, -1, -2, -3,  6, -4,  1,  1, -2,  1,  4,  0,  0, -1, -3, -4, -5,  0, -1, -9,
+            -2, -4, -7, -5, -4,  2, -5, -3,  2,  5, -4,  7,  4, -4, -3, -2, -4, -4, -2, -2,  2, -2, -2, -3, -2, -9,
+            -2, -3, -6, -4, -3,  0, -4, -3,  2,  3,  1,  4,  8, -2, -3, -1, -1, -2, -1, -1,  2, -5, -3, -2, -1, -9,
+             0,  3, -5,  3,  2, -4,  0,  2, -2, -3,  1, -4, -2,  3, -1,  1,  0,  1,  0,  0, -2, -5, -2,  1,  0, -9,
+             1, -1, -4, -2, -1, -6, -1, -1, -3, -3, -2, -3, -3, -1,  7,  0,  0,  1,  0, -1, -2, -7, -6, -1, -1, -9,
+            -1,  1, -7,  2,  3, -6, -2,  3, -3, -3,  1, -2, -1,  1,  0,  5,  1, -1, -1, -1, -3, -6, -5,  4, -1, -9,
+            -2, -1, -4, -2, -2, -5, -4,  2, -2, -3,  4, -4, -1,  0,  0,  1,  7, -1, -1, -1, -3,  2, -5,  0, -1, -9,
+             1,  1,  0,  0,  0, -4,  1, -1, -2, -3,  0, -4, -2,  1,  1, -1, -1,  2,  2,  0, -1, -3, -3, -1,  0, -9,
+             1,  0, -3,  0, -1, -4,  0, -2,  0, -1,  0, -2, -1,  0,  0, -1, -1,  2,  4,  0,  0, -6, -3, -1,  0, -9,
+             0, -1, -4, -1, -1, -3, -1, -1, -1, -2, -1, -2, -1,  0, -1, -1, -1,  0,  0, -1, -1, -5, -3, -1, -1, -9,
+             0, -3, -2, -3, -2, -2, -2, -3,  4,  3, -3,  2,  2, -2, -2, -3, -3, -1,  0, -1,  5, -8, -3, -2, -1, -9,
+            -7, -6, -9, -8, -9,  0, -8, -3, -6, -4, -4, -2, -5, -5, -7, -6,  2, -3, -6, -5, -8, 18, -1, -7, -5, -9,
+            -4, -4,  0, -5, -5,  7, -6,  0, -2, -2, -5, -2, -3, -2, -6, -5, -5, -3, -3, -3, -3, -1, 11, -5, -3, -9,
+             0,  2, -7,  3,  4, -6, -1,  2, -3, -3,  0, -3, -2,  1, -1,  4,  0, -1, -1, -1, -2, -7, -5,  4, -1, -9,
+             0, -1, -4, -1, -1, -3, -1, -1, -1, -2, -1, -2, -1,  0, -1, -1, -1,  0,  0, -1, -1, -5, -3, -1, -1, -9,
+            -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,  1
         };
         return _data;
     }
@@ -765,21 +750,20 @@ typedef Pam250_ ScoreSpecPam250;
  * L  -2 -3 -6 -4 -3  2 -4 -2  2  4 -3  6
  * M  -1 -2 -5 -3 -2  0 -3 -2  2  3  0  4  6
  * N   0  2 -4  2  1 -3  0  2 -2 -3  1 -3 -2  2
- * O   0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1
- * P   1 -1 -3 -1 -1 -5  0  0 -2 -3 -1 -3 -2  0 -1  6
- * Q   0  1 -5  2  2 -5 -1  3 -2 -2  1 -2 -1  1 -1  0  4
- * R  -2 -1 -4 -1 -1 -4 -3  2 -2 -3  3 -3  0  0 -1  0  1  6
- * S   1  0  0  0  0 -3  1 -1 -1 -2  0 -3 -2  1  0  1 -1  0  2
- * T   1  0 -2  0  0 -3  0 -1  0 -1  0 -2 -1  0  0  0 -1 -1  1  3
- * U   0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1 -1  0  0 -1
- * V   0 -2 -2 -2 -2 -1 -1 -2  4  3 -2  2  2 -2 -1 -1 -2 -2 -1  0 -1  4
- * W  -6 -5 -8 -7 -7  0 -7 -3 -5 -4 -3 -2 -4 -4 -4 -6 -5  2 -2 -5 -4 -6 17
- * Y  -3 -3  0 -4 -4  7 -5  0 -1 -1 -4 -1 -2 -2 -2 -5 -4 -4 -3 -3 -2 -2  0 10
- * Z   0  2 -5  3  3 -5  0  2 -2 -3  0 -3 -2  1 -1  0  3  0  0 -1 -1 -2 -6 -4  3
- * X   0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1
- * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+ * P   1 -1 -3 -1 -1 -5  0  0 -2 -3 -1 -3 -2  0  6
+ * Q   0  1 -5  2  2 -5 -1  3 -2 -2  1 -2 -1  1  0  4
+ * R  -2 -1 -4 -1 -1 -4 -3  2 -2 -3  3 -3  0  0  0  1  6
+ * S   1  0  0  0  0 -3  1 -1 -1 -2  0 -3 -2  1  1 -1  0  2
+ * T   1  0 -2  0  0 -3  0 -1  0 -1  0 -2 -1  0  0 -1 -1  1  3
+ * U   0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1  0  0 -1
+ * V   0 -2 -2 -2 -2 -1 -1 -2  4  3 -2  2  2 -2 -1 -2 -2 -1  0 -1  4
+ * W  -6 -5 -8 -7 -7  0 -7 -3 -5 -4 -3 -2 -4 -4 -6 -5  2 -2 -5 -4 -6 17
+ * Y  -3 -3  0 -4 -4  7 -5  0 -1 -1 -4 -1 -2 -2 -5 -4 -4 -3 -3 -2 -2  0 10
+ * Z   0  2 -5  3  3 -5  0  2 -2 -3  0 -3 -2  1  0  3  0  0 -1 -1 -2 -6 -4  3
+ * X   0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1
+ * *  -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -804,33 +788,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecPam250> {
         // Lowest score = -8, Highest score = 17
         //
         static int const _data[TAB_SIZE] = {
-             2,  0, -2,  0,  0, -3,  1, -1, -1, -2, -1, -2, -1,  0,  0,  1,  0, -2,  1,  1,  0,  0, -6, -3,  0,  0, -8,
-             0,  3, -4,  3,  3, -4,  0,  1, -2, -3,  1, -3, -2,  2, -1, -1,  1, -1,  0,  0, -1, -2, -5, -3,  2, -1, -8,
-            -2, -4, 12, -5, -5, -4, -3, -3, -2, -4, -5, -6, -5, -4, -3, -3, -5, -4,  0, -2, -3, -2, -8,  0, -5, -3, -8,
-             0,  3, -5,  4,  3, -6,  1,  1, -2, -3,  0, -4, -3,  2, -1, -1,  2, -1,  0,  0, -1, -2, -7, -4,  3, -1, -8,
-             0,  3, -5,  3,  4, -5,  0,  1, -2, -3,  0, -3, -2,  1, -1, -1,  2, -1,  0,  0, -1, -2, -7, -4,  3, -1, -8,
-            -3, -4, -4, -6, -5,  9, -5, -2,  1,  2, -5,  2,  0, -3, -2, -5, -5, -4, -3, -3, -2, -1,  0,  7, -5, -2, -8,
-             1,  0, -3,  1,  0, -5,  5, -2, -3, -4, -2, -4, -3,  0, -1,  0, -1, -3,  1,  0, -1, -1, -7, -5,  0, -1, -8,
-            -1,  1, -3,  1,  1, -2, -2,  6, -2, -2,  0, -2, -2,  2, -1,  0,  3,  2, -1, -1, -1, -2, -3,  0,  2, -1, -8,
-            -1, -2, -2, -2, -2,  1, -3, -2,  5,  4, -2,  2,  2, -2, -1, -2, -2, -2, -1,  0, -1,  4, -5, -1, -2, -1, -8,
-            -2, -3, -4, -3, -3,  2, -4, -2,  4,  4, -3,  4,  3, -3, -1, -3, -2, -3, -2, -1, -1,  3, -4, -1, -3, -1, -8,
-            -1,  1, -5,  0,  0, -5, -2,  0, -2, -3,  5, -3,  0,  1, -1, -1,  1,  3,  0,  0, -1, -2, -3, -4,  0, -1, -8,
-            -2, -3, -6, -4, -3,  2, -4, -2,  2,  4, -3,  6,  4, -3, -1, -3, -2, -3, -3, -2, -1,  2, -2, -1, -3, -1, -8,
-            -1, -2, -5, -3, -2,  0, -3, -2,  2,  3,  0,  4,  6, -2, -1, -2, -1,  0, -2, -1, -1,  2, -4, -2, -2, -1, -8,
-             0,  2, -4,  2,  1, -3,  0,  2, -2, -3,  1, -3, -2,  2,  0,  0,  1,  0,  1,  0,  0, -2, -4, -2,  1,  0, -8,
-             0, -1, -3, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1, -1,  0,  0, -1, -1, -4, -2, -1, -1, -8,
-             1, -1, -3, -1, -1, -5,  0,  0, -2, -3, -1, -3, -2,  0, -1,  6,  0,  0,  1,  0, -1, -1, -6, -5,  0, -1, -8,
-             0,  1, -5,  2,  2, -5, -1,  3, -2, -2,  1, -2, -1,  1, -1,  0,  4,  1, -1, -1, -1, -2, -5, -4,  3, -1, -8,
-            -2, -1, -4, -1, -1, -4, -3,  2, -2, -3,  3, -3,  0,  0, -1,  0,  1,  6,  0, -1, -1, -2,  2, -4,  0, -1, -8,
-             1,  0,  0,  0,  0, -3,  1, -1, -1, -2,  0, -3, -2,  1,  0,  1, -1,  0,  2,  1,  0, -1, -2, -3,  0,  0, -8,
-             1,  0, -2,  0,  0, -3,  0, -1,  0, -1,  0, -2, -1,  0,  0,  0, -1, -1,  1,  3,  0,  0, -5, -3, -1,  0, -8,
-             0, -1, -3, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1, -1,  0,  0, -1, -1, -4, -2, -1, -1, -8,
-             0, -2, -2, -2, -2, -1, -1, -2,  4,  3, -2,  2,  2, -2, -1, -1, -2, -2, -1,  0, -1,  4, -6, -2, -2, -1, -8,
-            -6, -5, -8, -7, -7,  0, -7, -3, -5, -4, -3, -2, -4, -4, -4, -6, -5,  2, -2, -5, -4, -6, 17,  0, -6, -4, -8,
-            -3, -3,  0, -4, -4,  7, -5,  0, -1, -1, -4, -1, -2, -2, -2, -5, -4, -4, -3, -3, -2, -2,  0, 10, -4, -2, -8,
-             0,  2, -5,  3,  3, -5,  0,  2, -2, -3,  0, -3, -2,  1, -1,  0,  3,  0,  0, -1, -1, -2, -6, -4,  3, -1, -8,
-             0, -1, -3, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1, -1,  0,  0, -1, -1, -4, -2, -1, -1, -8,
-            -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,  1,
+             2,  0, -2,  0,  0, -3,  1, -1, -1, -2, -1, -2, -1,  0,  1,  0, -2,  1,  1,  0,  0, -6, -3,  0,  0, -8,
+             0,  3, -4,  3,  3, -4,  0,  1, -2, -3,  1, -3, -2,  2, -1,  1, -1,  0,  0, -1, -2, -5, -3,  2, -1, -8,
+            -2, -4, 12, -5, -5, -4, -3, -3, -2, -4, -5, -6, -5, -4, -3, -5, -4,  0, -2, -3, -2, -8,  0, -5, -3, -8,
+             0,  3, -5,  4,  3, -6,  1,  1, -2, -3,  0, -4, -3,  2, -1,  2, -1,  0,  0, -1, -2, -7, -4,  3, -1, -8,
+             0,  3, -5,  3,  4, -5,  0,  1, -2, -3,  0, -3, -2,  1, -1,  2, -1,  0,  0, -1, -2, -7, -4,  3, -1, -8,
+            -3, -4, -4, -6, -5,  9, -5, -2,  1,  2, -5,  2,  0, -3, -5, -5, -4, -3, -3, -2, -1,  0,  7, -5, -2, -8,
+             1,  0, -3,  1,  0, -5,  5, -2, -3, -4, -2, -4, -3,  0,  0, -1, -3,  1,  0, -1, -1, -7, -5,  0, -1, -8,
+            -1,  1, -3,  1,  1, -2, -2,  6, -2, -2,  0, -2, -2,  2,  0,  3,  2, -1, -1, -1, -2, -3,  0,  2, -1, -8,
+            -1, -2, -2, -2, -2,  1, -3, -2,  5,  4, -2,  2,  2, -2, -2, -2, -2, -1,  0, -1,  4, -5, -1, -2, -1, -8,
+            -2, -3, -4, -3, -3,  2, -4, -2,  4,  4, -3,  4,  3, -3, -3, -2, -3, -2, -1, -1,  3, -4, -1, -3, -1, -8,
+            -1,  1, -5,  0,  0, -5, -2,  0, -2, -3,  5, -3,  0,  1, -1,  1,  3,  0,  0, -1, -2, -3, -4,  0, -1, -8,
+            -2, -3, -6, -4, -3,  2, -4, -2,  2,  4, -3,  6,  4, -3, -3, -2, -3, -3, -2, -1,  2, -2, -1, -3, -1, -8,
+            -1, -2, -5, -3, -2,  0, -3, -2,  2,  3,  0,  4,  6, -2, -2, -1,  0, -2, -1, -1,  2, -4, -2, -2, -1, -8,
+             0,  2, -4,  2,  1, -3,  0,  2, -2, -3,  1, -3, -2,  2,  0,  1,  0,  1,  0,  0, -2, -4, -2,  1,  0, -8,
+             1, -1, -3, -1, -1, -5,  0,  0, -2, -3, -1, -3, -2,  0,  6,  0,  0,  1,  0, -1, -1, -6, -5,  0, -1, -8,
+             0,  1, -5,  2,  2, -5, -1,  3, -2, -2,  1, -2, -1,  1,  0,  4,  1, -1, -1, -1, -2, -5, -4,  3, -1, -8,
+            -2, -1, -4, -1, -1, -4, -3,  2, -2, -3,  3, -3,  0,  0,  0,  1,  6,  0, -1, -1, -2,  2, -4,  0, -1, -8,
+             1,  0,  0,  0,  0, -3,  1, -1, -1, -2,  0, -3, -2,  1,  1, -1,  0,  2,  1,  0, -1, -2, -3,  0,  0, -8,
+             1,  0, -2,  0,  0, -3,  0, -1,  0, -1,  0, -2, -1,  0,  0, -1, -1,  1,  3,  0,  0, -5, -3, -1,  0, -8,
+             0, -1, -3, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1,  0,  0, -1, -1, -4, -2, -1, -1, -8,
+             0, -2, -2, -2, -2, -1, -1, -2,  4,  3, -2,  2,  2, -2, -1, -2, -2, -1,  0, -1,  4, -6, -2, -2, -1, -8,
+            -6, -5, -8, -7, -7,  0, -7, -3, -5, -4, -3, -2, -4, -4, -6, -5,  2, -2, -5, -4, -6, 17,  0, -6, -4, -8,
+            -3, -3,  0, -4, -4,  7, -5,  0, -1, -1, -4, -1, -2, -2, -5, -4, -4, -3, -3, -2, -2,  0, 10, -4, -2, -8,
+             0,  2, -5,  3,  3, -5,  0,  2, -2, -3,  0, -3, -2,  1,  0,  3,  0,  0, -1, -1, -2, -6, -4,  3, -1, -8,
+             0, -1, -3, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1,  0, -1, -1, -1,  0,  0, -1, -1, -4, -2, -1, -1, -8,
+            -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,  1,
         };
         return _data;
     }
@@ -861,21 +844,20 @@ typedef Vtml200_ ScoreSpecVtml200;
  * L  -2 -5 -3 -5 -4  2 -5 -2  3  4 -3  5
  * M  -1 -3 -1 -4 -3  1 -4 -3  2  3 -2  3  6
  * N  -1  4 -2  3  1 -4  0  1 -4 -4  1 -4 -3  6
- * X  -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -1
- * P   0 -1 -3 -1 -1 -4 -2 -2 -4 -4 -1 -3 -3 -2 -2  9
- * Q  -1  1 -3  1  2 -3 -2  2 -3 -3  2 -2 -1  1 -1 -1  5
- * R  -2 -1 -3 -2 -1 -4 -2  1 -3 -3  4 -3 -2  0 -1 -1  2  7
- * S   1  1  1  0  0 -3  0  0 -3 -3  0 -3 -2  1 -1  0  0 -1  4
- * T   1  0  0 -1 -1 -3 -2 -1 -1 -2  0 -2 -1  0 -1 -1  0 -1  2  4
- * U  -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1
- * V   0 -3  1 -4 -3 -1 -4 -3  4  3 -3  2  2 -3 -1 -3 -2 -3 -2  0 -1  4
- * W  -4 -5 -6 -6 -6  3 -5 -1 -2 -2 -4 -1 -3 -5 -2 -4 -6 -3 -4 -5 -2 -4 15
- * Y  -3 -3  0 -4 -3  5 -5  3 -2 -2 -3 -1 -2 -2 -1 -5 -3 -2 -2 -3 -1 -2  4  9
- * Z  -1  1 -4  2  4 -4 -2  1 -3 -3  2 -3 -2  1 -1 -1  4  0  0 -1 -1 -3 -6 -3  4
- * X  -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1
- * *  -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1
+ * P   0 -1 -3 -1 -1 -4 -2 -2 -4 -4 -1 -3 -3 -2  9
+ * Q  -1  1 -3  1  2 -3 -2  2 -3 -3  2 -2 -1  1 -1  5
+ * R  -2 -1 -3 -2 -1 -4 -2  1 -3 -3  4 -3 -2  0 -1  2  7
+ * S   1  1  1  0  0 -3  0  0 -3 -3  0 -3 -2  1  0  0 -1  4
+ * T   1  0  0 -1 -1 -3 -2 -1 -1 -2  0 -2 -1  0 -1  0 -1  2  4
+ * U  -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1
+ * V   0 -3  1 -4 -3 -1 -4 -3  4  3 -3  2  2 -3 -3 -2 -3 -2  0 -1  4
+ * W  -4 -5 -6 -6 -6  3 -5 -1 -2 -2 -4 -1 -3 -5 -4 -6 -3 -4 -5 -2 -4 15
+ * Y  -3 -3  0 -4 -3  5 -5  3 -2 -2 -3 -1 -2 -2 -5 -3 -2 -2 -3 -1 -2  4  9
+ * Z  -1  1 -4  2  4 -4 -2  1 -3 -3  2 -3 -2  1 -1  4  0  0 -1 -1 -3 -6 -3  4
+ * X  -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1
+ * *  -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1
  *
- *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
+ *     A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
  * @endcode
  */
 
@@ -917,33 +899,32 @@ struct ScoringMatrixData_<int, AminoAcid, ScoreSpecVtml200> {
         // The latest version of this perl script can be downloaded at
         // http://www.molgen.mpg.de/~muelle_t
         static int const _data[TAB_SIZE] = {
-             4, -1,  1, -1, -1, -3,  0, -2, -1, -2, -1, -2, -1, -1, -1,  0, -1, -2,  1,  1, -1,  0, -4, -3, -1, -1, -6,
-            -1,  4, -3,  5,  2, -5,  0,  1, -4, -5,  0, -5, -3,  4, -1, -1,  1, -1,  1,  0, -1, -3, -5, -3,  1, -1, -6,
-             1, -3, 12, -4, -4, -3, -2, -2,  0, -2, -4, -3, -1, -2, -1, -3, -3, -3,  1,  0, -1,  1, -6,  0, -4, -1, -6,
-            -1,  5, -4,  6,  3, -6, -1,  0, -5, -5,  0, -5, -4,  3, -2, -1,  1, -2,  0, -1, -2, -4, -6, -4,  2, -2, -6,
-            -1,  2, -4,  3,  5, -5, -1,  0, -4, -4,  1, -4, -3,  1, -1, -1,  2, -1,  0, -1, -1, -3, -6, -3,  4, -1, -6,
-            -3, -5, -3, -6, -5,  8, -5,  0,  0,  1, -5,  2,  1, -4, -1, -4, -3, -4, -3, -3, -1, -1,  3,  5, -4, -1, -6,
-             0,  0, -2, -1, -1, -5,  8, -2, -6, -6, -2, -5, -4,  0, -2, -2, -2, -2,  0, -2, -2, -4, -5, -5, -2, -2, -6,
-            -2,  1, -2,  0,  0,  0, -2,  8, -3, -3,  0, -2, -3,  1,  0, -2,  2,  1,  0, -1,  0, -3, -1,  3,  1,  0, -6,
-            -1, -4,  0, -5, -4,  0, -6, -3,  5,  4, -3,  3,  2, -4, -1, -4, -3, -3, -3, -1, -1,  4, -2, -2, -3, -1, -6,
-            -2, -5, -2, -5, -4,  1, -6, -3,  4,  4, -3,  4,  3, -4, -1, -4, -3, -3, -3, -2, -1,  3, -2, -2, -3, -1, -6,
-            -1,  0, -4,  0,  1, -5, -2,  0, -3, -3,  5, -3, -2,  1, -1, -1,  2,  4,  0,  0, -1, -3, -4, -3,  2, -1, -6,
-            -2, -5, -3, -5, -4,  2, -5, -2,  3,  4, -3,  5,  3, -4, -1, -3, -2, -3, -3, -2, -1,  2, -1, -1, -3, -1, -6,
-            -1, -3, -1, -4, -3,  1, -4, -3,  2,  3, -2,  3,  6, -3, -1, -3, -1, -2, -2, -1, -1,  2, -3, -2, -2, -1, -6,
-            -1,  4, -2,  3,  1, -4,  0,  1, -4, -4,  1, -4, -3,  6, -1, -2,  1,  0,  1,  0, -1, -3, -5, -2,  1, -1, -6,
-            -1, -1, -1, -2, -1, -1, -2,  0, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -6,
-             0, -1, -3, -1, -1, -4, -2, -2, -4, -4, -1, -3, -3, -2, -2,  9, -1, -1,  0, -1, -2, -3, -4, -5, -1, -2, -6,
-            -1,  1, -3,  1,  2, -3, -2,  2, -3, -3,  2, -2, -1,  1, -1, -1,  5,  2,  0,  0, -1, -2, -6, -3,  4, -1, -6,
-            -2, -1, -3, -2, -1, -4, -2,  1, -3, -3,  4, -3, -2,  0, -1, -1,  2,  7, -1, -1, -1, -3, -3, -2,  0, -1, -6,
-             1,  1,  1,  0,  0, -3,  0,  0, -3, -3,  0, -3, -2,  1, -1,  0,  0, -1,  4,  2, -1, -2, -4, -2,  0, -1, -6,
-             1,  0,  0, -1, -1, -3, -2, -1, -1, -2,  0, -2, -1,  0, -1, -1,  0, -1,  2,  4, -1,  0, -5, -3, -1, -1, -6,
-            -1, -1, -1, -2, -1, -1, -2,  0, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -6,
-             0, -3,  1, -4, -3, -1, -4, -3,  4,  3, -3,  2,  2, -3, -1, -3, -2, -3, -2,  0, -1,  4, -4, -2, -3, -1, -6,
-            -4, -5, -6, -6, -6,  3, -5, -1, -2, -2, -4, -1, -3, -5, -2, -4, -6, -3, -4, -5, -2, -4, 15,  4, -6, -2, -6,
-            -3, -3,  0, -4, -3,  5, -5,  3, -2, -2, -3, -1, -2, -2, -1, -5, -3, -2, -2, -3, -1, -2,  4,  9, -3, -1, -6,
-            -1,  1, -4,  2,  4, -4, -2,  1, -3, -3,  2, -3, -2,  1, -1, -1,  4,  0,  0, -1, -1, -3, -6, -3,  4, -1, -6,
-            -1, -1, -1, -2, -1, -1, -2,  0, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -6,
-            -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,  1
+             4, -1,  1, -1, -1, -3,  0, -2, -1, -2, -1, -2, -1, -1,  0, -1, -2,  1,  1, -1,  0, -4, -3, -1, -1, -6,
+            -1,  4, -3,  5,  2, -5,  0,  1, -4, -5,  0, -5, -3,  4, -1,  1, -1,  1,  0, -1, -3, -5, -3,  1, -1, -6,
+             1, -3, 12, -4, -4, -3, -2, -2,  0, -2, -4, -3, -1, -2, -3, -3, -3,  1,  0, -1,  1, -6,  0, -4, -1, -6,
+            -1,  5, -4,  6,  3, -6, -1,  0, -5, -5,  0, -5, -4,  3, -1,  1, -2,  0, -1, -2, -4, -6, -4,  2, -2, -6,
+            -1,  2, -4,  3,  5, -5, -1,  0, -4, -4,  1, -4, -3,  1, -1,  2, -1,  0, -1, -1, -3, -6, -3,  4, -1, -6,
+            -3, -5, -3, -6, -5,  8, -5,  0,  0,  1, -5,  2,  1, -4, -4, -3, -4, -3, -3, -1, -1,  3,  5, -4, -1, -6,
+             0,  0, -2, -1, -1, -5,  8, -2, -6, -6, -2, -5, -4,  0, -2, -2, -2,  0, -2, -2, -4, -5, -5, -2, -2, -6,
+            -2,  1, -2,  0,  0,  0, -2,  8, -3, -3,  0, -2, -3,  1, -2,  2,  1,  0, -1,  0, -3, -1,  3,  1,  0, -6,
+            -1, -4,  0, -5, -4,  0, -6, -3,  5,  4, -3,  3,  2, -4, -4, -3, -3, -3, -1, -1,  4, -2, -2, -3, -1, -6,
+            -2, -5, -2, -5, -4,  1, -6, -3,  4,  4, -3,  4,  3, -4, -4, -3, -3, -3, -2, -1,  3, -2, -2, -3, -1, -6,
+            -1,  0, -4,  0,  1, -5, -2,  0, -3, -3,  5, -3, -2,  1, -1,  2,  4,  0,  0, -1, -3, -4, -3,  2, -1, -6,
+            -2, -5, -3, -5, -4,  2, -5, -2,  3,  4, -3,  5,  3, -4, -3, -2, -3, -3, -2, -1,  2, -1, -1, -3, -1, -6,
+            -1, -3, -1, -4, -3,  1, -4, -3,  2,  3, -2,  3,  6, -3, -3, -1, -2, -2, -1, -1,  2, -3, -2, -2, -1, -6,
+            -1,  4, -2,  3,  1, -4,  0,  1, -4, -4,  1, -4, -3,  6, -2,  1,  0,  1,  0, -1, -3, -5, -2,  1, -1, -6,
+             0, -1, -3, -1, -1, -4, -2, -2, -4, -4, -1, -3, -3, -2,  9, -1, -1,  0, -1, -2, -3, -4, -5, -1, -2, -6,
+            -1,  1, -3,  1,  2, -3, -2,  2, -3, -3,  2, -2, -1,  1, -1,  5,  2,  0,  0, -1, -2, -6, -3,  4, -1, -6,
+            -2, -1, -3, -2, -1, -4, -2,  1, -3, -3,  4, -3, -2,  0, -1,  2,  7, -1, -1, -1, -3, -3, -2,  0, -1, -6,
+             1,  1,  1,  0,  0, -3,  0,  0, -3, -3,  0, -3, -2,  1,  0,  0, -1,  4,  2, -1, -2, -4, -2,  0, -1, -6,
+             1,  0,  0, -1, -1, -3, -2, -1, -1, -2,  0, -2, -1,  0, -1,  0, -1,  2,  4, -1,  0, -5, -3, -1, -1, -6,
+            -1, -1, -1, -2, -1, -1, -2,  0, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -6,
+             0, -3,  1, -4, -3, -1, -4, -3,  4,  3, -3,  2,  2, -3, -3, -2, -3, -2,  0, -1,  4, -4, -2, -3, -1, -6,
+            -4, -5, -6, -6, -6,  3, -5, -1, -2, -2, -4, -1, -3, -5, -4, -6, -3, -4, -5, -2, -4, 15,  4, -6, -2, -6,
+            -3, -3,  0, -4, -3,  5, -5,  3, -2, -2, -3, -1, -2, -2, -5, -3, -2, -2, -3, -1, -2,  4,  9, -3, -1, -6,
+            -1,  1, -4,  2,  4, -4, -2,  1, -3, -3,  2, -3, -2,  1, -1,  4,  0,  0, -1, -1, -3, -6, -3,  4, -1, -6,
+            -1, -1, -1, -2, -1, -1, -2,  0, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -6,
+            -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,  1
         };
         return _data;
     }
diff --git a/include/seqan/score/score_simple.h b/include/seqan/score/score_simple.h
index d3cc49b..9ab5140 100644
--- a/include/seqan/score/score_simple.h
+++ b/include/seqan/score/score_simple.h
@@ -198,15 +198,6 @@ scoreGapExtend(Score<TValue, TSpec> const & me) {
     return me.data_gap_extend;
 }
 
-/*!
- * @fn SimpleScore#setScoreGapExtend
- * @brief Set gap extend score.
- *
- * @signature void setScoreGapExtend(score, value);
- *
- * @param[in,out] score The SimpleScore scoring scheme to set the gap extend value for.
- * @param[in]     value The value to set the gap open score to.
- */
 
 template <typename TValue, typename TSpec>
 inline void
diff --git a/include/seqan/seeds/banded_chain_alignment_impl.h b/include/seqan/seeds/banded_chain_alignment_impl.h
index f9eabbb..a6e9e80 100644
--- a/include/seqan/seeds/banded_chain_alignment_impl.h
+++ b/include/seqan/seeds/banded_chain_alignment_impl.h
@@ -1087,7 +1087,6 @@ _finishBandedChain(TTraceSet & globalTraceSet,
                           upperDiagonal(band)+ 1, 1 - lowerDiagonal(band));
             // TODO(rmaerker): Should we not set the nextGridOrigin to 0 as it is the case for the last rectangle? We want to compute the last full path.
             // Compute the last anchor which crosses the end of the global grid.
-        clear(localTraceSet);
         TScoreValue score = _computeAlignment(localTraceSet, dpScoutState, infixH, infixV, scoreSchemeAnchor, band,
                                   DPProfile_<BandedChainAlignment_<TFreeEndGaps, BandedChainFinalDPMatrix>, TGaps, TracebackOn<TTracebackConfig> >());
 
diff --git a/include/seqan/seeds/banded_chain_alignment_traceback.h b/include/seqan/seeds/banded_chain_alignment_traceback.h
index 7266d54..3b797df 100644
--- a/include/seqan/seeds/banded_chain_alignment_traceback.h
+++ b/include/seqan/seeds/banded_chain_alignment_traceback.h
@@ -125,12 +125,6 @@ inline void _glueTracebacks(TTraceSet & globalTraces, TTraceSet & localTraces)
 
     bool isGlued = false;
 
-    if (empty(globalTraces))
-    {
-        globalTraces = localTraces;
-        return;
-    }
-
     TSize lengthGlobalTraces = length(globalTraces);
     TSize oldNumOfGlobalTraces = lengthGlobalTraces;
     String<unsigned> elementsToErase;
@@ -199,7 +193,6 @@ inline void _glueTracebacks(TTraceSet & globalTraces, TTraceSet & localTraces)
         erase(globalTraces, elementsToErase[i-1]); // erase from behind to avoid accessing an element beyond the scope
     }
     SEQAN_ASSERT_EQ_MSG(isGlued, true, "Fatal error while trying to connect trace backs: No glue point available!");
-    ignoreUnusedVariableWarning(isGlued);
 }
 
 // ----------------------------------------------------------------------------
diff --git a/include/seqan/seeds/seeds_global_chaining.h b/include/seqan/seeds/seeds_global_chaining.h
index 68cce42..7255703 100644
--- a/include/seqan/seeds/seeds_global_chaining.h
+++ b/include/seqan/seeds/seeds_global_chaining.h
@@ -82,11 +82,11 @@ typedef Tag<SparseChaining_> SparseChaining;
  * @endlink is built and filled with @link SimpleSeed @endlink object.  Then, a @link String @endlink of @link
  * SimpleSeed @endlink objects is defined and filled using the <tt>chainSeedsGlobally()</tt> function.
  *
- * @include demos/dox/seeds/seeds_chaining.cpp
+ * @include demos/seeds/seeds_chaining.cpp
  *
  * The output is as follows.  Only the first and last seeds are written to <tt>std::cout</tt>.
  *
- * @include demos/dox/seeds/seeds_chaining.cpp.stdout
+ * @include demos/seeds/seeds_chaining.cpp.stdout
  *
  * @section References
  *
@@ -177,7 +177,7 @@ chainSeedsGlobally(
             // *first* one that compares greater than the reference
             // one.  Searching for the this one and decrementing the
             // result iterator gives the desired result.
-            TIntermediateSolution referenceSolution(beginPositionV(seedK), maxValue<TSize>(), maxValue<unsigned>());
+            TIntermediateSolution referenceSolution(beginPositionV(seedK), 0, maxValue<unsigned>());
             // std::cout << "    intermediateSolutions.upper_bound(" << beginPositionV(seedK) << ")" << std::endl;
             TIntermediateSolutionsIterator itJ = intermediateSolutions.upper_bound(referenceSolution);
             if (itJ == intermediateSolutions.begin()) {
diff --git a/include/seqan/seeds/seeds_seed_base.h b/include/seqan/seeds/seeds_seed_base.h
index 267316b..93f53db 100644
--- a/include/seqan/seeds/seeds_seed_base.h
+++ b/include/seqan/seeds/seeds_seed_base.h
@@ -115,15 +115,15 @@ struct DefaultSeedConfig
  * The following example shows the usage of three seed extension algorithms using the tags <tt>MaxExtend</tt>,
  * <tt>UnGappedXDrop</tt>, and <tt>GappedXDrop</tt>.
  *
- * @include demos/dox/seeds/seeds_extension.cpp
+ * @include demos/seeds/seeds_extension.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/seeds/seeds_extension.cpp.stdout
+ * @include demos/seeds/seeds_extension.cpp.stdout
  *
  * Here is an example for global seed chaining:
  *
- * @include demos/dox/seeds/seeds_chaining.cpp
+ * @include demos/seeds/seeds_chaining.cpp
  */
 
 template <typename TSpec, typename TConfig = DefaultSeedConfig>
diff --git a/include/seqan/seeds/seeds_seed_set_base.h b/include/seqan/seeds/seeds_seed_set_base.h
index 2f3d4b8..63e7bde 100644
--- a/include/seqan/seeds/seeds_seed_set_base.h
+++ b/include/seqan/seeds/seeds_seed_set_base.h
@@ -125,7 +125,7 @@ class SeedSet;
  *
  * @section Examples
  *
- * @include demos/dox/seeds/seeds_add_seed.cpp
+ * @include demos/seeds/seeds_add_seed.cpp
  *
  * The output is as follows:
  *
diff --git a/include/seqan/seq_io/fai_index.h b/include/seqan/seq_io/fai_index.h
index e5ce007..14f240e 100644
--- a/include/seqan/seq_io/fai_index.h
+++ b/include/seqan/seq_io/fai_index.h
@@ -111,11 +111,11 @@ clear(FaiIndexEntry_ &entry)
  *
  * The following example demonstrates the usage of the FaiIndex class.
  *
- * @include demos/dox/seq_io/fai_index_example.cpp
+ * @include demos/seq_io/fai_index_example.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/seq_io/fai_index_example.cpp.stdout
+ * @include demos/seq_io/fai_index_example.cpp.stdout
  *
  * @fn FaiIndex::FaiIndex
  * @brief Constructor.
diff --git a/include/seqan/seq_io/fasta_fastq.h b/include/seqan/seq_io/fasta_fastq.h
index 47f4432..dd07959 100644
--- a/include/seqan/seq_io/fasta_fastq.h
+++ b/include/seqan/seq_io/fasta_fastq.h
@@ -104,17 +104,17 @@ struct MagicHeader<Raw, T> :
 template <typename T>
 struct FileExtensions<Fasta, T>
 {
-    static char const * VALUE[6];
+    static char const * VALUE[2];
 };
 template <typename T>
-char const * FileExtensions<Fasta, T>::VALUE[6] =
+char const * FileExtensions<Fasta, T>::VALUE[2] =
 {
     ".fa",      // default output extension
-    ".fasta",
-    ".faa",     // FASTA Amino Acid file
-    ".ffn",     // FASTA nucleotide coding regions file
-    ".fna",     // FASTA Nucleic Acid file
-    ".frn"
+    ".fasta"
+//    ".faa",     // FASTA Amino Acid file
+//    ".ffn",     // FASTA nucleotide coding regions file
+//    ".fna",     // FASTA Nucleic Acid file
+//    ".frn"
 };
 
 
@@ -139,7 +139,8 @@ struct FileExtensions<Raw, T>
 template <typename T>
 char const * FileExtensions<Raw, T>::VALUE[1] =
 {
-    ".raw"      // default output extension
+    ".txt"      // default output extension
+//    ".seq"
 };
 
 // ----------------------------------------------------------------------------
diff --git a/include/seqan/sequence/adapt_std_list.h b/include/seqan/sequence/adapt_std_list.h
index 638c62d..1b3680d 100644
--- a/include/seqan/sequence/adapt_std_list.h
+++ b/include/seqan/sequence/adapt_std_list.h
@@ -281,15 +281,6 @@ reserve(std::list<T> & /*list*/, TTag const & /*tag*/)
     SEQAN_CHECKPOINT;
 }
 
-template <typename T,  typename TAlloc, typename TSize, typename TExpand>
-inline typename Size<std::list<T,  TAlloc> >::Type
-resize(std::list<T, TAlloc> & me, TSize new_length, Tag<TExpand>)
-{
-    SEQAN_CHECKPOINT;
-    me.resize(new_length);
-    return me.size();
-}
-
 template <typename T>
 inline typename Size<std::list<T> >::Type
 capacity(std::list<T> const & list)
diff --git a/include/seqan/sequence/adapt_std_string.h b/include/seqan/sequence/adapt_std_string.h
index ebe037b..456f1cb 100644
--- a/include/seqan/sequence/adapt_std_string.h
+++ b/include/seqan/sequence/adapt_std_string.h
@@ -163,21 +163,6 @@ struct DefaultOverflowImplicit< std::basic_string<TChar, TCharTraits, TAlloc> >
 template <typename TChar, typename TCharTraits, typename TAlloc>
 struct IsSequence<std::basic_string<TChar, TCharTraits, TAlloc> > : True {};
 
-// ----------------------------------------------------------------------------
-// Metafunction Chunk
-// ----------------------------------------------------------------------------
-
-// Chunk interface for std::basic strings.
-template <typename TChar, typename TCharTraits, typename TAlloc, typename TSpec>
-struct Chunk<Iter<std::basic_string<TChar, TCharTraits, TAlloc>, AdaptorIterator<TChar*, TSpec> > >
-{
-    typedef typename Chunk<std::basic_string<TChar, TCharTraits, TAlloc> >::Type Type;
-};
-
-template <typename TChar, typename TCharTraits, typename TAlloc, typename TSpec>
-struct Chunk<Iter<std::basic_string<TChar, TCharTraits, TAlloc> const, AdaptorIterator<TChar*, TSpec> > > :
-    Chunk<Iter<std::basic_string<TChar, TCharTraits, TAlloc>, AdaptorIterator<TChar*, TSpec> > > {};
-
 // ===========================================================================
 // Functions
 // ===========================================================================
diff --git a/include/seqan/sequence/segment_base.h b/include/seqan/sequence/segment_base.h
index 3cf74ac..e71eec0 100644
--- a/include/seqan/sequence/segment_base.h
+++ b/include/seqan/sequence/segment_base.h
@@ -165,7 +165,7 @@ namespace SEQAN_NAMESPACE_MAIN
  *
  * Segments support element access (reading and writing) as well as random access iteration.
  *
- * @snippet demos/dox/sequence/segment.cpp basic operations
+ * @snippet demos/sequence/segment.cpp basic operations
  *
  * You can get the type of the infix/prefix/suffix of a sequence using @link SegmentableConcept#Infix @endlink,
  * @link SegmentableConcept#Prefix @endlink, and @link SegmentableConcept#Suffix @endlink.  These metafunctions will
@@ -176,12 +176,12 @@ namespace SEQAN_NAMESPACE_MAIN
  * A suffix of a suffix remains a suffix, a prefix of a prefix remains a prefix.  Any other combination leads to
  * the resulting type being a infix segment.
  *
- * @snippet demos/dox/sequence/segment.cpp metafunction examples
+ * @snippet demos/sequence/segment.cpp metafunction examples
  *
  * If you explicitely need a segment and keep the underlying sequence as it is, explicitely use the <tt>Segment</tt>
  * template class.
  *
- * @snippet demos/dox/sequence/segment.cpp explicit segment
+ * @snippet demos/sequence/segment.cpp explicit segment
  *
  * @aka substring
  */
diff --git a/include/seqan/sequence/segment_infix.h b/include/seqan/sequence/segment_infix.h
index ff84b8b..92fe18d 100644
--- a/include/seqan/sequence/segment_infix.h
+++ b/include/seqan/sequence/segment_infix.h
@@ -152,14 +152,6 @@ SEQAN_CHECKPOINT
         assign(*this, source);
         return *this;
     }
-#if defined(SEQAN_CXX11_STANDARD) && (!defined(_MSC_VER) || _MSC_VER >= 1800)
-    template<typename T> explicit operator T () const
-    {
-        T temp_copy;
-        assign(temp_copy, *this);
-        return temp_copy;
-    }
-#endif
 //____________________________________________________________________________
 
 public:
diff --git a/include/seqan/sequence/segment_prefix.h b/include/seqan/sequence/segment_prefix.h
index e0f32c1..dfcbde7 100644
--- a/include/seqan/sequence/segment_prefix.h
+++ b/include/seqan/sequence/segment_prefix.h
@@ -119,15 +119,6 @@ public:
         assign(*this, source);
         return *this;
     }
-
-#if defined(SEQAN_CXX11_STANDARD) && (!defined(_MSC_VER) || _MSC_VER >= 1800)
-    template<typename T> explicit operator T () const
-    {
-        T temp_copy;
-        assign(temp_copy, *this);
-        return temp_copy;
-    }
-#endif
 //____________________________________________________________________________
 
 public:
diff --git a/include/seqan/sequence/segment_suffix.h b/include/seqan/sequence/segment_suffix.h
index 2d2c9e4..24cde20 100644
--- a/include/seqan/sequence/segment_suffix.h
+++ b/include/seqan/sequence/segment_suffix.h
@@ -139,14 +139,6 @@ SEQAN_CHECKPOINT
         assign(*this, source);
         return *this;
     }
-#if defined(SEQAN_CXX11_STANDARD) && (!defined(_MSC_VER) || _MSC_VER >= 1800)
-    template<typename T> explicit operator T () const
-    {
-        T temp_copy;
-        assign(temp_copy, *this);
-        return temp_copy;
-    }
-#endif
 //____________________________________________________________________________
 
 public:
diff --git a/include/seqan/sequence/string_array.h b/include/seqan/sequence/string_array.h
index a6adb5e..2d592cb 100644
--- a/include/seqan/sequence/string_array.h
+++ b/include/seqan/sequence/string_array.h
@@ -244,22 +244,6 @@ reserve(String<TValue, Array<CAPACITY> > & me,
     return capacity(me);
 }
 
-// ----------------------------------------------------------------------------
-// Function -*allocateStorage()
-// ----------------------------------------------------------------------------
-
-template <typename TValue, size_t CAPACITY, typename TSize>
-inline TValue *
-_allocateStorage(String<TValue, Array<CAPACITY> > & me, TSize /*capacity*/)
-{
-    return me.data_begin;
-}
-
-template <typename TValue, size_t CAPACITY, typename TSize>
-inline void
-_deallocateStorage(String<TValue, Array<CAPACITY> > & /*me*/, TValue * /*ptr*/, TSize /*capacity*/)
-{
-}
 
 // ----------------------------------------------------------------------------
 // Function _setLength()
diff --git a/include/seqan/sequence/string_base.h b/include/seqan/sequence/string_base.h
index 4126d92..25ed5e0 100644
--- a/include/seqan/sequence/string_base.h
+++ b/include/seqan/sequence/string_base.h
@@ -160,11 +160,11 @@ struct Alloc {};
  * are models for the @link StringConcept sequence concept @endlink but extend the sequence concept by allowing
  * implicit conversion of other sequence into strings as long as the element conversion works:
  *
- * @snippet demos/dox/sequence/string.cpp initializing strings
+ * @snippet demos/sequence/string.cpp initializing strings
  *
  * Aside from that, the usual operations (appending, insertion, removing, element access) are available as well.
  *
- * @snippet demos/dox/sequence/string.cpp usual operations
+ * @snippet demos/sequence/string.cpp usual operations
  *
  * Strings have a size (the actual number of elements) and a capacity (the number of elements that memory has been
  * allocated for).  Note that clearing a string does not free the memory (as the STL, SeqAn assumes that strings will
@@ -172,7 +172,7 @@ struct Alloc {};
  * force a re-allocation of the memory such that the string afterward uses the minimal amount of memory to accomodate
  * all of its objects.
  *
- * @snippet demos/dox/sequence/string.cpp clear and resize
+ * @snippet demos/sequence/string.cpp clear and resize
  *
  * @section Examples
  *
@@ -181,11 +181,11 @@ struct Alloc {};
  * String container with other than simple type values.  See class @link Index @endlink example for efficiently finding
  * the same pattern matches using an index.
  *
- * @include demos/dox/sequence/string2.cpp
+ * @include demos/sequence/string2.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/sequence/string2.cpp.stdout
+ * @include demos/sequence/string2.cpp.stdout
  *
  * @see StringSet
  */
diff --git a/include/seqan/sequence/string_set_base.h b/include/seqan/sequence/string_set_base.h
index 0ba3ade..cbd9174 100644
--- a/include/seqan/sequence/string_set_base.h
+++ b/include/seqan/sequence/string_set_base.h
@@ -74,11 +74,11 @@ struct Owner {};
  *
  * @section Examples
  *
- * @include demos/dox/sequence/stringset.cpp
+ * @include demos/sequence/stringset.cpp
  *
  * The output is as follows:
  *
- * @include demos/dox/sequence/stringset.cpp.stdout
+ * @include demos/sequence/stringset.cpp.stdout
  */
 
 template <typename TString, typename TSpec = Owner<> >
@@ -1597,7 +1597,6 @@ concat(StringSet<TString, TSpec> const & constMe)
     return me.concat;
 }
 
-// this function is deprecated and the return value is very ungeneric, e.g. doesn't work if strings are std::string
 template <typename TStrings, typename TDelim>
 inline String<typename Value<typename Value<TStrings>::Type>::Type>
 concat(TStrings const & strings, TDelim const & delimiter, bool ignoreEmptyStrings = false)
@@ -1775,53 +1774,58 @@ operator!=(StringSet<TLeftString, TLeftSpec> const & left,
 }
 
 // ----------------------------------------------------------------------------
-// Function write() (works on any container of container)
+// Function write(StringSet)
 // ----------------------------------------------------------------------------
 
-template <typename TTarget, typename TSequences, typename TDelim>
-inline SEQAN_FUNC_ENABLE_IF(And<Is<ContainerConcept<TSequences> >,
-                                Is<ContainerConcept<typename Value<TSequences>::Type > > >, void)
-write(TTarget & target, TSequences const & seqs, TDelim const & delimiter)
+template <typename TTarget, typename TSequence, typename TSpec>
+inline void
+write(TTarget &target, StringSet<TSequence, TSpec> &seqs)
 {
-    typedef typename Iterator<TSequences const>::Type TSourceIt;
-
-    if (SEQAN_UNLIKELY(empty(seqs)))
-        return;
-    for (TSourceIt it = begin(seqs, Standard()), itBack = (end(seqs, Standard()) - 1); it != itBack; ++it)
+    typedef typename Size<StringSet<TSequence, TSpec> >::Type TSize;
+    for (TSize i = 0; i < length(seqs); ++i)
     {
-        write(target, *it);
-        write(target, delimiter);
+        write(target, seqs[i]);
+        writeValue(target, '\n');
     }
-    write(target, back(seqs)); // no delimiter after last
 }
 
-template <typename TTarget, typename TSequences>
-inline SEQAN_FUNC_ENABLE_IF(And<Is<ContainerConcept<TSequences> >,
-                                Is<ContainerConcept<typename Value<TSequences>::Type > > >, void)
-write(TTarget & target, TSequences const & seqs)
+template <typename TTarget, typename TSequence, typename TSpec>
+inline void
+write(TTarget &target, StringSet<TSequence, TSpec> const &seqs)
 {
-    write(target, seqs, '\n');
+    typedef typename Size<StringSet<TSequence, TSpec> const>::Type TSize;
+    for (TSize i = 0; i < length(seqs); ++i)
+    {
+        write(target, seqs[i]);
+        writeValue(target, '\n');
+    }
 }
 
-// ----------------------------------------------------------------------------
-// Function append() (works on any container of container)
-// ----------------------------------------------------------------------------
-
-template <typename TSequences1, typename TSequences2, typename TExpand >
-inline SEQAN_FUNC_ENABLE_IF(And<And<Is<ContainerConcept<TSequences1> >,
-                                    Is<ContainerConcept<typename Value<TSequences1>::Type > > >,
-                                And<Is<ContainerConcept<TSequences2> >,
-                                    Is<ContainerConcept<typename Value<TSequences2>::Type > > > >, void)
-append(TSequences1 & me, TSequences2 const & obj, Tag<TExpand>)
+template <typename TTarget, typename TSequence, typename TSpec>
+inline SEQAN_FUNC_ENABLE_IF(Is<ContainerConcept<TSequence> >, void)
+write(TTarget &target, String<TSequence, TSpec> &seqs)
 {
-    typedef typename Iterator<TSequences2 const>::Type TSourceIt;
+    typedef typename Size<String<TSequence, TSpec> >::Type TSize;
+    for (TSize i = 0; i < length(seqs); ++i)
+    {
+        write(target, seqs[i]);
+        writeValue(target, '\n');
+    }
+}
 
-    typename Size<typename Value<TSequences1>::Type>::Type oldLength = length(me);
-    resize(me, oldLength + length(obj), Tag<TExpand>());
-    for (TSourceIt it = begin(obj, Standard()), itEnd = end(obj, Standard()); it != itEnd; ++it)
-        assignValue(me, oldLength++, *it);
+template <typename TTarget, typename TSequence, typename TSpec>
+inline SEQAN_FUNC_ENABLE_IF(Is<ContainerConcept<TSequence> >, void)
+write(TTarget &target, String<TSequence, TSpec> const &seqs)
+{
+    typedef typename Size<String<TSequence, TSpec> const>::Type TSize;
+    for (TSize i = 0; i < length(seqs); ++i)
+    {
+        write(target, seqs[i]);
+        writeValue(target, '\n');
+    }
 }
 
+
 }  // namespace seqan
 
 #endif  // #ifndef SEQAN_SEQUENCE_STRING_SET_BASE_H_
diff --git a/include/seqan/sequence/string_set_concat_direct.h b/include/seqan/sequence/string_set_concat_direct.h
index acdbc76..4eacc3f 100644
--- a/include/seqan/sequence/string_set_concat_direct.h
+++ b/include/seqan/sequence/string_set_concat_direct.h
@@ -40,8 +40,6 @@
 #ifndef SEQAN_SEQUENCE_STRING_SET_CONCAT_DIRECT_H_
 #define SEQAN_SEQUENCE_STRING_SET_CONCAT_DIRECT_H_
 
-#include <algorithm>
-
 namespace seqan {
 
 // ============================================================================
@@ -93,16 +91,6 @@ public:
     }
 
     template <typename TOtherString, typename TOtherSpec>
-    StringSet(StringSet<TOtherString, Owner<ConcatDirect<TOtherSpec> > > & other) :
-        limits(other.limits), concat(other.concat)
-    {}
-
-    template <typename TOtherString, typename TOtherSpec>
-    StringSet(StringSet<TOtherString, Owner<ConcatDirect<TOtherSpec> > > const & other) :
-        limits(other.limits), concat(other.concat)
-    {}
-
-    template <typename TOtherString, typename TOtherSpec>
     StringSet(StringSet<TOtherString, TOtherSpec> &other)
     {
         _initStringSetLimits(*this);
@@ -346,51 +334,6 @@ template <typename TString, typename TSpec >
 inline void _refreshStringSetLimits(StringSet<TString, Owner<ConcatDirect<TSpec> > > &) {}
 
 // --------------------------------------------------------------------------
-// Function append()
-// --------------------------------------------------------------------------
-
-// more efficient overload for concat direct stringsets
-template <typename TString, typename TSpec, typename TStrings2, typename TExpand >
-inline SEQAN_FUNC_ENABLE_IF(And<Is<ContainerConcept<TStrings2> >,
-                                Is<ContainerConcept<typename Value<TStrings2>::Type > > >, void)
-append(StringSet<TString, Owner<ConcatDirect<TSpec> > > & me,
-       TStrings2 const & obj,
-       Tag<TExpand>)
-{
-    typedef typename Iterator<TStrings2 const>::Type TIt;
-
-    reserve(me.concat, lengthSum(me) + lengthSum(obj), Tag<TExpand>());
-    reserve(me.limits, length(me.limits) + length(obj), Tag<TExpand>());
-
-    for (TIt it = begin(obj), itEnd = end(obj); it != itEnd; ++it)
-        appendValue(me, *it, Tag<TExpand>());
-}
-
-// even more efficient if both stringsets are concatdirect
-template <typename TString1, typename TString2, typename TSpec1, typename TSpec2, typename TExpand>
-inline void
-append(StringSet<TString1, Owner<ConcatDirect<TSpec1> > > & me,
-       StringSet<TString2, Owner<ConcatDirect<TSpec2> > > const & obj,
-       Tag<TExpand>)
-{
-    typedef typename Size<TString1>::Type TSize;
-    typedef StringSet<TString1, Owner<ConcatDirect<TSpec1> > > TMe;
-    typedef typename Iterator<typename StringSetLimits<TMe>::Type>::Type TIt;
-
-    if (SEQAN_UNLIKELY(empty(obj)))
-        return;
-
-    TSize const oldLimLength = length(me.limits);
-    TSize const oldLength = back(me.limits);
-
-    append(me.concat, obj.concat, Tag<TExpand>());
-    append(me.limits, suffix(obj.limits, 1), Tag<TExpand>());
-
-    for (TIt it = begin(me.limits, Standard()) + oldLimLength, itEnd = end(me.limits, Standard()); it != itEnd; ++it)
-        *it += oldLength;
-}
-
-// --------------------------------------------------------------------------
 // Function appendValue()
 // --------------------------------------------------------------------------
 
@@ -398,10 +341,10 @@ template <typename TString, typename TString2, typename TSpec, typename TExpand>
 inline void appendValue(
     StringSet<TString, Owner<ConcatDirect<TSpec> > > & me,
     TString2 const & obj,
-    Tag<TExpand>)
+    Tag<TExpand> tag)
 {
-    appendValue(me.limits, lengthSum(me) + length(obj), Tag<TExpand>());
-    append(me.concat, obj, Tag<TExpand>());
+    appendValue(me.limits, lengthSum(me) + length(obj), tag);
+    append(me.concat, obj, tag);
 }
 
 // --------------------------------------------------------------------------
@@ -486,8 +429,7 @@ template <typename TString, typename TSpec, typename TSize, typename TExpand >
 inline typename Size<StringSet<TString, Owner<ConcatDirect<TSpec> > > >::Type
 resize(StringSet<TString, Owner<ConcatDirect<TSpec> > > & me, TSize new_size, Tag<TExpand> tag)
 {
-    typedef typename Size<typename StringSetLimits<StringSet<TString, Owner<ConcatDirect<TSpec> > > >::Type>::Type TS;
-    if (static_cast<TS>(new_size) < length(me.limits))
+    if (new_size < length(me.limits))
     {
         resize(me.concat, me.limits[new_size]);
         return resize(me.limits, new_size + 1, tag) - 1;
@@ -495,6 +437,7 @@ resize(StringSet<TString, Owner<ConcatDirect<TSpec> > > & me, TSize new_size, Ta
         return resize(me.limits, new_size + 1, back(me.limits), tag) - 1;
 }
 
+
 // --------------------------------------------------------------------------
 // Function reserve()
 // --------------------------------------------------------------------------
diff --git a/include/seqan/sequence/string_set_owner.h b/include/seqan/sequence/string_set_owner.h
index e810dd0..164b27a 100644
--- a/include/seqan/sequence/string_set_owner.h
+++ b/include/seqan/sequence/string_set_owner.h
@@ -141,21 +141,6 @@ public:
 // ============================================================================
 
 // --------------------------------------------------------------------------
-// Function append()
-// --------------------------------------------------------------------------
-
-// better solution if both stringsets are Owner<Default>
-template <typename TString, typename TString2, typename TExpand >
-inline void append(StringSet<TString, Owner<Default> > & me,
-                   StringSet<TString2, Owner<Default> > const & obj,
-                   Tag<TExpand>)
-{
-    // we rather invalidate limits here to allow to do modify appended strings:
-    me.limitsValid = false;
-    append(me.strings, obj.strings, Tag<TExpand>());
-}
-
-// --------------------------------------------------------------------------
 // Function appendValue()
 // --------------------------------------------------------------------------
 
diff --git a/include/seqan/statistics/statistics_markov_model.h b/include/seqan/statistics/statistics_markov_model.h
index 90e5585..fbb2989 100644
--- a/include/seqan/statistics/statistics_markov_model.h
+++ b/include/seqan/statistics/statistics_markov_model.h
@@ -63,7 +63,7 @@ namespace seqan {
  *
  * @subsection Build a MarkovModel from Background
  *
- * @include demos/dox/statistics/build_markov_model.cpp
+ * @include demos/statistics/build_markov_model.cpp
  *
  * The following example shows how to build a MarkovModel over a Dna alphabet from a set of background sequence.  After
  * build the model, we compute the zscore.
@@ -78,7 +78,7 @@ namespace seqan {
  * not have the background word set here but only the model, we compute the variance of a word using the function
  * calculateVariance from the alignment_free module.
  *
- * @include demos/dox/statistics/load_markov_model.cpp
+ * @include demos/statistics/load_markov_model.cpp
  *
  * @code{.console}
  * variance: 0.267919
diff --git a/include/seqan/store/store_all.h b/include/seqan/store/store_all.h
index 71055e9..1d4f65b 100644
--- a/include/seqan/store/store_all.h
+++ b/include/seqan/store/store_all.h
@@ -108,7 +108,7 @@ struct FragmentStoreConfig
  *
  * Load read alignments and a reference genome and display the multiple alignment in a genomic range:
  *
- * @include demos/dox/store/store_example.cpp
+ * @include demos/store/store_example.cpp
  *
  * @code{.console}
  * ATTTAAGAAATTACAAAATATAGTTGAAAGCTCTAACAATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGAATTAA
@@ -2065,7 +2065,7 @@ void convertMatchesToGlobalAlignment(FragmentStore<TSpec, TConfig> &store, TScor
 //                    }
                             if (rBegin < insPos)
                             {
-                                TReadGaps gaps(static_cast<TReadSeq>(store.readSeqStore[j->readId]), j->gaps);
+                                TReadGaps gaps(store.readSeqStore[j->readId], j->gaps);
                                 insertGap(gaps, insPos - rBegin);
                             } else
                             {
diff --git a/include/seqan/store/store_io.h b/include/seqan/store/store_io.h
index c8c0098..953fe2f 100644
--- a/include/seqan/store/store_io.h
+++ b/include/seqan/store/store_io.h
@@ -890,27 +890,6 @@ write(TTarget & target,
     }
 }
 
-// ----------------------------------------------------------------------------
-// Function writeRecords()
-// ----------------------------------------------------------------------------
-
-
-/*!
- * @fn FragmentStore#writeRecords
- * @brief Write all records to a file.
- *
- * @signature void writeRecords(bamFileOut, store);
- * @signature void writeRecords(gffFileOut, store);
- * @signature void writeRecords(ucscFileIn, store);
- *
- * @param[in,out] bamFileOut  The @link BamFileOut @endlink object to write into.
- * @param[in,out] gffFileOut  The @link GffFileOut @endlink object to write into.
- * @param[in,out] ucscFileOut The @link UcscFileOut @endlink object to write into.
- * @param[in]     store       The @link FragmentStore @endlink object.
- *
- * @throw IOError On low-level I/O errors.
- */
-
 //////////////////////////////////////////////////////////////////////////////
 
 /*!
@@ -935,28 +914,6 @@ bool writeContigs(FormattedFile<Fastq, Output, TSpec> & file, FragmentStore<TFSS
     return true;
 }
 
-// ----------------------------------------------------------------------------
-// Function readRecords()
-// ----------------------------------------------------------------------------
-
-/*!
- * @fn FragmentStore#readRecords
- * @brief Read all records from a file.
- *
- * @signature void readRecords(store, bamFileIn[, importFlags]);
- * @signature void readRecords(store, gffFileIn);
- * @signature void readRecords(store, ucscFileIn);
- *
- * @param[in,out] store       The @link FragmentStore @endlink object to store the records into.
- * @param[in,out] bamFileIn   The @link BamFileIn @endlink object to read from.
- * @param[in,out] gffFileIn   The @link GffFileIn @endlink object to read from.
- * @param[in,out] ucscFileIn  The @link UcscFileIn @endlink object to read from.
- * @param[in]     importFlags The import flags.
- *
- * @throw IOError On low-level I/O errors.
- * @throw ParseError On high-level file format errors.
- */
-
 //////////////////////////////////////////////////////////////////////////////
 
 /*!
diff --git a/include/seqan/store/store_io_gff.h b/include/seqan/store/store_io_gff.h
index 0472b22..61f127f 100644
--- a/include/seqan/store/store_io_gff.h
+++ b/include/seqan/store/store_io_gff.h
@@ -61,8 +61,7 @@ struct IOContextGff_
 
     CharString gtfGeneId;
     CharString gtfGeneName;
-    CharString gffTranscriptId;     // For Gtf transcipt_id is stored in parentName
-    CharString gtfTranscriptName;
+    CharString gtfTranscriptName;       // transcipt_id is stored in parentName
 
     TId annotationId;
     TAnnotation annotation;
@@ -95,12 +94,11 @@ inline void clear(IOContextGff_<TFragmentStore, TSpec> & ctx)
 //
 // reads in one annotation line from a Gff file
 
-template <typename TFragmentStore, typename TSpec, typename TTagList>
+template <typename TFragmentStore, typename TSpec>
 inline void
 _readOneAnnotation(
     IOContextGff_<TFragmentStore, TSpec> & ctx,
-    GffRecord const & record,
-    TagSelector<TTagList> const & format)
+    GffRecord const & record)
 {
 //IOREV _nodoc_ _hasCRef_
     typedef typename TFragmentStore::TContigPos         TContigPos;
@@ -143,25 +141,11 @@ _readOneAnnotation(
             appendValue(ctx.values, ctx._value);
         }
 
-        if (ctx._key == "Parent" || ctx._key == "ParentID")
+        if (ctx._key == "Parent" || ctx._key == "ParentID" || ctx._key == "transcript_id")
         {
             ctx.parentKey = ctx._key;
             ctx.parentName = ctx._value;
         }
-        else if (ctx._key == "transcript_id")
-        {
-            if (isEqual(format, Gtf()))
-            {
-                ctx.parentKey = ctx._key;
-                ctx.parentName = ctx._value;
-            }
-            else
-            {
-                // According to the Gff3 specifications, transcript_id should NOT hold any special meaning,
-                // only Id should be used in determining parent/child relations.
-                ctx.gffTranscriptId = ctx._value;
-            }
-        }
         else if (ctx._key == "transcript_name")
         {
             ctx.gtfTranscriptName = ctx._value;
@@ -314,10 +298,6 @@ _storeOneAnnotation(
         _adjustParent(parent, ctx.annotation);
         if (!empty(ctx.gtfTranscriptName))
             annotationAssignValueByKey(fragStore, parent, "transcript_name", ctx.gtfTranscriptName);
-
-        // Gff only.
-        if (!empty(ctx.gffTranscriptId))
-            annotationAssignValueByKey(fragStore, parent, "transcript_id", ctx.gffTranscriptId);
     }
 }
 
@@ -341,7 +321,7 @@ readRecords(FragmentStore<TSpec, TConfig> & fragStore,
     while (!atEnd(gffFile))
     {
         readRecord(record, gffFile);
-        _readOneAnnotation(ctx, record, format(gffFile));
+        _readOneAnnotation(ctx, record);
         _storeOneAnnotation(fragStore, ctx);
     }
     _storeClearAnnoBackLinks(fragStore.annotationStore);
diff --git a/include/seqan/store/store_io_sam.h b/include/seqan/store/store_io_sam.h
index f57e483..2976dd9 100644
--- a/include/seqan/store/store_io_sam.h
+++ b/include/seqan/store/store_io_sam.h
@@ -338,6 +338,20 @@ readRecords(FragmentStore<TSpec, TConfig> & store,
     }
 }
 
+/*!
+ * @fn FragmentStore#readRecords
+ * @brief Read all records from one @link BamFileIn @endlink.
+ *
+ * @signature void readRecords(store, bamFileIn, importFlags);
+ *
+ * @param[in,out] store       The @link FragmentStore @endlink object to store the records into.
+ * @param[in,out] bamFileIn   The @link BamFileIn @endlink object to read from.
+ * @param[in]     importFlags The import flags.
+ *
+ * @throw IOError On low-level I/O errors.
+ * @throw ParseError On high-level file format errors.
+ */
+
 template <typename TFSSpec, typename TConfig, typename TDirection, typename TSpec>
 inline void
 readRecords(FragmentStore<TFSSpec, TConfig> & store,
@@ -1109,6 +1123,19 @@ writeRecords(FormattedFile<Bam, Output, TSpec> & bamFile,
     writeAlignments(bamFile, store, functor);
 }
 
+/*!
+ * @fn FragmentStore#writeRecords
+ * @brief Write all records to one @link BamFileOut @endlink.
+ *
+ * @signature void readRecords(bamFileOut, store);
+ *
+ * @param[in,out] bamFileOut  The @link BamFileOut @endlink object to write into.
+ * @param[in]     store       The @link FragmentStore @endlink object.
+ *
+ * @throw IOError On low-level I/O errors.
+ * @throw ParseError On high-level file format errors.
+ */
+
 template <typename TSpec, typename TFSSpec, typename TFSConfig>
 inline void
 writeRecords(FormattedFile<Bam, Output, TSpec> & bamFile,
diff --git a/include/seqan/store/store_io_ucsc.h b/include/seqan/store/store_io_ucsc.h
old mode 100644
new mode 100755
diff --git a/include/seqan/stream.h b/include/seqan/stream.h
index 2a199e9..c0215c5 100644
--- a/include/seqan/stream.h
+++ b/include/seqan/stream.h
@@ -88,19 +88,6 @@
 #include <seqan/stream/file_stream.h>
 #include <seqan/stream/stream_compressor.h>
 #include <seqan/stream/buffered_stream.h>
-
-#if SEQAN_HAS_ZLIB
-#include <zlib.h>
-#include <seqan/stream/iostream_zutil.h>
-#include <seqan/stream/iostream_zip.h>
-#include <seqan/stream/iostream_zip_impl.h>
-#include <seqan/stream/iostream_bgzf.h>
-#endif
-
-#if SEQAN_HAS_BZIP2
-#include <seqan/stream/iostream_bzip2.h>
-#endif
-
 #include <seqan/stream/virtual_stream.h>
 #include <seqan/stream/formatted_file.h>
 
diff --git a/include/seqan/stream/buffered_stream.h b/include/seqan/stream/buffered_stream.h
index db96ba3..91156f0 100644
--- a/include/seqan/stream/buffered_stream.h
+++ b/include/seqan/stream/buffered_stream.h
@@ -48,6 +48,14 @@ template <typename TValue, typename TDirection, typename TTraits = std::char_tra
 class BufferedStreamBuf;
 
 // ============================================================================
+// Tags, Enums
+// ============================================================================
+
+// ============================================================================
+// Metafunctions
+// ============================================================================
+
+// ============================================================================
 // Classes
 // ============================================================================
 
@@ -55,6 +63,8 @@ class BufferedStreamBuf;
 // Class BufferedStream
 // ----------------------------------------------------------------------------
 
+// TODO(esiragusa): @extends BasicStream::Type
+
 /*!
  * @class BufferedStream
  * @implements StreamConcept
@@ -67,7 +77,6 @@ class BufferedStreamBuf;
  * @tparam TUnbufferedStream The type of the unbuffered @link StreamConcept stream @endlink to wrap.
  * @tparam TDirection        The stream direction, one of @link DirectionTags @endlink.
  */
-// TODO(esiragusa): @extends BasicStream::Type
 
 template <typename TUnbufferedStream, typename TDirection>
 class BufferedStream :
@@ -131,9 +140,11 @@ public:
 };
 
 // ----------------------------------------------------------------------------
-// Class BufferedStreamBuf
+// Class BufferedStream
 // ----------------------------------------------------------------------------
 
+// TODO(holtgrew): Implementation detail, should thus be called BufferedStreamBuf_ or documented.
+
 template <typename TValue, typename TDirection, typename TTraits>
 class BufferedStreamBuf :
     public std::basic_streambuf<TValue, TTraits>
@@ -221,14 +232,14 @@ protected:
             numPutback * sizeof(TValue));
 
         // read new characters
-		std::streamsize numRead = streamBufPtr->sgetn(
+        size_t numRead = streamBufPtr->sgetn(
                             &buffer[putbackSize],
                             buffer.size() - putbackSize);
 
         // reset buffer pointers
         setg(&buffer[putbackSize - numPutback],     // beginning of putback area
              &buffer[putbackSize],                  // read position
-             &buffer[putbackSize + static_cast<size_t>(numRead)]);       // end position
+             &buffer[putbackSize + numRead]);       // end position
 
         if (numRead <= 0)
         {
diff --git a/include/seqan/stream/file_stream.h b/include/seqan/stream/file_stream.h
index 6379077..2196d9d 100644
--- a/include/seqan/stream/file_stream.h
+++ b/include/seqan/stream/file_stream.h
@@ -982,8 +982,7 @@ struct FileStreamBuffer :
         }
     }
 
-    // on libc++ TFilePos is different from TPosition for some of our MMapConfig'ed files
-    TPosition _seek(typename TPageFrame::TFilePos pos, Input)
+    TPosition _seek(TPosition pos, Input)
     {
         if (readPage != NULL)
         {
@@ -1013,7 +1012,7 @@ struct FileStreamBuffer :
         return pos;
     }
 
-    TPosition _seek(typename TPageFrame::TFilePos pos, Output)
+    TPosition _seek(TPosition pos, Output)
     {
         if (writePage != NULL)
         {
diff --git a/include/seqan/stream/formatted_file.h b/include/seqan/stream/formatted_file.h
index 71974f3..4cbe736 100644
--- a/include/seqan/stream/formatted_file.h
+++ b/include/seqan/stream/formatted_file.h
@@ -354,8 +354,9 @@ struct FormattedFile
 
         _getCompressionExtensions(extensions,
                                   TFileFormats(),
-                                  CompressedFileTypesWithoutBgzf_(),
-                                  false);
+                                  typename FileFormat<TStream>::Type(),
+//                                  true);
+                                  IsSameType<TDirection, Output>::VALUE);
         return extensions;
     }
 };
@@ -399,12 +400,6 @@ struct FormattedFileContext
     typedef Nothing Type;
 };
 
-template <typename TFormattedFile, typename TStorageSpec>
-struct FormattedFileContext<TFormattedFile const, TStorageSpec>
-{
-    typedef typename FormattedFileContext<TFormattedFile, TStorageSpec>::Type const Type;
-};
-
 // ----------------------------------------------------------------------------
 // Metafunction StorageSwitch
 // ----------------------------------------------------------------------------
@@ -641,9 +636,8 @@ inline bool _open(FormattedFile<TFileFormat, TDirection, TSpec> & file,
 }
 
 template <typename TFileFormat, typename TDirection, typename TSpec, typename TStream>
-inline SEQAN_FUNC_ENABLE_IF(Is<StreamConcept<TStream> >, bool)
-open(FormattedFile<TFileFormat, TDirection, TSpec> & file,
-     TStream &stream)
+inline bool open(FormattedFile<TFileFormat, TDirection, TSpec> & file,
+                 TStream &stream)
 {
     return _open(file, stream, _mapFileFormatToCompressionFormat(file.format), False());
 }
@@ -748,8 +742,6 @@ inline bool close(FormattedFile<TFileFormat, TDirection, TSpec> & file)
  *
  * @param[in,out] file The FormattedFile to check.
  * @return bool <tt>true</tt> in the case of success, <tt>false</tt> otherwise.
- *
- * @datarace Not thread safe.
  */
 
 template <typename TFileFormat, typename TDirection, typename TSpec>
diff --git a/include/seqan/stream/iostream_bgzf.h b/include/seqan/stream/iostream_bgzf.h
deleted file mode 100644
index 2ce0719..0000000
--- a/include/seqan/stream/iostream_bgzf.h
+++ /dev/null
@@ -1,923 +0,0 @@
-// zipstream Library License:
-// --------------------------
-//
-// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
-//
-// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution
-//
-//
-// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003   (original zlib stream)
-// Author: David Weese, dave.weese at gmail.com, 2014             (extension to parallel block-wise compression in bgzf format)
-
-#ifndef INCLUDE_SEQAN_STREAM_IOSTREAM_BGZF_H_
-#define INCLUDE_SEQAN_STREAM_IOSTREAM_BGZF_H_
-
-namespace seqan {
-
-const unsigned BGZF_MAX_BLOCK_SIZE = 64 * 1024;
-const unsigned BGZF_BLOCK_HEADER_LENGTH = 18;
-const unsigned BGZF_BLOCK_FOOTER_LENGTH = 8;
-const unsigned ZLIB_BLOCK_OVERHEAD = 5; // 5 bytes block overhead (see 3.2.4. at http://www.gzip.org/zlib/rfc-deflate.html)
-
-// Reduce the maximal input size, such that the compressed data
-// always fits in one block even for level Z_NO_COMPRESSION.
-const unsigned BGZF_BLOCK_SIZE = BGZF_MAX_BLOCK_SIZE - BGZF_BLOCK_HEADER_LENGTH - BGZF_BLOCK_FOOTER_LENGTH - ZLIB_BLOCK_OVERHEAD;
-
-// ===========================================================================
-// Classes
-// ===========================================================================
-
-// --------------------------------------------------------------------------
-// Class basic_bgzf_streambuf
-// --------------------------------------------------------------------------
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bgzf_streambuf : public std::basic_streambuf<Elem, Tr>
-{
-public:
-    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
-    typedef ElemA char_allocator_type;
-    typedef ByteT byte_type;
-    typedef ByteAT byte_allocator_type;
-    typedef byte_type* byte_buffer_type;
-    typedef typename Tr::char_type char_type;
-    typedef typename Tr::int_type int_type;
-
-    typedef ConcurrentQueue<size_t, Suspendable<Limit> > TJobQueue;
-
-    struct OutputBuffer
-    {
-        char    buffer[BGZF_MAX_BLOCK_SIZE];
-        size_t  size;
-    };
-
-    struct BufferWriter
-    {
-        ostream_reference ostream;
-
-        BufferWriter(ostream_reference ostream) :
-            ostream(ostream)
-        {}
-
-        bool operator() (OutputBuffer const & outputBuffer)
-        {
-            ostream.write(outputBuffer.buffer, outputBuffer.size);
-            return ostream.good();
-        }
-    };
-
-    struct CompressionJob
-    {
-        typedef std::vector<char_type, char_allocator_type> TBuffer;
-
-        TBuffer         buffer;
-        size_t          size;
-        OutputBuffer    *outputBuffer;
-
-        CompressionJob() :
-            buffer(BGZF_BLOCK_SIZE / sizeof(char_type), 0),
-            size(0),
-            outputBuffer(NULL)
-        {}
-    };
-
-    // string of recycable jobs
-    size_t                  numThreads;
-    size_t                  numJobs;
-    String<CompressionJob>  jobs;
-    TJobQueue               jobQueue;
-    TJobQueue               idleQueue;
-    Serializer<
-        OutputBuffer,
-        BufferWriter>       serializer;
-
-    size_t                  currentJobId;
-    bool                    currentJobAvail;
-
-
-    struct CompressionThread
-    {
-        basic_bgzf_streambuf            *streamBuf;
-        CompressionContext<BgzfFile>    compressionCtx;
-        size_t                          threadNum;
-
-        void operator()()
-        {
-            ScopedReadLock<TJobQueue> readLock(streamBuf->jobQueue);
-            ScopedWriteLock<TJobQueue> writeLock(streamBuf->idleQueue);
-
-            // wait for a new job to become available
-            bool success = true;
-            while (success)
-            {
-                size_t jobId = -1;
-                if (!popFront(jobId, streamBuf->jobQueue))
-                    return;
-
-                CompressionJob &job = streamBuf->jobs[jobId];
-
-                // compress block with zlib
-                job.outputBuffer->size = _compressBlock(
-                    job.outputBuffer->buffer, sizeof(job.outputBuffer->buffer),
-                    &job.buffer[0], job.size, compressionCtx);
-
-                success = releaseValue(streamBuf->serializer, job.outputBuffer);
-                appendValue(streamBuf->idleQueue, jobId);
-            }
-        }
-    };
-
-    // array of worker threads
-    Thread<CompressionThread>   *threads;
-
-    basic_bgzf_streambuf(ostream_reference ostream_,
-                         size_t numThreads = 16,
-                         size_t jobsPerThread = 8) :
-        numThreads(numThreads),
-        numJobs(numThreads * jobsPerThread),
-        jobQueue(numJobs),
-        idleQueue(numJobs),
-        serializer(ostream_, numThreads * jobsPerThread)
-    {
-        resize(jobs, numJobs, Exact());
-        currentJobId = 0;
-
-        lockWriting(jobQueue);
-        lockReading(idleQueue);
-        setReaderWriterCount(jobQueue, numThreads, 1);
-        setReaderWriterCount(idleQueue, 1, numThreads);
-
-        for (unsigned i = 0; i < numJobs; ++i)
-        {
-            bool success = appendValue(idleQueue, i);
-            ignoreUnusedVariableWarning(success);
-            SEQAN_ASSERT(success);
-        }
-
-        threads = new Thread<CompressionThread>[numThreads];
-        for (unsigned i = 0; i < numThreads; ++i)
-        {
-            threads[i].worker.streamBuf = this;
-            threads[i].worker.threadNum = i;
-            run(threads[i]);
-        }
-
-        currentJobAvail = popFront(currentJobId, idleQueue);
-        SEQAN_ASSERT(currentJobAvail);
-
-        CompressionJob &job = jobs[currentJobId];
-        job.outputBuffer = aquireValue(serializer);
-        this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
-    }
-
-    ~basic_bgzf_streambuf()
-    {
-        // the buffer is now (after addFooter()) and flush will append the empty EOF marker
-        flush(true);
-
-        unlockWriting(jobQueue);
-        unlockReading(idleQueue);
-
-        for (unsigned i = 0; i < numThreads; ++i)
-            waitFor(threads[i]);
-        delete[] threads;
-    }
-
-    bool compressBuffer(size_t size)
-    {
-        // submit current job
-        if (currentJobAvail)
-        {
-            jobs[currentJobId].size = size;
-            appendValue(jobQueue, currentJobId);
-        }
-
-        // recycle existing idle job
-        if (!(currentJobAvail = popFront(currentJobId, idleQueue)))
-            return false;
-
-        jobs[currentJobId].outputBuffer = aquireValue(serializer);
-
-        return serializer;
-    }
-
-    int_type overflow(int_type c)
-    {
-        int w = static_cast<int>(this->pptr() - this->pbase());
-        if (c != EOF)
-        {
-            *this->pptr() = c;
-            ++w;
-        }
-        if (compressBuffer(w))
-        {
-            CompressionJob &job = jobs[currentJobId];
-            this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
-            return c;
-        }
-        else
-        {
-            return EOF;
-        }
-    }
-
-    std::streamsize flush(bool flushEmptyBuffer = false)
-    {
-        int w = static_cast<int>(this->pptr() - this->pbase());
-        if ((w != 0 || flushEmptyBuffer) && compressBuffer(w))
-        {
-            CompressionJob &job = jobs[currentJobId];
-            this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
-        }
-        else
-        {
-            w = 0;
-        }
-
-        // wait for running compressor threads
-        waitForMinSize(idleQueue, numJobs - 1);
-
-        serializer.worker.ostream.flush();
-        return w;
-    }
-
-    int sync()
-    {
-        if (this->pptr() != this->pbase())
-        {
-            int c = overflow(EOF);
-            if (c == EOF)
-                return -1;
-        }
-        return 0;
-    }
-
-    void addFooter()
-    {
-        // we flush the filled buffer here, so that an empty (EOF) buffer is flushed in the d'tor
-        if (this->pptr() != this->pbase())
-            overflow(EOF);
-    }
-
-    // returns a reference to the output stream
-    ostream_reference get_ostream() const    { return serializer.worker.ostream; };
-};
-
-// --------------------------------------------------------------------------
-// Class basic_unbgzf_streambuf
-// --------------------------------------------------------------------------
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_unbgzf_streambuf :
-    public std::basic_streambuf<Elem, Tr>
-{
-public:
-    typedef std::basic_istream<Elem, Tr>& istream_reference;
-    typedef ElemA char_allocator_type;
-    typedef ByteT byte_type;
-    typedef ByteAT byte_allocator_type;
-    typedef byte_type* byte_buffer_type;
-    typedef typename Tr::char_type char_type;
-    typedef typename Tr::int_type int_type;
-    typedef typename Tr::off_type off_type;
-    typedef typename Tr::pos_type pos_type;
-
-    typedef std::vector<char_type, char_allocator_type>     TBuffer;
-    typedef ConcurrentQueue<int, Suspendable<Limit> >       TJobQueue;
-
-    static const size_t MAX_PUTBACK = 4;
-
-    struct Serializer
-    {
-        istream_reference   istream;
-        Mutex               lock;
-        IOError             *error;
-        off_type            fileOfs;
-
-        Serializer(istream_reference istream) :
-            istream(istream),
-            lock(false),
-            error(NULL),
-            fileOfs(0u)
-        {}
-
-        ~Serializer()
-        {
-            delete error;
-        }
-    };
-
-    Serializer serializer;
-
-    struct DecompressionJob
-    {
-        typedef std::vector<byte_type, byte_allocator_type> TInputBuffer;
-
-        TInputBuffer    inputBuffer;
-        TBuffer         buffer;
-        off_type        fileOfs;
-        int             size;
-        unsigned        compressedSize;
-
-        CriticalSection cs;
-        Condition       readyEvent;
-        bool            ready;
-
-        DecompressionJob() :
-            inputBuffer(BGZF_MAX_BLOCK_SIZE, 0),
-            buffer(MAX_PUTBACK + BGZF_MAX_BLOCK_SIZE / sizeof(char_type), 0),
-            fileOfs(),
-            size(0),
-            readyEvent(cs),
-            ready(true)
-        {}
-
-        DecompressionJob(DecompressionJob const &other) :
-            inputBuffer(other.inputBuffer),
-            buffer(other.buffer),
-            fileOfs(other.fileOfs),
-            size(other.size),
-            readyEvent(cs),
-            ready(other.ready)
-        {}
-    };
-
-    // string of recycable jobs
-    size_t                      numThreads;
-    size_t                      numJobs;
-    String<DecompressionJob>    jobs;
-    TJobQueue                   runningQueue;
-    TJobQueue                   todoQueue;
-    int                         currentJobId;
-
-    struct DecompressionThread
-    {
-        basic_unbgzf_streambuf          *streamBuf;
-        CompressionContext<BgzfFile>    compressionCtx;
-
-        void operator()()
-        {
-            ScopedReadLock<TJobQueue> readLock(streamBuf->todoQueue);
-            ScopedWriteLock<TJobQueue> writeLock(streamBuf->runningQueue);
-
-            // wait for a new job to become available
-            while (true)
-            {
-                int jobId = -1;
-                if (!popFront(jobId, streamBuf->todoQueue))
-                    return;
-
-                DecompressionJob &job = streamBuf->jobs[jobId];
-                size_t tailLen = 0;
-
-                // typically the idle queue contains only ready jobs
-                // however, if seek() fast forwards running jobs into the todoQueue
-                // the caller defers the task of waiting to the decompression threads
-                if (!job.ready)
-                {
-                    ScopedLock<CriticalSection> lock(job.cs);
-                    if (!job.ready)
-                    {
-                        waitFor(job.readyEvent);
-                        job.ready = true;
-                    }
-                }
-
-                {
-                    ScopedLock<Mutex> scopedLock(streamBuf->serializer.lock);
-
-                    if (streamBuf->serializer.error != NULL)
-                        return;
-
-                    // remember start offset (for tellg later)
-                    job.fileOfs = streamBuf->serializer.fileOfs;
-                    job.size = -1;
-                    job.compressedSize = 0;
-
-                    // only load if not at EOF
-                    if (job.fileOfs != -1)
-                    {
-                        // read header
-                        streamBuf->serializer.istream.read(
-                            (char*)&job.inputBuffer[0],
-                            BGZF_BLOCK_HEADER_LENGTH);
-
-                        if (!streamBuf->serializer.istream.good())
-                        {
-                            streamBuf->serializer.fileOfs = -1;
-                            if (streamBuf->serializer.istream.eof())
-                                goto eofSkip;
-                            streamBuf->serializer.error = new IOError("Stream read error.");
-                            return;
-                        }
-
-                        // check header
-                        if (!_bgzfCheckHeader(&job.inputBuffer[0]))
-                        {
-                            streamBuf->serializer.fileOfs = -1;
-                            streamBuf->serializer.error = new IOError("Invalid BGZF block header.");
-                            return;
-                        }
-
-                        // extract length of compressed data
-                        tailLen = _bgzfUnpack16(&job.inputBuffer[0] + 16) + 1u - BGZF_BLOCK_HEADER_LENGTH;
-
-                        // read compressed data and tail
-                        streamBuf->serializer.istream.read(
-                            (char*)&job.inputBuffer[0] + BGZF_BLOCK_HEADER_LENGTH,
-                            tailLen);
-
-                        if (!streamBuf->serializer.istream.good())
-                        {
-                            streamBuf->serializer.fileOfs = -1;
-                            if (streamBuf->serializer.istream.eof())
-                                goto eofSkip;
-                            streamBuf->serializer.error = new IOError("Stream read error.");
-                            return;
-                        }
-
-                        job.compressedSize = BGZF_BLOCK_HEADER_LENGTH + tailLen;
-                        streamBuf->serializer.fileOfs += job.compressedSize;
-                        job.ready = false;
-
-                    eofSkip:
-                        streamBuf->serializer.istream.clear(
-                            streamBuf->serializer.istream.rdstate() & ~std::ios_base::failbit);
-                    }
-
-                    if (!appendValue(streamBuf->runningQueue, jobId))
-                    {
-                        // signal that job is ready
-                        {
-                            ScopedLock<CriticalSection> lock(job.cs);
-                            job.ready = true;
-                            signal(job.readyEvent);
-                        }
-                        return;
-                    }
-                }
-
-                if (!job.ready)
-                {
-                    // decompress block
-                    job.size = _decompressBlock(
-                        &job.buffer[0] + MAX_PUTBACK, capacity(job.buffer),
-                        &job.inputBuffer[0], job.compressedSize, compressionCtx);
-
-                    // signal that job is ready
-                    {
-                        ScopedLock<CriticalSection> lock(job.cs);
-                        job.ready = true;
-                        signal(job.readyEvent);
-                    }
-                }
-            }
-        }
-    };
-
-    // array of worker threads
-    Thread<DecompressionThread> *threads;
-    TBuffer                     putbackBuffer;
-
-    basic_unbgzf_streambuf(istream_reference istream_,
-                           size_t numThreads = 16,
-                           size_t jobsPerThread = 8) :
-        serializer(istream_),
-        numThreads(numThreads),
-        numJobs(numThreads * jobsPerThread),
-        runningQueue(numJobs),
-        todoQueue(numJobs),
-        putbackBuffer(MAX_PUTBACK)
-    {
-        resize(jobs, numJobs, Exact());
-        currentJobId = -1;
-
-        lockReading(runningQueue);
-        lockWriting(todoQueue);
-        setReaderWriterCount(runningQueue, 1, numThreads);
-        setReaderWriterCount(todoQueue, numThreads, 1);
-
-        for (unsigned i = 0; i < numJobs; ++i)
-        {
-            bool success = appendValue(todoQueue, i);
-            ignoreUnusedVariableWarning(success);
-            SEQAN_ASSERT(success);
-        }
-
-        threads = new Thread<DecompressionThread>[numThreads];
-        for (unsigned i = 0; i < numThreads; ++i)
-        {
-            threads[i].worker.streamBuf = this;
-            run(threads[i]);
-        }
-    }
-
-    ~basic_unbgzf_streambuf()
-    {
-        unlockWriting(todoQueue);
-        unlockReading(runningQueue);
-
-        for (unsigned i = 0; i < numThreads; ++i)
-            waitFor(threads[i]);
-        delete[] threads;
-    }
-
-    int_type underflow()
-    {
-        // no need to use the next buffer?
-        if (this->gptr() && this->gptr() < this->egptr())
-            return Tr::to_int_type(*this->gptr());
-
-        size_t putback = this->gptr() - this->eback();
-        if (putback > MAX_PUTBACK)
-            putback = MAX_PUTBACK;
-
-        // save at most MAX_PUTBACK characters from previous page to putback buffer
-        if (putback != 0)
-            std::copy(
-                this->gptr() - putback,
-                this->gptr(),
-                &putbackBuffer[0]);
-
-        if (currentJobId >= 0)
-            appendValue(todoQueue, currentJobId);
-
-        while (true)
-        {
-            if (!popFront(currentJobId, runningQueue))
-            {
-                currentJobId = -1;
-                SEQAN_ASSERT(serializer.error != NULL);
-                if (serializer.error != NULL)
-                    throw *serializer.error;
-                return EOF;
-            }
-
-            DecompressionJob &job = jobs[currentJobId];
-
-            // restore putback buffer
-            this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
-            if (putback != 0)
-                std::copy(
-                    &putbackBuffer[0],
-                    &putbackBuffer[0] + putback,
-                    &job.buffer[0] + (MAX_PUTBACK - putback));
-
-            // wait for the end of decompression
-            {
-                ScopedLock<CriticalSection> lock(job.cs);
-                if (!job.ready)
-                    waitFor(job.readyEvent);
-            }
-
-            size_t size = (job.size != -1)? job.size : 0;
-
-            // reset buffer pointers
-            this->setg(
-                  &job.buffer[0] + (MAX_PUTBACK - putback),     // beginning of putback area
-                  &job.buffer[0] + MAX_PUTBACK,                 // read position
-                  &job.buffer[0] + (MAX_PUTBACK + size));       // end of buffer
-
-            if (job.size == -1)
-                return EOF;
-            else if (job.size > 0)
-                return Tr::to_int_type(*this->gptr());      // return next character
-        }
-    }
-
-    pos_type seekoff(off_type ofs, std::ios_base::seekdir dir, std::ios_base::openmode openMode)
-    {
-        if ((openMode & (std::ios_base::in | std::ios_base::out)) == std::ios_base::in)
-        {
-            if (dir == std::ios_base::cur && ofs >= 0)
-            {
-                // forward delta seek
-                while (currentJobId < 0 || this->egptr() - this->gptr() < ofs)
-                {
-                    ofs -= this->egptr() - this->gptr();
-                    if (this->underflow() == EOF)
-                        break;
-                }
-
-                if (currentJobId >= 0 && ofs <= this->egptr() - this->gptr())
-                {
-                    DecompressionJob &job = jobs[currentJobId];
-
-                    // reset buffer pointers
-                    this->setg(
-                          this->eback(),            // beginning of putback area
-                          this->gptr() + ofs,       // read position
-                          this->egptr());           // end of buffer
-
-                    if (this->gptr() != this->egptr())
-                        return pos_type((job.fileOfs << 16) + ((this->gptr() - &job.buffer[MAX_PUTBACK])));
-                    else
-                        return pos_type((job.fileOfs + job.compressedSize) << 16);
-                }
-
-            }
-            else if (dir == std::ios_base::beg)
-            {
-                // random seek
-                std::streampos destFileOfs = ofs >> 16;
-
-                // are we in the same block?
-                if (currentJobId >= 0 && jobs[currentJobId].fileOfs == (off_type)destFileOfs)
-                {
-                    DecompressionJob &job = jobs[currentJobId];
-
-                    // reset buffer pointers
-                    this->setg(
-                          this->eback(),                                        // beginning of putback area
-                          &job.buffer[0] + (MAX_PUTBACK + (ofs & 0xffff)),      // read position
-                          this->egptr());                                       // end of buffer
-                    return ofs;
-                }
-
-                // ok, different block
-                {
-                    ScopedLock<Mutex> scopedLock(serializer.lock);
-
-                    // remove all running jobs and put them in the idle queue unless we
-                    // find our seek target
-
-                    if (currentJobId >= 0)
-                        appendValue(todoQueue, currentJobId);
-
-                    // Note that if we are here the current job does not represent the sought block.
-                    // Hence if the running queue is empty we need to explicitly unset the jobId,
-                    // otherwise we would not update the serializers istream pointer to the correct position.
-                    if (empty(runningQueue))
-                        currentJobId = -1;
-
-                    // empty is thread-safe in serializer.lock
-                    while (!empty(runningQueue))
-                    {
-                        popFront(currentJobId, runningQueue);
-
-                        if (jobs[currentJobId].fileOfs == (off_type)destFileOfs)
-                            break;
-
-                        // push back useless job
-                        appendValue(todoQueue, currentJobId);
-                        currentJobId = -1;
-                    }
-
-                    if (currentJobId == -1)
-                    {
-                        SEQAN_ASSERT(empty(runningQueue));
-                        serializer.istream.clear(serializer.istream.rdstate() & ~std::ios_base::eofbit);
-                        if (serializer.istream.rdbuf()->pubseekpos(destFileOfs, std::ios_base::in) == destFileOfs)
-                            serializer.fileOfs = destFileOfs;
-                        else
-                            currentJobId = -2;      // temporarily signals a seek error
-                    }
-                }
-
-                // if our block wasn't in the running queue yet, it should now
-                // be the first that falls out after modifying serializer.fileOfs
-                if (currentJobId == -1)
-                    popFront(currentJobId, runningQueue);
-                else if (currentJobId == -2)
-                    currentJobId = -1;
-
-                if (currentJobId >= 0)
-                {
-                    // wait for the end of decompression
-                    DecompressionJob &job = jobs[currentJobId];
-                    {
-                        ScopedLock<CriticalSection> lock(job.cs);
-                        if (!job.ready)
-                            waitFor(job.readyEvent);
-                    }
-
-                    SEQAN_ASSERT_EQ(job.fileOfs, (off_type)destFileOfs);
-
-                    // reset buffer pointers
-                    this->setg(
-                          &job.buffer[0] + MAX_PUTBACK,                     // no putback area
-                          &job.buffer[0] + (MAX_PUTBACK + (ofs & 0xffff)),  // read position
-                          &job.buffer[0] + (MAX_PUTBACK + job.size));       // end of buffer
-                    return ofs;
-                }
-            }
-        }
-        return pos_type(off_type(-1));
-    }
-
-    pos_type seekpos(pos_type pos, std::ios_base::openmode openMode)
-    {
-        return seekoff(off_type(pos), std::ios_base::beg, openMode);
-    }
-
-    // returns the compressed input istream
-    istream_reference get_istream()    { return serializer.istream; };
-};
-
-// --------------------------------------------------------------------------
-// Class basic_bgzf_ostreambase
-// --------------------------------------------------------------------------
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bgzf_ostreambase : virtual public std::basic_ios<Elem,Tr>
-{
-public:
-    typedef std::basic_ostream<Elem, Tr>&                        ostream_reference;
-    typedef basic_bgzf_streambuf<Elem, Tr, ElemA, ByteT, ByteAT> bgzf_streambuf_type;
-
-    basic_bgzf_ostreambase(ostream_reference ostream_)
-        : m_buf(ostream_)
-    {
-        this->init(&m_buf );
-    };
-
-    // returns the underlying zip ostream object
-    bgzf_streambuf_type* rdbuf()            { return &m_buf; };
-    // returns the bgzf error state
-    int get_zerr() const                    { return m_buf.get_err(); };
-    // returns the uncompressed data crc
-    long get_crc() const                    { return m_buf.get_crc(); };
-    // returns the compressed data size
-    long get_out_size() const               { return m_buf.get_out_size(); };
-    // returns the uncompressed data size
-    long get_in_size() const                { return m_buf.get_in_size(); };
-
-private:
-    bgzf_streambuf_type m_buf;
-};
-
-// --------------------------------------------------------------------------
-// Class basic_bgzf_istreambase
-// --------------------------------------------------------------------------
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bgzf_istreambase : virtual public std::basic_ios<Elem,Tr>
-{
-public:
-    typedef std::basic_istream<Elem, Tr>&                           istream_reference;
-    typedef basic_unbgzf_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>  unbgzf_streambuf_type;
-
-    basic_bgzf_istreambase(istream_reference ostream_)
-        : m_buf(ostream_)
-    {
-        this->init(&m_buf );
-    };
-
-    // returns the underlying unzip istream object
-    unbgzf_streambuf_type* rdbuf() { return &m_buf; };
-
-    // returns the bgzf error state
-    int get_zerr() const                    { return m_buf.get_zerr(); };
-    // returns the uncompressed data crc
-    long get_crc() const                    { return m_buf.get_crc(); };
-    // returns the uncompressed data size
-    long get_out_size() const               { return m_buf.get_out_size(); };
-    // returns the compressed data size
-    long get_in_size() const                { return m_buf.get_in_size(); };
-
-private:
-    unbgzf_streambuf_type m_buf;
-};
-
-// --------------------------------------------------------------------------
-// Class basic_bgzf_ostream
-// --------------------------------------------------------------------------
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bgzf_ostream :
-    public basic_bgzf_ostreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
-    public std::basic_ostream<Elem,Tr>
-{
-public:
-    typedef basic_bgzf_ostreambase<Elem,Tr,ElemA,ByteT,ByteAT> bgzf_ostreambase_type;
-    typedef std::basic_ostream<Elem,Tr>                        ostream_type;
-    typedef ostream_type&                                      ostream_reference;
-
-    basic_bgzf_ostream(ostream_reference ostream_) :
-        bgzf_ostreambase_type(ostream_),
-        ostream_type(bgzf_ostreambase_type::rdbuf())
-    {}
-
-    // flush inner buffer and zipper buffer
-    basic_bgzf_ostream<Elem,Tr>& zflush()
-    {
-        this->flush(); this->rdbuf()->flush(); return *this;
-    };
-
-    ~basic_bgzf_ostream()
-    {
-        this->rdbuf()->addFooter();
-    }
-
-private:
-    static void put_long(ostream_reference out_, unsigned long x_);
-#ifdef _WIN32
-    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
-    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
-#endif
-};
-
-// --------------------------------------------------------------------------
-// Class basic_bgzf_istream
-// --------------------------------------------------------------------------
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bgzf_istream :
-    public basic_bgzf_istreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
-    public std::basic_istream<Elem,Tr>
-{
-public:
-    typedef basic_bgzf_istreambase<Elem,Tr,ElemA,ByteT,ByteAT> bgzf_istreambase_type;
-    typedef std::basic_istream<Elem,Tr>                        istream_type;
-    typedef istream_type &                                     istream_reference;
-    typedef char                                               byte_type;
-
-    basic_bgzf_istream(istream_reference istream_) :
-        bgzf_istreambase_type(istream_),
-        istream_type(bgzf_istreambase_type::rdbuf()),
-        m_is_gzip(false),
-        m_gbgzf_data_size(0)
-    {};
-
-    // returns true if it is a gzip file
-    bool is_gzip() const                { return m_is_gzip; };
-    // return data size check
-    bool check_data_size() const        { return this->get_out_size() == m_gbgzf_data_size; };
-
-    // return the data size in the file
-    long get_gbgzf_data_size() const    { return m_gbgzf_data_size; };
-
-protected:
-    static void read_long(istream_reference in_, unsigned long& x_);
-
-    int check_header();
-    bool m_is_gzip;
-    unsigned long m_gbgzf_data_size;
-
-#ifdef _WIN32
-private:
-    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
-    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
-#endif
-};
-
-// ===========================================================================
-// Typedefs
-// ===========================================================================
-
-// A typedef for basic_bgzf_ostream<char>
-typedef basic_bgzf_ostream<char> bgzf_ostream;
-// A typedef for basic_bgzf_ostream<wchar_t>
-typedef basic_bgzf_ostream<wchar_t> bgzf_wostream;
-// A typedef for basic_bgzf_istream<char>
-typedef basic_bgzf_istream<char> bgzf_istream;
-// A typedef for basic_bgzf_istream<wchart>
-typedef basic_bgzf_istream<wchar_t> bgzf_wistream;
-
-}  // namespace seqan
-
-#endif // INCLUDE_SEQAN_STREAM_IOSTREAM_BGZF_H_
diff --git a/include/seqan/stream/iostream_bzip2.h b/include/seqan/stream/iostream_bzip2.h
deleted file mode 100644
index 94f134b..0000000
--- a/include/seqan/stream/iostream_bzip2.h
+++ /dev/null
@@ -1,302 +0,0 @@
-// bzip2stream Library License:
-// --------------------------
-//
-// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
-//
-// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution
-//
-// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
-
-#ifndef INCLUDE_SEQAN_STREAM_IOSTREAM_BZIP2_H_
-#define INCLUDE_SEQAN_STREAM_IOSTREAM_BZIP2_H_
-
-#define BZ_NO_STDIO
-
-#include <bzlib.h>
-#include <vector>
-#include <iostream>
-#include <algorithm>
-
-namespace bzip2_stream{
-
-const size_t default_buffer_size = 4096;
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bzip2_streambuf :
-    public std::basic_streambuf<Elem, Tr>
-{
-public:
-    typedef std::basic_streambuf< Elem, Tr > basic_streambuf_type;
-    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
-    typedef ElemA char_allocator_type;
-    typedef ByteT byte_type;
-    typedef ByteAT byte_allocator_type;
-    typedef byte_type* byte_buffer_type;
-    typedef typename Tr::char_type char_type;
-    typedef typename Tr::int_type int_type;
-    typedef std::vector<byte_type, byte_allocator_type > byte_vector_type;
-    typedef std::vector<char_type, char_allocator_type > char_vector_type;
-
-    using basic_streambuf_type::epptr;
-    using basic_streambuf_type::pbase;
-    using basic_streambuf_type::pptr;
-
-    basic_bzip2_streambuf(
-        ostream_reference ostream_,
-        size_t block_size_100k_ ,
-        size_t verbosity_ ,
-        size_t work_factor_,
-        size_t buffer_size_
-        );
-
-    ~basic_bzip2_streambuf();
-
-    int sync ();
-    int_type overflow (int_type c);
-
-    std::streamsize flush(int flush_mode);
-    int get_zerr() const
-    {    return m_err;};
-    __uint64 get_in_size() const
-    {
-        return ((__uint64)m_bzip2_stream.total_in_hi32 << 32)
-                + m_bzip2_stream.total_in_lo32;
-    }
-    __uint64 get_out_size() const
-    {
-        return ((__uint64)m_bzip2_stream.total_out_hi32 << 32)
-                + m_bzip2_stream.total_out_lo32;
-    }
-private:
-    bool bzip2_to_stream( char_type*, std::streamsize);
-    size_t fill_input_buffer();
-
-    ostream_reference m_ostream;
-    bz_stream m_bzip2_stream;
-    int m_err;
-    byte_vector_type m_output_buffer;
-    char_vector_type m_buffer;
-};
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_unbzip2_streambuf :
-    public std::basic_streambuf<Elem, Tr>
-{
-public:
-    typedef std::basic_istream<Elem, Tr>& istream_reference;
-    typedef ElemA char_allocator_type;
-    typedef ByteT byte_type;
-    typedef ByteAT byte_allocator_type;
-    typedef byte_type* byte_buffer_type;
-    typedef typename Tr::char_type char_type;
-    typedef typename Tr::int_type int_type;
-    typedef std::vector<byte_type, byte_allocator_type > byte_vector_type;
-    typedef std::vector<char_type, char_allocator_type > char_vector_type;
-
-    basic_unbzip2_streambuf(
-        istream_reference istream_,
-        size_t verbosity_,
-        bool small_,
-        size_t read_buffer_size_,
-        size_t input_buffer_size_
-        );
-
-    ~basic_unbzip2_streambuf();
-
-    int_type underflow();
-
-    istream_reference get_istream()        {    return m_istream;};
-    bz_stream& get_bzip2_stream()        {    return m_bzip2_stream;};
-    int get_zerr() const                {    return m_err;};
-private:
-    std::streamsize unbzip2_from_stream( char_type*, std::streamsize);
-    void put_back_from_bzip2_stream();
-    size_t fill_input_buffer();
-
-    istream_reference m_istream;
-    bz_stream m_bzip2_stream;
-    int m_err;
-    byte_vector_type m_input_buffer;
-    char_vector_type m_buffer;
-};
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bzip2_ostreambase : virtual public std::basic_ios<Elem,Tr>
-{
-public:
-    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
-    typedef basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT> bzip2_streambuf_type;
-
-    basic_bzip2_ostreambase(
-        ostream_reference ostream_,
-        size_t block_size_100k_ ,
-        size_t verbosity_ ,
-        size_t work_factor_,
-        size_t buffer_size_
-        )
-        : m_buf(ostream_,block_size_100k_, verbosity_, work_factor_, buffer_size_)
-    {
-        this->init(&m_buf );
-    };
-
-    bzip2_streambuf_type* rdbuf() { return &m_buf; };
-
-private:
-    bzip2_streambuf_type m_buf;
-};
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bzip2_istreambase : virtual public std::basic_ios<Elem,Tr>
-{
-public:
-    typedef std::basic_istream<Elem, Tr>& istream_reference;
-    typedef basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT> unbzip2_streambuf_type;
-
-    basic_bzip2_istreambase(
-        istream_reference ostream_,
-        size_t verbosity_,
-        bool small_,
-        size_t read_buffer_size_,
-        size_t input_buffer_size_
-        )
-        : m_buf(
-            ostream_,
-            verbosity_,
-            small_,
-            read_buffer_size_,
-            input_buffer_size_
-            )
-    {
-        this->init(&m_buf );
-    };
-
-    unbzip2_streambuf_type* rdbuf() { return &m_buf; };
-
-private:
-    unbzip2_streambuf_type m_buf;
-};
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bzip2_ostream :
-    public basic_bzip2_ostreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
-    public std::basic_ostream<Elem,Tr>
-{
-public:
-    typedef basic_bzip2_ostreambase<
-        Elem,Tr,ElemA,ByteT,ByteAT> bzip2_ostreambase_type;
-    typedef std::basic_ostream<Elem,Tr> ostream_type;
-    typedef ostream_type& ostream_reference;
-
-    basic_bzip2_ostream(
-        ostream_reference ostream_,
-        size_t block_size_100k_ = 9,
-        size_t verbosity_ = 0,
-        size_t work_factor_ = 30,
-        size_t buffer_size_ = default_buffer_size
-        )
-    :
-        bzip2_ostreambase_type(ostream_,block_size_100k_, verbosity_, work_factor_,buffer_size_),
-        ostream_type(bzip2_ostreambase_type::rdbuf())
-    {
-
-    };
-
-    basic_bzip2_ostream& add_header();
-    basic_bzip2_ostream& zflush()
-    {
-        this->flush(); this->rdbuf()->flush(); return *this;
-    };
-
-#ifdef _WIN32
-private:
-    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
-    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
-#endif
-};
-
-template<
-    typename Elem,
-    typename Tr = std::char_traits<Elem>,
-    typename ElemA = std::allocator<Elem>,
-    typename ByteT = char,
-    typename ByteAT = std::allocator<ByteT>
->
-class basic_bzip2_istream :
-    public basic_bzip2_istreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
-    public std::basic_istream<Elem,Tr>
-{
-public:
-    typedef basic_bzip2_istreambase<
-        Elem,Tr,ElemA,ByteT,ByteAT> bzip2_istreambase_type;
-    typedef std::basic_istream<Elem,Tr> istream_type;
-    typedef istream_type& istream_reference;
-    typedef unsigned char byte_type;
-
-    basic_bzip2_istream(
-        istream_reference istream_,
-        size_t verbosity_ = 0,
-        bool small_ = false,
-        size_t read_buffer_size_ = default_buffer_size,
-        size_t input_buffer_size_ = default_buffer_size
-        )
-      :
-        bzip2_istreambase_type(istream_,verbosity_, small_, read_buffer_size_, input_buffer_size_),
-        istream_type(bzip2_istreambase_type::rdbuf())
-    {};
-#ifdef _WIN32
-private:
-    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
-    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
-#endif
-};
-
-typedef basic_bzip2_ostream<char> bzip2_ostream;
-typedef basic_bzip2_ostream<wchar_t> bzip2_wostream;
-typedef basic_bzip2_istream<char> bzip2_istream;
-typedef basic_bzip2_istream<wchar_t> bzip2_wistream;
-
-} // bzip2_stream
-
-#include "iostream_bzip2_impl.h"
-
-#endif // INCLUDE_SEQAN_STREAM_IOSTREAM_BZIP2_H_
diff --git a/include/seqan/stream/iostream_bzip2_impl.h b/include/seqan/stream/iostream_bzip2_impl.h
deleted file mode 100644
index f0e5143..0000000
--- a/include/seqan/stream/iostream_bzip2_impl.h
+++ /dev/null
@@ -1,429 +0,0 @@
-// bzip2stream Library License:
-// --------------------------
-//
-// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
-//
-// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution
-//
-// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
-
-#ifndef INCLUDE_SEQAN_STREAM_IOSTREAM_BZIP2_IMPL_H_
-#define INCLUDE_SEQAN_STREAM_IOSTREAM_BZIP2_IMPL_H_
-
-#include "iostream_bzip2.h"
-
-namespace bzip2_stream{
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >:: basic_bzip2_streambuf(
-        ostream_reference ostream_,
-        size_t block_size_100k_,
-        size_t verbosity_,
-        size_t work_factor_,
-        size_t buffer_size_
-        )
-    :
-        m_ostream(ostream_),
-        m_output_buffer(buffer_size_,0),
-        m_buffer(buffer_size_,0)
-    {
-        m_bzip2_stream.bzalloc=NULL;
-        m_bzip2_stream.bzfree=NULL;
-
-        m_bzip2_stream.next_in=NULL;
-        m_bzip2_stream.avail_in=0;
-        m_bzip2_stream.avail_out=0;
-        m_bzip2_stream.next_out=NULL;
-
-        m_err=BZ2_bzCompressInit(
-            &m_bzip2_stream,
-            std::min( 9, static_cast<int>(block_size_100k_) ),
-            std::min( 4, static_cast<int>(verbosity_) ),
-            std::min( 250, static_cast<int>(work_factor_) )
-            );
-
-        this->setp( &(m_buffer[0]), &(m_buffer[m_buffer.size()-1]));
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::~basic_bzip2_streambuf()
-    {
-        flush(BZ_FINISH);
-        m_ostream.flush();
-        m_err=BZ2_bzCompressEnd(&m_bzip2_stream);
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    int basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::sync ()
-    {
-        if ( this->pptr() && this->pptr() > this->pbase())
-        {
-            int c = overflow( EOF);
-
-            if ( c == EOF)
-                return -1;
-        }
-
-        return 0;
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    typename basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::int_type
-            basic_bzip2_streambuf<
-                Elem,Tr,ElemA,ByteT,ByteAT
-                >::overflow (
-                    typename basic_bzip2_streambuf<
-                        Elem,Tr,ElemA,ByteT,ByteAT
-                        >::int_type c
-                    )
-    {
-        int w = static_cast<int>(this->pptr() - this->pbase());
-        if (c != EOF) {
-             *this->pptr() = c;
-             ++w;
-         }
-         if ( bzip2_to_stream( this->pbase(), w)) {
-             this->setp( this->pbase(), this->epptr());
-             return c;
-         } else
-             return EOF;
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    bool basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::bzip2_to_stream(
-            typename basic_bzip2_streambuf<
-                Elem,Tr,ElemA,ByteT,ByteAT
-                >::char_type* buffer_,
-            std::streamsize buffer_size_
-            )
-    {
-        std::streamsize written_byte_size=0, total_written_byte_size = 0;
-
-        m_bzip2_stream.next_in=(byte_buffer_type)buffer_;
-        m_bzip2_stream.avail_in=buffer_size_*sizeof(char_type);
-        m_bzip2_stream.avail_out=static_cast<unsigned int>(m_output_buffer.size());
-        m_bzip2_stream.next_out=&(m_output_buffer[0]);
-        size_t remainder=0;
-
-        do
-        {
-            m_err = BZ2_bzCompress (&m_bzip2_stream, BZ_RUN );
-
-            if (m_err == BZ_RUN_OK  || m_err == BZ_STREAM_END)
-            {
-                written_byte_size= static_cast<std::streamsize>(m_output_buffer.size()) - m_bzip2_stream.avail_out;
-                total_written_byte_size+=written_byte_size;
-                // ouput buffer is full, dumping to ostream
-                m_ostream.write(
-                    (const char_type*) &(m_output_buffer[0]),
-                    static_cast<std::streamsize>( written_byte_size/sizeof(char_type) )
-                    );
-
-                // checking if some bytes were not written.
-                if ( (remainder = written_byte_size%sizeof(char_type))!=0)
-                {
-                    // copy to the beginning of the stream
-                    std::memmove(
-                        &(m_output_buffer[0]),
-                        &(m_output_buffer[written_byte_size-remainder]),
-                        remainder);
-
-                }
-
-                m_bzip2_stream.avail_out=static_cast<unsigned int>(m_output_buffer.size()-remainder);
-                m_bzip2_stream.next_out=&m_output_buffer[remainder];
-            }
-        }
-        while (m_bzip2_stream.avail_in != 0 && m_err == BZ_RUN_OK);
-
-        return m_err == BZ_RUN_OK || m_err == BZ_FLUSH_OK;
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    std::streamsize basic_bzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::flush(int flush_mode)
-    {
-        std::streamsize written_byte_size=0, total_written_byte_size=0;
-
-        int const buffer_size = static_cast< int >( pptr() - pbase() ); // amount of data currently in buffer
-
-        m_bzip2_stream.next_in=(byte_buffer_type)pbase();
-        m_bzip2_stream.avail_in=static_cast< uInt >(buffer_size*sizeof(char_type));
-        m_bzip2_stream.avail_out=static_cast< uInt >(m_output_buffer.size());
-        m_bzip2_stream.next_out=&(m_output_buffer[0]);
-        size_t remainder=0;
-
-        do
-        {
-            m_err = BZ2_bzCompress (&m_bzip2_stream, flush_mode);
-            if (m_err == BZ_FINISH_OK || m_err == BZ_STREAM_END)
-            {
-                written_byte_size=
-                    static_cast<std::streamsize>(m_output_buffer.size())
-                    - m_bzip2_stream.avail_out;
-                total_written_byte_size+=written_byte_size;
-                // ouput buffer is full, dumping to ostream
-                m_ostream.write(
-                    (const char_type*) &(m_output_buffer[0]),
-                    static_cast<std::streamsize>( written_byte_size/sizeof(char_type)*sizeof(char) )
-                    );
-
-                // checking if some bytes were not written.
-                if ( (remainder = written_byte_size%sizeof(char_type))!=0)
-                {
-                    // copy to the beginning of the stream
-                    std::memmove(
-                        &(m_output_buffer[0]),
-                        &(m_output_buffer[written_byte_size-remainder]),
-                        remainder);
-
-                }
-
-                m_bzip2_stream.avail_out=static_cast<unsigned int>(m_output_buffer.size()-remainder);
-                m_bzip2_stream.next_out=&(m_output_buffer[remainder]);
-            }
-        } while (m_err == BZ_FINISH_OK);
-
-        m_ostream.flush();
-
-        return total_written_byte_size;
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::basic_unbzip2_streambuf(
-            istream_reference istream_,
-            size_t verbosity_,
-            bool small_,
-            size_t read_buffer_size_,
-            size_t input_buffer_size_
-    )
-    :
-        m_istream(istream_),
-        m_input_buffer(input_buffer_size_),
-        m_buffer(read_buffer_size_)
-    {
-        // setting zalloc, zfree and opaque
-        m_bzip2_stream.bzalloc=NULL;
-        m_bzip2_stream.bzfree=NULL;
-
-        m_bzip2_stream.next_in=NULL;
-        m_bzip2_stream.avail_in=0;
-        m_bzip2_stream.avail_out=0;
-        m_bzip2_stream.next_out=NULL;
-
-
-        m_err=BZ2_bzDecompressInit (
-            &m_bzip2_stream,
-            std::min(4, static_cast<int>(verbosity_)),
-            static_cast<int>(small_)
-        );
-
-        this->setg(
-            &(m_buffer[0])+4,     // beginning of putback area
-            &(m_buffer[0])+4,     // read position
-            &(m_buffer[0])+4);    // end position
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    size_t basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::fill_input_buffer()
-    {
-        m_bzip2_stream.next_in=&(m_input_buffer[0]);
-        m_istream.read(
-            (char_type*)(&(m_input_buffer[0])),
-            static_cast<std::streamsize>(m_input_buffer.size()/sizeof(char_type))
-            );
-        return m_bzip2_stream.avail_in=m_istream.gcount()*sizeof(char_type);
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    void basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::put_back_from_bzip2_stream()
-    {
-        if (m_bzip2_stream.avail_in==0)
-            return;
-
-        m_istream.clear( std::ios::goodbit );
-        m_istream.seekg(
-            -static_cast<int>(m_bzip2_stream.avail_in),
-            std::ios_base::cur
-            );
-
-        m_bzip2_stream.avail_in=0;
-    }
-
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::~basic_unbzip2_streambuf()
-    {
-        BZ2_bzDecompressEnd(&m_bzip2_stream);
-    }
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    typename basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::int_type
-            basic_unbzip2_streambuf<
-                Elem,Tr,ElemA,ByteT,ByteAT
-                >::underflow()
-    {
-        if ( this->gptr() && ( this->gptr() < this->egptr()))
-            return * reinterpret_cast<unsigned char *>( this->gptr());
-
-       int n_putback = static_cast<int>(this->gptr() - this->eback());
-       if ( n_putback > 4)
-          n_putback = 4;
-       std::memmove(
-            &(m_buffer[0]) + (4 - n_putback),
-            this->gptr() - n_putback,
-            n_putback*sizeof(char_type)
-            );
-
-       int num = unbzip2_from_stream(
-           &(m_buffer[0])+4,
-           static_cast<std::streamsize>((m_buffer.size()-4)*sizeof(char_type))
-           );
-        if (num <= 0) // ERROR or EOF
-           return EOF;
-
-        // reset buffer pointers
-        this->setg(
-              &(m_buffer[0]) + (4 - n_putback),   // beginning of putback area
-              &(m_buffer[0]) + 4,                 // read position
-              &(m_buffer[0]) + 4 + num);          // end of buffer
-
-         // return next character
-         return* reinterpret_cast<unsigned char *>( this->gptr());
-     }
-
-
-    template<
-        typename Elem,
-        typename Tr,
-        typename ElemA,
-        typename ByteT,
-        typename ByteAT
-    >
-    std::streamsize basic_unbzip2_streambuf<
-        Elem,Tr,ElemA,ByteT,ByteAT
-        >::unbzip2_from_stream(
-            char_type* buffer_,
-            std::streamsize buffer_size_
-            )
-    {
-        m_bzip2_stream.next_out=(byte_buffer_type)buffer_;
-        m_bzip2_stream.avail_out=buffer_size_*sizeof(char_type);
-        size_t count =m_bzip2_stream.avail_in;
-
-        do
-        {
-            if (m_bzip2_stream.avail_in==0)
-                count=fill_input_buffer();
-
-            if (m_bzip2_stream.avail_in)
-            {
-                m_err = BZ2_bzDecompress( &m_bzip2_stream );
-            }
-        } while (m_err==BZ_OK && m_bzip2_stream.avail_out != 0 && count != 0);
-
-        if (m_err == BZ_STREAM_END)
-            put_back_from_bzip2_stream();
-
-        return buffer_size_ - m_bzip2_stream.avail_out/sizeof(char_type);
-    }
-
-
-} // zlib_sream
-
-#endif // INCLUDE_SEQAN_STREAM_IOSTREAM_BZIP2_IMPL_H_
diff --git a/include/seqan/stream/iostream_zip.h b/include/seqan/stream/iostream_zip.h
deleted file mode 100644
index 89fdf2e..0000000
--- a/include/seqan/stream/iostream_zip.h
+++ /dev/null
@@ -1,383 +0,0 @@
-// zipstream Library License:
-// --------------------------
-//
-// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
-//
-// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution
-//
-// Altered zipstream library header
-// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
-// Author: David Weese <david.weese at fu-berlin.de>
-// Author: Enrico Siragusa <enrico.siragusa at fu-berlin.de>
-
-#ifndef INCLUDE_SEQAN_STREAM_IOSTREAM_ZIP_H_
-#define INCLUDE_SEQAN_STREAM_IOSTREAM_ZIP_H_
-
-namespace zlib_stream {
-
-// Default gzip buffer size, change this to suite your needs.
-const size_t ZIP_DEFAULT_BUFFER_SIZE = 921600;
-
-// --------------------------------------------------------------------------
-// Enum EStrategy
-// --------------------------------------------------------------------------
-// Compression strategy, see zlib doc.
-
-enum EStrategy
-{
-    StrategyFiltered = 1,
-    StrategyHuffmanOnly = 2,
-    DefaultStrategy = 0
-};
-
-// ===========================================================================
-// Classes
-// ===========================================================================
-
-// --------------------------------------------------------------------------
-// Class basic_zip_streambuf
-// --------------------------------------------------------------------------
-// A stream decorator that takes raw input and zips it to a ostream.
-// The class wraps up the inflate method of the zlib library 1.1.4 http://www.gzip.org/zlib/
-
-template <typename Elem,
-          typename Tr = std::char_traits<Elem>,
-          typename ElemA = std::allocator<Elem>,
-          typename ByteT = unsigned char,
-          typename ByteAT = std::allocator<ByteT>
-          >
-class basic_zip_streambuf :
-    public std::basic_streambuf<Elem, Tr>
-{
-public:
-    typedef std::basic_ostream<Elem, Tr> &              ostream_reference;
-    typedef ElemA                                       char_allocator_type;
-    typedef ByteT                                       byte_type;
-    typedef ByteAT                                      byte_allocator_type;
-    typedef byte_type *                                 byte_buffer_type;
-    typedef Tr                                          traits_type;
-    typedef typename Tr::char_type                      char_type;
-    typedef typename Tr::int_type                       int_type;
-    typedef std::vector<byte_type, byte_allocator_type> byte_vector_type;
-    typedef std::vector<char_type, char_allocator_type> char_vector_type;
-
-    // Construct a zip stream
-    // More info on the following parameters can be found in the zlib documentation.
-    basic_zip_streambuf(ostream_reference ostream_,
-                        size_t level_,
-                        EStrategy strategy_,
-                        size_t window_size_,
-                        size_t memory_level_,
-                        size_t buffer_size_);
-
-    ~basic_zip_streambuf();
-
-    int sync();
-    int_type overflow(int_type c);
-
-    // flushes the zip buffer and output buffer.
-    // This method should be called at the end of the compression.
-    // Calling flush multiple times, will lower the compression ratio.
-    std::streamsize flush();
-
-    // flushes the zip buffer and output buffer and finalize the zip stream
-    // This method should be called at the end of the compression.
-    std::streamsize flush_finalize();
-
-
-private:
-    bool zip_to_stream(char_type *, std::streamsize);
-    size_t fill_input_buffer();
-    // flush the zip buffer using a particular mode and flush output buffer
-    std::streamsize flush(int flush_mode);
-
-    ostream_reference m_ostream;
-    z_stream m_zip_stream;
-    int m_err;
-    byte_vector_type m_output_buffer;
-    char_vector_type m_buffer;
-};
-
-// --------------------------------------------------------------------------
-// Class basic_unzip_streambuf
-// --------------------------------------------------------------------------
-// A stream decorator that takes compressed input and unzips it to a istream.
-// The class wraps up the deflate method of the zlib library 1.1.4 http://www.gzip.org/zlib/
-
-template <typename Elem,
-          typename Tr = std::char_traits<Elem>,
-          typename ElemA = std::allocator<Elem>,
-          typename ByteT = unsigned char,
-          typename ByteAT = std::allocator<ByteT>
-          >
-class basic_unzip_streambuf :
-    public std::basic_streambuf<Elem, Tr>
-{
-public:
-    typedef std::basic_istream<Elem, Tr> &              istream_reference;
-    typedef ElemA                                       char_allocator_type;
-    typedef ByteT                                       byte_type;
-    typedef ByteAT                                      byte_allocator_type;
-    typedef byte_type *                                 byte_buffer_type;
-    typedef Tr                                          traits_type;
-    typedef typename Tr::char_type                      char_type;
-    typedef typename Tr::int_type                       int_type;
-    typedef std::vector<byte_type, byte_allocator_type> byte_vector_type;
-    typedef std::vector<char_type, char_allocator_type> char_vector_type;
-
-    // Construct a unzip stream
-    // More info on the following parameters can be found in the zlib documentation.
-    basic_unzip_streambuf(istream_reference istream_,
-                          size_t window_size_,
-                          size_t read_buffer_size_,
-                          size_t input_buffer_size_);
-
-    ~basic_unzip_streambuf();
-
-    int_type underflow();
-
-    // returns the compressed input istream
-    istream_reference get_istream()  { return m_istream; }
-    // returns the zlib stream structure
-    z_stream & get_zip_stream()      { return m_zip_stream; }
-
-private:
-    void put_back_from_zip_stream();
-    std::streamsize unzip_from_stream(char_type *, std::streamsize);
-    size_t fill_input_buffer();
-
-    istream_reference m_istream;
-    z_stream m_zip_stream;
-    int m_err;
-    byte_vector_type m_input_buffer;
-    char_vector_type m_buffer;
-};
-
-// --------------------------------------------------------------------------
-// Class basic_zip_ostreambase
-// --------------------------------------------------------------------------
-// Base class for zip ostreams.
-// Contains a basic_zip_streambuf.
-
-template <typename Elem,
-          typename Tr = std::char_traits<Elem>,
-          typename ElemA = std::allocator<Elem>,
-          typename ByteT = unsigned char,
-          typename ByteAT = std::allocator<ByteT>
-          >
-class basic_zip_ostreambase :
-    virtual public std::basic_ios<Elem, Tr>
-{
-public:
-    typedef std::basic_ostream<Elem, Tr> &                      ostream_reference;
-    typedef basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT> zip_streambuf_type;
-
-    // Construct a zip stream
-    // More info on the following parameters can be found in the zlib documentation.
-    basic_zip_ostreambase(ostream_reference ostream_,
-                          size_t level_,
-                          EStrategy strategy_,
-                          size_t window_size_,
-                          size_t memory_level_,
-                          size_t buffer_size_) :
-        m_buf(ostream_, level_, strategy_, window_size_, memory_level_, buffer_size_)
-    {
-        this->init(&m_buf);
-    }
-
-    // returns the underlying zip ostream object
-    zip_streambuf_type * rdbuf() { return &m_buf; }
-
-private:
-    zip_streambuf_type m_buf;
-};
-
-// --------------------------------------------------------------------------
-// Class basic_zip_istreambase
-// --------------------------------------------------------------------------
-// Base class for unzip istreams
-// Contains a basic_unzip_streambuf.
-
-template <typename Elem,
-          typename Tr = std::char_traits<Elem>,
-          typename ElemA = std::allocator<Elem>,
-          typename ByteT = unsigned char,
-          typename ByteAT = std::allocator<ByteT>
-          >
-class basic_zip_istreambase :
-    virtual public std::basic_ios<Elem, Tr>
-{
-public:
-    typedef std::basic_istream<Elem, Tr> &                        istream_reference;
-    typedef basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT> unzip_streambuf_type;
-
-    basic_zip_istreambase(istream_reference ostream_,
-                          size_t window_size_,
-                          size_t read_buffer_size_,
-                          size_t input_buffer_size_) :
-        m_buf(ostream_, window_size_, read_buffer_size_, input_buffer_size_)
-    {
-        this->init(&m_buf);
-    }
-
-    // returns the underlying unzip istream object
-    unzip_streambuf_type * rdbuf() { return &m_buf; }
-
-private:
-    unzip_streambuf_type m_buf;
-};
-
-// --------------------------------------------------------------------------
-// Class basic_zip_ostream
-// --------------------------------------------------------------------------
-// A zipper ostream
-//
-// This class is a ostream decorator that behaves 'almost' like any other ostream.
-// At construction, it takes any ostream that shall be used to output of the compressed data.
-// When finished, you need to call the special method zflush or call the destructor
-// to flush all the intermidiate streams.
-//
-// Example:
-//
-// // creating the target zip string, could be a fstream
-// ostringstream ostringstream_;
-// // creating the zip layer
-// zip_ostream zipper(ostringstream_);
-// // writing data
-// zipper<<f<<" "<<d<<" "<<ui<<" "<<ul<<" "<<us<<" "<<c<<" "<<dum;
-// // zip ostream needs special flushing...
-// zipper.zflush();
-
-template <typename Elem,
-          typename Tr = std::char_traits<Elem>,
-          typename ElemA = std::allocator<Elem>,
-          typename ByteT = unsigned char,
-          typename ByteAT = std::allocator<ByteT>
-          >
-class basic_zip_ostream :
-    public basic_zip_ostreambase<Elem, Tr, ElemA, ByteT, ByteAT>,
-    public std::basic_ostream<Elem, Tr>
-{
-public:
-    typedef basic_zip_ostreambase<Elem, Tr, ElemA, ByteT, ByteAT> zip_ostreambase_type;
-    typedef std::basic_ostream<Elem, Tr>                          ostream_type;
-    typedef ostream_type &                                        ostream_reference;
-
-    // Constructs a zipper ostream decorator
-    //
-    // ostream_ ostream where the compressed output is written
-    // is_gzip_ true if gzip header and footer have to be added
-    // level_ level of compression 0, bad and fast, 9, good and slower,
-    // strategy_ compression strategy
-    // window_size_ see zlib doc
-    // memory_level_ see zlib doc
-    // buffer_size_ the buffer size used to zip data
-
-    basic_zip_ostream(ostream_reference ostream_,
-                      size_t level_ = Z_DEFAULT_COMPRESSION,
-                      EStrategy strategy_ = DefaultStrategy,
-                      size_t window_size_ = 31, // 15 (size) + 16 (gzip header)
-                      size_t memory_level_ = 8,
-                      size_t buffer_size_ = ZIP_DEFAULT_BUFFER_SIZE) :
-        zip_ostreambase_type(ostream_, level_, strategy_, window_size_, memory_level_, buffer_size_),
-        ostream_type(this->rdbuf())
-    {}
-
-    ~basic_zip_ostream()
-    {
-        this->flush(); this->rdbuf()->flush_finalize();
-    }
-
-    // flush inner buffer and zipper buffer
-    basic_zip_ostream<Elem, Tr> & zflush()
-    {
-        this->flush(); this->rdbuf()->flush(); return *this;
-    }
-
-#ifdef _WIN32
-private:
-    void _Add_vtordisp1() {}  // Required to avoid VC++ warning C4250
-    void _Add_vtordisp2() {}  // Required to avoid VC++ warning C4250
-#endif
-};
-
-// --------------------------------------------------------------------------
-// Class basic_zip_istream
-// --------------------------------------------------------------------------
-// A zipper istream
-//
-// This class is a istream decorator that behaves 'almost' like any other ostream.
-// At construction, it takes any istream that shall be used to input of the compressed data.
-//
-// Simlpe example:
-//
-// // create a stream on zip string
-// istringstream istringstream_( ostringstream_.str());
-// // create unzipper istream
-// zip_istream unzipper( istringstream_);
-// // read and unzip
-// unzipper>>f_r>>d_r>>ui_r>>ul_r>>us_r>>c_r>>dum_r;
-
-template <typename Elem,
-          typename Tr = std::char_traits<Elem>,
-          typename ElemA = std::allocator<Elem>,
-          typename ByteT = unsigned char,
-          typename ByteAT = std::allocator<ByteT>
-          >
-class basic_zip_istream :
-    public basic_zip_istreambase<Elem, Tr, ElemA, ByteT, ByteAT>,
-    public std::basic_istream<Elem, Tr>
-{
-public:
-    typedef basic_zip_istreambase<Elem, Tr, ElemA, ByteT, ByteAT> zip_istreambase_type;
-    typedef std::basic_istream<Elem, Tr>                          istream_type;
-    typedef istream_type &                                        istream_reference;
-    typedef ByteT                                                 byte_type;
-    typedef Tr                                                    traits_type;
-
-    // Construct a unzipper stream
-    //
-    // istream_ input buffer
-    // window_size_
-    // read_buffer_size_
-    // input_buffer_size_
-
-    basic_zip_istream(istream_reference istream_,
-                      size_t window_size_ = 31, // 15 (size) + 16 (gzip header)
-                      size_t read_buffer_size_ = ZIP_DEFAULT_BUFFER_SIZE,
-                      size_t input_buffer_size_ = ZIP_DEFAULT_BUFFER_SIZE) :
-        zip_istreambase_type(istream_, window_size_, read_buffer_size_, input_buffer_size_),
-        istream_type(this->rdbuf())
-    {}
-
-#ifdef _WIN32
-private:
-    void _Add_vtordisp1() {}  // Required to avoid VC++ warning C4250
-    void _Add_vtordisp2() {}  // Required to avoid VC++ warning C4250
-#endif
-};
-
-// ===========================================================================
-// Typedefs
-// ===========================================================================
-
-// A typedef for basic_zip_ostream<char>
-typedef basic_zip_ostream<char>     zip_ostream;
-// A typedef for basic_zip_ostream<wchar_t>
-typedef basic_zip_ostream<wchar_t>  zip_wostream;
-// A typedef for basic_zip_istream<char>
-typedef basic_zip_istream<char>     zip_istream;
-// A typedef for basic_zip_istream<wchart>
-typedef basic_zip_istream<wchar_t>  zip_wistream;
-
-} // namespace zlib_stream
-
-#endif // INCLUDE_SEQAN_STREAM_IOSTREAM_ZIP_H_
diff --git a/include/seqan/stream/iostream_zip_impl.h b/include/seqan/stream/iostream_zip_impl.h
deleted file mode 100644
index 716986c..0000000
--- a/include/seqan/stream/iostream_zip_impl.h
+++ /dev/null
@@ -1,386 +0,0 @@
-// zipstream Library License:
-// --------------------------
-//
-// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
-//
-// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution
-//
-// Altered zipstream library header
-// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
-// Author: David Weese <david.weese at fu-berlin.de>
-// Author: Enrico Siragusa <enrico.siragusa at fu-berlin.de>
-
-#ifndef INCLUDE_SEQAN_STREAM_IOSTREAM_ZIP_IMPL_H_
-#define INCLUDE_SEQAN_STREAM_IOSTREAM_ZIP_IMPL_H_
-
-namespace zlib_stream {
-
-// --------------------------------------------------------------------------
-// Class basic_zip_streambuf
-// --------------------------------------------------------------------------
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::basic_zip_streambuf(
-    ostream_reference ostream_,
-    size_t level_,
-    EStrategy strategy_,
-    size_t window_size_,
-    size_t memory_level_,
-    size_t buffer_size_
-    ) :
-    m_ostream(ostream_),
-    m_output_buffer(buffer_size_, 0),
-    m_buffer(buffer_size_, 0)
-{
-    m_zip_stream.zalloc = (alloc_func)0;
-    m_zip_stream.zfree = (free_func)0;
-
-    m_zip_stream.next_in = NULL;
-    m_zip_stream.avail_in = 0;
-    m_zip_stream.avail_out = 0;
-    m_zip_stream.next_out = NULL;
-
-    m_err = deflateInit2(
-        &m_zip_stream,
-        std::min(9, static_cast<int>(level_)),
-        Z_DEFLATED,
-        static_cast<int>(window_size_),
-        std::min(9, static_cast<int>(memory_level_)),
-        static_cast<int>(strategy_)
-        );
-
-    this->setp(&(m_buffer[0]), &(m_buffer[m_buffer.size() - 1]));
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::~basic_zip_streambuf()
-{
-    flush_finalize();
-    m_ostream.flush();
-    m_err = deflateEnd(&m_zip_stream);
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-int basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::sync()
-{
-    if (this->pptr() && this->pptr() > this->pbase())
-    {
-        if (traits_type::eq_int_type(overflow(traits_type::eof()), traits_type::eof()))
-            return -1;
-    }
-
-    return 0;
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-typename basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::int_type
-basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::overflow(
-    typename basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::int_type c)
-{
-    int w = static_cast<int>(this->pptr() - this->pbase());
-
-    if (!traits_type::eq_int_type(c, traits_type::eof()))
-    {
-        *this->pptr() = c;
-        ++w;
-    }
-
-    if (zip_to_stream(this->pbase(), w))
-    {
-        this->setp(this->pbase(), this->epptr() - 1);
-        return c;
-    }
-    else
-    {
-        return traits_type::eof();
-    }
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-bool basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::zip_to_stream(
-    typename basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::char_type * buffer_,
-    std::streamsize buffer_size_)
-{
-    std::streamsize written_byte_size = 0, total_written_byte_size = 0;
-
-    m_zip_stream.next_in = (byte_buffer_type)buffer_;
-    m_zip_stream.avail_in = static_cast<uInt>(buffer_size_ * sizeof(char_type));
-    m_zip_stream.avail_out = static_cast<uInt>(m_output_buffer.size());
-    m_zip_stream.next_out = &(m_output_buffer[0]);
-    size_t remainder = 0;
-
-    do
-    {
-        m_err = deflate(&m_zip_stream, 0);
-
-        if (m_err == Z_OK  || m_err == Z_STREAM_END)
-        {
-            written_byte_size = static_cast<std::streamsize>(m_output_buffer.size()) - m_zip_stream.avail_out;
-            total_written_byte_size += written_byte_size;
-
-            // ouput buffer is full, dumping to ostream
-            m_ostream.write((const char_type *) &(m_output_buffer[0]),
-                            static_cast<std::streamsize>(written_byte_size / sizeof(char_type)));
-
-            // checking if some bytes were not written.
-            if ((remainder = written_byte_size % sizeof(char_type)) != 0)
-            {
-                // copy to the beginning of the stream
-                std::memmove(&(m_output_buffer[0]),
-                             &(m_output_buffer[written_byte_size - remainder]),
-                             remainder);
-            }
-
-            m_zip_stream.avail_out = static_cast<uInt>(m_output_buffer.size() - remainder);
-            m_zip_stream.next_out = &m_output_buffer[remainder];
-        }
-    }
-    while (m_zip_stream.avail_in != 0 && m_err == Z_OK);
-
-    return m_err == Z_OK;
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-std::streamsize basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::flush(int flush_mode)
-{
-    int const buffer_size = static_cast<int>(this->pptr() - this->pbase()); // amount of data currently in buffer
-
-    std::streamsize written_byte_size = 0, total_written_byte_size = 0;
-
-    m_zip_stream.next_in = (byte_buffer_type) this->pbase();
-    m_zip_stream.avail_in = static_cast<uInt>(buffer_size * sizeof(char_type));
-    m_zip_stream.avail_out = static_cast<uInt>(m_output_buffer.size());
-    m_zip_stream.next_out = &(m_output_buffer[0]);
-    size_t remainder = 0;
-
-    do
-    {
-        m_err = deflate(&m_zip_stream, flush_mode);
-        if (m_err == Z_OK || m_err == Z_STREAM_END)
-        {
-            written_byte_size = static_cast<std::streamsize>(m_output_buffer.size()) - m_zip_stream.avail_out;
-            total_written_byte_size += written_byte_size;
-
-            // ouput buffer is full, dumping to ostream
-            m_ostream.write((const char_type *) &(m_output_buffer[0]),
-                            static_cast<std::streamsize>(written_byte_size / sizeof(char_type) * sizeof(byte_type)));
-
-            // checking if some bytes were not written.
-            if ((remainder = written_byte_size % sizeof(char_type)) != 0)
-            {
-                // copy to the beginning of the stream
-                std::memmove(&(m_output_buffer[0]),
-                             &(m_output_buffer[written_byte_size - remainder]),
-                             remainder);
-            }
-
-            m_zip_stream.avail_out = static_cast<uInt>(m_output_buffer.size() - remainder);
-            m_zip_stream.next_out = &m_output_buffer[remainder];
-        }
-    }
-    while (m_err == Z_OK);
-
-    m_ostream.flush();
-
-    return total_written_byte_size;
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-std::streamsize basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::flush()
-{
-    return flush(Z_SYNC_FLUSH);
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-std::streamsize basic_zip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::flush_finalize()
-{
-    return flush(Z_FINISH);
-}
-
-// --------------------------------------------------------------------------
-// Class basic_unzip_streambuf
-// --------------------------------------------------------------------------
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::basic_unzip_streambuf(
-    istream_reference istream_,
-    size_t window_size_,
-    size_t read_buffer_size_,
-    size_t input_buffer_size_
-    ) :
-    m_istream(istream_),
-    m_input_buffer(input_buffer_size_),
-    m_buffer(read_buffer_size_)
-{
-    // setting zalloc, zfree and opaque
-    m_zip_stream.zalloc = (alloc_func)0;
-    m_zip_stream.zfree = (free_func)0;
-
-    m_zip_stream.next_in = NULL;
-    m_zip_stream.avail_in = 0;
-    m_zip_stream.avail_out = 0;
-    m_zip_stream.next_out = NULL;
-
-    m_err = inflateInit2(&m_zip_stream, static_cast<int>(window_size_));
-
-    this->setg(&(m_buffer[0]) + 4,  // beginning of putback area
-               &(m_buffer[0]) + 4,  // read position
-               &(m_buffer[0]) + 4); // end position
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::~basic_unzip_streambuf()
-{
-    inflateEnd(&m_zip_stream);
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-typename basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::int_type
-basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::underflow()
-{
-    if (this->gptr() && (this->gptr() < this->egptr()))
-        return *reinterpret_cast<unsigned char *>(this->gptr());
-
-    int n_putback = static_cast<int>(this->gptr() - this->eback());
-    if (n_putback > 4)
-        n_putback = 4;
-
-    std::memmove(&(m_buffer[0]) + (4 - n_putback), this->gptr() - n_putback, n_putback * sizeof(char_type));
-
-    int num = unzip_from_stream(&(m_buffer[0]) + 4,
-                                static_cast<std::streamsize>((m_buffer.size() - 4) * sizeof(char_type)));
-
-    if (num <= 0)     // ERROR or EOF
-        return traits_type::eof();
-
-    // reset buffer pointers
-    this->setg(&(m_buffer[0]) + (4 - n_putback),         // beginning of putback area
-               &(m_buffer[0]) + 4,                       // read position
-               &(m_buffer[0]) + 4 + num);                // end of buffer
-
-    // return next character
-    return *reinterpret_cast<unsigned char *>(this->gptr());
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-std::streamsize basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::unzip_from_stream(
-    char_type * buffer_,
-    std::streamsize buffer_size_)
-{
-    m_zip_stream.next_out = (byte_buffer_type)buffer_;
-    m_zip_stream.avail_out = static_cast<uInt>(buffer_size_ * sizeof(char_type));
-    size_t count = m_zip_stream.avail_in;
-
-    do
-    {
-        if (m_zip_stream.avail_in == 0)
-            count = fill_input_buffer();
-
-        if (m_zip_stream.avail_in)
-            m_err = inflate(&m_zip_stream, Z_SYNC_FLUSH);
-
-        if (m_err == Z_STREAM_END)
-            inflateReset(&m_zip_stream);
-        else if (m_err < 0)
-            break;
-    }
-    while (m_zip_stream.avail_out > 0 && count > 0);
-
-    std::streamsize n_read = buffer_size_ - m_zip_stream.avail_out / sizeof(char_type);
-
-    // check if it is the end
-    if (m_zip_stream.avail_out > 0 && m_err == Z_STREAM_END)
-        put_back_from_zip_stream();
-
-    return n_read;
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-size_t basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::fill_input_buffer()
-{
-    m_zip_stream.next_in = &(m_input_buffer[0]);
-    m_istream.read((char_type *)(&(m_input_buffer[0])),
-                   static_cast<std::streamsize>(m_input_buffer.size() / sizeof(char_type)));
-    return m_zip_stream.avail_in = m_istream.gcount() * sizeof(char_type);
-}
-
-template <typename Elem,
-          typename Tr,
-          typename ElemA,
-          typename ByteT,
-          typename ByteAT>
-void basic_unzip_streambuf<Elem, Tr, ElemA, ByteT, ByteAT>::put_back_from_zip_stream()
-{
-    if (m_zip_stream.avail_in == 0)
-        return;
-
-    m_istream.clear(std::ios::goodbit);
-    m_istream.seekg(-static_cast<int>(m_zip_stream.avail_in), std::ios_base::cur);
-
-    m_zip_stream.avail_in = 0;
-}
-
-} // namespace zlib_stream
-
-
-#endif // INCLUDE_SEQAN_STREAM_IOSTREAM_ZIP_IMPL_H_
diff --git a/include/seqan/stream/iostream_zutil.h b/include/seqan/stream/iostream_zutil.h
deleted file mode 100644
index 4d5ace9..0000000
--- a/include/seqan/stream/iostream_zutil.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* iostream_zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id: iostream_zutil.h,v 1.2 2003/06/28 15:03:05 pelikhan Exp $ */
-
-#ifndef INCLUDE_SEQAN_STREAM_IOSTREAM_ZUTIL_H_
-#define INCLUDE_SEQAN_STREAM_IOSTREAM_ZUTIL_H_
-
-//#include "zlib.h"
-
-#ifdef STDC
-#  include <stddef.h>
-#  include <string.h>
-#  include <stdlib.h>
-#endif
-
-//#define NO_ERRNO_H
-#ifdef NO_ERRNO_H
-    int errno;
-#else
-    #include <errno.h>
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char  uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long  ulg;
-
-extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
-/* (size given to avoid silly warnings with Visual C++) */
-
-#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-
-#define ERR_RETURN(strm,err) \
-  return (strm->msg = (char*)ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
-        /* common constants */
-
-#ifndef DEF_WBITS
-#  define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES    2
-/* The three kinds of block type */
-
-#define MIN_MATCH  3
-#define MAX_MATCH  258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
-        /* target dependencies */
-
-#ifdef MSDOS
-#  define OS_CODE  0x00
-#  if defined(__TURBOC__) || defined(__BORLANDC__)
-#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
-       /* Allow compilation with ANSI keywords only enabled */
-       void _Cdecl farfree( void *block );
-       void *_Cdecl farmalloc( unsigned long nbytes );
-#    else
-#     include <alloc.h>
-#    endif
-#  else /* MSC or DJGPP */
-#    include <malloc.h>
-#  endif
-#endif
-
-#ifdef OS2
-#  define OS_CODE  0x06
-#endif
-
-#ifdef WIN32 /* Window 95 & Windows NT */
-#  define OS_CODE  0x0b
-#endif
-
-#if defined(VAXC) || defined(VMS)
-#  define OS_CODE  0x02
-#  define F_OPEN(name, mode) \
-     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#ifdef AMIGA
-#  define OS_CODE  0x01
-#endif
-
-#if defined(ATARI) || defined(atarist)
-#  define OS_CODE  0x05
-#endif
-
-#if defined(MACOS) || defined(TARGET_OS_MAC)
-#  define OS_CODE  0x07
-#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-#    include <unix.h> /* for fdopen */
-#  else
-#    ifndef fdopen
-#      define fdopen(fd,mode) NULL /* No fdopen() */
-#    endif
-#  endif
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-#  define OS_CODE  0x0F
-#endif
-
-#ifdef TOPS20
-#  define OS_CODE  0x0a
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-#  define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER > 600))
-#  define fdopen(fd,type)  _fdopen(fd,type)
-#endif
-
-
-        /* Common defaults */
-
-#ifndef OS_CODE
-#  define OS_CODE  0x03  /* assume Unix */
-#endif
-
-#ifndef F_OPEN
-#  define F_OPEN(name, mode) fopen((name), (mode))
-#endif
-
-#ifndef OF
-#define OF(x) x
-#endif
-          /* functions */
-
-#ifdef HAVE_STRERROR
-   extern char *strerror OF((int));
-#  define zstrerror(errnum) strerror(errnum)
-#else
-#  define zstrerror(errnum) ""
-#endif
-
-#if defined(pyr)
-#  define NO_MEMCPY
-#endif
-#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
- /* Use our own functions for small and medium model with MSC <= 5.0.
-  * You may have to use the same strategy for Borland C (untested).
-  * The __SC__ check is for Symantec.
-  */
-#  define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-#  define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-#    define zmemcpy _fmemcpy
-#    define zmemcmp _fmemcmp
-#    define zmemzero(dest, len) _fmemset(dest, 0, len)
-#  else
-#    define zmemcpy memcpy
-#    define zmemcmp memcmp
-#    define zmemzero(dest, len) memset(dest, 0, len)
-#  endif
-#else
-   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len));
-   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len));
-   extern void zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG
-#  include <stdio.h>
-   extern int z_verbose;
-   extern void z_error    OF((char *m));
-#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
-#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
-#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-#else
-#  define Assert(cond,msg)
-#  define Trace(x)
-#  define Tracev(x)
-#  define Tracevv(x)
-#  define Tracec(c,x)
-#  define Tracecv(c,x)
-#endif
-
-
-typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf,
-                       uInt len));
-voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
-void   zcfree  OF((voidpf opaque, voidpf ptr));
-
-#define ZALLOC(strm, items, size) \
-           (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-#ifdef local
-#undef local
-#endif
-
-#endif /* INCLUDE_SEQAN_STREAM_IOSTREAM_ZUTIL_H_ */
diff --git a/include/seqan/stream/lexical_cast.h b/include/seqan/stream/lexical_cast.h
index 2ad58d4..a088f03 100644
--- a/include/seqan/stream/lexical_cast.h
+++ b/include/seqan/stream/lexical_cast.h
@@ -108,9 +108,9 @@ struct BadLexicalCast : ParseError
  *
  * The following example shows some lexical cast from various sequence types to numbers.
  *
- * @include demos/dox/stream/lexical_cast.cpp
+ * @include demos/stream/lexical_cast.cpp
  *
- * @include demos/dox/stream/lexical_cast.cpp.stdout
+ * @include demos/stream/lexical_cast.cpp.stdout
  */
 
 // single char
diff --git a/include/seqan/stream/stream_base.h b/include/seqan/stream/stream_base.h
index e47fac1..28a85a6 100644
--- a/include/seqan/stream/stream_base.h
+++ b/include/seqan/stream/stream_base.h
@@ -121,13 +121,14 @@ char const MagicHeader<BZ2File, T>::VALUE[3] = { 0x42, 0x5a, 0x68 };  // bzip2's
 template <typename T>
 struct FileExtensions<GZFile, T>
 {
-    static char const * VALUE[1];
+    static char const * VALUE[2];
 };
 
 template <typename T>
-char const * FileExtensions<GZFile, T>::VALUE[1] =
+char const * FileExtensions<GZFile, T>::VALUE[2] =
 {
-    ".gz"      // default output extension
+    ".gz",      // default output extension
+    ".z"
 };
 
 
@@ -150,13 +151,14 @@ char const * FileExtensions<BgzfFile, T>::VALUE[2] =
 template <typename T>
 struct FileExtensions<BZ2File, T>
 {
-    static char const * VALUE[1];
+    static char const * VALUE[2];
 };
 
 template <typename T>
-char const * FileExtensions<BZ2File, T>::VALUE[1] =
+char const * FileExtensions<BZ2File, T>::VALUE[2] =
 {
-    ".bz2"      // default output extension
+    ".bz2",      // default output extension
+    ".bz"
 };
 
 // ============================================================================
diff --git a/include/seqan/stream/stream_compressor.h b/include/seqan/stream/stream_compressor.h
index 51e5bb6..268fcde 100644
--- a/include/seqan/stream/stream_compressor.h
+++ b/include/seqan/stream/stream_compressor.h
@@ -39,7 +39,7 @@
 #if SEQAN_HAS_ZLIB
 // Zlib headers
 #include <zlib.h>
-#include "iostream_zutil.h"
+#include "zipstream/zutil.h"
 #endif
 
 #include <algorithm>    // copy
diff --git a/include/seqan/stream/tokenization.h b/include/seqan/stream/tokenization.h
index 31d587d..b7bfcb2 100644
--- a/include/seqan/stream/tokenization.h
+++ b/include/seqan/stream/tokenization.h
@@ -255,7 +255,7 @@ template <typename TTarget, typename TFwdIterator, typename TStopFunctor, typena
 inline void
 _readUntil(TTarget &target, TFwdIterator &iter, TStopFunctor &stopFunctor, TIgnoreFunctor &ignoreFunctor, TIChunk, TOChunk)
 {
-    typename RemoveConst<typename Value<TFwdIterator>::Type>::Type val;
+    typename Value<TFwdIterator>::Type val;
     for (; !atEnd(iter); ++iter)
     {
         if (SEQAN_UNLIKELY(stopFunctor(val = *iter)))
diff --git a/include/seqan/stream/virtual_stream.h b/include/seqan/stream/virtual_stream.h
index d94361c..1ef2059 100644
--- a/include/seqan/stream/virtual_stream.h
+++ b/include/seqan/stream/virtual_stream.h
@@ -40,14 +40,23 @@
 #ifndef SEQAN_STREAM_VIRTUAL_STREAM_
 #define SEQAN_STREAM_VIRTUAL_STREAM_
 
+#if SEQAN_HAS_ZLIB
+#include "zipstream/zipstream.h"
+#include "zipstream/bgzfstream.h"
+#endif
+
+#if SEQAN_HAS_BZIP2
+#include "zipstream/bzip2stream.h"
+#endif
+
 namespace seqan {
 
 // ============================================================================
 // Forwards
 // ============================================================================
 
-template <typename TStream>
-struct StreamFormat;
+template <typename TFormattedFile>
+struct FileFormat;
 
 // ============================================================================
 // Tags, Enums
@@ -75,28 +84,6 @@ typedef
 #endif
     CompressedFileTypes;  // if TagSelector is set to -1, the file format is auto-detected
 
-// --------------------------------------------------------------------------
-// TagList CompressedFileTypes
-// --------------------------------------------------------------------------
-// NOTE(h-2): this currently lacks BGZF, so that we don't get .fasta.bam, .m8.bam ...
-// in the long term bgzf should just not contain .bam but that would require more changes
-
-typedef
-#if SEQAN_HAS_ZLIB
-    TagList<GZFile,
-#endif
-#if SEQAN_HAS_BZIP2
-    TagList<BZ2File,
-#endif
-    TagList<Nothing>
-#if SEQAN_HAS_BZIP2
-    >
-#endif
-#if SEQAN_HAS_ZLIB
-    >
-#endif
-    CompressedFileTypesWithoutBgzf_;
-
 // ============================================================================
 // Metafunctions
 // ============================================================================
@@ -199,18 +186,18 @@ struct VirtualStreamFactoryContext_;
 // a compressed stream lives in the VirtualStreamContext_ and provides a basic_streambuf
 
 // base class
-template <typename TValue, typename TTraits>
+template <typename TValue>
 struct VirtualStreamContextBase_
 {
-    std::basic_streambuf<TValue, TTraits> *streamBuf;
+    std::basic_streambuf<TValue> *streamBuf;
     VirtualStreamContextBase_(): streamBuf() {}
     virtual ~VirtualStreamContextBase_() {}
 };
 
 // generic subclass with virtual destructor
-template <typename TValue, typename TDirection, typename TTraits, typename TFormatTag = void>
+template <typename TValue, typename TDirection, typename TFormatTag = void>
 struct VirtualStreamContext_:
-    VirtualStreamContextBase_<TValue, TTraits>
+    VirtualStreamContextBase_<TValue>
 {
     typename VirtualStreamSwitch_<TValue, TDirection, TFormatTag>::Type stream;
 
@@ -223,9 +210,9 @@ struct VirtualStreamContext_:
 };
 
 // special case: no compression, we simply forward the file stream
-template <typename TValue, typename TDirection, typename TTraits>
-struct VirtualStreamContext_<TValue, TDirection, TTraits, Nothing>:
-    VirtualStreamContextBase_<TValue, TTraits>
+template <typename TValue, typename TDirection>
+struct VirtualStreamContext_<TValue, TDirection, Nothing>:
+    VirtualStreamContextBase_<TValue>
 {
     template <typename TObject>
     VirtualStreamContext_(TObject &object)
@@ -237,35 +224,21 @@ struct VirtualStreamContext_<TValue, TDirection, TTraits, Nothing>:
 // --------------------------------------------------------------------------
 // Class VirtualStream
 // --------------------------------------------------------------------------
-// The VirtualStream class auto-detects data compression from file name or stream.
-// It inherits from std::basic_Xstream to provide the convenient stream interface.
-// It accepts a file or stream.
-
-/*!
- * @class VirtualStream
- * @implements StreamConcept
- * @headerfile <seqan/stream.h>
- * @brief Provides seamless (de)compression for another @link StreamConcept stream @endlink.
- *
- * @signature template <typename TValue, typename TDirection, typename TTraits>
- *            class VirtualStream;
- *
- * @tparam TValue       The stream value type, e.g. <tt>char</tt>.
- * @tparam TDirection   The stream direction, one of @link DirectionTags @endlink.
- * @tparam TTraits      The stream traits, defaults to <tt>std::char_traits<TValue></tt>.
- */
 
+// The VirtualStream class handles a file or input stream and auto-detects data
+// compression from file name or stream.
+// We inherit from std::basic_Xstream to provide the convenient stream interface.
 template <typename TValue, typename TDirection, typename TTraits = std::char_traits<TValue> >
 class VirtualStream: public BasicStream<TValue, TDirection, TTraits>::Type
 {
 public:
     typedef typename BasicStream<TValue, TDirection, TTraits>::Type TStream;                // the stream base class we expose
-    typedef std::basic_fstream<TValue, TTraits>                     TFile;                  // if a real file should be opened
-//    typedef FileStream<TValue, TDirection>                          TFile;                  // if a real file should be opened
+    typedef std::fstream                                            TFile;                  // if a real file should be opened
+//    typedef FileStream<char, TDirection>                            TFile;                  // if a real file should be opened
     typedef BufferedStream<TStream, TDirection>                     TBufferedStream;        // if input stream is not buffered
-    typedef std::basic_streambuf<TValue, TTraits>                   TStreamBuffer;          // the streambuf to use
-    typedef VirtualStreamContextBase_<TValue, TTraits>              TVirtualStreamContext;  // the owner of the streambuf
-    typedef typename StreamFormat<VirtualStream>::Type              TFormat;                // detected stream format
+    typedef std::basic_streambuf<TValue>                            TStreamBuffer;          // the streambuf to use
+    typedef VirtualStreamContextBase_<TValue>                       TVirtualStreamContext;  // the owner of the streambuf
+    typedef typename FileFormat<VirtualStream>::Type                TFormat;                // detected format
 
     TFile                   file;
     TBufferedStream         bufferedStream;
@@ -273,20 +246,6 @@ public:
     TVirtualStreamContext   *context;
     TFormat                 format;
 
-    /*!
-     * @fn VirtualStream::VirtualStream
-     * @brief Default constructor and construction from stream, stream buffer, or filename.
-     *
-     * @signature VirtualStream::VirtualStream();
-     * @signature VirtualStream::VirtualStream(stream);
-     * @signature VirtualStream::VirtualStream(streamBuf);
-     * @signature VirtualStream::VirtualStream(fileName, openMode);
-     *
-     * @param[in] stream    The @link StreamConcept stream @endlink to attach to.
-     * @param[in] streamBuf The @link StreamBuffer stream buffer @endlink to attach to.
-     * @param[in] fileName  Path to the file to open. Type: <tt>char const *</tt>.
-     * @param[in] openMode  The open mode. Type: <tt>int</tt>.
-     */
     VirtualStream():
         TStream(NULL),
         streamBuf(),
@@ -342,14 +301,6 @@ public:
         return streamBuf;
     }
 
-    /*!
-     * @fn VirtualStream::getFileExtensions
-     * @brief Static function that returns a list of allowed file format extension.
-     *
-     * @signature TExtensionVector getFileExtensions()
-     *
-     * @return TExtensionVector A <tt>std::vector<std::string></tt> with the allowed file extensions.
-     */
     static std::vector<std::string>
     getFileExtensions()
     {
@@ -360,26 +311,11 @@ public:
 };
 
 // ----------------------------------------------------------------------------
-// Metafunction StreamFormat
+// Metafunction FileFormats
 // ----------------------------------------------------------------------------
 
-/*!
- * @defgroup StreamFormats Stream Formats
- * @brief Tags for identifying stream formats.
- */
-
-/*!
- * @mfn VirtualStream#StreamFormat
- * @brief Metafunction for retrieving the format type of a @link VirtualStream @endlink.
- *
- * @signature StreamFormat<TStream>::Type;
- *
- * @tparam TStream  The stream file type to query for its file format type.
- * @return Type     The resulting @link VirtualStream @endlink file formats type.
- */
-
 template <typename TValue, typename TDirection, typename TTraits>
-struct StreamFormat<VirtualStream<TValue, TDirection, TTraits> >
+struct FileFormat<VirtualStream<TValue, TDirection, TTraits> >
 {
     typedef TagSelector<CompressedFileTypes> Type;
 };
@@ -473,13 +409,32 @@ struct Value<VirtualStreamFactoryContext_<TVirtualStream> >
 // --------------------------------------------------------------------------
 // Function tagApply()
 // --------------------------------------------------------------------------
-// NOTE(esiragusa): private / impl.
 
 template <typename TValue, typename TDirection, typename TTraits, typename TFormat>
-inline VirtualStreamContextBase_<TValue, TTraits> *
+inline VirtualStreamContextBase_<TValue> *
 tagApply(VirtualStreamFactoryContext_<VirtualStream<TValue, TDirection, TTraits> > &ctx, Tag<TFormat>)
 {
-    return new VirtualStreamContext_<TValue, TDirection, TTraits, Tag<TFormat> >(ctx.stream);
+    return new VirtualStreamContext_<TValue, TDirection, Tag<TFormat> >(ctx.stream);
+}
+
+
+template <typename TContext>
+inline typename Value<TContext>::Type
+tagApply(TContext &, TagSelector<>)
+{
+    return typename Value<TContext>::Type();
+}
+
+template <typename TContext, typename TTagList>
+inline typename Value<TContext>::Type
+tagApply(TContext &ctx, TagSelector<TTagList> &format)
+{
+    typedef typename TTagList::Type TFormatTag;
+
+    if (isEqual(format, TFormatTag()))
+        return tagApply(ctx, TFormatTag());
+
+    return tagApply(ctx, static_cast<typename TagSelector<TTagList>::Base &>(format));
 }
 
 // ----------------------------------------------------------------------------
@@ -552,20 +507,6 @@ _getUncompressedBasename(TFilename const & fname, TagSelector<TTagList> const &
 // Function open()
 // --------------------------------------------------------------------------
 
-/*!
- * @fn VirtualStream#open
- * @brief Open a VirtualStream.
- *
- * @signature bool open(stream, fileStream);
- * @signature bool open(stream, fileName, openMode);
- *
- * @param[in,out] stream        The VirtualStream to open.
- * @param[in,out  fileStream    File stream to attach to. Type: <tt>std::fstream</tt>.
- * @param[in]     fileName      Path to the file to open. Type: <tt>char const *</tt>.
- * @param[in]     openMode      The open mode. Type: <tt>int</tt>.
- * @return bool <tt>true</tt> in the case of success, <tt>false</tt> otherwise.
- */
-
 template <typename TValue, typename TDirection, typename TTraits, typename TStream, typename TCompressionType>
 inline SEQAN_FUNC_DISABLE_IF(IsPointer<TStream>, bool)
 open(VirtualStream<TValue, TDirection, TTraits> &stream, TStream &fileStream, TCompressionType & compressionType)
@@ -619,7 +560,7 @@ inline SEQAN_FUNC_DISABLE_IF(IsPointer<TStream>, bool)
 open(VirtualStream<TValue, Input> &stream, TStream &fileStream)
 {
     // detect compression type from file extension
-    assign(stream.format, typename StreamFormat<VirtualStream<TValue, Input> >::Type());
+    assign(stream.format, typename FileFormat<VirtualStream<TValue, Input> >::Type());
     return open(stream, fileStream, stream.format);
 }
 
@@ -637,7 +578,7 @@ open(VirtualStream<TValue, TDirection, TTraits> &stream,
         return false;
 
     // detect compression type from file extension
-    assign(stream.format, typename StreamFormat<TVirtualStream>::Type());
+    assign(stream.format, typename FileFormat<TVirtualStream>::Type());
 
     if (IsSameType<TDirection, Input>::VALUE && _isPipe(fileName))
         open(stream, stream.file, stream.format);               // read from a pipe (without file extension)
@@ -664,16 +605,6 @@ open(VirtualStream<TValue, TDirection, TTraits> &stream,
 // Function close()
 // --------------------------------------------------------------------------
 
-/*!
- * @fn VirtualStream#close
- * @brief Close a VirtualStream.
- *
- * @signature bool close(stream);
- *
- * @param[in,out] stream The VirtualStream to close.
- * @return bool <tt>true</tt> in the case of success, <tt>false</tt> otherwise.
- */
-
 template <typename TValue, typename TDirection, typename TTraits>
 inline bool
 close(VirtualStream<TValue, TDirection, TTraits> &stream)
@@ -681,7 +612,7 @@ close(VirtualStream<TValue, TDirection, TTraits> &stream)
     delete stream.context;
     stream.context = NULL;
     stream.streamBuf = NULL;
-    assign(stream.format, typename StreamFormat<VirtualStream<TValue, TDirection, TTraits> >::Type());
+    assign(stream.format, typename FileFormat<VirtualStream<TValue, TDirection, TTraits> >::Type());
     return !stream.file.is_open() || close(stream.file);
 }
 
@@ -689,18 +620,8 @@ close(VirtualStream<TValue, TDirection, TTraits> &stream)
 // Function format()
 // ----------------------------------------------------------------------------
 
-/*!
- * @fn VirtualStream#format
- * @brief Return the format of a VirtualStream.
- *
- * @signature TFormat format(stream);
- *
- * @param[in] stream The VirtualStream to check.
- * @return TFormat   The type as returned from @link VirtualStream#StreamFormat @endlink.
- */
-
 template <typename TValue, typename TDirection, typename TTraits>
-inline typename StreamFormat<VirtualStream<TValue, TDirection, TTraits> >::Type &
+inline typename FileFormat<VirtualStream<TValue, TDirection, TTraits> >::Type &
 format(VirtualStream<TValue, TDirection, TTraits> &stream)
 {
     return stream.format;
diff --git a/include/seqan/stream/zipstream/bgzfstream.h b/include/seqan/stream/zipstream/bgzfstream.h
new file mode 100644
index 0000000..0228a37
--- /dev/null
+++ b/include/seqan/stream/zipstream/bgzfstream.h
@@ -0,0 +1,969 @@
+/*
+zipstream Library License:
+--------------------------
+
+The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
+
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution
+
+Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003   (original zlib stream)
+Author: David Weese, dave.weese at gmail.com, 2014             (extension to parallel block-wise compression in bgzf format)
+*/
+
+#ifndef BGZFSTREAM_HPP
+#define BGZFSTREAM_HPP
+
+
+#include <vector>
+#include <iostream>
+#include <algorithm>
+#include <zlib.h>
+#include "zutil.h"
+
+namespace seqan {
+
+/// default gzip buffer size,
+/// change this to suite your needs
+const size_t default_buffer_size = 4096;
+
+const unsigned BGZF_MAX_BLOCK_SIZE = 64 * 1024;
+const unsigned BGZF_BLOCK_HEADER_LENGTH = 18;
+const unsigned BGZF_BLOCK_FOOTER_LENGTH = 8;
+const unsigned ZLIB_BLOCK_OVERHEAD = 5; // 5 bytes block overhead (see 3.2.4. at http://www.gzip.org/zlib/rfc-deflate.html)
+
+// Reduce the maximal input size, such that the compressed data
+// always fits in one block even for level Z_NO_COMPRESSION.
+const unsigned BGZF_BLOCK_SIZE = BGZF_MAX_BLOCK_SIZE - BGZF_BLOCK_HEADER_LENGTH - BGZF_BLOCK_FOOTER_LENGTH - ZLIB_BLOCK_OVERHEAD;
+
+/// Compression strategy, see bgzf doc.
+enum EStrategy
+{
+    StrategyFiltered = 1,
+    StrategyHuffmanOnly = 2,
+    DefaultStrategy = 0
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bgzf_streambuf : public std::basic_streambuf<Elem, Tr>
+{
+public:
+    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
+    typedef ElemA char_allocator_type;
+    typedef ByteT byte_type;
+    typedef ByteAT byte_allocator_type;
+    typedef byte_type* byte_buffer_type;
+    typedef typename Tr::char_type char_type;
+    typedef typename Tr::int_type int_type;
+
+    typedef ConcurrentQueue<size_t, Suspendable<Limit> > TJobQueue;
+
+    struct OutputBuffer
+    {
+        char    buffer[BGZF_MAX_BLOCK_SIZE];
+        size_t  size;
+    };
+
+    struct BufferWriter
+    {
+        ostream_reference ostream;
+
+        BufferWriter(ostream_reference ostream) :
+            ostream(ostream)
+        {}
+
+        bool operator() (OutputBuffer const & outputBuffer)
+        {
+            ostream.write(outputBuffer.buffer, outputBuffer.size);
+            return ostream.good();
+        }
+    };
+
+    struct CompressionJob
+    {
+        typedef std::vector<char_type, char_allocator_type> TBuffer;
+
+        TBuffer         buffer;
+        size_t          size;
+        OutputBuffer    *outputBuffer;
+
+        CompressionJob() :
+            buffer(BGZF_BLOCK_SIZE / sizeof(char_type), 0),
+            size(0),
+            outputBuffer(NULL)
+        {}
+    };
+
+    // string of recycable jobs
+    size_t                  numThreads;
+    size_t                  numJobs;
+    String<CompressionJob>  jobs;
+    TJobQueue               jobQueue;
+    TJobQueue               idleQueue;
+    Serializer<
+        OutputBuffer,
+        BufferWriter>       serializer;
+
+    size_t                  currentJobId;
+    bool                    currentJobAvail;
+
+
+    struct CompressionThread
+    {
+        basic_bgzf_streambuf            *streamBuf;
+        CompressionContext<BgzfFile>    compressionCtx;
+        size_t                          threadNum;
+
+        void operator()()
+        {
+            ScopedReadLock<TJobQueue> readLock(streamBuf->jobQueue);
+            ScopedWriteLock<TJobQueue> writeLock(streamBuf->idleQueue);
+
+            // wait for a new job to become available
+            bool success = true;
+            while (success)
+            {
+                size_t jobId = -1;
+                if (!popFront(jobId, streamBuf->jobQueue))
+                    return;
+
+                CompressionJob &job = streamBuf->jobs[jobId];
+
+                // compress block with zlib
+                job.outputBuffer->size = _compressBlock(
+                    job.outputBuffer->buffer, sizeof(job.outputBuffer->buffer),
+                    &job.buffer[0], job.size, compressionCtx);
+
+                success = releaseValue(streamBuf->serializer, job.outputBuffer);
+                appendValue(streamBuf->idleQueue, jobId);
+            }
+        }
+    };
+
+    // array of worker threads
+    Thread<CompressionThread>   *threads;
+
+    basic_bgzf_streambuf(ostream_reference ostream_,
+                         size_t numThreads = 16,
+                         size_t jobsPerThread = 8) :
+        numThreads(numThreads),
+        numJobs(numThreads * jobsPerThread),
+        jobQueue(numJobs),
+        idleQueue(numJobs),
+        serializer(ostream_, numThreads * jobsPerThread)
+    {
+        resize(jobs, numJobs, Exact());
+        currentJobId = 0;
+
+        lockWriting(jobQueue);
+        lockReading(idleQueue);
+        setReaderWriterCount(jobQueue, numThreads, 1);
+        setReaderWriterCount(idleQueue, 1, numThreads);
+
+        for (unsigned i = 0; i < numJobs; ++i)
+        {
+            bool success = appendValue(idleQueue, i);
+            ignoreUnusedVariableWarning(success);
+            SEQAN_ASSERT(success);
+        }
+
+        threads = new Thread<CompressionThread>[numThreads];
+        for (unsigned i = 0; i < numThreads; ++i)
+        {
+            threads[i].worker.streamBuf = this;
+            threads[i].worker.threadNum = i;
+            run(threads[i]);
+        }
+
+        currentJobAvail = popFront(currentJobId, idleQueue);
+        SEQAN_ASSERT(currentJobAvail);
+
+        CompressionJob &job = jobs[currentJobId];
+        job.outputBuffer = aquireValue(serializer);
+        this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
+    }
+
+    ~basic_bgzf_streambuf()
+    {
+        // the buffer is now (after addFooter()) and flush will append the empty EOF marker
+        flush(true);
+
+        unlockWriting(jobQueue);
+        unlockReading(idleQueue);
+
+        for (unsigned i = 0; i < numThreads; ++i)
+            waitFor(threads[i]);
+        delete[] threads;
+    }
+
+    bool compressBuffer(size_t size)
+    {
+        // submit current job
+        if (currentJobAvail)
+        {
+            jobs[currentJobId].size = size;
+            appendValue(jobQueue, currentJobId);
+        }
+
+        // recycle existing idle job
+        if (!(currentJobAvail = popFront(currentJobId, idleQueue)))
+            return false;
+
+        jobs[currentJobId].outputBuffer = aquireValue(serializer);
+
+        return serializer;
+    }
+
+    int_type overflow(int_type c)
+    {
+        int w = static_cast<int>(this->pptr() - this->pbase());
+        if (c != EOF)
+        {
+            *this->pptr() = c;
+            ++w;
+        }
+        if (compressBuffer(w))
+        {
+            CompressionJob &job = jobs[currentJobId];
+            this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
+            return c;
+        }
+        else
+        {
+            return EOF;
+        }
+    }
+
+    std::streamsize flush(bool flushEmptyBuffer = false)
+    {
+        int w = static_cast<int>(this->pptr() - this->pbase());
+        if ((w != 0 || flushEmptyBuffer) && compressBuffer(w))
+        {
+            CompressionJob &job = jobs[currentJobId];
+            this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
+        }
+        else
+        {
+            w = 0;
+        }
+
+        // wait for running compressor threads
+        waitForMinSize(idleQueue, numJobs - 1);
+
+        serializer.worker.ostream.flush();
+        return w;
+    }
+
+    int sync()
+    {
+        if (this->pptr() != this->pbase())
+        {
+            int c = overflow(EOF);
+            if (c == EOF)
+                return -1;
+        }
+        return 0;
+    }
+
+    void addFooter()
+    {
+        // we flush the filled buffer here, so that an empty (EOF) buffer is flushed in the d'tor
+        if (this->pptr() != this->pbase())
+            overflow(EOF);
+    }
+
+    /// returns a reference to the output stream
+    ostream_reference get_ostream() const    { return serializer.worker.ostream; };
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_unbgzf_streambuf :
+    public std::basic_streambuf<Elem, Tr>
+{
+public:
+    typedef std::basic_istream<Elem, Tr>& istream_reference;
+    typedef ElemA char_allocator_type;
+    typedef ByteT byte_type;
+    typedef ByteAT byte_allocator_type;
+    typedef byte_type* byte_buffer_type;
+    typedef typename Tr::char_type char_type;
+    typedef typename Tr::int_type int_type;
+    typedef typename Tr::off_type off_type;
+    typedef typename Tr::pos_type pos_type;
+
+    typedef std::vector<char_type, char_allocator_type>     TBuffer;
+    typedef ConcurrentQueue<int, Suspendable<Limit> >       TJobQueue;
+
+    static const size_t MAX_PUTBACK = 4;
+
+    struct Serializer
+    {
+        istream_reference   istream;
+        Mutex               lock;
+        IOError             *error;
+        off_type            fileOfs;
+
+        Serializer(istream_reference istream) :
+            istream(istream),
+            lock(false),
+            error(NULL),
+            fileOfs(0u)
+        {}
+
+        ~Serializer()
+        {
+            delete error;
+        }
+    };
+
+    Serializer serializer;
+
+    struct DecompressionJob
+    {
+        typedef std::vector<byte_type, byte_allocator_type> TInputBuffer;
+
+        TInputBuffer    inputBuffer;
+        TBuffer         buffer;
+        off_type        fileOfs;
+        int             size;
+
+        CriticalSection cs;
+        Condition       readyEvent;
+        bool            ready;
+
+        DecompressionJob() :
+            inputBuffer(BGZF_MAX_BLOCK_SIZE, 0),
+            buffer(MAX_PUTBACK + BGZF_MAX_BLOCK_SIZE / sizeof(char_type), 0),
+            fileOfs(),
+            size(0),
+            readyEvent(cs),
+            ready(true)
+        {}
+
+        DecompressionJob(DecompressionJob const &other) :
+            inputBuffer(other.inputBuffer),
+            buffer(other.buffer),
+            fileOfs(other.fileOfs),
+            size(other.size),
+            readyEvent(cs),
+            ready(other.ready)
+        {}
+    };
+
+    // string of recycable jobs
+    size_t                      numThreads;
+    size_t                      numJobs;
+    String<DecompressionJob>    jobs;
+    TJobQueue                   runningQueue;
+    TJobQueue                   todoQueue;
+    int                         currentJobId;
+
+    struct DecompressionThread
+    {
+        basic_unbgzf_streambuf          *streamBuf;
+        CompressionContext<BgzfFile>    compressionCtx;
+
+        void operator()()
+        {
+            ScopedReadLock<TJobQueue> readLock(streamBuf->todoQueue);
+            ScopedWriteLock<TJobQueue> writeLock(streamBuf->runningQueue);
+
+            // wait for a new job to become available
+            while (true)
+            {
+                int jobId = -1;
+                if (!popFront(jobId, streamBuf->todoQueue))
+                    return;
+
+                DecompressionJob &job = streamBuf->jobs[jobId];
+                size_t tailLen = 0;
+
+                // typically the idle queue contains only ready jobs
+                // however, if seek() fast forwards running jobs into the todoQueue
+                // the caller defers the task of waiting to the decompression threads
+                if (!job.ready)
+                {
+                    ScopedLock<CriticalSection> lock(job.cs);
+                    if (!job.ready)
+                    {
+                        waitFor(job.readyEvent);
+                        job.ready = true;
+                    }
+                }
+
+                {
+                    ScopedLock<Mutex> scopedLock(streamBuf->serializer.lock);
+
+                    if (streamBuf->serializer.error != NULL)
+                        return;
+
+                    // remember start offset (for tellg later)
+                    job.fileOfs = streamBuf->serializer.fileOfs;
+                    job.size = -1;
+
+                    // only load if not at EOF
+                    if (job.fileOfs != -1)
+                    {
+                        // read header
+                        streamBuf->serializer.istream.read(
+                            (char*)&job.inputBuffer[0],
+                            BGZF_BLOCK_HEADER_LENGTH);
+
+                        if (!streamBuf->serializer.istream.good())
+                        {
+                            streamBuf->serializer.fileOfs = -1;
+                            if (streamBuf->serializer.istream.eof())
+                                goto eofSkip;
+                            streamBuf->serializer.error = new IOError("Stream read error.");
+                            return;
+                        }
+
+                        // check header
+                        if (!_bgzfCheckHeader(&job.inputBuffer[0]))
+                        {
+                            streamBuf->serializer.fileOfs = -1;
+                            streamBuf->serializer.error = new IOError("Invalid BGZF block header.");
+                            return;
+                        }
+
+                        // extract length of compressed data
+                        tailLen = _bgzfUnpack16(&job.inputBuffer[0] + 16) + 1u - BGZF_BLOCK_HEADER_LENGTH;
+
+                        // read compressed data and tail
+                        streamBuf->serializer.istream.read(
+                            (char*)&job.inputBuffer[0] + BGZF_BLOCK_HEADER_LENGTH,
+                            tailLen);
+
+                        if (!streamBuf->serializer.istream.good())
+                        {
+                            streamBuf->serializer.fileOfs = -1;
+                            if (streamBuf->serializer.istream.eof())
+                                goto eofSkip;
+                            streamBuf->serializer.error = new IOError("Stream read error.");
+                            return;
+                        }
+
+                        streamBuf->serializer.fileOfs += BGZF_BLOCK_HEADER_LENGTH + tailLen;
+                        job.ready = false;
+
+                    eofSkip:
+                        streamBuf->serializer.istream.clear(
+                            streamBuf->serializer.istream.rdstate() & ~std::ios_base::failbit);
+                    }
+
+                    if (!appendValue(streamBuf->runningQueue, jobId))
+                    {
+                        // signal that job is ready
+                        {
+                            ScopedLock<CriticalSection> lock(job.cs);
+                            job.ready = true;
+                            signal(job.readyEvent);
+                        }
+                        return;
+                    }
+                }
+
+                if (!job.ready)
+                {
+                    // decompress block
+                    job.size = _decompressBlock(
+                        &job.buffer[0] + MAX_PUTBACK, capacity(job.buffer),
+                        &job.inputBuffer[0], BGZF_BLOCK_HEADER_LENGTH + tailLen, compressionCtx);
+
+                    // signal that job is ready
+                    {
+                        ScopedLock<CriticalSection> lock(job.cs);
+                        job.ready = true;
+                        signal(job.readyEvent);
+                    }
+                }
+            }
+        }
+    };
+
+    // array of worker threads
+    Thread<DecompressionThread> *threads;
+    TBuffer                     putbackBuffer;
+
+    basic_unbgzf_streambuf(istream_reference istream_,
+                           size_t numThreads = 16,
+                           size_t jobsPerThread = 8) :
+        serializer(istream_),
+        numThreads(numThreads),
+        numJobs(numThreads * jobsPerThread),
+        runningQueue(numJobs),
+        todoQueue(numJobs),
+        putbackBuffer(MAX_PUTBACK)
+    {
+        resize(jobs, numJobs, Exact());
+        currentJobId = -1;
+
+        lockReading(runningQueue);
+        lockWriting(todoQueue);
+        setReaderWriterCount(runningQueue, 1, numThreads);
+        setReaderWriterCount(todoQueue, numThreads, 1);
+
+        for (unsigned i = 0; i < numJobs; ++i)
+        {
+            bool success = appendValue(todoQueue, i);
+            ignoreUnusedVariableWarning(success);
+            SEQAN_ASSERT(success);
+        }
+
+        threads = new Thread<DecompressionThread>[numThreads];
+        for (unsigned i = 0; i < numThreads; ++i)
+        {
+            threads[i].worker.streamBuf = this;
+            run(threads[i]);
+        }
+    }
+
+    ~basic_unbgzf_streambuf()
+    {
+        unlockWriting(todoQueue);
+        unlockReading(runningQueue);
+
+        for (unsigned i = 0; i < numThreads; ++i)
+            waitFor(threads[i]);
+        delete[] threads;
+    }
+
+    int_type underflow()
+    {
+        // no need to use the next buffer?
+        if (this->gptr() && this->gptr() < this->egptr())
+            return Tr::to_int_type(*this->gptr());
+
+        size_t putback = this->gptr() - this->eback();
+        if (putback > MAX_PUTBACK)
+            putback = MAX_PUTBACK;
+
+        // save at most MAX_PUTBACK characters from previous page to putback buffer
+        if (putback != 0)
+            std::copy(
+                this->gptr() - putback,
+                this->gptr(),
+                &putbackBuffer[0]);
+
+        if (currentJobId >= 0)
+            appendValue(todoQueue, currentJobId);
+
+        while (true)
+        {
+            if (!popFront(currentJobId, runningQueue))
+            {
+                currentJobId = -1;
+                SEQAN_ASSERT(serializer.error != NULL);
+                if (serializer.error != NULL)
+                    throw *serializer.error;
+                return EOF;
+            }
+
+            DecompressionJob &job = jobs[currentJobId];
+
+            // restore putback buffer
+            this->setp(&job.buffer[0], &job.buffer[0] + (job.buffer.size() - 1));
+            if (putback != 0)
+                std::copy(
+                    &putbackBuffer[0],
+                    &putbackBuffer[0] + putback,
+                    &job.buffer[0] + (MAX_PUTBACK - putback));
+
+            // wait for the end of decompression
+            {
+                ScopedLock<CriticalSection> lock(job.cs);
+                if (!job.ready)
+                    waitFor(job.readyEvent);
+            }
+
+            size_t size = (job.size != -1)? job.size : 0;
+
+            // reset buffer pointers
+            this->setg(
+                  &job.buffer[0] + (MAX_PUTBACK - putback),     // beginning of putback area
+                  &job.buffer[0] + MAX_PUTBACK,                 // read position
+                  &job.buffer[0] + (MAX_PUTBACK + size));       // end of buffer
+
+            if (job.size == -1)
+                return EOF;
+            else if (job.size > 0)
+                return Tr::to_int_type(*this->gptr());      // return next character
+        }
+    }
+
+    pos_type seekoff(off_type ofs, std::ios_base::seekdir dir, std::ios_base::openmode openMode)
+    {
+        if ((openMode & (std::ios_base::in | std::ios_base::out)) == std::ios_base::in)
+        {
+            if (dir == std::ios_base::cur && ofs >= 0)
+            {
+                // forward delta seek
+                while (currentJobId < 0 || this->egptr() - this->gptr() < ofs)
+                {
+                    ofs -= this->egptr() - this->gptr();
+                    if (this->underflow() == EOF)
+                        break;
+                }
+
+                if (currentJobId >= 0 && ofs <= this->egptr() - this->gptr())
+                {
+                    DecompressionJob &job = jobs[currentJobId];
+
+                    // reset buffer pointers
+                    this->setg(
+                          this->eback(),            // beginning of putback area
+                          this->gptr() + ofs,       // read position
+                          this->egptr());           // end of buffer
+
+                    return pos_type((job.fileOfs << 16) + ((this->gptr() - &job.buffer[MAX_PUTBACK])));
+                }
+
+            }
+            else if (dir == std::ios_base::beg)
+            {
+                // random seek
+                std::streampos destFileOfs = ofs >> 16;
+
+                // are we in the same block?
+                if (currentJobId >= 0 && jobs[currentJobId].fileOfs == (off_type)destFileOfs)
+                {
+                    DecompressionJob &job = jobs[currentJobId];
+
+                    // reset buffer pointers
+                    this->setg(
+                          this->eback(),                                        // beginning of putback area
+                          &job.buffer[0] + (MAX_PUTBACK + (ofs & 0xffff)),      // read position
+                          this->egptr());                                       // end of buffer
+                    return ofs;
+                }
+
+                // ok, different block
+                {
+                    ScopedLock<Mutex> scopedLock(serializer.lock);
+
+                    // remove all running jobs and put them in the idle queue unless we
+                    // find our seek target
+
+                    if (currentJobId >= 0)
+                        appendValue(todoQueue, currentJobId);
+
+                    // Note that if we are here the current job does not represent the sought block.
+                    // Hence if the running queue is empty we need to explicitly unset the jobId,
+                    // otherwise we would not update the serializers istream pointer to the correct position.
+                    if (empty(runningQueue))
+                        currentJobId = -1;
+
+                    // empty is thread-safe in serializer.lock
+                    while (!empty(runningQueue))
+                    {
+                        popFront(currentJobId, runningQueue);
+
+                        if (jobs[currentJobId].fileOfs == (off_type)destFileOfs)
+                            break;
+
+                        // push back useless job
+                        appendValue(todoQueue, currentJobId);
+                        currentJobId = -1;
+                    }
+
+                    if (currentJobId == -1)
+                    {
+                        SEQAN_ASSERT(empty(runningQueue));
+                        serializer.istream.clear(serializer.istream.rdstate() & ~std::ios_base::eofbit);
+                        if (serializer.istream.rdbuf()->pubseekpos(destFileOfs, std::ios_base::in) == destFileOfs)
+                            serializer.fileOfs = destFileOfs;
+                        else
+                            currentJobId = -2;      // temporarily signals a seek error
+                    }
+                }
+
+                // if our block wasn't in the running queue yet, it should now
+                // be the first that falls out after modifying serializer.fileOfs
+                if (currentJobId == -1)
+                    popFront(currentJobId, runningQueue);
+                else if (currentJobId == -2)
+                    currentJobId = -1;
+
+                if (currentJobId >= 0)
+                {
+                    // wait for the end of decompression
+                    DecompressionJob &job = jobs[currentJobId];
+                    {
+                        ScopedLock<CriticalSection> lock(job.cs);
+                        if (!job.ready)
+                            waitFor(job.readyEvent);
+                    }
+
+                    SEQAN_ASSERT_EQ(job.fileOfs, (off_type)destFileOfs);
+
+                    // reset buffer pointers
+                    this->setg(
+                          &job.buffer[0] + MAX_PUTBACK,                     // no putback area
+                          &job.buffer[0] + (MAX_PUTBACK + (ofs & 0xffff)),  // read position
+                          &job.buffer[0] + (MAX_PUTBACK + job.size));       // end of buffer
+                    return ofs;
+                }
+            }
+        }
+        return pos_type(off_type(-1));
+    }
+
+    pos_type seekpos(pos_type pos, std::ios_base::openmode openMode)
+    {
+        return seekoff(off_type(pos), std::ios_base::beg, openMode);
+    }
+
+    /// returns the compressed input istream
+    istream_reference get_istream()    { return serializer.istream;};
+};
+
+/* \brief Base class for zip ostreams
+
+Contains a basic_bgzf_streambuf.
+*/
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bgzf_ostreambase : virtual public std::basic_ios<Elem,Tr>
+{
+public:
+    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
+    typedef basic_bgzf_streambuf<
+        Elem,
+        Tr,
+        ElemA,
+        ByteT,
+        ByteAT
+        > bgzf_streambuf_type;
+
+    basic_bgzf_ostreambase(ostream_reference ostream_)
+        : m_buf(ostream_)
+    {
+        this->init(&m_buf );
+    };
+
+    /// returns the underlying zip ostream object
+    bgzf_streambuf_type* rdbuf() { return &m_buf; };
+
+    /// returns the bgzf error state
+    int get_zerr() const                    {    return m_buf.get_err();};
+    /// returns the uncompressed data crc
+    long get_crc() const                    {    return m_buf.get_crc();};
+    /// returns the compressed data size
+    long get_out_size() const                {    return m_buf.get_out_size();};
+    /// returns the uncompressed data size
+    long get_in_size() const                {    return m_buf.get_in_size();};
+private:
+    bgzf_streambuf_type m_buf;
+};
+
+/* \brief Base class for unzip istreams
+
+Contains a basic_unbgzf_streambuf.
+*/
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bgzf_istreambase : virtual public std::basic_ios<Elem,Tr>
+{
+public:
+    typedef std::basic_istream<Elem, Tr>& istream_reference;
+    typedef basic_unbgzf_streambuf<
+        Elem,
+        Tr,
+        ElemA,
+        ByteT,
+        ByteAT
+        > unbgzf_streambuf_type;
+
+    basic_bgzf_istreambase(istream_reference ostream_)
+        : m_buf(ostream_)
+    {
+        this->init(&m_buf );
+    };
+
+    /// returns the underlying unzip istream object
+    unbgzf_streambuf_type* rdbuf() { return &m_buf; };
+
+    /// returns the bgzf error state
+    int get_zerr() const                    {    return m_buf.get_zerr();};
+    /// returns the uncompressed data crc
+    long get_crc() const                    {    return m_buf.get_crc();};
+    /// returns the uncompressed data size
+    long get_out_size() const                {    return m_buf.get_out_size();};
+    /// returns the compressed data size
+    long get_in_size() const                {    return m_buf.get_in_size();};
+private:
+    unbgzf_streambuf_type m_buf;
+};
+
+/*brief A zipper ostream
+
+This class is a ostream decorator that behaves 'almost' like any other ostream.
+
+At construction, it takes any ostream that shall be used to output of the compressed data.
+
+When finished, you need to call the special method zflush or call the destructor
+to flush all the intermidiate streams.
+
+Example:
+\code
+// creating the target zip string, could be a fstream
+ostringstream ostringstream_;
+// creating the zip layer
+bgzf_ostream zipper(ostringstream_);
+
+
+// writing data
+zipper<<f<<" "<<d<<" "<<ui<<" "<<ul<<" "<<us<<" "<<c<<" "<<dum;
+// zip ostream needs special flushing...
+zipper.zflush();
+\endcode
+*/
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bgzf_ostream :
+    public basic_bgzf_ostreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
+    public std::basic_ostream<Elem,Tr>
+{
+public:
+    typedef basic_bgzf_ostreambase<
+        Elem,Tr,ElemA,ByteT,ByteAT> bgzf_ostreambase_type;
+    typedef std::basic_ostream<Elem,Tr> ostream_type;
+    typedef ostream_type& ostream_reference;
+
+    basic_bgzf_ostream(ostream_reference ostream_)
+    :
+        bgzf_ostreambase_type(ostream_),
+        ostream_type(bgzf_ostreambase_type::rdbuf())
+    {}
+
+    /// flush inner buffer and zipper buffer
+    basic_bgzf_ostream<Elem,Tr>& zflush()
+    {
+        this->flush(); this->rdbuf()->flush(); return *this;
+    };
+
+    ~basic_bgzf_ostream()
+    {
+        this->rdbuf()->addFooter();
+    }
+
+private:
+    static void put_long(ostream_reference out_, unsigned long x_);
+#ifdef _WIN32
+    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
+    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
+#endif
+};
+
+/* \brief A zipper istream
+
+This class is a istream decorator that behaves 'almost' like any other ostream.
+
+At construction, it takes any istream that shall be used to input of the compressed data.
+
+Simlpe example:
+\code
+// create a stream on zip string
+istringstream istringstream_( ostringstream_.str());
+// create unzipper istream
+bgzf_istream unzipper( istringstream_);
+
+// read and unzip
+unzipper>>f_r>>d_r>>ui_r>>ul_r>>us_r>>c_r>>dum_r;
+\endcode
+*/
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bgzf_istream :
+    public basic_bgzf_istreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
+    public std::basic_istream<Elem,Tr>
+{
+public:
+    typedef basic_bgzf_istreambase<
+        Elem,Tr,ElemA,ByteT,ByteAT> bgzf_istreambase_type;
+    typedef std::basic_istream<Elem,Tr> istream_type;
+    typedef istream_type& istream_reference;
+    typedef char byte_type;
+
+    basic_bgzf_istream(istream_reference istream_)
+      :
+        bgzf_istreambase_type(istream_),
+        istream_type(bgzf_istreambase_type::rdbuf()),
+        m_is_gzip(false),
+        m_gbgzf_data_size(0)
+    {};
+
+    /// returns true if it is a gzip file
+    bool is_gzip() const                {    return m_is_gzip;};
+    /// return data size check
+    bool check_data_size() const        {    return this->get_out_size() == m_gbgzf_data_size;};
+
+    /// return the data size in the file
+    long get_gbgzf_data_size() const        {    return m_gbgzf_data_size;};
+protected:
+    static void read_long(istream_reference in_, unsigned long& x_);
+
+    int check_header();
+    bool m_is_gzip;
+    unsigned long m_gbgzf_data_size;
+
+#ifdef _WIN32
+private:
+    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
+    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
+#endif
+};
+
+/// A typedef for basic_bgzf_ostream<char>
+typedef basic_bgzf_ostream<char> bgzf_ostream;
+/// A typedef for basic_bgzf_ostream<wchar_t>
+typedef basic_bgzf_ostream<wchar_t> bgzf_wostream;
+/// A typedef for basic_bgzf_istream<char>
+typedef basic_bgzf_istream<char> bgzf_istream;
+/// A typedef for basic_bgzf_istream<wchart>
+typedef basic_bgzf_istream<wchar_t> bgzf_wistream;
+
+}  // namespace seqan
+
+#include "bgzfstream_impl.h"
+
+#endif
diff --git a/include/seqan/stream/zipstream/bgzfstream_impl.h b/include/seqan/stream/zipstream/bgzfstream_impl.h
new file mode 100644
index 0000000..4292015
--- /dev/null
+++ b/include/seqan/stream/zipstream/bgzfstream_impl.h
@@ -0,0 +1,203 @@
+/*
+zipstream Library License:
+--------------------------
+
+The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
+
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution
+
+Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003   (original zlib stream)
+Author: David Weese, dave.weese at gmail.com, 2014             (extension to parallel block-wise compression in bgzf format)
+*/
+#ifndef BGZFSTREAM_IPP
+#define BGZFSTREAM_IPP
+
+#include "bgzfstream.h"
+#include <sstream>
+
+namespace seqan {
+
+namespace detail{
+    const int gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */
+
+    /* gzip flag byte */
+    const int gz_ascii_flag =  0x01; /* bit 0 set: file probably ascii text */
+    const int gz_head_crc    = 0x02; /* bit 1 set: header CRC present */
+    const int gz_extra_field = 0x04; /* bit 2 set: extra field present */
+    const int gz_orig_name  =  0x08; /* bit 3 set: original file name present */
+    const int gz_comment    =  0x10; /* bit 4 set: file comment present */
+    const int gz_reserved   =  0xE0; /* bits 5..7: reserved */
+
+}
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    int _checkGZHeader(basic_unbgzf_streambuf<Elem, Tr, ElemA, ByteT, ByteAT> *buf)
+    {
+        int method; /* method byte */
+        int flags;  /* flags byte */
+        uInt len;
+        int c;
+        int err=0;
+        z_stream& bgzf_stream = buf->get_bgzf_stream();
+
+        std::basic_istream<Elem, Tr> &istream = buf->get_istream();
+        bool m_is_gzip;
+
+        /* Check the gzip magic header */
+         for (len = 0; len < 2; len++)
+         {
+            c = (int)istream.get();
+            if (c != detail::gz_magic[len])
+            {
+                if (len != 0)
+                    istream.unget();
+                if (c!= EOF)
+                {
+                    istream.unget();
+                }
+
+                err = bgzf_stream.avail_in != 0 ? Z_OK : Z_STREAM_END;
+                m_is_gzip = false;
+                return err;
+            }
+        }
+
+        m_is_gzip = true;
+        method = (int)istream.get();
+        flags = (int)istream.get();
+        if (method != Z_DEFLATED || (flags & detail::gz_reserved) != 0)
+        {
+            err = Z_DATA_ERROR;
+            return err;
+        }
+
+        /* Discard time, xflags and OS code: */
+        for (len = 0; len < 6; len++)
+            istream.get();
+
+        if ((flags & detail::gz_extra_field) != 0)
+        {
+            /* skip the extra field */
+            len  =  (uInt)istream.get();
+            len += ((uInt)istream.get())<<8;
+            /* len is garbage if EOF but the loop below will quit anyway */
+            while (len-- != 0 && istream.get() != EOF) ;
+        }
+        if ((flags & detail::gz_orig_name) != 0)
+        {
+            /* skip the original file name */
+            while ((c = istream.get()) != 0 && c != EOF) ;
+        }
+        if ((flags & detail::gz_comment) != 0)
+        {
+            /* skip the .gz file comment */
+            while ((c = istream.get()) != 0 && c != EOF) ;
+        }
+        if ((flags & detail::gz_head_crc) != 0)
+        {  /* skip the header crc */
+            for (len = 0; len < 2; len++)
+                istream.get();
+        }
+        err = istream.eof() ? Z_DATA_ERROR : Z_OK;
+
+        return err;
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    int basic_bgzf_istream<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::check_header()
+    {
+        return _checkGZHeader(this->rdbuf());
+    }
+
+    template<
+        typename Elem,
+        typename Tr
+    >
+    void _putBinaryLong(std::basic_ostream<Elem,Tr> & out_, unsigned long x_)
+    {
+        static const int size_ul = sizeof(unsigned long);
+        static const int size_c = sizeof(typename Tr::char_type);
+        static const int n_end = size_ul/size_c;
+        out_.write(reinterpret_cast<typename Tr::char_type const*>(&x_), n_end);
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_bgzf_istream<
+            Elem,Tr,ElemA,ByteT,ByteAT
+            >::read_long(
+                istream_reference in_,
+            unsigned long& x_
+            )
+    {
+        static const int size_ul = sizeof(unsigned long);
+        static const int size_c = sizeof(typename Tr::char_type);
+        static const int n_end = size_ul/size_c;
+        in_.read(reinterpret_cast<char*>(&x_),n_end);
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void _addGZHeader(basic_bgzf_streambuf<Elem, Tr, ElemA, ByteT, ByteAT> *buf)
+    {
+        typename Tr::char_type zero=0;
+
+        buf->get_ostream()
+            .put(static_cast<typename Tr::char_type>(detail::gz_magic[0]))
+            .put(static_cast<typename Tr::char_type>(detail::gz_magic[1]))
+            .put(static_cast<typename Tr::char_type>(Z_DEFLATED))
+            .put(zero) //flags
+            .put(zero).put(zero).put(zero).put(zero) // time
+            .put(zero) //xflags
+            .put(static_cast<typename Tr::char_type>(OS_CODE));
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void _addGZFooter(basic_bgzf_streambuf<Elem, Tr, ElemA, ByteT, ByteAT> *buf)
+    {
+        _putBinaryLong( buf->get_ostream(), buf->get_crc() );
+        _putBinaryLong( buf->get_ostream(), buf->get_in_size() );
+    }
+
+}  // namespace seqan
+
+#endif
diff --git a/include/seqan/stream/zipstream/bzip2stream.h b/include/seqan/stream/zipstream/bzip2stream.h
new file mode 100644
index 0000000..8553855
--- /dev/null
+++ b/include/seqan/stream/zipstream/bzip2stream.h
@@ -0,0 +1,305 @@
+/*
+bzip2stream Library License:
+--------------------------
+
+The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
+
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution
+
+Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
+*/
+
+#ifndef BZIP2STREAM_HPP
+#define BZIP2STREAM_HPP
+
+#define BZ_NO_STDIO
+
+#include <bzlib.h>
+#include <vector>
+#include <iostream>
+#include <algorithm>
+
+namespace bzip2_stream{
+
+const size_t default_buffer_size = 4096;
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bzip2_streambuf :
+    public std::basic_streambuf<Elem, Tr>
+{
+public:
+    typedef std::basic_streambuf< Elem, Tr > basic_streambuf_type;
+    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
+    typedef ElemA char_allocator_type;
+    typedef ByteT byte_type;
+    typedef ByteAT byte_allocator_type;
+    typedef byte_type* byte_buffer_type;
+    typedef typename Tr::char_type char_type;
+    typedef typename Tr::int_type int_type;
+    typedef std::vector<byte_type, byte_allocator_type > byte_vector_type;
+    typedef std::vector<char_type, char_allocator_type > char_vector_type;
+
+    using basic_streambuf_type::epptr;
+    using basic_streambuf_type::pbase;
+    using basic_streambuf_type::pptr;
+
+    basic_bzip2_streambuf(
+        ostream_reference ostream_,
+        size_t block_size_100k_ ,
+        size_t verbosity_ ,
+        size_t work_factor_,
+        size_t buffer_size_
+        );
+
+    ~basic_bzip2_streambuf();
+
+    int sync ();
+    int_type overflow (int_type c);
+
+    std::streamsize flush(int flush_mode);
+    int get_zerr() const
+    {    return m_err;};
+    __uint64 get_in_size() const
+    {
+        return ((__uint64)m_bzip2_stream.total_in_hi32 << 32)
+                + m_bzip2_stream.total_in_lo32;
+    }
+    __uint64 get_out_size() const
+    {
+        return ((__uint64)m_bzip2_stream.total_out_hi32 << 32)
+                + m_bzip2_stream.total_out_lo32;
+    }
+private:
+    bool bzip2_to_stream( char_type*, std::streamsize);
+    size_t fill_input_buffer();
+
+    ostream_reference m_ostream;
+    bz_stream m_bzip2_stream;
+    int m_err;
+    byte_vector_type m_output_buffer;
+    char_vector_type m_buffer;
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_unbzip2_streambuf :
+    public std::basic_streambuf<Elem, Tr>
+{
+public:
+    typedef std::basic_istream<Elem, Tr>& istream_reference;
+    typedef ElemA char_allocator_type;
+    typedef ByteT byte_type;
+    typedef ByteAT byte_allocator_type;
+    typedef byte_type* byte_buffer_type;
+    typedef typename Tr::char_type char_type;
+    typedef typename Tr::int_type int_type;
+    typedef std::vector<byte_type, byte_allocator_type > byte_vector_type;
+    typedef std::vector<char_type, char_allocator_type > char_vector_type;
+
+    basic_unbzip2_streambuf(
+        istream_reference istream_,
+        size_t verbosity_,
+        bool small_,
+        size_t read_buffer_size_,
+        size_t input_buffer_size_
+        );
+
+    ~basic_unbzip2_streambuf();
+
+    int_type underflow();
+
+    istream_reference get_istream()        {    return m_istream;};
+    bz_stream& get_bzip2_stream()        {    return m_bzip2_stream;};
+    int get_zerr() const                {    return m_err;};
+private:
+    std::streamsize unbzip2_from_stream( char_type*, std::streamsize);
+    void put_back_from_bzip2_stream();
+    size_t fill_input_buffer();
+
+    istream_reference m_istream;
+    bz_stream m_bzip2_stream;
+    int m_err;
+    byte_vector_type m_input_buffer;
+    char_vector_type m_buffer;
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bzip2_ostreambase : virtual public std::basic_ios<Elem,Tr>
+{
+public:
+    typedef std::basic_ostream<Elem, Tr>& ostream_reference;
+    typedef basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT> bzip2_streambuf_type;
+
+    basic_bzip2_ostreambase(
+        ostream_reference ostream_,
+        size_t block_size_100k_ ,
+        size_t verbosity_ ,
+        size_t work_factor_,
+        size_t buffer_size_
+        )
+        : m_buf(ostream_,block_size_100k_, verbosity_, work_factor_, buffer_size_)
+    {
+        this->init(&m_buf );
+    };
+
+    bzip2_streambuf_type* rdbuf() { return &m_buf; };
+
+private:
+    bzip2_streambuf_type m_buf;
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bzip2_istreambase : virtual public std::basic_ios<Elem,Tr>
+{
+public:
+    typedef std::basic_istream<Elem, Tr>& istream_reference;
+    typedef basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT> unbzip2_streambuf_type;
+
+    basic_bzip2_istreambase(
+        istream_reference ostream_,
+        size_t verbosity_,
+        bool small_,
+        size_t read_buffer_size_,
+        size_t input_buffer_size_
+        )
+        : m_buf(
+            ostream_,
+            verbosity_,
+            small_,
+            read_buffer_size_,
+            input_buffer_size_
+            )
+    {
+        this->init(&m_buf );
+    };
+
+    unbzip2_streambuf_type* rdbuf() { return &m_buf; };
+
+private:
+    unbzip2_streambuf_type m_buf;
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bzip2_ostream :
+    public basic_bzip2_ostreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
+    public std::basic_ostream<Elem,Tr>
+{
+public:
+    typedef basic_bzip2_ostreambase<
+        Elem,Tr,ElemA,ByteT,ByteAT> bzip2_ostreambase_type;
+    typedef std::basic_ostream<Elem,Tr> ostream_type;
+    typedef ostream_type& ostream_reference;
+
+    basic_bzip2_ostream(
+        ostream_reference ostream_,
+        size_t block_size_100k_ = 9,
+        size_t verbosity_ = 0,
+        size_t work_factor_ = 30,
+        size_t buffer_size_ = default_buffer_size
+        )
+    :
+        bzip2_ostreambase_type(ostream_,block_size_100k_, verbosity_, work_factor_,buffer_size_),
+        ostream_type(bzip2_ostreambase_type::rdbuf())
+    {
+
+    };
+
+    basic_bzip2_ostream& add_header();
+    basic_bzip2_ostream& zflush()
+    {
+        this->flush(); this->rdbuf()->flush(); return *this;
+    };
+
+#ifdef _WIN32
+private:
+    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
+    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
+#endif
+};
+
+template<
+    typename Elem,
+    typename Tr = std::char_traits<Elem>,
+    typename ElemA = std::allocator<Elem>,
+    typename ByteT = char,
+    typename ByteAT = std::allocator<ByteT>
+>
+class basic_bzip2_istream :
+    public basic_bzip2_istreambase<Elem,Tr,ElemA,ByteT,ByteAT>,
+    public std::basic_istream<Elem,Tr>
+{
+public:
+    typedef basic_bzip2_istreambase<
+        Elem,Tr,ElemA,ByteT,ByteAT> bzip2_istreambase_type;
+    typedef std::basic_istream<Elem,Tr> istream_type;
+    typedef istream_type& istream_reference;
+    typedef unsigned char byte_type;
+
+    basic_bzip2_istream(
+        istream_reference istream_,
+        size_t verbosity_ = 0,
+        bool small_ = false,
+        size_t read_buffer_size_ = default_buffer_size,
+        size_t input_buffer_size_ = default_buffer_size
+        )
+      :
+        bzip2_istreambase_type(istream_,verbosity_, small_, read_buffer_size_, input_buffer_size_),
+        istream_type(bzip2_istreambase_type::rdbuf())
+    {};
+#ifdef _WIN32
+private:
+    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
+    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
+#endif
+};
+
+typedef basic_bzip2_ostream<char> bzip2_ostream;
+typedef basic_bzip2_ostream<wchar_t> bzip2_wostream;
+typedef basic_bzip2_istream<char> bzip2_istream;
+typedef basic_bzip2_istream<wchar_t> bzip2_wistream;
+
+} // bzip2_stream
+
+#include "bzip2stream_impl.h"
+
+#endif
+
diff --git a/include/seqan/stream/zipstream/bzip2stream_impl.h b/include/seqan/stream/zipstream/bzip2stream_impl.h
new file mode 100644
index 0000000..1529bdd
--- /dev/null
+++ b/include/seqan/stream/zipstream/bzip2stream_impl.h
@@ -0,0 +1,430 @@
+/*
+bzip2stream Library License:
+--------------------------
+
+The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
+
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution
+
+Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
+*/
+#ifndef BZIP2STREAM_IPP
+#define BZIP2STREAM_IPP
+
+#include "bzip2stream.h"
+
+namespace bzip2_stream{
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >:: basic_bzip2_streambuf(
+        ostream_reference ostream_,
+        size_t block_size_100k_,
+        size_t verbosity_,
+        size_t work_factor_,
+        size_t buffer_size_
+        )
+    :
+        m_ostream(ostream_),
+        m_output_buffer(buffer_size_,0),
+        m_buffer(buffer_size_,0)
+    {
+        m_bzip2_stream.bzalloc=NULL;
+        m_bzip2_stream.bzfree=NULL;
+
+        m_bzip2_stream.next_in=NULL;
+        m_bzip2_stream.avail_in=0;
+        m_bzip2_stream.avail_out=0;
+        m_bzip2_stream.next_out=NULL;
+
+        m_err=BZ2_bzCompressInit(
+            &m_bzip2_stream,
+            std::min( 9, static_cast<int>(block_size_100k_) ),
+            std::min( 4, static_cast<int>(verbosity_) ),
+            std::min( 250, static_cast<int>(work_factor_) )
+            );
+
+        this->setp( &(m_buffer[0]), &(m_buffer[m_buffer.size()-1]));
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::~basic_bzip2_streambuf()
+    {
+        flush(BZ_FINISH);
+        m_ostream.flush();
+        m_err=BZ2_bzCompressEnd(&m_bzip2_stream);
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    int basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::sync ()
+    {
+        if ( this->pptr() && this->pptr() > this->pbase())
+        {
+            int c = overflow( EOF);
+
+            if ( c == EOF)
+                return -1;
+        }
+
+        return 0;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    typename basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::int_type
+            basic_bzip2_streambuf<
+                Elem,Tr,ElemA,ByteT,ByteAT
+                >::overflow (
+                    typename basic_bzip2_streambuf<
+                        Elem,Tr,ElemA,ByteT,ByteAT
+                        >::int_type c
+                    )
+    {
+        int w = static_cast<int>(this->pptr() - this->pbase());
+        if (c != EOF) {
+             *this->pptr() = c;
+             ++w;
+         }
+         if ( bzip2_to_stream( this->pbase(), w)) {
+             this->setp( this->pbase(), this->epptr());
+             return c;
+         } else
+             return EOF;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    bool basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::bzip2_to_stream(
+            typename basic_bzip2_streambuf<
+                Elem,Tr,ElemA,ByteT,ByteAT
+                >::char_type* buffer_,
+            std::streamsize buffer_size_
+            )
+    {
+        std::streamsize written_byte_size=0, total_written_byte_size = 0;
+
+        m_bzip2_stream.next_in=(byte_buffer_type)buffer_;
+        m_bzip2_stream.avail_in=buffer_size_*sizeof(char_type);
+        m_bzip2_stream.avail_out=static_cast<unsigned int>(m_output_buffer.size());
+        m_bzip2_stream.next_out=&(m_output_buffer[0]);
+        size_t remainder=0;
+
+        do
+        {
+            m_err = BZ2_bzCompress (&m_bzip2_stream, BZ_RUN );
+
+            if (m_err == BZ_RUN_OK  || m_err == BZ_STREAM_END)
+            {
+                written_byte_size= static_cast<std::streamsize>(m_output_buffer.size()) - m_bzip2_stream.avail_out;
+                total_written_byte_size+=written_byte_size;
+                // ouput buffer is full, dumping to ostream
+                m_ostream.write(
+                    (const char_type*) &(m_output_buffer[0]),
+                    static_cast<std::streamsize>( written_byte_size/sizeof(char_type) )
+                    );
+
+                // checking if some bytes were not written.
+                if ( (remainder = written_byte_size%sizeof(char_type))!=0)
+                {
+                    // copy to the beginning of the stream
+                    std::memmove(
+                        &(m_output_buffer[0]),
+                        &(m_output_buffer[written_byte_size-remainder]),
+                        remainder);
+
+                }
+
+                m_bzip2_stream.avail_out=static_cast<unsigned int>(m_output_buffer.size()-remainder);
+                m_bzip2_stream.next_out=&m_output_buffer[remainder];
+            }
+        }
+        while (m_bzip2_stream.avail_in != 0 && m_err == BZ_RUN_OK);
+
+        return m_err == BZ_RUN_OK || m_err == BZ_FLUSH_OK;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    std::streamsize basic_bzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::flush(int flush_mode)
+    {
+        std::streamsize written_byte_size=0, total_written_byte_size=0;
+
+        int const buffer_size = static_cast< int >( pptr() - pbase() ); // amount of data currently in buffer
+
+        m_bzip2_stream.next_in=(byte_buffer_type)pbase();
+        m_bzip2_stream.avail_in=static_cast< uInt >(buffer_size*sizeof(char_type));
+        m_bzip2_stream.avail_out=static_cast< uInt >(m_output_buffer.size());
+        m_bzip2_stream.next_out=&(m_output_buffer[0]);
+        size_t remainder=0;
+
+        do
+        {
+            m_err = BZ2_bzCompress (&m_bzip2_stream, flush_mode);
+            if (m_err == BZ_FINISH_OK || m_err == BZ_STREAM_END)
+            {
+                written_byte_size=
+                    static_cast<std::streamsize>(m_output_buffer.size())
+                    - m_bzip2_stream.avail_out;
+                total_written_byte_size+=written_byte_size;
+                // ouput buffer is full, dumping to ostream
+                m_ostream.write(
+                    (const char_type*) &(m_output_buffer[0]),
+                    static_cast<std::streamsize>( written_byte_size/sizeof(char_type)*sizeof(char) )
+                    );
+
+                // checking if some bytes were not written.
+                if ( (remainder = written_byte_size%sizeof(char_type))!=0)
+                {
+                    // copy to the beginning of the stream
+                    std::memmove(
+                        &(m_output_buffer[0]),
+                        &(m_output_buffer[written_byte_size-remainder]),
+                        remainder);
+
+                }
+
+                m_bzip2_stream.avail_out=static_cast<unsigned int>(m_output_buffer.size()-remainder);
+                m_bzip2_stream.next_out=&(m_output_buffer[remainder]);
+            }
+        } while (m_err == BZ_FINISH_OK);
+
+        m_ostream.flush();
+
+        return total_written_byte_size;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::basic_unbzip2_streambuf(
+            istream_reference istream_,
+            size_t verbosity_,
+            bool small_,
+            size_t read_buffer_size_,
+            size_t input_buffer_size_
+    )
+    :
+        m_istream(istream_),
+        m_input_buffer(input_buffer_size_),
+        m_buffer(read_buffer_size_)
+    {
+        // setting zalloc, zfree and opaque
+        m_bzip2_stream.bzalloc=NULL;
+        m_bzip2_stream.bzfree=NULL;
+
+        m_bzip2_stream.next_in=NULL;
+        m_bzip2_stream.avail_in=0;
+        m_bzip2_stream.avail_out=0;
+        m_bzip2_stream.next_out=NULL;
+
+
+        m_err=BZ2_bzDecompressInit (
+            &m_bzip2_stream,
+            std::min(4, static_cast<int>(verbosity_)),
+            static_cast<int>(small_)
+        );
+
+        this->setg(
+            &(m_buffer[0])+4,     // beginning of putback area
+            &(m_buffer[0])+4,     // read position
+            &(m_buffer[0])+4);    // end position
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    size_t basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::fill_input_buffer()
+    {
+        m_bzip2_stream.next_in=&(m_input_buffer[0]);
+        m_istream.read(
+            (char_type*)(&(m_input_buffer[0])),
+            static_cast<std::streamsize>(m_input_buffer.size()/sizeof(char_type))
+            );
+        return m_bzip2_stream.avail_in=m_istream.gcount()*sizeof(char_type);
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::put_back_from_bzip2_stream()
+    {
+        if (m_bzip2_stream.avail_in==0)
+            return;
+
+        m_istream.clear( std::ios::goodbit );
+        m_istream.seekg(
+            -static_cast<int>(m_bzip2_stream.avail_in),
+            std::ios_base::cur
+            );
+
+        m_bzip2_stream.avail_in=0;
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::~basic_unbzip2_streambuf()
+    {
+        BZ2_bzDecompressEnd(&m_bzip2_stream);
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    typename basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::int_type
+            basic_unbzip2_streambuf<
+                Elem,Tr,ElemA,ByteT,ByteAT
+                >::underflow()
+    {
+        if ( this->gptr() && ( this->gptr() < this->egptr()))
+            return * reinterpret_cast<unsigned char *>( this->gptr());
+
+       int n_putback = static_cast<int>(this->gptr() - this->eback());
+       if ( n_putback > 4)
+          n_putback = 4;
+       std::memmove(
+            &(m_buffer[0]) + (4 - n_putback),
+            this->gptr() - n_putback,
+            n_putback*sizeof(char_type)
+            );
+
+       int num = unbzip2_from_stream(
+           &(m_buffer[0])+4,
+           static_cast<std::streamsize>((m_buffer.size()-4)*sizeof(char_type))
+           );
+        if (num <= 0) // ERROR or EOF
+           return EOF;
+
+        // reset buffer pointers
+        this->setg(
+              &(m_buffer[0]) + (4 - n_putback),   // beginning of putback area
+              &(m_buffer[0]) + 4,                 // read position
+              &(m_buffer[0]) + 4 + num);          // end of buffer
+
+         // return next character
+         return* reinterpret_cast<unsigned char *>( this->gptr());
+     }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    std::streamsize basic_unbzip2_streambuf<
+        Elem,Tr,ElemA,ByteT,ByteAT
+        >::unbzip2_from_stream(
+            char_type* buffer_,
+            std::streamsize buffer_size_
+            )
+    {
+        m_bzip2_stream.next_out=(byte_buffer_type)buffer_;
+        m_bzip2_stream.avail_out=buffer_size_*sizeof(char_type);
+        size_t count =m_bzip2_stream.avail_in;
+
+        do
+        {
+            if (m_bzip2_stream.avail_in==0)
+                count=fill_input_buffer();
+
+            if (m_bzip2_stream.avail_in)
+            {
+                m_err = BZ2_bzDecompress( &m_bzip2_stream );
+            }
+        } while (m_err==BZ_OK && m_bzip2_stream.avail_out != 0 && count != 0);
+
+        if (m_err == BZ_STREAM_END)
+            put_back_from_bzip2_stream();
+
+        return buffer_size_ - m_bzip2_stream.avail_out/sizeof(char_type);
+    }
+
+
+} // zlib_sream
+
+#endif
diff --git a/include/seqan/stream/zipstream/zipstream.h b/include/seqan/stream/zipstream/zipstream.h
new file mode 100644
index 0000000..a73fd01
--- /dev/null
+++ b/include/seqan/stream/zipstream/zipstream.h
@@ -0,0 +1,665 @@
+// -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
+// vi: set ts=2 noet:
+//
+// (c) Copyright Rosetta Commons Member Institutions.
+// (c) This file is part of the Rosetta software suite and is made available under license.
+// (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
+// (c) For more information, see http://www.rosettacommons.org. Questions about this can be
+// (c) addressed to University of Washington UW TechTransfer, email: license at u.washington.edu.
+
+/// @file   utility/io/zipstream.hpp
+/// @brief  Altered zipstream library header
+/// @author Jonathan de Halleux (dehalleux at pelikhan.com)
+/// @author Stuart G. Mentzer (Stuart_Mentzer at objexx.com)
+/// @author David Kim (dekim at u.washington.edu)
+/// @author Yih-En Andrew Ban (yab at u.washington.edu)
+
+// zipstream Library License:
+// --------------------------
+//
+// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
+//
+// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution
+//
+// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
+
+
+#ifndef INCLUDED_utility_io_zipstream_HPP
+#define INCLUDED_utility_io_zipstream_HPP
+
+
+// Zlib headers
+#include <zlib.h>
+#include "zutil.h"
+
+
+
+// C++ headers
+#include <algorithm>
+#include <iostream>
+#include <vector>
+
+
+namespace zlib_stream {
+
+
+/// @brief Default gzip buffer size, change this to suite your needs
+const size_t default_buffer_size = 921600; // Was 102400; Was 4096;
+
+
+
+/// Compression strategy, see zlib doc.
+enum EStrategy
+{
+    StrategyFiltered = 1,
+    StrategyHuffmanOnly = 2,
+    DefaultStrategy = 0
+};
+
+
+/// @brief A stream decorator that takes raw input and zips it to a ostream.
+/// @note  The class wraps up the inflate method of the zlib library 1.1.4 http://www.gzip.org/zlib/
+template<
+    typename Elem,
+    typename Tr = std::char_traits< Elem >,
+    typename ElemA = std::allocator< Elem >,
+    typename ByteT = unsigned char,
+    typename ByteAT = std::allocator< ByteT >
+>
+class basic_zip_streambuf :
+    public std::basic_streambuf< Elem, Tr >
+{
+
+public:
+
+    typedef  std::basic_streambuf< Elem, Tr >  basic_streambuf_type;
+    typedef  std::basic_ostream< Elem, Tr > &  ostream_reference;
+    typedef  Elem  char_type;
+    typedef  ElemA  char_allocator_type;
+    typedef  ByteT  byte_type;
+    typedef  ByteAT  byte_allocator_type;
+    typedef  byte_type *  byte_buffer_type;
+    typedef  std::vector< byte_type, byte_allocator_type >  byte_vector_type;
+    typedef  std::vector< char_type, char_allocator_type >  char_vector_type;
+    typedef  Tr  traits_type;
+    typedef  typename Tr::int_type  int_type;
+
+    using basic_streambuf_type::epptr;
+    using basic_streambuf_type::pbase;
+    using basic_streambuf_type::pptr;
+
+    /// @brief Construct a zip stream
+    /// @note  More info on the following parameters can be found in the zlib documentation
+    basic_zip_streambuf(
+        ostream_reference ostream_,
+        size_t level_,
+        EStrategy strategy_,
+        size_t window_size_,
+        size_t memory_level_,
+        size_t buffer_size_
+    );
+
+    ~basic_zip_streambuf();
+
+    int sync();
+    int_type overflow( int_type c );
+
+    /// @brief flushes the zip buffer and output buffer
+    std::streamsize flush();
+
+    /// @brief flushes the zip buffer and output buffer and finalize the zip stream
+    /// @details This method should be called at the end of the compression.
+    std::streamsize flush_finalize();
+
+    /// @brief resets the zip stream and zeros the crc
+    /// @details This method should be called after flush_finalize()
+    /// @deatils to allow future writes
+    void reset_state();
+
+    /// @brief returns a reference to the output stream
+    ostream_reference get_ostream() const { return m_ostream; }
+
+    /// @brief returns the latest zlib error status
+    int get_zerr() const { return m_err; }
+
+    /// @brief returns the crc of the input data compressed so far
+    uLong get_crc() const { return m_crc; }
+
+    /// @brief returns the size (bytes) of the input data compressed so far
+    uLong get_in_size() const { return m_zip_stream.total_in; }
+
+    /// @brief returns the size (bytes) of the compressed data so far
+    uLong get_out_size() const { return m_zip_stream.total_out; }
+
+private:
+
+    bool zip_to_stream( char_type*, std::streamsize );
+    size_t fill_input_buffer();
+
+    /// @brief flush the zip buffer using a particular mode and flush output buffer
+    std::streamsize flush( int flush_mode );
+
+    ostream_reference m_ostream;
+    z_stream m_zip_stream;
+    int m_err;
+    byte_vector_type m_output_buffer;
+    char_vector_type m_buffer;
+    uLong m_crc;
+
+}; // basic_zip_streambuf
+
+
+/// @brief A stream decorator that takes compressed input and unzips it to a istream.
+/// @note  The class wraps up the deflate method of the zlib library 1.1.4 http://www.gzip.org/zlib/
+template<
+    typename Elem,
+    typename Tr = std::char_traits< Elem >,
+    typename ElemA = std::allocator< Elem >,
+    typename ByteT = unsigned char,
+    typename ByteAT = std::allocator< ByteT >
+>
+class basic_unzip_streambuf :
+    public std::basic_streambuf< Elem, Tr >
+{
+
+public:
+
+    typedef  std::basic_streambuf< Elem, Tr >  basic_streambuf_type;
+    typedef  std::basic_istream< Elem, Tr > &  istream_reference;
+    typedef  Elem  char_type;
+    typedef  ElemA  char_allocator_type;
+    typedef  ByteT  byte_type;
+    typedef  ByteAT  byte_allocator_type;
+    typedef  byte_type *  byte_buffer_type;
+    typedef  std::vector< byte_type, byte_allocator_type >  byte_vector_type;
+    typedef  std::vector< char_type, char_allocator_type >  char_vector_type;
+    typedef  typename Tr::int_type  int_type;
+
+    using basic_streambuf_type::eback;
+    using basic_streambuf_type::egptr;
+    using basic_streambuf_type::gptr;
+
+    /// @brief Construct an unzip stream
+    /// @note  More info on the following parameters can be found in the zlib documentation
+    basic_unzip_streambuf(
+        istream_reference istream_,
+        size_t window_size_,
+        size_t read_buffer_size_,
+        size_t input_buffer_size_
+    );
+
+    ~basic_unzip_streambuf();
+
+    int_type underflow();
+
+    /// @brief returns the compressed input istream
+    istream_reference get_istream() { return m_istream; }
+
+    /// @brief returns the zlib stream structure
+    z_stream & get_zip_stream() { return m_zip_stream; }
+
+    /// @brief returns the latest zlib error state
+    int get_zerr() const { return m_err; }
+
+    /// @brief returns the crc of the uncompressed data so far
+    uLong get_crc() const { return m_crc; }
+
+    /// @brief returns the number of uncompressed bytes
+    uLong get_out_size() const { return m_zip_stream.total_out; }
+
+    /// @brief returns the number of read compressed bytes
+    uLong get_in_size() const { return m_zip_stream.total_in; }
+
+private:
+
+    void put_back_from_zip_stream();
+
+    std::streamsize unzip_from_stream( char_type*, std::streamsize );
+
+    size_t fill_input_buffer();
+
+    istream_reference m_istream;
+    z_stream m_zip_stream;
+    int m_err;
+    byte_vector_type m_input_buffer;
+    char_vector_type m_buffer;
+    uLong m_crc;
+
+}; // basic_unzip_streambuf
+
+
+/// @brief Base class for zip ostreams
+/// @note  Contains a basic_zip_streambuf
+template<
+    typename Elem,
+    typename Tr = std::char_traits< Elem >,
+    typename ElemA = std::allocator< Elem >,
+    typename ByteT = unsigned char,
+    typename ByteAT = std::allocator< ByteT >
+>
+class basic_zip_ostreambase :
+    virtual public std::basic_ios< Elem, Tr >
+{
+
+public:
+
+    typedef  std::basic_ostream<Elem, Tr> &  ostream_reference;
+    typedef  basic_zip_streambuf<
+        Elem,
+        Tr,
+        ElemA,
+        ByteT,
+        ByteAT
+    >  zip_streambuf_type;
+
+    /// @brief Construct a zip stream
+    /// @note  More info on the following parameters can be found in the zlib documentation.
+    basic_zip_ostreambase(
+        ostream_reference ostream_,
+        size_t level_,
+        EStrategy strategy_,
+        size_t window_size_,
+        size_t memory_level_,
+        size_t buffer_size_
+    ) :
+        m_buf( ostream_, level_, strategy_, window_size_, memory_level_, buffer_size_ )
+    {
+        this->init( &m_buf );
+    }
+
+    /// @brief returns the underlying zip ostream object
+    zip_streambuf_type * rdbuf() { return &m_buf; }
+
+    /// @brief returns the zlib error state
+    int get_zerr() const { return m_buf.get_err(); }
+
+    /// @brief returns the uncompressed data crc
+    uLong get_crc() const { return m_buf.get_crc(); }
+
+    /// @brief returns the compressed data size
+    uLong get_out_size() const { return m_buf.get_out_size(); }
+
+    /// @brief returns the uncompressed data size
+    uLong get_in_size() const { return m_buf.get_in_size(); }
+
+private:
+
+    zip_streambuf_type m_buf;
+
+}; // basic_zip_ostreambase
+
+
+/// @brief Base class for unzip istreams
+/// @note  Contains a basic_unzip_streambuf
+template<
+    typename Elem,
+    typename Tr = std::char_traits< Elem >,
+    typename ElemA = std::allocator< Elem >,
+    typename ByteT = unsigned char,
+    typename ByteAT = std::allocator< ByteT >
+>
+class basic_zip_istreambase :
+    virtual public std::basic_ios< Elem, Tr >
+{
+
+public:
+
+    typedef  std::basic_istream< Elem, Tr > &  istream_reference;
+    typedef  basic_unzip_streambuf<
+        Elem,
+        Tr,
+        ElemA,
+        ByteT,
+        ByteAT
+    >  unzip_streambuf_type;
+
+    basic_zip_istreambase(
+        istream_reference ostream_,
+        size_t window_size_,
+        size_t read_buffer_size_,
+        size_t input_buffer_size_
+    ) :
+        m_buf( ostream_, window_size_, read_buffer_size_, input_buffer_size_ )
+    {
+        this->init( &m_buf );
+    }
+
+    /// @brief returns the underlying unzip istream object
+    unzip_streambuf_type * rdbuf() { return &m_buf; }
+
+    /// @brief returns the zlib error state
+    int get_zerr() const { return m_buf.get_zerr(); }
+
+    /// @brief returns the uncompressed data crc
+    uLong get_crc() const { return m_buf.get_crc(); }
+
+    /// @brief returns the uncompressed data size
+    uLong get_out_size() const { return m_buf.get_out_size(); }
+
+    /// @brief returns the compressed data size
+    uLong get_in_size() const { return m_buf.get_in_size(); }
+
+private:
+
+    unzip_streambuf_type m_buf;
+
+}; // basic_zip_istreambase
+
+
+/// @brief A zipper ostream
+///
+/// @remarks
+///
+/// This class is a ostream decorator that behaves 'almost' like any other ostream.
+///
+/// At construction, it takes any ostream that shall be used to output of the compressed data.
+///
+/// When finished, you need to call the special method zflush or call the destructor
+/// to flush all the intermidiate streams.
+///
+/// Example:
+/// \code
+/// // creating the target zip string, could be a fstream
+/// ostringstream ostringstream_;
+/// // creating the zip layer
+/// zip_ostream zipper(ostringstream_);
+///
+///
+/// // writing data
+/// zipper<<f<<" "<<d<<" "<<ui<<" "<<ul<<" "<<us<<" "<<c<<" "<<dum;
+/// // zip ostream needs special flushing...
+/// zipper.zflush();
+/// \endcode
+template<
+    typename Elem,
+    typename Tr = std::char_traits< Elem >,
+    typename ElemA = std::allocator< Elem >,
+    typename ByteT = unsigned char,
+    typename ByteAT = std::allocator< ByteT >
+>
+class basic_zip_ostream :
+    public basic_zip_ostreambase< Elem, Tr, ElemA, ByteT, ByteAT >,
+    public std::basic_ostream< Elem, Tr >
+{
+
+public:
+
+    typedef  basic_zip_ostreambase< Elem, Tr, ElemA, ByteT, ByteAT >  zip_ostreambase_type;
+    typedef  std::basic_ostream< Elem, Tr >  ostream_type;
+    typedef  std::basic_ostream< Elem, Tr > &  ostream_reference;
+    typedef  Elem  char_type;
+
+    using ostream_type::flush;
+    using zip_ostreambase_type::rdbuf;
+
+    /// @brief Constructs a zipper ostream decorator
+    ///
+    /// @param ostream_ ostream where the compressed output is written
+    /// @param is_gzip_ true if gzip header and footer have to be added
+    /// @param level_ level of compression 0, bad and fast, 9, good and slower,
+    /// @param strategy_ compression strategy
+    /// @param window_size_ see zlib doc
+    /// @param memory_level_ see zlib doc
+    /// @param buffer_size_ the buffer size used to zip data
+    ///
+    /// @note  When is_gzip_ is true, a gzip header and footer is automatically added
+    basic_zip_ostream(
+        ostream_reference ostream_,
+        // int open_mode = std::ios::out,
+        bool is_gzip_ = true,
+        size_t level_ = Z_DEFAULT_COMPRESSION,
+        EStrategy strategy_ = DefaultStrategy,
+        size_t window_size_ = 15,
+        size_t memory_level_ = 8,
+        size_t buffer_size_ = default_buffer_size
+    ) :
+        zip_ostreambase_type(
+            ostream_,
+            level_,
+            strategy_,
+            window_size_,
+            memory_level_,
+            buffer_size_
+        ),
+        ostream_type( rdbuf() ),
+        m_is_gzip( is_gzip_ ),
+        m_zip_stream_finalized( false )
+    {
+        if ( m_is_gzip ) add_header();
+    }
+
+    ~basic_zip_ostream()
+    {
+        // adding a footer is not necessary here, as it will be
+        // taken care of during the last zflush_finalize()
+        // called by the higher level close() routines
+        zflush_finalize();
+    }
+
+    /// @brief returns true if it is a gzip
+    bool is_gzip() const { return m_is_gzip; }
+
+    /// @brief flush inner buffer and zipper buffer
+    basic_zip_ostream< Elem, Tr > &
+    zflush()
+    {
+        flush(); rdbuf()->flush(); return *this;
+    }
+
+    /// @brief flush inner and zipper buffers and finalize zip stream
+    basic_zip_ostream< Elem, Tr > &
+    zflush_finalize()
+    {
+
+        flush(); rdbuf()->flush_finalize();
+
+        if ( m_is_gzip && ( rdbuf()->get_zerr() == Z_STREAM_END ) && ( !m_zip_stream_finalized ) ) {
+            add_footer(); // writes crc trailer to end the current zip stream
+            flush();
+            m_zip_stream_finalized = true;
+        }
+
+        return *this;
+    }
+
+    /// @brief stream output
+    /// @details if zip stream has been finalized, will reset
+    /// @details the stream and add header if necessary
+    template< typename T >
+    inline
+    basic_zip_ostream &
+    operator <<( T const & t )
+    {
+        reset_zip_stream();
+        static_cast< std::ostream & >( *this ) << t;
+        return *this;
+    }
+
+    /// @brief write char
+    /// @details if zip stream has been finalized, will reset
+    /// @details the stream and add header if necessary
+    inline
+    basic_zip_ostream &
+    put( char const c )
+    {
+        reset_zip_stream();
+        static_cast< std::ostream & >( *this ).put( c );
+        return *this;
+    }
+
+    /// @brief write a string
+    /// @details if zip stream has been finalized, will reset
+    /// @details the stream and add header if necessary
+    inline
+    basic_zip_ostream &
+    write( char const * str, std::streamsize const count )
+    {
+        reset_zip_stream();
+        static_cast< std::ostream & >( *this ).write( str, count );
+        return *this;
+    }
+
+private:
+
+    /// @brief if end of stream, reset the zip stream and add header
+    inline
+    bool
+    reset_zip_stream()
+    {
+        if ( rdbuf()->get_zerr() == Z_STREAM_END ) {
+            rdbuf()->reset_state();
+            add_header();
+            m_zip_stream_finalized = false;
+            return true;
+        }
+        return false;
+    }
+
+    static void put_long_as_uint32( ostream_reference out_, unsigned long x_ );
+
+    void add_header();
+    void add_footer();
+
+    bool m_is_gzip;
+
+    /// @brief tracks to see if zip stream was finalized
+    /// @details set to true during zflush_finalize()
+    /// @details set to false during reset_state()
+    bool m_zip_stream_finalized;
+
+#ifdef _WIN32
+private:
+    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
+    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
+#endif
+}; // basic_zip_ostream
+
+
+/// @brief A zipper istream
+///
+/// @remarks
+///
+/// This class is a istream decorator that behaves 'almost' like any other ostream.
+///
+/// At construction, it takes any istream that shall be used to input of the compressed data.
+///
+/// Simlpe example:
+/// \code
+/// // create a stream on zip string
+/// istringstream istringstream_( ostringstream_.str());
+/// // create unzipper istream
+/// zip_istream unzipper( istringstream_);
+///
+/// // read and unzip
+/// unzipper>>f_r>>d_r>>ui_r>>ul_r>>us_r>>c_r>>dum_r;
+/// \endcode
+template<
+    typename Elem,
+    typename Tr = std::char_traits< Elem >,
+    typename ElemA = std::allocator< Elem >,
+    typename ByteT = unsigned char,
+    typename ByteAT = std::allocator< ByteT >
+>
+class basic_zip_istream :
+    public basic_zip_istreambase< Elem, Tr, ElemA, ByteT, ByteAT >,
+    public std::basic_istream< Elem, Tr >
+{
+
+public:
+
+    typedef  basic_zip_istreambase< Elem, Tr, ElemA, ByteT, ByteAT >  zip_istreambase_type;
+    typedef  std::basic_istream< Elem, Tr >  istream_type;
+    typedef  std::basic_istream< Elem, Tr > &  istream_reference;
+    typedef  Elem  char_type;
+    typedef  unsigned char  byte_type;
+
+    using zip_istreambase_type::get_crc;
+    using zip_istreambase_type::get_out_size;
+    using zip_istreambase_type::rdbuf;
+
+    /// @brief Construct a unzipper stream
+    ///
+    /// @param istream_ input buffer
+    /// @param window_size_
+    /// @param read_buffer_size_
+    /// @param input_buffer_size_
+    basic_zip_istream(
+        istream_reference istream_,
+        size_t window_size_ = 15,
+        size_t read_buffer_size_ = default_buffer_size,
+        size_t input_buffer_size_ = default_buffer_size
+    ) :
+        zip_istreambase_type( istream_, window_size_, read_buffer_size_, input_buffer_size_ ),
+        istream_type( rdbuf() ),
+        m_is_gzip( false ),
+        m_gzip_crc( 0 ),
+        m_gzip_data_size( 0 )
+    {
+        if ( rdbuf()->get_zerr() == Z_OK ) check_header();
+    }
+
+    /// @brief returns true if it is a gzip file
+    bool is_gzip() const { return m_is_gzip; }
+
+    /// @brief reads the gzip footer
+    void read_footer();
+
+    /// @brief return crc check result
+    ///
+    /// @note  When you have finished reading the compressed data,
+    ///        call read_footer to read the uncompressed data crc.
+    /// @note  This method compares it to the crc of the uncompressed data.
+    ///
+    /// @return true if crc check is succesful
+    bool check_crc() const { return get_crc() == m_gzip_crc; }
+
+    /// @brief return data size check
+    bool check_data_size() const { return get_out_size() == m_gzip_data_size; }
+
+    /// @brief return the crc value in the file
+    uLong get_gzip_crc() const { return m_gzip_crc; }
+
+    /// @brief return the data size in the file
+    uLong get_gzip_data_size() const { return m_gzip_data_size; }
+
+protected:
+
+    static void read_uint32( istream_reference in_, unsigned long & x_ );
+
+    int check_header();
+
+    bool m_is_gzip;
+    uLong m_gzip_crc;
+    uLong m_gzip_data_size;
+
+#ifdef _WIN32
+private:
+    void _Add_vtordisp1() { } // Required to avoid VC++ warning C4250
+    void _Add_vtordisp2() { } // Required to avoid VC++ warning C4250
+#endif
+}; // basic_zip_istream
+
+
+// Types
+typedef  basic_zip_ostream< char >  zip_ostream;
+typedef  basic_zip_ostream< wchar_t >  zip_wostream;
+typedef  basic_zip_istream< char >  zip_istream;
+typedef  basic_zip_istream< wchar_t >  zip_wistream;
+
+
+} // namespace zlib_stream
+
+
+// Implementation
+#include "zipstream_impl.h"
+
+
+#endif // INCLUDED_utility_io_zipstream_HPP
diff --git a/include/seqan/stream/zipstream/zipstream_impl.h b/include/seqan/stream/zipstream/zipstream_impl.h
new file mode 100644
index 0000000..00d8bfa
--- /dev/null
+++ b/include/seqan/stream/zipstream/zipstream_impl.h
@@ -0,0 +1,675 @@
+// -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
+// vi: set ts=2 noet:
+//
+// (c) Copyright Rosetta Commons Member Institutions.
+// (c) This file is part of the Rosetta software suite and is made available under license.
+// (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
+// (c) For more information, see http://www.rosettacommons.org. Questions about this can be
+// (c) addressed to University of Washington UW TechTransfer, email: license at u.washington.edu.
+
+/// @file   utility/io/zipstream.ipp
+/// @brief  Altered zipstream library implementation
+/// @author Jonathan de Halleux (dehalleux at pelikhan.com)
+/// @author Stuart G. Mentzer (Stuart_Mentzer at objexx.com)
+/// @author David Kim (dekim at u.washington.edu)
+/// @author Yih-En Andrew Ban (yab at u.washington.edu)
+
+// zipstream Library License:
+// --------------------------
+//
+// The zlib/libpng License Copyright (c) 2003 Jonathan de Halleux.
+//
+// This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution
+//
+// Author: Jonathan de Halleux, dehalleux at pelikhan.com, 2003
+
+
+#ifndef INCLUDED_utility_io_zipstream_IPP
+#define INCLUDED_utility_io_zipstream_IPP
+
+
+// Unit headers
+#include "zipstream.h"
+
+// C++ headers
+#include <sstream>
+#include <cstdio>
+#include <istream>
+
+namespace zlib_stream {
+
+
+namespace detail {
+
+    const int gz_magic[2] = { 0x1f, 0x8b }; // gzip magic header
+
+    // gzip flag byte
+    const int gz_ascii_flag  = 0x01; // bit 0 set: file probably ascii text
+    const int gz_head_crc    = 0x02; // bit 1 set: header CRC present
+    const int gz_extra_field = 0x04; // bit 2 set: extra field present
+    const int gz_orig_name   = 0x08; // bit 3 set: original file name present
+    const int gz_comment     = 0x10; // bit 4 set: file comment present
+    const int gz_reserved    = 0xE0; // bits 5..7: reserved
+
+} // namespace detail
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::basic_zip_streambuf(
+        ostream_reference ostream_,
+        size_t level_,
+        EStrategy strategy_,
+        size_t window_size_,
+        size_t memory_level_,
+        size_t buffer_size_
+    ) :
+        m_ostream( ostream_ ),
+        m_output_buffer( buffer_size_, 0 ),
+        m_buffer( buffer_size_, 0 ),
+        m_crc( 0 )
+    {
+        m_zip_stream.zalloc = (alloc_func)0;
+        m_zip_stream.zfree = (free_func)0;
+
+        m_zip_stream.next_in = NULL;
+        m_zip_stream.avail_in = 0;
+        m_zip_stream.avail_out = 0;
+        m_zip_stream.next_out = NULL;
+
+        m_err = deflateInit2(
+            &m_zip_stream,
+            std::min( 9, static_cast< int >( level_ ) ),
+            Z_DEFLATED,
+            - static_cast< int >(window_size_), // <-- changed
+            std::min( 9, static_cast< int >( memory_level_ ) ),
+            static_cast< int >( strategy_ )
+        );
+
+        this->setp( &(m_buffer[0]), &(m_buffer[m_buffer.size()-1]) );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::~basic_zip_streambuf()
+    {
+        flush_finalize();
+        m_ostream.flush();
+        m_err=deflateEnd( &m_zip_stream );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    int
+    basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::sync()
+    {
+        if ( pptr() && pptr() > pbase() ) {
+            if ( traits_type::eq_int_type( overflow( traits_type::eof() ), traits_type::eof() ) ) return -1;
+        }
+
+        return 0;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    typename basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::int_type
+    basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::overflow(
+        typename basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::int_type c
+    )
+    {
+        bool const test_eof = traits_type::eq_int_type( c, traits_type::eof() );
+        int w = static_cast< int >( pptr() - pbase() );
+        if ( !test_eof ) {
+            *pptr() = c;
+            ++w;
+        }
+        if ( zip_to_stream( pbase(), w ) ) {
+            this->setp( pbase(), epptr() );
+            return traits_type::not_eof( c );
+        } else {
+            return traits_type::eof();
+        }
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    bool
+    basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::zip_to_stream(
+        typename basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::char_type * buffer_,
+        std::streamsize buffer_size_
+    )
+    {
+        std::streamsize written_byte_size = 0, total_written_byte_size = 0;
+
+        m_zip_stream.next_in = (byte_buffer_type)buffer_;
+        m_zip_stream.avail_in = static_cast< uInt >( buffer_size_ * sizeof(char_type) );
+        m_zip_stream.avail_out = static_cast< uInt >( m_output_buffer.size() );
+        m_zip_stream.next_out = &(m_output_buffer[0]);
+        size_t remainder = 0;
+
+        // updating crc
+        m_crc = crc32(
+            m_crc,
+            m_zip_stream.next_in,
+            m_zip_stream.avail_in
+        );
+
+        do {
+            m_err = deflate( &m_zip_stream, 0 );
+
+            if ( m_err == Z_OK || m_err == Z_STREAM_END ) {
+                written_byte_size =
+                    static_cast< std::streamsize >( m_output_buffer.size() )
+                    - m_zip_stream.avail_out;
+                total_written_byte_size += written_byte_size;
+                // ouput buffer is full, dumping to ostream
+                //                std::cerr << "dump to m_ostream " << std::endl;
+                m_ostream.write(
+                    (const char_type*) &(m_output_buffer[0]),
+                    static_cast< std::streamsize >( written_byte_size / sizeof( char_type ) )
+                );
+                //                std::cerr << "dump to m_ostream -- done " << std::endl;
+                // checking if some bytes were not written.
+                if ( ( remainder = written_byte_size%sizeof( char_type ) ) != 0 ) {
+                    // copy to the beginning of the stream
+                    //                    std::cerr << "before memcopy in zipstream.ipp: 206" << std::endl;
+                    std::memmove(
+                        &(m_output_buffer[0]),
+                        &(m_output_buffer[written_byte_size-remainder]),
+                        remainder
+                    );
+                    //                    std::cerr << "after memcopy in zipstream.ipp: 206" << std::endl;
+                }
+
+                m_zip_stream.avail_out =
+                    static_cast< uInt >( m_output_buffer.size() - remainder );
+                m_zip_stream.next_out = &m_output_buffer[remainder];
+                //                std::cerr << "after static_cast: line 219" << std::endl;
+            }
+        } while ( m_zip_stream.avail_in != 0 && m_err == Z_OK );
+        //        std::cerr << "line 222" << std::endl;
+        return m_err == Z_OK;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    std::streamsize basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::flush(
+        int flush_mode
+    )
+    {
+        std::streamsize written_byte_size = 0, total_written_byte_size = 0;
+
+        int const buffer_size = static_cast< int >( pptr() - pbase() ); // amount of data currently in buffer
+
+        m_zip_stream.next_in = (byte_buffer_type)pbase();
+        m_zip_stream.avail_in = static_cast< uInt >( buffer_size * sizeof(char_type) );
+        m_zip_stream.avail_out = static_cast< uInt >( m_output_buffer.size() );
+        m_zip_stream.next_out = &(m_output_buffer[0]);
+        size_t remainder = 0;
+
+        //        std::cerr << "flush() " << std::endl;
+
+        // updating crc
+        m_crc = crc32(
+            m_crc,
+            m_zip_stream.next_in,
+            m_zip_stream.avail_in
+        );
+
+        do {
+            m_err = deflate( &m_zip_stream, flush_mode );
+            if ( m_err == Z_OK || m_err == Z_STREAM_END ) {
+                written_byte_size =
+                    static_cast< std::streamsize >( m_output_buffer.size() )
+                    - m_zip_stream.avail_out;
+                total_written_byte_size += written_byte_size;
+                // ouput buffer is full, dumping to ostream
+                m_ostream.write(
+                    (const char_type*) &(m_output_buffer[0]),
+                    static_cast< std::streamsize >( written_byte_size / sizeof( char_type ) * sizeof( byte_type ) )
+                );
+
+                // checking if some bytes were not written.
+                if ( ( remainder = written_byte_size%sizeof( char_type ) ) != 0 ) {
+                    // copy to the beginning of the stream
+                    std::memmove(
+                        &(m_output_buffer[0]),
+                        &(m_output_buffer[written_byte_size-remainder]),
+                        remainder
+                    );
+
+                }
+
+                m_zip_stream.avail_out = static_cast< uInt >( m_output_buffer.size() - remainder );
+                m_zip_stream.next_out = &m_output_buffer[remainder];
+            }
+        } while (m_err == Z_OK);
+
+        m_ostream.flush();
+        //        std::cerr << "flush() -- done" << std::endl;
+
+        return total_written_byte_size;
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    std::streamsize basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::flush()
+    {
+        std::streamsize const total_written_byte_size = flush( Z_SYNC_FLUSH );
+        return total_written_byte_size;
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    std::streamsize basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::flush_finalize()
+    {
+        std::streamsize const total_written_byte_size = flush( Z_FINISH );
+        return total_written_byte_size;
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_zip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::reset_state()
+    {
+        m_crc = 0;
+
+        m_zip_stream.next_in = NULL;
+        m_zip_stream.avail_in = 0;
+        m_zip_stream.avail_out = 0;
+        m_zip_stream.next_out = NULL;
+
+        m_err = deflateReset( &m_zip_stream );
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::basic_unzip_streambuf(
+        istream_reference istream_,
+        size_t window_size_,
+        size_t read_buffer_size_,
+        size_t input_buffer_size_
+    ) :
+        m_istream( istream_ ),
+        m_input_buffer( input_buffer_size_ ),
+        m_buffer( read_buffer_size_ ),
+        m_crc( 0 )
+    {
+        // setting zalloc, zfree and opaque
+        m_zip_stream.zalloc = (alloc_func)0;
+        m_zip_stream.zfree = (free_func)0;
+
+        m_zip_stream.next_in = NULL;
+        m_zip_stream.avail_in = 0;
+        m_zip_stream.avail_out = 0;
+        m_zip_stream.next_out = NULL;
+
+        m_err = inflateInit2( &m_zip_stream, -static_cast< int >( window_size_ ) );
+
+        this->setg(
+            &( m_buffer[0] ) + 4, // beginning of putback area
+            &( m_buffer[0] ) + 4, // read position
+            &( m_buffer[0] ) + 4  // end position
+        );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    size_t basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::fill_input_buffer()
+    {
+        m_zip_stream.next_in = &( m_input_buffer[0] );
+        m_istream.read(
+            (char_type*)( &( m_input_buffer[0] ) ),
+            static_cast< std::streamsize >( m_input_buffer.size() / sizeof( char_type ) )
+        );
+        return m_zip_stream.avail_in = m_istream.gcount() * sizeof( char_type );
+    }
+
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::~basic_unzip_streambuf()
+    {
+        inflateEnd( &m_zip_stream );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    typename basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::int_type
+    basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::underflow()
+    {
+        if ( gptr() && ( gptr() < egptr() ) ) return *reinterpret_cast< unsigned char * >( gptr() );
+
+        int n_putback = static_cast< int >( gptr() - eback() );
+        if ( n_putback > 4 ) n_putback = 4;
+        std::memmove(
+            &( m_buffer[0] ) + ( 4 - n_putback ),
+            gptr() - n_putback,
+            n_putback * sizeof( char_type )
+        );
+
+        int num = unzip_from_stream(
+            &( m_buffer[0] ) + 4,
+            static_cast< std::streamsize >( ( m_buffer.size() - 4 ) * sizeof( char_type ) )
+        );
+        if ( num <= 0 ) return EOF; // ERROR or EOF
+
+        // reset buffer pointers
+        this->setg(
+            &( m_buffer[0] ) + ( 4 - n_putback ), // beginning of putback area
+            &( m_buffer[0] ) + 4,                 // read position
+            &( m_buffer[0] ) + 4 + num            // end of buffer
+        );
+
+        // return next character
+        return *reinterpret_cast< unsigned char * >( gptr() );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    std::streamsize basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::unzip_from_stream(
+        char_type * buffer_,
+        std::streamsize buffer_size_
+    )
+    {
+        m_zip_stream.next_out = (byte_buffer_type)buffer_;
+        m_zip_stream.avail_out = static_cast< uInt >( buffer_size_ * sizeof( char_type ) );
+        size_t count = m_zip_stream.avail_in;
+
+        do {
+            if ( m_zip_stream.avail_in == 0 ) count = fill_input_buffer();
+
+            if ( m_zip_stream.avail_in ) {
+                m_err = inflate( &m_zip_stream, Z_SYNC_FLUSH );
+            }
+        } while ( m_err == Z_OK && m_zip_stream.avail_out != 0 && count != 0 );
+
+        // updating crc
+        m_crc = crc32(
+            m_crc,
+            (byte_buffer_type)buffer_,
+            buffer_size_ - m_zip_stream.avail_out / sizeof( char_type )
+        );
+        std::streamsize n_read = buffer_size_ - m_zip_stream.avail_out / sizeof( char_type );
+
+        // check if it is the end
+        if ( m_err == Z_STREAM_END ) put_back_from_zip_stream();
+
+        return n_read;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_unzip_streambuf< Elem, Tr, ElemA, ByteT, ByteAT >::put_back_from_zip_stream()
+    {
+        if ( m_zip_stream.avail_in == 0 ) return;
+
+        m_istream.clear( std::ios::goodbit );
+        m_istream.seekg(
+            -static_cast< int >( m_zip_stream.avail_in ),
+            std::ios_base::cur
+        );
+
+        m_zip_stream.avail_in = 0;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    int
+    basic_zip_istream< Elem, Tr, ElemA, ByteT, ByteAT >::check_header()
+    {
+        int method; // method byte
+        int flags;  // flags byte
+        uInt len;
+        int c;
+        int err = 0;
+        z_stream & zip_stream = rdbuf()->get_zip_stream();
+
+        // Check the gzip magic header
+        for ( len = 0; len < 2; ++len ) {
+            c = (int)rdbuf()->get_istream().get();
+            if ( c != detail::gz_magic[len] ) {
+                if ( len != 0 ) rdbuf()->get_istream().unget();
+                if ( c != EOF ) {
+                    rdbuf()->get_istream().unget();
+                }
+
+                err = ( zip_stream.avail_in != 0 ? Z_OK : Z_STREAM_END );
+                m_is_gzip = false;
+                return err;
+            }
+        }
+
+        m_is_gzip = true;
+        method = (int)rdbuf()->get_istream().get();
+        flags = (int)rdbuf()->get_istream().get();
+        if ( method != Z_DEFLATED || ( flags & detail::gz_reserved ) != 0 ) {
+            err = Z_DATA_ERROR;
+            return err;
+        }
+
+        // Discard time, xflags and OS code:
+        for ( len = 0; len < 6; ++len ) rdbuf()->get_istream().get();
+
+        if ( ( flags & detail::gz_extra_field ) != 0 ) {
+            // skip the extra field
+            len  =  (uInt)rdbuf()->get_istream().get();
+            len += ((uInt)rdbuf()->get_istream().get()) << 8;
+            // len is garbage if EOF but the loop below will quit anyway
+            while ( len-- != 0 && rdbuf()->get_istream().get() != EOF ) {}
+        }
+        if ( ( flags & detail::gz_orig_name ) != 0 ) {
+            // skip the original file name
+            while ( ( c = rdbuf()->get_istream().get() ) != 0 && c != EOF ) {}
+        }
+        if ( ( flags & detail::gz_comment ) != 0 ) {
+            // skip the .gz file comment
+            while ( ( c = rdbuf()->get_istream().get() ) != 0 && c != EOF ) {}
+        }
+        if ( ( flags & detail::gz_head_crc ) != 0 ) { // skip the header crc
+            for ( len = 0; len < 2; ++len ) rdbuf()->get_istream().get();
+        }
+        err = ( rdbuf()->get_istream().eof() ? Z_DATA_ERROR : Z_OK );
+
+        return err;
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_zip_istream< Elem, Tr, ElemA, ByteT, ByteAT >::read_footer()
+    {
+        if ( m_is_gzip ) {
+            read_uint32( rdbuf()->get_istream(), m_gzip_crc );
+            read_uint32( rdbuf()->get_istream(), m_gzip_data_size );
+        }
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::put_long_as_uint32(
+        typename basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::ostream_reference out_,
+        unsigned long x_
+    )
+    {
+        // yab: 20090414, modified to conform to gzip standard where
+        // trailer crc and length must both be 32-bit, otherwise there
+        // is breakage in systems where 'unsigned long' is not 32-bit
+        // and external archiving programs end up complaining.
+        char b1, b2, b3, b4; // assuming char is 8 bits
+        b1 = 0xFF & x_;
+        b2 = 0xFF & ( x_ >> 8 );
+        b3 = 0xFF & ( x_ >> 16 );
+        b4 = 0xFF & ( x_ >> 24 );
+
+        out_.write( &b1, 1 );
+        out_.write( &b2, 1 );
+        out_.write( &b3, 1 );
+        out_.write( &b4, 1 );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_zip_istream< Elem, Tr, ElemA, ByteT, ByteAT >::read_uint32(
+        istream_reference in_,
+        unsigned long & x_
+    )
+    {
+        // yab: 20090414, modified to conform to gzip standard where
+        // trailer crc and length must both be 32-bit, otherwise there
+        // is breakage in systems where 'unsigned long' is not 32-bit
+        // and external archiving programs end up complaining.
+        unsigned char b1, b2, b3, b4; // assuming char is 8 bits
+
+        in_.read( reinterpret_cast< char * >( &b1 ), 1 );
+        in_.read( reinterpret_cast< char * >( &b2 ), 1 );
+        in_.read( reinterpret_cast< char * >( &b3 ), 1 );
+        in_.read( reinterpret_cast< char * >( &b4 ), 1 );
+
+        x_ = b1 + ( b2 << 8 ) + ( b3 << 16 ) + ( b4 << 24 );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::add_header()
+    {
+        char_type zero = 0;
+
+        rdbuf()->get_ostream()
+            .put( static_cast< char_type >( detail::gz_magic[0] ) )
+            .put( static_cast< char_type >( detail::gz_magic[1] ) )
+            .put( static_cast< char_type >( Z_DEFLATED ) )
+            .put( zero ) // flags
+            .put( zero ).put( zero ).put( zero ).put( zero ) // time
+            .put( zero ) // xflags
+            .put( static_cast< char_type >( OS_CODE ) );
+    }
+
+    template<
+        typename Elem,
+        typename Tr,
+        typename ElemA,
+        typename ByteT,
+        typename ByteAT
+    >
+    void basic_zip_ostream< Elem, Tr, ElemA, ByteT, ByteAT >::add_footer()
+    {
+        put_long_as_uint32( rdbuf()->get_ostream(), rdbuf()->get_crc() );
+        put_long_as_uint32( rdbuf()->get_ostream(), rdbuf()->get_in_size() );
+    }
+
+
+} // namespace zlib_stream
+
+
+#endif // INCLUDED_utility_io_zipstream_IPP
diff --git a/include/seqan/stream/zipstream/zutil.h b/include/seqan/stream/zipstream/zutil.h
new file mode 100644
index 0000000..2806344
--- /dev/null
+++ b/include/seqan/stream/zipstream/zutil.h
@@ -0,0 +1,226 @@
+/* zutil.h -- internal interface and configuration of the compression library
+ * Copyright (C) 1995-2002 Jean-loup Gailly.
+ * For conditions of distribution and use, see copyright notice in zlib.h
+ */
+
+/* WARNING: this file should *not* be used by applications. It is
+   part of the implementation of the compression library and is
+   subject to change. Applications should only use zlib.h.
+ */
+
+/* @(#) $Id: zutil.h,v 1.2 2003/06/28 15:03:05 pelikhan Exp $ */
+
+#ifndef _Z_UTIL_H
+#define _Z_UTIL_H
+
+//#include "zlib.h"
+
+#ifdef STDC
+#  include <stddef.h>
+#  include <string.h>
+#  include <stdlib.h>
+#endif
+
+//#define NO_ERRNO_H
+#ifdef NO_ERRNO_H
+    int errno;
+#else
+    #include <errno.h>
+#endif
+
+#ifndef local
+#  define local static
+#endif
+/* compile with -Dlocal if your debugger can't find static symbols */
+
+typedef unsigned char  uch;
+typedef uch FAR uchf;
+typedef unsigned short ush;
+typedef ush FAR ushf;
+typedef unsigned long  ulg;
+
+extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
+/* (size given to avoid silly warnings with Visual C++) */
+
+#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
+
+#define ERR_RETURN(strm,err) \
+  return (strm->msg = (char*)ERR_MSG(err), (err))
+/* To be used only when the state is known to be valid */
+
+        /* common constants */
+
+#ifndef DEF_WBITS
+#  define DEF_WBITS MAX_WBITS
+#endif
+/* default windowBits for decompression. MAX_WBITS is for compression only */
+
+#if MAX_MEM_LEVEL >= 8
+#  define DEF_MEM_LEVEL 8
+#else
+#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
+#endif
+/* default memLevel */
+
+#define STORED_BLOCK 0
+#define STATIC_TREES 1
+#define DYN_TREES    2
+/* The three kinds of block type */
+
+#define MIN_MATCH  3
+#define MAX_MATCH  258
+/* The minimum and maximum match lengths */
+
+#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
+
+        /* target dependencies */
+
+#ifdef MSDOS
+#  define OS_CODE  0x00
+#  if defined(__TURBOC__) || defined(__BORLANDC__)
+#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
+       /* Allow compilation with ANSI keywords only enabled */
+       void _Cdecl farfree( void *block );
+       void *_Cdecl farmalloc( unsigned long nbytes );
+#    else
+#     include <alloc.h>
+#    endif
+#  else /* MSC or DJGPP */
+#    include <malloc.h>
+#  endif
+#endif
+
+#ifdef OS2
+#  define OS_CODE  0x06
+#endif
+
+#ifdef WIN32 /* Window 95 & Windows NT */
+#  define OS_CODE  0x0b
+#endif
+
+#if defined(VAXC) || defined(VMS)
+#  define OS_CODE  0x02
+#  define F_OPEN(name, mode) \
+     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
+#endif
+
+#ifdef AMIGA
+#  define OS_CODE  0x01
+#endif
+
+#if defined(ATARI) || defined(atarist)
+#  define OS_CODE  0x05
+#endif
+
+#if defined(MACOS) || defined(TARGET_OS_MAC)
+#  define OS_CODE  0x07
+#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
+#    include <unix.h> /* for fdopen */
+#  else
+#    ifndef fdopen
+#      define fdopen(fd,mode) NULL /* No fdopen() */
+#    endif
+#  endif
+#endif
+
+#ifdef __50SERIES /* Prime/PRIMOS */
+#  define OS_CODE  0x0F
+#endif
+
+#ifdef TOPS20
+#  define OS_CODE  0x0a
+#endif
+
+#if defined(_BEOS_) || defined(RISCOS)
+#  define fdopen(fd,mode) NULL /* No fdopen() */
+#endif
+
+#if (defined(_MSC_VER) && (_MSC_VER > 600))
+#  define fdopen(fd,type)  _fdopen(fd,type)
+#endif
+
+
+        /* Common defaults */
+
+#ifndef OS_CODE
+#  define OS_CODE  0x03  /* assume Unix */
+#endif
+
+#ifndef F_OPEN
+#  define F_OPEN(name, mode) fopen((name), (mode))
+#endif
+
+         /* functions */
+
+#ifdef HAVE_STRERROR
+   extern char *strerror OF((int));
+#  define zstrerror(errnum) strerror(errnum)
+#else
+#  define zstrerror(errnum) ""
+#endif
+
+#if defined(pyr)
+#  define NO_MEMCPY
+#endif
+#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
+ /* Use our own functions for small and medium model with MSC <= 5.0.
+  * You may have to use the same strategy for Borland C (untested).
+  * The __SC__ check is for Symantec.
+  */
+#  define NO_MEMCPY
+#endif
+#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
+#  define HAVE_MEMCPY
+#endif
+#ifdef HAVE_MEMCPY
+#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
+#    define zmemcpy _fmemcpy
+#    define zmemcmp _fmemcmp
+#    define zmemzero(dest, len) _fmemset(dest, 0, len)
+#  else
+#    define zmemcpy memcpy
+#    define zmemcmp memcmp
+#    define zmemzero(dest, len) memset(dest, 0, len)
+#  endif
+#else
+   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len));
+   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len));
+   extern void zmemzero OF((Bytef* dest, uInt len));
+#endif
+
+/* Diagnostic functions */
+#ifdef DEBUG
+#  include <stdio.h>
+   extern int z_verbose;
+   extern void z_error    OF((char *m));
+#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
+#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
+#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
+#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
+#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
+#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
+#else
+#  define Assert(cond,msg)
+#  define Trace(x)
+#  define Tracev(x)
+#  define Tracevv(x)
+#  define Tracec(c,x)
+#  define Tracecv(c,x)
+#endif
+
+
+typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf,
+                       uInt len));
+voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
+void   zcfree  OF((voidpf opaque, voidpf ptr));
+
+#define ZALLOC(strm, items, size) \
+           (*((strm)->zalloc))((strm)->opaque, (items), (size))
+#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
+#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
+
+#ifdef local
+#undef local
+#endif
+
+#endif /* _Z_UTIL_H */
diff --git a/include/seqan/translation/translation.h b/include/seqan/translation/translation.h
index c1ee782..db908a9 100644
--- a/include/seqan/translation/translation.h
+++ b/include/seqan/translation/translation.h
@@ -245,8 +245,8 @@ _translateImplLoop(StringSet<String<AminoAcid, TSpec1>, TSpec2> & target,
 
     if (i % 2)
     {
-         TVal val(value(source, i/2));
-        _translateString(target[i], TRevComp(val), TCode());
+        TRevComp revComp(value(source, i/2));
+        _translateString(target[i], revComp, TCode());
     }
     else
     {
@@ -286,8 +286,9 @@ _translateImplLoop(StringSet<String<AminoAcid, TSpec1>, TSpec2> & target,
 
     if ((i % 6) > 2)
     {
-         TVal val(prefix(value(source, i/6), length(value(source,i/6)) - (i % 3)));
-        _translateString(target[i], TRevComp(val), TCode());
+        TRevComp revComp(prefix(value(source, i/6),
+                                length(value(source,i/6)) - (i % 3)));
+        _translateString(target[i], revComp, TCode());
     }
     else
     {
diff --git a/include/seqan/ucsc_io/ucsc_file.h b/include/seqan/ucsc_io/ucsc_file.h
index 1d385bc..44a5a08 100644
--- a/include/seqan/ucsc_io/ucsc_file.h
+++ b/include/seqan/ucsc_io/ucsc_file.h
@@ -67,7 +67,7 @@ typedef FormattedFile<Ucsc, Input>   UcscFileIn;
 // ----------------------------------------------------------------------------
 
 /*!
- * @class UcscFileOut
+ * @class UcscFileInOut
  * @signature typedef FormattedFile<Ucsc, Output> UcscFileOut;
  * @extends FormattedFileOut
  * @headerfile <seqan/ucsc_io.h>
diff --git a/include/seqan/vcf_io/vcf_io_context.h b/include/seqan/vcf_io/vcf_io_context.h
index 14012c3..2f86f16 100644
--- a/include/seqan/vcf_io/vcf_io_context.h
+++ b/include/seqan/vcf_io/vcf_io_context.h
@@ -150,13 +150,6 @@ contigNames(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> & context)
     return _referenceCast<TNameStore &>(context._contigNames);
 }
 
-template <typename TNameStore, typename TNameStoreCache, typename TStorageSpec>
-inline TNameStore const &
-contigNames(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> const & context)
-{
-    return _referenceCast<TNameStore &>(context._contigNames);
-}
-
 /*!
  * @fn VcfIOContext#contigNamesCache
  * @brief Return reference to contig names cache from @link VcfIOContext @endlink.
@@ -175,13 +168,6 @@ contigNamesCache(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> & conte
     return _referenceCast<TNameStoreCache &>(context._contigNamesCache);
 }
 
-template <typename TNameStore, typename TNameStoreCache, typename TStorageSpec>
-inline TNameStoreCache const &
-contigNamesCache(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> const & context)
-{
-    return _referenceCast<TNameStoreCache &>(context._contigNamesCache);
-}
-
 /*!
  * @fn VcfIOContext#sampleNames
  * @brief Return reference to the sample names from @link VcfIOContext @endlink.
@@ -201,26 +187,12 @@ sampleNames(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> & context)
 }
 
 template <typename TNameStore, typename TNameStoreCache, typename TStorageSpec>
-inline TNameStore const &
-sampleNames(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> const & context)
-{
-    return _referenceCast<TNameStore &>(context._sampleNames);
-}
-
-template <typename TNameStore, typename TNameStoreCache, typename TStorageSpec>
 inline TNameStoreCache &
 sampleNamesCache(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> & context)
 {
     return _referenceCast<TNameStoreCache &>(context._sampleNamesCache);
 }
 
-template <typename TNameStore, typename TNameStoreCache, typename TStorageSpec>
-inline TNameStoreCache const &
-sampleNamesCache(VcfIOContext<TNameStore, TNameStoreCache, TStorageSpec> const & context)
-{
-    return _referenceCast<TNameStoreCache &>(context._sampleNamesCache);
-}
-
 }  // namespace seqan
 
 #endif  // #ifndef SEQAN_INCLUDE_SEQAN_VCF_IO_VCF_IO_CONTEXT_H_
diff --git a/include/seqan/version.h b/include/seqan/version.h
index a79d6da..43000b2 100644
--- a/include/seqan/version.h
+++ b/include/seqan/version.h
@@ -41,7 +41,7 @@
 
 #define SEQAN_VERSION_MINOR 0
 
-#define SEQAN_VERSION_PATCH 1
+#define SEQAN_VERSION_PATCH 0
 
 #define SEQAN_VERSION_PRE_RELEASE 0
 
diff --git a/manual/requirements.txt b/manual/requirements.txt
index 6c3be10..0218b7b 100644
--- a/manual/requirements.txt
+++ b/manual/requirements.txt
@@ -1,4 +1,3 @@
-seqansphinx>=0.3.2
+seqansphinx>=0.3.0
 sphinx_rtd_theme
 sphinxcontrib-bibtex
-nose
diff --git a/manual/source/BuildManual/UsingTheSeqAnBuildSystem.rst b/manual/source/BuildManual/UsingTheSeqAnBuildSystem.rst
index 668759a..ef4d093 100644
--- a/manual/source/BuildManual/UsingTheSeqAnBuildSystem.rst
+++ b/manual/source/BuildManual/UsingTheSeqAnBuildSystem.rst
@@ -100,7 +100,7 @@ The library will be installed to ``~/local/seqan``.
     ~ # cd seqan-build/library_only
     library_only # cmake ../../seqan-src -DCMAKE_INSTALL_PREFIX=~/local/seqan \
                      -DSEQAN_BUILD_SYSTEM=SEQAN_RELEASE_LIBRARY
-    library_only # make dox
+    library_only # make docs
     library_only # make install
 
 The user can now find the SeqAn library in ``~/local/seqan/include``:
@@ -189,7 +189,7 @@ Packaging Library Releases
 ^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Packaging the library and documentation is quite simple. Note that we
-have to build the documentation using ``make dox`` before calling
+have to build the documentation using ``make docs`` before calling
 ``make package`` because of a `bug in
 CMake <http://public.kitware.com/Bug/view.php?id=8438>`_ that prevents
 us from doing it automatically.
@@ -205,7 +205,7 @@ whether it is a pre-release of the next version.
     ~ # mkdir -p seqan-build/release_library
     ~ # cd seqan-build/release_library
     release_library # cmake ../../seqan-src -DSEQAN_BUILD_SYSTEM=SEQAN_RELEASE_LIBRARY
-    release_library # make dox
+    release_library # make docs
     release_library # make package
 
 On Linux, this will build three archives:
@@ -337,7 +337,7 @@ Library Only
 
     release_library # cmake ../../seqan-src -DSEQAN_BUILD_SYSTEM=SEQAN_RELEASE_LIBRARY \
                         -DSEQAN_NIGHTLY_RELEASE=TRUE
-    release_library # make dox
+    release_library # make docs
     release_library # make package
     release_library # ls -l seqan-library-20121120-*
     -rw-rw-r-- 1 USER GROUP 3368034 Nov 20 14:07 seqan-library-20121120-Linux.deb
diff --git a/manual/source/HowTo/ClipAlignments.rst b/manual/source/HowTo/ClipAlignments.rst
index 5971c2a..fe95f61 100644
--- a/manual/source/HowTo/ClipAlignments.rst
+++ b/manual/source/HowTo/ClipAlignments.rst
@@ -31,5 +31,5 @@ An Example
 
 The following extensive example shows how to practically translate between the coordinate systems.
 
-.. includefrags:: demos/howto/align_gaps_clipping.cpp
+.. includefrags:: demos/align_gaps_clipping.cpp
 
diff --git a/manual/source/HowTo/GenerateSeqAnKnimeNodes.rst b/manual/source/HowTo/GenerateSeqAnKnimeNodes.rst
index 9534903..4e99901 100644
--- a/manual/source/HowTo/GenerateSeqAnKnimeNodes.rst
+++ b/manual/source/HowTo/GenerateSeqAnKnimeNodes.rst
@@ -105,7 +105,7 @@ We then execute ant and pass the variables ``knime.sdk`` with the path to the KN
 
 The generated files are within the *generated_plugin* directory of the directory *GenericKnimeNodes*.
 
-If you ran into problems, you may copy the file `knime_node_app.zip <https://github.com/seqan/knime_node_template/archive/master.zip>`_, which contains the ``knime_node`` app and the adjusted *CMakeList.txt* file.
+If you ran into problems, you may copy the file :download:`knime_node_app.zip <knime_node_app.zip>`, which contains the ``knime_node`` app and the adjusted *CMakeList.txt* file.
 Unpack this file in the ``apps`` directory.
 You still have to call *ant* though.
 
diff --git a/manual/source/HowTo/UseSeqAnNodesInKnime.rst b/manual/source/HowTo/UseSeqAnNodesInKnime.rst
index 3302c08..4850bdb 100644
--- a/manual/source/HowTo/UseSeqAnNodesInKnime.rst
+++ b/manual/source/HowTo/UseSeqAnNodesInKnime.rst
@@ -29,7 +29,7 @@ In the opening dialog fill in the following Information:
 ``Name``
   ``KNIME Nightly Unstable``
 ``Location``
-  ``http://update.knime.org/community-contributions/trunk/``
+  ``http://tech.knime.org/update/community-contributions/nightly/``
 
 .. figure:: install-knime-3.png
 
diff --git a/manual/source/HowTo/WorkWithCustomScoreMatrices.rst b/manual/source/HowTo/WorkWithCustomScoreMatrices.rst
index 0ee3be9..67cddfa 100644
--- a/manual/source/HowTo/WorkWithCustomScoreMatrices.rst
+++ b/manual/source/HowTo/WorkWithCustomScoreMatrices.rst
@@ -37,8 +37,9 @@ We define a function ``showScoringMatrix`` for displaying a matrix.
 Finally, the function ``main`` function demostrates some of the things you can do with scores:
 
 * Construct empty score matrix object (2.)
-* Programmatically fill the score matrix in a loop (3.1)
-* Programatically fill the matrix with the user-defined matrix values (3.2)
+* Programatically fill the matrix with a built-in matrix values (3.1)
+* Programmatically fill the score matrix in a loop (3.2)
+* Programatically fill the matrix with the user-defined matrix values (3.3)
 * Directly create a score matrix with the user-defined matrix values (4)
 
 .. includefrags:: demos/howto/scores/init_score.cpp
@@ -46,7 +47,124 @@ Finally, the function ``main`` function demostrates some of the things you can d
 
 Here is the output of the program:
 
-.. includefrags:: demos/howto/scores/init_score.cpp.stdout
+.. code-block:: console
+
+    $ make tutorial_init_score
+    $ ./demos/tutorial_init_score
+    BLOSUM 30
+        A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+    A   4   -1  0   0   -3  1   0   0   -2  0   -1  0   1   -2  -1  1   1   -5  -4  1   0   0   0   -7
+    R   -1  8   -2  -1  -2  3   -1  -2  -1  -3  -2  1   0   -1  -1  -1  -3  0   0   -1  -2  0   -1  -7
+    N   0   -2  8   1   -1  -1  -1  0   -1  0   -2  0   0   -1  -3  0   1   -7  -4  -2  4   -1  0   -7
+    D   0   -1  1   9   -3  -1  1   -1  -2  -4  -1  0   -3  -5  -1  0   -1  -4  -1  -2  5   0   -1  -7
+    C   -3  -2  -1  -3  17  -2  1   -4  -5  -2  0   -3  -2  -3  -3  -2  -2  -2  -6  -2  -2  0   -2  -7
+    Q   1   3   -1  -1  -2  8   2   -2  0   -2  -2  0   -1  -3  0   -1  0   -1  -1  -3  -1  4   0   -7
+    E   0   -1  -1  1   1   2   6   -2  0   -3  -1  2   -1  -4  1   0   -2  -1  -2  -3  0   5   -1  -7
+    G   0   -2  0   -1  -4  -2  -2  8   -3  -1  -2  -1  -2  -3  -1  0   -2  1   -3  -3  0   -2  -1  -7
+    H   -2  -1  -1  -2  -5  0   0   -3  14  -2  -1  -2  2   -3  1   -1  -2  -5  0   -3  -2  0   -1  -7
+    I   0   -3  0   -4  -2  -2  -3  -1  -2  6   2   -2  1   0   -3  -1  0   -3  -1  4   -2  -3  0   -7
+    L   -1  -2  -2  -1  0   -2  -1  -2  -1  2   4   -2  2   2   -3  -2  0   -2  3   1   -1  -1  0   -7
+    K   0   1   0   0   -3  0   2   -1  -2  -2  -2  4   2   -1  1   0   -1  -2  -1  -2  0   1   0   -7
+    M   1   0   0   -3  -2  -1  -1  -2  2   1   2   2   6   -2  -4  -2  0   -3  -1  0   -2  -1  0   -7
+    F   -2  -1  -1  -5  -3  -3  -4  -3  -3  0   2   -1  -2  10  -4  -1  -2  1   3   1   -3  -4  -1  -7
+    P   -1  -1  -3  -1  -3  0   1   -1  1   -3  -3  1   -4  -4  11  -1  0   -3  -2  -4  -2  0   -1  -7
+    S   1   -1  0   0   -2  -1  0   0   -1  -1  -2  0   -2  -1  -1  4   2   -3  -2  -1  0   -1  0   -7
+    T   1   -3  1   -1  -2  0   -2  -2  -2  0   0   -1  0   -2  0   2   5   -5  -1  1   0   -1  0   -7
+    W   -5  0   -7  -4  -2  -1  -1  1   -5  -3  -2  -2  -3  1   -3  -3  -5  20  5   -3  -5  -1  -2  -7
+    Y   -4  0   -4  -1  -6  -1  -2  -3  0   -1  3   -1  -1  3   -2  -2  -1  5   9   1   -3  -2  -1  -7
+    V   1   -1  -2  -2  -2  -3  -3  -3  -3  4   1   -2  0   1   -4  -1  1   -3  1   5   -2  -3  0   -7
+    B   0   -2  4   5   -2  -1  0   0   -2  -2  -1  0   -2  -3  -2  0   0   -5  -3  -2  5   0   -1  -7
+    Z   0   0   -1  0   0   4   5   -2  0   -3  -1  1   -1  -4  0   -1  -1  -1  -2  -3  0   4   0   -7
+    X   0   -1  0   -1  -2  0   -1  -1  -1  0   0   0   0   -1  -1  0   0   -2  -1  0   -1  0   -1  -7
+    *   -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  1
+
+    Coordinate Products
+        A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+    A   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0
+    R   0   1   2   3   4   5   6   7   8   9   10  11  12  13  14  15  16  17  18  19  20  21  22  23
+    N   0   2   4   6   8   10  12  14  16  18  20  22  24  26  28  30  32  34  36  38  40  42  44  46
+    D   0   3   6   9   12  15  18  21  24  27  30  33  36  39  42  45  48  51  54  57  60  63  66  69
+    C   0   4   8   12  16  20  24  28  32  36  40  44  48  52  56  60  64  68  72  76  80  84  88  92
+    Q   0   5   10  15  20  25  30  35  40  45  50  55  60  65  70  75  80  85  90  95  100 105 110 115
+    E   0   6   12  18  24  30  36  42  48  54  60  66  72  78  84  90  96  102 108 114 120 126 132 138
+    G   0   7   14  21  28  35  42  49  56  63  70  77  84  91  98  105 112 119 126 133 140 147 154 161
+    H   0   8   16  24  32  40  48  56  64  72  80  88  96  104 112 120 128 136 144 152 160 168 176 184
+    I   0   9   18  27  36  45  54  63  72  81  90  99  108 117 126 135 144 153 162 171 180 189 198 207
+    L   0   10  20  30  40  50  60  70  80  90  100 110 120 130 140 150 160 170 180 190 200 210 220 230
+    K   0   11  22  33  44  55  66  77  88  99  110 121 132 143 154 165 176 187 198 209 220 231 242 253
+    M   0   12  24  36  48  60  72  84  96  108 120 132 144 156 168 180 192 204 216 228 240 252 264 276
+    F   0   13  26  39  52  65  78  91  104 117 130 143 156 169 182 195 208 221 234 247 260 273 286 299
+    P   0   14  28  42  56  70  84  98  112 126 140 154 168 182 196 210 224 238 252 266 280 294 308 322
+    S   0   15  30  45  60  75  90  105 120 135 150 165 180 195 210 225 240 255 270 285 300 315 330 345
+    T   0   16  32  48  64  80  96  112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368
+    W   0   17  34  51  68  85  102 119 136 153 170 187 204 221 238 255 272 289 306 323 340 357 374 391
+    Y   0   18  36  54  72  90  108 126 144 162 180 198 216 234 252 270 288 306 324 342 360 378 396 414
+    V   0   19  38  57  76  95  114 133 152 171 190 209 228 247 266 285 304 323 342 361 380 399 418 437
+    B   0   20  40  60  80  100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 440 460
+    Z   0   21  42  63  84  105 126 147 168 189 210 231 252 273 294 315 336 357 378 399 420 441 462 483
+    X   0   22  44  66  88  110 132 154 176 198 220 242 264 286 308 330 352 374 396 418 440 462 484 506
+    *   0   23  46  69  92  115 138 161 184 207 230 253 276 299 322 345 368 391 414 437 460 483 506 529
+
+    User defined matrix (also BLOSUM 30)...
+        A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+    A   4   -1  0   0   -3  1   0   0   -2  0   -1  0   1   -2  -1  1   1   -5  -4  1   0   0   0   -7
+    R   -1  8   -2  -1  -2  3   -1  -2  -1  -3  -2  1   0   -1  -1  -1  -3  0   0   -1  -2  0   -1  -7
+    N   0   -2  8   1   -1  -1  -1  0   -1  0   -2  0   0   -1  -3  0   1   -7  -4  -2  4   -1  0   -7
+    D   0   -1  1   9   -3  -1  1   -1  -2  -4  -1  0   -3  -5  -1  0   -1  -4  -1  -2  5   0   -1  -7
+    C   -3  -2  -1  -3  17  -2  1   -4  -5  -2  0   -3  -2  -3  -3  -2  -2  -2  -6  -2  -2  0   -2  -7
+    Q   1   3   -1  -1  -2  8   2   -2  0   -2  -2  0   -1  -3  0   -1  0   -1  -1  -3  -1  4   0   -7
+    E   0   -1  -1  1   1   2   6   -2  0   -3  -1  2   -1  -4  1   0   -2  -1  -2  -3  0   5   -1  -7
+    G   0   -2  0   -1  -4  -2  -2  8   -3  -1  -2  -1  -2  -3  -1  0   -2  1   -3  -3  0   -2  -1  -7
+    H   -2  -1  -1  -2  -5  0   0   -3  14  -2  -1  -2  2   -3  1   -1  -2  -5  0   -3  -2  0   -1  -7
+    I   0   -3  0   -4  -2  -2  -3  -1  -2  6   2   -2  1   0   -3  -1  0   -3  -1  4   -2  -3  0   -7
+    L   -1  -2  -2  -1  0   -2  -1  -2  -1  2   4   -2  2   2   -3  -2  0   -2  3   1   -1  -1  0   -7
+    K   0   1   0   0   -3  0   2   -1  -2  -2  -2  4   2   -1  1   0   -1  -2  -1  -2  0   1   0   -7
+    M   1   0   0   -3  -2  -1  -1  -2  2   1   2   2   6   -2  -4  -2  0   -3  -1  0   -2  -1  0   -7
+    F   -2  -1  -1  -5  -3  -3  -4  -3  -3  0   2   -1  -2  10  -4  -1  -2  1   3   1   -3  -4  -1  -7
+    P   -1  -1  -3  -1  -3  0   1   -1  1   -3  -3  1   -4  -4  11  -1  0   -3  -2  -4  -2  0   -1  -7
+    S   1   -1  0   0   -2  -1  0   0   -1  -1  -2  0   -2  -1  -1  4   2   -3  -2  -1  0   -1  0   -7
+    T   1   -3  1   -1  -2  0   -2  -2  -2  0   0   -1  0   -2  0   2   5   -5  -1  1   0   -1  0   -7
+    W   -5  0   -7  -4  -2  -1  -1  1   -5  -3  -2  -2  -3  1   -3  -3  -5  20  5   -3  -5  -1  -2  -7
+    Y   -4  0   -4  -1  -6  -1  -2  -3  0   -1  3   -1  -1  3   -2  -2  -1  5   9   1   -3  -2  -1  -7
+    V   1   -1  -2  -2  -2  -3  -3  -3  -3  4   1   -2  0   1   -4  -1  1   -3  1   5   -2  -3  0   -7
+    B   0   -2  4   5   -2  -1  0   0   -2  -2  -1  0   -2  -3  -2  0   0   -5  -3  -2  5   0   -1  -7
+    Z   0   0   -1  0   0   4   5   -2  0   -3  -1  1   -1  -4  0   -1  -1  -1  -2  -3  0   4   0   -7
+    X   0   -1  0   -1  -2  0   -1  -1  -1  0   0   0   0   -1  -1  0   0   -2  -1  0   -1  0   -1  -7
+    *   -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  1
+
+        A   R   N   D   C   Q   E   G   H   I   L   K   M   F   P   S   T   W   Y   V   B   Z   X   *
+    A   4   -1  0   0   -3  1   0   0   -2  0   -1  0   1   -2  -1  1   1   -5  -4  1   0   0   0   -7
+    R   -1  8   -2  -1  -2  3   -1  -2  -1  -3  -2  1   0   -1  -1  -1  -3  0   0   -1  -2  0   -1  -7
+    N   0   -2  8   1   -1  -1  -1  0   -1  0   -2  0   0   -1  -3  0   1   -7  -4  -2  4   -1  0   -7
+    D   0   -1  1   9   -3  -1  1   -1  -2  -4  -1  0   -3  -5  -1  0   -1  -4  -1  -2  5   0   -1  -7
+    C   -3  -2  -1  -3  17  -2  1   -4  -5  -2  0   -3  -2  -3  -3  -2  -2  -2  -6  -2  -2  0   -2  -7
+    Q   1   3   -1  -1  -2  8   2   -2  0   -2  -2  0   -1  -3  0   -1  0   -1  -1  -3  -1  4   0   -7
+    E   0   -1  -1  1   1   2   6   -2  0   -3  -1  2   -1  -4  1   0   -2  -1  -2  -3  0   5   -1  -7
+    G   0   -2  0   -1  -4  -2  -2  8   -3  -1  -2  -1  -2  -3  -1  0   -2  1   -3  -3  0   -2  -1  -7
+    H   -2  -1  -1  -2  -5  0   0   -3  14  -2  -1  -2  2   -3  1   -1  -2  -5  0   -3  -2  0   -1  -7
+    I   0   -3  0   -4  -2  -2  -3  -1  -2  6   2   -2  1   0   -3  -1  0   -3  -1  4   -2  -3  0   -7
+    L   -1  -2  -2  -1  0   -2  -1  -2  -1  2   4   -2  2   2   -3  -2  0   -2  3   1   -1  -1  0   -7
+    K   0   1   0   0   -3  0   2   -1  -2  -2  -2  4   2   -1  1   0   -1  -2  -1  -2  0   1   0   -7
+    M   1   0   0   -3  -2  -1  -1  -2  2   1   2   2   6   -2  -4  -2  0   -3  -1  0   -2  -1  0   -7
+    F   -2  -1  -1  -5  -3  -3  -4  -3  -3  0   2   -1  -2  10  -4  -1  -2  1   3   1   -3  -4  -1  -7
+    P   -1  -1  -3  -1  -3  0   1   -1  1   -3  -3  1   -4  -4  11  -1  0   -3  -2  -4  -2  0   -1  -7
+    S   1   -1  0   0   -2  -1  0   0   -1  -1  -2  0   -2  -1  -1  4   2   -3  -2  -1  0   -1  0   -7
+    T   1   -3  1   -1  -2  0   -2  -2  -2  0   0   -1  0   -2  0   2   5   -5  -1  1   0   -1  0   -7
+    W   -5  0   -7  -4  -2  -1  -1  1   -5  -3  -2  -2  -3  1   -3  -3  -5  20  5   -3  -5  -1  -2  -7
+    Y   -4  0   -4  -1  -6  -1  -2  -3  0   -1  3   -1  -1  3   -2  -2  -1  5   9   1   -3  -2  -1  -7
+    V   1   -1  -2  -2  -2  -3  -3  -3  -3  4   1   -2  0   1   -4  -1  1   -3  1   5   -2  -3  0   -7
+    B   0   -2  4   5   -2  -1  0   0   -2  -2  -1  0   -2  -3  -2  0   0   -5  -3  -2  5   0   -1  -7
+    Z   0   0   -1  0   0   4   5   -2  0   -3  -1  1   -1  -4  0   -1  -1  -1  -2  -3  0   4   0   -7
+    X   0   -1  0   -1  -2  0   -1  -1  -1  0   0   0   0   -1  -1  0   0   -2  -1  0   -1  0   -1  -7
+    *   -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  -7  1
+
+    User DNA scoring scheme...
+        A   C   G   T   N
+    A   1   0   0   0   0
+    C   0   1   0   0   0
+    G   0   0   1   0   0
+    T   0   0   0   1   0
+    N   0   0   0   0   0
 
 Loading Score Matrices From File
 ------------------------------------
@@ -64,11 +182,20 @@ We define a function that can show a scoring matrix.
 .. includefrags:: demos/howto/scores/load_score.cpp
    :fragment: show-scoring-matrix
 
-Finally, the main program loads the scoring matrix and then shows it.
+Finally, the main program loads the scoring matrix from the file given on the command line and then shows it.
 
 .. includefrags:: demos/howto/scores/load_score.cpp
    :fragment: main
 
 Here's the program output.
 
-.. includefrags:: demos/howto/scores/load_score.cpp.stdout
+.. code-block:: console
+
+   $ make tutorial_load_score
+   $ ./demos/tutorial_load_score ../../demos/howto/scores/dna_example.txt
+       A   C   G   T
+   A   1   -1  -1  -1
+   C   -1  1   -1  -1
+   G   -1  -1  1   -1
+   T   -1  -1  -1  1
+
diff --git a/manual/source/HowTo/knime_node_app.zip b/manual/source/HowTo/knime_node_app.zip
new file mode 100644
index 0000000..592094e
Binary files /dev/null and b/manual/source/HowTo/knime_node_app.zip differ
diff --git a/manual/source/HowTo/workflow_plugin_dir.zip b/manual/source/HowTo/workflow_plugin_dir.zip
index 15397a5..47ccf60 100644
Binary files a/manual/source/HowTo/workflow_plugin_dir.zip and b/manual/source/HowTo/workflow_plugin_dir.zip differ
diff --git a/manual/source/Infrastructure/Documentation.rst b/manual/source/Infrastructure/Documentation.rst
index e1550bd..f9f2ba5 100644
--- a/manual/source/Infrastructure/Documentation.rst
+++ b/manual/source/Infrastructure/Documentation.rst
@@ -38,13 +38,3 @@ Follow these instructions to setup a local sphinx environment and build the manu
     (seqan-manual-env) $ make html
 
 Note that you have to first build the dox documentation since plugins for generating the ``:dox:`` links rely on the generated search index for checks.
-In order to get correct dox-links within the generated manuals, you have to specify the correct branch version.
-If you are working on the develop branch there is nothing to do, since ``'develop'`` is set by default.
-But if you are working on another branch, for example ``master``, you can set the correct branch by calling
-
-.. code-block:: console
-
-    (seqan-manual-env) $ export READTHEDOCS_VERSION='master'
-
-before you call ``make html`` as described in the previous step.
-This will generate the correct links to the master's version of the dox, i.e., ``http://docs.seqan.de/seqan/master/``
\ No newline at end of file
diff --git a/manual/source/StyleGuide/Cpp.rst b/manual/source/StyleGuide/Cpp.rst
index afc75ff..49dac98 100644
--- a/manual/source/StyleGuide/Cpp.rst
+++ b/manual/source/StyleGuide/Cpp.rst
@@ -69,18 +69,34 @@ Do this instead.
 Exceptions
 ^^^^^^^^^^
 
-SeqAn functions throw exceptions only to report unrecoverable errors, usually during I/O.
-Instead, functions expected to either success or fail use boolean return values to report their status.
+Currently, the SeqAn code does not use any exceptions and is not exception safe.
+Do not use any exceptions yourself, instead use return codes.
 
-Virtual Member Functions
-^^^^^^^^^^^^^^^^^^^^^^^^
+.. container:: foldable
 
-SeqAn heavily uses template subclassing instead of C++ built-in subclassing.
-This technique requires using global member functions instead of in-class member functions.
+    The following is an example where two chars are read using ``<cstdio>`` I/O.
+    We use a return code of ``0`` to indicate no errors.
 
-If the design requires using in-class member functions, the keyword ``virtual`` should be avoided.
-Virtual member functions cannot be inlined and are thus slow when used in tight loops.
+    .. code-block:: cpp
+
+        int readSome(char & c, FILE * fp)
+        {
+            int res = fgetc(fp);
+            if (res < 0)
+                return res;
+            res = fgetc(fp);
+            if (res < 0)
+                return res;
+            c = res;
+            return 0;
+        }
+
+Virtual Member Functions
+^^^^^^^^^^^^^^^^^^^^^^^^
 
+Do not use virtual member functions.
+Since we mostly use template subclassing instead of C++ built-in subclassing, there rarely is the need for member functions.
+In the case where there are member functions, they should not be ``virtual`` since this is slow when used in tight loops.
 
 ``static_cast<>``
 ^^^^^^^^^^^^^^^^^
diff --git a/manual/source/StyleGuide/DoxApiDocs.rst b/manual/source/StyleGuide/DoxApiDocs.rst
index bba40d4..20e71ae 100644
--- a/manual/source/StyleGuide/DoxApiDocs.rst
+++ b/manual/source/StyleGuide/DoxApiDocs.rst
@@ -661,7 +661,7 @@ metafunction then use a ``TXyz`` return type in ``@return`` and document
 
 **Signature** ``@return Exception Label``
 
-Add note on a function or macro throwing an exception.
+Add note on a function or macro throwing ane xception.
 
 .. code-block:: cpp
 
@@ -676,28 +676,6 @@ Add note on a function or macro throwing an exception.
      */
     void myFunction(char const * filename);
 
- at datarace
-^^^^^^^^^
-
-**Signature** ``@datarace Description``
-
-Describe possible data races for functions and macros.
-If this value is not specified it defaults to ``Thread safety unknown!``
-
-.. code-block:: cpp
-
-    /*!
-     * @fn myFunction
-     * @brief Writes things to a file.
-     * @signature void myFunction(char const * filename);
-     *
-     * @param[in] filename File to write to.
-     *
-     * @datarace This function is not thread safe and concurrent writes to the file might invalidate the output.
-     */
-    void myFunction(char const * filename);
-
-
 @section
 ^^^^^^^^
 
diff --git a/manual/source/Tutorial.rst b/manual/source/Tutorial.rst
index 3664903..91289e7 100644
--- a/manual/source/Tutorial.rst
+++ b/manual/source/Tutorial.rst
@@ -19,7 +19,7 @@ Tutorial
    :maxdepth: 2
 
    Tutorial/GettingStarted
-   Tutorial/AFirstExample
+   Tutorial/FirstStepsInSeqAn
    Tutorial/BackgroundAndMotivation
 
    Tutorial/Sequences
@@ -35,19 +35,19 @@ Tutorial
 
    Tutorial/Indices
    Tutorial/IndexIterators
-   Tutorial/QgramIndex
+   Tutorial/IndexQGram
 
    Tutorial/PatternMatching
 
    Tutorial/Graphs
 
-   Tutorial/FileIOOverview
+   Tutorial/InputOutputOverview
    Tutorial/SequenceIO
    Tutorial/IndexedFastaIO
-   Tutorial/SamAndBamIO
+   Tutorial/SamBamIO
    Tutorial/VcfIO
    Tutorial/BedIO
-   Tutorial/GffAndGtfIO
+   Tutorial/GffGtfIO
 
    Tutorial/Modifiers
 
@@ -57,19 +57,21 @@ Tutorial
 
    Tutorial/ParsingCommandLineArguments
 
-   Tutorial/GenomeAnnotations
+   Tutorial/AnnotationStore
 
    Tutorial/FragmentStore
    Tutorial/ConsensusAlignment
    Tutorial/Realignment
 
    Tutorial/SimpleRnaSeq
-   Tutorial/JournaledSet
+   Tutorial/SimpleReadMapping
+   Tutorial/MiniBowtie
+   Tutorial/JournalSet
    Tutorial/KnimeNode
 
    Tutorial/BasicTechniques
    Tutorial/Metafunctions
-   Tutorial/GenericProgramming
+   Tutorial/TemplateSubclassing
    Tutorial/GlobalFunctionInterface
 
    Tutorial/Basics
@@ -228,6 +230,13 @@ The article :ref:`build-manual-integration-with-your-own-build-system` contains
 :ref:`tutorial-simple-rna-seq`
   In this tutorial you will learn how to implement a simple RNA-Seq based gene quantification tool, that computes RPKM expression levels based on a given genome annotation and RNA-Seq read alignments.
 
+:ref:`tutorial-simple-read-mapping`
+  This tutorial shows how to implement a simple read mapping program based on the SWIFT filter and online Hamming finder for verification.
+
+:ref:`tutorial-mini-bowtie`
+  Mini-Bowtie is a very basic read aligner that is inspired by the well known Bowtie program :cite:`Langmead2009`.
+  It serves as an example to show that you can write sophisticated programs with SeqAn using few lines of code.
+
 :ref:`tutorial-data-journaling`
   In this tutorial we demonstrate how you can handle multiple large sequence in main memory while the data structures themself support a certain parallel sequence analysis.
 
diff --git a/manual/source/Tutorial/AFirstExample.rst b/manual/source/Tutorial/AFirstExample.rst
deleted file mode 100644
index f3f7003..0000000
--- a/manual/source/Tutorial/AFirstExample.rst
+++ /dev/null
@@ -1,563 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-first-steps-in-seqan:
-
-A First Example
----------------
-
-Learning Objective
-  You will learn the most basic concepts of SeqAn.
-  After this tutorial you will be ready to deal with the more specific tutorials, e.g. Sequences.
-
-Difficulty
-  Very basic
-
-Duration
-  1.5h
-
-Prerequisites
-  Basic C or C++ knowledge
-
-Welcome to the SeqAn "Hello World".
-This is the first practical tutorial you should look at when starting to use our software library.
-
-We assume that you have some programming experience (preferably in C++ or C) and concentrate on SeqAn specific aspects.
-We will start out pretty slowly and hopefully the tutorial will make sense to you even if you are new to C++.
-However, to really leverage the power of SeqAn you will have to learn C++.
-There are many tutorials on C++, for example `the tutorial at cplusplus.com <http://www.cplusplus.com/doc/tutorial/>`_.
-
-This tutorial will walk you through a simple example program that highlights the things that are most prominently different from the libraries that many SeqAn newcomers are used to:
-
-* extensive usage of C++ templates,
-* generic programming using templates,
-* using references instead of pointers in most places,
-* and more.
-
-Running Example
-~~~~~~~~~~~~~~~
-
-Our example program will do a pattern search of a short query sequence in a long database sequence.
-As the score, we will compute the number of equal characters at each position.
-
-The following figure shows an example:
-
-::
-
-    score:    101 ...        ... 801 ...
-    text:     This is an awesome tutorial to get to know SeqAn!
-    pattern:  tutorial           tutorial
-               tutorial           tutorial
-                ...                ...
-
-
-The first position has a score of 1, because the ``i`` in the pattern matches the ``i`` in ``is``.
-This is only a toy example for explanatory reasons and we ignore any more advanced implementations.
-
-In SeqAn the program could look like this (we will explain every line of code shortly):
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code.cpp
-   :fragment: all
-
-Whenever we use SeqAn classes or functions we have to explicitly write the namespace qualifier ``seqan::`` in front of the class name or function.
-This can be circumvented if we include the line ``using namespace seqan;`` at the top of the working example.
-However, during this tutorial we will not do this, such that SeqAn classes and functions can be recognized more easily.
-
-.. attention::
-
-   Argument-Dependent Name Lookup (Koenig Lookup)
-
-   Using the namespace prefix ``seqan::`` is not really necessary in all places.
-   In many cases, the Koenig lookup rule in C++ for functions makes this unnecessary.
-   Consider the following, compiling, example.
-
-   .. code-block:: cpp
-
-      seqan::String<char> s = "example";
-      unsigned i = length(s);
-
-Here, the function ``length`` does not have a namespace prefix.
-The code compiles nevertheless.
-The compiler automatically looks for a function ``length`` in the namespace of its arguments.
-
-Note that we follow the rules for variable, function, and class names as outlined in the :ref:`SeqAn style guide <style-guide-cpp>`.
-For example: (1) variables and functions use lower case, (2) struct, enum and classes use CamelCase, (3) metafunctions start with a capital letter, and (4) metafunction values are UPPERCASE.
-
-Assignment 1
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Create a demo program and replace its content with the code above.
-
-   Hint
-     Depending on your operating system you have different alternatives to create a demo application.
-     An in depth description can be found in GettingStarted.
-
-   Solution
-     Click ''more...''
-
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/a_first_example/solution_1.cpp
-
-SeqAn and Templates
-~~~~~~~~~~~~~~~~~~~
-
-Let us now have a detailed look at the program.
-
-We first include the IOStreams library that we need to print to the screen and the SeqAn's ``<seqan/file.h>`` as well as ``<seqan/sequence.h>`` module from the SeqAn library that provides SeqAn :dox:`String`.
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code_detailed.cpp
-   :fragment: includes
-
-The :dox:`String String class` is one of the most fundamental classes in SeqAn, which comes as no surprise since SeqAn is used to analyse sequences (there is an extra tutorial for SeqAn :ref:`sequences <tutorial-sequences>` and :ref:`alphabets <tutorial-alphabets>`).
-
-In contrast to the popular string classes of Java or C++, SeqAn provides different string implementations and different alphabets for its strings.
-There is one string implementation that stores characters in memory, just like normal C++ strings.
-Another string implementation stores the characters on disk and only keeps a part of the sequence in memory.
-For alphabets, you can use strings of nucleotides, such as genomes, or you can use strings of amino acids, for example.
-
-SeqAn uses **template functions** and **template classes** to implement the different types of strings using the **generic programming** paradigm.
-Template functions/classes are normal functions/classes with the additional feature that one passes the type of a variable as well as its value (see also: `templates in cpp <http://www.cplusplus.com/doc/tutorial/templates/>`_).
-This means that SeqAn algorithms and data structures are implemented in such a way that they work on all types implementing an informal interface (see information box below for more details).
-This is similar to the philosophy employed in the C++ STL (Standard Template Library).
-Even though we provide further tutorials on templates in SeqAn (:ref:`tutorial-basic-techniques`, :ref:`tutorial-metafunctions`, :ref:`tutorial-template-subclassing`, :ref:`tutorial-global-function-interface`), they are more advanced and not required to follow this tutorial.
-
-The following two lines make use of template programming to define two strings of type char, a text and a pattern.
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code_detailed.cpp
-   :fragment: sequences
-
-In order to store the similarities between the pattern and different text positions we additionally create a string storing integer values.
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code_detailed.cpp
-   :fragment: score
-
-Note that in contrast to the first two string definitions we do not know the values of the different positions in the string in advance.
-In order to dynamically adjust the length of the new string to the text we can use the function :dox:`StringConcept#resize`.
-The resize function is not a member function of the string class because SeqAn is not object oriented in the typical sence (we will see later how we adapt SeqAn to object oriented programming).
-Therefore, instead of writing ``string.resize(newLength)`` we use ``resize(string, newLength)``.
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code_detailed.cpp
-   :fragment: resize
-
-.. note::
-
-    Global function interfaces.
-
-    SeqAn uses **global interfaces** for its data types/classes.
-    Generally, you have to use ``function(variable)`` instead of ``variable.function()``.
-
-    This has the advantage that we can extend the interface of a type outside of its definition.
-    For example, we can provide a ``length()`` function for STL containers ``std::string<T>`` and ``std::vector<T>`` outside their class files.
-    We can use such global functions to make one data type have the same interface as a second.
-    This is called **adaption**.
-
-    Additionally, we can use one function definition for several data types.
-    For example, the alignment algorithms in SeqAn are written such that we can compute alignments using any :dox:`String` with any alphabet:
-    There are more than 5 :dox:`String` variants in SeqAn and more than 8 built-in alphabets.
-    Thus, one implementation can be used for more than 40 different data types!
-
-After the string initializations it is now time for the similarity computation.
-In this toy example we simply take the pattern and shift it over the text from left to right.
-After each step, we check how many characters are equal between the corresponding substring of the text and the pattern.
-We implement this using two loops; the outer one iterates over the given text and the inner loop over the given pattern:
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code_detailed.cpp
-   :fragment: similarity
-
-There are two things worth mentioning here: (1) SeqAn containers or strings start at position 0 and (2) you will notice that we use ``++variable`` instead of ``variable++`` wherever possible.
-The reason is that ``++variable`` is slightly faster than its alternative, since the alternative needs to make a copy of itself before returning the result.
-
-In the last step we simply print the result that we stored in the variable ``````score`` on screen.
-This gives the similarity of the pattern to the string at each position.
-
-.. includefrags:: demos/tutorial/a_first_example/basic_code_detailed.cpp
-   :fragment: print
-
-Code Encapsulation
-~~~~~~~~~~~~~~~~~~
-
-At this point, we have already created a working solution!
-However, in order to make it easier to maintain and reuse parts of the code we need to export them into functions.
-In this example the interesting piece of code is the similarity computation, which consists of an outer and inner loop.
-We encapsulate the outer loop in function ``computeScore`` and the inner loop in function ``computeLocalScore`` as can be seen in the following code.
-
-.. includefrags:: demos/tutorial/a_first_example/code_encapsulation.cpp
-   :fragment: all
-
-The function computeScore() now contains the fundamental part of the code and can be reused by other functions.
-The input arguments are two strings.
-One is the pattern itself and one is a substring of the text.
-In order to obtain the substring we can use the function :dox:`SegmentableConcept#infix` implemented in SeqAn.
-The function call ``infix(text, i, j)`` generates a substring equal to ``text[i ... j - 1]``, e.g. ``infix(text, 1, 5)`` equals "ello", where ``text`` is "Hello World".
-To be more precise, infix() generates a :dox:`InfixSegment Infix` which can be used as a string, but is implemented using pointers such that no copying is necessary and running time and memory is saved.
-
-Assignment 2
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Replace the code in your current file by the code above and encapsulate the print instructions.
-
-   Hint
-     The function head should look like this:
-
-   .. code-block::cpp
-
-      void print(seqan::String<int> score)
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/a_first_example/solution_2.cpp
-
-The Role of References in SeqAn
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Let us now have a closer look at the signature of ``computeScore()``.
-
-Both the text and the pattern are passed *by value*.
-This means that both the text and the pattern are copied when the function is called, which consumes twice the memory.
-This can become a real bottleneck since copying longer sequences is very memory and time consuming, think of the human genome, for example.
-
-Instead of copying we could use **references**.
-A reference in C++ is created using an ampersand sign (``&``) and creates an alias to the referenced value.
-Basically, a reference is a pointer to an object which can be used just like the referenced object itself.
-This means that when you change something in the reference you also change the original object it came from.
-But there is a solution to circumvent this modification problem as well, namely the word **const**.
-A ``const`` object cannot be modified.
-
-.. important::
-
-   If an object does not need to be modified make it an nonmodifiably object using the keyword ``const``.
-   This makes it impossible to *unwillingly* change objects, which can be really hard to debug.
-   Therefore it is recommended to use it as often as possible.
-
-Therefore we change the signature of computeScore to:
-
-.. code-block:: cpp
-
-    seqan::String<int> computeScore(seqan::String<char> const & text, seqan::String<char> const & pattern)
-
-Reading from right to left the function expects two ``references`` to
-``const objects`` of type ``String`` of ``char``.
-
-Assignment 3
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Adjust your current code to be more memory and time efficient by using references in the function header.
-
-   Hint
-     The function head for ``computeLocalScore`` should look like this:
-
-     .. code-block:: cpp
-
-        int computeLocalScore(seqan::String<char> const & subText, seqan::String<char> const & pattern)
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/a_first_example/solution_3.cpp
-
-Generic and Reusable Code
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-As mentioned earlier, there is another issue: the function computeScore only works for Strings having the alphabet ``char``.
-If we wanted to use it for ``Dna`` or ``AminoAcid`` strings then we would have to reimplement it even though the only difference is the signature of the function.
-All used functions inside ``computeScore`` can already handle the other datatypes.
-
-The more appropriate solution is a generic design using templates, as often used in the SeqAn library.
-Instead of specifying the input arguments to be references of strings of ``char`` s we could use references of template arguments as shown in the following lines:
-
-.. code-block:: cpp
-
-   template <typename TText, typename TPattern>
-   seqan::String<int> computeScore(TText const & text, TPattern const & pattern)
-
-The first line above specifies that we create a template function with two template arguments ``TText`` and ``TPattern``.
-At compile time the template arguments are then replace with the correct types.
-If this line was missing the compiler would expect that there are types ``TText`` and ``TPattern`` with definitions.
-
-Now the function signature is better in terms of memory consumption, time efficiency, and generality.
-
-.. important::
-
-   The SeqAn Style Guide
-
-   The :ref:`SeqAn style guide <style-guide-cpp>` gives rules for formatting and structuring C++ code as well as naming conventions.
-   Such rules make the code more consistent, easier to read, and also easier to use.
-
-   #. **Naming Scheme**.
-      Variable and function names are written in ``lowerCamelCase``, type names are written in ``UpperCamelCase``.
-      Constants and enum values are written in ``UPPER_CASE``.
-      Template variable names always start with 'T'.
-   #. **Function Parameter Order**.
-      The order is (1) output, (2) non-const input (e.g. file handles), (3) input, (4) tags.
-      Output and non-const input can be modified, the rest is left untouched and either passed by copy or by const-reference (``const &``).
-   #. **Global Functions**.
-      With the exception of constructors and a few operators that have to be defined in-class, the interfaces in SeqAn use global functions.
-   #. **No Exceptions**.
-      The SeqAn interfaces do not throw any exceptions.
-
-   While we are trying to make the interfaces consistent with our style guide, some functions have incorrect parameter order.
-   This will change in the near future to be more in line with the style guide.
-
-Assignment 4
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Generalize the ``computeLocalScore`` function in your file.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/a_first_example/solution_4.cpp
-
-From Object-Oriented Programming to SeqAn
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There is another huge advantage of using templates: we can specialize a function without touching the existing function.
-In our working example it might be more appropriate to treat ``AminoAcid`` sequences differently.
-As you probably know, there is a similarity relation on amino acids: Certain amino acids are more similar to each other, than others.
-Therefore we want to score different kinds of mismatches differently.
-In order to take this into consideration we simple write a ``computeLocalScore()`` function for ``AminoAcid`` strings.
-In the future whenever 'computerScore' is called always the version above is used unless the second argument is of type String.
-Note that the second template argument was removed since we are using the specific type String-AminoAcid.
-
-.. code-block:: cpp
-
-   template <typename TText>
-   int computeLocalScore(TText const & subText, seqan::String<seqan::AminoAcid> const & pattern)
-   {
-       int localScore = 0;
-       for (unsigned i = 0; i < seqan::length(pattern); ++i)
-           localScore += seqan::score(seqan::Blosum62(), subText[i], pattern[i]);
-
-       return localScore;
-   }
-
-In order to score a mismatch we use the function ``score()`` from the SeqAn library.
-Note that we use the :dox:`Blosum62` matrix as a similarity measure.
-When looking into the documentation of :dox:`Score#score` you will notice that the score function requires a argument of type :dox:`Score`.
-This object tells the function how to compare two letters and there are several types of scoring schemes available in SeqAn (of course, you can extend this with your own).
-In addition, because they are so frequently used there are shortcuts as well.
-For example :dox:`Blosum62` is really a **shortcut** for ``Score<int, ScoreMatrix<AminoAcid, Blosum62_> >``, which is obviously very helpful.
-Other shortcuts are ``DnaString`` for ``String<Dna>`` (:ref:`sequence tutorial <tutorial-sequences>`), ``CharString`` for ``String<char>``, ...
-
-.. tip::
-
-   Template Subclassing
-
-   The main idea of template subclassing is to exploit the C++ template matching mechanism.
-   For example, in the following code, the function calls (1) and (3) will call the function ``myFunction()`` in variant (A) while the function call (2) will call variant (B).
-
-   .. code-block:: cpp
-
-      struct SpecA;
-      struct SpecB;
-      struct SpecC;
-
-      template <typename TAlphabet, typename TSpec>
-      class String<TAlphabet, TSpec>;
-
-      template <typename TAlphabet, typename TSpec>
-      void myFunction(String<TAlphabet, TSpec> const & str);  // Variant (A)
-
-      template <typename TAlphabet>
-      void myFunction(String<TAlphabet, SpecB> const & str);  // Variant (B)
-
-      // ...
-
-      int main()
-      {
-          String<char, SpecA> a;
-          String<char, SpecB> b;
-          String<char, SpecC> c;
-
-          myFunction(a);            // calls (A)
-          myFunction(b);            // calls (B)
-          myFunction(c);            // calls (A)
-      }
-
-For a detailed description and more examples see the tutorial :ref:`Template Subclassing <tutorial-template-subclassing>`.
-
-Assignment 5
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Application
-
-   Objective
-     Provide a generic print function which is used when the input type is not ``String<int>``.
-
-   Hint
-     Keep your current implementation and add a second function.
-     Don't forget to make both template functions.
-     Include ``<seqan/score.h>`` as well.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/a_first_example/solution_5.cpp
-
-Tags in SeqAn
-~~~~~~~~~~~~~
-
-Sometimes you will see something like this:
-
-.. code-block:: cpp
-
-   globalAlignment(align, seqan::MyersHirschberg())
-
-Having a closer look you will notice that there is a default constructor call (``MyersHirschberg()`` ) within a function call.
-Using this mechanism one can specify which function to call at compile time.
-The ``MyersHirschberg()`` `` is only a tag to determine which specialisation of the ``globalAligment`` function to call.
-
-**If you want more information on tags then read on** otherwise you are now ready to explore SeqAn in more detail and continue with one of the other tutorials.
-
-There is another use case of templates and function specialization.
-
-This might be useful in a ``print()`` function, for example.
-In some scenarios, we only want to print the position where the maximal similarity between pattern and text is found.
-In other cases, we might want to print the similarities of all positions.
-In SeqAn, we use **tag-based dispatching** to realize this.
-Here, the type of the **tag** holds the specialization information.
-
-.. tip::
-
-   Tag-Based Dispatching
-
-   You will often see **tags** in SeqAn code, e.g. ``Standard()``.
-   These are parameters to functions that are passed as const-references.
-   They are not passed for their values but for their type only.
-   This way, we can select different specializations at **compile time** in a way that plays nicely together with metafunctions, template specializations, and an advanced technique called [[Tutorial/BasicTechniques| metaprogramming]].
-
-   Consider the following example:
-
-   .. code-block:: cpp
-
-      struct TagA {};
-      struct TagB {};
-
-      void myFunction(TagA const &);  // (1)
-      void myFunction(TagB const &);  // (2)
-
-      int main()
-      {
-          myFunction(TagA());  // (3)
-          myFunction(TagB());  // (4)
-          return 0;
-      }
-
-   The function call in line (3) will call ``myFunction()`` in the variant in line (1).
-   The function call in line (4) will call ``myFunction()`` in the variant in line (2).
-
-The code for the two different ``print()`` functions mentioned above could look like this:
-
-.. code-block:: cpp
-
-   #include <iostream>
-   #include <seqan/sequence.h>
-   #include <seqan/score.h>
-
-   template <typename TText, typename TSpec>
-   void print(TText const & text, TSpec const & /*tag*/)
-   {
-       for (unsigned i = 0; i < seqan::length(text); ++i)
-           std::cout << text[i] << " ";
-       std::cout << std::endl;
-   }
-
-   struct MaxOnly {};
-
-   template <typename TText>
-   void print(TText const & score, MaxOnly const & /*tag*/)
-   {
-       int maxScore = score[0];
-       seqan::String<int> output;
-       appendValue(output, 0);
-       for (unsigned i = 1; i < seqan::length(score); ++i)
-       {
-           if (score[i] > maxScore)
-           {
-               maxScore = score[i];
-               clear(output);
-               resize(output, 1, i);
-           }
-           else if (score[i] == maxScore)
-           {
-               appendValue(output, i);
-           }
-       }
-
-       for (unsigned i = 0; i < seqan::length(output); ++i)
-           std::cout << output[i] << " ";
-       std::cout << std::endl;
-   }
-
-If we call ``print()`` with something different than ``MaxOnly`` then we print all the positions with their similarity, because the generic template function accepts anything as the template argument.
-On the other hand, if we call print with ``MaxOnly`` only the positions with the maximum similarity as well as the maximal similarity will be shown.
-
-Assignment 6
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Provide a print function that prints pairs of positions and their score if the score is greater than 0.
-
-   Hints
-     SeqAn provides a data type :dox:`Pair`.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/a_first_example/solution_6.cpp
-
-Obviously this is only a toy example in which we could have named the two ``print()`` functions differently.
-However, often this is not the case when the programs become more complex.
-Because SeqAn is very generic we do not know the datatypes of template functions in advance.
-This would pose a problem because the function call of function ``b()`` in function ``a()`` may depend on the data types of the template arguments of function ``a()``.
-
-The Final Result
-~~~~~~~~~~~~~~~~
-
-Don't worry if you have not fully understood the last section.
-If you have -- perfect.
-In any case the take home message is that you use data types for class specializations and if you see a line of code in which the default constructor is written in a function call this typical means that the data type is important to distinct between different function implementations.
-
-Now you are ready to explore more of the SeqAn library.
-There are several tutorials which will teach you how to use the different SeqAn data structures and algorithms.
-Below you find the complete code for our example with the corresponding output.
-
-.. includefrags:: demos/tutorial/a_first_example/final_result.cpp
-   :fragment: result
-
diff --git a/manual/source/Tutorial/AlignmentRepresentation.rst b/manual/source/Tutorial/AlignmentRepresentation.rst
index 5cb8731..0ae083c 100644
--- a/manual/source/Tutorial/AlignmentRepresentation.rst
+++ b/manual/source/Tutorial/AlignmentRepresentation.rst
@@ -49,7 +49,7 @@ Before we can make use of any of the mentioned data structures, we need to tell
 This can be achieved by including the header file ``<seqan/align.h>`` which contains the necessary data structures and functions associated with the alignments.
 The next steps would be to implement the main function of our program and to define the types that we want to use.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: main
 
 We first define the type of the input sequences (``TSequence``).
@@ -59,7 +59,7 @@ You can use the Metafunction :dox:`Align#Row` to get the correct type of the use
 In the following we use the term ``row`` to explicitly refer to a gapped sequence as a member of the Align object.
 We will use the term ``gapped sequence`` to describe functionalities that is related to the Gaps data structure independent of the Align object.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: typedefs
 
 After defining the types, we can continue to actually construct our own Align object.
@@ -69,13 +69,13 @@ With the function :dox:`Align#row`, we get access to the gapped sequence at a sp
 This is similar to the :dox:`RandomAccessContainerConcept#value` function used in :dox:`StringSet String Sets`.
 Now, we can assign the source to the corresponding gapped sequence.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: init
 
 After assigning the sources to the gapped sequences, we need to add some gaps to make it to look like a real alignment.
 You can use the functions :dox:`Gaps#insertGap insertGap()` and :dox:`Gaps#removeGap` to insert and delete one gap or :dox:`Gaps#insertGaps insertGaps()` and :dox:`Gaps#removeGaps` to insert and delete multiple gaps in a gapped sequence.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: manipulation
 
 Congratulations!
@@ -92,13 +92,13 @@ When inserting gaps, the gap space is modified and all coordinates right of the
 At the same time, the coordinates of the source remain unchanged.
 Using the function :dox:`Gaps#toSourcePosition toSourcePosition()`, we can determine to which position in the source space our current position in the gapped sequence (gap space) maps.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: printingSourcePos
 
 If the position in the gap space is actually a gap, then :dox:`Gaps#toSourcePosition toSourcePosition()` returns the source position of the next character to the right that is not a gap.
 Vice versa, we can determine where our current source position maps into the gap space using the function :dox:`Gaps#toViewPosition toViewPosition()`.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: printingViewPos
 
 And here is the output of this short example program so far:
@@ -132,7 +132,7 @@ These functions shrink the gap space and can be understood as defining an infix
 After the clipping, the relative view position changes according to the clipping and so does the mapping of the source positions to the gap space.
 The mapping of the view positions to the source space does not change.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: clipping
 
 Here the output of the clipping procedure.
@@ -178,12 +178,12 @@ If you need to refresh the **Iterator Concept** you can read the Tutorial :ref:`
 While we iterate over the gapped sequence, we can ask if the current value, at which the iterator ``it`` points to, is a gap or not by using the function :dox:`Gaps#isGap isGap()`.
 Use :dox:`AlphabetWithGapsConcept#gapValue` to print the correct gap symbol.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: iteratingRowClipped
 
 We will now reset the clipping of ``row1`` using :dox:`Gaps#clearClipping` and iterate again over it to see its effect.
 
-.. includefrags:: demos/tutorial/alignment_representation/align.cpp
+.. includefrags:: demos/tutorial/alignments/alignment2_align.cpp
    :fragment: iteratingRowClipped2
 
 ::
@@ -215,7 +215,7 @@ Assignment 1
    Solution
        .. container:: foldable
 
-          .. includefrags :: demos/tutorial/alignment_representation/align_assignmen1.cpp
+          .. includefrags :: demos/tutorial/alignments/alignment_align_assignment1.cpp
              :fragment: solution
 
 AlignmentGraph Data Structure
@@ -231,7 +231,7 @@ In the following we will actually construct this example step by step.
 First we include the ``iostream`` header from the STL and the ``<seqan/align.h>`` header to include all necessary functions and data structures we want to use.
 We use the namespace ``seqan`` and write the ``main`` function with an empty body.
 
-.. includefrags:: demos/tutorial/alignment_representation/graph.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_representation_ag.cpp
    :fragment: main
 
 At the begin of the function we define our types we want to use later on.
@@ -243,12 +243,12 @@ That is the AlignmentGraph does not copy the sources into its data structure but
 The :dox:`DependentStringSet Dependent StringSet` facilitates this behavior.
 In the end we define the actual AlignmentGraph type.
 
-.. includefrags:: demos/tutorial/alignment_representation/graph.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_representation_ag.cpp
    :fragment: typedef
 
 We first create our two input sequences ``TTGT`` and ``TTAGT`` append them to the StringSet ``strings`` using the :dox:`StringConcept#appendValue` function and pass the initialized ``strings`` object as a parameter to the constructor of the AlignmentGraph ``alignG``.
 
-.. includefrags:: demos/tutorial/alignment_representation/graph.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_representation_ag.cpp
    :fragment: init
 
 Before we construct the alignment we print the unmodified AlignmentGraph.
@@ -265,7 +265,7 @@ In the next step we have to add a gap.
 We can do this simply by just adding a vertex that covers the inserted string.
 Finally we have to add the second edge to represent the last ungapped sequence and then we print the constructed alignment.
 
-.. includefrags:: demos/tutorial/alignment_representation/graph.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_representation_ag.cpp
    :fragment: construct
 
 Here the output of the program.
@@ -305,7 +305,7 @@ Assignment 2
    Solution
      .. container :: foldable
 
-        .. includefrags :: demos/tutorial/alignment_representation/graph_assignment1.cpp
+        .. includefrags :: demos/tutorial/alignments/alignment_representation_ag_assignment1.cpp
            :fragment: main
 
         .. code-block :: console
diff --git a/manual/source/Tutorial/AnnotationStore.rst b/manual/source/Tutorial/AnnotationStore.rst
new file mode 100644
index 0000000..a28dc82
--- /dev/null
+++ b/manual/source/Tutorial/AnnotationStore.rst
@@ -0,0 +1,366 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-genome-annotations:
+
+Genome Annotations
+------------------
+
+Learning Objective
+  You will learn how to work with annotations in SeqAn.
+  After this tutorial, you will be able to write your own programs using annotations and analyzing them.
+  You will be ready to continue with the :ref:`tutorial-fragment-store` Tutorial, e.g. if you want to combine your annotations with information from alignments.
+
+Difficulty
+  Average
+
+Duration
+  1 h
+
+Prerequisites
+  :ref:`tutorial-sequences`, :ref:`tutorial-iterators`
+
+This tutorial will present SeqAn's efficient and easy-to-use data structures to work with annotations.
+They allow to annotate genome regions with features like 'gene', 'mRNA', 'exon', 'intron' and if required with custom features.
+We will give you an understanding of how to load annotations from a `GFF <http://genome.ucsc.edu/FAQ/FAQformat.html#format3>`_ or `GTF <http://genome.ucsc.edu/FAQ/FAQformat.html#format4>`_ file, store them in efficient data structures, as well as how to traverse and access these information.
+
+AnnotationStore as Part of the FragmentStore
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This section will give you a short introduction to data structures relevant for working with annotations.
+
+In SeqAn, annotations are stored in the so-called :dox:`FragmentStore::annotationStore`, which is part of the :dox:`FragmentStore`.
+The annotationStore can only be used together with the FragmentStore, because the latter stores additional information, e.g. the contig names or sequences.
+The FragmentStore is a data structure specifically designed for read mapping, genome assembly or gene annotation.
+
+The FragmentStore can be seen as a database, where each table (called "store") is implemented as a :dox:`String`.
+Each row of the table corresponds to an element in the string.
+The position of each element in the string implicitly represents the Id of such element in the table.
+All such strings are members of the class :dox:`FragmentStore`, are always present and empty if unused.
+For example, the member :dox:`FragmentStore::contigStore` is a string of elements, each one containing among others a contig sequence.
+
+For detailed information about the :dox:`FragmentStore` read the :ref:`tutorial-fragment-store` Tutorial.
+
+Accordingly, the :dox:`FragmentStore::annotationStore` is a :dox:`String`, where each element represents one annotation.
+Each element holds the necessary information, e.g. beginPos, endPos, parentId etc., as data members.
+
+.. Like many other stores, the :dox:`FragmentStore::annotationStore` has an associated name store, namely the :dox:`FragmentStore::annotationNameStore`, to store its element names.
+   The name store is a  StringSet that stores the element name at the position of its id.
+
+AnnotationStore
+~~~~~~~~~~~~~~~
+
+In this section you will learn how to work with the :dox:`FragmentStore::annotationStore` itself.
+
+Annotations are represented hierarchically by a tree having at least a root node.
+
+A typical annotation tree looks as follows.
+
+.. figure:: AnnotationTree.png
+   :width: 400px
+
+   Annotation tree example
+
+
+The following entity-relationship diagram shows the tables holding store annotations, their relationships and cardinalities.
+
+.. figure:: AnnotationStore.png
+   :width: 600px
+
+   Stores involved in gene annotation
+
+The instantiation of an :dox:`FragmentStore::annotationStore` happens implicitly with the instantiation of a :dox:`FragmentStore`.
+Therefore we simply type:
+
+.. code-block:: cpp
+
+   FragmentStore<> store;
+
+Loading an Annotation File
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Before we deal with the actual annotation tree, we will first describe how you can easily load annotations from a `GFF <http://genome.ucsc.edu/FAQ/FAQformat.html#format3>`_ or `GTF <http://genome.ucsc.edu/FAQ/FAQformat.html#format4>`_ file into the :dox:`FragmentStore`.
+
+An annotation file can be read from an open input stream with the function :dox:`File#read`.
+A tag specifies if we want to read a GFF, GTF or UCSC file.
+The following example shows how to read an GTF file:
+
+.. code-block:: cpp
+
+   // Open input stream from the current directory
+   std::ifstream file("example.gtf", std::ios_base::in | std::ios_base::binary);
+   // Read annotations from the GTF file
+   read(file, store, Gtf());
+
+The GFF-reader is also able to detect and read GTF files.
+The UCSC Genome Browser uses two seperate files, the ``kownGene.txt`` and ``knownIsoforms.txt``.
+They must be read by two consecutive calls of :dox:`File#read` (first ``knownGene.txt`` then ``knownIsoforms.txt``).
+
+.. tip::
+
+    An annotation can be loaded without loading the corresponding contigs.
+
+    In that case empty contigs are created in the contigStore with names given in the annonation.
+    A subsequent call of :dox:`FragmentStore#loadContigs` would load the sequences of these contigs, if they have the same identifier in the contig file.
+
+Traversing the Annotation Tree
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This section will illustrate how to use iterators to traverse the annotation tree.
+
+The annotation tree can be traversed and accessed with the :dox:`AnnotationTreeIterator AnnotationTree Iterator`.
+Again we use the metafunction `dox:ContainerConcept#Iterator Iterator` to determine the appropriate iterator type for our container.
+A new AnnotationTree iterator can be obtained by calling :dox:`ContainerConcept#begin` with a reference to the :dox:`FragmentStore` and the ``AnnotationTree`` tag:
+
+.. code-block:: cpp
+
+   Iterator<FragmentStore<>, AnnotationTree<> >::Type it;
+   it = begin(store, AnnotationTree<>());
+
+The AnnotationTree iterator starts at the root node and can be moved to adjacent tree nodes with the functions :dox:`AnnotationTreeIterator#goDown`, :dox:`AnnotationTreeIterator#goUp`, and :dox:`AnnotationTreeIterator#goRight`.
+These functions return a boolean value that indicates whether the iterator could be moved.
+The functions :dox:`AnnotationTreeIterator#isLeaf`, :dox:`AnnotationTreeIterator#isRoot`, :dox:`AnnotationTreeIterator#isLastChild` return the same boolean without moving the iterator.
+With :dox:`AnnotationTreeIterator#goRoot` or :dox:`AnnotationTreeIterator#goTo` the iterator can be moved to the root node or an arbitrary node given its annotationId.
+If the iterator should not be moved but a new iterator at an adjacent node is required, the functions :dox:`AnnotationTreeIterator#nodeDown`, :dox:`AnnotationTreeIterator#nodeUp`, :dox:`AnnotationTreeIterator#nodeRight` can be used.
+
+.. code-block:: cpp
+
+   // Move the iterator down to a leaf
+   while (goDown(it));
+   // Create a new iterator and if possible move it to the right sibling of the first iterator
+   Iterator<FragmentStore<>, AnnotationTree<> >::Type it2;
+   if (isLastChild(it))
+       it2 = nodeRight(it);
+
+The AnnotationTree iterator supports a preorder DFS traversal and therefore can also be used in typical begin-end loops with the functions :dox:`RootedRandomAccessIteratorConcept#goBegin` (== :dox:`AnnotationTreeIterator#goRoot`), :dox:`RootedRandomAccessIteratorConcept#goEnd`, :dox:`InputIteratorConcept#goNext`, :dox:`RootedIteratorConcept#atBegin`, :dox:`RootedIteratorConcept#atEnd`.
+During a preorder DFS, the descent into subtree can be skipped by :dox:`AnnotationTreeIterator#goNextRight`, or :dox:`AnnotationTreeIterator#goNextUp` which proceeds with the next sibling or returns to the parent node and proceeds with the next node in preorder DFS.
+
+.. code-block:: cpp
+
+   // Move the iterator back to the beginning
+   goBegin(it);
+   // Iterate over the nodes in preorder DFS while the end is not reached and
+   // output if the current node is a leaf
+   for (goBegin(it); atEnd(it); goNext(it))
+   {
+       if (isLeaf(it))
+           std::cout << " current node is leaf" << std::endl;
+   }
+
+Asignment 1
+"""""""""""
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Copy the code below, which loads the annotations from a given GTF file into the FragmentStore and initializes an iterator on the AnnotationTree.
+     Download the GTF file :download:`assignment_annotations.gtf <assignment_annotations.gtf>`, whose annotations build an AnnotationTree of the typical structure with gene, mRNA and exon level.
+     Adjust the code to go down to the exon level and iteratate over all children of the first mRNA and count them.
+     Print the result.
+
+     Click **more...** to see the code.
+
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/annotation_store/assignment_1_hint.cpp
+
+     Hints
+       In the given data the left-most leaf is a child of mRNA and has siblings.
+       You can use the function :dox:`AnnotationTreeIterator#goRight` to traverse over all siblings.
+
+     Solution
+      Click **more...** to see one possible solution.
+
+      .. container:: foldable
+
+         .. includefrags:: demos/tutorial/annotation_store/assignment_1_solution.cpp
+
+         .. code-block:: console
+
+            No. of children of the first mRNA: 9
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Reuse the code and the GTF file from above.
+     Instead of counting only the children of the first mRNA adjust the code to count the children for each given mRNA.
+     Print the results.
+
+   Hints
+     After you reached the last child of the first mRNA you can use the functions :dox:`InputIteratorConcept#goNext` and :dox:`AnnotationTreeIterator#goDown` to traverse to the next leaf.
+
+   Solution
+     Click **more...** to see one possible solution.
+
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/annotation_store/assignment_2_solution.cpp
+
+        .. code-block:: console
+
+           9
+           2
+           2
+
+Accessing the Annotation Tree
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Let us now have a closer look how to access the information stored in the different stores representing the annotation tree.
+
+To access or modify the node an iterator points at, the iterator returns the node's annotationId by the :dox:`IteratorAssociatedTypesConcept#value` function (== ``operator*``).
+With the annotationId the corresponding entry in the annotationStore could be modified manually or by using convenience functions.
+The function :dox:`AnnotationTreeIterator#getAnnotation` returns a reference to the corresponding entry in the annotationStore.
+:dox:`AnnotationTreeIterator#getName` and :dox:`AnnotationTreeIterator#setName` can be used to retrieve or change the identifier of the annotation element.
+As some annotation file formats don't give every annotation a name, the function :dox:`AnnotationTreeIterator#getUniqueName` returns the name if non-empty or generates one using the type and id.
+The name of the parent node in the tree can be determined with :dox:`AnnotationTreeIterator#getParentName`.
+The name of the annotation type, e.g. 'mRNA' or 'exon', can be determined and modified with :dox:`AnnotationTreeIterator#getType` and :dox:`AnnotationTreeIterator#setType`.
+
+Assume we have loaded the file ``example.gtf`` with the following content to the :dox:`FragmentStore` *store* and instantiated the iterator *it* of the corresponding annotation tree.
+
+::
+
+    chr1    MySource    exon    150 200 .   +   .   gene_id "381.000"; transcript_id "381.000.1";
+    chr1    MySource    exon    300 401 .   +   .   gene_id "381.000"; transcript_id "381.000.1";
+    chr1    MySource    CDS     380 401 .   +   0   gene_id "381.000"; transcript_id "381.000.1";
+    chr1    MySource    exon    160 210 .   +   .   gene_id "381.000"; transcript_id "381.000.2";
+
+We now want to iterate to the first exon and output a few information:
+
+.. code-block:: cpp
+
+   // Move the iterator to the begin of the annotation tree
+   it = begin(store, AnnotationTree<>());
+   // Go down to exon level
+   while (goDown(it)) ;
+   std::cout << "type: " <<  getType(it) << std::endl;
+   std::cout << "id: " << value(it) << std::endl;
+   std::cout << "begin position: " <<  getAnnotation(it).beginPos << std::endl;
+
+For our example the output would be:
+
+.. code-block:: console
+
+   type: exon
+   id: 3
+   begin position: 149
+
+An annotation can not only refer to a region of a contig but also contain additional information given as key-value pairs.
+The value of a key can be retrieved or set by :dox:`AnnotationTreeIterator#getValueByKey` and :dox:`AnnotationTreeIterator#assignValueByKey`.
+The values of a node can be cleared with :dox:`AnnotationTreeIterator#clearValues`.
+
+A new node can be created as first child, last child, or right sibling of the current node with :dox:`AnnotationTreeIterator#createLeftChild`, :dox:`AnnotationTreeIterator#createRightChild`, or :dox:`AnnotationTreeIterator#createSibling`.
+All three functions return an iterator to the newly created node.
+
+.. code-block:: cpp
+
+   Iterator<FragmentStore<>, AnnotationTree<> >::Type it2;
+   // Create a right sibling of the current node and return an iterator to this new node
+   it2 = createSibling(it);
+
+The following list summarizes the functions provided by the AnnotationTree iterator.
+
+:dox:`AnnotationTreeIterator#getAnnotation`, :dox:`IteratorAssociatedTypesConcept#value`
+  Return annotation object/id of current node
+:dox:`AnnotationTreeIterator#getName`, :dox:`AnnotationTreeIterator#setName`, :dox:`AnnotationTreeIterator#getType`, :dox:`AnnotationTreeIterator#setType`
+  Access name or type of current annotation object
+:dox:`AnnotationTreeIterator#getParentName`
+  Access parent name of current annotation object
+:dox:`AnnotationTreeIterator#clearValues clearValue`, :dox:`AnnotationTreeIterator#getValueByKey`, :dox:`AnnotationTreeIterator#assignValueByKey`
+  Access associated values
+:dox:`RootedRandomAccessIteratorConcept#goBegin`, :dox:`RootedRandomAccessIteratorConcept#goEnd`, :dox:`RootedIteratorConcept#atBegin`, :dox:`RootedIteratorConcept#atEnd`
+  Go to or test for begin/end of DFS traversal
+:dox:`InputIteratorConcept#goNext`, :dox:`AnnotationTreeIterator#goNextRight`, :dox:`AnnotationTreeIterator#goNextUp`
+  go next, skip subtree or siblings during DFS traversal
+:dox:`AnnotationTreeIterator#goRoot`, :dox:`AnnotationTreeIterator#goUp`, :dox:`AnnotationTreeIterator#goDown`, :dox:`AnnotationTreeIterator#goRight`
+  Navigate through annotation tree
+:dox:`AnnotationTreeIterator#createLeftChild`, :dox:`AnnotationTreeIterator#createRightChild`, :dox:`AnnotationTreeIterator#createSibling`
+  Create new annotation nodes
+:dox:`AnnotationTreeIterator#isRoot`, :dox:`AnnotationTreeIterator#isLeaf`
+  Test for root/leaf node
+
+Assignment 3
+""""""""""""
+
+.. container::
+
+   Type
+     Application
+
+   Objective
+     Again use the given GTF file :download:`assignment_annotations.gtf <assignment_annotations.gtf>` and create an iterator on the annotation tree.
+     Now iterate to the first node of type "exon" and output the following features:
+
+     #. type
+     #. begin position
+     #. end position
+     #. its Id
+     #. the Id of its parent
+     #. the name of its parent
+
+   Solution
+    Click **more...** to see one possible solution.
+
+    .. container:: foldable
+
+       .. includefrags:: demos/tutorial/annotation_store/assignment_3_solution.cpp
+
+       .. code-block:: console
+
+          type: exon
+          begin position: 149
+          end position: 200
+          id: 3
+          parent id: 2
+          parent name: 381.000.1
+
+Assignment 4
+""""""""""""
+
+.. container:: assignment
+     Type
+       Transfer
+
+     Objective
+       Write a small statistic tool to analyse a given set of annotations.
+
+       #. Load the annotations given in the GTF file :download:`assignment_annotations.gtf <assignment_annotations.gtf>`.
+       #. Output the average number of mRNAs for genes.
+       #. Output the average number of exons for mRNAs.
+       #. Additionally output the average exon length.
+       #. Test your program also on large data, e.g. the annotation of the mouse genome `sim40mio_onlyY.sam.zip <http://ftp.seqan.de/manual_files/seqan-1.4/sim40mio_onlyY.sam.zip>`_ (don't forget to unzip first).
+
+     Solution
+      Click **more...** to see one possible solution.
+
+      .. container:: foldable
+
+         .. includefrags:: demos/tutorial/annotation_store/assignment_4_solution.cpp
+
+         .. code-block:: console
+
+            Average number of mRNAs for genes: 1.5
+            Average number of exons for mRNAs: 3
+            Average length of exons: 95.5556
+
+Write an Annotation File
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+To write an annotation to an open output stream use the function :dox:`File#write` and specify the file format with a tag ``Gff()`` or ``Gtf()``.
+
+.. code-block:: cpp
+
+   // Open output stream
+   std::ofstream fileOut("example_out.gtf", std::ios_base::out | std::ios_base::binary);
+   // Write annotations to GTF file
+   write(fileOut, store, Gtf());
diff --git a/manual/source/Tutorial/BackgroundAndMotivation.rst b/manual/source/Tutorial/BackgroundAndMotivation.rst
index 7427912..d16dc8f 100644
--- a/manual/source/Tutorial/BackgroundAndMotivation.rst
+++ b/manual/source/Tutorial/BackgroundAndMotivation.rst
@@ -116,7 +116,7 @@ Otherwise, important applications in bioinformatics cannot be covered:
 * 4-character DNA,
 * 5-character DNA with ``N``,
 * 15-character IUPAC, and
-* 27-character amino acids.
+* 23-character amino acids.
 
 A simple implementation could simply store such strings as ASCII characters.
 However, there are some implementation tricks that can lead to great reduction of memory usage (e.g. encoding eight 4-character DNA characters in one byte) or running time (fast lookup tables for characters or q-grams) for small alphabets.
@@ -155,3 +155,150 @@ It comes at the cost of some additional typing but has the advantage that the co
 An example will be given in `the section "From OOP to SeqAn" in the First Steps Tutorial <tutorial-first-steps-in-seqan>`_.
 
 The important point is that in contrast to runtime polymorphism such static polymorphism allows the compiler to inline functions.
+
+Performance Example
+^^^^^^^^^^^^^^^^^^^
+
+The following small program shows impressive performance gains when using inlined functions instead of virtual functions.
+We will sort random quadruples of ``int`` values using the STL function ``std::sort``.
+
+In the program, we will sort ``std::vector`` objects of the two types ``Item1`` and ``Item2``.
+The only difference is that the comparison operator ``operator<()`` for ``Item1`` can be inlined while ``operator<()`` for ``Item2`` is ``virtual`` and thus cannot be inlined.
+
+The relevant lines in the code below are highlighted.
+
+.. code-block:: cpp
+    :emphasize-lines: 12-43
+
+    #include <iostream>
+    #include <vector>
+    #include <algorithm>
+    #include <tr1/random>
+
+    #include <omp.h>  // For omp_get_wtime() only.
+
+    const int ITERATIONS = 10;
+    const int N = 100*1000*1000;
+    const int SEED = 42;
+
+    struct Item1
+    {
+        int i1, i2, i3, i4, i5;
+
+        Item1() : i1(0), i2(0), i3(0), i4(0), i5(0)
+        {}
+
+        Item1(int i) : i1(i1), i2(i), i3(i), i4(i), i5(i)
+        {}
+
+        bool operator<(Item1 const & other) const
+        {
+            return i1 < other.i1;
+        }
+    };
+
+    struct Item2
+    {
+        int i1, i2, i3, i4, i5;
+
+        Item2() : i1(0), i2(0), i3(0), i4(0), i5(0)
+        {}
+
+        Item2(int i) : i1(i1), i2(i), i3(i), i4(i), i5(i)
+        {}
+
+        virtual
+        bool operator<(Item2 const & other) const
+        {
+            return i1 < other.i1;
+        }
+    };
+
+    int main()
+    {
+        double start = 0;
+        double timeAvg = 0;
+        double timeDev = 0;
+        std::vector<double> times;
+
+        std::cout << "Parameters\n";
+        std::cout << "    # iterations: " << ITERATIONS << "\n";
+        std::cout << "    # items     : " << N << "\n";
+        std::cout << "    seed        : " << SEED << "\n\n";
+
+        // Generate random input.
+        std::cout << "Generating input.\n";
+        start = omp_get_wtime();
+        std::tr1::mt19937 eng(SEED);
+        std::tr1::uniform_int<int> unif;
+        std::vector<int> nums;
+        nums.reserve(N);
+        for (int i = 0; i < N; ++i)
+            nums.push_back(unif(eng));
+        std::cout << "    time " << omp_get_wtime() - start << " s\n\n";
+
+        // Sort with inlining.
+        times.clear();
+        timeAvg = 0;
+        timeDev = 0;
+        std::cout << "std::sort with inlining\n";
+        for (int i = 0; i < ITERATIONS + 1; ++i)
+        {
+            std::vector<Item1> items(nums.begin(), nums.end());
+            start = omp_get_wtime();
+            std::sort(items.begin(), items.end());
+            if (i > 0)
+              times.push_back(omp_get_wtime() - start);
+        }
+        for (unsigned i = 0; i < times.size(); ++i)
+            timeAvg += times[i];
+        timeAvg /= times.size();
+        for (unsigned i = 0; i < times.size(); ++i)
+            timeDev += (timeAvg - times[i]) * (timeAvg - times[i]);
+        timeDev /= times.size();
+        timeDev = sqrt(timeDev);
+        std::cout << "    time avg " << timeAvg << " s dev " << timeDev << "\n\n";
+
+        // Sorting with virtual operator<().
+        times.clear();
+        timeAvg = 0;
+        timeDev = 0;
+        std::cout << "std::sort without inlining\n";
+        for (int i = 0; i < ITERATIONS + 1; ++i)
+        {
+            std::vector<Item2> items(nums.begin(), nums.end());
+            start = omp_get_wtime();
+            std::sort(items.begin(), items.end());
+            if (i > 0)
+              times.push_back(omp_get_wtime() - start);
+        }
+        for (unsigned i = 0; i < times.size(); ++i)
+            timeAvg += times[i];
+        timeAvg /= times.size();
+        for (unsigned i = 0; i < times.size(); ++i)
+            timeDev += (timeAvg - times[i]) * (timeAvg - times[i]);
+        timeDev /= times.size();
+        timeDev = sqrt(timeDev);
+        std::cout << "    time avg " << timeAvg << " s dev " << timeDev << "\n";
+
+        return 0;
+    }
+
+The resulting differences in running times on a Xeon X5550 @2.67 Ghz machine, compiled with g++ 4.4.5 are as follows.
+Thus, we have an improved performance with a **factor 2** of inlined functions instead of virtual function calls!
+
+.. code-block:: console
+
+    Parameters
+        # iterations: 10
+        # items     : 100000000
+        seed        : 42
+
+    Generating input.
+        time 0.836878 s
+
+    std::sort with inlining
+        time avg 5.43477 s dev 0.0817846
+
+    std::sort without inlining
+        time avg 11.0379 s dev 0.0425878
diff --git a/manual/source/Tutorial/BedIO.rst b/manual/source/Tutorial/BedIO.rst
index db28cc2..419207f 100644
--- a/manual/source/Tutorial/BedIO.rst
+++ b/manual/source/Tutorial/BedIO.rst
@@ -45,7 +45,13 @@ BED Format
 
 The following is an example of a BED file:
 
-    .. literalinclude:: ../../../demos/tutorial/bed_io/example.bed
+::
+
+    chr1    66999824    67210768    NM_032291   0   +   6700004167208778    0   25  227,64,25,72,57,55,176,12,12,25,52,86,93,75,501,128,127,60,112,156,133,203,65,165,2013, 0,91705,98928,101802,105635,108668,109402,126371,133388,136853,137802,139139,142862,145536,147727,155006,156048,161292,185152,195122,199606,205193,206516,207130,208931,
+    chr1    48998526    50489626    NM_032785   0   -   4899984450489468    0   14  1439,27,97,163,153,112,115,90,40,217,95,125,123,192,    0,2035,6787,54149,57978,101638,120482,130297,334336,512729,712915,1164458,1318541,1490908,
+    chr1    16767166    16786584    NM_018090   0   +   1676725616785385    0   8   182,101,105,82,109,178,76,1248, 0,2960,7198,7388,8421,11166,15146,18170,
+    chr1    33546713    33585995    NM_052998   0   +   3354785033585783    0   12  182,121,212,177,174,173,135,166,163,113,215,351,0,275,488,1065,2841,10937,12169,13435,15594,16954,36789,38931,
+    chr1    16767166    16786584    NM_001145278    0   +   1676725616785385    0   8   104,101,105,82,109,178,76,1248, 0,2960,7198,7388,8421,11166,15146,18170,
 
 The meaning of the columns are as follows:
 
diff --git a/manual/source/Tutorial/ConsensusAlignment.rst b/manual/source/Tutorial/ConsensusAlignment.rst
index 28e01a3..3505b1a 100644
--- a/manual/source/Tutorial/ConsensusAlignment.rst
+++ b/manual/source/Tutorial/ConsensusAlignment.rst
@@ -34,28 +34,28 @@ The following program demonstrates this functionality.
 
 First, we include the necessary headers.
 
-.. includefrags:: demos/tutorial/consensus_alignment/with_positions.cpp
+.. includefrags:: demos/tutorial/consensus/with_positions.cpp
    :fragment: includes
 
 Next, the fragment store is filled with reads and approximate positions.
 The true alignment is shown in the comments.
 
-.. includefrags:: demos/tutorial/consensus_alignment/with_positions.cpp
+.. includefrags:: demos/tutorial/consensus/with_positions.cpp
    :fragment: fill_store
 
 This is followed by computing the consensus alignment using the function :dox:`consensusAlignment`.
 
-.. includefrags:: demos/tutorial/consensus_alignment/with_positions.cpp
+.. includefrags:: demos/tutorial/consensus/with_positions.cpp
    :fragment: compute_consensus
 
 Finally, the alignment is printed using an :dox:`AlignedReadLayout` object.
 
-.. includefrags:: demos/tutorial/consensus_alignment/with_positions.cpp
+.. includefrags:: demos/tutorial/consensus/with_positions.cpp
    :fragment: print_layout
 
 Here is the program's output:
 
-.. includefrags:: demos/tutorial/consensus_alignment/with_positions.cpp.stdout
+.. includefrags:: demos/tutorial/consensus/with_positions.cpp.stdout
 
 Consensus without Approximate Positions
 ---------------------------------------
@@ -65,8 +65,8 @@ In this case, the consensus step performs an all-to-all alignment of all reads a
 This is demonstrated by the following program.
 
 
-.. includefrags:: demos/tutorial/consensus_alignment/without_positions.cpp
+.. includefrags:: demos/tutorial/consensus/without_positions.cpp
 
 Here is this modified programs' output:
 
-.. includefrags:: demos/tutorial/consensus_alignment/without_positions.cpp.stdout
+.. includefrags:: demos/tutorial/consensus/without_positions.cpp.stdout
diff --git a/manual/source/Tutorial/FileIOOverview.rst b/manual/source/Tutorial/FileIOOverview.rst
deleted file mode 100644
index 8658ad2..0000000
--- a/manual/source/Tutorial/FileIOOverview.rst
+++ /dev/null
@@ -1,232 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-input-output-overview:
-
-File I/O Overview
-=================
-
-Learning Objective
-  This article will give you an overview of the formatted file I/O in SeqAn.
-
-Difficulty
-  Basic
-
-Duration
-  30 min
-
-Prerequisites
-  :ref:`tutorial-sequences`
-
-
-Overview
---------
-
-Most file formats in bioinformatics are structured as lists of records.
-Often, they start out with a header that itself contains different header records.
-For example, the Binary Sequence Alignment/Map (SAM/BAM) format starts with an header that lists all contigs of the reference sequence.
-The BAM header is followed by a list of BAM alignment records that contain query sequences aligned to some reference contig.
-
-.. _tutorial-input-output-overview-formatted-files:
-
-Formatted Files
-"""""""""""""""
-
-SeqAn allows to read or write record-structured files through two types of classes: :dox:`FormattedFileIn` and :dox:`FormattedFileOut`.
-Classes of type :dox:`FormattedFileIn` allow to read files, whereas classes of type :dox:`FormattedFileOut` allow to write files.
-Note how these types of classes **do not allow to read and write the same file at the same time**.
-
-These types of classes provide the following I/O operations on formatted files:
-
-#. open a file given its filename or attach to an existing stream like `std::cin` or `std::cout`;
-#. guess the file format from the file content or filename extension;
-#. access compressed or uncompressed files transparently.
-
-.. warning::
-
-    Access to compressed files relies on external libraries.
-    For instance, you need to have zlib installed for reading ``.gz`` files and libbz2 for reading ``.bz2`` files.
-    If you are using Linux or OS X and you followed the :ref:`tutorial-getting-started` tutorial closely, then you should have already installed the necessary libraries.
-    On Windows, you will need to follow :ref:`how-to-install-contribs-on-windows` to get the necessary libraries.
-
-    You can check whether you have installed these libraries by running CMake again.
-    Simply call ``cmake .`` in your build directory.
-    At the end of the output, there will be a section "SeqAn Features".
-    If you can read ``ZLIB - FOUND`` and ``BZIP2 - FOUND`` then you can use zlib and libbz2 in your programs.
-
-
-Basic I/O
----------
-
-This tutorial shows the basic functionalities provided by any class of type :dox:`FormattedFileIn` or :dox:`FormattedFileOut`.
-In particular, this tutorial adopts the classes :dox:`BamFileIn` and :dox:`BamFileOut` as concrete types.
-The class :dox:`BamFileIn` allows to read files in SAM or BAM format, whereas the class :dox:`BamFileOut` allows to write them.
-Nonetheless, **these functionalities are independent from the particular file format** and thus valid for all record-based file formats supported by SeqAn.
-
-The demo application shown here is a simple BAM to SAM converter.
-
-
-Includes
-""""""""
-
-Support for a specific format comes by including a specific header file.
-In this case, we include the BAM header file:
-
-.. includefrags:: demos/tutorial/file_io_overview/example1.cpp
-   :fragment: include
-
-
-Opening and Closing Files
-"""""""""""""""""""""""""
-
-Classes of type :dox:`FormattedFileIn` and :dox:`FormattedFileOut` allow to :dox:`FormattedFile#open` and :dox:`FormattedFile#close` files.
-
-A file can be opened by passing the filename to the constructor:
-
-.. includefrags:: demos/tutorial/file_io_overview/example1.cpp
-   :fragment: ctor
-
-Alternatively, a file can be opened after construction by calling :dox:`FormattedFile#open`:
-
-.. includefrags:: demos/tutorial/file_io_overview/example1.cpp
-   :fragment: open
-
-Noe that any file is closed *automatically* whenever the :dox:`FormattedFileIn` or :dox:`FormattedFileOut` object goes out of scope.
-Eventually, a file can be closed *manually* by calling :dox:`FormattedFile#close`.
-
-Accessing the Header
-""""""""""""""""""""
-
-To access the header, we need an object representing the format-specific header.
-In this case, we use an object of type :dox:`BamHeader`.
-The content of this object can be ignored for now, it will be covered in the :ref:`tutorial-sam-bam-io` tutorial.
-
-.. includefrags:: demos/tutorial/file_io_overview/example1.cpp
-   :fragment: header
-
-Function :dox:`FormattedFileIn#readHeader` reads the header from the input SAM file and :dox:`FormattedFileOut#writeHeader` writes it to the BAM output file.
-
-Accessing the Records
-"""""""""""""""""""""
-
-Again, to access records, we need an object representing format-specific information.
-In this case, we use an object of type :dox:`BamAlignmentRecord`.
-Each call to :dox:`FormattedFileIn#readRecord` reads one record from the SAM input file and moves the :dox:`BamFileIn` forward.
-Each call to :dox:`FormattedFileOut#writeRecord` writes the record just read to the BAM output files.
-We check the end of the input file by calling :dox:`FormattedFile#atEnd`.
-
-.. includefrags:: demos/tutorial/file_io_overview/example1.cpp
-   :fragment: records
-
-Our small SAM to BAM conversion demo is ready.
-The tool still lacks error handling, reading from standard input and writing to standard output.
-You are now going to add these features.
-
-Error Handling
---------------
-
-We distinguish between two types of errors: *low-level* file I/O errors and *high-level* file format errors.
-Possible file I/O errors can affect both input and output files.
-Example of errors are: the file permissions forbid a certain operations, the file does not exist, there is a disk reading error, a file being read gets deleted while we are reading from it, or there is a physical error in the hard disk.
-Conversely, file format errors can only affect input files: such errors arise whenever the content of the input file is incorrect or damaged.
-Error handling in SeqAn is implemented by means of exceptions.
-
-I/O Errors
-""""""""""
-
-All :dox:`FormattedFile#FormattedFile FormattedFileIn` and :dox:`FormattedFile#FormattedFile FormattedFileOut` constructors and functions throw exceptions of type :dox:`IOError` to signal *low-level* file I/O errors.
-Therefore, it is sufficient to catch these exceptions to handle I/O errors properly.
-
-There is only one exception to this rule.
-Function :dox:`FormattedFile#open` returns a ``bool`` to indicate whether the file was opened successfully or not.
-
-
-Assignment 1
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Application
-
-   Objective
-     Improve the program above to detect file I/O errors.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/file_io_overview/solution1.cpp
-
-
-Format Errors
-"""""""""""""
-
-Classes of types :dox:`FormattedFileIn` throw exceptions of type :dox:`ParseError` to signal *high-level* input file format errors.
-
-
-Assignment 2
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Application
-
-   Objective
-     Improve the program above to detect file format errors.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/file_io_overview/solution2.cpp
-
-
-Streams
--------
-
-The :dox:`FormattedFile#FormattedFile FormattedFileIn` and :dox:`FormattedFile#FormattedFile FormattedFileOut` constructors accept not only filenames, but also standard C++ streams, or any other class implementing the :dox:`StreamConcept Stream` concept.
-For instance, you can pass `std::cin` to any :dox:`FormattedFile#FormattedFile FormattedFileIn constructor` and `std::cout` to any :dox:`FormattedFile#FormattedFile FormattedFileOut constructor`.
-
-.. note::
-
-    When writing to `std::cout`, classes of type :dox:`FormattedFileOut` cannot guess the file format from the filename extension.
-    Therefore, the file format has to be specified explicitly by providing a tag, e.g. :dox:`FileFormats#Sam` or :dox:`FileFormats#Bam`.
-
-Assignment 3
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Application
-
-   Objective
-     Improve the program above to write to standard output.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/file_io_overview/solution3.cpp
-
-        Running this program results in the following output.
-        
-        .. includefrags:: demos/tutorial/file_io_overview/solution3.cpp.stdout
-
-
-Next Steps
-----------
-
-If you want, you can now have a look at the API documentation of the :dox:`FormattedFile` class.
-
-You can now read the tutorials for **already supported file formats**:
-
-* :ref:`tutorial-sequence-io`
-* :ref:`tutorial-sam-bam-io`
-* :ref:`tutorial-vcf-io`
-* :ref:`tutorial-bed-io`
-* :ref:`tutorial-gff-and-gtf-io`
-
-.. COMMENT or, if you want to learn how to develop **support for new file formats** then read the following article:
-    * :ref:`tutorial-custom-io`
diff --git a/manual/source/Tutorial/FirstStepsInSeqAn.rst b/manual/source/Tutorial/FirstStepsInSeqAn.rst
new file mode 100644
index 0000000..8e0dce5
--- /dev/null
+++ b/manual/source/Tutorial/FirstStepsInSeqAn.rst
@@ -0,0 +1,562 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-first-steps-in-seqan:
+
+A First Example
+---------------
+
+Learning Objective
+  You will learn the most basic concepts of SeqAn.
+  After this tutorial you will be ready to deal with the more specific tutorials, e.g. Sequences.
+
+Difficulty
+  Very basic
+
+Duration
+  1.5h
+
+Prerequisites
+  Basic C or C++ knowledge
+
+Welcome to the SeqAn "Hello World".
+This is the first practical tutorial you should look at when starting to use our software library.
+
+We assume that you have some programming experience (preferably in C++ or C) and concentrate on SeqAn specific aspects.
+We will start out pretty slowly and hopefully the tutorial will make sense to you even if you are new to C++.
+However, to really leverage the power of SeqAn you will have to learn C++.
+There are many tutorials on C++, for example `the tutorial at cplusplus.com <http://www.cplusplus.com/doc/tutorial/>`_.
+
+This tutorial will walk you through a simple example program that highlights the things that are most prominently different from the libraries that many SeqAn newcomers are used to:
+
+* extensive usage of C++ templates,
+* generic programming using templates,
+* using references instead of pointers in most places,
+* and more.
+
+Running Example
+~~~~~~~~~~~~~~~
+
+Our example program will do a pattern search of a short query sequence in a long database sequence.
+As the score, we will compute the number of equal characters at each position.
+
+The following figure shows an example:
+
+::
+
+    score:    101 ...        ... 801 ...
+    text:     This is an awesome tutorial to get to know SeqAn!
+    pattern:  tutorial           tutorial
+               tutorial           tutorial
+                ...                ...
+
+
+The first position has a score of 1, because the ``i`` in the pattern matches the ``i`` in ``is``.
+This is only a toy example for explanatory reasons and we ignore any more advanced implementations.
+
+In SeqAn the program could look like this (we will explain every line of code shortly):
+
+.. includefrags:: demos/tutorial/first_steps/basic_code.cpp
+   :fragment: all
+
+Whenever we use SeqAn classes or functions we have to explicitly write the namespace qualifier ``seqan::`` in front of the class name or function.
+This can be circumvented if we include the line ``using namespace seqan;`` at the top of the working example.
+However, during this tutorial we will not do this, such that SeqAn classes and functions can be recognized more easily.
+
+.. attention::
+
+   Argument-Dependent Name Lookup (Koenig Lookup)
+
+   Using the namespace prefix ``seqan::`` is not really necessary in all places.
+   In many cases, the Koenig lookup rule in C++ for functions makes this unnecessary.
+   Consider the following, compiling, example.
+
+   .. code-block:: cpp
+
+      seqan::String<char> s = "example";
+      unsigned i = length(s);
+
+Here, the function ``length`` does not have a namespace prefix.
+The code compiles nevertheless.
+The compiler automatically looks for a function ``length`` in the namespace of its arguments.
+
+Note that we follow the rules for variable, function, and class names as outlined in the :ref:`SeqAn style guide <style-guide-cpp>`.
+For example: (1) variables and functions use lower case, (2) struct, enum and classes use CamelCase, (3) metafunctions start with a capital letter, and (4) metafunction values are UPPERCASE.
+
+Assignment 1
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Create a demo program and replace its content with the code above.
+
+   Hint
+     Depending on your operating system you have different alternatives to create a demo application.
+     An in depth description can be found in GettingStarted.
+
+   Solution
+     Click ''more...''
+
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/first_steps/solution_1.cpp
+
+SeqAn and Templates
+~~~~~~~~~~~~~~~~~~~
+
+Let us now have a detailed look at the program.
+
+We first include the IOStreams library that we need to print to the screen and the SeqAn's ``<seqan/file.h>`` as well as ``<seqan/sequence.h>`` module from the SeqAn library that provides SeqAn :dox:`String`.
+
+.. includefrags:: demos/tutorial/first_steps/basic_code_detailed.cpp
+   :fragment: includes
+
+The :dox:`String String class` is one of the most fundamental classes in SeqAn, which comes as no surprise since SeqAn is used to analyse sequences (there is an extra tutorial for SeqAn :ref:`sequences <tutorial-sequences>` and :ref:`alphabets <tutorial-alphabets>`).
+
+In contrast to the popular string classes of Java or C++, SeqAn provides different string implementations and different alphabets for its strings.
+There is one string implementation that stores characters in memory, just like normal C++ strings.
+Another string implementation stores the characters on disk and only keeps a part of the sequence in memory.
+For alphabets, you can use strings of nucleotides, such as genomes, or you can use strings of amino acids, for example.
+
+SeqAn uses **template functions** and **template classes** to implement the different types of strings using the **generic programming** paradigm.
+Template functions/classes are normal functions/classes with the additional feature that one passes the type of a variable as well as its value (see also: `templates in cpp <http://www.cplusplus.com/doc/tutorial/templates/>`_).
+This means that SeqAn algorithms and data structures are implemented in such a way that they work on all types implementing an informal interface (see information box below for more details).
+This is similar to the philosophy employed in the C++ STL (Standard Template Library).
+Even though we provide further tutorials on templates in SeqAn (:ref:`tutorial-basic-techniques`, :ref:`tutorial-metafunctions`, :ref:`tutorial-template-subclassing`, :ref:`tutorial-global-function-interface`), they are more advanced and not required to follow this tutorial.
+
+The following two lines make use of template programming to define two strings of type char, a text and a pattern.
+
+.. includefrags:: demos/tutorial/first_steps/basic_code_detailed.cpp
+   :fragment: sequences
+
+In order to store the similarities between the pattern and different text positions we additionally create a string storing integer values.
+
+.. includefrags:: demos/tutorial/first_steps/basic_code_detailed.cpp
+   :fragment: score
+
+Note that in contrast to the first two string definitions we do not know the values of the different positions in the string in advance.
+In order to dynamically adjust the length of the new string to the text we can use the function :dox:`StringConcept#resize`.
+The resize function is not a member function of the string class because SeqAn is not object oriented in the typical sence (we will see later how we adapt SeqAn to object oriented programming).
+Therefore, instead of writing ``string.resize(newLength)`` we use ``resize(string, newLength)``.
+
+.. includefrags:: demos/tutorial/first_steps/basic_code_detailed.cpp
+   :fragment: resize
+
+.. note::
+
+    Global function interfaces.
+
+    SeqAn uses **global interfaces** for its data types/classes.
+    Generally, you have to use ``function(variable)`` instead of ``variable.function()``.
+
+    This has the advantage that we can extend the interface of a type outside of its definition.
+    For example, we can provide a ``length()`` function for STL containers ``std::string<T>`` and ``std::vector<T>`` outside their class files.
+    We can use such global functions to make one data type have the same interface as a second.
+    This is called **adaption**.
+
+    Additionally, we can use one function definition for several data types.
+    For example, the alignment algorithms in SeqAn are written such that we can compute alignments using any :dox:`String` with any alphabet:
+    There are more than 5 :dox:`String` variants in SeqAn and more than 8 built-in alphabets.
+    Thus, one implementation can be used for more than 40 different data types!
+
+After the string initializations it is now time for the similarity computation.
+In this toy example we simply take the pattern and shift it over the text from left to right.
+After each step, we check how many characters are equal between the corresponding substring of the text and the pattern.
+We implement this using two loops; the outer one iterates over the given text and the inner loop over the given pattern:
+
+.. includefrags:: demos/tutorial/first_steps/basic_code_detailed.cpp
+   :fragment: similarity
+
+There are two things worth mentioning here: (1) SeqAn containers or strings start at position 0 and (2) you will notice that we use ``++variable`` instead of ``variable++`` wherever possible.
+The reason is that ``++variable`` is slightly faster than its alternative, since the alternative needs to make a copy of itself before returning the result.
+
+In the last step we simply print the result that we stored in the variable ``````score`` on screen.
+This gives the similarity of the pattern to the string at each position.
+
+.. includefrags:: demos/tutorial/first_steps/basic_code_detailed.cpp
+   :fragment: print
+
+Code Encapsulation
+~~~~~~~~~~~~~~~~~~
+
+At this point, we have already created a working solution!
+However, in order to make it easier to maintain and reuse parts of the code we need to export them into functions.
+In this example the interesting piece of code is the similarity computation, which consists of an outer and inner loop.
+We encapsulate the outer loop in function ``computeScore`` and the inner loop in function ``computeLocalScore`` as can be seen in the following code.
+
+.. includefrags:: demos/tutorial/first_steps/code_encapsulation.cpp
+   :fragment: all
+
+The function computeScore() now contains the fundamental part of the code and can be reused by other functions.
+The input arguments are two strings.
+One is the pattern itself and one is a substring of the text.
+In order to obtain the substring we can use the function :dox:`SegmentableConcept#infix` implemented in SeqAn.
+The function call ``infix(text, i, j)`` generates a substring equal to ``text[i ... j - 1]``, e.g. ``infix(text, 1, 5)`` equals "ello", where ``text`` is "Hello World".
+To be more precise, infix() generates a :dox:`InfixSegment Infix` which can be used as a string, but is implemented using pointers such that no copying is necessary and running time and memory is saved.
+
+Assignment 2
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Replace the code in your current file by the code above and encapsulate the print instructions.
+
+   Hint
+     The function head should look like this:
+
+   .. code-block::cpp
+
+      void print(seqan::String<int> score)
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/first_steps/solution_2.cpp
+
+The Role of References in SeqAn
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Let us now have a closer look at the signature of ``computeScore()``.
+
+Both the text and the pattern are passed *by value*.
+This means that both the text and the pattern are copied when the function is called, which consumes twice the memory.
+This can become a real bottleneck since copying longer sequences is very memory and time consuming, think of the human genome, for example.
+
+Instead of copying we could use **references**.
+A reference in C++ is created using an ampersand sign (``&``) and creates an alias to the referenced value.
+Basically, a reference is a pointer to an object which can be used just like the referenced object itself.
+This means that when you change something in the reference you also change the original object it came from.
+But there is a solution to circumvent this modification problem as well, namely the word **const**.
+A ``const`` object cannot be modified.
+
+.. important::
+
+   If an object does not need to be modified make it an nonmodifiably object using the keyword ``const``.
+   This makes it impossible to *unwillingly* change objects, which can be really hard to debug.
+   Therefore it is recommended to use it as often as possible.
+
+Therefore we change the signature of computeScore to:
+
+.. code-block:: cpp
+
+    seqan::String<int> computeScore(seqan::String<char> const & text, seqan::String<char> const & pattern)
+
+Reading from right to left the function expects two ``references`` to
+``const objects`` of type ``String`` of ``char``.
+
+Assignment 3
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Adjust your current code to be more memory and time efficient by using references in the function header.
+
+   Hint
+     The function head for ``computeLocalScore`` should look like this:
+
+     .. code-block:: cpp
+
+        int computeLocalScore(seqan::String<char> const & subText, seqan::String<char> const & pattern)
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/first_steps/solution_3.cpp
+
+Generic and Reusable Code
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+As mentioned earlier, there is another issue: the function computeScore only works for Strings having the alphabet ``char``.
+If we wanted to use it for ``Dna`` or ``AminoAcid`` strings then we would have to reimplement it even though the only difference is the signature of the function.
+All used functions inside ``computeScore`` can already handle the other datatypes.
+
+The more appropriate solution is a generic design using templates, as often used in the SeqAn library.
+Instead of specifying the input arguments to be references of strings of ``char`` s we could use references of template arguments as shown in the following lines:
+
+.. code-block:: cpp
+
+   template <typename TText, typename TPattern>
+   seqan::String<int> computeScore(TText const & text, TPattern const & pattern)
+
+The first line above specifies that we create a template function with two template arguments ``TText`` and ``TPattern``.
+At compile time the template arguments are then replace with the correct types.
+If this line was missing the compiler would expect that there are types ``TText`` and ``TPattern`` with definitions.
+
+Now the function signature is better in terms of memory consumption, time efficiency, and generality.
+
+.. important::
+
+   The SeqAn Style Guide
+
+   The :ref:`SeqAn style guide <style-guide-cpp>` gives rules for formatting and structuring C++ code as well as naming conventions.
+   Such rules make the code more consistent, easier to read, and also easier to use.
+
+   #. **Naming Scheme**.
+      Variable and function names are written in ``lowerCamelCase``, type names are written in ``UpperCamelCase``.
+      Constants and enum values are written in ``UPPER_CASE``.
+      Template variable names always start with 'T'.
+   #. **Function Parameter Order**.
+      The order is (1) output, (2) non-const input (e.g. file handles), (3) input, (4) tags.
+      Output and non-const input can be modified, the rest is left untouched and either passed by copy or by const-reference (``const &``).
+   #. **Global Functions**.
+      With the exception of constructors and a few operators that have to be defined in-class, the interfaces in SeqAn use global functions.
+   #. **No Exceptions**.
+      The SeqAn interfaces do not throw any exceptions.
+
+   While we are trying to make the interfaces consistent with our style guide, some functions have incorrect parameter order.
+   This will change in the near future to be more in line with the style guide.
+
+Assignment 4
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Generalize the ``computeLocalScore`` function in your file.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/first_steps/solution_4.cpp
+
+From Object-Oriented Programming to SeqAn
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+There is another huge advantage of using templates: we can specialize a function without touching the existing function.
+In our working example it might be more appropriate to treat ``AminoAcid`` sequences differently.
+As you probably know, there is a similarity relation on amino acids: Certain amino acids are more similar to each other, than others.
+Therefore we want to score different kinds of mismatches differently.
+In order to take this into consideration we simple write a ``computeLocalScore()`` function for ``AminoAcid`` strings.
+In the future whenever 'computerScore' is called always the version above is used unless the second argument is of type String.
+Note that the second template argument was removed since we are using the specific type String-AminoAcid.
+
+.. code-block:: cpp
+
+   template <typename TText>
+   int computeLocalScore(TText const & subText, seqan::String<seqan::AminoAcid> const & pattern)
+   {
+       int localScore = 0;
+       for (unsigned i = 0; i < seqan::length(pattern); ++i)
+           localScore += seqan::score(seqan::Blosum62(), subText[i], pattern[i]);
+
+       return localScore;
+   }
+
+In order to score a mismatch we use the function ``score()`` from the SeqAn library.
+Note that we use the :dox:`Blosum62` matrix as a similarity measure.
+When looking into the documentation of :dox:`Score#score` you will notice that the score function requires a argument of type :dox:`Score`.
+This object tells the function how to compare two letters and there are several types of scoring schemes available in SeqAn (of course, you can extend this with your own).
+In addition, because they are so frequently used there are shortcuts as well.
+For example :dox:`Blosum62` is really a **shortcut** for ``Score<int, ScoreMatrix<AminoAcid, Blosum62_> >``, which is obviously very helpful.
+Other shortcuts are ``DnaString`` for ``String<Dna>`` (:ref:`sequence tutorial <tutorial-sequences>`), ``CharString`` for ``String<char>``, ...
+
+.. tip::
+
+   Template Subclassing
+
+   The main idea of template subclassing is to exploit the C++ template matching mechanism.
+   For example, in the following code, the function calls (1) and (3) will call the function ``myFunction()`` in variant (A) while the function call (2) will call variant (B).
+
+   .. code-block:: cpp
+
+      struct SpecA;
+      struct SpecB;
+      struct SpecC;
+
+      template <typename TAlphabet, typename TSpec>
+      class String<TAlphabet, TSpec>;
+
+      template <typename TAlphabet, typename TSpec>
+      void myFunction(String<TAlphabet, TSpec> const & str);  // Variant (A)
+
+      template <typename TAlphabet>
+      void myFunction(String<TAlphabet, SpecB> const & str);  // Variant (B)
+
+      // ...
+
+      int main()
+      {
+          String<char, SpecA> a;
+          String<char, SpecB> b;
+          String<char, SpecC> c;
+
+          myFunction(a);            // calls (A)
+          myFunction(b);            // calls (B)
+          myFunction(c);            // calls (A)
+      }
+
+For a detailed description and more examples see the tutorial :ref:`Template Subclassing <tutorial-template-subclassing>`.
+
+Assignment 5
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Provide a generic print function which is used when the input type is not ``String<int>``.
+
+   Hint
+     Keep your current implementation and add a second function.
+     Don't forget to make both template functions.
+     Include ``<seqan/score.h>`` as well.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/first_steps/solution_5.cpp
+
+Tags in SeqAn
+~~~~~~~~~~~~~
+
+Sometimes you will see something like this:
+
+.. code-block:: cpp
+
+   globalAlignment(align, seqan::MyersHirschberg())
+
+Having a closer look you will notice that there is a default constructor call (``MyersHirschberg()`` ) within a function call.
+Using this mechanism one can specify which function to call at compile time.
+The ``MyersHirschberg()`` `` is only a tag to determine which specialisation of the ``globalAligment`` function to call.
+
+**If you want more information on tags then read on** otherwise you are now ready to explore SeqAn in more detail and continue with one of the other tutorials.
+
+There is another use case of templates and function specialization.
+
+This might be useful in a ``print()`` function, for example.
+In some scenarios, we only want to print the position where the maximal similarity between pattern and text is found.
+In other cases, we might want to print the similarities of all positions.
+In SeqAn, we use **tag-based dispatching** to realize this.
+Here, the type of the **tag** holds the specialization information.
+
+.. tip::
+
+   Tag-Based Dispatching
+
+   You will often see **tags** in SeqAn code, e.g. ``Standard()``.
+   These are parameters to functions that are passed as const-references.
+   They are not passed for their values but for their type only.
+   This way, we can select different specializations at **compile time** in a way that plays nicely together with metafunctions, template specializations, and an advanced technique called [[Tutorial/BasicTechniques| metaprogramming]].
+
+   Consider the following example:
+
+   .. code-block:: cpp
+
+      struct TagA {};
+      struct TagB {};
+
+      void myFunction(TagA const &);  // (1)
+      void myFunction(TagB const &);  // (2)
+
+      int main()
+      {
+          myFunction(TagA());  // (3)
+          myFunction(TagB());  // (4)
+          return 0;
+      }
+
+   The function call in line (3) will call ``myFunction()`` in the variant in line (1).
+   The function call in line (4) will call ``myFunction()`` in the variant in line (2).
+
+The code for the two different ``print()`` functions mentioned above could look like this:
+
+.. code-block:: cpp
+
+   #include <iostream>
+   #include <seqan/sequence.h>
+   #include <seqan/score.h>
+
+   template <typename TText, typename TSpec>
+   void print(TText const & text, TSpec const & /*tag*/)
+   {
+       for (unsigned i = 0; i < seqan::length(text); ++i)
+           std::cout << text[i] << " ";
+       std::cout << std::endl;
+   }
+
+   struct MaxOnly {};
+
+   template <typename TText>
+   void print(TText const & score, MaxOnly const & /*tag*/)
+   {
+       int maxScore = score[0];
+       seqan::String<int> output;
+       appendValue(output, 0);
+       for (unsigned i = 1; i < seqan::length(score); ++i)
+       {
+           if (score[i] > maxScore)
+           {
+               maxScore = score[i];
+               clear(output);
+               resize(output, 1, i);
+           }
+           else if (score[i] == maxScore)
+           {
+               appendValue(output, i);
+           }
+       }
+
+       for (unsigned i = 0; i < seqan::length(output); ++i)
+           std::cout << output[i] << " ";
+       std::cout << std::endl;
+   }
+
+If we call ``print()`` with something different than ``MaxOnly`` then we print all the positions with their similarity, because the generic template function accepts anything as the template argument.
+On the other hand, if we call print with ``MaxOnly`` only the positions with the maximum similarity as well as the maximal similarity will be shown.
+
+Assignment 6
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Provide a print function that prints pairs of positions and their score if the score is greater than 0.
+
+   Hints
+     SeqAn provides a data type :dox:`Pair`.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/first_steps/solution_6.cpp
+
+Obviously this is only a toy example in which we could have named the two ``print()`` functions differently.
+However, often this is not the case when the programs become more complex.
+Because SeqAn is very generic we do not know the datatypes of template functions in advance.
+This would pose a problem because the function call of function ``b()`` in function ``a()`` may depend on the data types of the template arguments of function ``a()``.
+
+The Final Result
+~~~~~~~~~~~~~~~~
+
+Don't worry if you have not fully understood the last section.
+If you have -- perfect.
+In any case the take home message is that you use data types for class specializations and if you see a line of code in which the default constructor is written in a function call this typical means that the data type is important to distinct between different function implementations.
+
+Now you are ready to explore more of the SeqAn library.
+There are several tutorials which will teach you how to use the different SeqAn data structures and algorithms.
+Below you find the complete code for our example with the corresponding output.
+
+.. includefrags:: demos/tutorial/first_steps/final_result.cpp
+   :fragment: result
diff --git a/manual/source/Tutorial/FragmentStore.rst b/manual/source/Tutorial/FragmentStore.rst
index 8bddf85..a931c38 100644
--- a/manual/source/Tutorial/FragmentStore.rst
+++ b/manual/source/Tutorial/FragmentStore.rst
@@ -115,19 +115,57 @@ Therefore first a stairs layout of the reads must be computed via :dox:`AlignedR
 The function :dox:`AlignedReadLayout#printAlignment` can then be used to output a window (beginPos,endPos,firstLine,lastLine) of the read alignment against a contig either to a stream or ``SVGFile``.
 The following small example demonstrates how to first load two contigs from a Fasta file and then import a read alignment given in SAM format:
 
-.. includefrags:: demos/tutorial/fragment_store/display_aligned_reads.cpp
+.. includefrags:: demos/tutorial/store/store_diplay_aligned_reads.cpp
    :fragment: includes
 
 Then we create a stairs layout of the aligned reads and output a window from gapped position 0 to 150 and line 0 to 36 of the multiple alignments below contig 1 to standard out.
 
-.. includefrags:: demos/tutorial/fragment_store/display_aligned_reads.cpp
+.. includefrags:: demos/tutorial/store/store_diplay_aligned_reads.cpp
    :fragment: ascii
 
-.. includefrags:: demos/tutorial/fragment_store/display_aligned_reads.cpp.stdout
+.. code-block:: console
+
+   TTCAAATGAACTTCTGTAATTGAAAAATTCATTTAAGAAATTACAAAATATAGTTGAAAGCTCTAACAATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGAATTAACCCAGTCAGACAAAAATAAA
+   TTCAAATGAACTTCTGTAATTGAAAAATTCATTTAA  AATTACAAAATATAGTTGAAAGCTCTAACAATAGA   AACCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGA  AGTCTCTTATGAATTAACCCAGTCAGACAAAAATA A
+   TTCAAATGAACTTCTGTAATTGAAAAATTCATTTA GAAATTACAAAATATAGTTGAAAGCTCTAACAATA ACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTTG AGACAAGTCTCTTATGAATTAACCCAGTCAGACAA    AAA
+   ttcaaatgaacttctgtaattgaaaaattcattta GAAATTACAAAATATAGTTGAAAGCTCTAACAATAG    AACCAAGCAGAAGAAAGAGGCTCAGAACTTGAAGA  AGTCTCTTATGAATTAACCCAGTCAGACAAAAATA A
+    TCAAATGAACTTCTGTAATTGAAAAATTCATTTAA   ATTACAAAATATAGTTGAAAGATCTAACAATAGAC    CCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAA     TTATGAATTAACCCAGTCAGACAAAAATAAA
+       AATGAACTTCTGTAATTGAAAAATTCATTTAAGAA TTACAAAATATAGTTGAAAGCTCTAACAATAGACT     AAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAAG     TATGAATTAACCCAGTCAGACAAAAATAAA
+        ATGAACTTCTGTAATTGAAAAATTCATTTAAGAAA  ACAAAATATAGTTGAAAGCTCTAACAATAGACTAA     GCAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTC    ATGAATTAACCAAGTCAGACAAAAATAAA
+        ATGAACTTCTGTAATTGAAAAATTCATTTAAGAAA  ACAAAATATAGTTGAAAGCTCTAACAATAGACTAA      CAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTCT    TGAATTAACCCAGTCAGACAAAAATAAA
+        ATGAACTTCTGTAATTGAAAAATTCATTTAAGAAA  ACAAAATATAGTTGAAAGCTCTAACAATAGACTAA      CAGAAGAAAGAGGTTCANANNNTGANGACAAGTCT    TGAATTAACCCAGTCAGACAAAAATAAA
+         TGAACTTCTGTAATTGAAAAATTCATTTAAGAAATT CAAAATATAGTTGAAAGCTCTAACAATAGACTAAA       GAAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCT   GAATTAACCCAGTCAGACAAAAANNAA
+         TGAACTTCTGTAATTGAAAAATTCATTTAAGAAAT   AAAATATAGTTGAAAGCTCTAACAATAGACTAAAC       AAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCGT  GAATTAACCCAGTCAGACAAAAATAAA
+         TGAACTTCTGTAATTGAAAAATTCATTTAAGAAAT   AAAATATAGTTGAAAGCTCTAACAATAGACTAAAC       AAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCTT   AATTAACCCAGTCAGACAAAAATAAA
+         TGAACTTCTGTAATTGAAAAATTCATTTAAGAAAT    AAATATAGTTGAAAGCTCTAACAATAGACTAAACC        GAAAGAGGTTCAGAACTTGAAGACAAGTCTCTTATG                       AAA
+          GAACTTCTGTAATTGAAAAATTCATTTAAGAAATT   AAATATAGTTGAAAGCTCTAACAATAGACTAAACC          AAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGA
+          GAACTTCTGTAATTGAAAAATTCATTTAAGAAATT    AATATAGTTGAAAGCTCTAACAATAGACTAAACCAA        AAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGA
+             CTTCTGTAATTGAAAAATTCATTTAAGAAATTACA  ATATAGTTGAAAGCTCTAACAATAGACTAAACCAA          GAGGTTCAGAACTTGAAGACAAGTCTCTTATGAAT
+              TTCTGTAATTGAAAAATTCATTTAAGAAATTACAA   ATAGTTGAAAGCTCTAACAATAGACTAAACCAAGC        GAGGTTCAGAACTTGAAGACAAGTCTCTTATGAAT
+                  GTAATTGAAAAATTCATTTAAGAAATTACAAAATA AGTTGAAAGCTCTAACAATAGACTAAACCAAGCAG       AGGTTCAGAACTTGAAGACAAGTCTCTTATGAATT
+                   TAATTGAAAAATTCATTTAAGAAATTACAAAATAT  TTGAAAGCTCTAACAATAGACTAAACCAAGCAGAA      GGTTCAGAACTTGAAGACAAGTCTCTTATGAATTA
+                    AATTGAAAAATTCATTTAAGAAATTACAAAATATA   GAAAGCTCTAACAATAGACTAAACCAAGCAGAAGAAAGAG TTCAGAACTTGAAGACAAGTCTCTTATGAATTAAC
+                          AAAATTCATTTAAGAAATTACAAAATATAGTTGAA    CTAACAATAGACTAAACCAAGCAGAAGAAAGAGTT      CTTGAAGACAAGTCTCTTATGAATTAACCCAGTCA
+                           AAATTCATTTAAGAAATTACAAAATATAGTTGAAA   CTAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT      TTGAAGACAAGTCTCTTATGAATTAACCCAGTCAG
+                            AATTCATTTAAGAAATTACAAAATATAGTTGAAAG   TAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT       TGAAGACAAGTCTCTTATGAATTAACCCAGTCAGA
+                                CATTTAAGAAATTACAAAATATAGTTGAAAGCTCT ACAATAGACTAAACCAAGCAGAAGAAAGAGGTTCA     TGAAGACAAGTCTCTTATGAATTAACCCAGTCAGACAAAA
+                                   TTAAGAAATTACAAAATATAGTTGAAAGCTCTAAC    GACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTT AAGACAAGTCTCTTATGAATTAACCCAGTCAGACA
+                                    TAAGAAATTACAAAATATAGTTGAAAGCTCTAACAATAGA                     GGTTCAGAACTTGAAGACAAGTCTCTTATGAATTA
+                                           TTACAAAATATAGTTGAAAGCTCTAACAATAGACT                   GGTTCAGAACTTGAAGACAAGTCTCTTATGAATTA
+                                                    ATAGTTGAAAGCTCTAACAATAGACTAAACCAAGC           GTTCAGAACTTGAAGACAAGTCTCTTATGAATTAAC
+                                                           AAAGCTCTAACAATAGACTAAACCAAGCAGAAGAA      TCAGAACTTGAAGACAAGTCTCTTATGAATTAACC
+                                                           AAAGCTCTAACAATAGACTAAACCAAGCAGAAGAA               NAAGACAAGTCTCTTATGAATTAACCCAGTCAGACA
+                                                            AAGCTCTAACAATAGACTAAACCAAGCAGAAGAAA              GAAGACAAGTCTCTTATGAATTAACCCAGTCAGAC
+                                                                  TAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT               AGTCTCTTATGAATTAACCCAGTCAGACAAAAATA
+                                                                  TAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT                GTCTCTTATGAATTAACCCAGTCAGACAAAAATAA
+                                                                   AACAATAGACTAAACCAAGCAGAAGAAAGAGGTTC
+                                                                   AACAATAGACTAAACCAAGCAGAAGAAAGAGGTTC
+                                                                      AATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGA
+                                                                      AATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGA
 
 The same window can also be exported as a scalable vector graphic in SVG format (supported by Browsers, Inkscape; see :download:`original file <ReadLayout.svg>`]):
 
-.. includefrags:: demos/tutorial/fragment_store/display_aligned_reads.cpp
+.. includefrags:: demos/tutorial/store/store_diplay_aligned_reads.cpp
    :fragment: svg
 
 .. figure:: ReadLayout.png
@@ -143,7 +181,7 @@ In the next step, we want to access several pairwise alignments between reads an
 Therefore we first need to get the associated types that the Fragment Store uses to store contig and read sequences and gaps.
 This can be done by the following typedefs:
 
-.. includefrags:: demos/tutorial/fragment_store/access_aligned_reads.cpp
+.. includefrags:: demos/tutorial/store/store_access_aligned_reads.cpp
    :fragment: typedefs
 
 Now we want to extract and output the alignments from the :dox:`FragmentStore::alignedReadStore` at position 140,144,...,156.
@@ -160,10 +198,30 @@ After that we output both alignment rows.
    The :dox:`Gaps` contains two :dox:`Holder` references to the sequence and the inserted gaps.
    In our example these Holders are dependent and changes made to the Gaps object like the insertion/deletion of gaps would immediatly be persistent in the Fragment Store.
 
-.. includefrags:: demos/tutorial/fragment_store/access_aligned_reads.cpp
+.. includefrags:: demos/tutorial/store/store_access_aligned_reads.cpp
    :fragment: output
 
-.. includefrags:: demos/tutorial/fragment_store/access_aligned_reads.cpp.stdout
+.. code-block:: console
+
+   ALIGNMENT 140
+     contig 0:	CTGTGTTTAGTGCCTTTGTTCA-----ACCCCCTTGCAAC     	[266..306[
+     read 149:	CTGTGTTTAGTGCCTTTGTTCA-----ACCCCCTTGCAAC
+
+   ALIGNMENT 144
+     contig 0:	AGTGCCTTTGTTCA-----ACCCCCTTGCAACAACC     	[274..310[
+     read 153:	AGTGCCTTTGTTCACATAGACCCCCTTGCAACAACC
+
+   ALIGNMENT 148
+     contig 0:	TTCA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGG     	[284..324[
+     read 157:	ATAG-----ACCCCCTTGCAACAACCTTGAGAACCCCAGG
+
+   ALIGNMENT 152
+     contig 0:	CA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGGGA     	[286..326[
+     read 161:	CA-----ACCCCCTTGCAACAACCTTGCGAACCCCAGGGA
+
+   ALIGNMENT 156
+     contig 0:	CCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT     	[294..329[
+     read 165:	CCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT
 
 Assignment 1
 """"""""""""
@@ -188,19 +246,39 @@ Assignment 1
 
         As we copy the read sequence, it suffices to change the type of the target string readSeq and the sequence type of the read :dox:`Gaps` object into CharString, i.e. a :dox:`String` of ``char``.
 
-        .. includefrags:: demos/tutorial/fragment_store/access_aligned_reads2.cpp
+        .. includefrags:: demos/tutorial/store/store_access_aligned_reads2.cpp
            :fragment: typedefs
 
         Then, we not only need to reverse-complement readSeq if the read aligns to the reverse strand (``endPos < beginPos``) but also need to convert its letters into lower-case.
         Therefor SeqAn provides the function :dox:`toLower`.
         Alternatively, we could iterate over readSeq and add ('a'-'A') to its elements.
 
-        .. includefrags:: demos/tutorial/fragment_store/access_aligned_reads2.cpp
+        .. includefrags:: demos/tutorial/store/store_access_aligned_reads2.cpp
            :fragment: output
 
         Running this program results in the following output.
 
-        .. includefrags:: demos/tutorial/fragment_store/access_aligned_reads2.cpp.stdout
+        .. code-block:: console
+
+        ALIGNMENT 140
+          contig 0:	CTGTGTTTAGTGCCTTTGTTCA-----ACCCCCTTGCAAC     	[266..306[
+          read 149:	ctgtgtttagtgcctttgttca-----acccccttgcaac
+
+        ALIGNMENT 144
+          contig 0:	AGTGCCTTTGTTCA-----ACCCCCTTGCAACAACC     	[274..310[
+          read 153:	AGTGCCTTTGTTCACATAGACCCCCTTGCAACAACC
+
+        ALIGNMENT 148
+          contig 0:	TTCA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGG     	[284..324[
+          read 157:	ATAG-----ACCCCCTTGCAACAACCTTGAGAACCCCAGG
+
+        ALIGNMENT 152
+          contig 0:	CA-----ACCCCCTTGCAACAACCTTGAGAACCCCAGGGA     	[286..326[
+          read 161:	CA-----ACCCCCTTGCAACAACCTTGCGAACCCCAGGGA
+
+        ALIGNMENT 156
+          contig 0:	CCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT     	[294..329[
+          read 165:	cccccttgcaacaaccttgagaaccccagggaatt
 
 Gene Annotation
 ^^^^^^^^^^^^^^^
diff --git a/manual/source/Tutorial/GenomeAnnotations.rst b/manual/source/Tutorial/GenomeAnnotations.rst
deleted file mode 100644
index 758d48f..0000000
--- a/manual/source/Tutorial/GenomeAnnotations.rst
+++ /dev/null
@@ -1,315 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-genome-annotations:
-
-Genome Annotations
-------------------
-
-Learning Objective
-  You will learn how to work with annotations in SeqAn.
-  After this tutorial, you will be able to write your own programs using annotations and analyzing them.
-  You will be ready to continue with the :ref:`tutorial-fragment-store` Tutorial, e.g. if you want to combine your annotations with information from alignments.
-
-Difficulty
-  Average
-
-Duration
-  1 h
-
-Prerequisites
-  :ref:`tutorial-sequences`, :ref:`tutorial-iterators`
-
-This tutorial will present SeqAn's efficient and easy-to-use data structures to work with annotations.
-They allow to annotate genome regions with features like 'gene', 'mRNA', 'exon', 'intron' and if required with custom features.
-We will give you an understanding of how to load annotations from a `GFF <http://genome.ucsc.edu/FAQ/FAQformat.html#format3>`_ or `GTF <http://genome.ucsc.edu/FAQ/FAQformat.html#format4>`_ file, store them in efficient data structures, as well as how to traverse and access these information.
-
-AnnotationStore as Part of the FragmentStore
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This section will give you a short introduction to data structures relevant for working with annotations.
-
-In SeqAn, annotations are stored in the so-called :dox:`FragmentStore::annotationStore`, which is part of the :dox:`FragmentStore`.
-The annotationStore can only be used together with the FragmentStore, because the latter stores additional information, e.g. the contig names or sequences.
-The FragmentStore is a data structure specifically designed for read mapping, genome assembly or gene annotation.
-
-The FragmentStore can be seen as a database, where each table (called "store") is implemented as a :dox:`String`.
-Each row of the table corresponds to an element in the string.
-The position of each element in the string implicitly represents the Id of such element in the table.
-All such strings are members of the class :dox:`FragmentStore`, are always present and empty if unused.
-For example, the member :dox:`FragmentStore::contigStore` is a string of elements, each one containing among others a contig sequence.
-
-For detailed information about the :dox:`FragmentStore` read the :ref:`tutorial-fragment-store` Tutorial.
-
-Accordingly, the :dox:`FragmentStore::annotationStore` is a :dox:`String`, where each element represents one annotation.
-Each element holds the necessary information, e.g. beginPos, endPos, parentId etc., as data members.
-
-.. Like many other stores, the :dox:`FragmentStore::annotationStore` has an associated name store, namely the :dox:`FragmentStore::annotationNameStore`, to store its element names.
-   The name store is a  StringSet that stores the element name at the position of its id.
-
-AnnotationStore
-~~~~~~~~~~~~~~~
-
-In this section you will learn how to work with the :dox:`FragmentStore::annotationStore` itself.
-
-Annotations are represented hierarchically by a tree having at least a root node.
-
-A typical annotation tree looks as follows.
-
-.. figure:: AnnotationTree.png
-   :width: 400px
-
-   Annotation tree example
-
-
-The following entity-relationship diagram shows the tables holding store annotations, their relationships and cardinalities.
-
-.. figure:: AnnotationStore.png
-   :width: 600px
-
-   Stores involved in gene annotation
-
-The instantiation of an :dox:`FragmentStore::annotationStore` happens implicitly with the instantiation of a :dox:`FragmentStore`.
-To access the FragmentStore definitions we'll need to include the correct header:
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: INCLUDE
-
-Now we can simply write:
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: SIGNATURE
-
-Loading an Annotation File
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Before we deal with the actual annotation tree, we will first describe how you can easily load annotations from a `GFF <http://genome.ucsc.edu/FAQ/FAQformat.html#format3>`_ or `GTF <http://genome.ucsc.edu/FAQ/FAQformat.html#format4>`_ file into the :dox:`FragmentStore`.
-
-An annotation file can be read from an :dox:`GffFileIn` with the function :dox:`FragmentStore#readRecords`.
-The file extension specifies if we want to read a GFF, GTF or UCSC file.
-The following example shows how to read an GTF file:
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: LOAD
-
-The GFF-reader is also able to detect and read GTF files.
-The UCSC Genome Browser uses two seperate files, the ``kownGene.txt`` and ``knownIsoforms.txt``.
-They must be read by using two different :dox:`UcscFileIn` objects (one for ``knownGene.txt`` and one for ``knownIsoforms.txt``).
-Finally you call :dox:`FragmentStore#readRecords` with both :dox:`UcscFileIn` objects.
-
-.. tip::
-
-    An annotation can be loaded without loading the corresponding contigs.
-
-    In that case empty contigs are created in the contigStore with names given in the annonation.
-    A subsequent call of :dox:`FragmentStore#loadContigs` would load the sequences of these contigs, if they have the same identifier in the contig file.
-
-Traversing the Annotation Tree
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-This section will illustrate how to use iterators to traverse the annotation tree.
-
-The annotation tree can be traversed and accessed with the :dox:`AnnotationTreeIterator AnnotationTree Iterator`.
-Again we use the metafunction `dox:ContainerConcept#Iterator Iterator` to determine the appropriate iterator type for our container.
-A new AnnotationTree iterator can be obtained by calling :dox:`ContainerConcept#begin` with a reference to the :dox:`FragmentStore` and the ``AnnotationTree`` tag:
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: ITERATOR
-
-The AnnotationTree iterator starts at the root node and can be moved to adjacent tree nodes with the functions :dox:`AnnotationTreeIterator#goDown`, :dox:`AnnotationTreeIterator#goUp`, and :dox:`AnnotationTreeIterator#goRight`.
-These functions return a boolean value that indicates whether the iterator could be moved.
-The functions :dox:`AnnotationTreeIterator#isLeaf`, :dox:`AnnotationTreeIterator#isRoot`, :dox:`AnnotationTreeIterator#isLastChild` return the same boolean without moving the iterator.
-With :dox:`AnnotationTreeIterator#goRoot` or :dox:`AnnotationTreeIterator#goTo` the iterator can be moved to the root node or an arbitrary node given its annotationId.
-If the iterator should not be moved but a new iterator at an adjacent node is required, the functions :dox:`AnnotationTreeIterator#nodeDown`, :dox:`AnnotationTreeIterator#nodeUp`, :dox:`AnnotationTreeIterator#nodeRight` can be used.
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: MOVE
-
-The AnnotationTree iterator supports a preorder DFS traversal and therefore can also be used in typical begin-end loops with the functions :dox:`RootedRandomAccessIteratorConcept#goBegin` (== :dox:`AnnotationTreeIterator#goRoot`), :dox:`RootedRandomAccessIteratorConcept#goEnd`, :dox:`InputIteratorConcept#goNext`, :dox:`RootedIteratorConcept#atBegin`, :dox:`RootedIteratorConcept#atEnd`.
-During a preorder DFS, the descent into subtree can be skipped by :dox:`AnnotationTreeIterator#goNextRight`, or :dox:`AnnotationTreeIterator#goNextUp` which proceeds with the next sibling or returns to the parent node and proceeds with the next node in preorder DFS.
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: DFS
-
-Asignment 1
-"""""""""""
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Copy the code below, which loads the annotations from a given GTF file into the FragmentStore and initializes an iterator on the AnnotationTree.
-     Download the GTF file :download:`assignment_annotations.gtf <assignment_annotations.gtf>`, whose annotations build an AnnotationTree of the typical structure with gene, mRNA and exon level.
-     Adjust the code to go down to the exon level and iteratate over all children of the first mRNA and count them.
-     Print the result.
-
-     Click **more...** to see the code.
-
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/genome_annotations/assignment_1_hint.cpp
-
-     Hints
-       In the given data the left-most leaf is a child of mRNA and has siblings.
-       You can use the function :dox:`AnnotationTreeIterator#goRight` to traverse over all siblings.
-
-     Solution
-      Click **more...** to see one possible solution.
-
-      .. container:: foldable
-
-         .. includefrags:: demos/tutorial/genome_annotations/assignment_1_solution.cpp
-
-         .. includefrags:: demos/tutorial/genome_annotations/assignment_1_solution.cpp.stdout
-
-
-Assignment 2
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Reuse the code and the GTF file from above.
-     Instead of counting only the children of the first mRNA adjust the code to count the children for each given mRNA.
-     Print the results.
-
-   Hints
-     After you reached the last child of the first mRNA you can use the functions :dox:`InputIteratorConcept#goNext` and :dox:`AnnotationTreeIterator#goDown` to traverse to the next leaf.
-
-   Solution
-     Click **more...** to see one possible solution.
-
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/genome_annotations/assignment_2_solution.cpp
-
-        .. includefrags:: demos/tutorial/genome_annotations/assignment_2_solution.cpp.stdout
-
-
-Accessing the Annotation Tree
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Let us now have a closer look how to access the information stored in the different stores representing the annotation tree.
-
-To access or modify the node an iterator points at, the iterator returns the node's annotationId by the :dox:`IteratorAssociatedTypesConcept#value` function (== ``operator*``).
-With the annotationId the corresponding entry in the annotationStore could be modified manually or by using convenience functions.
-The function :dox:`AnnotationTreeIterator#getAnnotation` returns a reference to the corresponding entry in the annotationStore.
-:dox:`AnnotationTreeIterator#getName` and :dox:`AnnotationTreeIterator#setName` can be used to retrieve or change the identifier of the annotation element.
-As some annotation file formats don't give every annotation a name, the function :dox:`AnnotationTreeIterator#getUniqueName` returns the name if non-empty or generates one using the type and id.
-The name of the parent node in the tree can be determined with :dox:`AnnotationTreeIterator#getParentName`.
-The name of the annotation type, e.g. 'mRNA' or 'exon', can be determined and modified with :dox:`AnnotationTreeIterator#getType` and :dox:`AnnotationTreeIterator#setType`.
-
-Assume we have loaded the file ``example.gtf`` with the following content to the :dox:`FragmentStore` *store* and instantiated the iterator *it* of the corresponding annotation tree.
-
-.. includefrags:: demos/tutorial/genome_annotations/example.gtf
-
-We now want to iterate to the first exon and output a few information:
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: ACCESS
-
-For our example the output would be:
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp.stdout
-    :lines: 5-7
-
-An annotation can not only refer to a region of a contig but also contain additional information given as key-value pairs.
-The value of a key can be retrieved or set by :dox:`AnnotationTreeIterator#getValueByKey` and :dox:`AnnotationTreeIterator#assignValueByKey`.
-The values of a node can be cleared with :dox:`AnnotationTreeIterator#clearValues`.
-
-A new node can be created as first child, last child, or right sibling of the current node with :dox:`AnnotationTreeIterator#createLeftChild`, :dox:`AnnotationTreeIterator#createRightChild`, or :dox:`AnnotationTreeIterator#createSibling`.
-All three functions return an iterator to the newly created node.
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: CREATE
-
-The following list summarizes the functions provided by the AnnotationTree iterator.
-
-:dox:`AnnotationTreeIterator#getAnnotation`, :dox:`IteratorAssociatedTypesConcept#value`
-  Return annotation object/id of current node
-:dox:`AnnotationTreeIterator#getName`, :dox:`AnnotationTreeIterator#setName`, :dox:`AnnotationTreeIterator#getType`, :dox:`AnnotationTreeIterator#setType`
-  Access name or type of current annotation object
-:dox:`AnnotationTreeIterator#getParentName`
-  Access parent name of current annotation object
-:dox:`AnnotationTreeIterator#clearValues clearValue`, :dox:`AnnotationTreeIterator#getValueByKey`, :dox:`AnnotationTreeIterator#assignValueByKey`
-  Access associated values
-:dox:`RootedRandomAccessIteratorConcept#goBegin`, :dox:`RootedRandomAccessIteratorConcept#goEnd`, :dox:`RootedIteratorConcept#atBegin`, :dox:`RootedIteratorConcept#atEnd`
-  Go to or test for begin/end of DFS traversal
-:dox:`InputIteratorConcept#goNext`, :dox:`AnnotationTreeIterator#goNextRight`, :dox:`AnnotationTreeIterator#goNextUp`
-  go next, skip subtree or siblings during DFS traversal
-:dox:`AnnotationTreeIterator#goRoot`, :dox:`AnnotationTreeIterator#goUp`, :dox:`AnnotationTreeIterator#goDown`, :dox:`AnnotationTreeIterator#goRight`
-  Navigate through annotation tree
-:dox:`AnnotationTreeIterator#createLeftChild`, :dox:`AnnotationTreeIterator#createRightChild`, :dox:`AnnotationTreeIterator#createSibling`
-  Create new annotation nodes
-:dox:`AnnotationTreeIterator#isRoot`, :dox:`AnnotationTreeIterator#isLeaf`
-  Test for root/leaf node
-
-Assignment 3
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Application
-
-   Objective
-     Again use the given GTF file :download:`assignment_annotations.gtf <assignment_annotations.gtf>` and create an iterator on the annotation tree.
-     Now iterate to the first node of type "exon" and output the following features:
-
-     #. type
-     #. begin position
-     #. end position
-     #. its Id
-     #. the Id of its parent
-     #. the name of its parent
-
-   Solution
-    Click **more...** to see one possible solution.
-
-    .. container:: foldable
-
-       .. includefrags:: demos/tutorial/genome_annotations/assignment_3_solution.cpp
-
-       .. includefrags:: demos/tutorial/genome_annotations/assignment_3_solution.cpp.stdout
-
-
-Assignment 4
-""""""""""""
-
-.. container:: assignment
-     Type
-       Transfer
-
-     Objective
-       Write a small statistic tool to analyse a given set of annotations.
-
-       #. Load the annotations given in the GTF file :download:`assignment_annotations.gtf <assignment_annotations.gtf>`.
-       #. Output the average number of mRNAs for genes.
-       #. Output the average number of exons for mRNAs.
-       #. Additionally output the average exon length.
-       #. Test your program also on large data, e.g. the annotation of the mouse genome `sim40mio_onlyY.sam.zip <http://ftp.seqan.de/manual_files/seqan-1.4/sim40mio_onlyY.sam.zip>`_ (don't forget to unzip first).
-
-     Solution
-      Click **more...** to see one possible solution.
-
-      .. container:: foldable
-
-         .. includefrags:: demos/tutorial/genome_annotations/assignment_4_solution.cpp
-
-         .. includefrags:: demos/tutorial/genome_annotations/assignment_4_solution.cpp.stdout
-
-
-Write an Annotation File
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-To write an annotation to a file use the function :dox:`FragmentStore#writeRecords`. Note that the format (``Gff()`` or ``Gtf()``) is specified by the file extension.
-
-.. includefrags:: demos/tutorial/genome_annotations/base.cpp
-    :fragment: OUT
diff --git a/manual/source/Tutorial/GettingStarted.rst b/manual/source/Tutorial/GettingStarted.rst
index 7c70a42..7a5d1e9 100644
--- a/manual/source/Tutorial/GettingStarted.rst
+++ b/manual/source/Tutorial/GettingStarted.rst
@@ -6,7 +6,7 @@ Getting Started
 This chapter gives you the necessary steps to get started with SeqAn:
 
 -  Necessary Prerequisites
--  Getting SeqAn from GitHub
+-  Installing SeqAn from Subversion
 -  Creating a first build.
 -  Creating your own first application.
 
diff --git a/manual/source/Tutorial/GffAndGtfIO.rst b/manual/source/Tutorial/GffAndGtfIO.rst
deleted file mode 100644
index f4fe3ef..0000000
--- a/manual/source/Tutorial/GffAndGtfIO.rst
+++ /dev/null
@@ -1,214 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-gff-and-gtf-io:
-
-GFF and GTF I/O
-===============
-
-Learning Objective
-  In this tutorial, you will learn how to read and write GFF and GTF files.
-
-Difficulty
-  Average
-
-Duration
- 45 min
-
-Prerequisites
-  :ref:`tutorial-sequences`, :ref:`tutorial-input-output-overview`, `GFF Format Specification <http://genome.ucsc.edu/FAQ/FAQformat.html#format3>`_
-
-This tutorial shows how to read and write GFF and GTF files using the :dox:`GffFileIn` and :dox:`GffFileOut` classes.
-It starts out with a quick reminder on the structure of GFF and GTF files and will then continue with how to read and write GFF and GTF files.
-
-The GFF and GTF formats are used for annotating genomic intervals (an interval with begin/end position on a contig/chromosome).
-GFF exist in versions 2 and 3 and GTF is sometimes called "GFF 2.5".
-There are specifications for `GFF 2 <http://www.sanger.ac.uk/resources/software/gff/spec.html>`_, `GFF 3 <http://www.sequenceontology.org/gff3.shtml>`_, and `GTF <http://mblab.wustl.edu/GTF22.html>`_ available elsewhere.
-GFF and GTF are TSV-based formats and in general have the same structure.
-The main difference is the underlying system/ontology for the annotation but also smaller differences in the format.
-
-In this tutorial, we will focus on the format GFF 3 since it is the most current one with most complete tool support.
-The information of this tutorial can easily be translated to the other two formats.
-
-The SeqAn module ``gff_io`` allows the reading and writing of the GFF and GTF formats.
-
-.. tip::
-
-    Format Version Support in SeqAn
-
-    :dox:`GffFileIn` allows to read GFF files in version 2 and 3 and GTF files.
-    For writing, :dox:`GffFileOut` supports only GFF 3 and GTF.
-
-GFF Format
-----------
-
-The following is an example of a GFF 3 file:
-
-.. includefrags:: demos/tutorial/gff_and_gtf_io/example.gff
-
-The meaning of the columns are as follows:
-
-seq id (1)
-  Name of the reference sequence.
-
-source (2)
-  Free text field describing the source of the annotation, such as a software (e.g. "Genescan") or a a database (e.g. "Genebank"), "``.``" for none.
-
-type (3)
-  The type of the annotation.
-
-start (4)
-  The 1-based begin position of the annotation.
-
-end (5)
-  The 1-based end position of the annotation.
-
-score (6)
-  The score of the annotation, "``.``" for none.
-
-strand (7)
-  The strand of the annotation, "``+``" and "``-``" for forward and reverse strand, "``.``" for features that are not stranded.
-
-phase (8)
-  Shift of the feature regarding to the reading frame, one of "``0``", "``1``", "``2``", and "``.``" for missing/dont-care.
-
-attributes (9)
-  A list of key/value attributes.
-  For GFF 3, this is a list of ``key=value`` pairs, separated by semicolons (e.g. ``ID=cds00003;Parent=mRNA00003``).
-  For GTF and GFF 2, this is a list of tuples, separated by semicolon.
-  The first entry gives the key, the following entries are values.
-  Strings are generally enclosed in quotes (e.g. ``Target "HBA_HUMAN" 11 55 ; E_value 0.0003``)
-
-.. tip::
-
-   1-based and 0-based positions.
-
-   There are two common ways of specifying intervals.
-
-   #. Start counting positions at 1 and give intervals by the first and last position that are part of the interval (closed intervals).
-      For example, the interval ``[1,000; 2,000]`` starts at character 1,000 and ends at character 2,000 and includes it.
-      This way is natural to non-programmers and used when giving coordinates in GFF files or genome browsers such as UCSC Genome Browser and IGV.
-   #. Start counting positions at 0 and give intervals by the first position that is part of the interval and giving the position behind the last position that is part of the interval.
-      The interval from above would be ``[999; 2,000)`` in this case.
-
-   In text representations, such as GFF and GTF, 1-based closed intervals are used whereas in the internal binary data structures, SeqAn uses 0-based half-open intervals.
-
-A First Working Example
------------------------
-
-The following example shows an example of a program that reads the file with the path ``example.gff`` and prints its contents back to the user on standard output.
-
-.. includefrags:: demos/tutorial/gff_and_gtf_io/example1.cpp
-
-The program first opens a :dox:`GffFileIn` for reading and a :dox:`GffFileOut` for writing.
-The GFF records are read into :dox:`GffRecord` objects which we will focus on below.
-
-Assignment 1
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Reproduction
-
-   Objective
-     Create a file with the sample GFF content from above and adjust the path ``"example.gff"`` to the path to your GFF file (e.g. ``"/path/to/my_example.gff"``).
-
-   Solution
-      .. container:: foldable
-
-         .. includefrags:: demos/tutorial/gff_and_gtf_io/solution1.cpp
-
-
-Accessing the Records
----------------------
-
-The class :dox:`GffRecord` stores one record in a Gff file.
-
-.. code-block:: cpp
-
-   namespace seqan {
-
-   class GffRecord
-   {
-   public:
-       CharString ref;      // reference name
-       __int32 rID;         // index in sequenceNames of GffFile
-       CharString source;   // source free text descriptor
-       CharString type;     // type of the feature
-       __int32 beginPos;    // begin position of the interval
-       __int32 endPos;      // end position of the interval
-       float score;         // score of the annotation
-       char strand;         // the strand
-       char phase;          // one of '0', '1', '2', and '.'
-
-       // The key/value list, split into a list of keys and values.
-       StringSet<CharString> tagNames;
-       StringSet<CharString> tagValues;
-
-       // Returns float value for an invalid score.
-       static float INVALID_SCORE();
-
-       // Constants for marking reference id and position as invalid.
-       static const __int32 INVALID_IDX = -1;
-       static const __int32 INVALID_POS = -1;
-   };
-
-   }  // namespace seqan
-
-The static members ``INVALID_POS``, ``INVALID_REFID`` store sentinel values for marking positions and reference sequence ids as invalid.
-The static funtion ``INVALID_SCORE()`` returns the IEEE float "NaN" value.
-
-Assignment 2
-""""""""""""
-
-.. container:: assignment
-
-   Counting Records
-
-   Type
-     Review
-
-   Objective
-     Change the result of `Assignment 1`_ by counting the number of variants for each chromosome/contig instead of writing out the records.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/gff_and_gtf_io/solution2.cpp
-
-        The output is
-
-        .. includefrags:: demos/tutorial/gff_and_gtf_io/solution2.cpp.stdout
-
-
-Creating a New File
--------------------
-
-Assignment 3
-""""""""""""
-
-.. container:: assignment
-
-   Generating GFF From Scratch
-
-   Type
-     Application
-
-   Objective
-     Write a program that prints the following GFF file.
-     Create ``GffRecord`` objects and write them to a ``GffFileOut`` using ``writeRecord()``.
-
-     .. includefrags::demos/tutorial/gff_and_gtf_io/solution3.cpp.stdcout
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/gff_and_gtf_io/solution3.cpp
-
-Next Steps
-----------
-
-* Continue with the :ref:`tutorial`.
diff --git a/manual/source/Tutorial/GffGtfIO.rst b/manual/source/Tutorial/GffGtfIO.rst
new file mode 100644
index 0000000..e1e8060
--- /dev/null
+++ b/manual/source/Tutorial/GffGtfIO.rst
@@ -0,0 +1,243 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-gff-and-gtf-io:
+
+GFF and GTF I/O
+===============
+
+Learning Objective
+  In this tutorial, you will learn how to read and write GFF and GTF files.
+
+Difficulty
+  Average
+
+Duration
+ 45 min
+
+Prerequisites
+  :ref:`tutorial-sequences`, :ref:`tutorial-input-output-overview`, `GFF Format Specification <http://genome.ucsc.edu/FAQ/FAQformat.html#format3>`_
+
+This tutorial shows how to read and write GFF and GTF files using the :dox:`GffFileIn` and :dox:`GffFileOut` classes.
+It starts out with a quick reminder on the structure of GFF and GTF files and will then continue with how to read and write GFF and GTF files.
+
+The GFF and GTF formats are used for annotating genomic intervals (an interval with begin/end position on a contig/chromosome).
+GFF exist in versions 2 and 3 and GTF is sometimes called "GFF 2.5".
+There are specifications for `GFF 2 <http://www.sanger.ac.uk/resources/software/gff/spec.html>`_, `GFF 3 <http://www.sequenceontology.org/gff3.shtml>`_, and `GTF <http://mblab.wustl.edu/GTF22.html>`_ available elsewhere.
+GFF and GTF are TSV-based formats and in general have the same structure.
+The main difference is the underlying system/ontology for the annotation but also smaller differences in the format.
+
+In this tutorial, we will focus on the format GFF 3 since it is the most current one with most complete tool support.
+The information of this tutorial can easily be translated to the other two formats.
+
+The SeqAn module ``gff_io`` allows the reading and writing of the GFF and GTF formats.
+
+.. tip::
+
+    Format Version Support in SeqAn
+
+    :dox:`GffFileIn` allows to read GFF files in version 2 and 3 and GTF files.
+    For writing, :dox:`GffFileOut` supports only GFF 3 and GTF.
+
+GFF Format
+----------
+
+The following is an example of a GFF 3 file:
+
+::
+
+    ctg123  .   gene    1000    9000    .   +   .   ID=gene00001;Name=EDEN
+    ctg123  .   TF_binding_site 1000    1012    .   +   .   Parent=gene00001
+    ctg123  .   mRNA    1050    9000    .   +   .   ID=mRNA00001;Parent=gene00001
+    ctg123  .   mRNA    1050    9000    .   +   .   ID=mRNA00002;Parent=gene00001
+    ctg123  .   mRNA    1300    9000    .   +   .   ID=mRNA00003;Parent=gene00001
+    ctg123  .   exon    1300    1500    .   +   .   Parent=mRNA00003
+    ctg123  .   exon    1050    1500    .   +   .   Parent=mRNA00001,mRNA00002
+    ctg123  .   exon    3000    3902    .   +   .   Parent=mRNA00001,mRNA00003
+    ctg123  .   exon    5000    5500    .   +   .   Parent=mRNA00001,mRNA00002,mRNA00003
+    ctg123  .   exon    7000    9000    .   +   .   Parent=mRNA00001,mRNA00002,mRNA00003
+    ctg123  .   CDS 1201    1500    .   +   0   ID=cds00001;Parent=mRNA00001
+    ctg123  .   CDS 3000    3902    .   +   0   ID=cds00001;Parent=mRNA00001
+    ctg123  .   CDS 5000    5500    .   +   0   ID=cds00001;Parent=mRNA00001
+    ctg123  .   CDS 7000    7600    .   +   0   ID=cds00001;Parent=mRNA00001
+    ctg123  .   CDS 1201    1500    .   +   0   ID=cds00002;Parent=mRNA00002
+    ctg123  .   CDS 5000    5500    .   +   0   ID=cds00002;Parent=mRNA00002
+    ctg123  .   CDS         7000    7600    .   +   0   ID=cds00002;Parent=mRNA00002
+    ctg123  .   CDS 3301    3902    .   +   0   ID=cds00003;Parent=mRNA00003
+    ctg123  .   CDS         5000    5500    .   +   1   ID=cds00003;Parent=mRNA00003
+    ctg123  .   CDS         7000    7600    .   +   1   ID=cds00003;Parent=mRNA00003
+    ctg123  .   CDS 3391    3902    .   +   0   ID=cds00004;Parent=mRNA00003
+    ctg123  .   CDS         5000    5500    .   +   1   ID=cds00004;Parent=mRNA00003
+    ctg123  .   CDS         7000    7600    .   +   1   ID=cds00004;Parent=mRNA00003
+
+The meaning of the columns are as follows:
+
+seq id (1)
+  Name of the reference sequence.
+
+source (2)
+  Free text field describing the source of the annotation, such as a software (e.g. "Genescan") or a a database (e.g. "Genebank"), "``.``" for none.
+
+type (3)
+  The type of the annotation.
+
+start (4)
+  The 1-based begin position of the annotation.
+
+end (5)
+  The 1-based end position of the annotation.
+
+score (6)
+  The score of the annotation, "``.``" for none.
+
+strand (7)
+  The strand of the annotation, "``+``" and "``-``" for forward and reverse strand, "``.``" for features that are not stranded.
+
+phase (8)
+  Shift of the feature regarding to the reading frame, one of "``0``", "``1``", "``2``", and "``.``" for missing/dont-care.
+
+attributes (9)
+  A list of key/value attributes.
+  For GFF 3, this is a list of ``key=value`` pairs, separated by semicolons (e.g. ``ID=cds00003;Parent=mRNA00003``).
+  For GTF and GFF 2, this is a list of tuples, separated by semicolon.
+  The first entry gives the key, the following entries are values.
+  Strings are generally enclosed in quotes (e.g. ``Target "HBA_HUMAN" 11 55 ; E_value 0.0003``)
+
+.. tip::
+
+   1-based and 0-based positions.
+
+   There are two common ways of specifying intervals.
+
+   #. Start counting positions at 1 and give intervals by the first and last position that are part of the interval (closed intervals).
+      For example, the interval ``[1,000; 2,000]`` starts at character 1,000 and ends at character 2,000 and includes it.
+      This way is natural to non-programmers and used when giving coordinates in GFF files or genome browsers such as UCSC Genome Browser and IGV.
+   #. Start counting positions at 0 and give intervals by the first position that is part of the interval and giving the position behind the last position that is part of the interval.
+      The interval from above would be ``[999; 2,000)`` in this case.
+
+   In text representations, such as GFF and GTF, 1-based closed intervals are used whereas in the internal binary data structures, SeqAn uses 0-based half-open intervals.
+
+A First Working Example
+-----------------------
+
+The following example shows an example of a program that reads the file with the path ``example.gff`` and prints its contents back to the user on standard output.
+
+.. includefrags:: demos/tutorial/gff_io/example1.cpp
+
+The program first opens a :dox:`GffFileIn` for reading and a :dox:`GffFileOut` for writing.
+The GFF records are read into :dox:`GffRecord` objects which we will focus on below.
+
+Assignment 1
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Reproduction
+
+   Objective
+     Create a file with the sample GFF content from above and adjust the path ``"example.gff"`` to the path to your GFF file (e.g. ``"/path/to/my_example.gff"``).
+
+   Solution
+      .. container:: foldable
+
+         .. includefrags:: demos/tutorial/gff_io/solution1.cpp
+
+
+Accessing the Records
+---------------------
+
+The class :dox:`GffRecord` stores one record in a Gff file.
+
+.. code-block:: cpp
+
+   namespace seqan {
+
+   class GffRecord
+   {
+   public:
+       CharString ref;      // reference name
+       __int32 rID;         // index in sequenceNames of GffFile
+       CharString source;   // source free text descriptor
+       CharString type;     // type of the feature
+       __int32 beginPos;    // begin position of the interval
+       __int32 endPos;      // end position of the interval
+       float score;         // score of the annotation
+       char strand;         // the strand
+       char phase;          // one of '0', '1', '2', and '.'
+
+       // The key/value list, split into a list of keys and values.
+       StringSet<CharString> tagNames;
+       StringSet<CharString> tagValues;
+
+       // Returns float value for an invalid score.
+       static float INVALID_SCORE();
+
+       // Constants for marking reference id and position as invalid.
+       static const __int32 INVALID_IDX = -1;
+       static const __int32 INVALID_POS = -1;
+   };
+
+   }  // namespace seqan
+
+The static members ``INVALID_POS``, ``INVALID_REFID`` store sentinel values for marking positions and reference sequence ids as invalid.
+The static funtion ``INVALID_SCORE()`` returns the IEEE float "NaN" value.
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Counting Records
+
+   Type
+     Review
+
+   Objective
+     Change the result of `Assignment 1`_ by counting the number of variants for each chromosome/contig instead of writing out the records.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/gff_io/solution2.cpp
+
+        The output is
+
+        .. code-block:: console
+
+           RECORDS ON CONTIGS
+           ctg123  23
+
+Creating a New File
+-------------------
+
+Assignment 3
+""""""""""""
+
+.. container:: assignment
+
+   Generating GFF From Scratch
+
+   Type
+     Application
+
+   Objective
+     Write a program that prints the following GFF file.
+     Create ``GffRecord`` objects and write them to a ``GffFileOut`` using ``writeRecord()``.
+
+     .. code-block:: console
+
+        ctg123  .   gene    1000    9000    .   +   .   ID=gene00001;Name=EDEN
+        ctg123  .   TF_binding_site 1000    1012    .   +   .   Parent=gene00001
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/gff_io/solution3.cpp
+
+Next Steps
+----------
+
+* Continue with the :ref:`tutorial`.
diff --git a/manual/source/Tutorial/IndexIterators.rst b/manual/source/Tutorial/IndexIterators.rst
index 5417536..7071ce8 100644
--- a/manual/source/Tutorial/IndexIterators.rst
+++ b/manual/source/Tutorial/IndexIterators.rst
@@ -48,12 +48,12 @@ We therefore want to use :dox:`TopDownIterator#goDown` which has an overload to
 
 First we create an index of the text ``"How much wood would a woodchuck chuck?"``
 
-.. includefrags:: demos/tutorial/index_iterators/index_search.cpp
+.. includefrags:: demos/tutorial/index/index_search.cpp
    :fragment: initialization
 
 Afterwards we create the :dox:`TopDownIterator TopDown Iterator` using the metafunction Iterator, which expects two arguments, the type of the container to be iterated and a specialization tag (see the VSTree Iterator hierarchy and the :ref:`tutorial-iterators` Tutorial for more details).
 
-.. includefrags:: demos/tutorial/index_iterators/index_search.cpp
+.. includefrags:: demos/tutorial/index/index_search.cpp
    :fragment: iterator
 
 The main search can then be implemented using the functions :dox:`VSTreeIterator#repLength` and :dox:`VSTreeIterator#representative`.
@@ -62,13 +62,13 @@ The search can now be implemented as follows.
 The algorithm descends the suffix tree along edges beginning with the corresponding pattern character.
 In each step the ``unseen`` edge characters have to be verified.
 
-.. includefrags:: demos/tutorial/index_iterators/index_search.cpp
+.. includefrags:: demos/tutorial/index/index_search.cpp
    :fragment: iteration
 
 If all pattern characters could successfully be compared we end in the topmost node who's leaves point to text positions starting with the pattern.
 Thus, the suffixes represented by this node are the occurrences of our pattern and can be retrieved with :dox:`VSTreeIterator#getOccurrences`.
 
-.. includefrags:: demos/tutorial/index_iterators/index_search.cpp
+.. includefrags:: demos/tutorial/index/index_search.cpp
    :fragment: output
 
 Program output:
@@ -83,7 +83,7 @@ Program output:
 
 Alternatively, we could have used :dox:`TopDownIterator#goDown` to go down the path of a pattern instead single characters:
 
-.. includefrags:: demos/tutorial/index_iterators/index_search2.cpp
+.. includefrags:: demos/tutorial/index/index_search2.cpp
    :fragment: output
 
 .. code-block:: console
@@ -105,7 +105,7 @@ Assignment 1
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/index_iterators/iterator_solution1.cpp
+        .. includefrags:: demos/tutorial/index/iterator_solution1.cpp
 
 	The difference is the format of the positions of the found occurrences.
         Here, we need a :dox:`Pair` to indicate the string within the :dox:`StringSet` and a position within the string.
@@ -170,7 +170,7 @@ Assignment 2
 
          Thus, the DFS walk can be implemented in the following way:
 
-            .. includefrags:: demos/tutorial/index_iterators/iterator_solution2.cpp
+            .. includefrags:: demos/tutorial/index/iterator_solution2.cpp
 
 Assignment 3
 """"""""""""
@@ -190,7 +190,7 @@ Assignment 3
 	We modify the DFS traversal to skip the descent if we walk into a node whose representative is longer than 3.
 	We then proceed to the right and up as long as the representative is longer than 3.
 
-	.. includefrags:: demos/tutorial/index_iterators/index_assignment4.cpp
+	.. includefrags:: demos/tutorial/index/index_assignment4.cpp
 	   :fragment: iteration
 
 	.. code-block:: console
@@ -234,18 +234,18 @@ Since these traversals are frequently needed SeqAn provides special iterators wh
 We want to construct the suffix tree of the string "abracadabra" and output the substrings represented by tree nodes in preorder dfs.
 In order to do so, we create the string "abracadabra" and an index specialized with the type of this string.
 
-.. includefrags:: demos/tutorial/index_iterators/index_preorder.cpp
+.. includefrags:: demos/tutorial/index/index_preorder.cpp
    :fragment: includes
 
 The :dox:`StringTreeConcept#Iterator` metafunction expects two arguments, the type of the container to be iterated and a specialization tag, as described earlier.
 In this example we chose a :dox:`TopDownHistoryIterator TopDown History Iterator` whose signature in the second template argument is ``TopDown< ParentLinks<Preorder> >``.
 
-.. includefrags:: demos/tutorial/index_iterators/index_preorder.cpp
+.. includefrags:: demos/tutorial/index/index_preorder.cpp
    :fragment: initialization
 
 As all DFS suffix tree iterators implement the :dox:`VSTreeIterator VSTree Iterator`, they can be used via :dox:`VSTreeIterator#goNext`, :dox:`VSTreeIterator#atEnd`, etc.
 
-.. includefrags:: demos/tutorial/index_iterators/index_preorder.cpp
+.. includefrags:: demos/tutorial/index/index_preorder.cpp
    :fragment: iteration
 
 Program output:
@@ -306,20 +306,20 @@ Assignment 4
 	This could also be done by using :dox:`StringConcept#resize` and then assigning the members with ``operator[]``.
 	The first template argument of the index class has to be adapted and is now a StringSet.
 
-	.. includefrags:: demos/tutorial/index_iterators/index_assignment1.cpp
+	.. includefrags:: demos/tutorial/index/index_assignment1.cpp
 	   :fragment: initialization
 
 	To switch to postorder DFS we have two change the specialization tag of ``ParentLinks`` from ``Preorder`` to ``Postorder``.
 	Please note that the :dox:`TopDownHistoryIterator` always starts in the root node, which is the last postorder DFS node.
 	Therefore, the iterator has to be set explicitly to the first DFS node via :dox:`VSTreeIterator#goBegin`.
 
-	.. includefrags:: demos/tutorial/index_iterators/index_assignment1.cpp
+	.. includefrags:: demos/tutorial/index/index_assignment1.cpp
 	   :fragment: iteration1
 
 	Alternatively to a :dox:`TopDownHistoryIterator` you also could have used a :dox:`BottomUpIterator` with the same result.
 	The BottomUp Iterator automatically starts in the first DFS node as it supports no random access.
 
-	.. includefrags:: demos/tutorial/index_iterators/index_assignment1.cpp
+	.. includefrags:: demos/tutorial/index/index_assignment1.cpp
 	   :fragment: iteration2
 
 	Program output:
@@ -401,7 +401,7 @@ Assignment 5
 
 	Again, we start to create a :dox:`StringSet` of :dox:`CharString` and append the 2 strings.
 
-	.. includefrags:: demos/tutorial/index_iterators/index_assignment2.cpp
+	.. includefrags:: demos/tutorial/index/index_assignment2.cpp
 	   :fragment: initialization
 
 	After that we simply use the predefined iterator for searching MUMs, the :dox:`MumsIterator`.
@@ -410,7 +410,7 @@ Assignment 5
 	The iterator will halt in every node that is a MUM of the minimum length.
 	The corresponding match is the node's :dox:`VSTreeIterator#representative`.
 
-	.. includefrags:: demos/tutorial/index_iterators/index_assignment2.cpp
+	.. includefrags:: demos/tutorial/index/index_assignment2.cpp
 	   :fragment: iteration
 
 	Program output:
@@ -464,7 +464,7 @@ It is recommended to call :dox:`StringTreeConcept#resizeVertexMap` prior to ever
 The following example iterates over all nodes in preorder dfs and recursively assigns the node depth to each node.
 First we create a :dox:`String` of ``int`` to store the node depth for each suffix tree node.
 
-.. includefrags:: demos/tutorial/index_iterators/index_property_maps.cpp
+.. includefrags:: demos/tutorial/index/index_property_maps.cpp
    :fragment: initialization
 
 The main loop iterates over all nodes in preorder DFS, i.e. parents are visited prior children.
@@ -472,12 +472,12 @@ The node depth for the root node is 0 and for all other nodes it is the parent n
 The functions :dox:`VSTreeIterator#assignProperty`, :dox:`VSTreeIterator#getProperty` and :dox:`VSTreeIterator#property` must be called with a :dox:`StringTreeConcept#VertexDescriptor`.
 The vertex descriptor of the iterator node is returned by :dox:`VSTreeIterator#value` and the descriptor of the parent node is returned by :dox:`TopDownIterator#nodeUp`.
 
-.. includefrags:: demos/tutorial/index_iterators/index_property_maps.cpp
+.. includefrags:: demos/tutorial/index/index_property_maps.cpp
    :fragment: iteration
 
 At the end we again iterate over all nodes and output the calculated node depth.
 
-.. includefrags:: demos/tutorial/index_iterators/index_property_maps.cpp
+.. includefrags:: demos/tutorial/index/index_property_maps.cpp
    :fragment: output
 
 Program output:
diff --git a/manual/source/Tutorial/IndexQGram.rst b/manual/source/Tutorial/IndexQGram.rst
new file mode 100644
index 0000000..60ebdc5
--- /dev/null
+++ b/manual/source/Tutorial/IndexQGram.rst
@@ -0,0 +1,217 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-q-gram-index:
+
+Q-gram Index
+------------
+
+Learning Objective
+  You will know the features of the q-gram Index, how it can be used for searching and how to access the different fibres.
+
+Difficulty
+  Average
+
+Duration
+  1 h
+
+Prerequisites
+  :ref:`tutorial-sequences`, :ref:`tutorial-iterators`
+
+The Q-gram Index
+~~~~~~~~~~~~~~~~
+
+A q-gram index can be used to efficiently retrieve all occurrences of a certain q-gram in the text.
+It consists of various tables, called fibres (see :ref:`how-to-access-index-fibres`), to retrieve q-gram positions, q-gram counts, etc.
+However, it has no support for suffix tree iterators.
+A q-gram index must be specialized with a :dox:`Shape` type.
+A :dox:`Shape` defines q, the number of characters in a q-gram and possibly gaps between these characters.
+There are different specializations of :dox:`Shape` available:
+
++-----------------------+--------------------+----------------------+
+| Specialization        | Modifiable         | Number of Gaps       |
++=======================+====================+======================+
+| :dox:`UngappedShape`  | \-                 | 0                    |
++-----------------------+--------------------+----------------------+
+| :dox:`SimpleShape`    | \+                 | 0                    |
++-----------------------+--------------------+----------------------+
+| :dox:`OneGappedShape` | \+                 | 0/1                  |
++-----------------------+--------------------+----------------------+
+| :dox:`GappedShape`    | \-                 | any                  |
++-----------------------+--------------------+----------------------+
+| :dox:`GenericShape`   | \+                 | any                  |
++-----------------------+--------------------+----------------------+
+
+* \- *fixed at compile time*, \+ *can be changed at runtime*
+
+Each shape evaluates a gapped or ungapped sequence of q characters to a hash value by the Functions :dox:`Shape#hash`, :dox:`Shape#hashNext`, etc.
+For example, the shape ``1101`` represents a 3-gram with one gap of length 1.
+This shape overlayed with the :dox:`Dna` text ``"GATTACA"`` at the third position corresponds to ``"TT-C"``.
+The function :dox:`Shape#hash` converts this 3-gram into :math:`61 = (\mathbf{3} \cdot 4 + \mathbf{3}) \cdot 4 + 1`.
+4 is the alphabet size in this example (see :dox:`FiniteOrderedAlphabetConcept#ValueSize`).
+
+With :dox:`Shape#hash` and :dox:`Shape#hash hashNext`, we can compute the hash values of arbitrary / adjacent q-grams and a loop that outputs the hash values of all overlapping ungapped 3-grams could look as follows:
+
+.. includefrags:: demos/tutorial/index/index_qgram_hash.cpp
+   :fragment: hash_loop1
+
+Note that the shape not only stores the length and gaps of a q-gram shape but also stores the hash value returned by the last hash/hashNext call.
+This hash value can be retrieved by calling :dox:`Shape#value` on the shape.
+However, one drawback of the example loop above is that the first hash value must be computed with :dox:`Shape#hash` while the hash values of the following overlapping q-grams can more efficiently be computed by :dox:`Shape#hashNext`.
+This complicates the structure of algorithms that need to iterate all hash values, as they have to handle this first hash differently.
+As a remedy, the :dox:`Shape#hashInit` function can be used first and then :dox:`Shape#hashNext` on the first and all following text positions in the same way:
+
+.. includefrags:: demos/tutorial/index/index_qgram_hash.cpp
+   :fragment: hash_loop2
+
+The q-gram index offers different functions to search or count occurrences of q-grams in an indexed text, see :dox:`IndexQGram#getOccurrences`, :dox:`IndexQGram#countOccurrences`.
+A q-gram index over a :dox:`StringSet` stores occurrence positions in the same way as the ESA index and in the same fibre (FibreSA).
+If only the number of q-grams per sequence are needed the QGramCounts and QGramCountsDir fibres can be used.
+They store pairs ``(seqNo, count)``, ``count``>0, for each q-gram that occurs ``counts`` times in sequence number ``seqNo``.
+
+To efficiently retrieve all occurrence positions or all pairs ``(seqNo, count)`` for a given q-gram, these positions or pairs are stored in contiguous blocks (in QGramSA, QGramCounts fibres), called buckets.
+The begin position of bucket i is stored in directory fibres (QGramDir, QGramCountsDir) at position i, the end position is the begin positions of the bucket i+1.
+The default implementation of the :dox:`IndexQGram` index maps q-gram hash values 1-to-1 to bucket numbers.
+For large q or large alphabets the :dox:`OpenAddressingQGramIndex Open Adressing QGram Index` can be more appropriate as its directories are additionally bound by the text length.
+This is realized by a non-trivial mapping from q-gram hashes to bucket numbers that requires an additional fibre (QGramBucketMap).
+
+For more details on q-gram index fibres see :ref:`how-to-access-index-fibres` or :dox:`QGramIndexFibres QGram Index Fibres`.
+
+Example
+~~~~~~~
+
+We want to construct the q-gram index of the string ``"CATGATTACATA"`` and output the occurrences of the ungapped 3-gram ``"CAT"``.
+As 3 is fixed at compile-time and the shape has no gaps we can use a :dox:`UngappedShape` which is the first template argument of :dox:`IndexQGram`, the second template argument of :dox:`Index`.
+Next we create the string ``"CATGATTACATA"`` and specialize the first index template argument with the type of this string.
+The string can be given to the index constructor.
+
+.. includefrags:: demos/tutorial/index/index_qgram.cpp
+   :fragment: initialization
+
+To get all occurrences of a q-gram, we first have to hash it with a shape of the same type as the index shape (we can even use the index shape returned by :dox:`IndexQGram#indexShape`).
+The hash value returned by :dox:`Shape#hash` or :dox:`Shape#hashNext` is also stored in the shape and is used by the function :dox:`IndexQGram#getOccurrences` to retrieve all occurrences of our 3-gram.
+
+.. includefrags:: demos/tutorial/index/index_qgram.cpp
+   :fragment: output
+
+Program output:
+
+.. code-block:: console
+
+   0
+   8
+
+Assignment 1
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Write a program that outputs all occurrences of the gapped q-gram "AT-A" in "CATGATTACATA".
+
+   Solution
+     .. container:: foldable
+
+	Before we can create a :dox:`DnaString` index of "CATGATTACATA", we have to choose an appropriate :dox:`Shape`.
+	Because our shape ``1101`` is known at compile-time and contains only one gap we could choose :dox:`OneGappedShape`, :dox:`GappedShape`, or :dox:`GenericShape` (see the commented-out code).
+	Although the :dox:`GenericShape` could be used for every possible shape, it is a good idea to choose a :dox:`Shape` with restrictions as its :dox:`Shape#hash` functions are more efficient in general.
+
+	.. includefrags:: demos/tutorial/index/index_assignment5.cpp
+	   :fragment: initialization
+
+	Please note that the :dox:`Shape` object that corresponds to the :dox:`IndexQGram` index is empty initially and has to be set by :dox:`Shape#stringToShape` or :dox:`Shape#resize`.
+	This initialization is not necessary for :dox:`Shape` that are defined at compile-time, i.e. :dox:`UngappedShape` and :dox:`GappedShape`.
+	To search for "AT-A" we first have to hash it with the index shape or any other :dox:`Shape` with the same bitmap.
+	The we can use :dox:`IndexQGram#getOccurrences` to output all matches.
+
+	.. includefrags:: demos/tutorial/index/index_assignment5.cpp
+          :fragment: output
+
+	.. tip::
+
+	   Instead of ``length(getOccurrences(...))`` we could have used :dox:`IndexQGram#countOccurrences`.
+	   But beware that :dox:`IndexQGram#countOccurrences` requires only the ``QGram_Dir`` fibre, whereas :dox:`IndexQGram#getOccurrences` requires both ``QGram_Dir`` and  ``QGram_SA``, see :ref:`how-to-access-index-fibres`.
+	   Because ``QGram_SA`` can be much more efficiently constructed during the construction of ``QGram_Dir``, ``QGram_Dir`` would be constructed twice.
+
+	Program output:
+
+	.. code-block:: console
+
+	   1
+	   4
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Create and output a matrix M where M(i,j) is the number of common ungapped 5-grams between sequence i and sequence j for 3 random :dox:`Dna` sequences, each not longer than 200 characters.
+     Optional: Run the matrix calculation twice, once for an :dox:`IndexQGram` and once for an :dox:`OpenAddressingQGramIndex Open Adressing QGram Index` and output the directory sizes (QGram_Dir, QGram_CountsDir fibre).
+
+   Hint
+     A common q-gram that occurs :math:`a` times in one and :math:`b` times in the other sequence counts for :math:`\min(a,b)`.
+
+   Solution
+     .. container:: foldable
+
+        For generating random numbers we use the :dox:`MersenneTwisterRng` which is a specialization of the random number generator class :dox:`Rng`.
+        The random numbers returned by :dox:`Rng#pickRandomNumber` are arbitrary ``unsigned int`` values which we downscale to values between 0 and 3 and convert into :dox:`Dna` characters.
+        The 3 generated strings are of random length and appended to a :dox:`StringSet`.
+        The main algorithmus is encapsulated in a template function ``qgramCounting`` to easily switch between the two :dox:`IndexQGram` specializations.
+
+        .. includefrags:: demos/tutorial/index/index_assignment6.cpp
+           :fragment: initialization
+
+        The main function expects the :dox:`StringSet` and the :dox:`Index` specialization as a tag.
+        First, we define lots of types we need to iterate and access the fibres directly.
+        We then notify the index about the fibres we require.
+        For storing the common q-grams we use a 2-dimensional :dox:`Matrix` object whose lengths have to be set with ``setLength`` for each dimension.
+        The matrix is initialized with zeros by :dox:`Matrix#resize`.
+
+        .. includefrags:: demos/tutorial/index/index_assignment6.cpp
+           :fragment: matrix_init
+
+        The main part of the function iterates over the CountsDir fibre.
+        Each entry in this directory represents a q-gram bucket, a contiguous interval in the Counts fibre storing for every sequence the q-gram occurs in the number of occurrences in pairs (seqNo,count).
+        The interval begin of each bucket is stored in the directory and the interval end is the begin of the next bucket.
+        So the inner loops iterate over all non-empty buckets and two pairs (seqNo1,count1) and (seqNo2,count2) indicate that seqNo1 and seqNo2 have a common q-gram.
+        At the end the matrix can simply be output by shifting it to the ``cout`` stream.
+
+        .. includefrags:: demos/tutorial/index/index_assignment6.cpp
+           :fragment: matrix_calculation
+
+        Please note that the :dox:`OpenAddressingQGramIndex open addressing` q-gram index directories are smaller than the :dox:`IndexQGram` index directories.
+
+        Program output:
+
+        .. code-block:: console
+
+           >Seq0
+           TCATTTTCTCGATGAAAGCGTTGACCCCACATATCGTTAGTACTCTTGTACCCT
+           >Seq1
+           TGATTGTGTAGAAACCGAACTACGGTACCTCCTGTTGGTAGTCACGATAGATTATAAAAGTATGTTCCCACCCTATCGACGAGACTGGCA
+           >Seq2
+           CCTAGGTGTTTGCGGTGTTGGTACGTGCG
+
+           Length of the CountsDir fibre: 1025
+
+           Common 5-mers for Seq_i, Seq_j
+           50	4	0
+           0	86	5
+           0	0	25
+
+           Length of the CountsDir fibre: 259
+
+           Common 5-mers for Seq_i, Seq_j
+           50	4	0
+           0	86	5
+           0	0	25
diff --git a/manual/source/Tutorial/IndexedFastaIO.rst b/manual/source/Tutorial/IndexedFastaIO.rst
index 18339a1..cd5984d 100644
--- a/manual/source/Tutorial/IndexedFastaIO.rst
+++ b/manual/source/Tutorial/IndexedFastaIO.rst
@@ -33,14 +33,14 @@ The module ``<seqan/seq_io.h>`` allows to create and read such ``.fai`` index fi
 
     FASTA/FASTQ Meta Data and Sequence Ids
 
-    FASTA and FASTQ files have one metadata record for each sequence.
+    FASTA and FASTQ files have one meta data record for each sequence.
     This usually contains the sequence name but sometimes a lot of additional information is stored.
-    There is no consensus for the metadata.
+    There is no consensus for the meta data.
 
-    However, it is common to store the sequence identifier (*id*) at the beginning of the metadata field before the first space.
-    The id is unique to the whole file and often identifies the associated sequence uniquely in a database (see section Sequence Identifiers on the `Wikipedia FASTA format <http://en.wikipedia.org/wiki/FASTA_format>`_ page).
+    It is common, however, to store the identifier (*id*) of the sequence at the beginning of the meta data field before the first space.
+    The id is unique to the whole file and often identifies the associate sequence uniquely in a data base (see section Sequence Identifiers on the `Wikipedia FASTA format <http://en.wikipedia.org/wiki/FASTA_format>`_ page).
 
-    While not documented anywhere explicitely, **only the characters up to the first space are used as identifiers** by widely used tools such as `BWA <http://bio-bwa.sourceforge.net/>`_.
+    While not documented anywhere explicitely, **only the characters up to the first space are used as the identifiers** by widely used tools such as `BWA <http://bio-bwa.sourceforge.net/>`_.
     Only the identifier is carried over into files generated from the input files (BWA uses the sequence id from the genome FASTA to identify the contig/chromosome and the read id as the read name in the SAM output).
 
 How Does It Work?
diff --git a/manual/source/Tutorial/Indices.rst b/manual/source/Tutorial/Indices.rst
index f2c68e2..c6afe90 100644
--- a/manual/source/Tutorial/Indices.rst
+++ b/manual/source/Tutorial/Indices.rst
@@ -66,7 +66,7 @@ In contrast, the next code snipped creates a FM index over a set of amino acid s
    appendValue(protein, "GKTVXL");
    appendValue(protein, "XLZ");
 
-   Index<StringSet<String<AminoAcid> >, FMIndex<> > fmIndex(protein);
+   Index<StringSet<String<AminoAcid> >, FMIndex> fmIndex(protein);
 
 Assignment 1
 """"""""""""
@@ -100,7 +100,7 @@ Assignment 1
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/indices/assignment_1.cpp
+        .. includefrags:: demos/tutorial/index/indices_assignment_1.cpp
 
 Index Based Pattern Search (Strings)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -202,7 +202,7 @@ Assignment 2
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/indices/assignment_2.cpp
+        .. includefrags:: demos/tutorial/index/indices_assignment_2.cpp
 
 You might have noticed that we only applied the :dox:`FMIndex` and :dox:`IndexEsa` in the examples.
 The reason for this is that even though everything stated so far is true for the other indices as well, :dox:`IndexWotd` and :dox:`IndexDfi` are more usefull when used with iterators as explained in the tutorial :ref:`tutorial-index-iterators` and the :dox:`IndexQGram` uses :dox:`Shape Shapes` which is also explained in another tutorial.
@@ -304,7 +304,7 @@ In order to change the size type of the suffix array entry we simply have to ove
    struct SAValue<String<Dna> >
    {
        typedef unsigned Type;
-   };
+   }
 
 If your text is a :dox:`StringSet`, then :dox:`SAValue` will return a :dox:`Pair` that can be overloaded in the same way.
 
@@ -314,7 +314,7 @@ If your text is a :dox:`StringSet`, then :dox:`SAValue` will return a :dox:`Pair
    struct SAValue<StringSet<String<Dna> > >
    {
        typedef Pair<unsigned, unsigned> Type;
-   };
+   }
 
 The first type of the pair is used as the type for the index of a string in the string set.
 So if you only have a few strings you could save even more memory like this.
@@ -325,7 +325,7 @@ So if you only have a few strings you could save even more memory like this.
     struct SAValue<StringSet<String<Dna> > >
     {
         typedef Pair<unsigned char, unsigned> Type;
-    };
+    }
 
 
 FMIndex Fibres
diff --git a/manual/source/Tutorial/InputOutputOverview.rst b/manual/source/Tutorial/InputOutputOverview.rst
new file mode 100644
index 0000000..5f9e758
--- /dev/null
+++ b/manual/source/Tutorial/InputOutputOverview.rst
@@ -0,0 +1,227 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-input-output-overview:
+
+File I/O Overview
+=================
+
+Learning Objective
+  This article will give you an overview of the formatted file I/O in SeqAn.
+
+Difficulty
+  Basic
+
+Duration
+  30 min
+
+Prerequisites
+  :ref:`tutorial-sequences`
+
+
+Overview
+--------
+
+Most file formats in bioinformatics are structured as lists of records.
+Often, they start out with a header that itself contains different header records.
+For example, the Binary Sequence Alignment/Map (SAM/BAM) format starts with an header that lists all contigs of the reference sequence.
+The BAM header is followed by a list of BAM alignment records that contain query sequences aligned to some reference contig.
+
+Formatted Files
+"""""""""""""""
+
+SeqAn allows to read or write record-structured files through two types of classes: :dox:`FormattedFileIn` and :dox:`FormattedFileOut`.
+Classes of type :dox:`FormattedFileIn` allow to read files, whereas classes of type :dox:`FormattedFileOut` allow to write files.
+Note how these types of classes **do not allow to read and write the same file at the same time**.
+
+These types of classes provide the following I/O operations on formatted files:
+
+#. open a file given its filename or attach to an existing stream like `std::cin` or `std::cout`;
+#. guess the file format from the file content or filename extension;
+#. access compressed or uncompressed files transparently.
+
+
+.. warning::
+
+    Access to compressed files relies on external libraries.
+    For instance, you need to have zlib installed for reading ``.gz`` files and libbz2 for reading ``.bz2`` files.
+    If you are using Linux or OS X and you followed the :ref:`tutorial-getting-started` tutorial closely, then you should have already installed the necessary libraries.
+    On Windows, you will need to follow :ref:`how-to-install-contribs-on-windows` to get the necessary libraries.
+
+    You can check whether you have installed these libraries by running CMake again.
+    Simply call ``cmake .`` in your build directory.
+    At the end of the output, there will be a section "SeqAn Features".
+    If you can read ``ZLIB - FOUND`` and ``BZIP2 - FOUND`` then you can use zlib and libbz2 in your programs.
+
+
+Basic I/O
+---------
+
+This tutorial shows the basic functionalities provided by any class of type :dox:`FormattedFileIn` or :dox:`FormattedFileOut`.
+In particular, this tutorial adopts the classes :dox:`BamFileIn` and :dox:`BamFileOut` as concrete types.
+The class :dox:`BamFileIn` allows to read files in SAM or BAM format, whereas the class :dox:`BamFileOut` allows to write them.
+Nonetheless, **these functionalities are independent from the particular file format** and thus valid for all record-based file formats supported by SeqAn.
+
+The demo application shown here is a simple BAM to SAM converter.
+
+
+Includes
+""""""""
+
+Support for a specific format comes by including a specific header file.
+In this case, we include the BAM header file:
+
+.. includefrags:: demos/tutorial/base_io/example1.cpp
+   :fragment: include
+
+
+Opening and Closing Files
+"""""""""""""""""""""""""
+
+Classes of type :dox:`FormattedFileIn` and :dox:`FormattedFileOut` allow to :dox:`FormattedFile#open` and :dox:`FormattedFile#close` files.
+
+A file can be opened by passing the filename to the constructor:
+
+.. includefrags:: demos/tutorial/base_io/example1.cpp
+   :fragment: ctor
+
+Alternatively, a file can be opened after construction by calling :dox:`FormattedFile#open`:
+
+.. includefrags:: demos/tutorial/base_io/example1.cpp
+   :fragment: open
+
+Noe that any file is closed *automatically* whenever the :dox:`FormattedFileIn` or :dox:`FormattedFileOut` object goes out of scope.
+Eventually, a file can be closed *manually* by calling :dox:`FormattedFile#close`.
+
+Accessing the Header
+""""""""""""""""""""
+
+To access the header, we need an object representing the format-specific header.
+In this case, we use an object of type :dox:`BamHeader`.
+The content of this object can be ignored for now, it will be covered in the :ref:`tutorial-sam-bam-io` tutorial.
+
+.. includefrags:: demos/tutorial/base_io/example1.cpp
+   :fragment: header
+
+Function :dox:`FormattedFileIn#readHeader` reads the header from the input SAM file and :dox:`FormattedFileOut#writeHeader` writes it to the BAM output file.
+
+Accessing the Records
+"""""""""""""""""""""
+
+Again, to access records, we need an object representing format-specific information.
+In this case, we use an object of type :dox:`BamAlignmentRecord`.
+Each call to :dox:`FormattedFileIn#readRecord` reads one record from the SAM input file and moves the :dox:`BamFileIn` forward.
+Each call to :dox:`FormattedFileOut#writeRecord` writes the record just read to the BAM output files.
+We check the end of the input file by calling :dox:`FormattedFile#atEnd`.
+
+.. includefrags:: demos/tutorial/base_io/example1.cpp
+   :fragment: records
+
+Our small SAM to BAM conversion demo is ready.
+The tool still lacks error handling, reading from standard input and writing to standard output.
+You are now going to add these features.
+
+Error Handling
+--------------
+
+We distinguish between two types of errors: *low-level* file I/O errors and *high-level* file format errors.
+Possible file I/O errors can affect both input and output files.
+Example of errors are: the file permissions forbid a certain operations, the file does not exist, there is a disk reading error, a file being read gets deleted while we are reading from it, or there is a physical error in the hard disk.
+Conversely, file format errors can only affect input files: such errors arise whenever the content of the input file is incorrect or damaged.
+Error handling in SeqAn is implemented by means of exceptions.
+
+I/O Errors
+""""""""""
+
+All :dox:`FormattedFile#FormattedFile FormattedFileIn` and :dox:`FormattedFile#FormattedFile FormattedFileOut` constructors and functions throw exceptions of type :dox:`IOError` to signal *low-level* file I/O errors.
+Therefore, it is sufficient to catch these exceptions to handle I/O errors properly.
+
+There is only one exception to this rule.
+Function :dox:`FormattedFile#open` returns a ``bool`` to indicate whether the file was opened successfully or not.
+
+
+Assignment 1
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Improve the program above to detect file I/O errors.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/base_io/solution1.cpp
+
+
+Format Errors
+"""""""""""""
+
+Classes of types :dox:`FormattedFileIn` throw exceptions of type :dox:`ParseError` to signal *high-level* input file format errors.
+
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Improve the program above to detect file format errors.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/base_io/solution2.cpp
+
+
+Streams
+-------
+
+The :dox:`FormattedFile#FormattedFile FormattedFileIn` and :dox:`FormattedFile#FormattedFile FormattedFileOut` constructors accept not only filenames, but also standard C++ streams, or any other class implementing the :dox:`StreamConcept Stream` concept.
+For instance, you can pass `std::cin` to any :dox:`FormattedFile#FormattedFile FormattedFileIn constructor` and `std::cout` to any :dox:`FormattedFile#FormattedFile FormattedFileOut constructor`.
+
+.. note::
+
+    When writing to `std::cout`, classes of type :dox:`FormattedFileOut` cannot guess the file format from the filename extension.
+    Therefore, the file format has to be specified explicitly by providing a tag, e.g. :dox:`FileFormats#Sam` or :dox:`FileFormats#Bam`.
+
+Assignment 3
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Improve the program above to read from standard input and write to standard output.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/base_io/solution3.cpp
+
+
+Next Steps
+----------
+
+If you want, you can now have a look at the API documentation of the :dox:`FormattedFile` class.
+
+You can now read the tutorials for **already supported file formats**:
+
+* :ref:`tutorial-sequence-io`
+* :ref:`tutorial-sam-bam-io`
+* :ref:`tutorial-vcf-io`
+* :ref:`tutorial-bed-io`
+* :ref:`tutorial-gff-and-gtf-io`
+
+.. COMMENT or, if you want to learn how to develop **support for new file formats** then read the following article:
+    * :ref:`tutorial-custom-io`
diff --git a/manual/source/Tutorial/Iterators.rst b/manual/source/Tutorial/Iterators.rst
index 0b69fe3..3ae1a4b 100644
--- a/manual/source/Tutorial/Iterators.rst
+++ b/manual/source/Tutorial/Iterators.rst
@@ -174,7 +174,7 @@ Assignment 1
 
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/iterators/assignment_1_solution.cpp
+         .. includefrags:: demos/tutorial/iterators/iterators_assignment_1_solution.cpp
 
 Assignment 2
 ^^^^^^^^^^^^
@@ -193,7 +193,7 @@ Assignment 2
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/iterators/assignment_2_solution.cpp
+        .. includefrags:: demos/tutorial/iterators/iterators_assignment_2_solution.cpp
 
 Workshop Assignment 3
 ^^^^^^^^^^^^^^^^^^^^^
@@ -289,7 +289,7 @@ Workshop Assignment 3
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/iterators/assignment_3_workshop_solution.cpp
+        .. includefrags:: demos/tutorial/iterators/iterators_assignment_3_workshop_solution.cpp
 
 Workshop Assignment 4
 ^^^^^^^^^^^^^^^^^^^^^
@@ -300,11 +300,11 @@ Workshop Assignment 4
      Review
 
    Objective
-     Now, use rooted iterators in the example from Workshop Assignment 3.
+     Now, use rooted iterators in the example from Workshop ASsignment 3.
 
    Solution
      Click **more...** to see the solution.
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/iterators/assignment_4_workshop_solution.cpp
+        .. includefrags:: demos/tutorial/iterators/iterators_assignment_4_workshop_solution.cpp
diff --git a/manual/source/Tutorial/JournalSet.rst b/manual/source/Tutorial/JournalSet.rst
new file mode 100644
index 0000000..293effd
--- /dev/null
+++ b/manual/source/Tutorial/JournalSet.rst
@@ -0,0 +1,668 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-data-journaling:
+
+Journaled Set
+=============
+
+Learning Objective
+  This tutorial introduces you to the new data structures Journaled Set and Journaled String.
+  You will learn how to use them and how to exploit these data structures for an efficient analysis, while implementing a native online search.
+
+Difficulty
+  Advanced
+
+Duration
+  2 h
+
+Prerequisites
+  :ref:`tutorial-sequences`, :ref:`tutorial-string-sets`, :ref:`tutorial-iterators`
+
+A typical task in bioinformatics is to find patterns in biological sequences e.g. transcription factors, or to examine different biological traits and the effects of modifications on such traits.
+With the current advances in sequencing technologies, sequences of whole populations have been made available.
+But the time for searching in all these sequences is proportional to the number of sequences searched.
+That's why it is important to find novel strategies to cope with the deluge of sequencing data.
+Since, many biological problems often involve the analysis of sequences of the same species, one effective strategy would be to exploit the similarities of such sequences.
+
+For this special purpose we provide two data structures that are designed to improve the algorithmic tasks.
+The first one is the :dox:`JournaledString` and the second is the :dox:`JournaledSet`.
+
+In this tutorial, we will introduce you to both data structures and implement a simple online search step by step.
+
+Journaled String
+----------------
+
+The :dox:`JournaledString` data structure behaves like a normal :dox:`String` in SeqAn, except that it is composed of two data structures.
+
+#. The first data structure is a :dox:`Holder` which stores a sequence.
+#. The second data structure stores modifications that are made to this particular sequence using a **journal** (see `Journaling Filesystems <http://en.wikipedia.org/wiki/Journaling_file_system>`_ for more information).
+   This journal contains a list of deletions and insertions.
+   The inserted characters are stored in an additional **insertion buffer**.
+
+The advantage of this data structure lies in representing a String as a "patch" to another String.
+The journaled data structure can be modified without loosing the original context.
+We want to show you how to work with these data structures so you can build your own algorithms based on this.
+For this reason we keep the applicational background simple and implement an native online-search algorithm by which we examine different properties of the data structures.
+
+Before we start implementing our online search algorithm, we show you how to work with the Journaled String to learn the basic principles.
+To get access to the Journaled String implementation you have to include the ``<seqan/sequence_journaled.h>`` header file.
+Note that you will need the ``<seqan/file.h>`` too in order to print the sequences.
+
+.. includefrags:: demos/tutorial/data_journaling/example_journal_string_basic.cpp
+   :fragment: main
+
+In the next step we define the Journaled String type.
+A Journaled String is a specialization of the String class and is defined as ``String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> >``.
+The specialization takes two parameters: (1) ``TValue`` defines the alphabet type used for the Journaled String and (2) ``Journaled<>`` selects the Journaled String specialization of the String class.
+
+``Journaled<>`` is further specialized with
+
+* ``THostSpec`` selects the specialization of the underlying host sequence (``Alloc<>`` for [dox:AllocString Alloc String),
+* ``TJournaleSpec`` selects the used implementation to manage the journaled differences (here: ``SortedArray``), and
+* ``TBufferSpec`` selects the used specialization for the internally managed insertion buffer (here: ``Alloc<>`` as well).
+
+In our scenario we use a ``char`` alphabet and [dox:AllocString Alloc String for the host string and the insertion buffer.
+Additionally, we use a ``Sorted Array`` as the model to manage the recorded differences.
+
+We use the metafunction :dox:`HostedConcept#Host` to get the type of the underlying host string used for the Journaled String.
+
+.. includefrags:: demos/tutorial/data_journaling/example_journal_string_basic.cpp
+   :fragment: typedef
+
+Now we can define the variables holding data structures.
+First, we construct our host sequence and after that we construct the Journaled String.
+Then, we set the host sequence using the function :dox:`JournaledString#setHost`.
+Afterwards, we examine the data structure in more detail and print the host sequence the constructed journaled sequence and the nodes of it.
+
+.. includefrags:: demos/tutorial/data_journaling/example_journal_string_basic.cpp
+   :fragment: init
+
+.. tip::
+
+    The Journal
+
+    A node in the Journaled String represents either a part of the host sequence or a part of the insertion buffer.
+    The type of a node is distinguished by the member variable **segmentSource** and can be of value ``SOURCE_ORIGINAL`` to refere to a part in the host or ``SOURCE_PATCH`` to refere to a part in the insertion buffer.
+    A node further consists of three variables which specify the **virtual position**, the **physical position** and the **length** of this part.
+    The **virtual position** gives the relative position of the Journaled String after all modifications before this position have been "virtually" applied.
+    The **physical position** gives the absolute position where this part of the journal maps to either the host sequence or the insertion buffer.
+
+This is followed by modifying our Journaled String.
+We insert the string ``"modified"`` at position ``7`` and delete the suffix ``"sequence"`` at position ``19``.
+Note that position ``19`` refers to the string after the insertion of ``"modified"`` at position ``7``.
+Again we print the host, the journaled sequence and the nodes that represent the modifications to see how our changes affect the host and the journaled sequence.
+
+.. includefrags:: demos/tutorial/data_journaling/example_journal_string_basic.cpp
+   :fragment: modification
+
+All of this is followed by calling :dox:`JournaledString#flatten` on our journeld string.
+This call applies all journaled changes to the host sequence.
+Again we print the sequences to see the effects.
+
+.. includefrags:: demos/tutorial/data_journaling/example_journal_string_basic.cpp
+   :fragment: flatten
+
+Here is the output of our small program.
+
+.. code-block:: console
+
+   After creating the Journaled String:
+   Host: thisisahostsequence
+   Journal: thisisahostsequence
+   Nodes: JournalEntries({segmentSource=1, virtualPosition=0, physicalPosition=0, length=19})
+
+   After modifying the Journaled String:
+   Host: thisisahostsequence
+   Journal: thisisamodifiedhost
+   Nodes: JournalEntries({segmentSource=1, virtualPosition=0, physicalPosition=0, length=7}, {segmentSource=2, virtualPosition=7, physicalPosition=0, length=8}, {segmentSource=1, virtualPosition=15, physicalPosition=7, length=4})
+
+   After flatten the Journaled String:
+   Host: thisisamodifiedhost
+   Journal: thisisamodifiedhost
+   Nodes: JournalEntries({segmentSource=1, virtualPosition=0, physicalPosition=0, length=19})
+
+.. important::
+
+   Be careful when using the :dox:`JournaledString#flatten` function as it modifies the underlying host sequence.
+   This might affect other journaled sequences that share the same host sequence.
+   This becomes important especially when working with Journal Sets where a whole set of sequences is journaled to the same reference.
+
+Journaled Set
+-------------
+
+The :dox:`JournaledSet` is a specialization of the :dox:`StringSet` which can be used exactly as such but also provides some additional functions optimized to work with :dox:`JournaledString JournaledStrings`.
+The general interface is equal to the interface of the StringSet.
+But it also provides some interfaces specialized for the use of Journaled Strings.
+One of these interfaces is the :dox:`JournaledSet#join` function which journales a contained Journaled String to the previously set global reference.
+The following code snippet demonstrates the usage of the Journal Set and how to join a sequence to the previously set reference sequence.
+
+As usual we include the necessary headers.
+We need the header ``<seqan/journal_set.h>`` to get access to the Journal Set.
+Then we define a type for journaled sequences.
+After that we define our Journal Set.
+The Journal Set is a specialization of the :dox:`OwnerStringSet Owner` concept of StringSets and is defined as ``StringSet<TJournalString, Owner<JournaledSet> >``.
+
+.. includefrags:: demos/tutorial/data_journaling/example_join.cpp
+   :fragment: main
+
+In the subsequent steps we want to set a reference sequence to the Journal Set and add some sequences to it.
+We can set the reference sequence by using the function :dox:`JournaledSet#setHost`.
+This function stores only a pointer to the given sequence.
+In some cases it might be necessary to copy the reference sequence instead.
+For this purpose you can use the function :dox:`JournaledSet#createHost`.
+
+.. includefrags:: demos/tutorial/data_journaling/example_join.cpp
+   :fragment: init
+
+Just adding sequences to the Journal Set does not automatically journal them to the global reference sequence of the set.
+One can explicitly trigger this process using the function :dox:`JournaledSet#join`.
+This function takes as parameters the Journal Set and the position of the contained Journaled String which is to be journaled to the reference sequence.
+Thus, the programmer is free in the decision which sequence has to be journaled and which not.
+Furthermore, we can use the :dox:`JoinConfig` object to specify the method that shall be used for the journaling process.
+
+.. includefrags:: demos/tutorial/data_journaling/example_join.cpp
+   :fragment: join
+
+.. tip::
+
+    Configuration of the Join Methods
+
+    The :dox:`JoinConfig` object differentiates two methods in general and each method further differs in the used strategy.
+    The two methods are the :dox:`GlobalAlign` and the :dox:`GlobalChain` method.
+    They differ in the approach of computing the alignment which is necessary to construct the journal.
+    The first method uses a global alignment algorithm while the second one uses an anchor approach in which first exact seeds are found using a q-gram index and after that the optimal chain between the identified anchors is computed.
+    For each method the user can specify a different strategy.
+    The first strategy is triggered by using :dox:`JoinStrategiesTags JournaledManhatten`.
+    This means for the the GlobalAlign method, that the complete sequence is inserted and the complete reference is deleted, while for the GlobalChain methods this means that the gaps between the anchors are connected through the Manhatten distance.
+    The second strategy is specified using the :dox:`JoinStrategiesTags JournaledCompact` tag. It computes the most compact form of a journal by menas of memory requirements.
+
+Here is the output of the program.
+
+.. code-block:: console
+
+   Reference: DPKKPRGKMSSYAFFVQTSREEHKKKHPDASVNFSEFSKKCSERWKTMSAKEKGKFEDMAKADKARYEREMKTYIPPKGE
+   Journaled Sequence 0: DPKKPRGKMVNSPPAFFVQTSREEHKKKHPDASVFSKKCSERWKTMSAKEKGKFEDMAKARYEREMKTTYIPKGETYIPPKGE
+   Journaled Sequence 1: DPHHPPKPRGKMVNSPPAFFVQTSREEHKPDASVFSKKCSERRMPNHHTMSAKEKGKFEDMAKARYEREMKTTYIPKGETYIPPKGE
+   Journaled Sequence 2: DPKKPRGKMSSYAFFVQTSREEHKKKHPKKCDEFSKKCSERWKTMSAKEKGKFEDARYEREMKTYIPPKGE
+
+Implementing an Online-Search
+-----------------------------
+
+Now we have all foundations laid down to implement the online-search algorithm.
+Let us begin with the first assignment where we read in some sequences and use the currently learned things about the Journal Set.
+
+Assignment 1
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Review, Application
+
+   Objective
+     Download the fasta file :download:`sequences.fasta <sequences.fasta>` which contains some DNA sequences.
+     Write a method called ``loadAndJoin`` that gets a Journal Set and a stream file pointing to the downloaded fasta file.
+     The method reads in the sequences one after another using SeqAn's :dox:`SeqFileIn`.
+     The first read sequences is set to the reference sequence.
+     All following sequences are first appended to the StringSet and afterwards joined to the StringSet using a global alignment strategy and the most compact form.
+
+   Hints
+     .. container:: foldable
+
+        You can start using the following code snippet. Replace the path of the iostream such that it points to your path and fill in the missing parts ``A``, ``B`` and ``C`` in the function ``loadAndJoin`` (Altogether, you will need 4 lines of code.).
+
+       .. includefrags:: demos/tutorial/data_journaling/example_online_search_assignment1_hint.cpp
+          :fragment: main
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment1.cpp
+           :fragment: main
+
+Now we have loaded and journaled our sequences and we use the minimal possible memory requirements for our sequences.
+Let's continue and implement the exact online-search on the Journal Set.
+For this purpose we write a function called ``searchPattern`` which takes a StringSet of ``String<int>`` which we use to store each hit for each sequence in the Journal Set including the reference sequence.
+First we have to check whether the reference sequence is set.
+If not we abort the search since we cannot guarantee a correct search when the reference is not set.
+We also have to clear our ``hitSet`` to ensure there remain no phantom hits from previous searches.
+Then we resize it to the number of contained Journaled Strings plus an additional space for the global reference sequence.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: searchPatternPart1
+
+Before we can search for the pattern in the Journaled Strings we have to find all occurrences in the reference sequence.
+Therefore we call the function ``findPatternInReference`` which takes a ``String<int>`` which we use to store the hits, the global reference and the pattern.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: searchPatternPart2
+
+After that we implement the body to search for occurrences in the Journaled Strings.
+Therefore we use ``for``-loop to iterate over all contained sequences and call for each sequence the function ``findPatternInJournalString``.
+The function gets as parameters the corresponding ``String<int>`` from the ``hitSet``, the journaled sequence the pattern and the identified hits in the reference sequence.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: searchPatternPart3
+
+So far our program won't compile. We have to first implement the both functions ``findPatternInReference`` and ``findPatternInJournalString``.
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Implement the function ``findPatternInReference`` using a brute force pattern search algorithm.
+     Store all found hits in the passed ``hits`` variable.
+     Print all occurrences in the end of the ``main`` function.
+
+   Hints
+     .. container:: foldable
+        The following code snippet provides you with the backbone for the search algorithm. Fill in the missing parts ``[A]``, ``[B]``, ``[C]`` and ``[D]``.
+
+        .. includefrags:: demos/tutorial/data_journaling/example_online_search_assignment2_hint.cpp
+           :fragment: findPatternInReferenceHint
+
+   Solution
+     .. container:: foldable
+
+        Here is the solution for this function.
+        Click **more...** below, to see a complete solution of everything we have done so far.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+           :fragment: findPatternInReference
+
+        .. container:: foldable
+
+           Include the necessary headers.
+
+           .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+              :fragment: include
+
+           Implementation of the `findPatternInReference` function.
+
+           .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+              :fragment: findPatternInReference
+
+           Implementation of the `searchPattern` function. Note that we haven't implemented the function `findPatternInJournalString` yet.
+
+           .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+              :fragment: searchPattern
+
+           Implementation of the `loadAndJoin` function.
+
+           .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+              :fragment: loadAndJoin
+
+           Implementation of the `main` function.
+
+           .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+              :fragment: main
+
+           Printing the hits of the reference sequence.
+
+           .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment2.cpp
+              :fragment: printResult
+
+           And here is the result.
+
+           .. code-block:: console
+
+              Search for: GTGGT:
+              Hit in reference  at 311: GTGGT	644: GTGGT
+
+We know can search for all occurrences of a pattern in the reference sequence.
+Now we can try to find all occurrences in the journaled sequences.
+Therefore we implement the function ``findPatternInJournalString``.
+Our function gets the variable ``hitsTarget`` which stores the hits found in the JournaledString.
+It gets the search text and the pattern and finally the hits detected in the reference sequence.
+Instead of searching each position in the Journaled String, we only search in areas that are new to the search.
+This involves all inserted parts and all parts where the pattern crosses a border to another node.
+So instead of iterating over each position we iterate over the nodes of the Journaled String.
+To do so we have to determine the type of the data structure that is used by the Journaled String to manage the nodes.
+We can use the metafunction :dox:`JournaledString#JournalType` for this task.
+Afterwards we define an Iterator over the so called ``TJournalEntries`` data structure.
+
+Again we check first whether the pattern fits into our sequence.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: findPatternInJournalStringPart1
+
+We then iterate over all nodes beginning from the first until we have reached the node in which the pattern reaches the end of the Journaled Sequence.
+The function findInJournalEntries helps us to find the corresponding node.
+We increment the position of the iterator by one such that it points behind the last element which is included by the search.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: findPatternInJournalStringPart2
+
+Now we search in each node until we have reached the end.
+For each node we first check the type of the journaled operation.
+If we are in an "original" node we call the function ``_findInOriginalNode``.
+If we are in a "patch" node we call the function ``_findInPatchNode`` and in the end we call the function ``_searchAtBorder`` which is called for each node type and scans all possible hits at the border of a node.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: findPatternInJournalStringPart3
+
+Let us begin with the implementation of the function ``_findInOriginalNode``.
+In this function we exploit the journaling concept such that we can speed up the search algorithm from :math:`\mathcal{O}(p \cdot n)` to :math:`\mathcal{O}(\log_2(k))`, where :math:`p` is the length of the pattern, :math:`n` is the length of the search text, and ``k`` is the number of hits identified in the reference sequence.
+We need at most :math:`\log_2(k)` comparisons to find the first hit which occurred in the reference sequence that also occurs in the current original node.
+
+Assignment 3
+^^^^^^^^^^^^
+
+.. container:: assignment
+
+   Type
+     Transfer
+
+   Objective
+     Implement the function ``_findInOriginalNode``, which identifies all shared hits between the current ``original`` node and the corresponding part in the reference sequence.
+     Note you do not need to scan all positions again.
+     In the end print all occurrences to the console.
+
+   Hints
+     .. container:: foldable
+       The following code snippet provides you with the backbone for this function.
+       Fill in the missing parts ``[A]``, ``[B]``, ``[C]``, ``[D]`` and ``[E]``.
+
+       Use the STL function `std::upper_bound <http://www.cplusplus.com/reference/algorithm/upper_bound/>`_ to conduct a binary search to find the first possible hit from the reference that is also represented by the current node.
+
+       .. includefrags:: demos/tutorial/data_journaling/example_online_search_assignment3_hint.cpp
+          :fragment: findInOriginalNode
+
+   Solution
+     .. container:: foldable
+
+       Here is the solution to this function.
+       Click **more...** below, to see a complete solution of everything we have done so far.
+
+       .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+          :fragment: findInOriginalNode
+
+       .. container:: foldable
+
+          Include the necessary headers.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+             :fragment: include
+
+          We know implement the method to search for hits in an original node.
+          We only need to check if the current node covers a region of the reference in which we've found a hit.
+          We use the function `std::upper_bound <http://www.cplusplus.com/reference/algorithm/upper_bound/>`_ to find the first element that is greater than the current physical position.
+          Since, we've found an upper bound we have to check additionally if there exists a previous hit that lies directly on the physical begin position of our current node.
+          We then include all hits that fit into this current node until we have found the first position where the pattern would cross the border of this node or we have reached the end of the reference hit set.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: findInOriginalNode
+
+          Implementing the backbone to search for a pattern in the reference string.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: findPatternInJournalString
+
+          Implementing the search within the reference sequence.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: findPatternInReference
+
+          Implementing the backbone of the search.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: searchPattern
+
+          Implement the `laodAndJoin` method.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: loadAndJoin
+
+          Implementing the main method.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: main
+
+          Printing the hits of the reference sequence.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: printResultReference
+
+          Printing the hits of the journaled sequences.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment3.cpp
+            :fragment: printResultJournalSequence
+
+          And here is the result.
+
+          .. code-block:: console
+
+             Search for: GTGGT:
+             Hit in reference  at 311: GTGGT	644: GTGGT
+             Hit in sequence 0 at 312: GTGGT
+             Hit in sequence 1 at 308: GTGGT
+             Hit in sequence 2 at 311: GTGGT
+             Hit in sequence 3 at 327: GTGGT
+             Hit in sequence 4 at 317: GTGGT
+             Hit in sequence 5 at 320: GTGGT
+
+We are almost at the end of our online-search algorithm.
+Let's now implement the method ``_findInPatchNode``.
+We basically had this already implemented when we wrote the search function for the reference. Let's recall this part together.
+
+First we write the body of our function and define now an Iterator over the Journaled String.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: findInPatchNodePart1
+
+We know specify the range in which we are searching for the pattern.
+This range starts at the current physical position of the insertion buffer and ends at the last position of this node where the pattern completely fits.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: findInPatchNodePart2
+
+We need to use a second temporary iterator which is used to compare the current value with the pattern.
+If all positions matches then we report a match at the current virtual position.
+
+.. includefrags:: demos/tutorial/data_journaling/example_online_search.cpp
+   :fragment: findInPatchNodePart3
+
+To ensure that we are not missing any hits we also have to scan the regions where the pattern is leaving the current node.
+You can solve this problem in the next assignment.
+
+Assignment 4
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Review
+
+   Objective
+     Implement the last function ``_searchAtBorder``, which identifies all hits that cross the border of the current node to the next node.
+
+   Hints
+     .. container:: foldable
+
+       The following code snippet provides you with the backbone for this function.
+       Fill in the missing parts ``[A]``, ``[B]``, ``[C]`` and ``[D]``.
+
+       .. includefrags:: demos/tutorial/data_journaling/example_online_search_assignment4_hint.cpp
+          :fragment: searchAtBorder
+
+   Solution
+     .. container:: foldable
+
+        Here is the solution to this function.
+        Click **more...** below, to see a complete solution of everything we have done so far.
+
+       .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+          :fragment: searchAtBorder
+
+       .. container:: foldable
+
+          Include the necessary headers.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: include
+
+          Search at the border the current node for the pattern.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: searchAtBorder
+
+          Search for the pattern in the insertion region covered by the current node.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: findInPatchNode
+
+          Check if hit was reported for this region in the reference sequence.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: findInOriginalNode
+
+          Implementing the backbone of the search for the Journaled String.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: findPatternInJournalStringPart1
+
+          Implementing the search for the reference sequence.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: findPatternInReference
+
+          The backbone of the search method.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: searchPatternPart1
+
+          Loading and joining the sequences.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: loadAndJoin
+
+          Implementing the main function.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: main
+
+          Reporting the identified hits.
+
+          .. includefrags:: demos/tutorial/data_journaling/solution_online_search_assignment4.cpp
+            :fragment: printResult
+
+          And here is the result.
+
+          .. code-block:: console
+
+             Search for: GTGGT:
+             Hit in reference  at 311: GTGGT	644: GTGGT
+             Hit in sequence 0 at 151: GTGGT	312: GTGGT
+             Hit in sequence 1 at 308: GTGGT
+             Hit in sequence 2 at 311: GTGGT	507: GTGGT
+             Hit in sequence 3 at 327: GTGGT
+             Hit in sequence 4 at 307: GTGGT	312: GTGGT	317: GTGGT
+             Hit in sequence 5 at 0: GTGGT	320: GTGGT	986: GTGGT
+
+Congratulations!
+You have just implemented a cool online-search which is speed up by exploiting the parallelism given by the data set.
+And here is the final result.
+
+.. code-block:: console
+
+   Search for: GTGGT:
+   Hit in reference  at 311: GTGGT 644: GTGGT
+   Hit in sequence 0 at 151: GTGGT 312: GTGGT
+   Hit in sequence 1 at 308: GTGGT
+   Hit in sequence 2 at 311: GTGGT 507: GTGGT
+   Hit in sequence 3 at 327: GTGGT
+   Hit in sequence 4 at 307: GTGGT 312: GTGGT  317: GTGGT
+   Hit in sequence 5 at 0: GTGGT   320: GTGGT  986: GTGGT
+
+Assignment 5
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Transfer
+
+   Objective
+     Try to replace the brute force versions using using SeqAn's :dox:`Finder` and :dox:`Pattern` concept.
+     You can find additional material to this topic in the :ref:`tutorial-pattern-matching` Tutorial.
+
+   Solution
+     .. container:: foldable
+
+        Now we want to replace the brute force methods with some cool pattern matching algorithms.
+        Therefore we include the header `<seqan/finder.h>`.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: include
+
+        Now we can use the :dox:`Finder` interface of SeqAn.
+        One cool thing of the usage of the Finder class is that we don't have to check for the borders anymore.
+        This will do the Finder for us.
+        We only have to specify the correct infix over which the Finder should iterate to find the pattern.
+        We first compute the positions that enclose the search region.
+        Afterwards, we get an infix for this region and pass it to the Finder's constructor.
+        We also have to define the :dox:`Pattern` object which gets the pattern we are searching for.
+        Then we can simply call the function :dox:`Finder#find` until we there is no more match.
+        Be careful when storing the position that the Finder is returning.
+        We have to recompute the correct virtual position since we used an infix of the original search text.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: searchAtBorder
+
+        So the biggest change is done.
+        We simply repeat the changes from above and watch to get the correct virtual position.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: findInPatchNodePart1
+
+        Of course we don't need to change anything for the original nodes.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: findInOriginalNode
+
+        Also the function `findPatternInJournalString` remains the same.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: findPatternInJournalString
+
+        We will switch to the Finder concept for the function `findPatternInReference` too.
+        This is done quickly, since we have the basis already laid down in the previous functions.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: findPatternInReference
+
+        From here on, we don't have to change anything.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: searchPatternPart1
+
+        We write the same main body ...
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: laodAndJoin
+
+        and finally print the results.
+
+        .. includefrags:: demos/tutorial/data_journaling/solution_online_search_finder.cpp
+          :fragment: main
+
+        And here is the result using the Finder and Pattern concept of SeqAn.
+
+        .. code-block:: console
+
+           Search for: GTGGT:
+           Hit in reference  at 311: GTGGT	644: GTGGT
+           Hit in sequence 0 at 151: GTGGT	312: GTGGT
+           Hit in sequence 1 at 308: GTGGT
+           Hit in sequence 2 at 311: GTGGT	507: GTGGT
+           Hit in sequence 3 at 327: GTGGT
+           Hit in sequence 4 at 307: GTGGT	312: GTGGT	317: GTGGT
+           Hit in sequence 5 at 0: GTGGT	320: GTGGT	986: GTGGT
diff --git a/manual/source/Tutorial/JournaledSet.rst b/manual/source/Tutorial/JournaledSet.rst
deleted file mode 100644
index fbc2988..0000000
--- a/manual/source/Tutorial/JournaledSet.rst
+++ /dev/null
@@ -1,655 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-data-journaling:
-
-Journaled Set
-=============
-
-Learning Objective
-  This tutorial introduces you to the new data structures Journaled Set and Journaled String.
-  You will learn how to use them and how to exploit these data structures for an efficient analysis, while implementing a native online search.
-
-Difficulty
-  Advanced
-
-Duration
-  2 h
-
-Prerequisites
-  :ref:`tutorial-sequences`, :ref:`tutorial-string-sets`, :ref:`tutorial-iterators`
-
-A typical task in bioinformatics is to find patterns in biological sequences e.g. transcription factors, or to examine different biological traits and the effects of modifications on such traits.
-With the current advances in sequencing technologies, sequences of whole populations have been made available.
-But the time for searching in all these sequences is proportional to the number of sequences searched.
-That's why it is important to find novel strategies to cope with the deluge of sequencing data.
-Since, many biological problems often involve the analysis of sequences of the same species, one effective strategy would be to exploit the similarities of such sequences.
-
-For this special purpose we provide two data structures that are designed to improve the algorithmic tasks.
-The first one is the :dox:`JournaledString` and the second is the :dox:`JournaledSet`.
-
-In this tutorial, we will introduce you to both data structures and implement a simple online search step by step.
-
-Journaled String
-----------------
-
-The :dox:`JournaledString` data structure behaves like a normal :dox:`String` in SeqAn, except that it is composed of two data structures.
-
-#. The first data structure is a :dox:`Holder` which stores a sequence.
-#. The second data structure stores modifications that are made to this particular sequence using a **journal** (see `Journaling Filesystems <http://en.wikipedia.org/wiki/Journaling_file_system>`_ for more information).
-   This journal contains a list of deletions and insertions.
-   The inserted characters are stored in an additional **insertion buffer**.
-
-The advantage of this data structure lies in representing a String as a "patch" to another String.
-The journaled data structure can be modified without loosing the original context.
-We want to show you how to work with these data structures so you can build your own algorithms based on this.
-For this reason we keep the applicational background simple and implement an native online-search algorithm by which we examine different properties of the data structures.
-
-Before we start implementing our online search algorithm, we show you how to work with the Journaled String to learn the basic principles.
-To get access to the Journaled String implementation you have to include the ``<seqan/sequence_journaled.h>`` header file.
-Note that you will need the ``<seqan/file.h>`` too in order to print the sequences.
-
-.. includefrags:: demos/tutorial/journaled_set/example_journal_string_basic.cpp
-   :fragment: main
-
-In the next step we define the Journaled String type.
-A Journaled String is a specialization of the String class and is defined as ``String<TValue, Journaled<THostSpec, TJournalSpec, TBufferSpec> >``.
-The specialization takes two parameters: (1) ``TValue`` defines the alphabet type used for the Journaled String and (2) ``Journaled<>`` selects the Journaled String specialization of the String class.
-
-``Journaled<>`` is further specialized with
-
-* ``THostSpec`` selects the specialization of the underlying host sequence (``Alloc<>`` for [dox:AllocString Alloc String),
-* ``TJournaleSpec`` selects the used implementation to manage the journaled differences (here: ``SortedArray``), and
-* ``TBufferSpec`` selects the used specialization for the internally managed insertion buffer (here: ``Alloc<>`` as well).
-
-In our scenario we use a ``char`` alphabet and [dox:AllocString Alloc String for the host string and the insertion buffer.
-Additionally, we use a ``Sorted Array`` as the model to manage the recorded differences.
-
-We use the metafunction :dox:`HostedConcept#Host` to get the type of the underlying host string used for the Journaled String.
-
-.. includefrags:: demos/tutorial/journaled_set/example_journal_string_basic.cpp
-   :fragment: typedef
-
-Now we can define the variables holding data structures.
-First, we construct our host sequence and after that we construct the Journaled String.
-Then, we set the host sequence using the function :dox:`JournaledString#setHost`.
-Afterwards, we examine the data structure in more detail and print the host sequence the constructed journaled sequence and the nodes of it.
-
-.. includefrags:: demos/tutorial/journaled_set/example_journal_string_basic.cpp
-   :fragment: init
-
-.. tip::
-
-    The Journal
-
-    A node in the Journaled String represents either a part of the host sequence or a part of the insertion buffer.
-    The type of a node is distinguished by the member variable **segmentSource** and can be of value ``SOURCE_ORIGINAL`` to refere to a part in the host or ``SOURCE_PATCH`` to refere to a part in the insertion buffer.
-    A node further consists of three variables which specify the **virtual position**, the **physical position** and the **length** of this part.
-    The **virtual position** gives the relative position of the Journaled String after all modifications before this position have been "virtually" applied.
-    The **physical position** gives the absolute position where this part of the journal maps to either the host sequence or the insertion buffer.
-
-This is followed by modifying our Journaled String.
-We insert the string ``"modified"`` at position ``7`` and delete the suffix ``"sequence"`` at position ``19``.
-Note that position ``19`` refers to the string after the insertion of ``"modified"`` at position ``7``.
-Again we print the host, the journaled sequence and the nodes that represent the modifications to see how our changes affect the host and the journaled sequence.
-
-.. includefrags:: demos/tutorial/journaled_set/example_journal_string_basic.cpp
-   :fragment: modification
-
-All of this is followed by calling :dox:`JournaledString#flatten` on our journeld string.
-This call applies all journaled changes to the host sequence.
-Again we print the sequences to see the effects.
-
-.. includefrags:: demos/tutorial/journaled_set/example_journal_string_basic.cpp
-   :fragment: flatten
-
-Here is the output of our small program.
-
-.. includefrags:: demos/tutorial/journaled_set/example_journal_string_basic.cpp.stdout
-
-
-.. important::
-
-   Be careful when using the :dox:`JournaledString#flatten` function as it modifies the underlying host sequence.
-   This might affect other journaled sequences that share the same host sequence.
-   This becomes important especially when working with Journal Sets where a whole set of sequences is journaled to the same reference.
-
-Journaled Set
--------------
-
-The :dox:`JournaledSet` is a specialization of the :dox:`StringSet` which can be used exactly as such but also provides some additional functions optimized to work with :dox:`JournaledString JournaledStrings`.
-The general interface is equal to the interface of the StringSet.
-But it also provides some interfaces specialized for the use of Journaled Strings.
-One of these interfaces is the :dox:`JournaledSet#join` function which journales a contained Journaled String to the previously set global reference.
-The following code snippet demonstrates the usage of the Journal Set and how to join a sequence to the previously set reference sequence.
-
-As usual we include the necessary headers.
-We need the header ``<seqan/journal_set.h>`` to get access to the Journal Set.
-Then we define a type for journaled sequences.
-After that we define our Journal Set.
-The Journal Set is a specialization of the :dox:`OwnerStringSet Owner` concept of StringSets and is defined as ``StringSet<TJournalString, Owner<JournaledSet> >``.
-
-.. includefrags:: demos/tutorial/journaled_set/example_join.cpp
-   :fragment: main
-
-In the subsequent steps we want to set a reference sequence to the Journal Set and add some sequences to it.
-We can set the reference sequence by using the function :dox:`JournaledSet#setHost`.
-This function stores only a pointer to the given sequence.
-In some cases it might be necessary to copy the reference sequence instead.
-For this purpose you can use the function :dox:`JournaledSet#createHost`.
-
-.. includefrags:: demos/tutorial/journaled_set/example_join.cpp
-   :fragment: init
-
-Just adding sequences to the Journal Set does not automatically journal them to the global reference sequence of the set.
-One can explicitly trigger this process using the function :dox:`JournaledSet#join`.
-This function takes as parameters the Journal Set and the position of the contained Journaled String which is to be journaled to the reference sequence.
-Thus, the programmer is free in the decision which sequence has to be journaled and which not.
-Furthermore, we can use the :dox:`JoinConfig` object to specify the method that shall be used for the journaling process.
-
-.. includefrags:: demos/tutorial/journaled_set/example_join.cpp
-   :fragment: join
-
-.. tip::
-
-    Configuration of the Join Methods
-
-    The :dox:`JoinConfig` object differentiates two methods in general and each method further differs in the used strategy.
-    The two methods are the :dox:`GlobalAlign` and the :dox:`GlobalChain` method.
-    They differ in the approach of computing the alignment which is necessary to construct the journal.
-    The first method uses a global alignment algorithm while the second one uses an anchor approach in which first exact seeds are found using a q-gram index and after that the optimal chain between the identified anchors is computed.
-    For each method the user can specify a different strategy.
-    The first strategy is triggered by using :dox:`JoinStrategiesTags JournaledManhatten`.
-    This means for the the GlobalAlign method, that the complete sequence is inserted and the complete reference is deleted, while for the GlobalChain methods this means that the gaps between the anchors are connected through the Manhatten distance.
-    The second strategy is specified using the :dox:`JoinStrategiesTags JournaledCompact` tag. It computes the most compact form of a journal by menas of memory requirements.
-
-Here is the output of the program.
-
-.. includefrags:: demos/tutorial/journaled_set/example_join.cpp.stdout
-
-
-Implementing an Online-Search
------------------------------
-
-Now we have all foundations laid down to implement the online-search algorithm.
-Let us begin with the first assignment where we read in some sequences and use the currently learned things about the Journal Set.
-
-Assignment 1
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Review, Application
-
-   Objective
-     Download the fasta file :download:`sequences.fasta <sequences.fasta>` which contains some DNA sequences.
-     Write a method called ``loadAndJoin`` that gets a Journal Set and a stream file pointing to the downloaded fasta file.
-     The method reads in the sequences one after another using SeqAn's :dox:`SeqFileIn`.
-     The first read sequences is set to the reference sequence.
-     All following sequences are first appended to the StringSet and afterwards joined to the StringSet using a global alignment strategy and the most compact form.
-
-   Hints
-     .. container:: foldable
-
-        You can start using the following code snippet. Replace the path of the iostream such that it points to your path and fill in the missing parts ``A``, ``B`` and ``C`` in the function ``loadAndJoin`` (Altogether, you will need 4 lines of code.).
-
-       .. includefrags:: demos/tutorial/journaled_set/example_online_search_assignment1_hint.cpp
-          :fragment: main
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment1.cpp
-           :fragment: main
-
-Now we have loaded and journaled our sequences and we use the minimal possible memory requirements for our sequences.
-Let's continue and implement the exact online-search on the Journal Set.
-For this purpose we write a function called ``searchPattern`` which takes a StringSet of ``String<int>`` which we use to store each hit for each sequence in the Journal Set including the reference sequence.
-First we have to check whether the reference sequence is set.
-If not we abort the search since we cannot guarantee a correct search when the reference is not set.
-We also have to clear our ``hitSet`` to ensure there remain no phantom hits from previous searches.
-Then we resize it to the number of contained Journaled Strings plus an additional space for the global reference sequence.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: searchPatternPart1
-
-Before we can search for the pattern in the Journaled Strings we have to find all occurrences in the reference sequence.
-Therefore we call the function ``findPatternInReference`` which takes a ``String<int>`` which we use to store the hits, the global reference and the pattern.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: searchPatternPart2
-
-After that we implement the body to search for occurrences in the Journaled Strings.
-Therefore we use ``for``-loop to iterate over all contained sequences and call for each sequence the function ``findPatternInJournalString``.
-The function gets as parameters the corresponding ``String<int>`` from the ``hitSet``, the journaled sequence the pattern and the identified hits in the reference sequence.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: searchPatternPart3
-
-So far our program won't compile. We have to first implement the both functions ``findPatternInReference`` and ``findPatternInJournalString``.
-
-Assignment 2
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Application
-
-   Objective
-     Implement the function ``findPatternInReference`` using a brute force pattern search algorithm.
-     Store all found hits in the passed ``hits`` variable.
-     Print all occurrences in the end of the ``main`` function.
-
-   Hints
-     .. container:: foldable
-        The following code snippet provides you with the backbone for the search algorithm. Fill in the missing parts ``[A]``, ``[B]``, ``[C]`` and ``[D]``.
-
-        .. code-block:: cpp
-
-            template <typename TString, typename TPattern>
-            void findPatternInReference(String<int> & hits,
-                                        TString const & reference,
-                                        TPattern const & pattern)
-            {
-            // [A] Check whether pattern fits into the sequence.
-
-            // [B] Iterate over all positions at which the pattern might occur.
-
-            // [C] Evaluate all positions of the pattern until you find a mismatch or you have found a hit.
-
-            // [D] Report begin position at which pattern matches the sequence.
-            }
-
-   Solution
-     .. container:: foldable
-
-        Here is the solution for this function.
-        Click **more...** below, to see a complete solution of everything we have done so far.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-           :fragment: findPatternInReference
-
-        .. container:: foldable
-
-           Include the necessary headers.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-              :fragment: include
-
-           Implementation of the `findPatternInReference` function.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-              :fragment: findPatternInReference
-
-           Implementation of the `searchPattern` function. Note that we haven't implemented the function `findPatternInJournalString` yet.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-              :fragment: searchPattern
-
-           Implementation of the `loadAndJoin` function.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-              :fragment: loadAndJoin
-
-           Implementation of the `main` function.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-              :fragment: main
-
-           Printing the hits of the reference sequence.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp
-              :fragment: printResult
-
-           And here is the result.
-
-           .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment2.cpp.stdout
-
-
-We know can search for all occurrences of a pattern in the reference sequence.
-Now we can try to find all occurrences in the journaled sequences.
-Therefore we implement the function ``findPatternInJournalString``.
-Our function gets the variable ``hitsTarget`` which stores the hits found in the JournaledString.
-It gets the search text and the pattern and finally the hits detected in the reference sequence.
-Instead of searching each position in the Journaled String, we only search in areas that are new to the search.
-This involves all inserted parts and all parts where the pattern crosses a border to another node.
-So instead of iterating over each position we iterate over the nodes of the Journaled String.
-To do so we have to determine the type of the data structure that is used by the Journaled String to manage the nodes.
-We can use the metafunction :dox:`JournaledString#JournalType` for this task.
-Afterwards we define an Iterator over the so called ``TJournalEntries`` data structure.
-
-Again we check first whether the pattern fits into our sequence.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: findPatternInJournalStringPart1
-
-We then iterate over all nodes beginning from the first until we have reached the node in which the pattern reaches the end of the Journaled Sequence.
-The function findInJournalEntries helps us to find the corresponding node.
-We increment the position of the iterator by one such that it points behind the last element which is included by the search.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: findPatternInJournalStringPart2
-
-Now we search in each node until we have reached the end.
-For each node we first check the type of the journaled operation.
-If we are in an "original" node we call the function ``_findInOriginalNode``.
-If we are in a "patch" node we call the function ``_findInPatchNode`` and in the end we call the function ``_searchAtBorder`` which is called for each node type and scans all possible hits at the border of a node.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: findPatternInJournalStringPart3
-
-Let us begin with the implementation of the function ``_findInOriginalNode``.
-In this function we exploit the journaling concept such that we can speed up the search algorithm from :math:`\mathcal{O}(p \cdot n)` to :math:`\mathcal{O}(\log_2(k))`, where :math:`p` is the length of the pattern, :math:`n` is the length of the search text, and ``k`` is the number of hits identified in the reference sequence.
-We need at most :math:`\log_2(k)` comparisons to find the first hit which occurred in the reference sequence that also occurs in the current original node.
-
-Assignment 3
-^^^^^^^^^^^^
-
-.. container:: assignment
-
-   Type
-     Transfer
-
-   Objective
-     Implement the function ``_findInOriginalNode``, which identifies all shared hits between the current ``original`` node and the corresponding part in the reference sequence.
-     Note you do not need to scan all positions again.
-     In the end print all occurrences to the console.
-
-   Hints
-     .. container:: foldable
-       The following code snippet provides you with the backbone for this function.
-       Fill in the missing parts ``[A]``, ``[B]``, ``[C]``, ``[D]`` and ``[E]``.
-
-       Use the STL function `std::upper_bound <http://www.cplusplus.com/reference/algorithm/upper_bound/>`_ to conduct a binary search to find the first possible hit from the reference that is also represented by the current node.
-
-        .. code-block:: cpp
-
-            template <typename TJournalEntriesIterator, typename TPattern>
-            void _findInOriginalNode(String<int> & hitTarget,
-                                     TJournalEntriesIterator & entriesIt,
-                                     TPattern const & pattern,
-                                     String<int> const & refHits)
-            {
-            // [A] Check if hits exist in the reference.
-
-            // [B] Find upper bound to current physical position in sorted refHits using std::upper_bound.
-
-            // [C] Make sure we do not miss hits that begin at physical position of current node.
-
-            // [D] Store all hits that are found in the region of the reference which is covered by this node.
-
-            // [E] Store the correct virtual position and check next hit.
-            }
-
-   Solution
-     .. container:: foldable
-
-       Here is the solution to this function.
-       Click **more...** below, to see a complete solution of everything we have done so far.
-
-       .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-          :fragment: findInOriginalNode
-
-       .. container:: foldable
-
-          Include the necessary headers.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-             :fragment: include
-
-          We know implement the method to search for hits in an original node.
-          We only need to check if the current node covers a region of the reference in which we've found a hit.
-          We use the function `std::upper_bound <http://www.cplusplus.com/reference/algorithm/upper_bound/>`_ to find the first element that is greater than the current physical position.
-          Since, we've found an upper bound we have to check additionally if there exists a previous hit that lies directly on the physical begin position of our current node.
-          We then include all hits that fit into this current node until we have found the first position where the pattern would cross the border of this node or we have reached the end of the reference hit set.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: findInOriginalNode
-
-          Implementing the backbone to search for a pattern in the reference string.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: findPatternInJournalString
-
-          Implementing the search within the reference sequence.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: findPatternInReference
-
-          Implementing the backbone of the search.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: searchPattern
-
-          Implement the `laodAndJoin` method.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: loadAndJoin
-
-          Implementing the main method.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: main
-
-          Printing the hits of the reference sequence.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: printResultReference
-
-          Printing the hits of the journaled sequences.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp
-            :fragment: printResultJournalSequence
-
-          And here is the result.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment3.cpp.stdout
-
-
-We are almost at the end of our online-search algorithm.
-Let's now implement the method ``_findInPatchNode``.
-We basically had this already implemented when we wrote the search function for the reference. Let's recall this part together.
-
-First we write the body of our function and define now an Iterator over the Journaled String.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: findInPatchNodePart1
-
-We know specify the range in which we are searching for the pattern.
-This range starts at the current physical position of the insertion buffer and ends at the last position of this node where the pattern completely fits.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: findInPatchNodePart2
-
-We need to use a second temporary iterator which is used to compare the current value with the pattern.
-If all positions matches then we report a match at the current virtual position.
-
-.. includefrags:: demos/tutorial/journaled_set/example_online_search.cpp
-   :fragment: findInPatchNodePart3
-
-To ensure that we are not missing any hits we also have to scan the regions where the pattern is leaving the current node.
-You can solve this problem in the next assignment.
-
-Assignment 4
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Implement the last function ``_searchAtBorder``, which identifies all hits that cross the border of the current node to the next node.
-
-   Hints
-     .. container:: foldable
-
-       The following code snippet provides you with the backbone for this function.
-       Fill in the missing parts ``[A]``, ``[B]``, ``[C]`` and ``[D]``.
-
-        .. code-block:: cpp
-
-            template <typename TString, typename TPattern>
-            void findPatternInReference(String<int> & hits, TString const & reference, TPattern const & pattern)
-            {
-            // [A] Check whether pattern fits into the sequence.
-
-            // [B] Iterate over all positions at which the pattern might occur.
-
-            // [C] Evaluate all positions of the pattern until you find a mismatch or you have found a hit.
-
-            // [D] Report begin position at which pattern matches the sequence.
-            }
-
-   Solution
-     .. container:: foldable
-
-        Here is the solution to this function.
-        Click **more...** below, to see a complete solution of everything we have done so far.
-
-       .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-          :fragment: searchAtBorder
-
-       .. container:: foldable
-
-          Include the necessary headers.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: include
-
-          Search at the border the current node for the pattern.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: searchAtBorder
-
-          Search for the pattern in the insertion region covered by the current node.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: findInPatchNode
-
-          Check if hit was reported for this region in the reference sequence.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: findInOriginalNode
-
-          Implementing the backbone of the search for the Journaled String.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: findPatternInJournalStringPart1
-
-          Implementing the search for the reference sequence.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: findPatternInReference
-
-          The backbone of the search method.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: searchPatternPart1
-
-          Loading and joining the sequences.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: loadAndJoin
-
-          Implementing the main function.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: main
-
-          Reporting the identified hits.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp
-            :fragment: printResult
-
-          And here is the result.
-
-          .. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp.stdout
-
-
-Congratulations!
-You have just implemented a cool online-search which is speed up by exploiting the parallelism given by the data set.
-And here is the final result.
-
-.. includefrags:: demos/tutorial/journaled_set/solution_online_search_assignment4.cpp.stdout
-
-
-Assignment 5
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Transfer
-
-   Objective
-     Try to replace the brute force versions using using SeqAn's :dox:`Finder` and :dox:`Pattern` concept.
-     You can find additional material to this topic in the :ref:`tutorial-pattern-matching` Tutorial.
-
-   Solution
-     .. container:: foldable
-
-        Now we want to replace the brute force methods with some cool pattern matching algorithms.
-        Therefore we include the header `<seqan/finder.h>`.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: include
-
-        Now we can use the :dox:`Finder` interface of SeqAn.
-        One cool thing of the usage of the Finder class is that we don't have to check for the borders anymore.
-        This will do the Finder for us.
-        We only have to specify the correct infix over which the Finder should iterate to find the pattern.
-        We first compute the positions that enclose the search region.
-        Afterwards, we get an infix for this region and pass it to the Finder's constructor.
-        We also have to define the :dox:`Pattern` object which gets the pattern we are searching for.
-        Then we can simply call the function :dox:`Finder#find` until we there is no more match.
-        Be careful when storing the position that the Finder is returning.
-        We have to recompute the correct virtual position since we used an infix of the original search text.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: searchAtBorder
-
-        So the biggest change is done.
-        We simply repeat the changes from above and watch to get the correct virtual position.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: findInPatchNodePart1
-
-        Of course we don't need to change anything for the original nodes.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: findInOriginalNode
-
-        Also the function `findPatternInJournalString` remains the same.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: findPatternInJournalString
-
-        We will switch to the Finder concept for the function `findPatternInReference` too.
-        This is done quickly, since we have the basis already laid down in the previous functions.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: findPatternInReference
-
-        From here on, we don't have to change anything.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: searchPatternPart1
-
-        We write the same main body ...
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: laodAndJoin
-
-        and finally print the results.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp
-          :fragment: main
-
-        And here is the result using the Finder and Pattern concept of SeqAn.
-
-        .. includefrags:: demos/tutorial/journaled_set/solution_online_search_finder.cpp.stdout
diff --git a/manual/source/Tutorial/Metafunctions.rst b/manual/source/Tutorial/Metafunctions.rst
index 8f6b253..3c4d523 100644
--- a/manual/source/Tutorial/Metafunctions.rst
+++ b/manual/source/Tutorial/Metafunctions.rst
@@ -162,46 +162,46 @@ Assignment 1
 
         Hence we could define the function as follows:
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-declaration
 
         The function is now quite generic allowing any container of type ``T``.
         In addition we specify two positions that should be swapped (as integers which is not really generic, but it suffices for the demo) an the length of the swapped region.
         Now we can define a helper variable ``help``, which can be of type ``T``.
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-metafunction
 
         and do the swapping
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-work
 
         Thats it.
         We can now test our generic swap function using for example a `String` of characters or a `String` of integers.
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-apply
 
 
         The whole program taken together looks as follows:
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-headers
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-declaration
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-metafunction
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-work
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-main
 
-        .. includefrags:: demos/tutorial/metafunctions/swap.cpp
+        .. includefrags:: demos/tutorial/basics/swap.cpp
            :fragment: swap-apply
 
 
diff --git a/manual/source/Tutorial/MiniBowtie.rst b/manual/source/Tutorial/MiniBowtie.rst
new file mode 100644
index 0000000..6225719
--- /dev/null
+++ b/manual/source/Tutorial/MiniBowtie.rst
@@ -0,0 +1,358 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-mini-bowtie:
+
+Mini Bowtie
+===========
+
+Learning Objective
+  You will be able to write read mappers using SeqAn.
+
+Difficulty
+  Hard
+
+Duration
+  2h
+
+Prerequisites
+  :ref:`tutorial-indices`, :ref:`tutorial-index-iterators`, :ref:`tutorial-fragment-store`
+
+Mini-Bowtie is a very basic read aligner that is inspired by the well known Bowtie program :cite:`Langmead2009`.
+It serves as an example to show that you can write sophisticated programs with SeqAn using few lines of code.
+
+Background
+----------
+
+Bowtie is based on the FM index :cite:`Ferragina2001` which uses the Burrows-Wheeler transform (BWT) to search for patterns in a text in :math:`\mathcal{O}(m)` time with ``m`` being the pattern length.
+Furthermore the index only consumes minute space because it can be compressed using favorable features of the BWT.
+
+Since this tutorial serves as an example of SeqAn's functionality, we will not completely re-implement Bowtie.
+Instead we will concentrate on providing a simple yet functional read mapper.
+We will start by reading the reference sequence and reads, then search approximately each read in the reference allowing at most one mismatch, and finally write the result into an informative SAM file.
+
+We do make use of the FM index, but we use only one key feature of Bowtie, namely a two phase search.
+Such two phase search speeds up approximate search on the FM index but requires two indices, i.e. one of the forward and one of the backward reference sequence.
+Instead of searching each read in one phase, allowing one mismatch in every possible position, we search it twice, but in two phases having some restrictions.
+We first search each read in the forward index by allowing one mismatch only in the second half of the read.
+Then we reverse each read and search it in the backward index, again by allowing one mismatch only in the second half of the read.
+The advantage of a two phase search will become clear in the following.
+
+.. tip::
+
+    The FM index implicitly represent a prefix trie of a text.
+    Searching on the FM index is performed backwards, starting with the last character of the pattern and working its way to the first.
+
+In the first search phase we search backwards the right half of the read without mismatches.
+If we succeed, in the second phase we continue backwards allowing one mismatch in the left half.
+The whole procedure is based on a depth-first traversal on the prefix trie of the reference.
+Trie’s edges are labeled with single characters and each path following some edges spells a substring of the reference.
+Thus, first we start in the root node and follow the path spelling the right half of the read.
+If we succeed, we continue in the subtree rooted in the previously reached node by following each possible path that spells the left half of the read with one substitution.
+
+.. figure:: mini_bowtie_search.png
+   :width: 600px
+
+The red arrows indicate the exact search of the right half of the read, the green arrows the approximate search of the left half.
+
+From the figure above you can see the advantage of using a two phase approach.
+By starting from the root node and performing exact search, we follow only one path and avoid visiting the top of the trie.
+Approximate search is more involved, since we have to try every path until we find a second mismatch, but it is limited to a small subtree.
+
+So far we have found all locations of a read having at most one mismatch in its left half.
+In order to find also all locations having at most one mismatch in the right half, we simply reverse the reference and the read and repeat the procedure from above.
+Note that we only reverse but do not complement the reference or the reads.
+
+Assignment 1
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Copy the code below and rearrange the rows such that they give a functional order.
+
+     .. code-block:: cpp
+
+        // ==========================================================================
+        //                                mini_bowtie
+        // ==========================================================================
+        // Copyright (c) 2006-2012, Knut Reinert, FU Berlin
+        // All rights reserved.
+
+
+        #include <iostream>
+        #include <seqan/basic.h>
+        #include <seqan/sequence.h>
+        #include <seqan/file.h>
+        #include <seqan/index.h>
+        #include <seqan/store.h>
+
+        using namespace seqan;
+
+        void search() {};
+
+        int main(int argc, char \*argv[])
+        {
+            // type definitions
+            typedef String<Dna5> TString;
+            typedef StringSet<TString> TStringSet;
+            typedef Index<StringSet<TString>, FMIndex<> > TIndex;
+            typedef Iterator<TIndex, TopDown<ParentLinks<> > >::Type TIter;
+
+            // reversing the sequences for backward search
+            // backward search
+            // reading the command line arguments
+            // declaration and initialization of the fragment store
+            // forward search
+            // combining the contigs of the reference into one string set
+            appendValue(text, fragStore.contigStore[i].seq);
+            std::cerr << "Invalid number of arguments." << std::endl
+                          << "USAGE: mini_bowtie GENOME.fasta READS.fasta OUT.sam" << std::endl;
+            }
+            if (argc < 3) {
+            if (loadContigs(fragStore, argv[1])) return 1;
+            if (loadReads(fragStore, argv[2])) return 1;
+            clear(fmIndex);
+            clear(fmIndex);
+            StringSet<TString> text;
+            for (unsigned i = 0; i < length(fragStore.contigStore); ++i)
+            fmIndex = TIndex(text);
+            TIndex fmIndex(text);
+            TIter it(fmIndex);
+            search();
+            search();
+            clear(it);
+            clear(it);
+            reverse(text);
+            reverse(fragStore.readSeqStore);
+            it = TIter(fmIndex);
+            FragmentStore<> fragStore;
+            return 0;
+            return 1;
+        }
+
+   Hint
+     .. container:: foldable
+
+       We make use of the :dox:`FragmentStore`.
+       While we can access the pattern/reads as if using a :dox:`StringSet`, we need to create a :dox:`StringSet` of the contigs, because in the :dox:`FragmentStore` the contigs are not stored in a :dox:`StringSet`.
+
+   Hint
+     .. container:: foldable
+
+       The correct order of the comments is:
+
+       .. code-block:: cpp
+
+           // reading the command line arguments
+           // declaration and initialization of the fragment store
+           // combining the contigs of the reference into one string set
+           // forward search
+           // reversing the sequences for backward search
+           // backward search
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/mini_bowtie/solution1.cpp
+
+Now that we have the backbone of our program we can start to implement the fundamental part, the search routine.
+The ``search`` function requires two input arguments, namely the iterator used to traverse the FM index of the reference sequence and the string set containing the reads.
+
+The ``search`` function iterates over the reads and searches them in the already mentioned two phase fashion.
+In the first phase the right half of the pattern is searched exactly.
+The second phase is more involved and will be discussed after the second assignment.
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Expand the solution to the last assignment by implementing the backbone of the search routine.
+     The backbone should consist of function definition, an outer loop traversing the pattern (using a standard iterator) and the first step of the search, namely the exact search of the right pattern half.
+
+   Hint
+     .. container:: foldable
+
+        The template function header could look like this:
+
+        .. code-block:: cpp
+
+           template <typename TIter, typename TStringSet>
+           void search(TIter & it, TStringSet const & pattern)
+
+
+   Hint
+     .. container:: foldable
+
+        You can obtain the correct iterator type using the metafunction :dox:`ContainerConcept#Iterator`.
+
+        .. code-block:: cpp
+
+           typedef typename Iterator<TStringSet const, Standard>::Type TPatternIter;
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/mini_bowtie/solution2.cpp
+
+At this point we need to implement the most critical part of the our program, which is the second step of the search phase.
+In our case this step works as follows:
+
+Assume that we have already found a path in the trie representing the pattern from position :math:`i` to :math:`(m - 1)` with m being the pattern length and :math:`i < m / 2`.
+Then we substitute the character of the pattern at position :math:`i - 1` with every character of the alphabet and search for the remaining characters exact.
+We repeat those two steps until we processed every character of the pattern.
+
+The corresponding pseudo code could look like this:
+
+.. code-block:: cpp
+
+   unsigned startApproxSearch = length(pattern) / 2;
+   for i = startApproxSearch to 0
+   {
+       for all c in the aphabet
+       {
+           if (goDown(it, c))
+           {
+               if (goDown(it, pattern[0..i - 1]))
+               {
+                    HIT
+               }
+               goBack to last start
+           }
+       }
+       goDown correct character
+   }
+
+Assignment 3
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Include the pseudo code from above into the search function.
+
+   Hint
+     Make a copy of the iterator before following the path of the substituted character.
+     Doing so saves time and keeps the code simple because you do not need to use :dox:`TopDownHistoryIterator#goUp`.
+
+   Hint
+     .. container:: foldable
+
+       :dox:`TopDownIterator#goDown` returns a boolean indicating if a path exists or not.
+       In addition, you do not need to go through the steps of the pseudo code if the second pattern half was not found!
+
+   Hint
+     .. container:: foldable
+
+       :dox:`OrderedAlphabetConcept#MinValue` returns the lowest value of an alphabet, while :dox:`FiniteOrderedAlphabetConcept#ValueSize` returns the number of different values of a data type.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/mini_bowtie/solution3.cpp
+
+So far so good.
+But there is a slight mistake.
+While substituting we also substitute the character in the pattern with itself.
+Therefore we find locations of exact matches multiple times.
+
+Assignment 4
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Adjust the code to cope with the problem mentioned above.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/mini_bowtie/solution4.cpp
+
+So this is already the fundamental part of our program.
+What's left to do is to write the result into a SAM file.
+In order to do so, we make use of the :dox:`FragmentStore`.
+Everything we need to do is to fill the :dox:`FragmentStore::alignedReadStore` which is a member of the :dox:`FragmentStore`.
+This is very easy, because we only need to append a new value of type :dox:`AlignedReadStoreElement::AlignedReadStoreElement` specifying the match id, the pattern id, the id of the contig, as well as the begin and end position of the match in the reference.
+
+An ``addMatchToStore`` function could look like this:
+
+.. code-block:: cpp
+
+   template <typename TStore, typename TIter, typename TPatternIt>
+   void addMatchToStore(TStore & fragStore, TPatternIt const & patternIt, TIter const & localIt)
+   {
+       typedef FragmentStore<>::TAlignedReadStore TAlignedReadStore;
+       typedef Value<TAlignedReadStore>::Type TAlignedRead;
+
+       for (unsigned num = 0; num < countOccurrences(localIt); ++num)
+       {
+           unsigned pos = getOccurrences(localIt)[num].i2;
+           TAlignedRead match(length(fragStore.alignedReadStore), position(patternIt), getOccurrences(localIt)[num].i1 ,
+               pos,  pos + length(value(patternIt)));
+           appendValue(fragStore.alignedReadStore, match);
+       }
+   }
+
+One could think we are done now.
+Unfortunately we are not.
+There are two problems.
+Recall, that in the second search phase we reverse the text and pattern, therefore we messed up start and end positions in the original reference.
+Furthermore we found exact matches twice, once in the forward index and once in the reversed index.
+
+Assignment 5
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Application
+
+   Objective
+     Include the following two lines into your code:
+
+     .. code-block:: cpp
+
+        struct ForwardTag {};
+        struct ReverseTag {};
+
+        and write a second ``addMatchToStore`` function that is called when we search in the reversed reference.
+        In addition, make all necessary changes to the code such that exact matches are only added once.``
+
+   Hint
+     .. container:: foldable
+
+        The metafunction :dox:`IsSameType` can be used to determine whether two types are equal or not.
+
+   Solution
+     .. container:: foldable
+
+       .. includefrags:: demos/tutorial/mini_bowtie/mini_bowtie.cpp
+
+Done? Not quite.
+
+We need to copy the following four lines of code into our code in order to write the correct result in the SAM file.
+Calling the reverse function is necessary because an alignment must be computed for every match to be written into the SAM file.
+
+.. code-block:: cpp
+
+   reverse(text);
+   reverse(fragStore.readSeqStore);
+   std::ofstream samFile(argv[3], std::ios_base::out);
+   write(samFile, fragStore, Sam());
diff --git a/manual/source/Tutorial/Modifiers.rst b/manual/source/Tutorial/Modifiers.rst
index 24b6412..ca9f086 100644
--- a/manual/source/Tutorial/Modifiers.rst
+++ b/manual/source/Tutorial/Modifiers.rst
@@ -48,19 +48,19 @@ ModReverse
 We begin with the specialization :dox:`ModReverseString` from the example above.
 Now we have a given string:
 
-.. includefrags:: demos/tutorial/modifiers/modreverse.cpp
+.. includefrags:: demos/tutorial/modifiers/modifier_modreverse.cpp
    :fragment: main
 
 and want to get the reverse.
 So we need a :dox:`ModifiedString` specialized with ``String<char>`` and :dox:`ModReverseString`.
 We create the modifier and link it with ``myString``:
 
-.. includefrags:: demos/tutorial/modifiers/modreverse.cpp
+.. includefrags:: demos/tutorial/modifiers/modifier_modreverse.cpp
    :fragment: modifier
 
 The result is:
 
-.. includefrags:: demos/tutorial/modifiers/modreverse.cpp
+.. includefrags:: demos/tutorial/modifiers/modifier_modreverse.cpp
    :fragment: output1
 
 .. code-block:: console
@@ -70,7 +70,7 @@ The result is:
 
 To verify that we didn't copy ``myString``, we replace an infix of the original string and see that, as a side effect, the modified string has also changed:
 
-.. includefrags:: demos/tutorial/modifiers/modreverse.cpp
+.. includefrags:: demos/tutorial/modifiers/modifier_modreverse.cpp
    :fragment: output2
 
 .. code-block:: console
diff --git a/manual/source/Tutorial/MultipleSequenceAlignment.rst b/manual/source/Tutorial/MultipleSequenceAlignment.rst
index f1535c4..f1ad24c 100644
--- a/manual/source/Tutorial/MultipleSequenceAlignment.rst
+++ b/manual/source/Tutorial/MultipleSequenceAlignment.rst
@@ -42,24 +42,24 @@ The following example shows how to compute a global multiple sequence alignment
 
 First, we include the necessary headers and begin the ``main`` function by declaring our strings as a char array.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/msa.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_msa.cpp
    :fragment: main
 
 Next, we build a :dox:`Align` object with underling :dox:`String SeqAn Strings` over the :dox:`AminoAcid` alphabet.
 We create four rows and assign the previously defined amino acid strings into the rows.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/msa.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_msa.cpp
    :fragment: init
 
 Finally, we call :dox:`globalMsaAlignment` and print ``align`` to the standard output.
 We use the :dox:`Blosum62` score matrix with the penalties from above.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/msa.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_msa.cpp
    :fragment: alignment
 
 The output of the program look as follows.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/msa.cpp.stdout
+.. includefrags:: demos/tutorial/alignments/alignment_msa.cpp.stdout
 
 Note that we stored the MSA in an :dox:`Align` object which allows easy access to the individual rows of the MSA as :dox:`Gaps` objects.
 :dox:`globalMsaAlignment` also allows storing the alignment as an :dox:`AlignmentGraph`.
@@ -81,11 +81,11 @@ Assignment 1
 
         The solution looks as follows.
 
-        .. includefrags:: demos/tutorial/multiple_sequence_alignment/assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_msa_assignment1.cpp
 
         And here is the program's output.
 
-        .. includefrags:: demos/tutorial/multiple_sequence_alignment/assignment1.cpp.stdout
+        .. includefrags:: demos/tutorial/alignments/alignment_msa_assignment1.cpp.stdout
 
 Computing Consensus Sequences
 -----------------------------
@@ -97,22 +97,22 @@ It is used by creating a :dox:`String` over :dox:`ProfileChar` as the alphabet.
 The following program first computes a global MSA of four variants of exon1 of the gene SHH.
 First, we compute the alignment as in the example above.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/consensus.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_msa_consensus.cpp
    :fragment: align
 
 Then, we create the profile string with the length of the MSA.
 We then count the number of characters (and gap pseudo-characters which have an ``ordValue`` of ``4`` for :dox:`Gaps` over :dox:`Dna`) at each position.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/consensus.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_msa_consensus.cpp
    :fragment: profile-computation
 
 Finally, we compute the consensus and print it to the standard output.
 At each position, the consensus is called as the character with the highest count.
 Note that ``getMaxIndex`` breaks ties by the ordinal value of the caracters, i.e. ``A`` would be preferred over ``C``, ``C`` over ``G`` and so on.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/consensus.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_msa_consensus.cpp
    :fragment: consensus-calling
 
 The output of the program is as follows.
 
-.. includefrags:: demos/tutorial/multiple_sequence_alignment/consensus.cpp.stdout
+.. includefrags:: demos/tutorial/alignments/alignment_msa_consensus.cpp.stdout
diff --git a/manual/source/Tutorial/PairwiseSequenceAlignment.rst b/manual/source/Tutorial/PairwiseSequenceAlignment.rst
index d1c3b29..e9968e2 100644
--- a/manual/source/Tutorial/PairwiseSequenceAlignment.rst
+++ b/manual/source/Tutorial/PairwiseSequenceAlignment.rst
@@ -78,14 +78,14 @@ A good programming practice is to define all types that shall be used by the fun
 In our case, we define a ``TSequence`` type for our input sequences and an :dox:`Align` object (``TAlign``) type to store the alignment.
 For more information on the Align datastructure, please read the tutorial :ref:`tutorial-alignment-representation`.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_standard.cpp
    :fragment: main
 
 After we defined the types, we can define the variables and objects.
 First, we create two input sequences ``seq1 = "CDFGHC"`` and ``seq2 = "CDEFGAHC"``.
 We then define an 'align' object where we want to put the sequences into, we resize it to manage two :dox:`Gaps` objects, and then assign the sequences to it.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_standard.cpp
    :fragment: init
 
 Now, we can compute our first alignment.
@@ -93,7 +93,7 @@ To do so, we simply call the function :dox:`globalAlignment` and give as input p
 The globalAlignment function returns the score of the best alignment, which we store in the ``score`` variable.
 Afterwards, we print the computed score and the corresponding alignment.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_standard.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_standard.cpp
    :fragment: alignment
 
 The output is as follows:
@@ -139,7 +139,7 @@ Assignment 1
         We use an :dox:`String` with the :dox:`Dna` alphabet, since we know that we work with DNA sequences.
         The second type is our :dox:`Align` object storing the alignment later on.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment1.cpp
            :fragment: main
 
         In the next step we initialize our objects.
@@ -147,7 +147,7 @@ Assignment 1
         We resize the underlying set of ``align`` that manages the separate :dox:`Gaps` data structures.
         Finally, we assign the input sequences as sources to the corresponding row of ``align``.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment1.cpp
            :fragment: init
 
         Now we compute the alignment using a scoring scheme with affine gap costs.
@@ -155,7 +155,7 @@ Assignment 1
         We store the computed score of the best alignment in the equally named variable ``score``.
         In the end we print the score and the alignment using print methods provided by the ``iostream`` module of the STL.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment1.cpp
            :fragment: alignment
 
         Congratulation!
@@ -195,20 +195,20 @@ We will also make use of the :dox:`AlignmentGraph Alignment Graph` to store the
 We start again with including the necessary headers and defining all types that we need.
 We define the ``TStringSet`` type to store our input sequences in a StringSet and we define the ``TDepStringSet`` which is an :dox:`DependentStringSet` used internally by the AlignmentGraph.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_overlap.cpp
    :fragment: main
 
 Before we can initialize the AlignmentGraph we append the input sequences to the StringSet ``strings``.
 Then we simply pass ``strings`` as an argument to the constructor of the AlignmentGraph ``alignG``.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_overlap.cpp
    :fragment: init
 
 Now we are ready to compute the alignment.
 This time we change two things when calling the ``globalAlignment`` function.
 First, we use an :dox:`AlignmentGraph` to store the computed alignment and second we use the :dox:`AlignConfig` object to compute the overlap alignment.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_overlap.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_overlap.cpp
    :fragment: alignment
 
 The output is as follows.
@@ -239,7 +239,7 @@ Assignment 2
      .. container:: foldable
 
         A semi-global alignment is a special form of an overlap alignment often used when aligning short sequences again a long sequence.
-        Here we only allow free end-gaps at the beginning and the end of the shorter sequence.
+        Here we only allow free free end-gaps at the beginning and the end of the shorter sequence.
 
    Solution
      .. container:: foldable
@@ -253,12 +253,12 @@ Assignment 2
         In this scenario we use an :dox:`AlignmentGraph` to store the alignment.
         Remember, that the AlignmentGraph uses an :dox:`DependentStringSet` to map the vertices to the correct input sequences.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment2.cpp
            :fragment: main
 
         In the next step we initialize our input StringSet ``strings`` and pass it as argument to the constructor of the AlignmentGraph ``alignG``.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment2.cpp
            :fragment: init
 
         Now we compute the alignment using the Levenshtein distance and a AlignConfig object to set the correct free end-gaps.
@@ -266,7 +266,7 @@ Assignment 2
         Hence, we have to use free end-gaps in the first and last row, which corresponds to the first and the last parameter in the AlignConfig object.
         If you add the shorter sequence at first to ``strings``, then you simply have to flip the ``bool`` values of the AlignConfig object.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment2.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment2.cpp
            :fragment: alignment
 
         Here the result of the program.
@@ -310,13 +310,13 @@ We print the alignment and the score.
 
 First the necessary includes and typedefs:
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_specialised.cpp
    :fragment: main
 
 In addition to the previous examined examples we tell the globalAlignment function to use the desired Hirschberg algorithm by explicitly passing the tag ``Hirschberg`` as last parameter.
 The resulting alignment and score are then printed.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_specialised.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_global_specialised.cpp
    :fragment: alignment
 
 The output is as follows.
@@ -338,7 +338,7 @@ Assignment 3
      Application
 
    Objective
-     Write a program that computes a global alignment between the :dox:`Rna` sequences ``AAGUGACUUAUUG`` and ``AGUCGGAUCUACUG`` using the Myers-Hirschberg variant. You should use the Align data structure to store the alignment.
+     Write a program that computes a fast global alignment between the :dox:`Rna` sequences ``AAGUGACUUAUUG`` and ``AGUCGGAUCUACUG`` using the Align data structure and the Levenshtein distance.
      Print the score and the alignment. Additionally, output for each row of the Align object the view positions of the gaps.
 
    Hint
@@ -355,22 +355,23 @@ Assignment 3
         ``TAlign`` and ``TRow`` are defined as in the previous example program.
         The type ``Iterator<TRow>::Type`` will be used to iterate over the rows of the alignment.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment3.cpp
            :fragment: main
 
-        In the next step we initialize our Align object ``align`` with the corresponding source files.
+        In the next step we initialize our input StringSet ``strings`` and pass it as argument to the constructor of the AlignmentGraph ``alignG``.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment3.cpp
            :fragment: init
 
-        Now we compute the alignment using Myers-Hirschberg algorithm by specifying the correct tag at the end of the function.
+        Now we compute the alignment using the levenshtein distance and a AlignConfig object to set the correct free end-gaps.
+        In this example we put the shorter sequence on the vertical axis of our alignment matrix.
+        Hence, we have to use free end-gaps in the first and last row, which corresponds to the first and the last parameter in the AlignConfig object.
+        If you add the shorter sequence at first to ``strings``, then you simply have to flip the ``bool`` values of the AlignConfig object.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment3.cpp
            :fragment: alignment
 
-        Finally, we iterate over both gap structures and print the view positions of the gaps within the sequences.
-
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_global_assignment3.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_global_assignment3.cpp
            :fragment: view
 
         The output of the program is as follows.
@@ -402,24 +403,24 @@ SeqAn offers the classical Smith-Waterman algorithm that computes the best local
 
 We are going to demonstrate the usage of both in the following example where first the best local alignment of two character strings and then all local alignments of two DNA sequences with a score greater than or equal to 4 are computed.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_pairwise_local.cpp
    :fragment: main
 
 Let's start with initializing the :dox:`Align` object to contain the two sequences.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_pairwise_local.cpp
    :fragment: init1
 
 Now the best alignment given the scoring parameters is computed by the function :dox:`localAlignment`.
 The returned score value is printed directly, and the alignment itself in the next line.
 The functions :dox:`Gaps#clippedBeginPosition` and :dox:`Gaps#clippedEndPosition` can be used to retrieve the begin and end position of the matching subsequences within the original sequences.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_pairwise_local.cpp
    :fragment: ali1
 
 Next, several local alignments of the two given DNA sequences are going to be computed. First, the :dox:`Align` object is created.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_pairwise_local.cpp
    :fragment: init2
 
 A :dox:`LocalAlignmentEnumerator` object needs to be initialized on the :dox:`Align` object.
@@ -427,7 +428,7 @@ In addition to the Align object and the scoring scheme, we now also pass the ``f
 The ``WatermanEggert`` tag specifies the desired Waterman-Eggert algorithm.
 While the score of the local alignment satisfies the minimal score cutoff, the alignments are printed with their scores and the subsequence begin and end positions.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_pairwise_local.cpp
    :fragment: ali2
 
 Here is the output of the first part of our example program:
@@ -484,17 +485,17 @@ Assignment 4
 
         The usual includes.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_pairwise_local_assignment1.cpp
            :fragment: main
 
         The initialization of the :dox:`Align` object.
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_pairwise_local_assignment1.cpp
            :fragment: init
 
         Computing the three best alignments with the desired scoring parameters:
 
-        .. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_local_assignment1.cpp
+        .. includefrags:: demos/tutorial/alignments/alignment_pairwise_local_assignment1.cpp
            :fragment: ali
 
         The resulting output is as follows.
@@ -547,13 +548,13 @@ In case of equality, the alignment is equivalent to the hamming distance problem
 Let's compute a banded alignment.
 The first step is to write the ``main`` function body including the type definitions and the initializations.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_banded.cpp
    :fragment: main
 
 After we initialized everything, we will compute the banded alignment.
 We pass the values ``-2`` for the lower diagonal and ``2`` for the upper diagonal.
 
-.. includefrags:: demos/tutorial/pairwise_sequence_alignment/alignment_banded.cpp
+.. includefrags:: demos/tutorial/alignments/alignment_banded.cpp
    :fragment: alignment
 
 And here is the output:
@@ -598,37 +599,37 @@ Assignment 5
     Solution (Step 1)
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5_step1.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step1.cpp
             :fragment: main
 
     Solution (Step 2)
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5_step2.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step2.cpp
             :fragment: main
 
     Solution (Step 3)
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5_step3.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step3.cpp
             :fragment: main
 
     Solution (Step 4)
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5_step4.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step4.cpp
             :fragment: main
 
     Solution (Step 5)
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5_step5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step5.cpp
             :fragment: main
 
     Solution (Step 6)
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5_step6.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5_step6.cpp
             :fragment: main
 
     Complete Solution (and more explanations)
@@ -636,7 +637,7 @@ Assignment 5
 
          Write the `main` body of the program with type definition and initalization of the used data structures.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: main
 
          In the first part of the algorithm we implement am alignment based verification process to identify positions in the `database` at which we can find our pattern with at most `2` errors.
@@ -644,7 +645,7 @@ Assignment 5
          If the score is greater or equal than `-2`, then we have found a hit.
          We store the begin position of the hit in `locations`.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: verification
 
          In the second part of the algorithm we iterate over all reported locations.
@@ -652,35 +653,35 @@ Assignment 5
          We also compute a band allowing at most `2` errors in either direction.
          Don't forget to clear the gaps in each iteration, otherwise we might encounter wrong alignments.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: alignment
 
          In the next part we determine the cigar string for the matched pattern.
          We have to remove leading and trailing gaps in the `gapsPattern` object using the functions :dox:`Gaps#setClippedBeginPosition` and :dox:`Gaps#setClippedEndPosition`.
          We also need to set the clipped begin position for the `gapsText` object such that both Gaps begin at the same position.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: cigar
 
          First, we identify insertions using the functions :dox:`GapsIterator#isGap` and :dox:`GapsIterator#countGaps`.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: cigarInsertion
 
          We do the same to identify deletions.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: cigarDeletion
 
          If there is neither an insertion nor a deletion, then there must be a match or a mismatch. As long as we encounter matches we move forward in the Gaps structures and count the number of consecutive matches. When we are done we report the match count.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: cigarMatch
 
          In a similar procedure we determine the consecutive substitutions.
          Finally we print out the position of the hit, its total number of edits and the corresponding cigar string.
 
-         .. includefrags:: demos/tutorial/pairwise_sequence_alignment/assignment5.cpp
+         .. includefrags:: demos/tutorial/alignments/pairwise_sequence_alignment_assignment5.cpp
             :fragment: cigarMismatch
 
          Here is the output of this program.
diff --git a/manual/source/Tutorial/ParsingCommandLineArguments.rst b/manual/source/Tutorial/ParsingCommandLineArguments.rst
index 7b7dd0d..af4d879 100644
--- a/manual/source/Tutorial/ParsingCommandLineArguments.rst
+++ b/manual/source/Tutorial/ParsingCommandLineArguments.rst
@@ -59,7 +59,47 @@ A First Working Example
 The following small program will (1) setup a :dox:`ArgumentParser` object named ``parser``, (2) parse the command line, (3) exit the program if there were errors or the user requested a functionality that is already built into the command line parser, and (4) printing the settings given from the command line.
 Such functionality is printing the help, for example.
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1.cpp
+.. code-block:: cpp
+
+   #include <iostream>
+
+   #include <seqan/arg_parse.h>
+
+   int main(int argc, char const ** argv)
+   {
+       // Setup ArgumentParser.
+       seqan::ArgumentParser parser("modify_string");
+
+       addArgument(parser, seqan::ArgParseArgument(
+	   seqan::ArgParseArgument::STRING, "TEXT"));
+
+       addOption(parser, seqan::ArgParseOption(
+	   "i", "period", "Period to use for the index.",
+	   seqan::ArgParseArgument::INTEGER, "INT"));
+       addOption(parser, seqan::ArgParseOption(
+	   "U", "uppercase", "Select to-uppercase as operation."));
+
+       // Parse command line.
+       seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+       // If parsing was not successful then exit with code 1 if there were errors.
+       // Otherwise, exit with code 0 (e.g. help was printed).
+       if (res != seqan::ArgumentParser::PARSE_OK)
+	   return res == seqan::ArgumentParser::PARSE_ERROR;
+
+       // Extract option values and print them.
+       unsigned period = 0;
+       getOptionValue(period, parser, "period");
+       bool toUppercase = isSet(parser, "uppercase");
+       seqan::CharString text;
+       getArgumentValue(text, parser, 0);
+
+       std::cout << "period   \t" << period << '\n'
+		 << "uppercase\t" << toUppercase << '\n'
+		 << "text     \t" << text << '\n';
+
+       return 0;
+   }
 
 Let us first play a bit around with the program before looking at it in detail.
 
@@ -112,21 +152,29 @@ A Detailed Look
 Let us look at this program in detail now. The required SeqAn module is ``seqan/arg_parse.h``.
 After inclusion, we can create an :dox:`ArgumentParser` object:
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
-   :fragment: object
+.. code-block:: cpp
+
+   seqan::ArgumentParser parser("modify_string");
 
 Then, we define a positional argument using the function :dox:`ArgumentParser#addArgument`.
 The function accepts the parser and an :dox:`ArgParseArgument` object.
 We call the :dox:`ArgParseArgument` constructor with three parameters: the type of the argument (a string), and a label for the documentation.
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
-   :fragment: argument
+.. code-block:: cpp
+
+   addArgument(parser, seqan::ArgParseArgument(
+       seqan::ArgParseArgument::STRING, "TEXT"));
 
 Then, we add options to the parser using :dox:`ArgumentParser#addOption`.
 We pass the parser and an :dox:`ArgParseOption` object.
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
-   :fragment: option
+.. code-block:: cpp
+
+   addOption(parser, seqan::ArgParseOption(
+       "i", "period", "Period to use for the index.",
+       seqan::ArgParseArgument::INTEGER, "INT"));
+   addOption(parser, seqan::ArgParseOption(
+       "U", "uppercase", "Select to-uppercase as operation."));
 
 The :dox:`ArgParseOption` constructor is called in two different variants.
 Within the first :dox:`ArgumentParser#addOption` call, we construct an integer option with a short and long name, a documentation string, and give it the label "INT".
@@ -161,8 +209,9 @@ If it has two arguments and the last one is a list then ``arg1``, ``arg2``, and
 
 Next, we parse the command line using :dox:`ArgumentParser#parse`.
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
-   :fragment: parse
+.. code-block:: cpp
+
+   seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
 
 We then check the result of the parsing operation.
 The result is ``seqan::ArgumentParser::PARSE_ERROR`` if there was a problem with the parsing.
@@ -174,15 +223,26 @@ The following two lines have the following behaviour.
 If the parsing went through and no special functionality was triggered then the branch is not taken.
 Otherwise, the method ``main()`` is left with ``1`` in case of errors and with ``0`` in case special behaviour was triggered (e.g. the help was printed).
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
-   :fragment: check
+.. code-block:: cpp
+
+   if (res != seqan::ArgumentParser::PARSE_OK)
+       return res == seqan::ArgumentParser::PARSE_ERROR;
 
 Finally, we access the values from the command line using the :dox:`ArgumentParser`.
 The function :dox:`ArgumentParser#getOptionValue` allows us to access the values from the command line after casting into C++ types.
 The function :dox:`ArgumentParser#isSet` allows us to query whether a given argument was set on the command line.
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example1_detailed.cpp
-   :fragment: print
+.. code-block:: cpp
+
+   unsigned period = 0;
+   getOptionValue(period, parser, "period");
+   bool toUppercase = isSet(parser, "uppercase");
+   seqan::CharString text;
+   getArgumentValue(text, parser, 0);
+
+   std::cout << "period   \t" << period << '\n'
+	     << "uppercase\t" << toUppercase << '\n'
+	     << "text     \t" << text << '\n';
 
 Assignment 1
 """"""""""""
@@ -220,7 +280,51 @@ Assignment 2
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/parsing_command_line_arguments/assignment2_solution.cpp
+        .. code-block:: cpp
+
+	   #include <iostream>
+
+	   #include <seqan/arg_parse.h>
+
+	   int main(int argc, char const ** argv)
+	   {
+	       // Setup ArgumentParser.
+	       seqan::ArgumentParser parser("modify_string");
+
+	       addArgument(parser, seqan::ArgParseArgument(
+		   seqan::ArgParseArgument::STRING, "TEXT"));
+
+	       addOption(parser, seqan::ArgParseOption(
+		   "i", "period", "Period to use for the index.",
+		   seqan::ArgParseArgument::INTEGER, "INT"));
+	       addOption(parser, seqan::ArgParseOption(
+		   "U", "uppercase", "Select to-uppercase as operation."));
+	       addOption(parser, seqan::ArgParseOption(
+		   "L", "lowercase", "Select to-lowercase as operation."));
+
+	       // Parse command line.
+	       seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+	       // If parsing was not successful then exit with code 1 if there were errors.
+	       // Otherwise, exit with code 0 (e.g. help was printed).
+	       if (res != seqan::ArgumentParser::PARSE_OK)
+		   return res == seqan::ArgumentParser::PARSE_ERROR;
+
+	       // Extract option values and print them.
+	       unsigned period = 0;
+	       getOptionValue(period, parser, "period");
+	       bool toUppercase = isSet(parser, "uppercase");
+	       bool toLowercase = isSet(parser, "lowercase");
+	       seqan::CharString text;
+	       getArgumentValue(text, parser, 0);
+
+	       std::cout << "period   \t" << period << '\n'
+			 << "uppercase\t" << toUppercase << '\n'
+			 << "lowercase\t" << toLowercase << '\n'
+			 << "text     \t" << text << '\n';
+
+	       return 0;
+	   }
 
 Using Default Values
 ^^^^^^^^^^^^^^^^^^^^
@@ -252,7 +356,50 @@ Assignment 3
     Solution
       .. container:: foldable
 
-          .. includefrags:: demos/tutorial/parsing_command_line_arguments/assignment3_solution.cpp
+         .. code-block:: cpp
+
+	    #include <iostream>
+
+	    #include <seqan/arg_parse.h>
+
+	    int main(int argc, char const ** argv)
+	    {
+		// Setup ArgumentParser.
+		seqan::ArgumentParser parser("modify_string");
+
+		addArgument(parser, seqan::ArgParseArgument(
+		    seqan::ArgParseArgument::STRING, "TEXT"));
+
+		addOption(parser, seqan::ArgParseOption(
+		    "i", "period", "Period to use for the index.",
+		    seqan::ArgParseArgument::INTEGER, "INT"));
+		setDefaultValue(parser, "period", "1");
+		addOption(parser, seqan::ArgParseOption(
+		    "U", "uppercase", "Select to-uppercase as operation."));
+
+		// Parse command line.
+		seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+		// If parsing was not successful then exit with code 1 if there were errors.
+		// Otherwise, exit with code 0 (e.g. help was printed).
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res == seqan::ArgumentParser::PARSE_ERROR;
+
+		// Extract option values and print them.
+		unsigned period = 0;
+		getOptionValue(period, parser, "period");
+		bool toUppercase = isSet(parser, "uppercase");
+		bool toLowercase = isSet(parser, "lowercase");
+		seqan::CharString text;
+		getArgumentValue(text, parser, 0);
+
+		std::cout << "period   \t" << period << '\n'
+			  << "uppercase\t" << toUppercase << '\n'
+			  << "lowercase\t" << toLowercase << '\n'
+			  << "text     \t" << text << '\n';
+
+		return 0;
+	    }
 
 Best Practice: Using Option Structs
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -282,7 +429,63 @@ Click ''more...'' to see the whole updated program.
 
 .. container:: foldable
 
-   .. includefrags:: demos/tutorial/parsing_command_line_arguments/example_with_struct.cpp
+   .. code-block:: cpp
+
+      #include <iostream>
+
+      #include <seqan/arg_parse.h>
+
+      struct ModifyStringOptions
+      {
+	  unsigned period;
+	  bool toUppercase;
+	  bool toLowercase;
+	  seqan::CharString text;
+
+	  ModifyStringOptions() :
+	      period(1), toUppercase(false), toLowercase(false)
+	  {}
+      };
+
+      int main(int argc, char const ** argv)
+      {
+	  // Setup ArgumentParser.
+	  seqan::ArgumentParser parser("modify_string");
+
+	  addArgument(parser, seqan::ArgParseArgument(
+	      seqan::ArgParseArgument::STRING, "TEXT"));
+
+	  addOption(parser, seqan::ArgParseOption(
+	      "i", "period", "Period to use for the index.",
+	      seqan::ArgParseArgument::INTEGER, "INT"));
+	  setDefaultValue(parser, "period", "1");
+	  addOption(parser, seqan::ArgParseOption(
+	      "U", "uppercase", "Select to-uppercase as operation."));
+	  addOption(parser, seqan::ArgParseOption(
+	      "L", "lowercase", "Select to-lowercase as operation."));
+
+	  // Parse command line.
+	  seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+	  // If parsing was not successful then exit with code 1 if there were errors.
+	  // Otherwise, exit with code 0 (e.g. help was printed).
+	  if (res != seqan::ArgumentParser::PARSE_OK)
+	      return res == seqan::ArgumentParser::PARSE_ERROR;
+
+	  // Extract option values and print them.
+	  ModifyStringOptions options;
+	  getOptionValue(options.period, parser, "period");
+	  options.toUppercase = isSet(parser, "uppercase");
+	  options.toLowercase = isSet(parser, "lowercase");
+	  getArgumentValue(options.text, parser, 0);
+
+	  std::cout << "period   \t" << options.period << '\n'
+		    << "uppercase\t" << options.toUppercase << '\n'
+		    << "lowercase\t" << options.toLowercase << '\n'
+		    << "text     \t" << options.text << '\n';
+
+	  return 0;
+      }
 
 Best Practice: Wrapping Parsing In Its Own Function
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -299,8 +502,85 @@ Click **more...** to see the updated program.
 
 .. container:: foldable
 
-   .. includefrags:: demos/tutorial/parsing_command_line_arguments/example_with_own_function.cpp
-
+   .. code-block:: cpp
+
+      #include <iostream>
+
+      #include <seqan/arg_parse.h>
+
+      struct ModifyStringOptions
+      {
+	  unsigned period;
+	  bool toUppercase;
+	  bool toLowercase;
+	  seqan::CharString text;
+
+	  ModifyStringOptions() :
+	      period(1), toUppercase(false), toLowercase(false)
+	  {}
+      };
+
+      seqan::ArgumentParser::ParseResult
+      parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
+      {
+	  // Setup ArgumentParser.
+	  seqan::ArgumentParser parser("modify_string");
+
+	  // We require one argument.
+	  addArgument(parser, seqan::ArgParseArgument(
+	      seqan::ArgParseArgument::STRING, "TEXT"));
+
+	  // Define Options
+	  addOption(parser, seqan::ArgParseOption(
+	      "i", "period", "Period to use for the index.",
+	      seqan::ArgParseArgument::INTEGER, "INT"));
+	  setDefaultValue(parser, "period", "1");
+	  addOption(parser, seqan::ArgParseOption(
+	      "U", "uppercase", "Select to-uppercase as operation."));
+	  addOption(parser, seqan::ArgParseOption(
+	      "L", "lowercase", "Select to-lowercase as operation."));
+
+	  // Parse command line.
+	  seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+	  // Only extract  options if the program will continue after parseCommandLine()
+	  if (res != seqan::ArgumentParser::PARSE_OK)
+	      return res;
+
+	  // Extract option values.
+	  getOptionValue(options.period, parser, "period");
+	  options.toUppercase = isSet(parser, "uppercase");
+	  options.toLowercase = isSet(parser, "lowercase");
+	  getArgumentValue(options.text, parser, 0);
+
+	  // If both to-uppercase and to-lowercase were selected then this is an error.
+	  if (options.toUppercase && options.toLowercase)
+	  {
+	      std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
+	      return seqan::ArgumentParser::PARSE_ERROR;
+	  }
+
+	  return seqan::ArgumentParser::PARSE_OK;
+      }
+
+      int main(int argc, char const ** argv)
+      {
+	  // Parse the command line.
+	  ModifyStringOptions options;
+	  seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+	  // If parsing was not successful then exit with code 1 if there were errors.
+	  // Otherwise, exit with code 0 (e.g. help was printed).
+	  if (res != seqan::ArgumentParser::PARSE_OK)
+	      return res == seqan::ArgumentParser::PARSE_ERROR;
+
+	  std::cout << "period   \t" << options.period << '\n'
+		    << "uppercase\t" << options.toUppercase << '\n'
+		    << "lowercase\t" << options.toLowercase << '\n'
+		    << "text     \t" << options.text << '\n';
+
+	  return 0;
+      }
 
 Feature-Complete Example Program
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -309,8 +589,111 @@ The command line parsing part of our program is done now.
 Let us now add a function ``modifyText()`` that is given a ``ModifyStringOptions`` object and text and modifies the text.
 We simply use the C standard library functios ``toupper()`` and ``tolower()`` from the header ``<cctype>`` for converting to upper and lower case.
 
-.. includefrags:: demos/tutorial/parsing_command_line_arguments/example_with_modifyString.cpp
+.. code-block:: cpp
+
+   #include <iostream>
 
+   #include <seqan/arg_parse.h>
+
+   struct ModifyStringOptions
+   {
+       unsigned period;
+       bool toUppercase;
+       bool toLowercase;
+       seqan::CharString text;
+
+       ModifyStringOptions() :
+	   period(1), toUppercase(false), toLowercase(false)
+       {}
+   };
+
+   seqan::ArgumentParser::ParseResult
+   parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
+   {
+       // Setup ArgumentParser.
+       seqan::ArgumentParser parser("modify_string");
+
+       // We require one argument.
+       addArgument(parser, seqan::ArgParseArgument(
+	   seqan::ArgParseArgument::STRING, "TEXT"));
+
+       // Define Options
+       addOption(parser, seqan::ArgParseOption(
+	   "i", "period", "Period to use for the index.",
+	   seqan::ArgParseArgument::INTEGER, "INT"));
+       setDefaultValue(parser, "period", "1");
+       addOption(parser, seqan::ArgParseOption(
+	   "U", "uppercase", "Select to-uppercase as operation."));
+       addOption(parser, seqan::ArgParseOption(
+	   "L", "lowercase", "Select to-lowercase as operation."));
+
+       // Parse command line.
+       seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+       // Only extract  options if the program will continue after parseCommandLine()
+       if (res != seqan::ArgumentParser::PARSE_OK)
+	   return res;
+
+       // Extract option values.
+       getOptionValue(options.period, parser, "period");
+       options.toUppercase = isSet(parser, "uppercase");
+       options.toLowercase = isSet(parser, "lowercase");
+       seqan::getArgumentValue(options.text, parser, 0);
+
+       // If both to-uppercase and to-lowercase were selected then this is an error.
+       if (options.toUppercase && options.toLowercase)
+       {
+	   std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
+	   return seqan::ArgumentParser::PARSE_ERROR;
+       }
+
+       return seqan::ArgumentParser::PARSE_OK;
+   }
+
+   seqan::CharString modifyString(seqan::CharString const & text,
+				  ModifyStringOptions const & options)
+   {
+       seqan::CharString result;
+
+       if (options.toLowercase)
+       {
+	   for (unsigned i = 0; i < length(text); ++i)
+	   {
+	       if (i % options.period == 0u)
+		   appendValue(result, tolower(text[i]));
+	       else
+		   appendValue(result, text[i]);
+	   }
+       }
+       else
+       {
+	   for (unsigned i = 0; i < length(text); ++i)
+	   {
+	       if (i % options.period == 0u)
+		   appendValue(result, toupper(text[i]));
+	       else
+		   appendValue(result, text[i]);
+	   }
+       }
+
+       return result;
+   }
+
+   int main(int argc, char const ** argv)
+   {
+       // Parse the command line.
+       ModifyStringOptions options;
+       seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+       // If parsing was not successful then exit with code 1 if there were errors.
+       // Otherwise, exit with code 0 (e.g. help was printed).
+       if (res != seqan::ArgumentParser::PARSE_OK)
+	   return res == seqan::ArgumentParser::PARSE_ERROR;
+
+       std::cout << modifyString(options.text, options) << '\n';
+
+       return 0;
+   }
 
 Setting Restrictions
 ^^^^^^^^^^^^^^^^^^^^
@@ -359,8 +742,119 @@ Assignment 4
     Solution
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/parsing_command_line_arguments/assignment4_solution.cpp
-
+         .. code-block:: cpp
+
+	    #include <iostream>
+
+	    #include <seqan/arg_parse.h>
+
+	    struct ModifyStringOptions
+	    {
+		unsigned period;
+		bool toUppercase;
+		bool toLowercase;
+		seqan::CharString text;
+
+		ModifyStringOptions() :
+		    period(1), toUppercase(false), toLowercase(false)
+		{}
+	    };
+
+	    seqan::ArgumentParser::ParseResult
+	    parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
+	    {
+		// Setup ArgumentParser.
+		seqan::ArgumentParser parser("modify_string");
+
+		// We require one argument.
+		addArgument(parser, seqan::ArgParseArgument(
+		    seqan::ArgParseArgument::STRING, "TEXT"));
+
+		// Define Options
+		addOption(parser, seqan::ArgParseOption(
+		    "i", "period", "Period to use for the index.",
+		    seqan::ArgParseArgument::INTEGER, "INT"));
+		setMinValue(parser, "period", "1");
+		setDefaultValue(parser, "period", "1");
+		addOption(parser, seqan::ArgParseOption(
+		    "r", "range", "Range of the text to modify.",
+		    seqan::ArgParseArgument::INTEGER, "INT", false, 2));
+		addOption(parser, seqan::ArgParseOption(
+		    "U", "uppercase", "Select to-uppercase as operation."));
+		addOption(parser, seqan::ArgParseOption(
+		    "L", "lowercase", "Select to-lowercase as operation."));
+
+		// Parse command line.
+		seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+		// Only extract  options if the program will continue after parseCommandLine()
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res;
+
+		// Extract option values.
+		getOptionValue(options.period, parser, "period");
+		getOptionValue(options.rangeBegin, parser, "range", 0);
+		getOptionValue(options.rangeEnd, parser, "range", 1);
+		options.toUppercase = isSet(parser, "uppercase");
+		options.toLowercase = isSet(parser, "lowercase");
+		seqan::getArgumentValue(options.text, parser, 0);
+
+		// If both to-uppercase and to-lowercase were selected then this is an error.
+		if (options.toUppercase && options.toLowercase)
+		{
+		    std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
+		    return seqan::ArgumentParser::PARSE_ERROR;
+		}
+
+		return seqan::ArgumentParser::PARSE_OK;
+	    }
+
+	    seqan::CharString modifyString(seqan::CharString const & text,
+					   ModifyStringOptions const & options)
+	    {
+		seqan::CharString result;
+
+		if (options.toLowercase)
+		{
+		    for (unsigned i = 0; i < length(text); ++i)
+		    {
+			if (i >= options.rangeBegin && i < options.rangeEnd &&
+			    (i % options.period == 0u))
+			    appendValue(result, tolower(text[i]));
+			else
+			    appendValue(result, text[i]);
+		    }
+		}
+		else
+		{
+		    for (unsigned i = 0; i < length(text); ++i)
+		    {
+			if (i >= options.rangeBegin && i < options.rangeEnd &&
+			    (i % options.period == 0u))
+			    appendValue(result, toupper(text[i]));
+			else
+			    appendValue(result, text[i]);
+		    }
+		}
+
+		return result;
+	    }
+
+	    int main(int argc, char const ** argv)
+	    {
+		// Parse the command line.
+		ModifyStringOptions options;
+		seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+		// If parsing was not successful then exit with code 1 if there were errors.
+		// Otherwise, exit with code 0 (e.g. help was printed).
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res == seqan::ArgumentParser::PARSE_ERROR;
+
+		std::cout << modifyString(options.text, options) << '\n';
+
+		return 0;
+	    }
 
 Marking Options as Required
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -458,7 +952,130 @@ Assignment 5
     Solution
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/parsing_command_line_arguments/assignment5_solution.cpp
+         .. code-block:: cpp
+
+	    #include <iostream>
+
+	    #include <seqan/arg_parse.h>
+
+	    struct ModifyStringOptions
+	    {
+		unsigned period;
+		unsigned rangeBegin, rangeEnd;
+		bool toUppercase;
+		bool toLowercase;
+		seqan::CharString inputFileName;
+
+		ModifyStringOptions() :
+		    period(1), rangeBegin(0), rangeEnd(0),toUppercase(false),
+		    toLowercase(false)
+		{}
+	    };
+
+	    seqan::ArgumentParser::ParseResult
+	    parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
+	    {
+		// Setup ArgumentParser.
+		seqan::ArgumentParser parser("modify_string");
+
+		// Define Options
+		addOption(parser, seqan::ArgParseOption(
+		    "I", "input-file",
+		    "A text file that will printed with the modifications applied.",
+		    seqan::ArgParseArgument::INPUT_FILE));
+		setValidValues(parser, "input-file", "txt");
+		setRequired(parser, "input-file");
+
+		addOption(parser, seqan::ArgParseOption(
+		    "i", "period", "Period to use for the index.",
+		    seqan::ArgParseArgument::INTEGER, "INT"));
+		setMinValue(parser, "period", "1");
+		setDefaultValue(parser, "period", "1");
+		addOption(parser, seqan::ArgParseOption(
+		    "U", "uppercase", "Select to-uppercase as operation."));
+		addOption(parser, seqan::ArgParseOption(
+		    "L", "lowercase", "Select to-lowercase as operation."));
+
+		// Parse command line.
+		seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+		// Only extract  options if the program will continue after parseCommandLine()
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res;
+
+		// Extract option values.
+		getOptionValue(options.period, parser, "period");
+		options.toUppercase = isSet(parser, "uppercase");
+		options.toLowercase = isSet(parser, "lowercase");
+		getOptionValue(options.inputFileName, parser, "input-file");
+
+		// If both to-uppercase and to-lowercase were selected then this is an error.
+		if (options.toUppercase && options.toLowercase)
+		{
+		    std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
+		    return seqan::ArgumentParser::PARSE_ERROR;
+		}
+
+		return seqan::ArgumentParser::PARSE_OK;
+	    }
+
+	    seqan::CharString modifyString(seqan::CharString const & text,
+					   ModifyStringOptions const & options)
+	    {
+		seqan::CharString result;
+
+		if (options.toLowercase)
+		{
+		    for (unsigned i = 0; i < length(text); ++i)
+		    {
+			if (i % options.period == 0u)
+			    appendValue(result, tolower(text[i]));
+			else
+			    appendValue(result, text[i]);
+		    }
+		}
+		else
+		{
+		    for (unsigned i = 0; i < length(text); ++i)
+		    {
+			if (i % options.period == 0u)
+			    appendValue(result, toupper(text[i]));
+			else
+			    appendValue(result, text[i]);
+		    }
+		}
+
+		return result;
+	    }
+
+	    int main(int argc, char const ** argv)
+	    {
+		// Parse the command line.
+		ModifyStringOptions options;
+		seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+		// If parsing was not successful then exit with code 1 if there were errors.
+		// Otherwise, exit with code 0 (e.g. help was printed).
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res == seqan::ArgumentParser::PARSE_ERROR;
+
+		std::fstream inFile(toCString(options.inputFileName), std::ios::binary | std::ios::in);
+		if (inFile.good())
+		{
+		    std::cerr << "ERROR: Could not open input file " << options.inputFileName << '\n';
+		    return 1;
+		}
+		seqan::CharString text;
+		while (inFile.good())
+		{
+		    char c = inFile.get();
+		    if (inFile.good())
+			appendValue(text, c);
+		}
+		std::cout << modifyString(text, options);
+
+		return 0;
+	    }
 
 Tuples
 ^^^^^^
@@ -510,8 +1127,114 @@ Assignment 6
     Solution
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/parsing_command_line_arguments/assignment6_solution.cpp
-
+         .. code-block:: cpp
+
+	    #include <iostream>
+
+	    #include <seqan/arg_parse.h>
+
+	    struct ModifyStringOptions
+	    {
+		unsigned period;
+		unsigned rangeBegin, rangeEnd;
+		bool toUppercase;
+		bool toLowercase;
+		seqan::CharString text;
+
+		ModifyStringOptions() :
+		    period(1), rangeBegin(0), rangeEnd(0),toUppercase(false),
+		    toLowercase(false)
+		{}
+	    };
+
+	    seqan::ArgumentParser::ParseResult
+	    parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
+	    {
+		// Setup ArgumentParser.
+		seqan::ArgumentParser parser("modify_string");
+
+		// We require one argument.
+		addArgument(parser, seqan::ArgParseArgument(
+		    seqan::ArgParseArgument::STRING, "TEXT"));
+
+		// Define Options
+		addOption(parser, seqan::ArgParseOption(
+		    "i", "period", "Period to use for the index.",
+		    seqan::ArgParseArgument::INTEGER, "INT"));
+		setMinValue(parser, "period", "1");
+		setDefaultValue(parser, "period", "1");
+		addOption(parser, seqan::ArgParseOption(
+		    "U", "uppercase", "Select to-uppercase as operation."));
+		addOption(parser, seqan::ArgParseOption(
+		    "L", "lowercase", "Select to-lowercase as operation."));
+
+		// Parse command line.
+		seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+		// Only extract  options if the program will continue after parseCommandLine()
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res;
+
+		// Extract option values.
+		getOptionValue(options.period, parser, "period");
+		options.toUppercase = isSet(parser, "uppercase");
+		options.toLowercase = isSet(parser, "lowercase");
+		seqan::getArgumentValue(options.text, parser, 0);
+
+		// If both to-uppercase and to-lowercase were selected then this is an error.
+		if (options.toUppercase && options.toLowercase)
+		{
+		    std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
+		    return seqan::ArgumentParser::PARSE_ERROR;
+		}
+
+		return seqan::ArgumentParser::PARSE_OK;
+	    }
+
+	    seqan::CharString modifyString(seqan::CharString const & text,
+					   ModifyStringOptions const & options)
+	    {
+		seqan::CharString result;
+
+		if (options.toLowercase)
+		{
+		    for (unsigned i = 0; i < length(text); ++i)
+		    {
+			if (i % options.period == 0u)
+			    appendValue(result, tolower(text[i]));
+			else
+			    appendValue(result, text[i]);
+		    }
+		}
+		else
+		{
+		    for (unsigned i = 0; i < length(text); ++i)
+		    {
+			if (i % options.period == 0u)
+			    appendValue(result, toupper(text[i]));
+			else
+			    appendValue(result, text[i]);
+		    }
+		}
+
+		return result;
+	    }
+
+	    int main(int argc, char const ** argv)
+	    {
+		// Parse the command line.
+		ModifyStringOptions options;
+		seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+		// If parsing was not successful then exit with code 1 if there were errors.
+		// Otherwise, exit with code 0 (e.g. help was printed).
+		if (res != seqan::ArgumentParser::PARSE_OK)
+		    return res == seqan::ArgumentParser::PARSE_ERROR;
+
+		std::cout << modifyString(options.text, options) << '\n';
+
+		return 0;
+	    }
 
 Embedding Rich Documentation
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -583,8 +1306,124 @@ Click **more...** to see the complete program.
 
 .. container:: foldable
 
-   .. includefrags:: demos/tutorial/parsing_command_line_arguments/final_solution.cpp
-
+   .. code-block:: cpp
+
+      #include <iostream>
+
+      #include <seqan/arg_parse.h>
+
+      struct ModifyStringOptions
+      {
+	  unsigned period;
+	  bool toUppercase;
+	  bool toLowercase;
+	  seqan::CharString text;
+
+	  ModifyStringOptions() :
+	      period(1), toUppercase(false), toLowercase(false)
+	  {}
+      };
+
+      seqan::ArgumentParser::ParseResult
+      parseCommandLine(ModifyStringOptions & options, int argc, char const ** argv)
+      {
+	  // Setup ArgumentParser.
+	  seqan::ArgumentParser parser("modify_string");
+	  // Set short description, version, and date.
+	  setShortDescription(parser, "String Modifier");
+	  setVersion(parser, "1.0");
+	  setDate(parser, "July 2012");
+
+	  // Define usage line and long description.
+	  addUsageLine(parser,
+		       "[\\fIOPTIONS\\fP] \"\\fITEXT\\fP\"");
+	  addDescription(parser,
+			 "This program allows simple character modifications to "
+			 "each i-th character.");
+
+	  // We require one argument.
+	  addArgument(parser, seqan::ArgParseArgument(
+	      seqan::ArgParseArgument::STRING, "TEXT"));
+
+	  // Define Options -- Section Modification Options
+	  addSection(parser, "Modification Options");
+	  addOption(parser, seqan::ArgParseOption(
+	      "i", "period", "Period to use for the index.",
+	      seqan::ArgParseArgument::INTEGER, "INT"));
+	  setDefaultValue(parser, "period", "1");
+	  addOption(parser, seqan::ArgParseOption(
+	      "U", "uppercase", "Select to-uppercase as operation."));
+	  addOption(parser, seqan::ArgParseOption(
+	      "L", "lowercase", "Select to-lowercase as operation."));
+
+	  // Add Examples Section.
+	  addTextSection(parser, "Examples");
+	  addListItem(parser,
+		      "\\fBmodify_string\\fP \\fB-U\\fP \\fIveryverylongword\\fP",
+		      "Print upper case version of \"veryverylongword\"");
+	  addListItem(parser,
+		      "\\fBmodify_string\\fP \\fB-L\\fP \\fB-i\\fP \\fI3\\fP "
+		      "\\fIveryverylongword\\fP",
+		      "Print \"veryverylongword\" with every third character "
+		      "converted to upper case.");
+
+	  // Parse command line.
+	  seqan::ArgumentParser::ParseResult res = seqan::parse(parser, argc, argv);
+
+	  // Only extract  options if the program will continue after parseCommandLine()
+	  if (res != seqan::ArgumentParser::PARSE_OK)
+	      return res;
+
+	  // Extract option values.
+	  getOptionValue(options.period, parser, "period");
+	  options.toUppercase = isSet(parser, "uppercase");
+	  options.toLowercase = isSet(parser, "lowercase");
+	  seqan::getArgumentValue(options.text, parser, 0);
+
+	  // If both to-uppercase and to-lowercase were selected then this is an error.
+	  if (options.toUppercase && options.toLowercase)
+	  {
+	      std::cerr << "ERROR: You cannot specify both to-uppercase and to-lowercase!\n";
+	      return seqan::ArgumentParser::PARSE_ERROR;
+	  }
+
+	  return seqan::ArgumentParser::PARSE_OK;
+      }
+
+      seqan::CharString modifyString(seqan::CharString const & text,
+				     ModifyStringOptions const & options)
+      {
+	  seqan::CharString result;
+
+	  if (options.toLowercase)
+	  {
+	      for (unsigned i = 0; i < length(text); ++i)
+		  appendValue(result, tolower(text[i]));
+	  }
+	  else
+	  {
+	      for (unsigned i = 0; i < length(text); ++i)
+		  appendValue(result, toupper(text[i]));
+	  }
+
+	  return result;
+      }
+
+      int main(int argc, char const ** argv)
+      {
+	  // Parse the command line.
+	  ModifyStringOptions options;
+	  seqan::ArgumentParser::ParseResult res = parseCommandLine(options, argc, argv);
+
+	  // If parsing was not successful then exit with code 1 if there were errors.
+	  // Otherwise, exit with code 0 (e.g. help was printed).
+	  if (res != seqan::ArgumentParser::PARSE_OK)
+	      return res == seqan::ArgumentParser::PARSE_ERROR;
+
+	  std::cout << modifyString(options.text, options) << '\n';
+
+	  return 0;
+      }
 
 Let us look at the resulting documentation.
 Simply call the new program with the ``--help`` option.
diff --git a/manual/source/Tutorial/PatternMatching.rst b/manual/source/Tutorial/PatternMatching.rst
index 7272115..011909a 100644
--- a/manual/source/Tutorial/PatternMatching.rst
+++ b/manual/source/Tutorial/PatternMatching.rst
@@ -58,12 +58,12 @@ Exact Search
 The following code snippet illustrates the usage of online search algorithms in SeqAn using the example of the Hoorspool algorithm :cite:`Horspool1980`.
 We begin by creating two strings of type ``char`` containing the ``haystack`` and the ``needle``.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_exact.cpp
+.. includefrags:: demos/tutorial/find/find_exact.cpp
    :fragment: initialization
 
 We then create :dox:`Finder` and :dox:`Pattern` objects of these strings and choose :dox:`HorspoolPattern Horspool` as the specialization in the second template argument of :dox:`Pattern`.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_exact.cpp
+.. includefrags:: demos/tutorial/find/find_exact.cpp
    :fragment: output
 
 Program output:
@@ -108,7 +108,7 @@ Currently the following exact online algorithms for searching a single sequence
 :dox:`AhoCorasickPattern AhoCorasick`
   :cite:`Aho1975`
 
-:dox:`MultipleShiftAndPattern MultipleShiftAnd`
+:dox:`MultipleShiftAndPattern MultiShiftAnd`
   Extension of :dox:`ShiftAndPattern ShiftAnd`, should only be used if the sum of needle lengths doesn't exceed the machine word size.
 
 Assignment 1
@@ -127,7 +127,7 @@ Assignment 1
    Hint
      Online search algorithms for multiple sequences simply expect needles of type ``String<String<...> >``.
 
-     .. includefrags:: demos/tutorial/pattern_matching/assignment1.cpp
+     .. includefrags:: demos/tutorial/find/find_assignment1.cpp
 
      You can use the specialization :dox:`WuManberPattern WuManber`.
 
@@ -136,7 +136,7 @@ Assignment 1
 
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pattern_matching/assignment1_solution.cpp
+         .. includefrags:: demos/tutorial/find/find_assignment1_solution.cpp
 
 	 We use a :dox:`Pattern` specialized with the :dox:`WuManberPattern WuManber` algorithm for the search and initialize it with our ``needles`` string.
 	 For every match found by :dox:`Finder#find` we output the begin and end position and the match region in the ``haystack`` as well as the index of the found ``needle`` which is returned by ``position(pattern)``.
@@ -161,7 +161,7 @@ We want to find all semi-global alignments of a ``needle`` "more" with a :dox:`S
 
 Again, we create ``haystack`` and ``needle`` strings first:
 
-.. includefrags:: demos/tutorial/pattern_matching/find_approx.cpp
+.. includefrags:: demos/tutorial/find/find_approx.cpp
    :fragment: initialization
 
 We then create :dox:`Finder` and :dox:`Pattern` objects of these strings and choose :dox:`DPSearchPattern DPSearch` as the specialization in the second template argument of :dox:`Pattern`.
@@ -172,7 +172,7 @@ If such a semi-global alignment end position is found the begin position is sear
 Please note that we have to set the minimum score to the score of the match found (:dox:`LocalAlignmentEnumerator#getScore`) in order to find the begin of a best match.
 We then output all begin and end positions and the corresponding ``haystack`` segment for each match found.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_approx.cpp
+.. includefrags:: demos/tutorial/find/find_approx.cpp
    :fragment: output
 
 Program output:
@@ -219,7 +219,7 @@ Assignment 2
 
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pattern_matching/assignment2_solution.cpp
+         .. includefrags:: demos/tutorial/find/find_assignment2_solution.cpp
 
 	 We again set the ``needle`` to ``"more"``.
 	 We then change the specialization tag of the :dox:`Pattern` to :dox:`MyersPattern Myers` with default arguments.
@@ -256,18 +256,18 @@ The following source illustrates the usage of an index based search in SeqAn usi
 This is the default index specialization if no second template argument for the index is given.
 We begin to create an index object of our ``haystack`` ``"tobeornottobe"`` and a ``needle`` ``"be"``.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_index.cpp
+.. includefrags:: demos/tutorial/find/find_index.cpp
    :fragment: initialization
 
 We proceed to create a :dox:`Pattern` of the needle and conduct the search in the usual way.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_index.cpp
+.. includefrags:: demos/tutorial/find/find_index.cpp
    :fragment: output
 
 Instead of creating and using a pattern solely storing the ``needle`` we can pass the needle directly to :dox:`Finder#find`.
 Please note that an :dox:`Index` based :dox:`Finder` has to be reset with :dox:`Finder#clear` before conducting another search.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_index.cpp
+.. includefrags:: demos/tutorial/find/find_index.cpp
    :fragment: output_short
 
 Program output:
@@ -282,12 +282,12 @@ Program output:
 All indices also support :dox:`StringSet` texts and can therefore be used to search multiple ``haystacks`` as the following example shows.
 We simply exchange the :dox:`CharString` of the haystack with a :dox:`StringSet` of :dox:`CharString` and append some strings to it.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_index_multiple.cpp
+.. includefrags:: demos/tutorial/find/find_index_multiple.cpp
    :fragment: initialization
 
 The rest of the program remains unchanged.
 
-.. includefrags:: demos/tutorial/pattern_matching/find_index_multiple.cpp
+.. includefrags:: demos/tutorial/find/find_index_multiple.cpp
    :fragment: output
 
 .. code-block:: console
@@ -330,7 +330,7 @@ Assignment 3
 
       .. container:: foldable
 
-         .. includefrags:: demos/tutorial/pattern_matching/assignment3_solution.cpp
+         .. includefrags:: demos/tutorial/find/find_assignment3_solution.cpp
 
 	 We simply add a second template argument to the definition of the :dox:`Index` as described in the documentation of the :dox:`OpenAddressingQGramIndex Open Adressing QGram Index`.
 	 As shape we can use an :dox:`UngappedShape` of length 4.
diff --git a/manual/source/Tutorial/QgramIndex.rst b/manual/source/Tutorial/QgramIndex.rst
deleted file mode 100644
index c551602..0000000
--- a/manual/source/Tutorial/QgramIndex.rst
+++ /dev/null
@@ -1,217 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-q-gram-index:
-
-Q-gram Index
-------------
-
-Learning Objective
-  You will know the features of the q-gram Index, how it can be used for searching and how to access the different fibres.
-
-Difficulty
-  Average
-
-Duration
-  1 h
-
-Prerequisites
-  :ref:`tutorial-sequences`, :ref:`tutorial-iterators`
-
-The Q-gram Index
-~~~~~~~~~~~~~~~~
-
-A q-gram index can be used to efficiently retrieve all occurrences of a certain q-gram in the text.
-It consists of various tables, called fibres (see :ref:`how-to-access-index-fibres`), to retrieve q-gram positions, q-gram counts, etc.
-However, it has no support for suffix tree iterators.
-A q-gram index must be specialized with a :dox:`Shape` type.
-A :dox:`Shape` defines q, the number of characters in a q-gram and possibly gaps between these characters.
-There are different specializations of :dox:`Shape` available:
-
-+-----------------------+--------------------+----------------------+
-| Specialization        | Modifiable         | Number of Gaps       |
-+=======================+====================+======================+
-| :dox:`UngappedShape`  | \-                 | 0                    |
-+-----------------------+--------------------+----------------------+
-| :dox:`SimpleShape`    | \+                 | 0                    |
-+-----------------------+--------------------+----------------------+
-| :dox:`OneGappedShape` | \+                 | 0/1                  |
-+-----------------------+--------------------+----------------------+
-| :dox:`GappedShape`    | \-                 | any                  |
-+-----------------------+--------------------+----------------------+
-| :dox:`GenericShape`   | \+                 | any                  |
-+-----------------------+--------------------+----------------------+
-
-* \- *fixed at compile time*, \+ *can be changed at runtime*
-
-Each shape evaluates a gapped or ungapped sequence of q characters to a hash value by the Functions :dox:`Shape#hash`, :dox:`Shape#hashNext`, etc.
-For example, the shape ``1101`` represents a 3-gram with one gap of length 1.
-This shape overlayed with the :dox:`Dna` text ``"GATTACA"`` at the third position corresponds to ``"TT-C"``.
-The function :dox:`Shape#hash` converts this 3-gram into :math:`61 = (\mathbf{3} \cdot 4 + \mathbf{3}) \cdot 4 + 1`.
-4 is the alphabet size in this example (see :dox:`FiniteOrderedAlphabetConcept#ValueSize`).
-
-With :dox:`Shape#hash` and :dox:`Shape#hash hashNext`, we can compute the hash values of arbitrary / adjacent q-grams and a loop that outputs the hash values of all overlapping ungapped 3-grams could look as follows:
-
-.. includefrags:: demos/tutorial/q_gram_index/index_qgram_hash.cpp
-   :fragment: hash_loop1
-
-Note that the shape not only stores the length and gaps of a q-gram shape but also stores the hash value returned by the last hash/hashNext call.
-This hash value can be retrieved by calling :dox:`Shape#value` on the shape.
-However, one drawback of the example loop above is that the first hash value must be computed with :dox:`Shape#hash` while the hash values of the following overlapping q-grams can more efficiently be computed by :dox:`Shape#hashNext`.
-This complicates the structure of algorithms that need to iterate all hash values, as they have to handle this first hash differently.
-As a remedy, the :dox:`Shape#hashInit` function can be used first and then :dox:`Shape#hashNext` on the first and all following text positions in the same way:
-
-.. includefrags:: demos/tutorial/q_gram_index/index_qgram_hash.cpp
-   :fragment: hash_loop2
-
-The q-gram index offers different functions to search or count occurrences of q-grams in an indexed text, see :dox:`IndexQGram#getOccurrences`, :dox:`IndexQGram#countOccurrences`.
-A q-gram index over a :dox:`StringSet` stores occurrence positions in the same way as the ESA index and in the same fibre (FibreSA).
-If only the number of q-grams per sequence are needed the QGramCounts and QGramCountsDir fibres can be used.
-They store pairs ``(seqNo, count)``, ``count``>0, for each q-gram that occurs ``counts`` times in sequence number ``seqNo``.
-
-To efficiently retrieve all occurrence positions or all pairs ``(seqNo, count)`` for a given q-gram, these positions or pairs are stored in contiguous blocks (in QGramSA, QGramCounts fibres), called buckets.
-The begin position of bucket i is stored in directory fibres (QGramDir, QGramCountsDir) at position i, the end position is the begin positions of the bucket i+1.
-The default implementation of the :dox:`IndexQGram` index maps q-gram hash values 1-to-1 to bucket numbers.
-For large q or large alphabets the :dox:`OpenAddressingQGramIndex Open Adressing QGram Index` can be more appropriate as its directories are additionally bound by the text length.
-This is realized by a non-trivial mapping from q-gram hashes to bucket numbers that requires an additional fibre (QGramBucketMap).
-
-For more details on q-gram index fibres see :ref:`how-to-access-index-fibres` or :dox:`QGramIndexFibres QGram Index Fibres`.
-
-Example
-~~~~~~~
-
-We want to construct the q-gram index of the string ``"CATGATTACATA"`` and output the occurrences of the ungapped 3-gram ``"CAT"``.
-As 3 is fixed at compile-time and the shape has no gaps we can use a :dox:`UngappedShape` which is the first template argument of :dox:`IndexQGram`, the second template argument of :dox:`Index`.
-Next we create the string ``"CATGATTACATA"`` and specialize the first index template argument with the type of this string.
-The string can be given to the index constructor.
-
-.. includefrags:: demos/tutorial/q_gram_index/index_qgram.cpp
-   :fragment: initialization
-
-To get all occurrences of a q-gram, we first have to hash it with a shape of the same type as the index shape (we can even use the index shape returned by :dox:`IndexQGram#indexShape`).
-The hash value returned by :dox:`Shape#hash` or :dox:`Shape#hashNext` is also stored in the shape and is used by the function :dox:`IndexQGram#getOccurrences` to retrieve all occurrences of our 3-gram.
-
-.. includefrags:: demos/tutorial/q_gram_index/index_qgram.cpp
-   :fragment: output
-
-Program output:
-
-.. code-block:: console
-
-   0
-   8
-
-Assignment 1
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Write a program that outputs all occurrences of the gapped q-gram "AT-A" in "CATGATTACATA".
-
-   Solution
-     .. container:: foldable
-
-	Before we can create a :dox:`DnaString` index of "CATGATTACATA", we have to choose an appropriate :dox:`Shape`.
-	Because our shape ``1101`` is known at compile-time and contains only one gap we could choose :dox:`OneGappedShape`, :dox:`GappedShape`, or :dox:`GenericShape` (see the commented-out code).
-	Although the :dox:`GenericShape` could be used for every possible shape, it is a good idea to choose a :dox:`Shape` with restrictions as its :dox:`Shape#hash` functions are more efficient in general.
-
-	.. includefrags:: demos/tutorial/q_gram_index/index_assignment5.cpp
-	   :fragment: initialization
-
-	Please note that the :dox:`Shape` object that corresponds to the :dox:`IndexQGram` index is empty initially and has to be set by :dox:`Shape#stringToShape` or :dox:`Shape#resize`.
-	This initialization is not necessary for :dox:`Shape` that are defined at compile-time, i.e. :dox:`UngappedShape` and :dox:`GappedShape`.
-	To search for "AT-A" we first have to hash it with the index shape or any other :dox:`Shape` with the same bitmap.
-	The we can use :dox:`IndexQGram#getOccurrences` to output all matches.
-
-	.. includefrags:: demos/tutorial/q_gram_index/index_assignment5.cpp
-          :fragment: output
-
-	.. tip::
-
-	   Instead of ``length(getOccurrences(...))`` we could have used :dox:`IndexQGram#countOccurrences`.
-	   But beware that :dox:`IndexQGram#countOccurrences` requires only the ``QGram_Dir`` fibre, whereas :dox:`IndexQGram#getOccurrences` requires both ``QGram_Dir`` and  ``QGram_SA``, see :ref:`how-to-access-index-fibres`.
-	   Because ``QGram_SA`` can be much more efficiently constructed during the construction of ``QGram_Dir``, ``QGram_Dir`` would be constructed twice.
-
-	Program output:
-
-	.. code-block:: console
-
-	   1
-	   4
-
-Assignment 2
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Review
-
-   Objective
-     Create and output a matrix M where M(i,j) is the number of common ungapped 5-grams between sequence i and sequence j for 3 random :dox:`Dna` sequences, each not longer than 200 characters.
-     Optional: Run the matrix calculation twice, once for an :dox:`IndexQGram` and once for an :dox:`OpenAddressingQGramIndex Open Adressing QGram Index` and output the directory sizes (QGram_Dir, QGram_CountsDir fibre).
-
-   Hint
-     A common q-gram that occurs :math:`a` times in one and :math:`b` times in the other sequence counts for :math:`\min(a,b)`.
-
-   Solution
-     .. container:: foldable
-
-        For generating random numbers we use the :dox:`MersenneTwisterRng` which is a specialization of the random number generator class :dox:`Rng`.
-        The random numbers returned by :dox:`Rng#pickRandomNumber` are arbitrary ``unsigned int`` values which we downscale to values between 0 and 3 and convert into :dox:`Dna` characters.
-        The 3 generated strings are of random length and appended to a :dox:`StringSet`.
-        The main algorithmus is encapsulated in a template function ``qgramCounting`` to easily switch between the two :dox:`IndexQGram` specializations.
-
-        .. includefrags:: demos/tutorial/q_gram_index/index_assignment6.cpp
-           :fragment: initialization
-
-        The main function expects the :dox:`StringSet` and the :dox:`Index` specialization as a tag.
-        First, we define lots of types we need to iterate and access the fibres directly.
-        We then notify the index about the fibres we require.
-        For storing the common q-grams we use a 2-dimensional :dox:`Matrix` object whose lengths have to be set with ``setLength`` for each dimension.
-        The matrix is initialized with zeros by :dox:`Matrix#resize`.
-
-        .. includefrags:: demos/tutorial/q_gram_index/index_assignment6.cpp
-           :fragment: matrix_init
-
-        The main part of the function iterates over the CountsDir fibre.
-        Each entry in this directory represents a q-gram bucket, a contiguous interval in the Counts fibre storing for every sequence the q-gram occurs in the number of occurrences in pairs (seqNo,count).
-        The interval begin of each bucket is stored in the directory and the interval end is the begin of the next bucket.
-        So the inner loops iterate over all non-empty buckets and two pairs (seqNo1,count1) and (seqNo2,count2) indicate that seqNo1 and seqNo2 have a common q-gram.
-        At the end the matrix can simply be output by shifting it to the ``cout`` stream.
-
-        .. includefrags:: demos/tutorial/q_gram_index/index_assignment6.cpp
-           :fragment: matrix_calculation
-
-        Please note that the :dox:`OpenAddressingQGramIndex open addressing` q-gram index directories are smaller than the :dox:`IndexQGram` index directories.
-
-        Program output:
-
-        .. code-block:: console
-
-           >Seq0
-           TCATTTTCTCGATGAAAGCGTTGACCCCACATATCGTTAGTACTCTTGTACCCT
-           >Seq1
-           TGATTGTGTAGAAACCGAACTACGGTACCTCCTGTTGGTAGTCACGATAGATTATAAAAGTATGTTCCCACCCTATCGACGAGACTGGCA
-           >Seq2
-           CCTAGGTGTTTGCGGTGTTGGTACGTGCG
-
-           Length of the CountsDir fibre: 1025
-
-           Common 5-mers for Seq_i, Seq_j
-           50	4	0
-           0	86	5
-           0	0	25
-
-           Length of the CountsDir fibre: 259
-
-           Common 5-mers for Seq_i, Seq_j
-           50	4	0
-           0	86	5
-           0	0	25
diff --git a/manual/source/Tutorial/Randomness.rst b/manual/source/Tutorial/Randomness.rst
index 78d3bf8..734c23b 100644
--- a/manual/source/Tutorial/Randomness.rst
+++ b/manual/source/Tutorial/Randomness.rst
@@ -38,13 +38,13 @@ These 32-bit numbers are then used by the :dox:`Pdf` specializations to generate
 The following program gives an example.
 First, we include the header ``<seqan/random.h>`` to get access to the module's functionality.
 
-.. includefrags:: demos/tutorial/randomness/examples.cpp
+.. includefrags:: demos/tutorial/random/random_examples.cpp
    :fragment: header
 
 During the initialization of the :dox:`Rng` object you have to pass a seed used as a start point for the randomization.
 Finally, function :dox:`Rng#pickRandomNumber` picks a random number from a :dox:`Rng`.
 
-.. includefrags:: demos/tutorial/randomness/examples.cpp
+.. includefrags:: demos/tutorial/random/random_examples.cpp
    :fragment: random-number-generation-raw
 
 The output of this fragment is:
@@ -56,14 +56,14 @@ The output of this fragment is:
 :dox:`MersenneTwisterRng Mersenne Twister Rng` generates 32-bit ``unsigned`` numbers.
 However, you should not rely on any specific type and use :dox:`Value` metafunction instead.
 
-.. includefrags:: demos/tutorial/randomness/examples.cpp
+.. includefrags:: demos/tutorial/random/random_examples.cpp
    :fragment: random-number-generation-metafunction-value
 
 If you prefer a special distribution of the randomly generated numbers you can use the above mentioned specializations of :dox:`Pdf`.
 SeqAn currently provides normal, log-normal and uniform probability density functions.
 Note, for uniform distributions the range of values is given as a closed interval, i.e. the last value is enclosed in the range.
 
-.. includefrags:: demos/tutorial/randomness/examples.cpp
+.. includefrags:: demos/tutorial/random/random_examples.cpp
    :fragment: random-number-generation-pdf
 
 The output of this fragment is:
@@ -78,7 +78,7 @@ Also note that you can initialize the :dox:`LogNormalPdf Log-Normal Pdf` either
 By default, you initialize it with the mean and standard deviation (mu and sigma) of the underlying normal distribution.
 Use the tags :dox:`LognormalConstructionTags#MuSigma` and :dox:`LognormalConstructionTags#MeanStdDev` in the constructor to select a mode.
 
-.. includefrags:: demos/tutorial/randomness/examples.cpp
+.. includefrags:: demos/tutorial/random/random_examples.cpp
    :fragment: random-number-generation-log-normal
 
 .. code-block:: console
@@ -92,7 +92,7 @@ Shuffling
 
 The function :dox:`shuffle` allows to shuffle a container, given a random number generator:
 
-.. includefrags:: demos/tutorial/randomness/examples.cpp
+.. includefrags:: demos/tutorial/random/random_examples.cpp
    :fragment: shuffling
 
 The output of this fragment is:
diff --git a/manual/source/Tutorial/Realignment.rst b/manual/source/Tutorial/Realignment.rst
index dea6497..5a514de 100644
--- a/manual/source/Tutorial/Realignment.rst
+++ b/manual/source/Tutorial/Realignment.rst
@@ -45,11 +45,11 @@ Consider the following program.
 It creates a fragment store and then reads a small reference (with a length of 2kb) from a FASTA file and also a SAM file with reads spanning a complex indel region at position ~920.
 Finally, it prints the multi-read alignment around this position using :dox:`AlignedReadLayout`.
 
-.. includefrags:: demos/tutorial/realignment/step1.cpp
+.. includefrags:: demos/tutorial/realign/step1.cpp
 
 The output of the program is as follows:
 
-.. includefrags:: demos/tutorial/realignment/step1.cpp.stdout
+.. includefrags:: demos/tutorial/realign/step1.cpp.stdout
 
 Performing the Realignment
 --------------------------
@@ -76,9 +76,9 @@ The parameter ``bandwidth`` controls the bandwidth of the banded alignment used
 If ``includeReference`` is ``true`` then the reference is added as a pseudo-read (a new read at the end of the read store).
 This can be used for computing alignments of the reads agains the original reference.
 
-.. includefrags:: demos/tutorial/realignment/step2.cpp
+.. includefrags:: demos/tutorial/realign/step2.cpp
 
 Here is the program's output.
 The reference pseudo-read is here shown as the first read (second row) below the reference (first row).
 
-.. includefrags:: demos/tutorial/realignment/step2.cpp.stdout
+.. includefrags:: demos/tutorial/realign/step2.cpp.stdout
diff --git a/manual/source/Tutorial/SamAndBamIO.rst b/manual/source/Tutorial/SamAndBamIO.rst
deleted file mode 100644
index 2a95deb..0000000
--- a/manual/source/Tutorial/SamAndBamIO.rst
+++ /dev/null
@@ -1,342 +0,0 @@
-.. sidebar:: ToC
-
-   .. contents::
-
-
-.. _tutorial-sam-bam-io:
-
-SAM and BAM I/O
-===============
-
-Learning Objective
-  In this tutorial, you will learn how to read and write SAM and BAM files.
-
-Difficulty
-  Average
-
-Duration
-  1 h (45 min if you know the SAM format)
-
-Prerequisites
-  :ref:`tutorial-sequences`, :ref:`tutorial-input-output-overview`, `SAM Format Specification <http://samtools.sourceforge.net/SAM1.pdf>`_
-
-Overview
---------
-
-.. warning::
-    
-    Before you can read/write BAM files (bgzf compressed SAM files) you need to make sure that your program is linked against the zlib library.
-    When you build your application within the SeqAn build infrastructure, the zlib library is automatically located by looking at the standard places for the library.
-    Also have a look at :ref:`tutorial-input-output-overview-formatted-files` to read more about support of compressed file I/O.
-    If the macro ``SEQAN_HAS_ZLIB`` is set to ``0`` then reading/writing BAM file format is disabled. 
-    It is set to ``1`` if the zlib could be found and reading/writing of compressed files is enabled automatically.
-    You can read :ref:`build-manual-integration-with-your-own-build-system`, :ref:`build-manual-using-the-find-seqan-cmake-module` and for windows users :ref:`how-to-install-contribs-on-windows` for further notes about using the zlib and libbz2 in your build infrastructure.
-
-This tutorial shows how to read and write SAM and BAM files using the :dox:`BamFileIn` and :dox:`BamFileOut` classes.
-It starts out with a quick reminder on the structure of SAM (and also BAM) files and continues with how to read and write SAM/BAM files and access the tags of a record.
-
-.. important::
-
-    Note that this tutorial is targeted at readers that already know about the SAM format.
-    If you do not know about the SAM format yet, then this tutorial will be harder for your to understand.
-
-Both SAM and BAM file store multi-read alignments.
-Storing alignments of longer sequences such as contigs from assemblies is also possible, but less common.
-Here, we will focus on multi-read alignments.
-
-SAM files are text files, having one record per line.
-BAM files are just binary, compressed versions of SAM files that have a stricter organization and aim to be more efficiently useable by programs and computers.
-The nuts and bolts of the formats are described in the `SAM Format Specification <http://samtools.sourceforge.net/SAM1.pdf>`_.
-
-The SAM and BAM related I/O functionality in SeqAn focuses on allowing access to these formats in SeqAn with thin abstractions.
-The :ref:`tutorial-fragment-store` Tutorial shows how to get a more high-level abstraction for multi-read alignments.
-
-.. important::
-
-    SAM/BAM I/O vs. Fragment Store
-
-    The :ref:`tutorial-fragment-store` provides a high-level view of multi-read alignments.
-    This is very useful if you want to do SNP or small indel detection because you need to access the alignment of the reads around your candidate regions.
-    However, storing the whole alignment of a 120GB BAM file obviously is not a good idea.
-
-    The SAM/BAM I/O functionaliy in SeqAn is meant for sequentially reading through SAM and BAM files.
-    Jumping within BAM files using BAI indices is described in the `Using BAM Indices`_.
-
-
-SAM / BAM Format
-----------------
-
-The following shows an example of a SAM file.
-
-.. includefrags:: demos/tutorial/sam_and_bam_io/example.sam
-
-SAM files are TSV (tab-separated-values) files and begin with an optional header.
-The header consists of multiple lines, starting with an ``'@'`` character, each line is a record.
-Each record starts with its identifier and is followed by tab-separated tags.
-Each tag in the header consists of a two-character identifier, followed by ``':'``, followed by the value.
-
-If present, the ``@HD`` record must be the first record and specifies the SAM version (tag ``VN``) used in this file and the sort order (``SO``).
-The optional ``@SQ`` header records give the reference sequence names (tag ``SN``) and lengths (tag ``LN``).
-There also are other header record types.
-
-The optional header section is followed by the alignment records.
-The alignment records are again tab-separated.
-There are 11 mandatory columns.
-
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| Col       | Field       | Type         | N/A Value       | Description                               |
-+===========+=============+==============+=================+===========================================+
-| 1         | QNAME       | string       | mandatory       | The query/read name.                      |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 2         | FLAG        | int          | mandatory       | The record's flag.                        |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 3         | RNAME       | string       | ``*``           | The reference name.                       |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 4         | POS         | 32-bit int   | ``0``           | 1-based position on the reference.        |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 5         | MAPQ        | 8-bit int    | ``255``         | The mapping quality.                      |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 6         | CIGAR       | string       | ``*``           | The CIGAR string of the alignment.        |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 7         | RNEXT       | string       | ``*``           | The reference of the next mate/segment.   |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 8         | PNEXT       | string       | ``0``           | The position of the next mate/seqgment.   |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 9         | TLEN        | string       | ``0``           | The observed length of the template.      |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 10        | SEQ         | string       | ``*``           | The query/read sequence.                  |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-| 11        | QUAL        | string       | ``*``           | The ASCII PHRED-encoded base qualities.   |
-+-----------+-------------+--------------+-----------------+-------------------------------------------+
-
-Notes:
-
-* The SAM standard talks about "queries".
-  In the context of read mapping, where the format originates, queries are reads.
-* The SAM standard talks about "templates" and "segments".
-  In the case of paired-end and mate-pair mapping the template consists of two segments, each is one read.
-  The template length is the insert size.
-* Paired-end reads are stored as two alignments records with the same QNAME.
-  The first and second mate are discriminated by the FLAG values.
-* When the FLAG indicates that SEQ is reverse-complemented, then QUAL is reversed.
-* Positions in the SAM file are 1-based.
-  When read into a :dox:`BamAlignmentRecord` (see below), the positions become 0-based.
-* The qualities must be stored as ASCII PHRED-encoded qualities.
-* The query and reference names must not contain whitespace.
-  It is common to trim query and reference ids at the first space.
-
-There are many ambiguities, recommendations, and some special cases in the formats that we do not describe here.
-We recommend that you follow this tutorial, start working with the SAM and BAM formats and later read the SAM specification "on demand" when you need it.
-
-The 11 mandatory columns are followed by an arbitrary number of optional tags.
-Tags have a two-character identifier followed by ``":${TYPE}:"``, followed by the tag's value.
-
-BAM files store their header as plain-text SAM headers.
-However, they additionally store the name and length information about the reference sequences.
-This information is mandatory since in BAM, the alignment records only contain the numeric ids of the reference sequences.
-Thus, the name is stored outside the record in the header.
-
-A First Working Example
------------------------
-
-The following program reads a file named ``example.sam`` and prints its contents back to the user on standard output.
-
-.. includefrags:: demos/tutorial/sam_and_bam_io/example1.cpp
-
-We instantiate a :dox:`BamFileIn` object for reading and a :dox:`BamFileOut` object for writing.
-First, we read the BAM header with :dox:`FormattedFileIn#readRecord` and we write it with :dox:`FormattedFileOut#writeRecord`.
-Then, we read each record from the input file and write it to the output file.
-The alignment records are read into :dox:`BamAlignmentRecord` objects, which we will focus on below.
-
-Assignment 1
-""""""""""""
-
-.. container:: assignment
-
-   Type
-     Reproduction
-
-   Objective
-     Create a file with the sample SAM content from above and adjust the path ``"example.sam"`` to the path to your SAM file (e.g. ``"/path/to/my_example.sam"``).
-
-   Solution
-      .. container:: foldable
-
-         .. includefrags:: demos/tutorial/sam_and_bam_io/solution1.cpp
-
-
-Accessing the Header
---------------------
-
-Sequence information (i.e. @SQ records) from the BAM header is stored in the :dox:`BamIOContext`.
-All remaining BAM header information is stored in the class :dox:`BamHeader`.
-
-.. important::
-   The header is not mandatory in SAM files and might be missing.
-
-The following program accesses the :dox:`BamIOContext` of its :dox:`BamFileIn` and prints the reference sequence names and lengths present in the BAM header.
-
-.. includefrags:: demos/tutorial/sam_and_bam_io/example2.cpp
-
-Accessing the Records
----------------------
-
-The class :dox:`BamAlignmentRecord` stores one alignment record of a SAM or BAM file.
-The class gives a in-memory representation that (1) is independent of whether it comes from/goes to a SAM or BAM file, (2) at the same time follows both formats closely, (3) allows for efficient storage and usage in C++, and (4) integrates well with the rest of the SeqAn library.
-
-The following definition gives an overview of the available fields, their types, and how they map to the SAM and BAM fields.
-Note that we use the :dox:`CigarElement` class to store entries in the CIGAR string.
-
-.. code-block:: cpp
-
-   namespace seqan {
-
-   class BamAlignmentRecord
-   {
-   public:
-       CharString qName;               // QNAME
-       __uint16 flag;                  // FLAG
-       __int32 rID;                    // REF
-       __int32 beginPos;               // POS
-       __uint8 mapQ;                   // MAPQ mapping quality, 255 for */invalid
-       __uint16 bin;                   // bin for indexing
-       String<CigarElement<> > cigar;  // CIGAR string
-       __int32 rNextId;                // RNEXT (0-based)
-       __int32 pNext;                  // PNEXT (0-based)
-       __int32 tLen;                   // TLEN
-       CharString seq;                 // SEQ, as in SAM/BAM file.
-       CharString qual;                // Quality string as in SAM (Phred).
-       CharString tags;                // Tags, raw as in BAM.
-
-       // Constants for marking pos, reference id and length members invalid (== 0/*).
-       static __int32 const INVALID_POS = -1;
-       static __int32 const INVALID_REFID = -1;
-       static __int32 const INVALID_LEN = 0;
-   };
-
-   }  // namespace seqan
-
-The static members ``INVALID_POS``, ``INVALID_REFID``, and ``INVALID_LEN`` store sentinel values for marking positions, reference sequence ids, and lengths as invalid or N/A.
-
-.. tip::
-   A :dox:`BamAlignmentRecord` is linked to a reference sequence by the field ``rID``.
-   The reference sequence information is stored in the BAM header and kept in the :dox:`BamIOContext`.
-   To easily access reference sequence name and and length relative to a given :dox:`BamAlignmentRecord` within a :dox:`BamFileIn`, use functions :dox:`BamAlignmentRecord#getContigName` and :dox:`BamAlignmentRecord#getContigLength`.
-
-An important related type is the enum :dox:`BamFlags` that provides constants for bit operations on the ``flag`` field.
-The functions :dox:`BamAlignmentRecord#hasFlagAllProper`, :dox:`BamAlignmentRecord#hasFlagDuplicate`, :dox:`BamAlignmentRecord#hasFlagFirst`, :dox:`BamAlignmentRecord#hasFlagLast`, :dox:`BamAlignmentRecord#hasFlagMultiple`, :dox:`BamAlignmentRecord#hasFlagNextRC`, :dox:`BamAlignmentRecord#hasFlagNextUnmapped`, :dox:`BamAlignmentRecord#hasFlagQCNoPass`, :dox:`BamAlignmentRecord#hasFlagRC`, :dox:`BamAlignmentRecord#hasFlagSecondary`, :dox:`BamAlignmentRecord#hasFlagUnmapped`, and :dox:`Bam [...]
-
-
-
-Assignment 2
-""""""""""""
-
-.. container:: assignment
-
-   Counting Records
-
-   Type
-     Review
-
-   Objective
-     Count the number of unmapped reads.
-
-   Hints
-     Use the function :dox:`BamAlignmentRecord#hasFlagUnmapped`.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/sam_and_bam_io/solution2.cpp
-
-
-Accessing the Records' Tags
----------------------------
-
-You can use the :dox:`BamTagsDict` class to access the the tag list of a record in a dictionary-like fashion.
-This class also performs the necessary casting when reading and writing tag list entries.
-
-:dox:`BamTagsDict` acts as a wrapper around the raw ``tags`` member of a :dox:`BamAlignmentRecord`, which is of type :dox:`CharString`:
-
-.. code-block:: cpp
-
-   seqan::BamAlignmentRecord record;
-   seqan::BamTagsDict tagsDict(record.tags);
-
-We can add a tag using the function :dox:`BamTagsDict#setTagValue`.
-When setting an already existing tag's value, its value will be overwritten.
-Note that in the following, we give the tags value in SAM format because it is easier to read, although they are stored in BAM format internally.
-
-.. code-block:: cpp
-
-   setTagValue(tagsDict, "NM", 2);
-   // => tags: "NM:i:2"
-   setTagValue(tagsDict, "NH", 1);
-   // => tags: "NM:i:2 NH:i:1"
-   setTagValue(tagsDict, "NM", 3);
-   // => tags: "NM:i:3 NH:i:1"
-
-The first parameter to :dox:`BamTagsDict#setTagValue` is the :dox:`BamTagsDict`, the second one is a two-character string with the key, and the third one is the value.
-Note that the type of tag entry will be taken automatically from the type of the third parameter.
-
-Reading values is slightly more complex because we have to handle the case that the value is not present.
-First, we get the index of the tag in the tag list.
-
-.. code-block:: cpp
-
-   unsigned tagIdx = 0;
-   if (!findTagKey(tagIdx, tagsDict, "NH"))
-       std::cerr << "ERROR: Unknown key!\n";
-
-Then, we can read the value from the :dox:`BamTagsDict` using the function :dox:`BamTagsDict#extractTagValue`.
-
-.. code-block:: cpp
-
-   int tagValInt = 0;
-   if (!extractTagValue(tagValInt, tagsDict, tagIdx))
-       std::cerr << "ERROR: There was an error extracting NH from tags!\n";
-
-The function returns a ``bool`` that is ``true`` on success and ``false`` otherwise.
-The extraction can fail if the index is out of bounds or the value in the dictionary cannot be cast to the type of the first parameter.
-
-The value in the tags dictionary will be casted to the type of the first parameter of :dox:`BamTagsDict#extractTagValue`:
-
-.. code-block:: cpp
-
-   short tagValShort = 0;
-   extractTagValue(tagValShort, tagsDict, tagIdx);
-
-Assignment 3
-""""""""""""
-
-.. container:: assignment
-
-   Reading Tags
-
-   Type
-     Review
-
-   Objective
-     Modify the solution of Assignment 2 to count the number of records having the ``"XX"`` tag.
-
-   Solution
-     .. container:: foldable
-
-        .. includefrags:: demos/tutorial/sam_and_bam_io/solution3.cpp
-
-
-Using BAM Indices
------------------
-
-SeqAn also contains features for reading BAM indices with the format ``.bai``. These indices can be built using the ``samtools index`` command. In the near future we plan to support building the bam index with SeqAn as well.   
-
-You can read indices into a :dox:`BaiBamIndex` object with the function :dox:`BamIndex#open`. Then, you can use the function :dox:`BamFileIn#jumpToRegion` to jump to a specific position within BAM files. After jumping, the next record to be read is before the given region. Therefore, you have to skip records until you access the one you are looking for.
-
-.. includefrags:: demos/tutorial/sam_and_bam_io/example7.cpp
-
-
-Next Steps
-----------
-
-* Read the `SAM Format Specification <http://samtools.sourceforge.net/SAM1.pdf>`_.
-* Continue with the :ref:`tutorial`.
diff --git a/manual/source/Tutorial/SamBamIO.rst b/manual/source/Tutorial/SamBamIO.rst
new file mode 100644
index 0000000..f8dc385
--- /dev/null
+++ b/manual/source/Tutorial/SamBamIO.rst
@@ -0,0 +1,332 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-sam-bam-io:
+
+SAM and BAM I/O
+===============
+
+Learning Objective
+  In this tutorial, you will learn how to read and write SAM and BAM files.
+
+Difficulty
+  Average
+
+Duration
+  1 h (45 min if you know the SAM format)
+
+Prerequisites
+  :ref:`tutorial-sequences`, :ref:`tutorial-input-output-overview`, `SAM Format Specification <http://samtools.sourceforge.net/SAM1.pdf>`_
+
+Overview
+--------
+
+This tutorial shows how to read and write SAM and BAM files using the :dox:`BamFileIn` and :dox:`BamFileOut` classes.
+It starts out with a quick reminder on the structure of SAM (and also BAM) files and continues with how to read and write SAM/BAM files and access the tags of a record.
+
+.. important::
+
+    Note that this tutorial is targeted at readers that already know about the SAM format.
+    If you do not know about the SAM format yet, then this tutorial will be harder for your to understand.
+
+Both SAM and BAM file store multi-read alignments.
+Storing alignments of longer sequences such as contigs from assemblies is also possible, but less common.
+Here, we will focus on multi-read alignments.
+
+SAM files are text files, having one record per line.
+BAM files are just binary, compressed versions of SAM files that have a stricter organization and aim to be more efficiently useable by programs and computers.
+The nuts and bolts of the formats are described in the `SAM Format Specification <http://samtools.sourceforge.net/SAM1.pdf>`_.
+
+The SAM and BAM related I/O functionality in SeqAn focuses on allowing access to these formats in SeqAn with thin abstractions.
+The :ref:`tutorial-fragment-store` Tutorial shows how to get a more high-level abstraction for multi-read alignments.
+
+.. important::
+
+    SAM/BAM I/O vs. Fragment Store
+
+    The :ref:`tutorial-fragment-store` provides a high-level view of multi-read alignments.
+    This is very useful if you want to do SNP or small indel detection because you need to access the alignment of the reads around your candidate regions.
+    However, storing the whole alignment of a 120GB BAM file obviously is not a good idea.
+
+    The SAM/BAM I/O functionaliy in SeqAn is meant for sequentially reading through SAM and BAM files.
+    Jumping within BAM files using BAI indices is described in the :ref:`tutorial-sam-bam-io` tutorial.
+
+SAM / BAM Format
+----------------
+
+The following shows an example of a SAM file.
+
+::
+
+    @HD VN:1.3  SO:coordinate
+    @SQ SN:ref  LN:45
+    @SQ SN:ref2 LN:40
+    r001    163 ref 7   30  8M4I4M1D3M  =   37  39  TTAGATAAAGAGGATACTG *   XX:B:S,12561,2,20,112
+    r002    0   ref 9   30  1S2I6M1P1I1P1I4M2I  *   0   0   AAAAGATAAGGGATAAA   *
+    r003    0   ref 9   30  5H6M    *   0   0   AGCTAA  *
+    r004    0   ref 16  30  6M14N1I5M   *   0   0   ATAGCTCTCAGC    *
+    r003    16  ref 29  30  6H5M    *   0   0   TAGGC   *
+    r001    83  ref 37  30  9M  =   7   -39 CAGCGCCAT   *
+
+SAM files are TSV (tab-separated-values) files and begin with an optional header.
+The header consists of multiple lines, starting with an ``'@'`` character, each line is a record.
+Each record starts with its identifier and is followed by tab-separated tags.
+Each tag in the header consists of a two-character identifier, followed by ``':'``, followed by the value.
+
+If present, the ``@HD`` record must be the first record and specifies the SAM version (tag ``VN``) used in this file and the sort order (``SO``).
+The optional ``@SQ`` header records give the reference sequence names (tag ``SN``) and lengths (tag ``LN``).
+There also are other header record types.
+
+The optional header section is followed by the alignment records.
+The alignment records are again tab-separated.
+There are 11 mandatory columns.
+
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| Col       | Field       | Type         | N/A Value       | Description                               |
++===========+=============+==============+=================+===========================================+
+| 1         | QNAME       | string       | mandatory       | The query/read name.                      |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 2         | FLAG        | int          | mandatory       | The record's flag.                        |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 3         | RNAME       | string       | ``*``           | The reference name.                       |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 4         | POS         | 32-bit int   | ``0``           | 1-based position on the reference.        |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 5         | MAPQ        | 8-bit int    | ``255``         | The mapping quality.                      |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 6         | CIGAR       | string       | ``*``           | The CIGAR string of the alignment.        |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 7         | RNEXT       | string       | ``*``           | The reference of the next mate/segment.   |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 8         | PNEXT       | string       | ``0``           | The position of the next mate/seqgment.   |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 9         | TLEN        | string       | ``0``           | The observed length of the template.      |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 10        | SEQ         | string       | ``*``           | The query/read sequence.                  |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+| 11        | QUAL        | string       | ``*``           | The ASCII PHRED-encoded base qualities.   |
++-----------+-------------+--------------+-----------------+-------------------------------------------+
+
+Notes:
+
+* The SAM standard talks about "queries".
+  In the context of read mapping, where the format originates, queries are reads.
+* The SAM standard talks about "templates" and "segments".
+  In the case of paired-end and mate-pair mapping the template consists of two segments, each is one read.
+  The template length is the insert size.
+* Paired-end reads are stored as two alignments records with the same QNAME.
+  The first and second mate are discriminated by the FLAG values.
+* When the FLAG indicates that SEQ is reverse-complemented, then QUAL is reversed.
+* Positions in the SAM file are 1-based.
+  When read into a :dox:`BamAlignmentRecord` (see below), the positions become 0-based.
+* The qualities must be stored as ASCII PHRED-encoded qualities.
+* The query and reference names must not contain whitespace.
+  It is common to trim query and reference ids at the first space.
+
+There are many ambiguities, recommendations, and some special cases in the formats that we do not describe here.
+We recommend that you follow this tutorial, start working with the SAM and BAM formats and later read the SAM specification "on demand" when you need it.
+
+The 11 mandatory columns are followed by an arbitrary number of optional tags.
+Tags have a two-character identifier followed by ``":${TYPE}:"``, followed by the tag's value.
+
+BAM files store their header as plain-text SAM headers.
+However, they additionally store the name and length information about the reference sequences.
+This information is mandatory since in BAM, the alignment records only contain the numeric ids of the reference sequences.
+Thus, the name is stored outside the record in the header.
+
+A First Working Example
+-----------------------
+
+The following program reads a file named ``example.sam`` and prints its contents back to the user on standard output.
+
+.. includefrags:: demos/tutorial/bam_io/example1.cpp
+
+We instantiate a :dox:`BamFileIn` object for reading and a :dox:`BamFileOut` object for writing.
+First, we read the BAM header with :dox:`FormattedFileIn#readRecord` and we write it with :dox:`FormattedFileOut#writeRecord`.
+Then, we read each record from the input file and write it to the output file.
+The alignment records are read into :dox:`BamAlignmentRecord` objects, which we will focus on below.
+
+Assignment 1
+""""""""""""
+
+.. container:: assignment
+
+   Type
+     Reproduction
+
+   Objective
+     Create a file with the sample SAM content from above and adjust the path ``"example.sam"`` to the path to your SAM file (e.g. ``"/path/to/my_example.sam"``).
+
+   Solution
+      .. container:: foldable
+
+         .. includefrags:: demos/tutorial/bam_io/solution1.cpp
+
+
+Accessing the Header
+--------------------
+
+Sequence information (i.e. @SQ records) from the BAM header is stored in the :dox:`BamIOContext`.
+All remaining BAM header information is stored in the class :dox:`BamHeader`.
+
+.. important::
+   The header is not mandatory in SAM files and might be missing.
+
+The following program accesses the :dox:`BamIOContext` of its :dox:`BamFileIn` and prints the reference sequence names and lengths present in the BAM header.
+
+.. includefrags:: demos/tutorial/bam_io/example2.cpp
+
+Accessing the Records
+---------------------
+
+The class :dox:`BamAlignmentRecord` stores one alignment record of a SAM or BAM file.
+The class gives a in-memory representation that (1) is independent of whether it comes from/goes to a SAM or BAM file, (2) at the same time follows both formats closely, (3) allows for efficient storage and usage in C++, and (4) integrates well with the rest of the SeqAn library.
+
+The following definition gives an overview of the available fields, their types, and how they map to the SAM and BAM fields.
+Note that we use the :dox:`CigarElement` class to store entries in the CIGAR string.
+
+.. code-block:: cpp
+
+   namespace seqan {
+
+   class BamAlignmentRecord
+   {
+   public:
+       CharString qName;               // QNAME
+       __uint16 flag;                  // FLAG
+       __int32 rID;                    // REF
+       __int32 beginPos;               // POS
+       __uint8 mapQ;                   // MAPQ mapping quality, 255 for */invalid
+       __uint16 bin;                   // bin for indexing
+       String<CigarElement<> > cigar;  // CIGAR string
+       __int32 rNextId;                // RNEXT (0-based)
+       __int32 pNext;                  // PNEXT (0-based)
+       __int32 tLen;                   // TLEN
+       CharString seq;                 // SEQ, as in SAM/BAM file.
+       CharString qual;                // Quality string as in SAM (Phred).
+       CharString tags;                // Tags, raw as in BAM.
+
+       // Constants for marking pos, reference id and length members invalid (== 0/*).
+       static __int32 const INVALID_POS = -1;
+       static __int32 const INVALID_REFID = -1;
+       static __int32 const INVALID_LEN = 0;
+   };
+
+   }  // namespace seqan
+
+The static members ``INVALID_POS``, ``INVALID_REFID``, and ``INVALID_LEN`` store sentinel values for marking positions, reference sequence ids, and lengths as invalid or N/A.
+
+.. tip::
+   A :dox:`BamAlignmentRecord` is linked to a reference sequence by the field ``rID``.
+   The reference sequence information is stored in the BAM header and kept in the :dox:`BamIOContext`.
+   To easily access reference sequence name and and length relative to a given :dox:`BamAlignmentRecord` within a :dox:`BamFileIn`, use functions :dox:`BamAlignmentRecord#getContigName` and :dox:`BamAlignmentRecord#getContigLength`.
+
+An important related type is the enum :dox:`BamFlags` that provides constants for bit operations on the ``flag`` field.
+The functions :dox:`BamAlignmentRecord#hasFlagAllProper`, :dox:`BamAlignmentRecord#hasFlagDuplicate`, :dox:`BamAlignmentRecord#hasFlagFirst`, :dox:`BamAlignmentRecord#hasFlagLast`, :dox:`BamAlignmentRecord#hasFlagMultiple`, :dox:`BamAlignmentRecord#hasFlagNextRC`, :dox:`BamAlignmentRecord#hasFlagNextUnmapped`, :dox:`BamAlignmentRecord#hasFlagQCNoPass`, :dox:`BamAlignmentRecord#hasFlagRC`, :dox:`BamAlignmentRecord#hasFlagSecondary`, :dox:`BamAlignmentRecord#hasFlagUnmapped`, and :dox:`Bam [...]
+
+
+
+Assignment 2
+""""""""""""
+
+.. container:: assignment
+
+   Counting Records
+
+   Type
+     Review
+
+   Objective
+     Count the number of unmapped reads.
+
+   Hints
+     Use the function :dox:`BamAlignmentRecord#hasFlagUnmapped`.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/bam_io/solution2.cpp
+
+
+Accessing the Records' Tags
+---------------------------
+
+You can use the :dox:`BamTagsDict` class to access the the tag list of a record in a dictionary-like fashion.
+This class also performs the necessary casting when reading and writing tag list entries.
+
+:dox:`BamTagsDict` acts as a wrapper around the raw ``tags`` member of a :dox:`BamAlignmentRecord`, which is of type :dox:`CharString`:
+
+.. code-block:: cpp
+
+   seqan::BamAlignmentRecord record;
+   seqan::BamTagsDict tagsDict(record.tags);
+
+We can add a tag using the function :dox:`BamTagsDict#setTagValue`.
+When setting an already existing tag's value, its value will be overwritten.
+Note that in the following, we give the tags value in SAM format because it is easier to read, although they are stored in BAM format internally.
+
+.. code-block:: cpp
+
+   setTagValue(tagsDict, "NM", 2);
+   // => tags: "NM:i:2"
+   setTagValue(tagsDict, "NH", 1);
+   // => tags: "NM:i:2 NH:i:1"
+   setTagValue(tagsDict, "NM", 3);
+   // => tags: "NM:i:3 NH:i:1"
+
+The first parameter to :dox:`BamTagsDict#setTagValue` is the :dox:`BamTagsDict`, the second one is a two-character string with the key, and the third one is the value.
+Note that the type of tag entry will be taken automatically from the type of the third parameter.
+
+Reading values is slightly more complex because we have to handle the case that the value is not present.
+First, we get the index of the tag in the tag list.
+
+.. code-block:: cpp
+
+   unsigned tagIdx = 0;
+   if (!findTagKey(tagIdx, tagsDict, "NH"))
+       std::cerr << "ERROR: Unknown key!\n";
+
+Then, we can read the value from the :dox:`BamTagsDict` using the function :dox:`BamTagsDict#extractTagValue`.
+
+.. code-block:: cpp
+
+   int tagValInt = 0;
+   if (!extractTagValue(tagValInt, tagsDict, tagIdx))
+       std::cerr << "ERROR: There was an error extracting NH from tags!\n";
+
+The function returns a ``bool`` that is ``true`` on success and ``false`` otherwise.
+The extraction can fail if the index is out of bounds or the value in the dictionary cannot be cast to the type of the first parameter.
+
+The value in the tags dictionary will be casted to the type of the first parameter of :dox:`BamTagsDict#extractTagValue`:
+
+.. code-block:: cpp
+
+   short tagValShort = 0;
+   extractTagValue(tagValShort, tagsDict, tagIdx);
+
+Assignment 3
+""""""""""""
+
+.. container:: assignment
+
+   Reading Tags
+
+   Type
+     Review
+
+   Objective
+     Modify the solution of Assignment 2 to count the number of records having the ``"XX"`` tag.
+
+   Solution
+     .. container:: foldable
+
+        .. includefrags:: demos/tutorial/bam_io/solution3.cpp
+
+
+Next Steps
+~~~~~~~~~~
+
+* Read the `SAM Format Specification <http://samtools.sourceforge.net/SAM1.pdf>`_.
+* Continue with the :ref:`tutorial`.
diff --git a/manual/source/Tutorial/SequenceIO.rst b/manual/source/Tutorial/SequenceIO.rst
index 63d475a..0d42318 100644
--- a/manual/source/Tutorial/SequenceIO.rst
+++ b/manual/source/Tutorial/SequenceIO.rst
@@ -31,13 +31,33 @@ FASTA/FASTQ are record-based files.
 A FASTA record contains the sequence id and the sequence characters.
 Here is an example of FASTA file:
 
-.. includefrags:: demos/tutorial/sequence_io/example.fa
+::
+
+    >seq1
+    CCCCCCCCCCCCCCC
+    >seq2
+    CGATCGATC
+    >seq3
+    TTTTTTT
 
 In addition to that, a FASTQ record contains also a quality value for each sequence character.
 Here is an example of FASTQ file:
 
 
-.. includefrags:: demos/tutorial/sequence_io/example.fq
+::
+
+    @seq1
+    CCCCCCCCCCCCCCC
+    +
+    IIIIIHIIIIIIIII
+    @seq2
+    CGATCGATC
+    +
+    IIIIIIIII
+    @seq3
+    TTTTTTT
+    +
+    IIIIHHG
 
 
 SeqFile Formats
@@ -56,7 +76,7 @@ A First Working Example
 Let us start out with a minimal working example.
 The following program reads a FASTA file called ``example.fa`` and prints out the identifier and the sequence of the first record.
 
-.. includefrags:: demos/tutorial/sequence_io/example1.cpp
+.. includefrags:: demos/tutorial/seq_io/example1.cpp
 
 We call the :dox:`FormattedFile#FormattedFile SeqFileIn constructor` with the path to the file to read.
 Successively, we call the function :dox:`SeqFileIn#readRecord` to read the first record from the file.
@@ -74,15 +94,19 @@ Assignment 1
      Copy the above example of FASTA file in a new file ``example.fa`` in a directory of your choice.
 
      Copy the program above into a new application ``basic_seq_io_example``, adjust the path ``"example.fa"`` to the just created FASTA file, compile the program, and run it.
+     For example, if you stored the file ``example.fa`` in ``/home/username/example.fa``, you replace the line ``seqan::SeqFileIn seqFileIn("example.fa");`` from above with ``seqan::SeqFileIn seqFileIn("/home/username/example.fa");``.
 
      You should see the following output:
 
-     .. includefrags:: demos/tutorial/sequence_io/example1.cpp.stdout
+     .. code-block:: console
+
+      # basic_seq_io
+      seq1    CCCCCCCCCCCCCCC
 
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequence_io/solution1.cpp
+        .. includefrags:: demos/tutorial/seq_io/solution1.cpp
 
 
 Handling Errors
@@ -105,7 +129,7 @@ Assignment 2
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequence_io/solution2.cpp
+        .. includefrags:: demos/tutorial/seq_io/solution2.cpp
 
 
 Accessing Records in Batches
@@ -155,7 +179,12 @@ Assignment 3
 
      You should be able to run your program on the example file we created above and see the following output:
 
-     .. includefrags:: demos/tutorial/sequence_io/solution3.cpp.stdout
+     .. code-block:: console
+
+         # basic_seq_io_example example.fa
+         seq1    CCCCCCCCCCCCCCC
+         seq2    CGATCGATC
+         seq3    TTTTTTT
 
    Hint
      You can use the function :dox:`SeqFileIn#readRecords` to load all records at once.
@@ -163,7 +192,7 @@ Assignment 3
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequence_io/solution3.cpp
+        .. includefrags:: demos/tutorial/seq_io/solution3.cpp
 
 
 Accessing Qualities
@@ -210,12 +239,17 @@ Assignment 4
 
      When your program is called on this file, the result should look as follows.
 
-     .. includefrags:: demos/tutorial/sequence_io/solution4.cpp.stdout
+     .. code-block:: console
+
+        # basic_seq_io_example example.fq
+        seq1    CCCCCCCCCCCCCCC    IIIIIHIIIIIIIII
+        seq2    CGATCGATC    IIIIIIIII
+        seq3    TTTTTTT      IIIIHHG
 
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequence_io/solution4.cpp
+        .. includefrags:: demos/tutorial/seq_io/solution4.cpp
 
 
 Next Steps
diff --git a/manual/source/Tutorial/Sequences.rst b/manual/source/Tutorial/Sequences.rst
index fbef6de..28beaec 100644
--- a/manual/source/Tutorial/Sequences.rst
+++ b/manual/source/Tutorial/Sequences.rst
@@ -69,8 +69,8 @@ You can find detailed information in the tutorial :ref:`tutorial-alphabets`.
 
 .. code-block:: cpp
 
-   String<Dna>         myGenome;   // A string of nucleotides.
-   String<AminoAcid>   myProtein;  // A string of amino acids.
+   String<Dna>        myGenome;   // A string of nucleotides.
+   String<AminAcid>   myProtein;  // A string of amino acids.
 
 For commonly used string parameterizations, SeqAn has a range of shortcuts implemented, e.g. :dox:`DnaString`, :dox:`RnaString` and :dox:`Peptide`.
 
@@ -180,16 +180,41 @@ Assignment 1
      #. Using the ``getRevCompl`` function, get the reverse complement for every nucleotide ``genome`` and store it in reverse order ``revComplGenome``.
      #. Print out the original genome and the reverse complement.
 
-        .. includefrags:: demos/tutorial/sequences/assignment_1_solution.cpp
-           :fragment: top
+     .. code-block:: cpp
 
-        .. code-block:: cpp
+        #include <seqan/sequence.h>
+        #include <seqan/basic.h>
+        #include <iostream>
+        #include <seqan/file.h>
+        #include <seqan/modifier.h>
+
+        using namespace seqan;
 
-           // Your code snippet here
+        Dna getRevCompl(Dna const & nucleotide)
+        {
+            if (nucleotide == (Dna)'A')
+                return (Dna)'T';
+            if (nucleotide == (Dna)'T')
+                return (Dna)'A';
+            if (nucleotide == (Dna)'C')
+                return (Dna)'G';
+            return (Dna)'C';
+        }
 
+        int main()
+        {
+            DnaString genome = "TATATACGCGCGAGTCGT";
+            DnaString revComplGenome;
 
-        .. includefrags:: demos/tutorial/sequences/assignment_1_solution.cpp
-           :fragment: bottom
+            // Your code snippet
+
+            // And to check if your output is correct,
+            // use the given SeqAn function reverseComplement(),
+            // which modifies the sequence in-place
+            reverseComplement(genome);
+            std::cout << genome << std::endl;
+            return 0;
+        }
 
    Hints
      Remember that the last element in ``genome`` is stored at position ``length(genome) - 1``.
@@ -199,12 +224,47 @@ Assignment 1
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequences/assignment_1_solution.cpp
-            :fragment: full
-
+        .. code-block:: cpp
 
-Assignment 2
-^^^^^^^^^^^^
+           #include <seqan/sequence.h>
+           #include <seqan/basic.h>
+           #include <iostream>
+           #include <seqan/file.h>
+           #include <seqan/modifier.h>
+
+           using namespace seqan;
+
+           Dna getRevCompl(Dna const & nucleotide)
+           {
+               if (nucleotide == (Dna)'A')
+                   return (Dna)'T';
+               if (nucleotide == (Dna)'T')
+                   return (Dna)'A';
+               if (nucleotide == (Dna)'C')
+                   return (Dna)'G';
+               return (Dna)'C';
+           }
+
+           int main()
+           {
+               DnaString genome = "TATATACGCGCGAGTCGT";
+               DnaString revComplGenome;
+               resize(revComplGenome, length(genome));
+
+               for (unsigned i = 0; i < length(genome); ++i)
+               {
+                   revComplGenome[length(genome) - 1 - i] = getRevCompl(genome[i]);
+               }
+
+               std::cout << genome << std::endl;
+               std::cout << revComplGenome << std::endl;
+               reverseComplement(genome);
+               std::cout << genome << std::endl;
+               return 0;
+           }
+
+Workshop Assignment 1
+^^^^^^^^^^^^^^^^^^^^^
 
 .. container:: assignment
 
@@ -220,29 +280,78 @@ Assignment 2
    #. Build another String bsChr1 as a copy of chr1, and exchange every 'C' with a 'T', as in a bisulfite treated genome.
    #. Print alignments of the reads and chr1 (or bschr1) using the function ``printAlign`` and the string ``alignPosList``.
 
-    .. includefrags:: demos/tutorial/sequences/assignment_2_solution.cpp
-          :fragment: one
-
-    .. code-block:: cpp
-
-        // Your code snippet here for 1.+2.
-
-    .. includefrags:: demos/tutorial/sequences/assignment_2_solution.cpp
-          :fragment: two
-
-    .. code-block:: cpp
-
-        // Your code snippet here for 3.
-
-    .. includefrags:: demos/tutorial/sequences/assignment_2_solution.cpp
-          :fragment: three
-
-    .. code-block:: cpp
-
-        // Your code snippet here for 3.
+   .. code-block:: cpp
 
-    .. includefrags:: demos/tutorial/sequences/assignment_2_solution.cpp
-          :fragment: four
+      #include <iostream>
+      #include <seqan/sequence.h>
+      #include <seqan/file.h>
+
+      using namespace seqan;
+      // Function to print simple alignment between two sequences with the same length
+      template <typename TText1, typename TText2>
+      void printAlign(TText1 const & genomeFragment, TText2 const & read)
+      {
+              std::cout <<  "Alignment " << std::endl;
+              std::cout << "  genome : " << genomeFragment << std::endl;
+              std::cout << "  read   : " << read << std::endl;
+      }
+
+      int main(int, char const **)
+      {
+          // Build reads and genomes
+          DnaString chr1 = "TATAATATTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTG"
+                           "CGATATATCGCGCTAGATGTGCAGCTCGATCGAATGCACGTGTGTGCGATC"
+                           "GATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATA"
+                           "TTAGCGGTCTAGCATTTAG";
+
+          // Build List containing all reads
+          typedef String<DnaString> TDnaList;
+          TDnaList readList;
+          resize(readList, 4);
+          readList[0] = "TTGCTATCGCGATATCGCTAGCTAGCTACGGATTATGCGCTCTGCGATATATCGCGCT";
+          readList[1] = "TCGATTAGCGTCGATCATCGATCTATATTAGCGCGCGGTATCGGACGATCATATTAGCGGTCTAGCATT";
+          readList[2] = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCATGTGCGCTGAAGCACACATGCACA";
+          readList[3] = "CGTGCACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGACA";
+
+          // Append a second chromosome sequence fragment to chr1
+          DnaString chr2 = "AGCCTGCGTACGTTGCAGTGCGTGCGTAGACTGTTGCAAGCCGGGGGTTCAT"
+                           "GTGCGCTGAAGCACACATGCACACGTCTCTGTGTTCCGACGTGTGTCACGTG"
+                           "CACTGCTGACGTCGTGGTTGTCACATCGTCGTGCGTGCGTACTGCTGCTGAC"
+                           "ACATGCTGCTG";
+          append(chr1, chr2);
+
+          // Print readlist
+          std::cout << " \n Read list: " << std::endl;
+          for(unsigned i = 0; i < length(readList); ++i)
+              std::cout << readList[i] << std::endl;
+
+          // Assume we have mapped the 4 reads to chr1 (and chr2) and now have the mapping start positions (no gaps).
+          // Store the start position in a String alignPosList: 7, 100, 172, 272
+
+          // Optional
+          // Bisulfite conversion
+          // Assume chr1 is beeing bisulfate treated: Copy chr1 to a new genome bsChr1 and exchange every 'C' with a 'T'
+          DnaString bsChr1;
+
+          // Print alignments of the reads with chr1 (or bsChr1) sequence using the function printAlign
+          // and the positions in alignPosList.
+          // To do that, you have to create a copy of the fragment in chr1 (bsChr1) that is aligned to the read.
+          std::cout << " \n Print alignment: " << std::endl;
+          for(unsigned i = 0; i < length(readList); ++i)
+          {
+              // Temporary copy of begin position (beginPosition) from alignPosList
+              // of a given alignment between the read and the genome
+
+              // Genome fragment
+              DnaString genomeFragment;
+              // We have to create a copy of the corresponding fragment of the genome, where the read aligns to
+
+
+              // Call of our function to print the simple alignment
+              printAlign(genomeFragment, readList[i]);
+          }
+          return 1;
+      }
 
    Hints
      You have to create a copy of the fragment in chr1 (bsChr1) that is aligned to the read.
@@ -252,8 +361,7 @@ Assignment 2
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequences/assignment_2_solution.cpp
-          :fragment: full
+        .. includefrags:: demos/tutorial/sequences/string_assignment_1_solution.cpp
 
 Comparisons
 ^^^^^^^^^^^
@@ -337,7 +445,7 @@ In some cases, :dox:`AssignableConcept#move` can also perform an in-place conver
 
    acgtgcat
 
-Assignment 3
+Assignment 2
 ^^^^^^^^^^^^
 
 .. container:: assignment
@@ -352,7 +460,7 @@ Assignment 3
 
      .. code-block:: cpp
 
-        #include <seqan/stream.h>
+        #include <iostream>
         #include <seqan/sequence.h>
         #include <seqan/file.h>
 
@@ -376,9 +484,31 @@ Assignment 3
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequences/assignment_3_solution.cpp
+        .. code-block:: cpp
+
+           #include <iostream>
+           #include <seqan/sequence.h>
+           #include <seqan/file.h>
 
-Assignment 4
+           using namespace seqan;
+
+           int main()
+           {
+               String<Dna5> nucleotides = "AGTCGTGNNANCT";
+               String<Dna5> lesser;
+               String<Dna5> greater;
+
+               for (unsigned i = 0; i < length(nucleotides); ++i){
+                   if (nucleotides[i] < 'G')
+                       appendValue(lesser, nucleotides[i]);
+                   else if (nucleotides[i] > 'G')
+                       appendValue(greater, nucleotides[i]);
+               }
+               std::cout << "Lesser nucleotides: " << lesser << std::endl;
+               std::cout << "Greater nucleotides: " << greater << std::endl;
+           }
+
+Assignment 3
 ^^^^^^^^^^^^
 
 .. container:: assignment
@@ -401,7 +531,7 @@ Assignment 4
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequences/assignment_4_solution.cpp
+        .. includefrags:: demos/tutorial/sequences/lexical_assignment_solution.cpp
 
 Segments
 ~~~~~~~~
@@ -445,7 +575,7 @@ The segment is *not* a copy of the sequence segment.
    If you want to change the host sequence, you have to explicilty modify this.
    If you want to modify only the segment, you have to explicitly make a copy of the string.
 
-Assignment 5
+Assignment 4
 ^^^^^^^^^^^^
 
 .. container:: assignment
@@ -461,34 +591,17 @@ Assignment 5
      In the main function a fragment of the Dna5String ``genome`` is copied and passed together with the Dna5String ``read`` to a ``print`` function.
      Adjust the code to use an infix of the genome, instead of copying the corresponding fragment.
 
-    .. includefrags:: demos/tutorial/sequences/assignment_5_solution.cpp
-          :fragment: top
-
-
-    .. code-block:: cpp
-
-        // We have to create a copy of the corresponding fragment of the genome, where the read aligns to
-        for (unsigned i = 0; i < length(read); ++i)
-        {
-            appendValue(genomeFragment, genome[beginPosition + i]);
-        }
-
-
-    .. includefrags:: demos/tutorial/sequences/assignment_5_solution.cpp
-          :fragment: bottom
-
-
+     .. includefrags:: demos/tutorial/sequences/segments_assignment_hint.cpp
 
    Solution
      Click **more...** to see the solution.
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/sequences/assignment_5_solution.cpp
-            :fragment: full
+        .. includefrags:: demos/tutorial/sequences/segments_assignment_solution.cpp
 
-Assignment 6
-^^^^^^^^^^^^
+Workshop Assignment 2
+^^^^^^^^^^^^^^^^^^^^^
 
 .. container:: assignment
 
@@ -506,4 +619,4 @@ Assignment 6
 
     .. container:: foldable
 
-       .. includefrags:: demos/tutorial/sequences/assignment_6_solution.cpp
+       .. includefrags:: demos/tutorial/sequences/segments_assignment_2_solution.cpp
diff --git a/manual/source/Tutorial/SequencesInDepth.rst b/manual/source/Tutorial/SequencesInDepth.rst
index c32a7ab..ab5248a 100644
--- a/manual/source/Tutorial/SequencesInDepth.rst
+++ b/manual/source/Tutorial/SequencesInDepth.rst
@@ -104,7 +104,7 @@ Each sequence object has a capacity, i.e. the reserved space for this object.
 The capacity can be set explicitly by functions such as :dox:`String#reserve` or :dox:`StringConcept#resize`.
 It can also bet set implicitly by functions like :dox:`ContainerConcept#append`, :dox:`AssignableConcept#assign`, :dox:`StringConcept#insert` or :dox:`StringConcept#replace`, if the operation's result exceeds the length of the target sequence.
 
-If the current capacity of a sequence is exceeded by chaining the length, we say that the sequence overflows.
+If the current capacity of a sequence is exceeded by chaning the length, we say that the sequence overflows.
 There are several overflow strategies that determine what actually happens when a string should be expanded beyond its capacity.
 The user can specify this for a function call by additionally handing over a tag.
 If no overflow strategy is specified, a default overflow strategy is selected depending on the type of the sequence.
@@ -127,11 +127,22 @@ The following overflow strategies exist:
 
 The next example illustrates how the different strategies could be used:
 
-.. includefrags:: demos/tutorial/sequences_in_depth/example_overflow.cpp
-   :fragment: example
+.. code-block:: cpp
+
+   String<Dna> dnaSeq;
+   // Sets the capacity of dnaSeq to 5.
+   resize(dnaSeq, 4, Exact());
+   // Only "TATA" is assigned to dnaSeq, since dnaSeq is limited to 4.
+   assign(str, "TATAGGGG", Limit());
+   std::cout << dnaSeq << std::endl;
+   // Use the default expansion strategy.
+   append(dnaSeq, "GCGCGC");
+   std::cout << dnaSeq << std::endl;
 
-.. includefrags:: demos/tutorial/sequences_in_depth/example_overflow.cpp.stdout
+.. code-block:: console
 
+   TATA
+   TATAGCGCGC
 
 Workshop Assignment 1
 ^^^^^^^^^^^^^^^^^^^^^
diff --git a/manual/source/Tutorial/SimpleReadMapping.rst b/manual/source/Tutorial/SimpleReadMapping.rst
new file mode 100644
index 0000000..a5169be
--- /dev/null
+++ b/manual/source/Tutorial/SimpleReadMapping.rst
@@ -0,0 +1,161 @@
+.. sidebar:: ToC
+
+   .. contents::
+
+
+.. _tutorial-simple-read-mapping:
+
+Simple Read Mapping
+===================
+
+Learning Objective
+  You will be able to write read mappers using SeqAn.
+
+Difficulty
+  Hard
+
+Duration
+  2 h
+
+Prerequisites
+  :ref:`tutorial-indices`, :ref:`tutorial-fragment-store`
+
+In this tutorial, we will walk you through the code of a simple read mapper **minimapper** that uses the SWIFT filter and uses approximate string search for verification.
+There are severe limitations to its capabilities but it's a read mapper in **12 effective lines of code** (ignoring includes, comments, typedefs, I/O and lines with closing braces).
+
+Try It
+------
+
+You can find the source code in the directory ``demos/tutorial/read_mapping/demos/tutorial/read_mapping``.
+Copy over the FASTA files into your build directory and test it:
+
+.. code-block:: console
+
+   $ cp .../demos/tutorial/read_mapping/*.fasta .
+   $ make demo_tutorial_minimapper
+   ...
+   $ ./demos/tutorial/read_mapping/demo_tutorial_minimapper
+   Invalid number of arguments.
+   USAGE: minimapper GENOME.fasta READS.fasta OUT.sam
+   $ ./demos/tutorial/read_mapping/tutorial_minimapper nc_001454.fasta reads_hamming.fasta out.sam
+   $ cat out.sam
+   @HD VN:1.0
+   @SQ SN:gi|9626553|ref|NC_001454.1|  LN:34214
+   @PG ID:SeqAn
+   nc_001454.fasta.fasta.000000005 8   gi|9626553|ref|NC_001454.1| 1396    255 36M *   0   0   TAGTGTTAGTTTATTCTGATGGAGTTGTGGAGTGAG    ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
+   nc_001454.fasta.fasta.000000003 8   gi|9626553|ref|NC_001454.1| 20574   255 36M *   0   0   CCGGCGGCGTACACTGGCTGGCCCTNGCCTGGAACC    ]]]]]]]]]]]]]]]]]]]]]]]]]!]]]]]]]]]]
+   nc_001454.fasta.fasta.000000007 8   gi|9626553|ref|NC_001454.1| 23191   255 36M *   0   0   GTGACAACGCGCGTTTGGCCGTACTCAAACGCACCA    ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
+
+Code Walkthrough
+----------------
+
+First, include the headers of the SeqAn modules we will use.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: includes
+
+We will now use some typedefs for the FragmentStore and SWIFT filter to get shortcuts to types used below.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: typedefs
+
+We define the global constant ``EPSILON`` (:math:`\vareps`), the allowed error rate.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: global-constants
+
+Evaluate the arguments from the command line.
+Use the functions :dox:`FragmentStore#loadContigs` and :dox:`FragmentStore#loadReads` to load the reference sequence (possibly more than one if the FASTA file contains more than one sequence) and reads into the FragmentStore.
+Note that these functions will automatically guess the file type for you.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: main-input
+
+Initialize :dox:`Finder` and :dox:`Pattern` for the q-gram index used by the swift filter.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: pattern-finder
+
+Now, iterate over all input sequence contigs and enumerate all SWIFT hits.
+These hits will contain all possible matches of the reads in the FragmentStore with up to :math:`\varepsilon \cdot \ell` (with :math:`\ell =` :dox:`ContainerConcept#length length(read)`) errors.
+Mismatches and indels are taken into consideration.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: swift
+
+Now, verify each possible match using a :dox:`HammingSimplePattern`.
+The verified matches will have Hamming distance :math:`< \lfloor \varepsilon \cdot \ell \rfloor`, edit distance is not considered.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: verification
+
+Finally, write out the resulting multiple read alignment to the SAM file with the file name on the command line.
+
+.. includefrags:: demos/tutorial/read_mapping/minimapper.cpp
+   :fragment: main-output
+
+Hands On!
+---------
+
+Programming can only be learned by programming, so let's get started.
+We create a new demo for the minimapper.
+
+.. code-block:: console
+	
+    ~ $ cd seqan-src/demos
+    demos $ mkdir minimapper
+    demos $ mkdir minimapper/minimapper.cpp
+
+Now, we copy over the code from the original location into our new app and build it.
+
+.. code-block:: console
+
+   demos $ cp tutorial/read_mapping/minimapper.cpp minimapper/minimapper.cpp
+   $ cd ../../build/Debug
+   $ cmake .
+   $ make demo_minimapper_minimapper
+   $ ./bin/demo_minimapper_minimapper
+   Invalid number of arguments.
+   USAGE: minimapper GENOME.fasta READS.fasta OUT.sam
+
+Now, play around with the source code.
+Here are some examples for things to try out.
+There are no solutions, and they are merely thought to get you started playing...
+
+Task 1: Use the ArgumentParser
+""""""""""""""""""""""""""""""
+
+Global constants are kind of inflexible.
+Instead of the global constant *EPSILON*, create an *Options* struct with a member variable *epsilon*, initialize it to 0.8 in the constructor and use an *Option* struct in the main program.
+Make the value for configurable using the class :dox:`ArgumentParser` described in the :ref:`tutorial-parsing-command-line-arguments` Tutorial.
+
+Task 2: Allow Edit Distance for Verification
+""""""""""""""""""""""""""""""""""""""""""""
+
+Currently, the read mapper can only find reads with mismatches but not
+with indels. The SWIFT filter will already create hits for positions
+with indels so you only have to adjust the verification step.
+
+Hint
+  Use the :dox:`MyersPattern Myers Pattern` for the approximate search.
+  Don't forget to call :dox:`Finder#findBegin` using the score (:dox:`MyersPattern#getScore`) of the last hit as the find begin score.
+  You can use one Myers Pattern object per read sequence to only perform the precomputation once.
+  If you reuse your finder object, don't forget to call :dox:`Finder#clear`.
+
+Task 3: Find Matches On Reverse-Complement
+""""""""""""""""""""""""""""""""""""""""""
+
+Another limitation is that only reads from the forward strand will be found.
+Either reverse-complement all reads or the contigs to find reads from the reverse strand.
+
+Maybe add options to limit searching to the forward or reverse strand.
+
+Hint
+  Reverse-complementing the contigs will be faster in practice:
+  First, an index is built over the reads which would have to be built twice if the reads were complemented.
+  Second, there will usually be more reads data than genome data if the coverage is greater than 1.
+
+Task 4: Allow Other Output Formats
+""""""""""""""""""""""""""""""""""
+
+Read the documentation on the function :dox:`FragmentStore#write` of the class :dox:`FragmentStore`.
diff --git a/manual/source/Tutorial/SimpleRnaSeq.rst b/manual/source/Tutorial/SimpleRnaSeq.rst
index 731a5ef..04e4b1a 100644
--- a/manual/source/Tutorial/SimpleRnaSeq.rst
+++ b/manual/source/Tutorial/SimpleRnaSeq.rst
@@ -114,7 +114,7 @@ Assignment 1
 
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment1.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment1.cpp
 
    Hint
      * Open STL `std::fstream <http://www.cplusplus.com/reference/iostream/ifstream>`_ objects and use the function :dox:`File#read` with a SAM or GTF tag.
@@ -125,7 +125,7 @@ Assignment 1
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_solution1.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_solution1.cpp
            :fragment: solution
 
 Extract Gene Intervals
@@ -178,22 +178,22 @@ Assignment 2
 
         Extend the definitions:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment2.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment2.cpp
            :fragment: definitions
 
         Add a function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment2.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment2.cpp
            :fragment: yourcode
 
         Extend the ``main`` function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment2.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment2.cpp
            :fragment: main
 
         and
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment2.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment2.cpp
            :fragment: main2
 
    Hint
@@ -216,7 +216,7 @@ Assignment 2
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_solution2.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_solution2.cpp
            :fragment: solution
 
 Construct Interval Trees
@@ -251,22 +251,22 @@ Assignment 3
 
         Extend the definitions:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment3.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment3.cpp
            :fragment: definitions
 
         Add a function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment3.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment3.cpp
            :fragment: yourcode
 
         Extend the ``main`` function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment3.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment3.cpp
            :fragment: main
 
         and
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment3.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment3.cpp
            :fragment: main2
 
    Hint
@@ -288,7 +288,7 @@ Assignment 3
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_solution3.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_solution3.cpp
            :fragment: solution
 
 Compute Gene Coverage
@@ -335,22 +335,22 @@ Assignment 4
 
         Extend the definitions:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment4.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment4.cpp
            :fragment: definitions
 
         Add a function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment4.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment4.cpp
            :fragment: yourcode
 
         Extend the ``main`` function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment4.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment4.cpp
            :fragment: main
 
         and
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment4.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment4.cpp
            :fragment: main2
 
    Hint
@@ -377,7 +377,7 @@ Assignment 4
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_solution4.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_solution4.cpp
            :fragment: solution
 
 
@@ -396,8 +396,28 @@ To compute the exon length of the gene (maximal exon length of all mRNA) use an
 For the number of total mapped reads simply use the number of alignments in the :dox:`FragmentStore::alignedReadStore`.
 Output the gene names and their RPKM values separated by tabs as follows:
 
-.. includefrags:: demos/tutorial/simple_rna_seq/genequant_solution5.cpp.stdout
-
+.. code-block:: console
+
+   #gene name	        RPKM value
+   ENSMUSG00000053211	5932.12
+   ENSMUSG00000069053	10540.1
+   ENSMUSG00000056673	12271.3
+   ENSMUSG00000069049	10742.2
+   ENSMUSG00000091749	7287.66
+   ENSMUSG00000068457	37162.8
+   ENSMUSG00000069045	13675
+   ENSMUSG00000069044	6380.36
+   ENSMUSG00000077793	2088.62
+   ENSMUSG00000000103	7704.74
+   ENSMUSG00000091571	10965.2
+   ENSMUSG00000069036	127128
+   ENSMUSG00000090405	10965.2
+   ENSMUSG00000090652	35271.2
+   ENSMUSG00000052831	68211.2
+   ENSMUSG00000069031	37564.2
+   ENSMUSG00000071960	34984
+   ENSMUSG00000091987	37056.3
+   ENSMUSG00000090600	2310.18
 
 .. todo: Move the files to somewhere else.
 
@@ -420,12 +440,12 @@ Assignment 5
 
         Add a function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment5.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment5.cpp
            :fragment: yourcode
 
         Extend the ``main`` function:
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_assignment5.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_assignment5.cpp
            :fragment: main
 
    Hint
@@ -441,7 +461,7 @@ Assignment 5
    Solution
      .. container:: foldable
 
-        .. includefrags:: demos/tutorial/simple_rna_seq/genequant_solution5.cpp
+        .. includefrags:: demos/tutorial/rnaseq/genequant_solution5.cpp
            :fragment: solution
 
 Next Steps
diff --git a/manual/source/Tutorial/StringSets.rst b/manual/source/Tutorial/StringSets.rst
index 0690f33..5c5f6bf 100644
--- a/manual/source/Tutorial/StringSets.rst
+++ b/manual/source/Tutorial/StringSets.rst
@@ -56,7 +56,7 @@ Specialization ``Owner<ConcatDirect>``
   The string set also stores lengths and starting positions of the strings.
   Inserting new strings into the set or removing strings from the set is more expensive than for the default :dox:`OwnerStringSet` specialization, since this involves moving all subsequent sequences in memory.
 
-Specialization ``Dependent<Tight>``
+Specialization ``Depedent<Tight>``
   This specialization stores sequence pointers consecutively in an array.
   Another array stores an id value for each sequence.
   That means that accessing given an id needs a search through the id array.
@@ -274,7 +274,7 @@ Workshop Assignment 4
      #. Build a StringSet of readList. Reuse the Rooted iterator above.
      #. Iterate over the StringSet and print out the values.
 
-     .. includefrags:: demos/tutorial/string_sets/assignment_3_workshop_solution.cpp
+     .. includefrags:: demos/tutorial/string_sets/assignment_3b_workshop_solution.cpp
 
    Solution
      Click **more...** to see the solution.
diff --git a/manual/source/Tutorial/GenericProgramming.rst b/manual/source/Tutorial/TemplateSubclassing.rst
similarity index 100%
rename from manual/source/Tutorial/GenericProgramming.rst
rename to manual/source/Tutorial/TemplateSubclassing.rst
diff --git a/manual/source/Tutorial/VcfIO.rst b/manual/source/Tutorial/VcfIO.rst
index e5750e8..c9ce4c9 100644
--- a/manual/source/Tutorial/VcfIO.rst
+++ b/manual/source/Tutorial/VcfIO.rst
@@ -51,7 +51,32 @@ For more details, see the `VCF Format Specification (v4.2) <https://samtools.git
 
 The following is an example of a VCF file:
 
-.. includefrags:: demos/tutorial/vcf_io/example.vcf
+::
+
+    ##fileformat=VCFv4.1
+    ##fileDate=20090805
+    ##source=myImputationProgramV3.1
+    ##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
+    ##contig=<ID=20,length=62435964,assembly=B36,md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
+    ##phasing=partial
+    ##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+    ##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+    ##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
+    ##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+    ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+    ##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+    ##FILTER=<ID=q10,Description="Quality below 10">
+    ##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+    ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+    ##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+    ##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+    ##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+    #CHROM POS     ID        REF    ALT     QUAL FILTER INFO                              FORMAT      NA00001        NA00002        NA00003
+    20     14370   rs6054257 G      A       29   PASS   NS=3;DP=14;AF=0.5;DB;H2           GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
+    20     17330   .         T      A       3    q10    NS=3;DP=11;AF=0.017               GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3   0/0:41:3
+    20     1110696 rs6040355 A      G,T     67   PASS   NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2   2/2:35:4
+    20     1230237 .         T      .       47   PASS   NS=3;DP=13;AA=T                   GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
+    20     1234567 microsat1 GTC    G,GTCT  50   PASS   NS=3;DP=9;AA=G                    GT:GQ:DP    0/1:35:4       0/2:17:2       1/1:40:3
 
 The file starts with meta information lines (starting with ``##``) with a key/value structure.
 The most important lines have the keys **contig**, **INFO**, **FILTER**, and **FORMAT**.
diff --git a/manual/source/Tutorial/WritingTests.rst b/manual/source/Tutorial/WritingTests.rst
index a9893fd..15b135a 100644
--- a/manual/source/Tutorial/WritingTests.rst
+++ b/manual/source/Tutorial/WritingTests.rst
@@ -101,7 +101,6 @@ The generated file looks as follows:
     #define TESTS_MY_MODULE_TEST_MY_MODULE_H_
 
     #include <seqan/basic.h>
-    #include <seqan/stream.h>
     #include <seqan/sequence.h>
 
     // A test for strings.
diff --git a/manual/source/conf.py b/manual/source/conf.py
index dede96d..c643ce4 100644
--- a/manual/source/conf.py
+++ b/manual/source/conf.py
@@ -49,26 +49,16 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'SeqAn'
-copyright = u'2015, The SeqAn Team'
-
-# <-- SeqAn: Determine current branch ----------------------------------------------
-
-# Get the current seqan-branch from the READTHEDOCS_VERSION enviornment variable.
-# If it is not set, e.g., if you build it manually for testing you can export
-# this variable before calling make html in the manual directory to match your
-# checked out branch.
-seqan_branch = os.environ.get('READTHEDOCS_VERSION', 'master')
-
-# -- SeqAn: Determine current branch ---------------------------------------------->
+copyright = u'2014, The SeqAn Team'
 
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
 #
 # The short X.Y version.
-version = seqan_branch.replace('seqan-v','')
+version = '1.4'
 # The full version, including alpha/beta/rc tags.
-release = version
+release = '1.4.2'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -276,18 +266,21 @@ texinfo_documents = [
 
 # -- Options for the Disqus integration -------------------------------------
 
-#on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
-#if on_rtd:
-#    html_context = {
-#      'disqus_shortname': 'seqan-manual',
-#    }
+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
+if on_rtd:
+    html_context = {
+      'disqus_shortname': 'seqan-manual',
+    }
 
 # -- Options for SeqAn plugins ----------------------------------------------
 
 # Configure the base URL for dox links.  By default, we point to the develop
 # branch, but if we are on readthedocs then we compute the URL from the
-# RTD_VERSION_SLUG configured by the rtd environment.
-doxlinks_base_url = 'http://docs.seqan.de/seqan/%s/' % version
+# release as configured in the release.
+doxlinks_base_url = 'http://docs.seqan.de/seqan/develop/'
+#if on_rtd:
+#  seqan_release = release.replace('seqan-v', '')
+#  doxlinks_base_url = 'http://docs.seqan.de/seqan/%s/' % seqan_release
 
 # Set path to JSON index generated by dox.
 doxlinks_dox_json = "../dox/html/js/search.data.js"
diff --git a/tests/align/test_evaluate_alignment.h b/tests/align/test_evaluate_alignment.h
index e4e57fa..a987b46 100644
--- a/tests/align/test_evaluate_alignment.h
+++ b/tests/align/test_evaluate_alignment.h
@@ -54,7 +54,7 @@ SEQAN_DEFINE_TEST(test_align_compute_alignment_stats)
     // Compute the alignment.
     seqan::Blosum62 scoringScheme(-1, -12);
     int score = globalAlignment(align, scoringScheme);
-//     std::cerr << align;
+    // std::cerr << align;
     SEQAN_ASSERT_EQ(score, 159);
 
     // Compute alignment statistics.
@@ -66,8 +66,8 @@ SEQAN_DEFINE_TEST(test_align_compute_alignment_stats)
     SEQAN_ASSERT_EQ(stats.numGapExtensions, 9u);
     SEQAN_ASSERT_EQ(stats.numMatches, 41u);
     SEQAN_ASSERT_EQ(stats.numMismatches, 96u);
-    SEQAN_ASSERT_EQ(stats.numPositiveScores, 69u);
-    SEQAN_ASSERT_EQ(stats.numNegativeScores, 68u);
+    SEQAN_ASSERT_EQ(stats.numPositiveScores, 91u);
+    SEQAN_ASSERT_EQ(stats.numNegativeScores, 46u);
     SEQAN_ASSERT_EQ(stats.alignmentScore, 159);
 }
 
diff --git a/tests/bam_io/CMakeLists.txt b/tests/bam_io/CMakeLists.txt
index 2f3dc79..2169a20 100644
--- a/tests/bam_io/CMakeLists.txt
+++ b/tests/bam_io/CMakeLists.txt
@@ -33,15 +33,13 @@ add_executable (test_bam_io
                test_bam_io.cpp
                test_bam_alignment_record.h
                test_bam_header_record.h
-               test_bam_index.h
                test_bam_io_context.h
                test_bam_sam_conversion.h
                test_bam_tags_dict.h
                test_read_sam.h
                test_write_bam.h
                test_write_sam.h
-               test_bam_file.h
-               test_bam_index.h)
+               test_bam_file.h)
 
 # Add dependencies found by find_package (SeqAn).
 target_link_libraries (test_bam_io ${SEQAN_LIBRARIES})
diff --git a/tests/bam_io/test_bam_file.h b/tests/bam_io/test_bam_file.h
index ecb23f4..c85257b 100644
--- a/tests/bam_io/test_bam_file.h
+++ b/tests/bam_io/test_bam_file.h
@@ -466,7 +466,7 @@ SEQAN_DEFINE_TEST(test_bam_io_bam_file_bam_file_size)
 
     readRecord(record, bamFile);
 
-    SEQAN_ASSERT_EQ((int)position(bamFile), 0x9F0000);
+    SEQAN_ASSERT_EQ((int)position(bamFile), 0x0120);
 }
 
 SEQAN_DEFINE_TEST(test_bam_io_bam_file_bam_file_seek)
diff --git a/tests/bam_io/test_bam_index.h b/tests/bam_io/test_bam_index.h
index 3cc42ee..d1611f1 100644
--- a/tests/bam_io/test_bam_index.h
+++ b/tests/bam_io/test_bam_index.h
@@ -40,30 +40,12 @@
 
 #include <seqan/bam_io.h>
 
-using namespace seqan;
-
-SEQAN_DEFINE_TEST(test_bam_io_bam_index_build)
+SEQAN_DEFINE_TEST(test_bam_io_bam_index_bai)
 {
-    CharString expectedBaiFilename = SEQAN_PATH_TO_ROOT();
-    append(expectedBaiFilename, "/tests/bam_io/small.bam.bai");
-
-    CharString bamFilename = SEQAN_PATH_TO_ROOT();
-    append(bamFilename, "/tests/bam_io/small.bam");
-
-    CharString tmpOutPath = SEQAN_TEMP_FILENAME();
-    append(tmpOutPath, ".bai");
-
-    BamIndex<Bai> baiIndex;
-    SEQAN_ASSERT(build(baiIndex, toCString(bamFilename)));
-    SEQAN_ASSERT(save(baiIndex, toCString(tmpOutPath)));
-
-    SEQAN_ASSERT(_compareBinaryFiles(toCString(tmpOutPath), toCString(expectedBaiFilename)));
-}
-
+    using namespace seqan;
 
-SEQAN_DEFINE_TEST(test_bam_io_bam_index_open)
-{
-    CharString baiFilename = SEQAN_PATH_TO_ROOT();
+    CharString baiFilename;
+    append(baiFilename, SEQAN_PATH_TO_ROOT());
     append(baiFilename, "/tests/bam_io/small.bam.bai");
 
     BamIndex<Bai> baiIndex;
@@ -80,7 +62,8 @@ SEQAN_DEFINE_TEST(test_bam_io_bam_index_open)
     SEQAN_ASSERT_EQ(getUnalignedCount(baiIndex), 0u);
 
     // File has same contents as in the SAM test.
-    CharString bamFilename = SEQAN_PATH_TO_ROOT();
+    CharString bamFilename;
+    append(bamFilename, SEQAN_PATH_TO_ROOT());
     append(bamFilename, "/tests/bam_io/small.bam");
 
     BamFileIn bamFile(toCString(bamFilename));
@@ -97,20 +80,4 @@ SEQAN_DEFINE_TEST(test_bam_io_bam_index_open)
     SEQAN_ASSERT_NOT(found);
 }
 
-SEQAN_DEFINE_TEST(test_bam_io_bam_index_save)
-{
-    CharString baiFilename = SEQAN_PATH_TO_ROOT();
-    append(baiFilename, "/tests/bam_io/small.bam.bai");
-    
-    CharString tmpOutPath = SEQAN_TEMP_FILENAME();
-    append(tmpOutPath, ".bai");
-    
-    BamIndex<Bai> baiIndex;
-    SEQAN_ASSERT(open(baiIndex, toCString(baiFilename)));
-    SEQAN_ASSERT(save(baiIndex, toCString(tmpOutPath)));
-    
-    SEQAN_ASSERT(_compareBinaryFiles(toCString(tmpOutPath), toCString(baiFilename)));
-}
-
-
 #endif  // TESTS_BAM_IO_TEST_BAM_INDEX_H_
diff --git a/tests/bam_io/test_bam_io.cpp b/tests/bam_io/test_bam_io.cpp
index f153be2..4980ffb 100644
--- a/tests/bam_io/test_bam_io.cpp
+++ b/tests/bam_io/test_bam_io.cpp
@@ -176,10 +176,7 @@ SEQAN_BEGIN_TESTSUITE(test_bam_io)
     SEQAN_CALL_TEST(test_bam_io_sam_file_issue_489);
 
     // Test BAM indices.
-    SEQAN_CALL_TEST(test_bam_io_bam_index_save);
-//  TODO(dadi): uncomment when BamIndex.build index is fixed
-//    SEQAN_CALL_TEST(test_bam_io_bam_index_build);
-    SEQAN_CALL_TEST(test_bam_io_bam_index_open);
+    SEQAN_CALL_TEST(test_bam_io_bam_index_bai);
 #endif
 }
 SEQAN_END_TESTSUITE
diff --git a/tests/basic/test_basic_alphabet_residue.h b/tests/basic/test_basic_alphabet_residue.h
index eeb254f..c234180 100644
--- a/tests/basic/test_basic_alphabet_residue.h
+++ b/tests/basic/test_basic_alphabet_residue.h
@@ -355,7 +355,7 @@ SEQAN_DEFINE_TEST(test_basic_alphabet_residue_metafunctions_amino_acid)
     SEQAN_ASSERT_EQ(+(BitsPerValue<AminoAcid>::VALUE), 5);
 
     // Ordered Alphabet Concept Metafunctions / Type Queries
-    SEQAN_ASSERT_EQ(MaxValue<AminoAcid>::VALUE, 26u);
+
     SEQAN_ASSERT_EQ(MaxValue<AminoAcid>::VALUE, AminoAcid('*'));
     SEQAN_ASSERT_EQ(maxValue<AminoAcid>(), AminoAcid('*'));
     SEQAN_ASSERT_EQ(maxValue(AminoAcid()), AminoAcid('*'));
@@ -380,23 +380,22 @@ SEQAN_DEFINE_TEST(test_basic_alphabet_residue_metafunctions_amino_acid)
     SEQAN_ASSERT_EQ(ordValue(AminoAcid('L')), 11);
     SEQAN_ASSERT_EQ(ordValue(AminoAcid('M')), 12);
     SEQAN_ASSERT_EQ(ordValue(AminoAcid('N')), 13);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('O')), 14);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('P')), 15);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('Q')), 16);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('R')), 17);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('S')), 18);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('T')), 19);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('U')), 20);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('V')), 21);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('W')), 22);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('Y')), 23);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('Z')), 24);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('X')), 25);
-    SEQAN_ASSERT_EQ(ordValue(AminoAcid('*')), 26);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('P')), 14);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('Q')), 15);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('R')), 16);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('S')), 17);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('T')), 18);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('U')), 19);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('V')), 20);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('W')), 21);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('Y')), 22);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('Z')), 23);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('X')), 24);
+    SEQAN_ASSERT_EQ(ordValue(AminoAcid('*')), 25);
 
     SEQAN_ASSERT(+(SameType_<typename ValueSize<AminoAcid>::Type, __uint8>::VALUE));
-    SEQAN_ASSERT_EQ(+ValueSize<AminoAcid>::VALUE, 27);
-    SEQAN_ASSERT_EQ(valueSize<AminoAcid>(), 27u);
+    SEQAN_ASSERT_EQ(+ValueSize<AminoAcid>::VALUE, 26);
+    SEQAN_ASSERT_EQ(valueSize<AminoAcid>(), 26u);
 
     // Alphabet With Unknown Value Concept Metafunctions / Type Queries
 
diff --git a/tests/find/test_find.cpp b/tests/find/test_find.cpp
index 124c42d..59173ad 100644
--- a/tests/find/test_find.cpp
+++ b/tests/find/test_find.cpp
@@ -1274,7 +1274,9 @@ SEQAN_DEFINE_TEST(test_find_online_multi_MultipleShiftAnd) {
 
 
 SEQAN_DEFINE_TEST(test_find_online_multi_SetHorspool) {
-    Test_OnlineAlgMulti<SetHorspool>(false);
+    // TODO(holtgrew): Original comment: Does not compile.
+    // TODO(holtgrew): Crashes, but was commented out in original code.
+    // Test_OnlineAlgMulti<SetHorspool>(false);
 }
 
 
diff --git a/tests/gff_io/example_with_comments.gff b/tests/gff_io/example_with_comments.gff
deleted file mode 100644
index 2934ad4..0000000
--- a/tests/gff_io/example_with_comments.gff
+++ /dev/null
@@ -1,6 +0,0 @@
-# comment 1
-ctg123	.	mRNA	1300	9000	.	+	.	ID=mrna0001;Name="sonichedgehog;hehe"
-# comment 2
-ctg123	.	exon	1300	1500	.	+	.	ID=exon00001;Parent=mrn a0001;Name
-ctg123	.	exon	1050	1500	.	+	.	ID=exon00002;Name;Parent=mrna0001
-# comment 3
diff --git a/tests/gff_io/test_gff_io.cpp b/tests/gff_io/test_gff_io.cpp
index 2659428..4ac2952 100644
--- a/tests/gff_io/test_gff_io.cpp
+++ b/tests/gff_io/test_gff_io.cpp
@@ -42,12 +42,11 @@
 SEQAN_BEGIN_TESTSUITE(test_gff_io)
 {
     // GFF tests
-    SEQAN_CALL_TEST(test_store_io_read_record_context_gff);
-    SEQAN_CALL_TEST(test_store_io_write_record_context_gff);
-    SEQAN_CALL_TEST(test_store_io_comment_processing_context_gff);
+	SEQAN_CALL_TEST(test_store_io_read_record_context_gff);
+	SEQAN_CALL_TEST(test_store_io_write_record_context_gff);
 
-    // GTF tests
-    SEQAN_CALL_TEST(test_store_io_read_record_context_gtf);
+	// GTF tests
+	SEQAN_CALL_TEST(test_store_io_read_record_context_gtf);
     SEQAN_CALL_TEST(test_store_io_read_record_gtf_pseudogenes);
     SEQAN_CALL_TEST(test_store_io_write_record_context_gtf);
 
diff --git a/tests/gff_io/test_gff_io.h b/tests/gff_io/test_gff_io.h
index b337c1d..e3edd9c 100644
--- a/tests/gff_io/test_gff_io.h
+++ b/tests/gff_io/test_gff_io.h
@@ -133,66 +133,6 @@ SEQAN_DEFINE_TEST(test_store_io_write_record_context_gff)
     SEQAN_ASSERT_EQ(goldString, compare);
 }
 
-SEQAN_DEFINE_TEST(test_store_io_comment_processing_context_gff)
-{
-    CharString gffPath = SEQAN_PATH_TO_ROOT();
-
-    // slightly modified version of "example.gff". 3 lines of comments are included.
-    append(gffPath, "/tests/gff_io/example_with_comments.gff");
-
-    String<char, MMap<> > inString;
-    open(inString, toCString(gffPath));
-    Iterator<String<char, MMap<> >, Rooted>::Type iter = begin(inString);
-
-    CharString buffer;
-
-    GffRecord record;
-    readRecord(record, buffer, iter);
-
-    SEQAN_ASSERT_EQ(record.ref, "ctg123");
-    SEQAN_ASSERT_EQ(record.source, "");
-    SEQAN_ASSERT_EQ(record.type, "mRNA");
-    SEQAN_ASSERT_EQ(record.beginPos, 1299u);
-    SEQAN_ASSERT_EQ(record.endPos, 9000u);
-    SEQAN_ASSERT_NEQ(record.score, record.score);
-    SEQAN_ASSERT_EQ(record.strand, '+');
-    SEQAN_ASSERT_EQ(record.phase, '.');
-    SEQAN_ASSERT_EQ(record.tagNames[0], "ID");
-    SEQAN_ASSERT_EQ(record.tagValues[0], "mrna0001");
-    SEQAN_ASSERT_EQ(record.tagNames[1], "Name");
-    SEQAN_ASSERT_EQ(record.tagValues[1], "sonichedgehog;hehe");
-
-    readRecord(record, buffer, iter);
-    SEQAN_ASSERT_EQ(record.ref, "ctg123");
-    SEQAN_ASSERT_EQ(record.source, "");
-    SEQAN_ASSERT_EQ(record.type, "exon");
-    SEQAN_ASSERT_EQ(record.beginPos, 1299u);
-    SEQAN_ASSERT_EQ(record.endPos, 1500u);
-    SEQAN_ASSERT_NEQ(record.score, record.score);
-    SEQAN_ASSERT_EQ(record.strand, '+');
-    SEQAN_ASSERT_EQ(record.phase, '.');
-    SEQAN_ASSERT_EQ(record.tagNames[0], "ID");
-    SEQAN_ASSERT_EQ(record.tagValues[0], "exon00001");
-    SEQAN_ASSERT_EQ(record.tagNames[1], "Parent");
-    SEQAN_ASSERT_EQ(record.tagValues[1], "mrn a0001");
-
-    readRecord(record, buffer, iter);
-    SEQAN_ASSERT_EQ(record.ref, "ctg123");
-    SEQAN_ASSERT_EQ(record.source, "");
-    SEQAN_ASSERT_EQ(record.type, "exon");
-    SEQAN_ASSERT_EQ(record.beginPos, 1049u);
-    SEQAN_ASSERT_EQ(record.endPos, 1500u);
-    SEQAN_ASSERT_NEQ(record.score, record.score);
-    SEQAN_ASSERT_EQ(record.strand, '+');
-    SEQAN_ASSERT_EQ(record.phase, '.');
-    SEQAN_ASSERT_EQ(record.tagNames[0], "ID");
-    SEQAN_ASSERT_EQ(record.tagValues[0], "exon00002");
-    SEQAN_ASSERT_EQ(record.tagNames[1], "Name");
-    SEQAN_ASSERT_EQ(record.tagValues[1], "");
-    SEQAN_ASSERT_EQ(record.tagNames[2], "Parent");
-}
-
-
 // Complex GTF format, from pseudogenes.org
 SEQAN_DEFINE_TEST(test_store_io_read_record_gtf_pseudogenes)
 {
diff --git a/tests/modifier/test_modifier.cpp b/tests/modifier/test_modifier.cpp
index dcf165a..f281780 100644
--- a/tests/modifier/test_modifier.cpp
+++ b/tests/modifier/test_modifier.cpp
@@ -62,7 +62,6 @@ SEQAN_BEGIN_TESTSUITE(test_modifier)
     SEQAN_CALL_TEST(test_modifer_shortcuts_reverse_complement_in_place_string_set);
     SEQAN_CALL_TEST(test_modifer_shortcuts_reverse_in_place_string);
     SEQAN_CALL_TEST(test_modifer_shortcuts_reverse_in_place_string_set);
-    SEQAN_CALL_TEST(test_modifier_reverse_iterator_metafunctions);
     SEQAN_CALL_TEST(test_modifer_shortcuts_to_lower_in_place_string);
     SEQAN_CALL_TEST(test_modifer_shortcuts_to_lower_in_place_string_set);
     SEQAN_CALL_TEST(test_modifer_shortcuts_to_upper_in_place_string);
@@ -90,6 +89,7 @@ SEQAN_BEGIN_TESTSUITE(test_modifier)
 
     // Test modifier view string.
     SEQAN_CALL_TEST(test_modifier_view_iterator_metafunctions);
+    SEQAN_CALL_TEST(test_modifier_view_iterator_metafunctions);
     SEQAN_CALL_TEST(test_modifier_view_iterator);
     // SEQAN_CALL_TEST(test_modifier_view_const_iterator);
     SEQAN_CALL_TEST(test_modifier_view_string_caesar_chiffre);
@@ -117,6 +117,5 @@ SEQAN_BEGIN_TESTSUITE(test_modifier)
     SEQAN_CALL_TEST(test_modifier_modified_string_reverse_segment);
 
     SEQAN_CALL_TEST(test_modifier_minimal);
-    SEQAN_CALL_TEST(test_modifier_reverse_back_front);
 }
 SEQAN_END_TESTSUITE
diff --git a/tests/modifier/test_modifier_string.h b/tests/modifier/test_modifier_string.h
index 7ee8cb2..8841887 100644
--- a/tests/modifier/test_modifier_string.h
+++ b/tests/modifier/test_modifier_string.h
@@ -104,8 +104,7 @@ SEQAN_DEFINE_TEST(test_modifier_modified_string_construct)
 
         TString original;
         TModifiedString modified(original);
-//NOTE(h-2): ModStrings cannot be constructed from temporaries
-//         TModifiedString modified2(suffix(original, 0));
+        TModifiedString modified2(suffix(original, 0));
     }
 
     {
@@ -118,8 +117,7 @@ SEQAN_DEFINE_TEST(test_modifier_modified_string_construct)
 
         TInnerModifiedString modified(frag);
         TOuterModifiedString modified2(frag);
-//NOTE(h-2): ModStrings cannot be constructed from temporaries
-//         TOuterModifiedString modified3(suffix(frag, 0));
+        TOuterModifiedString modified3(suffix(frag, 0));
     }
 }
 
@@ -435,88 +433,9 @@ SEQAN_DEFINE_TEST(test_modifier_minimal)
 
     TString original = "The QUICK brown fox.";
     TInnerModifiedString inner(original);
-
     // static_cast<typename seqan::Parameter_<TString>::Type *>(seqan::Nothing());  // #=> non-const reference
     // static_cast<typename TInnerModifiedString::THostPointer_ *>(seqan::Nothing());  // #=> const pointer
     // static_cast<typename seqan::Pointer_<TString>::Type *>(seqan::Nothing());
 }
 
-SEQAN_DEFINE_TEST(test_modifier_reverse_back_front)
-{
-    using namespace seqan;
-
-    {
-        typedef CharString TString;
-        typedef ModifiedString<TString, ModReverse> TInnerModifiedString;
-        typedef typename Iterator<TInnerModifiedString, Standard>::Type TIt;
-
-        TString original = "The QUICK brown fox.";
-        TInnerModifiedString inner(original);
-
-        TIt it = begin(inner, Standard());
-        SEQAN_ASSERT_EQ(*it, '.');
-        SEQAN_ASSERT_EQ((*begin(inner, Standard())), '.');
-        it = end(inner, Standard());
-        --it;
-        SEQAN_ASSERT_EQ(*it, 'T');
-
-        SEQAN_ASSERT_EQ(front(inner), '.');
-        SEQAN_ASSERT_EQ(back(inner), 'T');
-    }
-    {
-        typedef CharString const TString;
-        typedef ModifiedString<TString, ModReverse> TInnerModifiedString;
-        typedef typename Iterator<TInnerModifiedString, Standard>::Type TIt;
-
-        TString original = "The QUICK brown fox.";
-        TInnerModifiedString inner(original);
-
-        TIt it = begin(inner, Standard());
-        SEQAN_ASSERT_EQ(*it, '.');
-        SEQAN_ASSERT_EQ((*begin(inner, Standard())), '.');
-        it = end(inner, Standard());
-        --it;
-        SEQAN_ASSERT_EQ(*it, 'T');
-
-        SEQAN_ASSERT_EQ(front(inner), '.');
-        SEQAN_ASSERT_EQ(back(inner), 'T');
-    }
-}
-
-SEQAN_DEFINE_TEST(test_modifier_reverse_iterator_metafunctions)
-{
-    using namespace seqan;
-
-    typedef ModifiedIterator<CharString, ModReverse> TModifiedIterator;
-
-    {
-        typedef char TExpected;
-        typedef Value<TModifiedIterator>::Type TResult;
-        bool res = IsSameType<TExpected, TResult>::VALUE;
-        SEQAN_ASSERT(res);
-        #ifdef SEQAN_CXX11_STANDARD
-        static_assert(std::is_same<TExpected, TResult>::value, "Different type expected.");
-        #endif
-    }
-    {
-        typedef char const & TExpected;
-        typedef GetValue<TModifiedIterator>::Type TResult;
-        bool res = IsSameType<TExpected, TResult>::VALUE;
-        SEQAN_ASSERT(res);
-        #ifdef SEQAN_CXX11_STANDARD
-        static_assert(std::is_same<TExpected, TResult>::value, "Different type expected.");
-        #endif
-    }
-    {
-        typedef char & TExpected;
-        typedef Reference<TModifiedIterator>::Type TResult;
-        bool res = IsSameType<TExpected, TResult>::VALUE;
-        #ifdef SEQAN_CXX11_STANDARD
-        static_assert(std::is_same<TExpected, TResult>::value, "Different type expected.");
-        #endif
-        SEQAN_ASSERT(res);
-    }
-}
-
-
 #endif // #ifndef SEQAN_TESTS_MODIFIER_TEST_MODIFIER_STRING_H_
diff --git a/tests/modifier/test_modifier_view.h b/tests/modifier/test_modifier_view.h
index 38ce251..fd94ab0 100644
--- a/tests/modifier/test_modifier_view.h
+++ b/tests/modifier/test_modifier_view.h
@@ -69,7 +69,7 @@ SEQAN_DEFINE_TEST(test_modifier_view_iterator_metafunctions)
         SEQAN_ASSERT(res);
     }
     {
-        typedef char TExpected;
+        typedef char & TExpected;
         typedef Reference<TModifiedIterator>::Type TResult;
         bool res = IsSameType<TExpected, TResult>::VALUE;
         SEQAN_ASSERT(res);
diff --git a/tests/parallel/test_parallel.cpp b/tests/parallel/test_parallel.cpp
index 18af506..555cc32 100755
--- a/tests/parallel/test_parallel.cpp
+++ b/tests/parallel/test_parallel.cpp
@@ -97,9 +97,9 @@ SEQAN_BEGIN_TESTSUITE(test_parallel) {
         SEQAN_CALL_TEST(test_parallel_queue_spmc_fixedsize);
         SEQAN_CALL_TEST(test_parallel_queue_spmc_dynamicsize);
         SEQAN_CALL_TEST(test_parallel_queue_mpsc_fixedsize);
-//        SEQAN_CALL_TEST(test_parallel_queue_mpsc_dynamicsize);
-//        SEQAN_CALL_TEST(test_parallel_queue_mpmc_fixedsize);
-//        SEQAN_CALL_TEST(test_parallel_queue_mpmc_dynamicsize);
+        SEQAN_CALL_TEST(test_parallel_queue_mpsc_dynamicsize);
+        SEQAN_CALL_TEST(test_parallel_queue_mpmc_fixedsize);
+        SEQAN_CALL_TEST(test_parallel_queue_mpmc_dynamicsize);
     }
 #endif
 }
diff --git a/tests/reduced_aminoacid/test_reduced_aminoacid.cpp b/tests/reduced_aminoacid/test_reduced_aminoacid.cpp
index 5d24ed5..2f045f6 100644
--- a/tests/reduced_aminoacid/test_reduced_aminoacid.cpp
+++ b/tests/reduced_aminoacid/test_reduced_aminoacid.cpp
@@ -43,7 +43,6 @@ SEQAN_BEGIN_TESTSUITE(test_reduced_aminoacid)
 {
 //     SEQAN_CALL_TEST(test_reduced_aminoacid_cluster_red);
     SEQAN_CALL_TEST(test_reduced_aminoacid_murphy10);
-    SEQAN_CALL_TEST(test_reduced_aminoacid_murphy10_moditerators);
-    SEQAN_CALL_TEST(test_reduced_aminoacid_murphy10_modview_fmindex);
+
 }
 SEQAN_END_TESTSUITE
diff --git a/tests/reduced_aminoacid/test_reduced_aminoacid.h b/tests/reduced_aminoacid/test_reduced_aminoacid.h
index d1fd61f..443400e 100644
--- a/tests/reduced_aminoacid/test_reduced_aminoacid.h
+++ b/tests/reduced_aminoacid/test_reduced_aminoacid.h
@@ -42,8 +42,6 @@
 #include <seqan/file.h>
 
 #include <seqan/reduced_aminoacid.h>
-#include <seqan/modifier.h>
-#include <seqan/index.h>
 
 using namespace seqan;
 
@@ -98,7 +96,7 @@ SEQAN_DEFINE_TEST(test_reduced_aminoacid_murphy10)
             ReducedAminoAcidMurphy10;
 
     CharString str = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz*+#";
-    String<AminoAcid> aas = "ABCDEFGHIJKLMNOPQRSTUVWYZX*";
+    String<AminoAcid> aas = "ABCDEFGHIJKLMNPQRSTUVWYZX*";
 
     // N = 10
     {
@@ -107,145 +105,8 @@ SEQAN_DEFINE_TEST(test_reduced_aminoacid_murphy10)
             CharString(conv),
             "AABBCCBBBBFFGGHHIIIIKKIIIIBBAAPPBBKKSSSSAAIIFFAAFFBBFAA");
         conv = aas;
-        SEQAN_ASSERT_EQ(CharString(conv), "ABCBBFGHIIKIIBAPBKSSAIFFBAF");
+        SEQAN_ASSERT_EQ(CharString(conv), "ABCBBFGHIIKIIBPBKSSAIFFBAF");
     }
 }
 
-template <typename TModString>
-void _testReducedAminoAcidMurphy10ModIteratorsImpl(TModString & conv)
-{
-    typedef typename Iterator<TModString, Standard>::Type TIt;
-    typedef typename Iterator<TModString, Rooted>::Type TItR;
-
-    CharString toCharString = conv;
-    SEQAN_ASSERT_EQ(toCharString,
-                    "ABCBBFGHIIKIIBAPBKSSAIFFBAF");
-
-    // iterating
-    {
-        unsigned c = 0;
-        for (TIt it = begin(conv, Standard()), itEnd = end(conv, Standard());
-             it != itEnd;
-             ++it, ++c)
-            SEQAN_ASSERT_EQ(char(*it), toCharString[c]);
-    }
-
-    // atBegin, atEnd, position (Standard)
-    {
-        TIt it = begin(conv, Standard());
-        SEQAN_ASSERT(atBegin(it, conv));
-        SEQAN_ASSERT_EQ(position(it, conv), 0u);
-
-        it = end(conv, Standard());
-        SEQAN_ASSERT(atEnd(it, conv));
-        SEQAN_ASSERT_EQ(position(it, conv), length(conv));
-    }
-
-    // atBegin, atEnd, position (Rooted)
-    {
-        TItR it = begin(conv, Rooted());
-        SEQAN_ASSERT(atBegin(it));
-        SEQAN_ASSERT(atBegin(it, conv));
-        SEQAN_ASSERT_EQ(position(it), 0u);
-        SEQAN_ASSERT_EQ(position(it, conv), 0u);
-
-        it = end(conv, Rooted());
-        SEQAN_ASSERT(atEnd(it));
-        SEQAN_ASSERT(atEnd(it, conv));
-        SEQAN_ASSERT_EQ(position(it), length(conv));
-        SEQAN_ASSERT_EQ(position(it, conv), length(conv));
-    }
-}
-
-SEQAN_DEFINE_TEST(test_reduced_aminoacid_murphy10_moditerators)
-{
-    typedef SimpleType<unsigned char, ReducedAminoAcid_<Murphy10> >
-            ReducedAminoAcidMurphy10;
-    typedef ModifiedString<String<AminoAcid>,
-                           ModView<FunctorConvert<AminoAcid, ReducedAminoAcidMurphy10>>> TModString;
-    String<AminoAcid> aas = "ABCDEFGHIJKLMNOPQRSTUVWYZX*";
-
-    TModString conv(aas);
-    _testReducedAminoAcidMurphy10ModIteratorsImpl(conv);
-
-    TModString const conv2(aas);
-    _testReducedAminoAcidMurphy10ModIteratorsImpl(conv2);
-
-    Segment<TModString, InfixSegment> convinf = infix(conv, 0, length(conv));
-    _testReducedAminoAcidMurphy10ModIteratorsImpl(convinf);
-
-    Segment<TModString const, InfixSegment> conv2inf = infix(conv2, 0, length(conv));
-    _testReducedAminoAcidMurphy10ModIteratorsImpl(conv2inf);
-}
-
-struct ReducedFMIndexConfig_
-{
-    typedef size_t                                                 LengthSum;
-    typedef WaveletTree<void, WTRDConfig<LengthSum> >              Bwt;
-    typedef Levels<void, LevelsRDConfig<LengthSum, Alloc<>, 2> >   Sentinels;
-
-    static const unsigned SAMPLING = 10;
-};
-
-SEQAN_DEFINE_TEST(test_reduced_aminoacid_murphy10_modview_fmindex)
-{
-    typedef String<AminoAcid>                                               TOrigString;
-    typedef StringSet<TOrigString, Owner<ConcatDirect<> > >                 TOrigSet;
-
-    typedef SimpleType<unsigned char, ReducedAminoAcid_<Murphy10> >         ReducedAminoAcidMurphy10;
-    typedef ModView<FunctorConvert<AminoAcid, ReducedAminoAcidMurphy10> >   TModView;
-    typedef ModifiedString<TOrigString, TModView>                           TModString;
-    typedef StringSet<TModString, Owner<ConcatDirect<> > >                  TModSet;
-
-    typedef FMIndex<void, ReducedFMIndexConfig_>                            TFMIndex;
-
-    TOrigSet origSet;
-    appendValue(origSet, "ABCDEFGHIJKLMNOPQRSTUVWYZX*");
-    appendValue(origSet, "ABABABABABABILMVILMVILMVABABABABAB");
-    appendValue(origSet, "ABCDEFGHIJKLMNOPQRSTUVWYZX*LLLLL");
-    reverse(origSet); // FM-Index is reversed o_O
-
-    TModSet modSet(origSet);
-    SEQAN_ASSERT_EQ(modSet[0], "FABFFIASSKBPABIIKIIHGFBBCBA");
-    SEQAN_ASSERT_EQ(modSet[1], "BABABABABAIIIIIIIIIIIIBABABABABABA");
-    SEQAN_ASSERT_EQ(modSet[2], "IIIIIFABFFIASSKBPABIIKIIHGFBBCBA");
-
-    TOrigString query = "VVVVV";
-    TModString modQuery(query);
-    SEQAN_ASSERT_EQ(modQuery, "IIIII");
-
-    Index<TModSet, TFMIndex> index(modSet);
-    indexRequire(index, FibreSALF());         // instantiate
-
-    // actual search is only done if lambdas are available
-#if defined(SEQAN_CXX11_STANDARD) && (!_MSC_VER || _MSC_VER >= 1700)
-    typedef typename Iterator<Index<TModSet, TFMIndex>, TopDown<>>::Type TIndexIt;
-
-    std::vector<std::pair<uint64_t, uint64_t>> hits;
-    auto callback = [&] (TIndexIt & indexIt, int)
-    {
-        for (auto subjOcc : getOccurrences(indexIt))
-        {
-            // reverse positions again
-            setSeqOffset(subjOcc,
-                         length(origSet[getSeqNo(subjOcc)])
-                         - getSeqOffset(subjOcc)
-                         - length(query));
-            hits.emplace_back(getSeqNo(subjOcc), getSeqOffset(subjOcc));
-        }
-    };
-
-    Nothing nothing;
-    _findImpl(nothing, index, modQuery, int(0), callback, Backtracking<Exact>());
-
-    SEQAN_ASSERT_EQ(length(hits), 9u);
-    SEQAN_ASSERT_EQ(std::get<0>(hits[0]), 1u); SEQAN_ASSERT_EQ(std::get<1>(hits[0]), 12u);
-    SEQAN_ASSERT_EQ(std::get<0>(hits[1]), 2u); SEQAN_ASSERT_EQ(std::get<1>(hits[1]), 27u);
-    for (unsigned i = 1; i < 7; ++i)
-    {
-        SEQAN_ASSERT_EQ(std::get<0>(hits[1+i]), 1u); SEQAN_ASSERT_EQ(std::get<1>(hits[1+i]), 12u +i);
-    }
-#endif
-}
-
 #endif  // SEQAN_TESTS_REDUCED_ALPHABET_H_
diff --git a/tests/score/BLOSUM30 b/tests/score/BLOSUM30
index b017cb5..5a0a629 100644
--- a/tests/score/BLOSUM30
+++ b/tests/score/BLOSUM30
@@ -7,32 +7,31 @@
 #
 #  add J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-    A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A   4  0 -3  0  0 -2  0 -2  0 -1  0 -1  1  0  0 -1  1 -1  1  1  0  1 -5 -4  0  0 -7
-B   0  5 -2  5  0 -3  0 -2 -2 -2  0 -1 -2  4 -1 -2 -1 -2  0  0 -1 -2 -5 -3  0 -1 -7
-C  -3 -2 17 -3  1 -3 -4 -5 -2 -1 -3  0 -2 -1 -2 -3 -2 -2 -2 -2 -2 -2 -2 -6  0 -2 -7
-D   0  5 -3  9  1 -5 -1 -2 -4 -3  0 -1 -3  1 -1 -1 -1 -1  0 -1 -1 -2 -4 -1  0 -1 -7
-E   0  0  1  1  6 -4 -2  0 -3 -2  2 -1 -1 -1 -1  1  2 -1  0 -2 -1 -3 -1 -2  5 -1 -7
-F  -2 -3 -3 -5 -4 10 -3 -3  0  1 -1  2 -2 -1 -1 -4 -3 -1 -1 -2 -1  1  1  3 -4 -1 -7
-G   0  0 -4 -1 -2 -3  8 -3 -1 -2 -1 -2 -2  0 -1 -1 -2 -2  0 -2 -1 -3  1 -3 -2 -1 -7
-H  -2 -2 -5 -2  0 -3 -3 14 -2 -2 -2 -1  2 -1 -1  1  0 -1 -1 -2 -1 -3 -5  0  0 -1 -7
-I   0 -2 -2 -4 -3  0 -1 -2  6  4 -2  2  1  0  0 -3 -2 -3 -1  0  0  4 -3 -1 -3  0 -7
-J  -1 -2 -1 -3 -2  1 -2 -2  4  4 -2  3  2 -1  0 -3 -2 -3 -2  0  0  3 -3  1 -2  0 -7
-K   0  0 -3  0  2 -1 -1 -2 -2 -2  4 -2  2  0  0  1  0  1  0 -1  0 -2 -2 -1  1  0 -7
-L  -1 -1  0 -1 -1  2 -2 -1  2  3 -2  4  2 -2  0 -3 -2 -2 -2  0  0  1 -2  3 -1  0 -7
-M   1 -2 -2 -3 -1 -2 -2  2  1  2  2  2  6  0  0 -4 -1  0 -2  0  0  0 -3 -1 -1  0 -7
-N   0  4 -1  1 -1 -1  0 -1  0 -1  0 -2  0  8  0 -3 -1 -2  0  1  0 -2 -7 -4 -1  0 -7
-O   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1 -1  0 -1  0  0 -1  0 -2 -1  0 -1 -7
-P  -1 -2 -3 -1  1 -4 -1  1 -3 -3  1 -3 -4 -3 -1 11  0 -1 -1  0 -1 -4 -3 -2  0 -1 -7
-Q   1 -1 -2 -1  2 -3 -2  0 -2 -2  0 -2 -1 -1  0  0  8  3 -1  0  0 -3 -1 -1  4  0 -7
-R  -1 -2 -2 -1 -1 -1 -2 -1 -3 -3  1 -2  0 -2 -1 -1  3  8 -1 -3 -1 -1  0  0  0 -1 -7
-S   1  0 -2  0  0 -1  0 -1 -1 -2  0 -2 -2  0  0 -1 -1 -1  4  2  0 -1 -3 -2 -1  0 -7
-T   1  0 -2 -1 -2 -2 -2 -2  0  0 -1  0  0  1  0  0  0 -3  2  5  0  1 -5 -1 -1  0 -7
-U   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1 -1  0 -1  0  0 -1  0 -2 -1  0 -1 -7
-V   1 -2 -2 -2 -3  1 -3 -3  4  3 -2  1  0 -2  0 -4 -3 -1 -1  1  0  5 -3  1 -3  0 -7
-W  -5 -5 -2 -4 -1  1  1 -5 -3 -3 -2 -2 -3 -7 -2 -3 -1  0 -3 -5 -2 -3 20  5 -1 -2 -7
-Y  -4 -3 -6 -1 -2  3 -3  0 -1  1 -1  3 -1 -4 -1 -2 -1  0 -2 -1 -1  1  5  9 -2 -1 -7
-Z   0  0  0  0  5 -4 -2  0 -3 -2  1 -1 -1 -1  0  0  4  0 -1 -1  0 -3 -1 -2  4  0 -7
-X   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1 -1  0 -1  0  0 -1  0 -2 -1  0 -1 -7
-*  -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
+    A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A   4  0 -3  0  0 -2  0 -2  0 -1  0 -1  1  0 -1  1 -1  1  1  0  1 -5 -4  0  0 -7
+B   0  5 -2  5  0 -3  0 -2 -2 -2  0 -1 -2  4 -2 -1 -2  0  0 -1 -2 -5 -3  0 -1 -7
+C  -3 -2 17 -3  1 -3 -4 -5 -2 -1 -3  0 -2 -1 -3 -2 -2 -2 -2 -2 -2 -2 -6  0 -2 -7
+D   0  5 -3  9  1 -5 -1 -2 -4 -3  0 -1 -3  1 -1 -1 -1  0 -1 -1 -2 -4 -1  0 -1 -7
+E   0  0  1  1  6 -4 -2  0 -3 -2  2 -1 -1 -1  1  2 -1  0 -2 -1 -3 -1 -2  5 -1 -7
+F  -2 -3 -3 -5 -4 10 -3 -3  0  1 -1  2 -2 -1 -4 -3 -1 -1 -2 -1  1  1  3 -4 -1 -7
+G   0  0 -4 -1 -2 -3  8 -3 -1 -2 -1 -2 -2  0 -1 -2 -2  0 -2 -1 -3  1 -3 -2 -1 -7
+H  -2 -2 -5 -2  0 -3 -3 14 -2 -2 -2 -1  2 -1  1  0 -1 -1 -2 -1 -3 -5  0  0 -1 -7
+I   0 -2 -2 -4 -3  0 -1 -2  6  4 -2  2  1  0 -3 -2 -3 -1  0  0  4 -3 -1 -3  0 -7
+J  -1 -2 -1 -3 -2  1 -2 -2  4  4 -2  3  2 -1 -3 -2 -3 -2  0  0  3 -3  1 -2  0 -7
+K   0  0 -3  0  2 -1 -1 -2 -2 -2  4 -2  2  0  1  0  1  0 -1  0 -2 -2 -1  1  0 -7
+L  -1 -1  0 -1 -1  2 -2 -1  2  3 -2  4  2 -2 -3 -2 -2 -2  0  0  1 -2  3 -1  0 -7
+M   1 -2 -2 -3 -1 -2 -2  2  1  2  2  2  6  0 -4 -1  0 -2  0  0  0 -3 -1 -1  0 -7
+N   0  4 -1  1 -1 -1  0 -1  0 -1  0 -2  0  8 -3 -1 -2  0  1  0 -2 -7 -4 -1  0 -7
+P  -1 -2 -3 -1  1 -4 -1  1 -3 -3  1 -3 -4 -3 11  0 -1 -1  0 -1 -4 -3 -2  0 -1 -7
+Q   1 -1 -2 -1  2 -3 -2  0 -2 -2  0 -2 -1 -1  0  8  3 -1  0  0 -3 -1 -1  4  0 -7
+R  -1 -2 -2 -1 -1 -1 -2 -1 -3 -3  1 -2  0 -2 -1  3  8 -1 -3 -1 -1  0  0  0 -1 -7
+S   1  0 -2  0  0 -1  0 -1 -1 -2  0 -2 -2  0 -1 -1 -1  4  2  0 -1 -3 -2 -1  0 -7
+T   1  0 -2 -1 -2 -2 -2 -2  0  0 -1  0  0  1  0  0 -3  2  5  0  1 -5 -1 -1  0 -7
+U   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1  0 -1  0  0 -1  0 -2 -1  0 -1 -7
+V   1 -2 -2 -2 -3  1 -3 -3  4  3 -2  1  0 -2 -4 -3 -1 -1  1  0  5 -3  1 -3  0 -7
+W  -5 -5 -2 -4 -1  1  1 -5 -3 -3 -2 -2 -3 -7 -3 -1  0 -3 -5 -2 -3 20  5 -1 -2 -7
+Y  -4 -3 -6 -1 -2  3 -3  0 -1  1 -1  3 -1 -4 -2 -1  0 -2 -1 -1  1  5  9 -2 -1 -7
+Z   0  0  0  0  5 -4 -2  0 -3 -2  1 -1 -1 -1  0  4  0 -1 -1  0 -3 -1 -2  4  0 -7
+X   0 -1 -2 -1 -1 -1 -1 -1  0  0  0  0  0  0 -1  0 -1  0  0 -1  0 -2 -1  0 -1 -7
+*  -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7  1
 
diff --git a/tests/score/BLOSUM45 b/tests/score/BLOSUM45
index 180fb28..1bb1a7a 100644
--- a/tests/score/BLOSUM45
+++ b/tests/score/BLOSUM45
@@ -7,31 +7,30 @@
 #
 #  add J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  5 -1 -1 -2 -1 -2  0 -2 -1 -1 -1 -1 -1 -1  0 -1 -1 -2  1  0  0  0 -2 -2 -1  0 -5
-B -1  4 -2  5  1 -3 -1  0 -3 -3  0 -3 -2  4 -1 -2  0 -1  0  0 -1 -3 -4 -2  2 -1 -5
-C -1 -2 12 -3 -3 -2 -3 -3 -3 -3 -3 -2 -2 -2 -2 -4 -3 -3 -1 -1 -2 -1 -5 -3 -3 -2 -5
-D -2  5 -3  7  2 -4 -1  0 -4 -4  0 -3 -3  2 -1 -1  0 -1  0 -1 -1 -3 -4 -2  1 -1 -5
-E -1  1 -3  2  6 -3 -2  0 -3 -3  1 -2 -2  0 -1  0  2  0  0 -1 -1 -3 -3 -2  4 -1 -5
-F -2 -3 -2 -4 -3  8 -3 -2  0  1 -3  1  0 -2 -1 -3 -4 -2 -2 -1 -1  0  1  3 -3 -1 -5
-G  0 -1 -3 -1 -2 -3  7 -2 -4 -4 -2 -3 -2  0 -1 -2 -2 -2  0 -2 -1 -3 -2 -3 -2 -1 -5
-H -2  0 -3  0  0 -2 -2 10 -3 -3 -1 -2  0  1 -1 -2  1  0 -1 -2 -1 -3 -3  2  0 -1 -5
-I -1 -3 -3 -4 -3  0 -4 -3  5  4 -3  2  2 -2 -1 -2 -2 -3 -2 -1 -1  3 -2  0 -3 -1 -5
-J -1 -3 -3 -4 -3  1 -4 -3  4  4 -3  4  2 -3 -1 -3 -2 -3 -3 -1 -1  2 -2  0 -3 -1 -5
-K -1  0 -3  0  1 -3 -2 -1 -3 -3  5 -3 -1  0 -1 -1  1  3 -1 -1 -1 -2 -2 -1  1 -1 -5
-L -1 -3 -2 -3 -2  1 -3 -2  2  4 -3  5  2 -3 -1 -3 -2 -2 -3 -1 -1  1 -2  0 -2 -1 -5
-M -1 -2 -2 -3 -2  0 -2  0  2  2 -1  2  6 -2 -1 -2  0 -1 -2 -1 -1  1 -2  0 -1 -1 -5
-N -1  4 -2  2  0 -2  0  1 -2 -3  0 -3 -2  6 -1 -2  0  0  1  0 -1 -3 -4 -2  0 -1 -5
-O  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -5
-P -1 -2 -4 -1  0 -3 -2 -2 -2 -3 -1 -3 -2 -2 -1  9 -1 -2 -1 -1 -1 -3 -3 -3 -1 -1 -5
-Q -1  0 -3  0  2 -4 -2  1 -2 -2  1 -2  0  0 -1 -1  6  1  0 -1 -1 -3 -2 -1  4 -1 -5
-R -2 -1 -3 -1  0 -2 -2  0 -3 -3  3 -2 -1  0 -1 -2  1  7 -1 -1 -1 -2 -2 -1  0 -1 -5
-S  1  0 -1  0  0 -2  0 -1 -2 -3 -1 -3 -2  1  0 -1  0 -1  4  2  0 -1 -4 -2  0  0 -5
-T  0  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1  0  0 -1 -1 -1  2  5  0  0 -3 -1 -1  0 -5
-U  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -5
-V  0 -3 -1 -3 -3  0 -3 -3  3  2 -2  1  1 -3 -1 -3 -3 -2 -1  0 -1  5 -3 -1 -3 -1 -5
-W -2 -4 -5 -4 -3  1 -2 -3 -2 -2 -2 -2 -2 -4 -2 -3 -2 -2 -4 -3 -2 -3 15  3 -2 -2 -5
-Y -2 -2 -3 -2 -2  3 -3  2  0  0 -1  0  0 -2 -1 -3 -1 -1 -2 -1 -1 -1  3  8 -2 -1 -5
-Z -1  2 -3  1  4 -3 -2  0 -3 -3  1 -2 -1  0 -1 -1  4  0  0 -1 -1 -3 -2 -2  4 -1 -5
-X  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -5
-* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  5 -1 -1 -2 -1 -2  0 -2 -1 -1 -1 -1 -1 -1 -1 -1 -2  1  0  0  0 -2 -2 -1  0 -5
+B -1  4 -2  5  1 -3 -1  0 -3 -3  0 -3 -2  4 -2  0 -1  0  0 -1 -3 -4 -2  2 -1 -5
+C -1 -2 12 -3 -3 -2 -3 -3 -3 -3 -3 -2 -2 -2 -4 -3 -3 -1 -1 -2 -1 -5 -3 -3 -2 -5
+D -2  5 -3  7  2 -4 -1  0 -4 -4  0 -3 -3  2 -1  0 -1  0 -1 -1 -3 -4 -2  1 -1 -5
+E -1  1 -3  2  6 -3 -2  0 -3 -3  1 -2 -2  0  0  2  0  0 -1 -1 -3 -3 -2  4 -1 -5
+F -2 -3 -2 -4 -3  8 -3 -2  0  1 -3  1  0 -2 -3 -4 -2 -2 -1 -1  0  1  3 -3 -1 -5
+G  0 -1 -3 -1 -2 -3  7 -2 -4 -4 -2 -3 -2  0 -2 -2 -2  0 -2 -1 -3 -2 -3 -2 -1 -5
+H -2  0 -3  0  0 -2 -2 10 -3 -3 -1 -2  0  1 -2  1  0 -1 -2 -1 -3 -3  2  0 -1 -5
+I -1 -3 -3 -4 -3  0 -4 -3  5  4 -3  2  2 -2 -2 -2 -3 -2 -1 -1  3 -2  0 -3 -1 -5
+J -1 -3 -3 -4 -3  1 -4 -3  4  4 -3  4  2 -3 -3 -2 -3 -3 -1 -1  2 -2  0 -3 -1 -5
+K -1  0 -3  0  1 -3 -2 -1 -3 -3  5 -3 -1  0 -1  1  3 -1 -1 -1 -2 -2 -1  1 -1 -5
+L -1 -3 -2 -3 -2  1 -3 -2  2  4 -3  5  2 -3 -3 -2 -2 -3 -1 -1  1 -2  0 -2 -1 -5
+M -1 -2 -2 -3 -2  0 -2  0  2  2 -1  2  6 -2 -2  0 -1 -2 -1 -1  1 -2  0 -1 -1 -5
+N -1  4 -2  2  0 -2  0  1 -2 -3  0 -3 -2  6 -2  0  0  1  0 -1 -3 -4 -2  0 -1 -5
+P -1 -2 -4 -1  0 -3 -2 -2 -2 -3 -1 -3 -2 -2  9 -1 -2 -1 -1 -1 -3 -3 -3 -1 -1 -5
+Q -1  0 -3  0  2 -4 -2  1 -2 -2  1 -2  0  0 -1  6  1  0 -1 -1 -3 -2 -1  4 -1 -5
+R -2 -1 -3 -1  0 -2 -2  0 -3 -3  3 -2 -1  0 -2  1  7 -1 -1 -1 -2 -2 -1  0 -1 -5
+S  1  0 -1  0  0 -2  0 -1 -2 -3 -1 -3 -2  1 -1  0 -1  4  2  0 -1 -4 -2  0  0 -5
+T  0  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -1  0 -1 -1 -1  2  5  0  0 -3 -1 -1  0 -5
+U  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -5
+V  0 -3 -1 -3 -3  0 -3 -3  3  2 -2  1  1 -3 -3 -3 -2 -1  0 -1  5 -3 -1 -3 -1 -5
+W -2 -4 -5 -4 -3  1 -2 -3 -2 -2 -2 -2 -2 -4 -3 -2 -2 -4 -3 -2 -3 15  3 -2 -2 -5
+Y -2 -2 -3 -2 -2  3 -3  2  0  0 -1  0  0 -2 -3 -1 -1 -2 -1 -1 -1  3  8 -2 -1 -5
+Z -1  2 -3  1  4 -3 -2  0 -3 -3  1 -2 -1  0 -1  4  0  0 -1 -1 -3 -2 -2  4 -1 -5
+X  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -5
+* -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5 -5  1
diff --git a/tests/score/BLOSUM62 b/tests/score/BLOSUM62
index 636fafe..179a739 100644
--- a/tests/score/BLOSUM62
+++ b/tests/score/BLOSUM62
@@ -8,31 +8,30 @@
 #  add J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
 
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  4 -2  0 -2 -1 -2  0 -2 -1 -1 -1 -1 -1 -2  0 -1 -1 -1  1  0  0  0 -3 -2 -1  0 -4
-B -2  4 -3  4  1 -3 -1  0 -3 -4  0 -4 -3  3 -1 -2  0 -1  0 -1 -1 -3 -4 -3  1 -1 -4
-C  0 -3  9 -3 -4 -2 -3 -3 -1 -1 -3 -1 -1 -3 -2 -3 -3 -3 -1 -1 -2 -1 -2 -2 -3 -2 -4
-D -2  4 -3  6  2 -3 -1 -1 -3 -4 -1 -4 -3  1 -1 -1  0 -2  0 -1 -1 -3 -4 -3  1 -1 -4
-E -1  1 -4  2  5 -3 -2  0 -3 -3  1 -3 -2  0 -1 -1  2  0  0 -1 -1 -2 -3 -2  4 -1 -4
-F -2 -3 -2 -3 -3  6 -3 -1  0  0 -3  0  0 -3 -1 -4 -3 -3 -2 -2 -1 -1  1  3 -3 -1 -4
-G  0 -1 -3 -1 -2 -3  6 -2 -4 -4 -2 -4 -3  0 -1 -2 -2 -2  0 -2 -1 -3 -2 -3 -2 -1 -4
-H -2  0 -3 -1  0 -1 -2  8 -3 -3 -1 -3 -2  1 -1 -2  0  0 -1 -2 -1 -3 -2  2  0 -1 -4
-I -1 -3 -1 -3 -3  0 -4 -3  4  3 -3  2  1 -3 -1 -3 -3 -3 -2 -1 -1  3 -3 -1 -3 -1 -4
-J -1 -4 -1 -4 -3  0 -4 -3  3  3 -3  3  2 -3 -1 -3 -3 -3 -2 -1 -1  2 -3 -1 -3 -1 -4
-K -1  0 -3 -1  1 -3 -2 -1 -3 -3  5 -2 -1  0 -1 -1  1  2  0 -1 -1 -2 -3 -2  1 -1 -4
-L -1 -4 -1 -4 -3  0 -4 -3  2  3 -2  4  2 -3 -1 -3 -2 -2 -2 -1 -1  1 -2 -1 -3 -1 -4
-M -1 -3 -1 -3 -2  0 -3 -2  1  2 -1  2  5 -2 -1 -2  0 -1 -1 -1 -1  1 -1 -1 -1 -1 -4
-N -2  3 -3  1  0 -3  0  1 -3 -3  0 -3 -2  6 -1 -2  0  0  1  0 -1 -3 -4 -2  0 -1 -4
-O  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -4
-P -1 -2 -3 -1 -1 -4 -2 -2 -3 -3 -1 -3 -2 -2 -2  7 -1 -2 -1 -1 -2 -2 -4 -3 -1 -2 -4
-Q -1  0 -3  0  2 -3 -2  0 -3 -3  1 -2  0  0 -1 -1  5  1  0 -1 -1 -2 -2 -1  3 -1 -4
-R -1 -1 -3 -2  0 -3 -2  0 -3 -3  2 -2 -1  0 -1 -2  1  5 -1 -1 -1 -3 -3 -2  0 -1 -4
-S  1  0 -1  0  0 -2  0 -1 -2 -2  0 -2 -1  1  0 -1  0 -1  4  1  0 -2 -3 -2  0  0 -4
-T  0 -1 -1 -1 -1 -2 -2 -2 -1 -1 -1 -1 -1  0  0 -1 -1 -1  1  5  0  0 -2 -2 -1  0 -4
-U  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -4
-V  0 -3 -1 -3 -2 -1 -3 -3  3  2 -2  1  1 -3 -1 -2 -2 -3 -2  0 -1  4 -3 -1 -2 -1 -4
-W -3 -4 -2 -4 -3  1 -2 -2 -3 -3 -3 -2 -1 -4 -2 -4 -2 -3 -3 -2 -2 -3 11  2 -3 -2 -4
-Y -2 -3 -2 -3 -2  3 -3  2 -1 -1 -2 -1 -1 -2 -1 -3 -1 -2 -2 -2 -1 -1  2  7 -2 -1 -4
-Z -1  1 -3  1  4 -3 -2  0 -3 -3  1 -3 -1  0 -1 -1  3  0  0 -1 -1 -2 -3 -2  4 -1 -4
-X  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -4
-* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  4 -2  0 -2 -1 -2  0 -2 -1 -1 -1 -1 -1 -2 -1 -1 -1  1  0  0  0 -3 -2 -1  0 -4
+B -2  4 -3  4  1 -3 -1  0 -3 -4  0 -4 -3  3 -2  0 -1  0 -1 -1 -3 -4 -3  1 -1 -4
+C  0 -3  9 -3 -4 -2 -3 -3 -1 -1 -3 -1 -1 -3 -3 -3 -3 -1 -1 -2 -1 -2 -2 -3 -2 -4
+D -2  4 -3  6  2 -3 -1 -1 -3 -4 -1 -4 -3  1 -1  0 -2  0 -1 -1 -3 -4 -3  1 -1 -4
+E -1  1 -4  2  5 -3 -2  0 -3 -3  1 -3 -2  0 -1  2  0  0 -1 -1 -2 -3 -2  4 -1 -4
+F -2 -3 -2 -3 -3  6 -3 -1  0  0 -3  0  0 -3 -4 -3 -3 -2 -2 -1 -1  1  3 -3 -1 -4
+G  0 -1 -3 -1 -2 -3  6 -2 -4 -4 -2 -4 -3  0 -2 -2 -2  0 -2 -1 -3 -2 -3 -2 -1 -4
+H -2  0 -3 -1  0 -1 -2  8 -3 -3 -1 -3 -2  1 -2  0  0 -1 -2 -1 -3 -2  2  0 -1 -4
+I -1 -3 -1 -3 -3  0 -4 -3  4  3 -3  2  1 -3 -3 -3 -3 -2 -1 -1  3 -3 -1 -3 -1 -4
+J -1 -4 -1 -4 -3  0 -4 -3  3  3 -3  3  2 -3 -3 -3 -3 -2 -1 -1  2 -3 -1 -3 -1 -4
+K -1  0 -3 -1  1 -3 -2 -1 -3 -3  5 -2 -1  0 -1  1  2  0 -1 -1 -2 -3 -2  1 -1 -4
+L -1 -4 -1 -4 -3  0 -4 -3  2  3 -2  4  2 -3 -3 -2 -2 -2 -1 -1  1 -2 -1 -3 -1 -4
+M -1 -3 -1 -3 -2  0 -3 -2  1  2 -1  2  5 -2 -2  0 -1 -1 -1 -1  1 -1 -1 -1 -1 -4
+N -2  3 -3  1  0 -3  0  1 -3 -3  0 -3 -2  6 -2  0  0  1  0 -1 -3 -4 -2  0 -1 -4
+P -1 -2 -3 -1 -1 -4 -2 -2 -3 -3 -1 -3 -2 -2  7 -1 -2 -1 -1 -2 -2 -4 -3 -1 -2 -4
+Q -1  0 -3  0  2 -3 -2  0 -3 -3  1 -2  0  0 -1  5  1  0 -1 -1 -2 -2 -1  3 -1 -4
+R -1 -1 -3 -2  0 -3 -2  0 -3 -3  2 -2 -1  0 -2  1  5 -1 -1 -1 -3 -3 -2  0 -1 -4
+S  1  0 -1  0  0 -2  0 -1 -2 -2  0 -2 -1  1 -1  0 -1  4  1  0 -2 -3 -2  0  0 -4
+T  0 -1 -1 -1 -1 -2 -2 -2 -1 -1 -1 -1 -1  0 -1 -1 -1  1  5  0  0 -2 -2 -1  0 -4
+U  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -4
+V  0 -3 -1 -3 -2 -1 -3 -3  3  2 -2  1  1 -3 -2 -2 -3 -2  0 -1  4 -3 -1 -2 -1 -4
+W -3 -4 -2 -4 -3  1 -2 -2 -3 -3 -3 -2 -1 -4 -4 -2 -3 -3 -2 -2 -3 11  2 -3 -2 -4
+Y -2 -3 -2 -3 -2  3 -3  2 -1 -1 -2 -1 -1 -2 -3 -1 -2 -2 -2 -1 -1  2  7 -2 -1 -4
+Z -1  1 -3  1  4 -3 -2  0 -3 -3  1 -3 -1  0 -1  3  0  0 -1 -1 -2 -3 -2  4 -1 -4
+X  0 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1  0  0 -1 -1 -2 -1 -1 -1 -4
+* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1
diff --git a/tests/score/BLOSUM80 b/tests/score/BLOSUM80
index 32a51df..c4f3954 100644
--- a/tests/score/BLOSUM80
+++ b/tests/score/BLOSUM80
@@ -7,31 +7,30 @@
 #
 #  added J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  7 -3 -1 -3 -2 -4  0 -3 -3 -3 -1 -3 -2 -3 -1 -1 -2 -3  2  0 -1 -1 -5 -4 -2 -1 -8
-B -3  6 -6  6  1 -6 -2 -1 -6 -7 -1 -7 -5  5 -3 -4 -1 -2  0 -1 -3 -6 -8 -5  0 -3 -8
-C -1 -6 13 -7 -7 -4 -6 -7 -2 -3 -6 -3 -3 -5 -4 -6 -5 -6 -2 -2 -4 -2 -5 -5 -7 -4 -8
-D -3  6 -7 10  2 -6 -3 -2 -7 -7 -2 -7 -6  2 -3 -3 -1 -3 -1 -2 -3 -6 -8 -6  1 -3 -8
-E -2  1 -7  2  8 -6 -4  0 -6 -6  1 -6 -4 -1 -2 -2  3 -1 -1 -2 -2 -4 -6 -5  6 -2 -8
-F -4 -6 -4 -6 -6 10 -6 -2 -1 -1 -5  0  0 -6 -3 -6 -5 -5 -4 -4 -3 -2  0  4 -6 -3 -8
-G  0 -2 -6 -3 -4 -6  9 -4 -7 -7 -3 -7 -5 -1 -3 -5 -4 -4 -1 -3 -3 -6 -6 -6 -4 -3 -8
-H -3 -1 -7 -2  0 -2 -4 12 -6 -6 -1 -5 -4  1 -2 -4  1  0 -2 -3 -2 -5 -4  3  0 -2 -8
-I -3 -6 -2 -7 -6 -1 -7 -6  7  5 -5  2  2 -6 -2 -5 -5 -5 -4 -2 -2  4 -5 -3 -6 -2 -8
-J -3 -7 -3 -7 -6 -1 -7 -6  5  5 -5  4  3 -6 -2 -5 -5 -5 -4 -3 -2  3 -5 -3 -6 -2 -8
-K -1 -1 -6 -2  1 -5 -3 -1 -5 -5  8 -4 -3  0 -2 -2  2  3 -1 -1 -2 -4 -6 -4  1 -2 -8
-L -3 -7 -3 -7 -6  0 -7 -5  2  4 -4  6  3 -6 -2 -5 -4 -4 -4 -3 -2  1 -4 -2 -5 -2 -8
-M -2 -5 -3 -6 -4  0 -5 -4  2  3 -3  3  9 -4 -2 -4 -1 -3 -3 -1 -2  1 -3 -3 -3 -2 -8
-N -3  5 -5  2 -1 -6 -1  1 -6 -6  0 -6 -4  9 -2 -4  0 -1  1  0 -2 -5 -7 -4 -1 -2 -8
-O -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2 -8
-P -1 -4 -6 -3 -2 -6 -5 -4 -5 -5 -2 -5 -4 -4 -3 12 -3 -3 -2 -3 -3 -4 -7 -6 -2 -3 -8
-Q -2 -1 -5 -1  3 -5 -4  1 -5 -5  2 -4 -1  0 -2 -3  9  1 -1 -1 -2 -4 -4 -3  5 -2 -8
-R -3 -2 -6 -3 -1 -5 -4  0 -5 -5  3 -4 -3 -1 -2 -3  1  9 -2 -2 -2 -4 -5 -4  0 -2 -8
-S  2  0 -2 -1 -1 -4 -1 -2 -4 -4 -1 -4 -3  1 -1 -2 -1 -2  7  2 -1 -3 -6 -3 -1 -1 -8
-T  0 -1 -2 -2 -2 -4 -3 -3 -2 -3 -1 -3 -1  0 -1 -3 -1 -2  2  8 -1  0 -5 -3 -2 -1 -8
-U -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2 -8
-V -1 -6 -2 -6 -4 -2 -6 -5  4  3 -4  1  1 -5 -2 -4 -4 -4 -3  0 -2  7 -5 -3 -4 -2 -8
-W -5 -8 -5 -8 -6  0 -6 -4 -5 -5 -6 -4 -3 -7 -5 -7 -4 -5 -6 -5 -5 -5 16  3 -5 -5 -8
-Y -4 -5 -5 -6 -5  4 -6  3 -3 -3 -4 -2 -3 -4 -3 -6 -3 -4 -3 -3 -3 -3  3 11 -4 -3 -8
-Z -2  0 -7  1  6 -6 -4  0 -6 -6  1 -5 -3 -1 -1 -2  5  0 -1 -2 -1 -4 -5 -4  6 -1 -8
-X -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2 -8
-* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  7 -3 -1 -3 -2 -4  0 -3 -3 -3 -1 -3 -2 -3 -1 -2 -3  2  0 -1 -1 -5 -4 -2 -1 -8
+B -3  6 -6  6  1 -6 -2 -1 -6 -7 -1 -7 -5  5 -4 -1 -2  0 -1 -3 -6 -8 -5  0 -3 -8
+C -1 -6 13 -7 -7 -4 -6 -7 -2 -3 -6 -3 -3 -5 -6 -5 -6 -2 -2 -4 -2 -5 -5 -7 -4 -8
+D -3  6 -7 10  2 -6 -3 -2 -7 -7 -2 -7 -6  2 -3 -1 -3 -1 -2 -3 -6 -8 -6  1 -3 -8
+E -2  1 -7  2  8 -6 -4  0 -6 -6  1 -6 -4 -1 -2  3 -1 -1 -2 -2 -4 -6 -5  6 -2 -8
+F -4 -6 -4 -6 -6 10 -6 -2 -1 -1 -5  0  0 -6 -6 -5 -5 -4 -4 -3 -2  0  4 -6 -3 -8
+G  0 -2 -6 -3 -4 -6  9 -4 -7 -7 -3 -7 -5 -1 -5 -4 -4 -1 -3 -3 -6 -6 -6 -4 -3 -8
+H -3 -1 -7 -2  0 -2 -4 12 -6 -6 -1 -5 -4  1 -4  1  0 -2 -3 -2 -5 -4  3  0 -2 -8
+I -3 -6 -2 -7 -6 -1 -7 -6  7  5 -5  2  2 -6 -5 -5 -5 -4 -2 -2  4 -5 -3 -6 -2 -8
+J -3 -7 -3 -7 -6 -1 -7 -6  5  5 -5  4  3 -6 -5 -5 -5 -4 -3 -2  3 -5 -3 -6 -2 -8
+K -1 -1 -6 -2  1 -5 -3 -1 -5 -5  8 -4 -3  0 -2  2  3 -1 -1 -2 -4 -6 -4  1 -2 -8
+L -3 -7 -3 -7 -6  0 -7 -5  2  4 -4  6  3 -6 -5 -4 -4 -4 -3 -2  1 -4 -2 -5 -2 -8
+M -2 -5 -3 -6 -4  0 -5 -4  2  3 -3  3  9 -4 -4 -1 -3 -3 -1 -2  1 -3 -3 -3 -2 -8
+N -3  5 -5  2 -1 -6 -1  1 -6 -6  0 -6 -4  9 -4  0 -1  1  0 -2 -5 -7 -4 -1 -2 -8
+P -1 -4 -6 -3 -2 -6 -5 -4 -5 -5 -2 -5 -4 -4 12 -3 -3 -2 -3 -3 -4 -7 -6 -2 -3 -8
+Q -2 -1 -5 -1  3 -5 -4  1 -5 -5  2 -4 -1  0 -3  9  1 -1 -1 -2 -4 -4 -3  5 -2 -8
+R -3 -2 -6 -3 -1 -5 -4  0 -5 -5  3 -4 -3 -1 -3  1  9 -2 -2 -2 -4 -5 -4  0 -2 -8
+S  2  0 -2 -1 -1 -4 -1 -2 -4 -4 -1 -4 -3  1 -2 -1 -2  7  2 -1 -3 -6 -3 -1 -1 -8
+T  0 -1 -2 -2 -2 -4 -3 -3 -2 -3 -1 -3 -1  0 -3 -1 -2  2  8 -1  0 -5 -3 -2 -1 -8
+U -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2 -8
+V -1 -6 -2 -6 -4 -2 -6 -5  4  3 -4  1  1 -5 -4 -4 -4 -3  0 -2  7 -5 -3 -4 -2 -8
+W -5 -8 -5 -8 -6  0 -6 -4 -5 -5 -6 -4 -3 -7 -7 -4 -5 -6 -5 -5 -5 16  3 -5 -5 -8
+Y -4 -5 -5 -6 -5  4 -6  3 -3 -3 -4 -2 -3 -4 -6 -3 -4 -3 -3 -3 -3  3 11 -4 -3 -8
+Z -2  0 -7  1  6 -6 -4  0 -6 -6  1 -5 -3 -1 -2  5  0 -1 -2 -1 -4 -5 -4  6 -1 -8
+X -1 -3 -4 -3 -2 -3 -3 -2 -2 -2 -2 -2 -2 -2 -3 -2 -2 -1 -1 -2 -2 -5 -3 -1 -2 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/tests/score/PAM120 b/tests/score/PAM120
index 087aca3..3c52e5b 100644
--- a/tests/score/PAM120
+++ b/tests/score/PAM120
@@ -10,31 +10,30 @@
 #
 #  added J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  3  0 -3  0  0 -4  1 -3 -1 -2 -2 -3 -2 -1 -1  1 -1 -3  1  1 -1  0 -7 -4 -1 -1 -8
-B  0  4 -6  4  3 -5  0  1 -3 -4  0 -4 -4  3 -1 -2  0 -2  0  0 -1 -3 -6 -3  2 -1 -8
-C -3 -6  9 -7 -7 -6 -4 -4 -3 -5 -7 -7 -6 -5 -4 -4 -7 -4  0 -3 -4 -3 -8 -1 -7 -4 -8
-D  0  4 -7  5  3 -7  0  0 -3 -4 -1 -5 -4  2 -2 -3  1 -3  0 -1 -2 -3 -8 -5  3 -2 -8
-E  0  3 -7  3  5 -7 -1 -1 -3 -4 -1 -4 -3  1 -1 -2  2 -3 -1 -2 -1 -3 -8 -5  4 -1 -8
-F -4 -5 -6 -7 -7  8 -5 -3  0  0 -7  0 -1 -4 -3 -5 -6 -5 -3 -4 -3 -3 -1  4 -6 -3 -8
-G  1  0 -4  0 -1 -5  5 -4 -4 -5 -3 -5 -4  0 -2 -2 -3 -4  1 -1 -2 -2 -8 -6 -2 -2 -8
-H -3  1 -4  0 -1 -3 -4  7 -4 -4 -2 -3 -4  2 -2 -1  3  1 -2 -3 -2 -3 -3 -1  1 -2 -8
-I -1 -3 -3 -3 -3  0 -4 -4  6  4 -3  1  1 -2 -1 -3 -3 -2 -2  0 -1  3 -6 -2 -3 -1 -8
-J -2 -4 -5 -4 -4  0 -5 -4  4  4 -4  3  2 -3 -2 -3 -3 -3 -3 -2 -2  2 -5 -2 -3 -2 -8
-K -2  0 -7 -1 -1 -7 -3 -2 -3 -4  5 -4  0  1 -2 -2  0  2 -1 -1 -2 -4 -5 -5 -1 -2 -8
-L -3 -4 -7 -5 -4  0 -5 -3  1  3 -4  5  3 -4 -2 -3 -2 -4 -4 -3 -2  1 -3 -2 -3 -2 -8
-M -2 -4 -6 -4 -3 -1 -4 -4  1  2  0  3  8 -3 -2 -3 -1 -1 -2 -1 -2  1 -6 -4 -2 -2 -8
-N -1  3 -5  2  1 -4  0  2 -2 -3  1 -4 -3  4 -1 -2  0 -1  1  0 -1 -3 -4 -2  0 -1 -8
-O -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2 -8
-P  1 -2 -4 -3 -2 -5 -2 -1 -3 -3 -2 -3 -3 -2 -2  6  0 -1  1 -1 -2 -2 -7 -6 -1 -2 -8
-Q -1  0 -7  1  2 -6 -3  3 -3 -3  0 -2 -1  0 -1  0  6  1 -2 -2 -1 -3 -6 -5  4 -1 -8
-R -3 -2 -4 -3 -3 -5 -4  1 -2 -3  2 -4 -1 -1 -2 -1  1  6 -1 -2 -2 -3  1 -5 -1 -2 -8
-S  1  0  0  0 -1 -3  1 -2 -2 -3 -1 -4 -2  1 -1  1 -2 -1  3  2 -1 -2 -2 -3 -1 -1 -8
-T  1  0 -3 -1 -2 -4 -1 -3  0 -2 -1 -3 -1  0 -1 -1 -2 -2  2  4 -1  0 -6 -3 -2 -1 -8
-U -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2 -8
-V  0 -3 -3 -3 -3 -3 -2 -3  3  2 -4  1  1 -3 -1 -2 -3 -3 -2  0 -1  5 -8 -3 -3 -1 -8
-W -7 -6 -8 -8 -8 -1 -8 -3 -6 -5 -5 -3 -6 -4 -5 -7 -6  1 -2 -6 -5 -8 12 -2 -7 -5 -8
-Y -4 -3 -1 -5 -5  4 -6 -1 -2 -2 -5 -2 -4 -2 -3 -6 -5 -5 -3 -3 -3 -3 -2  8 -5 -3 -8
-Z -1  2 -7  3  4 -6 -2  1 -3 -3 -1 -3 -2  0 -1 -1  4 -1 -1 -2 -1 -3 -7 -5  4 -1 -8
-X -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2 -8
-* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  3  0 -3  0  0 -4  1 -3 -1 -2 -2 -3 -2 -1  1 -1 -3  1  1 -1  0 -7 -4 -1 -1 -8
+B  0  4 -6  4  3 -5  0  1 -3 -4  0 -4 -4  3 -2  0 -2  0  0 -1 -3 -6 -3  2 -1 -8
+C -3 -6  9 -7 -7 -6 -4 -4 -3 -5 -7 -7 -6 -5 -4 -7 -4  0 -3 -4 -3 -8 -1 -7 -4 -8
+D  0  4 -7  5  3 -7  0  0 -3 -4 -1 -5 -4  2 -3  1 -3  0 -1 -2 -3 -8 -5  3 -2 -8
+E  0  3 -7  3  5 -7 -1 -1 -3 -4 -1 -4 -3  1 -2  2 -3 -1 -2 -1 -3 -8 -5  4 -1 -8
+F -4 -5 -6 -7 -7  8 -5 -3  0  0 -7  0 -1 -4 -5 -6 -5 -3 -4 -3 -3 -1  4 -6 -3 -8
+G  1  0 -4  0 -1 -5  5 -4 -4 -5 -3 -5 -4  0 -2 -3 -4  1 -1 -2 -2 -8 -6 -2 -2 -8
+H -3  1 -4  0 -1 -3 -4  7 -4 -4 -2 -3 -4  2 -1  3  1 -2 -3 -2 -3 -3 -1  1 -2 -8
+I -1 -3 -3 -3 -3  0 -4 -4  6  4 -3  1  1 -2 -3 -3 -2 -2  0 -1  3 -6 -2 -3 -1 -8
+J -2 -4 -5 -4 -4  0 -5 -4  4  4 -4  3  2 -3 -3 -3 -3 -3 -2 -2  2 -5 -2 -3 -2 -8
+K -2  0 -7 -1 -1 -7 -3 -2 -3 -4  5 -4  0  1 -2  0  2 -1 -1 -2 -4 -5 -5 -1 -2 -8
+L -3 -4 -7 -5 -4  0 -5 -3  1  3 -4  5  3 -4 -3 -2 -4 -4 -3 -2  1 -3 -2 -3 -2 -8
+M -2 -4 -6 -4 -3 -1 -4 -4  1  2  0  3  8 -3 -3 -1 -1 -2 -1 -2  1 -6 -4 -2 -2 -8
+N -1  3 -5  2  1 -4  0  2 -2 -3  1 -4 -3  4 -2  0 -1  1  0 -1 -3 -4 -2  0 -1 -8
+P  1 -2 -4 -3 -2 -5 -2 -1 -3 -3 -2 -3 -3 -2  6  0 -1  1 -1 -2 -2 -7 -6 -1 -2 -8
+Q -1  0 -7  1  2 -6 -3  3 -3 -3  0 -2 -1  0  0  6  1 -2 -2 -1 -3 -6 -5  4 -1 -8
+R -3 -2 -4 -3 -3 -5 -4  1 -2 -3  2 -4 -1 -1 -1  1  6 -1 -2 -2 -3  1 -5 -1 -2 -8
+S  1  0  0  0 -1 -3  1 -2 -2 -3 -1 -4 -2  1  1 -2 -1  3  2 -1 -2 -2 -3 -1 -1 -8
+T  1  0 -3 -1 -2 -4 -1 -3  0 -2 -1 -3 -1  0 -1 -2 -2  2  4 -1  0 -6 -3 -2 -1 -8
+U -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2 -8
+V  0 -3 -3 -3 -3 -3 -2 -3  3  2 -4  1  1 -3 -2 -3 -3 -2  0 -1  5 -8 -3 -3 -1 -8
+W -7 -6 -8 -8 -8 -1 -8 -3 -6 -5 -5 -3 -6 -4 -7 -6  1 -2 -6 -5 -8 12 -2 -7 -5 -8
+Y -4 -3 -1 -5 -5  4 -6 -1 -2 -2 -5 -2 -4 -2 -6 -5 -5 -3 -3 -3 -3 -2  8 -5 -3 -8
+Z -1  2 -7  3  4 -6 -2  1 -3 -3 -1 -3 -2  0 -1  4 -1 -1 -2 -1 -3 -7 -5  4 -1 -8
+X -1 -1 -4 -2 -1 -3 -2 -2 -1 -2 -2 -2 -2 -1 -2 -1 -2 -1 -1 -2 -1 -5 -3 -1 -2 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
\ No newline at end of file
diff --git a/tests/score/PAM200 b/tests/score/PAM200
index d6e7d31..c7db5f5 100644
--- a/tests/score/PAM200
+++ b/tests/score/PAM200
@@ -10,31 +10,30 @@
 #
 #  added J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  3  0 -3  0  0 -4  1 -2 -1 -2 -2 -2 -2  0  0  1 -1 -2  1  1  0  0 -7 -4  0  0 -9
-B  0  3 -5  4  3 -6  0  1 -3 -4  0 -4 -3  3 -1 -1  1 -1  1  0 -1 -3 -6 -4  2 -1 -9
-C -3 -5 12 -6 -7 -6 -4 -4 -3 -5 -7 -7 -6 -5 -4 -4 -7 -4  0 -3 -4 -2 -9  0 -7 -4 -9
-D  0  4 -6  5  4 -7  0  0 -3 -4  0 -5 -4  3 -1 -2  2 -2  0  0 -1 -3 -8 -5  3 -1 -9
-E  0  3 -7  4  5 -7  0  0 -3 -4  0 -4 -3  2 -1 -1  3 -2  0 -1 -1 -2 -9 -5  4 -1 -9
-F -4 -6 -6 -7 -7 10 -6 -2  1  2 -7  2  0 -4 -3 -6 -6 -5 -4 -4 -3 -2  0  7 -6 -3 -9
-G  1  0 -4  0  0 -6  6 -3 -3 -4 -2 -5 -4  0 -1 -1 -2 -4  1  0 -1 -2 -8 -6 -1 -1 -9
-H -2  1 -4  0  0 -2 -3  8 -3 -3 -1 -3 -3  2 -1 -1  3  2 -1 -2 -1 -3 -3  0  2 -1 -9
-I -1 -3 -3 -3 -3  1 -3 -3  6  4 -2  2  2 -2 -1 -3 -3 -2 -2  0 -1  4 -6 -2 -3 -1 -9
-J -2 -4 -5 -4 -4  2 -4 -3  4  5 -3  5  3 -3 -2 -3 -3 -3 -3 -1 -2  3 -4 -2 -3 -2 -9
-K -2  0 -7  0  0 -7 -2 -1 -2 -3  6 -4  1  1 -1 -2  1  4  0  0 -1 -3 -4 -5  0 -1 -9
-L -2 -4 -7 -5 -4  2 -5 -3  2  5 -4  7  4 -4 -2 -3 -2 -4 -4 -2 -2  2 -2 -2 -3 -2 -9
-M -2 -3 -6 -4 -3  0 -4 -3  2  3  1  4  8 -2 -1 -3 -1 -1 -2 -1 -1  2 -5 -3 -2 -1 -9
-N  0  3 -5  3  2 -4  0  2 -2 -3  1 -4 -2  3  0 -1  1  0  1  0  0 -2 -5 -2  1  0 -9
-O  0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1 -9
-P  1 -1 -4 -2 -1 -6 -1 -1 -3 -3 -2 -3 -3 -1 -1  7  0  0  1  0 -1 -2 -7 -6 -1 -1 -9
-Q -1  1 -7  2  3 -6 -2  3 -3 -3  1 -2 -1  1 -1  0  5  1 -1 -1 -1 -3 -6 -5  4 -1 -9
-R -2 -1 -4 -2 -2 -5 -4  2 -2 -3  4 -4 -1  0 -1  0  1  7 -1 -1 -1 -3  2 -5  0 -1 -9
-S  1  1  0  0  0 -4  1 -1 -2 -3  0 -4 -2  1  0  1 -1 -1  2  2  0 -1 -3 -3 -1  0 -9
-T  1  0 -3  0 -1 -4  0 -2  0 -1  0 -2 -1  0  0  0 -1 -1  2  4  0  0 -6 -3 -1  0 -9
-U  0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1 -9
-V  0 -3 -2 -3 -2 -2 -2 -3  4  3 -3  2  2 -2 -1 -2 -3 -3 -1  0 -1  5 -8 -3 -2 -1 -9
-W -7 -6 -9 -8 -9  0 -8 -3 -6 -4 -4 -2 -5 -5 -5 -7 -6  2 -3 -6 -5 -8 18 -1 -7 -5 -9
-Y -4 -4  0 -5 -5  7 -6  0 -2 -2 -5 -2 -3 -2 -3 -6 -5 -5 -3 -3 -3 -3 -1 11 -5 -3 -9
-Z  0  2 -7  3  4 -6 -1  2 -3 -3  0 -3 -2  1 -1 -1  4  0 -1 -1 -1 -2 -7 -5  4 -1 -9
-X  0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1 -9
-* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  3  0 -3  0  0 -4  1 -2 -1 -2 -2 -2 -2  0  1 -1 -2  1  1  0  0 -7 -4  0  0 -9
+B  0  3 -5  4  3 -6  0  1 -3 -4  0 -4 -3  3 -1  1 -1  1  0 -1 -3 -6 -4  2 -1 -9
+C -3 -5 12 -6 -7 -6 -4 -4 -3 -5 -7 -7 -6 -5 -4 -7 -4  0 -3 -4 -2 -9  0 -7 -4 -9
+D  0  4 -6  5  4 -7  0  0 -3 -4  0 -5 -4  3 -2  2 -2  0  0 -1 -3 -8 -5  3 -1 -9
+E  0  3 -7  4  5 -7  0  0 -3 -4  0 -4 -3  2 -1  3 -2  0 -1 -1 -2 -9 -5  4 -1 -9
+F -4 -6 -6 -7 -7 10 -6 -2  1  2 -7  2  0 -4 -6 -6 -5 -4 -4 -3 -2  0  7 -6 -3 -9
+G  1  0 -4  0  0 -6  6 -3 -3 -4 -2 -5 -4  0 -1 -2 -4  1  0 -1 -2 -8 -6 -1 -1 -9
+H -2  1 -4  0  0 -2 -3  8 -3 -3 -1 -3 -3  2 -1  3  2 -1 -2 -1 -3 -3  0  2 -1 -9
+I -1 -3 -3 -3 -3  1 -3 -3  6  4 -2  2  2 -2 -3 -3 -2 -2  0 -1  4 -6 -2 -3 -1 -9
+J -2 -4 -5 -4 -4  2 -4 -3  4  5 -3  5  3 -3 -3 -3 -3 -3 -1 -2  3 -4 -2 -3 -2 -9
+K -2  0 -7  0  0 -7 -2 -1 -2 -3  6 -4  1  1 -2  1  4  0  0 -1 -3 -4 -5  0 -1 -9
+L -2 -4 -7 -5 -4  2 -5 -3  2  5 -4  7  4 -4 -3 -2 -4 -4 -2 -2  2 -2 -2 -3 -2 -9
+M -2 -3 -6 -4 -3  0 -4 -3  2  3  1  4  8 -2 -3 -1 -1 -2 -1 -1  2 -5 -3 -2 -1 -9
+N  0  3 -5  3  2 -4  0  2 -2 -3  1 -4 -2  3 -1  1  0  1  0  0 -2 -5 -2  1  0 -9
+P  1 -1 -4 -2 -1 -6 -1 -1 -3 -3 -2 -3 -3 -1  7  0  0  1  0 -1 -2 -7 -6 -1 -1 -9
+Q -1  1 -7  2  3 -6 -2  3 -3 -3  1 -2 -1  1  0  5  1 -1 -1 -1 -3 -6 -5  4 -1 -9
+R -2 -1 -4 -2 -2 -5 -4  2 -2 -3  4 -4 -1  0  0  1  7 -1 -1 -1 -3  2 -5  0 -1 -9
+S  1  1  0  0  0 -4  1 -1 -2 -3  0 -4 -2  1  1 -1 -1  2  2  0 -1 -3 -3 -1  0 -9
+T  1  0 -3  0 -1 -4  0 -2  0 -1  0 -2 -1  0  0 -1 -1  2  4  0  0 -6 -3 -1  0 -9
+U  0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1 -9
+V  0 -3 -2 -3 -2 -2 -2 -3  4  3 -3  2  2 -2 -2 -3 -3 -1  0 -1  5 -8 -3 -2 -1 -9
+W -7 -6 -9 -8 -9  0 -8 -3 -6 -4 -4 -2 -5 -5 -7 -6  2 -3 -6 -5 -8 18 -1 -7 -5 -9
+Y -4 -4  0 -5 -5  7 -6  0 -2 -2 -5 -2 -3 -2 -6 -5 -5 -3 -3 -3 -3 -1 11 -5 -3 -9
+Z  0  2 -7  3  4 -6 -1  2 -3 -3  0 -3 -2  1 -1  4  0 -1 -1 -1 -2 -7 -5  4 -1 -9
+X  0 -1 -4 -1 -1 -3 -1 -1 -1 -2 -1 -2 -1  0 -1 -1 -1  0  0 -1 -1 -5 -3 -1 -1 -9
+* -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9 -9  1
diff --git a/tests/score/PAM250 b/tests/score/PAM250
index a724d15..841d097 100644
--- a/tests/score/PAM250
+++ b/tests/score/PAM250
@@ -10,31 +10,30 @@
 #
 #  added J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  2  0 -2  0  0 -3  1 -1 -1 -2 -1 -2 -1  0  0  1  0 -2  1  1  0  0 -6 -3  0  0 -8
-B  0  3 -4  3  3 -4  0  1 -2 -3  1 -3 -2  2 -1 -1  1 -1  0  0 -1 -2 -5 -3  2 -1 -8
-C -2 -4 12 -5 -5 -4 -3 -3 -2 -4 -5 -6 -5 -4 -3 -3 -5 -4  0 -2 -3 -2 -8  0 -5 -3 -8
-D  0  3 -5  4  3 -6  1  1 -2 -3  0 -4 -3  2 -1 -1  2 -1  0  0 -1 -2 -7 -4  3 -1 -8
-E  0  3 -5  3  4 -5  0  1 -2 -3  0 -3 -2  1 -1 -1  2 -1  0  0 -1 -2 -7 -4  3 -1 -8
-F -3 -4 -4 -6 -5  9 -5 -2  1  2 -5  2  0 -3 -2 -5 -5 -4 -3 -3 -2 -1  0  7 -5 -2 -8
-G  1  0 -3  1  0 -5  5 -2 -3 -4 -2 -4 -3  0 -1  0 -1 -3  1  0 -1 -1 -7 -5  0 -1 -8
-H -1  1 -3  1  1 -2 -2  6 -2 -2  0 -2 -2  2 -1  0  3  2 -1 -1 -1 -2 -3  0  2 -1 -8
-I -1 -2 -2 -2 -2  1 -3 -2  5  4 -2  2  2 -2 -1 -2 -2 -2 -1  0 -1  4 -5 -1 -2 -1 -8
-J -2 -3 -4 -3 -3  2 -4 -2  4  4 -3  4  3 -3 -1 -3 -2 -3 -2 -1 -1  3 -4 -1 -3 -1 -8
-K -1  1 -5  0  0 -5 -2  0 -2 -3  5 -3  0  1 -1 -1  1  3  0  0 -1 -2 -3 -4  0 -1 -8
-L -2 -3 -6 -4 -3  2 -4 -2  2  4 -3  6  4 -3 -1 -3 -2 -3 -3 -2 -1  2 -2 -1 -3 -1 -8
-M -1 -2 -5 -3 -2  0 -3 -2  2  3  0  4  6 -2 -1 -2 -1  0 -2 -1 -1  2 -4 -2 -2 -1 -8
-N  0  2 -4  2  1 -3  0  2 -2 -3  1 -3 -2  2  0  0  1  0  1  0  0 -2 -4 -2  1  0 -8
-O  0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1 -8
-P  1 -1 -3 -1 -1 -5  0  0 -2 -3 -1 -3 -2  0 -1  6  0  0  1  0 -1 -1 -6 -5  0 -1 -8
-Q  0  1 -5  2  2 -5 -1  3 -2 -2  1 -2 -1  1 -1  0  4  1 -1 -1 -1 -2 -5 -4  3 -1 -8
-R -2 -1 -4 -1 -1 -4 -3  2 -2 -3  3 -3  0  0 -1  0  1  6  0 -1 -1 -2  2 -4  0 -1 -8
-S  1  0  0  0  0 -3  1 -1 -1 -2  0 -3 -2  1  0  1 -1  0  2  1  0 -1 -2 -3  0  0 -8
-T  1  0 -2  0  0 -3  0 -1  0 -1  0 -2 -1  0  0  0 -1 -1  1  3  0  0 -5 -3 -1  0 -8
-U  0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1 -8
-V  0 -2 -2 -2 -2 -1 -1 -2  4  3 -2  2  2 -2 -1 -1 -2 -2 -1  0 -1  4 -6 -2 -2 -1 -8
-W -6 -5 -8 -7 -7  0 -7 -3 -5 -4 -3 -2 -4 -4 -4 -6 -5  2 -2 -5 -4 -6 17  0 -6 -4 -8
-Y -3 -3  0 -4 -4  7 -5  0 -1 -1 -4 -1 -2 -2 -2 -5 -4 -4 -3 -3 -2 -2  0 10 -4 -2 -8
-Z  0  2 -5  3  3 -5  0  2 -2 -3  0 -3 -2  1 -1  0  3  0  0 -1 -1 -2 -6 -4  3 -1 -8
-X  0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1 -8
-* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  2  0 -2  0  0 -3  1 -1 -1 -2 -1 -2 -1  0  1  0 -2  1  1  0  0 -6 -3  0  0 -8
+B  0  3 -4  3  3 -4  0  1 -2 -3  1 -3 -2  2 -1  1 -1  0  0 -1 -2 -5 -3  2 -1 -8
+C -2 -4 12 -5 -5 -4 -3 -3 -2 -4 -5 -6 -5 -4 -3 -5 -4  0 -2 -3 -2 -8  0 -5 -3 -8
+D  0  3 -5  4  3 -6  1  1 -2 -3  0 -4 -3  2 -1  2 -1  0  0 -1 -2 -7 -4  3 -1 -8
+E  0  3 -5  3  4 -5  0  1 -2 -3  0 -3 -2  1 -1  2 -1  0  0 -1 -2 -7 -4  3 -1 -8
+F -3 -4 -4 -6 -5  9 -5 -2  1  2 -5  2  0 -3 -5 -5 -4 -3 -3 -2 -1  0  7 -5 -2 -8
+G  1  0 -3  1  0 -5  5 -2 -3 -4 -2 -4 -3  0  0 -1 -3  1  0 -1 -1 -7 -5  0 -1 -8
+H -1  1 -3  1  1 -2 -2  6 -2 -2  0 -2 -2  2  0  3  2 -1 -1 -1 -2 -3  0  2 -1 -8
+I -1 -2 -2 -2 -2  1 -3 -2  5  4 -2  2  2 -2 -2 -2 -2 -1  0 -1  4 -5 -1 -2 -1 -8
+J -2 -3 -4 -3 -3  2 -4 -2  4  4 -3  4  3 -3 -3 -2 -3 -2 -1 -1  3 -4 -1 -3 -1 -8
+K -1  1 -5  0  0 -5 -2  0 -2 -3  5 -3  0  1 -1  1  3  0  0 -1 -2 -3 -4  0 -1 -8
+L -2 -3 -6 -4 -3  2 -4 -2  2  4 -3  6  4 -3 -3 -2 -3 -3 -2 -1  2 -2 -1 -3 -1 -8
+M -1 -2 -5 -3 -2  0 -3 -2  2  3  0  4  6 -2 -2 -1  0 -2 -1 -1  2 -4 -2 -2 -1 -8
+N  0  2 -4  2  1 -3  0  2 -2 -3  1 -3 -2  2  0  1  0  1  0  0 -2 -4 -2  1  0 -8
+P  1 -1 -3 -1 -1 -5  0  0 -2 -3 -1 -3 -2  0  6  0  0  1  0 -1 -1 -6 -5  0 -1 -8
+Q  0  1 -5  2  2 -5 -1  3 -2 -2  1 -2 -1  1  0  4  1 -1 -1 -1 -2 -5 -4  3 -1 -8
+R -2 -1 -4 -1 -1 -4 -3  2 -2 -3  3 -3  0  0  0  1  6  0 -1 -1 -2  2 -4  0 -1 -8
+S  1  0  0  0  0 -3  1 -1 -1 -2  0 -3 -2  1  1 -1  0  2  1  0 -1 -2 -3  0  0 -8
+T  1  0 -2  0  0 -3  0 -1  0 -1  0 -2 -1  0  0 -1 -1  1  3  0  0 -5 -3 -1  0 -8
+U  0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1 -8
+V  0 -2 -2 -2 -2 -1 -1 -2  4  3 -2  2  2 -2 -1 -2 -2 -1  0 -1  4 -6 -2 -2 -1 -8
+W -6 -5 -8 -7 -7  0 -7 -3 -5 -4 -3 -2 -4 -4 -6 -5  2 -2 -5 -4 -6 17  0 -6 -4 -8
+Y -3 -3  0 -4 -4  7 -5  0 -1 -1 -4 -1 -2 -2 -5 -4 -4 -3 -3 -2 -2  0 10 -4 -2 -8
+Z  0  2 -5  3  3 -5  0  2 -2 -3  0 -3 -2  1  0  3  0  0 -1 -1 -2 -6 -4  3 -1 -8
+X  0 -1 -3 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1  0 -1 -1 -1  0  0 -1 -1 -4 -2 -1 -1 -8
+* -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8 -8  1
diff --git a/tests/score/PAM40 b/tests/score/PAM40
index 2d5a08a..bc98372 100644
--- a/tests/score/PAM40
+++ b/tests/score/PAM40
@@ -9,31 +9,30 @@
 #
 #  added J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-    A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   Y   Z   X   *
-A   6  -3  -6  -3  -2  -7  -1  -6  -4  -5  -6  -5  -4  -3  -3  -1  -3  -6   0   0  -3  -2 -12  -7  -2  -3 -15
-B  -3   6 -11   6   2  -9  -2  -1  -5  -7  -2  -8  -8   6  -4  -6  -2  -6  -1  -2  -4  -7  -9  -6   1  -4 -15
-C  -6 -11   9 -12 -12 -11  -8  -7  -5  -9 -12 -13 -12  -9  -8  -7 -12  -7  -2  -7  -8  -5 -14  -3 -12  -8 -15
-D  -3   6 -12   7   3 -13  -3  -3  -6  -9  -4 -11  -9   2  -5  -7  -2  -9  -3  -4  -5  -7 -13 -10   2  -5 -15
-E  -2   2 -12   3   7 -12  -3  -4  -5  -7  -4  -8  -6  -1  -4  -5   2  -8  -4  -5  -4  -6 -15  -8   6  -4 -15
-F  -7  -9 -11 -13 -12   9  -8  -5  -2  -2 -12  -2  -3  -8  -7  -9 -11  -8  -6  -8  -7  -7  -4   2 -12  -7 -15
-G  -1  -2  -8  -3  -3  -8   6  -8  -9  -9  -6  -9  -7  -2  -4  -5  -6  -8  -1  -5  -4  -5 -13 -12  -4  -4 -15
-H  -6  -1  -7  -3  -4  -5  -8   9  -8  -7  -5  -5  -9   1  -4  -3   1  -1  -5  -6  -4  -6  -6  -3   0  -4 -15
-I  -4  -5  -5  -6  -5  -2  -9  -8   8   4  -5  -1   0  -4  -4  -7  -7  -5  -6  -2  -4   2 -12  -5  -5  -4 -15
-J  -5  -7  -9  -9  -7  -2  -9  -7   4   4  -6   3   1  -5  -5  -7  -6  -7  -7  -4  -5   0  -9  -6  -6  -5 -15
-K  -6  -2 -12  -4  -4 -12  -6  -5  -5  -6   6  -7  -1   0  -4  -6  -2   1  -3  -2  -4  -8 -10  -8  -3  -4 -15
-L  -5  -8 -13 -11  -8  -2  -9  -5  -1   3  -7   7   1  -6  -5  -6  -4  -8  -7  -6  -5  -2  -5  -6  -6  -5 -15
-M  -4  -8 -12  -9  -6  -3  -7  -9   0   1  -1   1  11  -7  -4  -7  -3  -3  -5  -3  -4  -1 -11 -10  -4  -4 -15
-N  -3   6  -9   2  -1  -8  -2   1  -4  -5   0  -6  -7   7  -3  -5  -3  -5   0  -1  -3  -7  -7  -4  -2  -3 -15
-O  -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -4  -5  -2  -3  -4  -4  -9  -7  -4  -4 -15
-P  -1  -6  -7  -7  -5  -9  -5  -3  -7  -7  -6  -6  -7  -5  -4   8  -2  -3  -1  -3  -4  -5 -12 -12  -3  -4 -15
-Q  -3  -2 -12  -2   2 -11  -6   1  -7  -6  -2  -4  -3  -3  -4  -2   8  -1  -4  -5  -4  -6 -11 -10   6  -4 -15
-R  -6  -6  -7  -9  -8  -8  -8  -1  -5  -7   1  -8  -3  -5  -5  -3  -1   8  -2  -5  -5  -7  -1  -9  -3  -5 -15
-S   0  -1  -2  -3  -4  -6  -1  -5  -6  -7  -3  -7  -5   0  -2  -1  -4  -2   6   1  -2  -5  -4  -6  -4  -2 -15
-T   0  -2  -7  -4  -5  -8  -5  -6  -2  -4  -2  -6  -3  -1  -3  -3  -5  -5   1   7  -3  -2 -11  -6  -5  -3 -15
-U  -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -4  -5  -2  -3  -4  -4  -9  -7  -4  -4 -15
-V  -2  -7  -5  -7  -6  -7  -5  -6   2   0  -8  -2  -1  -7  -4  -5  -6  -7  -5  -2  -4   7 -14  -6  -6  -4 -15
-W -12  -9 -14 -13 -15  -4 -13  -6 -12  -9 -10  -5 -11  -7  -9 -12 -11  -1  -4 -11  -9 -14  13  -4 -13  -9 -15
-Y  -7  -6  -3 -10  -8   2 -12  -3  -5  -6  -8  -6 -10  -4  -7 -12 -10  -9  -6  -6  -7  -6  -4  10  -8  -7 -15
-Z  -2   1 -12   2   6 -12  -4   0  -5  -6  -3  -6  -4  -2  -4  -3   6  -3  -4  -5  -4  -6 -13  -8   6  -4 -15
-X  -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -4  -5  -2  -3  -4  -4  -9  -7  -4  -4 -15
-* -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15   1
+    A   B   C   D   E   F   G   H   I   J   K   L   M   N   P   Q   R   S   T   U   V   W   Y   Z   X   *
+A   6  -3  -6  -3  -2  -7  -1  -6  -4  -5  -6  -5  -4  -3  -1  -3  -6   0   0  -3  -2 -12  -7  -2  -3 -15
+B  -3   6 -11   6   2  -9  -2  -1  -5  -7  -2  -8  -8   6  -6  -2  -6  -1  -2  -4  -7  -9  -6   1  -4 -15
+C  -6 -11   9 -12 -12 -11  -8  -7  -5  -9 -12 -13 -12  -9  -7 -12  -7  -2  -7  -8  -5 -14  -3 -12  -8 -15
+D  -3   6 -12   7   3 -13  -3  -3  -6  -9  -4 -11  -9   2  -7  -2  -9  -3  -4  -5  -7 -13 -10   2  -5 -15
+E  -2   2 -12   3   7 -12  -3  -4  -5  -7  -4  -8  -6  -1  -5   2  -8  -4  -5  -4  -6 -15  -8   6  -4 -15
+F  -7  -9 -11 -13 -12   9  -8  -5  -2  -2 -12  -2  -3  -8  -9 -11  -8  -6  -8  -7  -7  -4   2 -12  -7 -15
+G  -1  -2  -8  -3  -3  -8   6  -8  -9  -9  -6  -9  -7  -2  -5  -6  -8  -1  -5  -4  -5 -13 -12  -4  -4 -15
+H  -6  -1  -7  -3  -4  -5  -8   9  -8  -7  -5  -5  -9   1  -3   1  -1  -5  -6  -4  -6  -6  -3   0  -4 -15
+I  -4  -5  -5  -6  -5  -2  -9  -8   8   4  -5  -1   0  -4  -7  -7  -5  -6  -2  -4   2 -12  -5  -5  -4 -15
+J  -5  -7  -9  -9  -7  -2  -9  -7   4   4  -6   3   1  -5  -7  -6  -7  -7  -4  -5   0  -9  -6  -6  -5 -15
+K  -6  -2 -12  -4  -4 -12  -6  -5  -5  -6   6  -7  -1   0  -6  -2   1  -3  -2  -4  -8 -10  -8  -3  -4 -15
+L  -5  -8 -13 -11  -8  -2  -9  -5  -1   3  -7   7   1  -6  -6  -4  -8  -7  -6  -5  -2  -5  -6  -6  -5 -15
+M  -4  -8 -12  -9  -6  -3  -7  -9   0   1  -1   1  11  -7  -7  -3  -3  -5  -3  -4  -1 -11 -10  -4  -4 -15
+N  -3   6  -9   2  -1  -8  -2   1  -4  -5   0  -6  -7   7  -5  -3  -5   0  -1  -3  -7  -7  -4  -2  -3 -15
+P  -1  -6  -7  -7  -5  -9  -5  -3  -7  -7  -6  -6  -7  -5   8  -2  -3  -1  -3  -4  -5 -12 -12  -3  -4 -15
+Q  -3  -2 -12  -2   2 -11  -6   1  -7  -6  -2  -4  -3  -3  -2   8  -1  -4  -5  -4  -6 -11 -10   6  -4 -15
+R  -6  -6  -7  -9  -8  -8  -8  -1  -5  -7   1  -8  -3  -5  -3  -1   8  -2  -5  -5  -7  -1  -9  -3  -5 -15
+S   0  -1  -2  -3  -4  -6  -1  -5  -6  -7  -3  -7  -5   0  -1  -4  -2   6   1  -2  -5  -4  -6  -4  -2 -15
+T   0  -2  -7  -4  -5  -8  -5  -6  -2  -4  -2  -6  -3  -1  -3  -5  -5   1   7  -3  -2 -11  -6  -5  -3 -15
+U  -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -5  -2  -3  -4  -4  -9  -7  -4  -4 -15
+V  -2  -7  -5  -7  -6  -7  -5  -6   2   0  -8  -2  -1  -7  -5  -6  -7  -5  -2  -4   7 -14  -6  -6  -4 -15
+W -12  -9 -14 -13 -15  -4 -13  -6 -12  -9 -10  -5 -11  -7 -12 -11  -1  -4 -11  -9 -14  13  -4 -13  -9 -15
+Y  -7  -6  -3 -10  -8   2 -12  -3  -5  -6  -8  -6 -10  -4 -12 -10  -9  -6  -6  -7  -6  -4  10  -8  -7 -15
+Z  -2   1 -12   2   6 -12  -4   0  -5  -6  -3  -6  -4  -2  -3   6  -3  -4  -5  -4  -6 -13  -8   6  -4 -15
+X  -3  -4  -8  -5  -4  -7  -4  -4  -4  -5  -4  -5  -4  -3  -4  -4  -5  -2  -3  -4  -4  -9  -7  -4  -4 -15
+* -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15 -15   1
\ No newline at end of file
diff --git a/tests/score/VTML200I b/tests/score/VTML200I
index fe25ce1..f265721 100644
--- a/tests/score/VTML200I
+++ b/tests/score/VTML200I
@@ -27,31 +27,30 @@
 #
 #  added J-Column as (I+L)/2 and U == X
 #  reordered to be (alphabetically sorted; X *)
-   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z  X  *
-A  4 -1  1 -1 -1 -3  0 -2 -1 -2 -1 -2 -1 -1 -1  0 -1 -2  1  1 -1  0 -4 -3 -1 -1 -6
-B -1  4 -3  5  2 -5  0  1 -4 -5  0 -5 -3  4 -1 -1  1 -1  1  0 -1 -3 -5 -3  1 -1 -6
-C  1 -3 12 -4 -4 -3 -2 -2  0 -2 -4 -3 -1 -2 -1 -3 -3 -3  1  0 -1  1 -6  0 -4 -1 -6
-D -1  5 -4  6  3 -6 -1  0 -5 -5  0 -5 -4  3 -2 -1  1 -2  0 -1 -2 -4 -6 -4  2 -2 -6
-E -1  2 -4  3  5 -5 -1  0 -4 -4  1 -4 -3  1 -1 -1  2 -1  0 -1 -1 -3 -6 -3  4 -1 -6
-F -3 -5 -3 -6 -5  8 -5  0  0  1 -5  2  1 -4 -1 -4 -3 -4 -3 -3 -1 -1  3  5 -4 -1 -6
-G  0  0 -2 -1 -1 -5  8 -2 -6 -6 -2 -5 -4  0 -2 -2 -2 -2  0 -2 -2 -4 -5 -5 -2 -2 -6
-H -2  1 -2  0  0  0 -2  8 -3 -3  0 -2 -3  1  0 -2  2  1  0 -1  0 -3 -1  3  1  0 -6
-I -1 -4  0 -5 -4  0 -6 -3  5  4 -3  3  2 -4 -1 -4 -3 -3 -3 -1 -1  4 -2 -2 -3 -1 -6
-J -2 -5 -2 -5 -4  1 -6 -3  4  4 -3  4  3 -4 -1 -4 -3 -3 -3 -2 -1  3 -2 -2 -3 -1 -6
-K -1  0 -4  0  1 -5 -2  0 -3 -3  5 -3 -2  1 -1 -1  2  4  0  0 -1 -3 -4 -3  2 -1 -6
-L -2 -5 -3 -5 -4  2 -5 -2  3  4 -3  5  3 -4 -1 -3 -2 -3 -3 -2 -1  2 -1 -1 -3 -1 -6
-M -1 -3 -1 -4 -3  1 -4 -3  2  3 -2  3  6 -3 -1 -3 -1 -2 -2 -1 -1  2 -3 -2 -2 -1 -6
-N -1  4 -2  3  1 -4  0  1 -4 -4  1 -4 -3  6 -1 -2  1  0  1  0 -1 -3 -5 -2  1 -1 -6
-O -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -6
-P  0 -1 -3 -1 -1 -4 -2 -2 -4 -4 -1 -3 -3 -2 -2  9 -1 -1  0 -1 -2 -3 -4 -5 -1 -2 -6
-Q -1  1 -3  1  2 -3 -2  2 -3 -3  2 -2 -1  1 -1 -1  5  2  0  0 -1 -2 -6 -3  4 -1 -6
-R -2 -1 -3 -2 -1 -4 -2  1 -3 -3  4 -3 -2  0 -1 -1  2  7 -1 -1 -1 -3 -3 -2  0 -1 -6
-S  1  1  1  0  0 -3  0  0 -3 -3  0 -3 -2  1 -1  0  0 -1  4  2 -1 -2 -4 -2  0 -1 -6
-T  1  0  0 -1 -1 -3 -2 -1 -1 -2  0 -2 -1  0 -1 -1  0 -1  2  4 -1  0 -5 -3 -1 -1 -6
-U -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -6
-V  0 -3  1 -4 -3 -1 -4 -3  4  3 -3  2  2 -3 -1 -3 -2 -3 -2  0 -1  4 -4 -2 -3 -1 -6
-W -4 -5 -6 -6 -6  3 -5 -1 -2 -2 -4 -1 -3 -5 -2 -4 -6 -3 -4 -5 -2 -4 15  4 -6 -2 -6
-Y -3 -3  0 -4 -3  5 -5  3 -2 -2 -3 -1 -2 -2 -1 -5 -3 -2 -2 -3 -1 -2  4  9 -3 -1 -6
-Z -1  1 -4  2  4 -4 -2  1 -3 -3  2 -3 -2  1 -1 -1  4  0  0 -1 -1 -3 -6 -3  4 -1 -6
-X -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -6
-* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1
+   A  B  C  D  E  F  G  H  I  J  K  L  M  N  P  Q  R  S  T  U  V  W  Y  Z  X  *
+A  4 -1  1 -1 -1 -3  0 -2 -1 -2 -1 -2 -1 -1  0 -1 -2  1  1 -1  0 -4 -3 -1 -1 -6
+B -1  4 -3  5  2 -5  0  1 -4 -5  0 -5 -3  4 -1  1 -1  1  0 -1 -3 -5 -3  1 -1 -6
+C  1 -3 12 -4 -4 -3 -2 -2  0 -2 -4 -3 -1 -2 -3 -3 -3  1  0 -1  1 -6  0 -4 -1 -6
+D -1  5 -4  6  3 -6 -1  0 -5 -5  0 -5 -4  3 -1  1 -2  0 -1 -2 -4 -6 -4  2 -2 -6
+E -1  2 -4  3  5 -5 -1  0 -4 -4  1 -4 -3  1 -1  2 -1  0 -1 -1 -3 -6 -3  4 -1 -6
+F -3 -5 -3 -6 -5  8 -5  0  0  1 -5  2  1 -4 -4 -3 -4 -3 -3 -1 -1  3  5 -4 -1 -6
+G  0  0 -2 -1 -1 -5  8 -2 -6 -6 -2 -5 -4  0 -2 -2 -2  0 -2 -2 -4 -5 -5 -2 -2 -6
+H -2  1 -2  0  0  0 -2  8 -3 -3  0 -2 -3  1 -2  2  1  0 -1  0 -3 -1  3  1  0 -6
+I -1 -4  0 -5 -4  0 -6 -3  5  4 -3  3  2 -4 -4 -3 -3 -3 -1 -1  4 -2 -2 -3 -1 -6
+J -2 -5 -2 -5 -4  1 -6 -3  4  4 -3  4  3 -4 -4 -3 -3 -3 -2 -1  3 -2 -2 -3 -1 -6
+K -1  0 -4  0  1 -5 -2  0 -3 -3  5 -3 -2  1 -1  2  4  0  0 -1 -3 -4 -3  2 -1 -6
+L -2 -5 -3 -5 -4  2 -5 -2  3  4 -3  5  3 -4 -3 -2 -3 -3 -2 -1  2 -1 -1 -3 -1 -6
+M -1 -3 -1 -4 -3  1 -4 -3  2  3 -2  3  6 -3 -3 -1 -2 -2 -1 -1  2 -3 -2 -2 -1 -6
+N -1  4 -2  3  1 -4  0  1 -4 -4  1 -4 -3  6 -2  1  0  1  0 -1 -3 -5 -2  1 -1 -6
+P  0 -1 -3 -1 -1 -4 -2 -2 -4 -4 -1 -3 -3 -2  9 -1 -1  0 -1 -2 -3 -4 -5 -1 -2 -6
+Q -1  1 -3  1  2 -3 -2  2 -3 -3  2 -2 -1  1 -1  5  2  0  0 -1 -2 -6 -3  4 -1 -6
+R -2 -1 -3 -2 -1 -4 -2  1 -3 -3  4 -3 -2  0 -1  2  7 -1 -1 -1 -3 -3 -2  0 -1 -6
+S  1  1  1  0  0 -3  0  0 -3 -3  0 -3 -2  1  0  0 -1  4  2 -1 -2 -4 -2  0 -1 -6
+T  1  0  0 -1 -1 -3 -2 -1 -1 -2  0 -2 -1  0 -1  0 -1  2  4 -1  0 -5 -3 -1 -1 -6
+U -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -6
+V  0 -3  1 -4 -3 -1 -4 -3  4  3 -3  2  2 -3 -3 -2 -3 -2  0 -1  4 -4 -2 -3 -1 -6
+W -4 -5 -6 -6 -6  3 -5 -1 -2 -2 -4 -1 -3 -5 -4 -6 -3 -4 -5 -2 -4 15  4 -6 -2 -6
+Y -3 -3  0 -4 -3  5 -5  3 -2 -2 -3 -1 -2 -2 -5 -3 -2 -2 -3 -1 -2  4  9 -3 -1 -6
+Z -1  1 -4  2  4 -4 -2  1 -3 -3  2 -3 -2  1 -1  4  0  0 -1 -1 -3 -6 -3  4 -1 -6
+X -1 -1 -1 -2 -1 -1 -2  0 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -2 -1 -1 -1 -6
+* -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6  1
diff --git a/tests/seeds/test_align_banded_chain_impl.cpp b/tests/seeds/test_align_banded_chain_impl.cpp
index 2a2c504..0ebcd25 100644
--- a/tests/seeds/test_align_banded_chain_impl.cpp
+++ b/tests/seeds/test_align_banded_chain_impl.cpp
@@ -990,31 +990,6 @@ void testBandedChainAlignmentBandExtension(TGapSpec)
 
     }
 }
-
-SEQAN_DEFINE_TEST(test_banded_chain_alignment_issue_1020)
-{
-    using namespace seqan;
-
-    DnaString query = "ATCTCTCTCAACAAAACAACGAGGAGGAGTGAAAAGAGAGAGAT";
-    DnaString ref   = "ATCTCTCTCAACAACAACAACGGAGGAGGAGGAAAAGAGAGAGAT";
-
-    typedef Seed<Simple> TSeed;
-    String<TSeed> seedChain;
-    appendValue(seedChain, TSeed( 0,  0, 14));
-    appendValue(seedChain, TSeed(30, 31, 14));
-    Score<int, Simple> scoringScheme(2, -1, -2);
-
-    Align<DnaString, ArrayGaps> align;
-    resize(rows(align), 2);
-    assignSource(row(align, 0), query);
-    assignSource(row(align, 1), ref);
-
-    int res = bandedChainAlignment(align, seedChain, scoringScheme, 14);
-    SEQAN_ASSERT_EQ(res, 80);
-    SEQAN_ASSERT_EQ(row(align, 0), "ATCTCTCTCAACAA-AACAAC-GAGGAGGAGTGAAAAGAGAGAGAT");
-    SEQAN_ASSERT_EQ(row(align, 1), "ATCTCTCTCAACAACAACAACGGAGGAGGAG-GAAAAGAGAGAGAT");
-}
-
 SEQAN_DEFINE_TEST(test_banded_chain_alignment_empty_set_linear)
 {
     testBandedChainAlignmentEmptyChain(seqan::LinearGaps());
@@ -1089,6 +1064,5 @@ SEQAN_BEGIN_TESTSUITE(test_banded_chain_impl)
     SEQAN_CALL_TEST(test_banded_chain_alignment_special_seeds_affine);
     SEQAN_CALL_TEST(test_banded_chain_alignment_band_extensions_linear);
     SEQAN_CALL_TEST(test_banded_chain_alignment_band_extensions_affine);
-    SEQAN_CALL_TEST(test_banded_chain_alignment_issue_1020);
 }
 SEQAN_END_TESTSUITE
diff --git a/tests/seq_io/test_sequence_file.h b/tests/seq_io/test_sequence_file.h
index 4d37c2c..578cfdd 100644
--- a/tests/seq_io/test_sequence_file.h
+++ b/tests/seq_io/test_sequence_file.h
@@ -107,8 +107,7 @@ SEQAN_DEFINE_TEST(test_seq_io_sequence_file_recognize_file_format_text_fastq)
 // Test reading with different interfaces.
 // ---------------------------------------------------------------------------
 
-template <typename TId, typename TSeq>
-void testSeqIOSequenceFileReadRecordTextFasta()
+SEQAN_DEFINE_TEST(test_seq_io_sequence_file_read_record_text_fasta)
 {
     // Build path to file.
     seqan::CharString filePath = SEQAN_PATH_TO_ROOT();
@@ -118,8 +117,8 @@ void testSeqIOSequenceFileReadRecordTextFasta()
     SeqFileIn seqIO(toCString(filePath));
 
     // Check that the file type and format are set correctly.
-    TId id;
-    TSeq seq;
+    seqan::CharString id;
+    seqan::Dna5String seq;
 
     readRecord(id, seq, seqIO);
     SEQAN_ASSERT_EQ(id, "seq1");
@@ -136,14 +135,6 @@ void testSeqIOSequenceFileReadRecordTextFasta()
     SEQAN_ASSERT(atEnd(seqIO));
 }
 
-SEQAN_DEFINE_TEST(test_seq_io_sequence_file_read_record_text_fasta)
-{
-    testSeqIOSequenceFileReadRecordTextFasta<seqan::CharString, seqan::Dna5String>();
-    testSeqIOSequenceFileReadRecordTextFasta<std::string, std::string>();
-    testSeqIOSequenceFileReadRecordTextFasta<std::string, seqan::Dna5String>();
-    testSeqIOSequenceFileReadRecordTextFasta<seqan::CharString, std::string>();
-}
-
 SEQAN_DEFINE_TEST(test_seq_io_sequence_file_read_all_text_fasta)
 {
     // Build path to file.
diff --git a/tests/sequence/CMakeLists.txt b/tests/sequence/CMakeLists.txt
index a8db5ea..8e5934f 100644
--- a/tests/sequence/CMakeLists.txt
+++ b/tests/sequence/CMakeLists.txt
@@ -43,10 +43,6 @@ add_executable (test_sequence_v2 test_sequence_v2.cpp
                test_segment_beta.h)
 target_link_libraries (test_sequence_v2 ${SEQAN_LIBRARIES})
 
-add_executable (test_stringset_v2 test_stringset_v2.cpp
-               test_string_set.h)
-target_link_libraries (test_stringset_v2 ${SEQAN_LIBRARIES})
-
 # Add CXX flags found by find_package (SeqAn).
 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}")
 
diff --git a/tests/sequence/test_sequence.h b/tests/sequence/test_sequence.h
index b5b057a..5dcd38b 100755
--- a/tests/sequence/test_sequence.h
+++ b/tests/sequence/test_sequence.h
@@ -877,7 +877,7 @@ void testSequenceAppend(TString & /*Tag*/)
         TString string1 = "ACGTACGTACGT";
         TString string2 = "";
         append(string1, string2);
-        SEQAN_ASSERT_EQ(string1, "ACGTACGTACGT");
+        SEQAN_ASSERT(string1 == "ACGTACGTACGT");
     }
 
     // Test the append function on one empty and one non empty string
@@ -885,7 +885,7 @@ void testSequenceAppend(TString & /*Tag*/)
         TString string1 = "";
         TString string2 = "TTGGATTAACC";
         append(string1, string2);
-        SEQAN_ASSERT_EQ(string1, "TTGGATTAACC");
+        SEQAN_ASSERT(string1 == "TTGGATTAACC");
     }
 
     // Test the append function on two non empty strings.
@@ -893,7 +893,7 @@ void testSequenceAppend(TString & /*Tag*/)
         TString string1 = "ACGTACGTACGT";
         TString string2 = "TTGGATTAACCC";
         append(string1, string2);
-        SEQAN_ASSERT_EQ(string1, "ACGTACGTACGTTTGGATTAACCC");
+        SEQAN_ASSERT(string1 == "ACGTACGTACGTTTGGATTAACCC");
     }
 }
 
diff --git a/tests/sequence/test_string_set.h b/tests/sequence/test_string_set.h
index 1e835ae..e719483 100755
--- a/tests/sequence/test_string_set.h
+++ b/tests/sequence/test_string_set.h
@@ -30,7 +30,6 @@
 //
 // ==========================================================================
 // Author: Jochen Singer <jochen.singer at fu-berlin.de>
-// Auther: Hannes Hauswedell <hannes.hauswedell at fu-berlin.de>
 // ==========================================================================
 // This file contains functions to test the functionality of the sequence
 // module.
@@ -41,82 +40,11 @@
 
 #include <seqan/basic.h>
 #include <seqan/sequence.h>
-#include <seqan/stream.h>
+#include "test_sequence.h"
 
-using namespace seqan;
-
-// --------------------------------------------------------------------------
-// CountingChar is used to test sequences of non simple data types.
-// --------------------------------------------------------------------------
-//TODO(h4nn3s): currently not working for StringSets
-
-struct CountingChar
-{
-    char value;                     // value of the object
-    static unsigned numConstruct;   // number of constructor calls
-    static unsigned numDeconstruct; // number of destructor calls
-
-    CountingChar() : value()
-    {
-        numConstruct += 1;
-    }
-
-    CountingChar(char const & value) : value(value)
-    {
-        numConstruct += 1;
-    }
-
-    CountingChar(CountingChar const & other) : value(other.value)
-    {
-        numConstruct += 1;
-    }
-
-    ~CountingChar()
-    {
-        numDeconstruct += 1;
-    }
-
-    static void clear()
-    {
-        numConstruct = 0;
-        numDeconstruct = 0;
-    }
-
-    bool operator==(CountingChar const & other) const
-    {
-        return value == other.value;
-    }
-
-    bool operator>(CountingChar const & other) const
-    {
-        return value > other.value;
-    }
-
-    bool operator<(CountingChar const & other) const
-    {
-        return value < other.value;
-    }
-};
-
-template <typename TStream>
-inline TStream & operator<<(TStream & stream, CountingChar const & countingChar)
-{
-    stream << countingChar.value;
-
-    return stream;
-}
-
-template <typename TStream, typename TSpec>
-inline TStream & operator<<(TStream & stream, String<CountingChar, TSpec> const & string)
-{
-    for (unsigned i = 0; i < length(string); ++i)
-        stream << string[i];
-
-    return stream;
-}
-
-unsigned CountingChar::numConstruct = 0;
-unsigned CountingChar::numDeconstruct = 0;
+// TODO(singer): The Value metafunction of a concat direct string set returns an infix.
+// This should be changed!
+// The following metafunction is just a workaround.
 
 template <typename TStringSet>
 struct TestStringSetValue_
@@ -130,29 +58,14 @@ struct TestStringSetValue_<StringSet<TString, Owner<ConcatDirect<> > > >
     typedef TString Type;
 };
 
-template <typename TString>
-struct TestStringSetValue_<StringSet<TString, Owner<ConcatDirect<> > > const>
-{
-    typedef TString Type;
-};
-
-// template <typename TAlphabetSpecPair>
-// class StringSetTest : public Test
-// {
-// public:
-//     typedef typename TagListValue<TAlphabetSpecPair, 2>::Type TAlphabet;
-//     typedef typename TagListValue<TAlphabetSpecPair, 1>::Type TStringSpec;
-//     typedef typename TagListValue<TAlphabetSpecPair, 0>::Type TSetSpec;
-//     typedef StringSet<String<TAlphabet, TStringSpec>, TSetSpec> TStringSet;
-// };
-
-template <typename TAlphabetSpecPair_>
-class StringSetTest : public Test
+template <typename TAlphabetSpecPair>
+class StringSetTest : public seqan::Test
 {
 public:
-//     typedef typename TagListValue<TAlphabetSpecPair, 1>::Type TAlphabet;
-//     typedef typename TagListValue<TAlphabetSpecPair, 2>::Type TSpec;
-    typedef TAlphabetSpecPair_ TStringSet;
+    typedef typename seqan::TagListValue<TAlphabetSpecPair, 1>::Type TAlphabet;
+    typedef typename seqan::TagListValue<TAlphabetSpecPair, 2>::Type TStringSpec;
+    typedef typename seqan::TagListValue<TAlphabetSpecPair, 3>::Type TSetSpec;
+    typedef seqan::StringSet<seqan::String<TAlphabet, TStringSpec>, TSetSpec> TStringSet;
 };
 
 // ((a (b (c)))
@@ -160,118 +73,117 @@ public:
 //   ((g (h (i)))
 // )))
 
-typedef
-/*    TagList<StringSet<String<Dna,          MMap<> >, Owner<> >                ,
-    TagList<StringSet<String<short,        MMap<> >, Owner<> >                ,
-    TagList<StringSet<String<char,         MMap<> >, Owner<> >                ,
-//     TagList<StringSet<String<CountingChar, MMap<> >, Owner<> >                ,
-//     TagList<StringSet<String<Dna,   MMap<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<short,        MMap<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<char,         MMap<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<CountingChar, MMap<> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<Dna,          MMap<> >, Dependent<Tight> >       ,
-    TagList<StringSet<String<short,        MMap<> >, Dependent<Tight> >       ,
-    TagList<StringSet<String<char,         MMap<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<CountingChar, MMap<> >, Dependent<Tight> >       ,
-    TagList<StringSet<String<Dna,          MMap<> >, Dependent<Generous> >    ,
-    TagList<StringSet<String<short,        MMap<> >, Dependent<Generous> >    ,
-    TagList<StringSet<String<char,         MMap<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<CountingChar, MMap<> >, Dependent<Generous> >    ,
-
-    TagList<StringSet<String<Dna,          External<> >, Owner<> >                ,
-    TagList<StringSet<String<short,        External<> >, Owner<> >                ,
-    TagList<StringSet<String<char,         External<> >, Owner<> >                ,
-//     TagList<StringSet<String<CountingChar, External<> >, Owner<> >                ,
-//     TagList<StringSet<String<Dna,   External<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<short,        External<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<char,         External<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<CountingChar, External<> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<Dna,          External<> >, Dependent<Tight> >       ,
-    TagList<StringSet<String<short,        External<> >, Dependent<Tight> >       ,
-    TagList<StringSet<String<char,         External<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<CountingChar, External<> >, Dependent<Tight> >       ,
-    TagList<StringSet<String<Dna,          External<> >, Dependent<Generous> >    ,
-    TagList<StringSet<String<short,        External<> >, Dependent<Generous> >    ,
-    TagList<StringSet<String<char,         External<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<CountingChar, External<> >, Dependent<Generous> >    ,
-*/
-    TagList<StringSet<String<Dna,          Packed<> >, Owner<> >                ,
-    TagList<StringSet<String<short,        Packed<> >, Owner<> >                ,
-    TagList<StringSet<String<char,         Packed<> >, Owner<> >                ,
-    TagList<StringSet<String<Dna,          Packed<> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<short,        Packed<> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<char,         Packed<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<Dna,          Packed<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<short,        Packed<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<char,         Packed<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<Dna,          Packed<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<short,        Packed<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<char,         Packed<> >, Dependent<Generous> >    ,
-
-    TagList<StringSet<String<Dna,          Array<100> >, Owner<> >                ,
-    TagList<StringSet<String<short,        Array<100> >, Owner<> >                ,
-    TagList<StringSet<String<char,         Array<100> >, Owner<> >                ,
-//     TagList<StringSet<String<CountingChar, Array<100> >, Owner<> >                ,
-    TagList<StringSet<String<Dna,          Array<1000> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<short,        Array<1000> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<char,         Array<1000> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<CountingChar, Array<1000> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<Dna,          Array<100> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<short,        Array<100> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<char,         Array<100> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<CountingChar, Array<100> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<Dna,          Array<100> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<short,        Array<100> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<char,         Array<100> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<CountingChar, Array<100> >, Dependent<Generous> >    ,
-
-//     TagList<StringSet<String<Dna,          Block<> >, Owner<> >                ,
-//     TagList<StringSet<String<short,        Block<> >, Owner<> >                ,
-//     TagList<StringSet<String<char,         Block<> >, Owner<> >                ,
-// //     TagList<StringSet<String<CountingChar, Block<> >, Owner<> >                ,
-//     TagList<StringSet<String<Dna,          Block<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<short,        Block<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<char,         Block<> >, Owner<ConcatDirect<> > > ,
-// //     TagList<StringSet<String<CountingChar, Block<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<Dna,          Block<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<short,        Block<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<char,         Block<> >, Dependent<Tight> >       ,
-// //     TagList<StringSet<String<CountingChar, Block<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<Dna,          Block<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<short,        Block<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<char,         Block<> >, Dependent<Generous> >    ,
-// //     TagList<StringSet<String<CountingChar, Block<> >, Dependent<Generous> >    ,
+typedef seqan::TagList<
+//             seqan::TagList<seqan::Dna, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+//             seqan::TagList<short, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+//             seqan::TagList<CountingChar, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+//             seqan::TagList<seqan::Dna, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+//             seqan::TagList<short, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+//             seqan::TagList<CountingChar, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+//             seqan::TagList<seqan::Dna, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+//             seqan::TagList<short, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+//             seqan::TagList<CountingChar, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+//             seqan::TagList<seqan::Dna, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+//             seqan::TagList<short, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+//             seqan::TagList<CountingChar, seqan::TagList<seqan::MMap<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::External<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Packed<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Array<100>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Block<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
 
 // TODO(Singer): 7 errors and about 400 warnings (deprecated ...)
-//             TagList<char, TagList<CStyle, TagList<Owner<> > > >, TagList<
-//             TagList<char, TagList<CStyle, TagList<Owner<ConcatDirect<> > > > >, TagList<
-//             TagList<char, TagList<CStyle, TagList<Dependent<Tight> > > >, TagList<
-//             TagList<char, TagList<CStyle, TagList<Dependent<Generous> > > >, TagList<
-
-    TagList<StringSet<String<Dna,          Alloc<> >, Owner<> >                ,
-    TagList<StringSet<String<short,        Alloc<> >, Owner<> >                ,
-    TagList<StringSet<String<char,         Alloc<> >, Owner<> >                ,
-//     TagList<StringSet<String<CountingChar, Alloc<> >, Owner<> >                ,
-    TagList<StringSet<String<Dna,          Alloc<> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<short,        Alloc<> >, Owner<ConcatDirect<> > > ,
-    TagList<StringSet<String<char,         Alloc<> >, Owner<ConcatDirect<> > > //,
-//     TagList<StringSet<String<CountingChar, Alloc<> >, Owner<ConcatDirect<> > > ,
-//     TagList<StringSet<String<Dna,          Alloc<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<short,        Alloc<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<char,         Alloc<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<CountingChar, Alloc<> >, Dependent<Tight> >       ,
-//     TagList<StringSet<String<Dna,          Alloc<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<short,        Alloc<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<char,         Alloc<> >, Dependent<Generous> >    ,
-//     TagList<StringSet<String<CountingChar, Alloc<> >, Dependent<Generous> >
-
-//     > > > > > > > > > > > > > > > >
-//     > > > > > > > > > > > > > > > >
-    > > > > > > //> > > > > >
-    > > > > > > //> > > > > > > > > >
-//     > > > > > > > > > > > > > > > >
-//     > > > >
-    > > > > > > //> > > > > > > > > >
+//             seqan::TagList<char, seqan::TagList<seqan::CStyle, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::CStyle, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::CStyle, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+//             seqan::TagList<char, seqan::TagList<seqan::CStyle, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Owner<ConcatDirect<> > > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Tight> > > >, seqan::TagList<
+            seqan::TagList<seqan::Dna, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<short, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<char, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Generous> > > >, seqan::TagList<
+            seqan::TagList<CountingChar, seqan::TagList<seqan::Alloc<>, seqan::TagList<seqan::Dependent<Generous> > > >//, seqan::TagList<
+//         > > > > > > > > > > > > > > > >
+        > > > > > > > > > > > > > > > >
+        > > > > > > > > > > > >
+        > > > > > > > > > > > > > > > >
+        > > > > > > > > > > > > > > > >
+//         > > > >
+        > > > > > > > > > > > > > > > >
         StringSetTestTypes;
 
 template <typename T>
@@ -291,37 +203,11 @@ TStringSet createStringSet(TStringSet & stringSet)
 }
 
 // Test whether PrefixSegments are copy constructible.
-// template <typename TStringSet>
-// void testStringSetCopyConstructible(TStringSet & /*Tag*/)
-// {
-//     TStringSet stringSet1;
-//     resize(stringSet1, 3);
-//     stringSet1[0] = "AAAA";
-//     SEQAN_ASSERT_EQ(stringSet1[0], "AAAA");
-//     stringSet1[1] = "CC";
-//     SEQAN_ASSERT_EQ(stringSet1[1], "CC");
-//     stringSet1[2] = "GGG";
-//     SEQAN_ASSERT_EQ(stringSet1[2], "GGG");
-// 
-//     {
-//         TStringSet stringSet2(stringSet1);
-// 
-//         SEQAN_ASSERT_EQ(getValue(stringSet2, 0), "AAAA");
-//         SEQAN_ASSERT_EQ(getValue(stringSet2, 1), "CC");
-//         SEQAN_ASSERT_EQ(getValue(stringSet2, 2), "GGG");
-//     }
-//     {
-//         TStringSet const stringSet2(stringSet1);
-// 
-//         SEQAN_ASSERT_EQ(getValue(stringSet2, 0), "AAAA");
-//         SEQAN_ASSERT_EQ(getValue(stringSet2, 1), "CC");
-//         SEQAN_ASSERT_EQ(getValue(stringSet2, 2), "GGG");
-//     }
-// }
-
 template <typename TStringSet>
 void testStringSetCopyConstructible(TStringSet & /*Tag*/)
 {
+    using namespace seqan;
+
     typedef typename TestStringSetValue_<TStringSet>::Type TString;
 
     TString str1("AAAA");
@@ -330,37 +216,32 @@ void testStringSetCopyConstructible(TStringSet & /*Tag*/)
 
     TStringSet stringSet1;
     appendValue(stringSet1, str1);
-    SEQAN_ASSERT(stringSet1[0] == str1);
     appendValue(stringSet1, str2);
-    SEQAN_ASSERT(stringSet1[1] == str2);
     appendValue(stringSet1, str3);
-    SEQAN_ASSERT(stringSet1[2] == str3);
 
     {
         TStringSet stringSet2(stringSet1);
-        
-        SEQAN_ASSERT(getValue(stringSet2, 0) == str1);
-        SEQAN_ASSERT(getValue(stringSet2, 1) == str2);
-        SEQAN_ASSERT(getValue(stringSet2, 2) == str3);
+
+        SEQAN_ASSERT_EQ(getValue(stringSet2, 0), "AAAA");
+        SEQAN_ASSERT_EQ(getValue(stringSet2, 1), "CC");
+        SEQAN_ASSERT_EQ(getValue(stringSet2, 2), "GGG");
     }
     {
         TStringSet const stringSet2(stringSet1);
 
-        SEQAN_ASSERT(getValue(stringSet2, 0) == str1);
-        SEQAN_ASSERT(getValue(stringSet2, 1) == str2);
-        SEQAN_ASSERT(getValue(stringSet2, 2) == str3);
+        SEQAN_ASSERT_EQ(getValue(stringSet2, 0), "AAAA");
+        SEQAN_ASSERT_EQ(getValue(stringSet2, 1), "CC");
+        SEQAN_ASSERT_EQ(getValue(stringSet2, 2), "GGG");
     }
 }
 
-// TODO(h4nn3s): the following tests would fail, check if we could (and should) fix this
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetCopyConstructible(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetCopyConstructible(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetCopyConstructible(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetCopyConstructible(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
+// TODO(singer): AppendValue is not available for string sets of packed strings
+template <typename TValue, typename TStringSetSpec>
+void testStringSetCopyConstructible(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetCopyConstructible(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetCopyConstructible(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
 
 // Test whether sequences are copy constructible.
 SEQAN_TYPED_TEST(StringSetTestCommon, CopyConstructible)
@@ -370,7 +251,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, CopyConstructible)
     typename TestFixture::TStringSet strSet;
     testStringSetCopyConstructible(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test whether sequences are default constructible.
@@ -391,7 +272,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, DefaultConstructible)
     typename TestFixture::TStringSet strSet;
     testStringSetDefaultConstructible(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 
@@ -401,7 +282,7 @@ void testStringSetLessGreaterEqual(TStringSet & /*Tag*/)
 {
     using namespace seqan;
     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
 
     // nothing - nohing
     {
@@ -517,20 +398,16 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Comparison)
 //     typename TestFixture::TStringSet const constStrSet;
 //     testStringSetLessGreaterEqual(constStrSet);
 //
-//     testConstructDeconstruct(strSet);
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
-// TODO dependent can't append
-template <typename TValue, typename TStringSpec, typename TSpec2>
-void testStringSetAppend(StringSet<String<TValue, TStringSpec >, Dependent<TSpec2> > & /*Tag*/) {}
-
 // Test of append().
 template <typename TStringSet>
 void testStringSetAppend(TStringSet & /*Tag*/)
 {
     using namespace seqan;
 
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
 
     TStringSet stringSet1;
     TStringSet stringSet2;
@@ -548,12 +425,12 @@ void testStringSetAppend(TStringSet & /*Tag*/)
 // TODO(singer): append not implemented for string sets
 SEQAN_TYPED_TEST(StringSetTestCommon, Append)
 {
-    CountingChar::clear();
-
-    typename TestFixture::TStringSet strSet;
-    testStringSetAppend(strSet);
-
-//     testConstructDeconstruct(strSet);
+//     CountingChar::clear();
+//
+//     typename TestFixture::TStringSet strSet;
+//     testStringSetAppend(strSet);
+//
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of appendValue().
@@ -571,23 +448,23 @@ void testStringSetAppendValue(TStringSet & /*Tag*/)
     TString str("ACGT");
     appendValue(stringSet, str);
     SEQAN_ASSERT_EQ(length(stringSet), 1u);
-    SEQAN_ASSERT(stringSet[0] == str);
+    SEQAN_ASSERT_EQ(stringSet[0], "ACGT");
 
     // Test the appendValue function
-    TString str2 = TString("CGTA");
-    appendValue(stringSet, str2);
+    str = TString("CGTA");
+    appendValue(stringSet, str);
     SEQAN_ASSERT_EQ(length(stringSet), 2u);
-    SEQAN_ASSERT(stringSet[0] == str);
-    SEQAN_ASSERT(stringSet[1] == str2);
+    SEQAN_ASSERT_EQ(stringSet[0], "ACGT");
+    SEQAN_ASSERT_EQ(stringSet[1], "CGTA");
 }
 
 // TODO(singer): AppendValue is not available for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAppendValue(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAppendValue(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAppendValue(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAppendValue(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAppendValue(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAppendValue(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, AppendValue)
 {
@@ -596,7 +473,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, AppendValue)
     typename TestFixture::TStringSet strSet;
     testStringSetAppendValue(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of assign().
@@ -605,7 +482,7 @@ void testStringSetAssign(TStringSet & /*Tag*/)
 {
     using namespace seqan;
 
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
     {
         TStringSet stringSet1;
         TStringSet stringSet2;
@@ -638,7 +515,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Assign)
     typename TestFixture::TStringSet strSet;
     testStringSetAssign(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of assignValue().
@@ -656,33 +533,27 @@ void testStringSetAssignValue(TStringSet & /*Tag*/)
     resize(stringSet, 3u);
     assignValue(stringSet, 1u, string);
     SEQAN_ASSERT_EQ(length(stringSet), 3u);
-    SEQAN_ASSERT(stringSet[1] == string);  // Fixes compiler warning if string alphabet type is not char type.
+    SEQAN_ASSERT_EQ(stringSet[1], string);
 }
 
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValue(StringSet<String<TValue, Block<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValue(StringSet<String<TValue, Block<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValue(StringSet<String<TValue, Block<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValue(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValue(StringSet<String<TValue, Block<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValue(StringSet<String<TValue, Block<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValue(StringSet<String<TValue, Block<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValue(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
 template <typename TValue, typename TStringSetSpec>
 void testStringSetAssignValue(StringSet<String<TValue, Packed<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-template <typename TValue>
-void testStringSetAssignValue(StringSet<String<TValue, Packed<> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
 template <typename TValue, typename TStringSetSpec>
-void testStringSetAssignValue(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > & /*Tag*/) {} 
-// // TODO(singer): Seg fault
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValue(StringSet<String<TValue, External<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSpec, typename TStringSetSpec>
-// void testStringSetAssignValue(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
+void testStringSetAssignValue(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
 
-template <typename TString>
-void testStringSetAssignValue(StringSet<TString, Owner<ConcatDirect<> > > & /*Tag*/) {}
-template <typename TString>
-void testStringSetAssignValue(StringSet<TString, Owner<ConcatDirect<> > > const & /*Tag*/) {}
+// TODO(singer): Seg fault
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValue(StringSet<String<TValue, External<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSpec, typename TStringSetSpec>
+void testStringSetAssignValue(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, AssignValue)
 {
@@ -691,7 +562,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, AssignValue)
     typename TestFixture::TStringSet strSet;
     testStringSetAssignValue(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of assignValueById().
@@ -708,7 +579,7 @@ void testStringSetAssignValueById(TStringSet & /*Tag*/)
     TString string("ACGT");
     unsigned id = assignValueById(stringSet1, string);
     SEQAN_ASSERT_EQ(length(stringSet1), 1u);
-    SEQAN_ASSERT_EQ(CharString(stringSet1[0]), string);
+    SEQAN_ASSERT_EQ(stringSet1[0], string);
     SEQAN_ASSERT_EQ(id, 0u);
 
     // TODO (singer): this is not documented, such that it can be easily understood!
@@ -723,40 +594,33 @@ void testStringSetAssignValueById(TStringSet & /*Tag*/)
     id = assignValueById(stringSet1, stringSet2, 1u);
 
     SEQAN_ASSERT_EQ(length(stringSet1), 2u);
-    SEQAN_ASSERT_EQ(CharString(stringSet1[0]), string);
-    SEQAN_ASSERT_EQ(CharString(stringSet1[1]), str3);
+    SEQAN_ASSERT_EQ(stringSet1[0], string);
+    SEQAN_ASSERT_EQ(stringSet1[1], str3);
     SEQAN_ASSERT_EQ(id, 1u);
 }
 
 // TODO(singer): Seg fault
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValueById(StringSet<String<TValue, Block<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValueById(StringSet<String<TValue, Block<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
 template <typename TValue, typename TStringSetSpec>
 void testStringSetAssignValueById(StringSet<String<TValue, Array<100> >, Owner<TStringSetSpec> > & /*Tag*/) {}
 template <typename TValue, typename TStringSetSpec>
 void testStringSetAssignValueById(StringSet<String<TValue, Packed<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetAssignValueById(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
 template <typename TValue>
-void testStringSetAssignValueById(StringSet<String<TValue, Array<100> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
+void testStringSetAssignValueById(StringSet<String<TValue, External<> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
 template <typename TValue>
-void testStringSetAssignValueById(StringSet<String<TValue, Packed<> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
-
-
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetAssignValueById(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-template <typename TString>
-void testStringSetAssignValueById(StringSet<TString, Owner<ConcatDirect<> > > & /*Tag*/) {}
-template <typename TString>
-void testStringSetAssignValueById(StringSet<TString, Owner<ConcatDirect<> > > const & /*Tag*/) {}
+void testStringSetAssignValueById(StringSet<String<TValue, Alloc<> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, AssignValueById)
 {
-// BROKEN FOR LOTS OF STUFF
-//     CountingChar::clear();
-// 
-//     typename TestFixture::TStringSet strSet;
-//     testStringSetAssignValueById(strSet);
-//
-//     testConstructDeconstruct(strSet);
+    CountingChar::clear();
+
+    typename TestFixture::TStringSet strSet;
+    testStringSetAssignValueById(strSet);
+
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of back() for non const strings.
@@ -777,7 +641,7 @@ void testStringSetBack(TStringSet & /*Tag*/)
     // val is a reference in contrast to the const version of back()
     TString & val = back(stringSet);
     val = "TTTT";
-    SEQAN_ASSERT(val == stringSet[1]);
+    SEQAN_ASSERT_EQ(val, stringSet[1]);
 }
 
 // Test of back() for const strings.
@@ -799,29 +663,24 @@ void testStringSetBack(TStringSet const & /*Tag*/)
 
     // val is a reference in contrast to the const version of back()
     TString val = back(stringSet);
-    SEQAN_ASSERT(val == TString(stringSet[1]));
+    SEQAN_ASSERT_EQ(val, stringSet[1]);
     val = "TTTT";
-    SEQAN_ASSERT(TString(stringSet[1]) == str2);
+    SEQAN_ASSERT_EQ(stringSet[1], str2);
 }
 
 // TODO(singer)
 template <typename TValue, typename TStringSpec>
 void testStringSetBack(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > & /*Tag*/) {}
-
-// this should work, but doesnt
-template <typename TSpec>
-void testStringSetBack(StringSet<String<short, Packed<TSpec> >, Owner<ConcatDirect<> > > const & /*Tag*/) {}
-
-// template <typename TValue, typename TStringSpec>
-// void testStringSetBack(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > const & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetBack(StringSet<String<TValue, External<> >, Owner<> > & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetBack(StringSet<String<TValue, External<> >, Owner<> > const & /*Tag*/) {}
-// template <typename TValue, typename TStringSpec, typename TStringSetSpec>
-// void testStringSetBack(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSpec, typename TStringSetSpec>
-// void testStringSetBack(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSpec>
+void testStringSetBack(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > const & /*Tag*/) {}
+template <typename TValue>
+void testStringSetBack(StringSet<String<TValue, External<> >, Owner<> > & /*Tag*/) {}
+template <typename TValue>
+void testStringSetBack(StringSet<String<TValue, External<> >, Owner<> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSpec, typename TStringSetSpec>
+void testStringSetBack(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSpec, typename TStringSetSpec>
+void testStringSetBack(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, Back)
 {
@@ -833,7 +692,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Back)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetBack(constStrSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of begin().
@@ -852,29 +711,25 @@ void testStringSetBegin(TStringSet & /*Tag*/)
     appendValue(nonConstStringSet, str);
     appendValue(nonConstStringSet, str2);
     TStringSet stringSet(nonConstStringSet);
-    SEQAN_ASSERT(TString(*begin(stringSet)) == str);
-    SEQAN_ASSERT(TString(*begin(stringSet, Standard())) == str);
-    SEQAN_ASSERT(TString(*begin(stringSet, Rooted())) == str);
+    SEQAN_ASSERT_EQ(*begin(stringSet), str);
+    SEQAN_ASSERT_EQ(*begin(stringSet, Standard()), str);
+    SEQAN_ASSERT_EQ(*begin(stringSet, Rooted()), str);
 }
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBegin(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBegin(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBegin(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBegin(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// 
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBegin(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBegin(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBegin(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBegin(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBegin(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBegin(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
-// this should work, but doesnt
-template <typename TSpec>
-void testStringSetBegin(StringSet<String<short, Packed<TSpec> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
+
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBegin(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBegin(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, Begin)
 {
@@ -886,7 +741,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Begin)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetBegin(constStrSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of beginPosition().
@@ -918,18 +773,18 @@ void testStringSetBeginPosition(TStringSet & /*Tag*/)
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBeginPosition(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBeginPosition(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBeginPosition(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBeginPosition(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBeginPosition(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetBeginPosition(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBeginPosition(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBeginPosition(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBeginPosition(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBeginPosition(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBeginPosition(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetBeginPosition(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, BeginPosition)
 {
@@ -941,7 +796,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, BeginPosition)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetBeginPosition(constStrSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of clear().
@@ -969,18 +824,18 @@ void testStringSetClear(TStringSet & /*Tag*/)
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetClear(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetClear(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetClear(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetClear(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetClear(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetClear(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetClear(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetClear(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetClear(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetClear(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetClear(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetClear(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, Clear)
 {
@@ -989,7 +844,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Clear)
     typename TestFixture::TStringSet strSet;
     testStringSetClear(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of concat().
@@ -1000,7 +855,7 @@ void testStringSetConcat(TStringSet & /*Tag*/)
 
     typedef typename TestStringSetValue_<TStringSet>::Type TString;
     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-//     typedef typename Concatenator<TStringSet>::Type TConcat;
+    typedef typename Concatenator<TStringSet>::Type TConcat;
 
     // TODO (singer): test fails for not initialized string sets.
     // Error message: Assertion failed : static_cast<TStringPos>(pos) < static_cast<TStringPos>(length(me)) was: 0 >= 0 (Trying to access an element behind the last one!).
@@ -1025,7 +880,7 @@ void testStringSetConcat(TStringSet & /*Tag*/)
         appendValue(nonConstStringSet, str4);
         TString string("AAAACCCCGGGGTTTT");
         TStringSet stringSet(nonConstStringSet);
-        TString/*TConcat*/ concatString = concat(stringSet); // can't call [] on all Concatenators so we convert here
+        TConcat concatString = concat(stringSet);
         for (unsigned i = 0; i < length(string); ++i)
             SEQAN_ASSERT_EQ(string[i], concatString[i]);
     }
@@ -1036,10 +891,10 @@ template <typename TValue, typename TStringSetSpec>
 void testStringSetConcat(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
 template <typename TValue, typename TStringSetSpec>
 void testStringSetConcat(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetConcat(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetConcat(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetConcat(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetConcat(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, Concat)
 {
@@ -1048,7 +903,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Concat)
     typename TestFixture::TStringSet strSet;
     testStringSetConcat(strSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of end().
@@ -1075,21 +930,20 @@ void testStringSetEnd(TStringSet & /*Tag*/)
     --standardIter;
     --rootedIter;
 
-    // Fixes compiler warning if string alphabet type is not char type.
-    SEQAN_ASSERT(*iter == str2);
-    SEQAN_ASSERT(*standardIter == str2);
-    SEQAN_ASSERT(*rootedIter == str2);
+    SEQAN_ASSERT_EQ(*iter, str2);
+    SEQAN_ASSERT_EQ(*standardIter, str2);
+    SEQAN_ASSERT_EQ(*rootedIter, str2);
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEnd(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEnd(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEnd(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEnd(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEnd(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEnd(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEnd(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEnd(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, End)
 {
@@ -1101,7 +955,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, End)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetEnd(constStrSet);
 
-//     testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of endPosition().
@@ -1154,7 +1008,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, EndPosition)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetEndPosition(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of erase().
@@ -1175,11 +1029,11 @@ void testStringSetErase(TStringSet & /*Tag*/)
     appendValue(stringSet, str);
     appendValue(stringSet, str2);
     appendValue(stringSet, str3);
-    SEQAN_ASSERT(stringSet[1] == str2);
+    SEQAN_ASSERT_EQ(stringSet[1], str2);
     erase(stringSet, 1);
     SEQAN_ASSERT_EQ(length(stringSet), 2u);
-    SEQAN_ASSERT(stringSet[0] == str);
-    SEQAN_ASSERT(stringSet[1] == str3);
+    SEQAN_ASSERT_EQ(stringSet[0], TString());
+    SEQAN_ASSERT_EQ(stringSet[1], TString());
 }
 
 // TODO(singer): Seg. fault
@@ -1211,7 +1065,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Erase)
     typename TestFixture::TStringSet strSet;
     testStringSetErase(strSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of eraseBack().
@@ -1236,22 +1090,22 @@ void testStringSetEraseBack(TStringSet & /*Tag*/)
     appendValue(stringSet, str);
     appendValue(stringSet, str);
     appendValue(stringSet, str2);
-    SEQAN_ASSERT(stringSet[2] == str2);
+    SEQAN_ASSERT_EQ(stringSet[2], str2);
     eraseBack(stringSet);
     SEQAN_ASSERT_EQ(length(stringSet), 2u);
-    SEQAN_ASSERT(stringSet[0] == TString());
-    SEQAN_ASSERT(stringSet[1] == TString());
+    SEQAN_ASSERT_EQ(stringSet[0], TString());
+    SEQAN_ASSERT_EQ(stringSet[1], TString());
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEraseBack(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEraseBack(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEraseBack(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetEraseBack(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEraseBack(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEraseBack(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEraseBack(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetEraseBack(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, EraseBack)
 {
@@ -1260,7 +1114,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, EraseBack)
     typename TestFixture::TStringSet strSet;
     testStringSetEraseBack(strSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // TODO (singer): not in docu.
@@ -1281,7 +1135,7 @@ void testStringSetFront(TStringSet & /*Tag*/)
     // val is a reference in contrast to the const version of front()
     TString & val = front(stringSet);
     val = "TTTT";
-    SEQAN_ASSERT(val == stringSet[0]);
+    SEQAN_ASSERT_EQ(val, stringSet[0]);
 }
 
 // Test of front() for const strings.
@@ -1303,42 +1157,38 @@ void testStringSetFront(TStringSet const & /*Tag*/)
 
     // val is a reference in contrast to the const version of front()
     TString val = front(stringSet);
-    SEQAN_ASSERT(val == stringSet[0]);
+    SEQAN_ASSERT_EQ(val, stringSet[0]);
     val = "TTTT";
-    SEQAN_ASSERT(stringSet[0] == str);
+    SEQAN_ASSERT_EQ(stringSet[0], str);
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetFront(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetFront(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetFront(StringSet<String<TValue, Array<100> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetFront(StringSet<String<TValue, Array<100> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetFront(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetFront(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetFront(StringSet<String<TValue, Array<100> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetFront(StringSet<String<TValue, Array<100> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
 
 // TODO(singer)
-// template <typename TValue>
-// void testStringSetFront(StringSet<String<TValue, MMap<> >, Owner<> > & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetFront(StringSet<String<TValue, MMap<> >, Owner<> > const & /*Tag*/) {}
+template <typename TValue>
+void testStringSetFront(StringSet<String<TValue, MMap<> >, Owner<> > & /*Tag*/) {}
+template <typename TValue>
+void testStringSetFront(StringSet<String<TValue, MMap<> >, Owner<> > const & /*Tag*/) {}
 template <typename TValue, typename TStringSpec>
 void testStringSetFront(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > & /*Tag*/) {}
-// template <typename TValue, typename TStringSpec>
-// void testStringSetFront(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > const & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetFront(StringSet<String<TValue, External<> >, Owner<> > & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetFront(StringSet<String<TValue, External<> >, Owner<> > const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetFront(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetFront(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
-
-// this should work, but doesnt
-template <typename TSpec>
-void testStringSetFront(StringSet<String<short, Packed<TSpec> >, Owner<ConcatDirect<> > > const & /*Tag*/) {}
+template <typename TValue, typename TStringSpec>
+void testStringSetFront(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > const & /*Tag*/) {}
+template <typename TValue>
+void testStringSetFront(StringSet<String<TValue, External<> >, Owner<> > & /*Tag*/) {}
+template <typename TValue>
+void testStringSetFront(StringSet<String<TValue, External<> >, Owner<> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetFront(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetFront(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, Front)
 {
@@ -1350,7 +1200,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Front)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetFront(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of getValue().
@@ -1367,13 +1217,12 @@ void testStringSetGetValue(TStringSet & /*Tag*/)
     TString str("CG");
     TString str2("ACGT");
     TString str3("CGACGT");
-
     TNonConstStringSet nonConstStringSet;
     appendValue(nonConstStringSet, str);
     appendValue(nonConstStringSet, str2);
     appendValue(nonConstStringSet, str3);
     TStringSet stringSet(nonConstStringSet);
-    SEQAN_ASSERT(TString(getValue(stringSet, 1)) == TString(str2));
+    SEQAN_ASSERT_EQ(getValue(stringSet, 1), str2);
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
@@ -1396,7 +1245,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, GetValue)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetGetValue(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // TODO (singer): not defined for const string sets.
@@ -1417,7 +1266,7 @@ void testStringSetGetValueById(TStringSet & /*Tag*/)
     appendValue(nonConstStringSet, str2);
     appendValue(nonConstStringSet, str3);
     TStringSet stringSet(nonConstStringSet);
-    SEQAN_ASSERT(getValueById(stringSet, typename Id<TStringSet>::Type(1)) == str2);
+    SEQAN_ASSERT_EQ(getValueById(stringSet, typename Id<TStringSet>::Type(1)), str2);
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
@@ -1441,166 +1290,166 @@ SEQAN_TYPED_TEST(StringSetTestCommon, GetValueById)
 //     typename TestFixture::TStringSet const constStrSet;
 //     testStringSetGetValueById(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
-// // TODO (singer): define behaviour and adjust test.
-// // Infix() compiles and does what it is supposed to do?!
-// // However, it is not very intuitive. For details see comments below.
-// // There is a need to improve the documentation of this!
-// // Test of infix()
-// template <typename TStringSet>
-// void testStringSetInfix(TStringSet & /*Tag*/)
-// {
-//     using namespace seqan;
-// 
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
-//     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-// 
-//     TString str("AAAA");
-//     TString str2("CCC");
-//     TString str3("GGGG");
-//     TNonConstStringSet nonConstStringSet;
-//     appendValue(nonConstStringSet, str);
-//     appendValue(nonConstStringSet, str2);
-//     appendValue(nonConstStringSet, str3);
-// 
-//     // Only non-const test for this scenario possible.
-//     TStringSet stringSet(nonConstStringSet);
-//     TString string = infix(stringSet, 0, 1); // Returns the first character not string!
-//     // std::cerr << string << std::endl; -> "A"
-// 
-//     // Only non-const test for this scenario possible.
-//     // TString str2("TT");
-//     // nonConstStringSet[0] = str2;
-// 
-//     // Since the infix (should) point to the fist element it should point to "T"
-//     // std::cerr << string << std::endl; -> "A"
-//     // Therefore there is a different behaviour to normal strings.
-// }
-// 
-// // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// // TODO(singer)
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue,typename TStringSetSpec>
-// void testStringSetInfix(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// SEQAN_TYPED_TEST(StringSetTestCommon, Infix)
-// {
-//     CountingChar::clear();
-// 
-//     typename TestFixture::TStringSet strSet;
-//     testStringSetInfix(strSet);
-// 
-//     typename TestFixture::TStringSet const constStrSet;
-//     testStringSetInfix(constStrSet);
-// 
-// //    testConstructDeconstruct(strSet);
-// }
-// 
-// // TODO (singer): define behaviour and adjust test.
-// // Infix() compiles and does what it is supposed to do?!
-// // However, it is not very intuitive. For details see comments below.
-// // There is a need to improve the documentation of this!
-// // Test of infixWithLength()
-// template <typename TStringSet>
-// void testStringSetInfixWithLength(TStringSet & /*Tag*/)
-// {
-// using namespace seqan;
-// 
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
-//     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-// 
-//     TString str("AAAA");
-//     TString str2("CCC");
-//     TString str3("GGGG");
-//     TNonConstStringSet nonConstStringSet;
-//     appendValue(nonConstStringSet, str);
-//     appendValue(nonConstStringSet, str2);
-//     appendValue(nonConstStringSet, str3);
-// 
-//     // Only non-const test for this scenario possible.
-//     TStringSet stringSet(nonConstStringSet);
-//     TString string = infixWithLength(stringSet, 0, 1); // Returns the first character not string!
-//     // std::cerr << string << std::endl; -> "A"
-// 
-//     // Only non-const test for this scenario possible.
-//     // TString str2("TT");
-//     // nonConstStringSet[0] = str2;
-// 
-//     // Since the infix (should) point to the fist element it should point to "T"
-//     // std::cerr << string << std::endl; -> "A"
-//     // Therefore there is a different behaviour to normal strings.
-// }
-// // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// // TODO(singer)
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue,typename TStringSetSpec>
-// void testStringSetInfixWithLength(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// SEQAN_TYPED_TEST(StringSetTestCommon, InfixWithLength)
-// {
-//     CountingChar::clear();
-// 
-//     typename TestFixture::TStringSet strSet;
-//     testStringSetInfixWithLength(strSet);
-// 
-//     typename TestFixture::TStringSet const constStrSet;
-//     testStringSetInfixWithLength(constStrSet);
-// 
-// //    testConstructDeconstruct(strSet);
-// }
+// TODO (singer): define behaviour and adjust test.
+// Infix() compiles and does what it is supposed to do?!
+// However, it is not very intuitive. For details see comments below.
+// There is a need to improve the documentation of this!
+// Test of infix()
+template <typename TStringSet>
+void testStringSetInfix(TStringSet & /*Tag*/)
+{
+    using namespace seqan;
 
-// Test of insert().
-// TODO (singer): no insert function implemented.
-// template <typename TStringSet>
-// void testStringSetInsert(TStringSet & /*Tag*/)
-// {
-//     using namespace seqan;
-//
-//     // Test of inserting an empty string.
-//     TStringSet stringSet1;
-//     resize(stringSet1, 1u);
-//     TStringSet stringSet2;
-//     insert(stringSet1, 0u, stringSet2);
-//     SEQAN_ASSERT_EQ(length(stringSet1), 1u);
-//
-//     resize(stringSet2, 3u);
-//     stringSet2[0] = "ACGT";
-//     insert(stringSet1, 0u, stringSet2);
-//     SEQAN_ASSERT_EQ(length(stringSet1), 4u);
-//     SEQAN_ASSERT_EQ(stringSet1[1], "ACGT");
-// }
-//
-// SEQAN_TYPED_TEST(StringSetTestCommon, Insert)
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
+    typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
+
+    TString str("AAAA");
+    TString str2("CCC");
+    TString str3("GGGG");
+    TNonConstStringSet nonConstStringSet;
+    appendValue(nonConstStringSet, str);
+    appendValue(nonConstStringSet, str2);
+    appendValue(nonConstStringSet, str3);
+
+    // Only non-const test for this scenario possible.
+    TStringSet stringSet(nonConstStringSet);
+    TString string = infix(stringSet, 0, 1); // Returns the first character not string!
+    // std::cerr << string << std::endl; -> "A"
+
+    // Only non-const test for this scenario possible.
+    // TString str2("TT");
+    // nonConstStringSet[0] = str2;
+
+    // Since the infix (should) point to the fist element it should point to "T"
+    // std::cerr << string << std::endl; -> "A"
+    // Therefore there is a different behaviour to normal strings.
+}
+
+// TODO(singer): No appendValue for string sets of packed strings
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+
+// TODO(singer)
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue,typename TStringSetSpec>
+void testStringSetInfix(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
+
+SEQAN_TYPED_TEST(StringSetTestCommon, Infix)
+{
+    CountingChar::clear();
+
+    typename TestFixture::TStringSet strSet;
+    testStringSetInfix(strSet);
+
+    typename TestFixture::TStringSet const constStrSet;
+    testStringSetInfix(constStrSet);
+
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
+}
+
+// TODO (singer): define behaviour and adjust test.
+// Infix() compiles and does what it is supposed to do?!
+// However, it is not very intuitive. For details see comments below.
+// There is a need to improve the documentation of this!
+// Test of infixWithLength()
+template <typename TStringSet>
+void testStringSetInfixWithLength(TStringSet & /*Tag*/)
+{
+using namespace seqan;
+
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
+    typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
+
+    TString str("AAAA");
+    TString str2("CCC");
+    TString str3("GGGG");
+    TNonConstStringSet nonConstStringSet;
+    appendValue(nonConstStringSet, str);
+    appendValue(nonConstStringSet, str2);
+    appendValue(nonConstStringSet, str3);
+
+    // Only non-const test for this scenario possible.
+    TStringSet stringSet(nonConstStringSet);
+    TString string = infixWithLength(stringSet, 0, 1); // Returns the first character not string!
+    // std::cerr << string << std::endl; -> "A"
+
+    // Only non-const test for this scenario possible.
+    // TString str2("TT");
+    // nonConstStringSet[0] = str2;
+
+    // Since the infix (should) point to the fist element it should point to "T"
+    // std::cerr << string << std::endl; -> "A"
+    // Therefore there is a different behaviour to normal strings.
+}
+// TODO(singer): No appendValue for string sets of packed strings
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+
+// TODO(singer)
+template <typename TValue, typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue,typename TStringSetSpec>
+void testStringSetInfixWithLength(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
+
+SEQAN_TYPED_TEST(StringSetTestCommon, InfixWithLength)
+{
+    CountingChar::clear();
+
+    typename TestFixture::TStringSet strSet;
+    testStringSetInfixWithLength(strSet);
+
+    typename TestFixture::TStringSet const constStrSet;
+    testStringSetInfixWithLength(constStrSet);
+
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
+}
+
+// Test of insert().
+// TODO (singer): no insert function implemented.
+// template <typename TStringSet>
+// void testStringSetInsert(TStringSet & /*Tag*/)
+// {
+//     using namespace seqan;
+//
+//     // Test of inserting an empty string.
+//     TStringSet stringSet1;
+//     resize(stringSet1, 1u);
+//     TStringSet stringSet2;
+//     insert(stringSet1, 0u, stringSet2);
+//     SEQAN_ASSERT_EQ(length(stringSet1), 1u);
+//
+//     resize(stringSet2, 3u);
+//     stringSet2[0] = "ACGT";
+//     insert(stringSet1, 0u, stringSet2);
+//     SEQAN_ASSERT_EQ(length(stringSet1), 4u);
+//     SEQAN_ASSERT_EQ(stringSet1[1], "ACGT");
+// }
+//
+// SEQAN_TYPED_TEST(StringSetTestCommon, Insert)
 // {
 //     CountingChar::clear();
 //
@@ -1610,7 +1459,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, GetValueById)
 //     typename TestFixture::TStringSet const constStrSet;
 //     testStringSetInsert(constStrSet);
 //
-//     testConstructDeconstruct(strSet);
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 // }
 //
 // Test of insertValue().
@@ -1641,7 +1490,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, GetValueById)
 //     typename TestFixture::TStringSet const constStrSet;
 //     testStringSetInsertValue(constStrSet);
 //
-//     testConstructDeconstruct(strSet);
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 // }
 
 // Test of iter().
@@ -1680,7 +1529,7 @@ void testStringSetIter(TStringSet & /*Tag*/)
         TIterator iterator = iter(stringSet, 0);
         TStandardIterator standardIterator = iter(stringSet, 0);
         TRootedIterator rootedIterator = iter(stringSet, 0);
-        SEQAN_ASSERT(TString(getValue(iterator)) == "AAAA");
+        SEQAN_ASSERT_EQ(getValue(iterator), "AAAA");
         SEQAN_ASSERT(getValue(iterator) == getValue(stringSet, 0));
         SEQAN_ASSERT(getValue(standardIterator) == getValue(stringSet, 0));
         SEQAN_ASSERT(getValue(rootedIterator) == getValue(stringSet, 0));
@@ -1701,7 +1550,7 @@ void testStringSetIter(TStringSet & /*Tag*/)
         TIterator iterator = iter(stringSet, 3);
         TStandardIterator standardIterator = iter(stringSet, 3);
         TRootedIterator rootedIterator = iter(stringSet, 3);
-        SEQAN_ASSERT(TString(getValue(iterator)) == "TTTT");
+        SEQAN_ASSERT_EQ(getValue(iterator), "TTTT");
         SEQAN_ASSERT(getValue(iterator) == getValue(stringSet, 3));
         SEQAN_ASSERT(getValue(standardIterator) == getValue(stringSet, 3));
         SEQAN_ASSERT(getValue(rootedIterator) == getValue(stringSet, 3));
@@ -1709,18 +1558,15 @@ void testStringSetIter(TStringSet & /*Tag*/)
 }
 
 // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetIter(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetIter(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetIter(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetIter(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetIter(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetIter(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetIter(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetIter(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
 
-// this should work, but doesnt
-template <typename TSpec>
-void testStringSetIter(StringSet<String<short, Packed<TSpec> >, Owner<ConcatDirect<> > > & /*Tag*/) {}
 
 SEQAN_TYPED_TEST(StringSetTestCommon, Iter)
 {
@@ -1732,7 +1578,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Iter)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetIter(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 // Test of length().
@@ -1741,7 +1587,7 @@ void testStringSetLength(TStringSet & /*Tag*/)
 {
     using namespace seqan;
     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
 
     // Test on an empty string.
     {
@@ -1768,107 +1614,107 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Length)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetLength(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
-// // Test of moveValue().
-// template <typename TStringSet>
-// void testStringSetMoveValue(TStringSet & /*Tag*/)
-// {
-//     using namespace seqan;
-// 
-//     TStringSet stringSet;
-// 
-//     resize(stringSet, 2u);
-//     moveValue(stringSet, 1, "ACGT");
-//     SEQAN_ASSERT_EQ(CharString(stringSet[1]), "ACGT");
-// }
-// 
-// // TODO(singer): No moveValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, Alloc<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, Block<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, Packed<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, Array<100> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-// 
-// // TODO(singer): Seg fault
-// template <typename TValue, typename TStringSpec, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetMoveValue(StringSet<String<TValue, External<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
-// 
-// SEQAN_TYPED_TEST(StringSetTestCommon, MoveValue)
-// {
-//     // TODO(singer); Simply not working at all!
-// //     CountingChar::clear();
-// //
-// //     typename TestFixture::TStringSet strSet;
-// //     testStringSetMoveValue(strSet);
-// //
-// //     testConstructDeconstruct(strSet);
-// }
+// Test of moveValue().
+template <typename TStringSet>
+void testStringSetMoveValue(TStringSet & /*Tag*/)
+{
+    using namespace seqan;
 
-// // TODO (singer): see infix.
-// // Test of prefix().
-// template <typename TStringSet>
-// void testStringSetPrefix(TStringSet & /*Tag*/)
-// {
-//     using namespace seqan;
-//     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
-// 
-//     TString str("ACGTACGT");
-//     TString str2("GTACGT");
-//     TString str3("TACGT");
-//     TNonConstStringSet nonConstStringSet;
-//     appendValue(nonConstStringSet, str);
-//     appendValue(nonConstStringSet, str2);
-//     appendValue(nonConstStringSet, str3);
-//     TStringSet stringSet(nonConstStringSet);
-//     TString pref = prefix(stringSet, 3);
-//     TString str4("ACG");
-//     SEQAN_ASSERT_EQ(pref, str4);
-// }
-// 
-// // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// // TODO(singer)
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetPrefix(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// SEQAN_TYPED_TEST(StringSetTestCommon, Prefix)
-// {
+    TStringSet stringSet;
+
+    resize(stringSet, 2u);
+    moveValue(stringSet, 1, "ACGT");
+    SEQAN_ASSERT_EQ(stringSet[1], "ACGT");
+}
+
+// TODO(singer): No moveValue for string sets of packed strings
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, Alloc<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, Block<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, Packed<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, Array<100> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+
+// TODO(singer): Seg fault
+template <typename TValue, typename TStringSpec, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetMoveValue(StringSet<String<TValue, External<> >, Owner<TStringSetSpec> > & /*Tag*/) {}
+
+SEQAN_TYPED_TEST(StringSetTestCommon, MoveValue)
+{
+    // TODO(singer); Simply not working at all!
 //     CountingChar::clear();
-// 
+//
 //     typename TestFixture::TStringSet strSet;
-//     testStringSetPrefix(strSet);
-// 
-//     typename TestFixture::TStringSet const constStrSet;
-//     testStringSetPrefix(constStrSet);
-// 
-// //    testConstructDeconstruct(strSet);
-// }
+//     testStringSetMoveValue(strSet);
+//
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
+}
+
+// TODO (singer): see infix.
+// Test of prefix().
+template <typename TStringSet>
+void testStringSetPrefix(TStringSet & /*Tag*/)
+{
+    using namespace seqan;
+    typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
+
+    TString str("ACGTACGT");
+    TString str2("GTACGT");
+    TString str3("TACGT");
+    TNonConstStringSet nonConstStringSet;
+    appendValue(nonConstStringSet, str);
+    appendValue(nonConstStringSet, str2);
+    appendValue(nonConstStringSet, str3);
+    TStringSet stringSet(nonConstStringSet);
+    TString pref = prefix(stringSet, 3);
+    TString str4("ACG");
+    SEQAN_ASSERT_EQ(pref, str4);
+}
+
+// TODO(singer): No appendValue for string sets of packed strings
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+
+// TODO(singer)
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetPrefix(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
+
+SEQAN_TYPED_TEST(StringSetTestCommon, Prefix)
+{
+    CountingChar::clear();
+
+    typename TestFixture::TStringSet strSet;
+    testStringSetPrefix(strSet);
+
+    typename TestFixture::TStringSet const constStrSet;
+    testStringSetPrefix(constStrSet);
+
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
+}
 
 // TODO (singer); replace is not defined for string sets.
 //// Test of replace().
@@ -1920,7 +1766,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Length)
 //     typename TestFixture::TStringSet strSet;
 //     testStringSetReplace(strSet);
 //
-//     testConstructDeconstruct(strSet);
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 // }
 
 // Test of resize().
@@ -1940,8 +1786,8 @@ void testStringSetResize(TStringSet & /*Tag*/)
     SEQAN_ASSERT_EQ(length(stringSet), 10u);
     // TODO (singer): resize should initialize newly allocated memory,
     // which it does not at the moment!
-    SEQAN_ASSERT(stringSet[0] == TString());
-    SEQAN_ASSERT(stringSet[9] == TString());
+    SEQAN_ASSERT_EQ(stringSet[0], TString());
+    SEQAN_ASSERT_EQ(stringSet[9], TString());
 
     resize(stringSet, 0u);
     SEQAN_ASSERT_EQ(length(stringSet), 0u);
@@ -1953,14 +1799,14 @@ void testStringSetResize(TStringSet & /*Tag*/)
 //    SEQAN_ASSERT_EQ(stringSet[9], string);
 }
 
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetResize(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetResize(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetResize(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetResize(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetResize(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetResize(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetResize(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetResize(StringSet<String<TValue, Packed<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
 template <typename TValue, typename TStringSpec, typename TStringSetSpec>
 void testStringSetResize(StringSet<String<TValue, TStringSpec>, Dependent<TStringSetSpec> > & /*Tag*/) {}
 
@@ -1971,64 +1817,64 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Resize)
     typename TestFixture::TStringSet strSet;
     testStringSetResize(strSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
-// // TODO (singer): see infix.
-// // Test of suffix().
-// template <typename TStringSet>
-// void testStringSetSuffix(TStringSet & /*Tag*/)
-// {
-//     using namespace seqan;
-//     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
-// 
-//     TString str("ACGTACGT");
-//     TString str2("GTACGT");
-//     TString str3("TACGT");
-//     TNonConstStringSet nonConstStringSet;
-//     appendValue(nonConstStringSet, str);
-//     appendValue(nonConstStringSet, str2);
-//     appendValue(nonConstStringSet, str3);
-//     TStringSet stringSet(nonConstStringSet);
-//     TString pref = suffix(stringSet, 5);
-//     TString str4("CGT");
-//     SEQAN_ASSERT_EQ(pref, str4);
-// }
-// 
-// // TODO(singer): No appendValue for string sets of packed strings
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// 
-// // TODO(singer)
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetSuffix(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
-// 
-// SEQAN_TYPED_TEST(StringSetTestCommon, Suffix)
-// {
-//     CountingChar::clear();
-// 
-//     typename TestFixture::TStringSet strSet;
-//     testStringSetSuffix(strSet);
-// 
-//     typename TestFixture::TStringSet const constStrSet;
-//     testStringSetSuffix(constStrSet);
-// 
-// //    testConstructDeconstruct(strSet);
-// }
+// TODO (singer): see infix.
+// Test of suffix().
+template <typename TStringSet>
+void testStringSetSuffix(TStringSet & /*Tag*/)
+{
+    using namespace seqan;
+    typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
+
+    TString str("ACGTACGT");
+    TString str2("GTACGT");
+    TString str3("TACGT");
+    TNonConstStringSet nonConstStringSet;
+    appendValue(nonConstStringSet, str);
+    appendValue(nonConstStringSet, str2);
+    appendValue(nonConstStringSet, str3);
+    TStringSet stringSet(nonConstStringSet);
+    TString pref = suffix(stringSet, 5);
+    TString str4("CGT");
+    SEQAN_ASSERT_EQ(pref, str4);
+}
+
+// TODO(singer): No appendValue for string sets of packed strings
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, MMap<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, MMap<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, Packed<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, Packed<> >, TStringSetSpec> const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, Array<100> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, Array<100> >, TStringSetSpec> const & /*Tag*/) {}
+
+
+// TODO(singer)
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, External<> >, TStringSetSpec> & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetSuffix(StringSet<String<TValue, External<> >, TStringSetSpec> const & /*Tag*/) {}
+
+SEQAN_TYPED_TEST(StringSetTestCommon, Suffix)
+{
+    CountingChar::clear();
+
+    typename TestFixture::TStringSet strSet;
+    testStringSetSuffix(strSet);
+
+    typename TestFixture::TStringSet const constStrSet;
+    testStringSetSuffix(constStrSet);
+
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
+}
 
 
 // TODO (singer): swap is not working because a constructor string set (StringSet(StringSet, Move)) is missing.
@@ -2084,7 +1930,7 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Resize)
 //     typename TestFixture::TStringSet const constStrSet;
 //     testStringSetSwap(constStrSet);
 //
-//     testConstructDeconstruct(strSet);
+//     testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 // }
 
 // Test of value().
@@ -2106,12 +1952,12 @@ void testStringSetValue(TStringSet & /*Tag*/)
     appendValue(stringSet, str2);
     appendValue(stringSet, str3);
     TString & value_ = value(stringSet, 0);
-    SEQAN_ASSERT(value_ == str1);
+    SEQAN_ASSERT_EQ(value_, str1);
 
     value_ = "GGGG";
     TString str4("GGGG");
-    SEQAN_ASSERT(value_ == str4);
-    SEQAN_ASSERT(stringSet[0] == str4);
+    SEQAN_ASSERT_EQ(value_, str4);
+    SEQAN_ASSERT_EQ(stringSet[0], str4);
 }
 
 // Test of value().
@@ -2136,12 +1982,12 @@ void testStringSetValue(TStringSet const & /*Tag*/)
 
     TStringSet stringSet(nonConstStringSet);
     TString value_ = value(stringSet, 0);
-    SEQAN_ASSERT(value_ == str1);
+    SEQAN_ASSERT_EQ(value_, str1);
 
     value_ = "GGGG";
     TString str4("GGGG");
-    SEQAN_ASSERT(value_ == str4);
-    SEQAN_ASSERT(stringSet[0] == str1);
+    SEQAN_ASSERT_EQ(value_, str4);
+    SEQAN_ASSERT_EQ(stringSet[0], str1);
 }
 // TODO(singer): Seg. fault
 template <typename TValue>
@@ -2179,103 +2025,102 @@ SEQAN_TYPED_TEST(StringSetTestCommon, Value)
     typename TestFixture::TStringSet const constStrSet;
     testStringSetValue(constStrSet);
 
-//    testConstructDeconstruct(strSet);
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
 }
 
 
-// // Test of valueById().
-// template <typename TStringSet>
-// void testStringSetValueById(TStringSet & /*Tag*/)
-// {
-//     using namespace seqan;
-// 
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
-// 
-//     // In contrast to getValue(), value() does not return a copy but a reference.
-//     // We test this using the variable value_.
-//     TString str1("ACAC");
-//     TString str2("AAAA");
-//     TString str3("TTTT");
-//     TStringSet stringSet;
-//     appendValue(stringSet, str1);
-//     appendValue(stringSet, str2);
-//     appendValue(stringSet, str3);
-//     TString & value_ = valueById(stringSet, 0);
-//     SEQAN_ASSERT_EQ(value_, str1);
-// 
-//     value_ = "GGGG";
-//     TString str4("GGGG");
-//     SEQAN_ASSERT_EQ(value_, str4);
-//     SEQAN_ASSERT_EQ(stringSet[0], str4);
-// }
-// 
-// // Test of valueById().
-// template <typename TStringSet>
-// void testStringSetValueById(TStringSet const & /*Tag*/)
-// {
-//     using namespace seqan;
-// 
-//     typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
-//     typedef typename TestStringSetValue_<TStringSet>::Type TString;
-// 
-//     // In contrast to getValue(), value() does not return a copy but a reference.
-//     // We test this using the variable value_.
-// 
-//     TString str1("ACAC");
-//     TString str2("AAAA");
-//     TString str3("TTTT");
-//     TNonConstStringSet nonConstStringSet;
-//     appendValue(nonConstStringSet, str1);
-//     appendValue(nonConstStringSet, str2);
-//     appendValue(nonConstStringSet, str3);
-// 
-//     TStringSet stringSet(nonConstStringSet);
-//     TString value_ = valueById(stringSet, 0);
-//     SEQAN_ASSERT_EQ(value_, str1);
-// 
-//     value_ = "GGGG";
-//     TString str4("GGGG");
-//     SEQAN_ASSERT_EQ(value_, str4);
-//     SEQAN_ASSERT_EQ(stringSet[0], str4);
-// }
-// 
-// // TODO(singer): Seg. fault
-// template <typename TValue>
-// void testStringSetValueById(StringSet<String<TValue, MMap<> >, Owner<> > & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetValueById(StringSet<String<TValue, MMap<> >, Owner<> > const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetValueById(StringSet<String<TValue, MMap<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetValueById(StringSet<String<TValue, MMap<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
-// 
-// 
-// // TODO(singer)
-// template <typename TValue>
-// void testStringSetValueById(StringSet<String<TValue, External<> >, Owner<> > & /*Tag*/) {}
-// template <typename TValue>
-// void testStringSetValueById(StringSet<String<TValue, External<> >, Owner<> > const & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetValueById(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
-// template <typename TValue, typename TStringSetSpec>
-// void testStringSetValueById(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
-// 
-// template <typename TValue, typename TStringSpec>
-// void testStringSetValueById(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > & /*Tag*/) {}
-// template <typename TValue, typename TStringSpec>
-// void testStringSetValueById(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > const & /*Tag*/) {}
-// 
-// SEQAN_TYPED_TEST(StringSetTestCommon, ValueById)
-// {
-//     CountingChar::clear();
-// 
-//     typename TestFixture::TStringSet strSet;
-//     testStringSetValueById(strSet);
-// 
-//     typename TestFixture::TStringSet const constStrSet;
-//     testStringSetValueById(constStrSet);
-// 
-// ////    testConstructDeconstruct(strSet);
-// }
+// Test of valueById().
+template <typename TStringSet>
+void testStringSetValueById(TStringSet & /*Tag*/)
+{
+    using namespace seqan;
+
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
+
+    // In contrast to getValue(), value() does not return a copy but a reference.
+    // We test this using the variable value_.
+    TString str1("ACAC");
+    TString str2("AAAA");
+    TString str3("TTTT");
+    TStringSet stringSet;
+    appendValue(stringSet, str1);
+    appendValue(stringSet, str2);
+    appendValue(stringSet, str3);
+    TString & value_ = valueById(stringSet, 0);
+    SEQAN_ASSERT_EQ(value_, str1);
+
+    value_ = "GGGG";
+    TString str4("GGGG");
+    SEQAN_ASSERT_EQ(value_, str4);
+    SEQAN_ASSERT_EQ(stringSet[0], str4);
+}
+
+// Test of valueById().
+template <typename TStringSet>
+void testStringSetValueById(TStringSet const & /*Tag*/)
+{
+    using namespace seqan;
+
+    typedef typename RemoveConst<TStringSet>::Type TNonConstStringSet;
+    typedef typename TestStringSetValue_<TStringSet>::Type TString;
 
+    // In contrast to getValue(), value() does not return a copy but a reference.
+    // We test this using the variable value_.
+
+    TString str1("ACAC");
+    TString str2("AAAA");
+    TString str3("TTTT");
+    TNonConstStringSet nonConstStringSet;
+    appendValue(nonConstStringSet, str1);
+    appendValue(nonConstStringSet, str2);
+    appendValue(nonConstStringSet, str3);
+
+    TStringSet stringSet(nonConstStringSet);
+    TString value_ = valueById(stringSet, 0);
+    SEQAN_ASSERT_EQ(value_, str1);
+
+    value_ = "GGGG";
+    TString str4("GGGG");
+    SEQAN_ASSERT_EQ(value_, str4);
+    SEQAN_ASSERT_EQ(stringSet[0], str4);
+}
+
+// TODO(singer): Seg. fault
+template <typename TValue>
+void testStringSetValueById(StringSet<String<TValue, MMap<> >, Owner<> > & /*Tag*/) {}
+template <typename TValue>
+void testStringSetValueById(StringSet<String<TValue, MMap<> >, Owner<> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetValueById(StringSet<String<TValue, MMap<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetValueById(StringSet<String<TValue, MMap<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
+
+
+// TODO(singer)
+template <typename TValue>
+void testStringSetValueById(StringSet<String<TValue, External<> >, Owner<> > & /*Tag*/) {}
+template <typename TValue>
+void testStringSetValueById(StringSet<String<TValue, External<> >, Owner<> > const & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetValueById(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > & /*Tag*/) {}
+template <typename TValue, typename TStringSetSpec>
+void testStringSetValueById(StringSet<String<TValue, External<> >, Dependent<TStringSetSpec> > const & /*Tag*/) {}
+
+template <typename TValue, typename TStringSpec>
+void testStringSetValueById(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > & /*Tag*/) {}
+template <typename TValue, typename TStringSpec>
+void testStringSetValueById(StringSet<String<TValue, TStringSpec>, Owner<ConcatDirect<> > > const & /*Tag*/) {}
+
+SEQAN_TYPED_TEST(StringSetTestCommon, ValueById)
+{
+    CountingChar::clear();
+
+    typename TestFixture::TStringSet strSet;
+    testStringSetValueById(strSet);
+
+    typename TestFixture::TStringSet const constStrSet;
+    testStringSetValueById(constStrSet);
+
+    testConstructDeconstruct(typename Value<typename Value<typename TestFixture::TStringSet>::Type>::Type());
+}
 #endif // TESTS_SEQUENCE_TEST_STRINGSET_H_
diff --git a/tests/sequence/test_stringset_v2.cpp b/tests/sequence/test_stringset_v2.cpp
deleted file mode 100644
index 1296c66..0000000
--- a/tests/sequence/test_stringset_v2.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// ==========================================================================
-//                 SeqAn - The Library for Sequence Analysis
-// ==========================================================================
-// Copyright (c) 2006-2015, Knut Reinert, FU Berlin
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-//     * Redistributions of source code must retain the above copyright
-//       notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above copyright
-//       notice, this list of conditions and the following disclaimer in the
-//       documentation and/or other materials provided with the distribution.
-//     * Neither the name of Knut Reinert or the FU Berlin nor the names of
-//       its contributors may be used to endorse or promote products derived
-//       from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-// DAMAGE.
-//
-// ==========================================================================
-// Author: Jochen Singer <jochen.singer at fu-berlin.de>
-// Author: Hannes Hauswedell <hannes.hauswedell at fu-berlin.de>
-// ==========================================================================
-// This file coordinates the calls of tests to ensure that the sequence
-// module fulfills the requirements.
-// ==========================================================================
-
-#include <seqan/basic.h>
-
-// lots of stuff is still not checked and not working
-#include "test_string_set.h"
-
-int main(int argc, char const ** argv) {
-    seqan::TestSystem::init(argc, argv);
-    return seqan::TestSystem::runAll();
-}
diff --git a/tests/store/example.gff b/tests/store/example.gff
index 86a9422..b4c9593 100644
--- a/tests/store/example.gff
+++ b/tests/store/example.gff
@@ -1,3 +1,3 @@
-ctg123	.	mRNA	1300	9000	.	+	.	ID=mrna0001;Name="sonichedgehog;hehe";transcript_id=001
+ctg123	.	mRNA	1300	9000	.	+	.	ID=mrna0001;Name="sonichedgehog;hehe"
 ctg123	.	exon	1300	1500	.	+	.	ID=exon00001;Parent=mrna0001
 ctg123	.	exon	1050	1500	.	+	.	ID=exon00002;Parent=mrna0001
diff --git a/util/cmake/CMakeFindJavaCommon.cmake b/util/cmake/CMakeFindJavaCommon.cmake
deleted file mode 100644
index 291d3c1..0000000
--- a/util/cmake/CMakeFindJavaCommon.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-#=============================================================================
-# Copyright 2013-2014 Kitware, Inc.
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-# Do not include this module directly from code outside CMake!
-set(_JAVA_HOME "")
-if(JAVA_HOME AND IS_DIRECTORY "${JAVA_HOME}")
-  set(_JAVA_HOME "${JAVA_HOME}")
-  set(_JAVA_HOME_EXPLICIT 1)
-else()
-  set(_ENV_JAVA_HOME "")
-  if(DEFINED ENV{JAVA_HOME})
-    file(TO_CMAKE_PATH "$ENV{JAVA_HOME}" _ENV_JAVA_HOME)
-  endif()
-  if(_ENV_JAVA_HOME AND IS_DIRECTORY "${_ENV_JAVA_HOME}")
-    set(_JAVA_HOME "${_ENV_JAVA_HOME}")
-    set(_JAVA_HOME_EXPLICIT 1)
-  else()
-    set(_CMD_JAVA_HOME "")
-    if(APPLE AND EXISTS /usr/libexec/java_home)
-      execute_process(COMMAND /usr/libexec/java_home
-        OUTPUT_VARIABLE _CMD_JAVA_HOME OUTPUT_STRIP_TRAILING_WHITESPACE)
-    endif()
-    if(_CMD_JAVA_HOME AND IS_DIRECTORY "${_CMD_JAVA_HOME}")
-      set(_JAVA_HOME "${_CMD_JAVA_HOME}")
-      set(_JAVA_HOME_EXPLICIT 0)
-    endif()
-    unset(_CMD_JAVA_HOME)
-  endif()
-  unset(_ENV_JAVA_HOME)
-endif()
diff --git a/util/cmake/FindJava.cmake b/util/cmake/FindJava.cmake
deleted file mode 100644
index ae5a69c..0000000
--- a/util/cmake/FindJava.cmake
+++ /dev/null
@@ -1,228 +0,0 @@
-#.rst:
-# FindJava
-# --------
-#
-# Find Java
-#
-# This module finds if Java is installed and determines where the
-# include files and libraries are.  The caller may set variable JAVA_HOME
-# to specify a Java installation prefix explicitly.
-#
-# This module sets the following result variables:
-#
-# ::
-#
-#   Java_JAVA_EXECUTABLE    = the full path to the Java runtime
-#   Java_JAVAC_EXECUTABLE   = the full path to the Java compiler
-#   Java_JAVAH_EXECUTABLE   = the full path to the Java header generator
-#   Java_JAVADOC_EXECUTABLE = the full path to the Java documention generator
-#   Java_JAR_EXECUTABLE     = the full path to the Java archiver
-#   Java_VERSION_STRING     = Version of java found, eg. 1.6.0_12
-#   Java_VERSION_MAJOR      = The major version of the package found.
-#   Java_VERSION_MINOR      = The minor version of the package found.
-#   Java_VERSION_PATCH      = The patch version of the package found.
-#   Java_VERSION_TWEAK      = The tweak version of the package found (after '_')
-#   Java_VERSION            = This is set to: $major.$minor.$patch(.$tweak)
-#
-#
-#
-# The minimum required version of Java can be specified using the
-# standard CMake syntax, e.g.  find_package(Java 1.5)
-#
-# NOTE: ${Java_VERSION} and ${Java_VERSION_STRING} are not guaranteed to
-# be identical.  For example some java version may return:
-# Java_VERSION_STRING = 1.5.0_17 and Java_VERSION = 1.5.0.17
-#
-# another example is the Java OEM, with: Java_VERSION_STRING = 1.6.0-oem
-# and Java_VERSION = 1.6.0
-#
-# For these components the following variables are set:
-#
-# ::
-#
-#   Java_FOUND                    - TRUE if all components are found.
-#   Java_INCLUDE_DIRS             - Full paths to all include dirs.
-#   Java_LIBRARIES                - Full paths to all libraries.
-#   Java_<component>_FOUND        - TRUE if <component> is found.
-#
-#
-#
-# Example Usages:
-#
-# ::
-#
-#   find_package(Java)
-#   find_package(Java COMPONENTS Runtime)
-#   find_package(Java COMPONENTS Development)
-
-#=============================================================================
-# Copyright 2002-2009 Kitware, Inc.
-# Copyright 2009-2011 Mathieu Malaterre <mathieu.malaterre at gmail.com>
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#=============================================================================
-# (To distribute this file outside of CMake, substitute the full
-#  License text for the above reference.)
-
-include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)
-
-# The HINTS option should only be used for values computed from the system.
-set(_JAVA_HINTS)
-if(_JAVA_HOME)
-  list(APPEND _JAVA_HINTS ${_JAVA_HOME}/bin)
-endif()
-list(APPEND _JAVA_HINTS
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\2.0;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin"
-  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin"
-  )
-# Hard-coded guesses should still go in PATHS. This ensures that the user
-# environment can always override hard guesses.
-set(_JAVA_PATHS
-  /usr/lib/java/bin
-  /usr/share/java/bin
-  /usr/local/java/bin
-  /usr/local/java/share/bin
-  /usr/java/j2sdk1.4.2_04
-  /usr/lib/j2sdk1.4-sun/bin
-  /usr/java/j2sdk1.4.2_09/bin
-  /usr/lib/j2sdk1.5-sun/bin
-  /opt/sun-jdk-1.5.0.04/bin
-  /usr/local/jdk-1.7.0/bin
-  /usr/local/jdk-1.6.0/bin
-  )
-find_program(Java_JAVA_EXECUTABLE
-  NAMES java
-  HINTS ${_JAVA_HINTS}
-  PATHS ${_JAVA_PATHS}
-)
-
-if(Java_JAVA_EXECUTABLE)
-    execute_process(COMMAND ${Java_JAVA_EXECUTABLE} -version
-      RESULT_VARIABLE res
-      OUTPUT_VARIABLE var
-      ERROR_VARIABLE var # sun-java output to stderr
-      OUTPUT_STRIP_TRAILING_WHITESPACE
-      ERROR_STRIP_TRAILING_WHITESPACE)
-    if( res )
-      if(var MATCHES "No Java runtime present, requesting install")
-        set_property(CACHE Java_JAVA_EXECUTABLE
-          PROPERTY VALUE "Java_JAVA_EXECUTABLE-NOTFOUND")
-      elseif(${Java_FIND_REQUIRED})
-        message( FATAL_ERROR "Error executing java -version" )
-      else()
-        message( STATUS "Warning, could not run java -version")
-      endif()
-    else()
-      # extract major/minor version and patch level from "java -version" output
-      # Tested on linux using
-      # 1. Sun / Sun OEM
-      # 2. OpenJDK 1.6
-      # 3. GCJ 1.5
-      # 4. Kaffe 1.4.2
-      # 5. OpenJDK 1.7.x on OpenBSD
-      if(var MATCHES "java version \"([0-9]+\\.[0-9]+\\.[0-9_.]+.*)\"")
-        # This is most likely Sun / OpenJDK, or maybe GCJ-java compat layer
-        set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
-      elseif(var MATCHES "java full version \"kaffe-([0-9]+\\.[0-9]+\\.[0-9_]+)\"")
-        # Kaffe style
-        set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
-      elseif(var MATCHES "openjdk version \"([0-9]+\\.[0-9]+\\.[0-9_]+.*)\"")
-        # OpenJDK ver 1.7.x on OpenBSD
-        set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
-      else()
-        if(NOT Java_FIND_QUIETLY)
-          message(WARNING "regex not supported: ${var}. Please report")
-        endif()
-      endif()
-      string( REGEX REPLACE "([0-9]+).*" "\\1" Java_VERSION_MAJOR "${Java_VERSION_STRING}" )
-      string( REGEX REPLACE "[0-9]+\\.([0-9]+).*" "\\1" Java_VERSION_MINOR "${Java_VERSION_STRING}" )
-      string( REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" Java_VERSION_PATCH "${Java_VERSION_STRING}" )
-      # warning tweak version can be empty:
-      string( REGEX REPLACE "[0-9]+\\.[0-9]+\\.[0-9]+[_\\.]?([0-9]*).*$" "\\1" Java_VERSION_TWEAK "${Java_VERSION_STRING}" )
-      if( Java_VERSION_TWEAK STREQUAL "" ) # check case where tweak is not defined
-        set(Java_VERSION ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR}.${Java_VERSION_PATCH})
-      else()
-        set(Java_VERSION ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR}.${Java_VERSION_PATCH}.${Java_VERSION_TWEAK})
-      endif()
-    endif()
-
-endif()
-
-
-find_program(Java_JAR_EXECUTABLE
-  NAMES jar
-  HINTS ${_JAVA_HINTS}
-  PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JAVAC_EXECUTABLE
-  NAMES javac
-  HINTS ${_JAVA_HINTS}
-  PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JAVAH_EXECUTABLE
-  NAMES javah
-  HINTS ${_JAVA_HINTS}
-  PATHS ${_JAVA_PATHS}
-)
-
-find_program(Java_JAVADOC_EXECUTABLE
-  NAMES javadoc
-  HINTS ${_JAVA_HINTS}
-  PATHS ${_JAVA_PATHS}
-)
-
-include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-if(Java_FIND_COMPONENTS)
-  foreach(component ${Java_FIND_COMPONENTS})
-    # User just want to execute some Java byte-compiled
-    if(component STREQUAL "Runtime")
-      find_package_handle_standard_args(Java
-        REQUIRED_VARS Java_JAVA_EXECUTABLE
-        VERSION_VAR Java_VERSION
-        )
-    elseif(component STREQUAL "Development")
-      find_package_handle_standard_args(Java
-        REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
-                      Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
-        VERSION_VAR Java_VERSION
-        )
-    else()
-      message(FATAL_ERROR "Comp: ${component} is not handled")
-    endif()
-    set(Java_${component}_FOUND TRUE)
-  endforeach()
-else()
-  # Check for everything
-  find_package_handle_standard_args(Java
-    REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
-                  Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
-    VERSION_VAR Java_VERSION
-    )
-endif()
-
-
-mark_as_advanced(
-  Java_JAVA_EXECUTABLE
-  Java_JAR_EXECUTABLE
-  Java_JAVAC_EXECUTABLE
-  Java_JAVAH_EXECUTABLE
-  Java_JAVADOC_EXECUTABLE
-  )
-
-# LEGACY
-set(JAVA_RUNTIME ${Java_JAVA_EXECUTABLE})
-set(JAVA_ARCHIVE ${Java_JAR_EXECUTABLE})
-set(JAVA_COMPILE ${Java_JAVAC_EXECUTABLE})
diff --git a/util/cmake/FindOpenMP.cmake b/util/cmake/FindOpenMP.cmake
index 3c0e8e2..729adf8 100644
--- a/util/cmake/FindOpenMP.cmake
+++ b/util/cmake/FindOpenMP.cmake
@@ -35,19 +35,12 @@ if (_OPENMP_NOT_FOUND)
     return ()
 endif ()
 
-# Clang-3.7.0 deactivated because of compiler bugs triggered by SeqAn
-if (COMPILER_IS_CLANG AND (_GCC_VERSION EQUAL 370))
-    set(_OPENMP_NOT_FOUND TRUE)
-    message (STATUS "OpenMP cannot be used becase Clang-3.7.0 has a bug. Please update your clang!")
-    return ()
-endif ()
-
 include(CheckCSourceCompiles)
 include(CheckCXXSourceCompiles)
 include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
 
 set(OpenMP_C_FLAG_CANDIDATES
-  #Gnu & LLVM
+  #Gnu
   "-fopenmp"
   #Microsoft Visual Studio
   "/openmp"
diff --git a/util/cmake/FindSeqAn.cmake b/util/cmake/FindSeqAn.cmake
index 5a6a184..f9cc0fd 100644
--- a/util/cmake/FindSeqAn.cmake
+++ b/util/cmake/FindSeqAn.cmake
@@ -201,7 +201,7 @@ endif ()
 if (WIN32)
   # Always set NOMINMAX such that <Windows.h> does not define min/max as
   # macros.
-  set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} -DNOMINMAX")
+  add_definitions (-DNOMINMAX)
 endif (WIN32)
 
 # Visual Studio Setup
@@ -214,17 +214,10 @@ if (MSVC)
   # TODO(holtgrew): This rather belongs into the SeqAn build system and notso much into FindSeqAn.cmake.
 
   # Force to always compile with W2.
-  # Use the /W2 warning level for visual studio.
-  SET(CMAKE_CXX_WARNING_LEVEL 2)
-  if (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
-    STRING (REGEX REPLACE "/W[0-4]"
-            "/W2" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-  else (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
-    set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} /W2")
-  endif (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
+  add_definitions (/W2)
 
   # Disable warnings about unsecure (although standard) functions.
-  set (SEQAN_CXX_FLAGS "${SEQAN_CXX_FLAGS} /D_SCL_SECURE_NO_WARNINGS")
+  add_definitions (-D_SCL_SECURE_NO_WARNINGS)
 endif (MSVC)
 
 # ----------------------------------------------------------------------------
@@ -284,7 +277,6 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
   set (SEQAN_LIBRARIES ${SEQAN_LIBRARIES} rt pthread)
 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
   set (SEQAN_LIBRARIES ${SEQAN_LIBRARIES} pthread)
-  set (SEQAN_DEFINITIONS ${SEQAN_DEFINITIONS} "-D_GLIBCXX_USE_C99=1")
 endif ()
 
 # libexecinfo -- implicit
diff --git a/util/cmake/SeqAnBuildSystem.cmake b/util/cmake/SeqAnBuildSystem.cmake
index 35477ba..627b677 100644
--- a/util/cmake/SeqAnBuildSystem.cmake
+++ b/util/cmake/SeqAnBuildSystem.cmake
@@ -152,9 +152,6 @@ macro (seqan_register_apps)
       set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
     endif ()
 
-    # Enable global exception handler for all seqan apps.
-    set (SEQAN_DEFINITIONS "${SEQAN_DEFINITIONS} -DSEQAN_GLOBAL_EXCEPTION_HANDLER")
-
     # Get all direct entries of the current source directory into ENTRIES.
     file (GLOB ENTRIES
           RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
@@ -572,21 +569,18 @@ endmacro (_seqan_setup_demo_test CPP_FILE)
 
 # Install all demo source files.
 macro (seqan_install_demos_release)
-    # Set flags for SeqAn. Use PARENT_SCOPE since it is called from within a function.
-    set (SEQAN_FIND_ENABLE_TESTING 0 PARENT_SCOPE)
-    set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DSEQAN_ENABLE_DEBUG=0" PARENT_SCOPE)
-    set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DSEQAN_ENABLE_DEBUG=0" PARENT_SCOPE)
-    set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSEQAN_ENABLE_DEBUG=1" PARENT_SCOPE)
+    # Set flags for SeqAn.
+    set (SEQAN_FIND_ENABLE_TESTING 0)
+    set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DSEQAN_ENABLE_DEBUG=0")
+    set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DSEQAN_ENABLE_DEBUG=0")
+    set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSEQAN_ENABLE_DEBUG=1")
 
     # Get a list of all .cpp and .cu files in the current directory.
-    file (GLOB_RECURSE ENTRIES
+    file (GLOB ENTRIES
           RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
           ${CMAKE_CURRENT_SOURCE_DIR}/[!.]*.cpp
           ${CMAKE_CURRENT_SOURCE_DIR}/[!.]*.cu)
 
-    # Set global definitions set for demos.
-    add_definitions (${SEQAN_DEFINITIONS})
-
     # Get path to current source directory, relative from root.  Will be used to install demos in.
     file (RELATIVE_PATH INSTALL_DIR "${SEQAN_ROOT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
 
@@ -618,8 +612,7 @@ macro (seqan_build_demos_develop PREFIX)
     seqan_setup_cuda_vars(ARCH sm_20 DEBUG_DEVICE DISABLE_WARNINGS)
 
     # Add SeqAn flags to CXX and NVCC flags.
-    # Set to PARENT_SCOPE since this macro is executed from within a function which declares it's own scope.
-    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS} ${CXX11_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" PARENT_SCOPE)
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SEQAN_CXX_FLAGS}")
 
     # Add all demos with found flags in SeqAn.
     foreach (ENTRY ${ENTRIES})
@@ -653,9 +646,6 @@ function (seqan_register_demos)
         set (PREFIX "")
     endif (${ARGC} GREATER 0)
 
-    # Enable global exception handler for demos.
-    set (SEQAN_DEFINITIONS "${SEQAN_DEFINITIONS} -DSEQAN_GLOBAL_EXCEPTION_HANDLER")
-
     # Install demo source files when releasing and build demos when developing.
     if ("${SEQAN_BUILD_SYSTEM}" STREQUAL "SEQAN_RELEASE")
         seqan_install_demos_release ()
@@ -691,9 +681,6 @@ macro (seqan_register_tests)
     string (REGEX REPLACE "-DNDEBUG" ""
             CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
 
-    # Add global exception handler
-    set (SEQAN_DEFINITIONS "${SEQAN_DEFINITIONS} -DSEQAN_GLOBAL_EXCEPTION_HANDLER")
-
     # Conditionally enable coverage mode by setting the appropriate flags.
     if (MODEL STREQUAL "NightlyCoverage")
         if (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
diff --git a/util/cmake/package.cmake b/util/cmake/package.cmake
index a3147b3..1194c3d 100644
--- a/util/cmake/package.cmake
+++ b/util/cmake/package.cmake
@@ -46,7 +46,7 @@ if (("${SEQAN_BUILD_SYSTEM}" STREQUAL "SEQAN_RELEASE") OR
     ("${SEQAN_BUILD_SYSTEM}" STREQUAL "SEQAN_RELEASE_APPS"))
     include (SetCPackSystemName)
 
-    # NOTE that you have to run "make dox" before running cpack.  The reason
+    # NOTE that you have to run "make docs" before running cpack.  The reason
     # is that we cannot add dependencies to the install target at the moment.
     # See: http://public.kitware.com/Bug/view.php?id=8438
 
diff --git a/util/makefile_project/src/main.cpp b/util/makefile_project/src/main.cpp
index 7f77b33..0764fb3 100644
--- a/util/makefile_project/src/main.cpp
+++ b/util/makefile_project/src/main.cpp
@@ -1,11 +1,12 @@
+#include <iostream>
+
 #include <seqan/basic.h>
 #include <seqan/sequence.h>
-#include <seqan/stream.h>
+#include <seqan/file.h>
 
 using namespace seqan;
 
-int main()
-{
-    std::cout << CharString("Hello SeqAn!") << std::endl;
+int main() {
+	std::cout << CharString("Hello SeqAn!") << std::endl;
     return 0;
-}
+}
\ No newline at end of file
diff --git a/util/py_lib/seqan/auto_build.py b/util/py_lib/seqan/auto_build.py
index fb9b10f..9d2a893 100755
--- a/util/py_lib/seqan/auto_build.py
+++ b/util/py_lib/seqan/auto_build.py
@@ -261,7 +261,7 @@ class BuildStep(object):
         popen = subprocess.Popen(cmake_args, cwd=build_dir, env=os.environ.copy())
         out_data, err_data = popen.communicate()
         if popen.returncode != 0:
-            print('ERROR during make dox call.', file=sys.stderr)
+            print('ERROR during make docs call.', file=sys.stderr)
             print(out_data, file=sys.stderr)
             print(err_data, file=sys.stderr)
         # Execute Make.
diff --git a/util/py_lib/seqan/dox/dox_parser.py b/util/py_lib/seqan/dox/dox_parser.py
index da93712..c4a5133 100644
--- a/util/py_lib/seqan/dox/dox_parser.py
+++ b/util/py_lib/seqan/dox/dox_parser.py
@@ -363,7 +363,7 @@ class ReturnState(ParamState):
 class ThrowState(ParamState):
     """Handler used in *DocState for handling @throw clauses.
     
-    Stores throw type in self.name (member variable inherited from
+    Stores return type in self.name (member variable inherited from
     ParamState).  Sorry for any confusion.  The flag self.type_read
     is used for storing whether the type has been read.
     """
@@ -382,17 +382,6 @@ class ThrowState(ParamState):
             elif self.name or token.type not in dox_tokens.WHITESPACE:
                 self.name.append(token)
 
-class DataRaceState(GenericSimpleClauseState):
-    """Handler used in *DocState for handling @datarace clauses.
-        
-       Inherits from GenericSimpleClauseState.
-    """
-
-    def __init__(self, parser, parent):
-        GenericSimpleClauseState.__init__(self, parser, parent)
-        self.entry_class = raw_doc.RawDataRace
-        self.type_read = False
-
 
 class SectionState(object):
     """Handler used in *DocState for handling @section clauses.
@@ -630,7 +619,6 @@ class GenericDocState(object):
                              'COMMAND_SEE' : SeeState(self.parser, self),
                              'COMMAND_RETURN' : ReturnState(self.parser, self),
                              'COMMAND_THROW' : ThrowState(self.parser, self),
-                             'COMMAND_DATARACE' : DataRaceState(self.parser, self),
                              'COMMAND_PARAM' : ParamState(self.parser, self),
                              'COMMAND_TPARAM' : TParamState(self.parser, self),
                              'COMMAND_SECTION' : SectionState(self.parser, self),
@@ -679,8 +667,6 @@ class GenericDocState(object):
                 self.entry.addReturn(entry)
             elif entry.getType() == 'throw':
                 self.entry.addThrow(entry)
-            elif entry.getType() == 'datarace':
-                self.entry.addDataRace(entry)
             elif entry.getType() == 'extends':
                 self.entry.addExtends(entry)
             elif entry.getType() == 'implements':
@@ -727,9 +713,9 @@ class FunctionDocState(GenericDocState):
                                      'COMMAND_PARAM',
                                      'COMMAND_SECTION', 'COMMAND_SUBSECTION',
                                      'COMMAND_INCLUDE', 'COMMAND_SNIPPET', 'COMMAND_RETURN',
-                                     'COMMAND_THROW', 'COMMAND_HEADERFILE', 'COMMAND_DEPRECATED', 
-                                     'COMMAND_NOTE', 'COMMAND_WARNING', 'COMMAND_AKA', 
-                                     'COMMAND_INTERNAL', 'COMMAND_DATARACE'])
+                                     'COMMAND_THROW', 'COMMAND_HEADERFILE', 'COMMAND_DEPRECATED',
+                                     'COMMAND_NOTE', 'COMMAND_WARNING', 'COMMAND_AKA',
+                                     'COMMAND_INTERNAL'])
 
 
 class MacroDocState(GenericDocState):
@@ -743,7 +729,7 @@ class MacroDocState(GenericDocState):
                                      'COMMAND_INCLUDE', 'COMMAND_SNIPPET', 'COMMAND_RETURN',
                                      'COMMAND_THROW', 'COMMAND_HEADERFILE', 'COMMAND_DEPRECATED',
                                      'COMMAND_NOTE', 'COMMAND_WARNING', 'COMMAND_AKA',
-                                     'COMMAND_INTERNAL', 'COMMAND_DATARACE'])
+                                     'COMMAND_INTERNAL'])
 
 
 class MetafunctionDocState(GenericDocState):
diff --git a/util/py_lib/seqan/dox/dox_tokens.py b/util/py_lib/seqan/dox/dox_tokens.py
index 335c030..e7660b7 100644
--- a/util/py_lib/seqan/dox/dox_tokens.py
+++ b/util/py_lib/seqan/dox/dox_tokens.py
@@ -26,7 +26,7 @@ CLAUSE_STARTING = set(['COMMAND_SIGNATURE', 'COMMAND_CODE', 'COMMAND_SEE', 'COMM
                        'COMMAND_SECTION', 'COMMAND_SUBSECTION', 'COMMAND_INCLUDE',
                        'COMMAND_EXTENDS', 'COMMAND_IMPLEMENTS', 'COMMAND_SNIPPET',
                        'COMMAND_HEADERFILE', 'COMMAND_DEPRECATED', 'COMMAND_NOTE', 'COMMAND_WARNING',
-                       'COMMAND_INTERNAL', 'COMMAND_AKA', 'COMMAND_HTMLONLY', 'COMMAND_DATARACE'])
+                       'COMMAND_INTERNAL', 'COMMAND_AKA', 'COMMAND_HTMLONLY'])
 NON_PARAGRAPH = set(['COMMAND_ENDCODE', 'COMMAND_ENDHTMONLY'])
 LINE_BREAKS = set(['BREAK', 'EMPTYLINE'])
 
@@ -61,7 +61,6 @@ LEXER_TOKENS = (
     ('COMMAND_SEE',          r'@see'),
     ('COMMAND_RETURN',       r'@return'),
     ('COMMAND_THROW',        r'@throw'),
-    ('COMMAND_DATARACE',     r'@datarace'),
     ('COMMAND_PARAM',        r'@param'),
     ('COMMAND_TPARAM',       r'@tparam'),
     ('COMMAND_SECTION',      r'@section'),
diff --git a/util/py_lib/seqan/dox/proc_doc.py b/util/py_lib/seqan/dox/proc_doc.py
index 1635541..470c0d5 100644
--- a/util/py_lib/seqan/dox/proc_doc.py
+++ b/util/py_lib/seqan/dox/proc_doc.py
@@ -654,22 +654,6 @@ class ProcThrow(object):
     def visitTextNodes(self, visitor):
         """Visit all text nodes using the given visitor."""
         visitor.visit(self.desc)
-        
-
-class ProcDataRace(object):
-    """Documentation of a @datarace entry.
-
-    @ivar raw: The raw version of this ProcDataRace (required for location lookup).
-    @ivar desc: The documentation of the @datarace clause. TextNode.
-    """
-
-    def __init__(self, raw):
-        self.raw = raw
-        self.desc = TextNode()
-
-    def visitTextNodes(self, visitor):
-        """Visit all text nodes using the given visitor."""
-        visitor.visit(self.desc)
 
 
 class ProcFunction(ProcCodeEntry):
@@ -680,7 +664,6 @@ class ProcFunction(ProcCodeEntry):
     @ivar tparams:
     @ivar returns:
     @ivar throws: List of ProcThrow objects.
-    @ivar dataraces: List of ProcDataRace objects.
     """
 
     def __init__(self, raw, name, brief=None, body=None, sees=[]):
@@ -689,7 +672,6 @@ class ProcFunction(ProcCodeEntry):
         self.tparams = []
         self.returns = []
         self.throws = []
-        self.dataraces = []
 
     @property
     def kind(self):
@@ -721,8 +703,6 @@ class ProcFunction(ProcCodeEntry):
             p.visitTextNodes(visitor)
         for t in self.throws:
             t.visitTextNodes(visitor)
-        for d in self.dataraces:
-            d.visitTextNodes(visitor)
         
     def addParam(self, p):
         self.params.append(p)
@@ -735,9 +715,6 @@ class ProcFunction(ProcCodeEntry):
 
     def addThrow(self, t):
         self.throws.append(t)
-    
-    def addDataRace(self, t):
-        self.dataraces.append(t)
 
 
 class ProcMacro(ProcCodeEntry):
@@ -747,7 +724,6 @@ class ProcMacro(ProcCodeEntry):
                   concepts.
     @ivar returns: Name displayed for return type.
     @ivar throws: List of ProcThrow objects.
-    @ivar throws: List of ProcDataRace objects.
     """
 
     def __init__(self, raw, name, brief=None, body=None, sees=[]):
@@ -755,7 +731,6 @@ class ProcMacro(ProcCodeEntry):
         self.params = []
         self.returns = []
         self.throws = []
-        self.dataraces = []
 
     @property
     def local_name(self):
@@ -781,8 +756,6 @@ class ProcMacro(ProcCodeEntry):
             p.visitTextNodes(visitor)
         for t in self.throws:
             t.visitTextNodes(visitor)
-        for d in self.dataraces:
-            d.visitTextNodes(visitor)
 
     def addParam(self, p):
         self.params.append(p)
@@ -792,9 +765,6 @@ class ProcMacro(ProcCodeEntry):
 
     def addThrow(self, t):
         self.throws.append(t)
-        
-    def addDataRace(self, d):
-        self.dataraces.append(d)
 
 
 class ProcMetafunction(ProcCodeEntry):
@@ -1382,10 +1352,6 @@ class FunctionConverter(CodeEntryConverter):
             proc_throw.type = t.name.text
             proc_throw.desc = self.rawTextToTextNode(t.text)
             function.addThrow(proc_throw)
-        for d in raw_entry.dataraces:
-            proc_datarace = ProcDataRace(d)
-            proc_datarace.desc = self.rawTextToTextNode(d.text) 
-            function.addDataRace(proc_datarace)
         return function
 
 
@@ -1419,10 +1385,6 @@ class MacroConverter(CodeEntryConverter):
             proc_throw.type = t.name.text
             proc_throw.desc = self.rawTextToTextNode(t.text)
             macro.addThrow(proc_throw)
-        for d in raw_entry.dataraces:
-            proc_datarace = ProcDataRace(d)
-            proc_datarace.desc = self.rawTextToTextNode(d.text) 
-            macro.addDataRace(proc_datarace)
         return macro
 
 
diff --git a/util/py_lib/seqan/dox/raw_doc.py b/util/py_lib/seqan/dox/raw_doc.py
index 5d5a1ec..56fbe1c 100644
--- a/util/py_lib/seqan/dox/raw_doc.py
+++ b/util/py_lib/seqan/dox/raw_doc.py
@@ -559,7 +559,6 @@ class RawFunction(RawCodeEntry):
     @ivar params List of RawParameter objects.
     @ivar returns List of RawReturn objects.
     @ivar throw List of RawThrow objects.
-    @ivar datarace List of RawDataRace objects. 
     """
     
     def __init__(self, first_token, briefs=[]):
@@ -568,7 +567,6 @@ class RawFunction(RawCodeEntry):
         self.params = []
         self.returns = []
         self.throws = []
-        self.dataraces = []
 
     def addTParam(self, p):
         self.tparams.append(p)
@@ -581,9 +579,6 @@ class RawFunction(RawCodeEntry):
 
     def addThrow(self, t):
         self.throws.append(t)
-        
-    def addDataRace(self, d):
-        self.dataraces.append(d)
 
     def getType(self):
         if '#' in self.name.text:
@@ -633,10 +628,6 @@ class RawFunction(RawCodeEntry):
             res.append('\n')
         for x in self.throws:
             res.append(x.getFormatted(formatter))
-        if self.dataraces:
-            res.append('\n')
-        for x in self.dataraces:
-            res.append(x.getFormatted(formatter))
         if not self.body.empty:
             res.append('\n')
         res += self.body.getFormatted(formatter)
@@ -662,7 +653,6 @@ class RawMacro(RawCodeEntry):
     @ivar params List of RawParameter objects.
     @ivar returns List of RawReturn objects.
     @ivar throws List of RawThrow objects.
-    @ivar dataraces List of RawDataRace objects.
     """
     
     def __init__(self, first_token, briefs=[]):
@@ -670,7 +660,6 @@ class RawMacro(RawCodeEntry):
         self.params = []
         self.returns = []
         self.throws = []
-        self.dataraces = []
 
     def addParam(self, p):
         self.params.append(p)
@@ -680,9 +669,6 @@ class RawMacro(RawCodeEntry):
 
     def addThrow(self, t):
         self.throws.append(t)
-    
-    def addDataRace(self, d):
-        self.dataraces.append(d)
 
     def getType(self):
         if '#' in self.name.text:
@@ -726,10 +712,6 @@ class RawMacro(RawCodeEntry):
             res.append('\n')
         for x in self.throws:
             res.append(x.getFormatted(formatter))
-        if self.dataraces:
-            res.append('\n')
-        for x in self.dataraces:
-            res.append(x.getFormatted(formatter))
         if not self.body.empty:
             res.append('\n')
         res += self.body.getFormatted(formatter)
@@ -1387,23 +1369,6 @@ class RawThrow(RawParam):
 
     def getFormatted(self, formatter):
         return formatter.formatCommand('throw', self.text.text, self.name.text)
-    
-    
-class RawDataRace(object):
-    """RawDoc for one data race description.
-    
-    @ivar text The @datarace clauses's parameter.
-    """
-    
-    def __init__(self, first_token, text=RawText()):
-        self.first_token = first_token
-        self.text = text
-
-    def getType(self):
-        return 'datarace'
-
-    def getFormatted(self, formatter):
-        return formatter.formatCommand('datarace', self.text.text)
 
 
 class RawSignature(object):
diff --git a/util/py_lib/seqan/dox/test/test_dox_parser.py b/util/py_lib/seqan/dox/test/test_dox_parser.py
index 830d538..a160d80 100644
--- a/util/py_lib/seqan/dox/test/test_dox_parser.py
+++ b/util/py_lib/seqan/dox/test/test_dox_parser.py
@@ -222,7 +222,6 @@ class TestMacroParsing(TestDoxParserBase):
                '@param param The parameter.\n'
                '@return TString A path as <tt>char const *</tt>.\n'
                '@throw Exception The exception type.\n'
-               '@datarace This macro is not thread safe.\n'
                '\n'
                '@section This is the first section.\n'
                '\n'
@@ -248,8 +247,6 @@ class TestMacroParsing(TestDoxParserBase):
                     '\n'
                     '@throw Exception The exception type.\n'
                     '\n'
-                    '@datarace This macro is not thread safe.\n'
-                    '\n'
                     '@section This is the first section.\n'
                     '\n'
                     'This is the first paragraph.\n'
@@ -291,16 +288,6 @@ class TestFunctionParsing(TestDoxParserBase):
         self.assertEqual(fn.throws[0].name.text, 'Exception')
         txt = 'The thrown exception'
         self.assertEqual(fn.throws[0].text.text, txt)
-        
-    def testDataRace(self):
-        txt = ('@fn funktion\n'
-               '@datarace This function is thread safe.')
-        parser = self.parseText(txt)
-        doc = parser.documentation
-        fn = doc.entries[0]
-        self.assertEqual(len(fn.dataraces), 1)
-        txt = 'This function is thread safe.'
-        self.assertEqual(fn.dataraces[0].text.text, txt)
 
     def testGlobalFull(self):
         txt = ('@fn funktion\n'
@@ -319,8 +306,6 @@ class TestFunctionParsing(TestDoxParserBase):
                '\n'
                '@throw Exception The thrown exception.\n'
                '\n'
-               '@datarace This function is thread safe.\n'
-               '\n'
                '@section This is the first section.\n'
                '\n'
                'This is the first paragraph.\n'
@@ -353,8 +338,6 @@ class TestFunctionParsing(TestDoxParserBase):
                     '\n'
                     '@throw Exception The thrown exception.\n'
                     '\n'
-                    '@datarace This function is thread safe.\n'
-                    '\n'
                     '@section This is the first section.\n'
                     '\n'
                     'This is the first paragraph.\n'
@@ -387,7 +370,6 @@ class TestFunctionParsing(TestDoxParserBase):
                '@param     p2 The second parameter.\n'
                '@return TRes1 The first return type.\n'
                '@return TRes2 The second return type.\n'
-               '@datarace This function is thread safe.\n'
                '\n'
                '@section This is the first section.\n'
                '\n'
@@ -419,8 +401,6 @@ class TestFunctionParsing(TestDoxParserBase):
                     '@return TRes1 The first return type.\n'
                     '@return TRes2 The second return type.\n'
                     '\n'
-                    '@datarace This function is thread safe.\n'
-                    '\n'
                     '@section This is the first section.\n'
                     '\n'
                     'This is the first paragraph.\n'
diff --git a/util/py_lib/seqan/dox/test/test_proc_doc.py b/util/py_lib/seqan/dox/test/test_proc_doc.py
index 4b8b490..a20e3f8 100644
--- a/util/py_lib/seqan/dox/test/test_proc_doc.py
+++ b/util/py_lib/seqan/dox/test/test_proc_doc.py
@@ -676,7 +676,6 @@ class TestConvertFunction(TestConverterBase):
                '@tparam    T1      The type of the first template parameter.\n'
                '@return    TReturn The return value.\n'
                '@throw     Exception The exception type.\n'
-               '@datarace  This function is thread safe.\n'
                '\n'
                'This is the first paragraph.\n'
                '@section First <em>heading</em>\n'
@@ -708,10 +707,6 @@ class TestConvertFunction(TestConverterBase):
         self.assertEqual(len(proc_function.throws), 1)
         txt = '<div>The exception type.</div>'
         self.assertEqual(proc_function.throws[0].desc.toHtmlLike(), txt)
-        # dataraces
-        self.assertEqual(len(proc_function.dataraces), 1)
-        txt = '<div>This function is thread safe.</div>'
-        self.assertEqual(proc_function.dataraces[0].desc.toHtmlLike(), txt)
         # brief
         txt = '<div>This is the <i>very important</i> class brief.</div>'
         self.assertEqual(proc_function.brief.toHtmlLike(), txt)
@@ -740,7 +735,6 @@ class TestConvertFunction(TestConverterBase):
                '@tparam    T1      The type of the first template parameter.\n'
                '@return    TReturn The return value.\n'
                '@throw     Excpetion The exception type.\n'
-               '@datarace  This function is thread safe.\n'
                '\n'
                'This is the first paragraph.\n'
                '@section First <em>heading</em>\n'
@@ -772,10 +766,6 @@ class TestConvertFunction(TestConverterBase):
         self.assertEqual(len(proc_function.throws), 1)
         txt = '<div>The exception type.</div>'
         self.assertEqual(proc_function.throws[0].desc.toHtmlLike(), txt)
-        # dataraces
-        self.assertEqual(len(proc_function.dataraces), 1)
-        txt = '<div>This function is thread safe.</div>'
-        self.assertEqual(proc_function.dataraces[0].desc.toHtmlLike(), txt)
         # brief
         txt = '<div>This is the <i>very important</i> class brief.</div>'
         self.assertEqual(proc_function.brief.toHtmlLike(), txt)
@@ -804,7 +794,6 @@ class TestConvertFunction(TestConverterBase):
                '@tparam    T1      The type of the first template parameter.\n'
                '@return    TReturn The return value.\n'
                '@throw     Excpetion The exception type.\n'
-               '@datarace This function is thread safe.\n'
                '\n'
                'This is the first paragraph.\n'
                '@section First <em>heading</em>\n'
@@ -836,10 +825,6 @@ class TestConvertFunction(TestConverterBase):
         self.assertEqual(len(proc_function.throws), 1)
         txt = '<div>The exception type.</div>'
         self.assertEqual(proc_function.throws[0].desc.toHtmlLike(), txt)
-        # dataraces
-        self.assertEqual(len(proc_function.dataraces), 1)
-        txt = '<div>This function is thread safe.</div>'
-        self.assertEqual(proc_function.dataraces[0].desc.toHtmlLike(), txt)
         # brief
         txt = '<div>This is the <i>very important</i> class brief.</div>'
         self.assertEqual(proc_function.brief.toHtmlLike(), txt)
@@ -889,7 +874,6 @@ class TestConvertMacro(TestConverterBase):
                '@param param2 The second parameter.\n'
                '@return    TReturn The return value.\n'
                '@throw     Exception The exception type.\n'
-               '@datarace This function is not thread safe.\n'
                '\n'
                'This is the first paragraph.\n'
                '@section First <em>heading</em>\n'
@@ -920,10 +904,6 @@ class TestConvertMacro(TestConverterBase):
         self.assertEqual(len(proc_macro.throws), 1)
         txt = '<div>The exception type.</div>'
         self.assertEqual(proc_macro.throws[0].desc.toHtmlLike(), txt)
-        # dataraces
-        self.assertEqual(len(proc_macro.dataraces), 1)
-        txt = '<div>This function is not thread safe.</div>'
-        self.assertEqual(proc_macro.dataraces[0].desc.toHtmlLike(), txt)
         # brief
         txt = '<div>This is the <i>very important</i> macro brief.</div>'
         self.assertEqual(proc_macro.brief.toHtmlLike(), txt)
@@ -950,7 +930,6 @@ class TestConvertMacro(TestConverterBase):
                '@param param The parameter\n'
                '@return    TReturn The return value.\n'
                '@throw     Exception The exception type.\n'
-               '@datarace This function is not thread safe.\n'
                '\n'
                'This is the first paragraph.\n'
                '@section First <em>heading</em>\n'
@@ -977,10 +956,6 @@ class TestConvertMacro(TestConverterBase):
         self.assertEqual(len(proc_macro.throws), 1)
         txt = '<div>The exception type.</div>'
         self.assertEqual(proc_macro.throws[0].desc.toHtmlLike(), txt)
-        # dataraces
-        self.assertEqual(len(proc_macro.dataraces), 1)
-        txt = '<div>This function is not thread safe.</div>'
-        self.assertEqual(proc_macro.dataraces[0].desc.toHtmlLike(), txt)
         # brief
         txt = '<div>This is the <i>very important</i> class brief.</div>'
         self.assertEqual(proc_macro.brief.toHtmlLike(), txt)
diff --git a/util/py_lib/seqan/dox/test/test_raw_doc.py b/util/py_lib/seqan/dox/test/test_raw_doc.py
index 4ea2226..1c89bdb 100644
--- a/util/py_lib/seqan/dox/test/test_raw_doc.py
+++ b/util/py_lib/seqan/dox/test/test_raw_doc.py
@@ -575,28 +575,6 @@ class ThrowTest(unittest.TestCase):
         ret = raw_doc.RawThrow(self.tok, self.txt_type, self.txt_text)
         self.assertEqual(ret.getFormatted(self.formatter),
                          '@throw type text\n')
-        
-
-class DataRaceTest(unittest.TestCase):
-    """Test for the RawDataRace class, mostly tests instance variables."""
-
-    def setUp(self):
-        self.tok = lexer.Token('COMMAND_DATARACE', '@datarace', 0, 0, 0)
-        self.tok_text = lexer.Token('WORD', 'text', 0, 0, 0)
-        self.txt_text = raw_doc.RawText([self.tok_text])
-        self.formatter = raw_doc.DoxFormatter()
-
-    def testCreation(self):
-        dataRace = raw_doc.RawDataRace(self.tok, self.txt_text)
-        self.assertEqual(dataRace.text, self.txt_text)
-
-    def testGetType(self):
-        dataRace = raw_doc.RawDataRace(self.tok, self.txt_text)
-        self.assertEqual(dataRace.getType(), 'datarace')
-
-    def testGetFormatted(self):
-        dataRace = raw_doc.RawDataRace(self.tok, self.txt_text)
-        self.assertEqual(dataRace.getFormatted(self.formatter), '@datarace text\n')
 
 
 class SignatureTest(unittest.TestCase):
diff --git a/util/py_lib/seqan/dox/tpl/function.html b/util/py_lib/seqan/dox/tpl/function.html
index ba6b066..d5da70c 100644
--- a/util/py_lib/seqan/dox/tpl/function.html
+++ b/util/py_lib/seqan/dox/tpl/function.html
@@ -18,6 +18,9 @@
 <!-- @returns -->
 {{ sections.return_values(function) }}
 
+<!-- @throw -->
+{{ sections.throws(function) }}
+
 <!--
  =============================================================================
   Detailed Description
@@ -75,12 +78,6 @@
 </div>
 {% endif %}
 
-<!-- @throw -->
-{{ sections.throws(function) }}
-
-<!-- @datarace -->
-{{ sections.dataraces(function) }}
-
 <!-- @see -->
 {{ sections.see_also(function) }}
 
diff --git a/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/bootstrap-3.0.0.min.js b/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/bootstrap-3.0.0.min.js
new file mode 100755
index 0000000..1765631
--- /dev/null
+++ b/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/bootstrap-3.0.0.min.js
@@ -0,0 +1,6 @@
+/**
+* bootstrap.js v3.0.0 by @fat and @mdo
+* Copyright 2013 Twitter Inc.
+* http://www.apache.org/licenses/LICENSE-2.0
+*/
+if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.tran [...]
\ No newline at end of file
diff --git a/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/jquery-2.0.3.min.js b/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/jquery-2.0.3.min.js
new file mode 100644
index 0000000..2be209d
--- /dev/null
+++ b/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/jquery-2.0.3.min.js
@@ -0,0 +1,6 @@
+/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery-2.0.3.min.map
+*/
+(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.3",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("D [...]
+};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return q.get(e,n)||q.access(e,n,{empty:x.Callbacks("once memory").add(function(){q.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(thi [...]
+},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Xt,Ut,Yt=x.now(),Vt=/\?/,Gt=/#.*$/,Jt=/([?&])_=[^&]*/,Qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Kt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Zt=/^(?:GET|HEAD)$/,en=/^\/\//,tn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,nn=x.fn.load,rn={},on={},sn="*/".concat("*");try{Ut=i.href}catch(an){Ut=o.createElement("a"),Ut.href="",Ut=U [...]
diff --git a/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/prettify.js b/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/util/py_lib/seqan/dox/tpl/lib/bootstrap-multiselect/js/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\ [...]
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a) [...]
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\ [...]
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l= [...]
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+ [...]
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0 [...]
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){fo [...]
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s [...]
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com [...]
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]) [...]
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("B [...]
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f. [...]
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0] [...]
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}funct [...]
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.n [...]
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,uni [...]
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,thro [...]
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield [...]
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,pac [...]
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z] [...]
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+ [...]
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuote [...]
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,i [...]
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g), [...]
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.l [...]
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_ [...]
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/util/py_lib/seqan/dox/tpl/list.html b/util/py_lib/seqan/dox/tpl/list.html
index c73f5dc..50ea4ed 100644
--- a/util/py_lib/seqan/dox/tpl/list.html
+++ b/util/py_lib/seqan/dox/tpl/list.html
@@ -66,7 +66,7 @@
         <div class="pre-action">
             <h1><a href="page_mainpage.html" target="main"><span class="replace">SeqAn</span> API Documentation</a></h1>
         </div>
-        <div class="input-group" style="z-index: 2">
+        <div class="input-group">
           <!--span class="input-group-addon"><b class="glyphicon glyphicon-search"></b></span-->
           <span class="input-group-btn btn-group">
             <select multiple="multiple">
diff --git a/util/py_lib/seqan/dox/tpl/macro.html b/util/py_lib/seqan/dox/tpl/macro.html
index 274ca74..b2628b2 100644
--- a/util/py_lib/seqan/dox/tpl/macro.html
+++ b/util/py_lib/seqan/dox/tpl/macro.html
@@ -15,6 +15,10 @@
 <!-- @returns -->
 {{ sections.return_values(macro) }}
 
+<!-- @throw -->
+{{ sections.throws(macro) }}
+
+
 <!--
  =============================================================================
   Detailed Description
@@ -71,12 +75,6 @@
 </div>
 {% endif %}
 
-<!-- @throw -->
-{{ sections.throws(macro) }}
-
-<!-- @datarace -->
-{{ sections.dataraces(macro) }}
-
 <!-- @see -->
 {{ sections.see_also(macro) }}
 
diff --git a/util/py_lib/seqan/dox/tpl/sections.html b/util/py_lib/seqan/dox/tpl/sections.html
index 5120dca..9c88528 100644
--- a/util/py_lib/seqan/dox/tpl/sections.html
+++ b/util/py_lib/seqan/dox/tpl/sections.html
@@ -714,7 +714,7 @@ Render the grouped macros details
       <dt>See Also</dt>
       <dd>
         {% for link in subentry.sortedSees() %}
-      <dd>{{ link|transtext(True) }}</dd>
+      <dd>{{ link|transtext(False)|translink }}</dd>
       {% endfor %}
       </dd>
       {% endif %}
@@ -819,26 +819,11 @@ Render the grouped macros details
   {% endfor %}
 {% endif %}
 
-{% if subentry.dataraces %}
-  <dt>Data Races</dt>
-
-  {% for datarace in subentry.dataraces %}
-  <dd>
-    {{ datarace.desc|transtext(False) }}
-  </dd>
-  {% endfor %}
-{% else %}
-  <dt>Data Races</dt>
-  <dd>
-    Thread safety unknown!
-  </dd>
-{% endif %}
-
 {% if subentry.sees %}
   <dt>See Also</dt>
   <dd>
   {% for link in subentry.sortedSees() %}
-  <dd>{{ link|transtext(True) }}</dd>
+  <dd>{{ link|transtext(False)|translink }}</dd>
   {% endfor %}
   </dd>
 {% endif %}
@@ -956,7 +941,7 @@ Render the interface functions details
     {% endfor %}
   </table>
   {% endif %}
-  
+
   {% if subentry.returns %}
   <h4>Returns</h4>
   <table class="overview">
@@ -969,17 +954,6 @@ Render the interface functions details
   </table>
   {% endif %}
 
-	<!-- General description -->
-
-  <div class="docstring">
-    <div class="discussion">
-      {{ body(subentry, start_heading=4) }}
-    </div>
-  </div>
- 
-
-  <!-- Throws Section -->
-	
   {% if subentry.throws %}
   <h4>Thrown Exceptions</h4>
   <table class="overview">
@@ -991,30 +965,18 @@ Render the interface functions details
     {% endfor %}
   </table>
   {% endif %}
-  
-  <!-- Data Races Section  -->
-  
-  <h4>Data Races</h4>
-  <div class="discussion">
-  {% if subentry.dataraces %}	
-	{% for datarace in subentry.dataraces %}
-  	<p>
-    	{{ datarace.desc|transtext(False) }}
-  	</p>
-  	{% endfor %}
-  {% else %}
-    Thread safety unknown!
-  {% endif %}
+
+  <div class="docstring">
+    <div class="discussion">
+      {{ body(subentry, start_heading=4) }}
+    </div>
   </div>
-	
-	
-  <!-- Sees section -->
-  
+
   {% if subentry.sees %}
   <h4>See Also</h4>
   <ul>
     {% for link in subentry.sortedSees() %}
-    <li>{{ link|transtext(True) }}</li>
+    <li>{{ link|transtext(False)|translink }}</li>
     {% endfor %}
   </ul>
   {% endif %}
@@ -1359,29 +1321,6 @@ Render the throw details.
 {% endmacro %}
 
 <!--
-Macro dararaces(entry)
-
-Render the dataraces details.
--->
-
-{% macro dataraces(entry, h_level=2) -%}
-<h{{ h_level }} class="clause_header">Data Races</h{{ h_level }}>
-{% if entry.dataraces %}
-	<div class="summary compact">
-		{% for draces in entry.dataraces %}
-    	<p>
-    		{{ draces.desc|transtext(False) }}
-    	</p>
-		{% endfor %}
-	</div>
-{% else %}
-	<div class="summary compact">
- 		Thread safety unknown!
-	</div>
-{% endif %}
-{%- endmacro %}
-
-<!--
 Macro dox_source(entry)
 
 Render toggle-able Dox-like documentation.
diff --git a/util/py_lib/seqan/dox/write_html.py b/util/py_lib/seqan/dox/write_html.py
index 0224ce8..bbb4d35 100644
--- a/util/py_lib/seqan/dox/write_html.py
+++ b/util/py_lib/seqan/dox/write_html.py
@@ -462,7 +462,8 @@ class HtmlWriter(object):
             html = self.tpl_manager.render('adaption.html', adaption=entry,  **common_kwargs)
         elif entry.kind == 'shortcut':
             html = self.tpl_manager.render('shortcut.html', shortcut=entry,  **common_kwargs)
-        elif entry.kind in ['global_function', 'member_function', 'interface_function']:
+        elif entry.kind in ['global_function', 'member_function',
+                            'interface_function']:
             html = self.tpl_manager.render('function.html', function=entry,  **common_kwargs)
         elif entry.kind in ['global_metafunction', 'interface_metafunction']:
             html = self.tpl_manager.render('metafunction.html', metafunction=entry,  **common_kwargs)
diff --git a/util/skel/test_template/test.h b/util/skel/test_template/test.h
index 85776bd..3d52e67 100644
--- a/util/skel/test_template/test.h
+++ b/util/skel/test_template/test.h
@@ -36,7 +36,6 @@
 #define %(HEADER_GUARD)s
 
 #include <seqan/basic.h>
-#include <seqan/stream.h>
 #include <seqan/sequence.h>
 
 // A test for strings.
diff --git a/util/travis/linux-cibuild.cmake b/util/travis/linux-cibuild.cmake
index c2fb7d7..ee8c600 100644
--- a/util/travis/linux-cibuild.cmake
+++ b/util/travis/linux-cibuild.cmake
@@ -20,8 +20,12 @@ file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" ${INITIAL_CACHE})
 set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS 1000)
 set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 1000)
 
-# Use 4 build threads
-set(CTEST_BUILD_FLAGS -j4)
+# try to speed up the builds so we don't get killed
+if ("$ENV{CXX}" MATCHES ".*(clang\\+\\+-?.*)")
+  set(CTEST_BUILD_FLAGS -j6)
+else ("$ENV{CXX}" MATCHES ".*(clang\\+\\+-?.*)")
+  set(CTEST_BUILD_FLAGS -j4)
+endif ("$ENV{CXX}" MATCHES ".*(clang\\+\\+-?.*)")
 
 # we want makefiles
 set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
@@ -36,13 +40,13 @@ CONFIGURE_FILE (${CTEST_SOURCE_DIRECTORY}/util/cmake/CTestConfig.cmake
 # run the classical ctest suite without update
 # travis-ci handles this for us
 ctest_start     (Continuous)
+
 ctest_configure (BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE _configure_ret)
-ctest_build     (BUILD "${CTEST_BINARY_DIRECTORY}" NUMBER_ERRORS _build_errors
-                                                   NUMBER_WARNINGS _build_warnings)
-ctest_test      (BUILD "${CTEST_BINARY_DIRECTORY}" PARALLEL_LEVEL 4)
+ctest_build     (BUILD "${CTEST_BINARY_DIRECTORY}" NUMBER_ERRORS _build_errors)
+ctest_test      (BUILD "${CTEST_BINARY_DIRECTORY}" PARALLEL_LEVEL 8)
 ctest_submit()
 
 # indicate errors
-if (${_build_errors} GREATER 0 OR ${_build_warnings} GREATER 0 OR NOT ${_configure_ret} EQUAL 0)
+if(${_build_errors} GREATER 0 OR NOT ${_configure_ret} EQUAL 0)
   file(WRITE "$ENV{SOURCE_DIRECTORY}/failed" "build_failed")
-endif ()
+endif()

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



More information about the debian-med-commit mailing list