From 92db5455e2a34b28dd928d206a6229943795c186 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Fri, 25 Jan 2019 09:24:40 -0800 Subject: [PATCH 01/50] pointing to actively maintained --- README.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.rst b/README.rst index 52508e1d..c35a9d4e 100644 --- a/README.rst +++ b/README.rst @@ -1,3 +1,6 @@ + +No longer synced. `Actively maintained version `__ + Apollo API Library ================== From e3b565750a62857a72aed8ab950a65dae9f08ac3 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:32:53 +0200 Subject: [PATCH 02/50] get some code from gga tools --- apollo/users/__init__.py | 47 ++++++++++++++++++++++++++++++++++++++++ apollo/util.py | 33 ++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/apollo/users/__init__.py b/apollo/users/__init__.py index 438d5201..3a21cdc8 100644 --- a/apollo/users/__init__.py +++ b/apollo/users/__init__.py @@ -2,10 +2,12 @@ Contains possible interactions with the Apollo Users Module """ import json +import random import time from apollo.client import Client from apollo.decorators import raise_error_decorator +from apollo.exceptions import UnknownUserException def _fix_single_user(user): @@ -284,3 +286,48 @@ def inactivate_user(self, user): :return: an empty dictionary """ return self.post('inactivateUser', {'userToDelete': user}) + + def _assert_user(self, user_list): + """ + Asserts that user_list contains exactly 1 user + + :type user_list: list + :param user_list: A list of users as returned by show_user + + :rtype: dict + :return: a dictionary containing user information + """ + + if len(user_list) == 0: + raise UnknownUserException() + elif len(user_list) == 1: + return user_list[0] + else: + raise Exception("Too many users in %s!" % user_list) + + def _assert_or_create_user(self, email): + """ + Make sure an user exists + + :type email: str + :param email: User Email + + :rtype: dict + :return: a dictionary containing user information + """ + + try: + user = self.show_user(email) + if not isinstance(user, list): + user = [user] + user = self._assert_user(user) + except UnknownUserException: + password = self._password_generator(12) + self.create_user(email, email, email, password, role="user") + user = self._assert_user([self.show_user(email)]) + user['new_password'] = password + return user + + def _password_generator(self, length): + chars = list('qwrtpsdfghjklzxcvbnm') + return ''.join(random.choice(chars) for _ in range(length)) diff --git a/apollo/util.py b/apollo/util.py index 5ded64b3..a9093fee 100644 --- a/apollo/util.py +++ b/apollo/util.py @@ -1,9 +1,16 @@ import argparse import json +import logging +import time + from Bio import SeqIO + from apollo.exceptions import UnknownUserException +log = logging.getLogger() + + def WAAuth(parser): parser.add_argument('apollo', help='Complete Apollo URL') parser.add_argument('username', help='WA Username') @@ -110,3 +117,29 @@ def featuresToFeatureSchema(features): for x in _yieldFeatData([feature]): compiled.append(x) return compiled + + +def retry(closure, sleep=1, limit=5): + """ + Apollo has the bad habit of returning 500 errors if you call APIs + too quickly, largely because of the unholy things that happen in + grails. + + To deal with the fact that we cannot send an addComments call too + quickly after a createFeature call, we have this function that will + keep calling a closure until it works. + """ + count = 0 + while True: + count += 1 + + if count >= limit: + return False + try: + # Try calling it + closure() + # If successful, exit + return True + except Exception as e: + log.info(str(e)[0:100]) + time.sleep(sleep) From 9becea0be51fe2d130886a6c30d48ae51c0f0816 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:33:16 +0200 Subject: [PATCH 03/50] fix error when exporting fasta --- apollo/io/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apollo/io/__init__.py b/apollo/io/__init__.py index be4c6238..e22420a3 100644 --- a/apollo/io/__init__.py +++ b/apollo/io/__init__.py @@ -46,7 +46,7 @@ def write_downloadable(self, organism, export_type='FASTA', data = { 'type': export_type, - 'seq_type': seq_type, + 'seqType': seq_type, 'format': export_format, 'sequences': sequences, 'organism': organism, From add50afde9c075de0e51240fa5978257cd171439 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:33:28 +0200 Subject: [PATCH 04/50] fix with python3 (?) --- apollo/decorators.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/apollo/decorators.py b/apollo/decorators.py index 2a8f02d3..ddcd23fc 100644 --- a/apollo/decorators.py +++ b/apollo/decorators.py @@ -4,11 +4,9 @@ @decorator -def raise_error_decorator(fn): - def wrapper(*args, **kwargs): - r = fn(*args, **kwargs) - if type(r) is dict and "error" in r: - raise APIErrorResponseException("Apollo Error in function \"%s\":\n\t-%s" % - (fn.__name__, r["error"])) - return r - return wrapper +def raise_error_decorator(fn, *args, **kwargs): + r = fn(*args, **kwargs) + if type(r) is dict and "error" in r: + raise APIErrorResponseException("Apollo Error in function \"%s\":\n\t-%s" % + (fn.__name__, r["error"])) + return r From d32ff8c651798f561bae9ac2bb2f18c510b5f4ad Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:34:39 +0200 Subject: [PATCH 05/50] add load_gff3 method --- README.rst | 1 + apollo/annotations/__init__.py | 196 ++++++++++++++++++++++++ arrow/commands/annotations/load_gff3.py | 24 +++ arrow/commands/cmd_annotations.py | 2 + docs/commands/annotations.rst | 24 +++ 5 files changed, 247 insertions(+) create mode 100644 arrow/commands/annotations/load_gff3.py diff --git a/README.rst b/README.rst index d55fd92c..003966b4 100644 --- a/README.rst +++ b/README.rst @@ -66,6 +66,7 @@ History - 3.2 - Added support for remote creation/update/deletion of organisms/tracks + - Added support for adding GFF3 in the annotation track - 3.1 - Added user activate/inactivate - Added get_creator for user, group and organisms diff --git a/apollo/annotations/__init__.py b/apollo/annotations/__init__.py index 6d802b55..ba394ebd 100644 --- a/apollo/annotations/__init__.py +++ b/apollo/annotations/__init__.py @@ -1,7 +1,13 @@ """ Contains possible interactions with the Apollo's Annotations """ +import sys +import time + +from BCBio import GFF + from apollo.client import Client +from apollo.util import featuresToFeatureSchema, retry class AnnotationsClient(Client): @@ -913,3 +919,193 @@ def get_gff3(self, feature_id, organism=None, sequence=None): } data = self._update_data(data, organism, sequence) return self.post('getGff3', data, is_json=False) + + def load_gff3(self, organism, gff3, source=None): + """ + Load a full GFF3 into annotation track + + :type organism: str + :param organism: Organism Common Name + + :type gff3: file + :param gff3: GFF3 to load + + :type source: str + :param source: URL where the input dataset can be found. + + :rtype: str + :return: Loading report + """ + + sys.stdout.write('# ') + sys.stdout.write('\t'.join(['Feature ID', 'Apollo ID', 'Success', 'Messages'])) + sys.stdout.write('\n') + + bad_quals = ['date_creation', 'source', 'owner', 'date_last_modified', 'Name', 'ID'] + + for rec in GFF.parse(gff3): + self.set_sequence(organism, rec.id) + for feature in rec.features: + # We can only handle genes right now + if feature.type not in ('gene', 'terminator'): + continue + # Convert the feature into a presentation that Apollo will accept + featureData = featuresToFeatureSchema([feature]) + if 'children' in featureData[0] and any([child['type']['name'] == 'tRNA' for child in featureData[0]['children']]): + # We're experiencing a (transient?) problem where gene_001 to + # gene_025 will be rejected. Thus, hardcode to a known working + # gene name and update later. + + featureData[0]['name'] = 'tRNA_000' + tRNA_sf = [child for child in feature.sub_features if child.type == 'tRNA'][0] + tRNA_type = 'tRNA-' + tRNA_sf.qualifiers.get('Codon', ["Unk"])[0] + + if 'Name' in feature.qualifiers: + if feature.qualifiers['Name'][0].startswith('tRNA-'): + tRNA_type = feature.qualifiers['Name'][0] + + newfeature = self.add_feature(featureData) + + def func0(): + self.set_name( + newfeature['features'][0]['uniquename'], + tRNA_type, + ) + retry(func0) + + if source: + gene_id = newfeature['features'][0]['parent_id'] + + def setSource(): + self.add_attributes(gene_id, {'DatasetSource': [source]}) + retry(setSource) + + sys.stdout.write('\t'.join([ + feature.id, + newfeature['features'][0]['uniquename'], + 'success', + ])) + elif featureData[0]['type']['name'] == 'terminator': + # We're experiencing a (transient?) problem where gene_001 to + # gene_025 will be rejected. Thus, hardcode to a known working + # gene name and update later. + featureData[0]['name'] = 'terminator_000' + newfeature = self.add_feature(featureData) + + def func0(): + self.set_name( + newfeature['features'][0]['uniquename'], + 'terminator' + ) + + retry(func0) + + if source: + gene_id = newfeature['features'][0]['parent_id'] + + def setSource(): + self.add_attributes(gene_id, {'DatasetSource': [source]}) + retry(setSource) + + sys.stdout.write('\t'.join([ + feature.id, + newfeature['features'][0]['uniquename'], + 'success', + ])) + else: + try: + # We're experiencing a (transient?) problem where gene_001 to + # gene_025 will be rejected. Thus, hardcode to a known working + # gene name and update later. + featureData[0]['name'] = 'gene_000' + # Create the new feature + newfeature = self.add_feature(featureData) + # Extract the UUIDs that apollo returns to us + mrna_id = newfeature['features'][0]['uniquename'] + gene_id = newfeature['features'][0]['parent_id'] + # Sleep to give it time to actually persist the feature. Apollo + # is terrible about writing + immediately reading back written + # data. + time.sleep(1) + + # Extract CDS feature from the feature data, this will be used + # to set the CDS location correctly (apollo currently screwing + # this up (2.0.6)) + min_cds = None + max_cds = None + + for feat in featureData[0]['children']: + # mRNA level + for subfeat in feat['children']: + # Can be exon or CDS + if subfeat['type']['name'] == 'CDS': + if min_cds is None: + min_cds = subfeat['location']['fmin'] + max_cds = subfeat['location']['fmax'] + else: + min_cds = min(min_cds, subfeat['location']['fmin']) + max_cds = max(max_cds, subfeat['location']['fmax']) + if 'children' in subfeat: + for subsubfeat in subfeat['children']: + if subsubfeat['type']['name'] == 'CDS': + if min_cds is None: + min_cds = subsubfeat['location']['fmin'] + max_cds = subsubfeat['location']['fmax'] + else: + min_cds = min(min_cds, subsubfeat['location']['fmin']) + max_cds = max(max_cds, subsubfeat['location']['fmax']) + + # Correct the translation start, but with strand specific log + if featureData[0]['location']['strand'] == 1: + self.set_translation_start(mrna_id, min(min_cds, max_cds)) + else: + self.set_translation_start(mrna_id, max(min_cds, max_cds) - 1) + + # Finally we set the name, this should be correct. + def func(): + self.set_name(mrna_id, feature.qualifiers.get('product', feature.qualifiers.get('Name', ["Unknown"]))[0]) + retry(func) + + def func(): + self.set_name(gene_id, feature.qualifiers.get('product', feature.qualifiers.get('Name', ["Unknown"]))[0]) + retry(func) + + if source: + gene_id = newfeature['features'][0]['parent_id'] + + def setSource(): + self.add_attributes(gene_id, {'DatasetSource': [source]}) + retry(setSource) + extra_attr = {} + for (key, values) in feature.qualifiers.items(): + if key in bad_quals: + continue + + if key == 'Note': + def func2(): + self.add_comments(gene_id, values) + retry(func2) + else: + extra_attr[key] = values + + def func3(): + self.add_attributes(gene_id, extra_attr) + retry(func3) + + sys.stdout.write('\t'.join([ + feature.id, + gene_id, + 'success', + ])) + except Exception as e: + msg = str(e) + if '\n' in msg: + msg = msg[0:msg.index('\n')] + sys.stdout.write('\t'.join([ + feature.id, + '', + 'ERROR', + msg + ])) + sys.stdout.write('\n') + sys.stdout.flush() diff --git a/arrow/commands/annotations/load_gff3.py b/arrow/commands/annotations/load_gff3.py new file mode 100644 index 00000000..f246883a --- /dev/null +++ b/arrow/commands/annotations/load_gff3.py @@ -0,0 +1,24 @@ +import click +from arrow.cli import pass_context, json_loads +from arrow.decorators import custom_exception, str_output + + +@click.command('load_gff3') +@click.argument("organism", type=str) +@click.argument("gff3", type=click.File('rb+')) +@click.option( + "--source", + help="URL where the input dataset can be found.", + type=str +) +@pass_context +@custom_exception +@str_output +def cli(ctx, organism, gff3, source=""): + """Load a full GFF3 into annotation track + +Output: + + Loading report + """ + return ctx.gi.annotations.load_gff3(organism, gff3, source=source) diff --git a/arrow/commands/cmd_annotations.py b/arrow/commands/cmd_annotations.py index 7d07edb2..df29c34e 100644 --- a/arrow/commands/cmd_annotations.py +++ b/arrow/commands/cmd_annotations.py @@ -16,6 +16,7 @@ from arrow.commands.annotations.get_gff3 import cli as get_gff3 from arrow.commands.annotations.get_search_tools import cli as get_search_tools from arrow.commands.annotations.get_sequence_alterations import cli as get_sequence_alterations +from arrow.commands.annotations.load_gff3 import cli as load_gff3 from arrow.commands.annotations.merge_exons import cli as merge_exons from arrow.commands.annotations.set_boundaries import cli as set_boundaries from arrow.commands.annotations.set_description import cli as set_description @@ -53,6 +54,7 @@ def cli(): cli.add_command(get_gff3) cli.add_command(get_search_tools) cli.add_command(get_sequence_alterations) +cli.add_command(load_gff3) cli.add_command(merge_exons) cli.add_command(set_boundaries) cli.add_command(set_description) diff --git a/docs/commands/annotations.rst b/docs/commands/annotations.rst index dfb4079e..c5754958 100644 --- a/docs/commands/annotations.rst +++ b/docs/commands/annotations.rst @@ -451,6 +451,30 @@ Get the search tools available -h, --help Show this message and exit. +``load_gff3`` command +--------------------- + +**Usage**:: + + arrow annotations load_gff3 [OPTIONS] ORGANISM GFF3 + +**Help** + +Load a full GFF3 into annotation track + + +**Output** + + + Loading report + +**Options**:: + + + --source TEXT URL where the input dataset can be found. + -h, --help Show this message and exit. + + ``merge_exons`` command ----------------------- From 0e0c77ca8d735ce131b1676a3f97e58114e380b1 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:34:48 +0200 Subject: [PATCH 06/50] update deps --- requirements.txt | 5 +++++ setup.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 1b4546a2..30ead024 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,8 @@ requests biopython cachetools +click>=6.7 +wrapt +pyyaml +decorator +bcbio-gff diff --git a/setup.py b/setup.py index f4fa281f..0b32b828 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ [console_scripts] arrow=arrow.cli:arrow ''', - install_requires=['requests', 'biopython', 'cachetools', 'click>=6.7', 'wrapt', 'pyyaml', 'decorator'], + install_requires=['requests', 'biopython', 'cachetools', 'click>=6.7', 'wrapt', 'pyyaml', 'decorator', 'bcbio-gff'], license="MIT", classifiers=[ "Development Status :: 4 - Beta", From e5cf5960b1295059ee241c279f2041f21f981797 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:35:16 +0200 Subject: [PATCH 07/50] fix doc + polish --- apollo/organisms/__init__.py | 7 +++++-- arrow/commands/organisms/add_organism.py | 2 +- docs/commands/organisms.rst | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apollo/organisms/__init__.py b/apollo/organisms/__init__.py index e36f8d51..49b0c00f 100644 --- a/apollo/organisms/__init__.py +++ b/apollo/organisms/__init__.py @@ -30,7 +30,7 @@ def add_organism(self, common_name, directory, blatdb=None, genus=None, :param species: Species :type public: bool - :param public: User's email + :param public: Should the organism be public or not :type metadata: str :param metadata: JSON formatted arbitrary metadata @@ -102,7 +102,8 @@ def update_organism(self, organism_id, common_name, directory, blatdb=None, spec if species is not None: data['species'] = species - response = self.post('updateOrganismInfo', data) + response = self.post('updateOrganismInfo', data)[0] + if len(response.keys()) == 0: return self.show_organism(organism_id) return response @@ -131,6 +132,8 @@ def show_organism(self, common_name): :return: a dictionary containing the organism's information """ orgs = self.get_organisms(common_name=common_name) + if isinstance(orgs, list) and len(orgs) > 0: + orgs = orgs[0] return orgs def delete_organism(self, organism_id): diff --git a/arrow/commands/organisms/add_organism.py b/arrow/commands/organisms/add_organism.py index 85803647..46df55be 100644 --- a/arrow/commands/organisms/add_organism.py +++ b/arrow/commands/organisms/add_organism.py @@ -23,7 +23,7 @@ ) @click.option( "--public", - help="User's email", + help="Should the organism be public or not", is_flag=True ) @click.option( diff --git a/docs/commands/organisms.rst b/docs/commands/organisms.rst index c7c8ec16..bd99271a 100644 --- a/docs/commands/organisms.rst +++ b/docs/commands/organisms.rst @@ -28,7 +28,7 @@ Add an organism --blatdb TEXT Server-side path to 2bit index of the genome for Blat --genus TEXT Genus --species TEXT Species - --public User's email + --public Should the organism be public or not --metadata TEXT JSON formatted arbitrary metadata -h, --help Show this message and exit. From 55aad3d892f6536d1f1c5d6a553aaed95bfed6ee Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:35:37 +0200 Subject: [PATCH 08/50] add method to get a group by name --- apollo/groups/__init__.py | 8 ++++++-- arrow/commands/groups/get_groups.py | 8 ++++++-- docs/commands/groups.rst | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/apollo/groups/__init__.py b/apollo/groups/__init__.py index 336f80a4..5a922111 100644 --- a/apollo/groups/__init__.py +++ b/apollo/groups/__init__.py @@ -60,14 +60,18 @@ def show_group(self, group_id): else: return _fix_group(res) - def get_groups(self): + def get_groups(self, name=None): """ Get all the groups :rtype: list of dicts :return: list of a dictionaries containing group information """ - res = self.post('loadGroups', {}) + payload = {} + if name: + payload['name'] = name + + res = self.post('loadGroups', payload) return [_fix_group(group) for group in res] def update_group(self, group_id, new_name): diff --git a/arrow/commands/groups/get_groups.py b/arrow/commands/groups/get_groups.py index 107d60d3..29a453a1 100644 --- a/arrow/commands/groups/get_groups.py +++ b/arrow/commands/groups/get_groups.py @@ -4,14 +4,18 @@ @click.command('get_groups') +@click.option( + "--name", + help="" +) @pass_context @custom_exception @list_output -def cli(ctx): +def cli(ctx, name=""): """Get all the groups Output: list of a dictionaries containing group information """ - return ctx.gi.groups.get_groups() + return ctx.gi.groups.get_groups(name=name) diff --git a/docs/commands/groups.rst b/docs/commands/groups.rst index 44ac0549..3c231351 100644 --- a/docs/commands/groups.rst +++ b/docs/commands/groups.rst @@ -117,7 +117,8 @@ Get all the groups **Options**:: - -h, --help Show this message and exit. + --name TEXT + -h, --help Show this message and exit. ``get_organism_permissions`` command From 32a12739671eec09d13e0dcb44f98bd5ee508d60 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Fri, 25 Oct 2019 17:35:56 +0200 Subject: [PATCH 09/50] sync with gga code --- apollo/__init__.py | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/apollo/__init__.py b/apollo/__init__.py index a4b143b5..17d738c1 100755 --- a/apollo/__init__.py +++ b/apollo/__init__.py @@ -1,14 +1,13 @@ -import os import logging - -from cachetools import TTLCache -from apollo.util import AssertUser -from apollo.exceptions import UnknownUserException +import os from apollo import (annotations, cannedcomments, cannedkeys, cannedvalues, groups, io, metrics, organisms, - status, users, remote) + remote, status, users) +from apollo.exceptions import UnknownUserException +from apollo.util import AssertUser +from cachetools import TTLCache cache = TTLCache( 100, # Up to 100 items @@ -57,31 +56,39 @@ def require_user(wa, email): # If we hit a key error above, indicating that # we couldn't find the key, we'll simply re-request # the data - data = wa.users.loadUsers() + data = wa.users.get_users() userCache[cache_key] = data return AssertUser([x for x in data if x.username == email]) -def accessible_organisms(user, orgs): +def accessible_organisms(user, orgs, permission=None): """Get the list of organisms accessible to a user, filtered by `orgs`""" permission_map = { x['organism']: x['permissions'] for x in user.organismPermissions - if 'WRITE' in x['permissions'] or + if (permission is not None and permission in x['permissions']) or + (permission is None and ('WRITE' in x['permissions'] or 'READ' in x['permissions'] or - 'ADMINISTRATE' in x['permissions'] or + 'ADMINISTRATE' in x['permissions'])) or user.role == 'ADMIN' } if 'error' in orgs: + if orgs['error'] == "Not authorized for any organisms": + return [] raise Exception("Error received from Apollo server: \"%s\"" % orgs['error']) - return [ - (org['commonName'], org['id'], False) - for org in sorted(orgs, key=lambda x: x['commonName']) - if org['commonName'] in permission_map - ] + if len(orgs) > 0 and isinstance(orgs[0], dict): + # Received complete org json + return [ + org + for org in sorted(orgs, key=lambda x: x['commonName']) + if org['commonName'] in permission_map + ] + else: + # Received only a list of commonnames + return [org for org in sorted(orgs) if org in permission_map] def galaxy_list_groups(trans, *args, **kwargs): From c066584119ecf05103f15ef67e8e6d3bda36f8ab Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 12:08:57 +0100 Subject: [PATCH 10/50] remove old todo --- apollo/annotations/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apollo/annotations/__init__.py b/apollo/annotations/__init__.py index ba394ebd..936b4796 100644 --- a/apollo/annotations/__init__.py +++ b/apollo/annotations/__init__.py @@ -91,7 +91,7 @@ def set_name(self, feature_id, name, organism=None, sequence=None): :rtype: dict :return: A standard apollo feature dictionary ({"features": [{...}]}) """ - # TODO + data = { 'features': [ { From 4ed356c109351f686215cd3b1dd7687ace73e696 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 12:22:21 +0100 Subject: [PATCH 11/50] flake8 --- apollo/__init__.py | 10 +++++----- setup.cfg | 13 +++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 setup.cfg diff --git a/apollo/__init__.py b/apollo/__init__.py index 17d738c1..b3b20100 100755 --- a/apollo/__init__.py +++ b/apollo/__init__.py @@ -67,11 +67,11 @@ def accessible_organisms(user, orgs, permission=None): permission_map = { x['organism']: x['permissions'] for x in user.organismPermissions - if (permission is not None and permission in x['permissions']) or - (permission is None and ('WRITE' in x['permissions'] or - 'READ' in x['permissions'] or - 'ADMINISTRATE' in x['permissions'])) or - user.role == 'ADMIN' + if (permission is not None and permission in x['permissions']) + or (permission is None and ('WRITE' in x['permissions'] + or 'READ' in x['permissions'] + or 'ADMINISTRATE' in x['permissions'])) + or user.role == 'ADMIN' } if 'error' in orgs: diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..9aefc892 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,13 @@ +[wheel] +universal = 1 + +[metadata] +description-file = README.rst + +[nosetests] +verbosity=1 +with-doctest=1 +detailed-errors=1 + +[flake8] +ignore = E501,W503 From b4b4a851fada213230a7bae8bf11d200af65447f Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 12:25:14 +0100 Subject: [PATCH 12/50] flake8 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0a1bc501..1e3f480c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ python: script: - pip install -U pip setuptools - pip install -U flake8 -- flake8 apollo --ignore=E501,W504 --exclude=arrow/commands/,scripts/ +- flake8 apollo --ignore=E501,W503 --exclude=arrow/commands/,scripts/ - python setup.py install deploy: provider: pypi From 685ec0a395a743515a97c7b3093ba830551f66ac Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 14:43:34 +0100 Subject: [PATCH 13/50] doc --- README.rst | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 003966b4..c96c8abd 100644 --- a/README.rst +++ b/README.rst @@ -11,9 +11,18 @@ Apollo API Library Apollo is a Python library for interacting with `Apollo `__ +Installation +------------ + +.. code-block:: shell + + pip install apollo + Examples -------- +Example code to create a new organism and add yourself in the permission list: + .. code:: python from apollo import ApolloInstance @@ -39,7 +48,15 @@ Examples read=True, ) -Or with the new Arrow client: +If you have already created an Arrow config file (with command `arrow init`), +you can also get an ApolloInstance without writing credentials explicitely: + +.. code:: python + + from arrow.apollo import get_apollo_instance + wa = get_apollo_instance() + +Or with the Arrow client: .. code-block:: shell From c70b459742feb833ddc5ae4ef82972ac3bf73e76 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 14:43:41 +0100 Subject: [PATCH 14/50] fix error --- apollo/util.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apollo/util.py b/apollo/util.py index a9093fee..f59901f8 100644 --- a/apollo/util.py +++ b/apollo/util.py @@ -42,7 +42,11 @@ def GuessOrg(args, wa): else: raise Exception("Organism Common Name not provided") elif args.org_id: - return [wa.organisms.findOrganismById(args.org_id).get('commonName', None)] + all_orgs = wa.organisms.get_organisms() + if 'error' in all_orgs: + raise Exception("Error while getting the list of organisms: %s" % all_orgs) + orgs = [org['commonName'] for org in all_orgs if str(args.org_id) == str(org['id'])] + return orgs else: raise Exception("Organism Common Name not provided") From 0f9e11499cc0f03805628fb53401f4ded00bec02 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 16:48:05 +0100 Subject: [PATCH 15/50] add minimal testing --- .gitignore | 2 + .travis.yml | 50 +- README.rst | 3 +- arrow/__init__.py | 2 +- bootstrap_apollo.sh | 54 + setup.py | 7 +- test-data/arrow.yml | 5 + test-data/dataset_1.dat | 44 + test-data/dataset_1_files/data/.htaccess | 10 + .../dataset_1_files/data/names/02b/9.json | 1 + .../dataset_1_files/data/names/0e9/3.json | 1 + .../dataset_1_files/data/names/83f/8.json | 1 + .../dataset_1_files/data/names/92c/2.json | 1 + .../dataset_1_files/data/names/cf0/e.json | 1 + .../dataset_1_files/data/names/f26/8.json | 1 + .../dataset_1_files/data/names/meta.json | 1 + .../4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz | Bin 0 -> 13595 bytes ...d49b280a72a29f1b922ae1a9664c8_0.gff.gz.tbi | Bin 0 -> 150 bytes .../dataset_1_files/data/seq/genome.fasta | 2881 +++++++++++++++++ .../dataset_1_files/data/seq/genome.fasta.fai | 1 + .../dataset_1_files/data/seq/refSeqs.json | 1 + test-data/dataset_1_files/data/trackList.json | 170 + test-data/dataset_1_files/data/tracks.conf | 0 test-data/dataset_1_files/galaxy.xml | 106 + test-data/dataset_1_files/jbrowse.conf | 110 + test-data/dataset_1_files/jbrowse_conf.json | 9 + test-data/merlin.gff | 28 + test/__init__.py | 12 + test/organism_test.py | 10 + 29 files changed, 3492 insertions(+), 20 deletions(-) create mode 100755 bootstrap_apollo.sh create mode 100644 test-data/arrow.yml create mode 100644 test-data/dataset_1.dat create mode 100644 test-data/dataset_1_files/data/.htaccess create mode 100644 test-data/dataset_1_files/data/names/02b/9.json create mode 100644 test-data/dataset_1_files/data/names/0e9/3.json create mode 100644 test-data/dataset_1_files/data/names/83f/8.json create mode 100644 test-data/dataset_1_files/data/names/92c/2.json create mode 100644 test-data/dataset_1_files/data/names/cf0/e.json create mode 100644 test-data/dataset_1_files/data/names/f26/8.json create mode 100644 test-data/dataset_1_files/data/names/meta.json create mode 100644 test-data/dataset_1_files/data/raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz create mode 100644 test-data/dataset_1_files/data/raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz.tbi create mode 100644 test-data/dataset_1_files/data/seq/genome.fasta create mode 100644 test-data/dataset_1_files/data/seq/genome.fasta.fai create mode 100644 test-data/dataset_1_files/data/seq/refSeqs.json create mode 100644 test-data/dataset_1_files/data/trackList.json create mode 100644 test-data/dataset_1_files/data/tracks.conf create mode 100644 test-data/dataset_1_files/galaxy.xml create mode 100644 test-data/dataset_1_files/jbrowse.conf create mode 100644 test-data/dataset_1_files/jbrowse_conf.json create mode 100644 test-data/merlin.gff create mode 100644 test/__init__.py create mode 100644 test/organism_test.py diff --git a/.gitignore b/.gitignore index 04f3d18c..81bd444a 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,5 @@ docs/_build # test harness test_harness.py + +apollo_shared_dir diff --git a/.travis.yml b/.travis.yml index 1e3f480c..42fabc14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,39 @@ language: python +os: linux + python: -- '2.7' -- '3.5' -script: -- pip install -U pip setuptools -- pip install -U flake8 -- flake8 apollo --ignore=E501,W503 --exclude=arrow/commands/,scripts/ -- python setup.py install -deploy: - provider: pypi - user: erasche - password: - secure: odHEB/SR+BddRI0qFJU3d57w0J3OjIHLLmoxv5rH46/R6WDBJ1Dqp85rbIEfjTsLEG6bd04kdNSUh/kFB1O8TAOjthixHYNij5qgAfIXYpCTCfoFd/+sqtLl2UddlkO/d895+QV3nEDWSSZuAbys3kBvzVBqlcZ1fpcBr7dyynUJ2hzjD/rq2F475ClKNAA6ICarYZErSu6RHprLieQpUYWKfielXjhMBtWwrJcrwYsdi2bIhdirGpddB5Qi8MZ8BtSpDojpSWBu5O59LLpJhO9JLktO/TfdOSRzZwCAthqbxGvGgpp9x4D5IpTL19uiY5D2jF13nvhYs5Vf2i75FoAGplJ9snOkYE52JJ3/XtqOv22no9P7wSIUJkA/P3DabzqfxlcTdjLtS2v53YehNHL/1ZtrI95y3d37aw9UUKv9KZzz3ostGoAoCIV9YMzK9NrOPeBRRYFzqsrZcOy2yugAawuH/78w9dproeoO/9gFakoLzbObq1gLX10cdnHW4K1qLBE+tasTrXjE5OCa+svBhIMgvk8c+vX/ISvci/pvc1St+prek40vxZi7dIfoqK+iyoACn9RsrdwjSm4Woe058L99wd0FnLaMiLrQNe3h/AHZDQJ5EXGXI0l5egAlJHX/CfxcFekEZS66merlvFUtqsuetd+XIWmAroZq9g0= - on: - tags: true - distributions: sdist bdist_wheel - repo: galaxy-genome-annotation/python-apollo + - '2.7' + - '3.6' + +jobs: + include: + - stage: lint + install: + - pip install -U pip setuptools + - pip install -U flake8 + script: + - flake8 apollo --ignore=E501,W503 --exclude=arrow/commands/,scripts/ + + - stage: test + install: + - pip install -U pip nose + script: + - python setup.py install + - export ARROW_GLOBAL_CONFIG_PATH=`pwd`/test-data/arrow.yml + - ./bootstrap_apollo.sh + - python setup.py nosetests + + - stage: deploy + deploy: + provider: pypi + username: erasche + password: + secure: odHEB/SR+BddRI0qFJU3d57w0J3OjIHLLmoxv5rH46/R6WDBJ1Dqp85rbIEfjTsLEG6bd04kdNSUh/kFB1O8TAOjthixHYNij5qgAfIXYpCTCfoFd/+sqtLl2UddlkO/d895+QV3nEDWSSZuAbys3kBvzVBqlcZ1fpcBr7dyynUJ2hzjD/rq2F475ClKNAA6ICarYZErSu6RHprLieQpUYWKfielXjhMBtWwrJcrwYsdi2bIhdirGpddB5Qi8MZ8BtSpDojpSWBu5O59LLpJhO9JLktO/TfdOSRzZwCAthqbxGvGgpp9x4D5IpTL19uiY5D2jF13nvhYs5Vf2i75FoAGplJ9snOkYE52JJ3/XtqOv22no9P7wSIUJkA/P3DabzqfxlcTdjLtS2v53YehNHL/1ZtrI95y3d37aw9UUKv9KZzz3ostGoAoCIV9YMzK9NrOPeBRRYFzqsrZcOy2yugAawuH/78w9dproeoO/9gFakoLzbObq1gLX10cdnHW4K1qLBE+tasTrXjE5OCa+svBhIMgvk8c+vX/ISvci/pvc1St+prek40vxZi7dIfoqK+iyoACn9RsrdwjSm4Woe058L99wd0FnLaMiLrQNe3h/AHZDQJ5EXGXI0l5egAlJHX/CfxcFekEZS66merlvFUtqsuetd+XIWmAroZq9g0= + on: + tags: true + distributions: "sdist bdist_wheel" + repo: galaxy-genome-annotation/python-apollo + notifications: webhooks: urls: diff --git a/README.rst b/README.rst index c96c8abd..31783527 100644 --- a/README.rst +++ b/README.rst @@ -81,9 +81,10 @@ Or with the Arrow client: History ------- -- 3.2 +- 4.0 - Added support for remote creation/update/deletion of organisms/tracks - Added support for adding GFF3 in the annotation track + - Added tests - 3.1 - Added user activate/inactivate - Added get_creator for user, group and organisms diff --git a/arrow/__init__.py b/arrow/__init__.py index 27d4bb66..a93f0518 100644 --- a/arrow/__init__.py +++ b/arrow/__init__.py @@ -1 +1 @@ -__version__ = '3.1' +__version__ = '4.0' diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh new file mode 100755 index 00000000..71644536 --- /dev/null +++ b/bootstrap_apollo.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir +mkdir -p "$GALAXY_SHARED_DIR" + +docker run -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:2.4.1 + +echo "[BOOTSTRAP] Waiting while Apollo starts up..." +# Wait for apollo to be online +for ((i=0;i<30;i++)) +do + APOLLO_UP=$(arrow users get_users 2> /dev/null | head -1 | grep '^\[$' -q; echo "$?") + if [[ $APOLLO_UP -eq 0 ]]; then + break + fi + sleep 10 +done + +if ! [[ $APOLLO_UP -eq 0 ]]; then + echo "Cannot connect to apollo for bootstrapping" + arrow users get_users + exit "${APOLLO_UP}" +fi + +echo "[BOOTSTRAP] Apollo is up, bootstrapping for tests" + +# Create some groups +arrow groups create_group one_group +arrow groups create_group another_group + +# Create a user +arrow users create_user "test@bx.psu.edu" Junior Galaxy password + +# Add some organisms +cp -r test-data/dataset_1_files/data/ "${GALAXY_SHARED_DIR}/org1" +cp -r test-data/dataset_1_files/data/ "${GALAXY_SHARED_DIR}/org2" +cp -r test-data/dataset_1_files/data/ "${GALAXY_SHARED_DIR}/org3" +cp -r test-data/dataset_1_files/data/ "${GALAXY_SHARED_DIR}/org4" +arrow organisms add_organism --genus Testus --species organus test_organism $GALAXY_SHARED_DIR/org1 +arrow organisms add_organism --genus Foo --species barus alt_org $GALAXY_SHARED_DIR/org2 +arrow organisms add_organism --genus Foo3 --species barus org3 $GALAXY_SHARED_DIR/org3 +arrow organisms add_organism --genus Foo4 --species barus org4 $GALAXY_SHARED_DIR/org4 + +# Give access to organisms for test user +arrow users update_organism_permissions --write --read --export "test@bx.psu.edu" test_organism +arrow users update_organism_permissions --write --read --export "test@bx.psu.edu" alt_org +arrow users update_organism_permissions --write --read --export "test@bx.psu.edu" org3 +arrow users update_organism_permissions --write --read --export "test@bx.psu.edu" org4 + +# Load some annotations +arrow annotations load_gff3 test_organism test-data/merlin.gff +arrow annotations load_gff3 alt_org test-data/merlin.gff +arrow annotations load_gff3 org3 test-data/merlin.gff +arrow annotations load_gff3 org4 test-data/merlin.gff diff --git a/setup.py b/setup.py index 0b32b828..f0909de9 100644 --- a/setup.py +++ b/setup.py @@ -7,13 +7,16 @@ except ImportError: from distutils.core import setup +with open('requirements.txt') as f: + requires = f.read().splitlines() + readme = open('README.rst').read() subpackages = [x.replace('/', '.') for x in glob.glob('arrow/commands/*') if not x.endswith('.py') and not x.endswith('.pyc')] + \ [x.replace('/', '.') for x in glob.glob('apollo/*') if not x.endswith('.py') and not x.endswith('.pyc')] + ['arrow.commands'] setup( name="apollo", - version='3.1', + version='4.0', description="Apollo API library", long_description=readme, author="Helena Rasche;Anthony Bretaudeau", @@ -24,7 +27,7 @@ [console_scripts] arrow=arrow.cli:arrow ''', - install_requires=['requests', 'biopython', 'cachetools', 'click>=6.7', 'wrapt', 'pyyaml', 'decorator', 'bcbio-gff'], + install_requires=requires, license="MIT", classifiers=[ "Development Status :: 4 - Beta", diff --git a/test-data/arrow.yml b/test-data/arrow.yml new file mode 100644 index 00000000..50f0d298 --- /dev/null +++ b/test-data/arrow.yml @@ -0,0 +1,5 @@ +__default: local +local: + url: "http://localhost:8888" + username: "admin@local.host" + password: "password" diff --git a/test-data/dataset_1.dat b/test-data/dataset_1.dat new file mode 100644 index 00000000..28cd86b1 --- /dev/null +++ b/test-data/dataset_1.dat @@ -0,0 +1,44 @@ + + + + + JBrowse + + + + + + + + + + + + + + + +
+
+

Loading...

+
+
+
JBrowseDefaultMainPage
+ + diff --git a/test-data/dataset_1_files/data/.htaccess b/test-data/dataset_1_files/data/.htaccess new file mode 100644 index 00000000..19e183ca --- /dev/null +++ b/test-data/dataset_1_files/data/.htaccess @@ -0,0 +1,10 @@ +# This Apache .htaccess file is generated by JBrowse (GenomeDB) for +# allowing cross-origin requests as defined by the Cross-Origin +# Resource Sharing working draft from the W3C +# (http://www.w3.org/TR/cors/). In order for Apache to pay attention +# to this, it must have mod_headers enabled, and its AllowOverride +# configuration directive must allow FileInfo overrides. + + Header onsuccess set Access-Control-Allow-Origin * + Header onsuccess set Access-Control-Allow-Headers X-Requested-With,Range + diff --git a/test-data/dataset_1_files/data/names/02b/9.json b/test-data/dataset_1_files/data/names/02b/9.json new file mode 100644 index 00000000..44bed4af --- /dev/null +++ b/test-data/dataset_1_files/data/names/02b/9.json @@ -0,0 +1 @@ +{"merli":{"exact":[],"prefix":["Merlin"]}} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/names/0e9/3.json b/test-data/dataset_1_files/data/names/0e9/3.json new file mode 100644 index 00000000..2e0493bd --- /dev/null +++ b/test-data/dataset_1_files/data/names/0e9/3.json @@ -0,0 +1 @@ +{"mer":{"prefix":["Merlin"],"exact":[]}} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/names/83f/8.json b/test-data/dataset_1_files/data/names/83f/8.json new file mode 100644 index 00000000..4c472f5d --- /dev/null +++ b/test-data/dataset_1_files/data/names/83f/8.json @@ -0,0 +1 @@ +{"merlin":{"prefix":[],"exact":[["Merlin",null,"Merlin",null,0,172788,null]]}} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/names/92c/2.json b/test-data/dataset_1_files/data/names/92c/2.json new file mode 100644 index 00000000..8bd20cd8 --- /dev/null +++ b/test-data/dataset_1_files/data/names/92c/2.json @@ -0,0 +1 @@ +{"me":{"prefix":["Merlin"],"exact":[]}} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/names/cf0/e.json b/test-data/dataset_1_files/data/names/cf0/e.json new file mode 100644 index 00000000..d6cc3dfc --- /dev/null +++ b/test-data/dataset_1_files/data/names/cf0/e.json @@ -0,0 +1 @@ +{"merl":{"prefix":["Merlin"],"exact":[]}} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/names/f26/8.json b/test-data/dataset_1_files/data/names/f26/8.json new file mode 100644 index 00000000..60ecc82c --- /dev/null +++ b/test-data/dataset_1_files/data/names/f26/8.json @@ -0,0 +1 @@ +{"m":{"exact":[],"prefix":["Merlin"]}} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/names/meta.json b/test-data/dataset_1_files/data/names/meta.json new file mode 100644 index 00000000..7879d4db --- /dev/null +++ b/test-data/dataset_1_files/data/names/meta.json @@ -0,0 +1 @@ +{"compress":0,"track_names":[],"format":"json","lowercase_keys":1,"hash_bits":16} \ No newline at end of file diff --git a/test-data/dataset_1_files/data/raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz b/test-data/dataset_1_files/data/raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz new file mode 100644 index 0000000000000000000000000000000000000000..e10a39bfe621931aafc7abe3f165abf15f03b0bc GIT binary patch literal 13595 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%0Dw+~qE>|vstYNoHW=;s@H0G{)KPsb!WhA6 z(PUmZ?fEBGL=7V%J#ostLqz>m{NX@(T#Wk_{WurzhI^OpafD`Lu}r2M0nP^i{|GU_ z6(C4cu(zffcC$IdhK+~HDNRk=DZ1l8H?Z~@!2b$^*dhan)dpl%cZ-}1KTz1~4}i*!;H);#k6-G>0h0wpOfG`j4iK_S;`E!Y% zw=I-6Do}%H{;LP*|GusW60b0TEJ9^S>biCWdW&1-gBnl}V`~VtOO?{DtQhz8c=o&R zqLqqf+0`t?4}LP(LH*B%H5*sbW>x4IKR(`aN&+jJf9uOWvirV|!RC1CyNXx*D2~An z0RXASo`I#%K)+B1YAlQM+_xH3iCg;P$qAh`&3{cPoZmkcdBJ=`=r9gxMQ>2OTls^1 zmZhb3*7HwO5j2QZVM3Vx4~VDei9vOg%pa5H-}_#2iST6}xI{`2EC4)}u5y!!@(ZZS z4DP6ySpm$+yk?aj%IJcmZbY{TnbY~OLNcgTDWERoCIs`mWj`;$SUUk%tjcRG#LL=J z2;kWb#UeAE6zRYQ2IJYJbqLob`Twywwai(AielwOx1$ zpwPEkm7$#Xd9d&?<+Nk7T(Vu+6lUog0XP3Avj}dF8vDC!4bOfO+PNZaxb;bZ zqCt7U0Z=QkU$XM|#Nb@++}Utq;?(`gXWw2_p~+3i|C~y0Lc)L4g1N{2x?;gn#fSG6 zBZREaN)(+O{GX(smJZv>vb_l0a}=Ny7B~QVsyYKg>X`}?4H2a9){@^|Q&o|z^|#GA zFZYqUxFUUUQ4MvR9)y-pFM0WNKhEf8ZCwZ;&3h#GDG(3e`#)6MTjfJSl}`~Wee3ii zKA|i4N*{y%q03_Kyk}#*gCGSeh=FeK{}=Vjs=(u-7fso?;S$w{!jJ=(pi)SI^vjC$ zAqCQ>_zIEt_zIj1r`Z1T`dtODpFbH48fR1~yW)G3K15Z03RQD&UHRf_nl(wNpbF)G zus4-_8ram}Qu(hyZWhT;;#k2)V_iOLdDG4sbS4n_bM38ip_+0jHR(-KON)6gN9QSH z&^lT9+bjkV|C+O<`++HDYMxgyCVp#K7A;$a;`z7F``?;WMZ~5X2%e}$wAJkX70&z1 zQUC{andT84s3ayV+%~3UuADXX+L&}rWTfSE<4nO_FN#fg$Y=toD&#%@Rn23zz51we z&a0-DL8a;SnR?h|j_ z+eAP;X_KFcdENGuBN^qxs9u<^9GpyehO;ssKf7LN89%TqE74Bv&p@%X zQ$CDY6>7(cC6EbaR=aiI=xAmemL;2dmdR42?g0F>=^E^$SSZ@<~ta?Wv+lD?z|v%Deg_6758@QvpwL2 z*LD#*V*Aw_m=*W>JvQyLnTHR=d;gl;e=zmU!O5}K)DB;kE1xDGwwE$jiRC8owE2W& zVU|w00X^`ws*lE0A7k(i4^AWHJ=>64(Hx;2kRcj;q|uQja^iemXJPFks%@q${>^02H{IKh)9NGRNvFVy_C&4J9=>UY!qw7L{{v3ULLMWm=0HR4!eG zZSuD5Ypk2fp+=iAnk%P}npWk|Xj5AXzRQFS)cG9RD$P2z%a2sxkJyWutE7+cZYk!Q z6yAK(>~Nt)R|3x;>}|jIwfpk?P^8w5KyATA!gCvLl1L9CftwU|U$I38FBvqV`#Rea zW6MCQNgGC0Ekz)o)D91z9=TSq7+VpRR2XfX2_l_)r!*@Iq3QcNTgVdH2T>UV9fP@d zs|n%N^IJPs-L^r+^(^9P&BaR+n>w)8IvvbY09S$DLdE6!8xoGSSrN~=NW8A!(|TfM zHVr0c5a%~lcEvG_EA%Asd@X$Djk`x1>!Q=EY`A3bCTUm{llNPr5wizwSe>!pR61fm z53wIeo4Te8HDA-~LaNq=c=g1wiuU%JdCY*tu=~G7&O1zHZ~6F|5(o5AdTlA1rclPA zex4yHV;?2slMA0idG%Xa&N;LjXy@0tR5}$~GExn^YV%Ojw zI$lg$u6xq-!Mr`8(HkYT0YJn_eZ*NE-l~I_RWF6cl$;rhy5sywPR^;^ByD&FJKrso zm(2&11AKh2|2|MoudV@zCB8d&R<@#as*@G%*lLT1S4~GpwmX3~rQ@2UT+uR{H({*` z2ng)a-nu&!4dXwJ(~V_A~jJWV|3cRhqW zB=*gF(2$Oh3dutXK<(Q(vsc?p6@{7)FL{lWj_*aur!k}URo6|Aqs%9Pfu2JCZ6yuW zAJtNqwf}G_qGyz^BFBPCGvA?MFIFBxDo7_3KoZOnx0?>w0<_VS#tN!7KGoKvdkd&h z_E-3=z7fLnrr4b~bCtRgaQkeOM+p33b^!nsptAlYd+ynmi>!_^V(0rV?*HH|>yNyJ z&Tz(CslnTH@WN`Y&<$c+6!@g(GGLmQk>++*>lh0xGMOaO>-RGm8HoVkPk^H!_+z6J ze>k7$ySeC5?}GMT6nwgqhJ0sP$)`~(Er@hl zWYVR!C`jlX3K~dTdBt^;fYc>U`$Uq(?Dht)Gd{>8#Cy63tcjkaVr`-B$mij@l{e@o z5&lY<(_KN5{B_M*Tj=X)zrMcS|2~@6d5+zk)PqDV^as|L0W`@1F+j)$v>ya&HwCCa zvkgD!Y!t=KnI?E{1lO0bW&Uemd)rH{*sPxgmpxvDrXfZ0tAyG)*#_LFf&D}T4mz+Y zb3{5Q{7eKX;hfz0&PgOZ`f3NaL32Yjv7eI&Q3_t#28WmrqcA_UN=Z-J5bdBqY^o}* z%1RT_nW7M2@OJ_X704Yf4rO4}z58q^d!%nf$L`mD;{0tt&A08^!>^=#(K4x*fYapC zVYdMyLu)7hcR3*xELh~ihLi4gmbHDXfn)uU;gn@&{7*HLRli+UCtQe;R>575&Cz*F z?HNUDH?IuIM4%J^sp70F5Tr25%%pGGv8;6cnRRV#okbZsF4+I9sM79#tSCSS#=hUi zCC~4B5Gx*7>bBLk7Fel6P{|xD%7hkACVBCwS`XQCODu2IMrCfek%(TdsN#BNIG`xN z0rW8`6dxlWTpO8nc<3~&oKdtjwyeB5<7zNKKXZj3Ye!~akJw_8$dEdMj6UaP#vO3t z$NGs2`VDNI^d_wq4~)TJFEOmPNif7!fnQvW&H26)H_-DCtLFguiZ^k#W-tHzIUv2=Oq?<^s}SONYg{+I+k3YOwg2zS(5U6|;_?tjzL zGRW35$Wq{XpU4t|gkn>FOr}DysgR!`+|f)~#a^3jIU^}1c@ubUjePi)toh4Jo&L>r z%|F-we)C>X-OxhSP4j_;F!}ctpX&JG>|!|=#d5MdI^aS%;0l;ZJvAUyeWkMxBgYwN zOB~4E`ihK9nwMW)m3<2ygj1cDWOYDoKSoTI90-(M-0HJl>%w_I=|O*ZXMnAa;ME_9 zZ2yXLB3S7G(n1i{gQSI+ob#ti*7+}jhV3td+$|l^AyP;MD?JEWIh#c}5VUe2XdyN9 z-dt2;)LRdjZ#bfB|86OZalI(V=NzEedPqY(u(7IoP-ANaiw#Bs8Ck-r6*_fco&B|h zneHs|#0qkN(SbPpHL;7qW)}8u12>lTjLcpRT+yi-TYpa^>$O=aaJUJZ8Ku0a;J6&a zupBvTTfT_yQh4hXu3Xa*nFoxy5WMtCgY+PH>5}1v$O*w05F>lOu03H)tLyb9?db{H z=YUpGdVu%p0B992>p@mA?G7G2EA{m5h#eKOWBgA^IZt0xXMEu;bU@M*3$nP*P{dW$ z+M?=`QBu|YK1S1YvCdm|BZ}7v6d^8Mf+$-@ah1T_)E(b>c?32%Nmf2VmBU7IYfofb_%y+HyV z*#)nL9G{w9E`ISB*A5Thu9UqbOm&n&clDOyuG#?6OdMG+a@C?46tw(G^E_f$vBO_# zgCBf>$TcN;g=JxM66c{uoqVwO0?w$|v(iVt^rySrk!BR(f}{YjHa)hvL%dbNwP}?W z1!)WuUNS4Yy=^(u!CYaZkteOCj&oFSXXJ+sMn~~aI6EO*5}a)ZdQ^4~I-yJEh z{1c;gJL~Cq%xR_OqO{2B&d#DwKDU57>)IOXMgn(M)diW;2B4;WaE}p*I_`1TrEu%f zMVp$aG^C-fA|T;nIgAJ!I=9OruDf`fql7l+*S7lyvGFAOB#2__ zu7TelM3?Te9ZJb4&iFGLalPOOdy`)?<&KOB%CVNQgO)b`5SK1c~+u=s~R9};2Vns{Bm&<)?7z+4`(p$8ai*_8=KAxr|U6S z?I(wP7!~D;niIhXEAUeQX!U`Is5;pbN41Quvz~VA8Vb0tPF*x*amoGZnES71J6Vf; zaFoJQTIy~e1oZMuxcs40xz1u+Uea$i1r=5f9)QA-UB3#;u;#+8=!V(;!BS@&if%Aa z1pZn8un&N0#8x%OLaGrWInb534wPA_a-r7Gxs& zWQY}6z)~V6XMs`>hV0dO6Hc6Fe^9@X>2+T^tZe=>b1V%?G&#|u7XW&jNae?4mF>KFV-j%qvOkL z)K~4@HIo7i#~a?xX>4;QfE%n%CWIS8r|tpYfO*%Mt5yH~YcJO!D(L@)0{`{@0IxoL AH~;_u literal 0 HcmV?d00001 diff --git a/test-data/dataset_1_files/data/raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz.tbi b/test-data/dataset_1_files/data/raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz.tbi new file mode 100644 index 0000000000000000000000000000000000000000..e2ecc11e2337ca454252992a5d1f3b0b4305b358 GIT binary patch literal 150 zcmb2|=3rp}f&Xj_PR>jWl?>d4pHfm%8W;r5G96jtu!cu8nLX+Ll|^&T*s!T7Tozt+ zrh}2~-|PmD^`1Nll_ejIb$B!yq&KoKkYKmLU}Zsr5Tt(?f?S-h9fNg literal 0 HcmV?d00001 diff --git a/test-data/dataset_1_files/data/seq/genome.fasta b/test-data/dataset_1_files/data/seq/genome.fasta new file mode 100644 index 00000000..6bd02676 --- /dev/null +++ b/test-data/dataset_1_files/data/seq/genome.fasta @@ -0,0 +1,2881 @@ +>Merlin +TCGTTTAGACAAAGGTACATTATTGTATCGTGGCCAAAAATTAGACCTTCCTACATTCGA +GCATAACGCAGAGAATAAGTTGTTCTATTTCAGAAACTACGTTTCAACTTCATTAAAGCC +TCTGATCTTTGGTGAATTTGGTCGTATGTTTATGGCACTAGATGACGATACTACAATTTA +TACTGCTGAGACGCCTGATGATTATAATCGTTTCGCAAACCCAGAAGATATAATTGATAT +TGGCGCTACTCAAAAAGACTCATTTGACGATAACAATAATGATGGAACATCTATTAATAT +CGGCAAACAAGTTAATTTAGGATTCGTTATTTCCGGTGCTGAAAATGTTCGAGTTATTGT +TCCAGGTTCTTTAACTGAATATCCAGAAGAAGCGGAAGTTATTCTGCCTCGTGGTACTCT +TTTGAAGATCAATAAAATCACTACTCAAGTAGATAAACGCTCGAATAAGTTCATGGTTGA +AGGTTCAATCGTTCCGCCTTCTGAGCAAATTGATGAATCTGTTGAGATTTATGACGGTGA +TCTGTTCATGGAAACAGGTGAAGTAGTAAAACTGTCCGGATTCATGCAGTTCGTCAACGA +ATCTGCATACGATGAAGAGCAAAACCAGATGGCTGCTGAGATTCTGTCTGGATTCTTGGA +CATTGATGACATGCCACGTAAGTTCCGCTAGCCGTTTACATCCACATGGAAGTGGATTAT +AATGGCTCTACGTTAACAAGAGGAAAACAACATGAAATCAATTTTTCGTATCAACGGTGT +AGAAATTGTAGTTGAAGATGTAGTTCCTATGTCTTATGAATTCAATGAAGTTGTTTTCAA +AGAGCTTAAGAAAATTTTAGGCGATAAGAAGCTTCAAAGTACTCCAATTGGACGTTTTGG +AATGAAAGAAAACGTTGATACTTATATTGAAAGTGTAGTGACAGGGCAGTTAGAAGGTGA +ATTTTCTGTAGCAGTTCAAACTGTAGAAAATGATGAAGTTATTTTAACTTTACCAGCTTT +CGTAATTTTCCGCAAATAAAACAATGGGGAGCTATGCTCCCCATTTTTACAATCCAAGTA +TTTTCGAAGTAGAGTTTCGGGTCGAATTAATGACGTGAGACAACCCTCCAGCAGCTCCTC +CAAGTCTAGATAATCTACTTAAACTTCCATTAAGAGACATTTCACTATTAATTCCAGTTA +TAGAATTAACAGCTCTATCTTCAATCCAATCAAGAGCAGCTTGACGTCCAACAGCACCCG +TTTGCATTACTCTGTAAGCAAATGTAACATCGAAAACCGCAATTTGGTTATCTCCTTCAT +ATGTAAGCTCAGGAGCTCCACACGCAACAGGAACACAACCTGTGAACATTATCACAGTAT +GAGGTAATCCATTTCGAGCATGAAGGTTAACCTGAATGTCAGCTTCGACGTCAGTTGGTA +ATGCTCGCAATCCAGTAACCGGGTCTTGAACGGAGTTCACCCAATCTTGCATTGCACGAT +AGTTACTTGCTTCGGGATCCATTCTGAATGATATAGTTAACGGATCGAGTTCACGTCCAG +TTATTCTAATATTCGGTGAGTTATGGTTGAAATCCATTTCATGAGACAATCTGTTCTCTG +GAATTTTGACCGAATAAATCATCAATCCAGATTGCGGATAAGCCATGTTAAAGAAGTCTA +ACAAATAAGTTCCGACTTCAAATTCACCTAATAAAGACTGAACAACACGATTGCTCATTG +CTCCAATAAGATATTTCGATACACCAGACTTTCTTACCAGCTGTTGAGTACCGGCAGTGA +TAATTGAGGTGAGTCCTGATGTGAACTCACCTTGTGTTAATCCAAGCCAGTCATTATTCA +ACGGAAGGTTATTAAAGAGCATACCGCCAAATTGATCGAGTAATTGTTGAGACTTTGCTG +ACGGAGTAGTTGCAAATACACAACTAAACATATTAGTACGCTGAAAGTCTATATTACCCG +CTTGGTTTTTAAATTCATCTAAAGTTAGCATCAGAATCCTTCCGCATATACTGAAGCTCG +GTTCAATGTCAAGATTTCACGCATAGTAATTTCTAATGTGAATGTACTTGGCAGGTTTGG +AGCTATAGCTAAACCGTTAAAGTTTCCATTTGGAGTTTTATCAAAACGGATACTCTGAAT +TTGACATGGACCGAATACTTCAGCACGTCCATCGAATTTACTTGTGGTTCCAAAGTTTCT +GACGAACCACACAGTAGGGTTACTTACAACAATAACATTACTTAAGAATGAAGTTATTTT +CTCAAAAACAGTGTCATTTTTATTAGCTTCATCTGGAGTTAATGTATCAAGGAAAGTTGA +TTTATACCATTCATCTAATTGAGACTTAACTTCTTTTGCATAAGTAGACGTTCCCGTTTC +GCCATAACTATAGTAGTTAAAGTATTCATAGATCTCGATAATAGCAATAAGATCTTGTAC +TGATCGAGGAGTTAAATCCCACGTGAATACCTTCGTACGGTTATCTGCGCCGCCATACAT +TGATCGAGCAGTGTTATAGATCTGCTCGTTATGGTCAGCCATTAATCCTTGAGTCAATGA +CTCTAATCCGCCAAAGACAGCAGTAGATGCAACGTTACTTAATACCCCTGTAGCAGTACC +GCCGCCACGAGAAATAAGTGAATCTCCAACGTCATTAAATTTATGAGAAACTGATTCAAC +ATCTGATTTCGAGCGTGGAAGTAAAATATTCACTACTGGAATTTTATCAACTTTATTAGT +ATTTGTTCCAGTGATTGATTTCACTACACTATTTGCAGTACGTTTCATTTCACCTAAACG +CATGCTACGCATATCACCGGTTGTACGAGAATTCATATCATACGCAGTGAACAACAACCC +GTTCTTATAAAGATCATGAACTCGTAAAGAACCAGATGTGTCATTACCAGCTGAACGTTC +AGACGGATATTGCGCAGTTATAGTGGATTTTATTTTTGCTGATTGTGAACTTTGACCAGC +GGAGGTTTTAACTCCGCTAATTAAAGCATCAGTCTTATCATCTAATTCTCTGACTTTAAT +GCTCATTAATTAACTCCTGTTGCCCCGAATACTCCAGGAGCTGGAGTAGCCGTGACTGTT +TGAACCTGGTGAATAGTCTTACTATTATTTACGTTATTAACCTGAGTGTTAGCAACATTC +ATATCACCGGTTGATTTTTTAGATTGCTCTTTAGCATTTTCAGCTTTTTGAATATTTTGA +ACTCGTTGATTATCTTCCGAAGTAGCTGGAGCCGCAGGCTTCGGAGTGTTATCTTCTTTG +AGCTTCTGATACTTGGATTCTACTCGTTGGAATCTTTTATCGAGTTCCTTTTTAGTAGCT +GGTTGATCACTTATAGCAGAATCACTAATAGACTTTTTGGCACTGTTATATGCCTTCTCT +AAAGATTGCATATTAGTTGGATTCTCTGGATCAACATCACCAATATATTTTTCTAAACGC +TGAACAGCTGCACGAGCTTCGTTTTGTTTGATCAGTGTTTCTTCGCGTTTTTCAGGAGCC +ATTGCTTTAAGATTCTGAGTCTCTTGATCACGGTCAGATGCTTGTGTAGAATCGATTTTA +TTCTCTCTTCCTAGTACCCAATCAAATGCACGAGTTTTAAATTCGCCAGCTTTATCAATA +ATTCCAGGACCTTCTTCAATACGCTTACTCTGATATTTAGCCAAAGCTTTTTGATCATCT +TCAGACAATGAATTACCAGTGCGTTCCTGGAATCCTTCTAGTGCTGAACCACGAATAGTA +GTTGCTGCATTTTCAAAGCCAAGTGCATCGAGTATAGAAGCAGATATCTTTGAAATTCCC +AAAGACATTATTTCGCTCAGGTTGTAAATCACATCAGCTAATCCTTTGACAATAGCTACT +GCTAATCCACTCCAGTCTCCAGCTTCCCAGAACTTTTTAATATCTCCTAACATTCCAAAA +ATTGATTGAAGCAGTCCACCCCATTCACCAGCTTCAGCACTGAATTCATCGAAGTTACTC +ATGAATTTATCAGTCCAATACTTAAAATGAATACGAAGTAAATCTATGCCTAATACTAAT +GCAAATAGCATAGCAGCCATTTTAGCAGCTTCAGCTAATGCTGTTACGGTGTATTTGAAA +AGCATAGACGATATTTTATCAGTGATTGATATCGTAGCTTTAAATCCGCCCTTCGTAGTC +TTCAGCAAGTCACCTAACATATCGGTAGGTTTCTTATCATCTTTCTTTTGATCTTTCTTG +TTGTTCTCGGGTTCCTGAGGGACAGGTGGAAAGAAATCCTCATCAGGTAAATTGTTATTA +TCATCTAATGGAGGAAGTATTCTCTCAGGTAATCCAGGGGACTCTGGCTCATCAGGATCT +GGAAGCTTATCTTCTATCACTGACAGCCCAGTTGAAGCTGAGGCACCAGATTCTTGTACT +TTTTGCTCCACAGCCTGAACCTTCGACTCGAGCATCGAAGCGAGTTTACTTAATTTGTCG +CTGATTGTTGACGCTACGCCAGTAAGAGTCTTGATAGACTCAGTAGTTCGTTCAGATGCT +TCAGCAGCTAATTCAGTACCTTCAGCGACGTTATCAACTGAATCAATTAAGTTATTGCCC +TTTTCTTCAATTACTTCAGCAACTAGTTCATTAGCGCTTTGTACATCATCAAGTTTAAGG +CCGATTAATTCTAAAGAGTCTACTTGATCAGATGCAGTCGAGGCTGCATCTCTTTCACCC +TTTGAATCAGCGATAACTTTACGACGTCTCATTGTGGACATGTTTTCGCTTTTCATTCAA +ATAATCCTAGTACTTTAGCTGTTCCCCTTATATTGTGTGGACCGGGAATAGCAATAAGAT +CTGTGATTTCTTCTGCCCACTTTAAAACAAACGCAGGCATCTTAAGGAAATTAGGAACCT +CAGTGGAGTCATTCACTGATATGAAACATTCCGTGAGCATCTTATCGATAGTAGTAAATG +TTTCATATCGCTCAGGAGAGCGGAACTTAAATGTCTTTCCTTGGAACTGGAATTCAAGGC +GTTGGCAAATATAAATGTCATTGATATTGTAAGTGTATCCATCTTTAACGACACTTGATT +TTAACTTGCCATTGAACTCTAGCAAATGAATAGACACTAAATCTGATTCAGCAGCGTTTA +GCCCAGGATGAATTGAGTCCAAAAGAATTCCCATGTTCTCATCCATTGCACGAACATCTT +TAATCAACGTGTGATGCTTCAAGCCAAGCTTAGGAATAGAAATGGTTTTGCCATTGACTT +GTATTTTCTTAAGTGGTAGTATCAGATTTAAGTTCATTTTTAACCTTTATTGGTTCTACT +GTTTCCAACTTACGAGAGTTAGTAAACATATAAAGTGTAGTTATGCTTTGGTTATTACTT +ACTTCATGAATTACTTCATCAATGTAAAAATCAGCTTTGAATTGTTTCTTTGGATCAAAG +AAATTAATCTTATCTCCAGGAGTCATTTCAAAGTCTCCAACCATTTTACAAGTTGCATAA +CCGTCGTATTGTGCCATAGTCTGAAGCCTGATAGCTTCTTCATATCCATTTCGATAAGTC +ATTTCAGAATATGCACCCGAGCGAGAAACGAAGATGCTATTCTGTCCATCACCTGTTACT +ATTCTAGGAAGGTTATTATCCAAGAATGAGTGTGAATAGATTGTAGCGTTAAAAATAGGA +TCGCGTGTATGGGCATTAGCCTTCGTTAACCACTGGAAGTCATAAGCGAGATTATATTCC +AGCTCACCGACAAATTGACCTATTGTGCGTGGTTCACCGACAATAACCTTGATTGATTCT +TGGTTAATCATTGCGTCATAATCCATCATGTTCAAGCCATAGATATCTTCCCATACAAAA +ACGAATTGGTCATTATCTACTGCTAATGCAACATCTCGAACATATTTCTTGTATTCAGTT +ATGTTACTCGTCCATGGAACTCGAGGAACATATGTGTTGATTGTGTTCATCGCAGGTGCT +ATAAGAGGTTTTGATTCATAAATTGCACCGATCATCTCTTTTATTGATTCACCAGCGTCA +TTAAAGAAACAGCGGCTAAATTTAAGATTCTCTATTTCATGAACCAGTCCTAAGTTAATA +GCAATGATATTATCACCCTTAGAATCTACTGAAACACTGAAGTGTTTGCAGCCATAAATT +CGGTTCAATGTTTTCTTAGAGTTCGCATTAGCTACTGAGATTTGTATAATTTGATTTCCA +TCCATTAACGTATGAAGGTTCTTTGAATCAAAGAATTGTAAAACACCTTCATTACGTCCA +AATAAACCATCTCTCATTGTTAGTGTAGTAATTGTAGCTGCTAACTCAATGTATCTGTTA +GATTCCCATGCATCGTAATCCTGATACAACTTAATGCTCAGGTTCGGGAATCCCGGAAGT +TGTTGTATCATTTAGTGTTATCCTTCTCTATCAGAGATAATGCAATAGATCTTTCAACTG +GGATCATCTGCATTATTGACTCTAAATTGTAATGATTTTTAACCAGCATATGATTTATTT +GATAGAAGCTAAATACTTCGTCTGGATTCAGCAAAAGATTAAAGATATGCAAAAAATCAT +CGTAAATTATTTTCTTAGTTTCACAACATTTCATTCGAAGCTCAAGATGAATTGGTGTCA +TCTGCTTAATAATTGATTCCAAAGCGTTCAAATCTATAGCATCTATAACTTGAATTTGAT +TCTCTTCTGATAACTCGTTCCAAGGTATTATTTTCCCTTGGTATTTAATTGATTTCACAC +ATTCAGCTACTTGTGTAGCTTTATCATCGTAAAACTTATCCGGGTAATTGAAGTAAATCG +TAATACCAGCAACTTCGACGGTAGGCTCAGTAAGATCTTTGGTATTCAAACTGAATAAAG +TTTGCTTATTCTTTTCGCAAACTGGACAAGTAAAAGCAATAGGAATTTTAGTTTTACCGA +TTGACCCAGTGAACACCCTTAAGAATATGTACGGTCTCCATGTTGACGGAAACTCTTCGA +AGTATTCTTCGAGCAACTCATTTAAGATAATGTTTTGCTCTTCTGGTGTTTTTTGGACTA +AGTCGTTTCGGACTAACAGAAAATCTCGATAATCTGCTACTGTGAACGGTTTGAAACGAT +GCACACCATCAGGCAAAACACAACGAATAATATTAGCCATTATGTCTCCTTTATCATATT +TATAAATATTTCAATAAAGGAGTTGATATGAAATATGAATACACTTTTGAGGCTCGTATT +GGTGATGAAGTAATCCAATGCCGAGCGTTTACACTAGAAGAATATCGCGATCTCATCAAA +GCTAAAGCTGATGGGACTATCAAAGAGTATGTTCCAGAGCTGATTAAAAATTGTACTAAT +GCTCGTGGATTAAATCGTCAAGAGTCAGAGCTATTGTTAGTTCACTTATGGGCTAACAGT +TTAGGTGAGGTTAGTCACCAGAATACATGGGTGTGTTCCTGCGGACACGAAATACCAATG +TCAATTAATCTTACATTCGCTCAGATCGATGAACCAGATGATCTCTGGTATTCCCTAGGT +GGTTTCCGTATTAAGCTAAGATATCCTAATCTTTTTGAAGATTCAAATATCTCTATGATG +ATCGCATCATGTATTGAATACATTCATGTGAACGGTGAAACCATTTCAGTCGATGAACTG +AATGACAAAGAGATTGATGACCTTTACTCTGCAATAACAGAAGATGACATCGCTCGCATT +AAAAGCTTATTGCTTAAGCCTACAGTTAAACTCGCTATTCCAGTTAAATGCGATAAATGT +GGGGAAAATCATATCCACGTAATCGAGGGGCTTAAAGAATTCTTTAAGTTAATTTAATGG +CAGATATAAAAAATCTTTATTCAGATATCGATCCCGAGTTCAAAATGGACTGGGATCATG +ATGTAGCGCGGGCGCGTGGCCTACGGGCCATTAAAAACTCTCTTTTGGGTATTATAACAA +CTCGCAAAGGAAGCCGTCCATTTGACCCTAACTTCGGGTGCTCATTAACAGATCAGTTGT +TTGAAAATATGACGCCATTGACCGCTGATACTGTAAAGCGTAATATCGAGTCTTCAGTTC +GTGCTTATGAACCACGCATTCGATATTTAGCAGTTAATGTAACTCCAGTGTATGATGATT +ATACGCTTATTGTAGAAGTGCAATTCAGTGTAATTGATAACCCAGATGATATAGAACAGA +TTAAGCTACAACTTGCTTCAAGCAATCGATGATCGCTTACACACGCCGTTGTTATAATGG +TTCTAGTTCCTTTCAATCAATAACAACCAGAGTTACTAAAGAACAAGAAAGAGGGTTAAA +TGAAACTTGAAGATCTACAAGAAGAGTTGAAAAACGATCTACAATTAGATTCAACTAAAT +TACAATATGAAGCTGCAAATAACCCAGTGCTCTATGGCAAATGGTTGAATAAGCACTCGA +GTATCCGCAAGGAGATGCTTCGCATCGAGGCTCAGAAGAAAACGTCTTTAAAGCGTAAGT +TGGACTACTACACAGGCCGTGGTGACGGTGATGAATTTAGCATGGACCGTTATGAAAAGT +CTGAAATGAAAACTGTTTTAAGCGCTGATCAAGAAGTACTTAAGTTAGATACATCTTTAC +AATATTGGGCTATTCTGTTGGAATTTTGTTCTGGTGCGATGGATGCTATTAAATCTCGTG +GTTTCGGGATTAAGCATGTAATTGAAATGAGACAATTTGAGGCAGGAAAGTAGTATAAAT +AAGATAGTAAACTAGAGGAGACAACCATGTCTGAGATCTGTACTGTATGTAAGCAACCGA +TTGATTCGGCATTGGTTGTTCATACTTCAAGTGGTCCGGTTCACCCGGGTCCATGCTATA +ATTATATCGTTGAATTGCCGGTATCTGAAAATACACAAGAGCATTTAAACGAAACCGAAC +TTTTGCTTTAGTCTAGTGTTGATAGCCAACTTGTTGGTTTTTGCCCCTTCCTTTCGGTTG +GGGCCTTTTTGTATTAGAAGTCTTCTTCCGACTCAGATTCATCTTCTGATTCAAATTCCA +AACGCTTACCGGCCAACGCATCGCGGATAGAAATATCATCGGTGTCCTTCAATTCTGTAT +CTTTAACACGCTTTTTATAATAAGCCTCGAGTTCTTCCAGACCATCAAGAGTCTGGCATT +GAGCGATCTTACTCATAAACGTATCAATAGATGCTTCATAAAGAAATTCTTTAAAATCCA +TAATTCCTCACAGATTGATTGTTTTCATGATGTAGTTAAATTTTTCGTCTGCATATCTTT +GAATGCGTTCTAAAGCGTGTTTTAAAGCATAGTTTAAATGCACGTACTTCTTTTTGGCAT +TCGCTGATTTAGGCTTAACACCCATGTCATCCACGATATCCCAAACTTGTGCCAATGATT +TAGAGTCATGCTTACGAAGAACACGACCAATACTCTGGAGCACTGTAACTTTTGATTTAA +CTGGATGAGCGAAAATAACATGGTGTAAGTTTTTGACTGAAATACCAGTAGAGAATACTC +CATAAGAAGCAACTACTACTAATCCGGTATCTTTTTCAGCCATAGCTTTAAGAGCGTTAC +GAGTGTCAGTGTCAATTTCACCGTTAATGAAATGAACATTTTCATGACCGAGCTCTTTAA +CCATCGCATAAAGCTCTTTACCGTGTTTAGCATTTTTAAACATCAAGAAGACGTTTTCAT +TTTTCTTTGCTAATTTAACACCAAGAGCTGCAATCCATTGGTTTCTTCGTTTATATCCTG +TGATAGCTGCAATTTCTTCTTGATAGGTTTTACCCTTCATTTTAACTGTAGCTGCATCTG +GATAACGAAGGAAAATACAGTTGATCTTTAATTCAGTTACTTGGCCATCTTCCATTAGCT +GAGCAGTTGAAACAGGCTTAAAGATTTCACCGAACATTCCAACATATTGCATGAGGTTGG +CTTTGCCATCTTTCAGGGAACCAGAAAGACCGAATTTAAACATGCAATTATTTAAACCGG +AAATGATGGTTGAAATACTTTTACCTGTCGCGAGGTGACATTCATCGTTCATCATTAAAC +CAAATTGGCTGAACCATTCTTTTGGTTGTTTAACTGCTGTCTGCCAAGTACTAACATAGA +TCATTGCGTTCGAATCACGAGCGGTACCGCCTCGAATTCCAAGACAATGTTTCTTACCAA +ATAAGCGATAATCACAGAAGTCATTGATCATCTGGTCTACTAGTGCAGTAGTCGGAACGA +TGATTAAAATTTTACCCTCATAGTTCTCAACATAATAACGAGCTAAAAGAGCCTGAATAA +GAGATTTACCAGCAGAAGTCGGAAGGTTCAGGATTCGTCTGCGGTTCACTAGCCCTTCAT +ATACTGCATCCTTTTGATACCAATGCGGTTCAATTTGAGTGTTACCAGAGTATATCTTGA +GCTTCCCTAACCAACTGTCAAAGTCCTTACGGGAGAGTTCTTCTTTATCAAATATTTTAG +GGTCAATCCATGCTTTGTAACCCATATTGTCGCAGAACTTTTTAATTTGTCCAACTAAAC +CAAAAGGCAGAAGACGGTTATAATCCAGAAGACGAATACGTCCATCCCATTGTCCATATT +TGAATTTGGGATTGAATCGATAACCATCTGCTTCAAAGCTAAAAAAGTCTCTTAGTTCAT +GGAACACGGATTCATCGCATTCGATATGAACATGACTAAAGTCGTAAAAGTTTACTCGGA +TATCCATTTTGATTCCTTAGTTATAAATACAATCATATTTATACACAAGAGGCGATACCA +TGCTAGACATGCAATATATTGAAGAAATCCGCGTACTTGATAAGAAAGAAGCTAAAGACA +AGCTCGACGAGTATGCATCTCAGTTTGGAATCAAACTGAAGAAAACCAAGTCATTTGAAA +ATATGCTGGCTGATCTTGAAACAGAATTTAAAGCTCTATCTGATGAACCATTACCTGAAG +ATAACGTAGGTATTTCAATTTCTGATCTTATTGACGATGAGAAAGAAGAACTTCCTGATT +TGGTTCAATTAGAAGATTCTCCTGAAGCTGTTATTACTGTTATAGAAGTAGATAACATTC +AGGAAGATGCCATCTGTATTCCAGAAACTGCAACCGTTGAAGAAATATCTAAAATAATTG +AAGATAGCGCAGTTGTAATTGAATCAGAAAAGTTTGAATTACCTGAAGGATTTTCTCCTC +ATTTTGAACTAATTGGAAAGGCTCCAGGATATTGTACTCTTCCTTGGTGGATTTATGAGT +GGATTTCTAAAAATCCAGATTGGAAAGAAAAGCCTACATCATTTGAGCATGCAAGTGCCC +ATCAAACTCTGCTTAGTTTGATTTATTATATTAATCGCGACGGATCAGTTATGGTACGCG +AAACCCGCAATTCATCATTCGTTAAAATTAAATAAGAGGGTTAATCCCTCTTTAACTTAG +GAAACTATATGGCTACATCAATTGCATTATCGCCAACAAACCCCACAATTAAAATTGGAG +ATTCACAACAATTCACCGCAACTTTAACAGGAGCTCCAGAAGGTTCCACTACTGAATATA +AATGGACCGTAGATAATATTCAGCAAAGCTCTACTAGTGCAACTATGAATTATGTTGCAT +CGACACCAGGTAATAAAGTTATCAAGGTAGAATCTACCACTAAAGTAGACTCTCAACCTG +ATGACGTTCAAAGCGCGACTACATCTTTGACAGTCAAAGATGTTATGACTTTGAATGTTA +CGATATCCGCTCAGTCACAAACTATAAAAGTTGGAGAAAGTTATACGGCAGCGTGTGGAG +TAACAGGACAACCATCTGGATCAACTATTGCATATAAATGGTCAACTGGAGAAACCACTG +AAACAGTTTCTAAAGTTGCAACGCAAGAAGGCAATATATCACTGACTTGTGAAGTTACCG +TAACTGCTACAGGGTTTGAAGATGCTGTTAAAACCTCAAATGTTCTTAGCATTACAGTTA +CAGCAGCGGATCCAGTTGTTCCGCCTGAATGTCCATTGATTTATGTTCATCCTCTTCCAT +GGAGAAGCTCAGCTTATATTTGGGCAGGTTGGTGGGTTATGGACGCTATCCAGCGTTTAA +CAATTGAAGGAAAAGATTGGAAAACTGCAACTAAAGAAGATACTCCATATTATTGTCATT +TAGCAGTTCTTGCTAAAATGATTAATGACTATCCAGAAGTGGATGTTCAAGAATCACGCA +ATGGAAGAATTGTTCATCGTACAGCTTTAGAGGCTGGTATTATTTATTAATAAAAAGGGC +TCCCTTGGGAGCCCTTTTTTGCTTTTATATTTTATGATAGAATCACCACACAAACGAGGT +GAACATGAAAACTGAAATTAAAGTGCACATGATGCACGAACGTGGTGAAAGCTTTAAAGA +TATTGCAAAAGCAATAGGTGGAATGTCTGCATATGATGCAGCTTTGATGTATACGAAGGT +TGAATCTCTAAGAGAGAAAGCGAAGAACAAAGAGAAAATTGTTTATCGTAAACGCTTATC +AAATGTTGGTGTTAAAATTCGTCATAAGAAACTCGTCAATAAAATGAAGGAATTAGTATG +ACAAACTTTTATGAACAGATAACAGAATCTCAACTATTTGTAACTGATATGCTAGATCAT +ATGATGTATGAATCTAAATTCAGTCCTGCTGCGCATGGTGTAAACAAATGGCTTCCAGTA +AACGAATTCATCAAACGTTTATCTCCATTTGATGCTAAATCGCAAAATTTAGCAGATAAA +AATGCGTGGGTAATTATTCGGCAAGTATTAGCTACCCGCTTTGCGGTAGAAATTGATCAT +ATTGATTCAGGAATTCCACTCATTATTGAAGTCGGCGATAAAAACCAATTTGAAATATAC +ATCACTACATGGGGATTAACGAAAGCTCGTGTAGTTCCAAGTGATTTGTAATATGCTTAA +AGTTTAAGCAGTGTATAATGGTTTCAAGGATTCTCTACCAGATAGATTACGTTCCAGAAG +GAAAGGATAGACCTTGACTATGTATTCTTATTTATTATGGTGAAATATGACTCGAGTAAC +AACTTTGGCCAGTCACTATGGCCAAATAGCTGATAATGTAACGTATAATCTTTTCAGTAA +AATAAAAGAAGAAATTGAAAAAGAATTTAATAAAAACGCTGAAGTTGGGTGTCGTAGCTT +CATTTGGTATCCAAGCCCAAAAGCTGGCATAATCAAAGAAGAAATTATTAAATGGCTGCA +AGATGAAGGTTGCGCAGTTGTTTGGAACTATGACCAGAAAGATGGTAATTGGGTTGAAAT +CGCTTACTAAGGAATAATTATGTTTGAGAAATATAGCACGCTAGAAAACCACTACAACAA +TAAATTCATTGAACGTATCCGTAGTGCTGGATTTGATTTGACAGAAACATGGGTAGCTCG +TGAAAAGATTCATGGTACTAACTTTTCTATTATCATCACCAAAGACACAGTAACGTGTGC +GAAGCGCACCGGACCTATTCTTGAAGCTGAAGACTTCTTTGGTTACGAGATTATTCTTAA +GAAGTATGATAAGTCTATTAAAGCTCTCCAGGACACAATGAAGAATATGACCACAGAATC +TTATCAGTTATTTGGTGAGTTCGCGGGTGGTGGTATTCAGAAAGGTGTTAACTATGGTGA +AAAAGACTTTTATGTCTTTGACTGCCTGGTCAAAACTCCAGGTGGAATTGTAGAATATTC +TGATGATTACATTCTAACAGCATTTTGTAACGTGTTCGGATTTAAAATGGCTCCGTTGCT +GGGTCGTGGTAAGTTTGACGACCTTATTCAGATGTCCAATATGCTCGATGTTGTTGTTAA +TGACTATAATAAGCTAGCGGAAGCTGATTTGGAAGCTGCTAACCTAAAAGTATGGCCGGT +TGTTGTATCAGAAGATAATATTGCAGAAGGTTATGTTCTGAAGCCTTGTTATCCGAAGTT +CTTTAATAATGGTGCTCGTGTAGCGATTAAGTGTAAGAACTCCAAGTTCAGTGAAAAATC +TAAATCTGATAAGCTGATTAAAGCGAAAGTGGAATTAACTGAAGCTGATAAGAAATGCTT +GTCTGCTTTCTCTGAGTATGTTACTATCAACCGTGTCAATAACGTTATTTCTAAGATTGG +CACAGTAACAACTAAAGATTTTGGTCGAGTACTTGGTCTGACGATGAAAGATATCTTGGA +AGAAGCAGCCCGTGAAGAAGTTGTATTGACTTCTGCTGATAATCCCGATATCGTCAAGAA +AGAACTAACTCGTATCCTTCAAGAAACTTTACGTCCAGCATGGATCGAATTAATAAGTTG +AGATTTGCATTAATAGGGTCCAGGGAAACTCCGAGACGAGTCCTGGATTTAATGAGTCTT +ATGGGGTTGGCCTTTTCGGAGGCTGGCCATTTTTCATATTCAGGTGGAGCACCTGCCGCA +GATGAAGCATGGTTAAGTAGATATGATAGAGCGAATTCTCTTAGGATTATTCCTTACAAC +GGCTTTAATGGGCTTGTATCTGGTACTGGGGTTGCCACCTGGGAATCTATGAGTAATGAA +GCTCGAATAAAAAGTTACATAAAAGCTAAGCAAGTATTCCCGGATTTAGACAATCAACGA +GACATCGTAAAGACTTTATTTTGCCGTAATGCTATGCAGGTTTTAGGTGAAGATTGTATG +TCACCCGTAGATAAAGTTTATTTTTGGGCAACAGTAAGAAATGGAGAAGAAGCCGGTGGA +ACTCGTATCGCTGTGCGAATAGCTAGAGCCCATGGAATAGAGTGTATTAACTTGAATGAT +AAAAGAGTGTTTGCTGATCTTCAAGAAGAATATGCACCAAAGTTTGACATCTTCTCTCTA +TAAACAACAAAAGGGCCTTTCGGCCCTTTATCATTCTTCAATGATGATTTTTGGTAACTT +AACACCAAGAAGAACAGACAAATCAGAACGTCCTGCCATTTTGTCCATATCTCCCCCATC +AATAACTCGAGCTTCTTTATCGTCTTTAGCTACAGTATATGGGTTTGCTGAAAGTGCATA +ACGTACCAGCAAGGCGATAGATGGTTGCAAACTTTCAGGGTCTGTTATGACCTTGAATGC +TCCTACATGCTCTGGGTCATCCAGATCGGCTCCTTCAGTGTATGGAGCGTAGAAAATAGA +ACCAATCAGCTCTTTCTCCCCTAACTTCTCGACCACCCCTACGATCACGTAATCCAATGG +ACTGTTAGTATCACAGTACAAAGGCAATCCATTAGCTAAGAATCCGTAAGCATTTTGTGA +CAAATACTGATCATCTTCAGGTTTATGCTTCAACCAACCACTTGCAGCCAGAACAGCTGC +AGCACGAGTTGACGCTACACAGAATGATGCGGTATAAGTTGACTCACGCTGAATATGAGA +AACCATTTCACAAACCATTCGATACAGAGAGCGACCGGCTTCTGGAGCTGAAGCATAACT +CAAATCGATAAATCCAGTATCTGTGATGCCTTCTACTTTATAACGTTTAGAAACAGTAAT +CAAAGACTGCAGAATATCTTTGTTGATTTCATCAGCCATTTCAGTAGCTAGCAGATCTTC +AATAAAGCTTGGTGCATCAAAGCCGTTGGCTTCTAAGTCTTGAGCAAGTTCAACTGTGAC +GCTAGTTTTTAATTTACGAGACTTAACATGAGTCTGCCATTTGTTGACCAAGAAACGTGC +TTCAGCGATTTCAGTATCTTCACCACCTTCAAACTTTTCAGTGCGAGCAGCATCAGAGAA +AATACGAACTGTTAAAAGAACTACAGCAATTTGAGTAGCCAGCTCCATATCAGTTTCGGT +AATAGAAGCAAATGGATTATCTACCAGAGACTTATAAACGATTTTATTCAACTGAAACAG +ATCGCCTTTCATCAGCGAGCCTTTATTAGCTGCTGTTACTTCGGGAATAGTTTTACGATC +GACAAATCCAGCTTCACCTGCGTATGTAGCACCAGTACGCCATGTGAATTCATTATCTTG +GTTTAGATATTTGATTCCATAAAATGCTGCCATTGGTTGAGTAGTACGTTGAGTAGCAAC +AATATCAGAATAGATTAATTTAGTGGTAGCGCGAGTCAAGGCAACGAGATTTGGGCGACC +AATTTGGTTGCTCGTTGAAATAGTTGATTCGCGCAGGAGTTCGTTGATTTTAGCCATCGC +GCTTTTTCCTTCGTTAGAATATATGAATATTTATTACGTCCAGAAACAACAAAAGGAGCC +CGAAGGCTCCTTATAGCATTAAATGCCTTTAACGTAAACGCGACGGAAGTAAGCGTTCTT +CGAGAGAGTTCAGCAGAGACGGCATACCAGATACGATACGGCCTTTAGGCTGTTGAGCCT +GAGAATCAGCGAACGGGTTAATACCAATACCGTAACGGGTTTTGAATCCCATGACCGGTT +GGAAGTTCTTCGGATCGGAACCACGCAGCGGGGTCAGCGCAACATAAGGAGCGTAGTAAA +TACCAGCATCCATTTCGTTGGCACCTTTGTAACCGATGGTGAAGTAATCTTGGCGAGCAT +ACTGGTCGATATAGACACGGTACTTACCACCCAGAACACCAGCGAAAACAGCTTTAGTGG +TGTCGGTTTCGAAACCACGACCCAGACCTTGAGCAGCCGGAGAAACGTTAACATCGACAG +CAGCCAGAACGTTAACAACGTTACGAGATGCGATCAGGAAGTTACCAGCACCACGACCGG +TCTGACGAGCGATTTCAGCAGCTTCTTTGTCGATCTGGAACAGCAGAGCTTTGAAGCTTT +CACCTGCCCAACGAGCACCGCGGATATCAATCGGATCCTGGAAGTCAAATACACCAGCTT +TAGCACCAGTAGTCAGAGTCATACCAGTTTTACCAACCTGTGCAGAGTAGTTGATCCAGT +CAACAACTTCACGGTTGATTTCCAGCATAATTTCTGTTGCCAGAATACCGGACAGCTCAG +CATCAGCATCCATACCGTGAACAGCACGAAGGTCTTGCGCCAGTTCGATAGAATAAGCAG +CTTTCAGCTGACGAGATTTAGCTTCGATAACTTGTTTATCGATACGGAATCCCATTTCAT +TCCAAGGGTTATCCTGGGAACCATTAAATTGTTCTTGCAGTTCTGCAACAGAGGTAGCCA +TACCTTCAGCAATTTCAGCCAGTTGACCAGCTTCGATCAGCTTAGTTACTTCAGCATCCA +GTTTACCAGCATCGGTAGCACCAGCATCTGGGGTTACAGCAACTACGGCCTGGAGGTGAG +CACGTCCGGTAGCAACGAAGTCGTGAACTACGATAGCACCTTCAGCAATAGCAACACCAG +CAGTCAGTTTGTCAAATTTCTCGGCAGCACCCTGACCAGAATACATTGCGTCCGGAGAGT +ACATCGGGTGGAATGCTTCTTTAGCACCAGCAGCCAGAGGATCGGTACCGTAAACTGCGC +GCAGAGCGAATACCTGACCAGTAGGAGTACTCATCGGCTGAACGCCACAGATATCAAACG +CGATCAGGTTAGGGATTGCACGACGTACCATACCCATAACAGCCGGTCCAATCTGAGTTA +CAGCACCGGAAGTTTGACCAGCAGCGATATTCTGAGCATCGTAACCATGGTCACCGCCGA +TTTCAGCTTCAGTCAAGAAATCACCGAATGCCTGAGCGATTTTTTCATCGCGATATTCTG +GAGAAACGGCGAAGTCTGCTTCCTGGTTTTCAAGAATTTTTGCAATCAGAGCCTTTTTAG +AAGCTCCAACAATTTCCGGCAGTTCTTCGTTTTCCAGCAGCGGCTGCCATTTTTCTACGA +GTTTGTTCTTTTTCATGTGTTGTATAACCTTGTTAAATTAAGAGAGACGTGTTGCACCAG +CAATGTAAGCGTTCATCATAGAGCTTGTCTGATTTGCTGGATTCGGTTTTTCTTCAACCG +CTTCAGTTACGAAATTAAGGCCGCTGGCCTCAGGGTCAACAGTATTTATACTTTCATTTA +CTGCCGGTTTTTCAGCAGAACCTTTAACCATTTCTACGATAGCATTCAGTTTTCCGCCAA +ATTCATCAGAATACGACATACCTTCAATCAGAGATTCGACTTTTTCTTTTTGAGATTCAG +TCAATTCGCGAACAGCTTCATTTACTGCAACTTCGCGCTGAACATAATTGATGTATTCGT +TCTGCTTTGTTACTTCTTCGAACAGTTTAGCCGTAGCTTCTTTCTGTTCTGCCAGTTCTT +CTTCCATTTCAGCAACAACATCTACTGCTTCTTCTGGAATAACAACGTTATGTTCTACGA +ACAGTTCTTTCATTCCACCAAGCATAGATTCGAACAGATCGGCTTTAATACCGCGATCTA +CTGCCAGCTGATTTTCAGCCATCCATTTAGTTGCCAGGTGATCGAAGAATTTAGCAGCAG +CTTCGGTGATTTTCTTTTCAGCTTTTTCTTCTGCTTCTTCTTCTTTTTCTTTTACCTTTT +CTTCCGCTTTTTCAGCGATAGCTTCGATACGTTTTTCTGCCAGCGTCGCGGCACCTTTTT +TAACTGCGGCTTCGAATACAGTGCTGAAGTTAGCTTTTACTTCCGGAGAAAGTTCAACTG +ATTCGAAAACGCTGTCCAGTTCTACCGCGATGTCCAGATTAGTGGATTCAGCGATTAGTT +CTTGTTTCAGCATTTTGATGTTCCTGTTGTTAAGTTACATTATTATTTATAATGCTTTTA +ATGACTCAGTAAGAGCCTTAAATGCTTCATCAGCACTTTTCTTGGCAACCGCTGGTGCCG +CTTCATGAGACTCACTAATTTGTTTAGGAGTAACCCATGCATCTGGAGCGGAAGGTCCCC +ATACTGCGTCAACACCGACAGTAAGTTTAAACCCTTCGTTCACAATCTTGTAGCCTTTAT +TAGTCTCAGTCAGAGAACCAAGTCCTCGAGATGAAACTCCTGGAATCCAACCAGCACGGA +TATTGGCAGCTAGTTTATCGCCTGGGCCATGATCGCCTTCGATAATGCGTGCTCGTCCGT +ATACGTCATTTCCTTTCCACCACATATCTTCAATGATAATGGCAGCTTGCATCGGGTCAA +CGTTTGCACGAGGTGGATGGTTTAATTCTCCTAATGCTTGCTTAGTAACAACTTGTTCTT +TTATATAGTTGGAAACCGCTTTTTCAAGAATACGCTTCGGATAGAGACGTTTATTTCGGT +TAACAACTTCAGCTTGCATAAAAATTCCTTCGATGTAAAGACCTGGAGCTAATCCAGAAT +CTGTTCCATCATGGGATTCAAGCATTGGAACTCCGTCGATACATTCGCCCGGTTGACCCC +AATGCTCAATAAGTAATTGGGGTTCATTCATCAGCTTAATCCTAGTGCTTCGCGACGTTT +CATCGCTTTCTTACGCTTACGAAGTCCACGAGCTTGGCCGCTTGGGTTAGCGCGTTTTGA +TTTGGTCGCTTTACGAGCGATTGAACGACGTTTAGCTTTAGACAATCCGGTAGTTTGAAA +TGCGTTACGAGCCCGAGTCTTACGATCTTTGGTGCGGGTAATTTCACCGCGACTTGAAAC +ATGCTTAACGATAAATTCGTCGAGCTGCATTTCTTCATTAATGGAACCAAGTGCAACCGC +GAGGTCGGTCTCAGTTTCCATCATGTTTTCTACAATTGTATTTATATCGTCTTTGCTTAA +TGCGCCGGATAATGCATCGTAACGACCCTGAGCTTCTGGTAAAAGTAATTCTACGCTTTC +AATTACTAATTCATGGTTATCAGGGATCAGAAACATTATTCATCATCCTCTTTTTCGTCT +TCGTCATCTTCATGATCTTCATCTTTTTCTTCTTCAGGCTCTTCGCCTTCGATCATGACT +GAACGTGCAATTTCGATTTTGCGCTTTTCTACTAAATCAACGATTCGCGGAGCCATGGCT +GCTTCAAACATTTTAGTTGCTTGAACGAGGTCGTTGGATAAGCAGGCGGAAATGAATTCA +TTTTCCATTAGAAATCCTCTTGATTTTCTGGGTCTTGGTAACGAGCCTCTTTAGACTCTA +ATTCAATTTGCTTAGCCTCTTTATCAATTTCATCATCGTTCATATGAAGAATATCTTTCA +TAGCTGTCTGATGAGAAATGTACTTACCAATAAATGGTTCGGCCATTTGAAGCATATTGA +TTCTGCGTTCCATGATTTCAGCATCTTTAAGTTCTGTAAAATATGAATCGCGGTGGAATG +AAATCTTAATATTATTTATTTCATCGTTCCACTCATCTTCTGTGATAACGCCTTTAAGAA +CGAGGTTCGTTTTAAGCGGATCTAAGAAAATTTCTTCAAATTTGTGCTGCAATCCACGGA +TGAATTTGGCAAAAGTTAATTCGTCGCGGGTAATTGAAGTACCGGCATCAAATTGAACTC +CACCTTGTTGATCATTTGGAATACGAGACAGAGGAACACGAAGTGCCATATAAAGAGCAT +TTCTGAACCAACGGACGTCATCCATATCACTCATACCCTGCATACCAGGAAGAGTATCAA +TTTCTGTTACTGCTTTACCGTCACGACGTTGTAACCAATAGTCTTCTGTCATTGACATAT +TATGTTGCTGGTTTTTAATCTTACCAGTCGTGGCATCATATACGACACGGTTTTTCATCG +TGTTCATGATATTCTGCATATGTTGTGCAGCCTTACGTGAAGGCATATTCCCTGTATCGA +TATAAAATACTCGACGATCAGGAGCACGGGTAATACGGTAGATAACTAAAGCATCTTCCA +TTAATTTTAGTTGGTTTGCAGGTTTAACAGCGCGGTGCAAATAGCCAACGATGTTTTGAC +CTGTACAATCCACTAATCCGGAATGAGCGTATACTACTGCTGCTTTAGGGATTTTAATTT +TAGTTCCAGCGTCATATATTCTGCCGTCACATTGATAAGATTCATGACCAGTATCGTAGA +TAAAATATTCTTTATATCCTTTTACGATCTTGACACCTTTTTCCATTTCTGTGACTATTT +CACGAACGTATTGAATATTGCGAGGATCTAAGCGACGAAGTTCTTTAATACCTTCTTTCG +GTTTATGCGGATTAATTATTTTGTGAAAGAAAATACGAGAATCGACATACCAACGCTGGA +AGTGGTCTGCTCCTTTACGTTGGAAATTTAATGTATTCAGCACTCCGTCGAATTCTTCTA +GCATTCGATCTTTGATTTTTTGGCTGAATTCGGTAGCATCTAAATCTAACGCTACTACAT +CATGGTCATCTTCATAAACAATTGAGTCCATCACGATTTCTTGAACCGCGTTATCGACTT +CATAGTTGTTCATCAGGTTACGATAAGTGTTGATTAATTCCCTGGTTGTTTTCATGCCAG +GTTCATGATTGCCCAACATTTTCTGGAAGAAGCCACTAGAAGCTTCATTCACAGACGATT +CAATTTCGTTAGCGCCGTCATCGAATTTAGGGGCGGTTATCGACTCTAAATCGTTATTGA +GTTGTTCTTTATAATTCCGTTCGTCTTCCTTTGCCCAAGGAGCGAACAGACTTAAAATGT +CGTAATTCATTAGAGTCTCCGTGAAAGGGTAATAAGCATATACTTATTTATATCTTAAAA +CTGGCGGATTTCTCCGCCAATTAATTACAACCACCAGTCCATTGCAAACGTAACTTCGAA +GGTTTCTACCTCGTTATTAGAATCCCAATCCATCTGAACTTCACCAACGTTAGTCGGCCA +CAATCCAGTGATTGTTACTTCTTTAGTTACAGTTTTGCCATCACGGTGATATTGACGCAC +AATTGCAGTCTTTTTATACTCTGCTGGAGTACCACCAGTAATTTCGTTGCCTTGGCCATG +ACAAATACCTTGCCAATCAACGATTTGCTGACGAGTTGTATGTGCGTCATCGTTATAAAT +GGTGACAGTCCAGTCATCAAACGTACGGTCGCCCGCAAGGTTAATTTTACGGTTCATATA +ACCGACTGGAACTTTTTCTACGATACCTGCTGGCATAGGAGCAGCTTTACATTTAAAACT +GAAATTTCTGCCGAGGTACGGAATTTCTACTTCAAACAAGTTAGGACGAGCTAAGTCGCC +TGACTCAAATGCACGAGTCATGTCATCAAGAAACATAATAACCTCTATGTGTTTATTTAT +ATGGCTCCAGATTCACCAGAGCCATCGAGACGAATTAAATTGTGTGATCTGTATATATTT +ATGGACCCTCGTTAGAAGGTCCCTAAGTTAATTCTATGATCACTGAGGTCCGATCAGCTC +GTCGAAGTCGGCGCCTGTTGCAGTTGCAACGAAGTTCAGAGTGATGTAGTTAATGCTTCT +TGCCGGCTTGATGTAGAACGAAGCAACAAATTCGTTACGATCGATAACTGCCGGGGTGTT +ATTCGTAGTATCACAAACAACACGGAAGTCATACATTCCACCCAATGCCTTAATACCTTG +GAGATATTGGCTAGTTTCCATACGGAAGCTTGAACGAGTGAAGTTATCGTTCATTTCAAA +CAGACGGTATTTAGAAGCATTACCGATGTTTGACTTCAACATGTTAAACAGACGACGAAC +GTTAACACGGTCAAATGGAGTAGGAACTTTAGTAGCAGTTTTATCGCCAAACAGAACGAA +TCCTTCACCACCGGTTCCAGTCACTGGGTTAATAGCTTCTTGGTACAGACGATCACGCTG +TGACTGACGCGCTTCGATTGCCAACTTAATTACGTTCAGAATCTGACCGCGATTATAACC +AGCTGGAGACATCCAAGGTTGGGCAATATTATCAGTACGAGCACACAGGCCTGCAATATC +AGCCGCTAATGGAACCCAACGGTTGACATCATTATATTTGTCGTATTGATATTTGTAGTT +ACCATCAATAAATGAATAAGTACTAGAAATATTCATATTGTTGTCGGTATAAGTACCGGT +CGCGGTACGCCAATCAACCAAGTTATCAATTGCACGAGTCAACGGAATATTGACAATAGT +TTCACGCGGAGGAGAAATAAGAACCAGACAGTCCTGACGCTCATCACCGATTGCAGAAAC +ATGTTTCTGAACTGTAGAAGCAAATTCTAAACCTTCACCAGCACATGCACCAGCAATAAA +CAGTTGAACCGCGATAGATTCACGATCAGCGAACAGATCCCATGCTTGCATTAAATCACC +AGCAGTAACGCTAGAGTTTGCAGACACTCCGCCATTTAATTTGACAATACCAGAGAAGCC +TTTAGGCCAACCAACTGATGTGCCAAAAATGTAGTTACTTGAACCTTTAGCAAAATAATC +ATCCATAAAGATGTTATTGCTATATACGTCTTTTTCACCAGGCTTAGTAGACAAAACTAC +AGATTCTACAATTGCTCCATCACGACGGACAATAATTGCATACTGATCATCGGTCTGAGG +ACCATAACCAAACACAGCCCGCGCGGTTGATGCACGAGTACCGCCTGCAGGATAAATCGG +AAGTTCAGCCGATGCTCCTTTTTCATACTGGGATTTAGATACGATTTCAATTTCCAGTTG +AGATCCAATTTCACCTGGATACAGAGCAACAACCCCTGGAAGTCCGTATTTTTTCAAATT +GGCTTGAAATTCAGTTGCAGTCATAGCTGCGTCAGCATTTTCGGGTTCAGTCAACAGAAT +ACCAGAATCTGTGATAATTTTACCTACAGATATTGCACCAGCTACGCCAGATGATGCTGA +AGTTACTTCAGCAGTCCAGTTTGGACCAAGATCAGGATATTGGTTAGTACTTTTCGCGTA +AGCAACTATTTTACCAGTAGGAATATAAATTGCTTTAATTTGCCCTTGAGTATCAACTTC +AGTAACTTTACCTGCGGTTTCTACAACAGTCTGATTGTATTTAACACGAATAGTATCTCC +AACTGCATAGTTACTACCAGCAGCTGAAATAGTAGTTTCGATGTTTTCTGCGATAGGAGA +AGAGTTTTTAGCTACATCTCTATTAACAGCTCGAACGATACGAAGATCGTTACCATATTG +CAAGAAGTTCATTGCTGACATAAAGTAATCAGCAGTTTCGCTATTCGGAGTACCAAACAA +ATCAACGAGTTCAACTTCGTTGGTGACCTGAATCATCTGATAAGCAGGACCCCATTGAAA +TTTACCAGCGATTGCAGCACGCCCGGTAGCATTATTAACAATAGTGCTTTGTACACTAGT +TTCTTTGAGCTCAACGCCCGGCGACAATAAAGCCATTTTTAAATCCTCTACTTGTATGCT +TTAATATATTTATACAAATGACACGCCACGATCAAATGACTCGGTGTTGTATTCAGCACC +ATTAACTGCATCCAGAATTACTACTGGAGCGTAATCATCGTTCATATCTTCCAATTCGCG +ACCAAATACTTCGGCTGCTAAACGCATATCGTCTTTTTCAGCATATTCCACGAATTTGGA +TTGGGTCGAAAGCCAAGAGAAAATAACGAGTGACATAACCAAGTCATCATGATACCCTTC +TTCTGCCGCCCAAGATACACCTTTTTCACTAAACGTTCTAAATTCTTGAATAGTGGCTTT +ATGGTGTAGAACTAATTTGTCTTTTTCAATTAAATCTTTTAAAGCTGAACAACCAACTGC +TTTAGTTCTCTTCGTCTGTTTCATACCAAGATCAACAAACGAGTCGCAAATTACACCCTC +ATATTCGAGGTCCATGTAAAGAGATTTAGCAACTGAAACTCCAGTAGAGTTCAACTCAAT +ATAAATTGGAGCTTCGTTATATTCTATCAAGTATCTCATTACGATATCAGGAAGAATAAG +GTGAGATGTTGTGTTATTATGAAACACAGCAACTTGTTCCCAGGTTGAATTCGTGATATC +GATTATATGCATTGCATGATAATCTTGACCACGACCTTCAGAACAGTCCAGCGCCGCTAT +ATATTTATGCCCTTCTTCTGGTTCTTTGAATTTGGTAAATCCATTTGAATCTGGAGTAAC +TTCAATCCAGTCCATATTCGCCAATTTCATACCGGAAATTAATGTTCCTGATGTTCCATG +GAATTCTGCACAGTGTTCTTGCTTAAATTGCTCAAGAGATGAAGCACTAATAGTTTGAGA +CGACCATTGCCATCCATCATCAAACATATCATTATCATCATACAGACGTTCTTTTACTGA +GTTCCAAATAGCTGTATAAGGAGCAAAGCCCGATTTACCTGTTATTGCTGCATCCCAAAT +ATCATAGAAGTGGTTCAATCCATTTGGCGTAGTAGTAATAATAATTTTAGAACGACGCCC +AGATGAAATAACTGGCTGAATAGCAAGCCAAGCATCAATAAAGTTTGGAATAAATGCACA +TTCGTCAATATAGATCATTGCGAATGAGTTACCACGAACAGCATCAGGAGATGACGCATA +AGCACCGATAGAAGAACCATTATCAAGCTCAATAGAGCCTTTGTTCCATTCTACAATACC +AGGTTGTAAAAAGTCTGGAAGTAATTCAATAGCCTGCTTAGTACGATCTAATACTTCAGC +TGACATACTTCCTTTATGCGCAAGAATACCGATTGCTTTATCTTTGTTGAAACAAGCAAA +ATGCGCTAGAAATATTGCTACTACAGTTGTTTTACCAAGCTGACGAGACAGGTTACATAC +TGTCATACGCTTAGAGTGCATGATTTTAAGCATATCGCGCTGATAATCACGAAGTTGGAC +CTTGATAGTCCCGTAGTCAATGTGTGTGATAGCGCAATACTTCTCTGCGAAATAGACTAT +GTCATCACGACATTTCTTCCATTCAGCAATCATTTCAGCTGTATAGTTAACTTTAACGTT +TGCTCGTTTAAGGTTCGGAAGACCCATATAACGAGATCGTTTTACGTTTTTATTTTTAAA +CGTTTGAAATAATTCTGGATTCTCGCCTTGTAATTTAATTTTAACTATTTTATTAATGCG +AAGATAATCATCAAATTTCTCTGGATACCACTTATCATCCCATTGAGATTTGATCCAGTT +TATTCCTTGATCTACCTTTCGTTCTAATTCGCCTGGTGGGCGAATTATAATTTTATTTGT +GGTATTTAGCGGATGTGTGTCCGCTAATACGTTATACGGCTGAGTCTGTTCCATTTACAA +TTTTCTCCTGACGCTCTTGGGATTCATATGAATCTCCCAATTCATCCATTAAATCAGTAG +GAGAACTCATAAAAATGGTAGCGTTTTCAATATTATTAGTTTGATTACCACCTTGTGTAC +CGACGTTCTCAGCAGTAATTTCTTTCATTTCTTTATGAAGTTTAAGAATTTCCTTATTGG +TAGTAGTCATTTGCCCCATCAGCGTGGCGAATACTTCCATATGACGAGGAGAATCAGCGT +TCTTTGCAGTCTCTAGGAAAATCTTAGCTGCATCCATCAACATCTGTTGTTGGAAGTGCA +TGTTTTTACGAACAACTGTATAGTCATCTTCTAAGTCAGGTTTACGATCATTGGGGTTAC +TTTTAACCTCAACTAATTCCAGCTTTTCATATACTGGAATTTCTTCTCCTCCGATACCAG +GGAGGTCCCCGATATCGAGAAGTTTAGCTATATCTAATTGATCTGTCATTGTTATGTCCT +TGGCCCAGGTGGTACAGGAGCAACCGGAATAGGAATATCGGCGGTGTAAGTTTGTTTAGA +CGATCCGTCCCAATCTTGTATTTCAACATCCCGTGGTTCTACTTCAGAATCAACTGATTC +AAATACACCTTCAGGCTCGAGTACTTTACTATTTGCATGGAAATCAAGATAAACAGTACG +AATTTCGCCTTTAATATCGTTCTGAGGTGGGTACATCCACCCTTGAACCTCAAACATAAT +TGACCATTCAAGTCTACGACGACTTATATTATCTCCGTCAATTTGTTCGTCTACTGATAT +AGATTGAAATACTACTCTAATATCTCGGCTAAATTCAATATCTTCACCGTATTGCTCAGT +CATAGTAGTATTGAAGTGTGGCTGAAAATACGGCAGAATCTGTTCAACAATTTGATACAT +GTCATCTTCATAACGTGTAAAAATTCCTAACTCATATATCATTTTATATGGGGTAGGGTT +GAACTGCGAAATCATAGCAGATTGACCATTTTGAATAGCGGTTCTATTTACTATATTCGT +TTTATATGTGCCGTTATACATTACATCCACAAGATGCAAATTCATGCGAGGGAGAATAGT +CTCAACCTTCGCTACATCGTCTTGTGAGTTAATTGAAGTCCACTTATTGAGCTTCATCAT +AAAGTGTTCTTTAGATGCGTATGTAATAGGGACTTTAATGAATCGGGTTCCAGTGTCTTC +CCTTGTTCTAGCTACTTGAATATTGGAGAATAAATCACCCATCAACAATGCGTAGCGGCG +GAAAGACGAATGATAAAAGTGACCAAACATTTTTTCTCCTACGGCCCCGAAGGGCCAATA +TGCTTTATATTATTTATGACATAAAATTATCATCAAATGGACTAGTCTTTTCGGGGTCAT +TAACACCACGGCCATTGATTACAATAAAGTCTTCAACAAACTCAGACGCTTCAGCATTAA +TTGCATCGACTTCTTCATATTGAACTTTAGATATATCAGCAAGTCCATCAAGATTTTTAA +CTGGTTCAAGATCAAGTTCGCTAAATTCAGGTATTTGAATACCGGCATTTCGTTGCAATT +CAGGCTTAAGCTGCTCCCCAGAGTAAATAAATTTGCCTGCAGTAATTTTACGAGTAGCGT +TACGTCCTACTTGATAGAACGGATCATATGGCTCAACCCAGTTAATTTCAAACAAACTGT +TGTCCATTTTGAAATAAATTAAATCACCTTCACGAGGTTCACTTCCATCGCATTGATGCT +TAAACAACCCAGGGTTTATTGTTAAAGTGACTTCATCTGATACTTGCATGCCAAACTTAC +TAAAGAAACTATTTGCTCCTTCATATCCCTCAAATGAGTTCAAATATGCAGCGAATAACC +AAGCTTTGGTAAATTTGTTCTGAAGATCTTCACCGAATAATTGATCTGGTTTAACGTATT +CGCGAGGAATGAAATAACACTCTACCCCTCTCATTTGAATGGCCTCAGCCACTAGCGTAT +CCGCCAACGACTGAGTATTTTCATGACCATTGAAATTTACATAAGGGTTAAGTATATTTG +CTACGTTAGTTTTCTCATAACCAGAACGATTTTCGAGCTTCGCAAATAACTTATTGTTCA +TCATCCGATTAATATTCCAAATGGAGGATCAAGTAAGTATAATTCTTCGCGGAGACGTTC +TTTTTCTCGTTCTGCTTCTTCGAGCAAGCGTTCACCGTTCAGAGTAACACCGCCAGGTAA +TTGAAGACCTTGATGCTTAGCTAATACTTGACCGAGCAATTCTTTTGATAACGTGGTTGC +ATAATCTTTAACCCATCGGTTATTATATGCACCTTGTTTAACCATTGCATCTTCACCAGC +AACTCGCTGAGGTAAAGATCGGTCCATGTTATCCCATTGTTCTGCTACTGACCACTGATC +AGCTGATCCAGCATATCCATAGCCTGCAGTATTTCCAACTGTTTTATCTACACCGGAATA +AGCTAAAGTGAATACTTCAACAATGATAACATCGCGTTTTTGGAAGTTACCCATTACTTT +AAGTTGTTCATTAGCTCCATTATACCAAAAATCTGGTAATGGGCTTAGCATATCTTGCAT +CATACTCATATAAGTCATGAGTTGAGTGAAATAACCAAGATCAGCGCCAAAGGCGTTCGG +GCCATAAAATTTATTACATGAACTTCCCATTCCACCATTAATTCCAGCCATTCCCAAGAG +AAAATCTGTGAACCATGGATAAGTGGCATTACCGTCCATCGAAGTAATAGAACCGATATT +CGTGCGAACTATTTTAGTTACAGCAAAGATATTTGAGCCGCGAAGGTCGAATACACCATG +CTTGTATAATTCATCATCGTCACCAATATAAAATGCGTGATATCCTTTGTTTAAACCATC +ATAATGATATTCGCCAAATAGTTCGAGTGCTCGTTGAATGCAGTTGTAGATCATGTCTTC +TGTTAATTCAACGTTTAAAATTGGTGCGCCTAATCTAGTTAAGATAGCGTCTTTTAATTC +TTTTGGGTTTTGTGGTGCATGAATAGACATAATAAACCTCTAAGGGCCCGAAGGCCCTCT +ATTAAGGAAGAAGAGTTTCTAAATCAACCCAAGCTCCATCTTTACGAACGTAAGCTTTTC +CATCGCGTGGGGCTTCAGGAATATAAGTAACAGCTGCACTTTCAAGCTGGTTTATACGGG +TTTGATGTTTGTTTAAAGTATTTAATACACCAGCAGTTTCAATATTAGGGCTATTTGGAT +TAGTTCCGTTCATTTGATTACTCAAACGAAGAACTTGTCCTTTAAGACCTTCATTGTTAT +TACCGATTTCCACTTGAAGATCTTGAATGGAATCGTTCATAGTACTCTGTTGTTGCTCCA +TTGCAGTCATTTTAAAAATCAATGAAGTCTGCGGAGGTTGAGTACCCTCTGGAACAATAC +CAACAACCTGATTTATCCATGCAACCTGACCACGAAGACCAGATGAAGTATCAGCTCCAA +CTATTTGTTGAAGAGTTGCAATTGAATCAGTGTTAGTTTTTATTTTTCCATTAATAGTCA +ATGGAGCTGAAGGAACACCTATTTGCTGCTCAATAGAATCAAGACGCGGTATTACGCCGT +TTTGTCCACTTAACTTATTATTAATTAAGTTAATTGACGTGATATTGGTTTGAACGAGTG +CGTTGATATTAGAAACACCATCATTCATTCCTATTGAATCCATCACGTCTTCCATTGACA +GTGACACTCCGTTTATACTAGCATTCATACGATTCAATCTAGTATAGACGTTATCAACGG +TAGAAGAAGATCGCGGACCTAATTCTTTACGTAAGTTAGTAACTTCAATAGTTAATGATC +CAACGTCAGAATCATTGAATTGATCTTCTAATATTCCGACACGCTCGATAGTCCTAGAAA +TAGCAGATGAGTTGTCAATAATTCGACGCTTCATGCCAGTAGCTTCAGTACCCTGGACCG +ATTGTCCATTTATATCTTGACCTGGATATTGGCCCATTTCTTTTTTAATCCAGTACAAAT +CTCCACGCACCGGACGATAAAAAGTATCTAAACTTGGATTATAAGTACCAATATCAGTTT +CTATAGAATCCACACGATTATCAAGATCAGTCAAAGAAACTTTATTTTCCGCAAGTGTAG +TATCAATTCGCTCTATAGATTCAGTATTTTTACCGATTTGAGTCATTGCATCGATATTTT +CAGACACCGCAAGAATGCTATTAATTGTTTCAATTTCAGCAGTATGTTTATTTGTGGCTT +CCGCAACTAAACGAATATTTTCGTCTAATACAACCACGTTCATCTGTACCTGATTTGGTC +CTCGATTCAATTGCCCATCGAATCCATATTTAGTAGAAGCCCCATTGAGAGGCTCTCCAT +CTTTAATCCAGTTGATGCGTTGCTGACCTTCAGCTGGAAGTCCATTTACATATGGTAAAT +CTTTTAATTCCATAAGTCCTCTCTTATTTTACGCGAATAACGTAGTTTATCGCGACGTTT +TTCATTCTGTTTTCATTTGCGGTTCTAACTACTCTAGATGAATCAAAGTGCATTCTTAAT +GCAGTCCAACGATTATCCTTTGATCCTGCGTCATAGTTAATACTTCCCCAGCCATCAGCA +TAATATGCTCCATCAGGAGGATAGTTCGACCAAGCGGCCTGATCATCAATAGTCCAGTTA +CCCCAGATTCTTTGTTGAGCATCTTCCTGATATGTTCCAAAACCTCGTCCTGGATCAACA +CCACGCCCAGCATCAAATCCACGAGCTGTCACGCCGCGCATGTCTGGTAAAGCAAAATGA +TCTGATCCATTGCCGCCATAAGTAAAACCTATTCGCTGAAATAAAGTTGGATAACCAGAT +ACAGGCAACCATCTGCCGTTTGCGATCATTAAATTACCGTGATCACCATTGAAAGCAGCC +ATGAACATTCCACCAACTGGAACCGTTGTATCCAATTCTCCCTTTGTCATATATTTCTGA +TTAGGAGATGTATTTCCTTCATAAACACCACCAGTTGATACTGCAGCTCTATCTGACGGA +AGAACGGCTGCTGATCCTGATAAAGCTCTTGAGCCATCTCCTATATTGTTGGCTAATAAA +GTTGTGCCAACACGATTCGTTGTTGCACGTTGACTATTAAATTTAGCAGGTGTTACAGCA +GTATTATTAGAAGATCCATCCATATTAGCTTGCGAAGCTAATTTAATTGCACCAATATTA +CTTTCTGTTGCTTGCCATTGATTTAAAGTAAATGGAGATGCACTAAATCCTTCTCTGATA +TTAGGATCACGTAACTGAGCTAATGTAGCTAATCTAACAACACCTTGTGCTGATTCTGTA +GCTGGTCCATATGCTGGAATAAGAGCTGTGGCGGCGGCGATGGCTTGTTTAGTTTTCAAT +GGAGTCATTGCAGTTGTGTCATCTACACCAGCTTGGGCAGCTGGTGTAGATGACAATTTA +AGAACACCATTTCTAGATTCAGACGACGTTCTATTTGTAAATGTCCAATCAATTACATGC +TTTAAAGCCGATGCTACGATACTTCTGTCGGTCGCTGTACCAGTCAAAGCTTCATCATTT +GTTGCGTATCTAGTTACTCCAAATACGTCGGTTGTAGCTTGAGGGCGCTGTAATCGAAGT +TCGAGAGTTTTTGGAGTTACGGCGACATCTCCAAGAATACCATTATTTACTTCTTCCTGA +GTACCTATTCTAATTTTTCCTTGAACAGTCTCAGTTGCAGAGGGAGTTCCTGACACAGCA +TCTGGACTTAACAAACTTAAAGCCTCTTGGACGTTGTCAACGCTAGAGTTAAAGTTGCTT +CCCGCTGGATCAAATCTCACATAAATCGCTTCATCTGATATGTGTCTATTAGTATTATTC +ATTATGCGATTCTCTTAAAGTAGTGAAGTAACACAGGATCTGTTAAACCTTCTAAAGTTT +CAGTTTTAGTTCCGATACGGTTCCAAACACCATATCCCTCTTTTCCTGGAGTAAGAGTAG +TAGATGATACTGTTATTCCATATGATGACAATGGTTTCAAATTATGCGATTGATTGTCAA +TATAAGTAACAACTAATTCATTACCATTAGTTCCATCTGCGACAGTATTGACAACAAAGT +TATTTGTAACAGCATCTTCTAAAACTAATTTAGCTTTAGCTTTAACTTCTTCTGCGGTAT +CTCCAACAGAAACTAAAACATTAAATCCAAATACTGAAATAATACAATCTGAGGTCTCTC +CGTCTTGACGAGCTACAGTTCCAGTAAAAGTCCATTGATCTGTTTGAGATACACCTTCAG +GAGAAATACCGTCAGTATTAATTTCAATTGAGTTTATTGGACGAATACTGAAACTGCGAA +TATCTTGTATAGCTGATTGAATGTTAGAATATTCAACACCCTTAGCTAATTGAGTAATAG +TGATACTGCCATAAGGCTGTTTATTCATCACATCATTATTTTGTGTCGTATTGAACTGAA +GATAATCAGCTAAGCGGGATACGACACCCGCTTTATTATTCAATAAACTCATTATGCAAT +CCTTAACCAGCGATAAACTGTAATTGAAGGTTGAACTACATCAATTGAAATAGGACTTTG +ATGTGTTTCATTGGTCTTCGCATAATCTTCACGGTATTTAGTGTAAACTGGTCCAGTATC +ATCAGGATCAAACTGGCATCCGCCTACAATAATTGGTCCATTATCATCTGAAATTAAAAC +TTTAGAATCAGTTTGAGTTGGAGGAAGATTATTGTTATTCAATTGTACTGACGTAGAACC +GGTGGTTCCGCCAGCTGTATGTGATGGATTTCCTGTAATGTCTAAATCATTATTATTCAT +TGCAAATCGAGGATCATTTACGTCTGAATTCCATCCTACTGTAACTTGACCTTGTCCCCA +TAGAGTCCATCTTCCGAATCCCATATAAGTAGCTGGGTTGTTCGGGTTAATAGCATTTTC +ATAAATTGTTCCAATTGGATAAATCAAATCAAATATTGCAAATGGACTATTAACAATAAC +TTCGCTAGGAGGAACAGCCTCTGTGTTTGGAATACGAGGTTTGTCGAAATCAGTGATTAC +AACTTGACCAGTAAGACTAATTGGAGATCCTTGAGAAATATACTTAGAATCTGTCTCTTG +GATAATGTCTTCTAAATCAATAGTAGTTCCGATGTTATTATTGAACCAAGTCAAAGTTAT +TATGTCACCATGCTCCATAACTCTGTCAGTTTCAATTCCAGTGATAACGTTATTTTCATC +TATTACGACAAAATAATCAGTTAATCCTGTTCCCCATGTTCCACCGAGTAAAGCACAGCT +TTCTGGAGTATCAGCATCAGCACCATGACAAAATACATCAGGTTGTCCAGTTGTTCCAGC +TTGAACTTGAGTAATTCCGTTAAATTTAACCTCAAGAGAATTTGGATTAATTTTTTCGTG +GGCTGAAATACCAAACATCTGGACAGTGAATTCTTTGGTATTTTTTAAGTCGCCAACAAA +CGATGTTCCTGGGATAGATTTTTCAGTAGTTCTAGAAGAATCTTTCAAGATAATTTGGCG +TTTATTATATGAGCTTCTCCATTGACTTAATCCATCAACATAAGAAACTATGATAACGGT +ATCGCCAATATTACATTTTTGACGCAACCTAATATCTCGACCGTTCAGCGGAACTATTTC +ATTACCCGTTCCAGGAGAGCCATAATCGGAGTTTTCACTAAAATTCGGTCCGTAATAAAG +AATATTACCTCTATGGTAAACTTCAGTATTTGCAATGTTATATTCATTGCCATCAAATAT +ATCTAAAAAATCTACTTGATCCTGAACCTCTACTAAGTATTCTTTGCGTATAACTGACGC +CATATCGCTATTACTAATACGGTCAATTTGCTTATTTTCAACATATTCCCAACGACCAGG +CGGGCAATACACGAGTTCTAAGTCGGAAAGCGGAATATTGAATTCTTTTGGATTAGGATC +ACCCTTTAAAGTATCTCCCGCTGCAGGAATAATAGTAACTGGGTTTTTCTGCCAAGTATT +AAACACGTCACGGAAGCGAACTACAGTGTTGTAATCTTGAACTCGTCCTTTAGGAAGTTC +AACTGTCATTCTTCCGGCAGTTGTATCTAATGCGTATGAATGACCAATCAAAGCTTTTAA +AGTTGACTGATCAGAAGTTTTAAACGTTTTCCAAGCACCAGCTGCATGTGGATTATTGCC +GTCGCCAAGTTGATAATAAAGATCGTTAAAATTATTATTAATTTTTTGACCACCTTGGCG +AAGGTAATCTCCTGAACCATCGTCAACAACGGCGCCAATTTTTAATTCTTGTTTCATTGT +GCTGCTCCAATTTTTTGAGTTGCTATTGATTTAATTGCAACTCTTAGTCCAGGAGCACCG +GTTGCAGTAACAGAAACTAAACCAGTGCTTTCAATTTGAAATGAGTAAACTGCAATATCA +TCGTCTTCGTTTAAAGCTCCGACTCTCATTACTGCGTATTCGGTCGAAATTATTTCACTA +TTGACAGTGTCTACCATGATATTTATTTCTGATGATTTCATTCTTTTCCCGTCGGAAGTA +CGAGATGTAATCAAAAATTTAGCAGCAATGTACTCGCTTTTATCAAATAACATTGCTTTA +ACTGAACCAGATCCTGGGATTTGCCAAGTCCCTTGAACAGGATCATGATAATCTCCGAAC +ATGTTTCTTATTCTGTAGTTCCAAACTGAACGACCACCTTCATCTGAAATACACCAAACA +GTTACTTCAGCATATGGAGCTGTCACTACAAGCGGTCCAGAGAGTCCCACAAAGCTATCT +GATGGAACTATTGTCAATGGTTTAGAAACTGACACAGTGCCGTTTGAGTTAATAAATTTG +ACACCTTCTCCTCGTACTCCTTTGGTTAAAGTTACTACAGCTGGAAGATCGGTGTTATCA +ATATCAAACATAGATCCATTTTGAACTGCCGTAGCGAATTCAGAGTTTGCTAATTTCTGA +TAATAACCAGTTGCATGAATAACTTGACCAGTAGGACCTTGCCCGTCATCTAGTGGCATT +TTTCTTTGATCGCCAAATGCGTTATAGATGGCGTTAATATTAGAGTTTAATTTTTCACCG +CCGTCGAATAGGATATCACCAGTAGAGGCGTTTCCGATTTCACCGACGTCAATGAGTTGT +TTAGGTTCTTGTATGTACATATCAAATCCTCAAGTGATATCTGTCTATGCTTATATTTAT +TCACAAAAAAGGGACCCCGAAGGGTCCCTAATTAGAATTCGAAGATGATGTTAATTTCTT +CTGTTTGGTCCATTGCCATTATAATAGGAGCTCTATTTTCCATGTATATCATTTCACCTG +AATGCCTTTCAAGCTCATGTGGGCTATAATAAAGACCTTCAGCTTTAACATTAGGATCAC +TAGGAAGAGCTTTCTTTTCTAATGGATTGACAATTACCGCAATTTGACGAAATCCAGAGT +TTCCAGGTAATGCAGCATCAGGAAAATATACCGAGTCAAAATATGCTTTAAACCTAATGG +TATATGCTTTTACTCTGTAAATGATATTGAAGTCATTTTGTTGCCATGTCAAGTTGTTTT +GAAATCCCCAACGTTGAGGATCTTCTGCTACTTCTTCTGGCCAAGGAACTACAATATACT +CGTTTGTGCAACGGTTGATACTTACATCAGGTGGAATCTCATACAAATATTCCCAAATGT +ATCCATCACCAGTATCAATTTTCTTCTGATCTGAAATAGCATCTCCTCTACCTCTAGGTG +GAGCAAAACTATCTATAGATGAAGTCCATTTACCACCGAGTTTAATACATTCGTCTTTGG +TATTCATTCCTTGAATTGAGCATGTTCCTTGAGAAGGAATATCAAGTACTCTATATACCA +ACCATCCAGCACCAACTTCGGTAGCATTATATGGAGCGCTGTTAACAACTACTATTTCGC +CAATTTGGAAGTTCTTGGGATTAGGATAACGAATATCACCCCAATCCTTACGTGGAACAA +TAGCATCGAGCATTGATGGCATAACTTTAACGGATCCCATCATATTCGTCCACATATCTA +CTACACCCTGTGTATCATCAATTGGATAAGGTGGAGCGAACCCCACCTCGTTTTCATTTT +CAGACCAAGGTATAGAACGACCAAATGTAATGTAAAGAGAATTTTTGTCATCACCATCAC +CTATTGAGTCGTGAAAGTTTTGCATTTTCTCTGTGCGAAATTTGGATGTAACAATTGCGC +GATAAATTACGCTTGAATCATTCATTTATTTTAACCTGTGTTGGATTTTCAGGATCACGA +GGAATACCAACCTTATCAATAAGTCTATCTTCAACTAGATCTCTGAATTGAGAAAATGTA +ACAGCTGATTGATCAAATAATGGACTCATTGCTTTGCGGCGTTCGGTTGGTGTCTGACCT +TGAAAAATTGAATTATCGTTTTCGGAGTCATAATCTGCTGGAACCGGATATGGAATACCA +GTCATTGGCCCTGCAGTGTAAATAACTAATCCAGTAATAGGATCTTTTTCTGGATTTCCA +TTTGAATCCAATGAAGCAACTCTGTCTGGATAAAAAGTAGGAATACCAGCATCCCATTTA +TAATTCTTATATTTATTGATTATAGTCTGAACGTGCTTCATTGTCAGACCCACATTAATG +AACATAGTCAATAATGTGATACCAATAAATCCAAATCCAACTGGATGAACAAACCGAAGC +ACATCATTACGGTAACGAGAAGTTGGAAGATTAGACTTTATCTTCATAACGTAATAAGAA +CGATTTCGGTTGATATAGTCTATGTTGTTTTCAACTAATTCTTTGCCACGAACTCCTCGA +ACAATCATGCCATCAAATGACAACATACGCTCTGATTTAACTTCCTGTCCAACAATAAGA +CGACCCAAAAGGTTGTGTATTGTAACTTTCCACTGAAGCTTACCTTTGGAATAAGATCGT +TCCAAATAAGTCACGTTACATCTTCCGGTTTGAGTATAAATTGTTTGACCAACTAAATTC +TCGTTGATAGAATCAGATTCAATAATGATGTCGTATTCTGTGCCGGAATTTGACTCAATT +TCAATTTGAACATCTTCATTATAAAGAAGCTTAAACAAAAATTGATATGAAGCTTCAACA +CCTTTGGTTGAATAAAAATCTGAACGACGAGCTTCAAAGAATCTTGATACTGCATCGCGT +TTATCTTTATTCAAATAGATATTGCGTTTGTATATTTCAGACCACAGATATTCCCATGAG +TCTTTTTCACGAGGATACTGATTGCGAATAAGATTCAATAAATTGTTGTACTGAGTTCCA +TAACCGTCAGACAGATATTGAATATAAGCTTCACAGAATTTTTCAAAATTACTGTCATCA +AGCAAATATGAATCTGGCATCATTTTATTGATCAAAGGACGTAGATCTGGATCTTGCTCT +CCTGACCTTTCTTCCGGTTTCCATTCCTCATTACGTTCTTGATTTTGGAGATATGCTTTA +AGAAATATCTCAGAAGGCTTCCAAATAATTTTTACTTCATCACGAACTCGGTAATTGAAC +TCATAGTATGAAATTATTTCGCCAGAAGACTTATAAAACAATACTCCTGATGCGTACTTG +GTAAAATAGTTGAATTCTATATTAGGAGATGTTACGGTACAAACTCCTTTATCCCATATT +TCATGTAATACTCTATCTGGAGAACCAGAACCATGGGTATCAATTATTTTAGCATGAGTG +AAACCTGAATAAACTACGACTACTCTATTAGAGTTATCAATCCAGCATCGAGTTCCAGAT +TTACGAGACCAACTGAAGAATGGTTCGGCATAATACTGCATCGGTCCAGGTGTAAAACTT +TCAAATCCAGAATCTTTATTAGATCTGAAAGACATCATGTGATAATGTTTATCTGATAGC +CATTCACGAGGAAATTCGTATTTTACAGCTCCAAGCAGCTGGTACTTATCTGCTGTTTCA +GGATCATCGACAATTTGGTCTTTTTGGAATTTGAAGTTACTGGAAGAAATAAAGATCTCT +TTTCCGTTTGTAGACATGCTAGTATATCCATGCTCAATACGGCGTCTTTCTTCCTCTGTA +TTACCAAATACTCGTTTAAATGTTCCGTCATCCTGAAGAATATAAACTCCTTTGTCTAAA +GAATCTACAACGTTTTCAGGAATAGTCGGATCCATTAACTCTTCTTTAACTTCTCCAGTA +ATAAGAACAAATACTTTTCCATCAACTGAATCCATCTTATAAACAACTGCTTTACTATTA +CCGGTTATAGTCAGAACTTGGTCTTCAAACAGCTTTTCTCCAAATGTAGGAGATAAAGGA +TTTTGATCTATTGGAGCATTTTTAGTTTTAGCAAATCTAACTTTATCTCTAGCAGCTACA +TAAACGTAATTGTCATTGGCGGTAATAGCTTCTGCTTTACGAGATACGTCTCCTGGCAAT +GTCGCATACGTTCCAAATATTTCTACATCAAATCCAAGCTTTAATTGATCTCCAATTTTA +GCAAATGTGACGTCCTGTGAAGAAAAACGAATTTCATCAGAAGACCAGCGGACATCATTA +CTTTTGCGTCCGTAAAACAATTTATCATAACCAAGCAAATATGTAGTATAATCGGTTTGA +TAATATGGTGTCCGTGAAACTGGATTACCTGCCCTGTCAGAAAGAAGTTTGACGGCTTTC +CAAGTTTGTCCTTTGTCGTTTGACACTTTTACTACAGGCTGAAAGCGCTCAAATAGGTAA +AGAACACCCTCAGATTCCATAAGCATGACTCGATTTACGTCTTTACATACCGCTGTAATA +GATCCTTGAATTTCGTGATATTCTTCTTCTTTTAATACAAAATTAGAAACTGAAGAAACA +ATCTCATAGTTTGGGCTAAATTGAAATGATTCATTCATCAAAGCCGCATAAATGGTATCA +CGGTTAAAATTGACGTAGCTTTGATTATTTTTATTGAACTTTTCCTCAATAAACTTTTTA +GCTAACGTCATTTCAAGCATAGTTTCAAATGTATAAGCGTTTTCGCTAAACATTTGAAAC +TCTTCAGTTTGAACCCAATTTGAAGGATCAAATCCTTGCGCTGCGGTTTGAACGCGCATT +GTGTAATAACGATCAGGAGACACAAATGTATCTTCAAAATATTCGTTAGTAGCAACGTAT +CCTAATTTACGCCACTGGTAATTTGATGGGGGAATAATATTCCCCATCATATCTCTTGTT +TCTGCGAGTTCAACAAAATAGTAAAAGTTAGCACCAACATCATCCCATTTAATATAAACA +TGGTTGGCTGATAATTTAACAATTCTGAGACTCGTTACTGATGGTGCTTTTACTGTCATT +GCGCAATAGGCTCCAATGTTATTGTTGTATACTGTGGACGTAGATCATTCTCAAACACGA +TTAATGAACCGTCTCTAGTATAAATGTTATCTTCCACTGGATCTGCATAAAGTTCGATTG +TTTGAACTTCAAACTGATCAGATGAAAGATCTATAGCTGAAATATTCCAATACGTAGTAT +CTCCAGGATAATTAATTTCACCTATAACGAAATAAAGTGTTTGATCACCAATAATTTCAC +GATCGAAATCTGTTCCTGGATATGGTTGAATATCGGTATTTTCTTGCACATCACCCGGTT +TAAATGGCCCAATTACTACTTTACCTTTGCCATCTTCGTTTCGATCTGTACCAAGAATCC +GAACATTATAATCTCCATTTTTTCCATGAAATGCAAAAGCGTTGGATTTTAATGAACGAT +TAGTCATCTGATTATAATATTTAATTCCAGATTCTGGAGTCTGGAAAAAGTTCTGAATTT +CACGAACCATTTGAATAGTAGCTGATGAACCAATAATACTGTGATCGGCATCATCAATAT +AAGTCATCATTTTAGATTTAGCAAATGATGCGTTAAAAATTTCAACTTCTTCAATGTAGT +AACGATCGATTTGATCCAAAATTTTACCACGTAACCATTGGTCAGATTCTTGCAATTTAT +TCAAAGCGTAAGATACTTTGATATTATGACGAAGGAACAAATAGTTAGGTGAAATAACTG +ACGGAGTTATTGGTGCTAAGTTATACGGCTTCAAGTAATTTTGAATATCTTCACGCTGTA +CAGATGTTAAGTACAATCCAGATTTAGGCTTAATTGCAATAAATGCATAACCAGGTTTAT +AGTTATCAGTGAATGTTTGAACAGCTTGAACGATTGAACCAAATCTTTCTGAAACAAATG +TGTCATAATCGCTAGCTGTCACGCATCGAGCTTGAGTTTCACGCTTGATAGTTCCAAGTT +CACGGATTCGTTCAATATCTTCTGGATCACCGCCGCCATCAGCACCTACATAATCTTTTG +AATTATCTGGGTTTTCAAAAATACGTTGAACTGTGATATAAGTTAAAGTATCTGCATAAG +AAAACTCAGTTGCACCGTTAGCAGCTTCACCGTCAGTTCTGATGTATTCTATTACAATAG +TAGAATCTTGAATAGGTTTTAAACCACCGATATAGTTTGATTCAAGTACTCCACCCGCAA +CAGAAGTCGATTGTTCACCTTCACCAAAGAATATTTCGGTATGCCCATCAACAGTTTCAC +GCATATAATAAATCGTAGAAGTAGAACCAGCATGAACCATTGAACGGCGAGTCCAGTTTG +TCCATTCTGTTCCATTAACAGTTAATTTCACTTCATTACGATCTATATTCGGATCACGAA +TAAGAATCGGCTTCATTTTATCGTAACGCAATTCAGTACGAACGATTCGTCCCTGCACTA +ATTTAACTCGTGGAAAATATTGATTATTCGCATCTTTTACTGCTGTAACTTCTTCTGTCG +TAACAAAAGAATATGGATCAGCCGAAGTATCACGAGCATATGCTAAAAATCTAGTTCCAC +GCGGAATGCGAAGCATATATGGGTTTAATGCGTGAGTACACTCCAACATGATTTCTGTTT +GAGCTGCTGATCTAGATGAAGGAAAATATCCATTATCTTGAGCGCCTTGTACAACAGAAG +AACGAAGGTTTGCAGTCCGCATAAATGATTCATAAACTGAACTGTTACCAAACTGTTGAA +TATAAAGAGTGTTGTATGCTAAAAGATCGAGCAATACGTTTAAACGAGAACCCTCAAAAT +CATAATCTAAGAATTCGTTTTGTCCGCGCAACCAATCAAGTAAATCTCTCTTAATTTCAT +TGAATGTTCCTCCAACGAAAATATCTGGAATGGCATTGGCTGTGCGTGTTAATTGATAGT +TAATTGGATCTGCCATTATTTTATGAACACCTTATATGATGATTGCGAGACTGTGTCTCC +GCATGAAATTGGGTCAGCCATTTGAACAGCTTTCTTTCCAGTAACAAATACTTTGGAAGT +GCGGGGTTGAACTGCCCCGCCATGTGTATCATAAGGCTTTATTGTTTTAGTGTGAGGAGT +TATTTGATCTCCATCTACCAATACAGGAATTCCACCAGTAAAAACCTTACTTTGTGTAGA +ATTAACTTCGGTCGGTGGATAAGCATCGTGACCGGAAGTAACGCATTTATCGTATGATAG +TCCAGCCATCATCCTCTCCTATAAACATATTCTCTTAATTGATTTCCCCATTTTGACCAG +TTACCGTAAACAAGCTGTGTGTATGTTTTAGTGATTTTCTTTTCTACCGGAGGTGTTGTA +GTACCACCTCCTGATTCACCAGAACCACCAGAAGTATCTTCTTCCTGGAAGTCATATATA +CATTCAACTGTGTATGTAAAGGTCCTCTCAAGTTTAGAGGGGGCTCTCCAGAGATAAAGA +TCAACATCTTCTGCGGGAGGTAATTCATCCCAACTTGATGCAGATTTTCTTTCATCTCCT +TCTCTATAAAGAAGTGAATCACTACCAACCGAAAATACACTTTCGTAAGTTCCATGATAT +CTTGCTCCAGAAACATTTATTCCTGGAGTGGGCTGGTAATCAATTATATTTATAGACTTC +AAAGTCTCAGTTAACGGGTCAAGTTGAGCAGTAAAAACCACATCAACTTGACCTCCCTCT +TGGATATCGCCAAGGTCATTATTAGCTGGAAGTATCTGCGCCATTAGCCTAGATCTATAC +GTGAACCATCAATAGTGTATTGTCCAGAAGCTTTAGAACTCATCGTGCTCATTGTTTCTG +ACCAATTACCAGCAACAGTCATGTCTACATTACCAAGGACAGACCATTTGACGTTTCCAT +TTACAGTGTAATCGTGATTGCCTTGAACTTCAGTTTTAGCATCACCCTCGACTAAGATGT +CAGCGTTTCCTTGAACTACAACTTTTATATTTCCTTTAACTAAAAGAGTCCCATTGCCTT +CTACTGTCTTGGTTTCATCACCGCGAATAAAAATGGTATTTGACCCATCAATTTGATGAA +GTTTGTCAGCCATGTTATAGTAAATTTCATTCGCGCCGACGTTAACATTTTTGTCACCAG +AAACAAGAAAATTACCGTCACCGTTTGTTATATCGTAAAGATCATTTACAGTTTTACGAG +TGCGTCGGCCGTCAGGAGCAACTTCTTCATAAGTGCCGGTTGGGTGAATTAGGCGATAAC +GTTCATACCCTGGTGTATCATCGAATTCTTGGATATGTCCAGACTCAGTTTCCATCGTAT +GCACATAAGGATATTGTCCTTCATATGAAGATACAGGTTCTTTAAAAAGAATCCTTGAGT +CATTCGGAATTGGTGGTTCACTCGGATCAGAGCTTGTGCGAACTACCGCTGCCGCAGATA +AATCTTTTTTGCCTGATGTGCTTACTGGAATACCATATGACTCCATATTCCCTGTCAATA +TGATCATTGATACTCGAGATGCACGTCCTTTTGTTTGTTGGAACCACAATGAATCTCGTG +CAGAGTCATATGCTTTTTTCCAATCACCGACGAACATGGCTTGAAGCATATTATTGAACT +TAGCAACACCGCCTACACCCATTTGAAATGACATGTTCTCAAGAGCCATTTTTCTTGATT +TGTTCATCTTAGCATAAACTGGGCCAACTTTCGCGTTAGTTTTAATATCCCTCTGAACTG +CGTCTAAGTCTTCTTTAAATAAAGCGGATGCTTCATCCATTGAAATAGAACCAGGATTTC +CCTTTACTTCTCGTCCAACCTGCTTAGATAGAATCTTGTTGATTTGATTCATATCTCGTA +TTTGTTGCATAACAATAAGGTGACCGATACCGATTGTTGGATATCCTTCGGAATCCCAAT +AAACTTTCAAACGAAGACCTTCGTCACGACGAAGCATAGCTTCGATGGTATAGTCGGGAT +TGTTATCTTCTGGAATATCAGCTAAATCCATATCATCAGGATTTATACCAGTGTCAAGGT +TAGCATCTTGAATTATGTTACTGGTTGAATCATATCCTACTTCTCCGCCTTGGTTCAATA +CGTTAGTATCATTTCCAAGATATCGAGGATATTGGCCGGTTGGATCAGAGAATCCTTCTG +TGGTGTTAGGGCGAACTCTAGAATTAGCTCCATAGGTACCCATCACTAAACCGTTTGTTC +GATATTTGTCCAACCAATGACCATATACATGAGTGCCTTCAACCGGGCCAGTAACTGATC +CACCAATTCCAGATATAGAGGCAGAAGTTATTGGCTGAAGAACACTCATCCATGGAAGAT +CTTCAGTTGGGATACCAGAAATAGATCCTTGAGTCTTTTGAAATGGATGTAATCCAATTA +CTCGAACTCGAACTCTACCTTGCTTAAGAGGGTCCATTCGATCTTCTACTACACCAACGA +ACCATTCTACTGCATTACTAATCATATCCATTATGCTATCTCCATCTCACGAATTAAATC +GCTTAAGAATGAATCTATGTCAGCAGGAGAAATTATCTTGATTACGCGCTTTTGCTCATT +ATCTAGCACCGACGCTTCATAAGTATCAACTGCTGCTAAAGCGCCATTATATTGCGGGTA +TTTCATTTCCAAGTCACCTTTATCATACCAAGTCCCTGGATTATTGGGGTCTTCAATAAG +GTTGAAATATTTTTCGCCTCGATCATCGACATGATAAAGTACTTGGTTTCCACCAACCTT +TTCATATCTTTGATCAGCAGCTTGATATGCAGCTTCTTGTGATGTTATCCATCCATAGTA +AGGGTCGTAGTTTTCATTACAGAAAAGCAACACCCAATAAAGTTGTGTGTTTCCATAGAT +CTGATAAGCTAATTCTTCTGGACGAGGACTACCTTGAATGTAATAAGTACGAAGACGATA +TCCAGAAGCTACTCGTTTGAAGTATGCTTTATAATTCCTGAAAATATCAGTCATTTGAAT +AGTCTTAGCATTTTTGTCCACTGTTTTAGCTTTGTAATCTATGGGATCAAAAAAGGAAAA +TATCATGGTGCCTCCCATTTATAAATAATACTAATATTTATTAGAGGAGAACAATATGGC +TTACTCCGGAAAATTTATGCCAGTTAATCACCAAAAATACCGTGGTGATATAAGAAAAAT +TACATACAGGTCTTCATGGGAAAGTTGGTTCATGAAGTGGCTTGACACAAATCCTCAAGT +AGTTAAATGGAATAGTGAAGAAGTGGTAATTCCATATTTTAGCAATGCTGATGGAAAGAA +ACGTAGATATTTTATGGACTTCTGGGTTAAATTTGACACAGGTCAAGAATTTTTCTTTGA +AGTTAAACCTAAGAAAGAAACTATGCCTCCTCCAAAGCCAGCTAAATTGACTACTGCTGC +CAAGAAAAAATATATCGATGCTCTTTACACGTTTTCAGTGAATTCTGATAAATGGAAAGC +TGCCTTGGCGGTTGCAGAAAAAAATAATATCAACTTTCGTTTGATTACGGAAGATGGACT +TAAGCGTTTAGGGTGGAAAGGCTAATGGCTATTTTTGAATACATCAATGAAGGCGTTGCA +CCAGCTCCAAAGCCGGTTTCACGAAATGAAAAGAAATGGGTTGAACTTGGATTAGAGTTC +AAGAAGGCAAAAGCTAAAGGTGCTACTGCTAAATCATTTGCGGAAGAAAAAGAAATTCCT +TATGCAACATTCACCAAGGCAATGTCCCGGTACGCATCTAAAATCAAGTTCGCGGAAAAG +ATCGCGAAGCTTGAGGGTAAACCAACTCATAAGCTTTCTAAACAAGAACGCCAACTGATA +ATGATCAATAGCTTTAGATCATCGATCAGAGATAAAATTAAAAACGAAGGCGCAGCGGTG +AACAACAAGTCAGCTAAATGGTTCGCTGACACTATTAAAAAGAACATCCGTGGTCATTCA +GTATCTAAACCTACTCCAGGTAGATTATATGCTTATATGTATGATGCTAAGCATAAAGAT +ACACTTCCATATTGGGATAGATTTCCACTGATTGTTTATCTTGGACTTGGTAAGCAGGGA +TCAACTACTTTAATGTATGGCCTGAACTTACACTACATTCCGCCTAAAGCACGTCAGCAG +TTTTTAGAAGAACTGCTAAAGCAGTATGCAAATACACCTACAATTACTAATAAAACAAAA +TTGAAAATTAACTGGAGTCAAGTGAAAGGATTTGCTGGTGCTGACAAGATGATCAAGGCG +TATTTGCCTGGTCATATAAAGGGGAGTTTGATAGAGATCAAGCCCAGTGACTGGGCAAAC +GTAGTTTTACTTCCTCTTCAACAGTTCATATCGAAAGGCAAACGTTTCTCTTCAAATACT +GTCTGGAAATCTTAATTCTATTTCCATCTTCCGGTTGATTAGATGTTATTGATTGACCGG +AAGGACAAATTCATTATAACACTCCCTAGAGATAAGCATATGAATACACAACAGATTTTT +AACCAGACCAATATCACCAACTTCTTGGTGGACATCCCTGATGTCGGTCTGACCAAAGGT +TTTACGCTTAATGCGCAATCAGCTAATATACCAGGCATACGGATTCCCATCACTGATGTG +CCATCGGGCACAATGGGGTTAGGACGAGCAAATCTTCCAGGCTCAACGTTTGAGTTTGAC +CCATTGATGATACGCTTTTTGGTTGATGAAGAACTTGAGTCTTGGCTTCAAATGTATAGA +TGGATGATAGGCATCAATAACTATCAAACTGGTGATAACTTTGCTTGGAGAGATGGTTCA +AGTCCTGAACACGTTTCAGTTCACATCTTAGATAACTCTAAGACTCGCATCGTGCTGTCT +ATCCATTATTACGGATGCTGGATTTCTGATCTTGGCGAAGTGGAGTTCAACACAACAGAA +GATACTGACCCGGCTATCACATGCCAAGCTATTCTTCCTTACAAGTATTTGCAAATAGAA +AAAGATGGTAAAATAATTACTACAAGACAAAACATGACTGAAGCAGCAAACAGTCGTATC +GGAATGCATCCTTCTATGAGGAAATAATGAAACTATTCTTTTTGATTGGCAAAAAACGTA +GTGGTAAAGATACAACAGCCGACTACATCATGGATAACTATAACGCGTTTAAGCATCAGC +TTGCGGGTCCAATTAAAGATGCTTTGACTTTCGGATATCAGTCTGCGGTAATGGCTTATG +ATTGCAACCGAGTTCATCCCATTCTCACTCGTAAAGAATGGGAAGGTGAAGGTTACGACC +GTGAAACGAAACTCAATTTAACTACACAACAAGTATACACAATCATGGAGCATTCTATGT +GGTACTTGAACAATGAATTGAAAATTAAAGGTGTACGTTTCAATTCAGAAGGTGAAATGA +GTGCTGGAGCATTCGGAACTATTAAGCGGGTCATAAATAGTATTGAAGAAGACTGGTCAG +TACGACGTCTCATGCAGACCCTTGGGACTGATATCATGGTCAATCACTTCGATCGCATGT +ACTGGGTTAAATGGTTCTCTGTTGTCTATATGGATTCATTCGATAAAACGTTTGAATACT +TCATAGTTCCAGACACTCGTCAAGACCATGAACTTGATGCTGCTCGGGCGATGGGTGCTA +CAGTAATTCATGTAGTTCGTCCGAATAACGAAAGTTCGAAGGTTGACACACATATCACAG +AAGCTGGATTGCCTATTCGTGAAGGCGATACAGTAATCATTAATGACGGTTCTCTTGAAG +AACTTTATGCTAAAATTGAAAAGGCTATCAAATGACAGACAAAATTAAACAACTCGAAAC +CGAAATCGTTTACCTAAAAGCTCGAGCTTTTGAATTGACCGAAGGTAAAGCACAGCTCGA +ATCTCATATCCAGCAATTGTCTGGAGTTCTGTCTAAAGTAACAGAGCTAGTTGGTATTGT +AAGCGAAGATGGTTCTGTTAAGGTTGAAGAATTGTACGCAGCTATCGAAGCTATGCTCCC +TAAGCAGGGCGAAGCTGAAGTCTAATGAAATTCCAGGACTTTAGTTCTGGACTCTACGTT +GCAGCAAAATTCAGTGAACAAACACTAGATGAAATTGAGAACCTTCAGAGAGATTTGAAG +GTTCCTAATCCAGTTCCTCGGCATAAAATCCATTCAACTATTTGTTACTCCAGGGTAAAT +GTTCCTTATGTAGTTTCAACTGGAAGTTTTGAAGTTGCCACTAAAGGACACCTGGAAATA +TGGGATACACAAGATGGTAGAACTCTGGTTCTTGTTTTAGATTCAGAGTACTTAAAGTTC +CGTCATCAATACGCCAGGGCATTAGGAGCTACTCATGATTTTGATGATTACACTCCACAT +ATTACACTGAGCTACAATGTAGGACCTGCTCATTTTGAGGGTGAGGTCCAAGTCCCTGTT +GTTTTAGACAGGGAATATAAAGAACCACTTAAAACCAATTGGGCGGAAGAGTTGAAATGA +AGTTTACCGATTTCTTAAATGAAGCGATGGAACCTGCAACCTTTCGTCATGTTGCAGTCA +CATGCACCGAAGAAGAATTTAAGCAATCTGTTGCTAAGATCAACTGGTTATCAGGCGAGC +TTGTAGATGGAATCGCTAAGTTTTTCGGACCAGAATGTGACATCGATGATTGGATAAAAT +CAAACAGGAATTTTGTAAAATGAAAACATATCAGGAATTTATTGCTGAAGCCAAGGGGCA +TGATGAACTGCCTATAGTTACTAAAACTATAGACGGAACATTAGCGGATTTCAAATCTCT +GCCATCCGACAAACTTCAAAAGCTAACTGCGTCAGTTTCTGAGACTAAAGGTAAAGTGAC +CTTCTCTGCACGAGGTTCTGCGAATCTCAAGAAACTTCTGAAAGCAGTAGGAGCTTAACC +GTTTACTTTCCTTGAGGGCTATGATACTATAGCCCTATCAACAACAAGGAGAATAAAATG +AAACGCTGTGAAATCATTGGAAACATCACTACCGTAGTAACTCTAGGACTTCTCGGAACT +GCCATCGTCGGATGGCCATTCCTTAAAGCTCCTGAACTCATCACCATTATGCTATCAGCA +ATTAGCACTGGTGCTATCTCATTCGTCATGGATAAAATTGCAAATGAAAAATCTCGATAA +ATTCAAGCAGTACATGAAAGATCACTACGACTTCGATAAAGAAGAGTTGACTGTTTGGGA +CTATGCTGCTGGAGGCGTAGCAGTTGGTCTGGTACTCGCAATGATTAAAAGTATCACGCT +AGTTGTTGGTGTTGCACTGTTTATTGGGCACATGACCTTTAAGAAGTAATTTGCTTAAAG +AGATCAGTGTTATTATTAATCTATCAACTAAACATAAGGATTTACATGAAACGCATTGTA +CTGAATATTGATCACGACGCTACCTTTGAACACTGCCATGGCAAAGTTCCTCCTGTTCTG +CGTTTTGTAGTCCGCACTGATAAAATTTGCGGTTGCCAAGAAATGCTAGATGGTTCAGTT +AAGGTAACAATTGATCAAGGCGAAACTCGTCCGATTATGTCAGTAGTTGTACTGGAAAGT +TTTGAACAAGTTTCATCTGCGATGATGGAGTGAATCCATGAGTGAGAAAAATAAAATGAC +AATAACTCAAGCTTTGAATGAACTGCTTTCGAAAATCGGAAGCATTAAAGCTCATGATTA +TTACTCCGCTTCAAGCGGTATAAATATTCCTATGATCCTGGTAACTCCAAAGTTTACCAA +GACTGATTCAATGGGAAATGAAATTTTTCCAGGAGATATCGTAGCGTTCACTACAACTGG +TAAATCTCCTGGTTCGCAGGTTGGTATTCTGCTTGGTTTCACTGAACAGGGTTATCGAGT +ACTTCCATTCAATACTTCGAGAAATAATCCTGAATGGCGAACTTTAACTCGCGGTATTAA +TACACCATATGATGTATGGTTAGTGAAATCTAAAGGATCTGTCATAATTTAAGAATTTGG +GGAGTTATTTCCGTAGAGGTAGCGGGGCAGACTGTAAATCTGTTGCTCATAGAGCTCGGG +TGGTTCGACTCCATCACTCCCCACCAATTCAGGGTTGCTAGCTCAGTTGGTTAGAGCACC +GGACTTTTAATCCGGGTGTCCGAAGTTCGAATCTTCGGCAACCCACCAAATAAGGTCAGT +TGGCTGAGAGGGTAAGCGGCGGACTGTTAATCCGCGTCGGTAACGACAAGGCAGGTTCGA +TACCTGCACTGACCGCCAAATTAATATTCTTTCTAGACGATGCTGCTTGCAGCCTCCGGA +TTGGGAACGCGAACCATTCTGGACCAGTCGTGACAACGCATCTTATTGCAAGAGAGAATA +TTGATATGGTGAATAAATAATAAAAATAACAAAGAGGATTACCATGAAAACTTACAAAGA +ATTTATTGCTGAAAGCAAATGGTCTGGATTTAATTTCTCTTATGAGATTAAAGGTGACAT +GAAAGCTTTCAAGAAAGTATCAAATGCTGACCTTCAGCGATATCAAGCTGGCATCGAAAA +AACTAAAGATGGACGAGTTATTGTTCATTCTGTTGAAAATAATGGTGCCGAAATGGTCGT +TTATAAAGCGTTTGGTACAGACTCTGAGCAAATGAGAGATCTAAAAGCTCAGCAACGCAA +GCAATACTAATAGAAATCCATGAGACGTCATGGAAAGTCGTCCGAAACTTGTTCCCTGCT +ATGTGGTCCCTCACTGAAACCTACATATTACAGCAAGAAGGGCGCACCTAATTTGGACCT +ATAGTTTCAGCGGTTAAAATACTCGCCTGTCACGTGAGAGTCACGGGTTCGAATCCCGTT +AGGTCCGCCAAATACGAGGCAGTTCTTGAAGATGAGTTAGAGTCCTGTAAGTAAATGCCG +AGGACGAAGTAAGTTGTTCCCACGGGATAAGCTCTATATTCGGAAGATTATACCTTTAGC +GTGTTCTACATCGAGCTACTTGTTTGTACTTCAAGAATCCGGATAGATGCGGGTTAACTT +CAGTTGGTAGAATGACGGGTTCATATCCCGTTACGCGATGGTTCGAGTCCATCACCCGCC +TCCAAACAATTTGGGGTATAGCCAAGTTGGTACGGCAGTAGATTTTGATTCTACGATTCC +CTGGTTCGAGTCCAGGTACCCCAGCCAAATTAATATTCTTTCTAGACGATAAACGGAAGG +CGCGCTCTGTGAAATCGTGACAAACGTTAGAGGCACCTGGAACTGACCGGGGTCCAGTGA +GAGAATATTGATGTGGCCGTAGTTCAGTTGGTAGAACTCGAGATTGTGATTCTCGTAGTC +ATGGGTTCAACTCCCATCGGTCACCCCAATTCGGAAGCGTGGTAGAGTTGGTTTATTACA +CCGGTCTTGAAAACCGGAGGCCGTAGTGATACGGTCCGTGGGTTCGAATCCCACCGCTTC +CTCCATTTCATAAGCTATTTAACTTCAGTTCAAGTATTCTATACAGTTTACATGGTATAA +ATATCAGTATATAATAACCTCAATTCAATAAAAGGATATACCATGAAAAGTTTAAAAGAA +TTTTTAGCAGAAAACACTGCTCAGACTTTAAACGAAGATGCAGACGATGCACTCTTTAAT +CAGATTTCTAAAGCTATGGACATTATTCGTGTCGGCAGTAAGCTCCGTAAAGCTATGGAA +GCTTATGAAAAATCTGGTGATAAAGACGCTTTAGCCGCTATCAAGAAAGCTAAATCAGCA +CTTGATGCTGCAAGTGAAGCTCTGGTAAATGTTTCTTCTTCACTGCCTAAATAATTCGGT +TAGTTGAACCCCTCTGCATCCATCGTATAGCGGCTATTATGACTGGCTTCCACCCAGTAG +ATGAGAGTTCGATTCTCTCTGGATGCTCCAAATTAATCAGTACGTAGCGCAGTCTGGTAG +CGTAGGAGCTTTGGATGCTTCGGGTCGTAGGTTCGAATCCTACCGTACTGACCAATTTAG +TTCTTGTAGCTCAGTGGATAGAGCAACGGTCTTCTAAACCGTGGGTCGTTGGTTCAAATC +CAACCAGGAACACCATTTCGGCCCCTTAGCTCAGTTGGTTAGAGCAGTCGACTCATAATC +GATTGGTCGCTGGTTCGAGTCCAGCAGGGGCCACCAAACAAATGAGGAAAATATTATGCT +TTACTACGAAACCACCTATGACTTAGATAAGTCCCCTCCAAAGCGTATGTCACGCAAATC +ATTCCAAGAACGTTATGGTAGACCATTTAGCTTTAAAGAATTTAATGTAAAATTTGAACA +TGCTCATGTAACAGACGATCCTTACTATAGTGATGTTACGGGTGAAACAAAACCTTTAGT +AGAAGGTTCCCTTGAAGATTTAATTATTGCAGATTATGACGCAGGACAAGAAATATGACA +ACTTTTTACGGCCGTGGTGCTTCAATCATTAAGATCGACAAAGATTATCAAGGCGACTAT +TATAAATTTCGCCCACACCGAGATTTCATGCTAAATTCAGATTACGTATTCACATACGAT +GAAAAGTCTCGCACTTGGAAGTTTTTGAAATATCGTTTTACTATGGAAGGTTTCAACTCT +GAGTTTTTTAACGTAGAGCAACTTCTTAGTTATGTGTATAAAGATATTTGTCTTTGCTCT +AGATTCCATCCAGCTAAAGATACATTCGGAATTATCAATGTAATTCGTAGCGAAAAAGCT +GCTCTTAAAATGATGAAAATGTGGAGAAATTATAATGCTTAATTTTGGTCAAGTAATTCC +CGCTGGTTACGCGATTCAAATTGAAAGTTGGGAAAACGATGGTGATGATTATAACCGTCA +GTATTTCTATGGTCTAACAAAAGCCGATATTGAGCAATTCGCTCATGTTCTGCCTTTATT +TAAAAGCTGTCATGGCTGGAAAGAATCTGGCTTAGGGAACAAAGAATTCTCTGAAGTTGC +CGAAGAACTTGGATATTCCTATGCTGAGCTTCTCCGTGATGGTAAGATCAATCTAGAATT +CGCCAATGATTATCTTGGGTTTAATCCTGATAAAGTTGACTTGCTTTTCCAAGATTGGGA +AGAAGAATTTGAAGAAATGATTGCCGAATGGGCAGAAAAACGCATCGGTCTTCCTCGCAT +TCAAGAAATTCTTGGGTATTCGGATTCTTATGATGATTTTGTCCGAGTATTTGAAAGCGC +TAAAGTTATGTTCTTTGAAAAAGAACTCCGTATTCCTGCTGTTAAATTTGAGAAATTGCT +ATGAACATTAAACAAGACTTTAAGAAAGCTGTCCGTCACTGGATTCGCACTCGTTTCCAT +TCAATTAAAGCGTCAACCAACGGCACGACATACGATCGTTATGATACAAAATATGGATTG +CATAAATGCTATACACAGTCAAAATAAATTCCGGCTATGTTAGCGGTGAAATCTTTAACC +TAGCCATCACCCATAAACAAATTATTCTTGATTTGTTGGCTATTAAAGATGACGAAGACC +GTTTTATAGAACTTCGCATTTATTTTAATAGCATTAACCCCGGGCTTCAAGCTTACTTTA +TACGTAAGATTGGCGCCGTTCAAATAGACGAATACTCGTATGAGGCCTAATGTGGATATT +TCATCTGGCTGCGGATACCCTGCTTCTTCGTTAAGCAATTTCGCTCCTCATGGATTTGAA +ATTGATGGTGTACAATGTGCTTCAATGGAGGGGTTCCTGCAATCCCTCAAATTCTCATCA +ATTGAGATGCAAGAACATGTATGCACATTAGTTGGAAAATCTGCGAAGTTCAAGGGTAAG +AAAAAACGTTGGTGGCCTACTCAAACTCTTTATTGGAAAGGCGTACCAATTCATCGTTCA +TCAGAAGCTTATCAAAATCTTTTGACAAAAGCATATGATGCATTAGCTTTAAATGAAGGA +TTCCGAAGAGCATTATTAGCAACTCGTAATGCTACCTTAACCCACTCCATGGGCAAGAAT +AAAGAATCTGAAACAGTGTTGACAGAACGAGAATTCTGTGGACAACTACATCGTGTACGT +GAATTGATGAAATGATTTTTGCCCTGGGTATCTTAGTGATGTCCAGGGCATTTTTGTTTG +TTCCTAATATGATTTATCATCCTTCCCAAGAAAGTTCCTCTCAACCGTTCTGGTGAATTC +ATTTAGCCGTTTACATTCATTAAAGACTATGGTATAGTATAAACTCAATCAACAACAGAG +ATCATTATGAAACGTACAAAAGTGATTAACAAGTCTCGTTTTCGAAAGGGATTTGTTTTA +GCATCAGTGGTAGCTTCGACATTTGCTTTATCTGGGTGTGAAGTTGCTGATCAAACAGTT +AAGATGTATCAAACTGTAGATGAGTGCTCTACTATTGAAGCAACGGAGTATCAGTCCGCT +GAACAATGTAAAGCGTCGTTTGAAGCTGCTAAGGCTGAGCATGAGAAATCCGCCCCAAAG +TTCCAGGGCTACAACGACTGTTCAGCGGAGTTTGGTAATTGCAATTATGATTCTAGTACT +GGATCATTTATGCCTGCTATGATGGGCTTTATGGTTGGTCAGATGATGGGCAACATGCAA +GCGAACTCAAACTTCCGAGCATCTCAGCCTATGTACAATAATCCGAATGGTGGTTACAAA +GACATCTCGGGTAAAAGTTACTCAAACATTAAGCCAGGTAAACCTTTCCAGGTTACTCGT +TCCGCAATGAGTTCAAAACCTGCTTCGACAATACAAGCCCGTTCTACTACTTCATCTCGC +GGTGGATTTGGTGGATCGGCACGTTCTGGAAGTTTTGGCGGATAATTTTTCTTCAGCCGT +TTACATTGGTATGAGATGATGATACTATTACCTCATACCAAACAAACGGTAAAACTTAAA +TCGGAGAATAAAATCATGGCTAAATTCAATACTGTTACTATCGTTGAAATTACTGATAAC +TTTGGTGAATTTGATCGTTTCCGCGCAGTTCTTAACAGAGGTGAACATGAGTATCATGTA +ACAGCTATAGTTGAATCTAAGAAAATGGCTTCAATCGTAGAATATGTTAATTCTCATTGG +CCTACAGCTGAAGTTATTTTTGGCGAAAAGATTTAATGCTTTAAAACAAGAGTATAAAAT +AATCTCTCTTACACTGAAAGGAAATACTATGTCTATTCTGAAAAAACTGGTTGAATTCAT +TCGTTCTAAACTGGGTACCTTCGTTGCTCGTAACACTACAATCGAAGATCAGTACACTCG +TGCGGCGAACTCGATCATTGATGAAATTCACAAACTGCGCACTCGCTACGTAACTGCTGA +ACGTGAAATCAAAGCAAAACGCGATCTGGCGACTGAAAATGATGCTAAGGCTGAATCTAA +AGAAAAAGAAATTCGTCACATCATGGCCAATAACCCGGCACAAGATGTAACAACCCTGGC +TAAACTCGGTCTTCTGTATCGTCGAACCGCCGCAGCTCTTCGTGGTAAAGCTCAAGAGCT +GGAAGAAATGAAACTGGAAATTACAAAAACAGTAGTTGCTCTGGACGATCAGCGCCAAGA +TCTGGCTGTGAAACTTGAGTACATCCGCGAAACTCAGAAAGCTAACTCTATGGGTCTGGA +CACTGGCGCCGACATCATCGAATCTGCTGAACTGGCTAAAGTAGATGTTCAAACGATCAT +CTCTCGTATCGATACCTTCAATACTACACCTGCTGGCGTTGAGACAACCTCTGCTGATGT +AGCGGAATATCTGGAATCTCTGAAGTAATATAAACGGGGCCTTCGGGCCCCAATCGGATA +ATAGAGGAGAATATCATGTTTTATGAAATCGGTGCAAAAAATAAAGCTGATCCCAAAAAA +TTAGAAGAAAAAGACGTTGTTCCAGTAATACATGAACGTATTCGTAGACAACTTCTGAAG +GGCGGAGTTCCAGGGCATTTAATTGATAAGCTAGCGCCTCATACATTTCCAATGAGCCTC +GATTATGAGATTCATTCAGATCAATTTAAACGAATTAAATGCGGTCATCTTTTAGTTCGT +ACATGGTCTGATTTGCGAAACTTTCTTAGCACTCTTCAATCTGAATGCTATTCTATTCGT +TATACTGGAGTGTATGGTTTTTATTATAGCGACATTTCAATCAATAACTTGGACCGTGAA +ATCTCCATCCCGGGAATGACTTTATTTGAAGCAGCAGGTCACTATGCATTTAACTTAGAA +TGTAAAACTTCTACATTCGGTAAACCATTTCGTATTTCGGTTCTTATTGACCGTGAACGC +GCAACTAAACGCAACGGTTTTGAAAAGAAATATGACCTTGAATGCTACTCATCTGAACGA +GCAGAACGTGTCAACGCTATAGCTAAATTTATTTCTAACTATAATAAAACAGATGCGGTT +GATACGAATCTTGACGATTTCATTAATTTATGTCGTGATGAATTAAAGGTGAAAGAATGA +AATTAGCAAATTACTGTTTTGGACATGGTCTTGCTCGTTATGATGTATGGCCAAAATCTC +CGAGTTATTCTTTAGGTTGGTGGTTTCATTCTTTTATGATTGGATTGATGCTAATTTTTA +TCTCTCTCCCAGCTTCAATGATGTATGTAAAAGAAACTGACCGAGTTATATCTGATATAA +ATGTTGTGTTAATTGCTCTTGTAACCGCTGTTGTAACGGTATTTGTTCCGCATATTACTT +ATTTGACTTATTTTTACTTAAAACGATTGAATTATAATGTCCAAGTATTCGTCCATAACT +TGGACTATAAGAAAGAAAAGAAACGAGAGGCTCTTGAAGCTGAACTACAAGCAGCTAGAG +TAGCTCAGAATAAAAAGACTCGTGAGGCTATGGAATTCGTTATGGAGATGCGGAAATGAA +ATACTACCGTCCTGGACCATCTTATTTGTACCAAGATTCTGAAGATGGAATCGCATTGGT +ATTAATAGCATGTGCTATAGTTTCTATGATATCATCTGTTGTGGTAATGTTTATTTGGGG +CGCTATGCATAACATGGATTCTCCGAATTCAGAAACCGTTGAATGGATGGTAAAGGGATT +TGTAATATCATTCATTGCTTCATATATTTTTGGTAATGGTGAACGTCATTTGAATAATAT +TATGGCTGCAAGGAAGTGGCGCAAAGAAGAAAGGGAAAGACTCGCTGATATCACAGCGAA +AAATAAAGTAAACGAGCATAAACAACTGTTGAAATTTATTGAGAATTGTAAAAATGAAAA +ATGATGCTATGAAGAAAATCCATGACATTCTGGATGAAATGCGTGCCGCCGAAGATGAAA +TTTTAGGTCGTGCTGAAGCTGTAGCAGATGAATTCTGTGAATCATTCTCTTATGGAGAAT +ATGGCTCAGGTCGTACATATTTCCCTAAAGGTACTGATGCTGATAGTATCCCTTGGGATT +TTGAAGACGAAGCTAATATTGAAGATGGAAAATCTACTGTTGGCATTTGGGTTTCTTCGA +GTGAGATGTGCTAATGGATAATGTAGATAAGAAAGAAATTAAAGTAGCTCTTGAAAAACA +CGTCCAGGATGCTATTGATTATGCTAAGAAAATAGCAGATAAGTATGATTTGACTTTTAA +TATGTATCCGGCTTATGGTATGGGTGGAAGCTATTATTCTCCAGGCTACTTAAAACAAGA +CTTGGAACATCATCAGTCTAATGGTTATCCACAATTTGCAATTGTTAACCAATATGAATA +CTACACCAGCCTCGAAAATGGTGGTTGGGTCTCTTCTTCTATGGAATGCTAAGGAAAAAT +TATGTCTCGCTCTAATGAATTGATGGAAAAAGCTGCTGCACTGTCTAAACTGTTCAACGA +AGTTGCTGAACTTGCAAAAGACAATGATTACGGTCTGAAATTTGATACTTCCGATGGTAC +AATGGAATTCAATGACTGGTTGTCTTCATCTTGTTTTGGTGAAGGTGATGATGGCTTCGG +TGTCAATGCAGATGGTAGCATCTGGCAAAGTAGTAGTTGCTAATGAAAGCCCTTCAGGGC +TTTTGTTGTTTTGTACTCTGCCGTTTACATTCATTGGTAGATGTGTTATGATAGACTCGT +AATCAACTAGGAGGAAAAATGAATATATTTGTTAAAGACGGATATCTAAGTTGGGAAAAT +GATTATGGCACTTATGATTGTTGCTCGGTAGTTTACTTGCAAAGAGTGTACAATGACCCA +AATTATAAGCCGTCTTTAAGATCCGCTGCTTGGATTTTAGACCAAATGAAGATTGATGTA +AAAGTCAATGCTTGCGGAGTGTGGGACCATGATAATCGAGATTGGAAAGACGTTAAAGAA +AACTCTCCAATAGATATCGAACTTTTTATTATGCAGTGCAGAATGAGGAAAACGGAATGT +TGCTAGTTATTGGTTCTCGTGCTTTACACCATCATGGTTTAATTGAATCTCGTGATATCA +AAAATTCTGATTGGGACTTCATTGCTGATGCTGGTGAATGGGAAGCATTTAAAGGCCAAA +TGTTTGGAGCCAAAGTCGAAGTATCAAATCCAAACGTCAGCGCGTTTAAATGTATGCACA +ATGGTCGTGAGACTCATTTTGAAGCTTATATTGTTCATCGGTCGCCGAATGACCAACCAA +AAGATTCGAGTGAGTTACTTCTCGAATATGCGGAAGGTAACTGCAAATTCGACCGTTTGA +CTGGGTTTCGTTGGGCCAATCCGAACATGTGCTTGGCTATTAAGCTGTCTCATCGTTACA +AGAAGAACAATCCACACTTCCGTAAAACGATGCAACACATCCGATTCCTGCGTAATAAAG +ACGTGCGTCTTACTGAATATTTGATGGACATCAGCAAGCTGCGTGAAAAGGAAACTTTGA +GTTATGCTCATCCGGTATTGGATACAACAAAAGATAAATTCTTCAAAGATGATATCTACA +CCTACGACCATGATACAATTCATGAAGCGGTTGCATTGATGGATCGTCCAGCTTATACTT +TCTACATGAAAGATGGGTCTCAGGTAATGACTGATAAGAAGAAATTCTTTGAATTGCCTA +AAGAAATCCAATTGGCTGGTGTGTACGAAGAAACTTGCGTATTAGCGTTGGAACGTTCTC +AAATTCCAAACGATTTCAAAAATGTTTCATCTGAACATTCCTTTATGATGGCTTTGGAGA +AGGTTTGTACTTCAATCACGAGCGGTTGGTTCCGCGAATATGCTTGGGAAAACTACCACA +CAATCGTTGCGATGTACAAGAAGCTTGGTGTTAATGATTACATAAAACGCTTTAAAGAAA +ACCAAGATCTCCTGAAACCTTTCACTCGAGGCGAAAATGCATAAGCCATTTGAAGAAAAA +GTATGTCCAGGCTGTGGTAAAGTTTTTAGAATAAGAGCTGGTGTAGGACAACATATTTTT +GCTGAACATATTCGTTATTGTAATGCATATAAAATTTCATGGCAATATCCGCGTTAATTG +AGGAAAATATTATGAATAGCCCAAAAACTTTTGATTCACAAGTACGATTCCGCGGCGAGT +TTGCTGAAGATATCACGAATGATCAAATCAAGAACGAAACGATGTTCTTTAACTCTGATT +TGAATTTTGCTTGGGATAAAGGCGGCCCGATTACTCGTAGCTTTATTGATAATCTTCCTT +TTGATTGGACTAATAGAGATGTGGTATTCGATTCTCGAGTGCACATGTTGATGCCAGGTT +GGTATCCTGCTATTCCTGGTTATCACCACGATGATGTTCCACGTCCTGATATTCCAGTAG +GACAACATTTTATTACTGCTGGACAACCTGATTACGATAATCCTCGTTACCATTCTGAGC +ATATTCTTGGATTGGTTAATGCTGATATTTGTCCTACACATTTTGCTTATGGCGAAGACG +TTACATTTAGCCAAATCCCTGAAGGCGAATTGATTTACCGTCAATGGCACAAAGAAGTTC +TTCAGAAAATTGAATCTGGAGAAATGGTAAAACTTGAAGCCCCGGATCGTACTTTATGTG +AATTCAACTGGCAGTCTTTCCACACTGGGTCCATGGCTGTCGGTAACGGATGGCGTTGGT +TTGGTCGAGTATCTCGTAACACCGACCGTGTTAAAAAGATCACTAACGAAATTCGAGTAA +ACGCTCAGGTTTATCTGGAATTCCCAATGGAGGGATGGTAATGGGATACTCAGCTATGAA +TGTTAGTGAATATACAAAAGAGAATTTCCGTAAACTCTGGAACGAAAAGTACGCTGATAG +AATTTGCTGGATTGTACTAGTTTTAACTGTTATTGTGATTAATGGATTAGTCATTTATTT +CAATGGAATAATTATTGAGCTTATTTTTAGTGTTCCTTTGAGCGGTTTCGCCGGTATGAT +TGTAGCTTGTATTAATGACGAAATACTTAAGGCGATTTATATTAGAATTAAAATCAGACG +TAAACTTAAGGCTGATGCTAAACAAAAAGAAGCTGAAAGCTTTAGCAATTTCATAAATTC +ATGTAGGATTAAACGATGAACTATTTAGAAGAACTTCGTGCTCGTTTAGATGAAAATGAC +ATACCATGGGAAATAGTAAAAGATCCTTATGTTCGAATTTTAACAAACAACGGATATTTT +ACTCTGACATTATGTTCAGCTGTTGGTGAAAACGTAGATGAGCTTGTTCAAACATGTCGT +GCATATGCTAAGGTCTGGATTTACTCTGTTGACCCGTTAGCTGTTTCTGGTAAATTAATG +ATGCGTTTTGCGTGGGTGAAATAATGAGTGTAGCAATTTATGTAGAATCAGAATCTGGAG +ACGAGTATCTTTACTCGTTTGGTGATGGCGAAAGCGAAGAAGCTATTAAAGACGAATTGG +AACGTCAAATGGAAATGTTTTCTCCGATGTGTAATTACATGATCTCTATTTCATCTGGAA +CTTCGCCTTCTGTTGACACCCGATTGGAAGAGTTTATGTCTGAACTTTTTGATAAATCGT +GGAAATTTGAGAGGGAAAATGTCTAAGAAAAAAGAACTATCAGCTGGAATTTTATTCTTC +ACCAAAGATTCTCGTCTTTTCATGGGTCGAGTGACTAACTCTGGTTTAGGTGGTGGCCCG +TCTCGTTGGGATATTCCAAAGGGTCATGTAGAAGAAGGTGAAACTCCTAAGCAAGCAGCT +ATCCGTGAATGCCAAGAAGAAACTGGATTCACTGATTACGACCAGGGTTTACTCTTTGAC +CTAGGCCAACATGACTACGCAAGCAATAAAGATATACATCTGTTCGGATATCCTGTCCCT +ATGGATCACTCGCAATTCAAGAATTGTATTTGCACAGCATATCATACTGCAGAAGACGGA +ACGACATTTCCTGAAATCGATGCATTTGCTCTGATTAAGCCAGAACAGTGGAGTTATGTT +ATGGGTCCATCGCTGTTCAATGTAATGCAGAAACTTTACCCGGCACTAGCCAAACGATAA +ATACTCCTATCAAACGATAGGAGACGACATGAACATTTTTGAAATGCTTCGTATCGATGA +AGGATACGATTCTAAAATCTATAAAGATACACGCGGATATTACACTATTGGGATTGGTCA +CCTTTTGACTAAAGACCCGTCTTTGGCTGTTGCTAAAGCTGCCTTAGATAAATTGGTTGG +TCGTAAGTGTGACGGTGTAATCACTAAGGCCGAAGCTGAAAAAATCTTCGCTAAAGACGT +CGATGATGTTGTAGCTGGTATTCAACGTAACGCTTTACTGAAATCAGTTTATGATTCTCT +TAATGGAGATGATCCGCGTCAAGCAGCATTGATGAACATGGTTTTTCAGATGGGTGTAAC +CGGAGTTGCTGGATTCACTAACTCAATGGCTCTGATTAAATCTAAACAGTGGGATAAAGC +CGCTATCAATTTAGCCCAGTCTAAATGGTACAAACAAACCACCAATCGTGCTAAACGCGT +TATTGCAACATTTAAAACAGGAACATGGGCTGCATATGAAAACCTATAAAGAATTTTTGA +CAGAATCTCAATCTAAGATTGAAGAAAACACTCCGATTGTAGAAGCAACAATCAAAGATA +AAGAAGGTTCAACAAACTTCTCTTTGGTATCAGGAAAAGACGGCACTTTCTTCCAGATCG +GTTCTGAACGCTTCCAGACTTCTAAATTGCAGGATGCTGCAGTAGCTAAAGTTCTGCGTG +GCGGCGGTAAATGGAAAGGAACTGAAGGATCTACACAAATTGGTATTGCTGTAGATAATA +ATAGCGCATTTTTCCGTATCGGCGGTGAGTCTTTTACTCTGAGTTCTAAAGCATTCAAAG +AACTTAAGGCTGCGTTTAAGTAATGTTGTACATCTCCTGTGGTTGTGTTACTATACCTAT +ACTGACACAGGAGAACTAAATGACTCGTATTAACTTAACTCTAGTATCTGAACTGGCTGA +CCAGCATCTTATGGCTGAGTATCGCGAACTACCTCGTATCTTTGGTGCAGTTCGCCATCG +TATTGCTAAAGGCCAAGGCTTCAAGGATATTCCTAAAGATTTCTGTCTGGGCGCTGGACA +TGTTAAATTCTTCTATGACAAAATTGGCTTCTTGTTCTTACGCCAAAATGCAATCATCGA +GGAACTTCTAAAACGCGGATTTAAAATTGCAAATACTCATGTCAACGTAGCTGACATTCC +TCTGTACTTAATGAATGACTTTGTTCCTTCTGCCGAGGATATTGCTTTAAGCCAAGCTCG +ACTGGATGAAAAAATTGCTCAAAGGCCTTTGTGGTATAAACATTATGGTAAGGCTATATA +CAAATAATAAAGGCACGCCGACCCTCTCCTATGAACAATGTTCCTCTAGTGAAGGACCTT +TTCCCACCTGTAATAAGGTCGAGCCCGAGTGCGGTAAGGGGTTTACATTCGGTGAAGGCA +AGGAGCCCAATTCGATTCTAGGAAGGAAAATGGACTACCACGTGCCATGGAATGGCCCTC +AACTAATCAGGAAATAAAATGCAATATTTAACATACCCGTATCTAACCTTGATGCATGCT +TTCAAAGACCGTGCATTCGAACGCTTAGATCCACATAATGATTATTGGAAGTGCTTAACC +CCGATGTCTCGAGTTTCTGAATTTGGAACTCTTCGCCTAGACGGTGGACGACAAACCGGT +AAATCTGAAGCTGCTGCTTTATTCGCTGCCGATTGGCTTCATGATGGTAACGACGTAATT +GTTATTTCAACCAAAGCCGCTCAATCCAGAGAGCTCAAAGAACGAATTGAACGTAAAGCA +AAAGGCATTCAGCGAATAGATTCTAATCTCCGTGGATTTTGTGTACATGATACCATCAGA +AGTTTTCTGGATGAAGACTTTAATAAGTACAGAGGTCTTTCGCTTACACGAGCATTGATT +ATAATTGACGAACCAATGAAGATGCCTGATGTTAAGAAGTTCTATGAATCATACTTCTAT +CTGGCTAATCACTGTTTATGCCAAGGCGATAAACCTTTACCTCTTTTCTTTGTGATGGGA +ATGCAATGATGAAATTTATGTTTATGGATGGTCCCTTTCGGGGAATGGTAGTTCGTACTA +AAGCTACTAAAGCTGAATTGAATTCTGTTCCAGATATTCCTATCGAATTTGTAACCGGGC +CTTTTGAAGGCCTGATTACTCGTAGCTTGATTTGCTATGATCGAACAATGATCGAAGCAA +GAGAGCTTAAAATGCGCCCAGGTTCTCAGGGCTCCTATAATTGTACTTTGGACATATCTT +ATAATGGCTAAAATTGTAATTGAATGTGCTGACCATCTGGTTAAAACTTTCTGTGGATGG +TTCAGTAACCAAGGCGAGCAGGATCTTTTTGAAGCTCACTCAAATGGTAAGTGGAATGAA +GAAATCCAAAAGTGGGAAGAGCAAACGACGTATTTGGCTACTGAGGGTTATGGTATTAAT +GAGCCTATTCGCTTAGTTGAATATGATAAAGAGACCGACGAGAGAGTCCCTTATTTCGAC +GGTGAGAAGCTTAGTGCCATACAGGCGATGGTCCCTAACACAGGTCAAATCTTTGAATTG +AGGATGCCGAAATGATTGAAGATATTAAAGGCTATAAGCCACACACCGATGATAAAATCG +GTAAAGTGAATTGTATCAAAGATGCTGAAGTTCGTCTTGGTTTGATCTTTAAAGCACTAG +AAGAAGAACATGTAGCTGCGTACATGGCTCTTGATGTAGACACTATGAGCGATGAAGAAT +TCGATTTAGCTCATTCTAGAATCACTCAGATTCGTAATGCAATTGATCGTCTGAAAGAAG +CTAGTATGTGGGCATGCCGTTCTGTTTTCCAACCTGAAGAGAAATACTAATGAATGATTT +GATCCAAGCTTTACTCCGTGTAGAAGATGAGTGTGCTGGCATTTTATTAATGGCTAAGTT +TGATCCATTTGGTCAAACTGGAATTGATGAAATCAGAGAAATTCATCGTAACACTGTAAA +ATCTTTAAAAGCATTAGTTCAGCTTAAAACTGAAGAAATCTAACCGTTTACATCTCCTGC +AAGATGTGTTACTATGATCTTACACTTACAGGAGAAACAAAATGAACACAACTGAAGTAT +ACATCCGCAGAAACAAACTCCGTCGTCTCTTTGAAACGGAGTTTCATAAAATCAATGCTA +AAATCAAAGACGCATCGAAAGCAGCTGGGGTTCCTGGCTTCCATTTGAAGTACTCTCAGC +ATTTGCTTGACCGTGCTATTCAACGTGAAATCGATGAAAATTACGTCTTTGAACTTTTCC +ACAAGCTTTCGAATCATGTGGTTGAAGTAAACGCTTTCCTGGAACTCCCTGAGCGCCCGG +ACGTTGAAGAAGATCTGGATCCGAACATCGAGTATCGCCCTCTCCGTCTTGAAATCACTG +ACCAAAAGTTGTGGTTAGGATTTACAGTGTCAAAACCAGTTCCAGGTAAAACGTTTTCTA +CTCCATACACACTGAATTGTCGTATGGCTTTCATCAACACAAATCGTCATGAAGGAAAAA +TTAGTAAAACTGTAATCAATCTATGAGGTAAACATGAAAAAAGCTCTATGCGCAGGTCTC +TTGGCCTTCTGTTCAATGGCCTATGGGTCCGAGCACAACTTCAGTAATGTCCAACTCGAA +AATCTGAATTATGCGTATCAGTTTGGAGAGCAATTTGCAAAGGATGGCAAATACAAGACA +CAAGAAAAGCTATATGACAACAAAGGCCTAGGCTATGTTATGGCTGCTTTACTTTGGCAA +GAATCTTCCGCTGGGTTAAAAACCAAAGGAAAGTCAGGTCATCAGGCGTATGGAATGTTC +CAGAATTATTTGCCGACAATGAGAAATCGAGTCGCCGAAATAGGATGGAAAATGACTGAT +GCTGAAATTATTAGAATGTTGAATAAACGATCCAATTCCGCTTCATGGGCGTATATTGAA +CTTTCTTATTGGTTAAATAGACATAATGGTGATATGCGAAAAGCAATTGCCAGTTACAAT +GCCGGGAACAACTGGAAATCTGGAAACAAATATGCCAGTCAAGTCCTAGAAAAAGCATAT +TACCTGAAGTCAAATAAACTTTTACATATTGAGGTAGAATAATGCAGAAACTAGCTCTGG +TACTTGGTCTACTGATTTCATCTGGTGCTTATGCATCAGGTGGATCACTGGAGGAATCTC +TTAAAATTGCTAAATCATTTTGTGCGACAAACACAGAATGTATTGACATCTTGTCATTGC +AATTAGATGGAGCATATGAAGACGGAGTCAGAGCATCTAAGTCTAAGGTAGAGTGGAATG +TACTCATGAACCGAAAGACTAAGCAATTGAATAACCTTTGCGATAAAGCACCTAACGTTG +AAATCTGTCTGGATTATAGAAATCGTTTGATGGAGCAATATATGAAAGGGTTAACGGAGT +GAAAAAATATTTATGTTTGTTGATGGTTCCGTTTGTGTTGAACGCCTGGGATATTCTCCC +AGGCTATCCTGAAAAGATACTTGCGGTCCAAGGAAAACAAATTGAAACAAGCGGCTCATT +TAAACGAAACGTTGAGTTAATCTTCGTTCCAAGTAAAGAGCTTTTAGGGATATCGTTTTA +TAATTATAAAGATAAGGGTGACCAAGTAACAATTCCTTATGGCACCTACAATATCAGAGG +TTGTGAAATGAAAGCTTCTGGTGAAATTGAAGGACCTTACTTTGTCTCTTCGCTGAACAA +TTACAACATCAGCAAAAAGATTATTCGATCATGCTCTACGTTCTTCATTAGAGTATACGA +TCAGACCGATAACTACTCAACTTACGTGGTGGAAAATGATTAAGCAATATATCAAAGGTG +ATATTGTAAAGATCTTCTTGGAAGGTCATAATGTGGCTCACGGTTGTAACTGCTTCCATA +CAATGGGTGGAGTGGCTGGACAATTAGCGAAGGCTTATCCTCCGATTCTAGCAATTGATG +TTCATGAAACTGAGCATGCAGATCCGGATAAATTAGGGAATTATACCCAAGCCACAGGTG +AACGCGGACAAATTTGCTTTAATCTTTATACTCAATATATGCCCGGTAATAATTTAGATT +ATGGCGCATTGCTATATGCTTTCCAAAGTCTAAATTATTGGGCTAGTAAACGCCAGGAAA +CTCCTACGGTTTATATTCCACGTATTGGAGCTGGTATTGCCGGTGGTGATTGGGAAAAGA +TTAAGACTATTATCGATTGGTTCACTCCTGATGTTGATATTATCGTTGTCGATTGGGATG +GTGAATAATGACACATTATATCCATCCGTTTGACCCGAAGAATAAAGCTAATATTCATCG +GCGATGGATTGAAACCAGAAAAACTAAATGTCCAATCGATAGCCCGCATAACGTAGACCG +TTGGTATATTGGTGAATATGTCGAGTACACTTTTATTGATAAAAAGAAACGTGTACAATA +TGTTGAAGAATATTGTCTAAGGATTAAATGGTTATGATGTCCAAAGAAGAACGCGAGCGT +ATTATTGATGATATTGATGAATTGATTCGTTTAGCTAAACACGCTGGTGTTATGGCTGAA +CTTGGTACAGATGATGAATACGCTATGGCCGCTTCAGCTTTATGTAAACAACGATATAAT +GTATTAAGCAAGGACGGAATCGAATGATTACCAGAGAACAAGCTCGTGTAATTTATGATT +TAGTCAAAGACATCGAAGATGATTCTGCTTTCTACACCGGCCAATCATGCGAAGGGACTT +ATTTTGGATTAGAACAAGCTAAACTTGATTTAAGTAATTCCAAAATAAAATTTGAACAAT +TTATTGAGAGTTTAATTGAATGAGCGGCCAATACAAAATTTTGATAACTAGCAAATGTTA +CGCTTATGGTCAAGGCGAAGCAATCTCTGTTCATACTGTTATTGCTGAATTTGATACTAA +AGAGCAGGCTGATTTAGCATTTTATAATATGAAAAATAATTCTGGACCGAGTGATATCGG +CGTTCGCCAAGCTTATATAAAGTTGTATTAAAATGATTACTAAAGAACAGAAAGAGACTA +TTGTTGATTTAGCTCGGTGTTGGGCCCAAGCTGAATCGGCAGTAGCGTGGGAATACTCCT +CATGGAGTTCGAGCCGATCTGCTAAAAAGCAAGCTGAAGAAGAATCCGCCGAAGCAGAAG +CAGATCTTGAACAGTATCTTGATGGGATTATGGCATAATGCAAACTTATATTAAAGAAAA +GCACCGTTGCAAAGATTGTAAATGGCCTATCGTGTTTTCTTTATGTAATGATGGTTTGAT +GGATACTCCACCATATAAGATGTGGGATTGGTGGTTATATTGCTCAAACAAAACATGTAA +GAATCATGCAGGTGAAGGATTTTTCCAATATACTCCAGAGTGGATTGAATCAGGGGAACC +AAAATAATGGCACAACTTTACTTCAACTATGCGAGTATGAATGCCGGGAAATCGGCTAAC +CTTTTGACAGCTGCTCATAACTATAAAGAACGTGGAATGGGCACTCTGATTCTTAAACCA +GCAGTTGATGACCGTGATTCTGCTTCAGAAGTAGTTTCACGAATTGGTTTAAGACAAGAT +GCTAATATAGTTACTCCTGATATGGACATCCTGGAGTTCTTTAAATGGGCTCAGACTCAG +CGGGACATTCACTGTGTATTCGTTGATGAAGCACAATTTTTAAGTGCAAGACATGTTGGA +GAATTAGCTCGGATTGTAGATTTGTACAATGTCCCAGTTATGTGTTACGGGCTCCGTACA +GACTTCCGGGGTGAATTGTTCGAAGGTTCTAAAACGCTTTTAGCGATAAGTGATAAATTA +GTAGAACTTAAAGGTGTTTGTCATTGCGGACGAAAAGCCACAATGGTAGCCCGCATTGAT +GAAAATGGTAACGCAGTTCGTGACGGTGAAGTGGTTGAAATCGGCGGAAACGATAAGTAC +GTTTCCTTATGCAGAAAACATTGGTTTGAGATGCTCGATATATGATTGAACTGTTAACAA +TTCTGGCTGGAGTAGCTGGGATATTCGCTATAGGCTTTATCCTTTACGTTATTCTGATTT +ATTTGGTGTGCTTATGAAATCAACAACTTATAATAGTTTTTTGCTATTAATGACAGTGTT +ATTATTCATTTGGATTGCTGTTGCAGCTTCTACTCAATCAGAACGAAATAAACAACTAAA +AGATCAAAACACTATTTTATGTGAATCCAAAACTGATGGCGCATTCATTGCCAATAGTCT +CGGATGTTTTATTAAGGTAGAACAATGACAGAACAAGAAGCATGGCAAGAACTTCGGGCT +TTACTTAAAAAGCATAAAGTTGAATTACATTTGTCTGAACCTCCAGTATCTCTTGAAGAG +ATTATTAACATCCGTGAAGGCCATGAAGTTTTGCAGAAAATTGACGAGGTATTAAAATGA +AAACGAGTTTCTTTAAATCTGGATTTTACTATCGATTGTGTAACTACAACCGAGGTAAAT +CAAAATGTCAAGAACTATCCGTCGTAAAGGCTGGCATGTAACAACTTCTTCTAAATGGCA +CAATCAGAAGAATAACGAATTCGCTTATATCAAGCGTTATACCGAATACGTTAAAACCAG +CAAAGATAAAGCAAATCAAGCTAAATATGTCGAAAGATATATCGCTGAAAATAAGAAAGA +ACCAGTTCGTCTTGAGAAGTTGATGAAAGAACGTCATCGTGATTCATTCTGGAAGACTCT +ACGTTGGAGTCGCTATGCTTCACCTATTCCTAGAGTGTTTCACAAGATGGAAATTAAAAA +CTCGTTGAGAAACGACACTGATTATAACTGGGACGAGAAAGCCGCTCGTAAGTGTGAGAA +AGGCATCGCTCAAATGAATTGGGATTAAAATTTCGGAGTACAGATGTACTCCGTTATAAA +TACGTTTACTAACTAATGAGGTGTATATGCAGCATTTAGACGTTAAAAAGCTTCGTAATC +TTACTGTAGAACAACTCGATGAAATCAAACGTGAAATTGGGCATGCTGTTGCAAGTCTAA +ATGAAGAAATTCGTCAAAGTGGCTCACGGGCAGATTATATGCGTAAGCGAAATCTGGAAA +AATACCTCGACAATGTTAAGGCTGTACTTCAGCACAAACGTAACACTGGTCAACGATAGG +AGGCCTTATGGCCTTAAAAGCACTGGCATTATCCGCGCTTATTGGAATCATGATGATTCC +TGCTTCCTACGCAGAGGTCGACTTCAATCCGAAGTTTGATGAATATTTTGAGGGTGCATT +GAAGGTTTACTCTCAATATAAGATATACAATAAGCAGGAAAGTGAGCAGTTCTTCACATT +TGTTAAATCAAAATGGGAAAGGCAACCATGCACTAATAACTGTGAAGCTGATGGAGCTTT +GGTTGCGCAAGAGTATTACACCAACCGATTGGTAGAAGGCAAACATGAAATTTGAAGACT +TTGCTAAAGGCAAAGCATCTGAAGCGGATGCTTATCTTGGGTTGTTGATGGCTTCTCGCT +CTTACTTTCATTCAGCCCACTTTGAAACAGAAAGCTATGCTCGTCATAAAGCATACAACT +TCATATTCGACGAGCTTCCGGATTTGATTGATAAGTTCGGTGAACAATGGCTTGGCTTTT +CCGGAAAGAAATATGCTCCTCAAATTCCAGAGCAAAAATCTCTTCCTACTGACACTATAA +AAATGATCGATTTGATCTTGGCTGAATCCGACAAGATCTACTCCAAAGTCCCTCGTGCTA +TTCAAAGCACCTTAGATGATATCGTTGGAACTTTCTACCAACTCAAGTATCTTCTCTCCC +TGAAGTAACACTCTGCCCTGGCTTCGGTCAGGGCATTTTTGTTTATGCTGTTTACATCCT +CAAAAGACTATGATACTATAGACTAGTAATCAACTAGGAGAACAAAATGAAAAGTTTGGT +AGTCGTAGCTTATCTCTACGTTCAGTACAATAATCCGCTTTTCACTCGTAATGTTATCGA +TTTTATCTGGAGCCAATTATGAACGAAGAGAACAAAATCAAATTGCTCGATTTGATTGAA +AAATTGCGTCAGGCCGATTTAGCATATGTTGCCCGGTATGAAGGTTCCGGCACGGCAATT +CCTCAATACAAAGCTATGCAAGCTGCTCAAAAAGAAATGTTTGATTTTATTCAATCTCTG +TGAGGTTTTATGGAAATCCAAGAAAAAGTTTTAGATTATGGAAGTCGTTTCCAATCTATC +AAACGCACTATTGAATACAACAACGGTCATGATGAAAACATGCTGATGGTTGATTTTGAC +AATGGCGAAGCTGTCGGAGCTTCTTTCAAATTCAATGGAACTTTATCATGTGGAGGCGGT +TCTTATAAGATTGAAGAACTTCGTCGCTTTAAAGCACTTTTGAATAGTTTTGAGGAATTG +TAATGGCTGTAGGATTTGCAAAAGACGGAGCAGAACAACTTGAAGTTGAAGCAGTAGTTC +AAGCTGCAATAGTTCATGCACGGTCTCAATTTAACACTACACGAGAGTCTCTTTATCGTT +GCTTTGATTGCGAAGAGCTAATTCCAGAATCTCGTAGACAAGCAGTTAAAGGTTGTTTGT +ATTGTGTAAAATGTCAAGAAATGCATGACGAAACTTTTAAACGTGAACCCCGTAATTGTT +GGCACAGGAGCATGAGATGAGCTTTCCAAAACTTGAAGTTGGTGATCTAGTTTTAACTCG +TACTTACACTGGTGGACAATCAGTAGAAATTTGTCAATATCGCGCACAGACCGGTAATTT +GATGTACATGGCTTATCATCCAGAAGCTATCTTAAAATGCCAGCTGGAGCGCTTCATTAA +AGATACAGATTCAATGCCTTATAGTGTAGATATTGTACGCAAAAGTGATTCTGAAAAATG +GGCAAAGGTAATGATGAGCATCCAAAAGAGGCCGGAGTGATTATGAATTTTGTTTCGCTT +TACGGGTATGAGATTATAATTTCATTACTGATTTTAATCATCGCAATTTTAATGACGAGA +AAATAATGGCTAAATTAATTTGGGAAGGTGTCGGATACGGCGCAAAAATTGAAGAAAACA +TTCCAGGTTCTAATCAAAAGTGGTACACAGAACTTGATGTTATTTCCAACCAGTCGCATG +TAAGCATTTACGATGTTGATAATGGTGATGAAGTTTCACTCACTAAATCCGAAGCGGAAG +CTTTGGTGAAATATTTAAACTCTGTAATTCCAACTATGAAGGAGCATCATAATGAATATT +AATGAAAAATCTTGGCACTGCCGTTTACATGACTTTGCTTTTGACAAATACTCTCGTCCT +CGCTCTCTTTGCCCGTACTTCTGGAAAGTAGTATTTGCTTTATTTGGTATGACGTCATTG +ATTGTATTATTGTCCATCGCATTTACTTTAGTTGGTTGGGAATTGGCTGCAGGTTGGTTA +GCTAAAATTGGTATTACTTCGGTCTGGGCTATTGGAGCTTCTGGATTTACTATCGGGGCA +GTTGGTATTTTGAGTTTAGTTGGTGTAGTATTTGGCACTCTGTTCGGTTTAGCCAAATTA +AAAGATTTGATTGAAGATAAAATCAAAGAACGTAATTATGAAAAATATATTCAAGAATTA +GAAGCTCGTAAAGACCCAAATTACGTTCCACCTAAAAAGAGTATTCTGATGGAATTCATC +CGAGCTCGTAAAGAAAAATTCTGTCCATCTCTGACTTTCACTGAGGAATAAAAATGATCG +GTATACATAAGTTTGAATCATTCGAAGAGACTGTTCGTTTGGAAATTGGTGATCGTCTGA +AGGTGACCCTCAAGGGAACTACAAAATCTCTGCTAATTAAAGTAATTGGTATCACGAACT +ATGGTAGATGGACTGACGGTGATCGTCTAAACGTTATTATTGGCAAAATTGATGATGTTG +CCGGTCATTCGGTAGTTTACATTAATAACGTAAACGGACAGGTTATTCATTATCTTCCTA +ATGCAATTCACACATACAATGTTCACGATATAACTCACAATGATACTTCGATCGCGTATG +AGGATGAAACGCTTTATCCATCACGAGTTAAAATTGCTCGTAAACAAGTACTGGTTCCTA +TTAAAGTCGGTGATGAATTGACTAAGCCAAATCGTTCTGGTACTTACACAGTAGTTTATG +TAAACAACACTGTAAGTAATATTGTTGTTGAACGAAATACTGATAAGAAAATCGAAGTTA +TCAATTTTAAAGATACCGTCGCGCTAAAAGCCTTCGGCCTTAAATGGAGAAGTTGATGAA +GACAGTTGTAAAAAGTTATTTTGGGTCCCAGCTTTATGGGACCTCCACTCCAGAATCCGA +CACCGATTACAAAGAAATCTTTATCCCACATGCAAAAGATATTCTGATGTGCCGGGCAAT +GAATCACACTAACCTGAATACCAACAACTCTGCCACCAAAAACACTCATGATGATGTAGA +TCATGAGTTGTATTCCTTGAAATATTTCCTGGAATTGGCACAGAATGGTGAAACTGTGGC +ACTGGATATGCTTCATACTCCTCCAGAATTGGTCGTTGCTTCTGACCTTCCTGAAGTGTG +GAAATTTATCCAAGACAATCGTAGTAAGTTCTATACCACCGACATGAAAGCTTATCTTGG +TTATGTGCGTAAGCAAGCAGCTAAGTATGGTGTTAAAGGTTCTCGTTTAGCTGAACTTCG +TCGTGTATTGGAAGTTATCAATAAATTTCCTGAATGGAAATACGAAAATCGTCCGAAAGA +TAAAGCTAACAACAGTCGTTGGAAAGTAGCTGATATTGCAAGTAAACTTCCATTGAGTGA +ATTTTTGTTCTGGGAAGATTTTGTTGATGCTAAATGCGGTAAACAACGTTTCTATCATGT +GCTTGGTCGTAAATTCCAGACAACAATCACTGTAGCTGAAATGAAGTACTCCTTAACTAA +ACTTGAAGCTGAATATGGTGAGCGTGCTCGTAAGGCAGAAGCTAACGAAGGCGTAGACTG +GAAAGCATTGAGTCATGCATTACGTGGTGGACTTCAACTTCAAGAAATCTACTCTACCGG +TGACTTAAAGTACCCACTGAAAAACGCACAAGACATTCTAGACGTTAAACTTGGTAAACT +TCCGTTTGTTCAAGTCCAGCAGATGCTTGAAGATACAGTAGATGAAGTTGAGCGTTTAAG +TATTCAAGCTCATAAGAATGGTATGCCTTCGAAAGTTGATATGACATTTTGGAATGATTT +CCTAGAAAAAGTTTACTTGGAAAACCATGGAGCTTACTACAAATGATATGGTGGTACATA +GTGCCTGTGATAATTGCAGTGATTTACCTCGTAGCTGGTTGGTATATCGTAAACGCTCTC +GTTAAACGAGGGGCAATAGAGACACCTCAAGGCTATATCTTTATATTACTATTATGGTTA +CCTGTCGCGGTCGTCTCGATCATCTGGCGAACCCTAGCATGGTTACTACTGTGGCCAAAG +CGCTTTGCTGAATCCCAGATAAACAAACACTCTTCTTAACCTCCTTCGGGAGGTTTTGTT +GTTTTTGAAAAAATGTTGTACATCTTAACTCAATGTGTTATTATAGACTTATCAAATAAA +TGGTAACCCGGAGAAACAAAATGACAGCAGAACAAATTAAAGAGATGATCGCAGCAGAAG +TAAAACGCGTCATCCGTGAAGAACTTAAAATTGAGTACAAATCATCAGAAGATGCTTTGG +ATATCGATTTATCTCTTGATGGTGAAATTGTATCAACGATTCAACTGTCTAAGTATGATT +TACCGATTTAATTGCAAATATTTTTGCTGAACCGTTTACATCAGTTCAGCAATTTGATAT +TATTACCTCATACCAAACAAATAGTAACTCGGAGAATAAAATGACAACCATCACTATCAA +CAAAGGTATTAACTTCGGTAAAGAAATTTCTGGCACTTTCGAATTAGTCGGAGAATGGTT +CCCAGAAACTCTGAAACCCGAAGATGCTGCTCAAGGTGATGGTAAAGTTTTCGTTATCAT +CGACGGTAAGAAAAAAGGTGTTTGGGTTTACAAATCAGACATTTCTTATAACGGAGTAGC +TAAAAAGATTGAACTGATTGAAAGTGTTGATGATATGAAAGCTCGTATCAATAAACGCTT +TAACGTTATGGGGATGATGACTGCCGGAATCATTAACGGAAACATTCGTTCACTGATTAT +CTCGGGAGCCGCTGGTATCGGAAAAACTTACTCCTTAGATAAAGCATTGAATAAAGCAAA +TGATGAGGATAAAATTGAATACAAATCAGTGAATGGTAAAATCTCGGGTATCGGGTTGTA +CTGTCGCTTATGGGAATCACGCTTCGATAATTCAGTTCTGCTTATTGATGATGTAGATGT +ATTCTCTGATATGGATATTCTGAACCTTCTGAAAGCTGCTTTAGATTCTGGAGAAAAACG +TAAAGTTTGCTGGAGTACTGCTTCATCTTACTTAGATGAAAAAGGTATTCCAAATGAATT +TGAATTTGAAGGAACAGTCGTTTTCATCACTAACGTTGATATTGATAAAGAATTAGAACG +CGGTAGCAAATTAGCTCCACATCTCGCTGCTTTGGTATCTCGTTCGGTTTATTTGGACCT +TGGTGTTCACTCAAACGAAGAAATCATGGTCCGAGTTGAAGAAGTAATTATGAATACTCG +GATGTTGCAAAGCCGCGGTTTACGTAATTCCCAGGTTGTTGAAGTATTAGATTTTATGCA +AGAAAATGTATCTCGTCTTCGTAATGTATCTTTACGTACTGCTCTTTATCTCGCTGATTT +CGTCGCCACTGACGAGAAAAATTGGAAAGATATCGCTGAAGTTACGATGCTTAAATAATA +CTCCGGGAGGAGAAATCCTCCCTAAATTTTTGAGGAAAATATCATGGCACATTTAATCTC +TTATCAAACTAAAATTGTTCTGTTTCGTAATGGTAGCTTTGTATGTGATTCTAAAAGTCG +CGAGTCTCTGAAATATATGTCAGATGCTACAGCAATTTCTTATATTGACTTAAACGGGAG +CTGGGTACAATGAGCTACAAATACTATGTGAGAACCCACGCTTGTATTTTCAAAAGTGTA +TGTGAAAAAGACACTGCTGAATATATTCTTAGTCATACTAGAAATTTAACTGCAATTCTT +TTCACTGATTTACAGAATCCAGCTTCAAATCACATTATGGAAAGAATTCGTTTTAATATT +GAAAATCGTGATGTGCAAGCTTTAGAACGTCGCCTCAAAGAAGGCTATGAATATGCTGAA +GAAAATAAGTGGAGATATTAATGAGTATTTTAATGGGAAATTGGGTGAACAACACCGCTT +ATTATCCACCTGCTCATATCTATGCTGGAATGGTCCAGAGTAAGGCTGAGAAGAACGCAA +TCCGCATCTGTGAAGAACTATACAGATTCAACTTCGGAGATTCCCCTAATGTATTGGGTG +AATTGAGAACGGCCTTTCGTGAATTAGATGTAATGCTCCATATGAAGAATTCTTACCCAT +CTCATATGGAACTTCGTCACGAACACGTTGCTGAAGTATTTGGCACGTTTCTTTATTGGG +CTATTCGTGCTAATACTGAAATGGAGCGAATCTATAAGCAACACCAAGACCTTTGGAAAT +GGTATAACACATCCAAATTAACTAATCGTGAAATTAAAGATTGGTGCAAACAACAACTTG +ATTATAATTTGAATTGCATGATGATTGATGTTTACGATAATTTAGTCAGGAGCAAAGGCT +AATGGGCTACGGGTTGGATGAAGATTGGGAATACGAAGACGAGGAAGAATTAGGCACTCG +TTACAGCATAATGAAAATTGTTTATGAACGAAATGCTTCAGCGAAAGTAGGGGCAGAAAT +GTATTGTCCTTATTGTCGAAAGGTTATTGTAAAGCGTAGTTGGCAACATAAGTTTTGTAG +CACTCCATGCAAAGACAAGTATTGGAACTGCGAACCTAAGCGTGCTCATCGAGCAGAATT +CTTTAAGGGCAAATTATGCAGGTAGAACAATTAAAAGAACTTATTCAATTAGTTTCTAAA +GAACAAATCAAGGAACTTATTCGTAATGAGCTGAGAATTGAAGTTCAGCCAGCGGATTAC +ATGGACCCATGCCGAATTCAACTATGGTGGGATAACGAAGTTATTTCCGAAGAATGTATT +TACTTGAGTGATATTCAACGATGATATCGAAAAAAATTATATTATCTCGTATTGAAATGA +TGAGAAGCAATTATGAAATGGCTATGAAACTTTCCGTGTCAATTGCTTTACGTAATATTG +GTGACGAGCGAAGAAGCAATTTAAAGTTTTGTGCACCTGATGACCGCAGAGCGCAATTAG +TTGAAATTACGAAAGCACTTATTCAAATGGACCATTACCAAATCAAAGATGCTAAGATGC +TAGCTACCGAAAAAGAAATTTGTGCTAAAGCTTTAAGGGAGCATCAAAAACAAACTCCAG +TTTCATCTTGGTTCCATGGTGGAGCAGACAAACCAGCCTATTTTTAACTCTAAGTTCGCC +CCGGCTTCGCTGGGGCATTTTTGTATGTTATCCATATAATCAATCATTCCCTTCTAGAAA +GTTCCTCTCAACCGTTCTGGTGAATCCAAAAATTTTTAAATCAACCGTTTACATCCTCCA +AAGATTGTGGTATGATAGTCTCGTAATCAACTAACGGAGAATAAAATGTTAACTGAAATC +ATCACCTCGCTTATCGAAGAAAATCGTAAAGCTCATCAAGATCGCCGAGCGAAAGTTGAA +AAACGCGCTATGGAATTAAATGCTGGATGGACTAAGACCCGCTACGGTCGTGAAGGATTT +GATAAGGTAGTAGCCCCAACTTGGGGAGTAGATGATCGTCCTCATGCACCTTTTGATGGG +TACCTCTGGGAAAATGAATTAGGAGAAGTTGAGTCTTATCATGGTGGTAGTTATCTTCCA +TACGTTACTGAACTCGACTATCTTGATAAGCCTGAATACACAGGAGATCATGGTTGGTGG +AAGCTGCGTCTCACTTCAGACATGCTTTCTGAACTCATGATTTTAAGGCATGAAACTCAG +TGTATTGAGATTCGTACACCTTACAAAAAGTGGACACTCGAAGATAACACTATTGTGGTA +ATGAGTGAAGTACGTGCTCATAAGACGATTCTTAAGGCAATTCAATCTGCTTCAGAAGAA +TGGTTCAATAACTACTACAGTTCACTTAAAGTTAACAAAGGTGAAGCACCGGTTGGTAAG +CAAGTAGTTAAAGGTAAAGTCGTTTCAACTAAAGTATACCAAGACTATTGGGGTGTATCT +GCTAAAATGATGGTCCGTCTTGAAAACGGAGCTACAGTTTATGGTTCTTTACCTGGAATC +GTAGATATCAACTATCGCGGTACTATCGAATTTAAAGCAACGTTTGAACAAGCAAAAGAT +GACTCAACTCACGCTTTCTTCAAACGTCCATCTTCTGTAAAAATTGAAGAATAAACGCTT +TAAGAGAGTCCGTGTTATAATGGTTTCACGGATTCTCAATCAAATCATACGCCTGACAAT +GAAAGAAGAGGAAAAGATTATGAACTTCAAAACCAAAGATGATTTCTATGTAGAAGTATT +TGAATTGATGGAAGTGGTGAACAAACATTCAAGTACAGTGTTTGCTAATCAGAAGAATAA +GATGCTAATTAGTCTACTCCGTGATCGTCTCGTATCAAAGCATAATATCATTGCAGGTAC +TGAATTGAACTCTGTTTTGGCTAAATACGACCAGTACACTCCATGGACAAAAATCGCTGT +AGTAAAATCTTTAAGCAAATCTAAAATCACAACTTATGTTATGTCTCACATGCGCTTGCG +CAATTATCTGAGCATTGATATTGAAGATGAGCGTAACCGTTTGAGCCAAAACCGTGTTGT +CGTTAATACACATCTCAGTATTATAGCTGAAGTTGTACGGACAATGTCCAGTGATATCAA +AGAAATTATTAACATTGGTCGTAAACTATGTCATGCTATTGATAGTCAGAAATTTGAATT +CATCAATGATTTCTTGGGCTGTGATAAAACTGTTTATCCGAAAGTTCGTGTTGGTGTATC +TGGCCGCCCTGAATTTGATATGGCGATCAGAGTAAGCGCTGGTTATCGAGTCAAAAATAC +TCCAGCCCAACGTAATGTAGTTGCTCGTTTGACAACTCAGCTTAAGAAAGCACTGGAACA +AATTCCATTCATCAATACAATTTCTTTGGTTGAACGTGAAAATGATAAGGTGGTTCACTT +CTGTGTCGACCAAGAATTCTTTAAGCCAAAAGAAGTTGCATTGAGTTCTAAAGAACTTCA +TAATTTTGTTCATGATACTGATGTTCAACATATGTACTTGACACCAATCAAACCATTGGT +TATCGAATCGGTTATGACTCAGCAGCTTAATGAGTTGATTGCTAAAATCGATATTGAAAT +TGAAAAAATCGATGCGGATATTGAATCATGGCAGGAACAAATTGCAACTAAACGCGCCGA +AGCAATTAAGCTTCGTAATCGTCGTCAGAAATTGGCATCTGCTGTAGAGGCTTTAAATGA +ATAATCAATTAAAAGAAGATATTGATTTTGGCACGTGGTTTGAACCCTGGACTGATGTGG +ACCTTGAGAAAGGTCCAGAATGGGAAGCTCCTGCTGGATTCGATAAAGGTCTTATAGATT +GGAAAGCAGTTTTAGAAATGGCTGATCGTCGAGAAGCTGCAGCAAAACAAGTTTCGCCTT +GCCCTAAATGTGGTACAATTCAGGTTCAATTGATAGATTGGCGAACTGATACTTTGAAAA +TGAAGTGTCGTCATTGCAAACATAAATTTGAGAAGAAATTAAAATGACTCGTATTAAAGC +AGCTATTATCGCACTGATTCTTATTGTTATTCCATTAACAATGAACCATTTCAACGATTA +TATGACATACCAAAATTATGATGTTAAAGTTGTTAGTGTAGTATCTGGTATGTCACCCGG +AAAGTACTCATCATTAGAGTTCATTGCCATTTACGAACTTGAAGATGGATATCGGTTTGA +CCGACGGATTTCCGCCGCGTCATCAACGCAACTCAGTCCTGGTCAAAATATTACATTAGA +ACTTCGACCGTTTGATGTTAAGCAAACCCCAATGGAAAATACTATCTGGTTCATTGGTGG +TGTATTAGTCAACTGTGCCGGATTTGTTTTTGGCGCAGCATTTGCTTTAATCGCTATTTC +TCGTCGTGTTAATAATTGGATGAACTCATAATGATTGATTTAAAACTTGATACCAACGCA +GTAATGAAGCTGTTTGATACCGAAGAAGCTCGCGTTAATCTTCAGCAAGCAGTTATTAAT +AATGTGGTCAAAGAACTTGTGCTGAAGAATAGTAAGAACAAAGTACGAGAAACTATTCAG +AAAGAAATTTCTTTGGTTGGGGCTCGTCTTCCTGATGTACAGCCGATGGTTAAAGAACAA +CTCAAATACTTCTTTGAATCTAAAGGCTGGAACAAGGTTCAAGGTACTTTTGAATTAGAA +CGTATCATGCGCGAAGAAGCAAACCGTATTGCTTCTACTCAAGTACTTGAAGCAGTCAAT +GCTCAGGTTGATAAAGCAATGAAAGATCTTGAATATAAAATTGATCAAGTGCTTCGAATG +TCAGAAGTACGCATGGAAGAAATGGTCAGTAAACGTCTTATTGATTCATTCGGCTCTGTA +ATTGATAAAGTTATTGCTGAGCGTCTTAAATCTGTATTTCCAGAGGTGGCAAAATGATTG +ATCACAACCCATTTAAAACCACTGGAATCGCTGAATCTGATGAAATGAAAGCTCTTTTCA +AAGAGCTTCGTGAAATTAATGCTAGAATTTGTTTTCAGTATGCAGAAGAAAAAGGAATTG +AGTTTAACGTAGATACAGTTCTTCGCAATATAAATGCTTTAACTGAATTCGATATCGTAA +TGTTCAGGATGTTTGCATATACCGCATTAGCCAATCAGCCTGAAAATACTCTACCAATTG +ATGAACGAATTATCATTGCAGCTAATGAAGCATACAACAAGGTTATTGAAATTGGCTAAA +CGAAAACAATATATGCTTACAGCCGAAGAAGCATTGATGTCAGTTTATCGTGCTTATTTT +GCTGAACATGGCGATATCCCATCAAGCCCGGCGGTTATTAAAGCAGCAATGACTAAAGCG +CATAATGCATTCCATGCTCGAGTCTCTGAAGCAGCTAGGAAAAAATTTGGAAAAAGGTAT +TATAATAGTCCTAATTACTTCGATGAACTAGACCAAATAAAAAGAGAAATGTTATGCTAA +CAATTTACGGATATGATTCTTCAATTCACCGCTGTGTTCACTGTGACAATGCTAAACGAT +TAGCTGAAGTTAAACGTGAAATGTATGAATTTAGGAATGTAATGCCAGAAAAAGGCGTAT +TCGACGATGAAGTTATTGCTGAACTTCTGACTCGTTTAGGTCGTGACACTCAAATCGGTT +TGACAATGCCTCAGATTTTTGATGGCAATGGCGCTCACATCGGTGGTTTTACTGAACTCA +GAGAATATTTCAAATGAAAGAAGGCGTAGACTACATTCATGATTACAGAGGCACAGCTAT +TGGAGTTGGTGATGTAGTTGCGCTTTATTACGGATATGGCGGCCTGGAAACAGGCGAAAT +TATTCAAGTTAAAAATAATCGTGTTAAAGTTGAAGTAACTTATAGCAATGGCTCAAAAGT +TATTTCTAAATGGAAATACGGCGAATGCATGGTGAAATTATGAGTGATATGAAAGAAGTG +GATTTAGTATTCTCAGCCGGCGATCAAATTGATTTAGAGCATCTGCTTGCAGTTGAAATG +ATTCGTCGTGCTTCTGAAGATATTCAGTACGCAATTGATAATCCTTGGGGTGAATTCCGA +ATTCGTCAGGGTAAAGAAATTCACGGTGTTCAATGGACTTATGTTGGTCTGGAACCTGAA +GATTACGAAGAAGTAATGACTGAAGACGGGCGGATTGACTATAAACCTATCGGTCCTTGG +CACTGGGAGTATGGCGGCCCAGATTTTGAAGTTTCATGCTCGTGGTTGGAAAGTAAAGAT +GAAGACTGATTATATCCAAGTATCTGTCAAAGAGTTAGATCGTTTACGTCGGTGCGAAGA +GCTGCTCTGGGAAGTGGAAAGTTCTTTACCATCGGGTTTAGAGAGCTGGATTGATTATGA +AGAAGAACGTGAATTAAGAGGTGAAGAATGACTCCTGAATTAAAAGCAATTTATAGTGAA +ATTATGGAAGACCATGATGGATACTCCGAGAACTACGACTTCGAAAATTCTGATTACTTA +GAAATAGTTGACGAAGAAGAATGGACTCAAAATCATAAGTATCAATATCGTCAAGTGGTT +TATTATTCCAAGAAGCATGATGTTTATGTTGCTGTAAACGAATCTCGTTCAGGTTCTTAT +CACAGTGATTGGTACTACAGCGATCCTGAAGTTTCATTAGTTGAAAAGCAAGAGCGAGTT +GTTACTCGTACAATCACGGAATGGATTACGCTTTAAAGCCTTGGTACACGGCTCGATGGA +AAACCGTTGAGCCAGAGGAAGAAGAACGCTTTCCTGAAGATGATTATAATGAACCTACTA +CAAATGATCTAATTGATATGGAGTTTGGCTATGAGTTTAGTGAATAAGTGCTTCAAAATT +GTTAAAGAAGATAATGACGGCGGCGTTTTCGATATCTATCCAGAACTTACCATTGGAACT +GAATTCAAAGTTCTTTCTGTGGATAAAGAAAATCCAGATGGTATCACTTCTATCTTGATT +AAGAACGGTCCTTACCTTCATATTGGTTCTCGTGAATCTTGGTATTGGTGCTTCTGGGAA +CAAGACACGATGGGTGAAATTGAAGAAATTGAAGAGCTTTCTTCTGATCAGTACAAGATC +CCAGACACAGCTCATTTGTTCAAAGGACGTGATATCGCATCTCAGCTGTTTAAAGTTGCT +GGTGCTGAAAATTGCGATGCCGAAGAACATGATTTAATGCAGGCGGCAGGCGAATATATC +CGTCAGCTTGAAGCTCAATTGAAATTTTCCGATAAGGCTTTCTAATGCAAATTGAATTAA +AATACGTATCATGTCAAGAATCTGGTTGGCATCTGTCGTTTGAATTTGATGATGGATTTG +GAGTCGCTAAATGGTTCCCTTCTAAGCCGACCAAAGCTCAAATCCGATATTATAAGAAAT +GGGCTCGTATATATTGGTTGTATGATTAACAATAAATAGGTTCATCTGATTAAGAGGTGA +ACCTATGTTATTGACTGGCAAATTATACAAAGAACAAAAACAAAAATTTTATGATGCACA +ACATGGCAAGTGCTTAATTTGTAATCGCGAATTAAATCCTGATGTTCAAAGTAATCACCT +TGATCACGACCATGAATTGAATGGACCAAAAGCCGGTAAAGTTCGTGGGTTGCTATGTAA +TCTGTGCAATGCTGCAGAAGGACAAATGAAGCATAAGTTCAACCGCTCTGGTTTAAAAGG +TCAAAACGTTGACTACCTCGAATGGCTTGAGAATTTGCTTGTCTATCTGAAAAATGATTA +TACTAAAAATGACATTCATCCTAATTTCATTGGCGATAAGTCAAAAGAATTCAGTCGACT +TGGTAAACCCGAAATGATAGCTGAAATGAATGCTTACGGGTTTACCTATTCTGAAGATGA +TTCCAAACCAAAGCTTGTTGCTTCATTCAAAAAGCAACTTCGTAAGAGTTTAAAATGACA +ATTGAATCAGAAATCCAGGGGTTAATTAACCGCACCAATAAAGATCTACTTAACGAGAAT +GCTAATAAAGATTCTCGTGTTTTTCCAACTCAACGAGACCTGATGGCGGGGATTGTTTCA +AAACATATTGCTCGTCAAGTTATCTCTCCTACTGTTCTAAATGCTCATGATAAAGGGCTT +ATTCATTTTCATGACTTAGACTATTCTCCAGCTCTTCCATTCACTAACTGCTGTTTAGTT +GATTTGAAGGGAATGCTTAATAACGGATTTAAACTTGGTAATGCTCAAATTGAGACTCCA +AAGTCAATTGGAGTAGCAACCGCTATCATGGCTCAAATTACGGCTCAAGTGGCTTCTCAT +CAATACGGCGGAACTACATTTGCAAACGTAGATGTTGTGCTTGCTCCTTTTGTAGAGAAG +ACTTTCTTTAAGCATTTACGTGATGCAGAAAGATATGGCATTGAGCATGTTAATGACTAT +GTATACGCAATTGAGAAAACAGAAAAAGACGTATACGATGCATTCCAAGCTTATGAATAT +GAAGTCAATACTTTGTTCAGCTCAAATGGCCAAACACCGTTTGTAACAATTACCTTTGGT +ACTGGCACAAACGAATACGAGCGGATGATTCAAAAAGCTATTCTCAATAACAGAATTAAA +GGTCTTGGACGAGACGGAATCACTCCAATCTTTCCTAAACTTGTTATGTTTGTTGAGGAA +GGAATTAACCTTCATCCTACTGACGTTAACTATGATATCAAACAGCTTGCGTTAGAATGC +GCAAGTAAGAGAATGTATCCAGACATTATTAGTTCAAAGAATAACCGTCTGATTACTGGC +TCTTCTGTTCCAGTTTCTCCGATGGGATGCCGTTCATTTCTTAGTGTATGGAAGAACAAG +CACAACGAAGAAATTCTAGATGGACGCAATAATCTCGGTGTAGTGACTATTAACCTTCCA +CGAGTAGCACTTGATTGTATGGTTGATGGCCGTCCAGATTTAACTAAATTCTTTCATATT +CTTGATGATCGTTTACTTATTTGTAAAGAAGCTCTTTTAGCTCGTATCGAATCACTTCGT +GGTGTAACAGCTTCGGTTGCTCCTATTCTTTATCAAGAAGGCGCTTTCGGTGTTCGTCTT +AAGCCAAATGACGAGATTATTGATATCTTCCGAAACGGTCGTTCTTCAATTTCATTAGGG +TACATCGGAATTCATGAAGTTCAAACTATTCTTGGATTTGAAATCGGTTTACTTTTGCTT +AAATGCATGAATGATTATTTGAAAGAATGGACCAAAGAAACTGGATTTGCTTTTAGTCTT +TATTCAACTCCGGCAGAGAATTTGTGCTATCGCTTCTGTAAGATTGATGCTGAAGTTCAT +GGAGATATCAAAGGAGTTACTGACAAAGGTTGGTATACTAATAGTTTCCATGTTTCAGTC +GAAGAAAAGATTTCTCCATTTGAGAAAATAGATCGAGAAGCTCGTTACCATTATATCGCC +AAGGGCGGTCATATCAGTTATGTAGAACTTCCTGATATGAAAAGCAATCTAAAAGGTCTT +GAAGCTGTGTGGGACTATGCTGTTGAGCATCTTGATTACTTTGGTGTAAACATGCCAGTT +GATAAGTGCTTTACTTGTGGCTCAACTCATGAAATGACTCCAACCGAAGATGGTTTCATC +TGTCATGAGTGCGGCGAATCAGACCCTAAAAAGATGAACACAATAAGACGCACATGCGGT +TATCTTGGCAATCCTTCTGAGCGCGGATTTAATCTTGGTAAGAACAAAGAAATAATGCAT +AGGACTAAACACTGTGAGATATGACAGAATTTATCCTTGTGATTTTGTAAATGGCCCTGG +ATGCAGGGTCGTTCTTTTCGTTACAGGATGCTTGCATAAATGTGAAGGATGTTACAATAA +ATCTACTTGGAACCCAAGCAACGGCCAATTGTTCAATGCAAACACCGTAAAAGAATTAGC +TGATTACATTTCGAAGCCTTATATTCAAGGACTTACTCTCACCGGTGGAGATCCTTTATA +CAGATCTAACCGCGAAGATATTGAAGCTCTTGTAAAATGGGTCAAATCGCGGTTTCCAGA +AAAAGACATATGGATGTGGACTGGTTATAAGTTCGAAGATATCAAGGACTTAGAACTGCT +TAATTACGTAGATGTTATTATTGACGGTAAGTATGAAAAAGACTTACCGACTAAAAAACT +ATGGCGTGGTTCTGATAACCAACGTCTGTGGCAAAAACAAAATGAGGTTTGGACACACGA +TGCAATTACATTACCCTTGGATTCATGATGTACAAGTTCACATGAACCGTTATGTTGAAA +AGATGGGCGAAGAATTTCCATCACTTTATTTTCTAGTTTTCTTTGGAATGTACTAATGAA +AGTGGAAATTTATGGAATACCAGAAGAGGTTCATAGATGTCCTGGGTGTGTAAGCGCTCG +TCATCTTCTTGATTCTCTTGGTATTGAATATACTTTCTATTCTGTCATTAATAAAAGCCA +AAATTCTCTCGGTTTTGATTATGACCGAGAGCGTATAACTGAATGTGCAAAAAGAATAGG +ATGCTTTCCTAATCTTATGCTTCGTTATCCAGTTATCTTTATTGATGACAAAAAAGTTCC +TCGTTTAAAACAACACCTTGAAGATCTAGGTTACGATACTGATCTCTAACACGGTTCTAA +GACACTCTCTCCTCTCTTCCATATGTTTATATGGTCATCATTAAGGGAATCTCTCAGGTT +CCCTCATTTCTTTCAAACAACCGTTTACATCCTGTACTCTCTGTGTTATTATACTTCTAT +CAACTACGGAGAAACAAAATGATTATTAAATCTAAAGTATCACACATTGTTATCGATTTC +AACGTTTCAACTGAACGCGGTCGTACTGATCTCATGGTTGAAATTAAGGGACAGGAAGTT +ATCTTCCGAGCTCGTTCAATTCGCTGTGAAATGTCCTTAAATATCGCTAAACATCATCCA +AACGCAATTAATGATTGTGTTAAAACCTTGATCTCTGATATCTACCAAAGCGAAGCTGAT +CTCGTCGTTCGCGAAGTATTTCATACAGTAGGATATGCATAATGTTCAATATGACTTGGG +AAGAAGCCAAACAGGCTATGCGGGAAGGTAAATCTGTTCATCATCGTTACTTCTGTGATG +AATGGTTCCAAATGACAAACGGTCGTATCGTTGATGAAGCTGGCTACTTCATGGATAAAT +GGTACACAGGCGAAGAGTGGCAAAACACTGGATGGGCAATTTATGACTAATTTAGATCTA +TTTCACAAATCAGCACGGTTTTCATACAACGTTCCCGAAGGACGTCTGTTTGTAGATATC +ACATCTGATATGTTTTTGAAATTTATTCATAACAGGCCCGGAAATAATAACTGTATGGAA +GTTCTGGACGTTAAGAATGGATTCAATACTCTTGATGTTCAACACATCATTGCTAAAATT +GGGGTTGAATTATCAGTAGCAGATGCTTATCTGATAAAAGAACAAGTTACTAAATTCCTG +GCATAAGTTTGCTATAGAGATTTTGATATAAGATCTCTATGTCAAAATAACACACTGAGG +AAAATACTATGTCACAGGCTATCAAAAACGTTCTGAATTCTTTCGCATACCCGAAAGTAG +AAGCTATCATGGCAGCAGGTGCTTACGTAACTCCAGAAATTCTGGACAAGTGGGAAGTTG +AACTTCATGGTACGATGAAAGAGAATGGCCAGAAGATCGGTAAAGCTCGCATTCGTGAAT +TGGTGGTAGCTTACATCATCTCTGAATTTGATATCGATGCTTTCGGTATTCCTACTCCGA +AGAAGAAAGAAATCTCTGATACTGCGATTCGCAAGATGAAGAATCAACGTAAGAAAGGGT +TCTCTGATCTCAAAATTGTTAAGGTCGCGAAATGAGTCTGAATATTCAAAACTGTCCGGC +TGATGTGCGGTTTGTAGTACTCAAAATGGAACGATTAGATTTTTGGCACTCAAAAGTTCA +AATAGTGCATTCTTACATCGGTTCCATTGAGCTTAAAACTTATTATGACGCTGGAGTTCT +TCATAATTGTCGAGTGCTCCCACGACCAAAAGGCGGATTTGATACTCATTATCATTGGTC +TGAACCACCGCTCAGCGAAATGTGGGAAGAAGGCCTGAACATGAAAGAACTTGAGGAATA +TCTTGATGCTTAATTTGCCTGAAGACGTTTCAGTTATAATGACCTTTAAAGAATTTGATG +GTAAAATTCATCGAGTTCGTAAAATGACCCAAGGCTTCATCATCGCAAAGGCTTGTGTTG +CATTCAGAGAGTCAAGACGGGATTTTAGAATATTCCCAATGAACTCTAAAACGAAGTACA +CTAAAGTGTCTACTGAATTAGCTTGGAATGAAGGAATGACTCTTTCCGAATTTGAGGAAT +ATCTGAATGACTAAAACAGAAATTGTTGATGATCTTCAATTAGCCGGATATTTTGCTTGT +GTTAAAGATGACCGCATCTGGATTGAAGGAACAAGTGAAAATGGGATTGATTGGGTTATC +GAAGAAGACTTTGATGCTTGGTGGCTATATGAGTTCACCGGAAAAGATTATCATTCAGTA +GATGCTTTTGGTAATATGGATCACGCTTTGAATGGAGCAAACAAATTATGATCAGAGAAA +TTATTTTATCATTTGAATTTGGCAATGTGACGGTAGAAAAATCCGGTAAGGTTGAATTTT +TCGATCCATGGGCAGAAATCTATTGGACTTCAACCGTCAATGAATTCCAAATGGAGTTCG +CTGAAGTTCAATTAAAATCGTTGTATAAAGAATACGATGACTATTCTCTGATGCCGCCGG +ATATTCAGATGACTGATATGCTTTACATCCGTCGTATGGTTACCAAAACATGGGAAATGC +TTAAATGATTTCTGCACTCAAATTTGATAGTCTAAAACTTGAAGTTGCCAATTATGGAAC +TTTCACAGTAACTCCTTTGATGGGAATTACTTTAGACATTGAGTGGTTTGATGAATTTCA +GTGGGTGTCTCATTGCTCTTTGTTGAATGTTAATGGGTATAAGATTGCGTACGAAAGCCT +TGATAAGTTCTGGAAAGAAAATGAGCTTCATCATGCTGCTGATAATATCTCTTTCGATGA +GTTTTGTCGTATCGGTGAAGCCCTGTTCCAGATGTATTTGATTCTTCGTAACAATTAAGT +GCTTTAAACCTATCGCTCGCAACTATGTTATAATTGATATATAAACTTGAAGCGATGAGG +TATTAATGGCGAACTATGTAAACAACAAAGAATTGTATCAAGCAATATGCGATTGGAAGG +AAAAATGTCGCAATGCCCCCGAAGGAGTAATCGTCCGTCAGAATGATATAATTGGTAAAG +CAATTATGCTTATATCTGAGGGTCTGTCAAAACGTTTTAACTTTTCAGGATACACCCAAT +CTTGGAAAGATGAAATGATTGCAGATGGAATTGAGGCCGCAATTAAAGGTCTCAAGAACT +TCGATGAAGAAAAATACAAAAACCCACATGCATACATCACTATGGCTTGTTTCAATGCCT +TCGTTCAGCGTATCAAGAAAGAACGTAAAGAAGTTGCAAAGAAATATAGCTATTTCGTTC +ACAACGTTTATGACGCCCGTGACGATGATATGGTTGCGTTAGTAGATGAAACGTTCATTC +AGGATATCTACGACAAAATGACGCATTATGAAACCTCCACCTACAAACAGCCAGGGTCTG +ATAAAAAGAGCGATATTGTAGATGAAGGACCGACTTTGGATTTTTTATATGAGGCTAAAG +ATTAACCTCTCCGGATTCTTGGAAGAAGTGCCAGACGCAGATGCTATCCCTTATTTGCTT +AAAATGTATATGAGGGAAGTTCTCGAAATGGACATTCACATTGACCCCAAAGATCCACAT +GATACAGAGTTCAAGTGTGATGGCAAGGACTTGAACTACAACTACCACATATCTGATGAT +GACTTTTATATCACATTAGAATACTTTCCAGAATGAGGAATTATGCTACAACCCGGCGAA +GCATTCCAAGCAGAACTTGAATATCAAGATAAGCTGATTGAAGATCCAGACCACCAGAAA +TTAATGGAAGAAGATCGTCTTGCAGCTATCGAAGAAGCACAAGCTCGAGTAGCTGCAACT +GCTAAATCTCAAGCTGATAAAATTATCAAGAAAAATAGTCGCGAACTTGAACGTTTGAAT +AAACATGCTCAACAATCAGTTCTCGATAACAACTTCGCGGCGTATAAGTATGCGATTGAA +AAATCTCGTAAAATCTTACGTCAACCATTCAATGACGAGCTTATCAAAGTCCAATGGGAA +ACCACTCGTCGTCAGATCTGGGAAATTGTAAATGGCTATAAAGCAGGTTAAATTCAAACG +CCTTAAGGTAAATTCAGGTTTCACTCTTTCTGTTGCTGATGGTGTAATGGCTATTAAAGT +ATCTGAAACCCATTACAAAGTCTTGGGTGAAACAGGTCCTATCAATCCAGTAGTTAAAGC +TACTAAAAAGGAATTAGTCTGGGCTGATACAATTATGGTGAAGCCATGGTGGAAGCTGTA +ATATCAAAAGCTGCTGTAGTATCCCGCAACGGAACTGTTTATTCGGCTGAAGCTTTAGAA +AGAGCTATTGATTATGCAAAGATTCATAACGGCAAGACTGAAATGATGAGGCAGTTCAAG +ATGTCATATGATAAAGCTAAGGCTGAATGTACAATTACATACAAGAAAATTTAAGGGCTT +CGGCCCTTGCTCTTTAAGGTAAAATATGGAACAAATTCATGTAGGTGGAACCGACTTTCT +TGTCGCAGTGGTTATTCATCCAGTTGATAATCAAAACGAATTCAAATATGATGTGACAGT +TCGTCATTATCAGTTTGACCGAATTAAGCACGTCGATATCATTGCATTACGCAAAGAATA +CGATAAAGTTGGATATACGGGTGAGCTTAAACTTGTATTAAAACAAGGCTATGAAGAAGA +TTATCCTTGTAGTTCATTTATTAATAATCCGGCTTTCTTTAGTTCAATGACCGAAGAAGA +ACGAGACGAATTTATTGATAGAGTAAATAAGTCTAAAATCCCAGAAATATTACGTAAGAA +ATAAAGGACCTTCGGGTCCTTTTCTGCTTTTTGGAGCATAGAATACAATATCCTTGAGGT +AAAATATGATTACTTACTTAGGTGTACTCTGTTTAATCGTAGGGTTGTACTTGTTTGGCC +GAGCTTGTTGGGTTGGATTCTTTTCTACACCAGATGGGTTCATTTCTATGATTTTAATTC +TTTCAGCTATGACGGCACTTGAAATATGAAAATTTTGCATACAGGTGATTGGCACCTAGG +AGTAAAGGGTGATGACCCTTGGATTCAAAACATTCAGCGAGATGGAATTCGTCAAAAGAT +TGAATATTCTAAAAAGCATGGAATAAAAACTTGGATTCAATATGGAGACATCTTTGATGT +TCGTAAGGCGATTACTCACAAGACAATGGAATTTGCTCGTGAAATAGCTACAATGTTAGA +AGAAGTAGATATCCACATGATTACCGTCGTGGGAAATCACGACATGCACTATAAGCATAA +GATCACTCCCAACGCTTCAATGGAAGTTCTCGGTAAGTATAAGAACATCACAGTCGTTGA +AAAACCAGTTACAATGGATTTCGATGGTGCTTTGATTGACTTAATTCCATGGCTTTGCGA +AGAGAACGTTGCTCAAATAATGAAGCACGTAAAAGAATCTTCTGCTGAGTATTGTGTAGG +CCACTGGGAGCTTAATGGCTTCTATTTCTATAAAGGGTTAAAATCTCATGGTCTCGAACC +AGACTTCCTCAAATCATATAAGCAAGTGTGGTCAGGACATTTCCACACAATCTCCGAAGC +AGCTAATGTCAAATACATTGGAACCCCGTGGACGCTTACAGCGGGTGACGAGAACGACCC +GCGAGGATTCTGGGTTCAAGACACTCGATTACGCACCTTTGATTTCATCCCTAATGAAAC +AACATGGCACAGAAAAATCTTCTACCCAGTAACTGGGCCAATTGATTTCAACGACTATAA +AGACTTATCAGTTCGTGTCGTTATCACAGAAGTTGATAAAGATCTACCGAAGTTTGAAAG +CGAACTTGAAAAAGTAGTCCATGAACTTCGAACTGTTTCAAAAATCGACAACTCTCTTGA +AGTTGAAGATAGTGAAGAAGTTGAAGTAAAAGGCTTATTAGAAATTATGGAAGAATATAT +CAATGCTCTCCCTGATTTATCTGATGACGACAGAACTGCTGTAATTCTGTACGCCAATCA +ACTCTACACTGAGGTTACTAACTCGTGAAACTCCATGAATTTAATTTAGGTGATGGATGG +TTCGGTAATATCGAATACTGGCCAGAAGATGGCGGGTTTAAAGGCATTATGTTTGTTACA +TCTGAATATTCATTGGGCGTATCATGGCAAGAACATTTTGATGTAATGTATGTGTCTGAA +GATTTTATGTTAGAATGTTGCCGCAACTATATTCGTGAGAATAACACATGAAGACGTTTA +AACTTAACCGAGTCAAGTATCAAAATATTATGTCAGTGGGCGGTCAGCCCATTGATATTC +AACTTGACAAGGTTCAAAAAACTCTAATCACCGGTAAGAATGGTGGTGGTAAGAGTACAA +TGCTTGAAGCAATCACGTTTGCTTTATTTGGTAAACCTTTCCGAGATATCAAGAAAGGAC +AATTAGTTAACTCAGTTAACAAGAAGAACTTACTCGTCGAGCTGTGGATGGAATATGATG +GTAAGTCTTTTTATATCAAACGAGGACAGAAACCAAATGTCTTTGAAATTTCAAGAGATG +GTGTCCGACTTGATGAGTCCGCGAGTGTCAAAGACTTTCAGCTCTACTTTGAAGAACTCA +TCCACATGTCATATTCATCATTTAAGCAAATTGTCGTACTTGGAACGGCGGGATATACTC +CGTTCATGGGCTTATCAACACCAGCACGACGAAAACTCGTTGAAGATTTGCTCGAAGTGT +CTACATTGGCTGAAATGGACAAATTGAATAAGTCTCATATCAGAGAGATTAACTCTCAGG +TATCAGTGATTGACGCAAAGAAAGATGGAATCATTCAGCAGATTAAAATCTATGAAGATA +ACGTTGAACGCCAAAGAAAACTTTCAGGTGAAAACGTTGCACGATTCCAGAGTATGTATG +ATGACTTGGTTCGTGAAGCTAAGTCAATAAAGGCTGAAATTGAAGATGCTACGACTAGAT +TGACTTCAATAGTACTAGATGAAGACCCTCGTGAGTCTTTAACGAAGATTGGTCAAGAAT +CTTTCTTGATTAAGTCCAAGATTGACTCATACAACAAAGTGATTTCTCTGTACTCTTCTG +GCGGTGATTGTCCAACGTGTTTCCAACATTTAGACCAGGGTTCCTCTCTGATCACCAAGA +TCACTGATAAGGTCTCTGAATGTAATCATACAGCGGAGCATATTAACAGTCAGAGAGCCG +TTCTGGAGTCACTAGTGCATGAATATGAAGCCAACCTCAACACCCAGCGTTCACTGGCTC +AAGATATTCGTGCTAAGAAGCAAGTGCTGATTGGAACTGTAGATAAAGCCAAAAAAGTTA +AAGCTGCATTAGAAAAAGCTTCACAAGAATTCATTGACCACGCAGATGAAATTAATTCGC +TTAATGAAGAATTGAATAAAATAATTGATACCAAATCCAATATGGTGATGGAAAAATATC +ATCGTGGCATTTTAACTGAAATGCTCAAGGATTCTGGAATAAAAGGCGCAATCATCAACA +AATACATTCCATTGTTCAATAAGCAGATCAATCACTACTTAAAGATAATGGAAGCTGATT +ATGTCTTTACATTGAATGAAGAGTTCGCTGAAACTATCAAGTCCAGAGGACGAGAAGAAT +TCAGTTATGCTTCATTTAGTCAAGGTGAAAAAGCACGTATTGATATCGCTTTGTTATTCA +CATGGCGAGATATTGCTGAGAAAGTTTCTAACGTTAAGATTAACTGTCTTTTCTTAGATG +AAGTTTTCGATTCTGCAACCGATGTGGAAGGTGTAAAATCAATTACATCAATTCTTAATG +GTATGCTAAACTCTAACGTGTTTATTATATCACACCGCGATCATGACCCTCAATCATATG +GACAACATCTTCAAATGAAGAAAGTTGGACGATTTACGGTGATGGAATGAGTAACTTTGT +AAACGGTCAGAATCTTCTGACCGCACCAGAAATAAAGCGGTATGTATTGAAAAATAATTT +TTCAGGACAAGAGCATCTTGCAACTGAAGAACAACTTCGTGCTGCTTTTAAAAATAAGTA +TGATAAAATAACATCCAATCGCGATTCCGCGTGGACAGTATACGAATATTTTGAATAGGA +ATTATTATGAACCTGAATTATGCAATCGAAGTTAAAGACATCCAACCTAAAAACGTACGT +TGTGACTCTAACCCGAATAATCAAAACAAAATCCGTCGAGCATGGGTAACTATTCTAGGT +GAAGAAGGTGCCGAAGCTATTCGCAAACGTTTCCCTGTTGCTGAAGTACGTCATGCTTAT +TATGCGGCGATTGATAATTCAGTCAATGAAAAGTGGATCTCTATTATGCAGAAACATTAC +CAAGACTCTATCAAAGCCGGCGCTAAAATTGTTCTTGATCGTTGTGGTGGTGAGCGTCTG +GAAGATCAATACTGTCTGGATGCTGATGAACAATTAATTTCAGCTGCTCTGATTGTAGCT +GAAGAAGTAGCTATTGAAATCTCTAAATAAGACTTGAAAGGAAAAATAATGAAATTCACT +AAAGAAACTCTCGCAATTCTGAAAAACTTCTCTACCATCAACTCCGGTGTTATGCTTAAG +CCTGGTAAGTTTATTATGACTCGTGCGGTCAATGGTACAACTTACGCAGAAGCTAATATC +GCTGATGAGATTGATTTTGAAGTTGCGATCTACGATCTTCCGAGTTTCCTGGGTATTCTG +GGGCTGGTAAGTGAAGATGCAGAGATCTCTATGGCAGATGACGGTAATATCAAAATTGCC +GATGCTCGTTCAAAAATCTTCTGGCCGGCAGCTGATGCGTCTACAATCGTATTCCCGAGC +AAGCCAATTCCATTCCCAACCGCTTCTGTTATCGTTGATTTCAAAGGCGAAGATCTTCAG +CAGCTGATGCGTGTATCTCGTGGTCTTCAGATCGATACAATTGCTATCGCAAATAAAGAA +GATAAAATCGTTCTGAGCGGTTATAACAAGGTAGAAGATTCTGCTTTGGTTCGTCCGAAA +TATTCTCTGACTCTGGGCGATTATGACGGAACCAATAACTTCAACTTCGTTATCAATATG +GCGAACATGAAGATGCAACCAGCAAGTTACAAACTTCTGCTGTGGGCAGATGGTAAGAAA +ACTGCCGCTAAGTTTGAAGGTGAAGCTGCAAGTTATGTAGTAGCTATGGAAGCAGATTCT +ACTCACGACTTCTAAGTACCATGGGCCTTCGGGCCCAATCGTTTTGAATAAAAATTTATG +AGGAAATTATGTTAAGCATTAATGAAAAAGAGCACATCCTAGAACAAAAATATCGCCCTT +CAACTATTGAAGAGTGTATCCTTCCAGCTTTCGATCGAGAAGTATTCAATACTATCGTTA +AGAAAGGAAAAATTCCTCATCTTATTCTTCACTCTCCATCACCAGGCACCGGTAAGACAA +CAGTAGCAAAAGCATTATGTAACGATGTCAATGCTGATATGATGTTTGTCAACGGTTCAG +ACTGTAAGATTGACTTTGTCCGTGGGCCATTAACTAACTTTGCGTCTGCTGCTTCAATTG +AAGGCCGTCAGAAAGTTATTGTAATTGACGAATTTGACCGTTCAGGTCTTGCAGAATCAC +AACGTCATATGCGTTCGTTTATGGAAGCATATAGTTCAAACTGCTCAATCATTATCACTG +CGAACAACCTCGATGGAATTATCAAACCTCTTCAAGACCGCTGCCGAGTAATTGAATTTG +GTAAGCCTACTCCTGAAGATGAAGCACCGATGATGAAAGAAATGATTCGTCGTCTGATTG +CGATTTGTAAAAATGAAAATATCGAAATCGCTGATCTTAAAGTTGTAGCAGCTCTCGTTA +AGAAGAACTTTCCACGTTTCCGCAATACAATCGGTCAACTGGATATGTACTCTTCGAAAG +GGGTACTTGACGCTGGTATTCTGAGCGTAGTGACAAAAGAATCTGGTTCAATCACCGATG +TTTTAGATGCTTTAAAAAATCGTGATGTGAAACAACTTCGTGCATTGGCTCCAAAATATT +GCACCGATTATTCTTGGTTCGTTGGCAAACTTACATCAGAACTTTATACTATGCTCAAAG +GCCCTGGTATCATGTCGATGTATGAAATCGTCGGTGAAAATAACCAGTACAAAGGTGTAG +CATCTAACGCAGAACTTCACGTTATGTACATGTTCTTACGTTTGACATCTGAACTTAAAG +ATGAGTGGAAATAATGAGCTTATTCGATGATGACGTTCAACTAAATGAGCACCAAGTAGC +TTGGTATTCAAAAGACTGGACTGAAGTCCAGAAAGTATCTGATCAATTCAAGCAGACTGC +TGAGAACGAATTCTTCGAAATCATTGGGGCAATTAATGAGAAGAAACCTTGCTCCATAGC +TCAAAAGAATTATTCAAGGCATATGGTTGAAAATGCTCTGTCTCAACATCCAGAGTGCAT +GCCGGCAGTTTACGTTATGAACCTCGTTGGTTCCGAGCTTTCAGATGAAGACCACTTCAA +TTATATGATGGCTGCTATTCCTCAAGGTCGTCGTTATGGTAAGTGGGCTAAGTTAATCGA +GGATACCGGAGAGTTACTTGTACTCCGGGTATTAATGAAATATTATACGATTAACTTGAA +TGACGCTCAGGTTTATAGAGATACCCTGGTGTCAAAAGGGAAACTATCCTTGGTACTGAA +AGAAGCTAAGGCTTTGGTTACTGACGAGTTCCTGAAGGAATTGACGAAAAACGTCAAAGA +ACAAAAACAATTCAAAAAACAAGCATTGGAATGGTAAACATGATTGAAATTACTTTGAAA +CAACCTGAAGACTTCCTGAAAGTAAAAGAAACCTTAACTCGTATGGGAATTGCTAACAAC +AAAGATAAGATACTATATCAAAGTTGTCATATTCTTCAGAAACAAGGTCGTTACTACATC +GTACACTTCAAGGAAATGCTTAAACTTGATGGTCGTCCGGTAGTGATTGACGAGGAAGAT +GAAGTACGTCGTGATTCAATTGCTCAACTGCTTGAAGATTGGGGTTTAGTTGATATTGCT +CCAGGACAACGTTCTTATATGTTTGAGATGGCCAATAATTTCCGTGTTATCTCTTTCAAA +CAGAAAGACGAATGGACTCTTAAATCCAAGTACACAATAGGTAATTAATATGGACGATAT +CAATTACAGAAAACTTCGAATCGAGTATGGTCTGAGACAATGGGAGACTATATTCGATCT +ATGCGAAGTCGCTCAAGAAGAATTCCAACGTGAACTCGCCATTCGCAATGGCGCTCAACC +GCGTGATGTTCTCCAAGTCTTTATCAGAACTGAATGCGAAGATGATGACACAGTAGATTA +CAAAATCACTCGTAAAACTATTGAAATTTAAGTAAGGGCCTTCGGGCCCTTCATGCTATT +CTCTCGGATGATAAAATATCTACAACAAAGAGACTAATAACTCGGTCTATAAACTAAGGA +AACTCATGCAATTCTATATTTCAATTGAAACAATCGGTAATGACATTGTTGAACGTTATA +TTGACAATGGTGTTGAAAAAACTCGTCGTGTTGAATACGCTCCGACAATGTTCCGTCACT +GCACTCATAAGACTAAGTTCGTTGACATCTATGGCAAAAACTGTGAACCTCAAAAATTCG +CAAATATGAAAGATGCTCGCGACTGGATTAAACGTATGGAAGACGTCGGTCTTGAAGCAA +TGGGTATGGATGATTTCAAACTGGCTTATTTGTCAGACACTTATGGTTCTGAAATTGTTT +ATGATCGCAAATTCGTTCGTGTTGCGAACTGCGACATCGAAGTAACAGGTGATAAATTCC +CAGACCCAATGAAGGCTGAATATGAAATCGATGCCATTACTCACTATGACTCAATTGACG +ATAAATTCTATGTGTTTGACTTGTTGAATTCATTGTATGGGTCAGTTTCTGAATGGGACA +TTAAGTTAGCTGCTAAGTTAGATTCTAAAGGCGGTGATGAAGTTCCACAGGATATTCTTG +ATCGTGTAGTTTATATGCCGTTTGACACCGAAGCTGAACTACTGATGGAATACATCAATC +TTTGGGAACAGAAACGTCCAGCTATTTTCACAGGTTGGAACATCGAAGGCTTTGATATTC +CATACATCATGAATAGAGTCAAGAATGTTTTGGGTGAACGTTCAATGAAACGATTCTCTC +CAATCAACCGAGTCAAATCGAAAGTTATCACTAACATGTACGGCGATAAAGAAGTATTCT +CGATTGATGGCGTAACAATTCTCGATTATTTAGATTTGTATAAAAAGTACTCATTCACTA +ACCAGCCGTCTTATACTCTGGATTATGTCGCGAAGTATGAGACTAAAAAAGGCAAGCTTC +CATATGACGGACCGATTAATAAACTTCGTGAAACTAACCATCAACGTTATATTAGCTATA +ACATTATGGACGTTGAGTCTGTCGGTGGTATTGACCGCGTTCGTGGTTTCATTGATCTGG +CACTTAGTATGTCTTATTATGCTAAAATGCCGTTCGGTGGGGTTATGTCTCCTATCAAGA +CTTGGGATGCGATCATCTTCAACAGTCTTAAAGAGCAAAATAAAGTAATTCCGCAAGGTC +GTTCTCATGTTAAGCAATCTTTCCCAGGTGCTTATGTATTTGAGCCATTAGCATGCGCTC +GTAAGTACATTATGAGTTTTGACTTAACATCTCTGTATCCAAGTATTATTCGTCAGGTGA +ATATTTCTCCTGAAACGATTGTTGGTCAATTTAAACTTCATCCAATTCATGAGTACATCG +CCGGAACAGCACCGCGTCCATCTGATGAATACTCATGTTCACCTAATGGTTGGATGTATG +ATAAGAACAAAGAAGGCGTAATCCCAACCGAAATCGCGAAGGTATTCTTCCAACGTAAAG +ATTGGAAAAAGAAAATGTTCGCGGAAGAAATGAACGCAGAAGATATCAAGAAAGCTATCG +CTGCTGGGGTGTTTGGTTCAGGAAGCTGTGAAGAAAAACGATATGTTCGTTTCACTGACG +AGGAACGTGCTGCACTGAGTAGTTATTCAAAACTTGTTCTTGAAGCAATGCTTGCTCGTT +GTGAAGCCGCCGCGATTTTGGCTGATACGAACCAGTTGAACCGTAAGATTTTAATCAACA +GTCTTTATGGTGCTTTGGGGAATATCTACTTCCGTTATTACGATCTTCGTAACGCAACTG +CAATCACTCTGTTTGGTCAGGTTGGTATTCAATGGATTGCTCGTAAAGTTAATGAATATT +TGAACAGGGTTTGTGGTACTACTGGTCATGATTTCATTGCAGCCGGCGATACAGACTCAA +TTTATGTTTCTGTCGATAAAGTTATAGAGAAGGTTGGTTTAGATCGTTTCAAAACTACCG +ATGAAGTGGTTGAATTTATGAACCAATTCGGTAAGAAGAAAATGGAACCGATGATCGATA +AAGCTTATCGTGAACTTTGTGAATATATGAACAACAAAGAACACCTTATGCATATGGACC +GTGAAGCAATCTCTTGTCCTCCATTAGGTTCTAAAGGTTGTGGTGGATTCTGGAAAGCTA +AGAAGCGTTATGCATTGAACGTATATGACATGGAAGATAAGCGATTCGCTGAACCACACC +TCAAAATTATGGGTATGGAAACACAGCAATCAAGTACTCCAAAGGCGGTTCAGGCTGCAT +TGGAAGAATCAATTCGTCGTATGCTTCAGGAAGGCGAAGAATCCGTACAGGAATATTTCA +AAACATTTGAAAAAGAATATCGTCAACTTGACTATAAAGTGATTGCCGAAGTTAAGACTT +GTAACGATATTTCTAAATATGACGATAACGGTTGGCCAGGTTTCAAATGCCCGTTCCACG +TTCGTGGTGCTCTGACTTACAATCGAGCAACTGCCGGGTTCAGTGCTACTCCGATTCTCG +AGGGTAACAAGGTGATGGTAGTTCCATTGCGTGAAGGTAACCCATTCGGTGATAAATGTA +TCGCGTGGCCGTCAGGTACTGAACTGCCGAAAGAAATTCGTCAAGATGTTTTGGCATGGC +TTGACTACAGTGCTCTGTTCCAGAAATCTTTTGTTAAACCTCTTACGGGTATGTGTGAGT +CCGCAGGTATGGACTACGAAGAGAAAGCGTCATTAGAAGATATGTTTGACTTCTAACTGT +TTACATCCACATGGAAGTGGATTATAATGTTCTCACATTAACCAAACGGATAACAAAAAT +GACTCATCGCGAAATTCATGCTCTTCGAGCTAAACCCGGAAAAGCTGCCGAAAAGAAAAT +CCTGATGAAGGATTATGAGTTGATGAAATCTGTATTATGGAACTTAGTAATTCTATCATG +CGGGAATGAAAATTCCACTTATAACGGTCTTTACCCTAACGGTGTAGGTGCTGCTTTAAA +AGCTCATCGTGAAAACATTAAAACTCTTGAAGATAAAATAAAAGATATCTGTCATTAATG +AATTGGGCCTTCGGGCCCTAAACGGAGAAACAACATGAAATTGAAAATTGCTTTAATCGC +TGCTGCGCTGGCACTAACTGGTTGTCAGGCTTACCATGGACCTATCGTTGGTGAACATCA +AGTTGGCCAAATTTCTTATAAAGGCGGAACTGGACTTGTCTATACTCGAGCAACTCAACA +AGTTTCGCAAGAATCTTTGAGCGCAGGTGACGAAATGGAAGAACGTCGTCGCAACAGTCC +ATTAAGTAAAGCTATCAATGAATCAGTAGCACGAGGTGATGCGTTTCAAAAAGAGCAAGA +TCGCCGTGAATCTGCGCAAAATAAGTGTGAATTCATTGTTGAAGCTCATGAAGCTGTATT +GACCGAAAACGCTATCAAAACTATGAGTGACAAAGACCGCCTGGCTTTGATTCACTATCG +TTCTTCCGGTAAAGTTCGTGCATTCAATAAGTGCATGCAAAACGCTAACAAATAATTTGA +TATAATAAATCAACTGAGGATATTGTAATGGAAATCATCGCAGGTATTATTTCACTGGTA +GTTTACATGATTCCGGCTATTATCGCGTTTATTCGTGGTCACGGTTCAAAATGGGCTATC +ACCGTAGTTAACTTTCTGTTTGGCTGGACATTCATTGGTTGGATTTGGGCATTTATCTGG +TCTCTGACTGGAAATAAGCCTGCTCAGCAACAGGTTATCATTATTAAAGAGGCAAAATGA +TTGTAACACCTTTGACAGTAGAAGATATTCGTGATGAACTTTGCTATGCGCTGGAAAGTG +AACAGTTTGTAATTGACAAAACTGGTGCAAAGACAATTGAAATTATTGGCGCATCATTTA +TTGCAGATGAAGAATTAATCTTTGGCGCAGTGAATAATGAATATGTTGAACGCGAACTTG +AGTGGTACAAATCTCAATCTTTGTTCGTGAAAGACATTCCTGGCGGTACTCCATCTATTT +GGGAACAAGTTTCATCCAAGAACGGTGAGATTAACTCAAACTACGGCTGGGCAATTTGGT +CCGACGAAAACTGTTCGCAATATAATATGTGTCTTGGCGAGCTTGGAAATAATCCAGATA +CTCGTCGTGCTATTATGATTTACACTCGTCCATCAATGCAGTTTGATTATAACCGTGATG +GTATGAGCGATTTTATGTGCACTAACACTGTGCAATATTTGATTCGTAATAAGCGAGTTC +ATGCTATTGTTTCAATGAGAAGCAATGATGTAGTCTTTGGATTCCGCAATGATTATGCAT +GGCAAAAATATGTTCTTGATAAATTGGTGTCTGATTTAAACGAGGGTGATTCTTCTCGTG +AATATAAAGCTGGTGATATTATCTGGAACGCTGGGTCATTACACGTATACGAGCGTCACT +TCTATTTGGTTGATCATTACCTGAAAACTGGCAAGTCTCACGTGTTGAAGAAAGATTATA +AAGGTGAATGGAAATGATTCAGTTTGTAATTCCAAGTTATAATCGTGCTGGGGCAGTTAC +TGCCCTGGACATGTTCCCTACTGGTTATGTTGCTCATTTAGTAGTTCGTGAGTCTCAGAA +AGAAGAATATGAGACTCACTATGGTGCAATTGCTAAAATTGTAACTATTCCTGATGATGT +TAATGGAATCGCTGGTACTCGACGGTTGATCACCGAAATGTATCAAGGCATGCGTATTTG +GATGCTGGACGATGATACAACAATTCATACAACAGAAACTCGTGAACGAGACAATCGCCG +AATTCTTCATGACGTCGGTATGACTTGGGACGAATTTAATAAGCTTTGCCAGTATGTTGA +AGCTGCGATGGATTGTGGATTTTATCATGGTCATTCTCGTCTTCCAATCTTCAAAATCTC +TGGTGATGATGCAAACTTTCGTGAGAACTCTTATGGATTCACGAACACGTTCTACGACTT +AAGCAAACTTTCTGCTGATGACATTGGATATGGTATAGTAGACCTATCCGAAGATACATA +CGCATTCCTTAAACTCATTAATATGGGTTATCCTCATCTGGCGATTTTCAAATATCTCGT +CAAATCGGGTAAAGGTCAAGCTCCAGGTGGTGTATCGTCTATGCGTAATGCCGCTAAACA +AAACCGAGCATTAGAAAAAATCCATGCAGACTTCCCTACGCAAGCTCGTTGGAAATCAGA +AGGTGACCCAACCAAAACTATGTTTGGTACTGATGAACCTTTGAAAGTACTTCGTATGTG +TGTTGCTAAAAAGCAGAAGTCTGACGCATTCCATAAATTTAGTGAGATTGAACCTAATCT +ATGAAAATTGCTATCATCAACATGGGCAACAACATTCAGGGGTTTAAAACAACCCCTGCT +TCTGAAACCATTTATCTGTCTGAGTGCTTGAAAGATATGGGTCTTGATGTAGACCTAATT +TCAATGAAGAACACTCAATATGGAATTTCTTTTGACTCTGTAGAAGACCCGAACGTATAT +GACCGTCTGTTGGTTGTTAACGCTGCTTTGAACTTTTATGGTGGCGAAGAAAACGCAATG +AACAAAGCGGCTTATATGTTCATGAACAAATATAAGTCAAAGATCTATTATCTCTTCACA +GATATTCGTTTGCCATTTGAACAAGCATGGCGTCGTATGTCAAAGAAAAAATGGTCCAGC +AAGTACAAAGAAGAACAATTCATTGTAACTGCTCCTATGCGTATTGTATCGCAAGGTCGA +GATCTTGAACAAGCAAAACGTATTCACTCTGAACGTCTGGTGGGATGTCAATTCGGTAAA +CTAGAGTTCACTCACTTCGCTTTAGACCGTCATAAGATGTATCACAGCGTCTTTAAAATT +GCACCAGATGGAATTAAAATGCGTGACCTGATTTACGGCGGAACATTCCGTTCTGGCAAC +CGTGAAGCTAAGATGGTTGAATATCTGTTTGATACTGGACTTGATGTAGAATTCTTTGGT +TCAGTTAAAGCTGAACAATTTAAGAATCCAGAATTCCCATGGACTATTCCTCCAGTATTT +CCTGGTAAGGTAGATTCTCGTGAAATGGTTCAACGTAACTCTACTGCTTATGCGACTATC +GTATTAGGCGATAAGACTTACGATAATAACCAGATCACTCCTCGTGTATGGGAAGCACTA +GCATCAACTGCAATTGCATTCTTTGACCATACATTTGACCCTGACATGAATATCATGGAT +GGGAACGAGTTCTTTTACGTTAAAAACCGTCAAGAACTAGTTGCTAAAATTAATCGCATC +AAAGAAGACGAAGATTTCCGAGTTCAAATGCTCGCATATCAGCACTCTATTCTCCAGAAA +TATCTGGATGAAAAGCCACAATGGCAAGCTGAATTTAAGAAAGCTATCGATCTGTAATAC +AAAGAGGGTTTAAAATTTTAATTAGCTTTAAACCCTCGGTTATATAATTAATCATCCTTT +AAACCAGTGAGAAAAATATAATGGAGATCAATGGAAAATATTGAATGTCTGATTTAAAAT +CTCGTCTGATTAAAGCATCCACTTCTAAAATGACCGCGGAACTGACTAAGTCTAAATTCT +TCAATGAAAAAGACGTAATCCGTACTAAAATCCCGATGCTGAATATCGCAATCAGTGGGG +CATTAGATGGTGGTATGCAGTCTGGTTTGACAATCTTCGCTGGTCCTTCAAAACACTTCA +AATCAAATATGTCTCTGACTATGGTCAGTGCTTATATGACGAAGCACCCAGATGCAATTT +GTCTGTTCTACGATTCTGAATTCGGTATCACTCCGGCTTATCTGAAGTCTATGGGTGTAG +ATCCTGACCGTGTAATTCATACACCAGTTCAGTCTGTTGAACAACTTAAAATTGACATGG +TGAACCAGCTCGAAGCTATTGAACGTGGTGAGAAAGTTATTGTCTTTATCGACTCTATCG +GGAACTTGGCTTCCAAGAAAGAGACCGAAGATGCTTTGAACGAAAAATCCGTCGCGGATA +TGACTCGTGCTAAAGCATTGAAATCTCTGTTCCGTATCGTTACTCCATATTTCAGTATCA +AAAATATCCCATGCGTAGCGGTTAACCACACAATCGAAACTATTGAGATGTTTAGTAAAA +CTGTAATGACTGGTGGTACTGGTCCAATGTATTCAGCAGATACCGTGTTCATCATTGGTA +AGCGTCAAATCAAAGATGGTACAGATCTTCAAGGTTATCAGTTCGTTCTGAACGCTGAGA +AATCTCGTACTGTCAAAGAGAAGAGTAAGTTCTTCATTGATGTTAAATTTGATGGTGGTA +TTGATCCATACTCTGGTCTGTTGGATATGGCTCTGGAACTTGGATTTGTAGTTAAACCTA +AGAATGGTTGGTATGCTCGTGAGTATCTTGATATCGAAACCGGTGAAATGGTTCGTGAAG +AGAAATCATGGCGCGCTGCCGCTACATCTTGTGTAGATTTTTGGGGTCCGCTGTTTAAGC +ATCAACCGTTCCGTGACGCAATCAAGCGTAAGTATCAACTCGGTGCTATTGATAGTAACG +CAGTAGTTGATGCTGAAGTTGATGAACTGATCAATTCGAAGACTGAAGTCTTTAAAGCAC +CAGAAGGCTCCTCTGCTCCTTCAGCTGCTCAGTTGGAAGATGATCTGGACAATTTTGATG +ATGTAATGGGGCATCCAACAGAAGGTTTATAATGAGTGATTACGATTTAAGTGATCTTGA +CCTTGAAATCGTAGAAGATACCCCCTCTCAGGAGGGGGAATTCGAAAGGATGGAAAGGAT +ATACCAGCGTTCCGCTGAGATTGTTAAGAAGGCTATGGAGAATGTCATCCAGGAAATCCT +GATAACACTAGAGGATGGTTCAAACCATATCGTATATGTTACCTCATTAACTGTTGTTGA +AGGCGGTGGAGTGTCACTAGAGTTCTCTACGTTATCAGAAGATCGTAAAGCCGAACTAAC +ACCACACGTTGAAAAATGTATTAAAATGCAGATAGAAAACTCTTTTAAAGAGAAGAAGAA +AAACCGTTTCAAATTATTTTAATGAGGCTTCAAGTGGTAGAAACAATATTATCGCATTTG +ATTTTTAACCAAGGCTACTTCGCAAAGGTGTGGCCTTATATGGACTCTGAGTATTTCGAG +CATGGTCCAGCTAAAAACGTATTCACCTTACTACAAAAACATATCAATGAATATTCAAGT +GTTCCATCGTTGAATGCTTTGAATATTGCATTAAGTAATTCTTCGCTGGGTGAATCGGAA +GCTGAAGGCGCACAAAAGCTTTTAGACAAATTAGCCGATACTCCTGAAGACTTGTCATGG +TTAGTTAAAGAGACTGAAAAATATGTCCAGTCTCACGCGATGTACAATGCCACATCAAAA +ATAATTGAAATTCAAACTAACGCTGAATTACCTCCAGAGAAACGTAACAAGAAGCTTCCT +GATATCGGTGCTATTCCAGATATCATGAGACAAGCTCTTTCCATCAGCTTTGACTCTTAT +ATTGGTCATGATTGGATGGATGATTATGAAGCTCGTTGGTTAGCATATCAAAATAAAGCT +CGTAAAGTTCCATTCTTGATGAATATCCTGAACCGAATCACGAAGGGCGGCGCAGAAACA +GGCACACTGAATATTTTGATGGCTGGTGTAAACGTCGGTAAGTCGTTAGGATTGTGTTCA +TTAGCAGCCGATTATCTTCAGACTGGTAAGAACGTTCTTTATATCTCTATGGAGATGGCT +GAAGAAGTATGTGCTAAGCGTATTGATGCTAACTTGCTTGATGTGTCTTTGGATGACATC +GATGATGGTAATGTATCTTATGCTGAATACAAGGGTAAGATGGAAAAATGGCGACAAAAG +AATACTCTCGGTCGTCTGGTCATCAAACAATATCCTACTGGTGGTGCACACGCAAATACA +TTCCGCGCACTTCTGAATGAATTGAAACTCAAGAAGAATTTTGTGCCAGATGTCATTATG +ATTGACTACCTCGGTATCTGTGCTTCATGTCGTATTCGTCAATACACTGAAAATAGTTAC +ACATTAGTTAAAGCGATCGCAGAAGAACTTCGTGCACTTGCGGTTGAAACTGAAACTGTA +GTTTGGTCTGCTGCTCAGGTTGGCCGTGGTGCTTGGGATGCTTCTGATATGAACATGAGT +GATATTGCAGAATCGGCGGGTCTACCAGCAACAGCAGACTTTATGCTAGCAGTGATAGAG +ACAGAAGAACTTGCACAGATGGAACAACAACTCATCAAGCAAATTAAGTCTCGTTATGGT +GACAAAAATAAGAACAATAAGTTTTCTGTTGGTGTTAAGAAAGGTAATCAACGCTGGGTT +GAAATCGCACAAGAAGGCGGTGATAAACCTACACCAGTAAGCGAAACATCTGGTGGTCAG +CAGCGCGTAGCAGAGCAAAATCGTATAGCTAAGGTTGAAGTATCTCGAGCCAAACTCGAC +GCATTAGCCGAAGATATGAAATTCTAACCGTTTACATACACATGGAAGTGTGTTACTATG +ATCTTATACAAACAAGAGGAAAACAGCATGAAAAAGATTATCTTAGCAGCAATTTTATCT +CTTTCAGCTTGCGCTGGAACCCCAGCAATGGCAGCAGATGGGTATTCAAGCATTCCATGT +ATTAAGTTCATTGAAGGCGACTGGAAAGATCAAAAGCCTCGCGTCATTAAAGACTTACTA +GCTGTTGCAGATAAAAATCAGGCAATGCTTGTAGAAGATCTCGATGACAATGACCTGGTA +GTTGCTGGTACTAATCTGTACTGCGAAAATATTCCGGCTAAAGATGTTCTGACTTGGGTG +GGACTGTAATGAATATCATGTTAATGTATCAACCAGCATCAGAAATTGTGCGAGGTATGA +AAGTTGAACACCGAGTTCCTGCATTATGGGAAACATTCCTAGATACTGGTTCTAAATTAA +ACTTACCATTTGGCGAAGTAACAATTTTCCAGACCGGTACTAAACCAACTAAACGCCAGC +TCCGTAAGTTCAAACGTATTCATCGTGTCAATATGGTTAAAAGCATAGCTGAGCATGAAT +TTAATAATTCTTGGGAAGGCATCCATTGTGATGTTATGGGGCTGTAATGCATATTTTTAT +TCTGATTCTGGCTCTGACAACCGGCGATTCCGGTGGCGCTGCAATTGATAAGGTTGAAAT +AAAATCTCAAGATTATGCTGAAGCCAGTAAGATGTGCGACCGAGCGGGTGAAAGTTATCG +AAAAGACGTTAAGTCATTCAACGTTTATCCGGAATATACTTGCATCTACGCTGGTGTTAA +ATAGACCAGGAGGTGTTTATGAGCACTATTAAAGGGGCGATGGACGCAGTATATGCGTAC +AAATTTATTCGCCTGATGTCTAAGCCTTTCACTGAGTGGAAAGCATATGAAGCAAAAATA +ATTGACGAAAAGGGAACTGTGCTAAAGCGTCCTAGCACTCCAGAAGAGAAAGTGGCTTAC +TCTGCCTTTCATGCGAGTGTTCGGTCAATTAAGCGTATGATGTCTACAGTTCCAGGATTA +AACGGCGTCGCGTCGATGATGTCGGCTTGGAGTACAGTAGCATCTCGGTACAATATAACA +GAATCCGAACAAAAAGAGATATTTGAGGCTCTTCCATTGTTCGAGGACATGGTAGCTGGT +GATTCCGGTGGAAGTGTCCAGAATATCGCCTCTGGTACCACGACCGGAGCAATCACAAAT +AAAGGTCCTGAGCAAATCCCCGCAAAACGTAAGCGAATCAAAATCAATCCTAACAAGTTG +TGATAAAATGGCCTTAGAAATAAGGCCAAGGAGAATAATATGTCATGGGTTCACAATGAG +TTCGCATTCCGCGCACTATCTCATCTTCCAAAATTCACTCAAGTAAATAACGCAGCACAA +TTTAAACTTCGATGTCGTTGTCCGGTGTGTGGAGACTCACAAAAGGACGAAAACAAAGCA +CGATTCTGGGCGTACGGTCTACCTGATGATGTGCTATTAAAGTGCTATAACTGTGACTAT +GTAAAGCCGATTGGGATTTATTTGAAAGAGTATGAACCAGATCTTTATCGTGAATTCATT +CTTGAGTTACGAAAAGATAAAATGGTTCAACGTGAAAAACCTGTTGAAAAACCTAAACCT +GTTGTGGAAGAGACTAAAGGAATTAAGCTCATTCACTGTGAACGTCTCGATAAAATGGAC +CCTAATCATCCAATAGTTCGATACATCGCCGGACGTAAAATTCCAAAAGATAAATGGAAT +AGACTTTATTTTACGTTGAAATGGCCAGCATTGGTGAACTCAGTAAATCCAGACACTTAT +AAGACGGAGCGAGATGAGCCTCGATTGGTTATTCCAATATTCAATTCAGAAGGAATAATT +GAATCATTTCAAGGCCGTGCTTTAAGAAAAGATGCTCCTCAAAAGTACATCACTATTAAG +TCCAACGAACATGCGACCAAAATATATGGGACAGACACTGCAAAGCCAGGTAAAAATGTT +TATGTACTTGAAGGCCCAATAGACTCATTGTTCTTAGATAATGCTATTGCGATTACTGGC +GGTGCAATGGATTTGAGTTTAGTTCCATTCAAAGAAGATAGAGTCTGGATAATGGACCAT +GAACCACGAAAAGATGACACAATTAAGCGAATGAAACGTTTGATTGATGCAGGTGAAAGG +GTTGTCTTTTGGGATAAAGCGCCATGGGAAAAGAAAGATATAAATGATATGATTCAAAAG +GAAGGGGCTCGTATTGAAGATATCCAGAGCTATATCGAAAACAATATAGCGTCTGGTTTA +ATGGCACAACTCAGACTCAAGAAGTATAGTAAGATCGGTGTTTAAATTCCAACCATTATA +TGAGAAATAACTTGTTCCAAAGGAACAGGTGGAAGTGTTATCCCGTATGCTAACGCAAAA +GGTATGATAATATAATTCCAAGTTGCTACAGCAGCAGAAATTGCTCCGACCAGAATAATC +TTACCTTTCTGGTCTTTTATTTGAGTCTTTAGAGATTTCTTTTCAGTTTCTTCAGACATA +TATCCTCCTAAGGCTATTTAATATGAATCTGCAACAACACACGTTCTTAAAGCTTGGAGA +AGAGTGCAACGAAGTCGCGATGCTCTGTTCCAAGATAATGCAATTCGGTTTAGACTCCGA +GTATCAAGGAGTTACTAATCGGCAACGATTGCAAAATGAATTAAATGATATAATGGCTTC +TATAGAATATATCAGACAATACTCTGATTTCAAATTTGAATCTTCTGAATATGAAATTCA +CAAAAAGATTGATAAAATGAACCACTTCCGAGATATCTCAGAAGAACTCGGTCTTGTAAC +TAATTAAGAATTGAAAGGAAAAATAATGGCACACTTTAACGAATGTAGTCAACTGATTGA +AGGCGCTGATAAAGCACAAGCAGCTTATTACGATACCCTGGTATCTCAGCACAAAGACCC +ACTACAAGTAATGCTCGATATGCAGAAATCTCTGCAAGTTCGTCTGGCAAATGATAAGCC +TGAGCATAATCGTCATCCTGATTCGCTGGAAACAGCTGGCGAAGTCTTGGCTTGGTTACG +TGCAAACGATGATTACATCACTGACGAAACGCGTGAACTGTATACGGCTCTTGGCGGTAT +GTCCAATGGTGAAAAAGCAGCATCCGCAGTATGGAAACCGTGGAAGGCTCAACATGCTGA +AATGCAGGCTCGTAAGATTTCTGAACTGTCTCCTGAAGACCAGCTCGAAATCAAATTCGA +ACTCATCGACCAGCTTCATTTCTTCCTGAATAAGTTCATGGCTCTGGGTATGGATGCTGA +AGAAATCTTCAAGCTGTATTATCTGAAAAATGCTGAGAACTTTGCTCGTCAAGACCGAGG +CTATTAATGAATCATACAATATATGAAAAAGATGGGGTGTTTTTGCTCCATTCCAGATAG +CGAAGATATTTCACTGAACAATATTCTTATTTCTCATGGATTTGTTCCAACGTCTGATCG +TCAAATTATTGCATGCGAAAACAAAGAAGAACTGAACGAATTCTTAGCCTATTTTTATGG +CGAATATTAAAAGGTGAATTTGATGCAATCGAACTTTGATGTCTATCAATGGAACAAAGA +TGGTCGCCCAACTGAGCCGGCCTATGGTTCTGATGCATATGAACTTCGTCGTCACTGGTT +GTTTGCGGTAAATAATTACTTCATGCTCAATGGCAATCCAACTCGACTACATATCAGAGG +CGGTGGGTATGTAACCGTTGATTCAAAATATTATCGCGGTAAAGACTGGGAGTGGTATCA +ATGATTTCATACGCTGATATTGAAAATGCTTTAACCAATTATTGGGGATTGACCCACCTA +ACTCTCGAAGACCGATGTGAGTGTCTTCGAGAACTGATTGCTGATTCTGAAGACATTATT +GCAGATATAGCAGAAGCTCTTAACAACTATTGATATAAATACTCCTGTAATCAACAAAGG +AGAGTTTATGAGCTATGTAAATATCAAAACCTTCGAGCATACCAATGCCGATGGAGTAGT +TGCCGCGATGGAAGTTTCTGTAGCATTTAAGTTGTACAGTGACGTTCATCGTATTGCTCG +TTCTCATTATCAAATTTTCCCTTCAGAGAAAGCTGCTTACTCTACTGTATTTGAAGAGAA +TCAACGAGACGCATGGATTGCTAAAAACGCCGATATGTTTAAGGGCGTTCCAGCATCTGG +TGGTTGATTTTAGGGACTCCTTCGGGAGTCCCTTTTTTGCTTTTAAATGATGTGATATAA +TTCTTTTATCAAATGAGGATAACACAATGAGAACACCGTTTCAAAATCCACTACCATGGA +TTAAAGCTTGGATCAAAAGTCGACAAGAACCTAATGATTGGGTAGAAGAATTTCATTCTG +AACTACGAAAAAATACTAACGCTGAGTTCAAAGAAAAAGAAATTAAGCATCAGTATGAAG +AAGCTGAAGCACTTGCTGACCAATATCTTGGAGATAAGATAAAATGAAAACATCTGCTTG +GATGAAACCAGTTGAATCAGTCGGTGGTATTACAAAACTTATTACTGATCGTTTAATTCA +CGATCATCTTTTTATCATGAATAGCCCAGATCTTTATGATCTAGTAGATATCTTTATTCA +TTGCTATCGTGAAGAAGGTACTACATTACGTGTTGTATATGAAGCTCATTTTCACTTCGT +TGGTGAGCAAGCTGTTATTCGCTTTGGGACATCTTGGTTATGATTAAATGGCTTAAAACT +TTATTCACTCCGGCTCAACCCGATGATCGTCTGGTTCCTTTATCAGTTAATGATGTTATT +GTTCCTATGCAAGAACCAAAAGAGTATGTTTATATTGGTGATGGAAAGATGGAAGAAGTT +ATTCGTCCAAAGGAAACCGATATGCAATACCTGATTCGTCGTAATCATGAAATTCAGGCA +GAACGATTTAAATCTAGGTCTCAGCCAAAAGCTAATCCAGGCCCAAGTGCTAAGCCGTTG +AATGCAAAAGAACTTAAAACTCGAGTACAGGTTGTTAAAAGTCGTCAACAAACTTCATCG +AGTGCTCAATATAATTACAGTCCAAGCAACCCGGCTCCATTTATTTCAGGAGATTCATAT +GACTCAGGTTACTCATCCTGTGATTCAAGTAGTTCAGGTGGATGCGACTAAGTATAACAG +ACCTACATATAAAAGTCCACTAAAGAAATCTAATTTTGATATGTGGTATCGTTCTATGAA +GGCTGCAGCATTTTTGATAATTGCTGCACCTGCTATGATTAAAGCAAACGATAAGTGGTT +TGAAGAAAATAATATTGAAGAAGGTGCTATCTGTGGAAAAATGCGTAAACATCAGTAAGA +AATACTCAATTGAACTATCCAAAAAAGTAAATGGAAGAACTATAATTCAGCAAAATGATG +TGTTTACAGTTATCATTTCAGCTTTTGCTTCAAACTCTTCAACGAAGCATGAAGACTATT +TCAATGAGCAAATCGATAAACTAATTAATGGATTGAGTTTTCCTGAATCTGCAGTATGCT +TTATTAGACATGAAGCTGACGTTACTCAAAAGCCTGGGACTCCATTTGGTCATATAGAAG +CATTAAATCGTCTTGGATATGATGTACCTCGATATCAGCCCGGTGATAAGTTGTTTATTA +ACACTGAACAAAGAACGATATGGAAAAAGTTCCTCATCATTGATAACAATGATTTTGATG +AGCTCCAAAAATTCATCTGGAACCACTATGAAGATCGTGGATTGATCTTCACTGAATCTG +AATCGGCAAAACTCGCTCGCGAAAGCCTATATGAGCAAATGCGTCTTGATAACCTATCAC +TTCGGTACGGTCGATAATGGATCTGTTTGATATGCTAGAGCCGGCTGAAAAGCCGGTTGT +CGATTTACATAAGGTTGATATTTCAAAAGAAATTTTTGAAGTGCTTAAATCACACGGTAT +CGAATCTACTAAAGCTGCAGAAGATCTAGCTGATCTATTCTGCTTTCCTCCTCCCTGGGC +TCCTTGGGCCTAACCGTTTACATCCTCCTCTCACTATGATATGATAGCTTTCGTAAACAA +ACGGAGGCTATCGTGTTATATCAAAAAGAACACCTCGAAGAAATCCGCGAAAGCGCGGAA +CACAACTCGTCTTACTACGAACAAGCTATTTCACAGTTCAGTGACTACGAACAATCTGTT +TTATGGCAATGCTTCAACGATAAAGCGGACCCTAAATTGCATCTAGATTTAGACCCAATC +GTTCGTCGCAACATCACTTCAGACGTGCCAGTAGAACTATATCGTGGAGTATCAAAGAAA +ACCGCCGCTTGGCTTAGTCATATGGAAGTTGGTCGTATTATTGCTGATAATCGTGTCACT +TCATTCTCGTCTGATTTTGCCACTGCAAGACAGTTCGCTGGCGCTTATTGCTATAACACA +AAAGTCATTCTTTCACTTCGTAATTGTCCATTTGCTTTTAACTTTCAAGAGCATGCAATG +AACTTGGTTCTGGCTGCGCCAGATTCTGAGTTTAGATGTAATGCAATTAATGGTGATGAG +AGAATGGAAAAGTTGGAGATGATTAACGCGGAAGATGAGTGGATGTTCCCTATCGGGACT +CAGTTTGAGATAGTCAGTATTGAAGATTATCAGTTAGACCCGTTATCTCCGGTCTACAAA +ATCTATCATTTGAACTTCTATTCTTTCTGACCGTTTACATTCAACGGAAAGTGTAATAGA +ATAATCCTTGAAACCATTATACCACCTTCGCAAATAAAGCAAATAAGGATTCGTCATGGC +TATGCCTCGTGAAGTTGTTATCGCTCAACGTTTAGTTCAAACTTACAAAAGCGCATCATC +ACGCAGCAAAGAGTTCAATCTGAGTATGGACTATCTTTTGAACATCATGGCACAAGACAC +TTGTGCATACTCAGGTGAAAAATTTCATAAAGAGCCCGGTGATCATCAAATGACACTTGA +GCGTTTTAACAACAAAATCGGATACGTAGAAGGAAATGTGATCCCGGTCAAGTTGAAGTA +CAATCGTCTTCGCGCTAATCATGAAATTGAAGATCTTATTCGTCTCCAAGAAACAACTGC +AGCACGTATTGTTGCTCGTGTAGATGCCAAGAAAGATGTCGCTCCAGTAGTGAAAGAAAA +GCCTATTCAAGACGTTCATCGCATTGATTTACCTGGATTTGAAGACATTAACTTGATCTA +TGTCCCTAAGACTCAACGCGAAGAAATCCGCCGAATTGTTCAGAACATCAAATCTCGTCA +AGCTCATATATTACAAAAAGGTGTAACTAAAGAACATAAAAAATCACTGGAAGTTCGTAT +TCACGGCGGAATCACTCGTATAAAAGCGATAATCAAACAAAAATATAAAGCTCCACAGGT +TGTGACTTCCCGCGCTGCGTCGAAGAAGACTTCTAAAGCAGAAAATACTTCTTATGATTA +TGGTATAATTATCCAGGGTTTGAATCGTTTTCAGAATCTCTCTCGTCTTGATAAAGCTAA +ACTGAAGAAAGGTTTGCCACTTTCCGCCACCTTCTTCCAACTGTTAAGAGGTAAAATGTG +ATGCACTATGGTTACATGTTGGTCTACAAAGACAAATCCGGGTATGAAATCCCGGTATAT +GAATTCTACCGAAATAATCCAATCGGCGGAGCTATGATTTACACTAATAAGAATGACGCT +CGTCATGCTTTAGCTCAAGAAGTTGCTGAGTTACAAGAACGTCTTGATCGCGGAATGAAA +GTTGTTACTCAGAAGAAAAAATGGCTTTTCTTCAAACGTGATATTATTACTTACATTCCA +GTTAAAGATGAAGAAACTCGTCGTCATCTGCAATTGCTCATTAACACCATAAAAGTAAAA +CGAGTTTCAGTAGCCTAGGAGTCATTTTGAGAATTACATTTGAACAATTAACTCGAAGCC +AAAAAAGTACGTTTGATACGACTATCACGGCTATTAAAGAGAAGAAAACTCACGTAACAA +TTAATGGTCCAGCAGGTACTGGTAAAACTACTCTTACTCGCTTTATTGTAGACCATTTAA +TTTCTACTGGAGAAACGGGTATTATCTTAGCTGCACCTACTCATGCGGCTAAAAAGGTGT +TGTCTAAATTGTCTGGTATGGCTGCTGCTACTATTCATAGCATCCTCAAAATTAACCCGA +CGACTTATGAAGAGAATATGCTCTTCGAACAAAAAGAAGTTCCAGATTTGGCACAATGTC +GAGTGCTTATTTGTGATGAAGCTTCTATGTGGGACCGTGAGCTGTTCAAGATTTTAATGG +CCTCAATTCCTAGTTGGTGTACAATCATTGCAATTGGTGATGAAGCTCAGATTCGTCCGG +TATCTCCTGGCGATTCTTCAACTCATAAATCGCCTTTCTTTACTCATAAAGATTTCCTAC +AATTAGAACTCGACGAAGTAATGAGAAGTAACGCTCCGATTATTGAAGTTGCTACTGATA +TTCGTCAAGGCAAATGGATTTATGAGCATACCAGAGATGGTCATGGTGTTCATGGATTCC +AAAGCTCGACTGCATTAAAAGATTACATGATGCAGTATTTTAGCATCGTAAAATCTCCAG +AAGATTTATTTGAAAACCGAATGCTAGCATTCACAAATAAGTCAGTAGACAAATTGAATA +GCATTATTCGTCGTAGGTTGTATCAAACTGAAGATGCTTTCGTTACTGGTGAAATCATCG +TTATGCAAGAACCTCTCATGAGAGAGTTGATGTATGATGGTAAGAAATTCACTGAAACAT +TATTCAACAACGGACAATATGTTCGTATATTAGATGCTCAGTACACATCAACCTTTTTAG +GTGCCAAGGGAGTCTCTGGTGAACACCTAATACGTCATTGGGTGTTAGATGTAGAAACAT +ATGGTGATGATGAAGAGTACGCCAGAGAACAAATAAGGGTCATTAGTGACGAACAAGAAA +TGAACAAATTCCAGTTCTTCTTGGCTAAAGCTGCTGATACTTATAAAAACTGGAATAAGG +GTGGTAAAGCACCTTGGTCTGAATTCTGGGAAGCTAAACGTAAGTTCCATAAAGTTAAAG +CACTTCCTTGTTCTACGTTCCATAAAGCTCAAGGTATTTCTGTAGATACAAGTTTTATCT +ATACTCCGTGTATTCACGTTAGCAATGATAACAAATTTAAGTTAGAATTGCTTTATGTGG +GTGCTACTCGTGGTCGTCATGATGTTTTCTTTGTGTGAGGATTTATGTACAGTTTGAATA +TTGATGATTTTGAAAAATTAATTGATGCTGTTAAGATTAACAAGCCTGATGATAAATGGT +GGCAGTGCCGTCAAACTGAATTAGTGTCAGAGCTAAATGAAATCCGTGACAAAGCTTTAG +CTATTGCATGGTTCCAAGGCGAATGTCCGCTTATCGGAATTAGTGATAATATTGCTCAAC +AAATTTATGATTTGAAGGTAGAACTATGTCGTTAAGAGATTTTATTATTGACTATGAAAC +TTTTGGAAACGTTTCAAATACTGCTGTCATCGATTTGGCAGCGGTAGTATTCGATCCTAA +TCCAGAAGTTATCGAAACATTCGATGAGCTAGTTTCTCGTGGAATGAAATTAAAATTCAA +TTTGAAAGCACAAAAAGGTGTTCGTCTGTTCGGTGCTTCTACAATCGAATGGTGGAAAAA +GCAATCCGCTGAAGCTCGCGCTAACTTAGCCCCATCTCCGGAAGATATTGACCACGTTGA +AGGCTTGTATAAACTTCTGGCATTCTTGAAAGAAAATGGAGTTAATGCTTGGGATTCATT +CGGCTGGTGTCGTGGTCAATCTTTTGACTTCCCTATTCTGGTTGATATTCTCCGCGAAGG +AGAACGCCGTAAAGGTATCGCAGATAAAGATATCGATACGTTTGGTTTAGAACCATGCAA +ATTCTGGAACCAACGAGATGTTCGTACCGCAATTGAAAGTCTTTTGATGACTCGTGGTCT +TACAACTACTCCGCTGCATAAGGGTGTTCTTGACGGATTTATTGCACATGATTCTATTCA +TGACTGTGCTAAGGACATCTTGATGTTAAAATATGCTCAACGTTACGCACTAGGCTTGGA +CGAAGCTCCTGTCGGTGATGAAATTGATCCACTCTCTTTACCTAAAGGTCGAGGTTAATA +TGTTTAAGAAAAATGATAAAGTTAAAGTTATTTCTGGTAAGAATGCAGGCGTAGTAGGTG +TAGTTCTCGGCCATTCAGTTCGTGATGGTTATCGCATTCGTAGCAATAAAGATAAAGTGA +TTTACGCTAAACCTTACTATGTAGTTGAAGATCCGATGGCTGAACGCACTGAAATCCGCG +AAGGCGATGTGGTTATCGTGATGGAACCTTTCGCTGCTCATTATAGCACGGTTTCTAAAA +GTCCGTATGAATGCTTATGTAAAAACAAAAACGCGATGGTATCTCTGATTTACACCGACG +AAGAGTATGGTGAAGTCGCGAACATCGTTTACCAAGGCCAGTATGCAATCATCCCTCTGA +GTGCTCTCCGACGTAATCCTACCCGCATCGCAGGAAAACACATCACAGTATAACTCTGCC +GTTTACTTTCCTTGAGGGCTATGATACTATAGCCCTATCAACAAACATGGAGAAACAAAA +TGAAACAGCAACTCACTCAAGACCAATTCGAAGATATTCTCTTCAACCCTGATCTTACTG +TGGTTCAGAAAGATGTATCTGGTCATCTTGAGCACACTACATACGCTTACGTGTATCAAG +GAGCTTTGGCGGTTTACGCTGCAGTTCGTCATATCACTGAAGCCGGCACAACTTACTGGA +AGGAAGCTATATAATGAAATTTGAACAGAAATTTGAACAAGGTAAATTCTACGCTTTTCG +CGGTGAAAATTCTCGCGATAAATTTGAGAGTAGCCATCACACAAATAAAGCTATCGTAGA +TGCTATTATTGCAAATGGCGGGGTATTTGAAGCAATTCAGGTTAACGGTTGGGGTGCATT +AGAAGTTGCCCGCTTTACATCTACTGGCAAAGTCTATCATGAAAATGATGATTGCCAATT +TTATCTGTCAAGCGATGAAGCTGAATTCTTCATCGAAGTCGAGCCTAATGGAAATCCAGC +GAACCCTAAGCCTTCATTGATTCAAATTGATCAGCAGATGACTGCTGCTAATGATGAAAA +ATTTGAAGATTCTGAAATGATCACCGATGATATTCCAGTGCCTCATACTACTCTGGTGAT +CACTAATCTTTCTGAAGCGATTTCTGCTTACAAAATGTTGAAAGGAATTATTCCAGATGC +CAGTCTATAACTATAAATGTCCAGCATGCGCTCAAGAAATTGAAGTCATTCGTAAAATTT +CTGAGCGTGATAATGAAATGATTTGTCCAGTACTTTGTTGCTCGAATCAAATGGAACGTA +CAGTGGCCGCTCCGAAATCAGTTCATGGCGGCTTTTACGACAACTTAAAATCAGGCGGTA +GCAATCTATGAAATGGGAATTAGGAAAGACTTACGCATTTGCTGATGCTAGTGCATTTCA +GATCGGTGTTAATCGTGAGATTCGCGAAATCATTGAAAGTAATATAGATGGATTGTTTCA +GGTTTCGCGTTTGAGCAAAAATCCACTCACTGATGTTGATTATCATGTATATGAAATTGT +ATTATCTGATGGTCGCATAATTGATGGTGAAGTAGCTCGTGAATTACATGGTTTTGGCAA +ACATGATATTTTCGCAATTTTTGCTAGTGAGCGCAAACATTTTAAAGAAGTAGAATGTAA +TCGCGATTTCAAAATTTCTATAGATGATTGTCAATATGACGAATTTGACGAATTTGACAA +TGAATCAGAAGAAAATGTGATGCCCAAAATCGAAGTTGAAGGTCGCATTGCTATTGGTTC +TATTTCTTCCGAAGAAGAACGCCTTTGGTTGATTGATTCACTAAACAGGATTAAATTCAA +ATGAATTCAAAACCTCGTAACATCATCAAACCAGGTGAAACTAAAATAATCAAACTCGCT +GATGGGCGAGTTTTTAAAATCAAAAAGGCTACGAAATGAAAAAGATTCTGATTACTCTAG +CTGTTGTATTTGCAATGGTAGGTTGCACCGATGCCGATAACGCTGTGAAAGTACTGCAAG +CTAATGGTTTCACTAATATTCAAACCACTGGATATAGCTTCTTCTCTTGTGGTAATGATG +ATTCTCAAGCTACCGGATTTACTGCAATAGGTCCTACTGGTGTTCCGGTTAAAGGTGCCG +TTTGTTCAGGCATTTTTATTAAGAACTCAACTATCAGGTTTGAATGATGGAAATTATTAA +AAGCTTTGGCAAGCACAAGTATGAAGATCGCTTGTGCTTTATTACAACATTAAAGGTTTG +TACTCGTACATTGACAAGTTACACCACTGCTCCAATCACTCCAAAGCATTTGCGTGGTAT +GAAGAAAAATATCCGACTACTAGCTTCAGGAAGACGTTTTCCTCATGAAGTTTTAGGTTG +CAAAAACAAAAATTGTAAGCATTGTAAATAGGGCTTCGGCCCTATGGAGGATATATGATT +TTCGGATTAACAACTGCTCAAAAACAAGCCAAGGCCCATCTTGAAGTTGTTGAACGTGCT +ATTGGTCGTTATCGATTTGCTTGGTGGCCTACTCGAATCACAACAGGTCAGACGATTTGG +CTTCAAAAATATTATGAAGTTGAAATCAGAGATATTGTAATACAACTCGATAAAACTTAT +GGTGTAGATACTAATATTACGTATGCAGTATATGCTTATTCTGATATTTCAAAAGCCGAT +TGGAAAATATTCGAAGCTTATAAACAAAACTACGGTCTGTATTACGCAAACAAATGTCAT +AAGGAAATAAAAGGTAATGAGGCCTTTGATCATTTGATTCGTTACAAAGCTGAATTAAAT +GCTTTACTAAATCCGTGATAATATTTCACCACTAAACGAGGAAATGAAATGATCAATAAC +GAAATTAAAATTCTTAGTGACCGTGAGCATATTATCAAACGTAGTGGTATGTACATCGGT +TCTTCTGCTCATGAATCTCATGACCGTTTTATGTTCGGTAAGTTCGGTGCAGTGAAATAT +GTTCCAGGAGTAATTAAACTGATTGATGAAATCATCGATAACTCCGTAGATGAAGCAATT +CGTACTAACTTCAAGTTTGCGAACAAAATTTCTGTAGACCTTAAAGGTAACAAAATTATT +GTTACCGATAATGGTCGTGGACTTCCTCAGGCTGATGTAGTTACTCCTGAAGGTGATACT +ATTCCAGGTCCAGTAGCTGCATGGACTCGTCCTCGCGCAGGTGGTAACTTCGGTGATGAT +GCTGAACGAAAAACTGGCGGTATGAATGGCGTGGGCAGTGCTCTGACCAACATTTTCTCA +GTCACTTTCGCTGGTGCAACATGTGATGGTAAAAATGAAATTGTAGTTCGTTGTTCTAAC +GGTGCTGAAAATATTTCATGGGAAACTGTTCCAGCAGAAAAGAAAGAGCACATTCAAACT +AAGACTGGCACAATCGTTTCATTTATTCCAGATTTTAGTCATTTTGAAAGTACCGGACTG +ACTCAAATTGATGAAGATATTATTCATGATCGTCTTCAAACTCTGTCAGTAGTATTCCCT +GATATTGAATTCAAATTCATGGGTAAGAAAGTACAGGGAAACTTCAAGAAATACGCAAAG +CAATTTGATGAAGAAGCAATTGTATTTGACGAAGAAAATTGTTCAATGGCGATTGGTCGT +TCTGATGATGGTTTTCGTCATCTGAGTTATGTGAACAATATTCATACAAGCAAGGGTGGT +TCTCACGTTGATTTGATTATCGATGAACTGAGTAATGAACTCATCCCGATGCTTAAACGC +AAGTATAAGCTAGATGTTAATAAAGCTCGTATCAAAGAGTGCTTAACTCTGGTTGTATTT +GTTCGTGATATGAGCAATATGCGTTTTGATTCTCAGACTAAAGAGCGTTTAACCTCTCCA +TGGGGTGAAGTAAAAGCTCATATGAATCTGGACTATAAGAAACTTGCGCAGCAAGTTATG +AAAGCTGAAGCAATTCATATGCCGATTATCGAAGCTATGTTGGCTCGTAAATTGGCGGCA +GAGAAAGCAGCTGAAACTAAAGCTGCTAAGAAAGCCCAGAAAGCTAAAGTAGCAAAACAT +ATCAAACCAGCTAAATATGGTGATGATTCTGTTGAGACTACTTTGTTCTTGACAGAAGGT +GATTCGGCAATCGGTTATCTGATTAATACTCGTGACCGTGATCTTCATGGCGGATATCCG +TTGCGTGGTAAAGTAATGAACACGTGGGGAATGTCGGCTGCTGAAGCGATGAAGAACAAA +GAAATCTTCGATATTTGTGCAATCACGGGATTGGTAATCGGTGAAGATTTTGATACTTTG +AACTATAAGAATATCGCTATCATGACCGATGCCGACGTCGATGGTGTTGGTTCAATTTAT +CCAAGTCTGTTAGGTTTCTTCAGTAATTGGCCTCGTCTATTTGAAGAAGGTCGTATTCGT +TTCGTTAAAACTCCAGTCATCATTATGTCAAAGGGTTCTGAACAGAAATGGTACTATTCT +GCTGCTGAATATGAAGCTGAAAAAGAAAAATTATCTGGTTGGAAACTTCGTTACATCAAA +GGTCTTGGTTCTTTAGAAGAAGACGAGTATGAACGAGTTATTCAACAACCAGTTTATGAT +GTAGTTTCTTTGCCTGATAACTGGAAAGAATTATTTGAAATGGTTATGGGTAATGATGCA +GCTCCTCGCAAAGTCTGGATGAGCGAATAAATATACATGAGCAATTCTGCTCTATAATAA +GGAGAGTTTATGTCTCAAGCTTGGATTACACTCGTAGACGGAAGTTATGGTTACATGTGG +GCCGACGCATTGCCACTTCCTGGTGATTGGGTAACAATTCGTGTAAGGCAGATTGATAAC +TCTTTCAAGAAAGTATATGGACAGGTATCGAGAGCTACCTGGTAATTTTAGGGACTCCTT +CGGGAGTCCCATTTTTGTATGGTGACTTATGAAAATGCTTAATGGAAGTTATGTTAATTT +AGACAACGTAGCAGCAACAATCCGAGACAGTAAGAAGATGTACTTGGATAAACTCAAGAA +TACACCAGATGATCTCTGGTTAAATCAATTCTCGAGGATGATAGAACATATTGCTGTACT +GGTAGAAAGTAACCAAGCCATTCCAGTTAACCTACAACAAACAGCACTGAAGCTGGTCTA +TTCAGCTCGTGAAAAATATACTATAAGAGAATTCGCCGCAATTCTCAGAGAGGTTGGTAA +TGAAAAGTTATAATGTGAATTTGACACTCTTTGATGACGCGGTATTCCGTGAGTACAGAA +TCATTCAGCGGTTCTTCGACATCAATGAAGCTGAAATCTTTAAAGACCGCTTTAAAGAAA +TTCGTATTAAAATTAAAAACGACACTGCAACTAAAGATGAACTCTTGGAAGTTGCAGATT +TAATTAAACGACATAACTGATAGGAACAATATGATTATTTCCCAAGAACAGGAAGTGGTA +TTTGGTTCTGCGAATCAACAAGCAACTGCTTTCGGAATTGAAAACAACGCAAAGGCATTT +ATTCTTCTTTCTGATAAGCTGTACACTAACAAGCCTTATGCGATTGTACGTGAATTGTCG +ACAAACTGTCTTGATGCTCATAAGTTGAATGGTCAGACTCGTCCATTTGAAGTTAAAGTT +CCTACACGTTTAGACCCACGATTCGTTATCCGTGATTTTGGTCCAGGTCTGTCTGATGTT +CAGATTCGCGGAGCTAATGGTAAGCCCGGTCTGTATAACACTTATTTCGCTTCGACAAAA +TCTGATTCAAACGACTTTATCGGTGCAATGGGTCTTGGTTCTAAATCTCCGTTTAGTTAT +ACAAAAACATTCACAATCATTTCGTGCCATGATGGCCGCAAAATGGGTTACACCGCGATC +ATGAAAAACCTCGGTCCAGAAATCATTCCTTTGTTTAATGAACCGATGGGCGAAGATGAT +GTGACTGGTATTGAGATCACCGTCCCGGTTAAGACAGACGATATCTCTAAATGGGAAACG +GAAATTAAGCGAACATTCCGTACGTTCGTTGGTGTTGAACCTAAGATTCTAGGCTCGAAA +GTTGAAATTAATTATTTCCCTGAATTCACTCCAGACAAACAATGGTTCAGTCTTAATTCA +AGCCCATTTGAAAATGATCAATCGTTGTACGCAGTTTATGGTCGAATCGTTTATCCAATT +AAGATGAGCGAAATTCCTGATATCAAAGCCGACTGGCTTCTGAACCGATATGGTCGAGTT +TATGTTCATTTTGATTTAGGTGAACTGGATATTACTCCATCTCGCGAAGAACTTTCCTAT +AATGAAGAGACTATCGAGAACATCCGAAATAAAGTTAACAATCTTGAAAATATAACGTTA +GCTGCTGATTTAGAACGTTTCCAAACAATTGAAAATAAACGTCAACTGTCTCGTGAATTA +CAAGCATTAAATCATCGTCAGCGGACGATTTTAGGCACTCGTTCTATTCTTATCCAAGAT +AAGCCATATCAAGATTGGGTATCGATGTTCCACCATAGCAAAGTAGAGAATTTGGTCTAC +AATGCGAATATGGTAGCTTATTATGTCGGTACAGATGCTGAACGGCGTCGAATTTCTAGT +TCATGGAATGTTCGTAATCGTCTGTCAGCACAAAGTTTGTTCTCGATTGATCACAAGAAA +ATAGTATTCATGATTGATGATAAACCATCTCGTCGTGCTTCTACTATTCGTGGTATGTAT +GCTCTTGATATTCACAAGTACTGCTATGTTATCTTGGTTAATCCAGATAATGAGAAAGAA +GTTCATGTGATGAACGAAATCACTAAGTTGTTTGAAGGTGATGAAGTTATATGCTTTAAA +TGTTCTGAAATGGAACAGGCAAGAGTTAAAGACGCTGAACTGAATGCAGCCAATTCAGAT +AAAGAAGGCGCTAAGCGTCCTAAATCTCCTAACATCCAGAAATGGTCTAAGACTGATGGA +AAATGGGAAGTTGATTCGTTCTGCATGAGTGCTAATGAAGTTCGTGAACTTGAAGGTTAC +GCAATTGGAATATCTCGTGATTCTATCGTCGAGTTTCCAAGCGGTAATGAAACATCATTC +GACCAGACAAATATTAAAGGCGCTTGTGACTATGTGAATGTTTCAGAGTTCTGGATGATT +CGTCCAGCTGCAATGAAATACGCGCAAGATGCTGCATTGGACCCTCTGATGGATGAGTTC +GTCAATAAGTTCATTGAATTGATTGATAAAGTTGATGCTGATGTTATTCCACCTTCGACT +ACATCTCGACGTCAAATTAATAATATTCTGTCAATTAAAGCGTTGACTCCGTTAATTAAG +AATTTTTACGACGTTAAAGATTGGCAATCTTCTGTAGAATTGAACCAGTTTGTCAAGACA +TTTAATGGGTCAATTCATGGTGAAGGTGAAAACGCTGAGAAATTAGCTTTATGTCAGAAG +ATTTATAATAGACTCGTAGAAACCGCTAAGTCAGATTTTGAAATAAAAGCGGAAGAGTTT +GAAGAAAAATATCCGGTCATTTGGTATATGCTTGATGAATACTACATCCATGAAGCTAAA +AATCACAATGATCTTGCTAAAATTGCGGCGCTGTTAGGCGCCATCTAAGAGGTTTATATG +GCCGTACAAATGTTTTCTGATCGTCAAAAGATGTCCATCGTTGATTATGCCGAAGCCGGT +TATACTCGCACATGGATTGCTAATCGTTTCAATTGCTCGACTGATACTGTTCGTCGAGTA +ATTAAAGAAATGAAACCTGTTGAAGTCGAAGAGACTGAAGCTCCGGCTCCAGAAGCTCAA +TACATCTGGAACGCATCAAATAAATTCATCAGCATCACCGATCTGTCTACTCATAAGACT +TATCCAGCTGATCATAAAACGAAGGGCTTTAAAATTGCTCTGCAGCGTCTGATTGATGGT +GACATCCCAGGTGCACTGGAAATTATCAACGCAGAAAAAGGTCTGACTACTTTCGTTAAA +GGCAACGTTAAAATCGATAACGGTGCTTTGTTCTTCAAAGACATCGAAATCAAATCCGGT +TTGACCGAGCGTATTCTGGACTCTATGGAAAAAGGTGAAAACTTCGAGCGTTATCTGCCT +TTCCTGGAAAACCTGATGTTGAACCCAAGCCGTAAAGCTGTTTATCGTCTGTTTGATTTC +CTGGTAGCGAACGATATTGAAATCACTGATGACGGTCATTTCATCGCATGGAAAGTAGTT +ACTAAAGATTATAAAGACTGCCGTACTAATAGTTTTGATAACTCTCCTGGTGTAGTGGTT +AAAATGGAACGCAACCAGGTCGATGAAGATGATGAACGTACTTGTTCTTCTGGTCTTCAT +GTTTGCTCCAAGAGCTACATCTCTTACTTCCAGGGTGGTTCTGATCGCGTTGTTTCCGTT +AAGGTGCATCCACGTGATGTAGTAAGTATCCCGGTTGATTATGGTGATGCTAAAATGCGT +ACTTGTGAATATCTCGTACTTGAAGATGTTACTGCACAATGGGGAGTTCGCTAATGTTAC +CGCATCAACACCGCGTAGTGCAAGAACGTGATGATCTTGCTGTAAAAATCGAAGCTTTAG +GCACGTTTATCGATAATCAAAACCCGGTATTCAAGAATCTTGATATTGAAGACCAATTTC +TGCTTAAACAGCAATTAACTATTATGGTTGAATATCATCGAGTACTCGATGCTCGTATCA +ATCGATTCTAATTAAAGCCCTTCGGGGCTTTTTCTTTGAGGTTACTATGATCAATCCAAT +GAACGTGGGCGATTCAAGCATTAAAGAAATTACTTTGCATGGAAACCATTATGCGGAAAT +TTTATACGCATTAGATGTTATCTTAGACCCAAATGCAGATGGTGTATTGGTATGCGAAGA +TTCATTTCTTGGAAAGGAAAATGTTGATAATGCTTTAATGAATCTTGAATGTTTGAATTA +TAACGATCGAGTCTACCAAGGAGTAGTTCGAGTACGTGACTTTTACATTGGTGGTAAAAA +TGAACAAGCAGAACGTGGGGTTAATGAGACTGAAGAGCCTGCCGACATTTACCCGGTCGA +AGAATGATCTTACAGGTGAAGACAAAGTCAAAATAAAAGGCACTGTCCAGTACTCGATGG +AAAAAGATCCAGACCAGGATTTAGAACAAGTTAAACGTCGATGCATGATAGCTCAAATGG +CTGAGCGAGCAGTTGCAACTTGGGTTGATGGATATGTTGCTAACATGAAAGCTGATTACG +AAGATCCATTGACGTTCGCTTGGGATGTGTTAGCTCATCCAAAGTATTCTGGATTGAGAA +TTGAAGTTAAGACTCATCAGTCTGACGCTAAGTGGATTTCTGTCACTACTGGTTATGGCG +GAGACTATCCGTATGGATCTGGGGTTAACCTAGGACCTTTCTTGACGCATCAAGTAGCGG +ACTGTATTATCATATTAGATGTGGAAGAAAGTTCACCGGGGCTGTTCTCGTTTACCCTAA +AGTTCGTTGGGGACCAAGAAGACCTAAAGAAAGTTGTTCGGCGTAGTAACTACACTGGAT +GGTACTTGAACATTTAATCTTCAGCCGTTTACATCCACATGGAAGTGGTATACTATAGAC +TAGAAATCAACTAACGGAGAACAAAATGAAACGTTACTACTTGAAAAACCGAGCTTCAAA +AGAAATTGTTACTGCTACTTTCGATGCTAATGAAGAAGGTGATTGGACAATTCTTGATTT +TGATGGCGAGCAGCCTTATTTTGGTTCTAAAGAAGAACTGGAAAGAATTCGTTCAGGGTT +ATGTAATGATTCATGGTCTTACGAAATAAGCAAATTCGTTAAACTTGCTATTAAATTAGA +ACTTCTTGACATCATTGAGGTTGAATTATGATCCGTGTAACTGTGATGGTCTGGTTTGAA +CTAGAAAACGGTGAGCCTCGTTTCAAAACCTGGGACGATTATATGCATGGCGGAGACGCT +CAGTATGTTGCTAAAAGACTTGCCGAAACATATCGTTATGGACAGTGTAAGATCTTTGAT +AATCTGGATCGTGTCATTGGAAGTGCAGGATTTGAATAAAAGCGGAGGGTAATGCCCTCC +TGGAGCATAAAACTTTAACTAATGAGAGAAATAATATGAAAACTTTACTGACTGTATCTG +TTCTGGAAAAAGCCGGAGCGACTGTTCTGGGTAAAATCAAAAATGCTGATTGGTTTAACA +GTGAACCCGCTCGTGAAGTTCTGAGTGAACCTGGGTTTTATTTTCTGGTAAATCCGGGTT +CTTACACTACAGCTCGTTTTTATGTAGGTCGTCAACGCTCTAAATGCGGATTCAGCAATG +TTCTATCTCAATTAAGTCGCGGTCGTTCTCAGCTGGGTCGTACTCTTCGTTGTAACGATG +TAATCTACGATGTATTCTTTGTTCCAGTTTCAAAAATGAAAGCTTTGACAACTGGTTACA +ATAAAGGCCAACTTTCTCTGATGTTTACTAAATCTCATAAAGAAGCGTTTCAGAACCTGG +AAGAAATGAATCGTATGCTGAATGATAACTTCCTCTTCGGTCTACAGAGTTACTAATGAA +ACAGATCTGGACTTTGGTGTTTCTGATTATGATTTTGCTTCTGGTGTATTCATCTGGGAG +GGATTAATCCCTCCGCCTCGAGTACTTGGAAGTATGTGCTTTGGAATTGCGATATTAGCT +TTAGAACGAATTTTTCTTTTATGTGGGATTGATTAAATGAATAAATTAGTGGGTGCATTG +GGTTGCGGTATTTGGGCTGGGTTATTTGTAAGTTTTGCAACTGGAGTTGCTACTCCTACG +GTATTTTCTTCTAGCATAATGGCGTTGACTCTGTTCATTGTGACTTTGATTAATTTAGTA +AAATGAAACGTGTAACTGCTTCTATTGTTATTTTGGCCATCATTATGATGGCCGTTTTCT +ATGGTGTAGCTTACGGCATTACTGAGATTTTGCTTTTCTTAGTTAATGTTATGATTGACA +TCGGTTCAATAATTTGGTAATCATATGCAATTAAATCAAAGAAGTCTTCAAAGTATTATT +GATAATGAAGCGAAAGAATTCGCAATTTACACTGTCGAGAACCGTGCTATTCCAAACATG +ATTGACGGGTTTAAGCCGGTTCAACGTTTTGTAATGAAGCGAGCTCTTGACTTAAGCCGT +GGAAATAAAGAAAAATTTCATAAACTTGCTTCTGTTGCAGGTGGAGTAGCGGATCTTGGT +TATCACCATGGTGAAGGCTCAGCTCAAGATGCCGGTGCATTGATGGCTAATACATGGAAC +AACAACTTTCCACTATTAGATGGTCAAGGTAACTTTGGTTCTCGTTTGGTTCAAAAGGCT +GCAGCATCTCGTTATATTTTCTGTCGTGTATCTGACAATTTCCGTAAGGTTTATAAAGAC +TTAGAGATTGCTCCGGCTCACAAAGATAAAGAACATGTTCCACCAGCTTTCTATCTTCCT +GTAATTCCTACAGTTCTTTTGAATGGTGTTCGTGGTATTGCAACTGGTTATGCAACAAAT +ATTCTTCCACATAGTTTTGAGTCTGTTGTTGAATGTACTCGATTAGCTTTGGAAGGAAAA +CTTGATAAAGAACCTGAAGTTAAATTCCCTAAATTCAACGGGAAAGTAATTCCAACTGAA +GACGGTGGAGTTGAATTGCACGGTGTGTATAAATTCACTTCAGCAACTCAGATGTATATC +AGTGAAATTCCATATAAGTTTGACCGTGACACTTACGTGGAAAAAGTACTCGATCCTTTA +GAAGAAAAAGGTCTGATCACTTATACTGATGATTGTTCAAAGGCTGGATTTGGTTTTAAA +GTTAAATTCCGCGGTGTGTATAATCTTCCGGTGTCAACTGAAATGCGTCATGACATGATT +ATGCGTGATTTCAAATTGATTGAGAAATTGTCGCAGTTCATTGTTGTCATTGACGAAAAT +GGTAAGTTGAACGATAAGTTCACTAAAGCGTCTGATTTGATTAAGCACTTCGTTGAAGTT +CGTAAGACTTTCGTCGAAAAACGAATTGAATACAAAACAGCTGAAGTCAAAGAGCAATTA +ACTCTGGCTGTTGCTAAAGCTCAATTCATCAAAGACGTTGTTGACGGAAAAATTGTCATT +CAAGGCAAAACTCGTAAAGCGTTGGTATCTGAACTTGAGAAAGTAGATTTATTCAAAGCT +CATGTTGAAAAACTTGTGTCAATGAACATCTATCACATCACAAGTGACGAAGCCAAGAAA +CTGGTAGAAATTGCAAAAGATCTCAAGAAAGAATACAAGTACTGGCAAGAAACTACACCA +GAAGCTGAGTTCATTAAAGATTTGGAGGAGCTATGCGAGTAGCTATAGTTCTTCTTTTGT +TAACTGTTATTCTTTGGTTCATGCCTGCGTTTATTATAGCGCTTGTTCTTGGAGCTCTCG +TAGTTATTGGATTTATGGGCTTCTTGTTGTCACTTCTTCTGATTTTTCTTTAACTCTACA +CGGCTCTAGTGAATTCTAGAGCCCAGTCCATATAATTAATCATCCTTCCTTGTTGTATCC +TCTCAACCGTTCTGGTTAACTTAAAAATATTTTCATTCAACCGTTTACTTCTGCTTTAAG +ATTTGATATTATTACCTCATACCAAACAAACTGATAGAATCTTGGAGAATAAAATGAAAG +TTACCCTGAAAATCGAAGTTACCAAAATGAAAGCTAAAGACGCTCTGACTTCTAACAAAC +TGATTGTCGATAACGTAGAATACGATATCTGCGGAGTACGTGAAGTTGAACCTGGTACTT +TGACTTTCTTCACAATGATTTTTAGCCCAAAAGCTGAAACAGTGTTTAAGCAGTTCGTTT +TCAACCCAGAAGATGAAGTTACTGTTAAAAACGCAAACTTCAAATAATAACCGTTTACAA +GTGCTATAGTATATGATATTATAGCACTATCAAAACTTAAGGAGAATAAAATGAAAAACG +TAATTATTGCCGCTCTTGAAAACGAAGGTTTAATCATCTGCCATAACGATATCAAAGCTG +TTAAGTTTGTACGTAAAACTTGCAACGATAATGTTTTAGGAGCTATCTATCATGCTATCG +TTTATGACGATAACGAAGATATCTTCAACGTGGTGAGTATTTTTATGAACTGTGAAGACC +TTACTGCTGACTTCGGTGGCTCAGCACACTTTGAAGGTTCTTATGATGAATGTGTTGAAT +ACTTCAACGAATGAGGAAATTATGGAAACTTTAGTTAAAAACTTGAAAATGCTGCTGGAC +AACACTGGTGGTGACTTTGAAGATAAGTTAATGCTCGCTCGTCTTCACTCGTCAAATACT +GATACCAACAGCTATCTGACTGTCTGGCATAACGAGCTATGTGGAGGCTACTATCTAGCT +TGGGTTTACGTCAACAACTATGATATGGTTGTGGTCCTGGATGACGAAATCGAAGATGTC +GCAGAAACTTTGAATCAGGCCAAAGAGTTGTTCAAAGAGTTTTTCCGCTAAGCTGTTTGA +TAGCATCTTTTTCGGAAGGTGCTAAACTAACCGTTTACATCCGCTTTAAACTATGGTATT +ATAGCTACATCAAAACAAATATGGAATTCGGAGAAACAAAATGTCAAAAGTAACTTACAT +CATCAAAGCTTCTGAAAACGTTCTGAATGAAAAAACTGCGGCAATTTTGGTTAAGGTAGC +TAAAGGTAACTTCATCACTTCAGCTGAACTTCGTGAAGAACTCGTTGAAACGATGAATGC +TTCTTCAGTTAACAGCAACATCGGTGTTCTGATTAAGAAAGGACTGATCGAAAAATCAGG +TGATGGATTAGTTATCACAGGTGAAGCACAAGACATCATCTCAAATGCTGCGGTACTTTA +CGCACAAGAAAATGCTCCTGAACTTCTGGAAAAACGAAATACTCGTAAAGCTCGTGCAAT +TACTGGCGAGATGGAAAGCGATAAAGATTTCATGATGGAACTTCTGGCAACTAAAGAAGA +ACTTTTCAAAATCAAAAAGCTGGATGTTTATCGTAGCAACTTTATTGCAGTCCTGGAAAA +ACGTACTTTCGGTATTCGTTCGTTCGAGGTTAGCAATAAAGGTAACTTCCGCATCTCCGG +TTACAAAATGACAGATTCTCAAGTGAAACACTTTGAAGATCTTGGTATGACAGCTAAACA +TTCTAAGAACGGTAACATCTACTTAGACATCGCTCGTACTGAAGAAAATATCGAAAACAT +CATCAACTCCGTTGACACTCTGTAAGGAAACTGAAATGACTATCCAACTGAATAAACTGG +TAGAAGATATTAAAAACACCATGAACCGCTCAGAGATTTTGAATGAACTTCAACGCTGCG +TACAACGAGTTGATGATGAATACCACTTACCAACCAACGCATGGGAAGTCTGGTTCCGAG +GTTCTCATCTCGGCTCGATTGAACTGAAAGCCAAAGGTTGTTATGCAGTTTATAGTTCTC +TTGGTCGTCATTGCGGTGATTGTCAGAACTTTATGCAAGCACTGGCTCGCTTCATTAATT +CATGCGCAGTCATTATCGCCAAGCAGCAAATCGAAGAAACCGAAAAATGGATTGACGAAG +TAACTAAAGAGCCAGAAATTCGTCGTTGGGGCGTTACTCGTAAATCTCGTTGGATTGATA +AAGTCAAAGGGTGGTTCAAATGATGGAAACGATGAATCAAAATAATGAATTGGCGGTTCC +AGATATCTGTTTCAAAATCGCCGATTGGTGGGATGGCCGCAAACTTCAACGTCGTATCGT +CTGTGCAGCTAATCGTTTTGAATTAAAAGCGGGTGGGTATCTGGTTATTCCAGGCTCCAG +ACATTATTCAAAAGATATGGCAGAAGTACTGGACCAAGTGAAAGATAAATTAGTGACTGA +TCACGTTCACGATGAAGACCAAGGATTTATTGATCAATGGGGTGAATATCATAATCGTAA +AGATGCACTGATTATTGCTACACATTCTGGTCAAATTAACACAGTCCGTAAAAAGGGCGC +ACCATACGACACATTATTTTCTGAGGATCTTTATTAATGATTAAGTCAACTCGTCAAGTA +GAAATGGTTCGCTATGAAAGTGCGGCTCTTAAAGCGTTTTACGATAAATGTAAAGAAACT +GGCCTAGACTATTATAGTTCCATTGCTGATGAAATCTCAAATGATTTAATGTGGCAATGT +CAAGACGATGTTTTGAAATTAGTAGATAAAGGCGATTTTGACATTATTTCTATTGGTCGT +CCGATTGAAGAACTTATTAAAGAAATTGAAGAAGTTGTTGAAAACTACGAGCTTGAGGAT +TATTTCTAATGAACGCTAAAGAATTACAAATCGATGCAATCAATAACCGAATTCATGCTT +TAACCCGTGCTAATGAAATGATGCATGAAAATTGGGGCACGTACACCAATGAATCTGGGT +TTAAATTCTGCGAGTCAGAATTGGCTAAGAAACTCACCGGAAAAGATTATGTTTGCCCAT +TCGCATCACCAATTAATGGAATGATTAAACCATTGCTGATGGAACTTTACATTCAAATGA +ATGAGTCCATGATTGAAAGTCTGAAGTATCAACTTAAGGTATTGGGTAATGTACAGACAA +AGAGCGACCAAAGCTGAACAAGAAAATGCTAAGCTTCGAGCTGAATTAGCTAAACGTCCT +GATTACGAATGGTTCGTTGAATTAATCAGACGTCATCTTAAGCAAGATGCTACTGTTCCA +TTACAACACTTGGCTGTGCAAGTTAAACAACTTAAAAATGCAAGAGGACATTTAATTGAA +CAATCCAGTAGCGAAACATGATTTCAATAAAGGTGGAGCTCATAAAGACAAAAAGCGCGC +CTCAAATGATTCCAAGCGCAAACAAAAACATAAGGGAAAAGATCATGAATAGAACTGAAT +TCGAACGTCTTGCATATGACCGGTACCTCGGAGTCGTCACACAAGTTAAAGTAAAGCACT +CCATTGATTTGGTTATTCGCATGATTGGAGAAGATTCTGTCCGGCGCGGAATCTTTGTTT +CAAAAATGCTTGCTTATATTAATGTTATGGCGAAGAATAATCACCATGAATTCACTGATT +GCGATGTCACAGTATCCGAAGATAATCGCGGAATTTATATCGAATCTTGGGATAAAGGTC +ATGTGATTAATATGGCTTGGGCGCTTATGTCTTTTGCCGAATCGCTTGACATGACAATCA +CTACGCACTGAGGATAATATGAGTTTACCAACCAAAGCGTTATTTTACAAAAACGGTAAA +GAAATTAAGCAAGCATTTGTCAACTGTGGCTGGGCTTACGATGAAATATCTGCTATCGAT +CAAGTCATCCGAGCAATAAAGGAACATGATATTGATTATGACGAATTTATTGTGTATGGA +AAGACTTATAATCACCGGGTAGAAGATTTACCAGAATATATTGAGCACCTGCGAGCTGAG +ACGAGAAGAATTAGAACCGAAATGCTTGAAAAAGCAAGAAAAGTTTCTAAATCTTCTGAT +CAAATTATGCAAATGGCTCGACGCGCCATTCCAGAATTGTTAGCGAAAGATATTCTTAGT +GTTCAACCAATGAACGTTGATATTAGAGGTTTGCATGAGTCATAATCTTGAAAATGTAAT +TGAGTTCCAGCGCTCTCTTGAAGGTATCATGAACAAGTTGGCTCTCGGAGATATGGTAGA +CTATAGCTTTGACGAGGCAATCAAAATTTGTCACTGGATGGGGCGTAGGGTTCGTCCGAT +AGGTGCTGAATGGTATATTATTGCAGAGAAGAAAGAAACTCGCTACGCGCTCTGGATTGA +CTCTGGTGACAGAGAATACATTACTCAACCAGAACATACCACTCAGCGTTGGGAAGTATT +GAACTAACCGTTTACATTTTCAGAGTACTGTGATACTATACTCTTATCCTTTAAGAAGTA +GGAAATAAAATGACTAATTTTGAAATTGTTCGTGAAGTTGTTACTATTGCATCTATTTTG +ATTAAATTTGGCCGGGATGATATTGTTGAAAAGCGTGATCACTTCATTGCATTCATTAAT +GAAACTCACGTCGATGATAAAGATTGGAGACGGTTAAATCAAGGAAGCTTCCGCAAGCTG +ATCTATGAATTAACCGTTGATGAGAAAAAATTGCTCGTCGAAGAATTCAACGAAGGATAT +GAAGATATTTACCGCCATCTGGCAATGTACACGAATAATTAACGAGCTCTCCCTAGTGTT +CGCGCGGCTTGGTCGCATATAGATTCAAGTCGTGCGGTATTGATATTTTTATTCTTTTCA +TACCAATACATTGTAACAGTTCCTGCGTATACATTATCTAAATTGAAGAATGGACAACTA +AACATATACTTCAATTCTTGAGTTTTGACAGTTGATGGTAAAAATACAAATTCATTTTCA +GAGTAAAAAACCCTTCCTCCTAAGTGAGTTGAATACTCCTGAGACGTTTTGTCAACAGGA +AATCCACCTAAACTTTTTTCTGAAACAGTAGAAGGAAGTTTCCCTTCATATGCTATCAAG +TCCACGAAGTAGTTCAAGTTTTTTGGTCTAAATGAATATACAGCACTGAATTCAGCACCG +CTTGACACATGTACTATTTGAAGTTGTTCTAGAGCAGTGGTTTCAAAGCGAGCTTCTCGA +TCCTTTTGCTGAATATTAGCGTAGGTCTCATAACTCGAATCTTTGTAAGCATTTAGTATT +GCGTCACTCTTAACCCAAGTCATTCCCAAAATAAAAAACACAATTAACACAAAAACCCGG +GAGAAAAGAACTCTCCCGGTTGCATTATCTTTGAATACTCTATCCCAAACTCCAAAAACG +ATGTCTGTTATTGGCAGACTAATTTTTGAAGCCATAAGTTTTCTCCTTTGGAATATTTAT +ACTCGAGATCCATATATAGTGCCTACGTTTTGCCATGTTGGAGCAGTACCAGCAACAGCT +GCTCCACCACCTGCAGGACCCCATCGCCAGCCGGATTCAAAGTTACCGAATGCCGGGTTA +CCACCAGCAGCTACATCACCACCTGTACCGCCAGTAACCGAACGTCTCGATGATTCGTAT +CTAGAACCTGTCCCTGGAGACGAAATAGAAGCATCTGTACCATAAGCGGTGACGCCTGCG +CCAGACGCTGAGCGTCCGTATATACCAAACGGCCGTCCACCGCCACCACCTGCTGATACG +CCTGAAGATTCCCAGCCTTGACCGCCACCGCCGCCGCCACCGCCGGCTATAGCACCGCCA +TTGTTAATTCTTAAGCGTCCACCAATCCAGTTATGGATACACGGGCCACCTTGTTGAGCT +GCAAATACCCAACCAGTAGTTCCACCAACGCCATATCCACCGCGACCAAAAATTGTTACC +CCGTGAATATTCAACTGGACATATTCATTAGCCAAATCTCCAGGGAATTCAAATAATGGA +ACTGTTGCATCATATGAAACCATGTCTCCACGAACATTAATTACAACTGGAGCATTGCCT +TGTTGACGCATCCAACCAATTAGCCAATCTTTATTATAATTATGGTTAGCTGCCAAGTCA +ATAACAACTTCTCTCGATCGACCTATCAAGTGTGACATCCAAAATGGAGTCCCTAATCTT +ACTTGTGATGCAGCAGTTGACATCCAACGTTGTCCAGTTTCGGCTACTGCACTACTTCCA +ACCCATGGTCCTGTTATAGCCATAAAAACTCCTAGGGCCCGAAGGCCCTTTATTAAATTA +ATGCAGAAATGATTTCTTCAAGCTTCTGAATGCGAGCTTTTAATTCAGAAATCTCATCAG +TGTGTTCGTTAATTGTTGCAGTGTTTAGCGCAATAATACCATTGTAGTTTAGACGAAGTA +ATCCTTCTGGATTATCTTTATCGACTGAAATCAACTCAGGCAATACAGCTTGAACTTCTT +GAGCAATTAAACCGGATGACTGTTCCCAATTAATAGAGCCGTCTTCTTTGAACCCTTTCT +TCTGAAGATATAGATATCCATTCATCTTCTTAAGAGTTTCAGAAGGAGATTCAAATTTAC +GAAGTTCACTCTTAACACGAATATCCGAACGAACATAAAGATCGCGAACATAAGTGGAGT +GTGAATCGCTAGCTTGGTTCAAATCGCCATAAGAAACTAATGATTTACCAGCTTCGGTTC +TAAATCCACCTGTATCTAATACGGCAATTTGCTGAGCATTTGCCCAGTGGGTAACAACAC +CATCACTGGCCCAATATATTCCGGTATCTGTATCACCGATAGTTATACCAGGTTTATTTG +GATATGCTGATGATCCTACTCCGGTTAAGAAATGAGGAGCAGTAACATACCGTTGAGATA +TAAAATCACCTTCAATTGTAAAGGTAAAAACACCTTGACGGTTTCTGTCAGGTTCGTATC +CAAATGTACCGACACGGATAATTCCTCGGCCCCATTGAGCTCCACCGTTACGAAGAGTGC +CGAGTTCAATTTTTGTGTTATACCCATGGGTCGTTGCTATAGTTTTCTGAGCAATACACG +GATAATAATCAGAAACCCCAGAGACATTACCCATATCAACTGTAACAGGAGCGTCATAAG +CCCATTGCTCGGCATAGGCATGACCATATGTCAATGGCCATTGTGTTGCATCAATTAATA +CATGATCTTTATTCAGCAGAAGCTTATTAGTTCTTCCTTGAGATGTTACAGTAACAGAAC +CGTCTTTGCGCAAATTTAGACTATTATAACTATTTGCGTCAGCTTTATTTAAATGAGATG +CAAACGAGACAAGACTATCGTCACCTCTAGATTTACCAACCAACCATGCTGATGTATTAT +CTGCTATATTACCTTGCAAATATCCAGAACTAGCAACTGAGCTGTTTATTTGAAAAACGC +CACCAGCACCATTTGCTTTTACACCATTCTTAAGAATTAATGTTCCATCATTCTTAAGAG +TTGAAATCCAGGTATCAATACCTCCACCGGTCCAATAAGTCAAACCATAAGAATAATTAT +CATTTGTGGCTTCCTGAATCATTGCTTCATGCATGATAGTTCCGCCTTCACGAGCACGGA +AGCGACGCAAGCGGTTTAACGATAATGTTTCACCAGCTGGCTGATTAGTCATGCTTGAAA +CATCATAAGATGTTAAAGGCTTATTATAAGTGTCCACACCTGCAGCAGCATATAATACTG +TACTTGTACTTAATACTAAACCGTTTTTAGTATCTACATAAGCTGCACCGCTACCTCTTA +AATAGTGATTATATTTTCCACCTTGGTTAAGTGCAATATAAGTATTACCATCTCCAGCAG +AATTACCATCTAAGTGAGTATCAAATCTTGCCAATGAAGCGCCATCCGGCGCAATAAGAT +TATTATTACCATAATCAGCATTACTATAGCGAAACACCAAAGAACGAACTGATTCTGTAT +ATCCATCTTGAAATCTTAATGTCGCGGCACCATTTGATACCATAGCATATTTGCCATCAG +CTAACCATTTAATGCCAGTGTCAGAATCACCTATTGCAATGGAGTTATCACCTAACACAG +TAGTTCCATTCCAGACAGTGCTAATAACTAGTTTTTTAGCTACGGGATAACTTAGGAACA +CATCTCCATCTAATACAGACTTTACAGCTCCTGTGACCGGGTTAATACTAAATGTTGCTA +TATCTTTGAAATTAGCTTCTGTATCGCCATAAAAACCGCGAAGAATCAAATCAGTGATAT +TGGCGGTTCCAGCTAGAATTTGCTCAAAACGCGTAACTGAGCCTCCGTAGTTAGTGATAA +CCAAAGGCTTTCCTGCGGCGCTGCCGTTAGGACGTATGATAATTGCTTTAGTGGAAGTAT +CGCCAGAGAACGCAACATTTATTGCGGTCATGTCGCCATTTAAATCATAGCGCCCGGTTT +GAATGTAATTGCCAGTTTGAGTTACGTTACCATCGATATTACCGCCTTTAGCAAATCCTA +AATCGATAATAGCACCATTCTGATCTTTAGTGAACAGCATACGATCGGTTAAGTTAATAG +CCAGTTCACCTTCGGCAAGCTGGACGGCTGTAGGTTTCACTCCAGCCTTTGTAGTTCTTT +TGAACTGAATTTGTTTGATAGTTGCCATATATCCTCAGCTATAATATCCGAAGTCTTGAA +TTGAATCTTTTATAACGATTTGATCGAAGCGTGGAACGTGGCCATTTTCTGTTGCAGGCA +AATTACTAAAAAAATTAGGAGCAGCTAAAGGACCACTCATTGTTTGAAGAGTAGAATTTT +GTAATTGTACTTGCTTAGCATTATCTACCAGTGGTAAACCTACTTGTGTTTTAGTTGGTG +GATTACCAGGAGAAAATGTACGTCCGCTTGAATCATACACCTCATTACCAAGTACATTAC +CCATAGTAATAAGACGATATACTCCATTAGTTTTATCTGGGTCAAAGATAACGAATGGTT +GACCGTCTGGTGTTTCCAGAGCGAATGGACCAGTAACTTGAAGTGAAGCTTTATATGTTA +TATCAGGGCTAGTGCTCTTGGGAACCCCAAGTGTCACTGGATTACCCTGCTTGTCATTAA +AGGTTAGGCCTTTACTGAATCTAACGGATTCTGCATAAGTTCCGCCTTGTGCTTTAGAAA +CGAAATCGTTGTCTATAGCCTGAGGTTTATCTTTTTCGGTATAAACCTTGTATGTTTTGA +AGAGCAGCGTGTCACCGGTTGGAAATAGAGGGAAATTGCCCTTATGCCAAATAGGTGAAC +CACCGACTGTACTGTTTGATTTTAAATCGGCCATAAGTCCTCTCTATTGTTATAAGACTA +TTTATACGACAAAGGGCCTTTCGGCCCTATATATCTTTTTCAAACTCCCGCCAATCTGCG +CTATAAACATGCCCAGAAAGATCTTCTCCTGGTAATGGATTACCATTTGAATCAACTTCA +GGTACAGCCATTTTAAGCAGAGTTGGATCATCTCCAGATACTGCTGAGTTCATTCTTATA +CCATTAACAGAAATTGATGTTGAAGTAGAAGATTCTAATGATCTTGATACTTTAGTCAAG +ATCATCGAACGAACTCCTCCTTCTCCTTCAATATTGGTTCCATTAGTTTTAGATACAACT +ATTGTGTATCGTTCTGCGCCTACTGGAACTTCTATGTTCTTTTCGCTTTTTATCCAACTA +CCTGCGTTTGCTGGATTAGAATCTATATTTTCGCTTTTAATTAAACTTCCAGTATTTGAA +AGCCATCTTAAGCTAACTCGTATATTTCTACCGCCAGGAACCATTTCTGTGCTCTGTAAG +AATTCAAATGACCAAAGCATTTTATCAGAAACTTTTATTCCAACTGAAGCTATAGGAACT +CCCAAAACGTCTGATATTGGATAACGCTTTATCGTATCATTTGAAGAAACATACTCATTA +AAATCTTCTAATGCTCTATAAGAAAATCCGGTTGCGCCTATATCATTTGCCTTATCATAC +ACATACTCAATAGCCGGACGCAGGTCTTCTTGTCTAGATACGCCATCTGAGTAAGTAACG +TTTTCAGCAATCATTCTATTAGCTTCAATAGAATAAAGACCAGCATAAATGGCAAAATAA +TTATCTGTGTGCCATTTACTTGGCCATAAAGTACTCCAAAAGGATTTAAATTTAGCTTCA +ATAGATGGAGATTGATTAAAATCACCAAATGTAGTAAAGACTAAAAGATTTTTGCTTGTT +GAAGGAAATGTAGCAAGATATTCTAAAAATGCTTTATTTGGAGCTCCAGAATCTTCTTGT +AAAAAGTTGAAAGTTTTCTTTGGTGATATAGTATTCATCGCTGGATTGAATTCGCGGACA +TTTATTCCAACACCATCTTGTTGGTCACCAATGCGTTCATCTTGAAAGGTGAAATATCCT +AAAGAAGGGGTCGATAATTCCGACCCCGGAGCGAATGAAAACTTATATTTGATGGAATTA +TTTTCTGAAATAACTTGAGTTTTGGTATATCCTTCACCAAAACTCGCCATCATTTTTTCC +ATTAAGGAATCCAAGTGAAATCTACAGATTGAGTTACCGGGTTCGGAGTTATGCGAACAT +TTCCGATCTGCAACCAATCACGAATGGTTAAGTTATCAAATGCAGAACCACCTGCCGCAA +CAGCACCAATTTCCTTAGAAGTAGGTGGGTTATTGCTGGTGTACATTCTGCCCCATTTAT +CCCATTTTCCAGTCAGGGCGTTGAAGTTACGTATCCAGAAAGTTTGAGCAAAATAAGTAG +CATCGACTGTTGCTGGGCGAGGTGCCCAAATTTGCCAAATGCTATTTTTGTCAATACCAT +GCTGAGTTAACGTACCTGGACCTTTAACTTCGGTGTAATCAATTGCAACTGGATTACCTT +CTTCATTTGTTCCATATACCGGAACAACAAAGCCCGGAAGCTTATTGTACACAGCAGAAG +TTTTAATTGAAGAAGACCATGCGTTCGGATTAGAATCAGTTGGCGGCTGATCTGGAGTTA +CAACACCTTCAGGAATCTGTACGCGAAGCGTAGCATCAATCAAAAGGTTTCCGGTCATTG +AATCGCCAATTTTCTTGACGAAGTTCAATCCAATTTGATTTACCATGTTCTTGGTAGTGA +TTACCGTCGAAGTACCGGTTGAATCTGTCACTGTCAAATTACTAGCATCAGTTGTCTGAA +TATTAGTAGCTTTTGACTGTGAACCAAATTGAATATTTGAAGGGGTAGGATTAATAACCA +TTGTACCACCTTCTACACTAAAGCCTTTCATAGCATCGATTCGATTGCCAGCTTTAAGCG +TTTGTCCAACTTCAACATCACCGTCACGCTTCAGACGAAGCACATCAGCATCTGCAGTGA +AATCCAAGTAAGTTGATTGAGACTGAGCATCGATCAACCAATGGTTCCCTTTGGCATTCA +AATTAATCACAGAGTGACTTGAGTCGTCACCAACGGTCAGGTCTATAGTAGCCATTATGT +TGGTGAACTTCGATGTACTAGAGGACACCAGAGGTGCACTAGTGTTTAACTGCTTGGTCA +AAGTTAATGAACCATTGACAGTCTGATCGATATCACGGCGAATAAACTGCAGTGAATCTA +ATCCATCGAGCTTCTGTGAATCTACAGCAATTGCGTTGATCGGCAAAAAATTCTGAAGTG +TTTTATTCATTTCAAATGGAGATACTGCATATCCAGTTTTGAAATAATTTCCAGCATTCA +GTTTAACATCATCATTCTCATAAAGACCAGTAACAGCATTGAACTTCACGCCAGAACCAG +TTACTTTATCACCAACGAAGGTTAATGCTAATTCAGTCAATTTAACTGGACCACGACGAG +TAGGCGTAGCTTCCCAATCAGCTTGTTCTTGAATAGCATACTTCAGATGACTAGGAGGAA +CTGCTTTATTACCCACAGTACCAGTCGTCGTTTCAACACGAGTCGCTATCTGAATAATAC +CTTCTGTCGTTTCTGAAGTCTTCTTATCTTGAAGCTTTTTAGGAGTAATGATAGTTTGGT +CATCTACACCAGCATCTACCAGAATCTTAGTAGCAACCGCCAAAGTACCACGCTGCGTCT +CAGATGCTTTCTTAATATCAAGTTTATAATGGTCCCAGGAGTTACCTGATTCAACCAATC +CAGACAACGGTTCAACAGAGTGTCTAGCAGGATCAGAGAAATAAGTTTTAATTTTAAACG +GAGTCGAGATGACATCGTCCAATGCGCCAGCATTGAATTCTGGTTGAGTAGCGATACGAG +ACAATCCAGTTAAATCTTGGGTTGCTTTACGTCCAGATAATTTCTTAGGCGTAATGTATC +GGAAATCGTCAGTACCAGCATCAGTTTCTGGCTGAGTAGCTACTTCAGTAAAACCAATTC +TTCCTTCCGTTGCGGTCTTCTTATGTAACTCAACTGGGGTTACAACAGTTGGAACTTTAG +GATCATGCACAGTTCCATTAATTACTTCGTTCTCAGTTGCTAAATAAGTACCACCTTGTG +AGGTATAAGTTGCTTTATTTTCAAACAGAGAAGCTGGAGTTACAGCTTTTGTATTTTCAG +TATTATCGTATACGTTAGTTCCTTTAGTATCACGATCTACACCAGCGACAGTGGTTATTC +CGGTTTTAACTAGAGCTAAAATACCAGTCAATATTTCTGAAGCTTTACGATTATGCAACT +TTTTAGGAGTCACAATCGTAGTATCATCAGTTGAACCATCAGTTTCTGACTGAGTAGCAA +TTTCAGCTACACCACGACGAGTTTCAGTAGCTGTTTTCTCATTCAGCATTGCTGGAGTAA +CAATTACATCATCAAGATGAGGACCAGTGGTTGGAGCTTGAATTTCAGTTAAAGTAACTA +AACGAGCAATACCACGGCGAAGTTTAGTAGCAACTCTTTTAGCTAATGTTTCTGGAGTAA +TTGCTAATTCTTTTTCTGGGTTATTTTCAAGATCTACTTGAGCTTGAGCTTCAGTAGCCA +AAGCAATAACACCTAAACGAGCACGAGTAGCATCGGTCTTTGAATCGACACGTTCTACTG +TCGGCGTGTTGTCAGAAACAACCCAGTACTTCAATCCAGCATCTTCAATATAAGATAAGT +CTAATACTGGAACGTAAGAAGTATCACCATTGAAGCTCAGAGTTTTATTTTGAACCCATG +TAGCATCTGGTGGATATTCTGAACGTTTAGGGAATTGAAGCAATGAAACTGAAGCTGCTA +TAGTATCTGTCCCAGTACAAGTGATATCAACTGTTTGACCTTTGCGCATATAGTTCAAAG +AAATCTTAACAGTATCACCAATAGCTGGTGCCGGAGGCAAAGTTATTACAACTTTTTTAA +TAGTACTATTATTTGTTCCAAATACCATCACATGATCATTCGGACGTACTTCAGTATCTT +CTTTTATGATGCGAAGACGAGTGCGGAGATCACCATCCCAAATTCTCCACAGCTTTTCAA +CCGCGTCAAACACGATAAATCCATCACCAGAAGAACGCACTTCTAAAGAAGTTGTTCCTA +CTGATCCAATAGAAGTATTAGCATCGTAAGTGCTTACAAACATATGGAACAGAGGGTTCA +TTCCATCCATGTCTGTGAAATTAATAATATCTCCATCATTCGCAAACTTAGGAAGAGTAA +CACGAATAGGAGCCCCAGTCGTATAACGACGAACGATGAATTCATTAGCTTGTGCTTCAT +GAATACTCGCCGGGGTAATGGTTGTTGCCGTGCGCTCATTGTCGCTGACATAAAGTTGCC +ACAAACGATTACTGAAAACTAAAACCATTTGACTATACGGATGAGTCATTCGTACACTGC +GAACTTGAGATCCAAGCCAAACGATAGATTGAATAGAAGCATCAATTGTTACATCAGCAT +AACCTGGCTGACCACCTATATCTTTTAAGAAAATAGTATCGCCATCTTGTGGATTATTAG +GAAGAACAAATTTAACAGTTCCACGATTTTCTGTATCAACAGAAATAAAGTCCCCTGATT +TAAGGACTACTGTTCCAGCAGATTCGGTTTTCCATTTTGCGTCAGTACGCAAAGCTGTCC +AATAGAGTTCGTTGAAAGCGCCAGAAGGTTTAATGATTTCGCGATTTGCAACCCAAATGC +GGTTATCATAAATCACTGCGAAATTCTTTGGATACCATCTGGTTTCGTCATATTGTTGTA +ATGTATTTTCTTGGACGAGAAATTCAACGTTAACACCATCGCTCGGAATAGTACGATCAG +CGGTTTGTACGTTAATTACTTTCTCACCCGCCGCATCCAGACCTTCTTGAGCTCTGAATT +TTCTTTTTAAATCGGCCATGATGACTCCTGTTTGCTATTATAGAATGTATTTATAATTGA +TCTGTCACTAATTGAACGAGGTTCAAATGAATTTAAACGAAATGTTCGGGTCTGAAGAAG +ACCAAAAAGAAGGTATTGCTTTTGTCGACTTGTCACAACTTGCACTTGCTGTAGCGTTGA +ACACATTTGCGGATGGTGAAAAGATTCCAGTTCCAATGGTTCGGCATTTATTCTTAACTA +CGTTAAAGAAAAACGTATTACAATTCCGTAAACAAGGTTACACTAAAGTTGTTATTTGTG +TAGATAACGCAAAATCTGGCTACTGGCGTCGTGATTTAGCTTATTACTACAAAAAGAACC +GTGCTAAAGGTCGTGAAGAATCTAAATGGGATTGGGAAGGTTACTTCACCGGTATTCGTA +CTGCAGTTGAAGAATTTGAAAAGTACATGCCTTATGTCGTCATGAATATTGACAAATATG +AGGCGGATGATCATATCGGTGTTCTTGTTCCTTATCTTTCTTTGAAAGGGCACAAAATTA +TGATCGTTTCTTCGGATGGTGACTTTAAACAGCTGCACAAATATCCGAATGTTAAGCAAT +GGTCTCCAATGCATAAGAAACTTGTTAAGATTAAACCTGGTGAAGCTGATCTTGAGTGCT +TAACTAAAGTTCTTAAAGGCGACCGTAAAGATAACGTTGCTTCTGTTAAAGTTCGTTCCG +ATTTCTGGTTCACTAAACTAGATGGTGAAAGAACTCCTCCATTTGCAACTAAACTTTTGG +AACAATGTCTAGATGCTGGTCCAGAAGGAATGAAAGAGCTTTTAACAGAAACAGAATACA +ATCGATACCTCGAAAACAGAGTACTTATCGATTTTGAATATATCCCAGAGGATATTGCTA +AAAAGATCATAGATTATTATGAATCATACAAAATTCCTCCTCGCGGTAAGATCTACACGT +ACTTCGTGAAATCAGGTCTTTCTAAATTAACTTCAAAAATTAATGAGTTTTAAAATGGCT +AAAGAAAAGAAAGTTGCAGTTGAATTTGATGAAGCAATTCATGGTGAAGATCTGCGTAAG +AAAATCAAAGAAGCTTCAGATAATATGCTGAAGATCTCTGGTTATAAAGTACTGATCGCT +GATCTTCGTAATTCAGCCAAAGATGATCTTGGTGTTGAAGGCAAAGTATTTAATCAGTTG +TTAGCAATGTATCATAAAGATACTCGCGATCAATTTGAAGAAGAAAAAGATAAGGTGGTA +GAACTGTATGACTCTGTTTTCACTAAATGACGAATCTGTTCAAGAAAAAGCCAGTGTTGA +TGAATTGCTTGACAAACAACAAAATGGCTTTACTATTGAAGCGTTAGTCAATGAACAGGG +TCTTGGTTATCTAGAAGCCACTACAGCTTGGATGGAGGAAAACTCCATCCCTGAGACTCA +GTTCTCAAAGTATATTCCTTCTGGAATTATTGAAAAAATTCGTTCTGAAGCCATTGATGA +ACACATGCTTCGTCCTAGTGTTTCACGTGGTGAAAAGACTAATACATTAGACTTTCTGCT +ATGATTAAAATCCGCATGCCTCCAAATAATAATCGTTACATCAACGGTAAATCAGTTTAT +CTACTTTACTTGATGTTGAAACAACATTTTGCTGGCAAATATGACGTTATAAAATACAAC +TGGTGCATGCGGGTTTCTGATAAGGCGTATCAAAAACGCCGTGATCGTTATTTCTTCGAG +AAACTCGCAGAGAAACACACCCTTAAAGAACTCTCACTCATTTTCATGAGTAACCTGGTG +GCTAACCAAGATGCATGGATCGGAGATATTTCTGACGCAGATGCTCTGGTATTCTATCGA +GAATACATCGGTAAATTGAAAATGATTAAGAGTCAATTTGAAGATGATGTGAAAAACATC +TATTACTTCTCCAAAAAAGTTGAAGTCAAAACGCTTAATGAGATTTTTGAATATAATAAT +AAGGTAAATACATCTTATATCTTCAAACTTCTTCAAAGCAACATTATCTCATTCGAGACA +TTCATAATTCTGGATTCATTTCTGGACATTATAAATAAACATGACCAAGCAACTGACAAT +CTAGTCTGGTCAAACTATTCAACGAAACTAACTGCATATCGCAAGATATTGCAAGTGGAT +TCGTATGAAGCTAAACAACTGTTCATAAAAACTGTAAAAAACTGTAAATACTAAGGTAAA +AATATGTCTATGTTCAAACGTCGTAACCCTGCTGCTCTGCGTACTCAACTGGATTCTCTG +TCTGGTGGTAATAAATCTTTCGCTGACGCTGATAAAGGTGAATGGAAACTGAAACTCGAT +AACGCAGGCAATGGTCAAGCGGTAATTCGTTTTCTGCCTTCTAAGAACGAAGAAACTGCT +CCGTTTGCAATTCTGATTAACCACGGCTTTAAGAAAAACAATCAGTGGTATATCGAAAAC +TGTACTTCTACTCACGGTGATTACGATTCTTGCCCGGTATGTCAATATCTGTCCAAGAAT +GATTCTTATAACACCAACAACGAAGAATACAAACTTCTGAAACGTAAAACTTCTTACTGG +GCGAATATCTTGGTTGTTAAAGATCCTGCTGCTCCAGAAAATGAAGGCAAAGTATTTAAG +TATCGTTTCGGTAAGAAAATTTGGGACAAAATCAACGCAATGATCGCTGTTGATGAAGAA +ATGGGTGAAACTCCAGTTGATGTAACCTGCCCATTTGAAGGTGCAAACTTCGTCCTGAAA +GTTAAGAAGGTATCTGGTTTCAGCAACTACGACGAATCTAAATTCCTCGGCCAGTCTGAA +ATTCCAAATATTGAAGATGAAGCTTATCAGAAAGTTCTGTTTGATAGCTCTGTTGACCTG +TCAGAAATGACAGCAAAAGACAAATTCAAATCTTTTGATGACAACCTGAAGAAATTCGAG +AAAGTAATGGGTACTGCTGCTATGGGTGGTAATGCGGCTCGTGCCGAACGCCAAGCAGAT +AAAGTAGCTGATGATCTTGAAAACTTCGACGAAGATCTGGCGAACTTCAGTGCCGGTTCT +ACAACTCCAGTAGATATCCCAGAAACTTCATCTAGTTCCGATGATGACCTGGACGATATT +CTGAACGGTTTATAATAAGAAGGAGCCTTCGGGCTCCTTTTGTTGTTTCTGGACTCTGCC +GTTTACATTCGTTGAAAGTAGTGTTATGATAGTCTCGTAATCTACTAGGAGTAATAAAAT +GAAAGCATCAGTAATTCTTTTCGTAACTTGGATCGGTGATTTTGAAGTAGACATTGAAAA +GTATAACTTGTTCATGGATGACGTATCACACGAGTGTGGCGGTTACGAAGTTACTTTGAT +GGGTGAACATGAAAAACTCGTTGATTTTCTGACTGATTGCTATATTCCAGGTATGGAAGA +ACAAGACGTTGAAGAGTTAATGAATTCAATAACTGTTTACAACGAAGAAGAACTGTGATA +CTATAATCTAGTCAACAACTGAGGGAAATATTATGGCACGTTTAGAACTTGATATTGTAG +CTGAAGTTCATCGCAATGAATACGGTTATGCAACTGACTTGATCTTCGATGATGGCTCTC +GTTTTTACGATGTTGATCACGGTCTCGACTTTGATCTTATCGAAGAACACGGCCCAGGTG +GCGGTTGGCCAGTGATTTATCTTCGCGGTTCAGAAGCAAATATTCGTAAGTGGCTAGAAG +ATAACCAGTGGGAAGACATCGATTGGATGCTTGAAGAATTTCTTGAAAAAGGTGAATAAA +TGAGTTTAGTTAAAGTACGTTTATTGAATGACGGCGGGTTCAACGGTTTTGTTGATACCA +AATTTCCCGTAGTAGTTATGGGTCAATTGGAAGAAGACTATGGCGCTGTTATTATTAAGC +CAGACGAGTTAAGACGTGTTGGATATGATGTTGATAACTATATGAATAACACAGTGAATG +GCACAAGAACATTTTTTCTTGATGCAGAAGCTGAATTAATTTAACTTCAGCCGTTTACAA +CGTTGATAGGGTATGATACTATTACACTATCAACTAAATGGTAAACAAAACCTTGGAGAA +CAAAATGAAAACTTTAGAAATCGTAGTTAAAAATGTTGAATTAGCTCGTGAAATCGCTGC +ACAGGTTAAAGCGGAAATCGTTTCAGAAAAATTGATTTCAAAATGCACTCTGATCGTTCT +TAAGGGTTCTTTCGATCAGCTGATGGATTTCAATGACGAAATGTTCTTCGAAACTAACCC +AGGTGCTCATAAAGAATACCTGAAAGAAATCATGGCTTAATGAGGAAAATATAATGGAAA +CTGGTAAACTCTACACTTTTAAACCGTCTATGACTCATCTTTTTGTCGCTGAAGCATGTT +CAAACAAATCTATGGCTGAAGCTATTATGTTTAACGGCGGCTATTTTGAAGTTGAAGCTA +TGATTGTTTTGAATAATGAAAGATATGTCACTGCCGTGAAGTTCCCTAAAACTGGCAAGT +GTTTAAACGATGATGGTAGCGGAGACGAGTATTTTGAAATCTATGAAAATGAGTTCAAGT +ACTTCACTGAGTACAATGAAGTCGAACTTAATGACGGTGTTCGTTCGATGACACTTGATG +TCAACAAAGCTAACGCTGTTGAAATGATTCAACTCATTCAACAAATTTTCTTAAAATAAT +GTTTACATCGGTGTAAGATTGTGTTACTATGATCTTACACCAACAAGGAGAATAAAATGA +AACTTCAACGTCAAAGCATTAAATTAGGTTCTGGTTATCGTGGTAAGTGGAACTTCTGCA +TCCTGGACAACAATCCAGAAGAAATCGAACGTGTAGAAGAAATCCTTTGTGGAATGGACA +CTGGCTTCTCTGTTGGCGGTGAAGCTAAAACCTGGGGTGATTATTGCGACCAATGCCCAT +GCTATGAAGACGGTTATAGTTCTGGCTTTTGGATTGACGTTGAAGATGTCCCGGCTTTCA +AAGCTGCATTCAAACTTGCTAAGGCGAAGAAATAATGGCTGATATTTGGTGTTCTGCTGC +TCCTGTAGTTAATATTCGTTGTCAGTTTGATCATATTCCCGGTGTAACGCATATTTCTAT +GCAATACGAAGATGGACGCGGACAAAAAGTGTTTTGTAAAATTAATTTTTCAGGTGGCTT +CGGTCCAGAAGTAGCTTTAAGCGAAAATGACCTTAATGCGGTATTAACTAATGATACCAA +GTTCGGAACTTTGGGACTATTTAATGAAAATGTTTCAGTTGAGCTATGTGAAGCTATCAA +TAAAGGATTTGTAATGCTTCGTAAAATGGTAATGGCGGCTAAGAAGGTAACATCATAATG +CAAATCACTATGGATAAAGATGAATTTGATAAAGCTATCAAAGAAGCTACTATAAACGGA +AAGGCACTTGCACTCGACGAATTAAATGAAGTTATGACAGCGTCATATGAAGATATGACG +AAGGGGTTTTTCAGTCGAGTTGGACGAGAAGCTAACATCGAAATGACTCGGCGCTTTCTG +AACATCATCAGAGAAAGGATTAGAGCTCTATGAAGATTCTTTCTGATTGGGAATGCAAGT +ATTGCGGAAGCGGACTTTTGTTTGCGGGTGGTATTTGTCCTAACTGTAAAATGAGGCAAG +GATAATGGAACTTAAACGTAAAACCATTGAGTTGATTGAAGTTTCGCCTGAATTCTGCTT +AGATACACTTTACGCTAATACTGCTTATGACACCCCGTTTGTTATTGAAGACAAATACGG +GATGCTTCATACCGTATCATTAGCATGGTTCCAAGGTCGTTATAATAATTATCGCTTTGT +TATTGGTGATGATGTGTTCAATGACTTATCTGATTTTGTTCATCCAAAAGATGTTGCTTT +TATTGAGGTGCGATAATGCTACAATTAGTTTATGCAGTATCTCCGACACGTTCGGTTGAA +GGTCAAAATGAATTAGCTTTTGGCCTTGATGATGGTCTACCATGGGGTCATATTAAGCAA +GACCTCCAGAACTTTAAAGCTCGCACCAAAGACACTATATTGATTATGGGTGCCAAAACA +TTCATGGGATTTGATGAGCCGTTGCCTGGACGCAAGTCAATTGTTGTCCAAGATATGTCT +CGTCCATTAGCTACTGCAAAGAATGGTTTCTTCGCCGATGCTTATGTAAGTGAACTTGAA +TTCACTGGGTTCTTGGGCGGCGATATCATGACAGCCAAAACTTCATATAGTCAATACCTG +ATGTTTGACCGTGATAAAGACTATTCTGTTATTGGTGGAATTGAGCTTATTAAGAAAGCC +ACTCCACACGCTGACCGAATTATTCAGACAACTATTCGTAAAAAGCATCGGGTTAATTCA +ACAGTGCAATTTCCTTACGCTACTTTCTGGTATCCACAAGAAGAAGCCACTGGATTTAAG +TTGACTGAAACTCACTGGTGGGCTATCGACGAATTAACTAATATCTCTGAATCGGTGTAT +GTAAAATGAGCCAAGTAAGAATCGCTTTAATCAAAGAAGATAAAGTTCAAAAGAAATGGA +CCGGTGCCCAGAAGAACATGGTTCATGGAATTTATGAGCTGACTTTTCCTACAAGTTATC +TATGGGTCTGGCAGGGTGAATCTAATTTGACTGTAGTTCCTGGATTTGGGCAAGTTGAAT +TAGGCCGTGATATGAAAGATGTTCTTAATGCTATCGAGACTGGAAACATCCAAGTTAAAA +ATGGCATTACAACTATCATTGGACGCTTTGCTAAGAAAGGCGGAATTTTATTCTTCAATC +CGGAGACAACTCGTGGCGAAATTAGTTTTAGTTAAAGCAGATGACACTCAAAAGAAATGG +GCTTTAGTCCTTCAAGGAAATCCACCTACTATTGAGCAGTTCAAACGCGACCCATCCAAG +TATACTGCTTTACCACATGGATTTTATAATGTACAAGCTCCACTAGAAGATATTTGGGAA +GCTGATAACGGAGTTCGAGTTAAGAGCAATGAAGGCGTATTCAAGATTCTTTACTCTAAT +CGCAAATTCATTGACTTTATCGACCAAGGGCTAGTCAAAGTCTCAGGTGGAGTTCTTAGT +ACTACTGGGCGTTTCGATAAGCGTGGTAGTGAAATTCTCTTTATTGTAGGTAAAGAATGA +AACAATACCAAGAACTAATTCAACATATTTTTGACAACGGATATGAGACTGATGATCGCA +CTGGGACAGGTACTATTGCAGTCTTTGGTACTCAATTGCGTTTTGATTTGCAAGAAGGAT +TCCCGGCAGTTACTACGAAGAAACTAGCATGGAACGCTTGTCGTTCTGAATTACTTTGGT +TCCTTCGTGGGTCAACTAATGTCAATGAACTTCGTCAAATTCAACATGGCTCTCTTATTG +AAGGGAATACCGTATGGGACGATAACTACAATAATCAAGCAATTGATATGGGTTATTCCG +GCGGAGAACTTGGTCCAGTTTATGGTAAGCAATGGCGTGATTTTATGGGTGTTGACCAAT +TGAAAATGGTCATTGATCGTATTAAGCAAATGCCTAACGACCGCCGTCAAATTGTTACAG +CCTGGAACCCAGTTGATATTCCAAAGATGGCTCTTCCTCCATGTCACATGATGTATCAAT +TCAACGTTCGTAATGGATTCTTGGACCTTCAATGGTATCAACGATCTGTCGATGTTTTCT +TAGGACTTCCATTTAATATCGCATCTTATGCCGCTCTGATTCATATTATTGCTAAATGCA +CCGGGTTAAAACCAGGACATCTGGTGTTCACTGGTGGTAACACTCATATCTATGTGGATC +ATATCAGTCAATGCAAAGAAGTTCTCCAGCGTGACCCTCTGGAACTCTGTGATATACAGA +TTAACGGTCTGCCGTATAAATTTAGACATCTTTCTACAGAAGAACAAATCAATCGAATCA +CTAATCTTCGAGCTAAAGATTTAATGCTCATTGATTACAAATCTCACCCAGCTATTAAAG +GTAAAATGGCTATATGAAAACTGTATTTGTGAACGAAAACCGTACTAAAGAATTTGGCGC +AACATTAGAACAAATTAATCCAATTCACCTTGTGGTTGGCTCAAAAGTAATGGTCGATGG +TTGGTTCTACATCGTAGATGATAGTTTTGTTTCTGTTGAACATAATAAAACTCCAGAAAT +GGTAGTGGTGGTCCACAAGGCATGAAACTTTGTCGAGTCGTGAATAAATATAAATCCGAT +TTCGACGTAAATATCCAACGTGGTACCATGTGGGGCAATGACGTTGGTAAAAATGCTGGC +AGCCGTGAGGCTGCCATTGAAGCCTTTAAAGAGGACTTTATCCGTCGCATTCGGTCAGGA +GAAATAAAACGTGAGCACCTAGAAACTCTCAGAGGAATGAGACTAGGTTGTACATGTCAC +CCGCTTAATTGCCATGGTGATATAATAGCTCATATAGTTAACAGACTTTTTAAAGACGAC +TTCAGAGTAGAGGATTTATGCAATTAATTAAGTCATCAGGAATTGGACAAGATTTTATCC +CAGAGAAATTCATCAAGGTTTTGTCTTGGGCAGCTAAAGATACAAACGTAGACCCATATG +AATTGTATGAGCAAGTTAAGCCTCATATAGTTGACCGTATGACTACAAAAGAATTACAAC +GAGCAGCTATTAAAGTTGCGGCCAACCTCATCACTGTAGACGAACCGGACTATCAATATG +TTGCTTCTAATCTGGCTATGTTTGCGCTACGCAAAGAAGTGTACGGACAATTCGAGCCAC +CATCATTTATCGACCATATTTCTTATTGTGTTAATGAACGCAAATATGATCCGGAATTAT +TGTCCAAATACAGCGCAGAAGAAATTACTTATCTGGAATCGCGAATTGTACATGACCGAG +ATTTCGAATTAACTTATGCTGGTGCGATGCAGCTAAAAGAAAAATATCTGGTCAAAGATC +GTTCAACCGGAAAGATCTACGAGACTCCTCAATTTGCTTTTATGCTGATCGGTATGGCAC +TGCACCAAGAAGAAAAAGAAAATCGTTTAGCTCATGTCATTCGTTTTTATGATGCTGTGT +CTACTCGACAAGTTTCTTTGCCTACTCCAATTATGGCTGGTGCTCGTACACCTACTCGTC +AATTCAGCTCTTGTGTTGTTATTGAGGCAGGTGACTCACTTAAGTCAATTAACAAAGCCA +GTGCAAGCATTATTGAGTATATCAGTAAGCGTGCAGGTATTGGCATCAATGCGGGGATGT +TACGTGCAGAAGGTTCAAAAATCGGAAATGGTGAAGTCAAGCATACTGGAGTTATTCCTT +TCTGGAAACACTTCCAAACTGCAGTTAAATCCTGTTCCCAAGGCGGAGTTCGTGGTGGTG +CCGCGACATTGTACTATCCAATTTGGCATCTTGAAGTCGAGAATCTACTCGTACTTAAAA +ACAACAAAGGCGTAGATGAAAACCGTATTCGTCACCTGGATTATGGTCTTCAAATCAATG +ACCTGATGATGGAACGTCTTGGTAAAGATGAGTACATCACTCTGTTCAGTCCAGATGTTT +CTGGCGGTGAACTGTATGATGCTTATTTCCGTGACGAAGATTTGTTCCGCGAGTTGTATG +AAGAATTAGAAAAAGATCCTCTGATTCGTAAGAAGAGAATTAAAGCCACTGAACTGTTTG +AATTATTCATGACAGAACGCTCAGGTACTGCTCGAGTTTATCCAGCATTCACTGACAACA +TGAATAACTACACTCCATTTATTCGTGAAACTTCTCCTATTAAGCAAAGTAACCTCTGTT +TAGAGATTGCTCTTCCTACCACGGATGTTGGTTCTAAAGATGCTGAAATTGCTCTGTGTA +CTTTATCTGCTTTCGTCTTAGGAAACTTTGATTGGCAAGACCAAGACAAGATCAACGAAT +TAGCTGAAGTTCAGGTTCGTGCACTTGACAACCTCTTGGACTATCAGAGCTATCCAGTAG +CTGAAGCATTGAAAGCTAAAGAACGGCGAGCATTGGGTGTTGGTGTAACGAACTATGCTG +CTTGGTTAGCTGATAACTTTGCTACATACGAAGACGCTAACGATTTGACTCATGAATTGT +TTGAGAGATTACAATATGCACTTATCAGAGCCTCAATTAAACTCGCAAAAGAAAAAGGAC +ATTGCGGTTATTATTCAGAAACTCGTTGGTCTCGAGGCGAGTTACCTATTGACTGGTACA +ATAAAAAAATTGACCAACTCGCAGCGCCAAACTATGTCTGCGATTGGGAAGCATTACGTG +CAGACCTTAGGACTTACGGAATTCGTAACTCAACTCTGTCCGCGCTCATGCCGTGTGAAT +CATCTAGCCAAGTTTCGAACTCCACGAATGGTATTGAGCCACCACGCGGGCCGGTAAGTA +TTAAAGAATCTAAAGAAGGTTCTTTCCGCCAGGTAGTTCCGAATATTGAGCATAATGCTG +AACTTTACGATTATGCTTGGCTGATGGCTAAACGTGGTAATAAAGGTTACTTGACTCAAG +TTGCTATTATGACAAAGTGGCTTTGCCAATCAGCTTCAGCGAATACTTATTACGATCCGC +AGAACTTTGCTAAAGGTAAAGTTTCGATGGCTCAGATGCTTGAAGACTTGATTTACTTCT +GGTTCTTCGGTGGTAAGACTTTGTATTACCATAACACCCGCGATGGTTCAGGAACAGACG +ATTACGAAATCGAAACTCCAAAAGCCGATGACTGTGCCGCTTGTAAACTATGATATAATT +GGACCACGGATGGTCCTAGGAGTATATTATGGGATGTAAAGAATTCACTTTACCGCCTCT +TCCAATTCAACCACGGCCAAAGCCGCCAAGGGTTCCTAAATGAGTACAGTTTTTAACACT +AAACCAGTTGACGTATTGAATGAGCCAATGTTTTTTGGTTCAGGTCTAGGTATTGCTCGA +TACGATATTCAACGCCATAAACAATTTGAAGACCTAATTGAAAAGCAGTTGAGTTTCTTC +TGGCGCCCAGAAGAAGTTAACTTAATGACTGACCGAGCTCAATACGAGAAGCTTCCAGTT +CATCAGCAAAATATTTTCATCAACAACTTGAAGTATCAAAGTCTGCTGGATTCAATTCAA +GGTCGTGCACCTGCTGCTGTCTTGTCTGCTCTGATTAGCGATCCTTCTTTGGATACTTGG +AACCAGACTTGGACGTTCTCTGAAACGATTCACTCTCGTTCCTACACTCACATCATGCGT +AACTTGTTCAATGATCCAGCAAAGATCTTTGATGAAATTGTTCTTGATGAAGCAATCATG +AAACGTGCCGAATCAATCGGTGTATATTATGATGACGTTCTGAAGAAAACTCGTGAATGG +GAAAATGCTAAAGAACGGTGCTTTAACCCTGACAACTATGAAATCGTTGATGCAAAACGA +GACTTAATGAAGAGTCTTTATCTCTGTCTTCATGTAATCAATGCTCTTGAAGCTATTAGA +TTTTATGTATCTTTCGCTTGTACTTTCAACTTCCATAAGAACATGGAAATCATGGAAGGT +AACGCAAAGATCATGAAGTTCATTGCTCGTGATGAACAACTTCATCTGAAAGGCACTCAG +TACATTATTCGTCAGCTTCAACAAGGTACCGACGGTGAAGAATGGGCTGAAATTGCTCGT +GAATGCGAACAAGAAGCAGTTAACATCTTCATGGAAGTTAACCGCCAAGAAAAAGAATGG +GCTGTTCACCTCTTTAAAGATGGCGGATTACCTGGGCTGAACGTTGAAATATTATGCAAC +TTTATTGATTACTTGACCATGTCTCGTATGAATAGCTGCGGATTACCATGCCCAATCAAA +GATGCTCCTACTCGTCATCCAATTCCTTGGATCAGGGAATATCTGAACTCCGATGCAGTT +CAATCAGCACCCCAAGAAGTTGAAATCTCTTCTTACTTGGTAGCTCAAATCGATAATGAC +GTCGATTCAGAAGTAATCAAATCTTGGAAAAAATACTTTTAAGGTGAGGGCTTCGGCCCT +CTTTTCTCATGAAAGATATTGCTAACGAATTTTCATTTATAAAATATGCTCAACTGGAGC +TTCTACCAGATGCGACTATCGCTTTAGTAGAAGTGCCCAACAAGAAGAATGTAGTATATG +CTATTTCTGTTGATGATATATTAGTCTACATCGGAAAGACGAAAGACCTTCGGAAACGTA +TCAACTACTACCGGACTGCTATCAACAGAAAGGACCAGACATCTGATTCAGTGAAGTCTG +CTAAAATCCTTGAAGCTTTGATGGAAGGCAAGAAAGTAGAGTTCTATGCTCGGCAGTGCT +TTAATTTGCTTATTAACAATGAACTTGGGCAGATGTCAATTTCCACAATGGACCTTGAAG +AGCCGATGTTTATCAAGAAATTTAATCCATGCTGGAATACTCAGCATAAGAGGAAAACAA +AATGAAACTTGAATTAGACCCAGATGTTCGCCCAGAGTTTTTGTCATACACAAACACATT +CAAATCCAAGTATGGCGAAGTCGAAGTGTGGGCTTGTAAAACTTCTGAATCATTTGGTAT +TAATCAGACCAATGATAAAGCAGACGAAGACATTATCGTCATGGATAAGTATGATTTGCT +TAATCTACAGAAACTCGTCAATCATGCAGTAGAAATTATGGAAGGTGAATAATGAAACAA +CTTTATGAAAATCTGATGGCTCTATGTGATGCGAAGGATGAATCCAAATTCTACTTCACT +GACGATGTGTCTCCATCTGGCAAAGAATATCGAATCTTTAGCTATAACTACGCATCTTAT +TCTGATTGGCTACTGCCTGATGCTTTAGAATGCCGTGGCATTATGTTTGAAATGATGAAT +GGTAAGCCAGTTCGAATTGCTGCTCGTCCAATGGAAAAATTCTTTAACTTGAATGAAACT +CCATTCACAATGAATCTTGACCTCTCCAAAGCGCAGTACATGCTTACAAAGGCTGATGGT +TCTTTAGTTTCTTCATTTATGGACGGTATGCTGCTTCGTTTCAAATCTAAAAGCTCCATT +AAATCTGAGCAAGCTCATGCAGCAACTGCGATTTTGACGATGCCTCAACATGAAGCCTTA +TTGGCTCGTTTGATTGATCTTTCTAATGAAGGTTTCACTGCTAACTTTGAATACGTAGCA +CCAGACAACCGAATCATTCTTCCTTATCAAGAACGCGAACTTATTCTTCTGAACATTCGT +GATAATGATACTGGCGAGTACGTAGATTACGATGATATCTATGCAGATGGTGTTCTTCGT +CGGTACTTGGTAGAAGCTCAACCAGTTCCAGAAGGTGATTTTGTTTCTGATATTCGCAAG +ATGGAAGGCATTGAAGGTTTTGTCTTTGTGATGGAAGATGGTTTACGTTTTAAACTCAAA +ACTGAATGGTACTGTGCGCTGCATCATACCAAAGATTCTATCACTAAGAATGATCGTCTT +TTTGAAGTTATCGTAGCGAATGCTGTTGATGATCTGAAAGGTATGTTCGTTGATGATCCT +TATTCTCTGAACAAGATCAACGTTTTCGAGCAGATCTATGTCAATTATCTTGGTGCTGCT +TTTGAGCTGTGTCATGAAACGTATGCTGCTCTTCGTGGTAAAGATCGCCGCGAGTATGCG +ATTGAAGCACAGACCATCGTGAACAAAGCTCAAATGCCAATGTTGTTCAGCGTTATCATG +GCGATGTACACTGGCGGTTGTGACAACGAGAAGCTTCTGGCAGGTGTCAACAAAATGTTC +CTGAAAAATCTCAAGCAGTTCATTCCAACAGAATACATCTAACCGTTTACATCTCCATTT +GGTTGTGTTACTATGATTCTACACCAACCAAATGGAGAAACAAAATGATCAATCAAATCA +CCGCAAACGAACTGGTAGAAATCTACGAAGGTACTCACCACGATGATATCCGCGTATTCA +AAGGACATCGTCCTATCGGATACATCACTGATCTTCGGGTTGCATACTCTCGTGATCAGA +AACGTCAGAAAGCTCGTAAAGAGTACACTAATCGTATCAACGAAGAACGAGCTGAGAAGA +TGCCAGAAGCTGTAAATGAAATGGTTGACTTTTTGAAAAACAACCTTCGTATGAATGCTG +ATGTAATGATTAACATCTCTCAGCCTAACGTTCATGTAAATGGTTGTAAGTGTTATGTAA +TTGTTGACCCGATTCGTGGTAAGCATCGTCTGGGTGTATCTAACCCGAACAGAACCGCAA +GTGAAATGGCTTTAGATGTTGATCCATCTTTCAAAATCCAAGAATCTCCTGCGGAACATC +ACATCTTAATTAATGGTCTTTCGCAAGATGACATCGTGGAGCATATCCGCAAATTATGTT +CAAAATAACAAATCTTCATGTAGCTGCAATAGCAATATTACTTTTTGGTTACGGAGTAAT +TAAGGTTCAATCTGCTAGAATTGATGGGTTGAAATCTGATCTCCAGACTATTCAGCAAGT +TGCAACTCAACAGGGAGAAGCAATTAAGCAGCTTAAAACTGATTATTCTATCATCATGAA +ATATGATGAACAACGTAAAGCTAATCGCGTTGAAGCTGATACTTCGAACGCTAAAATGAC +TAAAGACTCTAAACGAGAAAATGTGGTCAAAGCTAAGCCGAAGTTAGTTGAAAAGCAAAT +AAATGAGTCGTTCAATAAGTTCGCTCTGGATTTACAGGAGACTACTAGATGAAATGTTTA +GTGGCAGCTGTAATAACTATTGGACTACTATCTGGATGTTCCCAGAGTGTACCAGAGGTT +CCCAGAGATAACACTCTACACCCATCATGGCCTGATCCAATAAAGCCATACACTGGTAAG +TGGCAAGTCAAGATAATTGACGATCGCCCATGGGTTGGAATGCCTTTTGATGAATCTCAG +GAATTCAGAATTTGGATGAATGACGTCAATCGTTGGGCTAAAGATGCTAATGGAATGATA +TGTTACTATCGTAAAGACTTAAACGAAACAAGGTGCAAGCAATGGACCCGTTAGTAGTTC +TAATCTTATGTGTAACATTCTACAAAATTTGTAAACTCGCAATGCGATAAGGGCTTCGGC +CCTTTGGATAATAAAATTTTAATGAGGATATCATAATGACTCCACGTTCTAATGTATTCG +TTAGCAATCCGGAATTATTGACAAAAATTAAAAATGAAGATCTCCGTAACTGTATGAAGG +TCGGTTCCTGCATCCGTACTCCGCTGGAAAAGAAGACCACGTTCAATTATTCTTGGACTG +CCACTGAATACGGAGATCGTGTTATCAGTGTAACATGTTATCAACCTAATTCTAGTATTC +CAGGAAAAACGTTCATGGTTGATATTGCTCTATCAGACTGGTATCGTATTACAAGCTCTG +TATCCAATTTTGACGAATGGCAGGAAGAAGTAATTGAGAAAGACCGCATTCGCTCAGTTA +TTAAGACCTTTGAAGAAGCAGCTAAAATCCATGGTGCTCGTCAGGCTACTGTAGCAAATG +GATTTATCTCTGACGCAGAACCATTCTTGCGTGAATCTGGTAAGATTCTGAAAGATGCTC +GAGCAGCTCTTTATGAGGAATTCGATGTATGACACATTCAATTCTTCGTGCATTACTGAA +AGAATACTTTTCTCGTAGTACTGCATATTGTTACGCTTTACACGAAGATGATAAAGTAAG +AACTGGTTCGTCAGCTGATACAGTTAACTACATTGCGAATGATATGGAGCTTCAAGCCGA +TCGGGTTATTGCAGCTTTTAAATCATTTGAAAACGGCGAACTCATGTATAAAGCATTTAA +TTCAATAATGATTCGTCGAATATGGGCTCATGGTGCTTATATTAGTAGCGTAATGCGAAA +CCGTTCTTCACAATGGTCTAAAGATGCTAAGAAAAGACTTGATGACATTGACGAACAAAT +TGATATTATGATTGGGGTATTGAAATGACTCAAACTGAACATACAAGATTAATTCTGTTG +TTTAACAACTATGAGCAACTTAATAATCAGATGAATTTAGCTTATGCAACAAATTCAGAC +CGTGCTGCGTATTATTATACCGAAGCTGCAAGGGCTCGTGAAGCTTTTATCAAGAAACTA +GCGGAACATATCGAATGAAAAAGTTAATCTTAACTCAGGGATGCCCAGGCTCTGGTAAAT +CTACTTGGGCAAATGAATATGTTCAGAAAAATCCTGGATTCTTCATCCTGACCCGTGATG +ATTTCCGTGAAAAGCTTTTTGGGCTAGAAGCTCGTAATCAATATCGTTATAGTAAAGCAA +AAGAAAAAGCAGTATCAGCTGCTCAATTTGCTGCCGCTGAAGCCTTGCTTAAAATGGAAA +CGACTAAAGGCATTATCATTGCGGATACGAACTTGAATCCCTCGACTGTCAAAGCTTGGA +ACGATTTTGCTTACAATGCATTCAATGACGTGTTGGTGGAAATTGAACGTTTCGACGCTC +CGTGGACTGAACTTCTAAAACGCAACCAATATCGTGGTGATAAAGCAGTTCCGATTGATG +TTCTGCGTAGCATGTATAAACTATCAAGACCACATGATGTTTATGTCCCAGATGAGTCTT +TGCCAAAGGCAGTTATTTTTGACCTTGATGGAACATTAGCCGACAATGATCATCGTTCTC +CTTACGACCTTGAGAAATGTGGTGAAGATGCTCCAAAGAAAATGGTTATTGCTCTTTTAG +AAATGCTTCGTGCTCAAGGGTATAAAATCATTACTGTATCTGGTCGAGAATCTGGTACAA +AAGAAGATGCTACAAAATATCGTCGCATTACTACAGAATGGCTTGATAAGCATACTAATG +GCTCAGATGAGCATTACCAACGAGCACAGGGTGATTCTCGTAAAGACGATGTAGTGAAAG +AAGAAATCTTCTGGAATTGTATCGCTGATCGTTTTAACGTGCAATTAGCAGTAGATGACC +GAGCACAAGTCGTAGAAATGTGGCGTCGTATTGGGGTTGAATGTTGGCAAGTTAACCATG +GAGATTTTTGATGGCTGCTTATCATGAAGGTTGGGCTTTAGTCAGTCCTAAAACTAAATG +CATCGCTCATATGGATGACGGCCAATATGCTGTCTTCACTGAAGAAAAATATGCAATTTT +AAAAGCTGCAGAAGTTCTTAAGCAATATGGTAAAACCCTTACTATCCGCCGTGTCAAAAT +TCCTTTGCCTTGGAGCATGTGATGTATAATAAACACCATGAAATTGAAGAAGAGGCTTAT +GGGCTTCTTCGTAAACTCGTCGGTGCAAAGCTCGATCCTGCATTGATTAATGCTCTTGCT +GAAATTCGAACTGATATCAATACTCGATACAAAAACGAATATCATGTAGAGTTCAAGCCC +GTTGGTGAAGTAGTAACCAACTTCGTTGTTAACGTTAAAGTACATACGGTGCACTAATGA +TTACAGTTCAACCTCACGCAAATACTTTGCAGAACGTCGCAAAAATGGTAGTAGCTCAAG +TAGTGGATAACTTTATGTTCACTCCTAATACTGCCGCGAATCAAATTCTTATTCATTCTG +ATATTGTTGCTGTGATGAATATTCTATGGAAAGATACTGATTTCAGAGTAGTTCCTCATT +TCGATAGCTTCGGCTTTACATTTGACTTCACTATTGATCCTGGAACTCCAAATGCTTTCG +GTTTTTCCGTGAAATATTCTTGGGATAATTCAAATGATTTCCGACAAGAAATTTAAGCAA +GAAGAATTTGTGGGTCTGTGTAAAGATTTTGCACAAGCCTGTGCTAATAAGAAACCTGGG +TCTCAAGTAACGTTAAAACAAGACCCTTTAGTGAATGGAGTGATCGTCACAATTAGTTAT +AATGGTAAACAAAGCCATGTGTCTTTGACATTAACTCGTGATGGCTCTGTTAAAATGGAA +ACAATTCTGGGGTATGTATGATCACATTAGTAAGTGCAATTGAAATGATTCGTGAAGCTG +AGTATCAGCATGTTGGTGACAAGTCTTACTTCAGTGAAGAAGGTGTTTTGGATGTTAAAG +CACTACTAGAGTTTGATCGTTGTTTCCAATCCGTTCCAAGTGACACGTATGATGCGGTTA +TCTTGTCGTGCAAAGATTTAATCAACGTAAATGCTCGTGGTTTAGGTGATGTCTTCTTTG +ATAAAAATAAACGCTTTCCAGATGGTTGTTTTATAATTACTTCACAGGTACTGGCAGTTG +AACAACTGTTCAGTGAAATTTATCGAGTTAAAACTAAAAACTCAACTTATCTGGTGATCA +TGTAAATGAAAGCATCCACGGTCTTACAAATTGCTTATCTGGTTTCTCAAGAATCCAAAT +GCTGTTCCTGGAAAGTGGGTGCAGTGATTGAAAAGAATGGACGTATTATCTCTACCGGTT +ATAATGGTTCACCTGCTGGTGGAGTTAACTGTTGTGATCATGCCGATGAAAAAGGTTGGT +TAGTTAAAAAGCCTTCATCTGGTTTACGTCAAGATGGTCCTATTCCAAAATATGGGTTAT +CTACTAAATTTAGAGCAGAGCATAGTGCTTGGTCTTCTGTGAATGAAATTCACGCTGAAC +TAAATGCTATTTTATTTGCTGCTCGTAATGGCTCTTCAATTGAAGGTGCTACGATGTATG +TGACATTATCACCATGTCCAGACTGTGCTAAAGCAATTGCTCAATCCGGTATTAAGAAGT +TGGTGTACTGTGAAACATACGATAAAAACAGAGAAGGCTGGGATGATATCCTTCGTTCGG +CTGGAATTGAGGTATTCAACGTTCCTAAGAAAAATCTTTCGAAGTTGAATTGGTACAATA +TTGATGAATTTTGCGGAATAGAAGAATGATTACTTTTGAAAAAACTCCTGAAGTCGTAGT +GTCAGATATGACTGAAGAATTTATCTTTACGATGGAAGCAAATAATATCCGCTGCATTAA +AGTTCAGCCAACGTTTGTTATTGAGCATCTTGAAAAACAATTTGGCTGTGAAATCCTGTC +AAAATCTACTACTGATTATGACTATGTAATTAAACAGTTCGTTGAGCTTAAGCCTGAGCT +GGTGTTGGTTCGCGAAGTTAAAGAAGAATGTATTGGTGATGATGTCCGGTATATCTTCCG +TGTTGACTATATCAAGGTTAAAGCATGAAAGCTCGATTAGTGCAAACTACTGGATTGAGC +TCTTACGGTGATATCAACATTTCTTATGCGGTCGAATACAAAAAGGGATTTTTCTCTAAA +TGGAAAACTCTTTATCAAACCGATTATGTTGATAGCACAGATGAAGTTCGCACAACCGAC +CGTCGTTCAAAATGTGAAAAACTTCTGAAAGCATTAAAAGAACGTGGTGCACATAAAATT +AAAACTGTTATAGGTGAATAAGATGAAATTAACTAAAGATCAGAAAATCCAAGTTCGTGA +AACATTAAAAGCAATCCTGTCTAATGGTGAATCTCAGGTAGTATTCGAGAAAGCTGATGG +CACTATTCGTTCCATGCGTTGTACTCGTGATAGTGATTCAATTCCGAGTGATCTGGTAGA +AAGCACTGTTAAACCAGCTCGTGCCGAATCTATTGATATGCTGCCAGTGTATGACACTGA +AAAAGAACAGTGGCGCGGATTTAGCTTTGAAAAACTGATCTCTGTGAATGGTGTTAAAGT +TGAGCATTTGATTCAACTGATCACTCATTAATTGCTTAAAGTAGAGCATGATAATATTAA +TTCATGCTCTTAAACATAAAGGTTAAACATGCAGTCTTTACCAATTAAAGCTTTAGGTGA +ATATGTAATCCTCGTTTCTGAACCAGCTCAAGCAGGTGATGAAAAAGTTTCTTCTTCTGG +AATTTTTCTAGGAAAAGAACACCAAGGTCAATTACCAGAAATGTGTGAAATCTACGCAAT +CGGTGATGATGTACCAAAAGGATTTGTTGAAATTGGAGATTTTACTCCTATTCCAACAGG +AAGCATTCGAAATGTCGTTCATCCTTTGGTTGCAGCAGGGCTTAAGCAACCGAAGGAAAT +CAAACAAAAATTCGTAACTTGTCACTATAAATCTCTTTCTTGCGTTTATAAGTGATATAA +ATATCATTATGAAGAACTGGAAAACTACCTCCAAAAGGACATGACCAGTTATTCTATGTG +GTGGATGCGCAGCTTAAACGCTGGTACCGTCCACCAAATTTTCACCTCATTTGAGGAACG +ACATATGTCAATGCACAAACAACTCGAACACGCTCTTACCCTGCAACGTACCGCTTGGAA +TGCAGGCCACGAAAACTATGGCGCATCTATTGATGTTTACGCCGAAGCATTGGAAGTTCT +TAAAGGTTTCAAACACCTGAATCCAGTTCAAGCCGATCTTCGTGATGCGTTGGTCGAAAA +AGACGAACTGAAATTTGCAAAATCTCTTTGCAGCTCAGCTCGTAAAGCTGTTCGTCATTT +CGTAGTAACTCTGAAGTAATATTTTATAAGCGGCAAGTGCATGCTACCCCGAGGCGATGG +CCAATCGGGAGTACGCCTCAAGGCCTATACATCCATCGGTGTATATCTTATCCTCGAGAA +ATCGGACCCGGACCCTTTAAGCTAACGGTGTGCAACAGATAAGAGCGTATGAAGTTAAGG +TTGTGAGAGCCGGAACGTTAAATATAAAAAACTCACAAAGTACCCTTTGAGGGCTTGCGG +GAGCTACAACTGAAAGAACTGTCGAAAGAAGTTGAAACTCAGAAGAACGTGCTCCCATGT +ATTTCTCCAAAATGGAAGATCATAATGTCAAAAGCTAAAAAAGCAGTTAAATCAGTAAAA +GAAGTTGTTGGTACCTCTAAGCGTGCTGGTTACAAACGTAGCACTAACGCTCGTATTGAT +AAACTAGGCGATCAGCTGGCTTCTCGTGCCCGTAAGGTTCTGGCACATGATGCGGCTTTT +GGTAATCCACGTAAGAAAGCGTAAAGCATAAGTTAGGGACTCCTTCGGGAGTCCCTTTTT +TGTTTGTACTCTGCCGTTTACATCCGTTGAAGAACGTGTTATAGTATAAACTCAATAACC +AATACGGTATAATGGAGAATAAAATGAAAATCAATCTGAATGCTACAGTAAAATGTAAAG +ATCACGATGGATATAAAGCTCAGACAGTAAAAGAACAACAATGGATGCTTACTAAGCAAC +AATTTGAATTTGTGAACTGTATGACTCCTGAAGGTCCATCAGATGATTTCTCATGGAAAA +TTATTCTGATCAACTTCTTCACTGGTGAAGAATATGAGTTGAACACTTTGATTCTCGGTA +AGATTCGTTGTGAAACTTATGTCGATGAAGAAGATGGTTACTCGGAAGATGTTACGTGGT +ATCAAAATGGTCGAATTACTGCTGATAATCTGATAGAAGCAATTAAAGCTAAAGGCGTAG +TTGATCTCACTTACTGGACTAAAACTAAATGAGGCCTTCGGGCCTATTGAGGAAAGCATG +AAACTTGATTTAAGCAAAGAATATGTTCTGGATAATGTTAGCGGCTATCTTTATGATAAT +GGAAGCAATACTCACATCAACAATGAAGTAGTTAAGTTCATTGGTGACCGTAAGTTCACG +ATTAAGACAACTGGTTACAACCGAATTGATGGGATTTCTTTTGATAAAGGCGAAACTTGG +GTATCGTTGAAAGATATCTCAGAACAAGCATCAGTGTATGGCTACATTTTCTCTGCTGAA +GAGATCGACCGTGGAGCTATCAAAGTTGCTCCAGAAGATAAAAGTGTTCGTGAATACATG +GTGATCTACACTGACGAAGATGACATTCCGAAGGTTGCTTACAGTGGTTCAGGGAATATG +TTCACTGAAGAAGAGGCTAAGACTGCTTCACTTGAGCTGTTCACCGAAGGCTACAAAATT +AAGAACGTATTAGTCGTTAAGAAAGCGTTTGAAGCTTTGTCAAAAATTGAAGTAAGTTTC +GTCTAACCGTTTACATCCTCCGTTGTATGTGTTATAGTATAAACTCAATCAACAAACATA +CAACGGAGAATAAAATGAACTTTACTAACTTTAATCGCAAATATGTTCAAGGCGCTTTTG +ATAGCACGGTTTGTCTTTGGGAGCATAAAAACGGCACAGTTTGCGAAATCGATATGTACT +GGACAGACAACTACGTCTACATCAACTTTGAAAATGGAATCACGTTAGATATTTCTTTTA +AAGGTTCAGTCATTAAGGTTGGTTTTCATGATGATGTTCGCACTCGCGATTTAGGAACTC +ATCCGTCTTGGAACGGAGATAATCGTAGAACTCTGGTTAAACTTTATCTTCGCCATATCT +TAGGGCAGAAGACTACTGAAGAACAGCGTGAAGCAATTTGGGACATCGTTTCAAACGAAT +TAAAATTTTAATCTTAAACCGGGGCTTTGGCCCCTCTGAGGAAAATATGCAAATTTATCA +ATTCAACGTTGGCGGTTATAAGGAGTTCATTGATGTACATAGTCATGAATTTGTAGCCGC +ATGGGAAAAGAATATGGAAGTAGCCCAAGACTTCATAGTTCTAGCCTATTCAGAAGAAGG +GCATATCACCAAAGTCAAGAATATGAAAACCGGCGAAGTCTTTACCGCTCTTGAAGGTGA +CTTTAAGAATTATTTCGCGTTCTTCTTGGTTCATGAAATTGGTAATGGCAAACAGGTTTC +AGTAGTTCGAGAAATTGTGTCAGAAGAAATGAGTGCGTATGGAATTAATGAAAATGAATC +TGGCGAATTCATTGTAGTCTCCGAGTACAATCAAAATAAAAGTATTTTAGGTCCTTATAA +CTATGAAGAAGCTCTGAAAAAGGCTAAAAGCCAGATTATGCATGGTGCTATTGGCGTGAC +TGTAAAGATCTACAAAGCAGTAAATGAAGTTGAACTCGCTGTCAATGTAAAATCACTCTG +AGGGAAATAACATGATCGTATCTATCGCTAAATCTGTCGCTGCTAAATTTGAACGCATCA +TCGATTGCCCAATGATTGATATCATTGAAGTTCGCGTTCGTAATCATTCGGTTGAGTATG +AAATTGATGCTCCTGATTTCTTTGAATTTCCAGATTGGGCTGTTGTATTATGAAATTATT +CATTGATCTAATGAAGCATCTCTATCCAACATACAGGTTAACATTTGATGTAATTGATGT +TTCACCATCGGGTTGGATAAAAGATCCGTTTCAAGTAACCAGAGAAATCAAACTCTGGTT +TTGGGAAGATAAAACAACAGAATTCCATAAAGTTGAAGAAGCACTTCCTCCGTTTGGTGT +ATGGAGTGATGTTATTCTGAACAAGGTTGAAAAAGTATGAAACCAAAATACATGATATTC +CAAACGGTTCAACTGAAAGGCTCAGGAATTCCCGGAGTAATAAGCGATGTAGCTAATGGA +ATTCCTCGCTATAAAACTCAGCCCGCTTATGAAGTTGATTGGGTTGATGGAACTCGTTCG +GTTCATATGGAAGAAGAAATTTCTCCGATATCTCAATTAAAGGTGATGTAATGCTTTACT +TAGATTTAGATATTATTGCTCAAATGCCAACTAAATCTGGGTATTTGAATCAGCTAGTTA +CAAAGACACTTATTGAAGGTGGAACAGTAGCTTTCACCTCATTTGAGGCTGAATTATCAG +ATCACACAATTAAAATGATTGAGGAAAAATTATGCTTTTACAAGAACCAAAACCAGTCGT +TGCCACCGACGTCGATGGGATTCTCATCAAGTGGCAATCAGGTCTTCCTTACTTCGCGCA +AAAATATGATTTGCCGTTAGATGAAATCCTGAAAACTATCGCAAGTGACTCTTTTGTTAC +TCCAGCAAAATTGTTCAACTGCTCAGAAGAATTCGCTTCTAAATTACTTTTGAAGTACAA +CAACTCCGACTTTATTCGTTATCTGTCGGCTTATGATGATGCTCTTAAGGTAGTTAATGA +GCTCAAGAAGCATTACGATTTTGTTGCAGTAACTGCATTAGGTAACTCAGTAGATGCTCA +CCTGAATCGCCAGTTTAACTTGAGTGCATTGTTTCCGGGAGCCTTTAAAGATATATACGT +CTGTGATTACAATGAATCTAAGGATCACCTGTTAACCCGAGTGTTGGAAAAGTACGGTGA +TCGTGTAGTCTGTTACGTTGATGATCTTGGAAAACATATTGACTCTGCAATTGAAGTTAT +GTCTCATTTAAAAGACTTCAAAACATTCTATTTGCCTCGTGGTGAACGGGATCATTTGCC +ATCTCATTCTGGAACAGCTCATCATACTGTAAAGAACTGGTACGAAATCAAAGATATTTT +GGTGAGTGATTCTTCATCAAAAATGGTTGAACAATTCAAAAAGATGGTCGATGAACTTAA +TAAGCCGGATCGCCCATCCATTTATGATTTTTGGAAACGCCAAGTTCCAATTTTCGAACC +AACCCAGCCATGGCAACGTCCATATCCGAATTATGGTATTGGAACCGGGATTGAATATCT +CATGAATCAACCTAATGCAGTGGTGAATTGTAAAGTATGATTAATGTAATTTTCTGGAAT +CCGCACACTGACAAGACTCATCGAGTAGAGTCTTTCGCTACTAAGCAAGAGTTGTTTGAA +AAGCGAATTACTTCAAAAGCTAATCAGGAACAGCGTGAAATGCAAGATGCGGTATTCAAT +GGAGCTTTGTACATCACTACTCTTCCAAACGGTGGAGATATCTATCACCGAACTCTGGCA +GAATTGATTCGCGAATATAAGTCAAAGATCTAGCTTATCGAGGGGTGTGATATAATAGTC +ATATCCCTAAACACAAAGAGAAAATTATGATTCTTGAAATTATCAATGAAATCGCGTCTA +TTGGTTCAACAAAAGAAAAAGAAGCAATCATTCGTCGTCATAAAGATAATGAACTTCTGA +AACGTGTTTTCAAATTAACGTATGATGGTAAGTTCCAATACTACATCAAGAAATGGAATA +ATCCAGATTGTTATTTACCTAATGCAACACAATTTTCATTGAACTCTGCCTTAGATGTTT +TAGAGAATTTGTTTGCTACTCGTAAAATAACTGGCAATGCTGCTTTAGATAAACTTTCTG +CTACGCTTCAACGAATGCATGAGTCTGATCGTGAAGTACTTAAGAAAGTATTGCTTCGTG +ATCTTCGTTGTGGTGCATCTCGTTCTATTGCAAATAAAGTATGGAAGGGATTAATCCCAG +AACAGCCACAGATGCTTGCTTCATCGTATGATGAAAAGGGTATTGAAAAGAACATTAAGT +TCCCTGCATTTGCTCAGCTCAAAGCCGATGGTGCAAGGGCATTTGCCGAAGTTCGCGGTG +ATGAATTAGATGATGTAAAAATTCTATCTCGTGCCGGGAATGAGTATCTTGGTTTAGATT +TGCTGAAGCAGCAGCTAATCGATATGACTAAAGAAGCTCGTAAACGACACCCTGGTGGTG +TAATGATCGACGGCGAATTAGTTTATCATACTGTTGTTGCTTCGTCTGGTCCATTAGATG +ATATGTTCGGCGATTTGCCTGAACTTAGTAAAGCTAAAGAATTAAAAGAAGAATCTCGTA +CAATGTCCAACGGATTGGCAAATAAATCTCTGAAAGGCACTATCTCTAAGAAAGAAGCTG +ATGGTATGAAATTCCAAGTTTGGGATTATGTTCCATTGGATGTGGTTTATTCTGAAGGTA +AAGAATCTGGATTTGCGTATGATGTTCGGTTCCGTGCTCTAGAGTTAATGGTTCAAGGCT +TCTCTCAGATGATTCTAATCGAGAACCATGTTGTCCATAACCTCGAAGAAGCTAAGGTAA +TTTATCGCAAATACGTTGATCAAGGCCTTGAAGGTATTATTCTGAAGAACATCGGGGCTT +TCTGGGAAAACACCCGTTCTAAGAATCTTTATAAGTTCAAAGAAGTTATCACTATCGATA +TGCGTATTGTAGGGATTTATCCTCATAGTAAACACCCTGGTAAAGCAGGTGGATTCTATC +TAGAATCAGAATGCGGATTAATCAAAACTAAATCAGGTTCTGGATTAAAAGATAAACCGG +GTCCAGATTCGCATGAGTTAGACCGTACTCGTATTTGGGAAAACCAAAATGATTATATTG +GCGGAATTCTTGAATCAGAATGTAATGGTTGGTCAGCAGCTGAAGGTCGTACAGAATATG +TTAAGCTGTTCCTTCCTATTGCTGTTCGTATGCGTCGTGATAAAAATGTAGCAAATACAT +TCGCTGATATCTGGGGCGATTTCCATGAGGTTACTGGGTTATGAGTTATAAAATTCTTTT +AGAAGTTACCGTGATGTCTTCGACTGGACATGTGGCGGTTAGTACTGAACAGCTGGATTT +TTATAGCTGGGATAATGCTAATATGTATTATGAAGCAGTAGAAGTTTATGAAGAAACGCC +AGATATTAAAGTATGGCGTCAAGTAACAAAACTTTATTAAAGCCCTTCGGGGCTTTTGTT +GTCTATAAATATAGTAAACTATAGAGGACTTTTTATGATCGAATTAAATGAAGTCTTCGA +TGAAGGGAAAGAACGTCTAGCAGTTACGAACCTTTATCCGAAGCTCAAGATTCCACAAAT +TTTTGCAATAGACAACACTAAAGTAGCTTATCGTATGTGCTCATATACTGGTGGTGGAGA +TGCAAATAAAAACATCAAACCCGGTGATAAAATGATGCATGTCATTGCATTAGGAGTTAC +TGATAAAGGCCTTGGTCAACTTAAGACCTTAGGTGATAATCCAATTGCTGTTATTGATAC +AATCTTTAACCACGTAATGGGTATCATGAAGTTTTATCGTTTTGACGCTGCTTTATTTCG +TGTTAAAAAGAATAAAACTGGTGGAGCAGGTCGCCAGATGCAAGTTATTGTTGATCGTCT +AATCAAGAAGAAAGGCGGTGGCAAATTCGTTATGCTTAAAGAGTTGTATGATTTTGATAA +GAAATACAACTACATTTTAGTATACAAGAAGAATGCTGATCTTGTCAATATCCCTGGAAT +GACTGAGATCATGGACTCAATTTATAAGAAAGTAGACACTGATGTAGGTGATGCTTATAT +CAACGTTGAGACCGGCAAACAAGTATCTAAGCTTGAAGCTATCGCGGGTTCAATCGCAGC +AGAAAATGATAAACGCTCAGACCAGGCGGTTGCGTCTCGAGCTAAAATATCTCGTCGTGC +TTTAATGGCTTCTCAATATTCAATCCAAGTGGGATTTGATACTCGTAAAGATGCGGTAGA +ACATGATAAGCGATTAGATGTAATTAACTCTAAACCTCCGGTTTATTTGACAGATAAGTC +TTCTGACCAAGTATCGAATATTCAAATGGCTATTGATAATTTCAGAAATGATTCTCAATC +AATTGCTAAAACCGGCGAAGCGTTTAAGACATTTGACCCGTCATGGAAAATGGATGATGA +TCGTCATTCTACTGGTACAATGAAAGCCCAAGAACTTGTTCTAAGGCTCACTAATATATT +AACCAGTGGAACAGTAGACGATTTCAGTCAACATCCTACTGATAGAAGAGAAGCATTTAA +AACATTAGCGGTCAGAGACATTTATCGTATTGGTGAAGCCTGGTCTAAATTAGAGCCTAA +TGACTATTATGGTGCTATTAAAGAACTTACTCGAGTCGCAATGGAAGACAAAGAATGGTC +TTCTGATGCAAATCGTGAATACGCAGTAAAAGAGATTGTAGAATTAATTTCTAAACAGTT +CTCTGATTTAGCAGCTAGCATGTACAAAAATACATCAGATGTGGATCGTTATACTCCGGT +ACAATTGTCAGGTTTACATGCTTACGTCGGTTCATCTTATAAGTACATCAACGACTATCT +TTTAGGCCTTGATGATTATGGCAAAGAAACTGTTGAAAAATGGATTGAGTCTATCGATTC +TGCGTTTGAAAATGGTGTTCGTCTTCCGAAGGGAACTAAGCTATTTCGAGGTCAACATAC +TAAGCGCGAAGCTATTGAAGTTAGTTTAGAAAACAAGCACTTCTATTTCAAGAATTATGT +GTCAACTTCAATGGCTCCTATTATCTTTGGTGGATATGGACGAGCATATGATGCAATGGA +CCCCGCTGCATTGAACACAGATACATCGACTCCTAAAGAAGTGCTTGACTCTGTTTCAAC +TGTTCGGCCTGATAGTATTACTAACTCTGAAATGGGTGAATTGCGTTTAGCGTTCGTTAT +TTCTGGCGCAGAGAAAATAAAGACTATCGTAACCAATGCTGGAATCTCAGGATTGTCATT +TGAAGCTGAAGTTATTCTTCCTCGTGGTACTGTTCTTAGAATTGATAAAATGTATGGAAC +AGCTCAGAAACTTCAAGCTAATGACTACACAGCATCAAAGAGTGTTCTTATGGAATGCAC +TGTAGTATCTCCAGAACAATTATCTGAAACTACAATTTATGATGGCGATAAATTGTTAGA +AGGTGAATTGGTTGAATCTGATTATTCGTTCAGTTCTTTTATTGGTCAATTAAATGAAGC +TAAAGTTGAAACACCAGATTGGTTAGGTGAAGCTCTAGCATCATTTGTTGACATAAATAA +TTTACCAGAACGATTCATAAATTAATATTTTCACATGGACGTGAATTCAGAGAGGGCTTT +ATGGAAATTTTAAACGAAGTACTAGACGAAAGTAAACTGGATTTACCAGTTACGAACCTT +TATCCAAAGACGAAAATTCCACAAATTTTTGCTATTCAAACTAACTCCGAGGGTTCACTG +CCAGCATTCAGGATGTGTTCATATACATCTGGCGGTGATACCAATAAGAACGTTAAACCT +GGCGACAAAATGATTCATGTTGTTATGCTATCATTGAGCGAAAAAGGATCATTAGTTAAG +CTTAAAAACTTAGGCGGCGATCCAATTGGTGTTATCTCTACTACGTTCAATATCGTTTAT +TCAACGATGAAGCAGTATAAAATGGACGCATGCTTGTTCCGAATGGCCAAAAGCAAAATC +GGTGGACAAGCTCGTCAGATGCAGGTTATTATGGACCGACTCGTACGTTCTCGTACTGGT +GGTAAATTTGTTATCCTGAAAGAACTCTGGGATTATGATAAGAAGTACGCATATATTCTT +ATTCATCGTAAAAATGTTGATCTCTCAACCATCCCTGGCGTCCCAGAGATTGATACTGGA +CTGTTCACTGCAGTTGAAACTAAAGTTGGTGAAGTTTATGTTGAAAAGAAATCAGGTCAA +CAAGTAACTAAAGCCCAAGCCGTTGCTGCTTCTATTGCAGTCGAAAACGATAAGCGTTCA +GATCAAAACGTTATTTCTCGTGCTAAGATAAATCGTCGTCAAGCTATTGCTGCTCAGTAT +TCTGTTGATGCATCTAGCATCCAAGGCGATGATCGTGCTGCTGAAGAATTTAAACGCTTA +GAAGCTAAAGTTCCAGTTAAAAGCTCTAAAGGCGCTGAGTCATCAGACATGGTAGCAAAA +GTTAATACCATCGCTGACCGTCAAGGAAATGAGTATATCGGCAAAGTACTAAACTTCATC +ACTAATCCTGAAACATCTCAGGACACAGATGGTAAAGCATTGACTGCACGAATAGGTCAA +TTGCGCCAGTTATCTAAAATGCCTAAAGGTGCCATGTTATCAGGTGGATTTGAAACTGGT +GGTATGAAGTACTACATGGAAAACCAAAAAGAAATGTACAATGAAGTTCGTTCATTTGCT +CGATTGATAGCTGGGGTGAATACAACTAACTCCTTTCAGACGATGAAAGATTTAGTTAAA +ATGGCTTCAGCTGGAACTAGACCTGAAGATCGTGAACAGTTAATTGCAAATTTAATTGGA +TTAGCTTATAAAGAAATAAGTGCAATCATCAGAGATTCATACCAAACTGCAGCAAGTTTA +TCTAAAGAGAATGATCATTATTCTAAAGATGAAAAACAAGCTATCAGTGAATACTGCGCA +AACGCTTTCGAATACGTGAATATGTTCTTAATCGGTAAGCCGGAAGAAGGGTATTCAACT +TCTGATTCTCTCGAGATCATCGATAATATGGACTCTGCGTTTGAAAAAGGAACTCGTTTA +GACAAAGGTACATTATTGTATCGTGGCCAAAAATTAGACCTTCCTACA diff --git a/test-data/dataset_1_files/data/seq/genome.fasta.fai b/test-data/dataset_1_files/data/seq/genome.fasta.fai new file mode 100644 index 00000000..be74b8a5 --- /dev/null +++ b/test-data/dataset_1_files/data/seq/genome.fasta.fai @@ -0,0 +1 @@ +Merlin 172788 8 60 61 diff --git a/test-data/dataset_1_files/data/seq/refSeqs.json b/test-data/dataset_1_files/data/seq/refSeqs.json new file mode 100644 index 00000000..c9c6cf34 --- /dev/null +++ b/test-data/dataset_1_files/data/seq/refSeqs.json @@ -0,0 +1 @@ +[{"end":172788,"length":172788,"line_byte_length":"61","line_length":"60","name":"Merlin","offset":"8","start":0}] \ No newline at end of file diff --git a/test-data/dataset_1_files/data/trackList.json b/test-data/dataset_1_files/data/trackList.json new file mode 100644 index 00000000..26e185df --- /dev/null +++ b/test-data/dataset_1_files/data/trackList.json @@ -0,0 +1,170 @@ +{ + "formatVersion" : 1, + "hideGenomeOptions" : false, + "names" : { + "type" : "Hash", + "url" : "names/" + }, + "plugins" : [ + { + "location" : "https://cdn.jsdelivr.net/gh/TAMU-CPT/blastview@97572a21b7f011c2b4d9a0b5af40e292d694cbef/", + "name" : "BlastView" + } + ], + "refSeqs" : "seq/genome.fasta.fai", + "shareLink" : true, + "show_menu" : true, + "show_nav" : true, + "show_overview" : true, + "show_tracklist" : true, + "tracks" : [ + { + "category" : "Reference sequence", + "codonStarts" : [ + "TTG", + "CTG", + "ATG" + ], + "codonStops" : [ + "TAA", + "TAG", + "TGA" + ], + "codonTable" : { + "AAA" : "K", + "AAC" : "N", + "AAG" : "K", + "AAT" : "N", + "ACA" : "T", + "ACC" : "T", + "ACG" : "T", + "ACT" : "T", + "AGA" : "R", + "AGC" : "S", + "AGG" : "R", + "AGT" : "S", + "ATA" : "I", + "ATC" : "I", + "ATG" : "M", + "ATT" : "I", + "CAA" : "Q", + "CAC" : "H", + "CAG" : "Q", + "CAT" : "H", + "CCA" : "P", + "CCC" : "P", + "CCG" : "P", + "CCT" : "P", + "CGA" : "R", + "CGC" : "R", + "CGG" : "R", + "CGT" : "R", + "CTA" : "L", + "CTC" : "L", + "CTG" : "L", + "CTT" : "L", + "GAA" : "E", + "GAC" : "D", + "GAG" : "E", + "GAT" : "D", + "GCA" : "A", + "GCC" : "A", + "GCG" : "A", + "GCT" : "A", + "GGA" : "G", + "GGC" : "G", + "GGG" : "G", + "GGT" : "G", + "GTA" : "V", + "GTC" : "V", + "GTG" : "V", + "GTT" : "V", + "TAC" : "Y", + "TAT" : "Y", + "TCA" : "S", + "TCC" : "S", + "TCG" : "S", + "TCT" : "S", + "TGC" : "C", + "TGG" : "W", + "TGT" : "C", + "TTA" : "L", + "TTC" : "F", + "TTG" : "L", + "TTT" : "F" + }, + "faiUrlTemplate" : "seq/genome.fasta.fai", + "key" : "Reference sequence", + "label" : "DNA", + "metadata" : { + "dataset_edam_format" : "fasta", + "dataset_file_ext" : "fasta", + "dataset_hid" : "1", + "dataset_id" : "7495a4247e72f5f1", + "dataset_size" : "171.6 KB", + "history_display_name" : "Unnamed history", + "history_id" : "d29e465b351a50c9", + "history_user_email" : "anthony.bretaudeau@irisa.fr", + "history_user_id" : "17", + "metadata_data_lines" : "2881", + "metadata_dbkey" : "?", + "metadata_sequences" : "1", + "tool_tool" : "upload1", + "tool_tool_id" : "upload1", + "tool_tool_version" : "1.1.6" + }, + "seqType" : "dna", + "storeClass" : "JBrowse/Store/SeqFeature/IndexedFasta", + "type" : "SequenceTrack", + "urlTemplate" : "seq/genome.fasta", + "useAsRefSeqStore" : 1 + }, + { + "category" : "Default", + "key" : "merlin.gff", + "label" : "4ced49b280a72a29f1b922ae1a9664c8_0", + "maxHeight" : "600", + "menuTemplate" : [ + {}, + {}, + {}, + {} + ], + "metadata" : { + "dataset_edam_format" : "gff3", + "dataset_file_ext" : "gff3", + "dataset_hid" : "2", + "dataset_id" : "b02ee2031011d9cf", + "dataset_size" : "110.3 KB", + "history_display_name" : "Unnamed history", + "history_id" : "d29e465b351a50c9", + "history_user_email" : "anthony.bretaudeau@irisa.fr", + "history_user_id" : "17", + "metadata_attributes" : "4", + "metadata_columns" : "9", + "metadata_comment_lines" : "2", + "metadata_data_lines" : "1228", + "metadata_dbkey" : "?", + "metadata_delimiter" : "__tc__", + "tool_tool" : "upload1", + "tool_tool_id" : "upload1", + "tool_tool_version" : "1.1.6" + }, + "overrideDraggable" : false, + "overridePlugins" : false, + "storeClass" : "JBrowse/Store/SeqFeature/GFF3Tabix", + "style" : { + "className" : "feature", + "color" : "#a6cee3", + "description" : "note,description", + "label" : "product,name,id" + }, + "trackType" : "NeatHTMLFeatures/View/Track/NeatFeatures", + "type" : "NeatHTMLFeatures/View/Track/NeatFeatures", + "urlTemplate" : "raw/4ced49b280a72a29f1b922ae1a9664c8_0.gff.gz" + } + ], + "view" : { + "trackPadding" : 20 + } +} diff --git a/test-data/dataset_1_files/data/tracks.conf b/test-data/dataset_1_files/data/tracks.conf new file mode 100644 index 00000000..e69de29b diff --git a/test-data/dataset_1_files/galaxy.xml b/test-data/dataset_1_files/galaxy.xml new file mode 100644 index 00000000..dc040b63 --- /dev/null +++ b/test-data/dataset_1_files/galaxy.xml @@ -0,0 +1,106 @@ + + + + 1 + + + + + + + + + + + + + 20 + + true + + true + true + true + true + false + + http://localhost + + + + + + + + + + + + + + + + + + ignore + + __auto__ + + + + + + + + + NeatHTMLFeatures/View/Track/NeatFeatures + false + + + + + + diff --git a/test-data/dataset_1_files/jbrowse.conf b/test-data/dataset_1_files/jbrowse.conf new file mode 100644 index 00000000..5b87c5eb --- /dev/null +++ b/test-data/dataset_1_files/jbrowse.conf @@ -0,0 +1,110 @@ +#### JBrowse main configuration file + +## uncomment the section below to customize this browser's title and description +# [aboutThisBrowser] +# title = Oryza sativa +# description = Browser for O. sativa transcripts and RNA-seq data, +# produced by the Smith laboratory at Example State University. + +## uncomment and edit the example below to configure a faceted track selector +# [trackSelector] +# type = Faceted +# displayColumns = +# + label +# + key +# + organism +# + technique +## optionally sort the faceted track selector by column (use the names from displayColumns) +# initialSortColumn=label +## optionally give different names to some of the data facets using renameFacets +# [trackSelector.renameFacets] +# submission = Submission ID +# developmental-stage = Conditions +# cell-line = Cell Line +# key = Dataset +# label = Track + +## uncomment this section to get hierarchical trackselector options +# [trackSelector] +## optionally turn off sorting for the hierarchical track selector +# sortHierarchical = false +## set collapsed categories for the hierarchical track selector +# collapsedCategories = Reference sequence,Quantitative / XY Plot +## set category ordering in the hierarchical track selector +# categoryOrder = BAM, Transcripts, Quantitative/Density, VCF + +## configure where to get metadata about tracks. always indexes the +## `metadata` part of each track config, but this can be used to load +## additional metadata from CSV or JSON urls +# [trackMetadata] +# sources = data/trackMetadata.csv + + +[GENERAL] + + +## add a document.domain to set the same-origin policy +# documentDomain=foobar.com + +## use classic jbrowse menu with file instead of track and genome +#classicMenu = true + +## hide open genome option +#hideGenomeOptions = true + +## enable or disable high resolution rendering for canvas features. set to auto, disabled, or numerical scaling factor. default: 2 +# highResolutionMode=auto + +## uncomment to change the default sort order of the reference +## sequence dropdown +# refSeqOrder = length descending + +## Uncomment to prevent HTML tracks from displaying gene subfeatures (enabled by default) +# inferHTMLSubfeatures = false + +## to set a default data directory other than 'data', uncomment and +## edit the line below +# dataRoot = data + +## optionally add more include statements to load and merge in more +## configuration files +include = {dataRoot}/trackList.json +include += {dataRoot}/tracks.conf +# include += ../url/of/my/other/config.json +# include += another_config.conf + +## uncomment and edit the example below to enable one or more +## JBrowse plugins +# [ plugins.MyPlugin ] +# location = plugins/MyPlugin +# [ plugins.AnotherPlugin ] +# location = ../plugin/dir/someplace/else + +## edit the datasets list below to add datasets to the jbrowse dataset +## selector + +# [datasets.volvox] +# url = ?data=sample_data/json/volvox +# name = Volvox Example + +# [datasets.modencode] +# url = ?data=sample_data/json/modencode +# name = MODEncode Example + +# [datasets.yeast] +# url = ?data=sample_data/json/yeast +# name = Yeast Example +[ plugins.BlastView ] +location = ../plugin/BlastView/ +[ plugins.GCContent ] +location = ../plugin/GCContent/ +[ plugins.ComboTrackSelector ] +location = ../plugin/ComboTrackSelector/ +[ plugins.MultiBigWig ] +location = ../plugin/MultiBigWig/ +[ plugins.bookmarks ] +location = ../plugin/bookmarks/ +[ plugins.NeatCanvasFeatures ] +location = ../plugin/NeatCanvasFeatures/ +[ plugins.NeatHTMLFeatures ] +location = ../plugin/NeatHTMLFeatures/ diff --git a/test-data/dataset_1_files/jbrowse_conf.json b/test-data/dataset_1_files/jbrowse_conf.json new file mode 100644 index 00000000..d434e3b5 --- /dev/null +++ b/test-data/dataset_1_files/jbrowse_conf.json @@ -0,0 +1,9 @@ +// top-level JBrowse configuration file. Treated the same as +// jbrowse.conf, but this one is in JSON format. +// +// Unless generating configuration from scripts, most users will +// prefer to add variables to jbrowse.conf instead of this file, since +// jbrowse.conf is much easier to hand-edit. +{ + +} \ No newline at end of file diff --git a/test-data/merlin.gff b/test-data/merlin.gff new file mode 100644 index 00000000..2a35dfb8 --- /dev/null +++ b/test-data/merlin.gff @@ -0,0 +1,28 @@ +##gff-version 3 +##sequence-region Merlin 1 172788 +Merlin GeneMark.hmm gene 2 691 -856.563659 + . ID=Merlin_1;seqid=Merlin +Merlin GeneMark.hmm mRNA 2 691 . + . ID=Merlin_1_mRNA;Parent=Merlin_1;seqid=Merlin;color=#00ff00 +Merlin GeneMark.hmm exon 2 691 . + . ID=Merlin_1_exon;Parent=Merlin_1_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 2 691 . + 0 ID=Merlin_1_CDS;Parent=Merlin_1_exon;seqid=Merlin +Merlin GeneMark.hmm gene 752 1039 -339.046618 + . ID=Merlin_2;seqid=Merlin +Merlin GeneMark.hmm mRNA 752 1039 . + . ID=Merlin_2_mRNA;Parent=Merlin_2;seqid=Merlin;Name=mrna-name +Merlin GeneMark.hmm exon 752 1039 . + . ID=Merlin_2_exon;Parent=Merlin_2_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 852 939 . + 0 ID=Merlin_2_CDS;Parent=Merlin_2_exon;seqid=Merlin +Merlin GeneMark.hmm gene 1067 2011 -1229.683915 - . ID=Merlin_3;seqid=Merlin +Merlin GeneMark.hmm mRNA 1067 2011 . - . ID=Merlin_3_mRNA;Parent=Merlin_3;seqid=Merlin +Merlin GeneMark.hmm exon 1067 2011 . - . ID=Merlin_3_exon;Parent=Merlin_3_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 1367 1811 . - 0 ID=Merlin_3_CDS;Parent=Merlin_3_exon;seqid=Merlin +Merlin GeneMark.hmm gene 2011 3066 -1335.034872 - . ID=Merlin_4;seqid=Merlin +Merlin GeneMark.hmm mRNA 2011 3066 . - . ID=Merlin_4_mRNA;Parent=Merlin_4;seqid=Merlin +Merlin GeneMark.hmm exon 2011 3066 . - . ID=Merlin_4_exon;Parent=Merlin_4_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 2011 3066 . - 0 ID=Merlin_4_CDS;Parent=Merlin_4_exon;seqid=Merlin +Merlin GeneMark.hmm gene 3066 4796 -2177.374893 - . ID=Merlin_5;seqid=Merlin;Name=multiexongene +Merlin GeneMark.hmm mRNA 3066 4796 . - . ID=Merlin_5_mRNA;Parent=Merlin_5;seqid=Merlin +Merlin GeneMark.hmm exon 3066 4296 . - . ID=Merlin_5_exon;Parent=Merlin_5_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 3066 4296 . - 0 ID=Merlin_5_CDS;Parent=Merlin_5_exon;seqid=Merlin +Merlin GeneMark.hmm exon 4366 4796 . - . ID=Merlin_5_exon2;Parent=Merlin_5_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 4366 4796 . - 0 ID=Merlin_5_CDS2;Parent=Merlin_5_exon2;seqid=Merlin +Merlin GeneMark.hmm gene 5011 6066 -1335.034872 - . ID=Merlin_42;seqid=Merlin;Name=cds-not-under-exon +Merlin GeneMark.hmm mRNA 5011 6066 . - . ID=Merlin_42_mRNA;Parent=Merlin_42;seqid=Merlin +Merlin GeneMark.hmm exon 5011 6066 . - . ID=Merlin_42_exon;Parent=Merlin_42_mRNA;seqid=Merlin +Merlin GeneMark.hmm CDS 5011 6066 . - 0 ID=Merlin_42_CDS;Parent=Merlin_42_mRNA;seqid=Merlin diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 00000000..5e2e3a44 --- /dev/null +++ b/test/__init__.py @@ -0,0 +1,12 @@ +import unittest + +from arrow.apollo import get_apollo_instance +wa = get_apollo_instance() + + +def setup_package(): + global wa + + +class ApolloTestCase(unittest.TestCase): + pass diff --git a/test/organism_test.py b/test/organism_test.py new file mode 100644 index 00000000..f3f1491d --- /dev/null +++ b/test/organism_test.py @@ -0,0 +1,10 @@ +from . import ApolloTestCase, wa + + +class OrganismTest(ApolloTestCase): + + def test_get_organisms(self): + + orgs = wa.organisms.get_organisms() + + assert len(orgs) == 4 From 692b35cca3780eeffbaf55af3b736694acf71be8 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 16:55:41 +0100 Subject: [PATCH 16/50] travis dance --- .travis.yml | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 42fabc14..e4a4dc2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,20 +9,10 @@ jobs: include: - stage: lint install: - - pip install -U pip setuptools - - pip install -U flake8 + - pip install -U pip flake8 script: - flake8 apollo --ignore=E501,W503 --exclude=arrow/commands/,scripts/ - - stage: test - install: - - pip install -U pip nose - script: - - python setup.py install - - export ARROW_GLOBAL_CONFIG_PATH=`pwd`/test-data/arrow.yml - - ./bootstrap_apollo.sh - - python setup.py nosetests - - stage: deploy deploy: provider: pypi @@ -34,6 +24,15 @@ jobs: distributions: "sdist bdist_wheel" repo: galaxy-genome-annotation/python-apollo +install: + - pip install -U pip setuptools nose + +script: + - python setup.py install + - export ARROW_GLOBAL_CONFIG_PATH=`pwd`/test-data/arrow.yml + - ./bootstrap_apollo.sh + - python setup.py nosetests + notifications: webhooks: urls: From afdf65e14eb015cf5aedb22a03f3a87ccb1c87d8 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 16:58:44 +0100 Subject: [PATCH 17/50] stage order --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index e4a4dc2a..796a7c67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,3 +40,8 @@ notifications: on_success: change on_failure: always on_start: never + +stages: + - lint + - test + - deploy From 2f87bbf09e35e9d95eb456f60c84e110d84cadea Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 17:26:37 +0100 Subject: [PATCH 18/50] make sure gff file is not opened in binary mode --- apollo/annotations/__init__.py | 2 +- arrow/commands/annotations/load_gff3.py | 2 +- test/organism_test.py | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/apollo/annotations/__init__.py b/apollo/annotations/__init__.py index 936b4796..01670c5b 100644 --- a/apollo/annotations/__init__.py +++ b/apollo/annotations/__init__.py @@ -927,7 +927,7 @@ def load_gff3(self, organism, gff3, source=None): :type organism: str :param organism: Organism Common Name - :type gff3: file + :type gff3: str :param gff3: GFF3 to load :type source: str diff --git a/arrow/commands/annotations/load_gff3.py b/arrow/commands/annotations/load_gff3.py index f246883a..946d8fc8 100644 --- a/arrow/commands/annotations/load_gff3.py +++ b/arrow/commands/annotations/load_gff3.py @@ -5,7 +5,7 @@ @click.command('load_gff3') @click.argument("organism", type=str) -@click.argument("gff3", type=click.File('rb+')) +@click.argument("gff3", type=str) @click.option( "--source", help="URL where the input dataset can be found.", diff --git a/test/organism_test.py b/test/organism_test.py index f3f1491d..c2c67667 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -8,3 +8,25 @@ def test_get_organisms(self): orgs = wa.organisms.get_organisms() assert len(orgs) == 4 + + first_org = orgs[0] + + assert 'nonDefaultTranslationTable' in first_org + assert 'annotationCount' in first_org + assert 'commonName' in first_org + assert 'obsolete' in first_org + assert 'id' in first_org + assert 'publicMode' in first_org + assert 'valid' in first_org + assert 'currentOrganism' in first_org + assert 'sequences' in first_org + assert 'directory' in first_org + assert 'blatdb' in first_org + assert 'genus' in first_org + assert 'species' in first_org + assert 'metadata' in first_org + + assert first_org['commonName'] == 'test_organism' + assert 'apollo_shared_dir/org' in first_org['directory'] + assert first_org['genus'] == 'Testus' + assert first_org['species'] == 'organus' From 4c8cd9d20c4af4dd4428d10649dbd906545bc028 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 17:41:55 +0100 Subject: [PATCH 19/50] skip build in deploy stage --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 796a7c67..2a03efe0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,8 @@ jobs: - flake8 apollo --ignore=E501,W503 --exclude=arrow/commands/,scripts/ - stage: deploy + install: skip + script: echo "Deploying to Pypi" deploy: provider: pypi username: erasche From 7d99275fb4db14b263482fcb72a07fdb98dcfb53 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 28 Oct 2019 17:59:47 +0100 Subject: [PATCH 20/50] organisms tests --- test/organism_test.py | 114 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 110 insertions(+), 4 deletions(-) diff --git a/test/organism_test.py b/test/organism_test.py index c2c67667..cb6f08a6 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -1,3 +1,6 @@ +import json +import time + from . import ApolloTestCase, wa @@ -7,7 +10,7 @@ def test_get_organisms(self): orgs = wa.organisms.get_organisms() - assert len(orgs) == 4 + assert len(orgs) >= 3 first_org = orgs[0] @@ -26,7 +29,110 @@ def test_get_organisms(self): assert 'species' in first_org assert 'metadata' in first_org - assert first_org['commonName'] == 'test_organism' assert 'apollo_shared_dir/org' in first_org['directory'] - assert first_org['genus'] == 'Testus' - assert first_org['species'] == 'organus' + assert first_org['commonName'] in ['test_organism', 'alt_org', 'org3', 'org4'] + + def test_get_organism_creator(self): + + orgs = wa.organisms.get_organisms() + + org_id = orgs[0]['id'] + + creator = wa.organisms.get_organism_creator(str(org_id)) + + assert 'creator' in creator + + def test_show_organism(self): + + orgs = wa.organisms.get_organisms() + + org_id = orgs[0]['id'] + + org_info = wa.organisms.show_organism(org_id) + + assert org_info == orgs[0] + + def test_show_organism_cn(self): + + orgs = wa.organisms.get_organisms() + + org_cn = orgs[0]['commonName'] + + org_info = wa.organisms.show_organism(org_cn) + + assert org_info == orgs[0] + + def test_get_sequences(self): + + orgs = wa.organisms.get_organisms() + + org_id = orgs[0]['id'] + + seqs = wa.organisms.get_sequences(org_id) + + assert 'sequences' in seqs + assert seqs['sequences'][0]['name'] == 'Merlin' + assert seqs['sequences'][0]['length'] == 172788 + assert seqs['sequences'][0]['start'] == 0 + assert seqs['sequences'][0]['end'] == 172788 + + def test_update_metadata(self): + + orgs = wa.organisms.get_organisms() + + org_id = orgs[0]['id'] + + res = wa.organisms.update_metadata(org_id, {'some': 'metadata'}) + + assert res == {} + + org_info = wa.organisms.show_organism(org_id) + + assert json.loads(org_info['metadata']) == {'some': 'metadata'} + + def test_delete_organism(self): + + org_info = wa.organisms.show_organism('org4') + + # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + wa.organisms.delete_organism(org_info['id']) + # Returns useless stuff + + time.sleep(2) + + orgs = wa.organisms.get_organisms() + + for org in orgs: + assert org['commonName'] != 'org4' + + def test_delete_features(self): + + org_info = wa.organisms.show_organism('org3') + + feats_before = wa.annotations.get_features(org_info['id'], 'Merlin') + + assert 'features' in feats_before + assert len(feats_before['features']) > 0 + + # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + wa.organisms.delete_features(org_info['id']) + + feats_after = wa.annotations.get_features(org_info['id'], 'Merlin') + + assert 'features' in feats_after + assert len(feats_after['features']) == 0 + + def test_update_organism(self): + + org_info = wa.organisms.show_organism('test_organism') + + # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + wa.organisms.update_organism(org_info['id'], 'test_organism', org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb='/some/where') + # Returns useless stuff + + time.sleep(2) + org_info = wa.organisms.show_organism('test_organism') + + assert org_info['species'] == 'updatedspecies' + assert org_info['genus'] == 'updatedgenus' + assert org_info['blatdb'] == '/some/where' From 7088e9fb5d354a330c98fbcaf191322272c1cf89 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Tue, 29 Oct 2019 09:54:42 +0100 Subject: [PATCH 21/50] more tests --- test/metrics_test.py | 17 +++++++++++++++ test/organism_test.py | 48 +++++++++++++++++++++++++++++++++++++++---- 2 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 test/metrics_test.py diff --git a/test/metrics_test.py b/test/metrics_test.py new file mode 100644 index 00000000..8fb09945 --- /dev/null +++ b/test/metrics_test.py @@ -0,0 +1,17 @@ +from . import ApolloTestCase, wa + + +class MetricsTest(ApolloTestCase): + + def test_get_metrics(self): + + metrics = wa.metrics.get_metrics() + + assert 'version' in metrics + assert 'gauges' in metrics + assert 'counters' in metrics + assert 'histograms' in metrics + assert 'meters' in metrics + assert 'timers' in metrics + + assert 'org.bbop.apollo.AnnotationEditorController.annotationEditorTimer' in metrics['timers'] diff --git a/test/organism_test.py b/test/organism_test.py index cb6f08a6..3bf04ce6 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -92,22 +92,27 @@ def test_update_metadata(self): def test_delete_organism(self): - org_info = wa.organisms.show_organism('org4') + time.sleep(2) + + org_info = wa.organisms.show_organism('temp_org') # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.delete_organism(org_info['id']) - # Returns useless stuff time.sleep(2) orgs = wa.organisms.get_organisms() for org in orgs: - assert org['commonName'] != 'org4' + assert org['commonName'] != 'temp_org' def test_delete_features(self): - org_info = wa.organisms.show_organism('org3') + time.sleep(2) + + wa.annotations.load_gff3('temp_org', 'test-data/merlin.gff') + + org_info = wa.organisms.show_organism('temp_org') feats_before = wa.annotations.get_features(org_info['id'], 'Merlin') @@ -136,3 +141,38 @@ def test_update_organism(self): assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' assert org_info['blatdb'] == '/some/where' + + def test_add_organism(self): + + org_info = wa.organisms.show_organism('test_organism') + + meta = {"bla": "bli"} + res = wa.organisms.add_organism('some_new_org', org_info['directory'], species='newspecies', genus='newgenus', blatdb='/some/where', metadata=meta) + + assert res['species'] == 'newspecies' + assert res['genus'] == 'newgenus' + assert res['blatdb'] == '/some/where' + meta_back = json.loads(res['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' + + time.sleep(2) + + org_info = wa.organisms.show_organism('some_new_org') + + wa.organisms.delete_organism(res['id']) + + assert org_info['species'] == 'newspecies' + assert org_info['genus'] == 'newgenus' + assert org_info['blatdb'] == '/some/where' + meta_back = json.loads(org_info['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' + + def setUp(self): + org_info = wa.organisms.show_organism('alt_org') + wa.organisms.add_organism('temp_org', org_info['directory']) + + def tearDown(self): + org_info = wa.organisms.show_organism('temp_org') + + if org_info and 'id' in org_info: + wa.organisms.delete_organism(org_info['id']) From 46b72e15262b52b18e6057b83b17d03460cac92f Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Tue, 29 Oct 2019 14:45:41 +0100 Subject: [PATCH 22/50] add remote testing --- apollo/remote/__init__.py | 4 +- test/organism_test.py | 16 ++++---- test/remote_test.py | 86 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 10 deletions(-) create mode 100644 test/remote_test.py diff --git a/apollo/remote/__init__.py b/apollo/remote/__init__.py index 144af79f..356b2c1f 100644 --- a/apollo/remote/__init__.py +++ b/apollo/remote/__init__.py @@ -72,7 +72,7 @@ def add_organism(self, common_name, organism_data, blatdb=None, genus=None, files = {'organismData': organism_data} if blatdb is not None: - data['searchDatabaseData'] = blatdb + data['blatdb'] = blatdb if genus is not None: data['genus'] = genus if species is not None: @@ -149,7 +149,7 @@ def update_organism(self, organism_id, organism_data, blatdb=None, common_name=N files = {'organismData': organism_data} if blatdb is not None: - data['searchDatabaseData'] = blatdb + data['blatdb'] = blatdb if genus is not None: data['genus'] = genus if species is not None: diff --git a/test/organism_test.py b/test/organism_test.py index 3bf04ce6..e24dc538 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -92,14 +92,14 @@ def test_update_metadata(self): def test_delete_organism(self): - time.sleep(2) + time.sleep(3) org_info = wa.organisms.show_organism('temp_org') - # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.delete_organism(org_info['id']) - time.sleep(2) + time.sleep(3) orgs = wa.organisms.get_organisms() @@ -108,7 +108,7 @@ def test_delete_organism(self): def test_delete_features(self): - time.sleep(2) + time.sleep(3) wa.annotations.load_gff3('temp_org', 'test-data/merlin.gff') @@ -119,7 +119,7 @@ def test_delete_features(self): assert 'features' in feats_before assert len(feats_before['features']) > 0 - # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.delete_features(org_info['id']) feats_after = wa.annotations.get_features(org_info['id'], 'Merlin') @@ -131,11 +131,11 @@ def test_update_organism(self): org_info = wa.organisms.show_organism('test_organism') - # TODO add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.update_organism(org_info['id'], 'test_organism', org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb='/some/where') # Returns useless stuff - time.sleep(2) + time.sleep(3) org_info = wa.organisms.show_organism('test_organism') assert org_info['species'] == 'updatedspecies' @@ -155,7 +155,7 @@ def test_add_organism(self): meta_back = json.loads(res['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' - time.sleep(2) + time.sleep(3) org_info = wa.organisms.show_organism('some_new_org') diff --git a/test/remote_test.py b/test/remote_test.py new file mode 100644 index 00000000..4e24270d --- /dev/null +++ b/test/remote_test.py @@ -0,0 +1,86 @@ +import json +import glob +import tarfile +import tempfile +import time + +from . import ApolloTestCase, wa + + +class RemoteTest(ApolloTestCase): + + def test_delete_organism(self): + + time.sleep(3) + + # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) + wa.remote.delete_organism('temp_org') + + time.sleep(3) + + orgs = wa.organisms.get_organisms() + + for org in orgs: + assert org['commonName'] != 'temp_org' + + # FIXME only available starting with Apollo 2.4.2 + """def test_update_organism(self): + + org_info = wa.organisms.show_organism('temp_org') + + meta = {"bla": "bli"} + + with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: + with tarfile.open(archive.name, mode="w:gz") as tar: + for file in glob.glob('test-data/dataset_1_files/data/'): + tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) + + wa.remote.update_organism(org_info['id'], archive, species='updatedspecies', genus='updatedgenus', blatdb='/some/whereupdated', metadata=meta) + + time.sleep(3) + org_info = wa.organisms.show_organism('temp_org') + + assert org_info['species'] == 'updatedspecies' + assert org_info['genus'] == 'updatedgenus' + assert org_info['blatdb'] == '/some/whereupdated' + meta_back = json.loads(org_info['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli'""" + + def test_add_organism(self): + + meta = {"bla": "bli"} + + with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: + with tarfile.open(archive.name, mode="w:gz") as tar: + for file in glob.glob('test-data/dataset_1_files/data/'): + tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) + res = wa.remote.add_organism('some_new_org', archive, species='newspecies', genus='newgenus', blatdb='/some/where', metadata=meta) + + res = res[0] + assert res['species'] == 'newspecies' + assert res['genus'] == 'newgenus' + assert res['blatdb'] == '/some/where' + meta_back = json.loads(res['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' + + time.sleep(3) + + org_info = wa.organisms.show_organism('some_new_org') + + wa.remote.delete_organism(res['id']) + + assert org_info['species'] == 'newspecies' + assert org_info['genus'] == 'newgenus' + assert org_info['blatdb'] == '/some/where' + meta_back = json.loads(org_info['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' + + def setUp(self): + org_info = wa.organisms.show_organism('alt_org') + wa.organisms.add_organism('temp_org', org_info['directory']) + + def tearDown(self): + org_info = wa.organisms.show_organism('temp_org') + + if org_info and 'id' in org_info: + wa.organisms.delete_organism(org_info['id']) From fe816dc74c942f4620208bd346297f86499088bc Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Tue, 29 Oct 2019 15:17:50 +0100 Subject: [PATCH 23/50] fix blatdb in remote mode (upload a local file instead of giving a server-side path) --- apollo/remote/__init__.py | 13 +++++-------- arrow/commands/remote/add_organism.py | 2 +- arrow/commands/remote/update_organism.py | 4 ++-- docs/commands/remote.rst | 11 +++++------ test/remote_test.py | 7 ++----- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/apollo/remote/__init__.py b/apollo/remote/__init__.py index 356b2c1f..f9c367c9 100644 --- a/apollo/remote/__init__.py +++ b/apollo/remote/__init__.py @@ -43,7 +43,7 @@ def add_organism(self, common_name, organism_data, blatdb=None, genus=None, :param organism_data: .tar.gz or .zip archive containing the data directory. :type blatdb: file - :param blatdb: Server-side path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData') + :param blatdb: Path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData') :type genus: str :param genus: Genus @@ -72,7 +72,7 @@ def add_organism(self, common_name, organism_data, blatdb=None, genus=None, files = {'organismData': organism_data} if blatdb is not None: - data['blatdb'] = blatdb + files['searchDatabaseData'] = blatdb if genus is not None: data['genus'] = genus if species is not None: @@ -121,8 +121,8 @@ def update_organism(self, organism_id, organism_data, blatdb=None, common_name=N :type organism_data: file :param organism_data: .tar.gz or .zip archive containing the data directory. - :type blatdb: str - :param blatdb: Server-side path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData') + :type blatdb: file + :param blatdb: Path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData') :type common_name: str :param common_name: Organism common name @@ -149,7 +149,7 @@ def update_organism(self, organism_id, organism_data, blatdb=None, common_name=N files = {'organismData': organism_data} if blatdb is not None: - data['blatdb'] = blatdb + files['searchDatabaseData'] = blatdb if genus is not None: data['genus'] = genus if species is not None: @@ -161,9 +161,6 @@ def update_organism(self, organism_id, organism_data, blatdb=None, common_name=N if public is not None: data['publicMode'] = public - if blatdb is not None: - data['blatdb'] = blatdb - response = self.post('updateOrganismInfo', list(data.items()), files=files, autoconvert_to_json=False) if 'error' in response: return response diff --git a/arrow/commands/remote/add_organism.py b/arrow/commands/remote/add_organism.py index cce90723..fca813a2 100644 --- a/arrow/commands/remote/add_organism.py +++ b/arrow/commands/remote/add_organism.py @@ -8,7 +8,7 @@ @click.argument("organism_data", type=click.File('rb+')) @click.option( "--blatdb", - help="Server-side path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData')", + help="Path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData')", type=click.File('rb+') ) @click.option( diff --git a/arrow/commands/remote/update_organism.py b/arrow/commands/remote/update_organism.py index f56c7dfc..f002811e 100644 --- a/arrow/commands/remote/update_organism.py +++ b/arrow/commands/remote/update_organism.py @@ -8,8 +8,8 @@ @click.argument("organism_data", type=click.File('rb+')) @click.option( "--blatdb", - help="Server-side path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData')", - type=str + help="Path to 2bit index of the genome for Blat (Blat 2bit data can also be in organism_data in directory 'searchDatabaseData')", + type=click.File('rb+') ) @click.option( "--common_name", diff --git a/docs/commands/remote.rst b/docs/commands/remote.rst index 8c8c7339..8b03d052 100644 --- a/docs/commands/remote.rst +++ b/docs/commands/remote.rst @@ -25,10 +25,9 @@ Add an organism using the remote organism API. **Options**:: - --blatdb FILENAME Server-side path to 2bit index of the genome - for Blat (Blat 2bit data can also be in - organism_data in directory - 'searchDatabaseData') + --blatdb FILENAME Path to 2bit index of the genome for Blat + (Blat 2bit data can also be in organism_data + in directory 'searchDatabaseData') --genus TEXT Genus --species TEXT Species --public should the organism be public @@ -129,8 +128,8 @@ Update an organism using the remote organism API. **Options**:: - --blatdb TEXT Server-side path to 2bit index of the genome for Blat - (Blat 2bit data can also be in organism_data in directory + --blatdb FILENAME Path to 2bit index of the genome for Blat (Blat 2bit data + can also be in organism_data in directory 'searchDatabaseData') --common_name TEXT Organism common name --genus TEXT Genus diff --git a/test/remote_test.py b/test/remote_test.py index 4e24270d..eda1dd9f 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -35,14 +35,13 @@ def test_delete_organism(self): for file in glob.glob('test-data/dataset_1_files/data/'): tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) - wa.remote.update_organism(org_info['id'], archive, species='updatedspecies', genus='updatedgenus', blatdb='/some/whereupdated', metadata=meta) + wa.remote.update_organism(org_info['id'], archive, species='updatedspecies', genus='updatedgenus', metadata=meta) time.sleep(3) org_info = wa.organisms.show_organism('temp_org') assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' - assert org_info['blatdb'] == '/some/whereupdated' meta_back = json.loads(org_info['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli'""" @@ -54,12 +53,11 @@ def test_add_organism(self): with tarfile.open(archive.name, mode="w:gz") as tar: for file in glob.glob('test-data/dataset_1_files/data/'): tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) - res = wa.remote.add_organism('some_new_org', archive, species='newspecies', genus='newgenus', blatdb='/some/where', metadata=meta) + res = wa.remote.add_organism('some_new_org', archive, species='newspecies', genus='newgenus', metadata=meta) res = res[0] assert res['species'] == 'newspecies' assert res['genus'] == 'newgenus' - assert res['blatdb'] == '/some/where' meta_back = json.loads(res['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' @@ -71,7 +69,6 @@ def test_add_organism(self): assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' - assert org_info['blatdb'] == '/some/where' meta_back = json.loads(org_info['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' From c5e3ecacc41c7864cf05cf775979bb2b1207582f Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Tue, 29 Oct 2019 15:32:33 +0100 Subject: [PATCH 24/50] disable metadata test, probably an issue in apollo's code (https://github.com/GMOD/Apollo/issues/2290) --- test/remote_test.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/remote_test.py b/test/remote_test.py index eda1dd9f..bb244d55 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -58,8 +58,9 @@ def test_add_organism(self): res = res[0] assert res['species'] == 'newspecies' assert res['genus'] == 'newgenus' - meta_back = json.loads(res['metadata']) - assert 'bla' in meta_back and meta_back['bla'] == 'bli' + # FIXME https://github.com/GMOD/Apollo/issues/2290 + # meta_back = json.loads(res['metadata']) + # assert 'bla' in meta_back and meta_back['bla'] == 'bli' time.sleep(3) From d8992fb773142a2988eac416091999a05f6c8487 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Tue, 29 Oct 2019 16:00:31 +0100 Subject: [PATCH 25/50] greenwashing --- test/organism_test.py | 8 +++++++- test/remote_test.py | 18 ++++++++++++------ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/test/organism_test.py b/test/organism_test.py index e24dc538..2f53ea0d 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -159,7 +159,7 @@ def test_add_organism(self): org_info = wa.organisms.show_organism('some_new_org') - wa.organisms.delete_organism(res['id']) + wa.organisms.delete_organism(org_info['id']) assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' @@ -169,6 +169,12 @@ def test_add_organism(self): def setUp(self): org_info = wa.organisms.show_organism('alt_org') + if 'directory' not in org_info: + # Should not happen, but let's be tolerant... + # Error received when it fails: {'error': 'No row with the given identifier exists: [org.bbop.apollo.Organism#1154]'} + time.sleep(1) + org_info = wa.organisms.show_organism('alt_org') + wa.organisms.add_organism('temp_org', org_info['directory']) def tearDown(self): diff --git a/test/remote_test.py b/test/remote_test.py index bb244d55..017a93a9 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -1,4 +1,3 @@ -import json import glob import tarfile import tempfile @@ -53,7 +52,7 @@ def test_add_organism(self): with tarfile.open(archive.name, mode="w:gz") as tar: for file in glob.glob('test-data/dataset_1_files/data/'): tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) - res = wa.remote.add_organism('some_new_org', archive, species='newspecies', genus='newgenus', metadata=meta) + res = wa.remote.add_organism('some_new_org_remote', archive, species='newspecies', genus='newgenus', metadata=meta) res = res[0] assert res['species'] == 'newspecies' @@ -64,17 +63,24 @@ def test_add_organism(self): time.sleep(3) - org_info = wa.organisms.show_organism('some_new_org') + org_info = wa.organisms.show_organism('some_new_org_remote') - wa.remote.delete_organism(res['id']) + wa.remote.delete_organism(org_info['id']) assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' - meta_back = json.loads(org_info['metadata']) - assert 'bla' in meta_back and meta_back['bla'] == 'bli' + # FIXME https://github.com/GMOD/Apollo/issues/2290 + # meta_back = json.loads(org_info['metadata']) + # assert 'bla' in meta_back and meta_back['bla'] == 'bli' def setUp(self): org_info = wa.organisms.show_organism('alt_org') + if 'directory' not in org_info: + # Should not happen, but let's be tolerant... + # Error received when it fails: {'error': 'No row with the given identifier exists: [org.bbop.apollo.Organism#1154]'} + time.sleep(1) + org_info = wa.organisms.show_organism('alt_org') + wa.organisms.add_organism('temp_org', org_info['directory']) def tearDown(self): From 6ff23194218f81d75b47054e0fef46a9b2a6d540 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Tue, 29 Oct 2019 10:33:59 -0700 Subject: [PATCH 26/50] added memory --- bootstrap_apollo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index 71644536..4ab71508 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,7 +3,7 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -docker run -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:2.4.1 +docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:2.4.1 echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online From 7f1fbda74aab85fba417fb0544d2c8fe4c8712f3 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Tue, 29 Oct 2019 10:35:47 -0700 Subject: [PATCH 27/50] updated for more memory and different target --- bootstrap_apollo.sh | 2 +- test/remote_test.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index 4ab71508..1cbf2d92 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,7 +3,7 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:2.4.1 +docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:fix-2290-addOrganism-metadata echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online diff --git a/test/remote_test.py b/test/remote_test.py index 017a93a9..41609be0 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -58,8 +58,8 @@ def test_add_organism(self): assert res['species'] == 'newspecies' assert res['genus'] == 'newgenus' # FIXME https://github.com/GMOD/Apollo/issues/2290 - # meta_back = json.loads(res['metadata']) - # assert 'bla' in meta_back and meta_back['bla'] == 'bli' + meta_back = json.loads(res['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' time.sleep(3) @@ -70,8 +70,8 @@ def test_add_organism(self): assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' # FIXME https://github.com/GMOD/Apollo/issues/2290 - # meta_back = json.loads(org_info['metadata']) - # assert 'bla' in meta_back and meta_back['bla'] == 'bli' + meta_back = json.loads(org_info['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' def setUp(self): org_info = wa.organisms.show_organism('alt_org') From 3c986b87998eb109737959766c7c604043b8aad3 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Tue, 29 Oct 2019 12:08:59 -0700 Subject: [PATCH 28/50] fixed json import --- test/remote_test.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/remote_test.py b/test/remote_test.py index 41609be0..573f03d4 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -2,6 +2,7 @@ import tarfile import tempfile import time +import json from . import ApolloTestCase, wa From 29a1c56a47899e9a5085507ff7c01f8a68bb2b80 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Tue, 29 Oct 2019 14:17:56 -0700 Subject: [PATCH 29/50] fixed test metadata --- test/remote_test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/remote_test.py b/test/remote_test.py index 573f03d4..6d2705ba 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -28,7 +28,7 @@ def test_delete_organism(self): org_info = wa.organisms.show_organism('temp_org') - meta = {"bla": "bli"} + meta = '{"bla": "bli"}' with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: with tarfile.open(archive.name, mode="w:gz") as tar: @@ -47,7 +47,7 @@ def test_delete_organism(self): def test_add_organism(self): - meta = {"bla": "bli"} + meta = '{"bla": "bli"}'; with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: with tarfile.open(archive.name, mode="w:gz") as tar: From afa565d036ae4937983d02b051759d300f014ed0 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Tue, 29 Oct 2019 14:28:14 -0700 Subject: [PATCH 30/50] should be properly merged into latest now --- bootstrap_apollo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index 1cbf2d92..4a37ff52 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,7 +3,7 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:fix-2290-addOrganism-metadata +docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online From c74a438750bda8afdc5c050ff665db721f19c46b Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 09:58:40 +0100 Subject: [PATCH 31/50] use latest (from #18) --- bootstrap_apollo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index 71644536..0a41c731 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,7 +3,7 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -docker run -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:2.4.1 +docker run -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online From 25c61946faffb6c560680cb181813c41ced20552 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 09:59:31 +0100 Subject: [PATCH 32/50] same goal as #18 but different way --- apollo/organisms/__init__.py | 5 +++++ apollo/remote/__init__.py | 6 ++++++ test/remote_test.py | 10 ++++------ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/apollo/organisms/__init__.py b/apollo/organisms/__init__.py index 49b0c00f..f53e6ec4 100644 --- a/apollo/organisms/__init__.py +++ b/apollo/organisms/__init__.py @@ -1,6 +1,8 @@ """ Contains possible interactions with the Apollo Organisms Module """ +import json + from apollo.client import Client from apollo.decorators import raise_error_decorator @@ -51,6 +53,9 @@ def add_organism(self, common_name, directory, blatdb=None, genus=None, if species is not None: data['species'] = species if metadata is not None: + if isinstance(metadata, dict): + # Apollo wants a string + metadata = json.dumps(metadata) data['metadata'] = metadata response = self.post('addOrganism', data) diff --git a/apollo/remote/__init__.py b/apollo/remote/__init__.py index f9c367c9..df37d3db 100644 --- a/apollo/remote/__init__.py +++ b/apollo/remote/__init__.py @@ -78,6 +78,9 @@ def add_organism(self, common_name, organism_data, blatdb=None, genus=None, if species is not None: data['species'] = species if metadata is not None: + if isinstance(metadata, dict): + # Apollo wants a string + metadata = json.dumps(metadata) data['metadata'] = metadata if public is not None: data['publicMode'] = public @@ -157,6 +160,9 @@ def update_organism(self, organism_id, organism_data, blatdb=None, common_name=N if common_name is not None: data['name'] = common_name if metadata is not None: + if isinstance(metadata, dict): + # Apollo wants a string + metadata = json.dumps(metadata) data['metadata'] = metadata if public is not None: data['publicMode'] = public diff --git a/test/remote_test.py b/test/remote_test.py index 017a93a9..d19b17bd 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -57,9 +57,8 @@ def test_add_organism(self): res = res[0] assert res['species'] == 'newspecies' assert res['genus'] == 'newgenus' - # FIXME https://github.com/GMOD/Apollo/issues/2290 - # meta_back = json.loads(res['metadata']) - # assert 'bla' in meta_back and meta_back['bla'] == 'bli' + meta_back = json.loads(res['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' time.sleep(3) @@ -69,9 +68,8 @@ def test_add_organism(self): assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' - # FIXME https://github.com/GMOD/Apollo/issues/2290 - # meta_back = json.loads(org_info['metadata']) - # assert 'bla' in meta_back and meta_back['bla'] == 'bli' + meta_back = json.loads(org_info['metadata']) + assert 'bla' in meta_back and meta_back['bla'] == 'bli' def setUp(self): org_info = wa.organisms.show_organism('alt_org') From 2b33b158f4cb1875d3af4a5b972f62a889847428 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 09:59:48 +0100 Subject: [PATCH 33/50] add tests for apollo > 2.4.1 --- test/organism_test.py | 36 +++++++++++++++++++++++++++++++++--- test/remote_test.py | 7 +++---- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/test/organism_test.py b/test/organism_test.py index 2f53ea0d..2a107d17 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -96,7 +96,6 @@ def test_delete_organism(self): org_info = wa.organisms.show_organism('temp_org') - # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.delete_organism(org_info['id']) time.sleep(3) @@ -106,6 +105,19 @@ def test_delete_organism(self): for org in orgs: assert org['commonName'] != 'temp_org' + def test_delete_organism_cn(self): + + time.sleep(3) + + wa.organisms.delete_organism('temp_org') + + time.sleep(3) + + orgs = wa.organisms.get_organisms() + + for org in orgs: + assert org['commonName'] != 'temp_org' + def test_delete_features(self): time.sleep(3) @@ -119,7 +131,6 @@ def test_delete_features(self): assert 'features' in feats_before assert len(feats_before['features']) > 0 - # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.delete_features(org_info['id']) feats_after = wa.annotations.get_features(org_info['id'], 'Merlin') @@ -127,11 +138,30 @@ def test_delete_features(self): assert 'features' in feats_after assert len(feats_after['features']) == 0 + def test_delete_features_cn(self): + + time.sleep(3) + + wa.annotations.load_gff3('temp_org', 'test-data/merlin.gff') + + org_info = wa.organisms.show_organism('temp_org') + + feats_before = wa.annotations.get_features(org_info['id'], 'Merlin') + + assert 'features' in feats_before + assert len(feats_before['features']) > 0 + + wa.organisms.delete_features('temp_org') + + feats_after = wa.annotations.get_features(org_info['id'], 'Merlin') + + assert 'features' in feats_after + assert len(feats_after['features']) == 0 + def test_update_organism(self): org_info = wa.organisms.show_organism('test_organism') - # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.organisms.update_organism(org_info['id'], 'test_organism', org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb='/some/where') # Returns useless stuff diff --git a/test/remote_test.py b/test/remote_test.py index d19b17bd..36c8f885 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -1,4 +1,5 @@ import glob +import json import tarfile import tempfile import time @@ -12,7 +13,6 @@ def test_delete_organism(self): time.sleep(3) - # FIXME add a test with commonName too (broken in 2.4.1, should be fixed in 2.4.2) wa.remote.delete_organism('temp_org') time.sleep(3) @@ -22,8 +22,7 @@ def test_delete_organism(self): for org in orgs: assert org['commonName'] != 'temp_org' - # FIXME only available starting with Apollo 2.4.2 - """def test_update_organism(self): + def test_update_organism(self): org_info = wa.organisms.show_organism('temp_org') @@ -42,7 +41,7 @@ def test_delete_organism(self): assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' meta_back = json.loads(org_info['metadata']) - assert 'bla' in meta_back and meta_back['bla'] == 'bli'""" + assert 'bla' in meta_back and meta_back['bla'] == 'bli' def test_add_organism(self): From c82ad2d728dd85d0b085aa1a3dcae7ecfc6c5b74 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 10:43:52 +0100 Subject: [PATCH 34/50] Add failing test --- test/remote_test.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/remote_test.py b/test/remote_test.py index 36c8f885..b66183e1 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -13,6 +13,21 @@ def test_delete_organism(self): time.sleep(3) + org_info = wa.organisms.show_organism('temp_org') + + wa.remote.delete_organism(org_info['id']) + + time.sleep(3) + + orgs = wa.organisms.get_organisms() + + for org in orgs: + assert org['commonName'] != 'temp_org' + + def test_delete_organism_cn(self): + + time.sleep(3) + wa.remote.delete_organism('temp_org') time.sleep(3) From b81efaed55a10ca199198c27c4c1b11f3122a857 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 11:22:02 +0100 Subject: [PATCH 35/50] add test case for publicmode unexpected change --- test/organism_test.py | 4 +++- test/remote_test.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/test/organism_test.py b/test/organism_test.py index 2a107d17..50a96ff8 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -162,7 +162,7 @@ def test_update_organism(self): org_info = wa.organisms.show_organism('test_organism') - wa.organisms.update_organism(org_info['id'], 'test_organism', org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb='/some/where') + wa.organisms.update_organism(org_info['id'], 'test_organism', org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb='/some/where', public=False) # Returns useless stuff time.sleep(3) @@ -171,6 +171,7 @@ def test_update_organism(self): assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' assert org_info['blatdb'] == '/some/where' + assert not org_info['publicMode'] def test_add_organism(self): @@ -194,6 +195,7 @@ def test_add_organism(self): assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' assert org_info['blatdb'] == '/some/where' + assert not org_info['publicMode'] meta_back = json.loads(org_info['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' diff --git a/test/remote_test.py b/test/remote_test.py index b66183e1..e1cdc5c1 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -48,13 +48,14 @@ def test_update_organism(self): for file in glob.glob('test-data/dataset_1_files/data/'): tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) - wa.remote.update_organism(org_info['id'], archive, species='updatedspecies', genus='updatedgenus', metadata=meta) + wa.remote.update_organism(org_info['id'], archive, species='updatedspecies', genus='updatedgenus', public=False, metadata=meta) time.sleep(3) org_info = wa.organisms.show_organism('temp_org') assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' + assert not org_info['publicMode'] meta_back = json.loads(org_info['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' @@ -71,6 +72,7 @@ def test_add_organism(self): res = res[0] assert res['species'] == 'newspecies' assert res['genus'] == 'newgenus' + assert not res['publicMode'] meta_back = json.loads(res['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' From fbb33e4ca7bec4cbe88ae7ce8b80d5c042f69cb4 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 11:23:23 +0100 Subject: [PATCH 36/50] add a sleep --- test/remote_test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/remote_test.py b/test/remote_test.py index e1cdc5c1..a7fefb47 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -39,6 +39,8 @@ def test_delete_organism_cn(self): def test_update_organism(self): + time.sleep(3) + org_info = wa.organisms.show_organism('temp_org') meta = {"bla": "bli"} From 5835cb3b206cf6a9b75fa5e9f82a551dd9a17547 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 12:23:33 +0100 Subject: [PATCH 37/50] update a temporary org + failing test case with sequence number --- test/organism_test.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/organism_test.py b/test/organism_test.py index 50a96ff8..2affe5bf 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -160,18 +160,20 @@ def test_delete_features_cn(self): def test_update_organism(self): - org_info = wa.organisms.show_organism('test_organism') + other_org_info = wa.organisms.show_organism('test_organism') + org_info = wa.organisms.show_organism('temp_org') - wa.organisms.update_organism(org_info['id'], 'test_organism', org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb='/some/where', public=False) + wa.organisms.update_organism(org_info['id'], 'temp_org', other_org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb=other_org_info['directory'] + "/seq/genome.2bit", public=False) # Returns useless stuff time.sleep(3) - org_info = wa.organisms.show_organism('test_organism') + org_info = wa.organisms.show_organism('temp_org') assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' - assert org_info['blatdb'] == '/some/where' + assert org_info['blatdb'] == other_org_info['directory'] + "/seq/genome.2bit" assert not org_info['publicMode'] + assert org_info['sequences'] == 1 def test_add_organism(self): From bcc49aa72b5b355ab06512d4288eabe2f785f80d Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Wed, 30 Oct 2019 12:25:11 +0100 Subject: [PATCH 38/50] improve tests --- test-data/dataset_1_files/data/seq/genome.2bit | Bin 0 -> 43240 bytes test/organism_test.py | 6 +++--- test/remote_test.py | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 test-data/dataset_1_files/data/seq/genome.2bit diff --git a/test-data/dataset_1_files/data/seq/genome.2bit b/test-data/dataset_1_files/data/seq/genome.2bit new file mode 100644 index 0000000000000000000000000000000000000000..181a4a784d554c125c60caf148d0a974e88eb8f9 GIT binary patch literal 43240 zcmXtpEi)}MZ5q?2L2W@$GizoXtNFdX?>X=D$8+wv=brn|bI)_X_jx`yY6ArW z_+r5S>%JH?F}pZFr_klg@Ph>O|EB)GbG5F&U56b!_Ec$o!Kuz|qNUK-78naP#p!dP z@av9jI}-Sw2PpjfY?Eg_$aDPWlUXLdXkBZ%+MUG>AKR{cNe!K;$Is5OncOq2ZFp-# z5&ipMQx5VtX|Yg3XYS$uZC7WQVu z5gH+X-`3f>@hmi?cc6(q(L`EMrq?8HWo(RqL{Mkzo)&BN`xkkmvdj@M>EjLXyq;D$ zi9@%HZE(Jr~q1^(j~G7lq-R&{gd&3#h|6J(rs|$zg{E-{Mm( zyGcvUq>Wu}M>WgU>%{rZpQ2jkozsvLAtf5Y=uc$~60s6~)~&ZO9p=DYzZJG*LIL@& z*}aZN@Fj_uQ>NWAbG?dScBtp|o`j0B@v2(+Wy51uj6_Q>xm-w&Oi$SA_4f#V>&RW= z$hixf;Hc{zOz6*7VT6T>9~8t>_`pT-_|KjFx!yU1OzRCvZL!SnqV#YETV(8*n-&5;|r}Fy(9CyIpU1ydd2Kdq9A5;zb+Q}k;%F!}@D53b@O$ z!j9otw2FkCvHfOydILuaF8tPEquM#C$#F zIpD~37Fi9Mk0u@-n2icDmVhA9PMv!=(!&}!mPNxNd@$hA)E0!*`A>Pc4l z&z)AC93GPP8aw+F>6q(n6Q|tGg*dQcjj9g2&ZVE=%o!^K*ZX^pm7U9v=~|;B!*Nb> z3nh!y-jSW^TmXGWg1TwW@#&nql1PQIsZ;E+s{%h+nK_jTnxb?`6E-}co4Nx^=(uYv zZt*B#?KiF+(8+;ab>+kQNHm#DBuClUe{y>J`n}2IlyO@T$VA6StPa|{459vaE*yP? zy*kQva1OnmPa6M4Xo&IzJU;Yfj`H$UhWQjIl727ACUoqF&RfWtm-(8a!eEyIyo(p~ zMG>b~ENa942B3%p1u_lw2Khb*qrZ9p4pDV@5(`7_{Ssmiya*QG;E|h-qBp$`v?QZ3 zJf}`_SMN9OHjgf?`b)G424v!1P;2YdL}ZVs=R*ERv@?+}w-}j-bo1+!0=dVJ+&U{z z+_A8etwMk4pX4eA5ZIvyWo-CKfdL+sN{a55N?yma4Fxwqzx9w1ca_F9RrY19!*V1( z=fNzcJuh-KK&s!&5)1<2kNh|WUnszb%jr$wI9bjsb^hGC;&Sb-o*B*>5w#9as$ z5In6?;3MsibkK9}q@{xLYxUgyE^rGs`%Ed8u0V znhIqTYXBA(EX`q;W&&*(nkvtuS#xfynVS$cz2!%Od2a!ROwqHF3?z)`TrdFFHJl-U zwDwr^T>dVNWRl2qPSH6e$&;>u3o=EgF@cbP-U)xtMX)>FfI`8GNlRp7t}&?f0(t{V z(#+m&<2Q^C8js&z#qKlg32_xCc?+c5mwpm|-xfGX_3Lx8$KB$ERI;J9D;XiMPzTWv z5zyT2L8s4{<0~v34FyVriaV)97mMgfjk6rcFmKly!v-89c?b(tQLckOn-?V_+Cyf} z_2vy?EuseD2;gN#m*7DcEMrK9`w34PD#r^aDQ|`!cWTMYP?=E$j)VXwYhQP&Xgzd4 z&;i7rk;^G+?)`VDz&EC7w@!%Ln;IGu4-mTT;pZH+a1{V{LV7zf#+7|&60J~=-jb(;(xKZ^Hrz?B0+Q? z|M(G8JaEgUi)9Us+!mj2J+jmxG}e83;PmHZla~|&N7k)#Dd!7k*~!>%ZZECHw)=8- zu>od=f*m_so>9e;P_sy^FdUs!yEIo*5s2F7hT%)-Jv3PrCxw=C5 zSdJ~UyPUty>hkY4?llli3I^lTe9MY3r&fO=kOXFSy;);wVb@zTWD0MtIZ@G^|JY-) z2ElvgHn{()cJzeXheBNolJLAOBF_8BzV|;9jn-MO`bcd_Qe^_@MiR#C>1$oVwvyP5 zLHdng$orC&F*y5}{wHR45KFO0L;StkIjB(kwFZ2wPrb9~=s7qvc>rNK5f+$9X?u6t z`TM)o?o3?2==Z@S#bxybys3E(FzWYp;LKA&zuxv6C(HiNWE-X#Njd4lU^_AtsFuj@ z(@v~g(Qz~0J7FM$WchIb&v)lMGF^z7Po^$RTcKMAY1+|DwTP@l;hhc{40`me9|7Q+ z$R!(}JG4IlwO4|qhdq(tiFHKlQTd*YWlgv=!9$uMU?6yd`tmDD^v8okWFkD7|3V=T z8`2|^BAL}h4E0St z8bBVS%hMJ@%2;}ep1YgaH3@_eZ-c%;gKGUl9A}z(6b%R@-o?r;l|t=W(3p-ys)3i} z7IN&wTRZYoq|0i$>XL|%MZ*%lSIqV+1Xc+@-hK^rMN?aI?UIBLa6hOvAu-QW9)R9r zDQ^1H>q)7Fnx>CTJ9bw%0 z6Z-Wx=!y_0a0Ts8D1E*!y%UER{iazq(3bM^VlM=ii?x0y&LR)(!QLwrfarH+t+~JG z-t^(q)ukIyYgi~O3A{pb^T`OtbSc}S{m`q24H*+|9`aDaJ%YybERKq>u!bq>(e#S? zw2yb zpmwpjwpHWM7IH=Xiv(9I7|~qv32s;-%_a~o=sf0qcFNhrC4~V<@OxEmBeg&#t$hyHqs7KV<+1s?~QjR_#vaj!KT|Jd*55C z(m9n*q%S8N$0_4AP$Lfs9g?Wj zB9odfQ64wjJt!WfhLyFawTJUCIunc#9-=k(pXdkAc?eCjLw5a&~hB0|RdM;N4-i z+aI|sRdZi8h++BIu=#bL-VeH{9{6~SC|`m$f@^mVw4&Y{gNzKKq0XU!YSR*U7Nq#F zFZk23A^n>R*usspYPZ0Cc&IyX?9Xq+;9#LvVyj!Ka%_)+9ng>^HNnUH z4Q)enC{4aeOmO6lGuus%L^5-duVVDhsQp$CD_rvfS_=%KwmUSGLonF6-M4dWB5BzX zx~cC-W*e3uktjZZ8_?$nbqCy2sb9LUu(;(e0RhYvv|sB1-=zov-B6>?1#VT zQ0$S2XNf0f+iT#%+?fTVy|sZ6nezd@EeaP_`)Tuq|JeK?(qp4iQ>Ps3?zA`ydd+Ei z?Wz)BZHuctjsR|(Ssu>&v?>r_TTZ90MrZy$;@sfzhsLg3dm<{YVPzzua$Y~q#+W4` zX_`>By#paf`I&qs1;>E$iGXE+Jk2bBE!G`Pq}rsizs-=GTY$ihg2wW>pKM9jG8=`H z|5Vo4wgP{3guOykJJmhjhE6YkOu6QIaT?poS|7iT3t$EPe&@nw6bV?xK>X>R1 zn%DXe`U2RA%)WpTKp!r2yXYjP2?SkSH+}wkS1Lz;T4K(PfW;NQbZ?U) zGIKn^bG=bxHT_y#0Nq_2^eq2M76}TA(rf94RAul}JH+q?#Bh$pMPd;7E&nl}H+hQw z`IRUvxX9#3TsJlEN(4P!HwvWm8M#I}^Jt;G{_6G84=I&Y#S?gO%gNQD=g3pHpi?*h z_R=kxXMWcR&?OshK*dV7MlZDGqy`Yo8 z>zY?xZZ461lx~z>IB~i=J!4y6f$ZnqZ?_&^JDg*7o!d~E4W0Ctr|0L}!X>U-wf)HN-l*`{~>A`^B<9rfx`f3y0^=m5;aV)pA-&j##gRoV=g8$LIPxT2f!Z zB{Nt!Rl?YsF_il5(g9$X3&!MJx_N5}0R1D^ak1q^N3hcpR0jy*ERe0+QT4zx8j2n@ zb!Iai(xmSNpdSSJM8TQ2ZaxS}rwu(vXD-+zfs+|aKlfB5!KIh`O+C@AqX zpg@=6Lv<+WhU(X*F*wGi%oJLo;UoYF*1BLUOAEfNk*yn-sJ`*JnCdy4X&j)aZ^ zA)^!sfb0dJ90wH4jFvP45)1B~xd8ClGFs~WkkmJ7W${r3t!0?5Y|MAqKZ`P4GZYv! zQNV7%tVLj-rVdNz1%vq8hZZ8G6wWh1)a3rK-zof;2StHjbzZDye>{8p+lnoi?AJs3 z)|8?{?4TzwzwHBy!j2tUQ%pozbN5;7-(&jn-GA}dQD&+iy6&qO0Fw6}!a@1?zegv2 z!W4y^dQ<~qI7y=-hjMI?uu8kucYo(lraH?{tw!1 zC)-z2x9)qyx6Ld;)bCMCH;NG8d*r4Uh^8Wc(Ce~g zy=jZp!ht&**mhf%>De!$TC3qD3fEJKbPBVkxovX)+x7Mu6k6{<3j*Qp*uuAb&kJ#F zxww@QrW}G?0gBEuYG6mEb#>T`G9>VhYX+1^VFM`850ocv=$CU3MQ(sU0C5CN$-0lJ zA4YSj*0zYIcl|Tn|CmTnKx%+Enh4y6TyA!1@MbHTxrsIw&S zWEb0-EESWCX-{KlqP za>o%J%Jr}f1Bk8ik4^uS8tC^O)QiA;J&39Nbq5ahPyJ z5&_{P%i#=y!xhiEtN~=EoYj%h1VmgaDi>t-LtXkx+WMJ{-Ti>9^j^Mg8Wpl?-W$+` zcD`w#Sz7-v;70%TPuNKZaUY@|0u$|XrI3HSdPDw_P*u!e&c}>g9rDfe#JVGu$!CFU z)8JOk!n>^8VnOMW!_GcyaT>}|=A6@a?_u9@p>CX>o(iDya^;JVQe;^LGw97?BO>RD${};#@#?{v!HlyoMd#WQVq870q zG^h>csFrJOxL$g0;c2>V!fO^R$f+U}o}BBu{7&)lE19*w2KGa%uGGmndnw&{8{8if z*3jfU9vb?GB`YnGSyae=^#a!1^|3B(>9Yiu-}J2E$t3RjSWR=z(rdIk*pQl73S~0g3dNfwN^pqg3P&)R*LXh zwQ!P_e*Fk?Z%Vsw#t2BZ+a<@WU#?$uM zx^F-Ng&+KGD&w>cwBXdkKiA_!Jg3X=ycPQ79{TN%rP;%s`xAQz>)Tuo1g8Kiw$Zgs zKoP26n+CkF($HQ1ZA3>g04n-GVrZt&UC#^X>w7!oMxilbhVJD(V=El{K|7nI5fpUf z+X=NtxM6+*%i`|y0O7Ea$0Cb1M|EN-odT~d`Z)O=!yx>yWH3fHp*f#kK&te!tO9PS zT)YMF_qNB%AJ5H{PWPp<^4ieBuL(mg`IfQkJJaepO}#SLuva8>lJAj=R1+w@B;?s| z%M)06Ww6aqN3$mU2|Io--`nIeUJ7s85-Z{Ac~SaBG&}X;cduJ zrWl|~s!vM<^&*c3qJ`R=*7*~n%R9Ml@3IJspvfdzdO)v?#$zp5!Wg(VHnj=Yqw^h^ zwdsSI4oyZ`96>Nfa0c!~2vLmK`wBYOQSf^#7xo*(u@@`~Q=}r;AAO)@9hsJCz>2dX zsRgk&%jkIM0diCkoToJ(l;{^vQlFyGxtVAj$NLQgl+>H+ALP5B`i_2~&o*R@f)jA9 zS4<5b_LJ}cx|6?YO+Miy|Mt8LNt>NSddL#vKFuoKYIRsXaYXwjv-?1RE)~~~33y_I zg4BE64pQD(9fDTwj=VpO7Zik6Sb(x%X;bBi3P_?UAa=m{HPC|5%>i}|YGm-D;3D7N)mNE5i>{y| z5P(ob;z3sIp9IlG@K_LhiyEJyfFxHO#FbGO!DSk3%Cr}-7r!ofTPaKgvsniHS@mE) zzR~^6R!0kZJs>9Zv7I54WS<5_!8yZ==Xi?c=RgU}4`G#UbN^(oOTGw+hQQ1q9Wc_) zuY>+u#*J{JAeDb=k@FlGa_4Ik+dl+_$q4K>hXjI3bAtRbAZ>!|g%_E4QkW%OGt#vz51EE7j}-!{B7w?&aT#S#LHH+r$2Tvw3C z=00z$vijLv=$2n~e%mjs^LCBe3P*Gt#4bS5sz9>#d6ncpvQ+#D^?;Jn>+eazew2tW za_YDE|6_V1<+Z(Pr30OQ{?`1LBpAj7h4MrkOwIW_!2h9rglDLRdcqw{?)Ep7Zn$l^ zfWjq_wcLWX)I2&o8LG{*jAz`Y8!t^*+KP@uc0JxRuTa<~cG5R=KHuOZn3-G249D#0 zqvz%(Y@{M2B1JazRIecQ1R|J_lfH!QYkP@K@(kJBYDF-`+B%`jwo5g+9tFnccJL6r zmoyDMz(Y9dTd+U&@FkZWzO|+~IkUpuW zvD{}-AfYYWxj=UOEn)gy7Hp4=V_fLL>8|MlZtC@rK?|84=l#8;OGWa;&}Qm>1Vm^q zGRbX$)UH(bG(|H0vvnqNB6GWY2fzQCqFL?ogX;PErvy4POSXoQ&14i%_uNuCl2TXN z{*=n-vKcIpTJ=g#+y9CPT#*u|B7bz=;k4coV3Ropwi+lV8-+RQF^#- z^6`Vvt|j-Mz*RQzPEdt#3MjGuKwt4&3k5T`x2OeoK{qKZn3n++rA8W8UD2J<{kACE z4mv?BZA<*v-}z0lydtNW2uq#ZEi8SdHRHO{Vr@wCAuRDVYXBBVl?>E$nddIh$G2CC z)jtky*at>M3Yc(sAFFZ34%~9BXvVr#h(g$n%`(WoM&`nTwXFw6>=K$UG zpBF^r#x_40#t%Q8Ghn0|i4;8JwA$HH$?EwPd zsQZeTE0^BzR5(JEfp?$A(Z}jghnbk^4pl1%u)l2>CpsRhb-{uTfIC|SjbW->zGE3{e`aTE>^c%pv(l_> zm`qJ9+QNY|_e~2C?brErsI=tfejLp{Wh0lKWW5*!r0_0hYi1I=Vw2A5&IC^<5gsF+ z+Q+i&;tBnmD}+Gx(Bhk>5NS4sM0aI=oyVkP6*!2qN@lIvj-I^(KFW5 zjj{#&aJ)l(w#_&rX#6gB+^8N8|K~-xjWvMw5gpRMk$t(qZYnuwwjQL*rhm=2`36EC zs!GFHRfF0~#!3VUr;p#y&mGO6_ZK_##V8t22aUe{BdEO1Z65H^>Yut8bp@3!pd{Uo zb)Z`y8tgSwziM`0?sk0X(+a2#vM5hn*wMaK>(|G-V%$VQH;s4_Zp|4PGst zv^3|9K}h}uSLvzmEHl~8%b*9XVd*%|N^Ww-58gaG6fA?pYy}zf5&dt~ut0|Be&}%X z``#bA21g=*2~r0!6NU~EzvY0Ak}S$RhoUZQ+!Jt@y;hvc8&2-GT#`%xc`OUjiXs=o z4UxWN*85m~{Z{@YLBG1;woNH##7Y*Lua39VrYuT41K4+>W~wLzjGyK}AQK_%P{BN$ zvtoGB19}>2#HSCCfo;m=xxk%z_XO@eMR?W)`H1Uw$>!%)aF*_BdJ7POdC@)s=t7J1}HM2@hYz6fe#f0x+9^OJo7B<5jT8xNaH z5qt8EdcWRNO^@-NjBkA;or^G>JVT2tS}o}I%E)PPJ$haMJfg%iM+DNe;P;J!A` zhGg~nKn^!IbDD~%-FHJ&s2`&z;hQxR#xFtcN%?KS;Sm)GE>ElO3kdJy2Ixh=OZ!T{ z;%0ZgEm}*@euLR+W8G_0RmTx;zs6079p%EDl~-RK_;n3FfMMnbijWC*C|fG;tFBmJ zmOC1{TbhD-T=m(Vcazcur}j91r5;5>q=whb{i0A4YTn|uw1BfJ@tV)&juLj&xCeux zhxk}C8f=?|=?9qB91aV}W{MkFb z9NsS|V`H^nGU(n@pbEwvJ1jNDxHZcHVK#C)qq#yM>RFEEFqQl9cwc=Sb{);G4f&t- zOcOUd&1pkKy?=Q(BAiEVnNH2LL}fa}UEGA@ux4(5EdBOE5fo6Ewj9uuRwX4Y(rq$? z&aqovP5KZ(^g|PP)<^WmjOYr20|fz^H`&o$rkhs1nqjoISc*&=ZQQC1YDhw0coExe z!Do7x-aB3(DM+v)%lS<9_}p0!qj13Po2ekl`LfQ+X@H{v1s2oHIgXAq%3-5$Vh;$9 zA&_2{PBAk+tMpK_myJ|BSBtRu~d4Y{;SCpiq(Hr?axRYRmNQ-B<5_K*N z34i0DEr@b%_i1nJcp4P3N5QB2dbBJj&IB<^MGtw# zChO9hYX)gp>#S?7NxbtXJ!1pLY zzI(J#hMuIV}1#m=iZ<;EjfCMp}yg7xy;tTnZ0c(|wdNRLeBwxj`R! zJ%DNKM=D6~uZSnJzb^156tmFb%axR1tHllW$+UZ!MQL0}T`sB%j=7F7Tib4fe-XBbVU@C`n z+1m}N?ff0|MsnSy1j%%i$aMySB;)Hvx>~iIovHs!Ku8%3PWuT$80R#B)!2oA0a!BN zcAfw<)=0%nXfRd0=fE*JxD}a?xF{m69hZnaMxsTqXQjJLF*+$ZT`Z#j8wS0JS?0j@)0GyEUK*u1|?AckbFoBWZ6_~dJ}-Q zZ*78;_CP;X-_s+xxTorYM(OAhXz5 z@5%r+=_^2M_KY6_+8J|kvarL@d%-!^NIzYjnxk=^;1OJP!_D2KRMMIGbTA6iOO^N0 z5281)x$8NlzTyvPkZTLgWkU<&ZsK{m?3js5#GXJ}1rJdm_k5Jb8qV)+oKu;>O15V2 zpVHC^?kD(`t==(mB1FFsJRLwS zyMd=*`6v=Klv=KWbg=&NKF;M&%CEHQ>Htmt86cPdi^n*x}E)2CP3%R|q0 zUZIzJRHB}ucRKOv7)X&}4Hc1YRV?p%FsS!4K!9E!9|Yacb~0q^_7-*`DPKSucWTZi z55l|XJkZ^(r22o&t{4$w{027`c3I0Z9-;#sh0OGv zj;c6j+P^ocq54#-YxrZVlsTy0pYzR0->L$A%AB_VMo;k}+*-p*iQ8xgklw0Rcn$2cad%a5K>46kTh{M8(k-Cy9-iJtvVP&yTe15A z$Bkjfy?fIIm@)W_x59El^R*4VAf+*7o_dz`2)bkXR@4^RrNk36Vt{SZrpRPTDnEw1 zW}}2io!Oy%b{C-UpF6~7A1fU2AOmUHZ{*>KZY)dYFW(<`k!}jDvR6L^APs>T)|s-; zIl$+BAnrFwwMTuCWQFQ%Fgle~+1vw6@wC6&92^k94m1$a>|(Gjk9IY*1hKgxQe_r5wLA{Fuwf?y5-L4^17Ke!4fJh1&RZ6 zrlPo06q{LCYHH`Nt{SM7u3f%|r+J`H)h7AILmc1q#6?N*ZA~|4Q06#SL}xHev|EYm zpc^}^sbEwBXf%jjGp)R;#MNwGL+9~4B_QjbIZ3$HS`)oGAD^wPI5y(0Q+Rv7gKksV zK}nCIE-QAnX%wq|=C)-GFFjkan8UK1q|BHB0GoenW6@f?9G!fJK)rEk$!k5pqdu>fNo&HOwhJx29Cut};k zZ9@oF0(#ZID95e_*T!?eXLTxtlSd9i_=|MS@(Bk;p5<9pdFkleA>ldRsDoVhgKUP6 z@dr(pa~26qW$8Z!@8$IaW76L7%UGo@rZNP-Ps-zC{=sez z%Ow0yL%hYgp8xW5>o7pD6WRd9nf`78B6B_Otg`VAzzmBegSHQW`2K1=gXwc_*P?GG z$va02Xue6~q*3f5GIm#;PD;BCI*$KC+$Hh)rDA0bCuvjaPlsxjdQRmc(;v5hHKD1* znd5+^S+!t3YBV<}AcFV{hZmchOqAK$-Kv3hBwg0$JF^3P9B!^F557~zv|1TAII_dd z5xw#p-AvMVW6srivB;GAL0g4RRYTxedEZoK)wXxb@8MQMoE)~A@TOQKm^G;^engnb zx&E>)Yv#PqbNEDo?WZ)jb~F^Y!nyM&{(}cA=M;1e!`W3OU44Jm>eWa~D+YA_Q2pR# zaZNX*YB@^IXDQ*g@9SwUS4sSb5fkfW%p31`l~}Vn*=0lH_K;Um{}MT2w1aNzs%n=M zOVRxf9tLWOvWVn~)}&u{%@dNMs)K(j`81X<%JOqPz$?|1F15O8bYje{t9p&^kr!QN2fir%r8VSVhoY%m#x=S8Yrbglg3B$sxi=owyJJF$f}RIk zp*|^kBZKrg5gLT%X?#z1gk)Pq{p_$T84_sCxaCRcJ<6$g`kDDL4sAdXy<_T_2N%4n zdUkIIyd8O$w)pfpr^+MxF#w=?_k$XgBqa?|3J#<#m^{amq=Qg|d#mg#xmRp|%Dx#mRtrz5W z$)4v!7UOTLLMe`iZ#$OSt7VR={GQQfy})Vf2fkEoW!wf<-`>aMfXtF z%bvQP4X384Vo2MazvP{6=CiOdd&WQnft5@8!XPr*JF`@rxR-7Ov*xA#zu58QUxxF; zl08rG;ccAbn*IkN39xO4Ldoh*`lw2q-v`6Teqp$KKv}I5K}lTV;VWKXd1BV2W@mz9 zkxj>mBm(_U+dReCY_I03k7)X8>AAaxs(j7;h&HfXgHD{SxhBrKrc)?GCFk0~QrW1R z;%qm(D~oBhmeRgV!0saM9*R+c(q0;9|49{q^hMlo(ZTv;f_<{(5j$+69k5pZ2{$iD z#dx}z@Vlii1U~DQ;ohnIpfEp^!&UYG9&WVz2(uWzedF`ZAaUU1%C4Wn++sK}duc99 zV~;gUx3d2Qh=1Bx+H0izeNia6ogcpSSKl-L28w@N@ALYX+iqSVN&9o*Sn}6R!J|_< z&)Uts5JLXVKURMN$;!JWL3oVtcmzrPErXCG^HzU}RJ-C`1c)B(p(VVpGmT$!>C)SM*DBr}TPj_1i4sH4?4rwDpq-EkjdvK2o6nV8pkW9-?x`jX zK?m^H$rD`!gwol<D+QA#nx8t}bDs=K(&$-Ga!z zP3~&!MsTzig&I?PTN-gvyz32R*JHSpuXvT;-U8C3FphN2u8!zM4~sqRqCYb9P*(>aCQu#APk*Ytau?B zy7z{#l{1ZwX23r)bcoA7E7ss5aVFLaEtIzm$q4Ip1Wq^sS`m2OmBdW)0guq9_4}tF zKDS2d<~czPu^MB%sfHpRmIR8n+wCg&^8F>;q=g5=<+t1wVtcDvmC3Uz)=?>2GNN4_ zWS=g$1{YuUE?2vF@7VI<+%$_XIwbq!+*omKQlkme-TK1uMUrAR{(~|8i^g(2g#Jr% z@$bAU`NeR;jysOHd(FQWAdd}o<#nx^NVO&_WrJUEa+AvsYR7SsV7_j@X}f9coX5L} zgZ~`JC>ICMg%gIWFiq&_VmB{nh4=2{qQ#u(@v0j}_NqN;$i3w=<@28MnaUm`ClF>@ zAEM-SO{XcX)yg+Es3C7sv1LFG#Qe`Z>N8z5({*EK1wC!+P6OXSEyRFYM2bJrWIxxs zcSKtgIr15jmQ;<6b#+g^=AnnVzo33W#O*GT*s0&GhJwKD-S5tafCRdrR!H4?LaHTp zJp}t|ioEeVa1#-Wp%rdl?(#C9oQ5E+lqP`xx$ihM(-iacCrMXC`sU(_wC z1^ioseB4JI{7Y$n3Wog3E({6*5hD=6B9Og(Iz?Jlr8FfS=))0tRh!_p$f5m#L#OGz zC$IwgODrg|)nIh5N*i=dl|{s=)vDIT4^i!;xc07F{w@;b%VWQI7+pOUx0py3UUwr> zBf(y3h`B~Q5yq^{3a$ita5DlQ;q~gf#$63Ym-w$X_fZNBCx`qo$ zkP!|fGQwE1{oQ@8Mf~mBYGUUaI|JgTIUZ}SQ92}q(?3DnMrMPhGgVr(TBPzvn&d~1 zRAUX*zDj>>8y_ryd*IH%mbXQ8F(K(=k*(^eIgX1%4Q#I{gauFYki-d}lu94j-Jw8g zr17f?5BtY>BXL!g7?KcQ3vJSj%R*H3#0_^$;0lY``%)t&G;AXjsSh)c5I?NnC@l=@ zcAV@Sw#A!%gMJ3|1MWNSvtqD@tNMsHUB$AVRfUmjLwGaep!rW>s5$7tvR&_IWvja8 z&EF&9{f_i48;>$r3#DpAkO~vLW&Y7CKK>NT^aiez#Ykq{1R&T{i1DrRY*ny^)$2Oy zotmW=8FvslN{Hb<3M(o2y>xW~{!4CP#M8FY!CX{}%a0(b$Dtb6#q9udB(}Hw-T{7E zn%eT3MzBM&#XOX#aNCDS))#%I9jJR~7wem_-PKz+Cq6_eZk^4kJ7BQ|uWEcAnZ!jz zWOR2uH}%L6eZd*0Su;7x84*Rr$9eBMnN=amYG0Zlt{g3Z2^_LiHFu8SU(V=E5Cm(N zT1*QMd(fm4JZC0pyq4Bk2t3+A0*wAg_~$pnxnVMkhfG1(ov+kB!j{<2 zKdT}>U0QY;vk1cpOJ*$^cXLt0uj@co!T&ZBH}IT_gpdU;awQBu&b8Tf2rybx`o@ZW zUGa_i1&e+O6JD?Dg_>C62ve9cs{Om^`=CvtobV3dq2#+Y38!0TpNHAG4es!{bSY4& zJ=mgf8@l46XRlh&KCUd+%xoVc1zwYQt8~C(S#pc={&=M*cqQm-fUM8PAT@N*>9kcm zb^!*sW&ysT|6!RJG&+cXqYzvzfiaB)&KpAHFT^pq(wx)|ngsF~RXy+~QmnOFaBK%? zRvB86wOUEgrc}AneOg;)0OvxPfdzr@mBq7Nfw@_(6V<+VR;(Nm-&rR>mPOKP{g!Pc z-qxT=P>`{Z{jq6~d`|zqru2roi>WTPYr)hg^!6nWM0L{+K=vx-i6bJrB;pomBZ-V4 zxUSL{|5MyiD|N925p*m?sD>N`WWAezDN6>ufApPw{|Y1bQ&xcPeXCP@dso>=b)H(b z;!NBi{A7g;{rYL$%PZ{?wR=Y3SzN+5HJlwZj4=p&XoBN8r9Rt4buzhyfTIoVg$)sX zfi-u_6EH#5I)T@j^G{oN6;7O%%EgoXI)EwIwVdCxfk9w@c@_W3^^V=f8c0FJ-`q$3 z&>!FRB!FON=h`-MddS)L_jZyJd0f?4GHcVd3~g*7*DCU1hG_gp{@SDM-3U^a9y|Jp=Y(zPvPU z2M+vD^Fujy>}uKv%nBo33%T=o{B@uL8T(oh4hf9>K^ekvTcr@LtiVN+73hJ+uGbch zo_OO+8z;vDD=cz*-j3Q?rRcHhiOn*BTH`zBo{LvK`~9MQ?3~oXVWcO;B0GrpZsEYg zq&q2{3a@KSY4IA6dp@m4c{pf_ed0zSf7f0>}EtrFjT#7!tIK6S)G(=*EZUG zV56HpiM|@W?(3f;PPU#_Bz29G8RG}+DEzRNMo}NIS+yU7T70Z(5zP&Ct0r7Z10dqH z5r7AEGpU6d$ckBjZ)>u0X1WRGukwNCX@amdKQlwg86Rs#L~&dQRS9BOWQv? z@oWSUnMhtZfrTe+N=i+J%OHlxmxLvZ)w6mh{PE5Wf(+ z&Kkj;QNMa~t0RSe^1W{KT57|Kuy5o?Fl+>?XS0b&nt}h~e*N+#KB0W*nrJZh3*UCs z4$Ovkf34PK`ET(KN6rQuThcuby|%{`s4dXl9|17pzajzw=aEiajj5gv(y91A85@-Ew}0&Vk$0^Y>LByoXd)% z{2rw>p%zbzeM`tvwmWP&VsDp{fC-QNbl{oH1%FpoDkj06bMzm(>61O-iu%`i$}x}n z+`qnx?F$dK0#6z#$3GF8Ri=S=oPRuwy@gEh0otN?{s+@nHOf%pxB{ySG`3FD)>3Mo ze}Ri4?ckMl(h-l+cG1&5+V8755#k8BWOGN`E>k<#i!>mSfie-xMrom}E7>zFjtF&p z2%9((;T*AQ4;PJz>6=crHb}9rkps3O?Z-^goB6_t_&Zkv9!Wj3noTd;MaE`ui7MNt zUy+c^3=r#Q7bG64rIvYD z4c#JtHRB4xyQ_WQ3p?vAV1MtTao*aPNL`L2BJ(RNu)Sqcy_MW0R}FJRKi&XA2Mjj3 zT;j!HB9A>%{vW2^Jub=n|NmD|L{dD^3=s{)nPNFJ=kOBAL#g>LY_;#+ty*bXLoBm$ z&6#VQLL>zb&5X)G2rn)Ul9>@%6E!m{kJ~b9MqtIEnrZ7`ZSNnS|9<~o|GaLu>yOv# z`FuR@kH?b|!w@j%1@Sun4Cg@9NM>bxW7;mp#}6qq#tP@?u_f#kQY!*z>`Huml)PvG z`HObXeA`hbJXHpZU8Ivjobq+hrnKnlB6honHp zGq+mfoUJ}N@5oeA%~qp*`XL8R;flEIo=(+SYHtdVam!$BEfar>7$uR5EK!3o#m{UN zluxfJI}b%6&C8ij!wlvP?vXpUVyAztW6>5VJ5^{{2b(FB0t{rbJ_<?PR1HjbsU$@vgBOdPlrvyqC`*>=E-x*($ep>NTGg^EOHqpjaM6dD2uZ0tp2*w z_EX2hf2$W4JP*6a8;7PQbjBq+x|}8c_6~pRJJO__nNCnc_e-Y?@$%oQ;yjQ;lv&EV z`rQKEs&~{`K?0N6JY*}_54>~R8ou@_4bA`Gc_`{l5iCtn`&?A}Gx$?7=KNKX{0cZVp~WD79)OZZU~hYG}3< zOS!S|$eOQvS9$-lBywiSM_XLQY))J13d=cgB!*yB(9=Y;_>>!iq(S9@Yl$V%a9lrYd(Pl7AeAyyZI92r{g#X zxOu|2Gcc2HcaV$72IeUOa`+fTPnpDi-r9dO4jFS>DJqdT3#RN|uf0*~T^hif)o)+h z5rDqRLFFH6-{N$80HKe#ey{4e2a5L&mR-IoI`U*U$gC+=9J@(={U%W3$ z%0fGSY~)0*ZgJepidkj6R+TB2{)>_>?I?*~+e=;s%gIT;BY2P(TMBjJW!~|2MY#ia z#^EdiXF4n4)jN}kVi_SECT4b`n(3m3agh`czEDR#VRO3aB~rKNmGo&8fc7`b(a zU+guNND9pOlHX`~&Z7xLzdm$|M_GDm-o9_(Dr09YewVgdfn`7ITwlC-0 zYOr=O)AK4*=D&$vCVnr0VdQ4t~Q2CFsyoFWgQKScY)5*`tW8sNOI)-iNJ7yVJOR3HDS9OWlnK^8 zR+4)Yl;^|>y)0_f9rn6!z<5s8(V zEakeE=WCFqqm(anfehCLkeH|a^4+<^5Zb8p><;9ssi%w?HH4t1n*}j> z%W5d{VW6k55ZrOunK}=$RG6rs2H-=!5Fp4QUP|M3Z&B(fni-L`xNME@_PSj4a@Ht; zDmuXB61YL3th(jY)za4w`g+GfDktsL>TKF*E~{bbo4!G~emV6vA*DX9a?w_fnq_th zW$Lyl5+q>jIL<8c6Q;LmH(57`5li!rWRV@x^;_1=Am|HZdDURE2F>@<&6s)?xWjmQ z_mj+D6%rXH2i3tH{7xZ`rO_)N_p5r5DG-{{w-f7X?>NGPZBJ*}9RE$V(mlHvrk3z} z38k+52hw%mEG#JaIhmV9E{>Spgt{;<;x=3YOLHS4_v&5uY-3Cm*9WMmrs%+mUYwh{ z`oN#$OJ2W`X-+iow2!PI_}$nCTYci2Alr`JW{Hu9{JMZ?U{mh?%&_gr+1$Fd2=fh7 znMtw6VxPx*qFdc_rEf~aKx0ayB>`K%*64>%z?@j@T;+fTU6I|6@u=SY6zC-SA@2@N zJ;)iHM|B7EblSb}gET!~$l5G-EQ9bnbmVc#-qMAR2|;3qA_zUq^1&>aeJJDdN>!UX zv1atu5WA#E*0=%?b*x3@)H&&b`O66huNlW%uH9~QOeSL|mr>s%>Waa2fjg5>9beO- z!^O>k&ro%9iY0Kwg?)xmXLW~FlUy1@D9((L5B?UWp@{PQ9&_bQt zb$7jmyVv|FzH@etICM6kx9!)d*r#8%XY-JpY*O#$&{zHC`6>2Ild}!$|5lgz0-qRE zs(O#;wO${3;(E|fO?*Bov!)k$1<52+&mVO#Mf;3Q)KyVvmy>*UUF3n3+l;413&Y{xgbW+TH zciZx#w%M;8YaIX8C5*LG<}~iT*dOPN&^&xLQg(%v9{phjS%+@qs^hEz$Jii4H5%Q! z+A7*`l#e>9^g_^)Ss%WoRyh`aODMHT_`_l{?`Pu2`1NI^h2YV0>0V4a znsU2_jS;+K0~_hughgzcqmA4%@w_pO7ZD4n2ZQ8N0N$>=>6YJchQbvZ7qwM(Njtyc zm5ow)rIkp(6I4^Z$_WDA>C8-w)uIo22mTAU~xU6@X;sNKJ8g`R&xfVGro$kpMtYQ<89+ z;Sr8bZ~KsYOWrA|CMBQ$E`xwj$FG8}G|~m^Mc4)htdZf5pujGWVzsmsMQ~J6 z?rLH7n_sHivu(A2LpWmKhz4O|hu^Sd_b4Z5b0(3LE5C6yX2NKnT9Us?*AQtg@_OmH zsfIf*eR*yp-WD5Q8${Bvy|-kN>|Vk4GYL*Y${7#j>TLXYH6Xq$3-3Bre8LZ$i*DY^ zX{Z7?I=@7vB!d%$<`#(1am$3Tfe*~r^4I73tU5ni%ay-$oHtqCT~Q7$45+9@Oly99 z01mE9_o?V63|(HHqKt97UASfHiiT_d;(W}Z%&-U2)b=S(;+$Oy*^#(K?qoYyY)9hd zoiDkXkZni3#lO^6AR4IuMmv$7PB|eWnZj-p5gibc6EFyflC@Hid>p7-vQj#_EQ&jP zq{7KS>3#0glMcU_T7;IiXzSSE`@ANZx;CbE#itIPbX86#>fcGGQnAgQM-8HWC}D2f zV(p(@2awFrmdmjtZ`OHx+xP+-T*W3+7m+`+G zt^(VIPBh$c zC^M$TBW4Q08!a(XanTW{5$T#}^>EitznJ3X8#L(=byMJnGLpknb@B0yfoX%+)1vLMq~@2ZM<{OJ_Ko*VP;# z4cclj2gW-I0Gf7jSkjEUbrGHuq7zzk76q;y#%B@Ly99X;ZUN}}IKQ0gCmn@b-a}RE zJHS*em?M*<$JJyOlzqVRTrS@px@h~Zu{cVMIq_Nu3V*b z3zi{qhxfGsa^bwGZvD+BqX+5_wI&g5BHIyBa0I2X2Dd9d;}nCrg-WzllIpug<$Cit zSk46jDC`RhnxArA!Yv~Iu%nCPs;X{=fGNC**w-kL5QowkxU7^jv%pvHDI+J6)i;c* zwTmar%(3#(FICr|S8V&(>4se;fq{%ud1=CXiG^?pqW;m`e)YsgB6!JjZ^{YN>OI1(oO>N8P`FnBP_u zviKE5XpXJ>v6Rx=b$%-iY`~bfBk_xH>+hN4;D2_xdYf@~{2^2n4akf#o5^*St%rwz z33zpdGpkgFn0kPWl2e&>p9$UZ7^SAgksYE2J^cJ$AMm8yx@7IuNitj0;4<>-gU^WE%ti-9T7QIY^bi;|Zu4>PNOVHix%%ka)%vulaJegsEsQu6 zx4*_$a5C?b>=Mwrrim+R;b0TTMO~4SSuU7Du22eUy)QYn+?u_}L+LKLGR5)<|I$yh z9Br2<=kl&vc0tw!jJESS#9B}fh96%ntt+?3ZWXGHHKZJd_dAgX4)N_O#QLYTB_oN30I zPhUHoP3s$u?<+$tv!wh@Q@#ZW#VAmAhuo)8giod5G=xCcn?7AD1~|zSk?x{-IXh%$ zITHTxO$1vHNyunoOH+XB&SYX54k`h!2!)IfnBT>#gTmD+hq6<6LQb6 zU&QJ1%^Jiaw7U4RzBen9e^ksVLtXNV{3(p4Dt%G1;A~6XtfPdBPBbtnIcU;zzwGCW zfS3fFv{z@4pZlpNj7Ti0Yw}araQf8s@6=F`b+9nd->f^g_)`R7HVg2d^Gm=i6rZxr zgMb5lH8qX0SMqq#RFKR37B3SLUH*Z^s2ReZXgWVeMYZGF z(Cf0~qc2&b{XB=969I|x@^jp|(=j+5`@#%WwL^ZKE|;hO4BO=46nUzcqkU;?sH^Va zRT%h`D>EMZwU={pcdITiy~Q>zGz8pn+nU+(g!1-ZAB0Mfa6m&0SQnR5i?y_mvRT-f z*zACP{#$~h6MFP!;NMzQ^gCD8R*U0a3DPiVw~Na7DLBqgxREq0evMozEzsZ^JZNyR(%Wqm zoV1x)4%>UCBbPP0$e&QOa zW_jlczHfho<@d(hJt-nJBd6Wpxqf7(*5wnTMEJ!kKi69>rq+#Q){ErzMHSYb{FS1+ zZ)I0DK~^P0cetRE=*QSd|MMNnf6mBsL``1LIkn0lDq$V-G5dgj=hps;_xJL?o{&gh z)m{@R66h(( zO3OuR!VLWD>Gp)EWw9v&3rloDa40Nl=E$v6i6cP_B+**$jSS~k1dKXMiiXy zjdK|OaY}=NVQ&9%OI?W10WLaVwCa+prsFl6=i@JDVbjna8G}H0YBmNN1^odAEOj%B zcDxu=*zQ8c&uZOs{A<0C+mNYT5mW7nM=4Kb=mKY3A|3~xn$3B-W^I6{phxhEkNTIF zIr~+fKThH*TH@EN??u*S7cG0K1kD^7d2ml&ZnhdK$^)1L_@UJbego|FjeJ8*8#Tipor6m2yFIU|h?beHh&&mtnveBykDfyWY?=_EIR#TM@W zuOmt^xL~4{>cs5UH58LFpPM87ADR=g!Z6CSsFnH#>E=m|Z}>|$OAIf208|$K1x3{C zdCiAP>1_AOUmUl!MDf1v(KCu|Am-`Cg+2v#uH5lbyiK>1JT{59QRhaR^D$CNRjvD+ zXT%Pp!x2DfEDzNIwxS`&#{fzu7}p-^NXE1xR4ad?+?|cTg_GOO2DdkvYDDW@ws(~& z?*&Rh5S4xKz)EjkT>D*<`Vq^LiOhQid{eg1v1-Bjn_Z-<`>WO8n$G&oc?QuN^#rD4 zS%;+g&+$;w*4NnlscSxcc_q(_&zTpsdNS;RDraQQ#Xve|bOBgM@?RoNw()E;P>Hlp zrt4lhJF+1%VhuCcXNObB_tr;WPBGXBSfynN#rczsJ!J`0eO2VO(IFK+b zn)RmU*=^|9TsPnr7PPuVMtF}ni32>r4_tges&r)oNkvo~b{&BWm@u1H4mg6^y2IFvu zM)PYEEP^#&qMnt5mCmnBCGl{!SF}{)a=(OzDr#J*tin2H`CkP2bVIySV)Ws638wwp zp_;?B|Ihhcc4NS1iK40*q;z8PtCdhGDmBEin~~wLg60Qe>0jSU)&0eaFu>8uJijL~ zGMF^l!}tv!auDaR4;lNIj_`4Jlcbb%cKb6Csjsxdsxq;!6PHQkXF0%$Z`P?U{fZH) zFAL(W?I-JKZb;E3>_E#|v0A~)}>y0u*GCpb4es`BBe+OwTH`#Hnj}CM8&&gPI)KHjs1BD7?P$=f&;`ZXb5pB*YBY8JzU=`H1x>{I5QBJ%7LO zS?$MmTi0Zr%?qT!*zTR8pXwYW$ZhiUu;1>_I@*VmHon6t5z|&1o@oFGIqCu%RQC=? zdYKQe!MB%3?71Sh`QjZbB5Puew*}vbybp{xf}bX4YlV;Nx0c~(`mCWrUGtusXlR?a z+#E(7r6i#|#i`R*+kA0C;Qo+~hoKLy`s|z4ol&m?-NV~^!Axq_`753{et6eK>i%ZW zQ?e!6PC2fcYyU5;Eb`Itk+xr^-(hBpPlb8kPc>t|lB<*{ry*Y8*F(8~a9Kq&!YjzV z_?yT*PBi)Pr%t%KA_MBUA*!obkAT980?>Nralnc0P>*sP$OW5#G4=@sNl$uePZ;uW zrA^dF(q|j$hZS3FDA>GM>@`HRHU8lg{|sx-tMQ3+T{V6W`6;?)c#WL25-=lsZGGP= z1o)T2J-{=VBKin!kSQRAtghU*g~C=OwIiVVsNHi$>ip1iNdhnx+~d;fRH-{GILCXb zUa>b?XH3ruo1oDI)}ekk0rSXH$JUxuhr7;tXGezU#`GQL3}P$-ZOjZRz_R(UF6qq( z+PR+v^`!-`iOOx?wW#obIicdtI_?Dc9t2_n1SKy~YxcWxSkJ1}Vi~*33VggyDyGk~&N7ffjn0OI+PkGcrTftU9@J_IkHw23aA$L-!{Y8=xM4&^wD z6U+uQqWJ)ETT}bDIuZ!KhFaU<1fP^rzrf(l8AoR;93_fm+-COko?`#*e98M($nTN(5d!ofmK><&lNtZS4MyO zw@nW6BND;U%0j%?O=c7Ub_ISSmE77vfufJerad3N?^xFAX1mTo+UcCcDh>H*&wh^{jf8KI3Y5d(faAY^0XuFxr3O0s2XSORbKWR>$xaC__;L;0r}_d+(&u1 zPB!?-3oRqav#1P%EH&empCOfTEJ5JBc!t1Xx;!f-Ea`r%;ZiZ zpV=7-Tv{)VG~Mj1J>R95)NNSx#yaF^{5A&O4onmyZ?7OZOFZgZ(qcXp|F-mZSr0&# zlCDc@V)EqB)jf-i%+}D2MFi(XV%k3U$1gh&)x=)ob;uK&?hzc2-}Gi@jAU<@I73i58a9Cnv zMNyVm%0KU4d~(B)C;&e6TRq+2+-()Sh=vgNJGyMP7-1Yazn@azciwZ>p}jq%J&rO#M5R zztTzq56nZ+dnMhs^P?Xqf_vi&JeI+m>2+$+2q^C)lv~f>azyuwSNIW_S7`JLB^usi zX>rMhm z4d^5)DO088+UArLfRpMdqF?a@I@GH4`oVv>IYnxrC7Z8VDex~*c9%Bf->NHiB#<-2 z_?^qm&#oJs%kXAKLQw)>{vWJQkg)CP8Gk{~%M^xmNgOYgS)!|;tsw_>>^VM!B0Uo@ zA{})VVS}%dC9AK5d+}>mkMWY*+Jr{-M=lYd^B2QC?vc?YYfi^0UYdXlYE$ z-(G*G)e_bmr9i|;$<+p7R==>}x}ty)NWh_$RYOT!^qFupV;&9F-;A@JT_TCwUU(m? z%Q5veXTO2g+cP0ACP`fzI`fWvkap!}KQOhLWMwgP)8Qefkh64Yk0=zx*9jR_@jZfj z@KY5Nibip3z6`!l(iSxCwr6%B-#JQQ@5&b)zo4su&$l5&ZR`L>(Ggsg8d<1}|H-23 z@F=Iejh1F{VCHzTrk>r-`y)Tbac>xVgxKhE2@Mh98bpOo} z!jp&iSu7>DaCuESavZ$pH8NYXmZ-~kH;qkG_LE;g}azXVhGW4m3T|$=gZ{d}C+ThShic5DOE4qfKDyDSUSQ%tYaHJsZmK0HzWWN{27q zD~C^1+xG(7b#5|cKXN|xf31OOrJVA#p~H=g!u5V3eSoJt#6emR&`=q4v(n_6CZZCgq(IO8id~5={QgDre;go(U^c_Pc|>o4)g+jwN}^UMTL(?j2ui&iXalHFq%O zJ#-Fz?KMn}4;|UQKf?aG!{LRqy1hw3ue-R$R3dZhJ@0>R@XqsZyTuI^FSP@UbR>9P z&U)`-%?l%(C{r+}sm&q*XY!||1#7~_&mUE9sL+9%Mc0wfDGm%ltXMA1F8EmvdDaOl zQ-6t`|14pY+?hYD;;8(c!dA6leV$zEqGmU>y;L?k&|m^8G~v&bhQ_{-(I(m^Jk`$E z{|$PCw;yesSs9+yRj<^C>UiisyPtsz_M4%~8=MX;Q7-Ga{}<&U0(zkfJtX^rDZFFD z#yK;A3BnV{St6AE{HgBS+*EU6mB*4H{h>UDW^$@6hZ%(q7xEjg6NYHAs{I63;apF% zd1p59Ark-U90L4@cyf8Pdt3@FFK_mp-y||OAc@v`DPf;-mX9R=#T5A{HzsvB1$e8% zmsGZJQQ0$uW;WhcOVCp8pM03F!6}u&|Gd~L67;oIWL&%jX7YUSj;Ed}b8C65ex$dZL0N17wEf^dmFX5n`0;0rVIZo{cn43_zz zaN1N$=wZC<62aYfIZg9<2gAN% z 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 U>TdAME+2TH$6qqm3u~YM2L=;R5dZ)H literal 0 HcmV?d00001 diff --git a/test/organism_test.py b/test/organism_test.py index 2affe5bf..c1c9104f 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -180,11 +180,11 @@ def test_add_organism(self): org_info = wa.organisms.show_organism('test_organism') meta = {"bla": "bli"} - res = wa.organisms.add_organism('some_new_org', org_info['directory'], species='newspecies', genus='newgenus', blatdb='/some/where', metadata=meta) + res = wa.organisms.add_organism('some_new_org', org_info['directory'], species='newspecies', genus='newgenus', blatdb=org_info['directory'] + "/seq/genome.2bit", metadata=meta) assert res['species'] == 'newspecies' assert res['genus'] == 'newgenus' - assert res['blatdb'] == '/some/where' + assert res['blatdb'] == org_info['directory'] + "/seq/genome.2bit" meta_back = json.loads(res['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' @@ -196,7 +196,7 @@ def test_add_organism(self): assert org_info['species'] == 'newspecies' assert org_info['genus'] == 'newgenus' - assert org_info['blatdb'] == '/some/where' + assert org_info['blatdb'] == org_info['directory'] + "/seq/genome.2bit" assert not org_info['publicMode'] meta_back = json.loads(org_info['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' diff --git a/test/remote_test.py b/test/remote_test.py index a7fefb47..d57cae7b 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -57,6 +57,7 @@ def test_update_organism(self): assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' + assert org_info['sequences'] == 1 assert not org_info['publicMode'] meta_back = json.loads(org_info['metadata']) assert 'bla' in meta_back and meta_back['bla'] == 'bli' From e56d59a1533b867d7054a047b6b3bd9adbfbf30b Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 08:06:43 -0700 Subject: [PATCH 39/50] removed note from old repo --- README.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.rst b/README.rst index af6d37cc..3a030ed6 100644 --- a/README.rst +++ b/README.rst @@ -1,6 +1,4 @@ -No longer synced. `Actively maintained version `__ - Apollo API Library ================== From d3b9c66f2f1b6e688f84ee587010f9105bf85a45 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 12:54:30 -0700 Subject: [PATCH 40/50] added no reload sequences method --- apollo/organisms/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apollo/organisms/__init__.py b/apollo/organisms/__init__.py index f53e6ec4..395d7797 100644 --- a/apollo/organisms/__init__.py +++ b/apollo/organisms/__init__.py @@ -65,10 +65,13 @@ def add_organism(self, common_name, directory, blatdb=None, genus=None, return response return [x for x in response if x['commonName'] == common_name][0] - def update_organism(self, organism_id, common_name, directory, blatdb=None, species=None, genus=None, public=False): + def update_organism(self, organism_id, common_name, directory, blatdb=None, species=None, genus=None, public=False, + no_reload_sequences=False): """ Update an organism + :param no_reload_sequences: + :type organism_id: str :param organism_id: Organism ID Number @@ -98,6 +101,7 @@ def update_organism(self, organism_id, common_name, directory, blatdb=None, spec 'name': common_name, 'directory': directory, 'publicMode': public, + 'noReloadSequences': no_reload_sequences, } if blatdb is not None: From d92cc395e322c3b35902724fe707a2586bb96264 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 14:43:18 -0700 Subject: [PATCH 41/50] fixed another test --- test/organism_test.py | 9 ++++++++- test/remote_test.py | 8 ++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/test/organism_test.py b/test/organism_test.py index c1c9104f..7237cbc3 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -95,6 +95,8 @@ def test_delete_organism(self): time.sleep(3) org_info = wa.organisms.show_organism('temp_org') + print "DELETE WITH ID" + print json.dumps(org_info) wa.organisms.delete_organism(org_info['id']) @@ -161,13 +163,18 @@ def test_delete_features_cn(self): def test_update_organism(self): other_org_info = wa.organisms.show_organism('test_organism') + org_info = wa.organisms.show_organism('temp_org') + print "BBBBB" + print json.dumps(org_info) - wa.organisms.update_organism(org_info['id'], 'temp_org', other_org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb=other_org_info['directory'] + "/seq/genome.2bit", public=False) + wa.organisms.update_organism(org_info['id'], 'temp_org', other_org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb=other_org_info['directory'] + "/seq/genome.2bit", public=False, no_reload_sequences=True) # Returns useless stuff time.sleep(3) org_info = wa.organisms.show_organism('temp_org') + print "CCCCC" + print json.dumps(org_info) assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' diff --git a/test/remote_test.py b/test/remote_test.py index c22b1638..2b4be6b0 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -15,10 +15,18 @@ def test_delete_organism(self): time.sleep(3) org_info = wa.organisms.show_organism('temp_org') + orgs = wa.organisms.get_organisms() + + print "AAAAA" + print json.dumps(org_info) + print "org count" + print str(len(orgs)) wa.remote.delete_organism(org_info['id']) time.sleep(3) + print "B org count" + print str(len(orgs)) orgs = wa.organisms.get_organisms() From f66bbca520609cdb2d87c86b09b29efd6add3130 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 15:27:37 -0700 Subject: [PATCH 42/50] fixed test remote_test --- test/remote_test.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/remote_test.py b/test/remote_test.py index 2b4be6b0..664f03b5 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -73,13 +73,14 @@ def test_update_organism(self): def test_add_organism(self): - meta = '{"bla": "bli"}'; + meta = '{"bla": "bli"}' with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: with tarfile.open(archive.name, mode="w:gz") as tar: for file in glob.glob('test-data/dataset_1_files/data/'): tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) - res = wa.remote.add_organism('some_new_org_remote', archive, species='newspecies', genus='newgenus', metadata=meta) + # Note: we added this upstream, so we have to use another name to create a separate sample directory + res = wa.remote.add_organism('some_new_org_remote_v2', archive, species='newspecies', genus='newgenus', metadata=meta) res = res[0] assert res['species'] == 'newspecies' @@ -90,7 +91,7 @@ def test_add_organism(self): time.sleep(3) - org_info = wa.organisms.show_organism('some_new_org_remote') + org_info = wa.organisms.show_organism('some_new_org_remote_v2') wa.remote.delete_organism(org_info['id']) From 4bf792b39d682cb29f05f38d05b7421a29336d5a Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 15:30:20 -0700 Subject: [PATCH 43/50] cleaned up commit --- README.rst | 1 - apollo/organisms/__init__.py | 4 +++- bootstrap_apollo.sh | 3 ++- test-data/arrow.yml | 6 +++--- test/organism_test.py | 6 ------ test/remote_test.py | 9 +-------- 6 files changed, 9 insertions(+), 20 deletions(-) diff --git a/README.rst b/README.rst index 3a030ed6..31783527 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,3 @@ - Apollo API Library ================== diff --git a/apollo/organisms/__init__.py b/apollo/organisms/__init__.py index 395d7797..729f3426 100644 --- a/apollo/organisms/__init__.py +++ b/apollo/organisms/__init__.py @@ -70,7 +70,6 @@ def update_organism(self, organism_id, common_name, directory, blatdb=None, spec """ Update an organism - :param no_reload_sequences: :type organism_id: str :param organism_id: Organism ID Number @@ -93,6 +92,9 @@ def update_organism(self, organism_id, common_name, directory, blatdb=None, spec :type public: bool :param public: User's email + :type no_reload_sequences: bool + :param no_reload_sequences: + :rtype: dict :return: a dictionary with information about the updated organism """ diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index 4a37ff52..ef7b69f0 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,12 +3,13 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest +#docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online for ((i=0;i<30;i++)) do + echo $i APOLLO_UP=$(arrow users get_users 2> /dev/null | head -1 | grep '^\[$' -q; echo "$?") if [[ $APOLLO_UP -eq 0 ]]; then break diff --git a/test-data/arrow.yml b/test-data/arrow.yml index 50f0d298..e5300a33 100644 --- a/test-data/arrow.yml +++ b/test-data/arrow.yml @@ -1,5 +1,5 @@ __default: local local: - url: "http://localhost:8888" - username: "admin@local.host" - password: "password" + url: "http://localhost:8080/apollo" + username: "ndunn@me.com" + password: "demo" diff --git a/test/organism_test.py b/test/organism_test.py index 7237cbc3..ba670868 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -95,8 +95,6 @@ def test_delete_organism(self): time.sleep(3) org_info = wa.organisms.show_organism('temp_org') - print "DELETE WITH ID" - print json.dumps(org_info) wa.organisms.delete_organism(org_info['id']) @@ -165,16 +163,12 @@ def test_update_organism(self): other_org_info = wa.organisms.show_organism('test_organism') org_info = wa.organisms.show_organism('temp_org') - print "BBBBB" - print json.dumps(org_info) wa.organisms.update_organism(org_info['id'], 'temp_org', other_org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb=other_org_info['directory'] + "/seq/genome.2bit", public=False, no_reload_sequences=True) # Returns useless stuff time.sleep(3) org_info = wa.organisms.show_organism('temp_org') - print "CCCCC" - print json.dumps(org_info) assert org_info['species'] == 'updatedspecies' assert org_info['genus'] == 'updatedgenus' diff --git a/test/remote_test.py b/test/remote_test.py index 664f03b5..291e8c25 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -15,18 +15,11 @@ def test_delete_organism(self): time.sleep(3) org_info = wa.organisms.show_organism('temp_org') - orgs = wa.organisms.get_organisms() - - print "AAAAA" - print json.dumps(org_info) - print "org count" - print str(len(orgs)) + # orgs = wa.organisms.get_organisms() wa.remote.delete_organism(org_info['id']) time.sleep(3) - print "B org count" - print str(len(orgs)) orgs = wa.organisms.get_organisms() From efaf47f4e5e58823e4d31484c7a4920119b97fe4 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 15:36:35 -0700 Subject: [PATCH 44/50] reverting behavior --- bootstrap_apollo.sh | 2 +- test-data/arrow.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index ef7b69f0..b213fea0 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,7 +3,7 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -#docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest +docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online diff --git a/test-data/arrow.yml b/test-data/arrow.yml index e5300a33..50f0d298 100644 --- a/test-data/arrow.yml +++ b/test-data/arrow.yml @@ -1,5 +1,5 @@ __default: local local: - url: "http://localhost:8080/apollo" - username: "ndunn@me.com" - password: "demo" + url: "http://localhost:8888" + username: "admin@local.host" + password: "password" From 134900a8d0a67e8d9b4bd36f16c3c9fc55caca21 Mon Sep 17 00:00:00 2001 From: Nathan Dunn Date: Wed, 30 Oct 2019 16:03:28 -0700 Subject: [PATCH 45/50] trying to add the docker pull ot see if that does anything --- bootstrap_apollo.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index b213fea0..bf37c215 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,6 +3,7 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" +docker pull quay.io/gmod/apollo:latest docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest echo "[BOOTSTRAP] Waiting while Apollo starts up..." From 29ad9468568c0ed2247642282aeaf5936d0bbfbc Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 31 Oct 2019 12:55:26 +0100 Subject: [PATCH 46/50] some cleanup --- bootstrap_apollo.sh | 2 -- test/remote_test.py | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/bootstrap_apollo.sh b/bootstrap_apollo.sh index bf37c215..4a37ff52 100755 --- a/bootstrap_apollo.sh +++ b/bootstrap_apollo.sh @@ -3,14 +3,12 @@ export GALAXY_SHARED_DIR=`pwd`/apollo_shared_dir mkdir -p "$GALAXY_SHARED_DIR" -docker pull quay.io/gmod/apollo:latest docker run --memory=4g -d -it -p 8888:8080 -v `pwd`/apollo_shared_dir/:`pwd`/apollo_shared_dir/ quay.io/gmod/apollo:latest echo "[BOOTSTRAP] Waiting while Apollo starts up..." # Wait for apollo to be online for ((i=0;i<30;i++)) do - echo $i APOLLO_UP=$(arrow users get_users 2> /dev/null | head -1 | grep '^\[$' -q; echo "$?") if [[ $APOLLO_UP -eq 0 ]]; then break diff --git a/test/remote_test.py b/test/remote_test.py index 291e8c25..925d1fe8 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -45,7 +45,7 @@ def test_update_organism(self): org_info = wa.organisms.show_organism('temp_org') - meta = '{"bla": "bli"}' + meta = {"bla": "bli"} with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: with tarfile.open(archive.name, mode="w:gz") as tar: @@ -66,7 +66,7 @@ def test_update_organism(self): def test_add_organism(self): - meta = '{"bla": "bli"}' + meta = {"bla": "bli"} with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: with tarfile.open(archive.name, mode="w:gz") as tar: From 7a1adf05338949ead99d6af60f59b5e56fe06cbe Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 31 Oct 2019 12:55:51 +0100 Subject: [PATCH 47/50] not needed --- test/remote_test.py | 1 - 1 file changed, 1 deletion(-) diff --git a/test/remote_test.py b/test/remote_test.py index 925d1fe8..562ca31d 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -3,7 +3,6 @@ import tarfile import tempfile import time -import json from . import ApolloTestCase, wa From 0b28569ff1dd0a710b05529d4362633b321e67b4 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Thu, 31 Oct 2019 12:59:17 +0100 Subject: [PATCH 48/50] rebuild cli/doc --- apollo/organisms/__init__.py | 2 +- arrow/commands/organisms/update_organism.py | 9 +++++++-- docs/commands/organisms.rst | 12 +++++++----- test/remote_test.py | 1 - 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/apollo/organisms/__init__.py b/apollo/organisms/__init__.py index 729f3426..f3640632 100644 --- a/apollo/organisms/__init__.py +++ b/apollo/organisms/__init__.py @@ -93,7 +93,7 @@ def update_organism(self, organism_id, common_name, directory, blatdb=None, spec :param public: User's email :type no_reload_sequences: bool - :param no_reload_sequences: + :param no_reload_sequences: Set this if you don't want Apollo to reload genome sequences (no change in genome sequence) :rtype: dict :return: a dictionary with information about the updated organism diff --git a/arrow/commands/organisms/update_organism.py b/arrow/commands/organisms/update_organism.py index 7b1ef0d5..34ed2548 100644 --- a/arrow/commands/organisms/update_organism.py +++ b/arrow/commands/organisms/update_organism.py @@ -27,14 +27,19 @@ help="User's email", is_flag=True ) +@click.option( + "--no_reload_sequences", + help="Set this if you don't want Apollo to reload genome sequences (no change in genome sequence)", + is_flag=True +) @pass_context @custom_exception @dict_output -def cli(ctx, organism_id, common_name, directory, blatdb="", species="", genus="", public=False): +def cli(ctx, organism_id, common_name, directory, blatdb="", species="", genus="", public=False, no_reload_sequences=False): """Update an organism Output: a dictionary with information about the updated organism """ - return ctx.gi.organisms.update_organism(organism_id, common_name, directory, blatdb=blatdb, species=species, genus=genus, public=public) + return ctx.gi.organisms.update_organism(organism_id, common_name, directory, blatdb=blatdb, species=species, genus=genus, public=public, no_reload_sequences=no_reload_sequences) diff --git a/docs/commands/organisms.rst b/docs/commands/organisms.rst index bd99271a..bfd4205a 100644 --- a/docs/commands/organisms.rst +++ b/docs/commands/organisms.rst @@ -215,9 +215,11 @@ Update an organism **Options**:: - --blatdb TEXT Server-side Blat directory for the organism - --species TEXT Species - --genus TEXT Genus - --public User's email - -h, --help Show this message and exit. + --blatdb TEXT Server-side Blat directory for the organism + --species TEXT Species + --genus TEXT Genus + --public User's email + --no_reload_sequences Set this if you don't want Apollo to reload genome + sequences (no change in genome sequence) + -h, --help Show this message and exit. diff --git a/test/remote_test.py b/test/remote_test.py index 562ca31d..f32625cf 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -14,7 +14,6 @@ def test_delete_organism(self): time.sleep(3) org_info = wa.organisms.show_organism('temp_org') - # orgs = wa.organisms.get_organisms() wa.remote.delete_organism(org_info['id']) From 2595222c31e2cae8ac639088fe3f29997a061e71 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 4 Nov 2019 11:28:24 +0100 Subject: [PATCH 49/50] small cleanup --- apollo/organisms/__init__.py | 1 - test/organism_test.py | 25 ++++++++++++++++++++++++- test/remote_test.py | 10 +++++++--- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/apollo/organisms/__init__.py b/apollo/organisms/__init__.py index f3640632..be95351a 100644 --- a/apollo/organisms/__init__.py +++ b/apollo/organisms/__init__.py @@ -70,7 +70,6 @@ def update_organism(self, organism_id, common_name, directory, blatdb=None, spec """ Update an organism - :type organism_id: str :param organism_id: Organism ID Number diff --git a/test/organism_test.py b/test/organism_test.py index ba670868..de8c86d2 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -158,7 +158,7 @@ def test_delete_features_cn(self): assert 'features' in feats_after assert len(feats_after['features']) == 0 - def test_update_organism(self): + def test_update_organism_noreload(self): other_org_info = wa.organisms.show_organism('test_organism') @@ -176,6 +176,24 @@ def test_update_organism(self): assert not org_info['publicMode'] assert org_info['sequences'] == 1 + def test_update_organism(self): + + other_org_info = wa.organisms.show_organism('test_organism') + + org_info = wa.organisms.show_organism('temp_org') + + wa.organisms.update_organism(org_info['id'], 'temp_org', other_org_info['directory'], species='updatedspecies', genus='updatedgenus', blatdb=other_org_info['directory'] + "/seq/genome.2bit", public=False) + # Returns useless stuff + + time.sleep(3) + org_info = wa.organisms.show_organism('temp_org') + + assert org_info['species'] == 'updatedspecies' + assert org_info['genus'] == 'updatedgenus' + assert org_info['blatdb'] == other_org_info['directory'] + "/seq/genome.2bit" + assert not org_info['publicMode'] + assert org_info['sequences'] == 2 + def test_add_organism(self): org_info = wa.organisms.show_organism('test_organism') @@ -217,3 +235,8 @@ def tearDown(self): if org_info and 'id' in org_info: wa.organisms.delete_organism(org_info['id']) + + org_info = wa.organisms.show_organism('some_new_org') + + if org_info and 'id' in org_info: + wa.organisms.delete_organism(org_info['id']) diff --git a/test/remote_test.py b/test/remote_test.py index f32625cf..f10468f0 100644 --- a/test/remote_test.py +++ b/test/remote_test.py @@ -70,8 +70,7 @@ def test_add_organism(self): with tarfile.open(archive.name, mode="w:gz") as tar: for file in glob.glob('test-data/dataset_1_files/data/'): tar.add(file, arcname=file.replace('test-data/dataset_1_files/data/', './')) - # Note: we added this upstream, so we have to use another name to create a separate sample directory - res = wa.remote.add_organism('some_new_org_remote_v2', archive, species='newspecies', genus='newgenus', metadata=meta) + res = wa.remote.add_organism('some_new_org_remote', archive, species='newspecies', genus='newgenus', metadata=meta) res = res[0] assert res['species'] == 'newspecies' @@ -82,7 +81,7 @@ def test_add_organism(self): time.sleep(3) - org_info = wa.organisms.show_organism('some_new_org_remote_v2') + org_info = wa.organisms.show_organism('some_new_org_remote') wa.remote.delete_organism(org_info['id']) @@ -106,3 +105,8 @@ def tearDown(self): if org_info and 'id' in org_info: wa.organisms.delete_organism(org_info['id']) + + org_info = wa.organisms.show_organism('some_new_org_remote') + + if org_info and 'id' in org_info: + wa.organisms.delete_organism(org_info['id']) From f2d87bb7ae1b7a704627b0b1c9c8bce9a8275115 Mon Sep 17 00:00:00 2001 From: Anthony Bretaudeau Date: Mon, 4 Nov 2019 11:40:22 +0100 Subject: [PATCH 50/50] timing issue? --- test/organism_test.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/organism_test.py b/test/organism_test.py index de8c86d2..da9924e6 100644 --- a/test/organism_test.py +++ b/test/organism_test.py @@ -86,6 +86,8 @@ def test_update_metadata(self): assert res == {} + time.sleep(3) + org_info = wa.organisms.show_organism(org_id) assert json.loads(org_info['metadata']) == {'some': 'metadata'}