From cc76a624bd53e5243a5444b47311d532ab688667 Mon Sep 17 00:00:00 2001 From: Evgeny Astigeevich Date: Thu, 20 Jun 2019 10:47:34 +0100 Subject: Update benchmarksgame sources for code style and stability The CL contains the following changes to benchmarksgame: 1. Sources updated to the latest available. 2. Unstable benchmarks removed upstream are removed downstream as well. 3. Sources updated according to the Google code style. 4. URLs in sources are updated to correct ones. 5. Benchmarks are calibrated to produce more stable results. Test: benchmarks_run_target.sh --mode 64 --iterations 10 Change-Id: I61203336b401a9d071c170f5910594bc995c3f5c --- benchmarks/benchmarksgame/binarytrees.java | 118 -- benchmarks/benchmarksgame/binarytrees_2.java | 107 ++ benchmarks/benchmarksgame/binarytrees_6.java | 109 ++ benchmarks/benchmarksgame/chameneosredux.java | 275 --- benchmarks/benchmarksgame/fannkuchredux.java | 121 +- benchmarks/benchmarksgame/fasta.java | 324 ++-- benchmarks/benchmarksgame/fasta_4.java | 270 +++ benchmarks/benchmarksgame/fastaredux.java | 288 +-- benchmarks/benchmarksgame/knucleotide.java | 2413 +++++++++++++------------ benchmarks/benchmarksgame/mandelbrot.java | 124 +- benchmarks/benchmarksgame/meteor.java | 1799 +++++++++++++----- benchmarks/benchmarksgame/nbody.java | 229 --- benchmarks/benchmarksgame/nbody_3.java | 217 +++ benchmarks/benchmarksgame/nbody_5.java | 245 +++ benchmarks/benchmarksgame/pidigits.java | 227 ++- benchmarks/benchmarksgame/regexdna.java | 2181 +++++++++++----------- benchmarks/benchmarksgame/revcomp.java | 2131 +++++++++++----------- benchmarks/benchmarksgame/spectralnorm.java | 133 +- benchmarks/benchmarksgame/threadring.java | 143 -- 19 files changed, 6295 insertions(+), 5159 deletions(-) delete mode 100644 benchmarks/benchmarksgame/binarytrees.java create mode 100644 benchmarks/benchmarksgame/binarytrees_2.java create mode 100644 benchmarks/benchmarksgame/binarytrees_6.java delete mode 100644 benchmarks/benchmarksgame/chameneosredux.java create mode 100644 benchmarks/benchmarksgame/fasta_4.java delete mode 100644 benchmarks/benchmarksgame/nbody.java create mode 100644 benchmarks/benchmarksgame/nbody_3.java create mode 100644 benchmarks/benchmarksgame/nbody_5.java delete mode 100644 benchmarks/benchmarksgame/threadring.java diff --git a/benchmarks/benchmarksgame/binarytrees.java b/benchmarks/benchmarksgame/binarytrees.java deleted file mode 100644 index a23c584..0000000 --- a/benchmarks/benchmarksgame/binarytrees.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly - * modified to fit the benchmarking framework. - * - * The original file is `binarytrees/binarytrees.java-2.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) - * - * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ - * - * contributed by Jarkko Miettinen - */ - -/* - * Description: Allocate and deallocate many many binary trees. - * Main Focus: TODO - * - */ - -package benchmarks.benchmarksgame; - -// CHECKSTYLE.OFF: .* -public class binarytrees { - - private static final int PREDEFINED_DEPTH = 10; - private final static int minDepth = 4; - - public int old_main(){ - int n = 0; - int maxDepth = (minDepth + 2 > PREDEFINED_DEPTH) ? minDepth + 2 : PREDEFINED_DEPTH; - int stretchDepth = maxDepth + 1; - - int check = (TreeNode.bottomUpTree(0,stretchDepth)).itemCheck(); - - TreeNode longLivedTree = TreeNode.bottomUpTree(0,maxDepth); - - for (int depth=minDepth; depth<=maxDepth; depth+=2){ - int iterations = 1 << (maxDepth - depth + minDepth); - check = 0; - - for (int i=1; i<=iterations; i++){ - check += (TreeNode.bottomUpTree(i,depth)).itemCheck(); - check += (TreeNode.bottomUpTree(-i,depth)).itemCheck(); - } - } - return check; - } - - - private static class TreeNode - { - private TreeNode left, right; - private int item; - - TreeNode(int item){ - this.item = item; - } - - private static TreeNode bottomUpTree(int item, int depth){ - if (depth>0){ - return new TreeNode( - bottomUpTree(2*item-1, depth-1) - , bottomUpTree(2*item, depth-1) - , item - ); - } - else { - return new TreeNode(item); - } - } - - TreeNode(TreeNode left, TreeNode right, int item){ - this.left = left; - this.right = right; - this.item = item; - } - - private int itemCheck(){ - // if necessary deallocate here - if (left==null) return item; - else return item + left.itemCheck() - right.itemCheck(); - } - } - // CHECKSTYLE.ON: .* - - public void timeBinaryTrees(int iters) { - for (int j = 0; j < iters; j++) { - old_main(); - } - } - - public boolean verifyBinaryTrees() { - int expected = -32; - int found = old_main(); - - if (expected != found) { - System.out.println("ERROR: Expected " + expected + " but found " + found); - return false; - } - return true; - } - - public static void main(String[] args) { - int rc = 0; - binarytrees obj = new binarytrees(); - final long before = System.currentTimeMillis(); - obj.timeBinaryTrees(30); - final long after = System.currentTimeMillis(); - - if (!obj.verifyBinaryTrees()) { - rc++; - } - System.out.println("benchmarks/benchmarksgame/binarytrees: " + (after - before)); - System.exit(rc); - } -} diff --git a/benchmarks/benchmarksgame/binarytrees_2.java b/benchmarks/benchmarksgame/binarytrees_2.java new file mode 100644 index 0000000..e483d66 --- /dev/null +++ b/benchmarks/benchmarksgame/binarytrees_2.java @@ -0,0 +1,107 @@ +/* + * This benchmark has been ported from "The Computer Language Benchmarks Game" + * suite and slightly modified to fit the benchmarking framework. + * + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/binarytrees-java-2.html + * + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * contributed by Jarkko Miettinen + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html + */ + +/* + * Description: Allocate and deallocate many many binary trees. + * Main Focus: TODO + * + */ + +package benchmarks.benchmarksgame; + +public class binarytrees_2 { + private static final int PREDEFINED_DEPTH = 7; + private static final int minDepth = 4; + + public int bench() { + int maxDepth = (minDepth + 2 > PREDEFINED_DEPTH) ? minDepth + 2 : PREDEFINED_DEPTH; + int stretchDepth = maxDepth + 1; + + int totalChecks = (TreeNode.bottomUpTree(stretchDepth)).itemCheck(); + + TreeNode longLivedTree = TreeNode.bottomUpTree(maxDepth); + + for (int depth = minDepth; depth <= maxDepth; depth += 2) { + int iterations = 1 << (maxDepth - depth + minDepth); + int check = 0; + + for (int i = 1; i <= iterations; i++) { + check += (TreeNode.bottomUpTree(depth)).itemCheck(); + } + totalChecks += check; + } + totalChecks += longLivedTree.itemCheck(); + return totalChecks; + } + + private static class TreeNode { + private TreeNode left, right; + + private static TreeNode bottomUpTree(int depth) { + if (depth > 0) { + return new TreeNode(bottomUpTree(depth - 1), bottomUpTree(depth - 1)); + } else { + return new TreeNode(null, null); + } + } + + TreeNode(TreeNode left, TreeNode right) { + this.left = left; + this.right = right; + } + + private int itemCheck() { + // if necessary deallocate here + if (left == null) return 1; + else return 1 + left.itemCheck() + right.itemCheck(); + } + } + + static long checksum; + + public void timeBinaryTrees(int iters) { + long sum = 0; + for (int j = 0; j < iters; j++) { + sum += bench(); + } + checksum = sum; + } + + public boolean verifyBinaryTrees() { + int expected = 8798; + int found = bench(); + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + return true; + } + + public static void main(String[] args) { + int rc = 0; + binarytrees_2 obj = new binarytrees_2(); + final long before = System.currentTimeMillis(); + obj.timeBinaryTrees(30); + final long after = System.currentTimeMillis(); + + if (!obj.verifyBinaryTrees()) { + rc++; + } + System.out.println("benchmarks/benchmarksgame/binarytrees_2: " + (after - before)); + System.exit(rc); + } +} diff --git a/benchmarks/benchmarksgame/binarytrees_6.java b/benchmarks/benchmarksgame/binarytrees_6.java new file mode 100644 index 0000000..e4f0fcc --- /dev/null +++ b/benchmarks/benchmarksgame/binarytrees_6.java @@ -0,0 +1,109 @@ +/* + * This benchmark has been ported from "The Computer Language Benchmarks Game" + * suite and slightly modified to fit the benchmarking framework. + * + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/binarytrees-java-6.html + * + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * contributed by Jarkko Miettinen + * modified by Chandra Sekar + * modified by Mike Kruger + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html + */ + +/* + * Description: Allocate and deallocate many many binary trees. + * Main Focus: TODO + * + */ + +package benchmarks.benchmarksgame; + +public class binarytrees_6 { + private static final int PREDEFINED_DEPTH = 7; + private static final int minDepth = 4; + + public int bench() { + int maxDepth = Math.max(minDepth + 2, PREDEFINED_DEPTH); + int stretchDepth = maxDepth + 1; + + int totalChecks = (TreeNode.create(stretchDepth)).check(); + + TreeNode longLivedTree = TreeNode.create(maxDepth); + + for (int depth = minDepth; depth <= maxDepth; depth += 2) { + int iterations = 1 << (maxDepth - depth + minDepth); + int check = 0; + + for (int i = 1; i <= iterations; i++) { + check += (TreeNode.create(depth)).check(); + } + totalChecks += check; + } + + totalChecks += longLivedTree.check(); + + return totalChecks; + } + + static class TreeNode { + TreeNode left, right; + + static TreeNode create(int depth) { + return ChildTreeNodes(depth); + } + + static TreeNode ChildTreeNodes(int depth) { + TreeNode node = new TreeNode(); + if (depth > 0) { + node.left = ChildTreeNodes(depth - 1); + node.right = ChildTreeNodes(depth - 1); + } + return node; + } + + int check() { + return left == null ? 1 : left.check() + right.check() + 1; + } + } + + static long checksum; + + public void timeBinaryTrees(int iters) { + long sum = 0; + for (int j = 0; j < iters; j++) { + sum += bench(); + } + checksum = sum; + } + + public boolean verifyBinaryTrees() { + int expected = 8798; + int found = bench(); + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + return true; + } + + public static void main(String[] args) { + int rc = 0; + binarytrees_6 obj = new binarytrees_6(); + final long before = System.currentTimeMillis(); + obj.timeBinaryTrees(30); + final long after = System.currentTimeMillis(); + + if (!obj.verifyBinaryTrees()) { + rc++; + } + System.out.println("benchmarks/benchmarksgame/binarytrees_6: " + (after - before)); + System.exit(rc); + } +} diff --git a/benchmarks/benchmarksgame/chameneosredux.java b/benchmarks/benchmarksgame/chameneosredux.java deleted file mode 100644 index 8995af1..0000000 --- a/benchmarks/benchmarksgame/chameneosredux.java +++ /dev/null @@ -1,275 +0,0 @@ -/* - * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly - * modified to fit the benchmarking framework. - * - * The original file is `chameneosredux/chameneosredux.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) - * - * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ - * - * contributed by Michael Barker - */ - -/* - * Description: Symmetrical thread rendezvous requests. - * Main Focus: TODO - * - */ - -package benchmarks.benchmarksgame; - -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicReference; - - -/** - * This implementation uses the java.util.concurrent.atomic library - * i.e. (compare and set) to avoid locking. Real threads are used, but - * are set up as a thread pool and meeting requests are pushed onto a - * queue that feeds the thread pool. - */ -// CHECKSTYLE.OFF: .* -public final class chameneosredux { - - enum Colour { - blue, - red, - yellow - } - - private static Colour doCompliment(final Colour c1, final Colour c2) { - switch (c1) { - case blue: - switch (c2) { - case blue: - return Colour.blue; - case red: - return Colour.yellow; - case yellow: - return Colour.red; - } - case red: - switch (c2) { - case blue: - return Colour.yellow; - case red: - return Colour.red; - case yellow: - return Colour.blue; - } - case yellow: - switch (c2) { - case blue: - return Colour.red; - case red: - return Colour.blue; - case yellow: - return Colour.yellow; - } - } - - throw new RuntimeException("Error"); - } - - static final class MeetingPlace { - - private final AtomicInteger meetingsLeft; - private final AtomicReference creatureRef = new AtomicReference(); - - public MeetingPlace(final int meetings) { - meetingsLeft = new AtomicInteger(meetings); - } - - public void meet(final Creature incoming) { - Colour newColour = null; - Creature first = null; - Creature next = null; - do { - first = creatureRef.get(); - next = incoming; - if (first != null) { - newColour = doCompliment(incoming.colour, first.colour); - next = null; - } - } while (!creatureRef.compareAndSet(first, next)); - - if (first != null) { - final int meetings = meetingsLeft.decrementAndGet(); - if (meetings >= 0) { - first.setColour(incoming.id, newColour); - incoming.setColour(first.id, newColour); - } else { - first.complete(); - incoming.complete(); - } - } - } - } - - static final class Dispatcher implements Runnable { - private final BlockingQueue q; - - public Dispatcher(final BlockingQueue q) { - this.q = q; - } - - public void run() { - try { - while (true) { - q.take().run(); - } - } catch (final InterruptedException e) { - } - } - } - - static final class Creature { - - private final int id; - private final MeetingPlace place; - private final BlockingQueue q; - private final CountDownLatch latch; - private int count = 0; - private int sameCount = 0; - private Colour colour; - - public Creature(final MeetingPlace place, final Colour colour, - final BlockingQueue q, final CountDownLatch latch) { - this.id = System.identityHashCode(this); - this.place = place; - this.latch = latch; - this.colour = colour; - this.q = q; - } - - public void complete() { - latch.countDown(); - } - - public void setColour(final int id, final Colour newColour) { - this.colour = newColour; - count++; - sameCount += 1 ^ Integer.signum(abs(this.id - id)); - q.add(this); - } - - private int abs(final int x) { - final int y = x >> 31; - return (x ^ y) - y; - } - - public void run() { - place.meet(this); - } - - public int getCount() { - return count; - } - - @Override - public String toString() { - return String.valueOf(count) + getNumber(sameCount); - } - } - - private int run(final int n, final Colour...colours) { - final int len = colours.length; - final MeetingPlace place = new MeetingPlace(n); - final Creature[] creatures = new Creature[len]; - final BlockingQueue q = new ArrayBlockingQueue(len); - final CountDownLatch latch = new CountDownLatch(len - 1); - - for (int i = 0; i < len; i++) { - creatures[i] = new Creature(place, colours[i], q, latch); - } - - final Thread[] ts = new Thread[len]; - for (int i = 0, h = ts.length; i < h; i++) { - ts[i] = new Thread(new Dispatcher(q)); - ts[i].setDaemon(true); - ts[i].start(); - } - - for (final Creature creature : creatures) { - q.add(creature); - } - - try { - latch.await(); - for (final Thread t : ts) { - t.interrupt(); - } - for (final Thread t : ts) { - t.join(); - } - } catch (final InterruptedException e1) { - System.err.println("Existing with error: " + e1); - } - - int total = 0; - for (final Creature creature : creatures) { - total += creature.getCount(); - } - return total; - } - - private static final String[] NUMBERS = { - "zero", "one", "two", "three", "four", "five", - "six", "seven", "eight", "nine" - }; - - private static String getNumber(final int n) { - final StringBuilder sb = new StringBuilder(); - final String nStr = String.valueOf(n); - for (int i = 0; i < nStr.length(); i++) { - sb.append(" "); - sb.append(NUMBERS[Character.getNumericValue(nStr.charAt(i))]); - } - - return sb.toString(); - } - // CHECKSTYLE.ON: .* - - private static final int PREDEFINED_N = 600; - - public void timeChameneosRedux(int iters) { - for (int i = 0; i < iters; i++) { - run(PREDEFINED_N, Colour.blue, Colour.red, Colour.yellow); - run(PREDEFINED_N, Colour.blue, Colour.red, Colour.yellow, Colour.red, Colour.yellow, - Colour.blue, Colour.red, Colour.yellow, Colour.red, Colour.blue); - } - } - - public boolean verifyChameneosRedux() { - int expected = 1200; - int found = run(PREDEFINED_N, Colour.blue, Colour.red, Colour.yellow, Colour.red, Colour.yellow, - Colour.blue, Colour.red, Colour.yellow, Colour.red, Colour.blue); - - if (expected != found) { - System.out.println("ERROR: Expected " + expected + " but found " + found); - return false; - } - return true; - } - - public static void main(final String[] args) { - int rc = 0; - chameneosredux obj = new chameneosredux(); - - final long before = System.currentTimeMillis(); - obj.timeChameneosRedux(40); - final long after = System.currentTimeMillis(); - - if (!obj.verifyChameneosRedux()) { - rc++; - } - System.out.println("benchmarks/benchmarksgame/chameneosredux: " + (after - before)); - System.exit(rc); - } -} diff --git a/benchmarks/benchmarksgame/fannkuchredux.java b/benchmarks/benchmarksgame/fannkuchredux.java index cd4df0a..4d628c2 100644 --- a/benchmarks/benchmarksgame/fannkuchredux.java +++ b/benchmarks/benchmarksgame/fannkuchredux.java @@ -1,17 +1,18 @@ /* - * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly - * modified to fit the benchmarking framework. + * This benchmark has been ported from "The Computer Language Benchmarks Game" + * suite and slightly modified to fit the benchmarking framework. * - * The original file is `fannkuchredux/fannkuchredux.java-2.java` from the - * archive available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause). + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/fannkuchredux-java-2.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * * contributed by Isaac Gouy * converted to Java by Oleg Mazurov + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ /* @@ -22,62 +23,64 @@ package benchmarks.benchmarksgame; - // CHECKSTYLE.OFF: .* -public class fannkuchredux -{ - public int fannkuch(int n) { - int[] perm = new int[n]; - int[] perm1 = new int[n]; - int[] count = new int[n]; - int maxFlipsCount = 0; - int permCount = 0; - int checksum = 0; +public class fannkuchredux { + public int fannkuch(int n) { + int[] perm = new int[n]; + int[] perm1 = new int[n]; + int[] count = new int[n]; + int maxFlipsCount = 0; + int permCount = 0; + int checksum = 0; - for(int i=0; i> 1; - for(int i=0; i 0) break; - r++; - } - - permCount++; + for (int i = 0; i < n; i++) perm[i] = perm1[i]; + int flipsCount = 0; + int k; + + while (!((k = perm[0]) == 0)) { + int k2 = (k + 1) >> 1; + for (int i = 0; i < k2; i++) { + int temp = perm[i]; + perm[i] = perm[k - i]; + perm[k - i] = temp; + } + flipsCount++; } - } - // CHECKSTYLE.ON: .* + + maxFlipsCount = Math.max(maxFlipsCount, flipsCount); + checksum += permCount % 2 == 0 ? flipsCount : -flipsCount; + + // Use incremental change to generate another permutation + while (true) { + if (r == n) { + return maxFlipsCount; + } + int perm0 = perm1[0]; + int i = 0; + while (i < r) { + int j = i + 1; + perm1[i] = perm1[j]; + i = j; + } + perm1[r] = perm0; + + count[r] = count[r] - 1; + if (count[r] > 0) break; + r++; + } + + permCount++; + } + } private static final int PREDEFINED_N_PANCAKES = 7; diff --git a/benchmarks/benchmarksgame/fasta.java b/benchmarks/benchmarksgame/fasta.java index def6781..1529d42 100644 --- a/benchmarks/benchmarksgame/fasta.java +++ b/benchmarks/benchmarksgame/fasta.java @@ -1,19 +1,21 @@ /* * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and modified * to fit the benchmarking framework. - * The original benchmarks printed long strings to the stdout. This print was removed to fit the - * framework. These action can cause difference in behaviour of the original and changed benchmarks; + * The original benchmarks printed long strings to the stdout. This print was + * replaced with prints to NullOutputStream. These action can cause difference + * in behaviour of the original and changed benchmarks; * it hasn't been estimated yet. * - * The original file is `fasta/fasta.java-2.java` from the archive available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause). + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/fasta-java-2.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * * modified by Mehmet D. AKIN * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ /* @@ -24,173 +26,201 @@ package benchmarks.benchmarksgame; -// CHECKSTYLE.OFF: .* +import java.io.IOException; +import java.io.OutputStream; + public class fasta { - public static final int IM = 139968; - public static final int IA = 3877; - public static final int IC = 29573; - public static int last = 42; + private final static class NullOutputStream extends OutputStream { + @Override + public void write(int b) throws IOException { + // Do nothing + } + } - public static final int LINE_LENGTH = 60; + public static final int IM = 139968; + public static final int IA = 3877; + public static final int IC = 29573; + public static int last = 42; - // pseudo-random number generator - public static final double random(double max) { - last = (last * IA + IC) % IM; - return max * last / IM; - } + public static final int LINE_LENGTH = 60; - // Weighted selection from alphabet - public static String ALU = - "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" - + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" - + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" - + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" - + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" - + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" - + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; - public static byte[] ALUB = ALU.getBytes(); - - public static final frequency[] IUB = new frequency[] { - new frequency('a', 0.27), - new frequency('c', 0.12), - new frequency('g', 0.12), - new frequency('t', 0.27), - - new frequency('B', 0.02), - new frequency('D', 0.02), - new frequency('H', 0.02), - new frequency('K', 0.02), - new frequency('M', 0.02), - new frequency('N', 0.02), - new frequency('R', 0.02), - new frequency('S', 0.02), - new frequency('V', 0.02), - new frequency('W', 0.02), - new frequency('Y', 0.02) }; - - public static final frequency[] HomoSapiens = new frequency[] { - new frequency('a', 0.3029549426680d), - new frequency('c', 0.1979883004921d), - new frequency('g', 0.1975473066391d), - new frequency('t', 0.3015094502008d)}; - - public static void makeCumulative(frequency[] a) { - double cp = 0.0; - for (int i = 0; i < a.length; i++) { - cp += a[i].p; - a[i].p = cp; - } - } + // pseudo-random number generator + public static final double random(double max) { + last = (last * IA + IC) % IM; + return max * last / IM; + } - // naive - public final static byte selectRandom(frequency[] a) { - int len = a.length; - double r = random(1.0); - for (int i = 0; i < len; i++) - if (r < a[i].p) - return a[i].c; - return a[len - 1].c; + // Weighted selection from alphabet + public static String ALU = + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" + + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; + public static byte[] ALUB = ALU.getBytes(); + + public static final frequency[] IUB = + new frequency[] { + new frequency('a', 0.27), + new frequency('c', 0.12), + new frequency('g', 0.12), + new frequency('t', 0.27), + new frequency('B', 0.02), + new frequency('D', 0.02), + new frequency('H', 0.02), + new frequency('K', 0.02), + new frequency('M', 0.02), + new frequency('N', 0.02), + new frequency('R', 0.02), + new frequency('S', 0.02), + new frequency('V', 0.02), + new frequency('W', 0.02), + new frequency('Y', 0.02) + }; + + public static final frequency[] HomoSapiens = + new frequency[] { + new frequency('a', 0.3029549426680d), + new frequency('c', 0.1979883004921d), + new frequency('g', 0.1975473066391d), + new frequency('t', 0.3015094502008d) + }; + + public static void makeCumulative(frequency[] a) { + double cp = 0.0; + for (int i = 0; i < a.length; i++) { + cp += a[i].p; + a[i].p = cp; } + } - static int BUFFER_SIZE = 1024; - static int index = 0; - static byte[] bbuffer = new byte[BUFFER_SIZE]; - final void makeRandomFasta(String id, String desc,frequency[] a, int n) - { + // naive + public static final byte selectRandom(frequency[] a) { + int len = a.length; + double r = random(1.0); + for (int i = 0; i < len; i++) if (r < a[i].p) return a[i].c; + return a[len - 1].c; + } + + static int BUFFER_SIZE = 1024; + static int index = 0; + static byte[] bbuffer = new byte[BUFFER_SIZE]; + + final void makeRandomFasta(String id, String desc, frequency[] a, int n, OutputStream writer) + throws IOException { + index = 0; + int m = 0; + String descStr = ">" + id + " " + desc + '\n'; + writer.write(descStr.getBytes()); + while (n > 0) { + if (n < LINE_LENGTH) m = n; + else m = LINE_LENGTH; + if (BUFFER_SIZE - index < m) { + writer.write(bbuffer, 0, index); index = 0; - int m = 0; - String descStr = ">" + id + " " + desc + '\n'; - while (n > 0) { - if (n < LINE_LENGTH) m = n; else m = LINE_LENGTH; - if(BUFFER_SIZE - index < m){ - index = 0; - } - for (int i = 0; i < m; i++) { - bbuffer[index++] = selectRandom(a); - } - bbuffer[index++] = '\n'; - n -= LINE_LENGTH; - } - } - - final void makeRepeatFasta(String id, String desc, String alu, int n) - { + } + for (int i = 0; i < m; i++) { + bbuffer[index++] = selectRandom(a); + } + bbuffer[index++] = '\n'; + n -= LINE_LENGTH; + } + if (index != 0) writer.write(bbuffer, 0, index); + } + + final void makeRepeatFasta(String id, String desc, String alu, int n, OutputStream writer) + throws IOException { + index = 0; + int m = 0; + int k = 0; + int kn = ALUB.length; + String descStr = ">" + id + " " + desc + '\n'; + writer.write(descStr.getBytes()); + while (n > 0) { + if (n < LINE_LENGTH) m = n; + else m = LINE_LENGTH; + if (BUFFER_SIZE - index < m) { + writer.write(bbuffer, 0, index); index = 0; - int m = 0; - int k = 0; - int kn = ALUB.length; - String descStr = ">" + id + " " + desc + '\n'; - while (n > 0) { - if (n < LINE_LENGTH) m = n; else m = LINE_LENGTH; - if(BUFFER_SIZE - index < m){ - index = 0; - } - for (int i = 0; i < m; i++) { - if (k == kn) k = 0; - bbuffer[index++] = ALUB[k]; - k++; - } - bbuffer[index++] = '\n'; - n -= LINE_LENGTH; - } + } + for (int i = 0; i < m; i++) { + if (k == kn) k = 0; + bbuffer[index++] = ALUB[k]; + k++; + } + bbuffer[index++] = '\n'; + n -= LINE_LENGTH; } + if (index != 0) writer.write(bbuffer, 0, index); + } - public static class frequency { - public byte c; - public double p; + public static class frequency { + public byte c; + public double p; - public frequency(char c, double p) { - this.c = (byte)c; - this.p = p; - } + public frequency(char c, double p) { + this.c = (byte) c; + this.p = p; } + } - public void old_main() { - int n = 1000; - - makeRepeatFasta("ONE", "Homo sapiens alu", ALU, n * 2); - makeRandomFasta("TWO", "IUB ambiguity codes", IUB, n * 3); - makeRandomFasta("THREE", "Homo sapiens frequency", HomoSapiens, n * 5); - } - // CHECKSTYLE.ON: .* + public void old_main() throws IOException { + int n = 1000; + + OutputStream out = new NullOutputStream(); + makeRepeatFasta("ONE", "Homo sapiens alu", ALU, n * 2, out); + makeRandomFasta("TWO", "IUB ambiguity codes", IUB, n * 3, out); + makeRandomFasta("THREE", "Homo sapiens frequency", HomoSapiens, n * 5, out); + } public void timeFasta(int iters) { makeCumulative(HomoSapiens); makeCumulative(IUB); - for (int i = 0; i < iters; i++) { - old_main(); + try { + for (int i = 0; i < iters; i++) { + old_main(); + } + } catch (IOException e) { + throw new RuntimeException(e); } } public boolean verifyFasta() { index = 0; int n = 25; - - makeRepeatFasta("ONE", "Homo sapiens alu", ALU, n * 2); - int expected = 51; - int found = index; - - if (expected != found) { - System.out.println("ERROR: Expected " + expected + " but found " + found); - return false; - } - - makeRandomFasta("THREE", "Homo sapiens frequency", HomoSapiens, n * 5); - expected = 128; - found = index; - - if (expected != found) { - System.out.println("ERROR: Expected " + expected + " but found " + found); - return false; - } - - makeRandomFasta("TWO", "IUB ambiguity codes", IUB, n * 3); - expected = 77; - found = index; - if (expected != found) { - System.out.println("ERROR: Expected " + expected + " but found " + found); + OutputStream out = new NullOutputStream(); + try { + makeRepeatFasta("ONE", "Homo sapiens alu", ALU, n * 2, out); + int expected = 51; + int found = index; + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + + makeRandomFasta("THREE", "Homo sapiens frequency", HomoSapiens, n * 5, out); + expected = 128; + found = index; + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + + makeRandomFasta("TWO", "IUB ambiguity codes", IUB, n * 3, out); + expected = 77; + found = index; + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + } catch (IOException e) { return false; } diff --git a/benchmarks/benchmarksgame/fasta_4.java b/benchmarks/benchmarksgame/fasta_4.java new file mode 100644 index 0000000..32220b9 --- /dev/null +++ b/benchmarks/benchmarksgame/fasta_4.java @@ -0,0 +1,270 @@ +/* + * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and modified + * to fit the benchmarking framework. + * The original benchmarks printed long strings to the stdout. This print was + * replaced with prints to NullOutputStream. These action can cause difference + * in behaviour of the original and changed benchmarks; + * it hasn't been estimated yet. + * + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/fasta-java-4.html + * + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * modified by Mehmet D. AKIN + * modified by Rikard Mustajarvi + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html + */ + +/* + * Description: Generate and write random DNA sequences. + * Main Focus: TODO + * + */ + +package benchmarks.benchmarksgame; + +import java.io.IOException; +import java.io.OutputStream; + +public class fasta_4 { + private final static class NullOutputStream extends OutputStream { + @Override + public void write(int b) throws IOException { + // Do nothing + } + } + + static final int IM = 139968; + static final int IA = 3877; + static final int IC = 29573; + + static final int LINE_LENGTH = 60; + static final int BUFFER_SIZE = (LINE_LENGTH + 1) * 1024; // add 1 for '\n' + + // Weighted selection from alphabet + public static String ALU = + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" + + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; + + private static final FloatProbFreq IUB = + new FloatProbFreq( + new byte[] { + 'a', 'c', 'g', 't', + 'B', 'D', 'H', 'K', + 'M', 'N', 'R', 'S', + 'V', 'W', 'Y' + }, + new double[] { + 0.27, 0.12, 0.12, 0.27, + 0.02, 0.02, 0.02, 0.02, + 0.02, 0.02, 0.02, 0.02, + 0.02, 0.02, 0.02, + }); + + private static final FloatProbFreq HOMO_SAPIENS = + new FloatProbFreq( + new byte[] {'a', 'c', 'g', 't'}, + new double[] {0.3029549426680d, 0.1979883004921d, 0.1975473066391d, 0.3015094502008d}); + + int bufferIndex = 0; + + final void makeRandomFasta( + String id, String desc, FloatProbFreq fpf, int nChars, OutputStream writer) + throws IOException { + final int LINE_LENGTH = fasta_4.LINE_LENGTH; + final int BUFFER_SIZE = fasta_4.BUFFER_SIZE; + byte[] buffer = new byte[BUFFER_SIZE]; + + if (buffer.length % (LINE_LENGTH + 1) != 0) { + throw new IllegalStateException( + "buffer size must be a multiple of " + "line length (including line break)"); + } + + String descStr = ">" + id + " " + desc + '\n'; + writer.write(descStr.getBytes()); + + bufferIndex = 0; + while (nChars > 0) { + int chunkSize; + if (nChars >= LINE_LENGTH) { + chunkSize = LINE_LENGTH; + } else { + chunkSize = nChars; + } + + if (bufferIndex == BUFFER_SIZE) { + writer.write(buffer, 0, bufferIndex); + bufferIndex = 0; + } + + bufferIndex = fpf.selectRandomIntoBuffer(buffer, bufferIndex, chunkSize); + buffer[bufferIndex++] = '\n'; + + nChars -= chunkSize; + } + + writer.write(buffer, 0, bufferIndex); + } + + final void makeRepeatFasta(String id, String desc, String alu, int nChars, OutputStream writer) + throws IOException { + final byte[] aluBytes = alu.getBytes(); + int aluIndex = 0; + + final int LINE_LENGTH = fasta_4.LINE_LENGTH; + final int BUFFER_SIZE = fasta_4.BUFFER_SIZE; + byte[] buffer = new byte[BUFFER_SIZE]; + + if (buffer.length % (LINE_LENGTH + 1) != 0) { + throw new IllegalStateException( + "buffer size must be a multiple " + "of line length (including line break)"); + } + + String descStr = ">" + id + " " + desc + '\n'; + writer.write(descStr.getBytes()); + + bufferIndex = 0; + while (nChars > 0) { + final int chunkSize; + if (nChars >= LINE_LENGTH) { + chunkSize = LINE_LENGTH; + } else { + chunkSize = nChars; + } + + if (bufferIndex == BUFFER_SIZE) { + writer.write(buffer, 0, bufferIndex); + bufferIndex = 0; + } + + for (int i = 0; i < chunkSize; i++) { + if (aluIndex == aluBytes.length) { + aluIndex = 0; + } + + buffer[bufferIndex++] = aluBytes[aluIndex++]; + } + buffer[bufferIndex++] = '\n'; + + nChars -= chunkSize; + } + + writer.write(buffer, 0, bufferIndex); + } + + public void old_main() throws IOException { + int n = 1000; + + OutputStream out = new NullOutputStream(); + makeRepeatFasta("ONE", "Homo sapiens alu", ALU, n * 2, out); + makeRandomFasta("TWO", "IUB ambiguity codes", IUB, n * 3, out); + makeRandomFasta("THREE", "Homo sapiens frequency", HOMO_SAPIENS, n * 5, out); + } + + public void timeFasta(int iters) { + try { + for (int i = 0; i < iters; i++) { + old_main(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public boolean verifyFasta() { + int n = 1000; + OutputStream out = new NullOutputStream(); + try { + makeRepeatFasta("ONE", "Homo sapiens alu", ALU, n * 2, out); + int expected = 2034; + int found = bufferIndex; + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + + makeRandomFasta("TWO", "IUB ambiguity codes", IUB, n * 3, out); + expected = 3050; + found = bufferIndex; + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + + makeRandomFasta("THREE", "Homo sapiens frequency", HOMO_SAPIENS, n * 5, out); + expected = 5084; + found = bufferIndex; + + if (expected != found) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + } catch (IOException e) { + return false; + } + + return true; + } + + public static final class FloatProbFreq { + static int last = 42; + final byte[] chars; + final float[] probs; + + public FloatProbFreq(byte[] chars, double[] probs) { + this.chars = chars; + this.probs = new float[probs.length]; + for (int i = 0; i < probs.length; i++) { + this.probs[i] = (float) probs[i]; + } + makeCumulative(); + } + + private final void makeCumulative() { + double cp = 0.0; + for (int i = 0; i < probs.length; i++) { + cp += probs[i]; + probs[i] = (float) cp; + } + } + + public final int selectRandomIntoBuffer(byte[] buffer, int bufferIndex, final int nRandom) { + final byte[] chars = this.chars; + final float[] probs = this.probs; + final int len = probs.length; + + outer: + for (int rIndex = 0; rIndex < nRandom; rIndex++) { + final float r = random(1.0f); + for (int i = 0; i < len; i++) { + if (r < probs[i]) { + buffer[bufferIndex++] = chars[i]; + continue outer; + } + } + + buffer[bufferIndex++] = chars[len - 1]; + } + + return bufferIndex; + } + + // pseudo-random number generator + public static final float random(final float max) { + final float oneOverIM = (1.0f / IM); + last = (last * IA + IC) % IM; + return max * last * oneOverIM; + } + } +} diff --git a/benchmarks/benchmarksgame/fastaredux.java b/benchmarks/benchmarksgame/fastaredux.java index 060be0d..8b3cd2e 100644 --- a/benchmarks/benchmarksgame/fastaredux.java +++ b/benchmarks/benchmarksgame/fastaredux.java @@ -5,16 +5,14 @@ * nothing to fit the framework. These action can cause difference in behaviour of the original and * changed benchmarks; it hasn't been estimated yet. * - * The original file is `fastaredux/fastaredux.java-3.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause). - * - * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * The original file: + * https://salsa.debian.org/benchmarksgame-team/archive-alioth-benchmarksgame/blob/master/contributed-source-code/benchmarksgame/fastaredux/fastaredux.java-3.java * * modified by Enotus * + * LICENSE: 3-Clause BSD + * https://salsa.debian.org/benchmarksgame-team/archive-alioth-benchmarksgame/blob/master/contributed-source-code/benchmarksgame/fastaredux/LICENSE + * */ /* @@ -27,160 +25,168 @@ package benchmarks.benchmarksgame; import java.io.*; -// CHECKSTYLE.OFF: .* public class fastaredux { - static final int LINE_LENGTH = 60; - static final int OUT_BUFFER_SIZE = 256*1024; - static final int LOOKUP_SIZE = 4*1024; - static final double LOOKUP_SCALE = LOOKUP_SIZE - 1; + static final int LINE_LENGTH = 60; + static final int OUT_BUFFER_SIZE = 256 * 1024; + static final int LOOKUP_SIZE = 4 * 1024; + static final double LOOKUP_SCALE = LOOKUP_SIZE - 1; - static final class Freq { - byte c; - double p; - Freq(char cc, double pp) {c = (byte) cc;p = pp;} + static final class Freq { + byte c; + double p; + + Freq(char cc, double pp) { + c = (byte) cc; + p = pp; } + } + + static final String ALU = + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" + + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; + static final Freq[] IUB = { + new Freq('a', 0.27), + new Freq('c', 0.12), + new Freq('g', 0.12), + new Freq('t', 0.27), + new Freq('B', 0.02), + new Freq('D', 0.02), + new Freq('H', 0.02), + new Freq('K', 0.02), + new Freq('M', 0.02), + new Freq('N', 0.02), + new Freq('R', 0.02), + new Freq('S', 0.02), + new Freq('V', 0.02), + new Freq('W', 0.02), + new Freq('Y', 0.02) + }; + static final Freq[] HomoSapiens = { + new Freq('a', 0.3029549426680), + new Freq('c', 0.1979883004921), + new Freq('g', 0.1975473066391), + new Freq('t', 0.3015094502008) + }; + + static void sumAndScale(Freq[] a) { + double p = 0; + for (int i = 0; i < a.length; i++) a[i].p = (p += a[i].p) * LOOKUP_SCALE; + a[a.length - 1].p = LOOKUP_SCALE; + } + + static final class Random { - static final String ALU = - "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" - + "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" - + "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" - + "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" - + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" - + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" - + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; - static final Freq[] IUB = { - new Freq('a', 0.27), - new Freq('c', 0.12), - new Freq('g', 0.12), - new Freq('t', 0.27), - new Freq('B', 0.02), - new Freq('D', 0.02), - new Freq('H', 0.02), - new Freq('K', 0.02), - new Freq('M', 0.02), - new Freq('N', 0.02), - new Freq('R', 0.02), - new Freq('S', 0.02), - new Freq('V', 0.02), - new Freq('W', 0.02), - new Freq('Y', 0.02)}; - static final Freq[] HomoSapiens = { - new Freq('a', 0.3029549426680), - new Freq('c', 0.1979883004921), - new Freq('g', 0.1975473066391), - new Freq('t', 0.3015094502008)}; - - static void sumAndScale(Freq[] a) { - double p = 0; - for (int i = 0; i < a.length; i++) - a[i].p = (p += a[i].p) * LOOKUP_SCALE; - a[a.length - 1].p = LOOKUP_SCALE; + static final int IM = 139968; + static final int IA = 3877; + static final int IC = 29573; + static final double SCALE = LOOKUP_SCALE / IM; + static int last = 42; + + static double next() { + return SCALE * (last = (last * IA + IC) % IM); } + } + + static final class Out { + + static byte buf[] = new byte[OUT_BUFFER_SIZE]; + static final int lim = OUT_BUFFER_SIZE - 2 * LINE_LENGTH - 1; + static int ct = 0; + static OutputStream stream; - static final class Random { - - static final int IM = 139968; - static final int IA = 3877; - static final int IC = 29573; - static final double SCALE = LOOKUP_SCALE / IM; - static int last = 42; - - static double next() { - return SCALE * (last = (last * IA + IC) % IM); - } + static void checkFlush() throws IOException { + if (ct >= lim) { + stream.write(buf, 0, ct); + ct = 0; + } } - static final class Out { - - static byte buf[] = new byte[OUT_BUFFER_SIZE]; - static final int lim = OUT_BUFFER_SIZE - 2*LINE_LENGTH - 1; - static int ct = 0; - static OutputStream stream; - - static void checkFlush() throws IOException { - if (ct >= lim) { stream.write(buf, 0, ct); ct = 0;} - } - - static void close() throws IOException { - stream.write(buf, 0, ct);ct = 0; - stream.close(); - } + static void close() throws IOException { + stream.write(buf, 0, ct); + ct = 0; + stream.close(); } - - static final class RandomFasta { - - static final Freq[] lookup=new Freq[LOOKUP_SIZE]; - - static void makeLookup(Freq[] a) { - for (int i = 0, j = 0; i < LOOKUP_SIZE; i++) { - while (a[j].p < i) j++; - lookup[i] = a[j]; - } - } - - static void addLine(int bytes) throws IOException{ - Out.checkFlush(); - int lct=Out.ct; - while(lct 0) { - int bytes = Math.min(LINE_LENGTH, n); - addLine(bytes); - n -= bytes; - } - } + } + + static final class RandomFasta { + + static final Freq[] lookup = new Freq[LOOKUP_SIZE]; + + static void makeLookup(Freq[] a) { + for (int i = 0, j = 0; i < LOOKUP_SIZE; i++) { + while (a[j].p < i) j++; + lookup[i] = a[j]; + } } - static final class RepeatFasta { - - static void make(String desc, byte[] alu, int n) throws IOException { - System.arraycopy(desc.getBytes(), 0, Out.buf, Out.ct, desc.length()); - Out.ct+=desc.length(); - - byte buf[] = new byte[alu.length + LINE_LENGTH]; - for (int i = 0; i < buf.length; i += alu.length) - System.arraycopy(alu, 0, buf, i, Math.min(alu.length, buf.length - i)); - - int pos = 0; - while (n > 0) { - int bytes = Math.min(LINE_LENGTH, n); - Out.checkFlush(); - System.arraycopy(buf, pos, Out.buf, Out.ct, bytes); Out.ct+=bytes; - Out.buf[Out.ct++] = (byte)'\n'; - pos = (pos + bytes) % alu.length; - n -= bytes; - } - } + static void addLine(int bytes) throws IOException { + Out.checkFlush(); + int lct = Out.ct; + while (lct < Out.ct + bytes) { + double r = Random.next(); // Problematic for AOT! See fastaredux_revised.java. + int ai = (int) r; + while (lookup[ai].p < r) ai++; + Out.buf[lct++] = lookup[ai].c; + } + Out.buf[lct++] = (byte) '\n'; + Out.ct = lct; } - private void old_main() throws IOException { - int n = 1000; + static void make(String desc, Freq[] a, int n) throws IOException { + makeLookup(a); + + System.arraycopy(desc.getBytes(), 0, Out.buf, Out.ct, desc.length()); + Out.ct += desc.length(); - RepeatFasta.make(">ONE Homo sapiens alu\n", ALU.getBytes(), n * 2); - RandomFasta.make(">TWO IUB ambiguity codes\n", IUB, n * 3); - RandomFasta.make(">THREE Homo sapiens frequency\n", HomoSapiens, n * 5); + while (n > 0) { + int bytes = Math.min(LINE_LENGTH, n); + addLine(bytes); + n -= bytes; + } } - // CHECKSTYLE.ON: .* + } + + static final class RepeatFasta { + + static void make(String desc, byte[] alu, int n) throws IOException { + System.arraycopy(desc.getBytes(), 0, Out.buf, Out.ct, desc.length()); + Out.ct += desc.length(); + + byte buf[] = new byte[alu.length + LINE_LENGTH]; + for (int i = 0; i < buf.length; i += alu.length) + System.arraycopy(alu, 0, buf, i, Math.min(alu.length, buf.length - i)); + + int pos = 0; + while (n > 0) { + int bytes = Math.min(LINE_LENGTH, n); + Out.checkFlush(); + System.arraycopy(buf, pos, Out.buf, Out.ct, bytes); + Out.ct += bytes; + Out.buf[Out.ct++] = (byte) '\n'; + pos = (pos + bytes) % alu.length; + n -= bytes; + } + } + } + + private void old_main() throws IOException { + int n = 1000; + + RepeatFasta.make(">ONE Homo sapiens alu\n", ALU.getBytes(), n * 2); + RandomFasta.make(">TWO IUB ambiguity codes\n", IUB, n * 3); + RandomFasta.make(">THREE Homo sapiens frequency\n", HomoSapiens, n * 5); + } /** Writes to nowhere */ public class NullOutputStream extends OutputStream { @Override - public void write(int b) throws IOException { - } + public void write(int b) throws IOException {} } public void timeFastaRedux(int iters) throws IOException { diff --git a/benchmarks/benchmarksgame/knucleotide.java b/benchmarks/benchmarksgame/knucleotide.java index 57dce95..9389b37 100644 --- a/benchmarks/benchmarksgame/knucleotide.java +++ b/benchmarks/benchmarksgame/knucleotide.java @@ -2,15 +2,16 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `knucleotide/knucleotide.java-4.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause). + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/knucleotide-java-4.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * * contributed by Daryl Griffith + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ /* @@ -34,7 +35,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -// CHECKSTYLE.OFF: .* public class knucleotide { private byte[] temp = null; @@ -43,243 +43,245 @@ public class knucleotide { private ByteArrayInputStream stream = null; private LineInputStream in; - static Map MAP; - static final int[] SEQUENCES1 = {2, 1}; - static final int[] SEQUENCES2 = {18, 12, 6, 4, 3}; - static final String[] SPICIFIC_SEQUENCES = new String[]{"GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"}; - static final int LINE_LENGTH = 60; - static final int EOF = -1; - static byte[] nucleotides; - - public void old_main() { - { - int n; - int i; + static Map MAP; + static final int[] SEQUENCES1 = {2, 1}; + static final int[] SEQUENCES2 = {18, 12, 6, 4, 3}; + static final String[] SPICIFIC_SEQUENCES = + new String[] {"GGT", "GGTA", "GGTATT", "GGTATTTTAATT", "GGTATTTTAATTTATAGT"}; + static final int LINE_LENGTH = 60; + static final int EOF = -1; + static byte[] nucleotides; - try { -outer: - for (;;) { - n = in.readLine(temp); - if (n == EOF) { - return; - } - if (n != LINE_LENGTH) { - for (i = 0; i < species.length; i++) { - if (temp[i] != species[i]) { - continue outer; - } - } - break; - } - } - i = 0; - for (;;) { - n = in.readLine(temp); - if (n == EOF) { - break; - } - for (int j = 0; j < n; i++, j++) { - buffer[i] = translate(temp[j]); - } - } - if (i == buffer.length) { - nucleotides = buffer; - } else { - nucleotides = new byte[i]; - System.arraycopy(buffer, 0, nucleotides, 0, i); - } - } catch (IOException e) { + public void old_main() { + { + int n; + int i; + try { + outer: + for (; ; ) { + n = in.readLine(temp); + if (n == EOF) { + return; + } + if (n != LINE_LENGTH) { + for (i = 0; i < species.length; i++) { + if (temp[i] != species[i]) { + continue outer; + } } + break; + } } - countSequences(SEQUENCES1); - { - List> sequence1 = new ArrayList<>(); - List> sequence2 = new ArrayList<>(); - - for (Entry entry : MAP.entrySet()) { - switch (Long.numberOfLeadingZeros(entry.getKey().key)) { - case 61: - sequence1.add(entry); - break; - case 59: - sequence2.add(entry); - } - } - printSequence(sequence1); - printSequence(sequence2); + i = 0; + for (; ; ) { + n = in.readLine(temp); + if (n == EOF) { + break; + } + for (int j = 0; j < n; i++, j++) { + buffer[i] = translate(temp[j]); + } } - countSequences(SEQUENCES2); - { - Key key = new Key(); + if (i == buffer.length) { + nucleotides = buffer; + } else { + nucleotides = new byte[i]; + System.arraycopy(buffer, 0, nucleotides, 0, i); } + } catch (IOException e) { + + } } - - static byte translate(byte b) { - return (byte) ((b >> 1) & 3); - } + countSequences(SEQUENCES1); + { + List> sequence1 = new ArrayList<>(); + List> sequence2 = new ArrayList<>(); - static void countSequences(int[] sequences) { - for (int sequence : sequences) { - updateHashtable(sequence); + for (Entry entry : MAP.entrySet()) { + switch (Long.numberOfLeadingZeros(entry.getKey().key)) { + case 61: + sequence1.add(entry); + break; + case 59: + sequence2.add(entry); } + } + printSequence(sequence1); + printSequence(sequence2); } + countSequences(SEQUENCES2); + { + Key key = new Key(); + } + } - static void updateHashtable(int sequence) { - int sequenceTop = nucleotides.length - sequence + 1; - Key key = new Key(); - Value value; - - for (int i = 0; i < sequenceTop; i++) { - key.setHash(i, sequence); - value = MAP.get(key); - if (value == null) { - value = new Value(); - value.count = 1; - MAP.put(key, value); - key = new Key(); - } else { - value.count++; - } - } + static byte translate(byte b) { + return (byte) ((b >> 1) & 3); + } + + static void countSequences(int[] sequences) { + for (int sequence : sequences) { + updateHashtable(sequence); } + } + + static void updateHashtable(int sequence) { + int sequenceTop = nucleotides.length - sequence + 1; + Key key = new Key(); + Value value; - static void printSequence(List> sequence) { - int sum = 0; + for (int i = 0; i < sequenceTop; i++) { + key.setHash(i, sequence); + value = MAP.get(key); + if (value == null) { + value = new Value(); + value.count = 1; + MAP.put(key, value); + key = new Key(); + } else { + value.count++; + } + } + } - Collections.sort(sequence, new Comparator>() { + static void printSequence(List> sequence) { + int sum = 0; - @Override - public int compare(Entry entry1, Entry entry2) { - if (entry2.getValue().count != entry1.getValue().count) { - return entry2.getValue().count - entry1.getValue().count; - } - return entry1.getKey().toString().compareTo(entry2.getKey().toString()); + Collections.sort( + sequence, + new Comparator>() { + + @Override + public int compare(Entry entry1, Entry entry2) { + if (entry2.getValue().count != entry1.getValue().count) { + return entry2.getValue().count - entry1.getValue().count; } + return entry1.getKey().toString().compareTo(entry2.getKey().toString()); + } }); - for (Entry entry : sequence) { - sum += entry.getValue().count; - } + for (Entry entry : sequence) { + sum += entry.getValue().count; } + } - static class LineInputStream implements Closeable { - - private static final int LF = 10; - private final ByteBuffer buffer = ByteBuffer.allocate(8192); - private final InputStream in; + static class LineInputStream implements Closeable { - public LineInputStream(InputStream in) { - this.in = in; - buffer.limit(buffer.position()); - } + private static final int LF = 10; + private final ByteBuffer buffer = ByteBuffer.allocate(8192); + private final InputStream in; - public int readLine(byte[] b) throws IOException { - for (int end = buffer.position(); end < buffer.limit(); end++) { - if (buffer.get(end) == LF) { - if (end - buffer.position() == LINE_LENGTH) { - buffer.get(b); - buffer.position(buffer.position() + 1); - return LINE_LENGTH; - } else { - int size = end - buffer.position(); + public LineInputStream(InputStream in) { + this.in = in; + buffer.limit(buffer.position()); + } - buffer.get(b, 0, size); - buffer.position(buffer.position() + 1); - return size; - } - } - } - buffer.compact(); - int n = in.read(buffer.array(), buffer.position(), buffer.remaining()); + public int readLine(byte[] b) throws IOException { + for (int end = buffer.position(); end < buffer.limit(); end++) { + if (buffer.get(end) == LF) { + if (end - buffer.position() == LINE_LENGTH) { + buffer.get(b); + buffer.position(buffer.position() + 1); + return LINE_LENGTH; + } else { + int size = end - buffer.position(); - if (n == EOF) { - buffer.flip(); - if (buffer.hasRemaining()) { - int size = buffer.remaining(); + buffer.get(b, 0, size); + buffer.position(buffer.position() + 1); + return size; + } + } + } + buffer.compact(); + int n = in.read(buffer.array(), buffer.position(), buffer.remaining()); - buffer.get(b, 0, size); - return size; - } else { - return EOF; - } - } else { - buffer.position(buffer.position() + n); - buffer.flip(); - } - for (int end = buffer.position(); end < buffer.limit(); end++) { - if (buffer.get(end) == LF) { - if (end - buffer.position() == LINE_LENGTH) { - buffer.get(b); - buffer.position(buffer.position() + 1); - return LINE_LENGTH; - } else { - int size = end - buffer.position(); + if (n == EOF) { + buffer.flip(); + if (buffer.hasRemaining()) { + int size = buffer.remaining(); - buffer.get(b, 0, size); - buffer.position(buffer.position() + 1); - return size; - } - } - } - return EOF; + buffer.get(b, 0, size); + return size; + } else { + return EOF; } + } else { + buffer.position(buffer.position() + n); + buffer.flip(); + } + for (int end = buffer.position(); end < buffer.limit(); end++) { + if (buffer.get(end) == LF) { + if (end - buffer.position() == LINE_LENGTH) { + buffer.get(b); + buffer.position(buffer.position() + 1); + return LINE_LENGTH; + } else { + int size = end - buffer.position(); - @Override - public void close() throws IOException { - in.close(); + buffer.get(b, 0, size); + buffer.position(buffer.position() + 1); + return size; + } } + } + return EOF; } - static class Key { + @Override + public void close() throws IOException { + in.close(); + } + } - long key; + static class Key { - void setHash(int offset, int length) { - key = 1; - for (int i = offset + length - 1; i >= offset; i--) { - key = (key << 2) | nucleotides[i]; - } - } + long key; - void setHash(String species) { - key = 1; - for (int i = species.length() - 1; i >= 0; i--) { - key = (key << 2) | translate((byte) species.charAt(i)); - } - } + void setHash(int offset, int length) { + key = 1; + for (int i = offset + length - 1; i >= offset; i--) { + key = (key << 2) | nucleotides[i]; + } + } - @Override - public int hashCode() { - return (int) key; - } + void setHash(String species) { + key = 1; + for (int i = species.length() - 1; i >= 0; i--) { + key = (key << 2) | translate((byte) species.charAt(i)); + } + } - @Override - public boolean equals(Object obj) { - final Key other = (Key) obj; + @Override + public int hashCode() { + return (int) key; + } - return key == other.key; - } + @Override + public boolean equals(Object obj) { + final Key other = (Key) obj; - @Override - public String toString() { - char[] name = new char[(63 - Long.numberOfLeadingZeros(key)) / 2]; - long temp = key; + return key == other.key; + } - for (int i = 0; temp > 1; temp >>= 2, i++) { - name[i] = (char) (((temp & 3) << 1) | 'A'); - if (name[i] == 'E') { - name[i] = 'T'; - } - } - return new String(name); + @Override + public String toString() { + char[] name = new char[(63 - Long.numberOfLeadingZeros(key)) / 2]; + long temp = key; + + for (int i = 0; temp > 1; temp >>= 2, i++) { + name[i] = (char) (((temp & 3) << 1) | 'A'); + if (name[i] == 'E') { + name[i] = 'T'; } + } + return new String(name); } + } - static class Value { + static class Value { - int count; - } - // CHECKSTYLE.ON: .* + int count; + } public void reinitBuffers() { MAP = new HashMap<>(); @@ -288,7 +290,7 @@ outer: public knucleotide() { temp = new byte[LINE_LENGTH]; - buffer = new byte[125_000_000]; + buffer = new byte[30_000]; stream = new ByteArrayInputStream(fastaStr.getBytes()); in = new LineInputStream(stream); } @@ -330,1007 +332,1008 @@ outer: System.exit(rc); } - private static final String fastaStr = ">ONE Homo sapiens alu\n" - + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n" - + "TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n" - + "AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n" - + "GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n" - + "CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n" - + "GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n" - + "GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n" - + "TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n" - + "AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n" - + "GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n" - + "AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n" - + "AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n" - + "GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n" - + "CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n" - + "AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n" - + "TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n" - + "TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n" - + "GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n" - + "TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n" - + "CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n" - + "CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n" - + "TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n" - + "CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n" - + "AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n" - + "GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n" - + "TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n" - + "TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n" - + "GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n" - + "GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n" - + "ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n" - + "TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n" - + "CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n" - + "CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n" - + "GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n" - + "CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n" - + "GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n" - + "GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n" - + "GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n" - + "GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n" - + "GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n" - + "AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n" - + "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n" - + "GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n" - + "AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n" - + "GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n" - + "ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n" - + "GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n" - + "GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n" - + "GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n" - + "TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n" - + "AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n" - + "GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n" - + "CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n" - + "TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n" - + "ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n" - + "GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n" - + "ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n" - + "CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n" - + "CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n" - + "ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n" - + "CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n" - + "AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n" - + "CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n" - + "AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n" - + "CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n" - + "CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n" - + "CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n" - + "CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n" - + "ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n" - + "AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n" - + "TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n" - + "ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n" - + "CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n" - + "AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n" - + "AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n" - + "TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n" - + "CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n" - + "TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n" - + "CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n" - + "GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n" - + "GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n" - + "CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n" - + "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n" - + "GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n" - + "AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n" - + "GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n" - + "CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n" - + "GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n" - + "TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n" - + "CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n" - + "ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n" - + "CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n" - + "AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n" - + "CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n" - + "CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n" - + "ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n" - + "GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n" - + "GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n" - + "GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n" - + "TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n" - + "CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n" - + "GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n" - + "CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n" - + "GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n" - + "CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n" - + "CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n" - + "CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n" - + "ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n" - + "CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n" - + "GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n" - + "AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n" - + "ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n" - + "TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n" - + "GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n" - + "GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n" - + "TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n" - + "AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n" - + "ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n" - + "GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n" - + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n" - + "TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n" - + "CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n" - + "GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n" - + "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n" - + "GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n" - + "TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n" - + "ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n" - + "TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n" - + "GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n" - + "TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n" - + "GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n" - + "GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n" - + "ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n" - + "GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n" - + "GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n" - + "CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n" - + "ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n" - + "AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n" - + "TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n" - + "CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n" - + "TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n" - + "CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n" - + "GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n" - + "GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n" - + "CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n" - + "TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n" - + "CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n" - + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n" - + "AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n" - + "AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n" - + "GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n" - + "TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n" - + "AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n" - + "AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n" - + "CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n" - + "TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n" - + "GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n" - + "CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n" - + "CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n" - + "GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n" - + "AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n" - + "GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n" - + "TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n" - + "CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n" - + "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n" - + "CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n" - + "AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n" - + "ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n" - + "ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n" - + "AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n" - + "GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n" - + "GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n" - + "CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n" - + "GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n" - + "CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n" - + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n" - + "GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n" - + "GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n" - + "CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n" - + "AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n" - + "CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n" - + "CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n" - + "GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n" - + "GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n" - + "TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n" - + "ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n" - + "CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n" - + "ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n" - + "GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n" - + "TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n" - + "GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n" - + "GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n" - + "GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n" - + "GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n" - + "TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n" - + "TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n" - + "TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n" - + "GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n" - + "CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n" - + "TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n" - + ">TWO IUB ambiguity codes\n" - + "cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n" - + "tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n" - + "NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n" - + "cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n" - + "gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n" - + "HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n" - + "tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n" - + "tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n" - + "acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n" - + "tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n" - + "gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n" - + "accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n" - + "RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n" - + "tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n" - + "cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n" - + "ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n" - + "actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n" - + "YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n" - + "KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n" - + "aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n" - + "aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n" - + "gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n" - + "tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n" - + "tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n" - + "ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n" - + "ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n" - + "BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n" - + "aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n" - + "tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n" - + "cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n" - + "aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n" - + "tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n" - + "aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n" - + "gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n" - + "ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n" - + "taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n" - + "ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n" - + "gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n" - + "gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n" - + "tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n" - + "tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n" - + "taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n" - + "cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n" - + "aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n" - + "cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n" - + "ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n" - + "attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n" - + "ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n" - + "attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n" - + "tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n" - + "aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n" - + "cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n" - + "gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n" - + "attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n" - + "BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n" - + "DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n" - + "tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n" - + "tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n" - + "tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n" - + "taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n" - + "aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n" - + "DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n" - + "VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n" - + "agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n" - + "gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n" - + "tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n" - + "catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n" - + "tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n" - + "aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n" - + "aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n" - + "acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n" - + "tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n" - + "aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n" - + "acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n" - + "RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n" - + "RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n" - + "tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n" - + "gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n" - + "YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n" - + "ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n" - + "ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n" - + "gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n" - + "KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n" - + "aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n" - + "gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n" - + "taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n" - + "VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n" - + "NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n" - + "MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n" - + "cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n" - + "ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n" - + "tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n" - + "aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n" - + "actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n" - + "tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n" - + "gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n" - + "BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n" - + "aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n" - + "aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n" - + "YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n" - + "aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n" - + "cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n" - + "tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n" - + "tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n" - + "MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n" - + "taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n" - + "tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n" - + "RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n" - + "agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n" - + "NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n" - + "gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n" - + "aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n" - + "ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n" - + "cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n" - + "tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n" - + "RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n" - + "tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n" - + "gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n" - + "tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n" - + "ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n" - + "tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n" - + "ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n" - + "BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n" - + "gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n" - + "acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n" - + "gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n" - + "taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n" - + "acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n" - + "tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n" - + "catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n" - + "tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n" - + "atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n" - + "ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n" - + "ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n" - + "cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n" - + "SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n" - + "VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n" - + "BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n" - + "NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n" - + "tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n" - + "ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n" - + "cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n" - + "VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n" - + "atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n" - + "aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n" - + "tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n" - + "RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n" - + "gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n" - + "tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n" - + "attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n" - + "atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n" - + "cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n" - + "NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n" - + "ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n" - + "cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n" - + "aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n" - + "agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n" - + "tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n" - + "ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n" - + "ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n" - + "tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n" - + "taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n" - + "tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n" - + "YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n" - + "ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n" - + "tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n" - + "ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n" - + "attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n" - + "atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n" - + "YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n" - + "gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n" - + "MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n" - + "tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n" - + "ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n" - + "aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n" - + "BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n" - + "tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n" - + "StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n" - + "cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n" - + "atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n" - + "atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n" - + "ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n" - + "gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n" - + "tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n" - + "BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n" - + "agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n" - + "HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n" - + "tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n" - + "aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n" - + "catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n" - + "aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n" - + "tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n" - + "cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n" - + "DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n" - + "gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n" - + "tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n" - + "atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n" - + "KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n" - + "tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n" - + "tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n" - + "taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n" - + "NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n" - + "HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n" - + "ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n" - + "tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n" - + "cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n" - + "ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n" - + "HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n" - + "gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n" - + "BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n" - + "gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n" - + "KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n" - + "cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n" - + "tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n" - + "taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n" - + "gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n" - + "aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n" - + "acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n" - + "RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n" - + "attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n" - + "KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n" - + "KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n" - + "gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n" - + "aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n" - + "aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n" - + "ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n" - + "tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n" - + "aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n" - + "tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n" - + "MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n" - + "cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n" - + "caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n" - + "ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n" - + "acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n" - + "tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n" - + "gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n" - + "atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n" - + "aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n" - + "NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n" - + "taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n" - + "aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n" - + "ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n" - + "DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n" - + "tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n" - + "aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n" - + "ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n" - + "ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n" - + "RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n" - + "aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n" - + "aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n" - + "aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n" - + "tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n" - + "atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n" - + "BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n" - + "gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n" - + "cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n" - + "RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n" - + "taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n" - + "aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n" - + "gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n" - + "gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n" - + "aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n" - + "gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n" - + "ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n" - + "MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n" - + "SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n" - + "aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n" - + "VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n" - + "HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n" - + "agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n" - + "gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n" - + "agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n" - + "tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n" - + "gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n" - + "VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n" - + "tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n" - + "MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n" - + "actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n" - + "WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n" - + "tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n" - + "KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n" - + "BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n" - + "attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n" - + "VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n" - + "aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n" - + "tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n" - + "tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n" - + "tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n" - + "VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n" - + "tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n" - + "ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n" - + "tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n" - + "WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n" - + "tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n" - + "tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n" - + "MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n" - + "tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n" - + "atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n" - + "aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n" - + "aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n" - + ">THREE Homo sapiens frequency\n" - + "aagtccgatgagtttcaatcatgactgcgaggagatccatgcggtgtacctaaacctaca\n" - + "tcgtatgtatttgctgacgttcattcttgatacataaagatccgatatcggtccactttg\n" - + "tttaccaaaagccctaccttcgtaacgatggaaatgtgaatgagagtgaaatacacgatg\n" - + "gggatattgccggtgagtacaagttagaccacacattagaactgacctatattcgtcatc\n" - + "atagagatggagtatgaattgattctgcgaagtacactggctttacgagtatctagacgc\n" - + "cgcggtatatctcccgtcaatactatgaaggtatatatatagaggctgaaaattcatgtt\n" - + "caatcctctttctaagagtgagtgggagccccttctgttgtcggagtaaaaaggcattat\n" - + "tcctcaaattgtcagaagcaaagtatacgtgatgtttgcttagaacaaaagagttacctt\n" - + "agggtaggtaaatctcgattcaccgagagaagtgattttggcggtgtgcgattaattctt\n" - + "ttgatgacagatctcattattttatatagctccctctttgtatttagagtttgcgtaggt\n" - + "aacctggcaaaaccatatcccggggggagagtgcgctgaacattttatacgatgtgatta\n" - + "ctcaaaggataaggttcgaggcctctatactcatggaactatcttataattataatggat\n" - + "cgtggctcattccacctatccaaacttctttgtgatctgatgctacgagtgtgaacaaac\n" - + "gtacatcttctaaggaatttgggacgtttcatagctcgcatttcattcctgaaaacttaa\n" - + "atatttttaaaaattgattctactgcgaggaactaaggtgtagacaagcccttagtaacc\n" - + "ggtggatgtcgcttcagttttatagcaaacattattcaatttcagtcttgactgaaatta\n" - + "gtttgttagtgttagaggtccatatgtcacatgcatatggtctagatgccattgtacagt\n" - + "aataccttagattagtattagcggcatgcgtacttggatttcacttgtaagaatgagctt\n" - + "aggacggtcgcctgtagggctgcaaataggaatacttacaatttttgatgacttgttagc\n" - + "atatcgctatcacccataaaaaacctgatacttgatgagcgggtgattgagactatgtac\n" - + "tgatataattcaatagctccaatagatgaaacagctatgcgcctatttatgtcaaataat\n" - + "cgatgtgatacaagcttagagctgaacgagcgcgagtggaattagcggtgatctctatcc\n" - + "taaaaagccacgaaatcgatcccagaagctaatacccgaggtgtcaagcttgagttcagt\n" - + "taaatttgcatctcatgccccacgaagaatgggtagagagtttgaaggtgcttctggatt\n" - + "ttcctaagtacgtggtaaaaatttgatgtaaatgaacacctcctaatggttgtgttaacc\n" - + "acaaacccctgggtgaatctgattagccaacccagtgatctgatttcagttgtcaaatct\n" - + "cttttttataactaccttttgtttccataatttaaccggatctcataatgaacaaacggg\n" - + "tagaataatggtagcacatagcgagcttgtctattcagaaatatggcctactcagaatgt\n" - + "attctccaaatcagtgttatgcgaaacgtaattttacgtgtaataatgatgatttcttat\n" - + "cggttccttgtactacaatactcttgcccaacaaatactaagcataacagcaaaattcga\n" - + "atccccctccttttaataaatggtttttcaatatagccgattcgtattcgttagtctttc\n" - + "accaactattaacctggcatctaattaataaaatcaccaaaggactctataatatgacag\n" - + "tcacttcggcctcttttaagacagttgattattgcaggtccgcaattgatggtgacatgc\n" - + "acaattagttagaatccgactatggagacaattaacaattgtagtgcccatttggtccag\n" - + "ttgacttcaaccacgagttataaaggtattttaatttatagtcgatagtaccaacaacaa\n" - + "gcacaatcataattatgttagaaaacccagggggtaatgctctaaatccagctttaaggc\n" - + "cagagtgcactatgaaatcgccattgatcattgtgtcattcgctgaacttggtgtctagg\n" - + "aggtgccgagtgagaatatcagataccttatgaagcaacgattatatctggactagatca\n" - + "tgatgatcggaataaaacattgaaataagtccttatcaaggagcataaacattttattta\n" - + "atttatacttcgtaaataaattcagaattttttttcaagacattaatctgagtaaatgac\n" - + "ggctagaaagggttcctactcgaatcgtagcctacgcatgtgggcagtaacctggcttgc\n" - + "gtttttactgaaacaaaggttcaccggaaagaaggctgccacttttagcttcttgacgat\n" - + "ctttagcgtcatatttttagattagtcgaaaaacggaaaacaaacttaacgaagctggtt\n" - + "gcacggggtaccgagaaaccaaagagcaggacaactccttgatcgggaagaactgaaata\n" - + "gacagctgtcattttcattggtcaacttatcaatataacgaccaccgtagtgacgcttgc\n" - + "atgaaaatactgaggatgtaaactatagccagtcaggcccgcgtgttgactaattgatga\n" - + "agcaaacaaaatagccggtattcgttaaaaggaacgggttgccagctacagatatactct\n" - + "aggtatatcccaaacaagagacgtcctttggctgttgtaatcggtcataatacttgtcac\n" - + "ataaacaagatcgctgaattaaacattaaacagttagtgatacacaatcgtggttggggc\n" - + "tgggatgtgcaataaaaagtcatctatcgtctatcacagagcgacgtaaatttagacaaa\n" - + "cattattatttcttgacaatggaatcgataagcgttcctctaacttggtatatatatctc\n" - + "gaccccgggattccagccattcttgtatgaagatttaaccatttaactatgcatagttga\n" - + "atggtaaggaaaatgatattgactgcaacagattttggatgcaaaaatatttgtgaatta\n" - + "ttggttatatactggttgtatagcacaatcattaggtcctagaaggcatactcaacctca\n" - + "gcgagagagctagcatgcataattgtaccgcccatattaatattcctgaaatgatttctt\n" - + "acattacgcccaatttcagtcatcgaacacccccatcaatttacccgatagagaacgtga\n" - + "tcatacgcaataccctatgcgaacgtccactctatagcgtctgtatacaatgattattcg\n" - + "ttccatttacaacgttaagtaatttaaacttacataaggacaaggaaatccgcgaacctc\n" - + "ctggaatgtatgagttatttatgcagttaacttcgtctcgaccggaactaaaggcgtcgt\n" - + "acgaatgaaaggccacttttagaagagacctttgtatccattgtggagaatatcataaat\n" - + "tcaagatggggtgtcatgctattcggtcctaaacattcttaatggctgttctattgttag\n" - + "tctgatttaaaatggaaccatagcacgaatagttagatagggctcatacccctgtaacga\n" - + "tctacaaatccttccccgggtgtgtgcgttagcgacggaaagttttacggtttgtgatca\n" - + "aagaacactcacacgtcagattattacactgatacgaattatttcagtcgacagtaattg\n" - + "aatagaaacttattaacgccagcacctgacacggtaagtaaggcaggtctgaactgtttg\n" - + "actgtaaaaaaatggtaatatttttaaaaatcttgatttctatatcaaatgatgtgtagt\n" - + "tttttctctgttattaaaatcccagtgcgcgaaatttagatcgttacgactcacgtacaa\n" - + "gatcacacatcacacgcgttagcgaaagcggaatggctaatacagccctacgcaacgtag\n" - + "tgggatcaacatatggacgaatttatgctcaatgagccaacctcccccgcattgcggttc\n" - + "attttaaggcctgggtaacatctatcgtttagataatcaaaggaatccgactatgcaatt\n" - + "gtctgacttcatccgctctcaagtccaatgcaggcgctacgtgtttctttaatcaatacc\n" - + "atattgaaatcgtaatacgataattgttgctattgactacaggttatgaaaaaacttact\n" - + "ttgcgggtacatgcatatttttgtaccacattattacgcgatatctctcagtgtactcta\n" - + "aattaaaccctcttcgaacattttagttcctattcgtaaacacgtgctacgcggcaattt\n" - + "gccggtcgtagaatggacaactccagttcaactgcatgtaactcatagctcgcgttagta\n" - + "taaattgactagtagccatgggacaaagtaactagtcagcggaaaagatccctttaaaga\n" - + "tatatgcaggttgcaagcataaagctcattgctcgaggtgcaccgtggtattccaaaagc\n" - + "gtctctatcgtatcttctaattttgggccgtgagaatcgaaactactctgatttgctgca\n" - + "cacgttaggtaatatcgcccattttcccgtataagctccgtacttatacgaactacacga\n" - + "ccttttaagcattagccgctcatatcgtgattcgtgtacagatgagtctattaaaattac\n" - + "agacatactccatatctcgctccttgaactttgaataatgcgctaacttgtactatgaat\n" - + "aggcagaacccaactttcccgtttgcgtcaagcggggaaacgatacatgttgtcagattt\n" - + "atgattatctagttttagatcacgtttaccgataatcggctgtggtctgagcagtcctac\n" - + "actgagtatttacttcagcttcatatcggtccgaaaaaaggttgtgaccgaatgtcaaaa\n" - + "tacggagtacgatgggcatcttttttcgagtcgcggttgcagggcagcaaaaggcttaaa\n" - + "ccatttttacgatttttactatagcggtcatgaagtgcgaaactgcttgcaaattttcta\n" - + "cacacattgtggctcttgtccttgaagcttatggcgaaaatttgaaacatagtataccag\n" - + "ggaaagcgcgaattatttggtgactaatagtccgtgggtttgagccatatacctaacgcc\n" - + "ataaactacgtggtgctttagatgcaatctaaacagaacagaaagcgtagcgctcatcag\n" - + "cacagactaactttttcagtttgagtcgccggagggacttcgagacaagaacgcgtcaag\n" - + "tcgcttgcgcggcacggattcgattgggcggctcaatcttgcctaatttctactattgtc\n" - + "agctgtacgactgtactaagtgtatagccccaaataaaagaagtatcgatgcgtctttat\n" - + "gaccaaaggtcttataattgaagcgcacttccgttcatcaaattaaatcctggcttaccc\n" - + "gattctccggaagtctgacctagagattgacgacggccgcgtattattgagacctcttca\n" - + "ggattaatcaataacgaagtagttgatctgtttggcgacgtaccttaagccgactccgct\n" - + "acacgagtttctactaaaccaatgtagccttatgcttagatgaataccgtcctaattaga\n" - + "tattccggcataacagcagtaaattatctgttcaatggacgaacattgaattgttagtat\n" - + "tctacacaagtcaggcctcgtaaatattaggtaaggccgtgggataacctacgtgatatg\n" - + "cttgagcttgcgttgcaagctctcgttaatcattaatttaggtgcgtgagggttaaacac\n" - + "cagcatattctatatgctagacgtcttccttaaaggatcgtagtattataattaataata\n" - + "agaaatatggttgacgtctagtcagcgggcatacgctgctctatatactggcattattca\n" - + "aaacttgacggtaaaaaaacgaattttaaggcgctcacgtcgaatgagccgaactcatgg\n" - + "gaaccaaaatgtcacagaaaacacctctttattgccaagcatgcaataaaaaaaatgtta\n" - + "atagtacgtttacgacattttattttataataaagagaaactattacacctattgatatg\n" - + "ataggacgtaaattaacgagtagcctgcatagaggcaaatgaggtttctacatggtatag\n" - + "acctgatgctgaaacatcgatgagttttggtcccctcgctcgttgaaatctagtcattta\n" - + "ctactgtctttcgagctattataccacttcactatgtggtgtttctttgctatgtatggg\n" - + "gctagtcaaacatgatgactatagctacaactcagagagcgggcgtgttaagagtatctc\n" - + "atgctagaactgcacgacgaacttgatacaaagtaacaacatttacgattccacaaggtg\n" - + "actttgaagaaacatagtttaattctctgcttcgatcatttctataaaccggtaccatcg\n" - + "cagcggatagatgcataacatttctactactccaggcatcttaaaacacacgtagtactt\n" - + "cactagattaagacacgataagtgtataacttggcagtgggaagcaaggagattggcgaa\n" - + "ctcctggcatctgttacgttttgttcaggctcggttgttgataatgtccgactcctgcca\n" - + "tattgaagactcgctcgagggagatcgggattcgttgattataagtacacgtgttccgta\n" - + "atactatgaggcagtgattcaaaatggcacttctgacttacatgactaggtattattacc\n" - + "acggaagcgttaaaggcacactcttatggacttaagattgcaagtgccttcttctagcct\n" - + "gaattcgcgggttcaacacaaactctctttagacatccgttgcctaaaggctgagacgta\n" - + "ggggcaaccctttaactatgtactaaaaaactagttggtaatttaacaacgtgtccaatc\n" - + "aagacgatgcaccaacgcggtgcgaaaatcgggttaagcaaacacaaataggaattgtga\n" - + "taaaccccaccttgagaggtcgcaagaccaacctcgggaacaacggctctaagagaataa\n" - + "cctaaatccggatgagtagactgtgtaactctctaaagggaagtgaaaaaaagctaagca\n" - + "tacatttaggtctcctgcattgcattcaattgaatcgtttgtattatgagctgtacagta\n" - + "gctatatcagctatagttatcccagaggaacaggtaaactagctctgagcgtgaaatccg\n" - + "gatattagaacccctagatgggattgattctagctaatacaggcttatctggttttacag\n" - + "ttatctagatgattggtaaggtgaaacgcttggtgccttccaccacttaaacaaaagtat\n" - + "tgcccgggaagctattttctaggtattataaagtcgagcattaatatcaatttgacagta\n" - + "aaggtctttcaccagcttcatatgccatagggcccatactcgatttaaattgaacggttt\n" - + "aacgagtattggaactctcacttataactgagtagctatacgaaaaatctggtccatttc\n" - + "cagaaatttattatcgatttgctgcttagtacccaggaagtgataacccttgaaggcaca\n" - + "acactgtaataagttttcctgtcacatctgtaatattcggtcactacgcattcacgacta\n" - + "aagataattactatactaattaaaagttcaatgttagggccgaatcatagtagaaattct\n" - + "cgtctagcctaatcggacttacctatgggctgtgaggatttatcagtatgtggacaaaaa\n" - + "tgctagagataggtatagttaaagtcaccatggtacatctatgtgaggaagtttgtagtt\n" - + "cgcttctttagtccgggcgtttgggatgacaactactatacgtagagccgtactcaggat\n" - + "tagatagtgtgaaagagtcaaataaaagggttaatattaatttaacgttgcaaatgtgtt\n" - + "taggccaaacattaaccgttgtagggatattctaatacaggccttcaccgaaccctaatg\n" - + "ataatctgtcttaataacattaaatgattgtctccgctacgagctcttagggcctcattt\n" - + "taaatgactaatgtccaaagaagagactttcccaatttcaatctgtcacgtatagacggc\n" - + "accttagtgagtcatatcattaagatagaagattatcaggagggaagtttctattatcaa\n" - + "ccgttacgcaaccataaacttttaaatctcataatggcattgagatcaagagctttcatg\n" - + "atggtaaagttcgtatgtgatgctggggagctagatatcggtataccacttcggttgtgg\n" - + "taagcccgagtgggccgttagtaatattaatagacgattatccgacaatgcattcgctga\n" - + "aataatcttacttaggagaaattaatgctatgagccaaaactatttatgtctgtcacatt\n" - + "attgactaaagtatctatcgacaaaactgatgtccataagttgtagcagatagtcggtgt\n" - + "atggtgtcaccaatgaaaacctcgagcgaaaaatgaattatagttatccaatttgagtaa\n" - + "attgcctattatacagataggcttgtttagtcagataaggttccgcttgaggtgctctaa\n" - + "cttagcgagagttagaaagcctagtgagaggcattttggtgccaaactccggctcgcatg\n" - + "agtaggccagagagtcactttctttcgtcgaagaagttggtgaacagccttttgattagt\n" - + "tgtttgtcttgtggctatgtgctactatataagttagaacgcaaactaatctaatcagca\n" - + "aagtaaaataggaccttgaacgagacggggtacgccgttgaggctcgagatagtagataa\n" - + "actagaggaatgtagataaaacattagctagggggtttagttactggattacataggaag\n" - + "tgcaccatcacggtgtgggggttcgtacgtaaagtcgcatcaatattgtcagtggactta\n" - + "acaagttcgtgcataatgaaatcctatacggactttgcatatctctaccgactcatctgg\n" - + "tcgtctatgcgggtaattgtattgctccaagtggatgactattttggcgtcccagcacat\n" - + "agtaaatgtaaatccttataatagcataagcaattattagactgcgtgaagtcttagtag\n" - + "ttctcaagctttacgttgtatgtaaataactcacgtaatcagccgtccccaaatcaccat\n" - + "tgaggtcattgaatgtacggagcactattatcaatgcggtatgcgattttctgagcgatt\n" - + "attgttaaagacttagcgttgagccccggaacacttgattacagattctttaaggagtta\n" - + "tccaaatatcattttaaataatagtagtatcgtgctttggacaataaaaaaagacccgtt\n" - + "ctcttatgttgttttgcgacgtacttctctgatatatacttcaactatgaagattctatt\n" - + "catcgataacccaggtatatttatatgcccgttcactgcgcagggcaaattatctacgga\n" - + "caataatgacgtagttggacccggtaagaactaacgcttaatatgattaaggatgtatgc\n" - + "cagtattatcttattatgtcagagtagaagtttctctgagattttccgtcgttgtggtac\n" - + "accggatttggctctctttttagaactgagaactcggagtgtgtagtcttgtttccttca\n" - + "atttatcaatatgcttttataccgccctcatcaactataacaggacgacaagttccgtct\n" - + "tgctccatcatatactaccgatacaccaatcgtatcaagtttagtatacttgctttctct\n" - + "cttctacagcttactcgcttgtccgagaagcggttggtgctcataaagttagtagtaaat\n" - + "gtacaactagtagccagtccttacctgtttttacgactactacggacaccatgagataca\n" - + "gaagttagtgctacaattataccattacatgctcaatatcgttgtcggccataagatcga\n" - + "agagtgcatcacgcgtgtgaatacgtaaaatctaccatcccgtcaatgcacaaaaacaca\n" - + "ctccccttgttgactaacatcttttacaagaggctaaatcattgtccaggatcgaatacc\n" - + "ttgtgtacaatcgtcacccatcggaagaataccacttttccgatgtagtatgatttacaa\n" - + "aaaacatctatgtgagtaggccaattgtagtagaatatattcatttgaccgtcattagcc\n" - + "ttcttcttaggttgtgtacggatagtaggtacataaaccgtcgtgtggcatacgctgcga\n" - + "tttcatacagctgccaacaccttttttaccaggctagagtcagaaaagttggagccatgt\n" - + "taaatagttaccatcataaaccactgttgtctactagtctgatcagctttcatgcctgtg\n" - + "caagcaatatggattctcacgtaatggtaacaactgttgcgttacttaggctggttaatt\n" - + "tgtcagagtaataaatacatgtcttgttgtgtttcctaatcctcggaaagtacacaagcc\n" - + "taggaataggaaaagtaaagctcttttattctgatagtgactaactcaggatctaaatac\n" - + "gcgattatactaaccttcaccaaagctcaaaaatcatctgctggtgaccagttatagaca\n" - + "gggtaattcaatatttaatgtctcccttaacatttcaccagcatggattgaagatagtat\n" - + "aaagttttacatggcagtcattgtgtcacggttctatacaaattctgatagttagacggt\n" - + "atttgaaatgtgcttctagcatggtatcttacacaactgaatgaacgactggagccgttc\n" - + "gtatactatttgcgagcctcgagaccccgtttcctaatgttaacgaatatagtataatat\n" - + "aaattgtgatatgaataacacaagtaactacagtttggacaattaattgttctaaactaa\n" - + "aaatcattcacttcagatggcatagagttatggctactacacatataaagcggtatgtga\n" - + "aacacccgttttagccggaaaccctctactgctcgggacaatgaatgatttccaaaatat\n" - + "ggatgtgcagaattgttagtgtgactcaggtccaaatagacactttagtttcgtcaagtc\n" - + "gttgcaaagtttaaaaccatcgcagcattctttatttggtctacattgagaaatgaaaaa\n" - + "acgtgacagaaagtctagaagaactgtgaataatgtctattactgattaactagtaagac\n" - + "attagtgcatctggtccactgaagcacccgcttggcgttaggcaatctctgtgaactgtc\n" - + "gtggctgttccggtaatgtacgaaagcaagcctataggttgatcgagtcgcttcattaag\n" - + "gtcaatttcacaatatccgatcacattgtgctaggttcgtcctttaccttgcttagtgct\n" - + "gcatgtacggggtgtcatgacttgttatcggcagactctttatcccaagaatggataata\n" - + "tgtacatggaaagtgtccataattaagtcccttcactgtaaagaatgactgccacgtgat\n" - + "ccatgaggtctacagaaaccgacttacttgctttttgatcaacttaattatggattcata\n" - + "aagttcagatatcggtacaattggtgtacaatatgaaattaatgaggaaacatggaaatc\n" - + "tgaatgacagtgatagaaaagatccccatttgcccggtcagttcatgttacaccactcat\n" - + "tagtactgtaagtgtttcgtcagcattgagatccacgatcatgtgtttatgccttcgaaa\n" - + "ctggatgtacgacgatcgagacgaagaggtatatataacctaaatactaggtacgttgtt\n" - + "agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n" - + "cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n" - + "tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n" - + "tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n" - + "gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n" - + "tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n" - + "tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n" - + "atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n" - + "cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n" - + "ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n" - + "ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n" - + "atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n" - + "gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n" - + "tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n" - + "gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n" - + "atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n" - + "tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n" - + "ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n" - + "tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n" - + "aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n" - + "gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n" - + "ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n" - + "agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n" - + "agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n" - + "acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n" - + "cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n" - + "cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n" - + "cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n" - + "aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n" - + "tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n" - + "atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n" - + "cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n" - + "tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n" - + "catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n" - + "tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n" - + "caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n" - + "tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n" - + "aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n" - + "aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n" - + "ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n" - + "gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n" - + "ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n" - + "cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n" - + "gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n" - + "ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n" - + "cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n" - + "taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n" - + "gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n" - + "taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n" - + "ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n" - + "aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n" - + "gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n" - + "acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n" - + "ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n" - + "tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n" - + "tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n" - + "tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n" - + "ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n" - + "aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n" - + "tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n" - + "gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n" - + "gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n" - + "cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n" - + "actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n" - + "tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n" - + "ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n" - + "ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n" - + "agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n" - + "gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n" - + "tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n" - + "atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n" - + "cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n" - + "tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n" - + "gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n" - + "gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n" - + "aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n" - + "gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n" - + "cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n" - + "taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n" - + "tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n" - + "ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n" - + "aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n" - + "gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n" - + "aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n" - + "tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n" - + "tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n" - + "aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n" - + "ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n" - + "ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n" - + "caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n" - + "gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n" - + "cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n" - + "ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n" - + "tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n" - + "atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n" - + "ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n" - + "acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n" - + "taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n" - + "ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n" - + "aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n" - + "cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n" - + "tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n" - + "gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n" - + "aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n" - + "cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n" - + "cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n" - + "gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n" - + "cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n" - + "gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n" - + "agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n" - + "aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n" - + "aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n" - + "cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n" - + "agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n" - + "cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n" - + "agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n" - + "gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n" - + "aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n" - + "agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n" - + "cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n" - + "agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n" - + "ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n" - + "tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n" - + "gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n" - + "gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n" - + "ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n" - + "gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n" - + "atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n" - + "tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n" - + "ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n" - + "tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n" - + "cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n" - + "ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n" - + "aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n" - + "gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n" - + "ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n" - + "atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n" - + "aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n" - + "gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n" - + "atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n" - + "aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n" - + "tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n" - + "ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n" - + "gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n" - + "cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n" - + "ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n" - + "ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n" - + "ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n" - + "cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n" - + "tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n" - + "tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n" - + "cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n" - + "gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n" - + "ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n" - + "ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n" - + "tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n" - + "agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n" - + "ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n" - + "cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n" - + "agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n" - + "tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n" - + "gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n" - + "ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n" - + "ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n" - + "agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n" - + "attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n" - + "ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n" - + "agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n" - + "aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n" - + "gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n" - + "gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n" - + "ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n" - + "gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n" - + "ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n" - + "taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n" - + "aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n" - + "tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n" - + "ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n" - + "agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n" - + "ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n" - + "agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n" - + "gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n" - + "tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n" - + "gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n" - + "cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n" - + "ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n" - + "cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n" - + "gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n" - + "gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n" - + "tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n" - + "cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n" - + "aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n" - + "ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n" - + "gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n" - + "aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n" - + "gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n" - + "aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n" - + "gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n" - + "agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n" - + "caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n" - + "gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n" - + "aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n" - + "tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n" - + "tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n" - + "ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n" - + "ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n" - + "gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n" - + "ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n" - + "aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n" - + "tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n" - + "acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n" - + "atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n" - + "gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n" - + "tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n" - + "cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n" - + "gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n" - + "acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n" - + "acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n" - + "attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n" - + "tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n" - + "cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n" - + "aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n" - + "ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n" - + "tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n" - + "gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n" - + "gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n" - + "acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n" - + "gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n" - + "gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n" - + "ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n" - + "taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n" - + "agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n" - + "gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n" - + "ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n" - + "accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n" - + "tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n" - + "taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n" - + "catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n" - + "tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n" - + "ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n" - + "aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n" - + "atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n" - + "tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n" - + "ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n" - + "tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n" - + "aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n" - + "agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n" - + "acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n" - + "aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n" - + "ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n" - + "gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n" - + "taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n" - + "taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n" - + "tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n" - + "gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n" - + "ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n" - + "atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n" - + "tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n" - + "cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n" - + "aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n" - + "taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n" - + "caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n" - + "ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n" - + "tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n" - + "tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n" - + "gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n" - + "gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n" - + "gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n" - + "ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n" - + "tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n" - + "taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n" - + "gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n" - + "ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n" - + "gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n" - + "tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n" - + "ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n" - + "tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n" - + "cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n" - + "ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n" - + "caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n" - + "cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n" - + "gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n" - + "cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n" - + "taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n" - + "tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n" - + "taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n" - + "tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n" - + "tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n" - + "tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n" - + "ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n" - + "aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n" - + "atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n" - + "actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n" - + "gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n" - + "ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n" - + "gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n" - + "tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n" - + "aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n" - + "atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n" - + "catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc"; + private static final String fastaStr = + ">ONE Homo sapiens alu\n" + + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n" + + "TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n" + + "AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n" + + "GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n" + + "CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n" + + "GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n" + + "GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n" + + "TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n" + + "AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n" + + "GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n" + + "AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n" + + "AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n" + + "GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n" + + "CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n" + + "AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n" + + "TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n" + + "TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n" + + "GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n" + + "TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n" + + "CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n" + + "CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n" + + "TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n" + + "CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n" + + "AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n" + + "GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n" + + "TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n" + + "TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n" + + "GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n" + + "GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n" + + "ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n" + + "TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n" + + "CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n" + + "CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n" + + "GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n" + + "CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n" + + "GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n" + + "GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n" + + "GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n" + + "GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n" + + "GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n" + + "AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n" + + "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n" + + "GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n" + + "AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n" + + "GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n" + + "ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n" + + "GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n" + + "GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n" + + "GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n" + + "TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n" + + "AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n" + + "GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n" + + "CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n" + + "TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n" + + "ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n" + + "GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n" + + "ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n" + + "CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n" + + "CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n" + + "ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n" + + "CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n" + + "AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n" + + "CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n" + + "AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n" + + "CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n" + + "CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n" + + "CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n" + + "CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n" + + "ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n" + + "AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n" + + "TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n" + + "ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n" + + "CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n" + + "AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n" + + "AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n" + + "TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n" + + "CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n" + + "TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n" + + "CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n" + + "GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n" + + "GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n" + + "CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n" + + "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n" + + "GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n" + + "AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n" + + "GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n" + + "CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n" + + "GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n" + + "TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n" + + "CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n" + + "ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n" + + "CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n" + + "AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n" + + "CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n" + + "CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n" + + "ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n" + + "GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n" + + "GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n" + + "GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n" + + "TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n" + + "CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n" + + "GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n" + + "CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n" + + "GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n" + + "CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n" + + "CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n" + + "CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n" + + "ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n" + + "CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n" + + "GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n" + + "AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n" + + "ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n" + + "TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n" + + "GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n" + + "GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n" + + "TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n" + + "AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n" + + "ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n" + + "GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n" + + "TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n" + + "CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n" + + "GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n" + + "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n" + + "GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n" + + "TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n" + + "ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n" + + "TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n" + + "GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n" + + "TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n" + + "GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n" + + "GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n" + + "ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n" + + "GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n" + + "GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n" + + "CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n" + + "ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n" + + "AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n" + + "TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n" + + "CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n" + + "TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n" + + "CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n" + + "GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n" + + "GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n" + + "CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n" + + "TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n" + + "CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n" + + "AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n" + + "AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n" + + "GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n" + + "TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n" + + "AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n" + + "AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n" + + "CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n" + + "TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n" + + "GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n" + + "CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n" + + "CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n" + + "GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n" + + "AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n" + + "GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n" + + "TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n" + + "CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n" + + "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n" + + "CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n" + + "AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n" + + "ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n" + + "ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n" + + "AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n" + + "GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n" + + "GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n" + + "CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n" + + "GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n" + + "CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n" + + "GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n" + + "GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n" + + "CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n" + + "AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n" + + "CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n" + + "CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n" + + "GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n" + + "GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n" + + "TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n" + + "ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n" + + "CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n" + + "ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n" + + "GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n" + + "TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n" + + "GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n" + + "GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n" + + "GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n" + + "GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n" + + "TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n" + + "TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n" + + "TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n" + + "GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n" + + "CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n" + + "TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n" + + ">TWO IUB ambiguity codes\n" + + "cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n" + + "tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n" + + "NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n" + + "cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n" + + "gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n" + + "HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n" + + "tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n" + + "tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n" + + "acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n" + + "tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n" + + "gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n" + + "accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n" + + "RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n" + + "tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n" + + "cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n" + + "ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n" + + "actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n" + + "YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n" + + "KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n" + + "aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n" + + "aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n" + + "gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n" + + "tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n" + + "tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n" + + "ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n" + + "ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n" + + "BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n" + + "aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n" + + "tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n" + + "cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n" + + "aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n" + + "tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n" + + "aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n" + + "gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n" + + "ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n" + + "taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n" + + "ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n" + + "gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n" + + "gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n" + + "tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n" + + "tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n" + + "taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n" + + "cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n" + + "aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n" + + "cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n" + + "ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n" + + "attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n" + + "ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n" + + "attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n" + + "tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n" + + "aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n" + + "cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n" + + "gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n" + + "attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n" + + "BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n" + + "DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n" + + "tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n" + + "tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n" + + "tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n" + + "taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n" + + "aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n" + + "DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n" + + "VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n" + + "agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n" + + "gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n" + + "tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n" + + "catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n" + + "tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n" + + "aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n" + + "aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n" + + "acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n" + + "tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n" + + "aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n" + + "acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n" + + "RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n" + + "RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n" + + "tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n" + + "gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n" + + "YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n" + + "ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n" + + "ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n" + + "gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n" + + "KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n" + + "aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n" + + "gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n" + + "taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n" + + "VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n" + + "NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n" + + "MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n" + + "cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n" + + "ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n" + + "tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n" + + "aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n" + + "actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n" + + "tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n" + + "gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n" + + "BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n" + + "aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n" + + "aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n" + + "YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n" + + "aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n" + + "cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n" + + "tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n" + + "tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n" + + "MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n" + + "taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n" + + "tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n" + + "RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n" + + "agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n" + + "NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n" + + "gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n" + + "aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n" + + "ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n" + + "cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n" + + "tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n" + + "RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n" + + "tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n" + + "gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n" + + "tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n" + + "ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n" + + "tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n" + + "ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n" + + "BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n" + + "gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n" + + "acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n" + + "gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n" + + "taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n" + + "acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n" + + "tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n" + + "catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n" + + "tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n" + + "atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n" + + "ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n" + + "ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n" + + "cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n" + + "SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n" + + "VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n" + + "BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n" + + "NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n" + + "tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n" + + "ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n" + + "cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n" + + "VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n" + + "atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n" + + "aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n" + + "tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n" + + "RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n" + + "gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n" + + "tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n" + + "attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n" + + "atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n" + + "cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n" + + "NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n" + + "ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n" + + "cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n" + + "aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n" + + "agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n" + + "tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n" + + "ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n" + + "ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n" + + "tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n" + + "taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n" + + "tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n" + + "YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n" + + "ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n" + + "tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n" + + "ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n" + + "attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n" + + "atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n" + + "YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n" + + "gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n" + + "MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n" + + "tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n" + + "ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n" + + "aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n" + + "BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n" + + "tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n" + + "StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n" + + "cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n" + + "atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n" + + "atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n" + + "ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n" + + "gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n" + + "tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n" + + "BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n" + + "agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n" + + "HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n" + + "tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n" + + "aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n" + + "catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n" + + "aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n" + + "tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n" + + "cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n" + + "DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n" + + "gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n" + + "tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n" + + "atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n" + + "KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n" + + "tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n" + + "tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n" + + "taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n" + + "NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n" + + "HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n" + + "ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n" + + "tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n" + + "cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n" + + "ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n" + + "HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n" + + "gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n" + + "BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n" + + "gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n" + + "KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n" + + "cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n" + + "tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n" + + "taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n" + + "gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n" + + "aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n" + + "acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n" + + "RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n" + + "attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n" + + "KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n" + + "KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n" + + "gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n" + + "aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n" + + "aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n" + + "ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n" + + "tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n" + + "aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n" + + "tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n" + + "MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n" + + "cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n" + + "caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n" + + "ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n" + + "acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n" + + "tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n" + + "gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n" + + "atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n" + + "aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n" + + "NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n" + + "taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n" + + "aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n" + + "ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n" + + "DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n" + + "tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n" + + "aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n" + + "ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n" + + "ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n" + + "RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n" + + "aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n" + + "aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n" + + "aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n" + + "tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n" + + "atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n" + + "BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n" + + "gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n" + + "cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n" + + "RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n" + + "taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n" + + "aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n" + + "gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n" + + "gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n" + + "aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n" + + "gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n" + + "ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n" + + "MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n" + + "SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n" + + "aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n" + + "VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n" + + "HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n" + + "agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n" + + "gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n" + + "agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n" + + "tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n" + + "gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n" + + "VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n" + + "tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n" + + "MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n" + + "actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n" + + "WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n" + + "tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n" + + "KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n" + + "BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n" + + "attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n" + + "VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n" + + "aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n" + + "tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n" + + "tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n" + + "tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n" + + "VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n" + + "tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n" + + "ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n" + + "tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n" + + "WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n" + + "tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n" + + "tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n" + + "MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n" + + "tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n" + + "atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n" + + "aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n" + + "aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n" + + ">THREE Homo sapiens frequency\n" + + "aagtccgatgagtttcaatcatgactgcgaggagatccatgcggtgtacctaaacctaca\n" + + "tcgtatgtatttgctgacgttcattcttgatacataaagatccgatatcggtccactttg\n" + + "tttaccaaaagccctaccttcgtaacgatggaaatgtgaatgagagtgaaatacacgatg\n" + + "gggatattgccggtgagtacaagttagaccacacattagaactgacctatattcgtcatc\n" + + "atagagatggagtatgaattgattctgcgaagtacactggctttacgagtatctagacgc\n" + + "cgcggtatatctcccgtcaatactatgaaggtatatatatagaggctgaaaattcatgtt\n" + + "caatcctctttctaagagtgagtgggagccccttctgttgtcggagtaaaaaggcattat\n" + + "tcctcaaattgtcagaagcaaagtatacgtgatgtttgcttagaacaaaagagttacctt\n" + + "agggtaggtaaatctcgattcaccgagagaagtgattttggcggtgtgcgattaattctt\n" + + "ttgatgacagatctcattattttatatagctccctctttgtatttagagtttgcgtaggt\n" + + "aacctggcaaaaccatatcccggggggagagtgcgctgaacattttatacgatgtgatta\n" + + "ctcaaaggataaggttcgaggcctctatactcatggaactatcttataattataatggat\n" + + "cgtggctcattccacctatccaaacttctttgtgatctgatgctacgagtgtgaacaaac\n" + + "gtacatcttctaaggaatttgggacgtttcatagctcgcatttcattcctgaaaacttaa\n" + + "atatttttaaaaattgattctactgcgaggaactaaggtgtagacaagcccttagtaacc\n" + + "ggtggatgtcgcttcagttttatagcaaacattattcaatttcagtcttgactgaaatta\n" + + "gtttgttagtgttagaggtccatatgtcacatgcatatggtctagatgccattgtacagt\n" + + "aataccttagattagtattagcggcatgcgtacttggatttcacttgtaagaatgagctt\n" + + "aggacggtcgcctgtagggctgcaaataggaatacttacaatttttgatgacttgttagc\n" + + "atatcgctatcacccataaaaaacctgatacttgatgagcgggtgattgagactatgtac\n" + + "tgatataattcaatagctccaatagatgaaacagctatgcgcctatttatgtcaaataat\n" + + "cgatgtgatacaagcttagagctgaacgagcgcgagtggaattagcggtgatctctatcc\n" + + "taaaaagccacgaaatcgatcccagaagctaatacccgaggtgtcaagcttgagttcagt\n" + + "taaatttgcatctcatgccccacgaagaatgggtagagagtttgaaggtgcttctggatt\n" + + "ttcctaagtacgtggtaaaaatttgatgtaaatgaacacctcctaatggttgtgttaacc\n" + + "acaaacccctgggtgaatctgattagccaacccagtgatctgatttcagttgtcaaatct\n" + + "cttttttataactaccttttgtttccataatttaaccggatctcataatgaacaaacggg\n" + + "tagaataatggtagcacatagcgagcttgtctattcagaaatatggcctactcagaatgt\n" + + "attctccaaatcagtgttatgcgaaacgtaattttacgtgtaataatgatgatttcttat\n" + + "cggttccttgtactacaatactcttgcccaacaaatactaagcataacagcaaaattcga\n" + + "atccccctccttttaataaatggtttttcaatatagccgattcgtattcgttagtctttc\n" + + "accaactattaacctggcatctaattaataaaatcaccaaaggactctataatatgacag\n" + + "tcacttcggcctcttttaagacagttgattattgcaggtccgcaattgatggtgacatgc\n" + + "acaattagttagaatccgactatggagacaattaacaattgtagtgcccatttggtccag\n" + + "ttgacttcaaccacgagttataaaggtattttaatttatagtcgatagtaccaacaacaa\n" + + "gcacaatcataattatgttagaaaacccagggggtaatgctctaaatccagctttaaggc\n" + + "cagagtgcactatgaaatcgccattgatcattgtgtcattcgctgaacttggtgtctagg\n" + + "aggtgccgagtgagaatatcagataccttatgaagcaacgattatatctggactagatca\n" + + "tgatgatcggaataaaacattgaaataagtccttatcaaggagcataaacattttattta\n" + + "atttatacttcgtaaataaattcagaattttttttcaagacattaatctgagtaaatgac\n" + + "ggctagaaagggttcctactcgaatcgtagcctacgcatgtgggcagtaacctggcttgc\n" + + "gtttttactgaaacaaaggttcaccggaaagaaggctgccacttttagcttcttgacgat\n" + + "ctttagcgtcatatttttagattagtcgaaaaacggaaaacaaacttaacgaagctggtt\n" + + "gcacggggtaccgagaaaccaaagagcaggacaactccttgatcgggaagaactgaaata\n" + + "gacagctgtcattttcattggtcaacttatcaatataacgaccaccgtagtgacgcttgc\n" + + "atgaaaatactgaggatgtaaactatagccagtcaggcccgcgtgttgactaattgatga\n" + + "agcaaacaaaatagccggtattcgttaaaaggaacgggttgccagctacagatatactct\n" + + "aggtatatcccaaacaagagacgtcctttggctgttgtaatcggtcataatacttgtcac\n" + + "ataaacaagatcgctgaattaaacattaaacagttagtgatacacaatcgtggttggggc\n" + + "tgggatgtgcaataaaaagtcatctatcgtctatcacagagcgacgtaaatttagacaaa\n" + + "cattattatttcttgacaatggaatcgataagcgttcctctaacttggtatatatatctc\n" + + "gaccccgggattccagccattcttgtatgaagatttaaccatttaactatgcatagttga\n" + + "atggtaaggaaaatgatattgactgcaacagattttggatgcaaaaatatttgtgaatta\n" + + "ttggttatatactggttgtatagcacaatcattaggtcctagaaggcatactcaacctca\n" + + "gcgagagagctagcatgcataattgtaccgcccatattaatattcctgaaatgatttctt\n" + + "acattacgcccaatttcagtcatcgaacacccccatcaatttacccgatagagaacgtga\n" + + "tcatacgcaataccctatgcgaacgtccactctatagcgtctgtatacaatgattattcg\n" + + "ttccatttacaacgttaagtaatttaaacttacataaggacaaggaaatccgcgaacctc\n" + + "ctggaatgtatgagttatttatgcagttaacttcgtctcgaccggaactaaaggcgtcgt\n" + + "acgaatgaaaggccacttttagaagagacctttgtatccattgtggagaatatcataaat\n" + + "tcaagatggggtgtcatgctattcggtcctaaacattcttaatggctgttctattgttag\n" + + "tctgatttaaaatggaaccatagcacgaatagttagatagggctcatacccctgtaacga\n" + + "tctacaaatccttccccgggtgtgtgcgttagcgacggaaagttttacggtttgtgatca\n" + + "aagaacactcacacgtcagattattacactgatacgaattatttcagtcgacagtaattg\n" + + "aatagaaacttattaacgccagcacctgacacggtaagtaaggcaggtctgaactgtttg\n" + + "actgtaaaaaaatggtaatatttttaaaaatcttgatttctatatcaaatgatgtgtagt\n" + + "tttttctctgttattaaaatcccagtgcgcgaaatttagatcgttacgactcacgtacaa\n" + + "gatcacacatcacacgcgttagcgaaagcggaatggctaatacagccctacgcaacgtag\n" + + "tgggatcaacatatggacgaatttatgctcaatgagccaacctcccccgcattgcggttc\n" + + "attttaaggcctgggtaacatctatcgtttagataatcaaaggaatccgactatgcaatt\n" + + "gtctgacttcatccgctctcaagtccaatgcaggcgctacgtgtttctttaatcaatacc\n" + + "atattgaaatcgtaatacgataattgttgctattgactacaggttatgaaaaaacttact\n" + + "ttgcgggtacatgcatatttttgtaccacattattacgcgatatctctcagtgtactcta\n" + + "aattaaaccctcttcgaacattttagttcctattcgtaaacacgtgctacgcggcaattt\n" + + "gccggtcgtagaatggacaactccagttcaactgcatgtaactcatagctcgcgttagta\n" + + "taaattgactagtagccatgggacaaagtaactagtcagcggaaaagatccctttaaaga\n" + + "tatatgcaggttgcaagcataaagctcattgctcgaggtgcaccgtggtattccaaaagc\n" + + "gtctctatcgtatcttctaattttgggccgtgagaatcgaaactactctgatttgctgca\n" + + "cacgttaggtaatatcgcccattttcccgtataagctccgtacttatacgaactacacga\n" + + "ccttttaagcattagccgctcatatcgtgattcgtgtacagatgagtctattaaaattac\n" + + "agacatactccatatctcgctccttgaactttgaataatgcgctaacttgtactatgaat\n" + + "aggcagaacccaactttcccgtttgcgtcaagcggggaaacgatacatgttgtcagattt\n" + + "atgattatctagttttagatcacgtttaccgataatcggctgtggtctgagcagtcctac\n" + + "actgagtatttacttcagcttcatatcggtccgaaaaaaggttgtgaccgaatgtcaaaa\n" + + "tacggagtacgatgggcatcttttttcgagtcgcggttgcagggcagcaaaaggcttaaa\n" + + "ccatttttacgatttttactatagcggtcatgaagtgcgaaactgcttgcaaattttcta\n" + + "cacacattgtggctcttgtccttgaagcttatggcgaaaatttgaaacatagtataccag\n" + + "ggaaagcgcgaattatttggtgactaatagtccgtgggtttgagccatatacctaacgcc\n" + + "ataaactacgtggtgctttagatgcaatctaaacagaacagaaagcgtagcgctcatcag\n" + + "cacagactaactttttcagtttgagtcgccggagggacttcgagacaagaacgcgtcaag\n" + + "tcgcttgcgcggcacggattcgattgggcggctcaatcttgcctaatttctactattgtc\n" + + "agctgtacgactgtactaagtgtatagccccaaataaaagaagtatcgatgcgtctttat\n" + + "gaccaaaggtcttataattgaagcgcacttccgttcatcaaattaaatcctggcttaccc\n" + + "gattctccggaagtctgacctagagattgacgacggccgcgtattattgagacctcttca\n" + + "ggattaatcaataacgaagtagttgatctgtttggcgacgtaccttaagccgactccgct\n" + + "acacgagtttctactaaaccaatgtagccttatgcttagatgaataccgtcctaattaga\n" + + "tattccggcataacagcagtaaattatctgttcaatggacgaacattgaattgttagtat\n" + + "tctacacaagtcaggcctcgtaaatattaggtaaggccgtgggataacctacgtgatatg\n" + + "cttgagcttgcgttgcaagctctcgttaatcattaatttaggtgcgtgagggttaaacac\n" + + "cagcatattctatatgctagacgtcttccttaaaggatcgtagtattataattaataata\n" + + "agaaatatggttgacgtctagtcagcgggcatacgctgctctatatactggcattattca\n" + + "aaacttgacggtaaaaaaacgaattttaaggcgctcacgtcgaatgagccgaactcatgg\n" + + "gaaccaaaatgtcacagaaaacacctctttattgccaagcatgcaataaaaaaaatgtta\n" + + "atagtacgtttacgacattttattttataataaagagaaactattacacctattgatatg\n" + + "ataggacgtaaattaacgagtagcctgcatagaggcaaatgaggtttctacatggtatag\n" + + "acctgatgctgaaacatcgatgagttttggtcccctcgctcgttgaaatctagtcattta\n" + + "ctactgtctttcgagctattataccacttcactatgtggtgtttctttgctatgtatggg\n" + + "gctagtcaaacatgatgactatagctacaactcagagagcgggcgtgttaagagtatctc\n" + + "atgctagaactgcacgacgaacttgatacaaagtaacaacatttacgattccacaaggtg\n" + + "actttgaagaaacatagtttaattctctgcttcgatcatttctataaaccggtaccatcg\n" + + "cagcggatagatgcataacatttctactactccaggcatcttaaaacacacgtagtactt\n" + + "cactagattaagacacgataagtgtataacttggcagtgggaagcaaggagattggcgaa\n" + + "ctcctggcatctgttacgttttgttcaggctcggttgttgataatgtccgactcctgcca\n" + + "tattgaagactcgctcgagggagatcgggattcgttgattataagtacacgtgttccgta\n" + + "atactatgaggcagtgattcaaaatggcacttctgacttacatgactaggtattattacc\n" + + "acggaagcgttaaaggcacactcttatggacttaagattgcaagtgccttcttctagcct\n" + + "gaattcgcgggttcaacacaaactctctttagacatccgttgcctaaaggctgagacgta\n" + + "ggggcaaccctttaactatgtactaaaaaactagttggtaatttaacaacgtgtccaatc\n" + + "aagacgatgcaccaacgcggtgcgaaaatcgggttaagcaaacacaaataggaattgtga\n" + + "taaaccccaccttgagaggtcgcaagaccaacctcgggaacaacggctctaagagaataa\n" + + "cctaaatccggatgagtagactgtgtaactctctaaagggaagtgaaaaaaagctaagca\n" + + "tacatttaggtctcctgcattgcattcaattgaatcgtttgtattatgagctgtacagta\n" + + "gctatatcagctatagttatcccagaggaacaggtaaactagctctgagcgtgaaatccg\n" + + "gatattagaacccctagatgggattgattctagctaatacaggcttatctggttttacag\n" + + "ttatctagatgattggtaaggtgaaacgcttggtgccttccaccacttaaacaaaagtat\n" + + "tgcccgggaagctattttctaggtattataaagtcgagcattaatatcaatttgacagta\n" + + "aaggtctttcaccagcttcatatgccatagggcccatactcgatttaaattgaacggttt\n" + + "aacgagtattggaactctcacttataactgagtagctatacgaaaaatctggtccatttc\n" + + "cagaaatttattatcgatttgctgcttagtacccaggaagtgataacccttgaaggcaca\n" + + "acactgtaataagttttcctgtcacatctgtaatattcggtcactacgcattcacgacta\n" + + "aagataattactatactaattaaaagttcaatgttagggccgaatcatagtagaaattct\n" + + "cgtctagcctaatcggacttacctatgggctgtgaggatttatcagtatgtggacaaaaa\n" + + "tgctagagataggtatagttaaagtcaccatggtacatctatgtgaggaagtttgtagtt\n" + + "cgcttctttagtccgggcgtttgggatgacaactactatacgtagagccgtactcaggat\n" + + "tagatagtgtgaaagagtcaaataaaagggttaatattaatttaacgttgcaaatgtgtt\n" + + "taggccaaacattaaccgttgtagggatattctaatacaggccttcaccgaaccctaatg\n" + + "ataatctgtcttaataacattaaatgattgtctccgctacgagctcttagggcctcattt\n" + + "taaatgactaatgtccaaagaagagactttcccaatttcaatctgtcacgtatagacggc\n" + + "accttagtgagtcatatcattaagatagaagattatcaggagggaagtttctattatcaa\n" + + "ccgttacgcaaccataaacttttaaatctcataatggcattgagatcaagagctttcatg\n" + + "atggtaaagttcgtatgtgatgctggggagctagatatcggtataccacttcggttgtgg\n" + + "taagcccgagtgggccgttagtaatattaatagacgattatccgacaatgcattcgctga\n" + + "aataatcttacttaggagaaattaatgctatgagccaaaactatttatgtctgtcacatt\n" + + "attgactaaagtatctatcgacaaaactgatgtccataagttgtagcagatagtcggtgt\n" + + "atggtgtcaccaatgaaaacctcgagcgaaaaatgaattatagttatccaatttgagtaa\n" + + "attgcctattatacagataggcttgtttagtcagataaggttccgcttgaggtgctctaa\n" + + "cttagcgagagttagaaagcctagtgagaggcattttggtgccaaactccggctcgcatg\n" + + "agtaggccagagagtcactttctttcgtcgaagaagttggtgaacagccttttgattagt\n" + + "tgtttgtcttgtggctatgtgctactatataagttagaacgcaaactaatctaatcagca\n" + + "aagtaaaataggaccttgaacgagacggggtacgccgttgaggctcgagatagtagataa\n" + + "actagaggaatgtagataaaacattagctagggggtttagttactggattacataggaag\n" + + "tgcaccatcacggtgtgggggttcgtacgtaaagtcgcatcaatattgtcagtggactta\n" + + "acaagttcgtgcataatgaaatcctatacggactttgcatatctctaccgactcatctgg\n" + + "tcgtctatgcgggtaattgtattgctccaagtggatgactattttggcgtcccagcacat\n" + + "agtaaatgtaaatccttataatagcataagcaattattagactgcgtgaagtcttagtag\n" + + "ttctcaagctttacgttgtatgtaaataactcacgtaatcagccgtccccaaatcaccat\n" + + "tgaggtcattgaatgtacggagcactattatcaatgcggtatgcgattttctgagcgatt\n" + + "attgttaaagacttagcgttgagccccggaacacttgattacagattctttaaggagtta\n" + + "tccaaatatcattttaaataatagtagtatcgtgctttggacaataaaaaaagacccgtt\n" + + "ctcttatgttgttttgcgacgtacttctctgatatatacttcaactatgaagattctatt\n" + + "catcgataacccaggtatatttatatgcccgttcactgcgcagggcaaattatctacgga\n" + + "caataatgacgtagttggacccggtaagaactaacgcttaatatgattaaggatgtatgc\n" + + "cagtattatcttattatgtcagagtagaagtttctctgagattttccgtcgttgtggtac\n" + + "accggatttggctctctttttagaactgagaactcggagtgtgtagtcttgtttccttca\n" + + "atttatcaatatgcttttataccgccctcatcaactataacaggacgacaagttccgtct\n" + + "tgctccatcatatactaccgatacaccaatcgtatcaagtttagtatacttgctttctct\n" + + "cttctacagcttactcgcttgtccgagaagcggttggtgctcataaagttagtagtaaat\n" + + "gtacaactagtagccagtccttacctgtttttacgactactacggacaccatgagataca\n" + + "gaagttagtgctacaattataccattacatgctcaatatcgttgtcggccataagatcga\n" + + "agagtgcatcacgcgtgtgaatacgtaaaatctaccatcccgtcaatgcacaaaaacaca\n" + + "ctccccttgttgactaacatcttttacaagaggctaaatcattgtccaggatcgaatacc\n" + + "ttgtgtacaatcgtcacccatcggaagaataccacttttccgatgtagtatgatttacaa\n" + + "aaaacatctatgtgagtaggccaattgtagtagaatatattcatttgaccgtcattagcc\n" + + "ttcttcttaggttgtgtacggatagtaggtacataaaccgtcgtgtggcatacgctgcga\n" + + "tttcatacagctgccaacaccttttttaccaggctagagtcagaaaagttggagccatgt\n" + + "taaatagttaccatcataaaccactgttgtctactagtctgatcagctttcatgcctgtg\n" + + "caagcaatatggattctcacgtaatggtaacaactgttgcgttacttaggctggttaatt\n" + + "tgtcagagtaataaatacatgtcttgttgtgtttcctaatcctcggaaagtacacaagcc\n" + + "taggaataggaaaagtaaagctcttttattctgatagtgactaactcaggatctaaatac\n" + + "gcgattatactaaccttcaccaaagctcaaaaatcatctgctggtgaccagttatagaca\n" + + "gggtaattcaatatttaatgtctcccttaacatttcaccagcatggattgaagatagtat\n" + + "aaagttttacatggcagtcattgtgtcacggttctatacaaattctgatagttagacggt\n" + + "atttgaaatgtgcttctagcatggtatcttacacaactgaatgaacgactggagccgttc\n" + + "gtatactatttgcgagcctcgagaccccgtttcctaatgttaacgaatatagtataatat\n" + + "aaattgtgatatgaataacacaagtaactacagtttggacaattaattgttctaaactaa\n" + + "aaatcattcacttcagatggcatagagttatggctactacacatataaagcggtatgtga\n" + + "aacacccgttttagccggaaaccctctactgctcgggacaatgaatgatttccaaaatat\n" + + "ggatgtgcagaattgttagtgtgactcaggtccaaatagacactttagtttcgtcaagtc\n" + + "gttgcaaagtttaaaaccatcgcagcattctttatttggtctacattgagaaatgaaaaa\n" + + "acgtgacagaaagtctagaagaactgtgaataatgtctattactgattaactagtaagac\n" + + "attagtgcatctggtccactgaagcacccgcttggcgttaggcaatctctgtgaactgtc\n" + + "gtggctgttccggtaatgtacgaaagcaagcctataggttgatcgagtcgcttcattaag\n" + + "gtcaatttcacaatatccgatcacattgtgctaggttcgtcctttaccttgcttagtgct\n" + + "gcatgtacggggtgtcatgacttgttatcggcagactctttatcccaagaatggataata\n" + + "tgtacatggaaagtgtccataattaagtcccttcactgtaaagaatgactgccacgtgat\n" + + "ccatgaggtctacagaaaccgacttacttgctttttgatcaacttaattatggattcata\n" + + "aagttcagatatcggtacaattggtgtacaatatgaaattaatgaggaaacatggaaatc\n" + + "tgaatgacagtgatagaaaagatccccatttgcccggtcagttcatgttacaccactcat\n" + + "tagtactgtaagtgtttcgtcagcattgagatccacgatcatgtgtttatgccttcgaaa\n" + + "ctggatgtacgacgatcgagacgaagaggtatatataacctaaatactaggtacgttgtt\n" + + "agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n" + + "cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n" + + "tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n" + + "tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n" + + "gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n" + + "tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n" + + "tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n" + + "atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n" + + "cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n" + + "ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n" + + "ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n" + + "atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n" + + "gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n" + + "tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n" + + "gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n" + + "atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n" + + "tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n" + + "ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n" + + "tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n" + + "aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n" + + "gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n" + + "ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n" + + "agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n" + + "agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n" + + "acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n" + + "cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n" + + "cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n" + + "cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n" + + "aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n" + + "tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n" + + "atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n" + + "cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n" + + "tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n" + + "catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n" + + "tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n" + + "caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n" + + "tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n" + + "aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n" + + "aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n" + + "ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n" + + "gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n" + + "ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n" + + "cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n" + + "gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n" + + "ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n" + + "cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n" + + "taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n" + + "gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n" + + "taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n" + + "ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n" + + "aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n" + + "gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n" + + "acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n" + + "ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n" + + "tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n" + + "tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n" + + "tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n" + + "ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n" + + "aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n" + + "tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n" + + "gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n" + + "gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n" + + "cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n" + + "actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n" + + "tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n" + + "ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n" + + "ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n" + + "agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n" + + "gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n" + + "tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n" + + "atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n" + + "cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n" + + "tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n" + + "gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n" + + "gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n" + + "aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n" + + "gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n" + + "cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n" + + "taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n" + + "tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n" + + "ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n" + + "aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n" + + "gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n" + + "aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n" + + "tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n" + + "tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n" + + "aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n" + + "ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n" + + "ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n" + + "caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n" + + "gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n" + + "cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n" + + "ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n" + + "tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n" + + "atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n" + + "ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n" + + "acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n" + + "taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n" + + "ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n" + + "aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n" + + "cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n" + + "tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n" + + "gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n" + + "aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n" + + "cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n" + + "cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n" + + "gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n" + + "cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n" + + "gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n" + + "agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n" + + "aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n" + + "aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n" + + "cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n" + + "agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n" + + "cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n" + + "agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n" + + "gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n" + + "aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n" + + "agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n" + + "cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n" + + "agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n" + + "ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n" + + "tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n" + + "gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n" + + "gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n" + + "ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n" + + "gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n" + + "atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n" + + "tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n" + + "ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n" + + "tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n" + + "cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n" + + "ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n" + + "aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n" + + "gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n" + + "ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n" + + "atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n" + + "aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n" + + "gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n" + + "atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n" + + "aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n" + + "tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n" + + "ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n" + + "gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n" + + "cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n" + + "ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n" + + "ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n" + + "ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n" + + "cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n" + + "tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n" + + "tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n" + + "cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n" + + "gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n" + + "ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n" + + "ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n" + + "tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n" + + "agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n" + + "ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n" + + "cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n" + + "agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n" + + "tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n" + + "gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n" + + "ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n" + + "ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n" + + "agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n" + + "attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n" + + "ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n" + + "agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n" + + "aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n" + + "gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n" + + "gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n" + + "ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n" + + "gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n" + + "ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n" + + "taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n" + + "aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n" + + "tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n" + + "ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n" + + "agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n" + + "ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n" + + "agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n" + + "gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n" + + "tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n" + + "gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n" + + "cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n" + + "ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n" + + "cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n" + + "gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n" + + "gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n" + + "tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n" + + "cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n" + + "aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n" + + "ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n" + + "gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n" + + "aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n" + + "gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n" + + "aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n" + + "gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n" + + "agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n" + + "caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n" + + "gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n" + + "aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n" + + "tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n" + + "tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n" + + "ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n" + + "ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n" + + "gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n" + + "ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n" + + "aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n" + + "tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n" + + "acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n" + + "atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n" + + "gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n" + + "tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n" + + "cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n" + + "gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n" + + "acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n" + + "acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n" + + "attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n" + + "tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n" + + "cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n" + + "aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n" + + "ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n" + + "tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n" + + "gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n" + + "gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n" + + "acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n" + + "gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n" + + "gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n" + + "ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n" + + "taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n" + + "agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n" + + "gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n" + + "ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n" + + "accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n" + + "tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n" + + "taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n" + + "catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n" + + "tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n" + + "ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n" + + "aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n" + + "atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n" + + "tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n" + + "ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n" + + "tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n" + + "aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n" + + "agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n" + + "acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n" + + "aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n" + + "ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n" + + "gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n" + + "taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n" + + "taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n" + + "tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n" + + "gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n" + + "ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n" + + "atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n" + + "tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n" + + "cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n" + + "aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n" + + "taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n" + + "caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n" + + "ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n" + + "tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n" + + "tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n" + + "gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n" + + "gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n" + + "gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n" + + "ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n" + + "tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n" + + "taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n" + + "gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n" + + "ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n" + + "gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n" + + "tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n" + + "ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n" + + "tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n" + + "cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n" + + "ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n" + + "caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n" + + "cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n" + + "gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n" + + "cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n" + + "taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n" + + "tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n" + + "taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n" + + "tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n" + + "tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n" + + "tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n" + + "ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n" + + "aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n" + + "atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n" + + "actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n" + + "gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n" + + "ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n" + + "gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n" + + "tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n" + + "aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n" + + "atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n" + + "catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc"; } diff --git a/benchmarks/benchmarksgame/mandelbrot.java b/benchmarks/benchmarksgame/mandelbrot.java index 3eee90d..faf49d4 100644 --- a/benchmarks/benchmarksgame/mandelbrot.java +++ b/benchmarks/benchmarksgame/mandelbrot.java @@ -2,16 +2,17 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `mandelbrot/mandelbrot.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/mandelbrot-java-1.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * * contributed by Stefan Krause * slightly modified by Chad Whipkey + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ /* @@ -22,73 +23,66 @@ package benchmarks.benchmarksgame; -import java.io.IOException; -import java.io.PrintStream; -import java.lang.System; -// CHECKSTYLE.OFF: .* public class mandelbrot { private static final int PREDEFINED_SIZE = 200; - private static final int BUFFER_SIZE = 8192; + private static final int BUFFER_SIZE = 8192; - public mandelbrot() { - this.size = PREDEFINED_SIZE; - fac = 2.0 / size; - shift = size % 8 == 0 ? 0 : (8- size % 8); - } - final int size; - final byte [] buf = new byte[BUFFER_SIZE]; - int bufLen = 0; - final double fac; - final int shift; - - public void compute() - { - for (int y = 0; y 4.0) && --i > 0); - - bits = bits << 1; - if (i == 0) bits++; - - if (x%8 == 7) { - bufLocal[bufLen++] = (byte) bits; - if ( bufLen == BUFFER_SIZE) { - bufLen = 0; - } - bits = 0; - } - } - if (shift!=0) { - bits = bits << shift; - bufLocal[bufLen++] = (byte) bits; - if ( bufLen == BUFFER_SIZE) { - bufLen = 0; - } - } + public void compute() { + for (int y = 0; y < size; y++) computeRow(y); + } + + private void computeRow(int y) { + int bits = 0; + + final double Ci = (y * fac - 1.0); + final byte[] bufLocal = buf; + for (int x = 0; x < size; x++) { + double Zr = 0.0; + double Zi = 0.0; + double Cr = (x * fac - 1.5); + int i = 50; + double ZrN = 0; + double ZiN = 0; + do { + Zi = 2.0 * Zr * Zi + Ci; + Zr = ZrN - ZiN + Cr; + ZiN = Zi * Zi; + ZrN = Zr * Zr; + } while (!(ZiN + ZrN > 4.0) && --i > 0); + + bits = bits << 1; + if (i == 0) bits++; + + if (x % 8 == 7) { + bufLocal[bufLen++] = (byte) bits; + if (bufLen == BUFFER_SIZE) { + bufLen = 0; + } + bits = 0; + } + } + if (shift != 0) { + bits = bits << shift; + bufLocal[bufLen++] = (byte) bits; + if (bufLen == BUFFER_SIZE) { + bufLen = 0; } - // CHECKSTYLE.OFF: .* + } + } public void timeMandelbrot(int iters) { for (int i = 0; i < iters; i++) { diff --git a/benchmarks/benchmarksgame/meteor.java b/benchmarks/benchmarksgame/meteor.java index 68799cc..9619a72 100644 --- a/benchmarks/benchmarksgame/meteor.java +++ b/benchmarks/benchmarksgame/meteor.java @@ -2,15 +2,13 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `meteor/meteor.java` from the archive available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) - * - * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * The original file: + * https://salsa.debian.org/benchmarksgame-team/archive-alioth-benchmarksgame/blob/master/contributed-source-code/benchmarksgame/meteor/meteor.java * * contributed by Tony Seebregts - * modified by + * + * LICENSE: 3-Clause BSD + * https://salsa.debian.org/benchmarksgame-team/archive-alioth-benchmarksgame/blob/master/contributed-source-code/benchmarksgame/meteor/LICENSE */ /* @@ -21,440 +19,1369 @@ package benchmarks.benchmarksgame; - import java.util.ArrayList; -import java.util.Date; import java.util.SortedSet; import java.util.TreeSet; -/** First hack at a Java solver for the meteor puzzle - just the IBM - * developerWorks article algorithm optimized with precalculated shapes - * and bitmasks. Should be possible to optimize it some more to take - * advantage of reflections but its turning out to be less obvious - * than expected :-). - *

- * Notes: - *

    - *
  • Seems to run faster without the -server switch. - *
  • Testing for islands seems to be slower than just fitting pieces. - *
- * - * @author Tony Seebregts - * - */ - -// CHECKSTYLE.OFF: .* -public class meteor - { // CONSTANTS - - private static final int[] SHIFT = { 0,6,11,17,22,28,33,39,44,50 }; - private static final long[][] MASK = { { 0x01L, 0x02L, 0x04L, 0x08L, 0x10L }, - { 0x01L << 6, 0x02L << 6, 0x04L << 6, 0x08L << 6,0x10L << 6 }, - { 0x01L << 11,0x02L << 11,0x04L << 11,0x08L << 11,0x10L << 11 }, - { 0x01L << 17,0x02L << 17,0x04L << 17,0x08L << 17,0x10L << 17 }, - { 0x01L << 22,0x02L << 22,0x04L << 22,0x08L << 22,0x10L << 22 }, - { 0x01L << 28,0x02L << 28,0x04L << 28,0x08L << 28,0x10L << 28 }, - { 0x01L << 33,0x02L << 33,0x04L << 33,0x08L << 33,0x10L << 33 }, - { 0x01L << 39,0x02L << 39,0x04L << 39,0x08L << 39,0x10L << 39 }, - { 0x01L << 44,0x02L << 44,0x04L << 44,0x08L << 44,0x10L << 44 }, - { 0x01L << 50,0x02L << 50,0x04L << 50,0x08L << 50,0x10L << 50 } - }; - - private static final boolean DEBUG = false; - - // CLASS VARIABLES - - // INSTANCE VARIABLES - - private SortedSet solutions = new TreeSet(); - private Entry[] solution = new Entry[10]; - private int depth = 0; - private Piece[] pieces = { new Piece(PIECE0), - new Piece(PIECE1), - new Piece(PIECE2), - new Piece(PIECE3), - new Piece(PIECE4), - new Piece(PIECE5), - new Piece(PIECE6), - new Piece(PIECE7), - new Piece(PIECE8), - new Piece(PIECE9) - }; - - // CLASS METHODS - - /** Prints out the puzzle. - * - * - */ - - private static void print (String solution) - { System.out.print(solution.replaceAll("(\\d{5})(\\d{5})","$1 $2") - .replaceAll("(\\d{5})","$1\n") - .replaceAll("(\\d)","$1 ")); - } - - // CONSTRUCTORS - - /** Initialises the puzzle. - * - */ - - public meteor () - { for (int i=0; i<10; i++) - solution[i] = new Entry(); - } - - // INSTANCE METHODS - - /** Initialises the puzzle and solution set at [0,0] - * - * @return Sorted list of solution strings. - */ - - private SortedSet solve() - { solve(0x0002004008010020L,0,0); - - return solutions; - } - - /** Recursively solves the puzzle by fitting pieces into the - * next available hexagon. - * - * @param puzzle Current puzzle bitmask. - * @param row Row of next available hexagon. - * @param col Column next available hexagon. - * - */ - - private void solve (long puzzle,int row,int col) - { for (int ix=0; ix(); - - // ... generate list - - for (Shape mutant: list) - for (int row=0; row<=mutant.maxRow; row++) - for (int col=mutant.minCol; col<=mutant.maxCol; col++) - { if (!mutant.islet) - array[row][col].add(new Shape(mutant,row,col)); - else if ((row != 0) || (col != 0)) - array[row][col].add(new Shape(mutant,row,col)); - } - - for (int row=0; row<10; row++) - for (int col=0; col<10; col++) - shapes[row][col] = (Shape[]) array[row][col].toArray(new Shape[0]); - } - - @SuppressWarnings("unchecked") - private Shape[] shapes(int row,int col) - { return shapes[row][col]; - } - - } - - /** Container class for the shape vector and bitmap single puzzle piece mutation. - * - * - */ - - private static class Shape - { private char symbol; - private int[][] vector; - private long bitmap; - private int shift; - - private boolean islet; - private int maxRow; - private int minCol; - private int maxCol; - - private Shape (char symbol, - int[][] vector, - long bitmap, - int shift, - boolean islet, - int maxRow, - int minCol, - int maxCol) - { this.symbol = symbol; - this.vector = vector; - this.bitmap = bitmap; - this.shift = shift; - - this.islet = islet; - this.maxRow = maxRow; - this.minCol = minCol; - this.maxCol = maxCol; - } - - private Shape (Shape shape, - int row, - int col) - { this.symbol = shape.symbol; - this.vector = shape.vector; - this.bitmap = shape.bitmap << ((SHIFT[row] + (col - (row % 2))/2) - shape.shift); - - this.islet = shape.islet; - this.maxRow = shape.maxRow; - this.minCol = shape.minCol; - this.maxCol = shape.maxCol; - } +/** + * First hack at a Java solver for the meteor puzzle - just the IBM developerWorks article algorithm + * optimized with precalculated shapes and bitmasks. Should be possible to optimize it some more to + * take advantage of reflections but its turning out to be less obvious than expected :-). + * + *

Notes: + * + *

    + *
  • Seems to run faster without the -server switch. + *
  • Testing for islands seems to be slower than just fitting pieces. + *
+ * + * @author Tony Seebregts + */ + +public class meteor { // CONSTANTS + + private static final int[] SHIFT = {0, 6, 11, 17, 22, 28, 33, 39, 44, 50}; + private static final long[][] MASK = { + {0x01L, 0x02L, 0x04L, 0x08L, 0x10L}, + {0x01L << 6, 0x02L << 6, 0x04L << 6, 0x08L << 6, 0x10L << 6}, + {0x01L << 11, 0x02L << 11, 0x04L << 11, 0x08L << 11, 0x10L << 11}, + {0x01L << 17, 0x02L << 17, 0x04L << 17, 0x08L << 17, 0x10L << 17}, + {0x01L << 22, 0x02L << 22, 0x04L << 22, 0x08L << 22, 0x10L << 22}, + {0x01L << 28, 0x02L << 28, 0x04L << 28, 0x08L << 28, 0x10L << 28}, + {0x01L << 33, 0x02L << 33, 0x04L << 33, 0x08L << 33, 0x10L << 33}, + {0x01L << 39, 0x02L << 39, 0x04L << 39, 0x08L << 39, 0x10L << 39}, + {0x01L << 44, 0x02L << 44, 0x04L << 44, 0x08L << 44, 0x10L << 44}, + {0x01L << 50, 0x02L << 50, 0x04L << 50, 0x08L << 50, 0x10L << 50} + }; + + private static final boolean DEBUG = false; + + // CLASS VARIABLES + + // INSTANCE VARIABLES + + private SortedSet solutions = new TreeSet(); + private Entry[] solution = new Entry[10]; + private int depth = 0; + private Piece[] pieces = { + new Piece(PIECE0), + new Piece(PIECE1), + new Piece(PIECE2), + new Piece(PIECE3), + new Piece(PIECE4), + new Piece(PIECE5), + new Piece(PIECE6), + new Piece(PIECE7), + new Piece(PIECE8), + new Piece(PIECE9) + }; + + // CLASS METHODS + + /** Prints out the puzzle. */ + private static void print(String solution) { + System.out.print( + solution + .replaceAll("(\\d{5})(\\d{5})", "$1 $2") + .replaceAll("(\\d{5})", "$1\n") + .replaceAll("(\\d)", "$1 ")); + } + + // CONSTRUCTORS + + /** Initialises the puzzle. */ + public meteor() { + for (int i = 0; i < 10; i++) solution[i] = new Entry(); + } + + // INSTANCE METHODS + + /** + * Initialises the puzzle and solution set at [0,0] + * + * @return Sorted list of solution strings. + */ + private SortedSet solve() { + solve(0x0002004008010020L, 0, 0); + + return solutions; + } + + /** + * Recursively solves the puzzle by fitting pieces into the next available hexagon. + * + * @param puzzle Current puzzle bitmask. + * @param row Row of next available hexagon. + * @param col Column next available hexagon. + */ + private void solve(long puzzle, int row, int col) { + for (int ix = 0; ix < pieces.length; ix++) { + Piece piece; + Shape[] list; + + // ... find shapes that fit + + if ((piece = pieces[ix]) == null) continue; + else list = pieces[ix].shapes(row, col); + + for (Shape shape : list) { // ... fits badly ? + + if ((shape.bitmap & puzzle) != 0) continue; + + // ... try piece in puzzle + + long clone = puzzle | shape.bitmap; + + // ... find next position + + int irow = row; + int icol = col / 2 + 1; + + next: + while (irow < 10) { + while (icol < 5) { + if ((clone & MASK[irow][icol]) == 0) break next; + + icol++; + } + + irow++; + icol = 0; } - - // PIECES - - private static final Shape[] PIECE0 = { new Shape ('0',new int[][] {{3, 5},{2, 4},{1, 3},{0, 2},{0, 0}},0x0000000000082083L,0,false,6,0,4), - new Shape ('0',new int[][] {{4,-2},{3,-1},{2, 0},{1, 1},{0, 0}},0x0000000000421082L,1,false,5,2,8), - new Shape ('0',new int[][] {{1,-7},{1,-5},{1,-3},{1,-1},{0, 0}},0x00000000000003D0L,4,false,8,7,9), - new Shape ('0',new int[][] {{0, 0},{1, 1},{2, 2},{3, 3},{3, 5}},0x00000000000C1041L,0,false,6,0,4), - new Shape ('0',new int[][] {{0, 0},{1,-1},{2,-2},{3,-3},{4,-2}},0x0000000000821084L,2,false,5,3,9), - new Shape ('0',new int[][] {{0, 6},{0, 4},{0, 2},{0, 0},{1,-1}},0x000000000000005EL,1,false,8,1,3), - new Shape ('0',new int[][] {{0, 0},{1, 1},{2, 2},{3, 3},{4, 2}},0x0000000000841041L,0,false,5,0,6), - new Shape ('0',new int[][] {{0, 0},{1,-1},{2,-2},{3,-3},{3,-5}},0x0000000000062108L,3,false,6,5,9), - new Shape ('0',new int[][] {{1, 7},{1, 5},{1, 3},{1, 1},{0, 0}},0x00000000000003C1L,0,false,8,0,2), - new Shape ('0',new int[][] {{4, 2},{3, 1},{2, 0},{1,-1},{0, 0}},0x0000000001041042L,1,false,5,1,7), - new Shape ('0',new int[][] {{3,-3},{2,-2},{1,-1},{0, 0},{0, 2}},0x000000000002108CL,2,false,6,3,7), - new Shape ('0',new int[][] {{0, 0},{0, 2},{0, 4},{0, 6},{1, 7}},0x000000000000020FL,0,false,8,0,2) - }; - - private static final Shape[] PIECE1 = { new Shape ('1',new int[][] {{0, 2},{0, 0},{1,-1},{2, 0},{3,-1}},0x0000000000021046L,1,false,6,1,7), - new Shape ('1',new int[][] {{1, 3},{0, 2},{0, 0},{1,-1},{1,-3}},0x00000000000002CCL,2,false,8,3,6), - new Shape ('1',new int[][] {{3, 3},{2, 4},{1, 3},{1, 1},{0, 0}},0x00000000000420C1L,0,false,6,0,5), - new Shape ('1',new int[][] {{3,-3},{3,-1},{2, 0},{1,-1},{0, 0}},0x0000000000062084L,2,false,6,3,9), - new Shape ('1',new int[][] {{0, 0},{1, 1},{1, 3},{0, 4},{0, 6}},0x00000000000000CDL,0,true, 8,0,3), - new Shape ('1',new int[][] {{0, 0},{1,-1},{2, 0},{2, 2},{3, 3}},0x0000000000083042L,1,false,6,1,6), - new Shape ('1',new int[][] {{0, 6},{1, 5},{1, 3},{0, 2},{0, 0}},0x000000000000018BL,0,true, 8,0,3), - new Shape ('1',new int[][] {{3, 3},{3, 1},{2, 0},{1, 1},{0, 0}},0x0000000000060841L,0,false,6,0,6), - new Shape ('1',new int[][] {{3,-3},{2,-4},{1,-3},{1,-1},{0, 0}},0x00000000000208C4L,2,false,6,4,9), - new Shape ('1',new int[][] {{1,-1},{0, 0},{0, 2},{1, 3},{1, 5}},0x0000000000000346L,1,false,8,1,4), - new Shape ('1',new int[][] {{0, 0},{0, 2},{1, 3},{2, 2},{3, 3}},0x0000000000041083L,0,false,6,0,6), - new Shape ('1',new int[][] {{0, 0},{1, 1},{2, 0},{2,-2},{3,-3}},0x0000000000023104L,2,false,6,3,8) - }; - - private static final Shape[] PIECE2 = { new Shape ('2',new int[][] {{1, 1},{0, 0},{2, 0},{2,-2},{2,-4}},0x0000000000003904L,2,false,7,4,8), - new Shape ('2',new int[][] {{2, 4},{1, 5},{2, 2},{1, 1},{0, 0}},0x0000000000003141L,0,false,7,0,4), - new Shape ('2',new int[][] {{3,-1},{3, 1},{2,-2},{1,-1},{0, 0}},0x0000000000060842L,1,false,6,2,8), - new Shape ('2',new int[][] {{1,-1},{2, 0},{0, 0},{0, 2},{0, 4}},0x000000000000104EL,1,false,7,1,5), - new Shape ('2',new int[][] {{0, 0},{1,-1},{0, 2},{1, 3},{2, 4}},0x0000000000004146L,1,false,7,1,5), - new Shape ('2',new int[][] {{0, 2},{0, 0},{1, 3},{2, 2},{3, 1}},0x0000000000021083L,0,true, 6,0,6), - new Shape ('2',new int[][] {{0, 2},{1, 3},{0, 0},{1,-1},{2,-2}},0x0000000000000946L,1,false,7,2,6), - new Shape ('2',new int[][] {{1, 5},{2, 4},{0, 4},{0, 2},{0, 0}},0x0000000000002107L,0,false,7,0,4), - new Shape ('2',new int[][] {{3, 1},{3,-1},{2, 2},{1, 1},{0, 0}},0x0000000000062082L,1,false,6,1,7), - new Shape ('2',new int[][] {{2,-4},{1,-5},{2,-2},{1,-1},{0, 0}},0x0000000000003148L,3,false,7,5,9), - new Shape ('2',new int[][] {{1,-1},{0, 0},{2, 0},{2, 2},{2, 4}},0x0000000000007042L,1,false,7,1,5), - new Shape ('2',new int[][] {{0, 0},{0, 2},{1,-1},{2, 0},{3, 1}},0x0000000000041046L,1,false,6,1,7) - }; - - private static final Shape[] PIECE3 = { new Shape ('3',new int[][] {{0, 0},{2, 0},{1,-1},{2,-2},{2,-4}},0x0000000000003884L,2,false,7,4,9), - new Shape ('3',new int[][] {{1, 5},{2, 2},{1, 3},{1, 1},{0, 0}},0x00000000000011C1L,0,false,7,0,4), - new Shape ('3',new int[][] {{3, 1},{2,-2},{2, 0},{1,-1},{0, 0}},0x0000000000041842L,1,false,6,2,8), - new Shape ('3',new int[][] {{2, 0},{0, 0},{1, 1},{0, 2},{0, 4}},0x0000000000000847L,0,false,7,0,5), - new Shape ('3',new int[][] {{1,-3},{0, 0},{1,-1},{1, 1},{2, 2}},0x00000000000041C4L,2,false,7,3,7), - new Shape ('3',new int[][] {{0, 0},{1, 3},{1, 1},{2, 2},{3, 1}},0x00000000000210C1L,0,true, 6,0,6), - new Shape ('3',new int[][] {{1, 3},{0, 0},{1, 1},{1,-1},{2,-2}},0x00000000000009C2L,1,false,7,2,6), - new Shape ('3',new int[][] {{2, 4},{0, 4},{1, 3},{0, 2},{0, 0}},0x0000000000002087L,0,false,7,0,5), - new Shape ('3',new int[][] {{3,-1},{2, 2},{2, 0},{1, 1},{0, 0}},0x0000000000023082L,1,false,6,1,7), - new Shape ('3',new int[][] {{1,-5},{2,-2},{1,-3},{1,-1},{0, 0}},0x00000000000021C8L,3,false,7,5,9), - new Shape ('3',new int[][] {{0, 0},{2, 0},{1, 1},{2, 2},{2, 4}},0x0000000000003841L,0,false,7,0,5), - new Shape ('3',new int[][] {{0, 0},{1,-3},{1,-1},{2,-2},{3,-1}},0x00000000000410C4L,2,false,6,3,9) - }; - - private static final Shape[] PIECE4 = { new Shape ('4',new int[][] {{1, 5},{2, 2},{1, 3},{0, 2},{0, 0}},0x0000000000001183L,0,false,7,0,4), - new Shape ('4',new int[][] {{3, 1},{2,-2},{2, 0},{1, 1},{0, 0}},0x0000000000041882L,1,false,6,2,8), - new Shape ('4',new int[][] {{2, 0},{0, 0},{1, 1},{1, 3},{0, 4}},0x00000000000008C5L,0,true, 7,0,5), - new Shape ('4',new int[][] {{1,-3},{0, 0},{1,-1},{2, 0},{2, 2}},0x00000000000060C4L,2,false,7,3,7), - new Shape ('4',new int[][] {{0, 0},{1, 3},{1, 1},{2, 0},{3, 1}},0x00000000000208C1L,0,false,6,0,6), - new Shape ('4',new int[][] {{0, 0},{2, 0},{1,-1},{1,-3},{2,-4}},0x00000000000028C4L,2,false,7,4,9), - new Shape ('4',new int[][] {{0, 0},{1,-3},{1,-1},{2, 0},{3,-1}},0x00000000000420C4L,2,false,6,3,9), - new Shape ('4',new int[][] {{1, 3},{0, 0},{1, 1},{2, 0},{2,-2}},0x0000000000001982L,1,false,7,2,6), - new Shape ('4',new int[][] {{2, 4},{0, 4},{1, 3},{1, 1},{0, 0}},0x00000000000020C5L,0,true, 7,0,5), - new Shape ('4',new int[][] {{3,-1},{2, 2},{2, 0},{1,-1},{0, 0}},0x0000000000023042L,1,false,6,1,7), - new Shape ('4',new int[][] {{1,-3},{2, 0},{1,-1},{0, 0},{0, 2}},0x00000000000020CCL,2,false,7,3,7), - new Shape ('4',new int[][] {{0, 0},{2, 0},{1, 1},{1, 3},{2, 4}},0x00000000000028C1L,0,false,7,0,5) - }; - - private static final Shape[] PIECE5 = { new Shape ('5',new int[][] {{0, 2},{1, 1},{0, 0},{1,-1},{2,-2}},0x00000000000008C6L,1,false,7,2,7), - new Shape ('5',new int[][] {{1, 5},{1, 3},{0, 4},{0, 2},{0, 0}},0x0000000000000187L,0,false,8,0,4), - new Shape ('5',new int[][] {{3, 1},{2, 0},{2, 2},{1, 1},{0, 0}},0x0000000000021841L,0,false,6,0,7), - new Shape ('5',new int[][] {{2,-4},{1,-3},{2,-2},{1,-1},{0, 0}},0x00000000000018C4L,2,false,7,4,9), - new Shape ('5',new int[][] {{0, 0},{0, 2},{1, 1},{1, 3},{1, 5}},0x00000000000001C3L,0,false,8,0,4), - new Shape ('5',new int[][] {{0, 0},{1, 1},{1,-1},{2, 0},{3, 1}},0x00000000000410C2L,1,false,6,1,8), - new Shape ('5',new int[][] {{0, 2},{0, 0},{1, 1},{1,-1},{1,-3}},0x00000000000001CCL,2,false,8,3,7), - new Shape ('5',new int[][] {{2, 4},{1, 3},{2, 2},{1, 1},{0, 0}},0x00000000000030C1L,0,false,7,0,5), - new Shape ('5',new int[][] {{3,-1},{2, 0},{2,-2},{1,-1},{0, 0}},0x0000000000021842L,1,false,6,2,9), - new Shape ('5',new int[][] {{1,-1},{1, 1},{0, 0},{0, 2},{0, 4}},0x00000000000000CEL,1,false,8,1,5), - new Shape ('5',new int[][] {{0, 0},{1, 1},{0, 2},{1, 3},{2, 4}},0x00000000000020C3L,0,false,7,0,5), - new Shape ('5',new int[][] {{0, 0},{1,-1},{1, 1},{2, 0},{3,-1}},0x00000000000210C2L,1,false,6,1,8) - }; - - private static final Shape[] PIECE6 = { new Shape ('6',new int[][] {{1, 1},{0, 0},{1,-1},{1,-3},{2,-4}},0x00000000000009C4L,2,false,7,4,8), - new Shape ('6',new int[][] {{2, 4},{1, 5},{1, 3},{0, 2},{0, 0}},0x0000000000002183L,0,false,7,0,4), - new Shape ('6',new int[][] {{3,-1},{3, 1},{2, 0},{1, 1},{0, 0}},0x0000000000061082L,1,false,6,1,8), - new Shape ('6',new int[][] {{1,-5},{2,-4},{1,-3},{1,-1},{0, 0}},0x00000000000011C8L,3,false,7,5,9), - new Shape ('6',new int[][] {{0, 0},{1,-1},{1, 1},{2, 2},{2, 4}},0x00000000000060C2L,1,false,7,1,5), - new Shape ('6',new int[][] {{0, 2},{0, 0},{1, 1},{2, 0},{3, 1}},0x0000000000020843L,0,false,6,0,7), - new Shape ('6',new int[][] {{0, 0},{1, 1},{1,-1},{2,-2},{2,-4}},0x0000000000001984L,2,false,7,4,8), - new Shape ('6',new int[][] {{1, 5},{2, 4},{1, 3},{1, 1},{0, 0}},0x00000000000021C1L,0,false,7,0,4), - new Shape ('6',new int[][] {{3, 1},{3,-1},{2, 0},{1,-1},{0, 0}},0x0000000000061042L,1,false,6,1,8), - new Shape ('6',new int[][] {{2,-2},{1,-3},{1,-1},{0, 0},{0, 2}},0x00000000000010CCL,2,false,7,3,7), - new Shape ('6',new int[][] {{1,-1},{0, 0},{1, 1},{1, 3},{2, 4}},0x00000000000041C2L,1,false,7,1,5), - new Shape ('6',new int[][] {{0, 0},{0, 2},{1, 1},{2, 2},{3, 1}},0x0000000000021043L,0,false,6,0,7) - }; - - private static final Shape[] PIECE7 = { new Shape ('7',new int[][] {{0, 2},{1, 1},{0, 0},{2, 0},{2,-2}},0x0000000000001886L,1,false,7,2,7), - new Shape ('7',new int[][] {{1, 5},{1, 3},{0, 4},{1, 1},{0, 0}},0x00000000000001C5L,0,true, 8,0,4), - new Shape ('7',new int[][] {{3, 1},{2, 0},{2, 2},{1,-1},{0, 0}},0x0000000000043042L,1,false,6,1,7), - new Shape ('7',new int[][] {{2,-2},{1,-1},{2, 0},{0, 0},{0, 2}},0x0000000000001846L,1,false,7,2,7), - new Shape ('7',new int[][] {{0, 0},{0, 2},{1, 1},{0, 4},{1, 5}},0x0000000000000147L,0,false,8,0,4), - new Shape ('7',new int[][] {{0, 0},{1, 1},{1,-1},{2, 2},{3, 1}},0x00000000000420C2L,1,false,6,1,7), - new Shape ('7',new int[][] {{0, 4},{0, 2},{1, 3},{0, 0},{1,-1}},0x000000000000014EL,1,false,8,1,5), - new Shape ('7',new int[][] {{2, 4},{1, 3},{2, 2},{0, 2},{0, 0}},0x0000000000003083L,0,false,7,0,5), - new Shape ('7',new int[][] {{3,-1},{2, 0},{2,-2},{1, 1},{0, 0}},0x0000000000021882L,1,false,6,2,8), - new Shape ('7',new int[][] {{1,-1},{1, 1},{0, 0},{1, 3},{0, 4}},0x00000000000001CAL,1,false,8,1,5), - new Shape ('7',new int[][] {{0, 0},{1, 1},{0, 2},{2, 2},{2, 4}},0x0000000000003043L,0,false,7,0,5), - new Shape ('7',new int[][] {{0, 0},{1,-1},{1, 1},{2,-2},{3,-1}},0x00000000000208C2L,1,false,6,2,8) - }; - - private static final Shape[] PIECE8 = { new Shape ('8',new int[][] {{4, 2},{3, 1},{2, 0},{1, 1},{0, 0}},0x0000000000820841L,0,false,5,0,7), - new Shape ('8',new int[][] {{3,-5},{2,-4},{1,-3},{1,-1},{0, 0}},0x0000000000021188L,3,false,6,5,9), - new Shape ('8',new int[][] {{0, 0},{0, 2},{0, 4},{1, 5},{1, 7}},0x0000000000000307L,0,false,8,0,2), - new Shape ('8',new int[][] {{0, 0},{1, 1},{2, 2},{3, 1},{4, 2}},0x0000000000821041L,0,true, 5,0,7), - new Shape ('8',new int[][] {{0, 0},{1,-1},{2,-2},{2,-4},{3,-5}},0x0000000000023108L,3,false,6,5,9), - new Shape ('8',new int[][] {{1, 7},{1, 5},{1, 3},{0, 2},{0, 0}},0x0000000000000383L,0,false,8,0,2), - new Shape ('8',new int[][] {{0, 0},{1, 1},{2, 2},{2, 4},{3, 5}},0x0000000000083041L,0,false,6,0,4), - new Shape ('8',new int[][] {{0, 0},{1,-1},{2,-2},{3,-1},{4,-2}},0x0000000000420842L,1,false,5,2,9), - new Shape ('8',new int[][] {{0, 4},{0, 2},{0, 0},{1,-1},{1,-3}},0x00000000000000DCL,2,false,8,3,5), - new Shape ('8',new int[][] {{3, 5},{2, 4},{1, 3},{1, 1},{0, 0}},0x00000000000820C1L,0,false,6,0,4), - new Shape ('8',new int[][] {{4,-2},{3,-1},{2, 0},{1,-1},{0, 0}},0x0000000000421042L,1,false,5,2,9), - new Shape ('8',new int[][] {{1,-5},{1,-3},{1,-1},{0, 0},{0, 2}},0x00000000000001D8L,3,false,8,5,7) - }; - - private static final Shape[] PIECE9 = { new Shape ('9',new int[][] {{3, 3},{2, 2},{1, 1},{0, 0},{0, 2}},0x0000000000041043L,0,false,6,0,6), - new Shape ('9',new int[][] {{3,-3},{2,-2},{1,-1},{0, 0},{1, 1}},0x0000000000021184L,2,false,6,3,8), - new Shape ('9',new int[][] {{0, 0},{0, 2},{0, 4},{0, 6},{1, 5}},0x000000000000010FL,0,false,8,0,3), - new Shape ('9',new int[][] {{0, 0},{1, 1},{2, 2},{3, 3},{3, 1}},0x0000000000061041L,0,true, 6,0,6), - new Shape ('9',new int[][] {{0, 0},{1,-1},{2,-2},{3,-3},{2,-4}},0x0000000000021884L,2,false,6,4,9), - new Shape ('9',new int[][] {{1, 5},{1, 3},{1, 1},{1,-1},{0, 0}},0x00000000000003C2L,1,false,8,1,4), - new Shape ('9',new int[][] {{0, 0},{1, 1},{2, 2},{3, 3},{2, 4}},0x0000000000043041L,0,false,6,0,5), - new Shape ('9',new int[][] {{0, 0},{1,-1},{2,-2},{3,-3},{3,-1}},0x0000000000061084L,2,false,6,3,9), - new Shape ('9',new int[][] {{0, 6},{0, 4},{0, 2},{0, 0},{1, 1}},0x000000000000004FL,0,false,8,0,3), - new Shape ('9',new int[][] {{3, 3},{2, 2},{1, 1},{0, 0},{1,-1}},0x00000000000820C2L,1,false,6,1,6), - new Shape ('9',new int[][] {{3,-1},{2, 0},{1, 1},{0, 2},{0, 0}},0x0000000000021086L,1,false,6,1,7), - new Shape ('9',new int[][] {{1,-5},{1,-3},{1,-1},{1, 1},{0, 0}},0x00000000000003C8L,3,false,8,5,8) - }; - - // CHECKSTYLE.ON: .* + + // ... solve next + + Entry entry; + + pieces[ix] = null; + entry = solution[depth++]; + entry.row = row; + entry.col = col; + entry.shape = shape; + + if (depth == 10) solutions.add(serialize(solution)); + else solve(clone, irow, 2 * icol + (irow % 2)); + + depth--; + pieces[ix] = piece; + } + } + } + + /** Serializes the current solution to a string. */ + private String serialize(Entry[] solution) { + char[] puzzle = new char[50]; + Shape shape; + int row; + int col; + + for (Entry entry : solution) { + shape = entry.shape; + row = entry.row; + col = entry.col; + + for (int[] xy : shape.vector) puzzle[5 * (row + xy[0]) + (col + xy[1]) / 2] = shape.symbol; + } + + return new String(puzzle); + } + + // INNER CLASSES + + /** Container class for a solution set entry. */ + private static class Entry { + public int row; + public int col; + public Shape shape; + } + + /** Container class for the shapes for a single puzzle piece. */ + private static class Piece { + private Shape[][][] shapes = new Shape[10][10][]; + + @SuppressWarnings("unchecked") + private Piece(Shape[] list) { // ... initialise + + ArrayList[][] array = new ArrayList[10][10]; + + for (int i = 0; i < 10; i++) + for (int j = 0; j < 10; j++) array[i][j] = new ArrayList(); + + // ... generate list + + for (Shape mutant : list) + for (int row = 0; row <= mutant.maxRow; row++) + for (int col = mutant.minCol; col <= mutant.maxCol; col++) { + if (!mutant.islet) array[row][col].add(new Shape(mutant, row, col)); + else if ((row != 0) || (col != 0)) array[row][col].add(new Shape(mutant, row, col)); + } + + for (int row = 0; row < 10; row++) + for (int col = 0; col < 10; col++) + shapes[row][col] = (Shape[]) array[row][col].toArray(new Shape[0]); + } + + @SuppressWarnings("unchecked") + private Shape[] shapes(int row, int col) { + return shapes[row][col]; + } + } + + /** Container class for the shape vector and bitmap single puzzle piece mutation. */ + private static class Shape { + private char symbol; + private int[][] vector; + private long bitmap; + private int shift; + + private boolean islet; + private int maxRow; + private int minCol; + private int maxCol; + + private Shape( + char symbol, + int[][] vector, + long bitmap, + int shift, + boolean islet, + int maxRow, + int minCol, + int maxCol) { + this.symbol = symbol; + this.vector = vector; + this.bitmap = bitmap; + this.shift = shift; + + this.islet = islet; + this.maxRow = maxRow; + this.minCol = minCol; + this.maxCol = maxCol; + } + + private Shape(Shape shape, int row, int col) { + this.symbol = shape.symbol; + this.vector = shape.vector; + this.bitmap = shape.bitmap << ((SHIFT[row] + (col - (row % 2)) / 2) - shape.shift); + + this.islet = shape.islet; + this.maxRow = shape.maxRow; + this.minCol = shape.minCol; + this.maxCol = shape.maxCol; + } + } + + // PIECES + + private static final Shape[] PIECE0 = { + new Shape( + '0', + new int[][] {{3, 5}, {2, 4}, {1, 3}, {0, 2}, {0, 0}}, + 0x0000000000082083L, + 0, + false, + 6, + 0, + 4), + new Shape( + '0', + new int[][] {{4, -2}, {3, -1}, {2, 0}, {1, 1}, {0, 0}}, + 0x0000000000421082L, + 1, + false, + 5, + 2, + 8), + new Shape( + '0', + new int[][] {{1, -7}, {1, -5}, {1, -3}, {1, -1}, {0, 0}}, + 0x00000000000003D0L, + 4, + false, + 8, + 7, + 9), + new Shape( + '0', + new int[][] {{0, 0}, {1, 1}, {2, 2}, {3, 3}, {3, 5}}, + 0x00000000000C1041L, + 0, + false, + 6, + 0, + 4), + new Shape( + '0', + new int[][] {{0, 0}, {1, -1}, {2, -2}, {3, -3}, {4, -2}}, + 0x0000000000821084L, + 2, + false, + 5, + 3, + 9), + new Shape( + '0', + new int[][] {{0, 6}, {0, 4}, {0, 2}, {0, 0}, {1, -1}}, + 0x000000000000005EL, + 1, + false, + 8, + 1, + 3), + new Shape( + '0', + new int[][] {{0, 0}, {1, 1}, {2, 2}, {3, 3}, {4, 2}}, + 0x0000000000841041L, + 0, + false, + 5, + 0, + 6), + new Shape( + '0', + new int[][] {{0, 0}, {1, -1}, {2, -2}, {3, -3}, {3, -5}}, + 0x0000000000062108L, + 3, + false, + 6, + 5, + 9), + new Shape( + '0', + new int[][] {{1, 7}, {1, 5}, {1, 3}, {1, 1}, {0, 0}}, + 0x00000000000003C1L, + 0, + false, + 8, + 0, + 2), + new Shape( + '0', + new int[][] {{4, 2}, {3, 1}, {2, 0}, {1, -1}, {0, 0}}, + 0x0000000001041042L, + 1, + false, + 5, + 1, + 7), + new Shape( + '0', + new int[][] {{3, -3}, {2, -2}, {1, -1}, {0, 0}, {0, 2}}, + 0x000000000002108CL, + 2, + false, + 6, + 3, + 7), + new Shape( + '0', + new int[][] {{0, 0}, {0, 2}, {0, 4}, {0, 6}, {1, 7}}, + 0x000000000000020FL, + 0, + false, + 8, + 0, + 2) + }; + + private static final Shape[] PIECE1 = { + new Shape( + '1', + new int[][] {{0, 2}, {0, 0}, {1, -1}, {2, 0}, {3, -1}}, + 0x0000000000021046L, + 1, + false, + 6, + 1, + 7), + new Shape( + '1', + new int[][] {{1, 3}, {0, 2}, {0, 0}, {1, -1}, {1, -3}}, + 0x00000000000002CCL, + 2, + false, + 8, + 3, + 6), + new Shape( + '1', + new int[][] {{3, 3}, {2, 4}, {1, 3}, {1, 1}, {0, 0}}, + 0x00000000000420C1L, + 0, + false, + 6, + 0, + 5), + new Shape( + '1', + new int[][] {{3, -3}, {3, -1}, {2, 0}, {1, -1}, {0, 0}}, + 0x0000000000062084L, + 2, + false, + 6, + 3, + 9), + new Shape( + '1', + new int[][] {{0, 0}, {1, 1}, {1, 3}, {0, 4}, {0, 6}}, + 0x00000000000000CDL, + 0, + true, + 8, + 0, + 3), + new Shape( + '1', + new int[][] {{0, 0}, {1, -1}, {2, 0}, {2, 2}, {3, 3}}, + 0x0000000000083042L, + 1, + false, + 6, + 1, + 6), + new Shape( + '1', + new int[][] {{0, 6}, {1, 5}, {1, 3}, {0, 2}, {0, 0}}, + 0x000000000000018BL, + 0, + true, + 8, + 0, + 3), + new Shape( + '1', + new int[][] {{3, 3}, {3, 1}, {2, 0}, {1, 1}, {0, 0}}, + 0x0000000000060841L, + 0, + false, + 6, + 0, + 6), + new Shape( + '1', + new int[][] {{3, -3}, {2, -4}, {1, -3}, {1, -1}, {0, 0}}, + 0x00000000000208C4L, + 2, + false, + 6, + 4, + 9), + new Shape( + '1', + new int[][] {{1, -1}, {0, 0}, {0, 2}, {1, 3}, {1, 5}}, + 0x0000000000000346L, + 1, + false, + 8, + 1, + 4), + new Shape( + '1', + new int[][] {{0, 0}, {0, 2}, {1, 3}, {2, 2}, {3, 3}}, + 0x0000000000041083L, + 0, + false, + 6, + 0, + 6), + new Shape( + '1', + new int[][] {{0, 0}, {1, 1}, {2, 0}, {2, -2}, {3, -3}}, + 0x0000000000023104L, + 2, + false, + 6, + 3, + 8) + }; + + private static final Shape[] PIECE2 = { + new Shape( + '2', + new int[][] {{1, 1}, {0, 0}, {2, 0}, {2, -2}, {2, -4}}, + 0x0000000000003904L, + 2, + false, + 7, + 4, + 8), + new Shape( + '2', + new int[][] {{2, 4}, {1, 5}, {2, 2}, {1, 1}, {0, 0}}, + 0x0000000000003141L, + 0, + false, + 7, + 0, + 4), + new Shape( + '2', + new int[][] {{3, -1}, {3, 1}, {2, -2}, {1, -1}, {0, 0}}, + 0x0000000000060842L, + 1, + false, + 6, + 2, + 8), + new Shape( + '2', + new int[][] {{1, -1}, {2, 0}, {0, 0}, {0, 2}, {0, 4}}, + 0x000000000000104EL, + 1, + false, + 7, + 1, + 5), + new Shape( + '2', + new int[][] {{0, 0}, {1, -1}, {0, 2}, {1, 3}, {2, 4}}, + 0x0000000000004146L, + 1, + false, + 7, + 1, + 5), + new Shape( + '2', + new int[][] {{0, 2}, {0, 0}, {1, 3}, {2, 2}, {3, 1}}, + 0x0000000000021083L, + 0, + true, + 6, + 0, + 6), + new Shape( + '2', + new int[][] {{0, 2}, {1, 3}, {0, 0}, {1, -1}, {2, -2}}, + 0x0000000000000946L, + 1, + false, + 7, + 2, + 6), + new Shape( + '2', + new int[][] {{1, 5}, {2, 4}, {0, 4}, {0, 2}, {0, 0}}, + 0x0000000000002107L, + 0, + false, + 7, + 0, + 4), + new Shape( + '2', + new int[][] {{3, 1}, {3, -1}, {2, 2}, {1, 1}, {0, 0}}, + 0x0000000000062082L, + 1, + false, + 6, + 1, + 7), + new Shape( + '2', + new int[][] {{2, -4}, {1, -5}, {2, -2}, {1, -1}, {0, 0}}, + 0x0000000000003148L, + 3, + false, + 7, + 5, + 9), + new Shape( + '2', + new int[][] {{1, -1}, {0, 0}, {2, 0}, {2, 2}, {2, 4}}, + 0x0000000000007042L, + 1, + false, + 7, + 1, + 5), + new Shape( + '2', + new int[][] {{0, 0}, {0, 2}, {1, -1}, {2, 0}, {3, 1}}, + 0x0000000000041046L, + 1, + false, + 6, + 1, + 7) + }; + + private static final Shape[] PIECE3 = { + new Shape( + '3', + new int[][] {{0, 0}, {2, 0}, {1, -1}, {2, -2}, {2, -4}}, + 0x0000000000003884L, + 2, + false, + 7, + 4, + 9), + new Shape( + '3', + new int[][] {{1, 5}, {2, 2}, {1, 3}, {1, 1}, {0, 0}}, + 0x00000000000011C1L, + 0, + false, + 7, + 0, + 4), + new Shape( + '3', + new int[][] {{3, 1}, {2, -2}, {2, 0}, {1, -1}, {0, 0}}, + 0x0000000000041842L, + 1, + false, + 6, + 2, + 8), + new Shape( + '3', + new int[][] {{2, 0}, {0, 0}, {1, 1}, {0, 2}, {0, 4}}, + 0x0000000000000847L, + 0, + false, + 7, + 0, + 5), + new Shape( + '3', + new int[][] {{1, -3}, {0, 0}, {1, -1}, {1, 1}, {2, 2}}, + 0x00000000000041C4L, + 2, + false, + 7, + 3, + 7), + new Shape( + '3', + new int[][] {{0, 0}, {1, 3}, {1, 1}, {2, 2}, {3, 1}}, + 0x00000000000210C1L, + 0, + true, + 6, + 0, + 6), + new Shape( + '3', + new int[][] {{1, 3}, {0, 0}, {1, 1}, {1, -1}, {2, -2}}, + 0x00000000000009C2L, + 1, + false, + 7, + 2, + 6), + new Shape( + '3', + new int[][] {{2, 4}, {0, 4}, {1, 3}, {0, 2}, {0, 0}}, + 0x0000000000002087L, + 0, + false, + 7, + 0, + 5), + new Shape( + '3', + new int[][] {{3, -1}, {2, 2}, {2, 0}, {1, 1}, {0, 0}}, + 0x0000000000023082L, + 1, + false, + 6, + 1, + 7), + new Shape( + '3', + new int[][] {{1, -5}, {2, -2}, {1, -3}, {1, -1}, {0, 0}}, + 0x00000000000021C8L, + 3, + false, + 7, + 5, + 9), + new Shape( + '3', + new int[][] {{0, 0}, {2, 0}, {1, 1}, {2, 2}, {2, 4}}, + 0x0000000000003841L, + 0, + false, + 7, + 0, + 5), + new Shape( + '3', + new int[][] {{0, 0}, {1, -3}, {1, -1}, {2, -2}, {3, -1}}, + 0x00000000000410C4L, + 2, + false, + 6, + 3, + 9) + }; + + private static final Shape[] PIECE4 = { + new Shape( + '4', + new int[][] {{1, 5}, {2, 2}, {1, 3}, {0, 2}, {0, 0}}, + 0x0000000000001183L, + 0, + false, + 7, + 0, + 4), + new Shape( + '4', + new int[][] {{3, 1}, {2, -2}, {2, 0}, {1, 1}, {0, 0}}, + 0x0000000000041882L, + 1, + false, + 6, + 2, + 8), + new Shape( + '4', + new int[][] {{2, 0}, {0, 0}, {1, 1}, {1, 3}, {0, 4}}, + 0x00000000000008C5L, + 0, + true, + 7, + 0, + 5), + new Shape( + '4', + new int[][] {{1, -3}, {0, 0}, {1, -1}, {2, 0}, {2, 2}}, + 0x00000000000060C4L, + 2, + false, + 7, + 3, + 7), + new Shape( + '4', + new int[][] {{0, 0}, {1, 3}, {1, 1}, {2, 0}, {3, 1}}, + 0x00000000000208C1L, + 0, + false, + 6, + 0, + 6), + new Shape( + '4', + new int[][] {{0, 0}, {2, 0}, {1, -1}, {1, -3}, {2, -4}}, + 0x00000000000028C4L, + 2, + false, + 7, + 4, + 9), + new Shape( + '4', + new int[][] {{0, 0}, {1, -3}, {1, -1}, {2, 0}, {3, -1}}, + 0x00000000000420C4L, + 2, + false, + 6, + 3, + 9), + new Shape( + '4', + new int[][] {{1, 3}, {0, 0}, {1, 1}, {2, 0}, {2, -2}}, + 0x0000000000001982L, + 1, + false, + 7, + 2, + 6), + new Shape( + '4', + new int[][] {{2, 4}, {0, 4}, {1, 3}, {1, 1}, {0, 0}}, + 0x00000000000020C5L, + 0, + true, + 7, + 0, + 5), + new Shape( + '4', + new int[][] {{3, -1}, {2, 2}, {2, 0}, {1, -1}, {0, 0}}, + 0x0000000000023042L, + 1, + false, + 6, + 1, + 7), + new Shape( + '4', + new int[][] {{1, -3}, {2, 0}, {1, -1}, {0, 0}, {0, 2}}, + 0x00000000000020CCL, + 2, + false, + 7, + 3, + 7), + new Shape( + '4', + new int[][] {{0, 0}, {2, 0}, {1, 1}, {1, 3}, {2, 4}}, + 0x00000000000028C1L, + 0, + false, + 7, + 0, + 5) + }; + + private static final Shape[] PIECE5 = { + new Shape( + '5', + new int[][] {{0, 2}, {1, 1}, {0, 0}, {1, -1}, {2, -2}}, + 0x00000000000008C6L, + 1, + false, + 7, + 2, + 7), + new Shape( + '5', + new int[][] {{1, 5}, {1, 3}, {0, 4}, {0, 2}, {0, 0}}, + 0x0000000000000187L, + 0, + false, + 8, + 0, + 4), + new Shape( + '5', + new int[][] {{3, 1}, {2, 0}, {2, 2}, {1, 1}, {0, 0}}, + 0x0000000000021841L, + 0, + false, + 6, + 0, + 7), + new Shape( + '5', + new int[][] {{2, -4}, {1, -3}, {2, -2}, {1, -1}, {0, 0}}, + 0x00000000000018C4L, + 2, + false, + 7, + 4, + 9), + new Shape( + '5', + new int[][] {{0, 0}, {0, 2}, {1, 1}, {1, 3}, {1, 5}}, + 0x00000000000001C3L, + 0, + false, + 8, + 0, + 4), + new Shape( + '5', + new int[][] {{0, 0}, {1, 1}, {1, -1}, {2, 0}, {3, 1}}, + 0x00000000000410C2L, + 1, + false, + 6, + 1, + 8), + new Shape( + '5', + new int[][] {{0, 2}, {0, 0}, {1, 1}, {1, -1}, {1, -3}}, + 0x00000000000001CCL, + 2, + false, + 8, + 3, + 7), + new Shape( + '5', + new int[][] {{2, 4}, {1, 3}, {2, 2}, {1, 1}, {0, 0}}, + 0x00000000000030C1L, + 0, + false, + 7, + 0, + 5), + new Shape( + '5', + new int[][] {{3, -1}, {2, 0}, {2, -2}, {1, -1}, {0, 0}}, + 0x0000000000021842L, + 1, + false, + 6, + 2, + 9), + new Shape( + '5', + new int[][] {{1, -1}, {1, 1}, {0, 0}, {0, 2}, {0, 4}}, + 0x00000000000000CEL, + 1, + false, + 8, + 1, + 5), + new Shape( + '5', + new int[][] {{0, 0}, {1, 1}, {0, 2}, {1, 3}, {2, 4}}, + 0x00000000000020C3L, + 0, + false, + 7, + 0, + 5), + new Shape( + '5', + new int[][] {{0, 0}, {1, -1}, {1, 1}, {2, 0}, {3, -1}}, + 0x00000000000210C2L, + 1, + false, + 6, + 1, + 8) + }; + + private static final Shape[] PIECE6 = { + new Shape( + '6', + new int[][] {{1, 1}, {0, 0}, {1, -1}, {1, -3}, {2, -4}}, + 0x00000000000009C4L, + 2, + false, + 7, + 4, + 8), + new Shape( + '6', + new int[][] {{2, 4}, {1, 5}, {1, 3}, {0, 2}, {0, 0}}, + 0x0000000000002183L, + 0, + false, + 7, + 0, + 4), + new Shape( + '6', + new int[][] {{3, -1}, {3, 1}, {2, 0}, {1, 1}, {0, 0}}, + 0x0000000000061082L, + 1, + false, + 6, + 1, + 8), + new Shape( + '6', + new int[][] {{1, -5}, {2, -4}, {1, -3}, {1, -1}, {0, 0}}, + 0x00000000000011C8L, + 3, + false, + 7, + 5, + 9), + new Shape( + '6', + new int[][] {{0, 0}, {1, -1}, {1, 1}, {2, 2}, {2, 4}}, + 0x00000000000060C2L, + 1, + false, + 7, + 1, + 5), + new Shape( + '6', + new int[][] {{0, 2}, {0, 0}, {1, 1}, {2, 0}, {3, 1}}, + 0x0000000000020843L, + 0, + false, + 6, + 0, + 7), + new Shape( + '6', + new int[][] {{0, 0}, {1, 1}, {1, -1}, {2, -2}, {2, -4}}, + 0x0000000000001984L, + 2, + false, + 7, + 4, + 8), + new Shape( + '6', + new int[][] {{1, 5}, {2, 4}, {1, 3}, {1, 1}, {0, 0}}, + 0x00000000000021C1L, + 0, + false, + 7, + 0, + 4), + new Shape( + '6', + new int[][] {{3, 1}, {3, -1}, {2, 0}, {1, -1}, {0, 0}}, + 0x0000000000061042L, + 1, + false, + 6, + 1, + 8), + new Shape( + '6', + new int[][] {{2, -2}, {1, -3}, {1, -1}, {0, 0}, {0, 2}}, + 0x00000000000010CCL, + 2, + false, + 7, + 3, + 7), + new Shape( + '6', + new int[][] {{1, -1}, {0, 0}, {1, 1}, {1, 3}, {2, 4}}, + 0x00000000000041C2L, + 1, + false, + 7, + 1, + 5), + new Shape( + '6', + new int[][] {{0, 0}, {0, 2}, {1, 1}, {2, 2}, {3, 1}}, + 0x0000000000021043L, + 0, + false, + 6, + 0, + 7) + }; + + private static final Shape[] PIECE7 = { + new Shape( + '7', + new int[][] {{0, 2}, {1, 1}, {0, 0}, {2, 0}, {2, -2}}, + 0x0000000000001886L, + 1, + false, + 7, + 2, + 7), + new Shape( + '7', + new int[][] {{1, 5}, {1, 3}, {0, 4}, {1, 1}, {0, 0}}, + 0x00000000000001C5L, + 0, + true, + 8, + 0, + 4), + new Shape( + '7', + new int[][] {{3, 1}, {2, 0}, {2, 2}, {1, -1}, {0, 0}}, + 0x0000000000043042L, + 1, + false, + 6, + 1, + 7), + new Shape( + '7', + new int[][] {{2, -2}, {1, -1}, {2, 0}, {0, 0}, {0, 2}}, + 0x0000000000001846L, + 1, + false, + 7, + 2, + 7), + new Shape( + '7', + new int[][] {{0, 0}, {0, 2}, {1, 1}, {0, 4}, {1, 5}}, + 0x0000000000000147L, + 0, + false, + 8, + 0, + 4), + new Shape( + '7', + new int[][] {{0, 0}, {1, 1}, {1, -1}, {2, 2}, {3, 1}}, + 0x00000000000420C2L, + 1, + false, + 6, + 1, + 7), + new Shape( + '7', + new int[][] {{0, 4}, {0, 2}, {1, 3}, {0, 0}, {1, -1}}, + 0x000000000000014EL, + 1, + false, + 8, + 1, + 5), + new Shape( + '7', + new int[][] {{2, 4}, {1, 3}, {2, 2}, {0, 2}, {0, 0}}, + 0x0000000000003083L, + 0, + false, + 7, + 0, + 5), + new Shape( + '7', + new int[][] {{3, -1}, {2, 0}, {2, -2}, {1, 1}, {0, 0}}, + 0x0000000000021882L, + 1, + false, + 6, + 2, + 8), + new Shape( + '7', + new int[][] {{1, -1}, {1, 1}, {0, 0}, {1, 3}, {0, 4}}, + 0x00000000000001CAL, + 1, + false, + 8, + 1, + 5), + new Shape( + '7', + new int[][] {{0, 0}, {1, 1}, {0, 2}, {2, 2}, {2, 4}}, + 0x0000000000003043L, + 0, + false, + 7, + 0, + 5), + new Shape( + '7', + new int[][] {{0, 0}, {1, -1}, {1, 1}, {2, -2}, {3, -1}}, + 0x00000000000208C2L, + 1, + false, + 6, + 2, + 8) + }; + + private static final Shape[] PIECE8 = { + new Shape( + '8', + new int[][] {{4, 2}, {3, 1}, {2, 0}, {1, 1}, {0, 0}}, + 0x0000000000820841L, + 0, + false, + 5, + 0, + 7), + new Shape( + '8', + new int[][] {{3, -5}, {2, -4}, {1, -3}, {1, -1}, {0, 0}}, + 0x0000000000021188L, + 3, + false, + 6, + 5, + 9), + new Shape( + '8', + new int[][] {{0, 0}, {0, 2}, {0, 4}, {1, 5}, {1, 7}}, + 0x0000000000000307L, + 0, + false, + 8, + 0, + 2), + new Shape( + '8', + new int[][] {{0, 0}, {1, 1}, {2, 2}, {3, 1}, {4, 2}}, + 0x0000000000821041L, + 0, + true, + 5, + 0, + 7), + new Shape( + '8', + new int[][] {{0, 0}, {1, -1}, {2, -2}, {2, -4}, {3, -5}}, + 0x0000000000023108L, + 3, + false, + 6, + 5, + 9), + new Shape( + '8', + new int[][] {{1, 7}, {1, 5}, {1, 3}, {0, 2}, {0, 0}}, + 0x0000000000000383L, + 0, + false, + 8, + 0, + 2), + new Shape( + '8', + new int[][] {{0, 0}, {1, 1}, {2, 2}, {2, 4}, {3, 5}}, + 0x0000000000083041L, + 0, + false, + 6, + 0, + 4), + new Shape( + '8', + new int[][] {{0, 0}, {1, -1}, {2, -2}, {3, -1}, {4, -2}}, + 0x0000000000420842L, + 1, + false, + 5, + 2, + 9), + new Shape( + '8', + new int[][] {{0, 4}, {0, 2}, {0, 0}, {1, -1}, {1, -3}}, + 0x00000000000000DCL, + 2, + false, + 8, + 3, + 5), + new Shape( + '8', + new int[][] {{3, 5}, {2, 4}, {1, 3}, {1, 1}, {0, 0}}, + 0x00000000000820C1L, + 0, + false, + 6, + 0, + 4), + new Shape( + '8', + new int[][] {{4, -2}, {3, -1}, {2, 0}, {1, -1}, {0, 0}}, + 0x0000000000421042L, + 1, + false, + 5, + 2, + 9), + new Shape( + '8', + new int[][] {{1, -5}, {1, -3}, {1, -1}, {0, 0}, {0, 2}}, + 0x00000000000001D8L, + 3, + false, + 8, + 5, + 7) + }; + + private static final Shape[] PIECE9 = { + new Shape( + '9', + new int[][] {{3, 3}, {2, 2}, {1, 1}, {0, 0}, {0, 2}}, + 0x0000000000041043L, + 0, + false, + 6, + 0, + 6), + new Shape( + '9', + new int[][] {{3, -3}, {2, -2}, {1, -1}, {0, 0}, {1, 1}}, + 0x0000000000021184L, + 2, + false, + 6, + 3, + 8), + new Shape( + '9', + new int[][] {{0, 0}, {0, 2}, {0, 4}, {0, 6}, {1, 5}}, + 0x000000000000010FL, + 0, + false, + 8, + 0, + 3), + new Shape( + '9', + new int[][] {{0, 0}, {1, 1}, {2, 2}, {3, 3}, {3, 1}}, + 0x0000000000061041L, + 0, + true, + 6, + 0, + 6), + new Shape( + '9', + new int[][] {{0, 0}, {1, -1}, {2, -2}, {3, -3}, {2, -4}}, + 0x0000000000021884L, + 2, + false, + 6, + 4, + 9), + new Shape( + '9', + new int[][] {{1, 5}, {1, 3}, {1, 1}, {1, -1}, {0, 0}}, + 0x00000000000003C2L, + 1, + false, + 8, + 1, + 4), + new Shape( + '9', + new int[][] {{0, 0}, {1, 1}, {2, 2}, {3, 3}, {2, 4}}, + 0x0000000000043041L, + 0, + false, + 6, + 0, + 5), + new Shape( + '9', + new int[][] {{0, 0}, {1, -1}, {2, -2}, {3, -3}, {3, -1}}, + 0x0000000000061084L, + 2, + false, + 6, + 3, + 9), + new Shape( + '9', + new int[][] {{0, 6}, {0, 4}, {0, 2}, {0, 0}, {1, 1}}, + 0x000000000000004FL, + 0, + false, + 8, + 0, + 3), + new Shape( + '9', + new int[][] {{3, 3}, {2, 2}, {1, 1}, {0, 0}, {1, -1}}, + 0x00000000000820C2L, + 1, + false, + 6, + 1, + 6), + new Shape( + '9', + new int[][] {{3, -1}, {2, 0}, {1, 1}, {0, 2}, {0, 0}}, + 0x0000000000021086L, + 1, + false, + 6, + 1, + 7), + new Shape( + '9', + new int[][] {{1, -5}, {1, -3}, {1, -1}, {1, 1}, {0, 0}}, + 0x00000000000003C8L, + 3, + false, + 8, + 5, + 8) + }; public void resetMeteor() { for (int i = 0; i < 10; ++i) { diff --git a/benchmarks/benchmarksgame/nbody.java b/benchmarks/benchmarksgame/nbody.java deleted file mode 100644 index ad0a59f..0000000 --- a/benchmarks/benchmarksgame/nbody.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly - * modified to fit the benchmarking framework. - * - * The original file is `nbody/nbody.java` from the archive available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) - * - * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ - * - * contributed by Mark C. Lewis - * modified slightly by Chad Whipkey - * - * Same program, different command-line: - * -XX:MaxMetaspaceSize=3m -XX:InitialCodeCacheSize=2048K -XX:ReservedCodeCacheSize=2048K - */ - -/* - * Description: Double-precision N-body simulation. - * Main Focus: TODO - * - */ - -package benchmarks.benchmarksgame; - -// CHECKSTYLE.OFF: .* -final class NBodySystem { - private Body[] bodies; - - public NBodySystem(){ - bodies = new Body[]{ - Body.sun(), - Body.jupiter(), - Body.saturn(), - Body.uranus(), - Body.neptune() - }; - - double px = 0.0; - double py = 0.0; - double pz = 0.0; - for(int i=0; i < bodies.length; ++i) { - px += bodies[i].vx * bodies[i].mass; - py += bodies[i].vy * bodies[i].mass; - pz += bodies[i].vz * bodies[i].mass; - } - bodies[0].offsetMomentum(px,py,pz); - } - - public void advance(double dt) { - - for(int i=0; i < bodies.length; ++i) { - Body iBody = bodies[i]; - for(int j=i+1; j < bodies.length; ++j) { - double dx = iBody.x - bodies[j].x; - double dy = iBody.y - bodies[j].y; - double dz = iBody.z - bodies[j].z; - - double dSquared = dx * dx + dy * dy + dz * dz; - double distance = Math.sqrt(dSquared); - double mag = dt / (dSquared * distance); - - iBody.vx -= dx * bodies[j].mass * mag; - iBody.vy -= dy * bodies[j].mass * mag; - iBody.vz -= dz * bodies[j].mass * mag; - - bodies[j].vx += dx * iBody.mass * mag; - bodies[j].vy += dy * iBody.mass * mag; - bodies[j].vz += dz * iBody.mass * mag; - } - } - - for ( Body body : bodies) { - body.x += dt * body.vx; - body.y += dt * body.vy; - body.z += dt * body.vz; - } - } - - public double energy(){ - double dx, dy, dz, distance; - double e = 0.0; - - for (int i=0; i < bodies.length; ++i) { - Body iBody = bodies[i]; - e += 0.5 * iBody.mass * - ( iBody.vx * iBody.vx - + iBody.vy * iBody.vy - + iBody.vz * iBody.vz ); - - for (int j=i+1; j < bodies.length; ++j) { - Body jBody = bodies[j]; - dx = iBody.x - jBody.x; - dy = iBody.y - jBody.y; - dz = iBody.z - jBody.z; - - distance = Math.sqrt(dx*dx + dy*dy + dz*dz); - e -= (iBody.mass * jBody.mass) / distance; - } - } - return e; - } -} - - -final class Body { - static final double PI = 3.141592653589793; - static final double SOLAR_MASS = 4 * PI * PI; - static final double DAYS_PER_YEAR = 365.24; - - public double x, y, z, vx, vy, vz, mass; - - public Body(){} - - static Body jupiter(){ - Body p = new Body(); - p.x = 4.84143144246472090e+00; - p.y = -1.16032004402742839e+00; - p.z = -1.03622044471123109e-01; - p.vx = 1.66007664274403694e-03 * DAYS_PER_YEAR; - p.vy = 7.69901118419740425e-03 * DAYS_PER_YEAR; - p.vz = -6.90460016972063023e-05 * DAYS_PER_YEAR; - p.mass = 9.54791938424326609e-04 * SOLAR_MASS; - return p; - } - - static Body saturn(){ - Body p = new Body(); - p.x = 8.34336671824457987e+00; - p.y = 4.12479856412430479e+00; - p.z = -4.03523417114321381e-01; - p.vx = -2.76742510726862411e-03 * DAYS_PER_YEAR; - p.vy = 4.99852801234917238e-03 * DAYS_PER_YEAR; - p.vz = 2.30417297573763929e-05 * DAYS_PER_YEAR; - p.mass = 2.85885980666130812e-04 * SOLAR_MASS; - return p; - } - - static Body uranus(){ - Body p = new Body(); - p.x = 1.28943695621391310e+01; - p.y = -1.51111514016986312e+01; - p.z = -2.23307578892655734e-01; - p.vx = 2.96460137564761618e-03 * DAYS_PER_YEAR; - p.vy = 2.37847173959480950e-03 * DAYS_PER_YEAR; - p.vz = -2.96589568540237556e-05 * DAYS_PER_YEAR; - p.mass = 4.36624404335156298e-05 * SOLAR_MASS; - return p; - } - - static Body neptune(){ - Body p = new Body(); - p.x = 1.53796971148509165e+01; - p.y = -2.59193146099879641e+01; - p.z = 1.79258772950371181e-01; - p.vx = 2.68067772490389322e-03 * DAYS_PER_YEAR; - p.vy = 1.62824170038242295e-03 * DAYS_PER_YEAR; - p.vz = -9.51592254519715870e-05 * DAYS_PER_YEAR; - p.mass = 5.15138902046611451e-05 * SOLAR_MASS; - return p; - } - - static Body sun(){ - Body p = new Body(); - p.mass = SOLAR_MASS; - return p; - } - - Body offsetMomentum(double px, double py, double pz){ - vx = -px / SOLAR_MASS; - vy = -py / SOLAR_MASS; - vz = -pz / SOLAR_MASS; - return this; - } -} - -public final class nbody { - // CHECKSTYLE.ON: .* - private NBodySystem bodies; - - public nbody() { - bodies = new NBodySystem(); - } - - private static final int PREDEFINED_N_STEPS = 1000; - - public void solve() { - for (int i = 0; i < PREDEFINED_N_STEPS; ++i) { - bodies.advance(0.01); - } - } - - public void timeNBody(int iters) { - for (int j = 0; j < iters; ++j) { - solve(); - } - } - - public boolean verifyNBody() { - bodies = new NBodySystem(); - solve(); - - double expected = -0.169087605234606; - double found = bodies.energy(); - - if (Math.abs(expected - found) > 0.000000001) { - System.out.println("ERROR: Expected " + expected + " but found " + found); - return false; - } - - return true; - } - - public static void main(String[] args) { - int rc = 0; - nbody obj = new nbody(); - - final long before = System.currentTimeMillis(); - obj.timeNBody(1000); - final long after = System.currentTimeMillis(); - - if (!obj.verifyNBody()) { - rc++; - } - System.out.println("benchmarks/benchmarksgame/nbody: " + (after - before)); - System.exit(rc); - } -} diff --git a/benchmarks/benchmarksgame/nbody_3.java b/benchmarks/benchmarksgame/nbody_3.java new file mode 100644 index 0000000..97fa5db --- /dev/null +++ b/benchmarks/benchmarksgame/nbody_3.java @@ -0,0 +1,217 @@ +/* + * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly + * modified to fit the benchmarking framework. + * + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-java-3.html + * + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * contributed by Mark C. Lewis + * modified slightly by Chad Whipkey + * modified slightly by Stefan Feldbinder + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html + */ + +/* + * Description: Double-precision N-body simulation. + * Main Focus: TODO + * + */ + +package benchmarks.benchmarksgame; + +final class NBodySystem { + private Body[] bodies; + + public NBodySystem() { + bodies = new Body[] {Body.sun(), Body.jupiter(), Body.saturn(), Body.uranus(), Body.neptune()}; + + double px = 0.0; + double py = 0.0; + double pz = 0.0; + for (int i = 0; i < bodies.length; ++i) { + px += bodies[i].vx * bodies[i].mass; + py += bodies[i].vy * bodies[i].mass; + pz += bodies[i].vz * bodies[i].mass; + } + bodies[0].offsetMomentum(px, py, pz); + } + + public void advance(double dt) { + + for (int i = 0; i < bodies.length; ++i) { + Body iBody = bodies[i]; + for (int j = i + 1; j < bodies.length; ++j) { + double dx = iBody.x - bodies[j].x; + double dy = iBody.y - bodies[j].y; + double dz = iBody.z - bodies[j].z; + + double dSquared = dx * dx + dy * dy + dz * dz; + double distance = Math.sqrt(dSquared); + double mag = dt / (dSquared * distance); + + iBody.vx -= dx * bodies[j].mass * mag; + iBody.vy -= dy * bodies[j].mass * mag; + iBody.vz -= dz * bodies[j].mass * mag; + + bodies[j].vx += dx * iBody.mass * mag; + bodies[j].vy += dy * iBody.mass * mag; + bodies[j].vz += dz * iBody.mass * mag; + } + } + + for (Body body : bodies) { + body.x += dt * body.vx; + body.y += dt * body.vy; + body.z += dt * body.vz; + } + } + + public double energy() { + double dx, dy, dz, distance; + double e = 0.0; + + for (int i = 0; i < bodies.length; ++i) { + Body iBody = bodies[i]; + e += 0.5 * iBody.mass * (iBody.vx * iBody.vx + iBody.vy * iBody.vy + iBody.vz * iBody.vz); + + for (int j = i + 1; j < bodies.length; ++j) { + Body jBody = bodies[j]; + dx = iBody.x - jBody.x; + dy = iBody.y - jBody.y; + dz = iBody.z - jBody.z; + + distance = Math.sqrt(dx * dx + dy * dy + dz * dz); + e -= (iBody.mass * jBody.mass) / distance; + } + } + return e; + } +} + +final class Body { + static final double PI = 3.141592653589793; + static final double SOLAR_MASS = 4 * PI * PI; + static final double DAYS_PER_YEAR = 365.24; + + public double x, y, z, vx, vy, vz, mass; + + public Body() {} + + static Body jupiter() { + Body p = new Body(); + p.x = 4.84143144246472090e+00; + p.y = -1.16032004402742839e+00; + p.z = -1.03622044471123109e-01; + p.vx = 1.66007664274403694e-03 * DAYS_PER_YEAR; + p.vy = 7.69901118419740425e-03 * DAYS_PER_YEAR; + p.vz = -6.90460016972063023e-05 * DAYS_PER_YEAR; + p.mass = 9.54791938424326609e-04 * SOLAR_MASS; + return p; + } + + static Body saturn() { + Body p = new Body(); + p.x = 8.34336671824457987e+00; + p.y = 4.12479856412430479e+00; + p.z = -4.03523417114321381e-01; + p.vx = -2.76742510726862411e-03 * DAYS_PER_YEAR; + p.vy = 4.99852801234917238e-03 * DAYS_PER_YEAR; + p.vz = 2.30417297573763929e-05 * DAYS_PER_YEAR; + p.mass = 2.85885980666130812e-04 * SOLAR_MASS; + return p; + } + + static Body uranus() { + Body p = new Body(); + p.x = 1.28943695621391310e+01; + p.y = -1.51111514016986312e+01; + p.z = -2.23307578892655734e-01; + p.vx = 2.96460137564761618e-03 * DAYS_PER_YEAR; + p.vy = 2.37847173959480950e-03 * DAYS_PER_YEAR; + p.vz = -2.96589568540237556e-05 * DAYS_PER_YEAR; + p.mass = 4.36624404335156298e-05 * SOLAR_MASS; + return p; + } + + static Body neptune() { + Body p = new Body(); + p.x = 1.53796971148509165e+01; + p.y = -2.59193146099879641e+01; + p.z = 1.79258772950371181e-01; + p.vx = 2.68067772490389322e-03 * DAYS_PER_YEAR; + p.vy = 1.62824170038242295e-03 * DAYS_PER_YEAR; + p.vz = -9.51592254519715870e-05 * DAYS_PER_YEAR; + p.mass = 5.15138902046611451e-05 * SOLAR_MASS; + return p; + } + + static Body sun() { + Body p = new Body(); + p.mass = SOLAR_MASS; + return p; + } + + Body offsetMomentum(double px, double py, double pz) { + vx = -px / SOLAR_MASS; + vy = -py / SOLAR_MASS; + vz = -pz / SOLAR_MASS; + return this; + } +} + +public final class nbody_3 { + private NBodySystem bodies; + + public nbody_3() { + bodies = new NBodySystem(); + } + + private static final int PREDEFINED_N_STEPS = 1000; + + public void solve() { + for (int i = 0; i < PREDEFINED_N_STEPS; ++i) { + bodies.advance(0.01); + } + } + + public void timeNBody(int iters) { + for (int j = 0; j < iters; ++j) { + solve(); + } + } + + public boolean verifyNBody() { + bodies = new NBodySystem(); + solve(); + + double expected = -0.169087605234606; + double found = bodies.energy(); + + if (Math.abs(expected - found) > 0.000000001) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + + return true; + } + + public static void main(String[] args) { + int rc = 0; + nbody_3 obj = new nbody_3(); + + final long before = System.currentTimeMillis(); + obj.timeNBody(1000); + final long after = System.currentTimeMillis(); + + if (!obj.verifyNBody()) { + rc++; + } + System.out.println("benchmarks/benchmarksgame/nbody_3: " + (after - before)); + System.exit(rc); + } +} diff --git a/benchmarks/benchmarksgame/nbody_5.java b/benchmarks/benchmarksgame/nbody_5.java new file mode 100644 index 0000000..1908322 --- /dev/null +++ b/benchmarks/benchmarksgame/nbody_5.java @@ -0,0 +1,245 @@ +/* + * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly + * modified to fit the benchmarking framework. + * + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/nbody-java-5.html + * + * The Computer Language Benchmarks Game + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ + * + * contributed by Mark C. Lewis + * double[] instead of Object[] by Han Kai + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html + */ + +/* + * Description: Double-precision N-body simulation. + * Main Focus: TODO + * + */ + +package benchmarks.benchmarksgame; + +public final class nbody_5 { + + static final class NBodySystem { + private static final double PI = 3.141592653589793; + private static final double SOLAR_MASS = 4 * PI * PI; + private static final double DAYS_PER_YEAR = 365.24; + private static final int BODY_SIZE = 8; + private static final int BODY_COUNT = 5; + + private static final int x = 0; + private static final int y = 1; + private static final int z = 2; + private static final int vx = 3; + private static final int vy = 4; + private static final int vz = 5; + private static final int mass = 6; + + private final double[] _bodies = { + // sun begin + 0, + 0, + 0, + 0, + 0, + 0, + SOLAR_MASS, + 0, + // sun end + + // jupiter begin + 4.84143144246472090e+00, // + -1.16032004402742839e+00, // + -1.03622044471123109e-01, // + 1.66007664274403694e-03 * DAYS_PER_YEAR, // + 7.69901118419740425e-03 * DAYS_PER_YEAR, // + -6.90460016972063023e-05 * DAYS_PER_YEAR, // + 9.54791938424326609e-04 * SOLAR_MASS, // + 0, + // jupiter end + + // saturn begin + 8.34336671824457987e+00, // + 4.12479856412430479e+00, // + -4.03523417114321381e-01, // + -2.76742510726862411e-03 * DAYS_PER_YEAR, // + 4.99852801234917238e-03 * DAYS_PER_YEAR, // + 2.30417297573763929e-05 * DAYS_PER_YEAR, // + 2.85885980666130812e-04 * SOLAR_MASS, // + 0, + // saturn end + + // uranus begin + 1.28943695621391310e+01, // + -1.51111514016986312e+01, // + -2.23307578892655734e-01, // + 2.96460137564761618e-03 * DAYS_PER_YEAR, // + 2.37847173959480950e-03 * DAYS_PER_YEAR, // + -2.96589568540237556e-05 * DAYS_PER_YEAR, // + 4.36624404335156298e-05 * SOLAR_MASS, // + 0, + // uranus end + + // neptune begin + 1.53796971148509165e+01, // + -2.59193146099879641e+01, // + 1.79258772950371181e-01, // + 2.68067772490389322e-03 * DAYS_PER_YEAR, // + 1.62824170038242295e-03 * DAYS_PER_YEAR, // + -9.51592254519715870e-05 * DAYS_PER_YEAR, // + 5.15138902046611451e-05 * SOLAR_MASS, // + 0 + // neptune end + }; + + public NBodySystem() { + double px = 0.0; + double py = 0.0; + double pz = 0.0; + + for (int i = 0; i < BODY_COUNT; ++i) { + final int ioffset = BODY_SIZE * i; + double imass = _bodies[ioffset + mass]; + + px += _bodies[ioffset + vx] * imass; + py += _bodies[ioffset + vy] * imass; + pz += _bodies[ioffset + vz] * imass; + } + + _bodies[vx] = -px / SOLAR_MASS; + _bodies[vy] = -py / SOLAR_MASS; + _bodies[vz] = -pz / SOLAR_MASS; + } + + public void advance(double dt) { + final double[] bodies = _bodies; + + for (int i = 0; i < BODY_COUNT; ++i) { + final int offset = BODY_SIZE * i; + + for (int j = i + 1; j < BODY_COUNT; ++j) { + final int ioffset = offset; + final int joffset = BODY_SIZE * j; + + final double dx = bodies[ioffset + x] - bodies[joffset + x]; + final double dy = bodies[ioffset + y] - bodies[joffset + y]; + final double dz = bodies[ioffset + z] - bodies[joffset + z]; + + final double dSquared = dx * dx + dy * dy + dz * dz; + final double distance = Math.sqrt(dSquared); + final double mag = dt / (dSquared * distance); + + final double jmass = bodies[joffset + mass]; + + bodies[ioffset + vx] -= dx * jmass * mag; + bodies[ioffset + vy] -= dy * jmass * mag; + bodies[ioffset + vz] -= dz * jmass * mag; + + final double imass = bodies[ioffset + mass]; + bodies[joffset + vx] += dx * imass * mag; + bodies[joffset + vy] += dy * imass * mag; + bodies[joffset + vz] += dz * imass * mag; + } + } + + for (int i = 0; i < BODY_COUNT; ++i) { + final int ioffset = BODY_SIZE * i; + + bodies[ioffset + x] += dt * bodies[ioffset + vx]; + bodies[ioffset + y] += dt * bodies[ioffset + vy]; + bodies[ioffset + z] += dt * bodies[ioffset + vz]; + } + } + + public double energy() { + final double[] bodies = _bodies; + + double dx, dy, dz, distance; + double e = 0.0; + + for (int i = 0; i < BODY_COUNT; ++i) { + final int offset = BODY_SIZE * i; + + final double ivx = bodies[offset + vx]; + final double ivy = bodies[offset + vy]; + final double ivz = bodies[offset + vz]; + final double imass = bodies[offset + mass]; + + e += 0.5 * imass * (ivx * ivx + ivy * ivy + ivz * ivz); + + for (int j = i + 1; j < BODY_COUNT; ++j) { + final int ioffset = offset; + final int joffset = BODY_SIZE * j; + + final double ix = bodies[ioffset + x]; + final double iy = bodies[ioffset + y]; + final double iz = bodies[ioffset + z]; + + dx = ix - bodies[joffset + x]; + dy = iy - bodies[joffset + y]; + dz = iz - bodies[joffset + z]; + + distance = Math.sqrt(dx * dx + dy * dy + dz * dz); + e -= (imass * bodies[joffset + mass]) / distance; + } + } + + return e; + } + } + + private NBodySystem bodies; + + public nbody_5() { + bodies = new NBodySystem(); + } + + private static final int PREDEFINED_N_STEPS = 1000; + + public void solve() { + for (int i = 0; i < PREDEFINED_N_STEPS; ++i) { + bodies.advance(0.01); + } + } + + public void timeNBody(int iters) { + for (int j = 0; j < iters; ++j) { + solve(); + } + } + + public boolean verifyNBody() { + bodies = new NBodySystem(); + solve(); + + double expected = -0.169087605234606; + double found = bodies.energy(); + + if (Math.abs(expected - found) > 0.000000001) { + System.out.println("ERROR: Expected " + expected + " but found " + found); + return false; + } + + return true; + } + + public static void main(String[] args) { + int rc = 0; + nbody_5 obj = new nbody_5(); + + final long before = System.currentTimeMillis(); + obj.timeNBody(1000); + final long after = System.currentTimeMillis(); + + if (!obj.verifyNBody()) { + rc++; + } + System.out.println("benchmarks/benchmarksgame/nbody_5: " + (after - before)); + System.exit(rc); + } +} diff --git a/benchmarks/benchmarksgame/pidigits.java b/benchmarks/benchmarksgame/pidigits.java index e995250..282d875 100644 --- a/benchmarks/benchmarksgame/pidigits.java +++ b/benchmarks/benchmarksgame/pidigits.java @@ -2,15 +2,16 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `pidigits/pidigits.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/pidigits-java-1.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * * contributed by Isaac Gouy + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ /* @@ -23,29 +24,27 @@ package benchmarks.benchmarksgame; import java.math.BigInteger; -// CHECKSTYLE.OFF: .* public class pidigits { - static final int L = 10; - private static final int PREDEFINED_N_DIGITS = 27; - - public static void old_main() { - int n = PREDEFINED_N_DIGITS; - int j = 0; - - PiDigitSpigot digits = new PiDigitSpigot(); - - while (n > 0){ - if (n >= L){ - for (int i=0; i 0) { + if (n >= L) { + for (int i = 0; i < L; i++) digits.next(); + j += L; + } else { + for (int i = 0; i < n; i++) digits.next(); + j += n; + } + n -= L; + } + } public void timePidigits(int iters) { for (int j = 0; j < iters; j++) { @@ -85,99 +84,95 @@ public class pidigits { } } - // CHECKSTYLE.OFF: .* class PiDigitSpigot { - Transformation z, x, inverse; - - public PiDigitSpigot(){ - z = new Transformation(1,0,0,1); - x = new Transformation(0,0,0,0); - inverse = new Transformation(0,0,0,0); - } - - public int next(){ - int y = digit(); - if (isSafe(y)){ - z = produce(y); return y; - } else { - z = consume( x.next() ); return next(); - } - } - - public int digit(){ - return z.extract(3); - } - - public boolean isSafe(int digit){ - return digit == z.extract(4); - } - - public Transformation produce(int i){ - return ( inverse.qrst(10,-10*i,0,1) ).compose(z); - } - - public Transformation consume(Transformation a){ - return z.compose(a); - } -} + Transformation z, x, inverse; + public PiDigitSpigot() { + z = new Transformation(1, 0, 0, 1); + x = new Transformation(0, 0, 0, 0); + inverse = new Transformation(0, 0, 0, 0); + } -class Transformation { - BigInteger q, r, s, t; - int k; - - public Transformation(int q, int r, int s, int t){ - this.q = BigInteger.valueOf(q); - this.r = BigInteger.valueOf(r); - this.s = BigInteger.valueOf(s); - this.t = BigInteger.valueOf(t); - k = 0; - } - - public Transformation(BigInteger q, BigInteger r, BigInteger s, BigInteger t){ - this.q = q; - this.r = r; - this.s = s; - this.t = t; - k = 0; - } - - public Transformation next(){ - k++; - q = BigInteger.valueOf(k); - r = BigInteger.valueOf(4 * k + 2); - s = BigInteger.valueOf(0); - t = BigInteger.valueOf(2 * k + 1); - return this; - } - - public int extract(int j){ - BigInteger bigj = BigInteger.valueOf(j); - BigInteger numerator = (q.multiply(bigj)).add(r); - BigInteger denominator = (s.multiply(bigj)).add(t); - return ( numerator.divide(denominator) ).intValue(); - } - - public Transformation qrst(int q, int r, int s, int t){ - this.q = BigInteger.valueOf(q); - this.r = BigInteger.valueOf(r); - this.s = BigInteger.valueOf(s); - this.t = BigInteger.valueOf(t); - k = 0; - return this; - } - - public Transformation compose(Transformation a){ - return new Transformation( - q.multiply(a.q) - ,(q.multiply(a.r)).add( (r.multiply(a.t)) ) - ,(s.multiply(a.q)).add( (t.multiply(a.s)) ) - ,(s.multiply(a.r)).add( (t.multiply(a.t)) ) - ); - } + public int next() { + int y = digit(); + if (isSafe(y)) { + z = produce(y); + return y; + } else { + z = consume(x.next()); + return next(); + } + } + + public int digit() { + return z.extract(3); + } + + public boolean isSafe(int digit) { + return digit == z.extract(4); + } + + public Transformation produce(int i) { + return (inverse.qrst(10, -10 * i, 0, 1)).compose(z); + } + + public Transformation consume(Transformation a) { + return z.compose(a); + } } -// CHECKSTYLE.ON: .* +class Transformation { + BigInteger q, r, s, t; + int k; + + public Transformation(int q, int r, int s, int t) { + this.q = BigInteger.valueOf(q); + this.r = BigInteger.valueOf(r); + this.s = BigInteger.valueOf(s); + this.t = BigInteger.valueOf(t); + k = 0; + } + + public Transformation(BigInteger q, BigInteger r, BigInteger s, BigInteger t) { + this.q = q; + this.r = r; + this.s = s; + this.t = t; + k = 0; + } - + public Transformation next() { + k++; + q = BigInteger.valueOf(k); + r = BigInteger.valueOf(4 * k + 2); + s = BigInteger.valueOf(0); + t = BigInteger.valueOf(2 * k + 1); + return this; + } + + public int extract(int j) { + BigInteger bigj = BigInteger.valueOf(j); + BigInteger numerator = (q.multiply(bigj)).add(r); + BigInteger denominator = (s.multiply(bigj)).add(t); + return (numerator.divide(denominator)).intValue(); + } + + public Transformation qrst(int q, int r, int s, int t) { + this.q = BigInteger.valueOf(q); + this.r = BigInteger.valueOf(r); + this.s = BigInteger.valueOf(s); + this.t = BigInteger.valueOf(t); + k = 0; + return this; + } + + public Transformation compose(Transformation a) { + return new Transformation( + q.multiply(a.q), + (q.multiply(a.r)).add((r.multiply(a.t))), + (s.multiply(a.q)).add((t.multiply(a.s))), + (s.multiply(a.r)).add((t.multiply(a.t)))); + } +} +// CHECKSTYLE.ON: .* diff --git a/benchmarks/benchmarksgame/regexdna.java b/benchmarks/benchmarksgame/regexdna.java index 5dc77e5..07974d9 100644 --- a/benchmarks/benchmarksgame/regexdna.java +++ b/benchmarks/benchmarksgame/regexdna.java @@ -2,14 +2,13 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `regexdna/regexdna.java-4.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) + * The original file: + * https://salsa.debian.org/benchmarksgame-team/archive-alioth-benchmarksgame/blob/master/contributed-source-code/benchmarksgame/regexdna/regexdna.java-4.java * - * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ * contributed by Razii, idea taken from Elliott Hughes and Roger Millington + * + * LICENSE: 3-Clause BSD + * https://salsa.debian.org/benchmarksgame-team/archive-alioth-benchmarksgame/blob/master/contributed-source-code/benchmarksgame/regexdna/LICENSE */ /* @@ -20,118 +19,115 @@ package benchmarks.benchmarksgame; -// CHECKSTYLE.OFF: .* import java.io.*; -import java.util.regex.*; import java.util.*; +import java.util.regex.*; public final class regexdna { - private static final Map replacements = new HashMap(); - private InputStream stream; - private char[] cbuf; - private Reader r; + private static final Map replacements = new HashMap(); + private InputStream stream; + private char[] cbuf; + private Reader r; - public regexdna() throws IOException { - stream = new ByteArrayInputStream(fastaStr.getBytes()); - cbuf = new char[16384]; - r = new InputStreamReader(stream, "ISO-8859-1"); - } - - static { + public regexdna() throws IOException { + stream = new ByteArrayInputStream(fastaStr.getBytes()); + cbuf = new char[16384]; + r = new InputStreamReader(stream, "ISO-8859-1"); + } - replacements.put("W", "(a|t)"); - replacements.put("Y", "(c|t)"); - replacements.put("K", "(g|t)"); - replacements.put("M", "(a|c)"); - replacements.put("S", "(c|g)"); - replacements.put("R", "(a|g)"); - replacements.put("B", "(c|g|t)"); - replacements.put("D", "(a|g|t)"); - replacements.put("V", "(a|c|g)"); - replacements.put("H", "(a|c|t)"); - replacements.put("N", "(a|c|g|t)"); - } + static { + replacements.put("W", "(a|t)"); + replacements.put("Y", "(c|t)"); + replacements.put("K", "(g|t)"); + replacements.put("M", "(a|c)"); + replacements.put("S", "(c|g)"); + replacements.put("R", "(a|g)"); + replacements.put("B", "(c|g|t)"); + replacements.put("D", "(a|g|t)"); + replacements.put("V", "(a|c|g)"); + replacements.put("H", "(a|c|t)"); + replacements.put("N", "(a|c|g|t)"); + } - static abstract class Rewriter { - private Pattern pattern; - private Matcher matcher; + abstract static class Rewriter { + private Pattern pattern; + private Matcher matcher; - public Rewriter(String regularExpression) { + public Rewriter(String regularExpression) { - this.pattern = Pattern.compile(regularExpression); - } + this.pattern = Pattern.compile(regularExpression); + } - public String group(int i) { - return matcher.group(i); - } + public String group(int i) { + return matcher.group(i); + } - public abstract String replacement(); + public abstract String replacement(); - public String rewrite(CharSequence original) { - return rewrite(original, new StringBuffer(original.length())).toString(); - } + public String rewrite(CharSequence original) { + return rewrite(original, new StringBuffer(original.length())).toString(); + } - public StringBuffer rewrite(CharSequence original, StringBuffer destination) { - this.matcher = pattern.matcher(original); - while (matcher.find()) { - matcher.appendReplacement(destination, ""); - destination.append(replacement()); - } - matcher.appendTail(destination); - return destination; + public StringBuffer rewrite(CharSequence original, StringBuffer destination) { + this.matcher = pattern.matcher(original); + while (matcher.find()) { + matcher.appendReplacement(destination, ""); + destination.append(replacement()); } - } + matcher.appendTail(destination); + return destination; + } + } - public int old_main() throws IOException { - stream.reset(); - StringBuilder sb = new StringBuilder(5100000); + public int old_main() throws IOException { + stream.reset(); + StringBuilder sb = new StringBuilder(5100000); - int charsRead; - while ((charsRead = r.read(cbuf)) != -1) - sb.append(cbuf, 0, charsRead); + int charsRead; + while ((charsRead = r.read(cbuf)) != -1) sb.append(cbuf, 0, charsRead); - int initialLength = sb.length(); + int initialLength = sb.length(); - String sequence = new Rewriter(">.*\n|\n") { + String sequence = + new Rewriter(">.*\n|\n") { - public String replacement() { + public String replacement() { return ""; - } - }.rewrite(sb); + } + }.rewrite(sb); + int codeLength = sequence.length(); - int codeLength = sequence.length(); + String[] variants = { + "agggtaaa|tttaccct", + "[cgt]gggtaaa|tttaccc[acg]", + "a[act]ggtaaa|tttacc[agt]t", + "ag[act]gtaaa|tttac[agt]ct", + "agg[act]taaa|ttta[agt]cct", + "aggg[acg]aaa|ttt[cgt]ccct", + "agggt[cgt]aa|tt[acg]accct", + "agggta[cgt]a|t[acg]taccct", + "agggtaa[cgt]|[acg]ttaccct" + }; - String[] variants = { "agggtaaa|tttaccct" , - "[cgt]gggtaaa|tttaccc[acg]", - "a[act]ggtaaa|tttacc[agt]t", - "ag[act]gtaaa|tttac[agt]ct", - "agg[act]taaa|ttta[agt]cct", - "aggg[acg]aaa|ttt[cgt]ccct", - "agggt[cgt]aa|tt[acg]accct", - "agggta[cgt]a|t[acg]taccct", - "agggtaa[cgt]|[acg]ttaccct" - }; + int count = 0; + for (String variant : variants) { - int count = 0; - for (String variant : variants) { - - Matcher m = Pattern.compile(variant).matcher(sequence); - while (m.find()) - count++; - } + Matcher m = Pattern.compile(variant).matcher(sequence); + while (m.find()) count++; + } - sequence = new Rewriter("[WYKMSRBDVHN]") { + sequence = + new Rewriter("[WYKMSRBDVHN]") { - public String replacement() { + public String replacement() { return replacements.get(group(0)); - } - }.rewrite(sequence); + } + }.rewrite(sequence); - return count; - } - // CHECKSTYLE.ON: .* + return count; + } public void timeRegexDna(int iters) throws IOException { for (int j = 0; j < iters; j++) { @@ -165,1007 +161,1008 @@ public final class regexdna { System.exit(rc); } - private static final String fastaStr = ">ONE Homo sapiens alu\n" - + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n" - + "TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n" - + "AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n" - + "GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n" - + "CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n" - + "GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n" - + "GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n" - + "TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n" - + "AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n" - + "GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n" - + "AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n" - + "AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n" - + "GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n" - + "CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n" - + "AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n" - + "TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n" - + "TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n" - + "GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n" - + "TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n" - + "CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n" - + "CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n" - + "TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n" - + "CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n" - + "AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n" - + "GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n" - + "TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n" - + "TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n" - + "GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n" - + "GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n" - + "ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n" - + "TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n" - + "CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n" - + "CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n" - + "GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n" - + "CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n" - + "GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n" - + "GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n" - + "GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n" - + "GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n" - + "GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n" - + "AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n" - + "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n" - + "GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n" - + "AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n" - + "GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n" - + "ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n" - + "GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n" - + "GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n" - + "GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n" - + "TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n" - + "AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n" - + "GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n" - + "CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n" - + "TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n" - + "ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n" - + "GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n" - + "ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n" - + "CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n" - + "CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n" - + "ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n" - + "CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n" - + "AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n" - + "CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n" - + "AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n" - + "CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n" - + "CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n" - + "CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n" - + "CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n" - + "ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n" - + "AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n" - + "TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n" - + "ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n" - + "CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n" - + "AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n" - + "AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n" - + "TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n" - + "CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n" - + "TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n" - + "CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n" - + "GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n" - + "GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n" - + "CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n" - + "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n" - + "GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n" - + "AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n" - + "GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n" - + "CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n" - + "GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n" - + "TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n" - + "CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n" - + "ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n" - + "CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n" - + "AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n" - + "CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n" - + "CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n" - + "ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n" - + "GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n" - + "GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n" - + "GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n" - + "TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n" - + "CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n" - + "GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n" - + "CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n" - + "GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n" - + "CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n" - + "CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n" - + "CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n" - + "ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n" - + "CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n" - + "GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n" - + "AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n" - + "ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n" - + "TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n" - + "GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n" - + "GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n" - + "TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n" - + "AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n" - + "ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n" - + "GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n" - + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n" - + "TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n" - + "CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n" - + "GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n" - + "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n" - + "GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n" - + "TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n" - + "ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n" - + "TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n" - + "GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n" - + "TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n" - + "GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n" - + "GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n" - + "ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n" - + "GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n" - + "GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n" - + "CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n" - + "ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n" - + "AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n" - + "TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n" - + "CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n" - + "TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n" - + "CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n" - + "GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n" - + "GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n" - + "CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n" - + "TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n" - + "CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n" - + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n" - + "AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n" - + "AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n" - + "GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n" - + "TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n" - + "AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n" - + "AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n" - + "CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n" - + "TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n" - + "GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n" - + "CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n" - + "CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n" - + "GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n" - + "AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n" - + "GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n" - + "TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n" - + "CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n" - + "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n" - + "CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n" - + "AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n" - + "ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n" - + "ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n" - + "AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n" - + "GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n" - + "GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n" - + "CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n" - + "GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n" - + "CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n" - + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n" - + "GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n" - + "GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n" - + "CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n" - + "AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n" - + "CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n" - + "CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n" - + "GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n" - + "GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n" - + "TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n" - + "ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n" - + "CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n" - + "ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n" - + "GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n" - + "TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n" - + "GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n" - + "GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n" - + "GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n" - + "GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n" - + "TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n" - + "TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n" - + "TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n" - + "GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n" - + "CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n" - + "TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n" - + ">TWO IUB ambiguity codes\n" - + "cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n" - + "tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n" - + "NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n" - + "cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n" - + "gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n" - + "HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n" - + "tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n" - + "tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n" - + "acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n" - + "tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n" - + "gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n" - + "accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n" - + "RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n" - + "tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n" - + "cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n" - + "ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n" - + "actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n" - + "YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n" - + "KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n" - + "aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n" - + "aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n" - + "gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n" - + "tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n" - + "tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n" - + "ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n" - + "ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n" - + "BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n" - + "aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n" - + "tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n" - + "cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n" - + "aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n" - + "tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n" - + "aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n" - + "gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n" - + "ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n" - + "taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n" - + "ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n" - + "gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n" - + "gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n" - + "tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n" - + "tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n" - + "taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n" - + "cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n" - + "aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n" - + "cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n" - + "ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n" - + "attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n" - + "ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n" - + "attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n" - + "tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n" - + "aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n" - + "cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n" - + "gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n" - + "attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n" - + "BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n" - + "DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n" - + "tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n" - + "tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n" - + "tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n" - + "taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n" - + "aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n" - + "DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n" - + "VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n" - + "agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n" - + "gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n" - + "tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n" - + "catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n" - + "tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n" - + "aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n" - + "aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n" - + "acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n" - + "tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n" - + "aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n" - + "acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n" - + "RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n" - + "RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n" - + "tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n" - + "gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n" - + "YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n" - + "ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n" - + "ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n" - + "gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n" - + "KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n" - + "aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n" - + "gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n" - + "taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n" - + "VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n" - + "NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n" - + "MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n" - + "cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n" - + "ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n" - + "tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n" - + "aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n" - + "actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n" - + "tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n" - + "gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n" - + "BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n" - + "aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n" - + "aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n" - + "YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n" - + "aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n" - + "cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n" - + "tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n" - + "tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n" - + "MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n" - + "taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n" - + "tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n" - + "RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n" - + "agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n" - + "NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n" - + "gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n" - + "aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n" - + "ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n" - + "cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n" - + "tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n" - + "RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n" - + "tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n" - + "gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n" - + "tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n" - + "ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n" - + "tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n" - + "ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n" - + "BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n" - + "gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n" - + "acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n" - + "gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n" - + "taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n" - + "acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n" - + "tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n" - + "catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n" - + "tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n" - + "atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n" - + "ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n" - + "ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n" - + "cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n" - + "SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n" - + "VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n" - + "BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n" - + "NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n" - + "tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n" - + "ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n" - + "cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n" - + "VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n" - + "atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n" - + "aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n" - + "tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n" - + "RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n" - + "gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n" - + "tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n" - + "attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n" - + "atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n" - + "cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n" - + "NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n" - + "ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n" - + "cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n" - + "aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n" - + "agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n" - + "tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n" - + "ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n" - + "ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n" - + "tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n" - + "taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n" - + "tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n" - + "YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n" - + "ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n" - + "tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n" - + "ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n" - + "attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n" - + "atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n" - + "YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n" - + "gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n" - + "MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n" - + "tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n" - + "ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n" - + "aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n" - + "BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n" - + "tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n" - + "StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n" - + "cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n" - + "atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n" - + "atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n" - + "ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n" - + "gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n" - + "tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n" - + "BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n" - + "agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n" - + "HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n" - + "tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n" - + "aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n" - + "catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n" - + "aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n" - + "tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n" - + "cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n" - + "DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n" - + "gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n" - + "tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n" - + "atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n" - + "KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n" - + "tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n" - + "tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n" - + "taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n" - + "NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n" - + "HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n" - + "ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n" - + "tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n" - + "cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n" - + "ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n" - + "HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n" - + "gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n" - + "BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n" - + "gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n" - + "KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n" - + "cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n" - + "tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n" - + "taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n" - + "gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n" - + "aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n" - + "acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n" - + "RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n" - + "attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n" - + "KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n" - + "KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n" - + "gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n" - + "aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n" - + "aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n" - + "ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n" - + "tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n" - + "aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n" - + "tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n" - + "MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n" - + "cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n" - + "caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n" - + "ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n" - + "acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n" - + "tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n" - + "gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n" - + "atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n" - + "aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n" - + "NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n" - + "taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n" - + "aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n" - + "ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n" - + "DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n" - + "tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n" - + "aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n" - + "ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n" - + "ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n" - + "RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n" - + "aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n" - + "aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n" - + "aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n" - + "tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n" - + "atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n" - + "BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n" - + "gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n" - + "cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n" - + "RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n" - + "taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n" - + "aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n" - + "gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n" - + "gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n" - + "aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n" - + "gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n" - + "ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n" - + "MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n" - + "SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n" - + "aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n" - + "VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n" - + "HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n" - + "agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n" - + "gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n" - + "agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n" - + "tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n" - + "gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n" - + "VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n" - + "tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n" - + "MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n" - + "actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n" - + "WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n" - + "tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n" - + "KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n" - + "BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n" - + "attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n" - + "VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n" - + "aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n" - + "tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n" - + "tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n" - + "tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n" - + "VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n" - + "tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n" - + "ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n" - + "tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n" - + "WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n" - + "tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n" - + "tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n" - + "MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n" - + "tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n" - + "atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n" - + "aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n" - + "aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n" - + ">THREE Homo sapiens frequency\n" - + "aagtccgatgagtttcaatcatgactgcgaggagatccatgcggtgtacctaaacctaca\n" - + "tcgtatgtatttgctgacgttcattcttgatacataaagatccgatatcggtccactttg\n" - + "tttaccaaaagccctaccttcgtaacgatggaaatgtgaatgagagtgaaatacacgatg\n" - + "gggatattgccggtgagtacaagttagaccacacattagaactgacctatattcgtcatc\n" - + "atagagatggagtatgaattgattctgcgaagtacactggctttacgagtatctagacgc\n" - + "cgcggtatatctcccgtcaatactatgaaggtatatatatagaggctgaaaattcatgtt\n" - + "caatcctctttctaagagtgagtgggagccccttctgttgtcggagtaaaaaggcattat\n" - + "tcctcaaattgtcagaagcaaagtatacgtgatgtttgcttagaacaaaagagttacctt\n" - + "agggtaggtaaatctcgattcaccgagagaagtgattttggcggtgtgcgattaattctt\n" - + "ttgatgacagatctcattattttatatagctccctctttgtatttagagtttgcgtaggt\n" - + "aacctggcaaaaccatatcccggggggagagtgcgctgaacattttatacgatgtgatta\n" - + "ctcaaaggataaggttcgaggcctctatactcatggaactatcttataattataatggat\n" - + "cgtggctcattccacctatccaaacttctttgtgatctgatgctacgagtgtgaacaaac\n" - + "gtacatcttctaaggaatttgggacgtttcatagctcgcatttcattcctgaaaacttaa\n" - + "atatttttaaaaattgattctactgcgaggaactaaggtgtagacaagcccttagtaacc\n" - + "ggtggatgtcgcttcagttttatagcaaacattattcaatttcagtcttgactgaaatta\n" - + "gtttgttagtgttagaggtccatatgtcacatgcatatggtctagatgccattgtacagt\n" - + "aataccttagattagtattagcggcatgcgtacttggatttcacttgtaagaatgagctt\n" - + "aggacggtcgcctgtagggctgcaaataggaatacttacaatttttgatgacttgttagc\n" - + "atatcgctatcacccataaaaaacctgatacttgatgagcgggtgattgagactatgtac\n" - + "tgatataattcaatagctccaatagatgaaacagctatgcgcctatttatgtcaaataat\n" - + "cgatgtgatacaagcttagagctgaacgagcgcgagtggaattagcggtgatctctatcc\n" - + "taaaaagccacgaaatcgatcccagaagctaatacccgaggtgtcaagcttgagttcagt\n" - + "taaatttgcatctcatgccccacgaagaatgggtagagagtttgaaggtgcttctggatt\n" - + "ttcctaagtacgtggtaaaaatttgatgtaaatgaacacctcctaatggttgtgttaacc\n" - + "acaaacccctgggtgaatctgattagccaacccagtgatctgatttcagttgtcaaatct\n" - + "cttttttataactaccttttgtttccataatttaaccggatctcataatgaacaaacggg\n" - + "tagaataatggtagcacatagcgagcttgtctattcagaaatatggcctactcagaatgt\n" - + "attctccaaatcagtgttatgcgaaacgtaattttacgtgtaataatgatgatttcttat\n" - + "cggttccttgtactacaatactcttgcccaacaaatactaagcataacagcaaaattcga\n" - + "atccccctccttttaataaatggtttttcaatatagccgattcgtattcgttagtctttc\n" - + "accaactattaacctggcatctaattaataaaatcaccaaaggactctataatatgacag\n" - + "tcacttcggcctcttttaagacagttgattattgcaggtccgcaattgatggtgacatgc\n" - + "acaattagttagaatccgactatggagacaattaacaattgtagtgcccatttggtccag\n" - + "ttgacttcaaccacgagttataaaggtattttaatttatagtcgatagtaccaacaacaa\n" - + "gcacaatcataattatgttagaaaacccagggggtaatgctctaaatccagctttaaggc\n" - + "cagagtgcactatgaaatcgccattgatcattgtgtcattcgctgaacttggtgtctagg\n" - + "aggtgccgagtgagaatatcagataccttatgaagcaacgattatatctggactagatca\n" - + "tgatgatcggaataaaacattgaaataagtccttatcaaggagcataaacattttattta\n" - + "atttatacttcgtaaataaattcagaattttttttcaagacattaatctgagtaaatgac\n" - + "ggctagaaagggttcctactcgaatcgtagcctacgcatgtgggcagtaacctggcttgc\n" - + "gtttttactgaaacaaaggttcaccggaaagaaggctgccacttttagcttcttgacgat\n" - + "ctttagcgtcatatttttagattagtcgaaaaacggaaaacaaacttaacgaagctggtt\n" - + "gcacggggtaccgagaaaccaaagagcaggacaactccttgatcgggaagaactgaaata\n" - + "gacagctgtcattttcattggtcaacttatcaatataacgaccaccgtagtgacgcttgc\n" - + "atgaaaatactgaggatgtaaactatagccagtcaggcccgcgtgttgactaattgatga\n" - + "agcaaacaaaatagccggtattcgttaaaaggaacgggttgccagctacagatatactct\n" - + "aggtatatcccaaacaagagacgtcctttggctgttgtaatcggtcataatacttgtcac\n" - + "ataaacaagatcgctgaattaaacattaaacagttagtgatacacaatcgtggttggggc\n" - + "tgggatgtgcaataaaaagtcatctatcgtctatcacagagcgacgtaaatttagacaaa\n" - + "cattattatttcttgacaatggaatcgataagcgttcctctaacttggtatatatatctc\n" - + "gaccccgggattccagccattcttgtatgaagatttaaccatttaactatgcatagttga\n" - + "atggtaaggaaaatgatattgactgcaacagattttggatgcaaaaatatttgtgaatta\n" - + "ttggttatatactggttgtatagcacaatcattaggtcctagaaggcatactcaacctca\n" - + "gcgagagagctagcatgcataattgtaccgcccatattaatattcctgaaatgatttctt\n" - + "acattacgcccaatttcagtcatcgaacacccccatcaatttacccgatagagaacgtga\n" - + "tcatacgcaataccctatgcgaacgtccactctatagcgtctgtatacaatgattattcg\n" - + "ttccatttacaacgttaagtaatttaaacttacataaggacaaggaaatccgcgaacctc\n" - + "ctggaatgtatgagttatttatgcagttaacttcgtctcgaccggaactaaaggcgtcgt\n" - + "acgaatgaaaggccacttttagaagagacctttgtatccattgtggagaatatcataaat\n" - + "tcaagatggggtgtcatgctattcggtcctaaacattcttaatggctgttctattgttag\n" - + "tctgatttaaaatggaaccatagcacgaatagttagatagggctcatacccctgtaacga\n" - + "tctacaaatccttccccgggtgtgtgcgttagcgacggaaagttttacggtttgtgatca\n" - + "aagaacactcacacgtcagattattacactgatacgaattatttcagtcgacagtaattg\n" - + "aatagaaacttattaacgccagcacctgacacggtaagtaaggcaggtctgaactgtttg\n" - + "actgtaaaaaaatggtaatatttttaaaaatcttgatttctatatcaaatgatgtgtagt\n" - + "tttttctctgttattaaaatcccagtgcgcgaaatttagatcgttacgactcacgtacaa\n" - + "gatcacacatcacacgcgttagcgaaagcggaatggctaatacagccctacgcaacgtag\n" - + "tgggatcaacatatggacgaatttatgctcaatgagccaacctcccccgcattgcggttc\n" - + "attttaaggcctgggtaacatctatcgtttagataatcaaaggaatccgactatgcaatt\n" - + "gtctgacttcatccgctctcaagtccaatgcaggcgctacgtgtttctttaatcaatacc\n" - + "atattgaaatcgtaatacgataattgttgctattgactacaggttatgaaaaaacttact\n" - + "ttgcgggtacatgcatatttttgtaccacattattacgcgatatctctcagtgtactcta\n" - + "aattaaaccctcttcgaacattttagttcctattcgtaaacacgtgctacgcggcaattt\n" - + "gccggtcgtagaatggacaactccagttcaactgcatgtaactcatagctcgcgttagta\n" - + "taaattgactagtagccatgggacaaagtaactagtcagcggaaaagatccctttaaaga\n" - + "tatatgcaggttgcaagcataaagctcattgctcgaggtgcaccgtggtattccaaaagc\n" - + "gtctctatcgtatcttctaattttgggccgtgagaatcgaaactactctgatttgctgca\n" - + "cacgttaggtaatatcgcccattttcccgtataagctccgtacttatacgaactacacga\n" - + "ccttttaagcattagccgctcatatcgtgattcgtgtacagatgagtctattaaaattac\n" - + "agacatactccatatctcgctccttgaactttgaataatgcgctaacttgtactatgaat\n" - + "aggcagaacccaactttcccgtttgcgtcaagcggggaaacgatacatgttgtcagattt\n" - + "atgattatctagttttagatcacgtttaccgataatcggctgtggtctgagcagtcctac\n" - + "actgagtatttacttcagcttcatatcggtccgaaaaaaggttgtgaccgaatgtcaaaa\n" - + "tacggagtacgatgggcatcttttttcgagtcgcggttgcagggcagcaaaaggcttaaa\n" - + "ccatttttacgatttttactatagcggtcatgaagtgcgaaactgcttgcaaattttcta\n" - + "cacacattgtggctcttgtccttgaagcttatggcgaaaatttgaaacatagtataccag\n" - + "ggaaagcgcgaattatttggtgactaatagtccgtgggtttgagccatatacctaacgcc\n" - + "ataaactacgtggtgctttagatgcaatctaaacagaacagaaagcgtagcgctcatcag\n" - + "cacagactaactttttcagtttgagtcgccggagggacttcgagacaagaacgcgtcaag\n" - + "tcgcttgcgcggcacggattcgattgggcggctcaatcttgcctaatttctactattgtc\n" - + "agctgtacgactgtactaagtgtatagccccaaataaaagaagtatcgatgcgtctttat\n" - + "gaccaaaggtcttataattgaagcgcacttccgttcatcaaattaaatcctggcttaccc\n" - + "gattctccggaagtctgacctagagattgacgacggccgcgtattattgagacctcttca\n" - + "ggattaatcaataacgaagtagttgatctgtttggcgacgtaccttaagccgactccgct\n" - + "acacgagtttctactaaaccaatgtagccttatgcttagatgaataccgtcctaattaga\n" - + "tattccggcataacagcagtaaattatctgttcaatggacgaacattgaattgttagtat\n" - + "tctacacaagtcaggcctcgtaaatattaggtaaggccgtgggataacctacgtgatatg\n" - + "cttgagcttgcgttgcaagctctcgttaatcattaatttaggtgcgtgagggttaaacac\n" - + "cagcatattctatatgctagacgtcttccttaaaggatcgtagtattataattaataata\n" - + "agaaatatggttgacgtctagtcagcgggcatacgctgctctatatactggcattattca\n" - + "aaacttgacggtaaaaaaacgaattttaaggcgctcacgtcgaatgagccgaactcatgg\n" - + "gaaccaaaatgtcacagaaaacacctctttattgccaagcatgcaataaaaaaaatgtta\n" - + "atagtacgtttacgacattttattttataataaagagaaactattacacctattgatatg\n" - + "ataggacgtaaattaacgagtagcctgcatagaggcaaatgaggtttctacatggtatag\n" - + "acctgatgctgaaacatcgatgagttttggtcccctcgctcgttgaaatctagtcattta\n" - + "ctactgtctttcgagctattataccacttcactatgtggtgtttctttgctatgtatggg\n" - + "gctagtcaaacatgatgactatagctacaactcagagagcgggcgtgttaagagtatctc\n" - + "atgctagaactgcacgacgaacttgatacaaagtaacaacatttacgattccacaaggtg\n" - + "actttgaagaaacatagtttaattctctgcttcgatcatttctataaaccggtaccatcg\n" - + "cagcggatagatgcataacatttctactactccaggcatcttaaaacacacgtagtactt\n" - + "cactagattaagacacgataagtgtataacttggcagtgggaagcaaggagattggcgaa\n" - + "ctcctggcatctgttacgttttgttcaggctcggttgttgataatgtccgactcctgcca\n" - + "tattgaagactcgctcgagggagatcgggattcgttgattataagtacacgtgttccgta\n" - + "atactatgaggcagtgattcaaaatggcacttctgacttacatgactaggtattattacc\n" - + "acggaagcgttaaaggcacactcttatggacttaagattgcaagtgccttcttctagcct\n" - + "gaattcgcgggttcaacacaaactctctttagacatccgttgcctaaaggctgagacgta\n" - + "ggggcaaccctttaactatgtactaaaaaactagttggtaatttaacaacgtgtccaatc\n" - + "aagacgatgcaccaacgcggtgcgaaaatcgggttaagcaaacacaaataggaattgtga\n" - + "taaaccccaccttgagaggtcgcaagaccaacctcgggaacaacggctctaagagaataa\n" - + "cctaaatccggatgagtagactgtgtaactctctaaagggaagtgaaaaaaagctaagca\n" - + "tacatttaggtctcctgcattgcattcaattgaatcgtttgtattatgagctgtacagta\n" - + "gctatatcagctatagttatcccagaggaacaggtaaactagctctgagcgtgaaatccg\n" - + "gatattagaacccctagatgggattgattctagctaatacaggcttatctggttttacag\n" - + "ttatctagatgattggtaaggtgaaacgcttggtgccttccaccacttaaacaaaagtat\n" - + "tgcccgggaagctattttctaggtattataaagtcgagcattaatatcaatttgacagta\n" - + "aaggtctttcaccagcttcatatgccatagggcccatactcgatttaaattgaacggttt\n" - + "aacgagtattggaactctcacttataactgagtagctatacgaaaaatctggtccatttc\n" - + "cagaaatttattatcgatttgctgcttagtacccaggaagtgataacccttgaaggcaca\n" - + "acactgtaataagttttcctgtcacatctgtaatattcggtcactacgcattcacgacta\n" - + "aagataattactatactaattaaaagttcaatgttagggccgaatcatagtagaaattct\n" - + "cgtctagcctaatcggacttacctatgggctgtgaggatttatcagtatgtggacaaaaa\n" - + "tgctagagataggtatagttaaagtcaccatggtacatctatgtgaggaagtttgtagtt\n" - + "cgcttctttagtccgggcgtttgggatgacaactactatacgtagagccgtactcaggat\n" - + "tagatagtgtgaaagagtcaaataaaagggttaatattaatttaacgttgcaaatgtgtt\n" - + "taggccaaacattaaccgttgtagggatattctaatacaggccttcaccgaaccctaatg\n" - + "ataatctgtcttaataacattaaatgattgtctccgctacgagctcttagggcctcattt\n" - + "taaatgactaatgtccaaagaagagactttcccaatttcaatctgtcacgtatagacggc\n" - + "accttagtgagtcatatcattaagatagaagattatcaggagggaagtttctattatcaa\n" - + "ccgttacgcaaccataaacttttaaatctcataatggcattgagatcaagagctttcatg\n" - + "atggtaaagttcgtatgtgatgctggggagctagatatcggtataccacttcggttgtgg\n" - + "taagcccgagtgggccgttagtaatattaatagacgattatccgacaatgcattcgctga\n" - + "aataatcttacttaggagaaattaatgctatgagccaaaactatttatgtctgtcacatt\n" - + "attgactaaagtatctatcgacaaaactgatgtccataagttgtagcagatagtcggtgt\n" - + "atggtgtcaccaatgaaaacctcgagcgaaaaatgaattatagttatccaatttgagtaa\n" - + "attgcctattatacagataggcttgtttagtcagataaggttccgcttgaggtgctctaa\n" - + "cttagcgagagttagaaagcctagtgagaggcattttggtgccaaactccggctcgcatg\n" - + "agtaggccagagagtcactttctttcgtcgaagaagttggtgaacagccttttgattagt\n" - + "tgtttgtcttgtggctatgtgctactatataagttagaacgcaaactaatctaatcagca\n" - + "aagtaaaataggaccttgaacgagacggggtacgccgttgaggctcgagatagtagataa\n" - + "actagaggaatgtagataaaacattagctagggggtttagttactggattacataggaag\n" - + "tgcaccatcacggtgtgggggttcgtacgtaaagtcgcatcaatattgtcagtggactta\n" - + "acaagttcgtgcataatgaaatcctatacggactttgcatatctctaccgactcatctgg\n" - + "tcgtctatgcgggtaattgtattgctccaagtggatgactattttggcgtcccagcacat\n" - + "agtaaatgtaaatccttataatagcataagcaattattagactgcgtgaagtcttagtag\n" - + "ttctcaagctttacgttgtatgtaaataactcacgtaatcagccgtccccaaatcaccat\n" - + "tgaggtcattgaatgtacggagcactattatcaatgcggtatgcgattttctgagcgatt\n" - + "attgttaaagacttagcgttgagccccggaacacttgattacagattctttaaggagtta\n" - + "tccaaatatcattttaaataatagtagtatcgtgctttggacaataaaaaaagacccgtt\n" - + "ctcttatgttgttttgcgacgtacttctctgatatatacttcaactatgaagattctatt\n" - + "catcgataacccaggtatatttatatgcccgttcactgcgcagggcaaattatctacgga\n" - + "caataatgacgtagttggacccggtaagaactaacgcttaatatgattaaggatgtatgc\n" - + "cagtattatcttattatgtcagagtagaagtttctctgagattttccgtcgttgtggtac\n" - + "accggatttggctctctttttagaactgagaactcggagtgtgtagtcttgtttccttca\n" - + "atttatcaatatgcttttataccgccctcatcaactataacaggacgacaagttccgtct\n" - + "tgctccatcatatactaccgatacaccaatcgtatcaagtttagtatacttgctttctct\n" - + "cttctacagcttactcgcttgtccgagaagcggttggtgctcataaagttagtagtaaat\n" - + "gtacaactagtagccagtccttacctgtttttacgactactacggacaccatgagataca\n" - + "gaagttagtgctacaattataccattacatgctcaatatcgttgtcggccataagatcga\n" - + "agagtgcatcacgcgtgtgaatacgtaaaatctaccatcccgtcaatgcacaaaaacaca\n" - + "ctccccttgttgactaacatcttttacaagaggctaaatcattgtccaggatcgaatacc\n" - + "ttgtgtacaatcgtcacccatcggaagaataccacttttccgatgtagtatgatttacaa\n" - + "aaaacatctatgtgagtaggccaattgtagtagaatatattcatttgaccgtcattagcc\n" - + "ttcttcttaggttgtgtacggatagtaggtacataaaccgtcgtgtggcatacgctgcga\n" - + "tttcatacagctgccaacaccttttttaccaggctagagtcagaaaagttggagccatgt\n" - + "taaatagttaccatcataaaccactgttgtctactagtctgatcagctttcatgcctgtg\n" - + "caagcaatatggattctcacgtaatggtaacaactgttgcgttacttaggctggttaatt\n" - + "tgtcagagtaataaatacatgtcttgttgtgtttcctaatcctcggaaagtacacaagcc\n" - + "taggaataggaaaagtaaagctcttttattctgatagtgactaactcaggatctaaatac\n" - + "gcgattatactaaccttcaccaaagctcaaaaatcatctgctggtgaccagttatagaca\n" - + "gggtaattcaatatttaatgtctcccttaacatttcaccagcatggattgaagatagtat\n" - + "aaagttttacatggcagtcattgtgtcacggttctatacaaattctgatagttagacggt\n" - + "atttgaaatgtgcttctagcatggtatcttacacaactgaatgaacgactggagccgttc\n" - + "gtatactatttgcgagcctcgagaccccgtttcctaatgttaacgaatatagtataatat\n" - + "aaattgtgatatgaataacacaagtaactacagtttggacaattaattgttctaaactaa\n" - + "aaatcattcacttcagatggcatagagttatggctactacacatataaagcggtatgtga\n" - + "aacacccgttttagccggaaaccctctactgctcgggacaatgaatgatttccaaaatat\n" - + "ggatgtgcagaattgttagtgtgactcaggtccaaatagacactttagtttcgtcaagtc\n" - + "gttgcaaagtttaaaaccatcgcagcattctttatttggtctacattgagaaatgaaaaa\n" - + "acgtgacagaaagtctagaagaactgtgaataatgtctattactgattaactagtaagac\n" - + "attagtgcatctggtccactgaagcacccgcttggcgttaggcaatctctgtgaactgtc\n" - + "gtggctgttccggtaatgtacgaaagcaagcctataggttgatcgagtcgcttcattaag\n" - + "gtcaatttcacaatatccgatcacattgtgctaggttcgtcctttaccttgcttagtgct\n" - + "gcatgtacggggtgtcatgacttgttatcggcagactctttatcccaagaatggataata\n" - + "tgtacatggaaagtgtccataattaagtcccttcactgtaaagaatgactgccacgtgat\n" - + "ccatgaggtctacagaaaccgacttacttgctttttgatcaacttaattatggattcata\n" - + "aagttcagatatcggtacaattggtgtacaatatgaaattaatgaggaaacatggaaatc\n" - + "tgaatgacagtgatagaaaagatccccatttgcccggtcagttcatgttacaccactcat\n" - + "tagtactgtaagtgtttcgtcagcattgagatccacgatcatgtgtttatgccttcgaaa\n" - + "ctggatgtacgacgatcgagacgaagaggtatatataacctaaatactaggtacgttgtt\n" - + "agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n" - + "cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n" - + "tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n" - + "tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n" - + "gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n" - + "tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n" - + "tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n" - + "atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n" - + "cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n" - + "ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n" - + "ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n" - + "atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n" - + "gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n" - + "tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n" - + "gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n" - + "atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n" - + "tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n" - + "ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n" - + "tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n" - + "aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n" - + "gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n" - + "ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n" - + "agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n" - + "agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n" - + "acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n" - + "cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n" - + "cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n" - + "cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n" - + "aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n" - + "tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n" - + "atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n" - + "cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n" - + "tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n" - + "catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n" - + "tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n" - + "caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n" - + "tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n" - + "aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n" - + "aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n" - + "ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n" - + "gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n" - + "ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n" - + "cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n" - + "gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n" - + "ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n" - + "cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n" - + "taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n" - + "gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n" - + "taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n" - + "ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n" - + "aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n" - + "gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n" - + "acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n" - + "ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n" - + "tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n" - + "tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n" - + "tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n" - + "ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n" - + "aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n" - + "tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n" - + "gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n" - + "gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n" - + "cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n" - + "actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n" - + "tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n" - + "ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n" - + "ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n" - + "agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n" - + "gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n" - + "tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n" - + "atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n" - + "cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n" - + "tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n" - + "gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n" - + "gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n" - + "aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n" - + "gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n" - + "cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n" - + "taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n" - + "tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n" - + "ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n" - + "aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n" - + "gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n" - + "aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n" - + "tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n" - + "tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n" - + "aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n" - + "ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n" - + "ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n" - + "caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n" - + "gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n" - + "cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n" - + "ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n" - + "tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n" - + "atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n" - + "ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n" - + "acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n" - + "taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n" - + "ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n" - + "aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n" - + "cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n" - + "tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n" - + "gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n" - + "aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n" - + "cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n" - + "cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n" - + "gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n" - + "cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n" - + "gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n" - + "agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n" - + "aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n" - + "aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n" - + "cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n" - + "agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n" - + "cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n" - + "agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n" - + "gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n" - + "aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n" - + "agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n" - + "cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n" - + "agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n" - + "ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n" - + "tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n" - + "gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n" - + "gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n" - + "ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n" - + "gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n" - + "atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n" - + "tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n" - + "ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n" - + "tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n" - + "cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n" - + "ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n" - + "aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n" - + "gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n" - + "ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n" - + "atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n" - + "aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n" - + "gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n" - + "atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n" - + "aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n" - + "tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n" - + "ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n" - + "gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n" - + "cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n" - + "ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n" - + "ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n" - + "ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n" - + "cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n" - + "tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n" - + "tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n" - + "cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n" - + "gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n" - + "ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n" - + "ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n" - + "tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n" - + "agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n" - + "ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n" - + "cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n" - + "agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n" - + "tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n" - + "gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n" - + "ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n" - + "ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n" - + "agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n" - + "attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n" - + "ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n" - + "agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n" - + "aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n" - + "gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n" - + "gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n" - + "ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n" - + "gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n" - + "ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n" - + "taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n" - + "aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n" - + "tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n" - + "ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n" - + "agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n" - + "ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n" - + "agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n" - + "gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n" - + "tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n" - + "gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n" - + "cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n" - + "ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n" - + "cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n" - + "gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n" - + "gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n" - + "tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n" - + "cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n" - + "aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n" - + "ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n" - + "gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n" - + "aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n" - + "gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n" - + "aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n" - + "gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n" - + "agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n" - + "caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n" - + "gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n" - + "aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n" - + "tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n" - + "tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n" - + "ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n" - + "ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n" - + "gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n" - + "ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n" - + "aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n" - + "tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n" - + "acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n" - + "atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n" - + "gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n" - + "tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n" - + "cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n" - + "gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n" - + "acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n" - + "acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n" - + "attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n" - + "tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n" - + "cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n" - + "aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n" - + "ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n" - + "tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n" - + "gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n" - + "gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n" - + "acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n" - + "gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n" - + "gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n" - + "ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n" - + "taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n" - + "agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n" - + "gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n" - + "ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n" - + "accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n" - + "tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n" - + "taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n" - + "catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n" - + "tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n" - + "ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n" - + "aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n" - + "atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n" - + "tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n" - + "ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n" - + "tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n" - + "aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n" - + "agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n" - + "acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n" - + "aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n" - + "ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n" - + "gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n" - + "taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n" - + "taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n" - + "tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n" - + "gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n" - + "ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n" - + "atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n" - + "tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n" - + "cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n" - + "aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n" - + "taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n" - + "caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n" - + "ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n" - + "tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n" - + "tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n" - + "gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n" - + "gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n" - + "gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n" - + "ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n" - + "tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n" - + "taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n" - + "gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n" - + "ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n" - + "gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n" - + "tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n" - + "ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n" - + "tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n" - + "cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n" - + "ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n" - + "caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n" - + "cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n" - + "gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n" - + "cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n" - + "taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n" - + "tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n" - + "taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n" - + "tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n" - + "tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n" - + "tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n" - + "ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n" - + "aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n" - + "atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n" - + "actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n" - + "gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n" - + "ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n" - + "gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n" - + "tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n" - + "aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n" - + "atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n" - + "catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc"; + private static final String fastaStr = + ">ONE Homo sapiens alu\n" + + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n" + + "TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n" + + "AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n" + + "GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n" + + "CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n" + + "GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n" + + "GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n" + + "TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n" + + "AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n" + + "GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n" + + "AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n" + + "AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n" + + "GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n" + + "CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n" + + "AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n" + + "TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n" + + "TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n" + + "GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n" + + "TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n" + + "CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n" + + "CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n" + + "TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n" + + "CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n" + + "AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n" + + "GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n" + + "TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n" + + "TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n" + + "GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n" + + "GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n" + + "ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n" + + "TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n" + + "CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n" + + "CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n" + + "GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n" + + "CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n" + + "GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n" + + "GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n" + + "GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n" + + "GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n" + + "GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n" + + "AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n" + + "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n" + + "GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n" + + "AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n" + + "GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n" + + "ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n" + + "GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n" + + "GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n" + + "GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n" + + "TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n" + + "AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n" + + "GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n" + + "CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n" + + "TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n" + + "ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n" + + "GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n" + + "ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n" + + "CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n" + + "CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n" + + "ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n" + + "CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n" + + "AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n" + + "CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n" + + "AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n" + + "CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n" + + "CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n" + + "CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n" + + "CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n" + + "ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n" + + "AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n" + + "TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n" + + "ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n" + + "CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n" + + "AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n" + + "AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n" + + "TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n" + + "CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n" + + "TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n" + + "CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n" + + "GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n" + + "GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n" + + "CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n" + + "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n" + + "GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n" + + "AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n" + + "GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n" + + "CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n" + + "GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n" + + "TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n" + + "CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n" + + "ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n" + + "CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n" + + "AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n" + + "CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n" + + "CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n" + + "ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n" + + "GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n" + + "GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n" + + "GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n" + + "TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n" + + "CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n" + + "GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n" + + "CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n" + + "GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n" + + "CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n" + + "CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n" + + "CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n" + + "ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n" + + "CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n" + + "GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n" + + "AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n" + + "ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n" + + "TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n" + + "GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n" + + "GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n" + + "TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n" + + "AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n" + + "ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n" + + "GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n" + + "TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n" + + "CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n" + + "GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n" + + "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n" + + "GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n" + + "TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n" + + "ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n" + + "TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n" + + "GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n" + + "TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n" + + "GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n" + + "GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n" + + "ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n" + + "GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n" + + "GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n" + + "CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n" + + "ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n" + + "AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n" + + "TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n" + + "CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n" + + "TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n" + + "CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n" + + "GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n" + + "GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n" + + "CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n" + + "TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n" + + "CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n" + + "AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n" + + "AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n" + + "GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n" + + "TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n" + + "AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n" + + "AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n" + + "CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n" + + "TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n" + + "GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n" + + "CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n" + + "CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n" + + "GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n" + + "AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n" + + "GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n" + + "TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n" + + "CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n" + + "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n" + + "CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n" + + "AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n" + + "ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n" + + "ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n" + + "AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n" + + "GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n" + + "GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n" + + "CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n" + + "GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n" + + "CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n" + + "GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n" + + "GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n" + + "CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n" + + "AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n" + + "CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n" + + "CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n" + + "GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n" + + "GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n" + + "TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n" + + "ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n" + + "CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n" + + "ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n" + + "GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n" + + "TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n" + + "GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n" + + "GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n" + + "GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n" + + "GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n" + + "TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n" + + "TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n" + + "TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n" + + "GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n" + + "CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n" + + "TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n" + + ">TWO IUB ambiguity codes\n" + + "cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n" + + "tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n" + + "NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n" + + "cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n" + + "gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n" + + "HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n" + + "tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n" + + "tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n" + + "acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n" + + "tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n" + + "gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n" + + "accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n" + + "RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n" + + "tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n" + + "cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n" + + "ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n" + + "actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n" + + "YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n" + + "KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n" + + "aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n" + + "aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n" + + "gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n" + + "tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n" + + "tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n" + + "ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n" + + "ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n" + + "BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n" + + "aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n" + + "tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n" + + "cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n" + + "aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n" + + "tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n" + + "aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n" + + "gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n" + + "ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n" + + "taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n" + + "ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n" + + "gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n" + + "gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n" + + "tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n" + + "tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n" + + "taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n" + + "cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n" + + "aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n" + + "cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n" + + "ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n" + + "attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n" + + "ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n" + + "attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n" + + "tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n" + + "aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n" + + "cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n" + + "gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n" + + "attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n" + + "BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n" + + "DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n" + + "tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n" + + "tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n" + + "tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n" + + "taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n" + + "aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n" + + "DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n" + + "VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n" + + "agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n" + + "gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n" + + "tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n" + + "catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n" + + "tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n" + + "aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n" + + "aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n" + + "acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n" + + "tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n" + + "aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n" + + "acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n" + + "RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n" + + "RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n" + + "tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n" + + "gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n" + + "YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n" + + "ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n" + + "ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n" + + "gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n" + + "KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n" + + "aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n" + + "gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n" + + "taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n" + + "VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n" + + "NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n" + + "MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n" + + "cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n" + + "ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n" + + "tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n" + + "aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n" + + "actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n" + + "tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n" + + "gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n" + + "BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n" + + "aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n" + + "aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n" + + "YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n" + + "aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n" + + "cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n" + + "tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n" + + "tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n" + + "MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n" + + "taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n" + + "tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n" + + "RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n" + + "agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n" + + "NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n" + + "gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n" + + "aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n" + + "ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n" + + "cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n" + + "tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n" + + "RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n" + + "tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n" + + "gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n" + + "tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n" + + "ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n" + + "tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n" + + "ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n" + + "BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n" + + "gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n" + + "acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n" + + "gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n" + + "taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n" + + "acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n" + + "tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n" + + "catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n" + + "tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n" + + "atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n" + + "ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n" + + "ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n" + + "cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n" + + "SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n" + + "VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n" + + "BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n" + + "NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n" + + "tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n" + + "ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n" + + "cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n" + + "VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n" + + "atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n" + + "aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n" + + "tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n" + + "RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n" + + "gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n" + + "tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n" + + "attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n" + + "atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n" + + "cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n" + + "NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n" + + "ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n" + + "cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n" + + "aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n" + + "agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n" + + "tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n" + + "ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n" + + "ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n" + + "tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n" + + "taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n" + + "tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n" + + "YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n" + + "ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n" + + "tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n" + + "ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n" + + "attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n" + + "atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n" + + "YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n" + + "gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n" + + "MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n" + + "tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n" + + "ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n" + + "aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n" + + "BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n" + + "tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n" + + "StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n" + + "cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n" + + "atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n" + + "atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n" + + "ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n" + + "gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n" + + "tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n" + + "BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n" + + "agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n" + + "HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n" + + "tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n" + + "aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n" + + "catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n" + + "aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n" + + "tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n" + + "cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n" + + "DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n" + + "gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n" + + "tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n" + + "atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n" + + "KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n" + + "tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n" + + "tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n" + + "taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n" + + "NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n" + + "HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n" + + "ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n" + + "tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n" + + "cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n" + + "ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n" + + "HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n" + + "gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n" + + "BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n" + + "gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n" + + "KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n" + + "cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n" + + "tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n" + + "taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n" + + "gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n" + + "aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n" + + "acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n" + + "RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n" + + "attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n" + + "KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n" + + "KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n" + + "gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n" + + "aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n" + + "aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n" + + "ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n" + + "tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n" + + "aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n" + + "tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n" + + "MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n" + + "cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n" + + "caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n" + + "ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n" + + "acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n" + + "tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n" + + "gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n" + + "atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n" + + "aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n" + + "NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n" + + "taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n" + + "aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n" + + "ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n" + + "DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n" + + "tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n" + + "aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n" + + "ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n" + + "ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n" + + "RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n" + + "aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n" + + "aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n" + + "aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n" + + "tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n" + + "atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n" + + "BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n" + + "gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n" + + "cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n" + + "RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n" + + "taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n" + + "aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n" + + "gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n" + + "gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n" + + "aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n" + + "gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n" + + "ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n" + + "MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n" + + "SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n" + + "aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n" + + "VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n" + + "HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n" + + "agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n" + + "gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n" + + "agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n" + + "tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n" + + "gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n" + + "VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n" + + "tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n" + + "MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n" + + "actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n" + + "WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n" + + "tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n" + + "KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n" + + "BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n" + + "attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n" + + "VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n" + + "aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n" + + "tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n" + + "tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n" + + "tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n" + + "VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n" + + "tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n" + + "ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n" + + "tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n" + + "WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n" + + "tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n" + + "tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n" + + "MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n" + + "tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n" + + "atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n" + + "aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n" + + "aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n" + + ">THREE Homo sapiens frequency\n" + + "aagtccgatgagtttcaatcatgactgcgaggagatccatgcggtgtacctaaacctaca\n" + + "tcgtatgtatttgctgacgttcattcttgatacataaagatccgatatcggtccactttg\n" + + "tttaccaaaagccctaccttcgtaacgatggaaatgtgaatgagagtgaaatacacgatg\n" + + "gggatattgccggtgagtacaagttagaccacacattagaactgacctatattcgtcatc\n" + + "atagagatggagtatgaattgattctgcgaagtacactggctttacgagtatctagacgc\n" + + "cgcggtatatctcccgtcaatactatgaaggtatatatatagaggctgaaaattcatgtt\n" + + "caatcctctttctaagagtgagtgggagccccttctgttgtcggagtaaaaaggcattat\n" + + "tcctcaaattgtcagaagcaaagtatacgtgatgtttgcttagaacaaaagagttacctt\n" + + "agggtaggtaaatctcgattcaccgagagaagtgattttggcggtgtgcgattaattctt\n" + + "ttgatgacagatctcattattttatatagctccctctttgtatttagagtttgcgtaggt\n" + + "aacctggcaaaaccatatcccggggggagagtgcgctgaacattttatacgatgtgatta\n" + + "ctcaaaggataaggttcgaggcctctatactcatggaactatcttataattataatggat\n" + + "cgtggctcattccacctatccaaacttctttgtgatctgatgctacgagtgtgaacaaac\n" + + "gtacatcttctaaggaatttgggacgtttcatagctcgcatttcattcctgaaaacttaa\n" + + "atatttttaaaaattgattctactgcgaggaactaaggtgtagacaagcccttagtaacc\n" + + "ggtggatgtcgcttcagttttatagcaaacattattcaatttcagtcttgactgaaatta\n" + + "gtttgttagtgttagaggtccatatgtcacatgcatatggtctagatgccattgtacagt\n" + + "aataccttagattagtattagcggcatgcgtacttggatttcacttgtaagaatgagctt\n" + + "aggacggtcgcctgtagggctgcaaataggaatacttacaatttttgatgacttgttagc\n" + + "atatcgctatcacccataaaaaacctgatacttgatgagcgggtgattgagactatgtac\n" + + "tgatataattcaatagctccaatagatgaaacagctatgcgcctatttatgtcaaataat\n" + + "cgatgtgatacaagcttagagctgaacgagcgcgagtggaattagcggtgatctctatcc\n" + + "taaaaagccacgaaatcgatcccagaagctaatacccgaggtgtcaagcttgagttcagt\n" + + "taaatttgcatctcatgccccacgaagaatgggtagagagtttgaaggtgcttctggatt\n" + + "ttcctaagtacgtggtaaaaatttgatgtaaatgaacacctcctaatggttgtgttaacc\n" + + "acaaacccctgggtgaatctgattagccaacccagtgatctgatttcagttgtcaaatct\n" + + "cttttttataactaccttttgtttccataatttaaccggatctcataatgaacaaacggg\n" + + "tagaataatggtagcacatagcgagcttgtctattcagaaatatggcctactcagaatgt\n" + + "attctccaaatcagtgttatgcgaaacgtaattttacgtgtaataatgatgatttcttat\n" + + "cggttccttgtactacaatactcttgcccaacaaatactaagcataacagcaaaattcga\n" + + "atccccctccttttaataaatggtttttcaatatagccgattcgtattcgttagtctttc\n" + + "accaactattaacctggcatctaattaataaaatcaccaaaggactctataatatgacag\n" + + "tcacttcggcctcttttaagacagttgattattgcaggtccgcaattgatggtgacatgc\n" + + "acaattagttagaatccgactatggagacaattaacaattgtagtgcccatttggtccag\n" + + "ttgacttcaaccacgagttataaaggtattttaatttatagtcgatagtaccaacaacaa\n" + + "gcacaatcataattatgttagaaaacccagggggtaatgctctaaatccagctttaaggc\n" + + "cagagtgcactatgaaatcgccattgatcattgtgtcattcgctgaacttggtgtctagg\n" + + "aggtgccgagtgagaatatcagataccttatgaagcaacgattatatctggactagatca\n" + + "tgatgatcggaataaaacattgaaataagtccttatcaaggagcataaacattttattta\n" + + "atttatacttcgtaaataaattcagaattttttttcaagacattaatctgagtaaatgac\n" + + "ggctagaaagggttcctactcgaatcgtagcctacgcatgtgggcagtaacctggcttgc\n" + + "gtttttactgaaacaaaggttcaccggaaagaaggctgccacttttagcttcttgacgat\n" + + "ctttagcgtcatatttttagattagtcgaaaaacggaaaacaaacttaacgaagctggtt\n" + + "gcacggggtaccgagaaaccaaagagcaggacaactccttgatcgggaagaactgaaata\n" + + "gacagctgtcattttcattggtcaacttatcaatataacgaccaccgtagtgacgcttgc\n" + + "atgaaaatactgaggatgtaaactatagccagtcaggcccgcgtgttgactaattgatga\n" + + "agcaaacaaaatagccggtattcgttaaaaggaacgggttgccagctacagatatactct\n" + + "aggtatatcccaaacaagagacgtcctttggctgttgtaatcggtcataatacttgtcac\n" + + "ataaacaagatcgctgaattaaacattaaacagttagtgatacacaatcgtggttggggc\n" + + "tgggatgtgcaataaaaagtcatctatcgtctatcacagagcgacgtaaatttagacaaa\n" + + "cattattatttcttgacaatggaatcgataagcgttcctctaacttggtatatatatctc\n" + + "gaccccgggattccagccattcttgtatgaagatttaaccatttaactatgcatagttga\n" + + "atggtaaggaaaatgatattgactgcaacagattttggatgcaaaaatatttgtgaatta\n" + + "ttggttatatactggttgtatagcacaatcattaggtcctagaaggcatactcaacctca\n" + + "gcgagagagctagcatgcataattgtaccgcccatattaatattcctgaaatgatttctt\n" + + "acattacgcccaatttcagtcatcgaacacccccatcaatttacccgatagagaacgtga\n" + + "tcatacgcaataccctatgcgaacgtccactctatagcgtctgtatacaatgattattcg\n" + + "ttccatttacaacgttaagtaatttaaacttacataaggacaaggaaatccgcgaacctc\n" + + "ctggaatgtatgagttatttatgcagttaacttcgtctcgaccggaactaaaggcgtcgt\n" + + "acgaatgaaaggccacttttagaagagacctttgtatccattgtggagaatatcataaat\n" + + "tcaagatggggtgtcatgctattcggtcctaaacattcttaatggctgttctattgttag\n" + + "tctgatttaaaatggaaccatagcacgaatagttagatagggctcatacccctgtaacga\n" + + "tctacaaatccttccccgggtgtgtgcgttagcgacggaaagttttacggtttgtgatca\n" + + "aagaacactcacacgtcagattattacactgatacgaattatttcagtcgacagtaattg\n" + + "aatagaaacttattaacgccagcacctgacacggtaagtaaggcaggtctgaactgtttg\n" + + "actgtaaaaaaatggtaatatttttaaaaatcttgatttctatatcaaatgatgtgtagt\n" + + "tttttctctgttattaaaatcccagtgcgcgaaatttagatcgttacgactcacgtacaa\n" + + "gatcacacatcacacgcgttagcgaaagcggaatggctaatacagccctacgcaacgtag\n" + + "tgggatcaacatatggacgaatttatgctcaatgagccaacctcccccgcattgcggttc\n" + + "attttaaggcctgggtaacatctatcgtttagataatcaaaggaatccgactatgcaatt\n" + + "gtctgacttcatccgctctcaagtccaatgcaggcgctacgtgtttctttaatcaatacc\n" + + "atattgaaatcgtaatacgataattgttgctattgactacaggttatgaaaaaacttact\n" + + "ttgcgggtacatgcatatttttgtaccacattattacgcgatatctctcagtgtactcta\n" + + "aattaaaccctcttcgaacattttagttcctattcgtaaacacgtgctacgcggcaattt\n" + + "gccggtcgtagaatggacaactccagttcaactgcatgtaactcatagctcgcgttagta\n" + + "taaattgactagtagccatgggacaaagtaactagtcagcggaaaagatccctttaaaga\n" + + "tatatgcaggttgcaagcataaagctcattgctcgaggtgcaccgtggtattccaaaagc\n" + + "gtctctatcgtatcttctaattttgggccgtgagaatcgaaactactctgatttgctgca\n" + + "cacgttaggtaatatcgcccattttcccgtataagctccgtacttatacgaactacacga\n" + + "ccttttaagcattagccgctcatatcgtgattcgtgtacagatgagtctattaaaattac\n" + + "agacatactccatatctcgctccttgaactttgaataatgcgctaacttgtactatgaat\n" + + "aggcagaacccaactttcccgtttgcgtcaagcggggaaacgatacatgttgtcagattt\n" + + "atgattatctagttttagatcacgtttaccgataatcggctgtggtctgagcagtcctac\n" + + "actgagtatttacttcagcttcatatcggtccgaaaaaaggttgtgaccgaatgtcaaaa\n" + + "tacggagtacgatgggcatcttttttcgagtcgcggttgcagggcagcaaaaggcttaaa\n" + + "ccatttttacgatttttactatagcggtcatgaagtgcgaaactgcttgcaaattttcta\n" + + "cacacattgtggctcttgtccttgaagcttatggcgaaaatttgaaacatagtataccag\n" + + "ggaaagcgcgaattatttggtgactaatagtccgtgggtttgagccatatacctaacgcc\n" + + "ataaactacgtggtgctttagatgcaatctaaacagaacagaaagcgtagcgctcatcag\n" + + "cacagactaactttttcagtttgagtcgccggagggacttcgagacaagaacgcgtcaag\n" + + "tcgcttgcgcggcacggattcgattgggcggctcaatcttgcctaatttctactattgtc\n" + + "agctgtacgactgtactaagtgtatagccccaaataaaagaagtatcgatgcgtctttat\n" + + "gaccaaaggtcttataattgaagcgcacttccgttcatcaaattaaatcctggcttaccc\n" + + "gattctccggaagtctgacctagagattgacgacggccgcgtattattgagacctcttca\n" + + "ggattaatcaataacgaagtagttgatctgtttggcgacgtaccttaagccgactccgct\n" + + "acacgagtttctactaaaccaatgtagccttatgcttagatgaataccgtcctaattaga\n" + + "tattccggcataacagcagtaaattatctgttcaatggacgaacattgaattgttagtat\n" + + "tctacacaagtcaggcctcgtaaatattaggtaaggccgtgggataacctacgtgatatg\n" + + "cttgagcttgcgttgcaagctctcgttaatcattaatttaggtgcgtgagggttaaacac\n" + + "cagcatattctatatgctagacgtcttccttaaaggatcgtagtattataattaataata\n" + + "agaaatatggttgacgtctagtcagcgggcatacgctgctctatatactggcattattca\n" + + "aaacttgacggtaaaaaaacgaattttaaggcgctcacgtcgaatgagccgaactcatgg\n" + + "gaaccaaaatgtcacagaaaacacctctttattgccaagcatgcaataaaaaaaatgtta\n" + + "atagtacgtttacgacattttattttataataaagagaaactattacacctattgatatg\n" + + "ataggacgtaaattaacgagtagcctgcatagaggcaaatgaggtttctacatggtatag\n" + + "acctgatgctgaaacatcgatgagttttggtcccctcgctcgttgaaatctagtcattta\n" + + "ctactgtctttcgagctattataccacttcactatgtggtgtttctttgctatgtatggg\n" + + "gctagtcaaacatgatgactatagctacaactcagagagcgggcgtgttaagagtatctc\n" + + "atgctagaactgcacgacgaacttgatacaaagtaacaacatttacgattccacaaggtg\n" + + "actttgaagaaacatagtttaattctctgcttcgatcatttctataaaccggtaccatcg\n" + + "cagcggatagatgcataacatttctactactccaggcatcttaaaacacacgtagtactt\n" + + "cactagattaagacacgataagtgtataacttggcagtgggaagcaaggagattggcgaa\n" + + "ctcctggcatctgttacgttttgttcaggctcggttgttgataatgtccgactcctgcca\n" + + "tattgaagactcgctcgagggagatcgggattcgttgattataagtacacgtgttccgta\n" + + "atactatgaggcagtgattcaaaatggcacttctgacttacatgactaggtattattacc\n" + + "acggaagcgttaaaggcacactcttatggacttaagattgcaagtgccttcttctagcct\n" + + "gaattcgcgggttcaacacaaactctctttagacatccgttgcctaaaggctgagacgta\n" + + "ggggcaaccctttaactatgtactaaaaaactagttggtaatttaacaacgtgtccaatc\n" + + "aagacgatgcaccaacgcggtgcgaaaatcgggttaagcaaacacaaataggaattgtga\n" + + "taaaccccaccttgagaggtcgcaagaccaacctcgggaacaacggctctaagagaataa\n" + + "cctaaatccggatgagtagactgtgtaactctctaaagggaagtgaaaaaaagctaagca\n" + + "tacatttaggtctcctgcattgcattcaattgaatcgtttgtattatgagctgtacagta\n" + + "gctatatcagctatagttatcccagaggaacaggtaaactagctctgagcgtgaaatccg\n" + + "gatattagaacccctagatgggattgattctagctaatacaggcttatctggttttacag\n" + + "ttatctagatgattggtaaggtgaaacgcttggtgccttccaccacttaaacaaaagtat\n" + + "tgcccgggaagctattttctaggtattataaagtcgagcattaatatcaatttgacagta\n" + + "aaggtctttcaccagcttcatatgccatagggcccatactcgatttaaattgaacggttt\n" + + "aacgagtattggaactctcacttataactgagtagctatacgaaaaatctggtccatttc\n" + + "cagaaatttattatcgatttgctgcttagtacccaggaagtgataacccttgaaggcaca\n" + + "acactgtaataagttttcctgtcacatctgtaatattcggtcactacgcattcacgacta\n" + + "aagataattactatactaattaaaagttcaatgttagggccgaatcatagtagaaattct\n" + + "cgtctagcctaatcggacttacctatgggctgtgaggatttatcagtatgtggacaaaaa\n" + + "tgctagagataggtatagttaaagtcaccatggtacatctatgtgaggaagtttgtagtt\n" + + "cgcttctttagtccgggcgtttgggatgacaactactatacgtagagccgtactcaggat\n" + + "tagatagtgtgaaagagtcaaataaaagggttaatattaatttaacgttgcaaatgtgtt\n" + + "taggccaaacattaaccgttgtagggatattctaatacaggccttcaccgaaccctaatg\n" + + "ataatctgtcttaataacattaaatgattgtctccgctacgagctcttagggcctcattt\n" + + "taaatgactaatgtccaaagaagagactttcccaatttcaatctgtcacgtatagacggc\n" + + "accttagtgagtcatatcattaagatagaagattatcaggagggaagtttctattatcaa\n" + + "ccgttacgcaaccataaacttttaaatctcataatggcattgagatcaagagctttcatg\n" + + "atggtaaagttcgtatgtgatgctggggagctagatatcggtataccacttcggttgtgg\n" + + "taagcccgagtgggccgttagtaatattaatagacgattatccgacaatgcattcgctga\n" + + "aataatcttacttaggagaaattaatgctatgagccaaaactatttatgtctgtcacatt\n" + + "attgactaaagtatctatcgacaaaactgatgtccataagttgtagcagatagtcggtgt\n" + + "atggtgtcaccaatgaaaacctcgagcgaaaaatgaattatagttatccaatttgagtaa\n" + + "attgcctattatacagataggcttgtttagtcagataaggttccgcttgaggtgctctaa\n" + + "cttagcgagagttagaaagcctagtgagaggcattttggtgccaaactccggctcgcatg\n" + + "agtaggccagagagtcactttctttcgtcgaagaagttggtgaacagccttttgattagt\n" + + "tgtttgtcttgtggctatgtgctactatataagttagaacgcaaactaatctaatcagca\n" + + "aagtaaaataggaccttgaacgagacggggtacgccgttgaggctcgagatagtagataa\n" + + "actagaggaatgtagataaaacattagctagggggtttagttactggattacataggaag\n" + + "tgcaccatcacggtgtgggggttcgtacgtaaagtcgcatcaatattgtcagtggactta\n" + + "acaagttcgtgcataatgaaatcctatacggactttgcatatctctaccgactcatctgg\n" + + "tcgtctatgcgggtaattgtattgctccaagtggatgactattttggcgtcccagcacat\n" + + "agtaaatgtaaatccttataatagcataagcaattattagactgcgtgaagtcttagtag\n" + + "ttctcaagctttacgttgtatgtaaataactcacgtaatcagccgtccccaaatcaccat\n" + + "tgaggtcattgaatgtacggagcactattatcaatgcggtatgcgattttctgagcgatt\n" + + "attgttaaagacttagcgttgagccccggaacacttgattacagattctttaaggagtta\n" + + "tccaaatatcattttaaataatagtagtatcgtgctttggacaataaaaaaagacccgtt\n" + + "ctcttatgttgttttgcgacgtacttctctgatatatacttcaactatgaagattctatt\n" + + "catcgataacccaggtatatttatatgcccgttcactgcgcagggcaaattatctacgga\n" + + "caataatgacgtagttggacccggtaagaactaacgcttaatatgattaaggatgtatgc\n" + + "cagtattatcttattatgtcagagtagaagtttctctgagattttccgtcgttgtggtac\n" + + "accggatttggctctctttttagaactgagaactcggagtgtgtagtcttgtttccttca\n" + + "atttatcaatatgcttttataccgccctcatcaactataacaggacgacaagttccgtct\n" + + "tgctccatcatatactaccgatacaccaatcgtatcaagtttagtatacttgctttctct\n" + + "cttctacagcttactcgcttgtccgagaagcggttggtgctcataaagttagtagtaaat\n" + + "gtacaactagtagccagtccttacctgtttttacgactactacggacaccatgagataca\n" + + "gaagttagtgctacaattataccattacatgctcaatatcgttgtcggccataagatcga\n" + + "agagtgcatcacgcgtgtgaatacgtaaaatctaccatcccgtcaatgcacaaaaacaca\n" + + "ctccccttgttgactaacatcttttacaagaggctaaatcattgtccaggatcgaatacc\n" + + "ttgtgtacaatcgtcacccatcggaagaataccacttttccgatgtagtatgatttacaa\n" + + "aaaacatctatgtgagtaggccaattgtagtagaatatattcatttgaccgtcattagcc\n" + + "ttcttcttaggttgtgtacggatagtaggtacataaaccgtcgtgtggcatacgctgcga\n" + + "tttcatacagctgccaacaccttttttaccaggctagagtcagaaaagttggagccatgt\n" + + "taaatagttaccatcataaaccactgttgtctactagtctgatcagctttcatgcctgtg\n" + + "caagcaatatggattctcacgtaatggtaacaactgttgcgttacttaggctggttaatt\n" + + "tgtcagagtaataaatacatgtcttgttgtgtttcctaatcctcggaaagtacacaagcc\n" + + "taggaataggaaaagtaaagctcttttattctgatagtgactaactcaggatctaaatac\n" + + "gcgattatactaaccttcaccaaagctcaaaaatcatctgctggtgaccagttatagaca\n" + + "gggtaattcaatatttaatgtctcccttaacatttcaccagcatggattgaagatagtat\n" + + "aaagttttacatggcagtcattgtgtcacggttctatacaaattctgatagttagacggt\n" + + "atttgaaatgtgcttctagcatggtatcttacacaactgaatgaacgactggagccgttc\n" + + "gtatactatttgcgagcctcgagaccccgtttcctaatgttaacgaatatagtataatat\n" + + "aaattgtgatatgaataacacaagtaactacagtttggacaattaattgttctaaactaa\n" + + "aaatcattcacttcagatggcatagagttatggctactacacatataaagcggtatgtga\n" + + "aacacccgttttagccggaaaccctctactgctcgggacaatgaatgatttccaaaatat\n" + + "ggatgtgcagaattgttagtgtgactcaggtccaaatagacactttagtttcgtcaagtc\n" + + "gttgcaaagtttaaaaccatcgcagcattctttatttggtctacattgagaaatgaaaaa\n" + + "acgtgacagaaagtctagaagaactgtgaataatgtctattactgattaactagtaagac\n" + + "attagtgcatctggtccactgaagcacccgcttggcgttaggcaatctctgtgaactgtc\n" + + "gtggctgttccggtaatgtacgaaagcaagcctataggttgatcgagtcgcttcattaag\n" + + "gtcaatttcacaatatccgatcacattgtgctaggttcgtcctttaccttgcttagtgct\n" + + "gcatgtacggggtgtcatgacttgttatcggcagactctttatcccaagaatggataata\n" + + "tgtacatggaaagtgtccataattaagtcccttcactgtaaagaatgactgccacgtgat\n" + + "ccatgaggtctacagaaaccgacttacttgctttttgatcaacttaattatggattcata\n" + + "aagttcagatatcggtacaattggtgtacaatatgaaattaatgaggaaacatggaaatc\n" + + "tgaatgacagtgatagaaaagatccccatttgcccggtcagttcatgttacaccactcat\n" + + "tagtactgtaagtgtttcgtcagcattgagatccacgatcatgtgtttatgccttcgaaa\n" + + "ctggatgtacgacgatcgagacgaagaggtatatataacctaaatactaggtacgttgtt\n" + + "agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n" + + "cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n" + + "tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n" + + "tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n" + + "gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n" + + "tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n" + + "tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n" + + "atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n" + + "cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n" + + "ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n" + + "ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n" + + "atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n" + + "gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n" + + "tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n" + + "gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n" + + "atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n" + + "tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n" + + "ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n" + + "tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n" + + "aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n" + + "gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n" + + "ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n" + + "agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n" + + "agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n" + + "acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n" + + "cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n" + + "cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n" + + "cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n" + + "aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n" + + "tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n" + + "atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n" + + "cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n" + + "tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n" + + "catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n" + + "tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n" + + "caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n" + + "tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n" + + "aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n" + + "aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n" + + "ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n" + + "gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n" + + "ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n" + + "cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n" + + "gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n" + + "ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n" + + "cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n" + + "taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n" + + "gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n" + + "taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n" + + "ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n" + + "aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n" + + "gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n" + + "acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n" + + "ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n" + + "tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n" + + "tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n" + + "tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n" + + "ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n" + + "aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n" + + "tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n" + + "gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n" + + "gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n" + + "cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n" + + "actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n" + + "tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n" + + "ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n" + + "ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n" + + "agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n" + + "gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n" + + "tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n" + + "atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n" + + "cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n" + + "tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n" + + "gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n" + + "gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n" + + "aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n" + + "gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n" + + "cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n" + + "taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n" + + "tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n" + + "ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n" + + "aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n" + + "gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n" + + "aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n" + + "tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n" + + "tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n" + + "aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n" + + "ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n" + + "ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n" + + "caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n" + + "gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n" + + "cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n" + + "ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n" + + "tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n" + + "atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n" + + "ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n" + + "acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n" + + "taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n" + + "ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n" + + "aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n" + + "cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n" + + "tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n" + + "gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n" + + "aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n" + + "cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n" + + "cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n" + + "gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n" + + "cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n" + + "gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n" + + "agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n" + + "aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n" + + "aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n" + + "cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n" + + "agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n" + + "cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n" + + "agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n" + + "gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n" + + "aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n" + + "agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n" + + "cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n" + + "agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n" + + "ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n" + + "tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n" + + "gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n" + + "gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n" + + "ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n" + + "gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n" + + "atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n" + + "tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n" + + "ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n" + + "tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n" + + "cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n" + + "ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n" + + "aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n" + + "gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n" + + "ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n" + + "atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n" + + "aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n" + + "gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n" + + "atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n" + + "aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n" + + "tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n" + + "ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n" + + "gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n" + + "cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n" + + "ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n" + + "ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n" + + "ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n" + + "cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n" + + "tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n" + + "tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n" + + "cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n" + + "gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n" + + "ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n" + + "ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n" + + "tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n" + + "agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n" + + "ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n" + + "cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n" + + "agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n" + + "tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n" + + "gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n" + + "ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n" + + "ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n" + + "agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n" + + "attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n" + + "ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n" + + "agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n" + + "aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n" + + "gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n" + + "gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n" + + "ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n" + + "gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n" + + "ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n" + + "taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n" + + "aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n" + + "tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n" + + "ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n" + + "agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n" + + "ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n" + + "agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n" + + "gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n" + + "tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n" + + "gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n" + + "cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n" + + "ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n" + + "cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n" + + "gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n" + + "gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n" + + "tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n" + + "cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n" + + "aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n" + + "ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n" + + "gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n" + + "aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n" + + "gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n" + + "aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n" + + "gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n" + + "agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n" + + "caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n" + + "gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n" + + "aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n" + + "tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n" + + "tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n" + + "ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n" + + "ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n" + + "gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n" + + "ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n" + + "aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n" + + "tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n" + + "acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n" + + "atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n" + + "gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n" + + "tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n" + + "cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n" + + "gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n" + + "acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n" + + "acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n" + + "attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n" + + "tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n" + + "cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n" + + "aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n" + + "ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n" + + "tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n" + + "gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n" + + "gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n" + + "acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n" + + "gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n" + + "gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n" + + "ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n" + + "taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n" + + "agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n" + + "gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n" + + "ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n" + + "accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n" + + "tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n" + + "taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n" + + "catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n" + + "tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n" + + "ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n" + + "aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n" + + "atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n" + + "tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n" + + "ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n" + + "tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n" + + "aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n" + + "agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n" + + "acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n" + + "aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n" + + "ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n" + + "gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n" + + "taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n" + + "taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n" + + "tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n" + + "gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n" + + "ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n" + + "atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n" + + "tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n" + + "cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n" + + "aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n" + + "taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n" + + "caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n" + + "ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n" + + "tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n" + + "tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n" + + "gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n" + + "gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n" + + "gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n" + + "ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n" + + "tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n" + + "taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n" + + "gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n" + + "ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n" + + "gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n" + + "tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n" + + "ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n" + + "tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n" + + "cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n" + + "ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n" + + "caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n" + + "cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n" + + "gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n" + + "cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n" + + "taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n" + + "tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n" + + "taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n" + + "tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n" + + "tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n" + + "tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n" + + "ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n" + + "aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n" + + "atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n" + + "actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n" + + "gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n" + + "ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n" + + "gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n" + + "tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n" + + "aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n" + + "atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n" + + "catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc"; } diff --git a/benchmarks/benchmarksgame/revcomp.java b/benchmarks/benchmarksgame/revcomp.java index 57ea444..8f0b949 100644 --- a/benchmarks/benchmarksgame/revcomp.java +++ b/benchmarks/benchmarksgame/revcomp.java @@ -2,15 +2,16 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `revcomp/revcomp.java-4.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/revcomp-java-4.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * contributed by Anthony Donnefort * slightly modified to read 82 bytes at a time by Razii + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ /* @@ -23,69 +24,68 @@ package benchmarks.benchmarksgame; import java.io.*; -// CHECKSTYLE.OFF: .* public class revcomp { - private ReversibleByteArray buf = new ReversibleByteArray(); - InputStream stream = new ByteArrayInputStream(fastaStr.getBytes()); - static final byte[] cmp = new byte[128]; - static { - for (int i = 0; i < cmp.length; i++) cmp[i] = (byte) i; - cmp['t'] = cmp['T'] = 'A'; - cmp['a'] = cmp['A'] = 'T'; - cmp['g'] = cmp['G'] = 'C'; - cmp['c'] = cmp['C'] = 'G'; - cmp['v'] = cmp['V'] = 'B'; - cmp['h'] = cmp['H'] = 'D'; - cmp['r'] = cmp['R'] = 'Y'; - cmp['m'] = cmp['M'] = 'K'; - cmp['y'] = cmp['Y'] = 'R'; - cmp['k'] = cmp['K'] = 'M'; - cmp['b'] = cmp['B'] = 'V'; - cmp['d'] = cmp['D'] = 'H'; - cmp['u'] = cmp['U'] = 'A'; - } + private ReversibleByteArray buf = new ReversibleByteArray(); + InputStream stream = new ByteArrayInputStream(fastaStr.getBytes()); + static final byte[] cmp = new byte[128]; + + static { + for (int i = 0; i < cmp.length; i++) cmp[i] = (byte) i; + cmp['t'] = cmp['T'] = 'A'; + cmp['a'] = cmp['A'] = 'T'; + cmp['g'] = cmp['G'] = 'C'; + cmp['c'] = cmp['C'] = 'G'; + cmp['v'] = cmp['V'] = 'B'; + cmp['h'] = cmp['H'] = 'D'; + cmp['r'] = cmp['R'] = 'Y'; + cmp['m'] = cmp['M'] = 'K'; + cmp['y'] = cmp['Y'] = 'R'; + cmp['k'] = cmp['K'] = 'M'; + cmp['b'] = cmp['B'] = 'V'; + cmp['d'] = cmp['D'] = 'H'; + cmp['u'] = cmp['U'] = 'A'; + } - static class ReversibleByteArray extends java.io.ByteArrayOutputStream { - void reverse() throws Exception { - if (count > 0) { - int begin = 0, end = count - 1; - while (buf[begin++] != '\n'); - while (begin <= end) { - if (buf[begin] == '\n') begin++; - if (buf[end] == '\n') end--; - if (begin <= end) { - byte tmp = buf[begin]; - buf[begin++] = cmp[buf[end]]; - buf[end--] = cmp[tmp]; - } - } - } + static class ReversibleByteArray extends java.io.ByteArrayOutputStream { + void reverse() throws Exception { + if (count > 0) { + int begin = 0, end = count - 1; + while (buf[begin++] != '\n') ; + while (begin <= end) { + if (buf[begin] == '\n') begin++; + if (buf[end] == '\n') end--; + if (begin <= end) { + byte tmp = buf[begin]; + buf[begin++] = cmp[buf[end]]; + buf[end--] = cmp[tmp]; + } + } } - } + } + } - public void old_main() throws Exception { - byte[] line = new byte[82]; - int read; - buf.reset(); - stream.reset(); + public void old_main() throws Exception { + byte[] line = new byte[82]; + int read; + buf.reset(); + stream.reset(); - while ((read = stream.read(line)) != -1) { - int i = 0, last = 0; - while (i < read) { - if (line[i] == '>') { - buf.write(line, last, i - last); - buf.reverse(); - buf.reset(); - last = i; - } - i++; - } - buf.write(line, last, read - last); + while ((read = stream.read(line)) != -1) { + int i = 0, last = 0; + while (i < read) { + if (line[i] == '>') { + buf.write(line, last, i - last); + buf.reverse(); + buf.reset(); + last = i; + } + i++; } - buf.reverse(); - stream.reset(); - } - // CHECKSTYLE.ON: .* + buf.write(line, last, read - last); + } + buf.reverse(); + stream.reset(); + } public void timeRevComp(int iters) throws Exception { for (int frameworkCount = 0; frameworkCount < iters; frameworkCount++) { @@ -121,1007 +121,1008 @@ public class revcomp { System.exit(rc); } - private static final String fastaStr = ">ONE Homo sapiens alu\n" - + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n" - + "TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n" - + "AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n" - + "GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n" - + "CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n" - + "GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n" - + "GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n" - + "TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n" - + "AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n" - + "GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n" - + "AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n" - + "AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n" - + "GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n" - + "CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n" - + "AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n" - + "TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n" - + "TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n" - + "GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n" - + "TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n" - + "CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n" - + "CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n" - + "TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n" - + "CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n" - + "AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n" - + "GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n" - + "TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n" - + "TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n" - + "GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n" - + "GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n" - + "ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n" - + "TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n" - + "CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n" - + "CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n" - + "GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n" - + "CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n" - + "GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n" - + "GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n" - + "GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n" - + "GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n" - + "GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n" - + "AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n" - + "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n" - + "GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n" - + "AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n" - + "GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n" - + "ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n" - + "GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n" - + "GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n" - + "GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n" - + "TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n" - + "AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n" - + "GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n" - + "CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n" - + "TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n" - + "ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n" - + "GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n" - + "ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n" - + "CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n" - + "CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n" - + "ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n" - + "CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n" - + "AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n" - + "CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n" - + "AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n" - + "CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n" - + "CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n" - + "CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n" - + "CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n" - + "ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n" - + "AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n" - + "TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n" - + "ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n" - + "CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n" - + "AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n" - + "AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n" - + "TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n" - + "CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n" - + "TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n" - + "CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n" - + "GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n" - + "GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n" - + "CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n" - + "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n" - + "GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n" - + "AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n" - + "GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n" - + "CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n" - + "GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n" - + "TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n" - + "CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n" - + "ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n" - + "CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n" - + "AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n" - + "CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n" - + "CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n" - + "ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n" - + "GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n" - + "GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n" - + "GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n" - + "TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n" - + "CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n" - + "GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n" - + "CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n" - + "GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n" - + "CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n" - + "CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n" - + "CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n" - + "ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n" - + "CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n" - + "GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n" - + "AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n" - + "ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n" - + "TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n" - + "GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n" - + "GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n" - + "TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n" - + "AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n" - + "ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n" - + "GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n" - + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n" - + "TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n" - + "CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n" - + "GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n" - + "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n" - + "GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n" - + "TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n" - + "ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n" - + "TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n" - + "GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n" - + "TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n" - + "GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n" - + "GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n" - + "ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n" - + "GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n" - + "GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n" - + "CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n" - + "ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n" - + "AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n" - + "TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n" - + "CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n" - + "TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n" - + "CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n" - + "GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n" - + "GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n" - + "CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n" - + "TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n" - + "CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n" - + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n" - + "AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n" - + "AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n" - + "GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n" - + "TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n" - + "AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n" - + "AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n" - + "CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n" - + "TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n" - + "GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n" - + "CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n" - + "CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n" - + "GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n" - + "AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n" - + "GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n" - + "TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n" - + "CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n" - + "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n" - + "CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n" - + "AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n" - + "ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n" - + "ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n" - + "AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n" - + "GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n" - + "GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n" - + "CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n" - + "GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n" - + "CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n" - + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n" - + "GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n" - + "GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n" - + "CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n" - + "AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n" - + "CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n" - + "CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n" - + "GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n" - + "GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n" - + "TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n" - + "ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n" - + "CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n" - + "ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n" - + "GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n" - + "TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n" - + "GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n" - + "GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n" - + "GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n" - + "GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n" - + "TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n" - + "TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n" - + "TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n" - + "GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n" - + "CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n" - + "TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n" - + ">TWO IUB ambiguity codes\n" - + "cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n" - + "tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n" - + "NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n" - + "cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n" - + "gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n" - + "HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n" - + "tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n" - + "tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n" - + "acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n" - + "tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n" - + "gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n" - + "accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n" - + "RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n" - + "tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n" - + "cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n" - + "ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n" - + "actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n" - + "YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n" - + "KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n" - + "aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n" - + "aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n" - + "gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n" - + "tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n" - + "tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n" - + "ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n" - + "ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n" - + "BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n" - + "aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n" - + "tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n" - + "cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n" - + "aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n" - + "tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n" - + "aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n" - + "gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n" - + "ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n" - + "taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n" - + "ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n" - + "gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n" - + "gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n" - + "tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n" - + "tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n" - + "taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n" - + "cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n" - + "aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n" - + "cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n" - + "ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n" - + "attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n" - + "ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n" - + "attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n" - + "tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n" - + "aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n" - + "cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n" - + "gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n" - + "attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n" - + "BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n" - + "DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n" - + "tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n" - + "tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n" - + "tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n" - + "taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n" - + "aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n" - + "DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n" - + "VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n" - + "agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n" - + "gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n" - + "tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n" - + "catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n" - + "tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n" - + "aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n" - + "aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n" - + "acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n" - + "tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n" - + "aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n" - + "acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n" - + "RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n" - + "RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n" - + "tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n" - + "gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n" - + "YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n" - + "ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n" - + "ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n" - + "gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n" - + "KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n" - + "aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n" - + "gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n" - + "taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n" - + "VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n" - + "NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n" - + "MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n" - + "cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n" - + "ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n" - + "tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n" - + "aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n" - + "actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n" - + "tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n" - + "gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n" - + "BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n" - + "aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n" - + "aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n" - + "YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n" - + "aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n" - + "cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n" - + "tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n" - + "tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n" - + "MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n" - + "taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n" - + "tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n" - + "RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n" - + "agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n" - + "NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n" - + "gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n" - + "aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n" - + "ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n" - + "cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n" - + "tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n" - + "RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n" - + "tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n" - + "gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n" - + "tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n" - + "ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n" - + "tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n" - + "ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n" - + "BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n" - + "gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n" - + "acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n" - + "gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n" - + "taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n" - + "acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n" - + "tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n" - + "catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n" - + "tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n" - + "atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n" - + "ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n" - + "ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n" - + "cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n" - + "SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n" - + "VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n" - + "BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n" - + "NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n" - + "tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n" - + "ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n" - + "cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n" - + "VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n" - + "atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n" - + "aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n" - + "tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n" - + "RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n" - + "gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n" - + "tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n" - + "attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n" - + "atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n" - + "cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n" - + "NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n" - + "ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n" - + "cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n" - + "aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n" - + "agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n" - + "tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n" - + "ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n" - + "ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n" - + "tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n" - + "taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n" - + "tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n" - + "YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n" - + "ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n" - + "tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n" - + "ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n" - + "attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n" - + "atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n" - + "YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n" - + "gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n" - + "MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n" - + "tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n" - + "ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n" - + "aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n" - + "BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n" - + "tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n" - + "StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n" - + "cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n" - + "atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n" - + "atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n" - + "ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n" - + "gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n" - + "tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n" - + "BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n" - + "agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n" - + "HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n" - + "tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n" - + "aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n" - + "catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n" - + "aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n" - + "tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n" - + "cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n" - + "DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n" - + "gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n" - + "tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n" - + "atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n" - + "KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n" - + "tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n" - + "tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n" - + "taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n" - + "NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n" - + "HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n" - + "ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n" - + "tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n" - + "cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n" - + "ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n" - + "HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n" - + "gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n" - + "BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n" - + "gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n" - + "KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n" - + "cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n" - + "tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n" - + "taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n" - + "gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n" - + "aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n" - + "acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n" - + "RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n" - + "attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n" - + "KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n" - + "KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n" - + "gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n" - + "aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n" - + "aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n" - + "ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n" - + "tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n" - + "aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n" - + "tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n" - + "MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n" - + "cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n" - + "caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n" - + "ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n" - + "acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n" - + "tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n" - + "gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n" - + "atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n" - + "aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n" - + "NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n" - + "taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n" - + "aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n" - + "ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n" - + "DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n" - + "tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n" - + "aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n" - + "ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n" - + "ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n" - + "RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n" - + "aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n" - + "aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n" - + "aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n" - + "tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n" - + "atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n" - + "BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n" - + "gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n" - + "cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n" - + "RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n" - + "taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n" - + "aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n" - + "gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n" - + "gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n" - + "aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n" - + "gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n" - + "ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n" - + "MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n" - + "SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n" - + "aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n" - + "VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n" - + "HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n" - + "agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n" - + "gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n" - + "agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n" - + "tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n" - + "gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n" - + "VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n" - + "tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n" - + "MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n" - + "actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n" - + "WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n" - + "tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n" - + "KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n" - + "BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n" - + "attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n" - + "VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n" - + "aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n" - + "tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n" - + "tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n" - + "tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n" - + "VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n" - + "tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n" - + "ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n" - + "tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n" - + "WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n" - + "tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n" - + "tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n" - + "MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n" - + "tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n" - + "atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n" - + "aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n" - + "aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n" - + ">THREE Homo sapiens frequency\n" - + "aagtccgatgagtttcaatcatgactgcgaggagatccatgcggtgtacctaaacctaca\n" - + "tcgtatgtatttgctgacgttcattcttgatacataaagatccgatatcggtccactttg\n" - + "tttaccaaaagccctaccttcgtaacgatggaaatgtgaatgagagtgaaatacacgatg\n" - + "gggatattgccggtgagtacaagttagaccacacattagaactgacctatattcgtcatc\n" - + "atagagatggagtatgaattgattctgcgaagtacactggctttacgagtatctagacgc\n" - + "cgcggtatatctcccgtcaatactatgaaggtatatatatagaggctgaaaattcatgtt\n" - + "caatcctctttctaagagtgagtgggagccccttctgttgtcggagtaaaaaggcattat\n" - + "tcctcaaattgtcagaagcaaagtatacgtgatgtttgcttagaacaaaagagttacctt\n" - + "agggtaggtaaatctcgattcaccgagagaagtgattttggcggtgtgcgattaattctt\n" - + "ttgatgacagatctcattattttatatagctccctctttgtatttagagtttgcgtaggt\n" - + "aacctggcaaaaccatatcccggggggagagtgcgctgaacattttatacgatgtgatta\n" - + "ctcaaaggataaggttcgaggcctctatactcatggaactatcttataattataatggat\n" - + "cgtggctcattccacctatccaaacttctttgtgatctgatgctacgagtgtgaacaaac\n" - + "gtacatcttctaaggaatttgggacgtttcatagctcgcatttcattcctgaaaacttaa\n" - + "atatttttaaaaattgattctactgcgaggaactaaggtgtagacaagcccttagtaacc\n" - + "ggtggatgtcgcttcagttttatagcaaacattattcaatttcagtcttgactgaaatta\n" - + "gtttgttagtgttagaggtccatatgtcacatgcatatggtctagatgccattgtacagt\n" - + "aataccttagattagtattagcggcatgcgtacttggatttcacttgtaagaatgagctt\n" - + "aggacggtcgcctgtagggctgcaaataggaatacttacaatttttgatgacttgttagc\n" - + "atatcgctatcacccataaaaaacctgatacttgatgagcgggtgattgagactatgtac\n" - + "tgatataattcaatagctccaatagatgaaacagctatgcgcctatttatgtcaaataat\n" - + "cgatgtgatacaagcttagagctgaacgagcgcgagtggaattagcggtgatctctatcc\n" - + "taaaaagccacgaaatcgatcccagaagctaatacccgaggtgtcaagcttgagttcagt\n" - + "taaatttgcatctcatgccccacgaagaatgggtagagagtttgaaggtgcttctggatt\n" - + "ttcctaagtacgtggtaaaaatttgatgtaaatgaacacctcctaatggttgtgttaacc\n" - + "acaaacccctgggtgaatctgattagccaacccagtgatctgatttcagttgtcaaatct\n" - + "cttttttataactaccttttgtttccataatttaaccggatctcataatgaacaaacggg\n" - + "tagaataatggtagcacatagcgagcttgtctattcagaaatatggcctactcagaatgt\n" - + "attctccaaatcagtgttatgcgaaacgtaattttacgtgtaataatgatgatttcttat\n" - + "cggttccttgtactacaatactcttgcccaacaaatactaagcataacagcaaaattcga\n" - + "atccccctccttttaataaatggtttttcaatatagccgattcgtattcgttagtctttc\n" - + "accaactattaacctggcatctaattaataaaatcaccaaaggactctataatatgacag\n" - + "tcacttcggcctcttttaagacagttgattattgcaggtccgcaattgatggtgacatgc\n" - + "acaattagttagaatccgactatggagacaattaacaattgtagtgcccatttggtccag\n" - + "ttgacttcaaccacgagttataaaggtattttaatttatagtcgatagtaccaacaacaa\n" - + "gcacaatcataattatgttagaaaacccagggggtaatgctctaaatccagctttaaggc\n" - + "cagagtgcactatgaaatcgccattgatcattgtgtcattcgctgaacttggtgtctagg\n" - + "aggtgccgagtgagaatatcagataccttatgaagcaacgattatatctggactagatca\n" - + "tgatgatcggaataaaacattgaaataagtccttatcaaggagcataaacattttattta\n" - + "atttatacttcgtaaataaattcagaattttttttcaagacattaatctgagtaaatgac\n" - + "ggctagaaagggttcctactcgaatcgtagcctacgcatgtgggcagtaacctggcttgc\n" - + "gtttttactgaaacaaaggttcaccggaaagaaggctgccacttttagcttcttgacgat\n" - + "ctttagcgtcatatttttagattagtcgaaaaacggaaaacaaacttaacgaagctggtt\n" - + "gcacggggtaccgagaaaccaaagagcaggacaactccttgatcgggaagaactgaaata\n" - + "gacagctgtcattttcattggtcaacttatcaatataacgaccaccgtagtgacgcttgc\n" - + "atgaaaatactgaggatgtaaactatagccagtcaggcccgcgtgttgactaattgatga\n" - + "agcaaacaaaatagccggtattcgttaaaaggaacgggttgccagctacagatatactct\n" - + "aggtatatcccaaacaagagacgtcctttggctgttgtaatcggtcataatacttgtcac\n" - + "ataaacaagatcgctgaattaaacattaaacagttagtgatacacaatcgtggttggggc\n" - + "tgggatgtgcaataaaaagtcatctatcgtctatcacagagcgacgtaaatttagacaaa\n" - + "cattattatttcttgacaatggaatcgataagcgttcctctaacttggtatatatatctc\n" - + "gaccccgggattccagccattcttgtatgaagatttaaccatttaactatgcatagttga\n" - + "atggtaaggaaaatgatattgactgcaacagattttggatgcaaaaatatttgtgaatta\n" - + "ttggttatatactggttgtatagcacaatcattaggtcctagaaggcatactcaacctca\n" - + "gcgagagagctagcatgcataattgtaccgcccatattaatattcctgaaatgatttctt\n" - + "acattacgcccaatttcagtcatcgaacacccccatcaatttacccgatagagaacgtga\n" - + "tcatacgcaataccctatgcgaacgtccactctatagcgtctgtatacaatgattattcg\n" - + "ttccatttacaacgttaagtaatttaaacttacataaggacaaggaaatccgcgaacctc\n" - + "ctggaatgtatgagttatttatgcagttaacttcgtctcgaccggaactaaaggcgtcgt\n" - + "acgaatgaaaggccacttttagaagagacctttgtatccattgtggagaatatcataaat\n" - + "tcaagatggggtgtcatgctattcggtcctaaacattcttaatggctgttctattgttag\n" - + "tctgatttaaaatggaaccatagcacgaatagttagatagggctcatacccctgtaacga\n" - + "tctacaaatccttccccgggtgtgtgcgttagcgacggaaagttttacggtttgtgatca\n" - + "aagaacactcacacgtcagattattacactgatacgaattatttcagtcgacagtaattg\n" - + "aatagaaacttattaacgccagcacctgacacggtaagtaaggcaggtctgaactgtttg\n" - + "actgtaaaaaaatggtaatatttttaaaaatcttgatttctatatcaaatgatgtgtagt\n" - + "tttttctctgttattaaaatcccagtgcgcgaaatttagatcgttacgactcacgtacaa\n" - + "gatcacacatcacacgcgttagcgaaagcggaatggctaatacagccctacgcaacgtag\n" - + "tgggatcaacatatggacgaatttatgctcaatgagccaacctcccccgcattgcggttc\n" - + "attttaaggcctgggtaacatctatcgtttagataatcaaaggaatccgactatgcaatt\n" - + "gtctgacttcatccgctctcaagtccaatgcaggcgctacgtgtttctttaatcaatacc\n" - + "atattgaaatcgtaatacgataattgttgctattgactacaggttatgaaaaaacttact\n" - + "ttgcgggtacatgcatatttttgtaccacattattacgcgatatctctcagtgtactcta\n" - + "aattaaaccctcttcgaacattttagttcctattcgtaaacacgtgctacgcggcaattt\n" - + "gccggtcgtagaatggacaactccagttcaactgcatgtaactcatagctcgcgttagta\n" - + "taaattgactagtagccatgggacaaagtaactagtcagcggaaaagatccctttaaaga\n" - + "tatatgcaggttgcaagcataaagctcattgctcgaggtgcaccgtggtattccaaaagc\n" - + "gtctctatcgtatcttctaattttgggccgtgagaatcgaaactactctgatttgctgca\n" - + "cacgttaggtaatatcgcccattttcccgtataagctccgtacttatacgaactacacga\n" - + "ccttttaagcattagccgctcatatcgtgattcgtgtacagatgagtctattaaaattac\n" - + "agacatactccatatctcgctccttgaactttgaataatgcgctaacttgtactatgaat\n" - + "aggcagaacccaactttcccgtttgcgtcaagcggggaaacgatacatgttgtcagattt\n" - + "atgattatctagttttagatcacgtttaccgataatcggctgtggtctgagcagtcctac\n" - + "actgagtatttacttcagcttcatatcggtccgaaaaaaggttgtgaccgaatgtcaaaa\n" - + "tacggagtacgatgggcatcttttttcgagtcgcggttgcagggcagcaaaaggcttaaa\n" - + "ccatttttacgatttttactatagcggtcatgaagtgcgaaactgcttgcaaattttcta\n" - + "cacacattgtggctcttgtccttgaagcttatggcgaaaatttgaaacatagtataccag\n" - + "ggaaagcgcgaattatttggtgactaatagtccgtgggtttgagccatatacctaacgcc\n" - + "ataaactacgtggtgctttagatgcaatctaaacagaacagaaagcgtagcgctcatcag\n" - + "cacagactaactttttcagtttgagtcgccggagggacttcgagacaagaacgcgtcaag\n" - + "tcgcttgcgcggcacggattcgattgggcggctcaatcttgcctaatttctactattgtc\n" - + "agctgtacgactgtactaagtgtatagccccaaataaaagaagtatcgatgcgtctttat\n" - + "gaccaaaggtcttataattgaagcgcacttccgttcatcaaattaaatcctggcttaccc\n" - + "gattctccggaagtctgacctagagattgacgacggccgcgtattattgagacctcttca\n" - + "ggattaatcaataacgaagtagttgatctgtttggcgacgtaccttaagccgactccgct\n" - + "acacgagtttctactaaaccaatgtagccttatgcttagatgaataccgtcctaattaga\n" - + "tattccggcataacagcagtaaattatctgttcaatggacgaacattgaattgttagtat\n" - + "tctacacaagtcaggcctcgtaaatattaggtaaggccgtgggataacctacgtgatatg\n" - + "cttgagcttgcgttgcaagctctcgttaatcattaatttaggtgcgtgagggttaaacac\n" - + "cagcatattctatatgctagacgtcttccttaaaggatcgtagtattataattaataata\n" - + "agaaatatggttgacgtctagtcagcgggcatacgctgctctatatactggcattattca\n" - + "aaacttgacggtaaaaaaacgaattttaaggcgctcacgtcgaatgagccgaactcatgg\n" - + "gaaccaaaatgtcacagaaaacacctctttattgccaagcatgcaataaaaaaaatgtta\n" - + "atagtacgtttacgacattttattttataataaagagaaactattacacctattgatatg\n" - + "ataggacgtaaattaacgagtagcctgcatagaggcaaatgaggtttctacatggtatag\n" - + "acctgatgctgaaacatcgatgagttttggtcccctcgctcgttgaaatctagtcattta\n" - + "ctactgtctttcgagctattataccacttcactatgtggtgtttctttgctatgtatggg\n" - + "gctagtcaaacatgatgactatagctacaactcagagagcgggcgtgttaagagtatctc\n" - + "atgctagaactgcacgacgaacttgatacaaagtaacaacatttacgattccacaaggtg\n" - + "actttgaagaaacatagtttaattctctgcttcgatcatttctataaaccggtaccatcg\n" - + "cagcggatagatgcataacatttctactactccaggcatcttaaaacacacgtagtactt\n" - + "cactagattaagacacgataagtgtataacttggcagtgggaagcaaggagattggcgaa\n" - + "ctcctggcatctgttacgttttgttcaggctcggttgttgataatgtccgactcctgcca\n" - + "tattgaagactcgctcgagggagatcgggattcgttgattataagtacacgtgttccgta\n" - + "atactatgaggcagtgattcaaaatggcacttctgacttacatgactaggtattattacc\n" - + "acggaagcgttaaaggcacactcttatggacttaagattgcaagtgccttcttctagcct\n" - + "gaattcgcgggttcaacacaaactctctttagacatccgttgcctaaaggctgagacgta\n" - + "ggggcaaccctttaactatgtactaaaaaactagttggtaatttaacaacgtgtccaatc\n" - + "aagacgatgcaccaacgcggtgcgaaaatcgggttaagcaaacacaaataggaattgtga\n" - + "taaaccccaccttgagaggtcgcaagaccaacctcgggaacaacggctctaagagaataa\n" - + "cctaaatccggatgagtagactgtgtaactctctaaagggaagtgaaaaaaagctaagca\n" - + "tacatttaggtctcctgcattgcattcaattgaatcgtttgtattatgagctgtacagta\n" - + "gctatatcagctatagttatcccagaggaacaggtaaactagctctgagcgtgaaatccg\n" - + "gatattagaacccctagatgggattgattctagctaatacaggcttatctggttttacag\n" - + "ttatctagatgattggtaaggtgaaacgcttggtgccttccaccacttaaacaaaagtat\n" - + "tgcccgggaagctattttctaggtattataaagtcgagcattaatatcaatttgacagta\n" - + "aaggtctttcaccagcttcatatgccatagggcccatactcgatttaaattgaacggttt\n" - + "aacgagtattggaactctcacttataactgagtagctatacgaaaaatctggtccatttc\n" - + "cagaaatttattatcgatttgctgcttagtacccaggaagtgataacccttgaaggcaca\n" - + "acactgtaataagttttcctgtcacatctgtaatattcggtcactacgcattcacgacta\n" - + "aagataattactatactaattaaaagttcaatgttagggccgaatcatagtagaaattct\n" - + "cgtctagcctaatcggacttacctatgggctgtgaggatttatcagtatgtggacaaaaa\n" - + "tgctagagataggtatagttaaagtcaccatggtacatctatgtgaggaagtttgtagtt\n" - + "cgcttctttagtccgggcgtttgggatgacaactactatacgtagagccgtactcaggat\n" - + "tagatagtgtgaaagagtcaaataaaagggttaatattaatttaacgttgcaaatgtgtt\n" - + "taggccaaacattaaccgttgtagggatattctaatacaggccttcaccgaaccctaatg\n" - + "ataatctgtcttaataacattaaatgattgtctccgctacgagctcttagggcctcattt\n" - + "taaatgactaatgtccaaagaagagactttcccaatttcaatctgtcacgtatagacggc\n" - + "accttagtgagtcatatcattaagatagaagattatcaggagggaagtttctattatcaa\n" - + "ccgttacgcaaccataaacttttaaatctcataatggcattgagatcaagagctttcatg\n" - + "atggtaaagttcgtatgtgatgctggggagctagatatcggtataccacttcggttgtgg\n" - + "taagcccgagtgggccgttagtaatattaatagacgattatccgacaatgcattcgctga\n" - + "aataatcttacttaggagaaattaatgctatgagccaaaactatttatgtctgtcacatt\n" - + "attgactaaagtatctatcgacaaaactgatgtccataagttgtagcagatagtcggtgt\n" - + "atggtgtcaccaatgaaaacctcgagcgaaaaatgaattatagttatccaatttgagtaa\n" - + "attgcctattatacagataggcttgtttagtcagataaggttccgcttgaggtgctctaa\n" - + "cttagcgagagttagaaagcctagtgagaggcattttggtgccaaactccggctcgcatg\n" - + "agtaggccagagagtcactttctttcgtcgaagaagttggtgaacagccttttgattagt\n" - + "tgtttgtcttgtggctatgtgctactatataagttagaacgcaaactaatctaatcagca\n" - + "aagtaaaataggaccttgaacgagacggggtacgccgttgaggctcgagatagtagataa\n" - + "actagaggaatgtagataaaacattagctagggggtttagttactggattacataggaag\n" - + "tgcaccatcacggtgtgggggttcgtacgtaaagtcgcatcaatattgtcagtggactta\n" - + "acaagttcgtgcataatgaaatcctatacggactttgcatatctctaccgactcatctgg\n" - + "tcgtctatgcgggtaattgtattgctccaagtggatgactattttggcgtcccagcacat\n" - + "agtaaatgtaaatccttataatagcataagcaattattagactgcgtgaagtcttagtag\n" - + "ttctcaagctttacgttgtatgtaaataactcacgtaatcagccgtccccaaatcaccat\n" - + "tgaggtcattgaatgtacggagcactattatcaatgcggtatgcgattttctgagcgatt\n" - + "attgttaaagacttagcgttgagccccggaacacttgattacagattctttaaggagtta\n" - + "tccaaatatcattttaaataatagtagtatcgtgctttggacaataaaaaaagacccgtt\n" - + "ctcttatgttgttttgcgacgtacttctctgatatatacttcaactatgaagattctatt\n" - + "catcgataacccaggtatatttatatgcccgttcactgcgcagggcaaattatctacgga\n" - + "caataatgacgtagttggacccggtaagaactaacgcttaatatgattaaggatgtatgc\n" - + "cagtattatcttattatgtcagagtagaagtttctctgagattttccgtcgttgtggtac\n" - + "accggatttggctctctttttagaactgagaactcggagtgtgtagtcttgtttccttca\n" - + "atttatcaatatgcttttataccgccctcatcaactataacaggacgacaagttccgtct\n" - + "tgctccatcatatactaccgatacaccaatcgtatcaagtttagtatacttgctttctct\n" - + "cttctacagcttactcgcttgtccgagaagcggttggtgctcataaagttagtagtaaat\n" - + "gtacaactagtagccagtccttacctgtttttacgactactacggacaccatgagataca\n" - + "gaagttagtgctacaattataccattacatgctcaatatcgttgtcggccataagatcga\n" - + "agagtgcatcacgcgtgtgaatacgtaaaatctaccatcccgtcaatgcacaaaaacaca\n" - + "ctccccttgttgactaacatcttttacaagaggctaaatcattgtccaggatcgaatacc\n" - + "ttgtgtacaatcgtcacccatcggaagaataccacttttccgatgtagtatgatttacaa\n" - + "aaaacatctatgtgagtaggccaattgtagtagaatatattcatttgaccgtcattagcc\n" - + "ttcttcttaggttgtgtacggatagtaggtacataaaccgtcgtgtggcatacgctgcga\n" - + "tttcatacagctgccaacaccttttttaccaggctagagtcagaaaagttggagccatgt\n" - + "taaatagttaccatcataaaccactgttgtctactagtctgatcagctttcatgcctgtg\n" - + "caagcaatatggattctcacgtaatggtaacaactgttgcgttacttaggctggttaatt\n" - + "tgtcagagtaataaatacatgtcttgttgtgtttcctaatcctcggaaagtacacaagcc\n" - + "taggaataggaaaagtaaagctcttttattctgatagtgactaactcaggatctaaatac\n" - + "gcgattatactaaccttcaccaaagctcaaaaatcatctgctggtgaccagttatagaca\n" - + "gggtaattcaatatttaatgtctcccttaacatttcaccagcatggattgaagatagtat\n" - + "aaagttttacatggcagtcattgtgtcacggttctatacaaattctgatagttagacggt\n" - + "atttgaaatgtgcttctagcatggtatcttacacaactgaatgaacgactggagccgttc\n" - + "gtatactatttgcgagcctcgagaccccgtttcctaatgttaacgaatatagtataatat\n" - + "aaattgtgatatgaataacacaagtaactacagtttggacaattaattgttctaaactaa\n" - + "aaatcattcacttcagatggcatagagttatggctactacacatataaagcggtatgtga\n" - + "aacacccgttttagccggaaaccctctactgctcgggacaatgaatgatttccaaaatat\n" - + "ggatgtgcagaattgttagtgtgactcaggtccaaatagacactttagtttcgtcaagtc\n" - + "gttgcaaagtttaaaaccatcgcagcattctttatttggtctacattgagaaatgaaaaa\n" - + "acgtgacagaaagtctagaagaactgtgaataatgtctattactgattaactagtaagac\n" - + "attagtgcatctggtccactgaagcacccgcttggcgttaggcaatctctgtgaactgtc\n" - + "gtggctgttccggtaatgtacgaaagcaagcctataggttgatcgagtcgcttcattaag\n" - + "gtcaatttcacaatatccgatcacattgtgctaggttcgtcctttaccttgcttagtgct\n" - + "gcatgtacggggtgtcatgacttgttatcggcagactctttatcccaagaatggataata\n" - + "tgtacatggaaagtgtccataattaagtcccttcactgtaaagaatgactgccacgtgat\n" - + "ccatgaggtctacagaaaccgacttacttgctttttgatcaacttaattatggattcata\n" - + "aagttcagatatcggtacaattggtgtacaatatgaaattaatgaggaaacatggaaatc\n" - + "tgaatgacagtgatagaaaagatccccatttgcccggtcagttcatgttacaccactcat\n" - + "tagtactgtaagtgtttcgtcagcattgagatccacgatcatgtgtttatgccttcgaaa\n" - + "ctggatgtacgacgatcgagacgaagaggtatatataacctaaatactaggtacgttgtt\n" - + "agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n" - + "cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n" - + "tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n" - + "tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n" - + "gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n" - + "tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n" - + "tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n" - + "atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n" - + "cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n" - + "ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n" - + "ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n" - + "atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n" - + "gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n" - + "tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n" - + "gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n" - + "atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n" - + "tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n" - + "ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n" - + "tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n" - + "aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n" - + "gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n" - + "ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n" - + "agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n" - + "agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n" - + "acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n" - + "cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n" - + "cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n" - + "cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n" - + "aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n" - + "tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n" - + "atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n" - + "cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n" - + "tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n" - + "catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n" - + "tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n" - + "caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n" - + "tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n" - + "aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n" - + "aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n" - + "ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n" - + "gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n" - + "ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n" - + "cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n" - + "gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n" - + "ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n" - + "cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n" - + "taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n" - + "gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n" - + "taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n" - + "ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n" - + "aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n" - + "gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n" - + "acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n" - + "ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n" - + "tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n" - + "tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n" - + "tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n" - + "ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n" - + "aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n" - + "tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n" - + "gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n" - + "gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n" - + "cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n" - + "actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n" - + "tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n" - + "ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n" - + "ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n" - + "agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n" - + "gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n" - + "tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n" - + "atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n" - + "cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n" - + "tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n" - + "gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n" - + "gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n" - + "aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n" - + "gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n" - + "cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n" - + "taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n" - + "tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n" - + "ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n" - + "aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n" - + "gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n" - + "aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n" - + "tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n" - + "tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n" - + "aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n" - + "ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n" - + "ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n" - + "caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n" - + "gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n" - + "cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n" - + "ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n" - + "tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n" - + "atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n" - + "ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n" - + "acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n" - + "taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n" - + "ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n" - + "aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n" - + "cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n" - + "tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n" - + "gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n" - + "aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n" - + "cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n" - + "cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n" - + "gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n" - + "cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n" - + "gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n" - + "agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n" - + "aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n" - + "aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n" - + "cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n" - + "agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n" - + "cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n" - + "agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n" - + "gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n" - + "aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n" - + "agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n" - + "cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n" - + "agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n" - + "ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n" - + "tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n" - + "gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n" - + "gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n" - + "ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n" - + "gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n" - + "atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n" - + "tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n" - + "ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n" - + "tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n" - + "cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n" - + "ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n" - + "aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n" - + "gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n" - + "ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n" - + "atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n" - + "aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n" - + "gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n" - + "atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n" - + "aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n" - + "tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n" - + "ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n" - + "gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n" - + "cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n" - + "ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n" - + "ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n" - + "ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n" - + "cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n" - + "tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n" - + "tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n" - + "cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n" - + "gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n" - + "ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n" - + "ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n" - + "tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n" - + "agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n" - + "ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n" - + "cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n" - + "agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n" - + "tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n" - + "gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n" - + "ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n" - + "ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n" - + "agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n" - + "attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n" - + "ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n" - + "agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n" - + "aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n" - + "gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n" - + "gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n" - + "ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n" - + "gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n" - + "ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n" - + "taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n" - + "aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n" - + "tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n" - + "ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n" - + "agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n" - + "ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n" - + "agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n" - + "gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n" - + "tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n" - + "gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n" - + "cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n" - + "ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n" - + "cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n" - + "gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n" - + "gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n" - + "tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n" - + "cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n" - + "aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n" - + "ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n" - + "gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n" - + "aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n" - + "gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n" - + "aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n" - + "gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n" - + "agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n" - + "caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n" - + "gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n" - + "aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n" - + "tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n" - + "tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n" - + "ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n" - + "ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n" - + "gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n" - + "ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n" - + "aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n" - + "tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n" - + "acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n" - + "atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n" - + "gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n" - + "tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n" - + "cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n" - + "gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n" - + "acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n" - + "acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n" - + "attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n" - + "tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n" - + "cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n" - + "aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n" - + "ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n" - + "tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n" - + "gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n" - + "gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n" - + "acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n" - + "gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n" - + "gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n" - + "ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n" - + "taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n" - + "agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n" - + "gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n" - + "ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n" - + "accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n" - + "tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n" - + "taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n" - + "catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n" - + "tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n" - + "ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n" - + "aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n" - + "atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n" - + "tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n" - + "ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n" - + "tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n" - + "aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n" - + "agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n" - + "acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n" - + "aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n" - + "ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n" - + "gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n" - + "taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n" - + "taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n" - + "tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n" - + "gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n" - + "ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n" - + "atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n" - + "tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n" - + "cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n" - + "aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n" - + "taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n" - + "caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n" - + "ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n" - + "tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n" - + "tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n" - + "gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n" - + "gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n" - + "gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n" - + "ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n" - + "tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n" - + "taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n" - + "gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n" - + "ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n" - + "gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n" - + "tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n" - + "ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n" - + "tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n" - + "cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n" - + "ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n" - + "caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n" - + "cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n" - + "gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n" - + "cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n" - + "taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n" - + "tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n" - + "taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n" - + "tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n" - + "tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n" - + "tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n" - + "ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n" - + "aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n" - + "atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n" - + "actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n" - + "gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n" - + "ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n" - + "gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n" - + "tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n" - + "aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n" - + "atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n" - + "catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc"; + private static final String fastaStr = + ">ONE Homo sapiens alu\n" + + "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGA\n" + + "TCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACT\n" + + "AAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAG\n" + + "GCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCG\n" + + "CCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGT\n" + + "GGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCA\n" + + "GGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAA\n" + + "TTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAG\n" + + "AATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCA\n" + + "GCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGT\n" + + "AATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACC\n" + + "AGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTG\n" + + "GTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACC\n" + + "CGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAG\n" + + "AGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTT\n" + + "TGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACA\n" + + "TGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCT\n" + + "GTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGG\n" + + "TTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGT\n" + + "CTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG\n" + + "CGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCG\n" + + "TCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTA\n" + + "CTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCG\n" + + "AGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCG\n" + + "GGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACC\n" + + "TGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAA\n" + + "TACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGA\n" + + "GGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACT\n" + + "GCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTC\n" + + "ACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGT\n" + + "TCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGC\n" + + "CGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCG\n" + + "CTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTG\n" + + "GGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCC\n" + + "CAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCT\n" + + "GGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGC\n" + + "GCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGA\n" + + "GGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGA\n" + + "GACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGA\n" + + "GGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTG\n" + + "AAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAAT\n" + + "CCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCA\n" + + "GTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAA\n" + + "AAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGC\n" + + "GGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCT\n" + + "ACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGG\n" + + "GAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATC\n" + + "GCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGC\n" + + "GGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGG\n" + + "TCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAA\n" + + "AAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAG\n" + + "GAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACT\n" + + "CCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCC\n" + + "TGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAG\n" + + "ACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGC\n" + + "GTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGA\n" + + "ACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGA\n" + + "CAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCA\n" + + "CTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCA\n" + + "ACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCG\n" + + "CCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG\n" + + "AGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTC\n" + + "CGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCG\n" + + "AGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACC\n" + + "CCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAG\n" + + "CTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAG\n" + + "CCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGG\n" + + "CCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATC\n" + + "ACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAA\n" + + "AAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGC\n" + + "TGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCC\n" + + "ACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGG\n" + + "CTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGG\n" + + "AGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATT\n" + + "AGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAA\n" + + "TCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGC\n" + + "CTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAA\n" + + "TCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAG\n" + + "CCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGT\n" + + "GGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCG\n" + + "GGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAG\n" + + "CGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTG\n" + + "GGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATG\n" + + "GTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGT\n" + + "AATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTT\n" + + "GCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCT\n" + + "CAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCG\n" + + "GGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTC\n" + + "TCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACT\n" + + "CGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAG\n" + + "ATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGG\n" + + "CGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTG\n" + + "AGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATA\n" + + "CAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGG\n" + + "CAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGC\n" + + "ACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCAC\n" + + "GCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTC\n" + + "GAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCG\n" + + "GGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCT\n" + + "TGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGG\n" + + "CGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCA\n" + + "GCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGG\n" + + "CCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGC\n" + + "GCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGG\n" + + "CGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGA\n" + + "CTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGG\n" + + "CCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAA\n" + + "ACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCC\n" + + "CAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGT\n" + + "GAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAA\n" + + "AGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGG\n" + + "ATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTAC\n" + + "TAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGA\n" + + "GGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGC\n" + + "GCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGG\n" + + "TGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTC\n" + + "AGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAA\n" + + "ATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGA\n" + + "GAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\n" + + "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTG\n" + + "TAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGAC\n" + + "CAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGT\n" + + "GGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAAC\n" + + "CCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACA\n" + + "GAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACT\n" + + "TTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAAC\n" + + "ATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCC\n" + + "TGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAG\n" + + "GTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCG\n" + + "TCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAG\n" + + "GCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCC\n" + + "GTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCT\n" + + "ACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCC\n" + + "GAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCC\n" + + "GGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCAC\n" + + "CTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAA\n" + + "ATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTG\n" + + "AGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCAC\n" + + "TGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCT\n" + + "CACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAG\n" + + "TTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAG\n" + + "CCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATC\n" + + "GCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCT\n" + + "GGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATC\n" + + "CCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCC\n" + + "TGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGG\n" + + "CGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\n" + + "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCG\n" + + "AGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGG\n" + + "AGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGT\n" + + "GAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAA\n" + + "TCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGC\n" + + "AGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCA\n" + + "AAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGG\n" + + "CGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTC\n" + + "TACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCG\n" + + "GGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGAT\n" + + "CGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCG\n" + + "CGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAG\n" + + "GTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACA\n" + + "AAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCA\n" + + "GGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCAC\n" + + "TCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGC\n" + + "CTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGA\n" + + "GACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGG\n" + + "CGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTG\n" + + "AACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCG\n" + + "ACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGC\n" + + "ACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCC\n" + + "AACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGC\n" + + "GCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCG\n" + + "GAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACT\n" + + "CCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCC\n" + + "GAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAAC\n" + + "CCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\n" + + "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGA\n" + + "GCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAG\n" + + "GCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGAT\n" + + "CACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTA\n" + + "AAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGG\n" + + "CTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGC\n" + + "CACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTG\n" + + "GCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAG\n" + + "GAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAAT\n" + + "TAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGA\n" + + "ATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAG\n" + + "CCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTA\n" + + "ATCCCAGCACTTTGGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCA\n" + + "GCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGG\n" + + "TGGCGCGCGCCTGTAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCC\n" + + "GGGAGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGA\n" + + "GCGAGACTCCGTCTCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTT\n" + + "GGGAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACAT\n" + + "GGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTG\n" + + "TAATCCCAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGT\n" + + "TGCAGTGAGCCGAGATCGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTC\n" + + "TCAAAAAGGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGGC\n" + + "GGGCGGATCACCTGAGGTCAGGAGTTCGAGACCAGCCTGGCCAACATGGTGAAACCCCGT\n" + + "CTCTACTAAAAATACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCAGCTAC\n" + + "TCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCCGA\n" + + ">TWO IUB ambiguity codes\n" + + "cttBtatcatatgctaKggNcataaaSatgtaaaDcDRtBggDtctttataattcBgtcg\n" + + "tactDtDagcctatttSVHtHttKtgtHMaSattgWaHKHttttagacatWatgtRgaaa\n" + + "NtactMcSMtYtcMgRtacttctWBacgaaatatagScDtttgaagacacatagtVgYgt\n" + + "cattHWtMMWcStgttaggKtSgaYaaccWStcgBttgcgaMttBYatcWtgacaYcaga\n" + + "gtaBDtRacttttcWatMttDBcatWtatcttactaBgaYtcttgttttttttYaaScYa\n" + + "HgtgttNtSatcMtcVaaaStccRcctDaataataStcYtRDSaMtDttgttSagtRRca\n" + + "tttHatSttMtWgtcgtatSSagactYaaattcaMtWatttaSgYttaRgKaRtccactt\n" + + "tattRggaMcDaWaWagttttgacatgttctacaaaRaatataataaMttcgDacgaSSt\n" + + "acaStYRctVaNMtMgtaggcKatcttttattaaaaagVWaHKYagtttttatttaacct\n" + + "tacgtVtcVaattVMBcttaMtttaStgacttagattWWacVtgWYagWVRctDattBYt\n" + + "gtttaagaagattattgacVatMaacattVctgtBSgaVtgWWggaKHaatKWcBScSWa\n" + + "accRVacacaaactaccScattRatatKVtactatatttHttaagtttSKtRtacaaagt\n" + + "RDttcaaaaWgcacatWaDgtDKacgaacaattacaRNWaatHtttStgttattaaMtgt\n" + + "tgDcgtMgcatBtgcttcgcgaDWgagctgcgaggggVtaaScNatttacttaatgacag\n" + + "cccccacatYScaMgtaggtYaNgttctgaMaacNaMRaacaaacaKctacatagYWctg\n" + + "ttWaaataaaataRattagHacacaagcgKatacBttRttaagtatttccgatctHSaat\n" + + "actcNttMaagtattMtgRtgaMgcataatHcMtaBSaRattagttgatHtMttaaKagg\n" + + "YtaaBataSaVatactWtataVWgKgttaaaacagtgcgRatatacatVtHRtVYataSa\n" + + "KtWaStVcNKHKttactatccctcatgWHatWaRcttactaggatctataDtDHBttata\n" + + "aaaHgtacVtagaYttYaKcctattcttcttaataNDaaggaaaDYgcggctaaWSctBa\n" + + "aNtgctggMBaKctaMVKagBaactaWaDaMaccYVtNtaHtVWtKgRtcaaNtYaNacg\n" + + "gtttNattgVtttctgtBaWgtaattcaagtcaVWtactNggattctttaYtaaagccgc\n" + + "tcttagHVggaYtgtNcDaVagctctctKgacgtatagYcctRYHDtgBattDaaDgccK\n" + + "tcHaaStttMcctagtattgcRgWBaVatHaaaataYtgtttagMDMRtaataaggatMt\n" + + "ttctWgtNtgtgaaaaMaatatRtttMtDgHHtgtcattttcWattRSHcVagaagtacg\n" + + "ggtaKVattKYagactNaatgtttgKMMgYNtcccgSKttctaStatatNVataYHgtNa\n" + + "BKRgNacaactgatttcctttaNcgatttctctataScaHtataRagtcRVttacDSDtt\n" + + "aRtSatacHgtSKacYagttMHtWataggatgactNtatSaNctataVtttRNKtgRacc\n" + + "tttYtatgttactttttcctttaaacatacaHactMacacggtWataMtBVacRaSaatc\n" + + "cgtaBVttccagccBcttaRKtgtgcctttttRtgtcagcRttKtaaacKtaaatctcac\n" + + "aattgcaNtSBaaccgggttattaaBcKatDagttactcttcattVtttHaaggctKKga\n" + + "tacatcBggScagtVcacattttgaHaDSgHatRMaHWggtatatRgccDttcgtatcga\n" + + "aacaHtaagttaRatgaVacttagattVKtaaYttaaatcaNatccRttRRaMScNaaaD\n" + + "gttVHWgtcHaaHgacVaWtgttScactaagSgttatcttagggDtaccagWattWtRtg\n" + + "ttHWHacgattBtgVcaYatcggttgagKcWtKKcaVtgaYgWctgYggVctgtHgaNcV\n" + + "taBtWaaYatcDRaaRtSctgaHaYRttagatMatgcatttNattaDttaattgttctaa\n" + + "ccctcccctagaWBtttHtBccttagaVaatMcBHagaVcWcagBVttcBtaYMccagat\n" + + "gaaaaHctctaacgttagNWRtcggattNatcRaNHttcagtKttttgWatWttcSaNgg\n" + + "gaWtactKKMaacatKatacNattgctWtatctaVgagctatgtRaHtYcWcttagccaa\n" + + "tYttWttaWSSttaHcaaaaagVacVgtaVaRMgattaVcDactttcHHggHRtgNcctt\n" + + "tYatcatKgctcctctatVcaaaaKaaaagtatatctgMtWtaaaacaStttMtcgactt\n" + + "taSatcgDataaactaaacaagtaaVctaggaSccaatMVtaaSKNVattttgHccatca\n" + + "cBVctgcaVatVttRtactgtVcaattHgtaaattaaattttYtatattaaRSgYtgBag\n" + + "aHSBDgtagcacRHtYcBgtcacttacactaYcgctWtattgSHtSatcataaatataHt\n" + + "cgtYaaMNgBaatttaRgaMaatatttBtttaaaHHKaatctgatWatYaacttMctctt\n" + + "ttVctagctDaaagtaVaKaKRtaacBgtatccaaccactHHaagaagaaggaNaaatBW\n" + + "attccgStaMSaMatBttgcatgRSacgttVVtaaDMtcSgVatWcaSatcttttVatag\n" + + "ttactttacgatcaccNtaDVgSRcgVcgtgaacgaNtaNatatagtHtMgtHcMtagaa\n" + + "attBgtataRaaaacaYKgtRccYtatgaagtaataKgtaaMttgaaRVatgcagaKStc\n" + + "tHNaaatctBBtcttaYaBWHgtVtgacagcaRcataWctcaBcYacYgatDgtDHccta\n" + + "aagacYRcaggattHaYgtKtaatgcVcaataMYacccatatcacgWDBtgaatcBaata\n" + + "cKcttRaRtgatgaBDacggtaattaaYtataStgVHDtDctgactcaaatKtacaatgc\n" + + "gYatBtRaDatHaactgtttatatDttttaaaKVccYcaaccNcBcgHaaVcattHctcg\n" + + "attaaatBtatgcaaaaatYMctSactHatacgaWacattacMBgHttcgaatVaaaaca\n" + + "BatatVtctgaaaaWtctRacgBMaatSgRgtgtcgactatcRtattaScctaStagKga\n" + + "DcWgtYtDDWKRgRtHatRtggtcgaHgggcgtattaMgtcagccaBggWVcWctVaaat\n" + + "tcgNaatcKWagcNaHtgaaaSaaagctcYctttRVtaaaatNtataaccKtaRgtttaM\n" + + "tgtKaBtRtNaggaSattHatatWactcagtgtactaKctatttgRYYatKatgtccgtR\n" + + "tttttatttaatatVgKtttgtatgtNtataRatWYNgtRtHggtaaKaYtKSDcatcKg\n" + + "taaYatcSRctaVtSMWtVtRWHatttagataDtVggacagVcgKWagBgatBtaaagNc\n" + + "aRtagcataBggactaacacRctKgttaatcctHgDgttKHHagttgttaatgHBtatHc\n" + + "DaagtVaBaRccctVgtgDtacRHSctaagagcggWYaBtSaKtHBtaaactYacgNKBa\n" + + "VYgtaacttagtVttcttaatgtBtatMtMtttaattaatBWccatRtttcatagVgMMt\n" + + "agctStKctaMactacDNYgKYHgaWcgaHgagattacVgtttgtRaSttaWaVgataat\n" + + "gtgtYtaStattattMtNgWtgttKaccaatagNYttattcgtatHcWtctaaaNVYKKt\n" + + "tWtggcDtcgaagtNcagatacgcattaagaccWctgcagcttggNSgaNcHggatgtVt\n" + + "catNtRaaBNcHVagagaaBtaaSggDaatWaatRccaVgggStctDaacataKttKatt\n" + + "tggacYtattcSatcttagcaatgaVBMcttDattctYaaRgatgcattttNgVHtKcYR\n" + + "aatRKctgtaaacRatVSagctgtWacBtKVatctgttttKcgtctaaDcaagtatcSat\n" + + "aWVgcKKataWaYttcccSaatgaaaacccWgcRctWatNcWtBRttYaattataaNgac\n" + + "acaatagtttVNtataNaYtaatRaVWKtBatKagtaatataDaNaaaaataMtaagaaS\n" + + "tccBcaatNgaataWtHaNactgtcDtRcYaaVaaaaaDgtttRatctatgHtgttKtga\n" + + "aNSgatactttcgagWaaatctKaaDaRttgtggKKagcDgataaattgSaacWaVtaNM\n" + + "acKtcaDaaatttctRaaVcagNacaScRBatatctRatcctaNatWgRtcDcSaWSgtt\n" + + "RtKaRtMtKaatgttBHcYaaBtgatSgaSWaScMgatNtctcctatttctYtatMatMt\n" + + "RRtSaattaMtagaaaaStcgVgRttSVaScagtgDtttatcatcatacRcatatDctta\n" + + "tcatVRtttataaHtattcYtcaaaatactttgVctagtaaYttagatagtSYacKaaac\n" + + "gaaKtaaatagataatSatatgaaatSgKtaatVtttatcctgKHaatHattagaaccgt\n" + + "YaaHactRcggSBNgtgctaaBagBttgtRttaaattYtVRaaaattgtaatVatttctc\n" + + "ttcatgBcVgtgKgaHaaatattYatagWacNctgaaMcgaattStagWaSgtaaKagtt\n" + + "ttaagaDgatKcctgtaHtcatggKttVDatcaaggtYcgccagNgtgcVttttagagat\n" + + "gctaccacggggtNttttaSHaNtatNcctcatSaaVgtactgBHtagcaYggYVKNgta\n" + + "KBcRttgaWatgaatVtagtcgattYgatgtaatttacDacSctgctaaaStttaWMagD\n" + + "aaatcaVYctccgggcgaVtaaWtStaKMgDtttcaaMtVgBaatccagNaaatcYRMBg\n" + + "gttWtaaScKttMWtYataRaDBMaDataatHBcacDaaKDactaMgagttDattaHatH\n" + + "taYatDtattDcRNStgaatattSDttggtattaaNSYacttcDMgYgBatWtaMagact\n" + + "VWttctttgYMaYaacRgHWaattgRtaagcattctMKVStatactacHVtatgatcBtV\n" + + "NataaBttYtSttacKgggWgYDtgaVtYgatDaacattYgatggtRDaVDttNactaSa\n" + + "MtgNttaacaaSaBStcDctaccacagacgcaHatMataWKYtaYattMcaMtgSttDag\n" + + "cHacgatcaHttYaKHggagttccgatYcaatgatRaVRcaagatcagtatggScctata\n" + + "ttaNtagcgacgtgKaaWaactSgagtMYtcttccaKtStaacggMtaagNttattatcg\n" + + "tctaRcactctctDtaacWYtgaYaSaagaWtNtatttRacatgNaatgttattgWDDcN\n" + + "aHcctgaaHacSgaataaRaataMHttatMtgaSDSKatatHHaNtacagtccaYatWtc\n" + + "actaactatKDacSaStcggataHgYatagKtaatKagStaNgtatactatggRHacttg\n" + + "tattatgtDVagDVaRctacMYattDgtttYgtctatggtKaRSttRccRtaaccttaga\n" + + "gRatagSaaMaacgcaNtatgaaatcaRaagataatagatactcHaaYKBctccaagaRa\n" + + "BaStNagataggcgaatgaMtagaatgtcaKttaaatgtaWcaBttaatRcggtgNcaca\n" + + "aKtttScRtWtgcatagtttWYaagBttDKgcctttatMggNttattBtctagVtacata\n" + + "aaYttacacaaRttcYtWttgHcaYYtaMgBaBatctNgcDtNttacgacDcgataaSat\n" + + "YaSttWtcctatKaatgcagHaVaacgctgcatDtgttaSataaaaYSNttatagtaNYt\n" + + "aDaaaNtggggacttaBggcHgcgtNtaaMcctggtVtaKcgNacNtatVaSWctWtgaW\n" + + "cggNaBagctctgaYataMgaagatBSttctatacttgtgtKtaattttRagtDtacata\n" + + "tatatgatNHVgBMtKtaKaNttDHaagatactHaccHtcatttaaagttVaMcNgHata\n" + + "tKtaNtgYMccttatcaaNagctggacStttcNtggcaVtattactHaSttatgNMVatt\n" + + "MMDtMactattattgWMSgtHBttStStgatatRaDaagattttctatMtaaaaaggtac\n" + + "taaVttaSacNaatactgMttgacHaHRttgMacaaaatagttaatatWKRgacDgaRta\n" + + "tatttattatcYttaWtgtBRtWatgHaaattHataagtVaDtWaVaWtgStcgtMSgaS\n" + + "RgMKtaaataVacataatgtaSaatttagtcgaaHtaKaatgcacatcggRaggSKctDc\n" + + "agtcSttcccStYtccRtctctYtcaaKcgagtaMttttcRaYDttgttatctaatcata\n" + + "NctctgctatcaMatactataggDaHaaSttMtaDtcNatataattctMcStaaBYtaNa\n" + + "gatgtaatHagagSttgWHVcttatKaYgDctcttggtgttMcRaVgSgggtagacaata\n" + + "aDtaattSaDaNaHaBctattgNtaccaaRgaVtKNtaaYggHtaKKgHcatctWtctDt\n" + + "ttctttggSDtNtaStagttataaacaattgcaBaBWggHgcaaaBtYgctaatgaaatW\n" + + "cDcttHtcMtWWattBHatcatcaaatctKMagtDNatttWaBtHaaaNgMttaaStagt\n" + + "tctctaatDtcRVaYttgttMtRtgtcaSaaYVgSWDRtaatagctcagDgcWWaaaBaa\n" + + "RaBctgVgggNgDWStNaNBKcBctaaKtttDcttBaaggBttgaccatgaaaNgttttt\n" + + "tttatctatgttataccaaDRaaSagtaVtDtcaWatBtacattaWacttaSgtattggD\n" + + "gKaaatScaattacgWcagKHaaccaYcRcaRttaDttRtttHgaHVggcttBaRgtccc\n" + + "tDatKaVtKtcRgYtaKttacgtatBtStaagcaattaagaRgBagSaattccSWYttta\n" + + "ttVaataNctgHgttaaNBgcVYgtRtcccagWNaaaacaDNaBcaaaaRVtcWMgBagM\n" + + "tttattacgDacttBtactatcattggaaatVccggttRttcatagttVYcatYaSHaHc\n" + + "ttaaagcNWaHataaaRWtctVtRYtagHtaaaYMataHYtNBctNtKaatattStgaMc\n" + + "BtRgctaKtgcScSttDgYatcVtggaaKtaagatWccHccgKYctaNNctacaWctttt\n" + + "gcRtgtVcgaKttcMRHgctaHtVaataaDtatgKDcttatBtDttggNtacttttMtga\n" + + "acRattaaNagaactcaaaBBVtcDtcgaStaDctgaaaSgttMaDtcgttcaccaaaag\n" + + "gWtcKcgSMtcDtatgtttStaaBtatagDcatYatWtaaaBacaKgcaDatgRggaaYc\n" + + "taRtccagattDaWtttggacBaVcHtHtaacDacYgtaatataMagaatgHMatcttat\n" + + "acgtatttttatattacHactgttataMgStYaattYaccaattgagtcaaattaYtgta\n" + + "tcatgMcaDcgggtcttDtKgcatgWRtataatatRacacNRBttcHtBgcRttgtgcgt\n" + + "catacMtttBctatctBaatcattMttMYgattaaVYatgDaatVagtattDacaacDMa\n" + + "tcMtHcccataagatgBggaccattVWtRtSacatgctcaaggggYtttDtaaNgNtaaB\n" + + "atggaatgtctRtaBgBtcNYatatNRtagaacMgagSaSDDSaDcctRagtVWSHtVSR\n" + + "ggaacaBVaccgtttaStagaacaMtactccagtttVctaaRaaHttNcttagcaattta\n" + + "ttaatRtaaaatctaacDaBttggSagagctacHtaaRWgattcaaBtctRtSHaNtgta\n" + + "cattVcaHaNaagtataccacaWtaRtaaVKgMYaWgttaKggKMtKcgWatcaDatYtK\n" + + "SttgtacgaccNctSaattcDcatcttcaaaDKttacHtggttHggRRaRcaWacaMtBW\n" + + "VHSHgaaMcKattgtaRWttScNattBBatYtaNRgcggaagacHSaattRtttcYgacc\n" + + "BRccMacccKgatgaacttcgDgHcaaaaaRtatatDtatYVtttttHgSHaSaatagct\n" + + "NYtaHYaVYttattNtttgaaaYtaKttWtctaNtgagaaaNctNDctaaHgttagDcRt\n" + + "tatagccBaacgcaRBtRctRtggtaMYYttWtgataatcgaataattattataVaaaaa\n" + + "ttacNRVYcaaMacNatRttcKatMctgaagactaattataaYgcKcaSYaatMNctcaa\n" + + "cgtgatttttBacNtgatDccaattattKWWcattttatatatgatBcDtaaaagttgaa\n" + + "VtaHtaHHtBtataRBgtgDtaataMttRtDgDcttattNtggtctatctaaBcatctaR\n" + + "atgNacWtaatgaagtcMNaacNgHttatactaWgcNtaStaRgttaaHacccgaYStac\n" + + "aaaatWggaYaWgaattattcMaactcBKaaaRVNcaNRDcYcgaBctKaacaaaaaSgc\n" + + "tccYBBHYaVagaatagaaaacagYtctVccaMtcgtttVatcaatttDRtgWctagtac\n" + + "RttMctgtDctttcKtWttttataaatgVttgBKtgtKWDaWagMtaaagaaattDVtag\n" + + "gttacatcatttatgtcgMHaVcttaBtVRtcgtaYgBRHatttHgaBcKaYWaatcNSc\n" + + "tagtaaaaatttacaatcactSWacgtaatgKttWattagttttNaggtctcaagtcact\n" + + "attcttctaagKggaataMgtttcataagataaaaatagattatDgcBVHWgaBKttDgc\n" + + "atRHaagcaYcRaattattatgtMatatattgHDtcaDtcaaaHctStattaatHaccga\n" + + "cNattgatatattttgtgtDtRatagSacaMtcRtcattcccgacacSattgttKaWatt\n" + + "NHcaacttccgtttSRtgtctgDcgctcaaMagVtBctBMcMcWtgtaacgactctcttR\n" + + "ggRKSttgYtYatDccagttDgaKccacgVatWcataVaaagaataMgtgataaKYaaat\n" + + "cHDaacgataYctRtcYatcgcaMgtNttaBttttgatttaRtStgcaacaaaataccVg\n" + + "aaDgtVgDcStctatatttattaaaaRKDatagaaagaKaaYYcaYSgKStctccSttac\n" + + "agtcNactttDVttagaaagMHttRaNcSaRaMgBttattggtttaRMggatggcKDgWR\n" + + "tNaataataWKKacttcKWaaagNaBttaBatMHtccattaacttccccYtcBcYRtaga\n" + + "ttaagctaaYBDttaNtgaaaccHcaRMtKtaaHMcNBttaNaNcVcgVttWNtDaBatg\n" + + "ataaVtcWKcttRggWatcattgaRagHgaattNtatttctctattaattaatgaDaaMa\n" + + "tacgttgggcHaYVaaNaDDttHtcaaHtcVVDgBVagcMacgtgttaaBRNtatRtcag\n" + + "taagaggtttaagacaVaaggttaWatctccgtVtaDtcDatttccVatgtacNtttccg\n" + + "tHttatKgScBatgtVgHtYcWagcaKtaMYaaHgtaattaSaHcgcagtWNaatNccNN\n" + + "YcacgVaagaRacttctcattcccRtgtgtaattagcSttaaStWaMtctNNcSMacatt\n" + + "ataaactaDgtatWgtagtttaagaaaattgtagtNagtcaataaatttgatMMYactaa\n" + + "tatcggBWDtVcYttcDHtVttatacYaRgaMaacaStaatcRttttVtagaDtcacWat\n" + + "ttWtgaaaagaaagNRacDtttStVatBaDNtaactatatcBSMcccaSttccggaMatg\n" + + "attaaWatKMaBaBatttgataNctgttKtVaagtcagScgaaaDggaWgtgttttKtWt\n" + + "atttHaatgtagttcactaaKMagttSYBtKtaYgaactcagagRtatagtVtatcaaaW\n" + + "YagcgNtaDagtacNSaaYDgatBgtcgataacYDtaaactacagWDcYKaagtttatta\n" + + "gcatcgagttKcatDaattgattatDtcagRtWSKtcgNtMaaaaacaMttKcaWcaaSV\n" + + "MaaaccagMVtaMaDtMaHaBgaacataBBVtaatVYaNSWcSgNtDNaaKacacBttta\n" + + "tKtgtttcaaHaMctcagtaacgtcgYtactDcgcctaNgagagcYgatattttaaattt\n" + + "ccattttacatttDaaRctattttWctttacgtDatYtttcagacgcaaVttagtaaKaa\n" + + "aRtgVtccataBggacttatttgtttaWNtgttVWtaWNVDaattgtatttBaagcBtaa\n" + + "BttaaVatcHcaVgacattccNggtcgacKttaaaRtagRtctWagaYggtgMtataatM\n" + + "tgaaRttattttgWcttNtDRRgMDKacagaaaaggaaaRStcccagtYccVattaNaaK\n" + + "StNWtgacaVtagaagcttSaaDtcacaacgDYacWDYtgtttKatcVtgcMaDaSKStV\n" + + "cgtagaaWaKaagtttcHaHgMgMtctataagBtKaaaKKcactggagRRttaagaBaaN\n" + + "atVVcgRcKSttDaactagtSttSattgttgaaRYatggttVttaataaHttccaagDtg\n" + + "atNWtaagHtgcYtaactRgcaatgMgtgtRaatRaNaacHKtagactactggaatttcg\n" + + "ccataacgMctRgatgttaccctaHgtgWaYcactcacYaattcttaBtgacttaaacct\n" + + "gYgaWatgBttcttVttcgttWttMcNYgtaaaatctYgMgaaattacNgaHgaacDVVM\n" + + "tttggtHtctaaRgtacagacgHtVtaBMNBgattagcttaRcttacaHcRctgttcaaD\n" + + "BggttKaacatgKtttYataVaNattccgMcgcgtagtRaVVaattaKaatggttRgaMc\n" + + "agtatcWBttNtHagctaatctagaaNaaacaYBctatcgcVctBtgcaaagDgttVtga\n" + + "HtactSNYtaaNccatgtgDacgaVtDcgKaRtacDcttgctaagggcagMDagggtBWR\n" + + "tttSgccttttttaacgtcHctaVtVDtagatcaNMaVtcVacatHctDWNaataRgcgt\n" + + "aVHaggtaaaaSgtttMtattDgBtctgatSgtRagagYtctSaKWaataMgattRKtaa\n" + + "catttYcgtaacacattRWtBtcggtaaatMtaaacBatttctKagtcDtttgcBtKYYB\n" + + "aKttctVttgttaDtgattttcttccacttgSaaacggaaaNDaattcYNNaWcgaaYat\n" + + "tttMgcBtcatRtgtaaagatgaWtgaccaYBHgaatagataVVtHtttVgYBtMctaMt\n" + + "cctgaDcYttgtccaaaRNtacagcMctKaaaggatttacatgtttaaWSaYaKttBtag\n" + + "DacactagctMtttNaKtctttcNcSattNacttggaacaatDagtattRtgSHaataat\n" + + "gccVgacccgatactatccctgtRctttgagaSgatcatatcgDcagWaaHSgctYYWta\n" + + "tHttggttctttatVattatcgactaagtgtagcatVgtgHMtttgtttcgttaKattcM\n" + + "atttgtttWcaaStNatgtHcaaaDtaagBaKBtRgaBgDtSagtatMtaacYaatYtVc\n" + + "KatgtgcaacVaaaatactKcRgtaYtgtNgBBNcKtcttaccttKgaRaYcaNKtactt\n" + + "tgagSBtgtRagaNgcaaaNcacagtVtttHWatgttaNatBgtttaatNgVtctgaata\n" + + "tcaRtattcttttttttRaaKcRStctcggDgKagattaMaaaKtcaHacttaataataK\n" + + "taRgDtKVBttttcgtKaggHHcatgttagHggttNctcgtatKKagVagRaaaggaaBt\n" + + "NatttVKcRttaHctaHtcaaatgtaggHccaBataNaNaggttgcWaatctgatYcaaa\n" + + "HaatWtaVgaaBttagtaagaKKtaaaKtRHatMaDBtBctagcatWtatttgWttVaaa\n" + + "ScMNattRactttgtYtttaaaagtaagtMtaMaSttMBtatgaBtttaKtgaatgagYg\n" + + "tNNacMtcNRacMMHcttWtgtRtctttaacaacattattcYaMagBaacYttMatcttK\n" + + "cRMtgMNccattaRttNatHaHNaSaaHMacacaVaatacaKaSttHatattMtVatWga\n" + + "ttttttaYctttKttHgScWaacgHtttcaVaaMgaacagNatcgttaacaaaaagtaca\n" + + "HBNaattgttKtcttVttaaBtctgctacgBgcWtttcaggacacatMgacatcccagcg\n" + + "gMgaVKaBattgacttaatgacacacaaaaaatRKaaBctacgtRaDcgtagcVBaacDS\n" + + "BHaaaaSacatatacagacRNatcttNaaVtaaaataHattagtaaaaSWccgtatWatg\n" + + "gDttaactattgcccatcttHaSgYataBttBaactattBtcHtgatcaataSttaBtat\n" + + "KSHYttWggtcYtttBttaataccRgVatStaHaKagaatNtagRMNgtcttYaaSaact\n" + + "cagDSgagaaYtMttDtMRVgWKWtgMaKtKaDttttgactatacataatcNtatNaHat\n" + + "tVagacgYgatatatttttgtStWaaatctWaMgagaRttRatacgStgattcttaagaD\n" + + "taWccaaatRcagcagaaNKagtaaDggcgccBtYtagSBMtactaaataMataBSacRM\n" + + "gDgattMMgtcHtcaYDtRaDaacggttDaggcMtttatgttaNctaattaVacgaaMMt\n" + + "aatDccSgtattgaRtWWaccaccgagtactMcgVNgctDctaMScatagcgtcaactat\n" + + "acRacgHRttgctatttaatgaattataYKttgtaagWgtYttgcHgMtaMattWaWVta\n" + + "RgcttgYgttBHtYataSccStBtgtagMgtDtggcVaaSBaatagDttgBgtctttctc\n" + + "attttaNagtHKtaMWcYactVcgcgtatMVtttRacVagDaatcttgctBBcRDgcaac\n" + + "KttgatSKtYtagBMagaRtcgBattHcBWcaactgatttaatttWDccatttatcgagS\n" + + "KaWttataHactaHMttaatHtggaHtHagaatgtKtaaRactgtttMatacgatcaagD\n" + + "gatKaDctataMggtHDtggHacctttRtatcttYattttgacttgaaSaataaatYcgB\n" + + "aaaaccgNatVBttMacHaKaataagtatKgtcaagactcttaHttcggaattgttDtct\n" + + "aaccHttttWaaatgaaatataaaWattccYDtKtaaaacggtgaggWVtctattagtga\n" + + "ctattaagtMgtttaagcatttgSgaaatatccHaaggMaaaattttcWtatKctagDtY\n" + + "tMcctagagHcactttactatacaaacattaacttaHatcVMYattYgVgtMttaaRtga\n" + + "aataaDatcaHgtHHatKcDYaatcttMtNcgatYatgSaMaNtcttKcWataScKggta\n" + + "tcttacgcttWaaagNatgMgHtctttNtaacVtgttcMaaRatccggggactcMtttaY\n" + + "MtcWRgNctgNccKatcttgYDcMgattNYaRagatHaaHgKctcataRDttacatBatc\n" + + "cattgDWttatttaWgtcggagaaaaatacaatacSNtgggtttccttacSMaagBatta\n" + + "caMaNcactMttatgaRBacYcYtcaaaWtagctSaacttWgDMHgaggatgBVgcHaDt\n" + + "ggaactttggtcNatNgtaKaBcccaNtaagttBaacagtatacDYttcctNgWgcgSMc\n" + + "acatStctHatgRcNcgtacacaatRttMggaNKKggataaaSaYcMVcMgtaMaHtgat\n" + + "tYMatYcggtcttcctHtcDccgtgRatcattgcgccgatatMaaYaataaYSggatagc\n" + + "gcBtNtaaaScaKgttBgagVagttaKagagtatVaactaSacWactSaKatWccaKaaa\n" + + "atBKgaaKtDMattttgtaaatcRctMatcaaMagMttDgVatggMaaWgttcgaWatga\n" + + "aatttgRtYtattaWHKcRgctacatKttctaccaaHttRatctaYattaaWatVNccat\n" + + "NgagtcKttKataStRaatatattcctRWatDctVagttYDgSBaatYgttttgtVaatt\n" + + "taatagcagMatRaacttBctattgtMagagattaaactaMatVtHtaaatctRgaaaaa\n" + + "aaatttWacaacaYccYDSaattMatgaccKtaBKWBattgtcaagcHKaagttMMtaat\n" + + "ttcKcMagNaaKagattggMagaggtaatttYacatcWaaDgatMgKHacMacgcVaaca\n" + + "DtaDatatYggttBcgtatgWgaSatttgtagaHYRVacaRtctHaaRtatgaactaata\n" + + "tctSSBgggaaHMWtcaagatKgagtDaSatagttgattVRatNtctMtcSaagaSHaat\n" + + "aNataataRaaRgattctttaataaagWaRHcYgcatgtWRcttgaaggaMcaataBRaa\n" + + "ccagStaaacNtttcaatataYtaatatgHaDgcStcWttaacctaRgtYaRtataKtgM\n" + + "ttttatgactaaaatttacYatcccRWtttHRtattaaatgtttatatttgttYaatMca\n" + + "RcSVaaDatcgtaYMcatgtagacatgaaattgRtcaaYaaYtRBatKacttataccaNa\n" + + "aattVaBtctggacaagKaaYaaatatWtMtatcYaaVNtcgHaactBaagKcHgtctac\n" + + "aatWtaDtSgtaHcataHtactgataNctRgttMtDcDttatHtcgtacatcccaggStt\n" + + "aBgtcacacWtccNMcNatMVaVgtccDYStatMaccDatggYaRKaaagataRatttHK\n" + + "tSaaatDgataaacttaHgttgVBtcttVttHgDacgaKatgtatatNYataactctSat\n" + + "atatattgcHRRYttStggaactHgttttYtttaWtatMcttttctatctDtagVHYgMR\n" + + "BgtHttcctaatYRttKtaagatggaVRataKDctaMtKBNtMtHNtWtttYcVtattMc\n" + + "gRaacMcctNSctcatttaaagDcaHtYccSgatgcaatYaaaaDcttcgtaWtaattct\n" + + "cgttttScttggtaatctttYgtctaactKataHacctMctcttacHtKataacacagcN\n" + + "RatgKatttttSaaatRYcgDttaMRcgaaattactMtgcgtaagcgttatBtttttaat\n" + + "taagtNacatHgttcRgacKcBBtVgatKttcgaBaatactDRgtRtgaNacWtcacYtt\n" + + "aaKcgttctHaKttaNaMgWgWaggtctRgaKgWttSttBtDcNtgtttacaaatYcDRt\n" + + "gVtgcctattcNtctaaaDMNttttNtggctgagaVctDaacVtWccaagtaacacaNct\n" + + "gaScattccDHcVBatcgatgtMtaatBgHaatDctMYgagaatgYWKcctaatNaStHa\n" + + "aaKccgHgcgtYaaYtattgtStgtgcaaRtattaKatattagaWVtcaMtBagttatta\n" + + "gNaWHcVgcaattttDcMtgtaRHVYtHtctgtaaaaHVtMKacatcgNaatttMatatg\n" + + "ttgttactagWYtaRacgataKagYNKcattataNaRtgaacKaYgcaaYYacaNccHat\n" + + "MatDcNgtHttRaWttagaaDcaaaaaatagggtKDtStaDaRtaVtHWKNtgtattVct\n" + + "SVgRgataDaRaWataBgaagaaKtaataaYgDcaStaNgtaDaaggtattHaRaWMYaY\n" + + "aWtggttHYgagVtgtgcttttcaaDKcagVcgttagacNaaWtagtaataDttctggtt\n" + + "VcatcataaagtgKaaaNaMtaBBaattaatWaattgctHaVKaSgDaaVKaHtatatat\n" + + "HatcatSBagNgHtatcHYMHgttDgtaHtBttWatcgtttaRaattgStKgSKNWKatc\n" + + "agDtctcagatttctRtYtBatBgHHtKaWtgYBgacVVWaKtacKcDttKMaKaVcggt\n" + + "gttataagaataaHaatattagtataatMHgttYgaRttagtaRtcaaVatacggtcMcg\n" + + "agtaaRttacWgactKRYataaaagSattYaWgagatYagKagatgSaagKgttaatMgg\n" + + "tataatgttWYttatgagaaacctNVataatHcccKtDctcctaatactggctHggaSag\n" + + "gRtKHaWaattcgSatMatttagaggcYtctaMcgctcataSatatgRagacNaaDagga\n" + + "VBagaYttKtacNaKgtSYtagttggaWcatcWttaatctatgaVtcgtgtMtatcaYcg\n" + + "tRccaaYgDctgcMgtgtWgacWtgataacacgcgctBtgttaKtYDtatDcatcagKaV\n" + + "MctaatcttgVcaaRgcRMtDcgattaHttcaNatgaatMtactacVgtRgatggaWttt\n" + + "actaaKatgagSaaKggtaNtactVaYtaaKRagaacccacaMtaaMtKtatBcttgtaa\n" + + "WBtMctaataaVcDaaYtcRHBtcgttNtaaHatttBNgRStVDattBatVtaagttaYa\n" + + "tVattaagaBcacggtSgtVtatttaRattgatgtaHDKgcaatattKtggcctatgaWD\n" + + "KRYcggattgRctatNgatacaatMNttctgtcRBYRaaaHctNYattcHtaWcaattct\n" + + "BtMKtVgYataatMgYtcagcttMDataVtggRtKtgaatgccNcRttcaMtRgattaac\n" + + "attRcagcctHtWMtgtDRagaKaBtgDttYaaaaKatKgatctVaaYaacWcgcatagB\n" + + "VtaNtRtYRaggBaaBtgKgttacataagagcatgtRattccacttaccatRaaatgWgD\n" + + "aMHaYVgVtaSctatcgKaatatattaDgacccYagtgtaYNaaatKcagtBRgagtcca\n" + + "tgKgaaaccBgaagBtgSttWtacgatWHaYatcgatttRaaNRgcaNaKVacaNtDgat\n" + + "tgHVaatcDaagcgtatgcNttaDataatcSataaKcaataaHWataBtttatBtcaKtK\n" + + "tatagttaDgSaYctacaRatNtaWctSaatatttYaKaKtaccWtatcRagacttaYtt\n" + + "VcKgSDcgagaagatccHtaattctSttatggtKYgtMaHagVaBRatttctgtRgtcta\n" + + "tgggtaHKgtHacHtSYacgtacacHatacKaaBaVaccaDtatcSaataaHaagagaat\n" + + "ScagactataaRttagcaaVcaHataKgDacatWccccaagcaBgagWatctaYttgaaa\n" + + "tctVNcYtttWagHcgcgcDcVaaatgttKcHtNtcaatagtgtNRaactttttcaatgg\n" + + "WgBcgDtgVgtttctacMtaaataaaRggaaacWaHttaRtNtgctaaRRtVBctYtVta\n" + + "tDcattDtgaccYatagatYRKatNYKttNgcctagtaWtgaactaMVaacctgaStttc\n" + + "tgaKVtaaVaRKDttVtVctaDNtataaaDtccccaagtWtcgatcactDgYaBcatcct\n" + + "MtVtacDaaBtYtMaKNatNtcaNacgDatYcatcgcaRatWBgaacWttKttagYtaat\n" + + "tcggttgSWttttDWctttacYtatatWtcatDtMgtBttgRtVDggttaacYtacgtac\n" + + "atgaattgaaWcttMStaDgtatattgaDtcRBcattSgaaVBRgagccaaKtttcDgcg\n" + + "aSMtatgWattaKttWtgDBMaggBBttBaatWttRtgcNtHcgttttHtKtcWtagHSt\n" + + "aacagttgatatBtaWSaWggtaataaMttaKacDaatactcBttcaatatHttcBaaSa\n" + + ">THREE Homo sapiens frequency\n" + + "aagtccgatgagtttcaatcatgactgcgaggagatccatgcggtgtacctaaacctaca\n" + + "tcgtatgtatttgctgacgttcattcttgatacataaagatccgatatcggtccactttg\n" + + "tttaccaaaagccctaccttcgtaacgatggaaatgtgaatgagagtgaaatacacgatg\n" + + "gggatattgccggtgagtacaagttagaccacacattagaactgacctatattcgtcatc\n" + + "atagagatggagtatgaattgattctgcgaagtacactggctttacgagtatctagacgc\n" + + "cgcggtatatctcccgtcaatactatgaaggtatatatatagaggctgaaaattcatgtt\n" + + "caatcctctttctaagagtgagtgggagccccttctgttgtcggagtaaaaaggcattat\n" + + "tcctcaaattgtcagaagcaaagtatacgtgatgtttgcttagaacaaaagagttacctt\n" + + "agggtaggtaaatctcgattcaccgagagaagtgattttggcggtgtgcgattaattctt\n" + + "ttgatgacagatctcattattttatatagctccctctttgtatttagagtttgcgtaggt\n" + + "aacctggcaaaaccatatcccggggggagagtgcgctgaacattttatacgatgtgatta\n" + + "ctcaaaggataaggttcgaggcctctatactcatggaactatcttataattataatggat\n" + + "cgtggctcattccacctatccaaacttctttgtgatctgatgctacgagtgtgaacaaac\n" + + "gtacatcttctaaggaatttgggacgtttcatagctcgcatttcattcctgaaaacttaa\n" + + "atatttttaaaaattgattctactgcgaggaactaaggtgtagacaagcccttagtaacc\n" + + "ggtggatgtcgcttcagttttatagcaaacattattcaatttcagtcttgactgaaatta\n" + + "gtttgttagtgttagaggtccatatgtcacatgcatatggtctagatgccattgtacagt\n" + + "aataccttagattagtattagcggcatgcgtacttggatttcacttgtaagaatgagctt\n" + + "aggacggtcgcctgtagggctgcaaataggaatacttacaatttttgatgacttgttagc\n" + + "atatcgctatcacccataaaaaacctgatacttgatgagcgggtgattgagactatgtac\n" + + "tgatataattcaatagctccaatagatgaaacagctatgcgcctatttatgtcaaataat\n" + + "cgatgtgatacaagcttagagctgaacgagcgcgagtggaattagcggtgatctctatcc\n" + + "taaaaagccacgaaatcgatcccagaagctaatacccgaggtgtcaagcttgagttcagt\n" + + "taaatttgcatctcatgccccacgaagaatgggtagagagtttgaaggtgcttctggatt\n" + + "ttcctaagtacgtggtaaaaatttgatgtaaatgaacacctcctaatggttgtgttaacc\n" + + "acaaacccctgggtgaatctgattagccaacccagtgatctgatttcagttgtcaaatct\n" + + "cttttttataactaccttttgtttccataatttaaccggatctcataatgaacaaacggg\n" + + "tagaataatggtagcacatagcgagcttgtctattcagaaatatggcctactcagaatgt\n" + + "attctccaaatcagtgttatgcgaaacgtaattttacgtgtaataatgatgatttcttat\n" + + "cggttccttgtactacaatactcttgcccaacaaatactaagcataacagcaaaattcga\n" + + "atccccctccttttaataaatggtttttcaatatagccgattcgtattcgttagtctttc\n" + + "accaactattaacctggcatctaattaataaaatcaccaaaggactctataatatgacag\n" + + "tcacttcggcctcttttaagacagttgattattgcaggtccgcaattgatggtgacatgc\n" + + "acaattagttagaatccgactatggagacaattaacaattgtagtgcccatttggtccag\n" + + "ttgacttcaaccacgagttataaaggtattttaatttatagtcgatagtaccaacaacaa\n" + + "gcacaatcataattatgttagaaaacccagggggtaatgctctaaatccagctttaaggc\n" + + "cagagtgcactatgaaatcgccattgatcattgtgtcattcgctgaacttggtgtctagg\n" + + "aggtgccgagtgagaatatcagataccttatgaagcaacgattatatctggactagatca\n" + + "tgatgatcggaataaaacattgaaataagtccttatcaaggagcataaacattttattta\n" + + "atttatacttcgtaaataaattcagaattttttttcaagacattaatctgagtaaatgac\n" + + "ggctagaaagggttcctactcgaatcgtagcctacgcatgtgggcagtaacctggcttgc\n" + + "gtttttactgaaacaaaggttcaccggaaagaaggctgccacttttagcttcttgacgat\n" + + "ctttagcgtcatatttttagattagtcgaaaaacggaaaacaaacttaacgaagctggtt\n" + + "gcacggggtaccgagaaaccaaagagcaggacaactccttgatcgggaagaactgaaata\n" + + "gacagctgtcattttcattggtcaacttatcaatataacgaccaccgtagtgacgcttgc\n" + + "atgaaaatactgaggatgtaaactatagccagtcaggcccgcgtgttgactaattgatga\n" + + "agcaaacaaaatagccggtattcgttaaaaggaacgggttgccagctacagatatactct\n" + + "aggtatatcccaaacaagagacgtcctttggctgttgtaatcggtcataatacttgtcac\n" + + "ataaacaagatcgctgaattaaacattaaacagttagtgatacacaatcgtggttggggc\n" + + "tgggatgtgcaataaaaagtcatctatcgtctatcacagagcgacgtaaatttagacaaa\n" + + "cattattatttcttgacaatggaatcgataagcgttcctctaacttggtatatatatctc\n" + + "gaccccgggattccagccattcttgtatgaagatttaaccatttaactatgcatagttga\n" + + "atggtaaggaaaatgatattgactgcaacagattttggatgcaaaaatatttgtgaatta\n" + + "ttggttatatactggttgtatagcacaatcattaggtcctagaaggcatactcaacctca\n" + + "gcgagagagctagcatgcataattgtaccgcccatattaatattcctgaaatgatttctt\n" + + "acattacgcccaatttcagtcatcgaacacccccatcaatttacccgatagagaacgtga\n" + + "tcatacgcaataccctatgcgaacgtccactctatagcgtctgtatacaatgattattcg\n" + + "ttccatttacaacgttaagtaatttaaacttacataaggacaaggaaatccgcgaacctc\n" + + "ctggaatgtatgagttatttatgcagttaacttcgtctcgaccggaactaaaggcgtcgt\n" + + "acgaatgaaaggccacttttagaagagacctttgtatccattgtggagaatatcataaat\n" + + "tcaagatggggtgtcatgctattcggtcctaaacattcttaatggctgttctattgttag\n" + + "tctgatttaaaatggaaccatagcacgaatagttagatagggctcatacccctgtaacga\n" + + "tctacaaatccttccccgggtgtgtgcgttagcgacggaaagttttacggtttgtgatca\n" + + "aagaacactcacacgtcagattattacactgatacgaattatttcagtcgacagtaattg\n" + + "aatagaaacttattaacgccagcacctgacacggtaagtaaggcaggtctgaactgtttg\n" + + "actgtaaaaaaatggtaatatttttaaaaatcttgatttctatatcaaatgatgtgtagt\n" + + "tttttctctgttattaaaatcccagtgcgcgaaatttagatcgttacgactcacgtacaa\n" + + "gatcacacatcacacgcgttagcgaaagcggaatggctaatacagccctacgcaacgtag\n" + + "tgggatcaacatatggacgaatttatgctcaatgagccaacctcccccgcattgcggttc\n" + + "attttaaggcctgggtaacatctatcgtttagataatcaaaggaatccgactatgcaatt\n" + + "gtctgacttcatccgctctcaagtccaatgcaggcgctacgtgtttctttaatcaatacc\n" + + "atattgaaatcgtaatacgataattgttgctattgactacaggttatgaaaaaacttact\n" + + "ttgcgggtacatgcatatttttgtaccacattattacgcgatatctctcagtgtactcta\n" + + "aattaaaccctcttcgaacattttagttcctattcgtaaacacgtgctacgcggcaattt\n" + + "gccggtcgtagaatggacaactccagttcaactgcatgtaactcatagctcgcgttagta\n" + + "taaattgactagtagccatgggacaaagtaactagtcagcggaaaagatccctttaaaga\n" + + "tatatgcaggttgcaagcataaagctcattgctcgaggtgcaccgtggtattccaaaagc\n" + + "gtctctatcgtatcttctaattttgggccgtgagaatcgaaactactctgatttgctgca\n" + + "cacgttaggtaatatcgcccattttcccgtataagctccgtacttatacgaactacacga\n" + + "ccttttaagcattagccgctcatatcgtgattcgtgtacagatgagtctattaaaattac\n" + + "agacatactccatatctcgctccttgaactttgaataatgcgctaacttgtactatgaat\n" + + "aggcagaacccaactttcccgtttgcgtcaagcggggaaacgatacatgttgtcagattt\n" + + "atgattatctagttttagatcacgtttaccgataatcggctgtggtctgagcagtcctac\n" + + "actgagtatttacttcagcttcatatcggtccgaaaaaaggttgtgaccgaatgtcaaaa\n" + + "tacggagtacgatgggcatcttttttcgagtcgcggttgcagggcagcaaaaggcttaaa\n" + + "ccatttttacgatttttactatagcggtcatgaagtgcgaaactgcttgcaaattttcta\n" + + "cacacattgtggctcttgtccttgaagcttatggcgaaaatttgaaacatagtataccag\n" + + "ggaaagcgcgaattatttggtgactaatagtccgtgggtttgagccatatacctaacgcc\n" + + "ataaactacgtggtgctttagatgcaatctaaacagaacagaaagcgtagcgctcatcag\n" + + "cacagactaactttttcagtttgagtcgccggagggacttcgagacaagaacgcgtcaag\n" + + "tcgcttgcgcggcacggattcgattgggcggctcaatcttgcctaatttctactattgtc\n" + + "agctgtacgactgtactaagtgtatagccccaaataaaagaagtatcgatgcgtctttat\n" + + "gaccaaaggtcttataattgaagcgcacttccgttcatcaaattaaatcctggcttaccc\n" + + "gattctccggaagtctgacctagagattgacgacggccgcgtattattgagacctcttca\n" + + "ggattaatcaataacgaagtagttgatctgtttggcgacgtaccttaagccgactccgct\n" + + "acacgagtttctactaaaccaatgtagccttatgcttagatgaataccgtcctaattaga\n" + + "tattccggcataacagcagtaaattatctgttcaatggacgaacattgaattgttagtat\n" + + "tctacacaagtcaggcctcgtaaatattaggtaaggccgtgggataacctacgtgatatg\n" + + "cttgagcttgcgttgcaagctctcgttaatcattaatttaggtgcgtgagggttaaacac\n" + + "cagcatattctatatgctagacgtcttccttaaaggatcgtagtattataattaataata\n" + + "agaaatatggttgacgtctagtcagcgggcatacgctgctctatatactggcattattca\n" + + "aaacttgacggtaaaaaaacgaattttaaggcgctcacgtcgaatgagccgaactcatgg\n" + + "gaaccaaaatgtcacagaaaacacctctttattgccaagcatgcaataaaaaaaatgtta\n" + + "atagtacgtttacgacattttattttataataaagagaaactattacacctattgatatg\n" + + "ataggacgtaaattaacgagtagcctgcatagaggcaaatgaggtttctacatggtatag\n" + + "acctgatgctgaaacatcgatgagttttggtcccctcgctcgttgaaatctagtcattta\n" + + "ctactgtctttcgagctattataccacttcactatgtggtgtttctttgctatgtatggg\n" + + "gctagtcaaacatgatgactatagctacaactcagagagcgggcgtgttaagagtatctc\n" + + "atgctagaactgcacgacgaacttgatacaaagtaacaacatttacgattccacaaggtg\n" + + "actttgaagaaacatagtttaattctctgcttcgatcatttctataaaccggtaccatcg\n" + + "cagcggatagatgcataacatttctactactccaggcatcttaaaacacacgtagtactt\n" + + "cactagattaagacacgataagtgtataacttggcagtgggaagcaaggagattggcgaa\n" + + "ctcctggcatctgttacgttttgttcaggctcggttgttgataatgtccgactcctgcca\n" + + "tattgaagactcgctcgagggagatcgggattcgttgattataagtacacgtgttccgta\n" + + "atactatgaggcagtgattcaaaatggcacttctgacttacatgactaggtattattacc\n" + + "acggaagcgttaaaggcacactcttatggacttaagattgcaagtgccttcttctagcct\n" + + "gaattcgcgggttcaacacaaactctctttagacatccgttgcctaaaggctgagacgta\n" + + "ggggcaaccctttaactatgtactaaaaaactagttggtaatttaacaacgtgtccaatc\n" + + "aagacgatgcaccaacgcggtgcgaaaatcgggttaagcaaacacaaataggaattgtga\n" + + "taaaccccaccttgagaggtcgcaagaccaacctcgggaacaacggctctaagagaataa\n" + + "cctaaatccggatgagtagactgtgtaactctctaaagggaagtgaaaaaaagctaagca\n" + + "tacatttaggtctcctgcattgcattcaattgaatcgtttgtattatgagctgtacagta\n" + + "gctatatcagctatagttatcccagaggaacaggtaaactagctctgagcgtgaaatccg\n" + + "gatattagaacccctagatgggattgattctagctaatacaggcttatctggttttacag\n" + + "ttatctagatgattggtaaggtgaaacgcttggtgccttccaccacttaaacaaaagtat\n" + + "tgcccgggaagctattttctaggtattataaagtcgagcattaatatcaatttgacagta\n" + + "aaggtctttcaccagcttcatatgccatagggcccatactcgatttaaattgaacggttt\n" + + "aacgagtattggaactctcacttataactgagtagctatacgaaaaatctggtccatttc\n" + + "cagaaatttattatcgatttgctgcttagtacccaggaagtgataacccttgaaggcaca\n" + + "acactgtaataagttttcctgtcacatctgtaatattcggtcactacgcattcacgacta\n" + + "aagataattactatactaattaaaagttcaatgttagggccgaatcatagtagaaattct\n" + + "cgtctagcctaatcggacttacctatgggctgtgaggatttatcagtatgtggacaaaaa\n" + + "tgctagagataggtatagttaaagtcaccatggtacatctatgtgaggaagtttgtagtt\n" + + "cgcttctttagtccgggcgtttgggatgacaactactatacgtagagccgtactcaggat\n" + + "tagatagtgtgaaagagtcaaataaaagggttaatattaatttaacgttgcaaatgtgtt\n" + + "taggccaaacattaaccgttgtagggatattctaatacaggccttcaccgaaccctaatg\n" + + "ataatctgtcttaataacattaaatgattgtctccgctacgagctcttagggcctcattt\n" + + "taaatgactaatgtccaaagaagagactttcccaatttcaatctgtcacgtatagacggc\n" + + "accttagtgagtcatatcattaagatagaagattatcaggagggaagtttctattatcaa\n" + + "ccgttacgcaaccataaacttttaaatctcataatggcattgagatcaagagctttcatg\n" + + "atggtaaagttcgtatgtgatgctggggagctagatatcggtataccacttcggttgtgg\n" + + "taagcccgagtgggccgttagtaatattaatagacgattatccgacaatgcattcgctga\n" + + "aataatcttacttaggagaaattaatgctatgagccaaaactatttatgtctgtcacatt\n" + + "attgactaaagtatctatcgacaaaactgatgtccataagttgtagcagatagtcggtgt\n" + + "atggtgtcaccaatgaaaacctcgagcgaaaaatgaattatagttatccaatttgagtaa\n" + + "attgcctattatacagataggcttgtttagtcagataaggttccgcttgaggtgctctaa\n" + + "cttagcgagagttagaaagcctagtgagaggcattttggtgccaaactccggctcgcatg\n" + + "agtaggccagagagtcactttctttcgtcgaagaagttggtgaacagccttttgattagt\n" + + "tgtttgtcttgtggctatgtgctactatataagttagaacgcaaactaatctaatcagca\n" + + "aagtaaaataggaccttgaacgagacggggtacgccgttgaggctcgagatagtagataa\n" + + "actagaggaatgtagataaaacattagctagggggtttagttactggattacataggaag\n" + + "tgcaccatcacggtgtgggggttcgtacgtaaagtcgcatcaatattgtcagtggactta\n" + + "acaagttcgtgcataatgaaatcctatacggactttgcatatctctaccgactcatctgg\n" + + "tcgtctatgcgggtaattgtattgctccaagtggatgactattttggcgtcccagcacat\n" + + "agtaaatgtaaatccttataatagcataagcaattattagactgcgtgaagtcttagtag\n" + + "ttctcaagctttacgttgtatgtaaataactcacgtaatcagccgtccccaaatcaccat\n" + + "tgaggtcattgaatgtacggagcactattatcaatgcggtatgcgattttctgagcgatt\n" + + "attgttaaagacttagcgttgagccccggaacacttgattacagattctttaaggagtta\n" + + "tccaaatatcattttaaataatagtagtatcgtgctttggacaataaaaaaagacccgtt\n" + + "ctcttatgttgttttgcgacgtacttctctgatatatacttcaactatgaagattctatt\n" + + "catcgataacccaggtatatttatatgcccgttcactgcgcagggcaaattatctacgga\n" + + "caataatgacgtagttggacccggtaagaactaacgcttaatatgattaaggatgtatgc\n" + + "cagtattatcttattatgtcagagtagaagtttctctgagattttccgtcgttgtggtac\n" + + "accggatttggctctctttttagaactgagaactcggagtgtgtagtcttgtttccttca\n" + + "atttatcaatatgcttttataccgccctcatcaactataacaggacgacaagttccgtct\n" + + "tgctccatcatatactaccgatacaccaatcgtatcaagtttagtatacttgctttctct\n" + + "cttctacagcttactcgcttgtccgagaagcggttggtgctcataaagttagtagtaaat\n" + + "gtacaactagtagccagtccttacctgtttttacgactactacggacaccatgagataca\n" + + "gaagttagtgctacaattataccattacatgctcaatatcgttgtcggccataagatcga\n" + + "agagtgcatcacgcgtgtgaatacgtaaaatctaccatcccgtcaatgcacaaaaacaca\n" + + "ctccccttgttgactaacatcttttacaagaggctaaatcattgtccaggatcgaatacc\n" + + "ttgtgtacaatcgtcacccatcggaagaataccacttttccgatgtagtatgatttacaa\n" + + "aaaacatctatgtgagtaggccaattgtagtagaatatattcatttgaccgtcattagcc\n" + + "ttcttcttaggttgtgtacggatagtaggtacataaaccgtcgtgtggcatacgctgcga\n" + + "tttcatacagctgccaacaccttttttaccaggctagagtcagaaaagttggagccatgt\n" + + "taaatagttaccatcataaaccactgttgtctactagtctgatcagctttcatgcctgtg\n" + + "caagcaatatggattctcacgtaatggtaacaactgttgcgttacttaggctggttaatt\n" + + "tgtcagagtaataaatacatgtcttgttgtgtttcctaatcctcggaaagtacacaagcc\n" + + "taggaataggaaaagtaaagctcttttattctgatagtgactaactcaggatctaaatac\n" + + "gcgattatactaaccttcaccaaagctcaaaaatcatctgctggtgaccagttatagaca\n" + + "gggtaattcaatatttaatgtctcccttaacatttcaccagcatggattgaagatagtat\n" + + "aaagttttacatggcagtcattgtgtcacggttctatacaaattctgatagttagacggt\n" + + "atttgaaatgtgcttctagcatggtatcttacacaactgaatgaacgactggagccgttc\n" + + "gtatactatttgcgagcctcgagaccccgtttcctaatgttaacgaatatagtataatat\n" + + "aaattgtgatatgaataacacaagtaactacagtttggacaattaattgttctaaactaa\n" + + "aaatcattcacttcagatggcatagagttatggctactacacatataaagcggtatgtga\n" + + "aacacccgttttagccggaaaccctctactgctcgggacaatgaatgatttccaaaatat\n" + + "ggatgtgcagaattgttagtgtgactcaggtccaaatagacactttagtttcgtcaagtc\n" + + "gttgcaaagtttaaaaccatcgcagcattctttatttggtctacattgagaaatgaaaaa\n" + + "acgtgacagaaagtctagaagaactgtgaataatgtctattactgattaactagtaagac\n" + + "attagtgcatctggtccactgaagcacccgcttggcgttaggcaatctctgtgaactgtc\n" + + "gtggctgttccggtaatgtacgaaagcaagcctataggttgatcgagtcgcttcattaag\n" + + "gtcaatttcacaatatccgatcacattgtgctaggttcgtcctttaccttgcttagtgct\n" + + "gcatgtacggggtgtcatgacttgttatcggcagactctttatcccaagaatggataata\n" + + "tgtacatggaaagtgtccataattaagtcccttcactgtaaagaatgactgccacgtgat\n" + + "ccatgaggtctacagaaaccgacttacttgctttttgatcaacttaattatggattcata\n" + + "aagttcagatatcggtacaattggtgtacaatatgaaattaatgaggaaacatggaaatc\n" + + "tgaatgacagtgatagaaaagatccccatttgcccggtcagttcatgttacaccactcat\n" + + "tagtactgtaagtgtttcgtcagcattgagatccacgatcatgtgtttatgccttcgaaa\n" + + "ctggatgtacgacgatcgagacgaagaggtatatataacctaaatactaggtacgttgtt\n" + + "agagagacgatgaaaattaatcgtcaatacgctggcgaacactgagggggacccaatgct\n" + + "cttctcggtctaaaaaggaatgtgtcagaaattggtcagttcaaaagtagaccggatctt\n" + + "tgcggagaacaattcacggaacgtagcgttgggaaatatcctttctaccacacatcggat\n" + + "tttcgccctctcccattatttattgtgttctcacatagaattattgtttagacatccctc\n" + + "gttgtatggagagttgcccgagcgtaaaggcataatccatataccgccgggtgagtgacc\n" + + "tgaaattgtttttagttgggatttcgctatggattagcttacacgaagagattctaatgg\n" + + "tactataggataattataatgctgcgtggcgcagtacaccgttacaaacgtcgttcgcat\n" + + "atgtggctaacacggtgaaaatacctacatcgtatttgcaatttcggtcgtttcatagag\n" + + "cgcattgaattactcaaaaattatatatgttgattatttgattagactgcgtggaaagaa\n" + + "ggggtactcaagccatttgtaaaagctgcatctcgcttaagtttgagagcttacattagt\n" + + "ctatttcagtcttctaggaaatgtctgtgtgagtggttgtcgtccataggtcactggcat\n" + + "atgcgattcatgacatgctaaactaagaaagtagattactattaccggcatgcctaatgc\n" + + "gattgcactgctatgaaggtgcggacgtcgcgcccatgtagccctgataataccaatact\n" + + "tacatttggtcagcaattctgacattatacctagcacccataaatttactcagacttgag\n" + + "gacaggctcttggagtcgatcttctgtttgtatgcatgtgatcatatagatgaataagcg\n" + + "atgcgactagttagggcatagtatagatctgtgtatacagttcagctgaacgtccgcgag\n" + + "tggaagtacagctgagatctatcctaaaatgcaaccatatcgttcacacatgatatgaac\n" + + "ccagggggaaacattgagttcagttaaattggcagcgaatcccccaagaagaaggcggag\n" + + "tgacgttgaacgggcttatggtttttcagtacttcctccgtataagttgagcgaaatgta\n" + + "aacagaataatcgttgtgttaacaacattaaaatcgcggaatatgatgagaatacacagt\n" + + "gtgagcatttcacttgtaaaatatctttggtagaacttactttgctttaaatatgttaaa\n" + + "ccgatctaataatctacaaaacggtagattttgcctagcacattgcgtccttctctattc\n" + + "agatagaggcaatactcagaaggttttatccaaagcactgtgttgactaacctaagtttt\n" + + "agtctaataatcatgattgattataggtgccgtggactacatgactcgtccacaaataat\n" + + "acttagcagatcagcaattggccaagcacccgacttttatttaatggttgtgcaatagtc\n" + + "cagattcgtattcgggactctttcaaataatagtttcctggcatctaagtaagaaaagct\n" + + "cataaggaagcgatattatgacacgctcttccgccgctgttttgaaacttgagtattgct\n" + + "cgtccgaaattgagggtcacttcaaaatttactgagaagacgaagatcgactaaagttaa\n" + + "aatgctagtccacagttggtcaagttgaattcatccacgagttatatagctattttaatt\n" + + "tatagtcgagtgtacaaaaaacatccacaataagatttatcttagaataacaacccccgt\n" + + "atcatcgaaatcctccgttatggcctgactcctcgagcttatagcatttgtgctggcgct\n" + + "cttgccaggaacttgctcgcgaggtggtgacgagtgagatgatcagtttcattatgatga\n" + + "tacgattttatcgcgactagttaatcatcatagcaagtaaaatttgaattatgtcattat\n" + + "catgctccattaacaggttatttaattgatactgacgaaattttttcacaatgggttttc\n" + + "tagaatttaatatcagtaattgaagccttcataggggtcctactagtatcctacacgacg\n" + + "caggtccgcagtatcctggagggacgtgttactgattaaaagggtcaaaggaatgaaggc\n" + + "tcacaatgttacctgcttcaccatagtgagccgatgagttttacattagtactaaatccc\n" + + "aaatcatactttacgatgaggcttgctagcgctaaagagaatacatacaccaccacatag\n" + + "aattgttagcgatgatatcaaatagactcctggaagtgtcagggggaaactgttcaatat\n" + + "ttcgtccacaggactgaccaggcatggaaaagactgacgttggaaactataccatctcac\n" + + "gcccgacgcttcactaattgatgatccaaaaaatatagcccggattcctgattagcaaag\n" + + "ggttcacagagaaagatattatcgacgtatatcccaaaaaacagacgtaatgtgcatctt\n" + + "cgaatcgggatgaatacttgtatcataaaaatgtgacctctagtatacaggttaatgtta\n" + + "gtgatacacaatactcgtgggccatgggttctcaaataaaatgtaatattgcgtcgatca\n" + + "ctcacccacgtatttggtctaattatgttttatttagtgacaatccaatagataaccggt\n" + + "cctattaagggctatatttttagcgaccacgcgtttaaacaaaggattgtatgtagatgg\n" + + "taccagtttaattgccagtgggcaatcctaagcaaaatgagattctatcctaaagtttgg\n" + + "gcttgatataagatttcggatgtatgggttttataatcgttggagagctcaatcatgagc\n" + + "taatacatggatttcgctacctcaccgagagaccttgcatgaagaattctaaccaaaagt\n" + + "ttaataggccggattggattgagttaattaagaccttgttcagtcatagtaaaaaccctt\n" + + "aaattttaccgattgacaaagtgagcagtcgcaataccctatgcgaaacgcctcgatagt\n" + + "gactaggtatacaaggtttttgagttcctttgaaatagttaactaatttaaaattaatta\n" + + "acgacatggaaatcacagaacctaatgctttgtaggagttatttatgctgtttactgcct\n" + + "ctacaaccctaataaagcagtcctaagaatgaaacgcatcttttagttcagaaagtggta\n" + + "tccagggtggtcaatttaataaattcaacatcgggtctcaggatattcggtcatataatt\n" + + "tattaagggctcttcgagtcttactctgagtgaaattggaaacagtcatccttttcgttg\n" + + "tgaggcatcttacaccgctatcgatatacaatgcattccaccgcggtgtcccgtacacaa\n" + + "ggaaacttgttaccttggggatataagaaaactcacacgtctcattattaaactgagtac\n" + + "aatttttgcacgagaaagtaatgcaatacaatatgatgaaagccagctaatgaaaaggga\n" + + "tggaacgcacctcggatctgttgcactggattaaaatccgattatttttaaaaatattca\n" + + "gtgctagagcatatcaggtctacttttttatctggtatgtaaagcccacggagcgatagt\n" + + "gagatccttacgactcaacgaaaagttataacataactcccgttagccaaagcccaatcc\n" + + "cgattactgccctaccctaacgtctgccatctaaatatcgaacttgttatgatcaatgtg\n" + + "actacctcccaccctttccccttcatttgttccactggggataagctagcgttttcagaa\n" + + "tcaatgcaataagaatagccaattgtctcacttcatcagagctcttggcaattccaggcg\n" + + "ctacgtggttctggaatatattcatttttcaaatagtaatacgtttagtgttgctattgt\n" + + "ctacacgtttggatattacgttatgtgagcggacatcaatagttgtctaactctttagta\n" + + "agccagagatagcactcttagcgaatggataccatcttccataagtttagttaatagtcc\n" + + "gaaacaactgcttcgagcatatttgaacctccttgtaggcaaatagcctcttcaaagcaa\n" + + "tcttactaatagatagagtttgttttaagggactactagaaatgggacaatcttaatagt\n" + + "atgacctaaactgacatttaaagatatatccaggtggcaagcataaagatcattgcgcca\n" + + "cctccaccgtgggattacttatcagtcgatatcctatatgctaagtttgcgacggcagaa\n" + + "tacaaactaagctgagttgatgctaaccttacctatgataccccattggaccggttaaca\n" + + "gccctacttattccaaataaaagaacttttatgctgtagaagctattatagtgatgcctg\n" + + "gtaacttcagtatattaaaatgacacacatacgccatatagagctcctggaactttgaat\n" + + "aatgagcgaacttcgaagttgaagagcaagaaaccatatgtcacggttgcctaaagcccg\n" + + "gtaaccagacatgtgctatcattgatcattatcgaggttttcataaccttgacccattat\n" + + "cggctgtgcgcggacaagtacttaaatcactagtttcttcacctgcttatcggtaagaaa\n" + + "taaggttggcaaagaatcgcataagacggacgtagagccgcagcgttgtgcgagtccagg\n" + + "tgcatgcgcagcaataggattttaaattttgttccatttttaatttagccgtaaggatgt\n" + + "ccgtaaatgattgaaaattggattcaatctttgggcctatgctactggaacctgatcgac\n" + + "aaaatttcaaacatacgttaactccgaaagaccgtatttttgcggctagaatagtcagtc\n" + + "gcttggagccatataccttaccacttaaacgacgtgctcctgtagttgaaatataaacag\n" + + "aacacaaagactaccgatcatatcaactgaagatctttgtaactttgaggcgaagcaccc\n" + + "tcttcgagacaactaagagtaaagtaccgggcgccgcaaggagtcgattgggaccctaaa\n" + + "tcttgacgaattgctaagaggctcagagctaccactgtaatttctctagagcccataata\n" + + "aatgaacgatacatccgtaggtagcacctaagggattataatggaagccaaatgcagtta\n" + + "ataatattatatactggcgtacacgattcgacggatctctcacatagtgattcacgaccc\n" + + "ccccctttgattgacacagcgtcagcattttgcaagaacgatcttctgcatagggtgcgc\n" + + "caccgtaaggatgacgtcgaagctacaactgggtataatttaccatgcttccctgatgct\n" + + "gagtgcaatacactaagaatgagtttttaccccatatcaccagtatttgttctgttattg\n" + + "cgaagaaatggctatgctgagttggcgactaaagtcacccatcctttttattaggtaacc\n" + + "ccctcccttaaactaactgatttgctggagctgccctgcatacatatactttatcattta\n" + + "tggacgtccgtgacgcttattatccaccatagtcgatatgctacacggattcattaatgg\n" + + "atcgtaggagtttaagttatatttactaagatcggtctcggctactatcccgccttaccc\n" + + "ggcgctatttacggccatttttaatatattgacggtaattattcctatggtttcgaccgc\n" + + "acgtccttggacaagaaagaatggcaaaaaaaatgtaaaagaaaaaaaatattgagtccc\n" + + "taccatcatataaaaaatatgtgatgagtaacttgacgaaatgttagtggttattaaaga\n" + + "ctatctattacaccttttgttttctgtcgtagtatattaaagtctagaagccttacagga\n" + + "aaatcagggttatacagccgatactccgcagcatgaatcatcgaggaggtgtcctaccat\n" + + "cgcgccttgtaatcttgtctgtgtatactgtatttagaccttttatacaaagtaaatatc\n" + + "tcggctttatgtgattgggaggggcctactcaaacatgatgacttgacctaataatcact\n" + + "gtgcgggcgtcttatgactagctattccttgaaatccaccaccaaatggttaatatgtaa\n" + + "aaactttgacgatgaaacaaggtgaatgtgtagttactttgtgtaattagctgcgtcgag\n" + + "cattgcttgtaaaaccgtcaatcgcacacgttacttccataaaatttctacgaatacacc\n" + + "cttcttaaaaaaaacgtaggaattcacgagtttaacaaacgataactgtataaagtggaa\n" + + "gtccgaagaaagcagatgcccgaactactcgaagatgtttcgttttcttaaccatagggg\n" + + "cttcttaatggcccactacgcacattttgttcaagcccgagagggacatccccattacgg\n" + + "gagtattactaaaactgttccgtaatacgttcagcaagggatgaaaaaggccactgctca\n" + + "agttattgacgtgggagtattacatcggaagcctgaatcccacactatgatggtctgtac\n" + + "aggcctagggactgcgtctagacggtattaccggcttctaatcatacgatcgtgagtctt\n" + + "aacgggaagtaaggctcacacctaccccaaaccatttatctatgtaagtataaaattgtg\n" + + "cgtaagtgttcaaagtggacaataaagacgtggcaaaaacccccgcacataagccgcttt\n" + + "agatttcacaaataccaatgcggttaaaaacatccttgagtcgtacatacaccatactcg\n" + + "cgttaaacggatataacagaagataataaatccggatgtggagtcggtgtaactatagaa\n" + + "agccaagtgaaataatgcttaccagtcatttagctatacggctttcatttcatgtcaaga\n" + + "gggtggagtttgacctgtacagttgatatatcaccgatacttagaactcacctaaagcta\n" + + "aaattgctcgcagcgtgtaatccgcatattacaaacaatagatgggattcattatacata\n" + + "agacacgatgatctgctttttcaggttgcgagatgttgcctatcgtcaatcgagtcctgc\n" + + "cttacaccacttaaacaaaagtattgacagggaacctattttcgaggtattatatagtcc\n" + + "agcttgaatatcaatttgacagttaacctagtgaaaatcagtaagaggaaatacgccaca\n" + + "ttctccagtgaaattctacgggttatcgtctagtccaactatcaattataactcacgaga\n" + + "tataagtaaattctcgtacttggcctgatttttattatactttggatccttagtaaacag\n" + + "gaagggagaaaccttcaacgaaaaacactggattttgttttactctcaaagctcttatat\n" + + "gacggaaataccctgtcaagtcttaactttattactagactaatgaaatgggcttggggt\n" + + "ggccagaatcatagtacaatttagcggatacactattcggactttcctatcggctgtctg\n" + + "gttggataagtatggggactaataggctagacatacctatacttaaactatacaggcgtc\n" + + "atctatctctgcaactttggagttccctgatgttctcccgccctttgggttcacatcttc\n" + + "tataccgacacccctaataacgattagtttgtgggttagagtaaattaatacggttaata\n" + + "ttaatgtatcgttgaaaagctggtgtcgccaataaggtaaccggctaggcagagtatatg\n" + + "tcacgaagtataactaccctaatgataagctgtaggaataaaattaatgctgtctctaag\n" + + "cgaagagatatttccgactctgttttaatgacgaatctcattacttctgacttgcaaatg\n" + + "ttcaatatggcacggtttcacggcacctttgtgacgcatataatgaacttagaagattat\n" + + "aacgacggaactttatatgataatccgttacgattaaagaatctgttaaatatcataatg\n" + + "gcattcagttctagaccgtgcatcatggtaaacttactttctctgcatggcgacatacat\n" + + "ttcgctattcaaattcgcgtgtggttacacccactcgcacctttggaatattaagagaag\n" + + "atgatcagaaaatccattcgctcaatttttctgacgtacgtctaatttatcctaggagac\n" + + "aaatcgttttatgtctctcacatttttgaagaaaggttcgagagacaatactcaggtcct\n" + + "gaactgctagaagatactcggtggagcgtggcaacaatgaaaaactcgtgacataaatga\n" + + "atgatacttttccaagttcagttaagtgaatatgtttaacatacccggcttttcgatctt\n" + + "aagctgacgctggacgtgcgagtaatgtcagtctcttacatacactagtgactccaagtt\n" + + "tcgtcaaaaacgccccctcccttctcgagcccactcacgctatgtattgacgcgaacttg\n" + + "ttcgggatcagacttttcaggagttcggtcgcgtgtccctatgtgctaatatataagtta\n" + + "gatcgcattagatgctaatctgaatacttatagacgaccttcaacgagaacgggtaccac\n" + + "cttgaggctagagttaggtgtgaaacgacaggtagggacatataaaatttgagtgcggct\n" + + "ttagttaagggtttaattacctactcaaacatcacgctcgcgcccttcgtacgtaatcga\n" + + "ccatctagaggctaaggggactgtactaggtagtgattaatgatatcctagacgcacgtg\n" + + "ccttagatcttcagactctgatggtccgcgatcaccgtaattgtagtcctccaactcgat\n" + + "cactttgttggcgtcaaagaaattacgatatctaaatacttataatacaataaccaagga\n" + + "tgagaatgactcatcgcgttggagttatattgcttgaagttctatggaatgaaagcacgt\n" + + "tatctgccgtcccaatatctccagtgagctaattcattggacggtccactttgatcaatc\n" + + "cccgaggagatgttcggacactttagtctgtaacacttagcgttgagaccacgaacaatt\n" + + "gattactcagtcttgaaggtgttttccaaagttcattttaaataagactacgataggcct\n" + + "ttcctattgatataaactacccggctctgttgttcgtgtgagtcgtacttctctgtgttt\n" + + "ttctgattatagcaagattcgattcttagtgtaaacagcgatttttatttgacccgtcaa\n" + + "tgagaagcgcataggatctaagcaaaattatcaagttgtgccacaaggtaagatctttcc\n" + + "agttattgcaggtaggatgtatcccacgttgatagtatgaggtctgacgtcaactgtcta\n" + + "ggagagttgaccgcgtgcgggtacaccggatttgcatcgatgttgagaacgcagaactcc\n" + + "cactgtcgtggcggcgttcctgatatttagcaagaggcgttgataaagccctcatcatct\n" + + "agatctcgacctcatctgccctcttgctccatcattttctacacagactactttcctatc\n" + + "tacgttagtataattgctttctatcttagtatcatttagagcttctccgtcaacaggttc\n" + + "gtgctattaaagttagtacgaaagggacaacttgtagcaacgcatttaatcggttttcga\n" + + "ctacttcgcacaaaatcagataaagaagtttgtcattctattagacattgaattgcgcaa\n" + + "ttgacttgtaccacttatgatcgaacactgaatcaagactgtgattaactaaaatagaca\n" + + "agccactatatcaactaataaaaacgcccctggtggtcgaacatagttgactacaggata\n" + + "attaattggactggagccattacattctctacaatcgtatcacttcccaagtagacaact\n" + + "ttgaccttgtagtttcatgtacaaaaaaatgctttcgcaggagcacattggtagttcaat\n" + + "agtttcatgggaacctcttgagccgtcttctgtgggtgtgttcggatagtaggtactgat\n" + + "aaagtcgtgtcgctttcgatgagagggaattcaccggaaaacaccttggttaacaggata\n" + + "gtctatgtaaacttcgagacatgtttaagagttaccagcttaatccacggtgctctacta\n" + + "gtatcatcagctgtcttgcctcgcctagaaatatgcattctatcgttatcctatcaacgg\n" + + "ttgccgtactgagcagccttattgtggaagagtaatatataaatgtagtcttgtctttac\n" + + "gaagcagacgtaagtaataatgacttggaataccaaaactaaacatagtggattatcata\n" + + "ctcaagaactctccagataaataacagtttttacgatacgtcaccaatgagcttaaagat\n" + + "taggatcctcaaaactgatacaaacgctaattcatttgttattggatccagtatcagtta\n" + + "aactgaatggagtgaagattgtagaatgttgttctggcctcgcatggggtctaggtgata\n" + + "tacaatttctcatacttacacggtagtggaaatctgattctagcttcgtagctgactata\n" + + "ctcaaggaaccactgctcaaggtaggagactagttccgaccctacagtcaaagtggccga\n" + + "agcttaaactatagactagttgttaaatgctgatttcaagatatcatctatatacagttt\n" + + "ggacaattatgtgtgcgaaactaaaattcatgctattcagatggatttcacttatgcctt\n" + + "agaaacagatattgcccgagctcaatcaacagttttagccggaaacaatcgaagcatagg\n" + + "gacaatgtatcttttcctaaattgccatgtgcagatttctgagtgtcacgaagcgcataa\n" + + "tagaatcttgtgttgcctcaactcgttgaaaagtttaaaacaatcgcagcagtctttttg\n" + + "gggtctactgtgtgtttgcaaaataactgaaagaaacgcttgaacaactctgaagtagct\n" + + "cgagtactcattaaagtgtaacacattagtgaatatcggccaatgaaccaaacgcttccc\n" + + "ggtacgctatctctctcatcgggaggcgatgtgcaggttatctacgaaagcatcccttta\n" + + "cgttgagagtgtcgatgcatgaacctcattgtaacaatagcccagcaaattctcatacgt\n" + + "gcctcagggtccgggcgtactcctccatggaagggcgcgcatctagtgttataccaactc\n" + + "gctttttaactactatgctgtagttctacaggcatagtggccagtattttctaacttctc\n" + + "tggatagatgctctcactcctcatccatcacggcttcagtttacgtcttacttgcttgtt\n" + + "cagcaacggatggaggcattaagtatcttcactgttccctaaaattgctgttcaatatca\n" + + "aagtaaggacgatacagggaaagctcaagcacactcattgaatactgccccagttgcaac\n" + + "ctcacttaatctgacaaaaataatgactactctaagtgttgcggaagcagtctcttccac\n" + + "gagcttgtctgtatcacttcgtataggcatgtaactcgatagacacgaacaccgagtgag\n" + + "aaactatattcttgcttccgtgtgtgtgacaccaggtaattgatgcggatataagctgga\n" + + "gatcactcacgcccacacaaggcgctgctacctctttattccaatgtgtaagaatttgct\n" + + "aacttcatttctagaccgcagctttgcggtcataatttcacggtacggacccttgggtta\n" + + "gagacttgataacacacttcgcagtttccaccgcgcacatgttttagtggcttctaacat\n" + + "agaatttttgttgtgacataaagagtgcgtgggagacttgcccgaccgttaagccataat\n" + + "caattgaaagccccgtgagtcacatctaattggttgtactgcgcatttagctatccttta\n" + + "gctgactcgaagagattcgattcctaatataggttaattagatggctgccgcgcgaagta\n" + + "aaacgtgaaaaacgtagtgcgcagatctgcataactcgcgcttaattacttatgagtagt\n" + + "tccaagttcgctacgttatgagagagattggaattaagcaaatatgttttatggtgattt\n" + + "tgggatgagaaggactgctaagtacggctactaaacaaatttctaaaaccgccatctacc\n" + + "ttatcttggagacatttaagttgtatatgtcactagtctagcttttgtctgtgggacgcg\n" + + "ttctcggaatgagggaaatgcaagagccgattcatcaaatgcttatctaagaaagtagtg\n" + + "gactattacaccaagcacgaatgccagggaactgctttcttgctcaggacctcgcgacaa\n" + + "ggtaccccgcataagtcctagaattacatttggtcagcaatgctgacatttgaccgtgaa\n" + + "aacataattttaatcagaaggcagctcacccgcttgctctagatcttatctttgtatgaa\n" + + "tgtcagaatttactgcaatatccgttccgaatagtgagggcttagtatagttctctgtat\n" + + "acaggtcacatcaaactccccctgtcctagtacagctctgagctttaattaattgcatac\n" + + "atttccttcaatcatcagatgaaaacaccgcgaatcatgctcttctcgtatagggcaaga\n" + + "gaagcaacaaacaactagcccgactcacgttcatccgccgtatccttgttcagttcttac\n" + + "tccgtattaggtcagcgaaatctaatcagaataatcggtcgcgtatcaaaattaaaatcc\n" + + "cgcttgaggttgacaattaaaacgctgagcagttatcggctattagatagtggggtgaaa\n" + + "gtaattggctggaattatgttaaaacgtgatattaagctaaaatacgctacttgttgccg\n" + + "acctaattcagtcattcgatattcagttagagccaagaataacaagcttgtataaattga\n" + + "acggggtgcactaaacgatgtgttactctaatattcagcttggagtatacctgaaggcga\n" + + "attcatgtatcggccaataataagacgttgaagatcacaatttggactagcaaaagaagg\n" + + "tgatttatgcgtggggattgagtccactgtacgagtacggtctctggaaaattataggtt\n" + + "cagggaatataaggaagtaaagataattaccaagagatttttggtatcgctatgacccag\n" + + "aggtgttctaacgtctgttttgatccgcagaatttctgcctcaatgcatatttgacggac\n" + + "ttgaactagagcctctaaagttaaatggcgacgcaactgttcctaaacttcaattattac\n" + + "tactctttttttcctagggtattgtagaggccagtggacaaaataaatcaaatttaagat\n" + + "gtttcggacattaacatcccccgtagcatagaaatcatcagttatccaatctctcatcga\n" + + "gcttttacaatttctgctggcgctatggacagcatatgccgcgagacctccgcaagactc\n" + + "acttgatcactgtaagtatcttcattagaggttagagcctatagttaagctgctgaccta\n" + + "gtaaaattggtattttctaattttattgctcaagttaaaggttagtgaagggataatgac\n" + + "gttatttttgaacaatgggttgtattcaattttatatcacgaatggaacccttcattccc\n" + + "ggcataatactagacgacacgaacaagctccgatctatcagccaggcacgtgttaaggtt\n" + + "taattccggcaaaccaatgaagcatcaaaaggtgacctgatgcaacttagggtcacgatg\n" + + "agtttttcaggactacttattacctattaataagttaacatgagccttcataccccgtaa\n" + + "gacaatacatactccaccaattagaattctgagccatcttatctttttgtatcatcgaag\n" + + "ggtatggccgaataggttaattagttactcctaacgtctctacaggcatgcatttgacgc\n" + + "accttcgaaaatagtcaatctctcgccacacgcgtctagtatgcagcatcaaaaatatag\n" + + "tccacggtttccggattaccaaacgcggcaaagagaaacattgtatcgacggagataact\n" + + "taatacagaaggaaggggcatcttcgaatacggatgaataattctatctgtttattctga\n" + + "catcttgttttcaggttaatcttacgcattcaaatgacgcctgccccatgcgtgcgcaat\n" + + "tattttctaatattgacgagagcaatctcactccttttgggtctatttatgttttattga\n" + + "ggcacaagcctatacagaacaggtactattaaggccgtgagtgtgagactcaaaccgtgg\n" + + "aaacaaaggatgggttgttcttggtacaagttttagtgcatgtgggcaatccttaccaaa\n" + + "atcagatgctatccttaactttgggctgcatttaagatggcggttggaggcctgtgagaa\n" + + "tcctgcgtgtcatctttaatgaccgaattcatccatgtagattcagatcacacactcatt\n" + + "ccttgatgttgtctaaacaaaagttgttgtggacgcattggagggagttaagtaacaact\n" + + "tgggatcgcatacttataaaaattatatgttaaactttcacaaacgctgaagtccaaagt\n" + + "aactagcccaaacgcctcgagagtcactaggtattaatggtgtttgagttcctgtgaaat\n" + + "agtgttcgaaggtaaaatttatgtaccaaatcgaaagaacacttaataaggcttgcttgc\n" + + "acggaggtatgatgtttactgactctacaaccctaattttccagtacgtacattcattcc\n" + + "aataggttagttctcaaagtgctatacaggctcctcaattgatgatatgcttcagccgct\n" + + "ctatggatattagctcattttatttaggaagcccgcttagaggcttactatgagggaaat\n" + + "gccaaaatgtcatacttttcggtgtgtcccatatgacaccgctttacatagaatttgaat\n" + + "taaaacgcgctctcccgttcactaccatacttggtaccgtgcgcatattacatatagata\n" + + "taggatcattttttaaagctgtactaggtttgatcgacaatcttatgctatactatatga\n" + + "tgtaaccctcataatcaataccgatcgtacgatcctagcataggtggcaagcgattttat\n" + + "gccgattattgtgttaaatagtctgtgagtgtgattatcagggctacgttggtagagggg\n" + + "ttgtatagacctcgcacacattgtgacatacttaacaatatacgaaaactgatataataa\n" + + "atccccttacccaaacaccaatcccgttgaatcaactaccataacgtctcccatataaat\n" + + "tgcctacttgtttgcataaatctgaatacataacaccattgcaccttcttgtgttccaat\n" + + "cccgttaagattgccttgtcagatgatatgcaagaacaatagcatttgctagcaattatt\n" + + "aacagctcttcgaattgcctccacataacgcgggagggtatattttaatttggcaaatac\n" + + "taagtactgttggcgtcatatgctattaacggttggatattaagttatgtcagccgtaag\n" + + "caagagtgggcgaaatattttgttacccagtgagagcactcttagagtttggatacaata\n" + + "ggccatatgttgacttaagaggacgtaactacgccgtacaccattgttcaaccgacttct\n" + + "tggcaaatagaatcgtattagcaatcttaagaatagagacacgttcgtgttagggtatac\n" + + "tacaaatccgaaaatcttaagaggatcacctaaactgaaatttatacatatttcaacgtg\n" + + "gatagatttaacataattcagccacctccaacctgggagtaattttcagtagatttacta\n" + + "gatgattagtggcccaacgcacttgactatataagatctggggatcctaacctgacctat\n" + + "gagacaaaattggaaacgttaacagcccttatgtgtacaaagaaaagtaagttgttgctg\n" + + "ttcaacagatgatagtcatgacgcgtaacttcactatagtaaattgaaacaaatacgcaa\n" + + "tttagacagaatggtacggtcatgaatgacagtaattcgaagtgctagaccaacttaaaa\n" + + "taggtaaacgtgcccgaaaccccccttaacagaaagctgctatcatggtgcagtatcgac\n" + + "gtgttcagaaacttgtaacttttgagcaggtccgagcacatggaagtatatcacgtgttt\n" + + "ctgaaccggcttatccctaagatatatccgtcgcaaactttcgatttagtcccacgtaga\n" + + "gcccaagcgttgtgcgactccacgtgcatgcccagaaatacgagtttaaatttggttaca\n" + + "tggttaattttgaccgaagcatcgcactttatgattgataattggattcaatatgtcgcc\n" + + "ctatgcgaatgcaacatgatccacaatttggctataagacgtttaatccgtatcacactt\n" + + "tgtttgcggctagtatagtaacgcccgtgcaccaagagtcagtaacaattataagtactc\n" + + "cgcaggtacttcaaatataaaaactaatcaaacacgacccatatgatcatctgaagatat\n" + + "ttggaactttctcgacaaccaccctcgtactcaatacttacactaatcgacaggcacacg\n" + + "caacgtgtacagtcgcaccatattgagtcaagatttgcttagtggcgatgagcgtacacg\n" + + "cttatttctctagtcacaattagttatctacgagacatcacgagggagcaaataagcgat\n" + + "gttatggctacacataggcacgtatgaatatgatataagccagttaaacagtcgaaccat\n" + + "cgagcaaattctcatgcaccaacccacacgttgaggcacaaagagtaagctgtttgaatg\n" + + "taacttcttctgctgagcgggccccaacgtaaggatcaactagaagagaaaactcggtat\n" + + "tagtttaaatgcgtcacggagcatgagtgcatttcactaagaatgtctgtgtaaccaata\n" + + "taacatctatttgttatctgattgcctacttatggctttgcggtcgtggcgactaatgtc\n" + + "tccaatccttttgaggtcggtaccaactccctttaaattacgctgtgcaggctcatgcac\n" + + "tgcatacatatacggtagcaggtagggacctcacgcacccttattataatcaatagtagt\n" + + "tatcagtcaacgaggcaggaatgctgaggtcgaggtgttggtatattttctatgtgccgt\n" + + "ctaggcgactatcacgcattaccaggcgagatttaagccaattttgaatatagtcaacgt\n" + + "aatttttactatgggttccaccgaaacgccttgcacaactaagaatcccataaaatatcg\n" + + "atatcaaataaaagattgtgtcaataccttcatatatattttttcggttgactaacgtga\n" + + "actaaggttaggggttttgtatgtctatataggaaacagtttcttttctgtcctacttta\n" + + "gtaaagtcttcaagccttactccaaaatcacggtgattaagccgttactcagcagcatga\n" + + "ttctgcctgctcgggtcctaaaatccagccttgtaagagtcgctgtgtattagctaggga\n" + + "gacctttgttaaaaaggatatatcgcggcgggatgtgagtgcgtggcgcatactcaatct\n" + + "tcagctcgtgtcattataatatctctcccccacgcttttcactagatatgccgtgtaagc\n" + + "aaacaccttatgcttaatttcgaaaatattggtacttgaaaaaagctgtaggggtactta\n" + + "atgtctggtaggagatcaggagagaattgagtgtaaaaccgtaaagccctcacctgactt\n" + + "catgtaaatggcttagaagactccatgatttaataaatactacgaaggaaagactggatc"; } diff --git a/benchmarks/benchmarksgame/spectralnorm.java b/benchmarks/benchmarksgame/spectralnorm.java index fa2afcf..42432d8 100644 --- a/benchmarks/benchmarksgame/spectralnorm.java +++ b/benchmarks/benchmarksgame/spectralnorm.java @@ -2,20 +2,21 @@ * This benchmark has been ported from "The Computer Language Benchmarks Game" suite and slightly * modified to fit the benchmarking framework. * - * The original file is `spectralnorm/spectralnorm.java` from the archive - * available at - * http://benchmarksgame.alioth.debian.org/download/benchmarksgame-sourcecode.zip. - * See LICENSE file in the same folder (BSD 3-clause) + * The original file: + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/program/spectralnorm-java-1.html * * The Computer Language Benchmarks Game - * http://benchmarksgame.alioth.debian.org/ + * https://salsa.debian.org/benchmarksgame-team/benchmarksgame/ * * contributed by Java novice Jarkko Miettinen * modified ~3 lines of the original C#-version * by Isaac Gouy + * + * LICENSE: 3-Clause BSD + * https://benchmarksgame-team.pages.debian.net/benchmarksgame/license.html */ - /* +/* * Description: Eigenvalue using the power method. * Main Focus: TODO * @@ -24,68 +25,64 @@ package benchmarks.benchmarksgame; import java.text.DecimalFormat; -import java.text.NumberFormat; - -// CHECKSTYLE.OFF: .* -public class spectralnorm -{ - - private static final NumberFormat formatter = new DecimalFormat("#.000000000"); - - private final double Approximate(int n) { - // create unit vector - double[] u = new double[n]; - for (int i=0; i= 1; i--) { - first = new MessageThread(first, i); - if (i == THREAD_COUNT) { - last = first; - } - } - // close the ring: - last.nextThread = first; - - // start all Threads - MessageThread t = first; - do { - t.start(); - t = t.nextThread; - } while (t != first); - - first.enqueue(hopCount); - first.join(); // wait for System.exit - } - } - - public boolean verifyThreadRing() throws Exception { - timeThreadRing(1); - String expected = "498"; - String found = lastActedThreadName; - - if (!expected.equals(found)) { - System.out.println("ERROR: Expected " + expected + " but found " + found); - return false; - } - return true; - } - - public static void main(String[] args) throws Exception { - int rc = 0; - threadring obj = new threadring(); - - final long before = System.currentTimeMillis(); - obj.timeThreadRing(2); - final long after = System.currentTimeMillis(); - - if (!obj.verifyThreadRing()) { - rc++; - } - System.out.println("benchmarks/benchmarksgame/threadring: " + (after - before)); - System.exit(rc); - } -} -- cgit v1.2.3