diff --git a/dfa-decompose/.ruff.toml b/dfa-decompose/.ruff.toml new file mode 100644 index 0000000..ffd9640 --- /dev/null +++ b/dfa-decompose/.ruff.toml @@ -0,0 +1,5 @@ +indent-width = 2 +line-length = 320 + +[format] +quote-style = "single" diff --git a/dfa-decompose/README.md b/dfa-decompose/README.md new file mode 100644 index 0000000..951b81b --- /dev/null +++ b/dfa-decompose/README.md @@ -0,0 +1,20 @@ +dfa-decompose +============= + +Given a DFA, try to find smaller DFAs such that their intersection is the +input. + +``` +pip install -r requirements.txt +python main.py +``` + +## Copyright notice + +(c) 2025 Joshua Moerman, Open Universiteit, licensed under the EUPL (European +Union Public License). If you want to use this code and find the license not +suitable for you, then please do get in touch. + +``` +SPDX-License-Identifier: EUPL-1.2 +``` diff --git a/dfa-decompose/main.py b/dfa-decompose/main.py new file mode 100644 index 0000000..cfec48b --- /dev/null +++ b/dfa-decompose/main.py @@ -0,0 +1,195 @@ +# Copyright 2024-2025 Joshua Moerman, Open Universiteit. All rights reserved +# SPDX-License-Identifier: EUPL-1.2 + +import itertools +from pysat.solvers import Solver +from pysat.card import CardEnc +from pysat.formula import IDPool + +# Script to decompose a DFA as the intersection of smaller DFAs. +# As an example this is applied to the UTF-8 automaton, see +# https://joshuamoerman.nl/2025/6/The-UTF-8-Automaton.html + +# Regular language of UTF8 sequences (9 states including a sink state). +# The model used here is a complete DFA, bytes are mapped to classes +# as explained here: https://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + +# Possible improvements: +# - Allow partial models. The current smallest decomposition is as 6+4. +# Coincidentally, both components have a sink state and we get a +# decomposition of size 5+3 which is quite good. Encoding partiallity +# directly will always find a minimal decomposition. +# - Get rid of input "8", since it is never accepted in a UTF8 string. +# - Only use reduced_sizes and not size. This will reduce the number of +# variables and constraints. +# - Write a loop to search for smallest decompositions, this is now +# done by hand. + +# With 2 components, decomposable as: +# 5+5 NO +# 6+4 YES +# 7+3 YES +# 8+2 NO +# and everything below: NO + +# With 3 components, decomposable as: +# 4+4+4 NO +# 5+4+3 YES +# 5+5+2 ??? +# 6+3+3 YES +# 6+4+2 YES (see above) +# 7+3+2 YES (see above) +# 8+2+2 ??? +# any x+y+z such that the sum is 11 or less: NO +# any x+y+z such that the sum is 13 or more: YES +def exampleDfa(): + initial = 0 + final = set([0]) + alphabet = list(range(12)) + states = list(range(9)) + trans = {} + + trans[(0, 0)] = 0 + trans[(0, 2)] = 2 + trans[(0, 3)] = 3 + trans[(0, 4)] = 5 + trans[(0, 5)] = 8 + trans[(0, 6)] = 7 + trans[(0, 10)] = 4 + trans[(0, 11)] = 6 + trans[(2, 1)] = 0 + trans[(2, 7)] = 0 + trans[(2, 9)] = 0 + trans[(3, 1)] = 2 + trans[(3, 7)] = 2 + trans[(3, 9)] = 2 + trans[(4, 7)] = 2 + trans[(5, 1)] = 2 + trans[(5, 9)] = 2 + trans[(6, 7)] = 3 + trans[(6, 9)] = 3 + trans[(7, 1)] = 3 + trans[(7, 7)] = 3 + trans[(7, 9)] = 3 + trans[(8, 1)] = 3 + + assert len(trans) == 23 + + for s in states: + for a in alphabet: + if (s,a) not in trans: + trans[(s,a)] = 1 + return {'initial': initial, 'final': final, 'trans': trans} + + +class DfaEncode: + def __init__(self): + self.components = 3 + self.reduced_sizes = {0: 7, 1: 2, 2: 2} + print(f'SIZES = {self.reduced_sizes}') + self.size = max(self.reduced_sizes.values()) + self.alphabet = list(range(12)) + self.dfa = exampleDfa() + self.dfa_size = 9 + + self.vpool = IDPool() + self.solver = Solver() + + def var_bool(self, b): + return self.vpool.id(('bool', b)) + + def var_trans(self, m, s, a, t): + assert 0 <= m and m < self.components + assert 0 <= s and s < self.size + assert a in self.alphabet + assert 0 <= t and t < self.size + + return self.vpool.id(('trans', m, s, a, t)) + + def var_final(self, m, s): + assert 0 <= m and m < self.components + assert 0 <= s and s < self.size + + return self.vpool.id(('final', m, s)) + + def var_bisim(self, ss, org): + assert len(ss) == self.components + + return self.vpool.id(('bisim', tuple(ss), org)) + + def constrain_component(self, m): + for s in range(self.size): + for a in self.alphabet: + lits = [self.var_trans(m, s, a, t) for t in range(self.reduced_sizes[m])] + cnf = CardEnc.equals(lits, 1, vpool=self.vpool) + self.solver.append_formula(cnf.clauses) + + def constrain_bisim(self): + ss_init = [0 for m in range(self.components)] + org_init = self.dfa['initial'] + + # we require initial states to be bisimilar + self.solver.add_clause([self.var_bisim(ss_init, org_init)]) + + for org in range(self.dfa_size): + for ss in itertools.product(range(self.size), repeat=self.components): + # require intersection of components have the right acceptance + # if bisim and all components accept => then original dfa accepts + clause1 = [-self.var_bisim(ss, org)] + [-self.var_final(m, ss[m]) for m in range(self.components)] + [self.var_bool(org in self.dfa['final'])] + self.solver.add_clause(clause1) + # if bisim and original dfa accepts => then each component accepts + for m in range(self.components): + clause2 = [-self.var_bisim(ss, org)] + [-self.var_bool(org in self.dfa['final'])] + [self.var_final(m, ss[m])] + self.solver.add_clause(clause2) + + # require transitions to bisimilar states + for a in self.alphabet: + org2 = self.dfa['trans'][(org, a)] + + for tt in itertools.product(range(self.size), repeat=self.components): + clause = [-self.var_bisim(ss, org)] + [-self.var_trans(m, ss[m], a, tt[m]) for m in range(self.components)] + [self.var_bisim(tt, org2)] + self.solver.add_clause(clause) + + def constraint(self): + self.solver.add_clause([-self.var_bool(False)]) + self.solver.add_clause([self.var_bool(True)]) + + for m in range(self.components): + self.constrain_component(m) + + self.constrain_bisim() + + def solve(self): + self.solver.solve() + + def get_model(self): + lits = self.solver.get_model() + model = set([lit for lit in lits if lit > 0]) + + components = {} + for m in range(self.components): + dfa = {'trans': {}, 'final': set(), 'initial': 0} + for s in range(self.size): + if self.var_final(m, s) in model: + dfa['final'].add(s) + + for a in self.alphabet: + for t in range(self.size): + if self.var_trans(m, s, a, t) in model: + dfa['trans'][(s, a)] = t + + components[m] = dfa + + return components + + +def main(): + encoder = DfaEncode() + encoder.constraint() + encoder.solver.solve() + m = encoder.get_model() + print(m) + + +if __name__ == '__main__': + main() diff --git a/dfa-decompose/requirements.txt b/dfa-decompose/requirements.txt new file mode 100644 index 0000000..e7de295 --- /dev/null +++ b/dfa-decompose/requirements.txt @@ -0,0 +1 @@ +python-sat diff --git a/dfa-decompose/results-2/comp2-6-4.txt b/dfa-decompose/results-2/comp2-6-4.txt new file mode 100644 index 0000000..47890df --- /dev/null +++ b/dfa-decompose/results-2/comp2-6-4.txt @@ -0,0 +1,16 @@ +{0: + {'trans': + {(0, 0): 0, (0, 1): 4, (0, 2): 2, (0, 3): 5, (0, 4): 5, (0, 5): 3, (0, 6): 1, (0, 7): 4, (0, 8): 4, (0, 9): 4, (0, 10): 3, (0, 11): 1, (1, 0): 4, (1, 1): 5, (1, 2): 4, (1, 3): 4, (1, 4): 4, (1, 5): 4, (1, 6): 4, (1, 7): 5, (1, 8): 4, (1, 9): 5, (1, 10): 4, (1, 11): 4, (2, 0): 4, (2, 1): 0, (2, 2): 4, (2, 3): 4, (2, 4): 4, (2, 5): 4, (2, 6): 4, (2, 7): 0, (2, 8): 1, (2, 9): 0, (2, 10): 4, (2, 11): 4, (3, 0): 4, (3, 1): 5, (3, 2): 4, (3, 3): 4, (3, 4): 4, (3, 5): 4, (3, 6): 4, (3, 7): 2, (3, 8): 4, (3, 9): 4, (3, 10): 4, (3, 11): 4, (4, 0): 4, (4, 1): 4, (4, 2): 4, (4, 3): 4, (4, 4): 4, (4, 5): 4, (4, 6): 4, (4, 7): 4, (4, 8): 4, (4, 9): 4, (4, 10): 4, (4, 11): 4, (5, 0): 4, (5, 1): 2, (5, 2): 4, (5, 3): 4, (5, 4): 4, (5, 5): 4, (5, 6): 4, (5, 7): 2, (5, 8): 4, (5, 9): 2, (5, 10): 4, (5, 11): 4}, + 'final': + {0}, + 'initial': + 0}, + +1: + {'trans': + {(0, 0): 1, (0, 1): 1, (0, 2): 1, (0, 3): 1, (0, 4): 0, (0, 5): 0, (0, 6): 1, (0, 7): 2, (0, 8): 1, (0, 9): 1, (0, 10): 3, (0, 11): 3, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 0, (1, 5): 0, (1, 6): 1, (1, 7): 1, (1, 8): 2, (1, 9): 1, (1, 10): 3, (1, 11): 3, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 2, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 3, (3, 1): 2, (3, 2): 0, (3, 3): 2, (3, 4): 2, (3, 5): 3, (3, 6): 1, (3, 7): 1, (3, 8): 3, (3, 9): 1, (3, 10): 0, (3, 11): 0, (4, 0): 3, (4, 1): 3, (4, 2): 3, (4, 3): 3, (4, 4): 3, (4, 5): 3, (4, 6): 3, (4, 7): 3, (4, 8): 3, (4, 9): 3, (4, 10): 3, (4, 11): 3, (5, 0): 3, (5, 1): 3, (5, 2): 3, (5, 3): 3, (5, 4): 3, (5, 5): 3, (5, 6): 3, (5, 7): 3, (5, 8): 3, (5, 9): 3, (5, 10): 3, (5, 11): 3}, + 'final': + {0, 1}, + 'initial': + 0} +} \ No newline at end of file diff --git a/dfa-decompose/results-2/comp2-7-3.txt b/dfa-decompose/results-2/comp2-7-3.txt new file mode 100644 index 0000000..01b5a4f --- /dev/null +++ b/dfa-decompose/results-2/comp2-7-3.txt @@ -0,0 +1,10 @@ +{ + 0: { + 'trans': {(0, 0): 0, (0, 1): 1, (0, 2): 5, (0, 3): 6, (0, 4): 6, (0, 5): 4, (0, 6): 2, (0, 7): 1, (0, 8): 6, (0, 9): 1, (0, 10): 4, (0, 11): 3, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 1, (1, 5): 1, (1, 6): 1, (1, 7): 1, (1, 8): 6, (1, 9): 1, (1, 10): 1, (1, 11): 1, (2, 0): 1, (2, 1): 6, (2, 2): 1, (2, 3): 1, (2, 4): 1, (2, 5): 1, (2, 6): 1, (2, 7): 6, (2, 8): 6, (2, 9): 6, (2, 10): 1, (2, 11): 1, (3, 0): 1, (3, 1): 1, (3, 2): 1, (3, 3): 1, (3, 4): 1, (3, 5): 1, (3, 6): 1, (3, 7): 6, (3, 8): 6, (3, 9): 6, (3, 10): 1, (3, 11): 1, (4, 0): 1, (4, 1): 6, (4, 2): 1, (4, 3): 1, (4, 4): 0, (4, 5): 1, (4, 6): 1, (4, 7): 5, (4, 8): 1, (4, 9): 1, (4, 10): 1, (4, 11): 1, (5, 0): 1, (5, 1): 0, (5, 2): 1, (5, 3): 1, (5, 4): 1, (5, 5): 1, (5, 6): 1, (5, 7): 0, (5, 8): 6, (5, 9): 0, (5, 10): 1, (5, 11): 1, (6, 0): 1, (6, 1): 5, (6, 2): 1, (6, 3): 1, (6, 4): 1, (6, 5): 1, (6, 6): 1, (6, 7): 5, (6, 8): 6, (6, 9): 5, (6, 10): 1, (6, 11): 1}, + 'final': {0}, + 'initial': 0}, + 1: { + 'trans': {(0, 0): 0, (0, 1): 2, (0, 2): 2, (0, 3): 0, (0, 4): 1, (0, 5): 2, (0, 6): 2, (0, 7): 2, (0, 8): 2, (0, 9): 2, (0, 10): 0, (0, 11): 2, (1, 0): 1, (1, 1): 2, (1, 2): 0, (1, 3): 2, (1, 4): 2, (1, 5): 1, (1, 6): 0, (1, 7): 0, (1, 8): 2, (1, 9): 2, (1, 10): 1, (1, 11): 0, (2, 0): 2, (2, 1): 0, (2, 2): 0, (2, 3): 2, (2, 4): 2, (2, 5): 1, (2, 6): 0, (2, 7): 0, (2, 8): 2, (2, 9): 0, (2, 10): 1, (2, 11): 0, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2, (5, 0): 2, (5, 1): 2, (5, 2): 2, (5, 3): 2, (5, 4): 2, (5, 5): 2, (5, 6): 2, (5, 7): 2, (5, 8): 2, (5, 9): 2, (5, 10): 2, (5, 11): 2, (6, 0): 2, (6, 1): 2, (6, 2): 2, (6, 3): 2, (6, 4): 2, (6, 5): 2, (6, 6): 2, (6, 7): 2, (6, 8): 2, (6, 9): 2, (6, 10): 2, (6, 11): 2}, + 'final': {0}, + 'initial': 0} +} diff --git a/dfa-decompose/results-2/comp2-diagram.txt b/dfa-decompose/results-2/comp2-diagram.txt new file mode 100644 index 0000000..c4d2e16 --- /dev/null +++ b/dfa-decompose/results-2/comp2-diagram.txt @@ -0,0 +1,16 @@ + + 8,5+ YES + / \ + 7,5 YES 8,4 YES + / \ / \ + 6,5 YES 7,4 YES 8,3 YES + / \ / \ / \ + 5,5 no 6,4 YES 7,3 YES 8,2 no + \ / \ / \ / + 5,4 no 6,3 no 7,2 no + / \ / \ / + 4,4 no 5,3 no 6,2 no + \ / \ / + 4,3 no 5,2 no + \ / + 4-,2 no diff --git a/dfa-decompose/results-2/comp2_1.dot b/dfa-decompose/results-2/comp2_1.dot new file mode 100644 index 0000000..4549dac --- /dev/null +++ b/dfa-decompose/results-2/comp2_1.dot @@ -0,0 +1,15 @@ +digraph g { +s0 [shape="doublecircle" label="s0"]; +s0 -> s0 [label="0x00-0x7F"] +s0 -> s2 [label="0xC2-0xDF"] +s0 -> s5 [label="0xE1-0xEF"] +s0 -> s3 [label="0xE0, 0xF4"] +s0 -> s1 [label="0xF0-0xF3"] +s1 -> s5 [label="0x80-0xBF"] +s2 -> s0 [label="0x80-0xBF"] +s3 -> s5 [label="0x80-0x8F"] +s3 -> s2 [label="0xA0-0xBF"] +s5 -> s2 [label="0x80-0xBF"] +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; +} \ No newline at end of file diff --git a/dfa-decompose/results-2/comp2_1.pdf b/dfa-decompose/results-2/comp2_1.pdf new file mode 100644 index 0000000..f3605fc Binary files /dev/null and b/dfa-decompose/results-2/comp2_1.pdf differ diff --git a/dfa-decompose/results-2/comp2_2.dot b/dfa-decompose/results-2/comp2_2.dot new file mode 100644 index 0000000..f5008e4 --- /dev/null +++ b/dfa-decompose/results-2/comp2_2.dot @@ -0,0 +1,15 @@ +digraph g { +s0 [shape="doublecircle" label="s0"]; +s1 [shape="doublecircle" label="s1"]; +s0 -> s1 [label="0x00-0x9F,\n0xC2-0xDF,\n0xE1-0xEC,\n0xEE-0xEF,\n0xF1-0xF3"] +s0 -> s0 [label="0xED, 0xF4"] +s0 -> s3 [label="0xE0, 0xF0"] +s1 -> s1 [label="0x00-0xBF, 0xC2-0xDF, 0xE1-0xEC, 0xEE-0xEF, 0xF1-0xF3"] +s1 -> s0 [label="0xED, 0xF4"] +s1 -> s3 [label="0xE0, 0xF0"] +s3 -> s3 [label="0x00-0x7F, 0xF4"] +s3 -> s0 [label="0xC2-0xE0, 0xF0"] +s3 -> s1 [label="0x90-0xBF, 0xF1-0xF3"] +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; +} \ No newline at end of file diff --git a/dfa-decompose/results-2/comp2_2.pdf b/dfa-decompose/results-2/comp2_2.pdf new file mode 100644 index 0000000..6a65fc2 Binary files /dev/null and b/dfa-decompose/results-2/comp2_2.pdf differ diff --git a/dfa-decompose/results-3/comp3-5-4-3.txt b/dfa-decompose/results-3/comp3-5-4-3.txt new file mode 100644 index 0000000..34e633e --- /dev/null +++ b/dfa-decompose/results-3/comp3-5-4-3.txt @@ -0,0 +1,2 @@ +SIZES = {0: 5, 1: 4, 2: 3} +{0: {'trans': {(0, 0): 0, (0, 1): 3, (0, 2): 2, (0, 3): 4, (0, 4): 4, (0, 5): 1, (0, 6): 1, (0, 7): 3, (0, 8): 2, (0, 9): 3, (0, 10): 4, (0, 11): 1, (1, 0): 3, (1, 1): 4, (1, 2): 3, (1, 3): 3, (1, 4): 3, (1, 5): 3, (1, 6): 3, (1, 7): 4, (1, 8): 2, (1, 9): 4, (1, 10): 0, (1, 11): 3, (2, 0): 3, (2, 1): 0, (2, 2): 3, (2, 3): 3, (2, 4): 3, (2, 5): 3, (2, 6): 3, (2, 7): 0, (2, 8): 2, (2, 9): 0, (2, 10): 0, (2, 11): 3, (3, 0): 3, (3, 1): 3, (3, 2): 3, (3, 3): 3, (3, 4): 3, (3, 5): 3, (3, 6): 3, (3, 7): 3, (3, 8): 2, (3, 9): 3, (3, 10): 0, (3, 11): 3, (4, 0): 3, (4, 1): 2, (4, 2): 3, (4, 3): 3, (4, 4): 3, (4, 5): 3, (4, 6): 3, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 0, (4, 11): 3}, 'final': {0}, 'initial': 0}, 1: {'trans': {(0, 0): 1, (0, 1): 3, (0, 2): 3, (0, 3): 3, (0, 4): 0, (0, 5): 0, (0, 6): 3, (0, 7): 2, (0, 8): 3, (0, 9): 3, (0, 10): 1, (0, 11): 1, (1, 0): 1, (1, 1): 2, (1, 2): 3, (1, 3): 3, (1, 4): 0, (1, 5): 0, (1, 6): 3, (1, 7): 3, (1, 8): 3, (1, 9): 3, (1, 10): 1, (1, 11): 1, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 3, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 0, (3, 1): 3, (3, 2): 3, (3, 3): 3, (3, 4): 0, (3, 5): 0, (3, 6): 3, (3, 7): 3, (3, 8): 3, (3, 9): 3, (3, 10): 1, (3, 11): 1, (4, 0): 3, (4, 1): 3, (4, 2): 3, (4, 3): 3, (4, 4): 3, (4, 5): 3, (4, 6): 3, (4, 7): 3, (4, 8): 3, (4, 9): 3, (4, 10): 3, (4, 11): 3}, 'final': {0, 1, 3}, 'initial': 0}, 2: {'trans': {(0, 0): 0, (0, 1): 0, (0, 2): 0, (0, 3): 0, (0, 4): 0, (0, 5): 1, (0, 6): 0, (0, 7): 0, (0, 8): 2, (0, 9): 0, (0, 10): 1, (0, 11): 0, (1, 0): 2, (1, 1): 0, (1, 2): 2, (1, 3): 2, (1, 4): 2, (1, 5): 2, (1, 6): 2, (1, 7): 0, (1, 8): 2, (1, 9): 2, (1, 10): 2, (1, 11): 2, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 2, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2}, 'final': {0}, 'initial': 0}} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3-6-3-3.txt b/dfa-decompose/results-3/comp3-6-3-3.txt new file mode 100644 index 0000000..1112b16 --- /dev/null +++ b/dfa-decompose/results-3/comp3-6-3-3.txt @@ -0,0 +1,2 @@ +SIZES = {0: 6, 1: 3, 2: 3} +{0: {'trans': {(0, 0): 0, (0, 1): 1, (0, 2): 2, (0, 3): 4, (0, 4): 4, (0, 5): 5, (0, 6): 3, (0, 7): 1, (0, 8): 5, (0, 9): 1, (0, 10): 5, (0, 11): 3, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 1, (1, 5): 1, (1, 6): 1, (1, 7): 1, (1, 8): 5, (1, 9): 1, (1, 10): 1, (1, 11): 1, (2, 0): 1, (2, 1): 0, (2, 2): 1, (2, 3): 1, (2, 4): 1, (2, 5): 1, (2, 6): 1, (2, 7): 0, (2, 8): 5, (2, 9): 0, (2, 10): 1, (2, 11): 1, (3, 0): 1, (3, 1): 4, (3, 2): 1, (3, 3): 1, (3, 4): 1, (3, 5): 1, (3, 6): 1, (3, 7): 4, (3, 8): 5, (3, 9): 4, (3, 10): 1, (3, 11): 1, (4, 0): 1, (4, 1): 2, (4, 2): 1, (4, 3): 1, (4, 4): 1, (4, 5): 1, (4, 6): 1, (4, 7): 2, (4, 8): 5, (4, 9): 2, (4, 10): 1, (4, 11): 1, (5, 0): 1, (5, 1): 4, (5, 2): 1, (5, 3): 1, (5, 4): 1, (5, 5): 1, (5, 6): 1, (5, 7): 2, (5, 8): 5, (5, 9): 1, (5, 10): 1, (5, 11): 1}, 'final': {0}, 'initial': 0}, 1: {'trans': {(0, 0): 0, (0, 1): 1, (0, 2): 1, (0, 3): 2, (0, 4): 0, (0, 5): 1, (0, 6): 1, (0, 7): 2, (0, 8): 0, (0, 9): 1, (0, 10): 2, (0, 11): 1, (1, 0): 1, (1, 1): 2, (1, 2): 2, (1, 3): 1, (1, 4): 1, (1, 5): 0, (1, 6): 2, (1, 7): 2, (1, 8): 0, (1, 9): 2, (1, 10): 0, (1, 11): 2, (2, 0): 2, (2, 1): 1, (2, 2): 1, (2, 3): 2, (2, 4): 0, (2, 5): 1, (2, 6): 1, (2, 7): 1, (2, 8): 0, (2, 9): 1, (2, 10): 2, (2, 11): 1, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2, (5, 0): 2, (5, 1): 2, (5, 2): 2, (5, 3): 2, (5, 4): 2, (5, 5): 2, (5, 6): 2, (5, 7): 2, (5, 8): 2, (5, 9): 2, (5, 10): 2, (5, 11): 2}, 'final': {0, 2}, 'initial': 0}, 2: {'trans': {(0, 0): 0, (0, 1): 2, (0, 2): 1, (0, 3): 1, (0, 4): 1, (0, 5): 1, (0, 6): 1, (0, 7): 1, (0, 8): 1, (0, 9): 1, (0, 10): 0, (0, 11): 0, (1, 0): 1, (1, 1): 1, (1, 2): 1, (1, 3): 1, (1, 4): 1, (1, 5): 1, (1, 6): 1, (1, 7): 1, (1, 8): 1, (1, 9): 1, (1, 10): 0, (1, 11): 0, (2, 0): 2, (2, 1): 2, (2, 2): 2, (2, 3): 2, (2, 4): 2, (2, 5): 2, (2, 6): 2, (2, 7): 2, (2, 8): 1, (2, 9): 2, (2, 10): 2, (2, 11): 2, (3, 0): 2, (3, 1): 2, (3, 2): 2, (3, 3): 2, (3, 4): 2, (3, 5): 2, (3, 6): 2, (3, 7): 2, (3, 8): 2, (3, 9): 2, (3, 10): 2, (3, 11): 2, (4, 0): 2, (4, 1): 2, (4, 2): 2, (4, 3): 2, (4, 4): 2, (4, 5): 2, (4, 6): 2, (4, 7): 2, (4, 8): 2, (4, 9): 2, (4, 10): 2, (4, 11): 2, (5, 0): 2, (5, 1): 2, (5, 2): 2, (5, 3): 2, (5, 4): 2, (5, 5): 2, (5, 6): 2, (5, 7): 2, (5, 8): 2, (5, 9): 2, (5, 10): 2, (5, 11): 2}, 'final': {0, 1}, 'initial': 0}} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_1.dot b/dfa-decompose/results-3/comp3_1.dot new file mode 100644 index 0000000..a237515 --- /dev/null +++ b/dfa-decompose/results-3/comp3_1.dot @@ -0,0 +1,17 @@ +digraph g{ +0 -> 0 [label="[0]"] +0 -> 1 [label="[5, 6, 11]"] +0 -> 2 [label="[2]"] +0 -> 3 [label="[1, 7, 9]"] +0 -> 4 [label="[3, 4, 10]"] +1 -> 0 [label="[10]"] +1 -> 3 [label="[0, 2, 3, 4, 5, 6, 11]"] +1 -> 4 [label="[1, 7, 9]"] +2 -> 0 [label="[1, 7, 9, 10]"] +2 -> 3 [label="[0, 2, 3, 4, 5, 6, 11]"] +3 -> 0 [label="[10]"] +3 -> 3 [label="[0, 1, 2, 3, 4, 5, 6, 7, 9, 11]"] +4 -> 0 [label="[10]"] +4 -> 2 [label="[1, 7, 9]"] +4 -> 3 [label="[0, 2, 3, 4, 5, 6, 11]"] +} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_1.pdf b/dfa-decompose/results-3/comp3_1.pdf new file mode 100644 index 0000000..8f929b2 Binary files /dev/null and b/dfa-decompose/results-3/comp3_1.pdf differ diff --git a/dfa-decompose/results-3/comp3_2.dot b/dfa-decompose/results-3/comp3_2.dot new file mode 100644 index 0000000..bc2382f --- /dev/null +++ b/dfa-decompose/results-3/comp3_2.dot @@ -0,0 +1,11 @@ +digraph g{ +0 -> 0 [label="[4, 5]"] +0 -> 1 [label="[0, 10, 11]"] +0 -> 3 [label="[1, 2, 3, 6, 9]"] +1 -> 0 [label="[4, 5]"] +1 -> 1 [label="[0, 10, 11]"] +1 -> 3 [label="[2, 3, 6, 7, 9]"] +3 -> 0 [label="[0, 4, 5]"] +3 -> 1 [label="[10, 11]"] +3 -> 3 [label="[1, 2, 3, 6, 7, 9]"] +} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_2.pdf b/dfa-decompose/results-3/comp3_2.pdf new file mode 100644 index 0000000..d15a3c0 Binary files /dev/null and b/dfa-decompose/results-3/comp3_2.pdf differ diff --git a/dfa-decompose/results-3/comp3_3.dot b/dfa-decompose/results-3/comp3_3.dot new file mode 100644 index 0000000..747bdc7 --- /dev/null +++ b/dfa-decompose/results-3/comp3_3.dot @@ -0,0 +1,5 @@ +digraph g{ +0 -> 0 [label="[0, 1, 2, 3, 4, 6, 7, 9, 11]"] +0 -> 1 [label="[5, 10]"] +1 -> 0 [label="[1, 7]"] +} \ No newline at end of file diff --git a/dfa-decompose/results-3/comp3_3.pdf b/dfa-decompose/results-3/comp3_3.pdf new file mode 100644 index 0000000..1455a6c Binary files /dev/null and b/dfa-decompose/results-3/comp3_3.pdf differ diff --git a/dfa-decompose/results-3/triples.dot b/dfa-decompose/results-3/triples.dot new file mode 100644 index 0000000..f4245dd --- /dev/null +++ b/dfa-decompose/results-3/triples.dot @@ -0,0 +1,170 @@ +digraph g { +t5x4x4 -> t6x4x4 +t4x3x2 -> t4x4x2 +t7x5x2 -> t7x5x3 +t8x4x4 -> t8x5x4 +t7x7x4 -> t7x7x5 +t6x5x2 -> t6x6x2 +t7x6x3 -> t7x6x4 +t8x6x5 -> t8x7x5 +t5x3x2 -> t6x3x2 +t6x5x3 -> t6x5x4 +t7x3x3 -> t8x3x3 +t5x4x2 -> t5x5x2 +t8x2x2 -> t8x3x2 +t6x5x4 -> t7x5x4 +t7x2x2 -> t7x3x2 +t7x6x6 -> t7x7x6 +t7x5x3 -> t7x6x3 +t5x3x2 -> t5x3x3 +t7x4x3 -> t8x4x3 +t6x4x2 -> t6x4x3 +t4x4x2 -> t5x4x2 +t5x5x2 -> t6x5x2 +t4x3x2 -> t4x3x3 +t6x3x2 -> t6x4x2 +t7x5x2 -> t8x5x2 +t8x4x2 -> t8x5x2 +t7x5x5 -> t7x6x5 +t8x6x3 -> t8x7x3 +t7x6x4 -> t7x6x5 +t7x7x7 -> t8x7x7 +t7x3x2 -> t8x3x2 +t2x2x2 -> t3x2x2 +t4x4x4 -> t5x4x4 +t7x4x3 -> t7x4x4 +t7x5x3 -> t8x5x3 +t8x8x4 -> t8x8x5 +t5x2x2 -> t5x3x2 +t4x4x3 -> t4x4x4 +t8x7x6 -> t8x8x6 +t3x3x2 -> t4x3x2 +t6x6x3 -> t7x6x3 +t8x5x5 -> t8x6x5 +t6x6x5 -> t6x6x6 +t8x4x2 -> t8x4x3 +t5x5x4 -> t5x5x5 +t8x6x6 -> t8x7x6 +t6x5x5 -> t6x6x5 +t8x6x2 -> t8x6x3 +t7x5x4 -> t8x5x4 +t7x6x5 -> t8x6x5 +t8x8x6 -> t8x8x7 +t7x5x3 -> t7x5x4 +t6x5x4 -> t6x5x5 +t8x5x4 -> t8x5x5 +t7x6x2 -> t7x6x3 +t8x7x4 -> t8x8x4 +t5x5x3 -> t5x5x4 +t5x4x3 -> t5x5x3 +t6x4x3 -> t6x4x4 +t7x6x4 -> t8x6x4 +t7x7x3 -> t7x7x4 +t6x6x6 -> t7x6x6 +t4x2x2 -> t5x2x2 +t6x5x3 -> t6x6x3 +t7x4x2 -> t7x4x3 +t4x3x3 -> t4x4x3 +t6x4x4 -> t6x5x4 +t6x5x5 -> t7x5x5 +t6x5x4 -> t6x6x4 +t8x7x2 -> t8x8x2 +t6x4x3 -> t6x5x3 +t8x7x4 -> t8x7x5 +t7x7x5 -> t7x7x6 +t8x8x7 -> t8x8x8 +t7x4x4 -> t7x5x4 +t6x6x4 -> t7x6x4 +t8x5x3 -> t8x5x4 +t7x7x2 -> t8x7x2 +t7x6x5 -> t7x7x5 +t3x3x2 -> t3x3x3 +t7x3x3 -> t7x4x3 +t8x7x2 -> t8x7x3 +t6x6x5 -> t7x6x5 +t4x2x2 -> t4x3x2 +t5x5x3 -> t6x5x3 +t5x4x3 -> t5x4x4 +t4x3x3 -> t5x3x3 +t6x3x2 -> t6x3x3 +t7x3x2 -> t7x3x3 +t6x5x3 -> t7x5x3 +t7x7x3 -> t8x7x3 +t7x7x6 -> t8x7x6 +t4x4x3 -> t5x4x3 +t6x6x2 -> t7x6x2 +t8x5x2 -> t8x5x3 +t7x4x4 -> t8x4x4 +t8x6x3 -> t8x6x4 +t8x4x3 -> t8x5x3 +t5x4x2 -> t6x4x2 +t6x2x2 -> t7x2x2 +t7x4x2 -> t8x4x2 +t3x2x2 -> t4x2x2 +t8x3x2 -> t8x4x2 +t6x3x3 -> t6x4x3 +t7x4x3 -> t7x5x3 +t8x7x5 -> t8x7x6 +t7x2x2 -> t8x2x2 +t8x6x4 -> t8x6x5 +t7x7x6 -> t7x7x7 +t5x3x3 -> t6x3x3 +t6x2x2 -> t6x3x2 +t8x6x2 -> t8x7x2 +t6x5x2 -> t6x5x3 +t7x3x2 -> t7x4x2 +t6x4x2 -> t7x4x2 +t4x4x2 -> t4x4x3 +t8x6x5 -> t8x6x6 +t6x6x4 -> t6x6x5 +t8x7x3 -> t8x8x3 +t5x5x4 -> t6x5x4 +t5x4x2 -> t5x4x3 +t8x5x4 -> t8x6x4 +t5x5x2 -> t5x5x3 +t6x3x3 -> t7x3x3 +t3x3x3 -> t4x3x3 +t8x6x4 -> t8x7x4 +t6x5x2 -> t7x5x2 +t5x2x2 -> t6x2x2 +t8x4x3 -> t8x4x4 +t5x3x2 -> t5x4x2 +t7x5x4 -> t7x6x4 +t7x6x2 -> t8x6x2 +t6x6x3 -> t6x6x4 +t6x4x4 -> t7x4x4 +t8x7x3 -> t8x7x4 +t7x6x2 -> t7x7x2 +t7x7x5 -> t8x7x5 +t7x4x2 -> t7x5x2 +t7x5x2 -> t7x6x2 +t7x7x2 -> t7x7x3 +t7x6x4 -> t7x7x4 +t7x6x6 -> t8x6x6 +t7x6x5 -> t7x6x6 +t7x5x4 -> t7x5x5 +t4x3x2 -> t5x3x2 +t8x8x5 -> t8x8x6 +t6x6x2 -> t6x6x3 +t6x4x3 -> t7x4x3 +t7x6x3 -> t7x7x3 +t8x7x7 -> t8x8x7 +t8x5x3 -> t8x6x3 +t6x3x2 -> t7x3x2 +t5x4x4 -> t5x5x4 +t8x8x3 -> t8x8x4 +t8x7x6 -> t8x7x7 +t8x5x2 -> t8x6x2 +t3x2x2 -> t3x3x2 +t7x6x3 -> t8x6x3 +t8x3x3 -> t8x4x3 +t5x3x3 -> t5x4x3 +t7x5x5 -> t8x5x5 +t7x7x4 -> t8x7x4 +t8x7x5 -> t8x8x5 +t8x3x2 -> t8x3x3 +t8x8x2 -> t8x8x3 +t6x4x2 -> t6x5x2 +t5x4x3 -> t6x4x3 +t5x5x5 -> t6x5x5 +} \ No newline at end of file diff --git a/dfa-decompose/results-3/triples.svg b/dfa-decompose/results-3/triples.svg new file mode 100644 index 0000000..5a461e9 --- /dev/null +++ b/dfa-decompose/results-3/triples.svg @@ -0,0 +1 @@ +t5x4x4t6x4x4t4x3x2t4x4x2t7x5x2t7x5x3t8x4x4t8x5x4t7x7x4t7x7x5t6x5x2t6x6x2t7x6x3t7x6x4t8x6x5t8x7x5t5x3x2t6x3x2t6x5x3t6x5x4t7x3x3t8x3x3t5x4x2t5x5x2t8x2x2t8x3x2t7x5x4t7x2x2t7x3x2t7x6x6t7x7x6t5x3x3t7x4x3t8x4x3t6x4x2t6x4x3t4x3x3t8x5x2t8x4x2t7x5x5t7x6x5t8x6x3t8x7x3t7x7x7t8x7x7t2x2x2t3x2x2t4x4x4t7x4x4t8x5x3t8x8x4t8x8x5t5x2x2t4x4x3t8x7x6t8x8x6t3x3x2t6x6x3t8x5x5t6x6x5t6x6x6t5x5x4t5x5x5t8x6x6t6x5x5t8x6x2t8x8x7t7x6x2t8x7x4t5x5x3t5x4x3t8x6x4t7x7x3t4x2x2t7x4x2t6x6x4t8x7x2t8x8x2t8x8x8t7x7x2t3x3x3t6x3x3t6x2x2t8x8x3 \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..cb35562 --- /dev/null +++ b/pom.xml @@ -0,0 +1,71 @@ + + 4.0.0 + + nl.ou.utf8learner + utf8learner + 1.0.0-SNAPSHOT + + + UTF-8 + 11 + + + + + net.automatalib.distribution + automata-distribution + 0.13.0-SNAPSHOT + pom + + + de.learnlib.distribution + learnlib-distribution + 0.19.0-SNAPSHOT + pom + + + commons-codec + commons-codec + 1.18.0 + + + com.ibm.icu + icu4j + 77.1 + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + + + nl.ou.utf8learner.Main + + + + + *:* + + module-info.class + + + + + + + + + + \ No newline at end of file diff --git a/results/apache.dot b/results/apache.dot new file mode 100644 index 0000000..dbe67e5 --- /dev/null +++ b/results/apache.dot @@ -0,0 +1,2320 @@ +digraph g { + + s0 [shape="doublecircle" label="s0"]; + s1 [shape="circle" label="s1"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0"]; + s0 -> s0 [label="1"]; + s0 -> s0 [label="2"]; + s0 -> s0 [label="3"]; + s0 -> s0 [label="4"]; + s0 -> s0 [label="5"]; + s0 -> s0 [label="6"]; + s0 -> s0 [label="7"]; + s0 -> s0 [label="8"]; + s0 -> s0 [label="9"]; + s0 -> s0 [label="10"]; + s0 -> s0 [label="11"]; + s0 -> s0 [label="12"]; + s0 -> s0 [label="13"]; + s0 -> s0 [label="14"]; + s0 -> s0 [label="15"]; + s0 -> s0 [label="16"]; + s0 -> s0 [label="17"]; + s0 -> s0 [label="18"]; + s0 -> s0 [label="19"]; + s0 -> s0 [label="20"]; + s0 -> s0 [label="21"]; + s0 -> s0 [label="22"]; + s0 -> s0 [label="23"]; + s0 -> s0 [label="24"]; + s0 -> s0 [label="25"]; + s0 -> s0 [label="26"]; + s0 -> s0 [label="27"]; + s0 -> s0 [label="28"]; + s0 -> s0 [label="29"]; + s0 -> s0 [label="30"]; + s0 -> s0 [label="31"]; + s0 -> s0 [label="32"]; + s0 -> s0 [label="33"]; + s0 -> s0 [label="34"]; + s0 -> s0 [label="35"]; + s0 -> s0 [label="36"]; + s0 -> s0 [label="37"]; + s0 -> s0 [label="38"]; + s0 -> s0 [label="39"]; + s0 -> s0 [label="40"]; + s0 -> s0 [label="41"]; + s0 -> s0 [label="42"]; + s0 -> s0 [label="43"]; + s0 -> s0 [label="44"]; + s0 -> s0 [label="45"]; + s0 -> s0 [label="46"]; + s0 -> s0 [label="47"]; + s0 -> s0 [label="48"]; + s0 -> s0 [label="49"]; + s0 -> s0 [label="50"]; + s0 -> s0 [label="51"]; + s0 -> s0 [label="52"]; + s0 -> s0 [label="53"]; + s0 -> s0 [label="54"]; + s0 -> s0 [label="55"]; + s0 -> s0 [label="56"]; + s0 -> s0 [label="57"]; + s0 -> s0 [label="58"]; + s0 -> s0 [label="59"]; + s0 -> s0 [label="60"]; + s0 -> s0 [label="61"]; + s0 -> s0 [label="62"]; + s0 -> s0 [label="63"]; + s0 -> s0 [label="64"]; + s0 -> s0 [label="65"]; + s0 -> s0 [label="66"]; + s0 -> s0 [label="67"]; + s0 -> s0 [label="68"]; + s0 -> s0 [label="69"]; + s0 -> s0 [label="70"]; + s0 -> s0 [label="71"]; + s0 -> s0 [label="72"]; + s0 -> s0 [label="73"]; + s0 -> s0 [label="74"]; + s0 -> s0 [label="75"]; + s0 -> s0 [label="76"]; + s0 -> s0 [label="77"]; + s0 -> s0 [label="78"]; + s0 -> s0 [label="79"]; + s0 -> s0 [label="80"]; + s0 -> s0 [label="81"]; + s0 -> s0 [label="82"]; + s0 -> s0 [label="83"]; + s0 -> s0 [label="84"]; + s0 -> s0 [label="85"]; + s0 -> s0 [label="86"]; + s0 -> s0 [label="87"]; + s0 -> s0 [label="88"]; + s0 -> s0 [label="89"]; + s0 -> s0 [label="90"]; + s0 -> s0 [label="91"]; + s0 -> s0 [label="92"]; + s0 -> s0 [label="93"]; + s0 -> s0 [label="94"]; + s0 -> s0 [label="95"]; + s0 -> s0 [label="96"]; + s0 -> s0 [label="97"]; + s0 -> s0 [label="98"]; + s0 -> s0 [label="99"]; + s0 -> s0 [label="100"]; + s0 -> s0 [label="101"]; + s0 -> s0 [label="102"]; + s0 -> s0 [label="103"]; + s0 -> s0 [label="104"]; + s0 -> s0 [label="105"]; + s0 -> s0 [label="106"]; + s0 -> s0 [label="107"]; + s0 -> s0 [label="108"]; + s0 -> s0 [label="109"]; + s0 -> s0 [label="110"]; + s0 -> s0 [label="111"]; + s0 -> s0 [label="112"]; + s0 -> s0 [label="113"]; + s0 -> s0 [label="114"]; + s0 -> s0 [label="115"]; + s0 -> s0 [label="116"]; + s0 -> s0 [label="117"]; + s0 -> s0 [label="118"]; + s0 -> s0 [label="119"]; + s0 -> s0 [label="120"]; + s0 -> s0 [label="121"]; + s0 -> s0 [label="122"]; + s0 -> s0 [label="123"]; + s0 -> s0 [label="124"]; + s0 -> s0 [label="125"]; + s0 -> s0 [label="126"]; + s0 -> s0 [label="127"]; + s0 -> s1 [label="-128"]; + s0 -> s1 [label="-127"]; + s0 -> s1 [label="-126"]; + s0 -> s1 [label="-125"]; + s0 -> s1 [label="-124"]; + s0 -> s1 [label="-123"]; + s0 -> s1 [label="-122"]; + s0 -> s1 [label="-121"]; + s0 -> s1 [label="-120"]; + s0 -> s1 [label="-119"]; + s0 -> s1 [label="-118"]; + s0 -> s1 [label="-117"]; + s0 -> s1 [label="-116"]; + s0 -> s1 [label="-115"]; + s0 -> s1 [label="-114"]; + s0 -> s1 [label="-113"]; + s0 -> s1 [label="-112"]; + s0 -> s1 [label="-111"]; + s0 -> s1 [label="-110"]; + s0 -> s1 [label="-109"]; + s0 -> s1 [label="-108"]; + s0 -> s1 [label="-107"]; + s0 -> s1 [label="-106"]; + s0 -> s1 [label="-105"]; + s0 -> s1 [label="-104"]; + s0 -> s1 [label="-103"]; + s0 -> s1 [label="-102"]; + s0 -> s1 [label="-101"]; + s0 -> s1 [label="-100"]; + s0 -> s1 [label="-99"]; + s0 -> s1 [label="-98"]; + s0 -> s1 [label="-97"]; + s0 -> s1 [label="-96"]; + s0 -> s1 [label="-95"]; + s0 -> s1 [label="-94"]; + s0 -> s1 [label="-93"]; + s0 -> s1 [label="-92"]; + s0 -> s1 [label="-91"]; + s0 -> s1 [label="-90"]; + s0 -> s1 [label="-89"]; + s0 -> s1 [label="-88"]; + s0 -> s1 [label="-87"]; + s0 -> s1 [label="-86"]; + s0 -> s1 [label="-85"]; + s0 -> s1 [label="-84"]; + s0 -> s1 [label="-83"]; + s0 -> s1 [label="-82"]; + s0 -> s1 [label="-81"]; + s0 -> s1 [label="-80"]; + s0 -> s1 [label="-79"]; + s0 -> s1 [label="-78"]; + s0 -> s1 [label="-77"]; + s0 -> s1 [label="-76"]; + s0 -> s1 [label="-75"]; + s0 -> s1 [label="-74"]; + s0 -> s1 [label="-73"]; + s0 -> s1 [label="-72"]; + s0 -> s1 [label="-71"]; + s0 -> s1 [label="-70"]; + s0 -> s1 [label="-69"]; + s0 -> s1 [label="-68"]; + s0 -> s1 [label="-67"]; + s0 -> s1 [label="-66"]; + s0 -> s1 [label="-65"]; + s0 -> s1 [label="-64"]; + s0 -> s1 [label="-63"]; + s0 -> s2 [label="-62"]; + s0 -> s2 [label="-61"]; + s0 -> s2 [label="-60"]; + s0 -> s2 [label="-59"]; + s0 -> s2 [label="-58"]; + s0 -> s2 [label="-57"]; + s0 -> s2 [label="-56"]; + s0 -> s2 [label="-55"]; + s0 -> s2 [label="-54"]; + s0 -> s2 [label="-53"]; + s0 -> s2 [label="-52"]; + s0 -> s2 [label="-51"]; + s0 -> s2 [label="-50"]; + s0 -> s2 [label="-49"]; + s0 -> s2 [label="-48"]; + s0 -> s2 [label="-47"]; + s0 -> s2 [label="-46"]; + s0 -> s2 [label="-45"]; + s0 -> s2 [label="-44"]; + s0 -> s2 [label="-43"]; + s0 -> s2 [label="-42"]; + s0 -> s2 [label="-41"]; + s0 -> s2 [label="-40"]; + s0 -> s2 [label="-39"]; + s0 -> s2 [label="-38"]; + s0 -> s2 [label="-37"]; + s0 -> s2 [label="-36"]; + s0 -> s2 [label="-35"]; + s0 -> s2 [label="-34"]; + s0 -> s2 [label="-33"]; + s0 -> s3 [label="-32"]; + s0 -> s4 [label="-31"]; + s0 -> s4 [label="-30"]; + s0 -> s4 [label="-29"]; + s0 -> s4 [label="-28"]; + s0 -> s4 [label="-27"]; + s0 -> s4 [label="-26"]; + s0 -> s4 [label="-25"]; + s0 -> s4 [label="-24"]; + s0 -> s4 [label="-23"]; + s0 -> s4 [label="-22"]; + s0 -> s4 [label="-21"]; + s0 -> s4 [label="-20"]; + s0 -> s5 [label="-19"]; + s0 -> s4 [label="-18"]; + s0 -> s4 [label="-17"]; + s0 -> s6 [label="-16"]; + s0 -> s8 [label="-15"]; + s0 -> s8 [label="-14"]; + s0 -> s8 [label="-13"]; + s0 -> s7 [label="-12"]; + s0 -> s1 [label="-11"]; + s0 -> s1 [label="-10"]; + s0 -> s1 [label="-9"]; + s0 -> s1 [label="-8"]; + s0 -> s1 [label="-7"]; + s0 -> s1 [label="-6"]; + s0 -> s1 [label="-5"]; + s0 -> s1 [label="-4"]; + s0 -> s1 [label="-3"]; + s0 -> s1 [label="-2"]; + s0 -> s1 [label="-1"]; + s1 -> s1 [label="0"]; + s1 -> s1 [label="1"]; + s1 -> s1 [label="2"]; + s1 -> s1 [label="3"]; + s1 -> s1 [label="4"]; + s1 -> s1 [label="5"]; + s1 -> s1 [label="6"]; + s1 -> s1 [label="7"]; + s1 -> s1 [label="8"]; + s1 -> s1 [label="9"]; + s1 -> s1 [label="10"]; + s1 -> s1 [label="11"]; + s1 -> s1 [label="12"]; + s1 -> s1 [label="13"]; + s1 -> s1 [label="14"]; + s1 -> s1 [label="15"]; + s1 -> s1 [label="16"]; + s1 -> s1 [label="17"]; + s1 -> s1 [label="18"]; + s1 -> s1 [label="19"]; + s1 -> s1 [label="20"]; + s1 -> s1 [label="21"]; + s1 -> s1 [label="22"]; + s1 -> s1 [label="23"]; + s1 -> s1 [label="24"]; + s1 -> s1 [label="25"]; + s1 -> s1 [label="26"]; + s1 -> s1 [label="27"]; + s1 -> s1 [label="28"]; + s1 -> s1 [label="29"]; + s1 -> s1 [label="30"]; + s1 -> s1 [label="31"]; + s1 -> s1 [label="32"]; + s1 -> s1 [label="33"]; + s1 -> s1 [label="34"]; + s1 -> s1 [label="35"]; + s1 -> s1 [label="36"]; + s1 -> s1 [label="37"]; + s1 -> s1 [label="38"]; + s1 -> s1 [label="39"]; + s1 -> s1 [label="40"]; + s1 -> s1 [label="41"]; + s1 -> s1 [label="42"]; + s1 -> s1 [label="43"]; + s1 -> s1 [label="44"]; + s1 -> s1 [label="45"]; + s1 -> s1 [label="46"]; + s1 -> s1 [label="47"]; + s1 -> s1 [label="48"]; + s1 -> s1 [label="49"]; + s1 -> s1 [label="50"]; + s1 -> s1 [label="51"]; + s1 -> s1 [label="52"]; + s1 -> s1 [label="53"]; + s1 -> s1 [label="54"]; + s1 -> s1 [label="55"]; + s1 -> s1 [label="56"]; + s1 -> s1 [label="57"]; + s1 -> s1 [label="58"]; + s1 -> s1 [label="59"]; + s1 -> s1 [label="60"]; + s1 -> s1 [label="61"]; + s1 -> s1 [label="62"]; + s1 -> s1 [label="63"]; + s1 -> s1 [label="64"]; + s1 -> s1 [label="65"]; + s1 -> s1 [label="66"]; + s1 -> s1 [label="67"]; + s1 -> s1 [label="68"]; + s1 -> s1 [label="69"]; + s1 -> s1 [label="70"]; + s1 -> s1 [label="71"]; + s1 -> s1 [label="72"]; + s1 -> s1 [label="73"]; + s1 -> s1 [label="74"]; + s1 -> s1 [label="75"]; + s1 -> s1 [label="76"]; + s1 -> s1 [label="77"]; + s1 -> s1 [label="78"]; + s1 -> s1 [label="79"]; + s1 -> s1 [label="80"]; + s1 -> s1 [label="81"]; + s1 -> s1 [label="82"]; + s1 -> s1 [label="83"]; + s1 -> s1 [label="84"]; + s1 -> s1 [label="85"]; + s1 -> s1 [label="86"]; + s1 -> s1 [label="87"]; + s1 -> s1 [label="88"]; + s1 -> s1 [label="89"]; + s1 -> s1 [label="90"]; + s1 -> s1 [label="91"]; + s1 -> s1 [label="92"]; + s1 -> s1 [label="93"]; + s1 -> s1 [label="94"]; + s1 -> s1 [label="95"]; + s1 -> s1 [label="96"]; + s1 -> s1 [label="97"]; + s1 -> s1 [label="98"]; + s1 -> s1 [label="99"]; + s1 -> s1 [label="100"]; + s1 -> s1 [label="101"]; + s1 -> s1 [label="102"]; + s1 -> s1 [label="103"]; + s1 -> s1 [label="104"]; + s1 -> s1 [label="105"]; + s1 -> s1 [label="106"]; + s1 -> s1 [label="107"]; + s1 -> s1 [label="108"]; + s1 -> s1 [label="109"]; + s1 -> s1 [label="110"]; + s1 -> s1 [label="111"]; + s1 -> s1 [label="112"]; + s1 -> s1 [label="113"]; + s1 -> s1 [label="114"]; + s1 -> s1 [label="115"]; + s1 -> s1 [label="116"]; + s1 -> s1 [label="117"]; + s1 -> s1 [label="118"]; + s1 -> s1 [label="119"]; + s1 -> s1 [label="120"]; + s1 -> s1 [label="121"]; + s1 -> s1 [label="122"]; + s1 -> s1 [label="123"]; + s1 -> s1 [label="124"]; + s1 -> s1 [label="125"]; + s1 -> s1 [label="126"]; + s1 -> s1 [label="127"]; + s1 -> s1 [label="-128"]; + s1 -> s1 [label="-127"]; + s1 -> s1 [label="-126"]; + s1 -> s1 [label="-125"]; + s1 -> s1 [label="-124"]; + s1 -> s1 [label="-123"]; + s1 -> s1 [label="-122"]; + s1 -> s1 [label="-121"]; + s1 -> s1 [label="-120"]; + s1 -> s1 [label="-119"]; + s1 -> s1 [label="-118"]; + s1 -> s1 [label="-117"]; + s1 -> s1 [label="-116"]; + s1 -> s1 [label="-115"]; + s1 -> s1 [label="-114"]; + s1 -> s1 [label="-113"]; + s1 -> s1 [label="-112"]; + s1 -> s1 [label="-111"]; + s1 -> s1 [label="-110"]; + s1 -> s1 [label="-109"]; + s1 -> s1 [label="-108"]; + s1 -> s1 [label="-107"]; + s1 -> s1 [label="-106"]; + s1 -> s1 [label="-105"]; + s1 -> s1 [label="-104"]; + s1 -> s1 [label="-103"]; + s1 -> s1 [label="-102"]; + s1 -> s1 [label="-101"]; + s1 -> s1 [label="-100"]; + s1 -> s1 [label="-99"]; + s1 -> s1 [label="-98"]; + s1 -> s1 [label="-97"]; + s1 -> s1 [label="-96"]; + s1 -> s1 [label="-95"]; + s1 -> s1 [label="-94"]; + s1 -> s1 [label="-93"]; + s1 -> s1 [label="-92"]; + s1 -> s1 [label="-91"]; + s1 -> s1 [label="-90"]; + s1 -> s1 [label="-89"]; + s1 -> s1 [label="-88"]; + s1 -> s1 [label="-87"]; + s1 -> s1 [label="-86"]; + s1 -> s1 [label="-85"]; + s1 -> s1 [label="-84"]; + s1 -> s1 [label="-83"]; + s1 -> s1 [label="-82"]; + s1 -> s1 [label="-81"]; + s1 -> s1 [label="-80"]; + s1 -> s1 [label="-79"]; + s1 -> s1 [label="-78"]; + s1 -> s1 [label="-77"]; + s1 -> s1 [label="-76"]; + s1 -> s1 [label="-75"]; + s1 -> s1 [label="-74"]; + s1 -> s1 [label="-73"]; + s1 -> s1 [label="-72"]; + s1 -> s1 [label="-71"]; + s1 -> s1 [label="-70"]; + s1 -> s1 [label="-69"]; + s1 -> s1 [label="-68"]; + s1 -> s1 [label="-67"]; + s1 -> s1 [label="-66"]; + s1 -> s1 [label="-65"]; + s1 -> s1 [label="-64"]; + s1 -> s1 [label="-63"]; + s1 -> s1 [label="-62"]; + s1 -> s1 [label="-61"]; + s1 -> s1 [label="-60"]; + s1 -> s1 [label="-59"]; + s1 -> s1 [label="-58"]; + s1 -> s1 [label="-57"]; + s1 -> s1 [label="-56"]; + s1 -> s1 [label="-55"]; + s1 -> s1 [label="-54"]; + s1 -> s1 [label="-53"]; + s1 -> s1 [label="-52"]; + s1 -> s1 [label="-51"]; + s1 -> s1 [label="-50"]; + s1 -> s1 [label="-49"]; + s1 -> s1 [label="-48"]; + s1 -> s1 [label="-47"]; + s1 -> s1 [label="-46"]; + s1 -> s1 [label="-45"]; + s1 -> s1 [label="-44"]; + s1 -> s1 [label="-43"]; + s1 -> s1 [label="-42"]; + s1 -> s1 [label="-41"]; + s1 -> s1 [label="-40"]; + s1 -> s1 [label="-39"]; + s1 -> s1 [label="-38"]; + s1 -> s1 [label="-37"]; + s1 -> s1 [label="-36"]; + s1 -> s1 [label="-35"]; + s1 -> s1 [label="-34"]; + s1 -> s1 [label="-33"]; + s1 -> s1 [label="-32"]; + s1 -> s1 [label="-31"]; + s1 -> s1 [label="-30"]; + s1 -> s1 [label="-29"]; + s1 -> s1 [label="-28"]; + s1 -> s1 [label="-27"]; + s1 -> s1 [label="-26"]; + s1 -> s1 [label="-25"]; + s1 -> s1 [label="-24"]; + s1 -> s1 [label="-23"]; + s1 -> s1 [label="-22"]; + s1 -> s1 [label="-21"]; + s1 -> s1 [label="-20"]; + s1 -> s1 [label="-19"]; + s1 -> s1 [label="-18"]; + s1 -> s1 [label="-17"]; + s1 -> s1 [label="-16"]; + s1 -> s1 [label="-15"]; + s1 -> s1 [label="-14"]; + s1 -> s1 [label="-13"]; + s1 -> s1 [label="-12"]; + s1 -> s1 [label="-11"]; + s1 -> s1 [label="-10"]; + s1 -> s1 [label="-9"]; + s1 -> s1 [label="-8"]; + s1 -> s1 [label="-7"]; + s1 -> s1 [label="-6"]; + s1 -> s1 [label="-5"]; + s1 -> s1 [label="-4"]; + s1 -> s1 [label="-3"]; + s1 -> s1 [label="-2"]; + s1 -> s1 [label="-1"]; + s2 -> s1 [label="0"]; + s2 -> s1 [label="1"]; + s2 -> s1 [label="2"]; + s2 -> s1 [label="3"]; + s2 -> s1 [label="4"]; + s2 -> s1 [label="5"]; + s2 -> s1 [label="6"]; + s2 -> s1 [label="7"]; + s2 -> s1 [label="8"]; + s2 -> s1 [label="9"]; + s2 -> s1 [label="10"]; + s2 -> s1 [label="11"]; + s2 -> s1 [label="12"]; + s2 -> s1 [label="13"]; + s2 -> s1 [label="14"]; + s2 -> s1 [label="15"]; + s2 -> s1 [label="16"]; + s2 -> s1 [label="17"]; + s2 -> s1 [label="18"]; + s2 -> s1 [label="19"]; + s2 -> s1 [label="20"]; + s2 -> s1 [label="21"]; + s2 -> s1 [label="22"]; + s2 -> s1 [label="23"]; + s2 -> s1 [label="24"]; + s2 -> s1 [label="25"]; + s2 -> s1 [label="26"]; + s2 -> s1 [label="27"]; + s2 -> s1 [label="28"]; + s2 -> s1 [label="29"]; + s2 -> s1 [label="30"]; + s2 -> s1 [label="31"]; + s2 -> s1 [label="32"]; + s2 -> s1 [label="33"]; + s2 -> s1 [label="34"]; + s2 -> s1 [label="35"]; + s2 -> s1 [label="36"]; + s2 -> s1 [label="37"]; + s2 -> s1 [label="38"]; + s2 -> s1 [label="39"]; + s2 -> s1 [label="40"]; + s2 -> s1 [label="41"]; + s2 -> s1 [label="42"]; + s2 -> s1 [label="43"]; + s2 -> s1 [label="44"]; + s2 -> s1 [label="45"]; + s2 -> s1 [label="46"]; + s2 -> s1 [label="47"]; + s2 -> s1 [label="48"]; + s2 -> s1 [label="49"]; + s2 -> s1 [label="50"]; + s2 -> s1 [label="51"]; + s2 -> s1 [label="52"]; + s2 -> s1 [label="53"]; + s2 -> s1 [label="54"]; + s2 -> s1 [label="55"]; + s2 -> s1 [label="56"]; + s2 -> s1 [label="57"]; + s2 -> s1 [label="58"]; + s2 -> s1 [label="59"]; + s2 -> s1 [label="60"]; + s2 -> s1 [label="61"]; + s2 -> s1 [label="62"]; + s2 -> s1 [label="63"]; + s2 -> s1 [label="64"]; + s2 -> s1 [label="65"]; + s2 -> s1 [label="66"]; + s2 -> s1 [label="67"]; + s2 -> s1 [label="68"]; + s2 -> s1 [label="69"]; + s2 -> s1 [label="70"]; + s2 -> s1 [label="71"]; + s2 -> s1 [label="72"]; + s2 -> s1 [label="73"]; + s2 -> s1 [label="74"]; + s2 -> s1 [label="75"]; + s2 -> s1 [label="76"]; + s2 -> s1 [label="77"]; + s2 -> s1 [label="78"]; + s2 -> s1 [label="79"]; + s2 -> s1 [label="80"]; + s2 -> s1 [label="81"]; + s2 -> s1 [label="82"]; + s2 -> s1 [label="83"]; + s2 -> s1 [label="84"]; + s2 -> s1 [label="85"]; + s2 -> s1 [label="86"]; + s2 -> s1 [label="87"]; + s2 -> s1 [label="88"]; + s2 -> s1 [label="89"]; + s2 -> s1 [label="90"]; + s2 -> s1 [label="91"]; + s2 -> s1 [label="92"]; + s2 -> s1 [label="93"]; + s2 -> s1 [label="94"]; + s2 -> s1 [label="95"]; + s2 -> s1 [label="96"]; + s2 -> s1 [label="97"]; + s2 -> s1 [label="98"]; + s2 -> s1 [label="99"]; + s2 -> s1 [label="100"]; + s2 -> s1 [label="101"]; + s2 -> s1 [label="102"]; + s2 -> s1 [label="103"]; + s2 -> s1 [label="104"]; + s2 -> s1 [label="105"]; + s2 -> s1 [label="106"]; + s2 -> s1 [label="107"]; + s2 -> s1 [label="108"]; + s2 -> s1 [label="109"]; + s2 -> s1 [label="110"]; + s2 -> s1 [label="111"]; + s2 -> s1 [label="112"]; + s2 -> s1 [label="113"]; + s2 -> s1 [label="114"]; + s2 -> s1 [label="115"]; + s2 -> s1 [label="116"]; + s2 -> s1 [label="117"]; + s2 -> s1 [label="118"]; + s2 -> s1 [label="119"]; + s2 -> s1 [label="120"]; + s2 -> s1 [label="121"]; + s2 -> s1 [label="122"]; + s2 -> s1 [label="123"]; + s2 -> s1 [label="124"]; + s2 -> s1 [label="125"]; + s2 -> s1 [label="126"]; + s2 -> s1 [label="127"]; + s2 -> s0 [label="-128"]; + s2 -> s0 [label="-127"]; + s2 -> s0 [label="-126"]; + s2 -> s0 [label="-125"]; + s2 -> s0 [label="-124"]; + s2 -> s0 [label="-123"]; + s2 -> s0 [label="-122"]; + s2 -> s0 [label="-121"]; + s2 -> s0 [label="-120"]; + s2 -> s0 [label="-119"]; + s2 -> s0 [label="-118"]; + s2 -> s0 [label="-117"]; + s2 -> s0 [label="-116"]; + s2 -> s0 [label="-115"]; + s2 -> s0 [label="-114"]; + s2 -> s0 [label="-113"]; + s2 -> s0 [label="-112"]; + s2 -> s0 [label="-111"]; + s2 -> s0 [label="-110"]; + s2 -> s0 [label="-109"]; + s2 -> s0 [label="-108"]; + s2 -> s0 [label="-107"]; + s2 -> s0 [label="-106"]; + s2 -> s0 [label="-105"]; + s2 -> s0 [label="-104"]; + s2 -> s0 [label="-103"]; + s2 -> s0 [label="-102"]; + s2 -> s0 [label="-101"]; + s2 -> s0 [label="-100"]; + s2 -> s0 [label="-99"]; + s2 -> s0 [label="-98"]; + s2 -> s0 [label="-97"]; + s2 -> s0 [label="-96"]; + s2 -> s0 [label="-95"]; + s2 -> s0 [label="-94"]; + s2 -> s0 [label="-93"]; + s2 -> s0 [label="-92"]; + s2 -> s0 [label="-91"]; + s2 -> s0 [label="-90"]; + s2 -> s0 [label="-89"]; + s2 -> s0 [label="-88"]; + s2 -> s0 [label="-87"]; + s2 -> s0 [label="-86"]; + s2 -> s0 [label="-85"]; + s2 -> s0 [label="-84"]; + s2 -> s0 [label="-83"]; + s2 -> s0 [label="-82"]; + s2 -> s0 [label="-81"]; + s2 -> s0 [label="-80"]; + s2 -> s0 [label="-79"]; + s2 -> s0 [label="-78"]; + s2 -> s0 [label="-77"]; + s2 -> s0 [label="-76"]; + s2 -> s0 [label="-75"]; + s2 -> s0 [label="-74"]; + s2 -> s0 [label="-73"]; + s2 -> s0 [label="-72"]; + s2 -> s0 [label="-71"]; + s2 -> s0 [label="-70"]; + s2 -> s0 [label="-69"]; + s2 -> s0 [label="-68"]; + s2 -> s0 [label="-67"]; + s2 -> s0 [label="-66"]; + s2 -> s0 [label="-65"]; + s2 -> s1 [label="-64"]; + s2 -> s1 [label="-63"]; + s2 -> s1 [label="-62"]; + s2 -> s1 [label="-61"]; + s2 -> s1 [label="-60"]; + s2 -> s1 [label="-59"]; + s2 -> s1 [label="-58"]; + s2 -> s1 [label="-57"]; + s2 -> s1 [label="-56"]; + s2 -> s1 [label="-55"]; + s2 -> s1 [label="-54"]; + s2 -> s1 [label="-53"]; + s2 -> s1 [label="-52"]; + s2 -> s1 [label="-51"]; + s2 -> s1 [label="-50"]; + s2 -> s1 [label="-49"]; + s2 -> s1 [label="-48"]; + s2 -> s1 [label="-47"]; + s2 -> s1 [label="-46"]; + s2 -> s1 [label="-45"]; + s2 -> s1 [label="-44"]; + s2 -> s1 [label="-43"]; + s2 -> s1 [label="-42"]; + s2 -> s1 [label="-41"]; + s2 -> s1 [label="-40"]; + s2 -> s1 [label="-39"]; + s2 -> s1 [label="-38"]; + s2 -> s1 [label="-37"]; + s2 -> s1 [label="-36"]; + s2 -> s1 [label="-35"]; + s2 -> s1 [label="-34"]; + s2 -> s1 [label="-33"]; + s2 -> s1 [label="-32"]; + s2 -> s1 [label="-31"]; + s2 -> s1 [label="-30"]; + s2 -> s1 [label="-29"]; + s2 -> s1 [label="-28"]; + s2 -> s1 [label="-27"]; + s2 -> s1 [label="-26"]; + s2 -> s1 [label="-25"]; + s2 -> s1 [label="-24"]; + s2 -> s1 [label="-23"]; + s2 -> s1 [label="-22"]; + s2 -> s1 [label="-21"]; + s2 -> s1 [label="-20"]; + s2 -> s1 [label="-19"]; + s2 -> s1 [label="-18"]; + s2 -> s1 [label="-17"]; + s2 -> s1 [label="-16"]; + s2 -> s1 [label="-15"]; + s2 -> s1 [label="-14"]; + s2 -> s1 [label="-13"]; + s2 -> s1 [label="-12"]; + s2 -> s1 [label="-11"]; + s2 -> s1 [label="-10"]; + s2 -> s1 [label="-9"]; + s2 -> s1 [label="-8"]; + s2 -> s1 [label="-7"]; + s2 -> s1 [label="-6"]; + s2 -> s1 [label="-5"]; + s2 -> s1 [label="-4"]; + s2 -> s1 [label="-3"]; + s2 -> s1 [label="-2"]; + s2 -> s1 [label="-1"]; + s3 -> s1 [label="0"]; + s3 -> s1 [label="1"]; + s3 -> s1 [label="2"]; + s3 -> s1 [label="3"]; + s3 -> s1 [label="4"]; + s3 -> s1 [label="5"]; + s3 -> s1 [label="6"]; + s3 -> s1 [label="7"]; + s3 -> s1 [label="8"]; + s3 -> s1 [label="9"]; + s3 -> s1 [label="10"]; + s3 -> s1 [label="11"]; + s3 -> s1 [label="12"]; + s3 -> s1 [label="13"]; + s3 -> s1 [label="14"]; + s3 -> s1 [label="15"]; + s3 -> s1 [label="16"]; + s3 -> s1 [label="17"]; + s3 -> s1 [label="18"]; + s3 -> s1 [label="19"]; + s3 -> s1 [label="20"]; + s3 -> s1 [label="21"]; + s3 -> s1 [label="22"]; + s3 -> s1 [label="23"]; + s3 -> s1 [label="24"]; + s3 -> s1 [label="25"]; + s3 -> s1 [label="26"]; + s3 -> s1 [label="27"]; + s3 -> s1 [label="28"]; + s3 -> s1 [label="29"]; + s3 -> s1 [label="30"]; + s3 -> s1 [label="31"]; + s3 -> s1 [label="32"]; + s3 -> s1 [label="33"]; + s3 -> s1 [label="34"]; + s3 -> s1 [label="35"]; + s3 -> s1 [label="36"]; + s3 -> s1 [label="37"]; + s3 -> s1 [label="38"]; + s3 -> s1 [label="39"]; + s3 -> s1 [label="40"]; + s3 -> s1 [label="41"]; + s3 -> s1 [label="42"]; + s3 -> s1 [label="43"]; + s3 -> s1 [label="44"]; + s3 -> s1 [label="45"]; + s3 -> s1 [label="46"]; + s3 -> s1 [label="47"]; + s3 -> s1 [label="48"]; + s3 -> s1 [label="49"]; + s3 -> s1 [label="50"]; + s3 -> s1 [label="51"]; + s3 -> s1 [label="52"]; + s3 -> s1 [label="53"]; + s3 -> s1 [label="54"]; + s3 -> s1 [label="55"]; + s3 -> s1 [label="56"]; + s3 -> s1 [label="57"]; + s3 -> s1 [label="58"]; + s3 -> s1 [label="59"]; + s3 -> s1 [label="60"]; + s3 -> s1 [label="61"]; + s3 -> s1 [label="62"]; + s3 -> s1 [label="63"]; + s3 -> s1 [label="64"]; + s3 -> s1 [label="65"]; + s3 -> s1 [label="66"]; + s3 -> s1 [label="67"]; + s3 -> s1 [label="68"]; + s3 -> s1 [label="69"]; + s3 -> s1 [label="70"]; + s3 -> s1 [label="71"]; + s3 -> s1 [label="72"]; + s3 -> s1 [label="73"]; + s3 -> s1 [label="74"]; + s3 -> s1 [label="75"]; + s3 -> s1 [label="76"]; + s3 -> s1 [label="77"]; + s3 -> s1 [label="78"]; + s3 -> s1 [label="79"]; + s3 -> s1 [label="80"]; + s3 -> s1 [label="81"]; + s3 -> s1 [label="82"]; + s3 -> s1 [label="83"]; + s3 -> s1 [label="84"]; + s3 -> s1 [label="85"]; + s3 -> s1 [label="86"]; + s3 -> s1 [label="87"]; + s3 -> s1 [label="88"]; + s3 -> s1 [label="89"]; + s3 -> s1 [label="90"]; + s3 -> s1 [label="91"]; + s3 -> s1 [label="92"]; + s3 -> s1 [label="93"]; + s3 -> s1 [label="94"]; + s3 -> s1 [label="95"]; + s3 -> s1 [label="96"]; + s3 -> s1 [label="97"]; + s3 -> s1 [label="98"]; + s3 -> s1 [label="99"]; + s3 -> s1 [label="100"]; + s3 -> s1 [label="101"]; + s3 -> s1 [label="102"]; + s3 -> s1 [label="103"]; + s3 -> s1 [label="104"]; + s3 -> s1 [label="105"]; + s3 -> s1 [label="106"]; + s3 -> s1 [label="107"]; + s3 -> s1 [label="108"]; + s3 -> s1 [label="109"]; + s3 -> s1 [label="110"]; + s3 -> s1 [label="111"]; + s3 -> s1 [label="112"]; + s3 -> s1 [label="113"]; + s3 -> s1 [label="114"]; + s3 -> s1 [label="115"]; + s3 -> s1 [label="116"]; + s3 -> s1 [label="117"]; + s3 -> s1 [label="118"]; + s3 -> s1 [label="119"]; + s3 -> s1 [label="120"]; + s3 -> s1 [label="121"]; + s3 -> s1 [label="122"]; + s3 -> s1 [label="123"]; + s3 -> s1 [label="124"]; + s3 -> s1 [label="125"]; + s3 -> s1 [label="126"]; + s3 -> s1 [label="127"]; + s3 -> s1 [label="-128"]; + s3 -> s1 [label="-127"]; + s3 -> s1 [label="-126"]; + s3 -> s1 [label="-125"]; + s3 -> s1 [label="-124"]; + s3 -> s1 [label="-123"]; + s3 -> s1 [label="-122"]; + s3 -> s1 [label="-121"]; + s3 -> s1 [label="-120"]; + s3 -> s1 [label="-119"]; + s3 -> s1 [label="-118"]; + s3 -> s1 [label="-117"]; + s3 -> s1 [label="-116"]; + s3 -> s1 [label="-115"]; + s3 -> s1 [label="-114"]; + s3 -> s1 [label="-113"]; + s3 -> s1 [label="-112"]; + s3 -> s1 [label="-111"]; + s3 -> s1 [label="-110"]; + s3 -> s1 [label="-109"]; + s3 -> s1 [label="-108"]; + s3 -> s1 [label="-107"]; + s3 -> s1 [label="-106"]; + s3 -> s1 [label="-105"]; + s3 -> s1 [label="-104"]; + s3 -> s1 [label="-103"]; + s3 -> s1 [label="-102"]; + s3 -> s1 [label="-101"]; + s3 -> s1 [label="-100"]; + s3 -> s1 [label="-99"]; + s3 -> s1 [label="-98"]; + s3 -> s1 [label="-97"]; + s3 -> s2 [label="-96"]; + s3 -> s2 [label="-95"]; + s3 -> s2 [label="-94"]; + s3 -> s2 [label="-93"]; + s3 -> s2 [label="-92"]; + s3 -> s2 [label="-91"]; + s3 -> s2 [label="-90"]; + s3 -> s2 [label="-89"]; + s3 -> s2 [label="-88"]; + s3 -> s2 [label="-87"]; + s3 -> s2 [label="-86"]; + s3 -> s2 [label="-85"]; + s3 -> s2 [label="-84"]; + s3 -> s2 [label="-83"]; + s3 -> s2 [label="-82"]; + s3 -> s2 [label="-81"]; + s3 -> s2 [label="-80"]; + s3 -> s2 [label="-79"]; + s3 -> s2 [label="-78"]; + s3 -> s2 [label="-77"]; + s3 -> s2 [label="-76"]; + s3 -> s2 [label="-75"]; + s3 -> s2 [label="-74"]; + s3 -> s2 [label="-73"]; + s3 -> s2 [label="-72"]; + s3 -> s2 [label="-71"]; + s3 -> s2 [label="-70"]; + s3 -> s2 [label="-69"]; + s3 -> s2 [label="-68"]; + s3 -> s2 [label="-67"]; + s3 -> s2 [label="-66"]; + s3 -> s2 [label="-65"]; + s3 -> s1 [label="-64"]; + s3 -> s1 [label="-63"]; + s3 -> s1 [label="-62"]; + s3 -> s1 [label="-61"]; + s3 -> s1 [label="-60"]; + s3 -> s1 [label="-59"]; + s3 -> s1 [label="-58"]; + s3 -> s1 [label="-57"]; + s3 -> s1 [label="-56"]; + s3 -> s1 [label="-55"]; + s3 -> s1 [label="-54"]; + s3 -> s1 [label="-53"]; + s3 -> s1 [label="-52"]; + s3 -> s1 [label="-51"]; + s3 -> s1 [label="-50"]; + s3 -> s1 [label="-49"]; + s3 -> s1 [label="-48"]; + s3 -> s1 [label="-47"]; + s3 -> s1 [label="-46"]; + s3 -> s1 [label="-45"]; + s3 -> s1 [label="-44"]; + s3 -> s1 [label="-43"]; + s3 -> s1 [label="-42"]; + s3 -> s1 [label="-41"]; + s3 -> s1 [label="-40"]; + s3 -> s1 [label="-39"]; + s3 -> s1 [label="-38"]; + s3 -> s1 [label="-37"]; + s3 -> s1 [label="-36"]; + s3 -> s1 [label="-35"]; + s3 -> s1 [label="-34"]; + s3 -> s1 [label="-33"]; + s3 -> s1 [label="-32"]; + s3 -> s1 [label="-31"]; + s3 -> s1 [label="-30"]; + s3 -> s1 [label="-29"]; + s3 -> s1 [label="-28"]; + s3 -> s1 [label="-27"]; + s3 -> s1 [label="-26"]; + s3 -> s1 [label="-25"]; + s3 -> s1 [label="-24"]; + s3 -> s1 [label="-23"]; + s3 -> s1 [label="-22"]; + s3 -> s1 [label="-21"]; + s3 -> s1 [label="-20"]; + s3 -> s1 [label="-19"]; + s3 -> s1 [label="-18"]; + s3 -> s1 [label="-17"]; + s3 -> s1 [label="-16"]; + s3 -> s1 [label="-15"]; + s3 -> s1 [label="-14"]; + s3 -> s1 [label="-13"]; + s3 -> s1 [label="-12"]; + s3 -> s1 [label="-11"]; + s3 -> s1 [label="-10"]; + s3 -> s1 [label="-9"]; + s3 -> s1 [label="-8"]; + s3 -> s1 [label="-7"]; + s3 -> s1 [label="-6"]; + s3 -> s1 [label="-5"]; + s3 -> s1 [label="-4"]; + s3 -> s1 [label="-3"]; + s3 -> s1 [label="-2"]; + s3 -> s1 [label="-1"]; + s4 -> s1 [label="0"]; + s4 -> s1 [label="1"]; + s4 -> s1 [label="2"]; + s4 -> s1 [label="3"]; + s4 -> s1 [label="4"]; + s4 -> s1 [label="5"]; + s4 -> s1 [label="6"]; + s4 -> s1 [label="7"]; + s4 -> s1 [label="8"]; + s4 -> s1 [label="9"]; + s4 -> s1 [label="10"]; + s4 -> s1 [label="11"]; + s4 -> s1 [label="12"]; + s4 -> s1 [label="13"]; + s4 -> s1 [label="14"]; + s4 -> s1 [label="15"]; + s4 -> s1 [label="16"]; + s4 -> s1 [label="17"]; + s4 -> s1 [label="18"]; + s4 -> s1 [label="19"]; + s4 -> s1 [label="20"]; + s4 -> s1 [label="21"]; + s4 -> s1 [label="22"]; + s4 -> s1 [label="23"]; + s4 -> s1 [label="24"]; + s4 -> s1 [label="25"]; + s4 -> s1 [label="26"]; + s4 -> s1 [label="27"]; + s4 -> s1 [label="28"]; + s4 -> s1 [label="29"]; + s4 -> s1 [label="30"]; + s4 -> s1 [label="31"]; + s4 -> s1 [label="32"]; + s4 -> s1 [label="33"]; + s4 -> s1 [label="34"]; + s4 -> s1 [label="35"]; + s4 -> s1 [label="36"]; + s4 -> s1 [label="37"]; + s4 -> s1 [label="38"]; + s4 -> s1 [label="39"]; + s4 -> s1 [label="40"]; + s4 -> s1 [label="41"]; + s4 -> s1 [label="42"]; + s4 -> s1 [label="43"]; + s4 -> s1 [label="44"]; + s4 -> s1 [label="45"]; + s4 -> s1 [label="46"]; + s4 -> s1 [label="47"]; + s4 -> s1 [label="48"]; + s4 -> s1 [label="49"]; + s4 -> s1 [label="50"]; + s4 -> s1 [label="51"]; + s4 -> s1 [label="52"]; + s4 -> s1 [label="53"]; + s4 -> s1 [label="54"]; + s4 -> s1 [label="55"]; + s4 -> s1 [label="56"]; + s4 -> s1 [label="57"]; + s4 -> s1 [label="58"]; + s4 -> s1 [label="59"]; + s4 -> s1 [label="60"]; + s4 -> s1 [label="61"]; + s4 -> s1 [label="62"]; + s4 -> s1 [label="63"]; + s4 -> s1 [label="64"]; + s4 -> s1 [label="65"]; + s4 -> s1 [label="66"]; + s4 -> s1 [label="67"]; + s4 -> s1 [label="68"]; + s4 -> s1 [label="69"]; + s4 -> s1 [label="70"]; + s4 -> s1 [label="71"]; + s4 -> s1 [label="72"]; + s4 -> s1 [label="73"]; + s4 -> s1 [label="74"]; + s4 -> s1 [label="75"]; + s4 -> s1 [label="76"]; + s4 -> s1 [label="77"]; + s4 -> s1 [label="78"]; + s4 -> s1 [label="79"]; + s4 -> s1 [label="80"]; + s4 -> s1 [label="81"]; + s4 -> s1 [label="82"]; + s4 -> s1 [label="83"]; + s4 -> s1 [label="84"]; + s4 -> s1 [label="85"]; + s4 -> s1 [label="86"]; + s4 -> s1 [label="87"]; + s4 -> s1 [label="88"]; + s4 -> s1 [label="89"]; + s4 -> s1 [label="90"]; + s4 -> s1 [label="91"]; + s4 -> s1 [label="92"]; + s4 -> s1 [label="93"]; + s4 -> s1 [label="94"]; + s4 -> s1 [label="95"]; + s4 -> s1 [label="96"]; + s4 -> s1 [label="97"]; + s4 -> s1 [label="98"]; + s4 -> s1 [label="99"]; + s4 -> s1 [label="100"]; + s4 -> s1 [label="101"]; + s4 -> s1 [label="102"]; + s4 -> s1 [label="103"]; + s4 -> s1 [label="104"]; + s4 -> s1 [label="105"]; + s4 -> s1 [label="106"]; + s4 -> s1 [label="107"]; + s4 -> s1 [label="108"]; + s4 -> s1 [label="109"]; + s4 -> s1 [label="110"]; + s4 -> s1 [label="111"]; + s4 -> s1 [label="112"]; + s4 -> s1 [label="113"]; + s4 -> s1 [label="114"]; + s4 -> s1 [label="115"]; + s4 -> s1 [label="116"]; + s4 -> s1 [label="117"]; + s4 -> s1 [label="118"]; + s4 -> s1 [label="119"]; + s4 -> s1 [label="120"]; + s4 -> s1 [label="121"]; + s4 -> s1 [label="122"]; + s4 -> s1 [label="123"]; + s4 -> s1 [label="124"]; + s4 -> s1 [label="125"]; + s4 -> s1 [label="126"]; + s4 -> s1 [label="127"]; + s4 -> s2 [label="-128"]; + s4 -> s2 [label="-127"]; + s4 -> s2 [label="-126"]; + s4 -> s2 [label="-125"]; + s4 -> s2 [label="-124"]; + s4 -> s2 [label="-123"]; + s4 -> s2 [label="-122"]; + s4 -> s2 [label="-121"]; + s4 -> s2 [label="-120"]; + s4 -> s2 [label="-119"]; + s4 -> s2 [label="-118"]; + s4 -> s2 [label="-117"]; + s4 -> s2 [label="-116"]; + s4 -> s2 [label="-115"]; + s4 -> s2 [label="-114"]; + s4 -> s2 [label="-113"]; + s4 -> s2 [label="-112"]; + s4 -> s2 [label="-111"]; + s4 -> s2 [label="-110"]; + s4 -> s2 [label="-109"]; + s4 -> s2 [label="-108"]; + s4 -> s2 [label="-107"]; + s4 -> s2 [label="-106"]; + s4 -> s2 [label="-105"]; + s4 -> s2 [label="-104"]; + s4 -> s2 [label="-103"]; + s4 -> s2 [label="-102"]; + s4 -> s2 [label="-101"]; + s4 -> s2 [label="-100"]; + s4 -> s2 [label="-99"]; + s4 -> s2 [label="-98"]; + s4 -> s2 [label="-97"]; + s4 -> s2 [label="-96"]; + s4 -> s2 [label="-95"]; + s4 -> s2 [label="-94"]; + s4 -> s2 [label="-93"]; + s4 -> s2 [label="-92"]; + s4 -> s2 [label="-91"]; + s4 -> s2 [label="-90"]; + s4 -> s2 [label="-89"]; + s4 -> s2 [label="-88"]; + s4 -> s2 [label="-87"]; + s4 -> s2 [label="-86"]; + s4 -> s2 [label="-85"]; + s4 -> s2 [label="-84"]; + s4 -> s2 [label="-83"]; + s4 -> s2 [label="-82"]; + s4 -> s2 [label="-81"]; + s4 -> s2 [label="-80"]; + s4 -> s2 [label="-79"]; + s4 -> s2 [label="-78"]; + s4 -> s2 [label="-77"]; + s4 -> s2 [label="-76"]; + s4 -> s2 [label="-75"]; + s4 -> s2 [label="-74"]; + s4 -> s2 [label="-73"]; + s4 -> s2 [label="-72"]; + s4 -> s2 [label="-71"]; + s4 -> s2 [label="-70"]; + s4 -> s2 [label="-69"]; + s4 -> s2 [label="-68"]; + s4 -> s2 [label="-67"]; + s4 -> s2 [label="-66"]; + s4 -> s2 [label="-65"]; + s4 -> s1 [label="-64"]; + s4 -> s1 [label="-63"]; + s4 -> s1 [label="-62"]; + s4 -> s1 [label="-61"]; + s4 -> s1 [label="-60"]; + s4 -> s1 [label="-59"]; + s4 -> s1 [label="-58"]; + s4 -> s1 [label="-57"]; + s4 -> s1 [label="-56"]; + s4 -> s1 [label="-55"]; + s4 -> s1 [label="-54"]; + s4 -> s1 [label="-53"]; + s4 -> s1 [label="-52"]; + s4 -> s1 [label="-51"]; + s4 -> s1 [label="-50"]; + s4 -> s1 [label="-49"]; + s4 -> s1 [label="-48"]; + s4 -> s1 [label="-47"]; + s4 -> s1 [label="-46"]; + s4 -> s1 [label="-45"]; + s4 -> s1 [label="-44"]; + s4 -> s1 [label="-43"]; + s4 -> s1 [label="-42"]; + s4 -> s1 [label="-41"]; + s4 -> s1 [label="-40"]; + s4 -> s1 [label="-39"]; + s4 -> s1 [label="-38"]; + s4 -> s1 [label="-37"]; + s4 -> s1 [label="-36"]; + s4 -> s1 [label="-35"]; + s4 -> s1 [label="-34"]; + s4 -> s1 [label="-33"]; + s4 -> s1 [label="-32"]; + s4 -> s1 [label="-31"]; + s4 -> s1 [label="-30"]; + s4 -> s1 [label="-29"]; + s4 -> s1 [label="-28"]; + s4 -> s1 [label="-27"]; + s4 -> s1 [label="-26"]; + s4 -> s1 [label="-25"]; + s4 -> s1 [label="-24"]; + s4 -> s1 [label="-23"]; + s4 -> s1 [label="-22"]; + s4 -> s1 [label="-21"]; + s4 -> s1 [label="-20"]; + s4 -> s1 [label="-19"]; + s4 -> s1 [label="-18"]; + s4 -> s1 [label="-17"]; + s4 -> s1 [label="-16"]; + s4 -> s1 [label="-15"]; + s4 -> s1 [label="-14"]; + s4 -> s1 [label="-13"]; + s4 -> s1 [label="-12"]; + s4 -> s1 [label="-11"]; + s4 -> s1 [label="-10"]; + s4 -> s1 [label="-9"]; + s4 -> s1 [label="-8"]; + s4 -> s1 [label="-7"]; + s4 -> s1 [label="-6"]; + s4 -> s1 [label="-5"]; + s4 -> s1 [label="-4"]; + s4 -> s1 [label="-3"]; + s4 -> s1 [label="-2"]; + s4 -> s1 [label="-1"]; + s5 -> s1 [label="0"]; + s5 -> s1 [label="1"]; + s5 -> s1 [label="2"]; + s5 -> s1 [label="3"]; + s5 -> s1 [label="4"]; + s5 -> s1 [label="5"]; + s5 -> s1 [label="6"]; + s5 -> s1 [label="7"]; + s5 -> s1 [label="8"]; + s5 -> s1 [label="9"]; + s5 -> s1 [label="10"]; + s5 -> s1 [label="11"]; + s5 -> s1 [label="12"]; + s5 -> s1 [label="13"]; + s5 -> s1 [label="14"]; + s5 -> s1 [label="15"]; + s5 -> s1 [label="16"]; + s5 -> s1 [label="17"]; + s5 -> s1 [label="18"]; + s5 -> s1 [label="19"]; + s5 -> s1 [label="20"]; + s5 -> s1 [label="21"]; + s5 -> s1 [label="22"]; + s5 -> s1 [label="23"]; + s5 -> s1 [label="24"]; + s5 -> s1 [label="25"]; + s5 -> s1 [label="26"]; + s5 -> s1 [label="27"]; + s5 -> s1 [label="28"]; + s5 -> s1 [label="29"]; + s5 -> s1 [label="30"]; + s5 -> s1 [label="31"]; + s5 -> s1 [label="32"]; + s5 -> s1 [label="33"]; + s5 -> s1 [label="34"]; + s5 -> s1 [label="35"]; + s5 -> s1 [label="36"]; + s5 -> s1 [label="37"]; + s5 -> s1 [label="38"]; + s5 -> s1 [label="39"]; + s5 -> s1 [label="40"]; + s5 -> s1 [label="41"]; + s5 -> s1 [label="42"]; + s5 -> s1 [label="43"]; + s5 -> s1 [label="44"]; + s5 -> s1 [label="45"]; + s5 -> s1 [label="46"]; + s5 -> s1 [label="47"]; + s5 -> s1 [label="48"]; + s5 -> s1 [label="49"]; + s5 -> s1 [label="50"]; + s5 -> s1 [label="51"]; + s5 -> s1 [label="52"]; + s5 -> s1 [label="53"]; + s5 -> s1 [label="54"]; + s5 -> s1 [label="55"]; + s5 -> s1 [label="56"]; + s5 -> s1 [label="57"]; + s5 -> s1 [label="58"]; + s5 -> s1 [label="59"]; + s5 -> s1 [label="60"]; + s5 -> s1 [label="61"]; + s5 -> s1 [label="62"]; + s5 -> s1 [label="63"]; + s5 -> s1 [label="64"]; + s5 -> s1 [label="65"]; + s5 -> s1 [label="66"]; + s5 -> s1 [label="67"]; + s5 -> s1 [label="68"]; + s5 -> s1 [label="69"]; + s5 -> s1 [label="70"]; + s5 -> s1 [label="71"]; + s5 -> s1 [label="72"]; + s5 -> s1 [label="73"]; + s5 -> s1 [label="74"]; + s5 -> s1 [label="75"]; + s5 -> s1 [label="76"]; + s5 -> s1 [label="77"]; + s5 -> s1 [label="78"]; + s5 -> s1 [label="79"]; + s5 -> s1 [label="80"]; + s5 -> s1 [label="81"]; + s5 -> s1 [label="82"]; + s5 -> s1 [label="83"]; + s5 -> s1 [label="84"]; + s5 -> s1 [label="85"]; + s5 -> s1 [label="86"]; + s5 -> s1 [label="87"]; + s5 -> s1 [label="88"]; + s5 -> s1 [label="89"]; + s5 -> s1 [label="90"]; + s5 -> s1 [label="91"]; + s5 -> s1 [label="92"]; + s5 -> s1 [label="93"]; + s5 -> s1 [label="94"]; + s5 -> s1 [label="95"]; + s5 -> s1 [label="96"]; + s5 -> s1 [label="97"]; + s5 -> s1 [label="98"]; + s5 -> s1 [label="99"]; + s5 -> s1 [label="100"]; + s5 -> s1 [label="101"]; + s5 -> s1 [label="102"]; + s5 -> s1 [label="103"]; + s5 -> s1 [label="104"]; + s5 -> s1 [label="105"]; + s5 -> s1 [label="106"]; + s5 -> s1 [label="107"]; + s5 -> s1 [label="108"]; + s5 -> s1 [label="109"]; + s5 -> s1 [label="110"]; + s5 -> s1 [label="111"]; + s5 -> s1 [label="112"]; + s5 -> s1 [label="113"]; + s5 -> s1 [label="114"]; + s5 -> s1 [label="115"]; + s5 -> s1 [label="116"]; + s5 -> s1 [label="117"]; + s5 -> s1 [label="118"]; + s5 -> s1 [label="119"]; + s5 -> s1 [label="120"]; + s5 -> s1 [label="121"]; + s5 -> s1 [label="122"]; + s5 -> s1 [label="123"]; + s5 -> s1 [label="124"]; + s5 -> s1 [label="125"]; + s5 -> s1 [label="126"]; + s5 -> s1 [label="127"]; + s5 -> s2 [label="-128"]; + s5 -> s2 [label="-127"]; + s5 -> s2 [label="-126"]; + s5 -> s2 [label="-125"]; + s5 -> s2 [label="-124"]; + s5 -> s2 [label="-123"]; + s5 -> s2 [label="-122"]; + s5 -> s2 [label="-121"]; + s5 -> s2 [label="-120"]; + s5 -> s2 [label="-119"]; + s5 -> s2 [label="-118"]; + s5 -> s2 [label="-117"]; + s5 -> s2 [label="-116"]; + s5 -> s2 [label="-115"]; + s5 -> s2 [label="-114"]; + s5 -> s2 [label="-113"]; + s5 -> s2 [label="-112"]; + s5 -> s2 [label="-111"]; + s5 -> s2 [label="-110"]; + s5 -> s2 [label="-109"]; + s5 -> s2 [label="-108"]; + s5 -> s2 [label="-107"]; + s5 -> s2 [label="-106"]; + s5 -> s2 [label="-105"]; + s5 -> s2 [label="-104"]; + s5 -> s2 [label="-103"]; + s5 -> s2 [label="-102"]; + s5 -> s2 [label="-101"]; + s5 -> s2 [label="-100"]; + s5 -> s2 [label="-99"]; + s5 -> s2 [label="-98"]; + s5 -> s2 [label="-97"]; + s5 -> s1 [label="-96"]; + s5 -> s1 [label="-95"]; + s5 -> s1 [label="-94"]; + s5 -> s1 [label="-93"]; + s5 -> s1 [label="-92"]; + s5 -> s1 [label="-91"]; + s5 -> s1 [label="-90"]; + s5 -> s1 [label="-89"]; + s5 -> s1 [label="-88"]; + s5 -> s1 [label="-87"]; + s5 -> s1 [label="-86"]; + s5 -> s1 [label="-85"]; + s5 -> s1 [label="-84"]; + s5 -> s1 [label="-83"]; + s5 -> s1 [label="-82"]; + s5 -> s1 [label="-81"]; + s5 -> s1 [label="-80"]; + s5 -> s1 [label="-79"]; + s5 -> s1 [label="-78"]; + s5 -> s1 [label="-77"]; + s5 -> s1 [label="-76"]; + s5 -> s1 [label="-75"]; + s5 -> s1 [label="-74"]; + s5 -> s1 [label="-73"]; + s5 -> s1 [label="-72"]; + s5 -> s1 [label="-71"]; + s5 -> s1 [label="-70"]; + s5 -> s1 [label="-69"]; + s5 -> s1 [label="-68"]; + s5 -> s1 [label="-67"]; + s5 -> s1 [label="-66"]; + s5 -> s1 [label="-65"]; + s5 -> s1 [label="-64"]; + s5 -> s1 [label="-63"]; + s5 -> s1 [label="-62"]; + s5 -> s1 [label="-61"]; + s5 -> s1 [label="-60"]; + s5 -> s1 [label="-59"]; + s5 -> s1 [label="-58"]; + s5 -> s1 [label="-57"]; + s5 -> s1 [label="-56"]; + s5 -> s1 [label="-55"]; + s5 -> s1 [label="-54"]; + s5 -> s1 [label="-53"]; + s5 -> s1 [label="-52"]; + s5 -> s1 [label="-51"]; + s5 -> s1 [label="-50"]; + s5 -> s1 [label="-49"]; + s5 -> s1 [label="-48"]; + s5 -> s1 [label="-47"]; + s5 -> s1 [label="-46"]; + s5 -> s1 [label="-45"]; + s5 -> s1 [label="-44"]; + s5 -> s1 [label="-43"]; + s5 -> s1 [label="-42"]; + s5 -> s1 [label="-41"]; + s5 -> s1 [label="-40"]; + s5 -> s1 [label="-39"]; + s5 -> s1 [label="-38"]; + s5 -> s1 [label="-37"]; + s5 -> s1 [label="-36"]; + s5 -> s1 [label="-35"]; + s5 -> s1 [label="-34"]; + s5 -> s1 [label="-33"]; + s5 -> s1 [label="-32"]; + s5 -> s1 [label="-31"]; + s5 -> s1 [label="-30"]; + s5 -> s1 [label="-29"]; + s5 -> s1 [label="-28"]; + s5 -> s1 [label="-27"]; + s5 -> s1 [label="-26"]; + s5 -> s1 [label="-25"]; + s5 -> s1 [label="-24"]; + s5 -> s1 [label="-23"]; + s5 -> s1 [label="-22"]; + s5 -> s1 [label="-21"]; + s5 -> s1 [label="-20"]; + s5 -> s1 [label="-19"]; + s5 -> s1 [label="-18"]; + s5 -> s1 [label="-17"]; + s5 -> s1 [label="-16"]; + s5 -> s1 [label="-15"]; + s5 -> s1 [label="-14"]; + s5 -> s1 [label="-13"]; + s5 -> s1 [label="-12"]; + s5 -> s1 [label="-11"]; + s5 -> s1 [label="-10"]; + s5 -> s1 [label="-9"]; + s5 -> s1 [label="-8"]; + s5 -> s1 [label="-7"]; + s5 -> s1 [label="-6"]; + s5 -> s1 [label="-5"]; + s5 -> s1 [label="-4"]; + s5 -> s1 [label="-3"]; + s5 -> s1 [label="-2"]; + s5 -> s1 [label="-1"]; + s6 -> s1 [label="0"]; + s6 -> s1 [label="1"]; + s6 -> s1 [label="2"]; + s6 -> s1 [label="3"]; + s6 -> s1 [label="4"]; + s6 -> s1 [label="5"]; + s6 -> s1 [label="6"]; + s6 -> s1 [label="7"]; + s6 -> s1 [label="8"]; + s6 -> s1 [label="9"]; + s6 -> s1 [label="10"]; + s6 -> s1 [label="11"]; + s6 -> s1 [label="12"]; + s6 -> s1 [label="13"]; + s6 -> s1 [label="14"]; + s6 -> s1 [label="15"]; + s6 -> s1 [label="16"]; + s6 -> s1 [label="17"]; + s6 -> s1 [label="18"]; + s6 -> s1 [label="19"]; + s6 -> s1 [label="20"]; + s6 -> s1 [label="21"]; + s6 -> s1 [label="22"]; + s6 -> s1 [label="23"]; + s6 -> s1 [label="24"]; + s6 -> s1 [label="25"]; + s6 -> s1 [label="26"]; + s6 -> s1 [label="27"]; + s6 -> s1 [label="28"]; + s6 -> s1 [label="29"]; + s6 -> s1 [label="30"]; + s6 -> s1 [label="31"]; + s6 -> s1 [label="32"]; + s6 -> s1 [label="33"]; + s6 -> s1 [label="34"]; + s6 -> s1 [label="35"]; + s6 -> s1 [label="36"]; + s6 -> s1 [label="37"]; + s6 -> s1 [label="38"]; + s6 -> s1 [label="39"]; + s6 -> s1 [label="40"]; + s6 -> s1 [label="41"]; + s6 -> s1 [label="42"]; + s6 -> s1 [label="43"]; + s6 -> s1 [label="44"]; + s6 -> s1 [label="45"]; + s6 -> s1 [label="46"]; + s6 -> s1 [label="47"]; + s6 -> s1 [label="48"]; + s6 -> s1 [label="49"]; + s6 -> s1 [label="50"]; + s6 -> s1 [label="51"]; + s6 -> s1 [label="52"]; + s6 -> s1 [label="53"]; + s6 -> s1 [label="54"]; + s6 -> s1 [label="55"]; + s6 -> s1 [label="56"]; + s6 -> s1 [label="57"]; + s6 -> s1 [label="58"]; + s6 -> s1 [label="59"]; + s6 -> s1 [label="60"]; + s6 -> s1 [label="61"]; + s6 -> s1 [label="62"]; + s6 -> s1 [label="63"]; + s6 -> s1 [label="64"]; + s6 -> s1 [label="65"]; + s6 -> s1 [label="66"]; + s6 -> s1 [label="67"]; + s6 -> s1 [label="68"]; + s6 -> s1 [label="69"]; + s6 -> s1 [label="70"]; + s6 -> s1 [label="71"]; + s6 -> s1 [label="72"]; + s6 -> s1 [label="73"]; + s6 -> s1 [label="74"]; + s6 -> s1 [label="75"]; + s6 -> s1 [label="76"]; + s6 -> s1 [label="77"]; + s6 -> s1 [label="78"]; + s6 -> s1 [label="79"]; + s6 -> s1 [label="80"]; + s6 -> s1 [label="81"]; + s6 -> s1 [label="82"]; + s6 -> s1 [label="83"]; + s6 -> s1 [label="84"]; + s6 -> s1 [label="85"]; + s6 -> s1 [label="86"]; + s6 -> s1 [label="87"]; + s6 -> s1 [label="88"]; + s6 -> s1 [label="89"]; + s6 -> s1 [label="90"]; + s6 -> s1 [label="91"]; + s6 -> s1 [label="92"]; + s6 -> s1 [label="93"]; + s6 -> s1 [label="94"]; + s6 -> s1 [label="95"]; + s6 -> s1 [label="96"]; + s6 -> s1 [label="97"]; + s6 -> s1 [label="98"]; + s6 -> s1 [label="99"]; + s6 -> s1 [label="100"]; + s6 -> s1 [label="101"]; + s6 -> s1 [label="102"]; + s6 -> s1 [label="103"]; + s6 -> s1 [label="104"]; + s6 -> s1 [label="105"]; + s6 -> s1 [label="106"]; + s6 -> s1 [label="107"]; + s6 -> s1 [label="108"]; + s6 -> s1 [label="109"]; + s6 -> s1 [label="110"]; + s6 -> s1 [label="111"]; + s6 -> s1 [label="112"]; + s6 -> s1 [label="113"]; + s6 -> s1 [label="114"]; + s6 -> s1 [label="115"]; + s6 -> s1 [label="116"]; + s6 -> s1 [label="117"]; + s6 -> s1 [label="118"]; + s6 -> s1 [label="119"]; + s6 -> s1 [label="120"]; + s6 -> s1 [label="121"]; + s6 -> s1 [label="122"]; + s6 -> s1 [label="123"]; + s6 -> s1 [label="124"]; + s6 -> s1 [label="125"]; + s6 -> s1 [label="126"]; + s6 -> s1 [label="127"]; + s6 -> s1 [label="-128"]; + s6 -> s1 [label="-127"]; + s6 -> s1 [label="-126"]; + s6 -> s1 [label="-125"]; + s6 -> s1 [label="-124"]; + s6 -> s1 [label="-123"]; + s6 -> s1 [label="-122"]; + s6 -> s1 [label="-121"]; + s6 -> s1 [label="-120"]; + s6 -> s1 [label="-119"]; + s6 -> s1 [label="-118"]; + s6 -> s1 [label="-117"]; + s6 -> s1 [label="-116"]; + s6 -> s1 [label="-115"]; + s6 -> s1 [label="-114"]; + s6 -> s1 [label="-113"]; + s6 -> s4 [label="-112"]; + s6 -> s4 [label="-111"]; + s6 -> s4 [label="-110"]; + s6 -> s4 [label="-109"]; + s6 -> s4 [label="-108"]; + s6 -> s4 [label="-107"]; + s6 -> s4 [label="-106"]; + s6 -> s4 [label="-105"]; + s6 -> s4 [label="-104"]; + s6 -> s4 [label="-103"]; + s6 -> s4 [label="-102"]; + s6 -> s4 [label="-101"]; + s6 -> s4 [label="-100"]; + s6 -> s4 [label="-99"]; + s6 -> s4 [label="-98"]; + s6 -> s4 [label="-97"]; + s6 -> s4 [label="-96"]; + s6 -> s4 [label="-95"]; + s6 -> s4 [label="-94"]; + s6 -> s4 [label="-93"]; + s6 -> s4 [label="-92"]; + s6 -> s4 [label="-91"]; + s6 -> s4 [label="-90"]; + s6 -> s4 [label="-89"]; + s6 -> s4 [label="-88"]; + s6 -> s4 [label="-87"]; + s6 -> s4 [label="-86"]; + s6 -> s4 [label="-85"]; + s6 -> s4 [label="-84"]; + s6 -> s4 [label="-83"]; + s6 -> s4 [label="-82"]; + s6 -> s4 [label="-81"]; + s6 -> s4 [label="-80"]; + s6 -> s4 [label="-79"]; + s6 -> s4 [label="-78"]; + s6 -> s4 [label="-77"]; + s6 -> s4 [label="-76"]; + s6 -> s4 [label="-75"]; + s6 -> s4 [label="-74"]; + s6 -> s4 [label="-73"]; + s6 -> s4 [label="-72"]; + s6 -> s4 [label="-71"]; + s6 -> s4 [label="-70"]; + s6 -> s4 [label="-69"]; + s6 -> s4 [label="-68"]; + s6 -> s4 [label="-67"]; + s6 -> s4 [label="-66"]; + s6 -> s4 [label="-65"]; + s6 -> s1 [label="-64"]; + s6 -> s1 [label="-63"]; + s6 -> s1 [label="-62"]; + s6 -> s1 [label="-61"]; + s6 -> s1 [label="-60"]; + s6 -> s1 [label="-59"]; + s6 -> s1 [label="-58"]; + s6 -> s1 [label="-57"]; + s6 -> s1 [label="-56"]; + s6 -> s1 [label="-55"]; + s6 -> s1 [label="-54"]; + s6 -> s1 [label="-53"]; + s6 -> s1 [label="-52"]; + s6 -> s1 [label="-51"]; + s6 -> s1 [label="-50"]; + s6 -> s1 [label="-49"]; + s6 -> s1 [label="-48"]; + s6 -> s1 [label="-47"]; + s6 -> s1 [label="-46"]; + s6 -> s1 [label="-45"]; + s6 -> s1 [label="-44"]; + s6 -> s1 [label="-43"]; + s6 -> s1 [label="-42"]; + s6 -> s1 [label="-41"]; + s6 -> s1 [label="-40"]; + s6 -> s1 [label="-39"]; + s6 -> s1 [label="-38"]; + s6 -> s1 [label="-37"]; + s6 -> s1 [label="-36"]; + s6 -> s1 [label="-35"]; + s6 -> s1 [label="-34"]; + s6 -> s1 [label="-33"]; + s6 -> s1 [label="-32"]; + s6 -> s1 [label="-31"]; + s6 -> s1 [label="-30"]; + s6 -> s1 [label="-29"]; + s6 -> s1 [label="-28"]; + s6 -> s1 [label="-27"]; + s6 -> s1 [label="-26"]; + s6 -> s1 [label="-25"]; + s6 -> s1 [label="-24"]; + s6 -> s1 [label="-23"]; + s6 -> s1 [label="-22"]; + s6 -> s1 [label="-21"]; + s6 -> s1 [label="-20"]; + s6 -> s1 [label="-19"]; + s6 -> s1 [label="-18"]; + s6 -> s1 [label="-17"]; + s6 -> s1 [label="-16"]; + s6 -> s1 [label="-15"]; + s6 -> s1 [label="-14"]; + s6 -> s1 [label="-13"]; + s6 -> s1 [label="-12"]; + s6 -> s1 [label="-11"]; + s6 -> s1 [label="-10"]; + s6 -> s1 [label="-9"]; + s6 -> s1 [label="-8"]; + s6 -> s1 [label="-7"]; + s6 -> s1 [label="-6"]; + s6 -> s1 [label="-5"]; + s6 -> s1 [label="-4"]; + s6 -> s1 [label="-3"]; + s6 -> s1 [label="-2"]; + s6 -> s1 [label="-1"]; + s7 -> s1 [label="0"]; + s7 -> s1 [label="1"]; + s7 -> s1 [label="2"]; + s7 -> s1 [label="3"]; + s7 -> s1 [label="4"]; + s7 -> s1 [label="5"]; + s7 -> s1 [label="6"]; + s7 -> s1 [label="7"]; + s7 -> s1 [label="8"]; + s7 -> s1 [label="9"]; + s7 -> s1 [label="10"]; + s7 -> s1 [label="11"]; + s7 -> s1 [label="12"]; + s7 -> s1 [label="13"]; + s7 -> s1 [label="14"]; + s7 -> s1 [label="15"]; + s7 -> s1 [label="16"]; + s7 -> s1 [label="17"]; + s7 -> s1 [label="18"]; + s7 -> s1 [label="19"]; + s7 -> s1 [label="20"]; + s7 -> s1 [label="21"]; + s7 -> s1 [label="22"]; + s7 -> s1 [label="23"]; + s7 -> s1 [label="24"]; + s7 -> s1 [label="25"]; + s7 -> s1 [label="26"]; + s7 -> s1 [label="27"]; + s7 -> s1 [label="28"]; + s7 -> s1 [label="29"]; + s7 -> s1 [label="30"]; + s7 -> s1 [label="31"]; + s7 -> s1 [label="32"]; + s7 -> s1 [label="33"]; + s7 -> s1 [label="34"]; + s7 -> s1 [label="35"]; + s7 -> s1 [label="36"]; + s7 -> s1 [label="37"]; + s7 -> s1 [label="38"]; + s7 -> s1 [label="39"]; + s7 -> s1 [label="40"]; + s7 -> s1 [label="41"]; + s7 -> s1 [label="42"]; + s7 -> s1 [label="43"]; + s7 -> s1 [label="44"]; + s7 -> s1 [label="45"]; + s7 -> s1 [label="46"]; + s7 -> s1 [label="47"]; + s7 -> s1 [label="48"]; + s7 -> s1 [label="49"]; + s7 -> s1 [label="50"]; + s7 -> s1 [label="51"]; + s7 -> s1 [label="52"]; + s7 -> s1 [label="53"]; + s7 -> s1 [label="54"]; + s7 -> s1 [label="55"]; + s7 -> s1 [label="56"]; + s7 -> s1 [label="57"]; + s7 -> s1 [label="58"]; + s7 -> s1 [label="59"]; + s7 -> s1 [label="60"]; + s7 -> s1 [label="61"]; + s7 -> s1 [label="62"]; + s7 -> s1 [label="63"]; + s7 -> s1 [label="64"]; + s7 -> s1 [label="65"]; + s7 -> s1 [label="66"]; + s7 -> s1 [label="67"]; + s7 -> s1 [label="68"]; + s7 -> s1 [label="69"]; + s7 -> s1 [label="70"]; + s7 -> s1 [label="71"]; + s7 -> s1 [label="72"]; + s7 -> s1 [label="73"]; + s7 -> s1 [label="74"]; + s7 -> s1 [label="75"]; + s7 -> s1 [label="76"]; + s7 -> s1 [label="77"]; + s7 -> s1 [label="78"]; + s7 -> s1 [label="79"]; + s7 -> s1 [label="80"]; + s7 -> s1 [label="81"]; + s7 -> s1 [label="82"]; + s7 -> s1 [label="83"]; + s7 -> s1 [label="84"]; + s7 -> s1 [label="85"]; + s7 -> s1 [label="86"]; + s7 -> s1 [label="87"]; + s7 -> s1 [label="88"]; + s7 -> s1 [label="89"]; + s7 -> s1 [label="90"]; + s7 -> s1 [label="91"]; + s7 -> s1 [label="92"]; + s7 -> s1 [label="93"]; + s7 -> s1 [label="94"]; + s7 -> s1 [label="95"]; + s7 -> s1 [label="96"]; + s7 -> s1 [label="97"]; + s7 -> s1 [label="98"]; + s7 -> s1 [label="99"]; + s7 -> s1 [label="100"]; + s7 -> s1 [label="101"]; + s7 -> s1 [label="102"]; + s7 -> s1 [label="103"]; + s7 -> s1 [label="104"]; + s7 -> s1 [label="105"]; + s7 -> s1 [label="106"]; + s7 -> s1 [label="107"]; + s7 -> s1 [label="108"]; + s7 -> s1 [label="109"]; + s7 -> s1 [label="110"]; + s7 -> s1 [label="111"]; + s7 -> s1 [label="112"]; + s7 -> s1 [label="113"]; + s7 -> s1 [label="114"]; + s7 -> s1 [label="115"]; + s7 -> s1 [label="116"]; + s7 -> s1 [label="117"]; + s7 -> s1 [label="118"]; + s7 -> s1 [label="119"]; + s7 -> s1 [label="120"]; + s7 -> s1 [label="121"]; + s7 -> s1 [label="122"]; + s7 -> s1 [label="123"]; + s7 -> s1 [label="124"]; + s7 -> s1 [label="125"]; + s7 -> s1 [label="126"]; + s7 -> s1 [label="127"]; + s7 -> s4 [label="-128"]; + s7 -> s4 [label="-127"]; + s7 -> s4 [label="-126"]; + s7 -> s4 [label="-125"]; + s7 -> s4 [label="-124"]; + s7 -> s4 [label="-123"]; + s7 -> s4 [label="-122"]; + s7 -> s4 [label="-121"]; + s7 -> s4 [label="-120"]; + s7 -> s4 [label="-119"]; + s7 -> s4 [label="-118"]; + s7 -> s4 [label="-117"]; + s7 -> s4 [label="-116"]; + s7 -> s4 [label="-115"]; + s7 -> s4 [label="-114"]; + s7 -> s4 [label="-113"]; + s7 -> s1 [label="-112"]; + s7 -> s1 [label="-111"]; + s7 -> s1 [label="-110"]; + s7 -> s1 [label="-109"]; + s7 -> s1 [label="-108"]; + s7 -> s1 [label="-107"]; + s7 -> s1 [label="-106"]; + s7 -> s1 [label="-105"]; + s7 -> s1 [label="-104"]; + s7 -> s1 [label="-103"]; + s7 -> s1 [label="-102"]; + s7 -> s1 [label="-101"]; + s7 -> s1 [label="-100"]; + s7 -> s1 [label="-99"]; + s7 -> s1 [label="-98"]; + s7 -> s1 [label="-97"]; + s7 -> s1 [label="-96"]; + s7 -> s1 [label="-95"]; + s7 -> s1 [label="-94"]; + s7 -> s1 [label="-93"]; + s7 -> s1 [label="-92"]; + s7 -> s1 [label="-91"]; + s7 -> s1 [label="-90"]; + s7 -> s1 [label="-89"]; + s7 -> s1 [label="-88"]; + s7 -> s1 [label="-87"]; + s7 -> s1 [label="-86"]; + s7 -> s1 [label="-85"]; + s7 -> s1 [label="-84"]; + s7 -> s1 [label="-83"]; + s7 -> s1 [label="-82"]; + s7 -> s1 [label="-81"]; + s7 -> s1 [label="-80"]; + s7 -> s1 [label="-79"]; + s7 -> s1 [label="-78"]; + s7 -> s1 [label="-77"]; + s7 -> s1 [label="-76"]; + s7 -> s1 [label="-75"]; + s7 -> s1 [label="-74"]; + s7 -> s1 [label="-73"]; + s7 -> s1 [label="-72"]; + s7 -> s1 [label="-71"]; + s7 -> s1 [label="-70"]; + s7 -> s1 [label="-69"]; + s7 -> s1 [label="-68"]; + s7 -> s1 [label="-67"]; + s7 -> s1 [label="-66"]; + s7 -> s1 [label="-65"]; + s7 -> s1 [label="-64"]; + s7 -> s1 [label="-63"]; + s7 -> s1 [label="-62"]; + s7 -> s1 [label="-61"]; + s7 -> s1 [label="-60"]; + s7 -> s1 [label="-59"]; + s7 -> s1 [label="-58"]; + s7 -> s1 [label="-57"]; + s7 -> s1 [label="-56"]; + s7 -> s1 [label="-55"]; + s7 -> s1 [label="-54"]; + s7 -> s1 [label="-53"]; + s7 -> s1 [label="-52"]; + s7 -> s1 [label="-51"]; + s7 -> s1 [label="-50"]; + s7 -> s1 [label="-49"]; + s7 -> s1 [label="-48"]; + s7 -> s1 [label="-47"]; + s7 -> s1 [label="-46"]; + s7 -> s1 [label="-45"]; + s7 -> s1 [label="-44"]; + s7 -> s1 [label="-43"]; + s7 -> s1 [label="-42"]; + s7 -> s1 [label="-41"]; + s7 -> s1 [label="-40"]; + s7 -> s1 [label="-39"]; + s7 -> s1 [label="-38"]; + s7 -> s1 [label="-37"]; + s7 -> s1 [label="-36"]; + s7 -> s1 [label="-35"]; + s7 -> s1 [label="-34"]; + s7 -> s1 [label="-33"]; + s7 -> s1 [label="-32"]; + s7 -> s1 [label="-31"]; + s7 -> s1 [label="-30"]; + s7 -> s1 [label="-29"]; + s7 -> s1 [label="-28"]; + s7 -> s1 [label="-27"]; + s7 -> s1 [label="-26"]; + s7 -> s1 [label="-25"]; + s7 -> s1 [label="-24"]; + s7 -> s1 [label="-23"]; + s7 -> s1 [label="-22"]; + s7 -> s1 [label="-21"]; + s7 -> s1 [label="-20"]; + s7 -> s1 [label="-19"]; + s7 -> s1 [label="-18"]; + s7 -> s1 [label="-17"]; + s7 -> s1 [label="-16"]; + s7 -> s1 [label="-15"]; + s7 -> s1 [label="-14"]; + s7 -> s1 [label="-13"]; + s7 -> s1 [label="-12"]; + s7 -> s1 [label="-11"]; + s7 -> s1 [label="-10"]; + s7 -> s1 [label="-9"]; + s7 -> s1 [label="-8"]; + s7 -> s1 [label="-7"]; + s7 -> s1 [label="-6"]; + s7 -> s1 [label="-5"]; + s7 -> s1 [label="-4"]; + s7 -> s1 [label="-3"]; + s7 -> s1 [label="-2"]; + s7 -> s1 [label="-1"]; + s8 -> s1 [label="0"]; + s8 -> s1 [label="1"]; + s8 -> s1 [label="2"]; + s8 -> s1 [label="3"]; + s8 -> s1 [label="4"]; + s8 -> s1 [label="5"]; + s8 -> s1 [label="6"]; + s8 -> s1 [label="7"]; + s8 -> s1 [label="8"]; + s8 -> s1 [label="9"]; + s8 -> s1 [label="10"]; + s8 -> s1 [label="11"]; + s8 -> s1 [label="12"]; + s8 -> s1 [label="13"]; + s8 -> s1 [label="14"]; + s8 -> s1 [label="15"]; + s8 -> s1 [label="16"]; + s8 -> s1 [label="17"]; + s8 -> s1 [label="18"]; + s8 -> s1 [label="19"]; + s8 -> s1 [label="20"]; + s8 -> s1 [label="21"]; + s8 -> s1 [label="22"]; + s8 -> s1 [label="23"]; + s8 -> s1 [label="24"]; + s8 -> s1 [label="25"]; + s8 -> s1 [label="26"]; + s8 -> s1 [label="27"]; + s8 -> s1 [label="28"]; + s8 -> s1 [label="29"]; + s8 -> s1 [label="30"]; + s8 -> s1 [label="31"]; + s8 -> s1 [label="32"]; + s8 -> s1 [label="33"]; + s8 -> s1 [label="34"]; + s8 -> s1 [label="35"]; + s8 -> s1 [label="36"]; + s8 -> s1 [label="37"]; + s8 -> s1 [label="38"]; + s8 -> s1 [label="39"]; + s8 -> s1 [label="40"]; + s8 -> s1 [label="41"]; + s8 -> s1 [label="42"]; + s8 -> s1 [label="43"]; + s8 -> s1 [label="44"]; + s8 -> s1 [label="45"]; + s8 -> s1 [label="46"]; + s8 -> s1 [label="47"]; + s8 -> s1 [label="48"]; + s8 -> s1 [label="49"]; + s8 -> s1 [label="50"]; + s8 -> s1 [label="51"]; + s8 -> s1 [label="52"]; + s8 -> s1 [label="53"]; + s8 -> s1 [label="54"]; + s8 -> s1 [label="55"]; + s8 -> s1 [label="56"]; + s8 -> s1 [label="57"]; + s8 -> s1 [label="58"]; + s8 -> s1 [label="59"]; + s8 -> s1 [label="60"]; + s8 -> s1 [label="61"]; + s8 -> s1 [label="62"]; + s8 -> s1 [label="63"]; + s8 -> s1 [label="64"]; + s8 -> s1 [label="65"]; + s8 -> s1 [label="66"]; + s8 -> s1 [label="67"]; + s8 -> s1 [label="68"]; + s8 -> s1 [label="69"]; + s8 -> s1 [label="70"]; + s8 -> s1 [label="71"]; + s8 -> s1 [label="72"]; + s8 -> s1 [label="73"]; + s8 -> s1 [label="74"]; + s8 -> s1 [label="75"]; + s8 -> s1 [label="76"]; + s8 -> s1 [label="77"]; + s8 -> s1 [label="78"]; + s8 -> s1 [label="79"]; + s8 -> s1 [label="80"]; + s8 -> s1 [label="81"]; + s8 -> s1 [label="82"]; + s8 -> s1 [label="83"]; + s8 -> s1 [label="84"]; + s8 -> s1 [label="85"]; + s8 -> s1 [label="86"]; + s8 -> s1 [label="87"]; + s8 -> s1 [label="88"]; + s8 -> s1 [label="89"]; + s8 -> s1 [label="90"]; + s8 -> s1 [label="91"]; + s8 -> s1 [label="92"]; + s8 -> s1 [label="93"]; + s8 -> s1 [label="94"]; + s8 -> s1 [label="95"]; + s8 -> s1 [label="96"]; + s8 -> s1 [label="97"]; + s8 -> s1 [label="98"]; + s8 -> s1 [label="99"]; + s8 -> s1 [label="100"]; + s8 -> s1 [label="101"]; + s8 -> s1 [label="102"]; + s8 -> s1 [label="103"]; + s8 -> s1 [label="104"]; + s8 -> s1 [label="105"]; + s8 -> s1 [label="106"]; + s8 -> s1 [label="107"]; + s8 -> s1 [label="108"]; + s8 -> s1 [label="109"]; + s8 -> s1 [label="110"]; + s8 -> s1 [label="111"]; + s8 -> s1 [label="112"]; + s8 -> s1 [label="113"]; + s8 -> s1 [label="114"]; + s8 -> s1 [label="115"]; + s8 -> s1 [label="116"]; + s8 -> s1 [label="117"]; + s8 -> s1 [label="118"]; + s8 -> s1 [label="119"]; + s8 -> s1 [label="120"]; + s8 -> s1 [label="121"]; + s8 -> s1 [label="122"]; + s8 -> s1 [label="123"]; + s8 -> s1 [label="124"]; + s8 -> s1 [label="125"]; + s8 -> s1 [label="126"]; + s8 -> s1 [label="127"]; + s8 -> s4 [label="-128"]; + s8 -> s4 [label="-127"]; + s8 -> s4 [label="-126"]; + s8 -> s4 [label="-125"]; + s8 -> s4 [label="-124"]; + s8 -> s4 [label="-123"]; + s8 -> s4 [label="-122"]; + s8 -> s4 [label="-121"]; + s8 -> s4 [label="-120"]; + s8 -> s4 [label="-119"]; + s8 -> s4 [label="-118"]; + s8 -> s4 [label="-117"]; + s8 -> s4 [label="-116"]; + s8 -> s4 [label="-115"]; + s8 -> s4 [label="-114"]; + s8 -> s4 [label="-113"]; + s8 -> s4 [label="-112"]; + s8 -> s4 [label="-111"]; + s8 -> s4 [label="-110"]; + s8 -> s4 [label="-109"]; + s8 -> s4 [label="-108"]; + s8 -> s4 [label="-107"]; + s8 -> s4 [label="-106"]; + s8 -> s4 [label="-105"]; + s8 -> s4 [label="-104"]; + s8 -> s4 [label="-103"]; + s8 -> s4 [label="-102"]; + s8 -> s4 [label="-101"]; + s8 -> s4 [label="-100"]; + s8 -> s4 [label="-99"]; + s8 -> s4 [label="-98"]; + s8 -> s4 [label="-97"]; + s8 -> s4 [label="-96"]; + s8 -> s4 [label="-95"]; + s8 -> s4 [label="-94"]; + s8 -> s4 [label="-93"]; + s8 -> s4 [label="-92"]; + s8 -> s4 [label="-91"]; + s8 -> s4 [label="-90"]; + s8 -> s4 [label="-89"]; + s8 -> s4 [label="-88"]; + s8 -> s4 [label="-87"]; + s8 -> s4 [label="-86"]; + s8 -> s4 [label="-85"]; + s8 -> s4 [label="-84"]; + s8 -> s4 [label="-83"]; + s8 -> s4 [label="-82"]; + s8 -> s4 [label="-81"]; + s8 -> s4 [label="-80"]; + s8 -> s4 [label="-79"]; + s8 -> s4 [label="-78"]; + s8 -> s4 [label="-77"]; + s8 -> s4 [label="-76"]; + s8 -> s4 [label="-75"]; + s8 -> s4 [label="-74"]; + s8 -> s4 [label="-73"]; + s8 -> s4 [label="-72"]; + s8 -> s4 [label="-71"]; + s8 -> s4 [label="-70"]; + s8 -> s4 [label="-69"]; + s8 -> s4 [label="-68"]; + s8 -> s4 [label="-67"]; + s8 -> s4 [label="-66"]; + s8 -> s4 [label="-65"]; + s8 -> s1 [label="-64"]; + s8 -> s1 [label="-63"]; + s8 -> s1 [label="-62"]; + s8 -> s1 [label="-61"]; + s8 -> s1 [label="-60"]; + s8 -> s1 [label="-59"]; + s8 -> s1 [label="-58"]; + s8 -> s1 [label="-57"]; + s8 -> s1 [label="-56"]; + s8 -> s1 [label="-55"]; + s8 -> s1 [label="-54"]; + s8 -> s1 [label="-53"]; + s8 -> s1 [label="-52"]; + s8 -> s1 [label="-51"]; + s8 -> s1 [label="-50"]; + s8 -> s1 [label="-49"]; + s8 -> s1 [label="-48"]; + s8 -> s1 [label="-47"]; + s8 -> s1 [label="-46"]; + s8 -> s1 [label="-45"]; + s8 -> s1 [label="-44"]; + s8 -> s1 [label="-43"]; + s8 -> s1 [label="-42"]; + s8 -> s1 [label="-41"]; + s8 -> s1 [label="-40"]; + s8 -> s1 [label="-39"]; + s8 -> s1 [label="-38"]; + s8 -> s1 [label="-37"]; + s8 -> s1 [label="-36"]; + s8 -> s1 [label="-35"]; + s8 -> s1 [label="-34"]; + s8 -> s1 [label="-33"]; + s8 -> s1 [label="-32"]; + s8 -> s1 [label="-31"]; + s8 -> s1 [label="-30"]; + s8 -> s1 [label="-29"]; + s8 -> s1 [label="-28"]; + s8 -> s1 [label="-27"]; + s8 -> s1 [label="-26"]; + s8 -> s1 [label="-25"]; + s8 -> s1 [label="-24"]; + s8 -> s1 [label="-23"]; + s8 -> s1 [label="-22"]; + s8 -> s1 [label="-21"]; + s8 -> s1 [label="-20"]; + s8 -> s1 [label="-19"]; + s8 -> s1 [label="-18"]; + s8 -> s1 [label="-17"]; + s8 -> s1 [label="-16"]; + s8 -> s1 [label="-15"]; + s8 -> s1 [label="-14"]; + s8 -> s1 [label="-13"]; + s8 -> s1 [label="-12"]; + s8 -> s1 [label="-11"]; + s8 -> s1 [label="-10"]; + s8 -> s1 [label="-9"]; + s8 -> s1 [label="-8"]; + s8 -> s1 [label="-7"]; + s8 -> s1 [label="-6"]; + s8 -> s1 [label="-5"]; + s8 -> s1 [label="-4"]; + s8 -> s1 [label="-3"]; + s8 -> s1 [label="-2"]; + s8 -> s1 [label="-1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} diff --git a/results/full-partial-optim.svg b/results/full-partial-optim.svg new file mode 100644 index 0000000..171bdb8 --- /dev/null +++ b/results/full-partial-optim.svg @@ -0,0 +1 @@ +0x00-0x7F0xC2-0xDF0xE00xE1-0xEC, 0xEE-0xEF0xED0xF00xF1-0xF30xF40x80-0xBF0x80-0xBF0xA0-0xBF0x80-0x9F0x80-0xBF0x90-0xBF0x80-0x8Fs0s2s3s4s5s6s7s8 \ No newline at end of file diff --git a/results/full-partial.dot b/results/full-partial.dot new file mode 100644 index 0000000..fb3e6ad --- /dev/null +++ b/results/full-partial.dot @@ -0,0 +1,30 @@ +digraph full { + + s0 [shape="doublecircle" label="s0"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0x00-0x7F"]; + s0 -> s2 [label="0xC2-0xDF"]; + s0 -> s4 [label="0xE0"]; + s0 -> s3 [label="0xE1-0xEC, 0xEE-0xEF"]; + s0 -> s5 [label="0xED"]; + s0 -> s7 [label="0xF0"]; + s0 -> s6 [label="0xF1-0xF3"]; + s0 -> s8 [label="0xF4"]; + s2 -> s0 [label="0x80-0xBF"]; + s3 -> s2 [label="0x80-0xBF"]; + s4 -> s2 [label="0xA0-0xBF"]; + s5 -> s2 [label="0x80-0x9F"]; + s6 -> s3 [label="0x80-0xBF"]; + s7 -> s3 [label="0x90-0xBF"]; + s8 -> s3 [label="0x80-0x8F"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} \ No newline at end of file diff --git a/results/full-partial.pdf b/results/full-partial.pdf new file mode 100644 index 0000000..0bfacb4 Binary files /dev/null and b/results/full-partial.pdf differ diff --git a/results/full.dot b/results/full.dot new file mode 100644 index 0000000..63145ec --- /dev/null +++ b/results/full.dot @@ -0,0 +1,49 @@ +digraph full { + + s0 [shape="doublecircle" label="s0"]; + s1 [shape="circle" label="s1"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0 -- 127"]; + s0 -> s1 [label="-128 -- -63"]; + s0 -> s2 [label="-62 -- -33"]; + s0 -> s4 [label="-32"]; + s0 -> s3 [label="-31 -- -20"]; + s0 -> s5 [label="-19"]; + s0 -> s3 [label="-18 -- -17"]; + s0 -> s7 [label="-16"]; + s0 -> s6 [label="-15 -- -13"]; + s0 -> s8 [label="-12"]; + s0 -> s1 [label="-11 -- -1"]; + s1 -> s1 [label="0 -- -1"]; + s2 -> s1 [label="0 -- 127"]; + s2 -> s0 [label="-128 -- -65"]; + s2 -> s1 [label="-64 -- -1"]; + s3 -> s1 [label="0 -- 127"]; + s3 -> s2 [label="-128 -- -65"]; + s3 -> s1 [label="-64 -- -1"]; + s4 -> s1 [label="0 -- -97"]; + s4 -> s2 [label="-96 -- -65"]; + s4 -> s1 [label="-64 -- -1"]; + s5 -> s1 [label="0 -- 127"]; + s5 -> s2 [label="-128 -- -97"]; + s5 -> s1 [label="-96 -- -1"]; + s6 -> s1 [label="0 -- 127"]; + s6 -> s3 [label="-128 -- -65"]; + s6 -> s1 [label="-64 -- -1"]; + s7 -> s1 [label="0 -- -113"]; + s7 -> s3 [label="-112 -- -65"]; + s7 -> s1 [label="-64 -- -1"]; + s8 -> s1 [label="0 -- 127"]; + s8 -> s3 [label="-128 -- -113"]; + s8 -> s1 [label="-112 -- -1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} \ No newline at end of file diff --git a/results/full.pdf b/results/full.pdf new file mode 100644 index 0000000..ef25fb8 Binary files /dev/null and b/results/full.pdf differ diff --git a/results/guava.dot b/results/guava.dot new file mode 100644 index 0000000..dbe67e5 --- /dev/null +++ b/results/guava.dot @@ -0,0 +1,2320 @@ +digraph g { + + s0 [shape="doublecircle" label="s0"]; + s1 [shape="circle" label="s1"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0"]; + s0 -> s0 [label="1"]; + s0 -> s0 [label="2"]; + s0 -> s0 [label="3"]; + s0 -> s0 [label="4"]; + s0 -> s0 [label="5"]; + s0 -> s0 [label="6"]; + s0 -> s0 [label="7"]; + s0 -> s0 [label="8"]; + s0 -> s0 [label="9"]; + s0 -> s0 [label="10"]; + s0 -> s0 [label="11"]; + s0 -> s0 [label="12"]; + s0 -> s0 [label="13"]; + s0 -> s0 [label="14"]; + s0 -> s0 [label="15"]; + s0 -> s0 [label="16"]; + s0 -> s0 [label="17"]; + s0 -> s0 [label="18"]; + s0 -> s0 [label="19"]; + s0 -> s0 [label="20"]; + s0 -> s0 [label="21"]; + s0 -> s0 [label="22"]; + s0 -> s0 [label="23"]; + s0 -> s0 [label="24"]; + s0 -> s0 [label="25"]; + s0 -> s0 [label="26"]; + s0 -> s0 [label="27"]; + s0 -> s0 [label="28"]; + s0 -> s0 [label="29"]; + s0 -> s0 [label="30"]; + s0 -> s0 [label="31"]; + s0 -> s0 [label="32"]; + s0 -> s0 [label="33"]; + s0 -> s0 [label="34"]; + s0 -> s0 [label="35"]; + s0 -> s0 [label="36"]; + s0 -> s0 [label="37"]; + s0 -> s0 [label="38"]; + s0 -> s0 [label="39"]; + s0 -> s0 [label="40"]; + s0 -> s0 [label="41"]; + s0 -> s0 [label="42"]; + s0 -> s0 [label="43"]; + s0 -> s0 [label="44"]; + s0 -> s0 [label="45"]; + s0 -> s0 [label="46"]; + s0 -> s0 [label="47"]; + s0 -> s0 [label="48"]; + s0 -> s0 [label="49"]; + s0 -> s0 [label="50"]; + s0 -> s0 [label="51"]; + s0 -> s0 [label="52"]; + s0 -> s0 [label="53"]; + s0 -> s0 [label="54"]; + s0 -> s0 [label="55"]; + s0 -> s0 [label="56"]; + s0 -> s0 [label="57"]; + s0 -> s0 [label="58"]; + s0 -> s0 [label="59"]; + s0 -> s0 [label="60"]; + s0 -> s0 [label="61"]; + s0 -> s0 [label="62"]; + s0 -> s0 [label="63"]; + s0 -> s0 [label="64"]; + s0 -> s0 [label="65"]; + s0 -> s0 [label="66"]; + s0 -> s0 [label="67"]; + s0 -> s0 [label="68"]; + s0 -> s0 [label="69"]; + s0 -> s0 [label="70"]; + s0 -> s0 [label="71"]; + s0 -> s0 [label="72"]; + s0 -> s0 [label="73"]; + s0 -> s0 [label="74"]; + s0 -> s0 [label="75"]; + s0 -> s0 [label="76"]; + s0 -> s0 [label="77"]; + s0 -> s0 [label="78"]; + s0 -> s0 [label="79"]; + s0 -> s0 [label="80"]; + s0 -> s0 [label="81"]; + s0 -> s0 [label="82"]; + s0 -> s0 [label="83"]; + s0 -> s0 [label="84"]; + s0 -> s0 [label="85"]; + s0 -> s0 [label="86"]; + s0 -> s0 [label="87"]; + s0 -> s0 [label="88"]; + s0 -> s0 [label="89"]; + s0 -> s0 [label="90"]; + s0 -> s0 [label="91"]; + s0 -> s0 [label="92"]; + s0 -> s0 [label="93"]; + s0 -> s0 [label="94"]; + s0 -> s0 [label="95"]; + s0 -> s0 [label="96"]; + s0 -> s0 [label="97"]; + s0 -> s0 [label="98"]; + s0 -> s0 [label="99"]; + s0 -> s0 [label="100"]; + s0 -> s0 [label="101"]; + s0 -> s0 [label="102"]; + s0 -> s0 [label="103"]; + s0 -> s0 [label="104"]; + s0 -> s0 [label="105"]; + s0 -> s0 [label="106"]; + s0 -> s0 [label="107"]; + s0 -> s0 [label="108"]; + s0 -> s0 [label="109"]; + s0 -> s0 [label="110"]; + s0 -> s0 [label="111"]; + s0 -> s0 [label="112"]; + s0 -> s0 [label="113"]; + s0 -> s0 [label="114"]; + s0 -> s0 [label="115"]; + s0 -> s0 [label="116"]; + s0 -> s0 [label="117"]; + s0 -> s0 [label="118"]; + s0 -> s0 [label="119"]; + s0 -> s0 [label="120"]; + s0 -> s0 [label="121"]; + s0 -> s0 [label="122"]; + s0 -> s0 [label="123"]; + s0 -> s0 [label="124"]; + s0 -> s0 [label="125"]; + s0 -> s0 [label="126"]; + s0 -> s0 [label="127"]; + s0 -> s1 [label="-128"]; + s0 -> s1 [label="-127"]; + s0 -> s1 [label="-126"]; + s0 -> s1 [label="-125"]; + s0 -> s1 [label="-124"]; + s0 -> s1 [label="-123"]; + s0 -> s1 [label="-122"]; + s0 -> s1 [label="-121"]; + s0 -> s1 [label="-120"]; + s0 -> s1 [label="-119"]; + s0 -> s1 [label="-118"]; + s0 -> s1 [label="-117"]; + s0 -> s1 [label="-116"]; + s0 -> s1 [label="-115"]; + s0 -> s1 [label="-114"]; + s0 -> s1 [label="-113"]; + s0 -> s1 [label="-112"]; + s0 -> s1 [label="-111"]; + s0 -> s1 [label="-110"]; + s0 -> s1 [label="-109"]; + s0 -> s1 [label="-108"]; + s0 -> s1 [label="-107"]; + s0 -> s1 [label="-106"]; + s0 -> s1 [label="-105"]; + s0 -> s1 [label="-104"]; + s0 -> s1 [label="-103"]; + s0 -> s1 [label="-102"]; + s0 -> s1 [label="-101"]; + s0 -> s1 [label="-100"]; + s0 -> s1 [label="-99"]; + s0 -> s1 [label="-98"]; + s0 -> s1 [label="-97"]; + s0 -> s1 [label="-96"]; + s0 -> s1 [label="-95"]; + s0 -> s1 [label="-94"]; + s0 -> s1 [label="-93"]; + s0 -> s1 [label="-92"]; + s0 -> s1 [label="-91"]; + s0 -> s1 [label="-90"]; + s0 -> s1 [label="-89"]; + s0 -> s1 [label="-88"]; + s0 -> s1 [label="-87"]; + s0 -> s1 [label="-86"]; + s0 -> s1 [label="-85"]; + s0 -> s1 [label="-84"]; + s0 -> s1 [label="-83"]; + s0 -> s1 [label="-82"]; + s0 -> s1 [label="-81"]; + s0 -> s1 [label="-80"]; + s0 -> s1 [label="-79"]; + s0 -> s1 [label="-78"]; + s0 -> s1 [label="-77"]; + s0 -> s1 [label="-76"]; + s0 -> s1 [label="-75"]; + s0 -> s1 [label="-74"]; + s0 -> s1 [label="-73"]; + s0 -> s1 [label="-72"]; + s0 -> s1 [label="-71"]; + s0 -> s1 [label="-70"]; + s0 -> s1 [label="-69"]; + s0 -> s1 [label="-68"]; + s0 -> s1 [label="-67"]; + s0 -> s1 [label="-66"]; + s0 -> s1 [label="-65"]; + s0 -> s1 [label="-64"]; + s0 -> s1 [label="-63"]; + s0 -> s2 [label="-62"]; + s0 -> s2 [label="-61"]; + s0 -> s2 [label="-60"]; + s0 -> s2 [label="-59"]; + s0 -> s2 [label="-58"]; + s0 -> s2 [label="-57"]; + s0 -> s2 [label="-56"]; + s0 -> s2 [label="-55"]; + s0 -> s2 [label="-54"]; + s0 -> s2 [label="-53"]; + s0 -> s2 [label="-52"]; + s0 -> s2 [label="-51"]; + s0 -> s2 [label="-50"]; + s0 -> s2 [label="-49"]; + s0 -> s2 [label="-48"]; + s0 -> s2 [label="-47"]; + s0 -> s2 [label="-46"]; + s0 -> s2 [label="-45"]; + s0 -> s2 [label="-44"]; + s0 -> s2 [label="-43"]; + s0 -> s2 [label="-42"]; + s0 -> s2 [label="-41"]; + s0 -> s2 [label="-40"]; + s0 -> s2 [label="-39"]; + s0 -> s2 [label="-38"]; + s0 -> s2 [label="-37"]; + s0 -> s2 [label="-36"]; + s0 -> s2 [label="-35"]; + s0 -> s2 [label="-34"]; + s0 -> s2 [label="-33"]; + s0 -> s3 [label="-32"]; + s0 -> s4 [label="-31"]; + s0 -> s4 [label="-30"]; + s0 -> s4 [label="-29"]; + s0 -> s4 [label="-28"]; + s0 -> s4 [label="-27"]; + s0 -> s4 [label="-26"]; + s0 -> s4 [label="-25"]; + s0 -> s4 [label="-24"]; + s0 -> s4 [label="-23"]; + s0 -> s4 [label="-22"]; + s0 -> s4 [label="-21"]; + s0 -> s4 [label="-20"]; + s0 -> s5 [label="-19"]; + s0 -> s4 [label="-18"]; + s0 -> s4 [label="-17"]; + s0 -> s6 [label="-16"]; + s0 -> s8 [label="-15"]; + s0 -> s8 [label="-14"]; + s0 -> s8 [label="-13"]; + s0 -> s7 [label="-12"]; + s0 -> s1 [label="-11"]; + s0 -> s1 [label="-10"]; + s0 -> s1 [label="-9"]; + s0 -> s1 [label="-8"]; + s0 -> s1 [label="-7"]; + s0 -> s1 [label="-6"]; + s0 -> s1 [label="-5"]; + s0 -> s1 [label="-4"]; + s0 -> s1 [label="-3"]; + s0 -> s1 [label="-2"]; + s0 -> s1 [label="-1"]; + s1 -> s1 [label="0"]; + s1 -> s1 [label="1"]; + s1 -> s1 [label="2"]; + s1 -> s1 [label="3"]; + s1 -> s1 [label="4"]; + s1 -> s1 [label="5"]; + s1 -> s1 [label="6"]; + s1 -> s1 [label="7"]; + s1 -> s1 [label="8"]; + s1 -> s1 [label="9"]; + s1 -> s1 [label="10"]; + s1 -> s1 [label="11"]; + s1 -> s1 [label="12"]; + s1 -> s1 [label="13"]; + s1 -> s1 [label="14"]; + s1 -> s1 [label="15"]; + s1 -> s1 [label="16"]; + s1 -> s1 [label="17"]; + s1 -> s1 [label="18"]; + s1 -> s1 [label="19"]; + s1 -> s1 [label="20"]; + s1 -> s1 [label="21"]; + s1 -> s1 [label="22"]; + s1 -> s1 [label="23"]; + s1 -> s1 [label="24"]; + s1 -> s1 [label="25"]; + s1 -> s1 [label="26"]; + s1 -> s1 [label="27"]; + s1 -> s1 [label="28"]; + s1 -> s1 [label="29"]; + s1 -> s1 [label="30"]; + s1 -> s1 [label="31"]; + s1 -> s1 [label="32"]; + s1 -> s1 [label="33"]; + s1 -> s1 [label="34"]; + s1 -> s1 [label="35"]; + s1 -> s1 [label="36"]; + s1 -> s1 [label="37"]; + s1 -> s1 [label="38"]; + s1 -> s1 [label="39"]; + s1 -> s1 [label="40"]; + s1 -> s1 [label="41"]; + s1 -> s1 [label="42"]; + s1 -> s1 [label="43"]; + s1 -> s1 [label="44"]; + s1 -> s1 [label="45"]; + s1 -> s1 [label="46"]; + s1 -> s1 [label="47"]; + s1 -> s1 [label="48"]; + s1 -> s1 [label="49"]; + s1 -> s1 [label="50"]; + s1 -> s1 [label="51"]; + s1 -> s1 [label="52"]; + s1 -> s1 [label="53"]; + s1 -> s1 [label="54"]; + s1 -> s1 [label="55"]; + s1 -> s1 [label="56"]; + s1 -> s1 [label="57"]; + s1 -> s1 [label="58"]; + s1 -> s1 [label="59"]; + s1 -> s1 [label="60"]; + s1 -> s1 [label="61"]; + s1 -> s1 [label="62"]; + s1 -> s1 [label="63"]; + s1 -> s1 [label="64"]; + s1 -> s1 [label="65"]; + s1 -> s1 [label="66"]; + s1 -> s1 [label="67"]; + s1 -> s1 [label="68"]; + s1 -> s1 [label="69"]; + s1 -> s1 [label="70"]; + s1 -> s1 [label="71"]; + s1 -> s1 [label="72"]; + s1 -> s1 [label="73"]; + s1 -> s1 [label="74"]; + s1 -> s1 [label="75"]; + s1 -> s1 [label="76"]; + s1 -> s1 [label="77"]; + s1 -> s1 [label="78"]; + s1 -> s1 [label="79"]; + s1 -> s1 [label="80"]; + s1 -> s1 [label="81"]; + s1 -> s1 [label="82"]; + s1 -> s1 [label="83"]; + s1 -> s1 [label="84"]; + s1 -> s1 [label="85"]; + s1 -> s1 [label="86"]; + s1 -> s1 [label="87"]; + s1 -> s1 [label="88"]; + s1 -> s1 [label="89"]; + s1 -> s1 [label="90"]; + s1 -> s1 [label="91"]; + s1 -> s1 [label="92"]; + s1 -> s1 [label="93"]; + s1 -> s1 [label="94"]; + s1 -> s1 [label="95"]; + s1 -> s1 [label="96"]; + s1 -> s1 [label="97"]; + s1 -> s1 [label="98"]; + s1 -> s1 [label="99"]; + s1 -> s1 [label="100"]; + s1 -> s1 [label="101"]; + s1 -> s1 [label="102"]; + s1 -> s1 [label="103"]; + s1 -> s1 [label="104"]; + s1 -> s1 [label="105"]; + s1 -> s1 [label="106"]; + s1 -> s1 [label="107"]; + s1 -> s1 [label="108"]; + s1 -> s1 [label="109"]; + s1 -> s1 [label="110"]; + s1 -> s1 [label="111"]; + s1 -> s1 [label="112"]; + s1 -> s1 [label="113"]; + s1 -> s1 [label="114"]; + s1 -> s1 [label="115"]; + s1 -> s1 [label="116"]; + s1 -> s1 [label="117"]; + s1 -> s1 [label="118"]; + s1 -> s1 [label="119"]; + s1 -> s1 [label="120"]; + s1 -> s1 [label="121"]; + s1 -> s1 [label="122"]; + s1 -> s1 [label="123"]; + s1 -> s1 [label="124"]; + s1 -> s1 [label="125"]; + s1 -> s1 [label="126"]; + s1 -> s1 [label="127"]; + s1 -> s1 [label="-128"]; + s1 -> s1 [label="-127"]; + s1 -> s1 [label="-126"]; + s1 -> s1 [label="-125"]; + s1 -> s1 [label="-124"]; + s1 -> s1 [label="-123"]; + s1 -> s1 [label="-122"]; + s1 -> s1 [label="-121"]; + s1 -> s1 [label="-120"]; + s1 -> s1 [label="-119"]; + s1 -> s1 [label="-118"]; + s1 -> s1 [label="-117"]; + s1 -> s1 [label="-116"]; + s1 -> s1 [label="-115"]; + s1 -> s1 [label="-114"]; + s1 -> s1 [label="-113"]; + s1 -> s1 [label="-112"]; + s1 -> s1 [label="-111"]; + s1 -> s1 [label="-110"]; + s1 -> s1 [label="-109"]; + s1 -> s1 [label="-108"]; + s1 -> s1 [label="-107"]; + s1 -> s1 [label="-106"]; + s1 -> s1 [label="-105"]; + s1 -> s1 [label="-104"]; + s1 -> s1 [label="-103"]; + s1 -> s1 [label="-102"]; + s1 -> s1 [label="-101"]; + s1 -> s1 [label="-100"]; + s1 -> s1 [label="-99"]; + s1 -> s1 [label="-98"]; + s1 -> s1 [label="-97"]; + s1 -> s1 [label="-96"]; + s1 -> s1 [label="-95"]; + s1 -> s1 [label="-94"]; + s1 -> s1 [label="-93"]; + s1 -> s1 [label="-92"]; + s1 -> s1 [label="-91"]; + s1 -> s1 [label="-90"]; + s1 -> s1 [label="-89"]; + s1 -> s1 [label="-88"]; + s1 -> s1 [label="-87"]; + s1 -> s1 [label="-86"]; + s1 -> s1 [label="-85"]; + s1 -> s1 [label="-84"]; + s1 -> s1 [label="-83"]; + s1 -> s1 [label="-82"]; + s1 -> s1 [label="-81"]; + s1 -> s1 [label="-80"]; + s1 -> s1 [label="-79"]; + s1 -> s1 [label="-78"]; + s1 -> s1 [label="-77"]; + s1 -> s1 [label="-76"]; + s1 -> s1 [label="-75"]; + s1 -> s1 [label="-74"]; + s1 -> s1 [label="-73"]; + s1 -> s1 [label="-72"]; + s1 -> s1 [label="-71"]; + s1 -> s1 [label="-70"]; + s1 -> s1 [label="-69"]; + s1 -> s1 [label="-68"]; + s1 -> s1 [label="-67"]; + s1 -> s1 [label="-66"]; + s1 -> s1 [label="-65"]; + s1 -> s1 [label="-64"]; + s1 -> s1 [label="-63"]; + s1 -> s1 [label="-62"]; + s1 -> s1 [label="-61"]; + s1 -> s1 [label="-60"]; + s1 -> s1 [label="-59"]; + s1 -> s1 [label="-58"]; + s1 -> s1 [label="-57"]; + s1 -> s1 [label="-56"]; + s1 -> s1 [label="-55"]; + s1 -> s1 [label="-54"]; + s1 -> s1 [label="-53"]; + s1 -> s1 [label="-52"]; + s1 -> s1 [label="-51"]; + s1 -> s1 [label="-50"]; + s1 -> s1 [label="-49"]; + s1 -> s1 [label="-48"]; + s1 -> s1 [label="-47"]; + s1 -> s1 [label="-46"]; + s1 -> s1 [label="-45"]; + s1 -> s1 [label="-44"]; + s1 -> s1 [label="-43"]; + s1 -> s1 [label="-42"]; + s1 -> s1 [label="-41"]; + s1 -> s1 [label="-40"]; + s1 -> s1 [label="-39"]; + s1 -> s1 [label="-38"]; + s1 -> s1 [label="-37"]; + s1 -> s1 [label="-36"]; + s1 -> s1 [label="-35"]; + s1 -> s1 [label="-34"]; + s1 -> s1 [label="-33"]; + s1 -> s1 [label="-32"]; + s1 -> s1 [label="-31"]; + s1 -> s1 [label="-30"]; + s1 -> s1 [label="-29"]; + s1 -> s1 [label="-28"]; + s1 -> s1 [label="-27"]; + s1 -> s1 [label="-26"]; + s1 -> s1 [label="-25"]; + s1 -> s1 [label="-24"]; + s1 -> s1 [label="-23"]; + s1 -> s1 [label="-22"]; + s1 -> s1 [label="-21"]; + s1 -> s1 [label="-20"]; + s1 -> s1 [label="-19"]; + s1 -> s1 [label="-18"]; + s1 -> s1 [label="-17"]; + s1 -> s1 [label="-16"]; + s1 -> s1 [label="-15"]; + s1 -> s1 [label="-14"]; + s1 -> s1 [label="-13"]; + s1 -> s1 [label="-12"]; + s1 -> s1 [label="-11"]; + s1 -> s1 [label="-10"]; + s1 -> s1 [label="-9"]; + s1 -> s1 [label="-8"]; + s1 -> s1 [label="-7"]; + s1 -> s1 [label="-6"]; + s1 -> s1 [label="-5"]; + s1 -> s1 [label="-4"]; + s1 -> s1 [label="-3"]; + s1 -> s1 [label="-2"]; + s1 -> s1 [label="-1"]; + s2 -> s1 [label="0"]; + s2 -> s1 [label="1"]; + s2 -> s1 [label="2"]; + s2 -> s1 [label="3"]; + s2 -> s1 [label="4"]; + s2 -> s1 [label="5"]; + s2 -> s1 [label="6"]; + s2 -> s1 [label="7"]; + s2 -> s1 [label="8"]; + s2 -> s1 [label="9"]; + s2 -> s1 [label="10"]; + s2 -> s1 [label="11"]; + s2 -> s1 [label="12"]; + s2 -> s1 [label="13"]; + s2 -> s1 [label="14"]; + s2 -> s1 [label="15"]; + s2 -> s1 [label="16"]; + s2 -> s1 [label="17"]; + s2 -> s1 [label="18"]; + s2 -> s1 [label="19"]; + s2 -> s1 [label="20"]; + s2 -> s1 [label="21"]; + s2 -> s1 [label="22"]; + s2 -> s1 [label="23"]; + s2 -> s1 [label="24"]; + s2 -> s1 [label="25"]; + s2 -> s1 [label="26"]; + s2 -> s1 [label="27"]; + s2 -> s1 [label="28"]; + s2 -> s1 [label="29"]; + s2 -> s1 [label="30"]; + s2 -> s1 [label="31"]; + s2 -> s1 [label="32"]; + s2 -> s1 [label="33"]; + s2 -> s1 [label="34"]; + s2 -> s1 [label="35"]; + s2 -> s1 [label="36"]; + s2 -> s1 [label="37"]; + s2 -> s1 [label="38"]; + s2 -> s1 [label="39"]; + s2 -> s1 [label="40"]; + s2 -> s1 [label="41"]; + s2 -> s1 [label="42"]; + s2 -> s1 [label="43"]; + s2 -> s1 [label="44"]; + s2 -> s1 [label="45"]; + s2 -> s1 [label="46"]; + s2 -> s1 [label="47"]; + s2 -> s1 [label="48"]; + s2 -> s1 [label="49"]; + s2 -> s1 [label="50"]; + s2 -> s1 [label="51"]; + s2 -> s1 [label="52"]; + s2 -> s1 [label="53"]; + s2 -> s1 [label="54"]; + s2 -> s1 [label="55"]; + s2 -> s1 [label="56"]; + s2 -> s1 [label="57"]; + s2 -> s1 [label="58"]; + s2 -> s1 [label="59"]; + s2 -> s1 [label="60"]; + s2 -> s1 [label="61"]; + s2 -> s1 [label="62"]; + s2 -> s1 [label="63"]; + s2 -> s1 [label="64"]; + s2 -> s1 [label="65"]; + s2 -> s1 [label="66"]; + s2 -> s1 [label="67"]; + s2 -> s1 [label="68"]; + s2 -> s1 [label="69"]; + s2 -> s1 [label="70"]; + s2 -> s1 [label="71"]; + s2 -> s1 [label="72"]; + s2 -> s1 [label="73"]; + s2 -> s1 [label="74"]; + s2 -> s1 [label="75"]; + s2 -> s1 [label="76"]; + s2 -> s1 [label="77"]; + s2 -> s1 [label="78"]; + s2 -> s1 [label="79"]; + s2 -> s1 [label="80"]; + s2 -> s1 [label="81"]; + s2 -> s1 [label="82"]; + s2 -> s1 [label="83"]; + s2 -> s1 [label="84"]; + s2 -> s1 [label="85"]; + s2 -> s1 [label="86"]; + s2 -> s1 [label="87"]; + s2 -> s1 [label="88"]; + s2 -> s1 [label="89"]; + s2 -> s1 [label="90"]; + s2 -> s1 [label="91"]; + s2 -> s1 [label="92"]; + s2 -> s1 [label="93"]; + s2 -> s1 [label="94"]; + s2 -> s1 [label="95"]; + s2 -> s1 [label="96"]; + s2 -> s1 [label="97"]; + s2 -> s1 [label="98"]; + s2 -> s1 [label="99"]; + s2 -> s1 [label="100"]; + s2 -> s1 [label="101"]; + s2 -> s1 [label="102"]; + s2 -> s1 [label="103"]; + s2 -> s1 [label="104"]; + s2 -> s1 [label="105"]; + s2 -> s1 [label="106"]; + s2 -> s1 [label="107"]; + s2 -> s1 [label="108"]; + s2 -> s1 [label="109"]; + s2 -> s1 [label="110"]; + s2 -> s1 [label="111"]; + s2 -> s1 [label="112"]; + s2 -> s1 [label="113"]; + s2 -> s1 [label="114"]; + s2 -> s1 [label="115"]; + s2 -> s1 [label="116"]; + s2 -> s1 [label="117"]; + s2 -> s1 [label="118"]; + s2 -> s1 [label="119"]; + s2 -> s1 [label="120"]; + s2 -> s1 [label="121"]; + s2 -> s1 [label="122"]; + s2 -> s1 [label="123"]; + s2 -> s1 [label="124"]; + s2 -> s1 [label="125"]; + s2 -> s1 [label="126"]; + s2 -> s1 [label="127"]; + s2 -> s0 [label="-128"]; + s2 -> s0 [label="-127"]; + s2 -> s0 [label="-126"]; + s2 -> s0 [label="-125"]; + s2 -> s0 [label="-124"]; + s2 -> s0 [label="-123"]; + s2 -> s0 [label="-122"]; + s2 -> s0 [label="-121"]; + s2 -> s0 [label="-120"]; + s2 -> s0 [label="-119"]; + s2 -> s0 [label="-118"]; + s2 -> s0 [label="-117"]; + s2 -> s0 [label="-116"]; + s2 -> s0 [label="-115"]; + s2 -> s0 [label="-114"]; + s2 -> s0 [label="-113"]; + s2 -> s0 [label="-112"]; + s2 -> s0 [label="-111"]; + s2 -> s0 [label="-110"]; + s2 -> s0 [label="-109"]; + s2 -> s0 [label="-108"]; + s2 -> s0 [label="-107"]; + s2 -> s0 [label="-106"]; + s2 -> s0 [label="-105"]; + s2 -> s0 [label="-104"]; + s2 -> s0 [label="-103"]; + s2 -> s0 [label="-102"]; + s2 -> s0 [label="-101"]; + s2 -> s0 [label="-100"]; + s2 -> s0 [label="-99"]; + s2 -> s0 [label="-98"]; + s2 -> s0 [label="-97"]; + s2 -> s0 [label="-96"]; + s2 -> s0 [label="-95"]; + s2 -> s0 [label="-94"]; + s2 -> s0 [label="-93"]; + s2 -> s0 [label="-92"]; + s2 -> s0 [label="-91"]; + s2 -> s0 [label="-90"]; + s2 -> s0 [label="-89"]; + s2 -> s0 [label="-88"]; + s2 -> s0 [label="-87"]; + s2 -> s0 [label="-86"]; + s2 -> s0 [label="-85"]; + s2 -> s0 [label="-84"]; + s2 -> s0 [label="-83"]; + s2 -> s0 [label="-82"]; + s2 -> s0 [label="-81"]; + s2 -> s0 [label="-80"]; + s2 -> s0 [label="-79"]; + s2 -> s0 [label="-78"]; + s2 -> s0 [label="-77"]; + s2 -> s0 [label="-76"]; + s2 -> s0 [label="-75"]; + s2 -> s0 [label="-74"]; + s2 -> s0 [label="-73"]; + s2 -> s0 [label="-72"]; + s2 -> s0 [label="-71"]; + s2 -> s0 [label="-70"]; + s2 -> s0 [label="-69"]; + s2 -> s0 [label="-68"]; + s2 -> s0 [label="-67"]; + s2 -> s0 [label="-66"]; + s2 -> s0 [label="-65"]; + s2 -> s1 [label="-64"]; + s2 -> s1 [label="-63"]; + s2 -> s1 [label="-62"]; + s2 -> s1 [label="-61"]; + s2 -> s1 [label="-60"]; + s2 -> s1 [label="-59"]; + s2 -> s1 [label="-58"]; + s2 -> s1 [label="-57"]; + s2 -> s1 [label="-56"]; + s2 -> s1 [label="-55"]; + s2 -> s1 [label="-54"]; + s2 -> s1 [label="-53"]; + s2 -> s1 [label="-52"]; + s2 -> s1 [label="-51"]; + s2 -> s1 [label="-50"]; + s2 -> s1 [label="-49"]; + s2 -> s1 [label="-48"]; + s2 -> s1 [label="-47"]; + s2 -> s1 [label="-46"]; + s2 -> s1 [label="-45"]; + s2 -> s1 [label="-44"]; + s2 -> s1 [label="-43"]; + s2 -> s1 [label="-42"]; + s2 -> s1 [label="-41"]; + s2 -> s1 [label="-40"]; + s2 -> s1 [label="-39"]; + s2 -> s1 [label="-38"]; + s2 -> s1 [label="-37"]; + s2 -> s1 [label="-36"]; + s2 -> s1 [label="-35"]; + s2 -> s1 [label="-34"]; + s2 -> s1 [label="-33"]; + s2 -> s1 [label="-32"]; + s2 -> s1 [label="-31"]; + s2 -> s1 [label="-30"]; + s2 -> s1 [label="-29"]; + s2 -> s1 [label="-28"]; + s2 -> s1 [label="-27"]; + s2 -> s1 [label="-26"]; + s2 -> s1 [label="-25"]; + s2 -> s1 [label="-24"]; + s2 -> s1 [label="-23"]; + s2 -> s1 [label="-22"]; + s2 -> s1 [label="-21"]; + s2 -> s1 [label="-20"]; + s2 -> s1 [label="-19"]; + s2 -> s1 [label="-18"]; + s2 -> s1 [label="-17"]; + s2 -> s1 [label="-16"]; + s2 -> s1 [label="-15"]; + s2 -> s1 [label="-14"]; + s2 -> s1 [label="-13"]; + s2 -> s1 [label="-12"]; + s2 -> s1 [label="-11"]; + s2 -> s1 [label="-10"]; + s2 -> s1 [label="-9"]; + s2 -> s1 [label="-8"]; + s2 -> s1 [label="-7"]; + s2 -> s1 [label="-6"]; + s2 -> s1 [label="-5"]; + s2 -> s1 [label="-4"]; + s2 -> s1 [label="-3"]; + s2 -> s1 [label="-2"]; + s2 -> s1 [label="-1"]; + s3 -> s1 [label="0"]; + s3 -> s1 [label="1"]; + s3 -> s1 [label="2"]; + s3 -> s1 [label="3"]; + s3 -> s1 [label="4"]; + s3 -> s1 [label="5"]; + s3 -> s1 [label="6"]; + s3 -> s1 [label="7"]; + s3 -> s1 [label="8"]; + s3 -> s1 [label="9"]; + s3 -> s1 [label="10"]; + s3 -> s1 [label="11"]; + s3 -> s1 [label="12"]; + s3 -> s1 [label="13"]; + s3 -> s1 [label="14"]; + s3 -> s1 [label="15"]; + s3 -> s1 [label="16"]; + s3 -> s1 [label="17"]; + s3 -> s1 [label="18"]; + s3 -> s1 [label="19"]; + s3 -> s1 [label="20"]; + s3 -> s1 [label="21"]; + s3 -> s1 [label="22"]; + s3 -> s1 [label="23"]; + s3 -> s1 [label="24"]; + s3 -> s1 [label="25"]; + s3 -> s1 [label="26"]; + s3 -> s1 [label="27"]; + s3 -> s1 [label="28"]; + s3 -> s1 [label="29"]; + s3 -> s1 [label="30"]; + s3 -> s1 [label="31"]; + s3 -> s1 [label="32"]; + s3 -> s1 [label="33"]; + s3 -> s1 [label="34"]; + s3 -> s1 [label="35"]; + s3 -> s1 [label="36"]; + s3 -> s1 [label="37"]; + s3 -> s1 [label="38"]; + s3 -> s1 [label="39"]; + s3 -> s1 [label="40"]; + s3 -> s1 [label="41"]; + s3 -> s1 [label="42"]; + s3 -> s1 [label="43"]; + s3 -> s1 [label="44"]; + s3 -> s1 [label="45"]; + s3 -> s1 [label="46"]; + s3 -> s1 [label="47"]; + s3 -> s1 [label="48"]; + s3 -> s1 [label="49"]; + s3 -> s1 [label="50"]; + s3 -> s1 [label="51"]; + s3 -> s1 [label="52"]; + s3 -> s1 [label="53"]; + s3 -> s1 [label="54"]; + s3 -> s1 [label="55"]; + s3 -> s1 [label="56"]; + s3 -> s1 [label="57"]; + s3 -> s1 [label="58"]; + s3 -> s1 [label="59"]; + s3 -> s1 [label="60"]; + s3 -> s1 [label="61"]; + s3 -> s1 [label="62"]; + s3 -> s1 [label="63"]; + s3 -> s1 [label="64"]; + s3 -> s1 [label="65"]; + s3 -> s1 [label="66"]; + s3 -> s1 [label="67"]; + s3 -> s1 [label="68"]; + s3 -> s1 [label="69"]; + s3 -> s1 [label="70"]; + s3 -> s1 [label="71"]; + s3 -> s1 [label="72"]; + s3 -> s1 [label="73"]; + s3 -> s1 [label="74"]; + s3 -> s1 [label="75"]; + s3 -> s1 [label="76"]; + s3 -> s1 [label="77"]; + s3 -> s1 [label="78"]; + s3 -> s1 [label="79"]; + s3 -> s1 [label="80"]; + s3 -> s1 [label="81"]; + s3 -> s1 [label="82"]; + s3 -> s1 [label="83"]; + s3 -> s1 [label="84"]; + s3 -> s1 [label="85"]; + s3 -> s1 [label="86"]; + s3 -> s1 [label="87"]; + s3 -> s1 [label="88"]; + s3 -> s1 [label="89"]; + s3 -> s1 [label="90"]; + s3 -> s1 [label="91"]; + s3 -> s1 [label="92"]; + s3 -> s1 [label="93"]; + s3 -> s1 [label="94"]; + s3 -> s1 [label="95"]; + s3 -> s1 [label="96"]; + s3 -> s1 [label="97"]; + s3 -> s1 [label="98"]; + s3 -> s1 [label="99"]; + s3 -> s1 [label="100"]; + s3 -> s1 [label="101"]; + s3 -> s1 [label="102"]; + s3 -> s1 [label="103"]; + s3 -> s1 [label="104"]; + s3 -> s1 [label="105"]; + s3 -> s1 [label="106"]; + s3 -> s1 [label="107"]; + s3 -> s1 [label="108"]; + s3 -> s1 [label="109"]; + s3 -> s1 [label="110"]; + s3 -> s1 [label="111"]; + s3 -> s1 [label="112"]; + s3 -> s1 [label="113"]; + s3 -> s1 [label="114"]; + s3 -> s1 [label="115"]; + s3 -> s1 [label="116"]; + s3 -> s1 [label="117"]; + s3 -> s1 [label="118"]; + s3 -> s1 [label="119"]; + s3 -> s1 [label="120"]; + s3 -> s1 [label="121"]; + s3 -> s1 [label="122"]; + s3 -> s1 [label="123"]; + s3 -> s1 [label="124"]; + s3 -> s1 [label="125"]; + s3 -> s1 [label="126"]; + s3 -> s1 [label="127"]; + s3 -> s1 [label="-128"]; + s3 -> s1 [label="-127"]; + s3 -> s1 [label="-126"]; + s3 -> s1 [label="-125"]; + s3 -> s1 [label="-124"]; + s3 -> s1 [label="-123"]; + s3 -> s1 [label="-122"]; + s3 -> s1 [label="-121"]; + s3 -> s1 [label="-120"]; + s3 -> s1 [label="-119"]; + s3 -> s1 [label="-118"]; + s3 -> s1 [label="-117"]; + s3 -> s1 [label="-116"]; + s3 -> s1 [label="-115"]; + s3 -> s1 [label="-114"]; + s3 -> s1 [label="-113"]; + s3 -> s1 [label="-112"]; + s3 -> s1 [label="-111"]; + s3 -> s1 [label="-110"]; + s3 -> s1 [label="-109"]; + s3 -> s1 [label="-108"]; + s3 -> s1 [label="-107"]; + s3 -> s1 [label="-106"]; + s3 -> s1 [label="-105"]; + s3 -> s1 [label="-104"]; + s3 -> s1 [label="-103"]; + s3 -> s1 [label="-102"]; + s3 -> s1 [label="-101"]; + s3 -> s1 [label="-100"]; + s3 -> s1 [label="-99"]; + s3 -> s1 [label="-98"]; + s3 -> s1 [label="-97"]; + s3 -> s2 [label="-96"]; + s3 -> s2 [label="-95"]; + s3 -> s2 [label="-94"]; + s3 -> s2 [label="-93"]; + s3 -> s2 [label="-92"]; + s3 -> s2 [label="-91"]; + s3 -> s2 [label="-90"]; + s3 -> s2 [label="-89"]; + s3 -> s2 [label="-88"]; + s3 -> s2 [label="-87"]; + s3 -> s2 [label="-86"]; + s3 -> s2 [label="-85"]; + s3 -> s2 [label="-84"]; + s3 -> s2 [label="-83"]; + s3 -> s2 [label="-82"]; + s3 -> s2 [label="-81"]; + s3 -> s2 [label="-80"]; + s3 -> s2 [label="-79"]; + s3 -> s2 [label="-78"]; + s3 -> s2 [label="-77"]; + s3 -> s2 [label="-76"]; + s3 -> s2 [label="-75"]; + s3 -> s2 [label="-74"]; + s3 -> s2 [label="-73"]; + s3 -> s2 [label="-72"]; + s3 -> s2 [label="-71"]; + s3 -> s2 [label="-70"]; + s3 -> s2 [label="-69"]; + s3 -> s2 [label="-68"]; + s3 -> s2 [label="-67"]; + s3 -> s2 [label="-66"]; + s3 -> s2 [label="-65"]; + s3 -> s1 [label="-64"]; + s3 -> s1 [label="-63"]; + s3 -> s1 [label="-62"]; + s3 -> s1 [label="-61"]; + s3 -> s1 [label="-60"]; + s3 -> s1 [label="-59"]; + s3 -> s1 [label="-58"]; + s3 -> s1 [label="-57"]; + s3 -> s1 [label="-56"]; + s3 -> s1 [label="-55"]; + s3 -> s1 [label="-54"]; + s3 -> s1 [label="-53"]; + s3 -> s1 [label="-52"]; + s3 -> s1 [label="-51"]; + s3 -> s1 [label="-50"]; + s3 -> s1 [label="-49"]; + s3 -> s1 [label="-48"]; + s3 -> s1 [label="-47"]; + s3 -> s1 [label="-46"]; + s3 -> s1 [label="-45"]; + s3 -> s1 [label="-44"]; + s3 -> s1 [label="-43"]; + s3 -> s1 [label="-42"]; + s3 -> s1 [label="-41"]; + s3 -> s1 [label="-40"]; + s3 -> s1 [label="-39"]; + s3 -> s1 [label="-38"]; + s3 -> s1 [label="-37"]; + s3 -> s1 [label="-36"]; + s3 -> s1 [label="-35"]; + s3 -> s1 [label="-34"]; + s3 -> s1 [label="-33"]; + s3 -> s1 [label="-32"]; + s3 -> s1 [label="-31"]; + s3 -> s1 [label="-30"]; + s3 -> s1 [label="-29"]; + s3 -> s1 [label="-28"]; + s3 -> s1 [label="-27"]; + s3 -> s1 [label="-26"]; + s3 -> s1 [label="-25"]; + s3 -> s1 [label="-24"]; + s3 -> s1 [label="-23"]; + s3 -> s1 [label="-22"]; + s3 -> s1 [label="-21"]; + s3 -> s1 [label="-20"]; + s3 -> s1 [label="-19"]; + s3 -> s1 [label="-18"]; + s3 -> s1 [label="-17"]; + s3 -> s1 [label="-16"]; + s3 -> s1 [label="-15"]; + s3 -> s1 [label="-14"]; + s3 -> s1 [label="-13"]; + s3 -> s1 [label="-12"]; + s3 -> s1 [label="-11"]; + s3 -> s1 [label="-10"]; + s3 -> s1 [label="-9"]; + s3 -> s1 [label="-8"]; + s3 -> s1 [label="-7"]; + s3 -> s1 [label="-6"]; + s3 -> s1 [label="-5"]; + s3 -> s1 [label="-4"]; + s3 -> s1 [label="-3"]; + s3 -> s1 [label="-2"]; + s3 -> s1 [label="-1"]; + s4 -> s1 [label="0"]; + s4 -> s1 [label="1"]; + s4 -> s1 [label="2"]; + s4 -> s1 [label="3"]; + s4 -> s1 [label="4"]; + s4 -> s1 [label="5"]; + s4 -> s1 [label="6"]; + s4 -> s1 [label="7"]; + s4 -> s1 [label="8"]; + s4 -> s1 [label="9"]; + s4 -> s1 [label="10"]; + s4 -> s1 [label="11"]; + s4 -> s1 [label="12"]; + s4 -> s1 [label="13"]; + s4 -> s1 [label="14"]; + s4 -> s1 [label="15"]; + s4 -> s1 [label="16"]; + s4 -> s1 [label="17"]; + s4 -> s1 [label="18"]; + s4 -> s1 [label="19"]; + s4 -> s1 [label="20"]; + s4 -> s1 [label="21"]; + s4 -> s1 [label="22"]; + s4 -> s1 [label="23"]; + s4 -> s1 [label="24"]; + s4 -> s1 [label="25"]; + s4 -> s1 [label="26"]; + s4 -> s1 [label="27"]; + s4 -> s1 [label="28"]; + s4 -> s1 [label="29"]; + s4 -> s1 [label="30"]; + s4 -> s1 [label="31"]; + s4 -> s1 [label="32"]; + s4 -> s1 [label="33"]; + s4 -> s1 [label="34"]; + s4 -> s1 [label="35"]; + s4 -> s1 [label="36"]; + s4 -> s1 [label="37"]; + s4 -> s1 [label="38"]; + s4 -> s1 [label="39"]; + s4 -> s1 [label="40"]; + s4 -> s1 [label="41"]; + s4 -> s1 [label="42"]; + s4 -> s1 [label="43"]; + s4 -> s1 [label="44"]; + s4 -> s1 [label="45"]; + s4 -> s1 [label="46"]; + s4 -> s1 [label="47"]; + s4 -> s1 [label="48"]; + s4 -> s1 [label="49"]; + s4 -> s1 [label="50"]; + s4 -> s1 [label="51"]; + s4 -> s1 [label="52"]; + s4 -> s1 [label="53"]; + s4 -> s1 [label="54"]; + s4 -> s1 [label="55"]; + s4 -> s1 [label="56"]; + s4 -> s1 [label="57"]; + s4 -> s1 [label="58"]; + s4 -> s1 [label="59"]; + s4 -> s1 [label="60"]; + s4 -> s1 [label="61"]; + s4 -> s1 [label="62"]; + s4 -> s1 [label="63"]; + s4 -> s1 [label="64"]; + s4 -> s1 [label="65"]; + s4 -> s1 [label="66"]; + s4 -> s1 [label="67"]; + s4 -> s1 [label="68"]; + s4 -> s1 [label="69"]; + s4 -> s1 [label="70"]; + s4 -> s1 [label="71"]; + s4 -> s1 [label="72"]; + s4 -> s1 [label="73"]; + s4 -> s1 [label="74"]; + s4 -> s1 [label="75"]; + s4 -> s1 [label="76"]; + s4 -> s1 [label="77"]; + s4 -> s1 [label="78"]; + s4 -> s1 [label="79"]; + s4 -> s1 [label="80"]; + s4 -> s1 [label="81"]; + s4 -> s1 [label="82"]; + s4 -> s1 [label="83"]; + s4 -> s1 [label="84"]; + s4 -> s1 [label="85"]; + s4 -> s1 [label="86"]; + s4 -> s1 [label="87"]; + s4 -> s1 [label="88"]; + s4 -> s1 [label="89"]; + s4 -> s1 [label="90"]; + s4 -> s1 [label="91"]; + s4 -> s1 [label="92"]; + s4 -> s1 [label="93"]; + s4 -> s1 [label="94"]; + s4 -> s1 [label="95"]; + s4 -> s1 [label="96"]; + s4 -> s1 [label="97"]; + s4 -> s1 [label="98"]; + s4 -> s1 [label="99"]; + s4 -> s1 [label="100"]; + s4 -> s1 [label="101"]; + s4 -> s1 [label="102"]; + s4 -> s1 [label="103"]; + s4 -> s1 [label="104"]; + s4 -> s1 [label="105"]; + s4 -> s1 [label="106"]; + s4 -> s1 [label="107"]; + s4 -> s1 [label="108"]; + s4 -> s1 [label="109"]; + s4 -> s1 [label="110"]; + s4 -> s1 [label="111"]; + s4 -> s1 [label="112"]; + s4 -> s1 [label="113"]; + s4 -> s1 [label="114"]; + s4 -> s1 [label="115"]; + s4 -> s1 [label="116"]; + s4 -> s1 [label="117"]; + s4 -> s1 [label="118"]; + s4 -> s1 [label="119"]; + s4 -> s1 [label="120"]; + s4 -> s1 [label="121"]; + s4 -> s1 [label="122"]; + s4 -> s1 [label="123"]; + s4 -> s1 [label="124"]; + s4 -> s1 [label="125"]; + s4 -> s1 [label="126"]; + s4 -> s1 [label="127"]; + s4 -> s2 [label="-128"]; + s4 -> s2 [label="-127"]; + s4 -> s2 [label="-126"]; + s4 -> s2 [label="-125"]; + s4 -> s2 [label="-124"]; + s4 -> s2 [label="-123"]; + s4 -> s2 [label="-122"]; + s4 -> s2 [label="-121"]; + s4 -> s2 [label="-120"]; + s4 -> s2 [label="-119"]; + s4 -> s2 [label="-118"]; + s4 -> s2 [label="-117"]; + s4 -> s2 [label="-116"]; + s4 -> s2 [label="-115"]; + s4 -> s2 [label="-114"]; + s4 -> s2 [label="-113"]; + s4 -> s2 [label="-112"]; + s4 -> s2 [label="-111"]; + s4 -> s2 [label="-110"]; + s4 -> s2 [label="-109"]; + s4 -> s2 [label="-108"]; + s4 -> s2 [label="-107"]; + s4 -> s2 [label="-106"]; + s4 -> s2 [label="-105"]; + s4 -> s2 [label="-104"]; + s4 -> s2 [label="-103"]; + s4 -> s2 [label="-102"]; + s4 -> s2 [label="-101"]; + s4 -> s2 [label="-100"]; + s4 -> s2 [label="-99"]; + s4 -> s2 [label="-98"]; + s4 -> s2 [label="-97"]; + s4 -> s2 [label="-96"]; + s4 -> s2 [label="-95"]; + s4 -> s2 [label="-94"]; + s4 -> s2 [label="-93"]; + s4 -> s2 [label="-92"]; + s4 -> s2 [label="-91"]; + s4 -> s2 [label="-90"]; + s4 -> s2 [label="-89"]; + s4 -> s2 [label="-88"]; + s4 -> s2 [label="-87"]; + s4 -> s2 [label="-86"]; + s4 -> s2 [label="-85"]; + s4 -> s2 [label="-84"]; + s4 -> s2 [label="-83"]; + s4 -> s2 [label="-82"]; + s4 -> s2 [label="-81"]; + s4 -> s2 [label="-80"]; + s4 -> s2 [label="-79"]; + s4 -> s2 [label="-78"]; + s4 -> s2 [label="-77"]; + s4 -> s2 [label="-76"]; + s4 -> s2 [label="-75"]; + s4 -> s2 [label="-74"]; + s4 -> s2 [label="-73"]; + s4 -> s2 [label="-72"]; + s4 -> s2 [label="-71"]; + s4 -> s2 [label="-70"]; + s4 -> s2 [label="-69"]; + s4 -> s2 [label="-68"]; + s4 -> s2 [label="-67"]; + s4 -> s2 [label="-66"]; + s4 -> s2 [label="-65"]; + s4 -> s1 [label="-64"]; + s4 -> s1 [label="-63"]; + s4 -> s1 [label="-62"]; + s4 -> s1 [label="-61"]; + s4 -> s1 [label="-60"]; + s4 -> s1 [label="-59"]; + s4 -> s1 [label="-58"]; + s4 -> s1 [label="-57"]; + s4 -> s1 [label="-56"]; + s4 -> s1 [label="-55"]; + s4 -> s1 [label="-54"]; + s4 -> s1 [label="-53"]; + s4 -> s1 [label="-52"]; + s4 -> s1 [label="-51"]; + s4 -> s1 [label="-50"]; + s4 -> s1 [label="-49"]; + s4 -> s1 [label="-48"]; + s4 -> s1 [label="-47"]; + s4 -> s1 [label="-46"]; + s4 -> s1 [label="-45"]; + s4 -> s1 [label="-44"]; + s4 -> s1 [label="-43"]; + s4 -> s1 [label="-42"]; + s4 -> s1 [label="-41"]; + s4 -> s1 [label="-40"]; + s4 -> s1 [label="-39"]; + s4 -> s1 [label="-38"]; + s4 -> s1 [label="-37"]; + s4 -> s1 [label="-36"]; + s4 -> s1 [label="-35"]; + s4 -> s1 [label="-34"]; + s4 -> s1 [label="-33"]; + s4 -> s1 [label="-32"]; + s4 -> s1 [label="-31"]; + s4 -> s1 [label="-30"]; + s4 -> s1 [label="-29"]; + s4 -> s1 [label="-28"]; + s4 -> s1 [label="-27"]; + s4 -> s1 [label="-26"]; + s4 -> s1 [label="-25"]; + s4 -> s1 [label="-24"]; + s4 -> s1 [label="-23"]; + s4 -> s1 [label="-22"]; + s4 -> s1 [label="-21"]; + s4 -> s1 [label="-20"]; + s4 -> s1 [label="-19"]; + s4 -> s1 [label="-18"]; + s4 -> s1 [label="-17"]; + s4 -> s1 [label="-16"]; + s4 -> s1 [label="-15"]; + s4 -> s1 [label="-14"]; + s4 -> s1 [label="-13"]; + s4 -> s1 [label="-12"]; + s4 -> s1 [label="-11"]; + s4 -> s1 [label="-10"]; + s4 -> s1 [label="-9"]; + s4 -> s1 [label="-8"]; + s4 -> s1 [label="-7"]; + s4 -> s1 [label="-6"]; + s4 -> s1 [label="-5"]; + s4 -> s1 [label="-4"]; + s4 -> s1 [label="-3"]; + s4 -> s1 [label="-2"]; + s4 -> s1 [label="-1"]; + s5 -> s1 [label="0"]; + s5 -> s1 [label="1"]; + s5 -> s1 [label="2"]; + s5 -> s1 [label="3"]; + s5 -> s1 [label="4"]; + s5 -> s1 [label="5"]; + s5 -> s1 [label="6"]; + s5 -> s1 [label="7"]; + s5 -> s1 [label="8"]; + s5 -> s1 [label="9"]; + s5 -> s1 [label="10"]; + s5 -> s1 [label="11"]; + s5 -> s1 [label="12"]; + s5 -> s1 [label="13"]; + s5 -> s1 [label="14"]; + s5 -> s1 [label="15"]; + s5 -> s1 [label="16"]; + s5 -> s1 [label="17"]; + s5 -> s1 [label="18"]; + s5 -> s1 [label="19"]; + s5 -> s1 [label="20"]; + s5 -> s1 [label="21"]; + s5 -> s1 [label="22"]; + s5 -> s1 [label="23"]; + s5 -> s1 [label="24"]; + s5 -> s1 [label="25"]; + s5 -> s1 [label="26"]; + s5 -> s1 [label="27"]; + s5 -> s1 [label="28"]; + s5 -> s1 [label="29"]; + s5 -> s1 [label="30"]; + s5 -> s1 [label="31"]; + s5 -> s1 [label="32"]; + s5 -> s1 [label="33"]; + s5 -> s1 [label="34"]; + s5 -> s1 [label="35"]; + s5 -> s1 [label="36"]; + s5 -> s1 [label="37"]; + s5 -> s1 [label="38"]; + s5 -> s1 [label="39"]; + s5 -> s1 [label="40"]; + s5 -> s1 [label="41"]; + s5 -> s1 [label="42"]; + s5 -> s1 [label="43"]; + s5 -> s1 [label="44"]; + s5 -> s1 [label="45"]; + s5 -> s1 [label="46"]; + s5 -> s1 [label="47"]; + s5 -> s1 [label="48"]; + s5 -> s1 [label="49"]; + s5 -> s1 [label="50"]; + s5 -> s1 [label="51"]; + s5 -> s1 [label="52"]; + s5 -> s1 [label="53"]; + s5 -> s1 [label="54"]; + s5 -> s1 [label="55"]; + s5 -> s1 [label="56"]; + s5 -> s1 [label="57"]; + s5 -> s1 [label="58"]; + s5 -> s1 [label="59"]; + s5 -> s1 [label="60"]; + s5 -> s1 [label="61"]; + s5 -> s1 [label="62"]; + s5 -> s1 [label="63"]; + s5 -> s1 [label="64"]; + s5 -> s1 [label="65"]; + s5 -> s1 [label="66"]; + s5 -> s1 [label="67"]; + s5 -> s1 [label="68"]; + s5 -> s1 [label="69"]; + s5 -> s1 [label="70"]; + s5 -> s1 [label="71"]; + s5 -> s1 [label="72"]; + s5 -> s1 [label="73"]; + s5 -> s1 [label="74"]; + s5 -> s1 [label="75"]; + s5 -> s1 [label="76"]; + s5 -> s1 [label="77"]; + s5 -> s1 [label="78"]; + s5 -> s1 [label="79"]; + s5 -> s1 [label="80"]; + s5 -> s1 [label="81"]; + s5 -> s1 [label="82"]; + s5 -> s1 [label="83"]; + s5 -> s1 [label="84"]; + s5 -> s1 [label="85"]; + s5 -> s1 [label="86"]; + s5 -> s1 [label="87"]; + s5 -> s1 [label="88"]; + s5 -> s1 [label="89"]; + s5 -> s1 [label="90"]; + s5 -> s1 [label="91"]; + s5 -> s1 [label="92"]; + s5 -> s1 [label="93"]; + s5 -> s1 [label="94"]; + s5 -> s1 [label="95"]; + s5 -> s1 [label="96"]; + s5 -> s1 [label="97"]; + s5 -> s1 [label="98"]; + s5 -> s1 [label="99"]; + s5 -> s1 [label="100"]; + s5 -> s1 [label="101"]; + s5 -> s1 [label="102"]; + s5 -> s1 [label="103"]; + s5 -> s1 [label="104"]; + s5 -> s1 [label="105"]; + s5 -> s1 [label="106"]; + s5 -> s1 [label="107"]; + s5 -> s1 [label="108"]; + s5 -> s1 [label="109"]; + s5 -> s1 [label="110"]; + s5 -> s1 [label="111"]; + s5 -> s1 [label="112"]; + s5 -> s1 [label="113"]; + s5 -> s1 [label="114"]; + s5 -> s1 [label="115"]; + s5 -> s1 [label="116"]; + s5 -> s1 [label="117"]; + s5 -> s1 [label="118"]; + s5 -> s1 [label="119"]; + s5 -> s1 [label="120"]; + s5 -> s1 [label="121"]; + s5 -> s1 [label="122"]; + s5 -> s1 [label="123"]; + s5 -> s1 [label="124"]; + s5 -> s1 [label="125"]; + s5 -> s1 [label="126"]; + s5 -> s1 [label="127"]; + s5 -> s2 [label="-128"]; + s5 -> s2 [label="-127"]; + s5 -> s2 [label="-126"]; + s5 -> s2 [label="-125"]; + s5 -> s2 [label="-124"]; + s5 -> s2 [label="-123"]; + s5 -> s2 [label="-122"]; + s5 -> s2 [label="-121"]; + s5 -> s2 [label="-120"]; + s5 -> s2 [label="-119"]; + s5 -> s2 [label="-118"]; + s5 -> s2 [label="-117"]; + s5 -> s2 [label="-116"]; + s5 -> s2 [label="-115"]; + s5 -> s2 [label="-114"]; + s5 -> s2 [label="-113"]; + s5 -> s2 [label="-112"]; + s5 -> s2 [label="-111"]; + s5 -> s2 [label="-110"]; + s5 -> s2 [label="-109"]; + s5 -> s2 [label="-108"]; + s5 -> s2 [label="-107"]; + s5 -> s2 [label="-106"]; + s5 -> s2 [label="-105"]; + s5 -> s2 [label="-104"]; + s5 -> s2 [label="-103"]; + s5 -> s2 [label="-102"]; + s5 -> s2 [label="-101"]; + s5 -> s2 [label="-100"]; + s5 -> s2 [label="-99"]; + s5 -> s2 [label="-98"]; + s5 -> s2 [label="-97"]; + s5 -> s1 [label="-96"]; + s5 -> s1 [label="-95"]; + s5 -> s1 [label="-94"]; + s5 -> s1 [label="-93"]; + s5 -> s1 [label="-92"]; + s5 -> s1 [label="-91"]; + s5 -> s1 [label="-90"]; + s5 -> s1 [label="-89"]; + s5 -> s1 [label="-88"]; + s5 -> s1 [label="-87"]; + s5 -> s1 [label="-86"]; + s5 -> s1 [label="-85"]; + s5 -> s1 [label="-84"]; + s5 -> s1 [label="-83"]; + s5 -> s1 [label="-82"]; + s5 -> s1 [label="-81"]; + s5 -> s1 [label="-80"]; + s5 -> s1 [label="-79"]; + s5 -> s1 [label="-78"]; + s5 -> s1 [label="-77"]; + s5 -> s1 [label="-76"]; + s5 -> s1 [label="-75"]; + s5 -> s1 [label="-74"]; + s5 -> s1 [label="-73"]; + s5 -> s1 [label="-72"]; + s5 -> s1 [label="-71"]; + s5 -> s1 [label="-70"]; + s5 -> s1 [label="-69"]; + s5 -> s1 [label="-68"]; + s5 -> s1 [label="-67"]; + s5 -> s1 [label="-66"]; + s5 -> s1 [label="-65"]; + s5 -> s1 [label="-64"]; + s5 -> s1 [label="-63"]; + s5 -> s1 [label="-62"]; + s5 -> s1 [label="-61"]; + s5 -> s1 [label="-60"]; + s5 -> s1 [label="-59"]; + s5 -> s1 [label="-58"]; + s5 -> s1 [label="-57"]; + s5 -> s1 [label="-56"]; + s5 -> s1 [label="-55"]; + s5 -> s1 [label="-54"]; + s5 -> s1 [label="-53"]; + s5 -> s1 [label="-52"]; + s5 -> s1 [label="-51"]; + s5 -> s1 [label="-50"]; + s5 -> s1 [label="-49"]; + s5 -> s1 [label="-48"]; + s5 -> s1 [label="-47"]; + s5 -> s1 [label="-46"]; + s5 -> s1 [label="-45"]; + s5 -> s1 [label="-44"]; + s5 -> s1 [label="-43"]; + s5 -> s1 [label="-42"]; + s5 -> s1 [label="-41"]; + s5 -> s1 [label="-40"]; + s5 -> s1 [label="-39"]; + s5 -> s1 [label="-38"]; + s5 -> s1 [label="-37"]; + s5 -> s1 [label="-36"]; + s5 -> s1 [label="-35"]; + s5 -> s1 [label="-34"]; + s5 -> s1 [label="-33"]; + s5 -> s1 [label="-32"]; + s5 -> s1 [label="-31"]; + s5 -> s1 [label="-30"]; + s5 -> s1 [label="-29"]; + s5 -> s1 [label="-28"]; + s5 -> s1 [label="-27"]; + s5 -> s1 [label="-26"]; + s5 -> s1 [label="-25"]; + s5 -> s1 [label="-24"]; + s5 -> s1 [label="-23"]; + s5 -> s1 [label="-22"]; + s5 -> s1 [label="-21"]; + s5 -> s1 [label="-20"]; + s5 -> s1 [label="-19"]; + s5 -> s1 [label="-18"]; + s5 -> s1 [label="-17"]; + s5 -> s1 [label="-16"]; + s5 -> s1 [label="-15"]; + s5 -> s1 [label="-14"]; + s5 -> s1 [label="-13"]; + s5 -> s1 [label="-12"]; + s5 -> s1 [label="-11"]; + s5 -> s1 [label="-10"]; + s5 -> s1 [label="-9"]; + s5 -> s1 [label="-8"]; + s5 -> s1 [label="-7"]; + s5 -> s1 [label="-6"]; + s5 -> s1 [label="-5"]; + s5 -> s1 [label="-4"]; + s5 -> s1 [label="-3"]; + s5 -> s1 [label="-2"]; + s5 -> s1 [label="-1"]; + s6 -> s1 [label="0"]; + s6 -> s1 [label="1"]; + s6 -> s1 [label="2"]; + s6 -> s1 [label="3"]; + s6 -> s1 [label="4"]; + s6 -> s1 [label="5"]; + s6 -> s1 [label="6"]; + s6 -> s1 [label="7"]; + s6 -> s1 [label="8"]; + s6 -> s1 [label="9"]; + s6 -> s1 [label="10"]; + s6 -> s1 [label="11"]; + s6 -> s1 [label="12"]; + s6 -> s1 [label="13"]; + s6 -> s1 [label="14"]; + s6 -> s1 [label="15"]; + s6 -> s1 [label="16"]; + s6 -> s1 [label="17"]; + s6 -> s1 [label="18"]; + s6 -> s1 [label="19"]; + s6 -> s1 [label="20"]; + s6 -> s1 [label="21"]; + s6 -> s1 [label="22"]; + s6 -> s1 [label="23"]; + s6 -> s1 [label="24"]; + s6 -> s1 [label="25"]; + s6 -> s1 [label="26"]; + s6 -> s1 [label="27"]; + s6 -> s1 [label="28"]; + s6 -> s1 [label="29"]; + s6 -> s1 [label="30"]; + s6 -> s1 [label="31"]; + s6 -> s1 [label="32"]; + s6 -> s1 [label="33"]; + s6 -> s1 [label="34"]; + s6 -> s1 [label="35"]; + s6 -> s1 [label="36"]; + s6 -> s1 [label="37"]; + s6 -> s1 [label="38"]; + s6 -> s1 [label="39"]; + s6 -> s1 [label="40"]; + s6 -> s1 [label="41"]; + s6 -> s1 [label="42"]; + s6 -> s1 [label="43"]; + s6 -> s1 [label="44"]; + s6 -> s1 [label="45"]; + s6 -> s1 [label="46"]; + s6 -> s1 [label="47"]; + s6 -> s1 [label="48"]; + s6 -> s1 [label="49"]; + s6 -> s1 [label="50"]; + s6 -> s1 [label="51"]; + s6 -> s1 [label="52"]; + s6 -> s1 [label="53"]; + s6 -> s1 [label="54"]; + s6 -> s1 [label="55"]; + s6 -> s1 [label="56"]; + s6 -> s1 [label="57"]; + s6 -> s1 [label="58"]; + s6 -> s1 [label="59"]; + s6 -> s1 [label="60"]; + s6 -> s1 [label="61"]; + s6 -> s1 [label="62"]; + s6 -> s1 [label="63"]; + s6 -> s1 [label="64"]; + s6 -> s1 [label="65"]; + s6 -> s1 [label="66"]; + s6 -> s1 [label="67"]; + s6 -> s1 [label="68"]; + s6 -> s1 [label="69"]; + s6 -> s1 [label="70"]; + s6 -> s1 [label="71"]; + s6 -> s1 [label="72"]; + s6 -> s1 [label="73"]; + s6 -> s1 [label="74"]; + s6 -> s1 [label="75"]; + s6 -> s1 [label="76"]; + s6 -> s1 [label="77"]; + s6 -> s1 [label="78"]; + s6 -> s1 [label="79"]; + s6 -> s1 [label="80"]; + s6 -> s1 [label="81"]; + s6 -> s1 [label="82"]; + s6 -> s1 [label="83"]; + s6 -> s1 [label="84"]; + s6 -> s1 [label="85"]; + s6 -> s1 [label="86"]; + s6 -> s1 [label="87"]; + s6 -> s1 [label="88"]; + s6 -> s1 [label="89"]; + s6 -> s1 [label="90"]; + s6 -> s1 [label="91"]; + s6 -> s1 [label="92"]; + s6 -> s1 [label="93"]; + s6 -> s1 [label="94"]; + s6 -> s1 [label="95"]; + s6 -> s1 [label="96"]; + s6 -> s1 [label="97"]; + s6 -> s1 [label="98"]; + s6 -> s1 [label="99"]; + s6 -> s1 [label="100"]; + s6 -> s1 [label="101"]; + s6 -> s1 [label="102"]; + s6 -> s1 [label="103"]; + s6 -> s1 [label="104"]; + s6 -> s1 [label="105"]; + s6 -> s1 [label="106"]; + s6 -> s1 [label="107"]; + s6 -> s1 [label="108"]; + s6 -> s1 [label="109"]; + s6 -> s1 [label="110"]; + s6 -> s1 [label="111"]; + s6 -> s1 [label="112"]; + s6 -> s1 [label="113"]; + s6 -> s1 [label="114"]; + s6 -> s1 [label="115"]; + s6 -> s1 [label="116"]; + s6 -> s1 [label="117"]; + s6 -> s1 [label="118"]; + s6 -> s1 [label="119"]; + s6 -> s1 [label="120"]; + s6 -> s1 [label="121"]; + s6 -> s1 [label="122"]; + s6 -> s1 [label="123"]; + s6 -> s1 [label="124"]; + s6 -> s1 [label="125"]; + s6 -> s1 [label="126"]; + s6 -> s1 [label="127"]; + s6 -> s1 [label="-128"]; + s6 -> s1 [label="-127"]; + s6 -> s1 [label="-126"]; + s6 -> s1 [label="-125"]; + s6 -> s1 [label="-124"]; + s6 -> s1 [label="-123"]; + s6 -> s1 [label="-122"]; + s6 -> s1 [label="-121"]; + s6 -> s1 [label="-120"]; + s6 -> s1 [label="-119"]; + s6 -> s1 [label="-118"]; + s6 -> s1 [label="-117"]; + s6 -> s1 [label="-116"]; + s6 -> s1 [label="-115"]; + s6 -> s1 [label="-114"]; + s6 -> s1 [label="-113"]; + s6 -> s4 [label="-112"]; + s6 -> s4 [label="-111"]; + s6 -> s4 [label="-110"]; + s6 -> s4 [label="-109"]; + s6 -> s4 [label="-108"]; + s6 -> s4 [label="-107"]; + s6 -> s4 [label="-106"]; + s6 -> s4 [label="-105"]; + s6 -> s4 [label="-104"]; + s6 -> s4 [label="-103"]; + s6 -> s4 [label="-102"]; + s6 -> s4 [label="-101"]; + s6 -> s4 [label="-100"]; + s6 -> s4 [label="-99"]; + s6 -> s4 [label="-98"]; + s6 -> s4 [label="-97"]; + s6 -> s4 [label="-96"]; + s6 -> s4 [label="-95"]; + s6 -> s4 [label="-94"]; + s6 -> s4 [label="-93"]; + s6 -> s4 [label="-92"]; + s6 -> s4 [label="-91"]; + s6 -> s4 [label="-90"]; + s6 -> s4 [label="-89"]; + s6 -> s4 [label="-88"]; + s6 -> s4 [label="-87"]; + s6 -> s4 [label="-86"]; + s6 -> s4 [label="-85"]; + s6 -> s4 [label="-84"]; + s6 -> s4 [label="-83"]; + s6 -> s4 [label="-82"]; + s6 -> s4 [label="-81"]; + s6 -> s4 [label="-80"]; + s6 -> s4 [label="-79"]; + s6 -> s4 [label="-78"]; + s6 -> s4 [label="-77"]; + s6 -> s4 [label="-76"]; + s6 -> s4 [label="-75"]; + s6 -> s4 [label="-74"]; + s6 -> s4 [label="-73"]; + s6 -> s4 [label="-72"]; + s6 -> s4 [label="-71"]; + s6 -> s4 [label="-70"]; + s6 -> s4 [label="-69"]; + s6 -> s4 [label="-68"]; + s6 -> s4 [label="-67"]; + s6 -> s4 [label="-66"]; + s6 -> s4 [label="-65"]; + s6 -> s1 [label="-64"]; + s6 -> s1 [label="-63"]; + s6 -> s1 [label="-62"]; + s6 -> s1 [label="-61"]; + s6 -> s1 [label="-60"]; + s6 -> s1 [label="-59"]; + s6 -> s1 [label="-58"]; + s6 -> s1 [label="-57"]; + s6 -> s1 [label="-56"]; + s6 -> s1 [label="-55"]; + s6 -> s1 [label="-54"]; + s6 -> s1 [label="-53"]; + s6 -> s1 [label="-52"]; + s6 -> s1 [label="-51"]; + s6 -> s1 [label="-50"]; + s6 -> s1 [label="-49"]; + s6 -> s1 [label="-48"]; + s6 -> s1 [label="-47"]; + s6 -> s1 [label="-46"]; + s6 -> s1 [label="-45"]; + s6 -> s1 [label="-44"]; + s6 -> s1 [label="-43"]; + s6 -> s1 [label="-42"]; + s6 -> s1 [label="-41"]; + s6 -> s1 [label="-40"]; + s6 -> s1 [label="-39"]; + s6 -> s1 [label="-38"]; + s6 -> s1 [label="-37"]; + s6 -> s1 [label="-36"]; + s6 -> s1 [label="-35"]; + s6 -> s1 [label="-34"]; + s6 -> s1 [label="-33"]; + s6 -> s1 [label="-32"]; + s6 -> s1 [label="-31"]; + s6 -> s1 [label="-30"]; + s6 -> s1 [label="-29"]; + s6 -> s1 [label="-28"]; + s6 -> s1 [label="-27"]; + s6 -> s1 [label="-26"]; + s6 -> s1 [label="-25"]; + s6 -> s1 [label="-24"]; + s6 -> s1 [label="-23"]; + s6 -> s1 [label="-22"]; + s6 -> s1 [label="-21"]; + s6 -> s1 [label="-20"]; + s6 -> s1 [label="-19"]; + s6 -> s1 [label="-18"]; + s6 -> s1 [label="-17"]; + s6 -> s1 [label="-16"]; + s6 -> s1 [label="-15"]; + s6 -> s1 [label="-14"]; + s6 -> s1 [label="-13"]; + s6 -> s1 [label="-12"]; + s6 -> s1 [label="-11"]; + s6 -> s1 [label="-10"]; + s6 -> s1 [label="-9"]; + s6 -> s1 [label="-8"]; + s6 -> s1 [label="-7"]; + s6 -> s1 [label="-6"]; + s6 -> s1 [label="-5"]; + s6 -> s1 [label="-4"]; + s6 -> s1 [label="-3"]; + s6 -> s1 [label="-2"]; + s6 -> s1 [label="-1"]; + s7 -> s1 [label="0"]; + s7 -> s1 [label="1"]; + s7 -> s1 [label="2"]; + s7 -> s1 [label="3"]; + s7 -> s1 [label="4"]; + s7 -> s1 [label="5"]; + s7 -> s1 [label="6"]; + s7 -> s1 [label="7"]; + s7 -> s1 [label="8"]; + s7 -> s1 [label="9"]; + s7 -> s1 [label="10"]; + s7 -> s1 [label="11"]; + s7 -> s1 [label="12"]; + s7 -> s1 [label="13"]; + s7 -> s1 [label="14"]; + s7 -> s1 [label="15"]; + s7 -> s1 [label="16"]; + s7 -> s1 [label="17"]; + s7 -> s1 [label="18"]; + s7 -> s1 [label="19"]; + s7 -> s1 [label="20"]; + s7 -> s1 [label="21"]; + s7 -> s1 [label="22"]; + s7 -> s1 [label="23"]; + s7 -> s1 [label="24"]; + s7 -> s1 [label="25"]; + s7 -> s1 [label="26"]; + s7 -> s1 [label="27"]; + s7 -> s1 [label="28"]; + s7 -> s1 [label="29"]; + s7 -> s1 [label="30"]; + s7 -> s1 [label="31"]; + s7 -> s1 [label="32"]; + s7 -> s1 [label="33"]; + s7 -> s1 [label="34"]; + s7 -> s1 [label="35"]; + s7 -> s1 [label="36"]; + s7 -> s1 [label="37"]; + s7 -> s1 [label="38"]; + s7 -> s1 [label="39"]; + s7 -> s1 [label="40"]; + s7 -> s1 [label="41"]; + s7 -> s1 [label="42"]; + s7 -> s1 [label="43"]; + s7 -> s1 [label="44"]; + s7 -> s1 [label="45"]; + s7 -> s1 [label="46"]; + s7 -> s1 [label="47"]; + s7 -> s1 [label="48"]; + s7 -> s1 [label="49"]; + s7 -> s1 [label="50"]; + s7 -> s1 [label="51"]; + s7 -> s1 [label="52"]; + s7 -> s1 [label="53"]; + s7 -> s1 [label="54"]; + s7 -> s1 [label="55"]; + s7 -> s1 [label="56"]; + s7 -> s1 [label="57"]; + s7 -> s1 [label="58"]; + s7 -> s1 [label="59"]; + s7 -> s1 [label="60"]; + s7 -> s1 [label="61"]; + s7 -> s1 [label="62"]; + s7 -> s1 [label="63"]; + s7 -> s1 [label="64"]; + s7 -> s1 [label="65"]; + s7 -> s1 [label="66"]; + s7 -> s1 [label="67"]; + s7 -> s1 [label="68"]; + s7 -> s1 [label="69"]; + s7 -> s1 [label="70"]; + s7 -> s1 [label="71"]; + s7 -> s1 [label="72"]; + s7 -> s1 [label="73"]; + s7 -> s1 [label="74"]; + s7 -> s1 [label="75"]; + s7 -> s1 [label="76"]; + s7 -> s1 [label="77"]; + s7 -> s1 [label="78"]; + s7 -> s1 [label="79"]; + s7 -> s1 [label="80"]; + s7 -> s1 [label="81"]; + s7 -> s1 [label="82"]; + s7 -> s1 [label="83"]; + s7 -> s1 [label="84"]; + s7 -> s1 [label="85"]; + s7 -> s1 [label="86"]; + s7 -> s1 [label="87"]; + s7 -> s1 [label="88"]; + s7 -> s1 [label="89"]; + s7 -> s1 [label="90"]; + s7 -> s1 [label="91"]; + s7 -> s1 [label="92"]; + s7 -> s1 [label="93"]; + s7 -> s1 [label="94"]; + s7 -> s1 [label="95"]; + s7 -> s1 [label="96"]; + s7 -> s1 [label="97"]; + s7 -> s1 [label="98"]; + s7 -> s1 [label="99"]; + s7 -> s1 [label="100"]; + s7 -> s1 [label="101"]; + s7 -> s1 [label="102"]; + s7 -> s1 [label="103"]; + s7 -> s1 [label="104"]; + s7 -> s1 [label="105"]; + s7 -> s1 [label="106"]; + s7 -> s1 [label="107"]; + s7 -> s1 [label="108"]; + s7 -> s1 [label="109"]; + s7 -> s1 [label="110"]; + s7 -> s1 [label="111"]; + s7 -> s1 [label="112"]; + s7 -> s1 [label="113"]; + s7 -> s1 [label="114"]; + s7 -> s1 [label="115"]; + s7 -> s1 [label="116"]; + s7 -> s1 [label="117"]; + s7 -> s1 [label="118"]; + s7 -> s1 [label="119"]; + s7 -> s1 [label="120"]; + s7 -> s1 [label="121"]; + s7 -> s1 [label="122"]; + s7 -> s1 [label="123"]; + s7 -> s1 [label="124"]; + s7 -> s1 [label="125"]; + s7 -> s1 [label="126"]; + s7 -> s1 [label="127"]; + s7 -> s4 [label="-128"]; + s7 -> s4 [label="-127"]; + s7 -> s4 [label="-126"]; + s7 -> s4 [label="-125"]; + s7 -> s4 [label="-124"]; + s7 -> s4 [label="-123"]; + s7 -> s4 [label="-122"]; + s7 -> s4 [label="-121"]; + s7 -> s4 [label="-120"]; + s7 -> s4 [label="-119"]; + s7 -> s4 [label="-118"]; + s7 -> s4 [label="-117"]; + s7 -> s4 [label="-116"]; + s7 -> s4 [label="-115"]; + s7 -> s4 [label="-114"]; + s7 -> s4 [label="-113"]; + s7 -> s1 [label="-112"]; + s7 -> s1 [label="-111"]; + s7 -> s1 [label="-110"]; + s7 -> s1 [label="-109"]; + s7 -> s1 [label="-108"]; + s7 -> s1 [label="-107"]; + s7 -> s1 [label="-106"]; + s7 -> s1 [label="-105"]; + s7 -> s1 [label="-104"]; + s7 -> s1 [label="-103"]; + s7 -> s1 [label="-102"]; + s7 -> s1 [label="-101"]; + s7 -> s1 [label="-100"]; + s7 -> s1 [label="-99"]; + s7 -> s1 [label="-98"]; + s7 -> s1 [label="-97"]; + s7 -> s1 [label="-96"]; + s7 -> s1 [label="-95"]; + s7 -> s1 [label="-94"]; + s7 -> s1 [label="-93"]; + s7 -> s1 [label="-92"]; + s7 -> s1 [label="-91"]; + s7 -> s1 [label="-90"]; + s7 -> s1 [label="-89"]; + s7 -> s1 [label="-88"]; + s7 -> s1 [label="-87"]; + s7 -> s1 [label="-86"]; + s7 -> s1 [label="-85"]; + s7 -> s1 [label="-84"]; + s7 -> s1 [label="-83"]; + s7 -> s1 [label="-82"]; + s7 -> s1 [label="-81"]; + s7 -> s1 [label="-80"]; + s7 -> s1 [label="-79"]; + s7 -> s1 [label="-78"]; + s7 -> s1 [label="-77"]; + s7 -> s1 [label="-76"]; + s7 -> s1 [label="-75"]; + s7 -> s1 [label="-74"]; + s7 -> s1 [label="-73"]; + s7 -> s1 [label="-72"]; + s7 -> s1 [label="-71"]; + s7 -> s1 [label="-70"]; + s7 -> s1 [label="-69"]; + s7 -> s1 [label="-68"]; + s7 -> s1 [label="-67"]; + s7 -> s1 [label="-66"]; + s7 -> s1 [label="-65"]; + s7 -> s1 [label="-64"]; + s7 -> s1 [label="-63"]; + s7 -> s1 [label="-62"]; + s7 -> s1 [label="-61"]; + s7 -> s1 [label="-60"]; + s7 -> s1 [label="-59"]; + s7 -> s1 [label="-58"]; + s7 -> s1 [label="-57"]; + s7 -> s1 [label="-56"]; + s7 -> s1 [label="-55"]; + s7 -> s1 [label="-54"]; + s7 -> s1 [label="-53"]; + s7 -> s1 [label="-52"]; + s7 -> s1 [label="-51"]; + s7 -> s1 [label="-50"]; + s7 -> s1 [label="-49"]; + s7 -> s1 [label="-48"]; + s7 -> s1 [label="-47"]; + s7 -> s1 [label="-46"]; + s7 -> s1 [label="-45"]; + s7 -> s1 [label="-44"]; + s7 -> s1 [label="-43"]; + s7 -> s1 [label="-42"]; + s7 -> s1 [label="-41"]; + s7 -> s1 [label="-40"]; + s7 -> s1 [label="-39"]; + s7 -> s1 [label="-38"]; + s7 -> s1 [label="-37"]; + s7 -> s1 [label="-36"]; + s7 -> s1 [label="-35"]; + s7 -> s1 [label="-34"]; + s7 -> s1 [label="-33"]; + s7 -> s1 [label="-32"]; + s7 -> s1 [label="-31"]; + s7 -> s1 [label="-30"]; + s7 -> s1 [label="-29"]; + s7 -> s1 [label="-28"]; + s7 -> s1 [label="-27"]; + s7 -> s1 [label="-26"]; + s7 -> s1 [label="-25"]; + s7 -> s1 [label="-24"]; + s7 -> s1 [label="-23"]; + s7 -> s1 [label="-22"]; + s7 -> s1 [label="-21"]; + s7 -> s1 [label="-20"]; + s7 -> s1 [label="-19"]; + s7 -> s1 [label="-18"]; + s7 -> s1 [label="-17"]; + s7 -> s1 [label="-16"]; + s7 -> s1 [label="-15"]; + s7 -> s1 [label="-14"]; + s7 -> s1 [label="-13"]; + s7 -> s1 [label="-12"]; + s7 -> s1 [label="-11"]; + s7 -> s1 [label="-10"]; + s7 -> s1 [label="-9"]; + s7 -> s1 [label="-8"]; + s7 -> s1 [label="-7"]; + s7 -> s1 [label="-6"]; + s7 -> s1 [label="-5"]; + s7 -> s1 [label="-4"]; + s7 -> s1 [label="-3"]; + s7 -> s1 [label="-2"]; + s7 -> s1 [label="-1"]; + s8 -> s1 [label="0"]; + s8 -> s1 [label="1"]; + s8 -> s1 [label="2"]; + s8 -> s1 [label="3"]; + s8 -> s1 [label="4"]; + s8 -> s1 [label="5"]; + s8 -> s1 [label="6"]; + s8 -> s1 [label="7"]; + s8 -> s1 [label="8"]; + s8 -> s1 [label="9"]; + s8 -> s1 [label="10"]; + s8 -> s1 [label="11"]; + s8 -> s1 [label="12"]; + s8 -> s1 [label="13"]; + s8 -> s1 [label="14"]; + s8 -> s1 [label="15"]; + s8 -> s1 [label="16"]; + s8 -> s1 [label="17"]; + s8 -> s1 [label="18"]; + s8 -> s1 [label="19"]; + s8 -> s1 [label="20"]; + s8 -> s1 [label="21"]; + s8 -> s1 [label="22"]; + s8 -> s1 [label="23"]; + s8 -> s1 [label="24"]; + s8 -> s1 [label="25"]; + s8 -> s1 [label="26"]; + s8 -> s1 [label="27"]; + s8 -> s1 [label="28"]; + s8 -> s1 [label="29"]; + s8 -> s1 [label="30"]; + s8 -> s1 [label="31"]; + s8 -> s1 [label="32"]; + s8 -> s1 [label="33"]; + s8 -> s1 [label="34"]; + s8 -> s1 [label="35"]; + s8 -> s1 [label="36"]; + s8 -> s1 [label="37"]; + s8 -> s1 [label="38"]; + s8 -> s1 [label="39"]; + s8 -> s1 [label="40"]; + s8 -> s1 [label="41"]; + s8 -> s1 [label="42"]; + s8 -> s1 [label="43"]; + s8 -> s1 [label="44"]; + s8 -> s1 [label="45"]; + s8 -> s1 [label="46"]; + s8 -> s1 [label="47"]; + s8 -> s1 [label="48"]; + s8 -> s1 [label="49"]; + s8 -> s1 [label="50"]; + s8 -> s1 [label="51"]; + s8 -> s1 [label="52"]; + s8 -> s1 [label="53"]; + s8 -> s1 [label="54"]; + s8 -> s1 [label="55"]; + s8 -> s1 [label="56"]; + s8 -> s1 [label="57"]; + s8 -> s1 [label="58"]; + s8 -> s1 [label="59"]; + s8 -> s1 [label="60"]; + s8 -> s1 [label="61"]; + s8 -> s1 [label="62"]; + s8 -> s1 [label="63"]; + s8 -> s1 [label="64"]; + s8 -> s1 [label="65"]; + s8 -> s1 [label="66"]; + s8 -> s1 [label="67"]; + s8 -> s1 [label="68"]; + s8 -> s1 [label="69"]; + s8 -> s1 [label="70"]; + s8 -> s1 [label="71"]; + s8 -> s1 [label="72"]; + s8 -> s1 [label="73"]; + s8 -> s1 [label="74"]; + s8 -> s1 [label="75"]; + s8 -> s1 [label="76"]; + s8 -> s1 [label="77"]; + s8 -> s1 [label="78"]; + s8 -> s1 [label="79"]; + s8 -> s1 [label="80"]; + s8 -> s1 [label="81"]; + s8 -> s1 [label="82"]; + s8 -> s1 [label="83"]; + s8 -> s1 [label="84"]; + s8 -> s1 [label="85"]; + s8 -> s1 [label="86"]; + s8 -> s1 [label="87"]; + s8 -> s1 [label="88"]; + s8 -> s1 [label="89"]; + s8 -> s1 [label="90"]; + s8 -> s1 [label="91"]; + s8 -> s1 [label="92"]; + s8 -> s1 [label="93"]; + s8 -> s1 [label="94"]; + s8 -> s1 [label="95"]; + s8 -> s1 [label="96"]; + s8 -> s1 [label="97"]; + s8 -> s1 [label="98"]; + s8 -> s1 [label="99"]; + s8 -> s1 [label="100"]; + s8 -> s1 [label="101"]; + s8 -> s1 [label="102"]; + s8 -> s1 [label="103"]; + s8 -> s1 [label="104"]; + s8 -> s1 [label="105"]; + s8 -> s1 [label="106"]; + s8 -> s1 [label="107"]; + s8 -> s1 [label="108"]; + s8 -> s1 [label="109"]; + s8 -> s1 [label="110"]; + s8 -> s1 [label="111"]; + s8 -> s1 [label="112"]; + s8 -> s1 [label="113"]; + s8 -> s1 [label="114"]; + s8 -> s1 [label="115"]; + s8 -> s1 [label="116"]; + s8 -> s1 [label="117"]; + s8 -> s1 [label="118"]; + s8 -> s1 [label="119"]; + s8 -> s1 [label="120"]; + s8 -> s1 [label="121"]; + s8 -> s1 [label="122"]; + s8 -> s1 [label="123"]; + s8 -> s1 [label="124"]; + s8 -> s1 [label="125"]; + s8 -> s1 [label="126"]; + s8 -> s1 [label="127"]; + s8 -> s4 [label="-128"]; + s8 -> s4 [label="-127"]; + s8 -> s4 [label="-126"]; + s8 -> s4 [label="-125"]; + s8 -> s4 [label="-124"]; + s8 -> s4 [label="-123"]; + s8 -> s4 [label="-122"]; + s8 -> s4 [label="-121"]; + s8 -> s4 [label="-120"]; + s8 -> s4 [label="-119"]; + s8 -> s4 [label="-118"]; + s8 -> s4 [label="-117"]; + s8 -> s4 [label="-116"]; + s8 -> s4 [label="-115"]; + s8 -> s4 [label="-114"]; + s8 -> s4 [label="-113"]; + s8 -> s4 [label="-112"]; + s8 -> s4 [label="-111"]; + s8 -> s4 [label="-110"]; + s8 -> s4 [label="-109"]; + s8 -> s4 [label="-108"]; + s8 -> s4 [label="-107"]; + s8 -> s4 [label="-106"]; + s8 -> s4 [label="-105"]; + s8 -> s4 [label="-104"]; + s8 -> s4 [label="-103"]; + s8 -> s4 [label="-102"]; + s8 -> s4 [label="-101"]; + s8 -> s4 [label="-100"]; + s8 -> s4 [label="-99"]; + s8 -> s4 [label="-98"]; + s8 -> s4 [label="-97"]; + s8 -> s4 [label="-96"]; + s8 -> s4 [label="-95"]; + s8 -> s4 [label="-94"]; + s8 -> s4 [label="-93"]; + s8 -> s4 [label="-92"]; + s8 -> s4 [label="-91"]; + s8 -> s4 [label="-90"]; + s8 -> s4 [label="-89"]; + s8 -> s4 [label="-88"]; + s8 -> s4 [label="-87"]; + s8 -> s4 [label="-86"]; + s8 -> s4 [label="-85"]; + s8 -> s4 [label="-84"]; + s8 -> s4 [label="-83"]; + s8 -> s4 [label="-82"]; + s8 -> s4 [label="-81"]; + s8 -> s4 [label="-80"]; + s8 -> s4 [label="-79"]; + s8 -> s4 [label="-78"]; + s8 -> s4 [label="-77"]; + s8 -> s4 [label="-76"]; + s8 -> s4 [label="-75"]; + s8 -> s4 [label="-74"]; + s8 -> s4 [label="-73"]; + s8 -> s4 [label="-72"]; + s8 -> s4 [label="-71"]; + s8 -> s4 [label="-70"]; + s8 -> s4 [label="-69"]; + s8 -> s4 [label="-68"]; + s8 -> s4 [label="-67"]; + s8 -> s4 [label="-66"]; + s8 -> s4 [label="-65"]; + s8 -> s1 [label="-64"]; + s8 -> s1 [label="-63"]; + s8 -> s1 [label="-62"]; + s8 -> s1 [label="-61"]; + s8 -> s1 [label="-60"]; + s8 -> s1 [label="-59"]; + s8 -> s1 [label="-58"]; + s8 -> s1 [label="-57"]; + s8 -> s1 [label="-56"]; + s8 -> s1 [label="-55"]; + s8 -> s1 [label="-54"]; + s8 -> s1 [label="-53"]; + s8 -> s1 [label="-52"]; + s8 -> s1 [label="-51"]; + s8 -> s1 [label="-50"]; + s8 -> s1 [label="-49"]; + s8 -> s1 [label="-48"]; + s8 -> s1 [label="-47"]; + s8 -> s1 [label="-46"]; + s8 -> s1 [label="-45"]; + s8 -> s1 [label="-44"]; + s8 -> s1 [label="-43"]; + s8 -> s1 [label="-42"]; + s8 -> s1 [label="-41"]; + s8 -> s1 [label="-40"]; + s8 -> s1 [label="-39"]; + s8 -> s1 [label="-38"]; + s8 -> s1 [label="-37"]; + s8 -> s1 [label="-36"]; + s8 -> s1 [label="-35"]; + s8 -> s1 [label="-34"]; + s8 -> s1 [label="-33"]; + s8 -> s1 [label="-32"]; + s8 -> s1 [label="-31"]; + s8 -> s1 [label="-30"]; + s8 -> s1 [label="-29"]; + s8 -> s1 [label="-28"]; + s8 -> s1 [label="-27"]; + s8 -> s1 [label="-26"]; + s8 -> s1 [label="-25"]; + s8 -> s1 [label="-24"]; + s8 -> s1 [label="-23"]; + s8 -> s1 [label="-22"]; + s8 -> s1 [label="-21"]; + s8 -> s1 [label="-20"]; + s8 -> s1 [label="-19"]; + s8 -> s1 [label="-18"]; + s8 -> s1 [label="-17"]; + s8 -> s1 [label="-16"]; + s8 -> s1 [label="-15"]; + s8 -> s1 [label="-14"]; + s8 -> s1 [label="-13"]; + s8 -> s1 [label="-12"]; + s8 -> s1 [label="-11"]; + s8 -> s1 [label="-10"]; + s8 -> s1 [label="-9"]; + s8 -> s1 [label="-8"]; + s8 -> s1 [label="-7"]; + s8 -> s1 [label="-6"]; + s8 -> s1 [label="-5"]; + s8 -> s1 [label="-4"]; + s8 -> s1 [label="-3"]; + s8 -> s1 [label="-2"]; + s8 -> s1 [label="-1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} diff --git a/results/java.dot b/results/java.dot new file mode 100644 index 0000000..dbe67e5 --- /dev/null +++ b/results/java.dot @@ -0,0 +1,2320 @@ +digraph g { + + s0 [shape="doublecircle" label="s0"]; + s1 [shape="circle" label="s1"]; + s2 [shape="circle" label="s2"]; + s3 [shape="circle" label="s3"]; + s4 [shape="circle" label="s4"]; + s5 [shape="circle" label="s5"]; + s6 [shape="circle" label="s6"]; + s7 [shape="circle" label="s7"]; + s8 [shape="circle" label="s8"]; + s0 -> s0 [label="0"]; + s0 -> s0 [label="1"]; + s0 -> s0 [label="2"]; + s0 -> s0 [label="3"]; + s0 -> s0 [label="4"]; + s0 -> s0 [label="5"]; + s0 -> s0 [label="6"]; + s0 -> s0 [label="7"]; + s0 -> s0 [label="8"]; + s0 -> s0 [label="9"]; + s0 -> s0 [label="10"]; + s0 -> s0 [label="11"]; + s0 -> s0 [label="12"]; + s0 -> s0 [label="13"]; + s0 -> s0 [label="14"]; + s0 -> s0 [label="15"]; + s0 -> s0 [label="16"]; + s0 -> s0 [label="17"]; + s0 -> s0 [label="18"]; + s0 -> s0 [label="19"]; + s0 -> s0 [label="20"]; + s0 -> s0 [label="21"]; + s0 -> s0 [label="22"]; + s0 -> s0 [label="23"]; + s0 -> s0 [label="24"]; + s0 -> s0 [label="25"]; + s0 -> s0 [label="26"]; + s0 -> s0 [label="27"]; + s0 -> s0 [label="28"]; + s0 -> s0 [label="29"]; + s0 -> s0 [label="30"]; + s0 -> s0 [label="31"]; + s0 -> s0 [label="32"]; + s0 -> s0 [label="33"]; + s0 -> s0 [label="34"]; + s0 -> s0 [label="35"]; + s0 -> s0 [label="36"]; + s0 -> s0 [label="37"]; + s0 -> s0 [label="38"]; + s0 -> s0 [label="39"]; + s0 -> s0 [label="40"]; + s0 -> s0 [label="41"]; + s0 -> s0 [label="42"]; + s0 -> s0 [label="43"]; + s0 -> s0 [label="44"]; + s0 -> s0 [label="45"]; + s0 -> s0 [label="46"]; + s0 -> s0 [label="47"]; + s0 -> s0 [label="48"]; + s0 -> s0 [label="49"]; + s0 -> s0 [label="50"]; + s0 -> s0 [label="51"]; + s0 -> s0 [label="52"]; + s0 -> s0 [label="53"]; + s0 -> s0 [label="54"]; + s0 -> s0 [label="55"]; + s0 -> s0 [label="56"]; + s0 -> s0 [label="57"]; + s0 -> s0 [label="58"]; + s0 -> s0 [label="59"]; + s0 -> s0 [label="60"]; + s0 -> s0 [label="61"]; + s0 -> s0 [label="62"]; + s0 -> s0 [label="63"]; + s0 -> s0 [label="64"]; + s0 -> s0 [label="65"]; + s0 -> s0 [label="66"]; + s0 -> s0 [label="67"]; + s0 -> s0 [label="68"]; + s0 -> s0 [label="69"]; + s0 -> s0 [label="70"]; + s0 -> s0 [label="71"]; + s0 -> s0 [label="72"]; + s0 -> s0 [label="73"]; + s0 -> s0 [label="74"]; + s0 -> s0 [label="75"]; + s0 -> s0 [label="76"]; + s0 -> s0 [label="77"]; + s0 -> s0 [label="78"]; + s0 -> s0 [label="79"]; + s0 -> s0 [label="80"]; + s0 -> s0 [label="81"]; + s0 -> s0 [label="82"]; + s0 -> s0 [label="83"]; + s0 -> s0 [label="84"]; + s0 -> s0 [label="85"]; + s0 -> s0 [label="86"]; + s0 -> s0 [label="87"]; + s0 -> s0 [label="88"]; + s0 -> s0 [label="89"]; + s0 -> s0 [label="90"]; + s0 -> s0 [label="91"]; + s0 -> s0 [label="92"]; + s0 -> s0 [label="93"]; + s0 -> s0 [label="94"]; + s0 -> s0 [label="95"]; + s0 -> s0 [label="96"]; + s0 -> s0 [label="97"]; + s0 -> s0 [label="98"]; + s0 -> s0 [label="99"]; + s0 -> s0 [label="100"]; + s0 -> s0 [label="101"]; + s0 -> s0 [label="102"]; + s0 -> s0 [label="103"]; + s0 -> s0 [label="104"]; + s0 -> s0 [label="105"]; + s0 -> s0 [label="106"]; + s0 -> s0 [label="107"]; + s0 -> s0 [label="108"]; + s0 -> s0 [label="109"]; + s0 -> s0 [label="110"]; + s0 -> s0 [label="111"]; + s0 -> s0 [label="112"]; + s0 -> s0 [label="113"]; + s0 -> s0 [label="114"]; + s0 -> s0 [label="115"]; + s0 -> s0 [label="116"]; + s0 -> s0 [label="117"]; + s0 -> s0 [label="118"]; + s0 -> s0 [label="119"]; + s0 -> s0 [label="120"]; + s0 -> s0 [label="121"]; + s0 -> s0 [label="122"]; + s0 -> s0 [label="123"]; + s0 -> s0 [label="124"]; + s0 -> s0 [label="125"]; + s0 -> s0 [label="126"]; + s0 -> s0 [label="127"]; + s0 -> s1 [label="-128"]; + s0 -> s1 [label="-127"]; + s0 -> s1 [label="-126"]; + s0 -> s1 [label="-125"]; + s0 -> s1 [label="-124"]; + s0 -> s1 [label="-123"]; + s0 -> s1 [label="-122"]; + s0 -> s1 [label="-121"]; + s0 -> s1 [label="-120"]; + s0 -> s1 [label="-119"]; + s0 -> s1 [label="-118"]; + s0 -> s1 [label="-117"]; + s0 -> s1 [label="-116"]; + s0 -> s1 [label="-115"]; + s0 -> s1 [label="-114"]; + s0 -> s1 [label="-113"]; + s0 -> s1 [label="-112"]; + s0 -> s1 [label="-111"]; + s0 -> s1 [label="-110"]; + s0 -> s1 [label="-109"]; + s0 -> s1 [label="-108"]; + s0 -> s1 [label="-107"]; + s0 -> s1 [label="-106"]; + s0 -> s1 [label="-105"]; + s0 -> s1 [label="-104"]; + s0 -> s1 [label="-103"]; + s0 -> s1 [label="-102"]; + s0 -> s1 [label="-101"]; + s0 -> s1 [label="-100"]; + s0 -> s1 [label="-99"]; + s0 -> s1 [label="-98"]; + s0 -> s1 [label="-97"]; + s0 -> s1 [label="-96"]; + s0 -> s1 [label="-95"]; + s0 -> s1 [label="-94"]; + s0 -> s1 [label="-93"]; + s0 -> s1 [label="-92"]; + s0 -> s1 [label="-91"]; + s0 -> s1 [label="-90"]; + s0 -> s1 [label="-89"]; + s0 -> s1 [label="-88"]; + s0 -> s1 [label="-87"]; + s0 -> s1 [label="-86"]; + s0 -> s1 [label="-85"]; + s0 -> s1 [label="-84"]; + s0 -> s1 [label="-83"]; + s0 -> s1 [label="-82"]; + s0 -> s1 [label="-81"]; + s0 -> s1 [label="-80"]; + s0 -> s1 [label="-79"]; + s0 -> s1 [label="-78"]; + s0 -> s1 [label="-77"]; + s0 -> s1 [label="-76"]; + s0 -> s1 [label="-75"]; + s0 -> s1 [label="-74"]; + s0 -> s1 [label="-73"]; + s0 -> s1 [label="-72"]; + s0 -> s1 [label="-71"]; + s0 -> s1 [label="-70"]; + s0 -> s1 [label="-69"]; + s0 -> s1 [label="-68"]; + s0 -> s1 [label="-67"]; + s0 -> s1 [label="-66"]; + s0 -> s1 [label="-65"]; + s0 -> s1 [label="-64"]; + s0 -> s1 [label="-63"]; + s0 -> s2 [label="-62"]; + s0 -> s2 [label="-61"]; + s0 -> s2 [label="-60"]; + s0 -> s2 [label="-59"]; + s0 -> s2 [label="-58"]; + s0 -> s2 [label="-57"]; + s0 -> s2 [label="-56"]; + s0 -> s2 [label="-55"]; + s0 -> s2 [label="-54"]; + s0 -> s2 [label="-53"]; + s0 -> s2 [label="-52"]; + s0 -> s2 [label="-51"]; + s0 -> s2 [label="-50"]; + s0 -> s2 [label="-49"]; + s0 -> s2 [label="-48"]; + s0 -> s2 [label="-47"]; + s0 -> s2 [label="-46"]; + s0 -> s2 [label="-45"]; + s0 -> s2 [label="-44"]; + s0 -> s2 [label="-43"]; + s0 -> s2 [label="-42"]; + s0 -> s2 [label="-41"]; + s0 -> s2 [label="-40"]; + s0 -> s2 [label="-39"]; + s0 -> s2 [label="-38"]; + s0 -> s2 [label="-37"]; + s0 -> s2 [label="-36"]; + s0 -> s2 [label="-35"]; + s0 -> s2 [label="-34"]; + s0 -> s2 [label="-33"]; + s0 -> s3 [label="-32"]; + s0 -> s4 [label="-31"]; + s0 -> s4 [label="-30"]; + s0 -> s4 [label="-29"]; + s0 -> s4 [label="-28"]; + s0 -> s4 [label="-27"]; + s0 -> s4 [label="-26"]; + s0 -> s4 [label="-25"]; + s0 -> s4 [label="-24"]; + s0 -> s4 [label="-23"]; + s0 -> s4 [label="-22"]; + s0 -> s4 [label="-21"]; + s0 -> s4 [label="-20"]; + s0 -> s5 [label="-19"]; + s0 -> s4 [label="-18"]; + s0 -> s4 [label="-17"]; + s0 -> s6 [label="-16"]; + s0 -> s8 [label="-15"]; + s0 -> s8 [label="-14"]; + s0 -> s8 [label="-13"]; + s0 -> s7 [label="-12"]; + s0 -> s1 [label="-11"]; + s0 -> s1 [label="-10"]; + s0 -> s1 [label="-9"]; + s0 -> s1 [label="-8"]; + s0 -> s1 [label="-7"]; + s0 -> s1 [label="-6"]; + s0 -> s1 [label="-5"]; + s0 -> s1 [label="-4"]; + s0 -> s1 [label="-3"]; + s0 -> s1 [label="-2"]; + s0 -> s1 [label="-1"]; + s1 -> s1 [label="0"]; + s1 -> s1 [label="1"]; + s1 -> s1 [label="2"]; + s1 -> s1 [label="3"]; + s1 -> s1 [label="4"]; + s1 -> s1 [label="5"]; + s1 -> s1 [label="6"]; + s1 -> s1 [label="7"]; + s1 -> s1 [label="8"]; + s1 -> s1 [label="9"]; + s1 -> s1 [label="10"]; + s1 -> s1 [label="11"]; + s1 -> s1 [label="12"]; + s1 -> s1 [label="13"]; + s1 -> s1 [label="14"]; + s1 -> s1 [label="15"]; + s1 -> s1 [label="16"]; + s1 -> s1 [label="17"]; + s1 -> s1 [label="18"]; + s1 -> s1 [label="19"]; + s1 -> s1 [label="20"]; + s1 -> s1 [label="21"]; + s1 -> s1 [label="22"]; + s1 -> s1 [label="23"]; + s1 -> s1 [label="24"]; + s1 -> s1 [label="25"]; + s1 -> s1 [label="26"]; + s1 -> s1 [label="27"]; + s1 -> s1 [label="28"]; + s1 -> s1 [label="29"]; + s1 -> s1 [label="30"]; + s1 -> s1 [label="31"]; + s1 -> s1 [label="32"]; + s1 -> s1 [label="33"]; + s1 -> s1 [label="34"]; + s1 -> s1 [label="35"]; + s1 -> s1 [label="36"]; + s1 -> s1 [label="37"]; + s1 -> s1 [label="38"]; + s1 -> s1 [label="39"]; + s1 -> s1 [label="40"]; + s1 -> s1 [label="41"]; + s1 -> s1 [label="42"]; + s1 -> s1 [label="43"]; + s1 -> s1 [label="44"]; + s1 -> s1 [label="45"]; + s1 -> s1 [label="46"]; + s1 -> s1 [label="47"]; + s1 -> s1 [label="48"]; + s1 -> s1 [label="49"]; + s1 -> s1 [label="50"]; + s1 -> s1 [label="51"]; + s1 -> s1 [label="52"]; + s1 -> s1 [label="53"]; + s1 -> s1 [label="54"]; + s1 -> s1 [label="55"]; + s1 -> s1 [label="56"]; + s1 -> s1 [label="57"]; + s1 -> s1 [label="58"]; + s1 -> s1 [label="59"]; + s1 -> s1 [label="60"]; + s1 -> s1 [label="61"]; + s1 -> s1 [label="62"]; + s1 -> s1 [label="63"]; + s1 -> s1 [label="64"]; + s1 -> s1 [label="65"]; + s1 -> s1 [label="66"]; + s1 -> s1 [label="67"]; + s1 -> s1 [label="68"]; + s1 -> s1 [label="69"]; + s1 -> s1 [label="70"]; + s1 -> s1 [label="71"]; + s1 -> s1 [label="72"]; + s1 -> s1 [label="73"]; + s1 -> s1 [label="74"]; + s1 -> s1 [label="75"]; + s1 -> s1 [label="76"]; + s1 -> s1 [label="77"]; + s1 -> s1 [label="78"]; + s1 -> s1 [label="79"]; + s1 -> s1 [label="80"]; + s1 -> s1 [label="81"]; + s1 -> s1 [label="82"]; + s1 -> s1 [label="83"]; + s1 -> s1 [label="84"]; + s1 -> s1 [label="85"]; + s1 -> s1 [label="86"]; + s1 -> s1 [label="87"]; + s1 -> s1 [label="88"]; + s1 -> s1 [label="89"]; + s1 -> s1 [label="90"]; + s1 -> s1 [label="91"]; + s1 -> s1 [label="92"]; + s1 -> s1 [label="93"]; + s1 -> s1 [label="94"]; + s1 -> s1 [label="95"]; + s1 -> s1 [label="96"]; + s1 -> s1 [label="97"]; + s1 -> s1 [label="98"]; + s1 -> s1 [label="99"]; + s1 -> s1 [label="100"]; + s1 -> s1 [label="101"]; + s1 -> s1 [label="102"]; + s1 -> s1 [label="103"]; + s1 -> s1 [label="104"]; + s1 -> s1 [label="105"]; + s1 -> s1 [label="106"]; + s1 -> s1 [label="107"]; + s1 -> s1 [label="108"]; + s1 -> s1 [label="109"]; + s1 -> s1 [label="110"]; + s1 -> s1 [label="111"]; + s1 -> s1 [label="112"]; + s1 -> s1 [label="113"]; + s1 -> s1 [label="114"]; + s1 -> s1 [label="115"]; + s1 -> s1 [label="116"]; + s1 -> s1 [label="117"]; + s1 -> s1 [label="118"]; + s1 -> s1 [label="119"]; + s1 -> s1 [label="120"]; + s1 -> s1 [label="121"]; + s1 -> s1 [label="122"]; + s1 -> s1 [label="123"]; + s1 -> s1 [label="124"]; + s1 -> s1 [label="125"]; + s1 -> s1 [label="126"]; + s1 -> s1 [label="127"]; + s1 -> s1 [label="-128"]; + s1 -> s1 [label="-127"]; + s1 -> s1 [label="-126"]; + s1 -> s1 [label="-125"]; + s1 -> s1 [label="-124"]; + s1 -> s1 [label="-123"]; + s1 -> s1 [label="-122"]; + s1 -> s1 [label="-121"]; + s1 -> s1 [label="-120"]; + s1 -> s1 [label="-119"]; + s1 -> s1 [label="-118"]; + s1 -> s1 [label="-117"]; + s1 -> s1 [label="-116"]; + s1 -> s1 [label="-115"]; + s1 -> s1 [label="-114"]; + s1 -> s1 [label="-113"]; + s1 -> s1 [label="-112"]; + s1 -> s1 [label="-111"]; + s1 -> s1 [label="-110"]; + s1 -> s1 [label="-109"]; + s1 -> s1 [label="-108"]; + s1 -> s1 [label="-107"]; + s1 -> s1 [label="-106"]; + s1 -> s1 [label="-105"]; + s1 -> s1 [label="-104"]; + s1 -> s1 [label="-103"]; + s1 -> s1 [label="-102"]; + s1 -> s1 [label="-101"]; + s1 -> s1 [label="-100"]; + s1 -> s1 [label="-99"]; + s1 -> s1 [label="-98"]; + s1 -> s1 [label="-97"]; + s1 -> s1 [label="-96"]; + s1 -> s1 [label="-95"]; + s1 -> s1 [label="-94"]; + s1 -> s1 [label="-93"]; + s1 -> s1 [label="-92"]; + s1 -> s1 [label="-91"]; + s1 -> s1 [label="-90"]; + s1 -> s1 [label="-89"]; + s1 -> s1 [label="-88"]; + s1 -> s1 [label="-87"]; + s1 -> s1 [label="-86"]; + s1 -> s1 [label="-85"]; + s1 -> s1 [label="-84"]; + s1 -> s1 [label="-83"]; + s1 -> s1 [label="-82"]; + s1 -> s1 [label="-81"]; + s1 -> s1 [label="-80"]; + s1 -> s1 [label="-79"]; + s1 -> s1 [label="-78"]; + s1 -> s1 [label="-77"]; + s1 -> s1 [label="-76"]; + s1 -> s1 [label="-75"]; + s1 -> s1 [label="-74"]; + s1 -> s1 [label="-73"]; + s1 -> s1 [label="-72"]; + s1 -> s1 [label="-71"]; + s1 -> s1 [label="-70"]; + s1 -> s1 [label="-69"]; + s1 -> s1 [label="-68"]; + s1 -> s1 [label="-67"]; + s1 -> s1 [label="-66"]; + s1 -> s1 [label="-65"]; + s1 -> s1 [label="-64"]; + s1 -> s1 [label="-63"]; + s1 -> s1 [label="-62"]; + s1 -> s1 [label="-61"]; + s1 -> s1 [label="-60"]; + s1 -> s1 [label="-59"]; + s1 -> s1 [label="-58"]; + s1 -> s1 [label="-57"]; + s1 -> s1 [label="-56"]; + s1 -> s1 [label="-55"]; + s1 -> s1 [label="-54"]; + s1 -> s1 [label="-53"]; + s1 -> s1 [label="-52"]; + s1 -> s1 [label="-51"]; + s1 -> s1 [label="-50"]; + s1 -> s1 [label="-49"]; + s1 -> s1 [label="-48"]; + s1 -> s1 [label="-47"]; + s1 -> s1 [label="-46"]; + s1 -> s1 [label="-45"]; + s1 -> s1 [label="-44"]; + s1 -> s1 [label="-43"]; + s1 -> s1 [label="-42"]; + s1 -> s1 [label="-41"]; + s1 -> s1 [label="-40"]; + s1 -> s1 [label="-39"]; + s1 -> s1 [label="-38"]; + s1 -> s1 [label="-37"]; + s1 -> s1 [label="-36"]; + s1 -> s1 [label="-35"]; + s1 -> s1 [label="-34"]; + s1 -> s1 [label="-33"]; + s1 -> s1 [label="-32"]; + s1 -> s1 [label="-31"]; + s1 -> s1 [label="-30"]; + s1 -> s1 [label="-29"]; + s1 -> s1 [label="-28"]; + s1 -> s1 [label="-27"]; + s1 -> s1 [label="-26"]; + s1 -> s1 [label="-25"]; + s1 -> s1 [label="-24"]; + s1 -> s1 [label="-23"]; + s1 -> s1 [label="-22"]; + s1 -> s1 [label="-21"]; + s1 -> s1 [label="-20"]; + s1 -> s1 [label="-19"]; + s1 -> s1 [label="-18"]; + s1 -> s1 [label="-17"]; + s1 -> s1 [label="-16"]; + s1 -> s1 [label="-15"]; + s1 -> s1 [label="-14"]; + s1 -> s1 [label="-13"]; + s1 -> s1 [label="-12"]; + s1 -> s1 [label="-11"]; + s1 -> s1 [label="-10"]; + s1 -> s1 [label="-9"]; + s1 -> s1 [label="-8"]; + s1 -> s1 [label="-7"]; + s1 -> s1 [label="-6"]; + s1 -> s1 [label="-5"]; + s1 -> s1 [label="-4"]; + s1 -> s1 [label="-3"]; + s1 -> s1 [label="-2"]; + s1 -> s1 [label="-1"]; + s2 -> s1 [label="0"]; + s2 -> s1 [label="1"]; + s2 -> s1 [label="2"]; + s2 -> s1 [label="3"]; + s2 -> s1 [label="4"]; + s2 -> s1 [label="5"]; + s2 -> s1 [label="6"]; + s2 -> s1 [label="7"]; + s2 -> s1 [label="8"]; + s2 -> s1 [label="9"]; + s2 -> s1 [label="10"]; + s2 -> s1 [label="11"]; + s2 -> s1 [label="12"]; + s2 -> s1 [label="13"]; + s2 -> s1 [label="14"]; + s2 -> s1 [label="15"]; + s2 -> s1 [label="16"]; + s2 -> s1 [label="17"]; + s2 -> s1 [label="18"]; + s2 -> s1 [label="19"]; + s2 -> s1 [label="20"]; + s2 -> s1 [label="21"]; + s2 -> s1 [label="22"]; + s2 -> s1 [label="23"]; + s2 -> s1 [label="24"]; + s2 -> s1 [label="25"]; + s2 -> s1 [label="26"]; + s2 -> s1 [label="27"]; + s2 -> s1 [label="28"]; + s2 -> s1 [label="29"]; + s2 -> s1 [label="30"]; + s2 -> s1 [label="31"]; + s2 -> s1 [label="32"]; + s2 -> s1 [label="33"]; + s2 -> s1 [label="34"]; + s2 -> s1 [label="35"]; + s2 -> s1 [label="36"]; + s2 -> s1 [label="37"]; + s2 -> s1 [label="38"]; + s2 -> s1 [label="39"]; + s2 -> s1 [label="40"]; + s2 -> s1 [label="41"]; + s2 -> s1 [label="42"]; + s2 -> s1 [label="43"]; + s2 -> s1 [label="44"]; + s2 -> s1 [label="45"]; + s2 -> s1 [label="46"]; + s2 -> s1 [label="47"]; + s2 -> s1 [label="48"]; + s2 -> s1 [label="49"]; + s2 -> s1 [label="50"]; + s2 -> s1 [label="51"]; + s2 -> s1 [label="52"]; + s2 -> s1 [label="53"]; + s2 -> s1 [label="54"]; + s2 -> s1 [label="55"]; + s2 -> s1 [label="56"]; + s2 -> s1 [label="57"]; + s2 -> s1 [label="58"]; + s2 -> s1 [label="59"]; + s2 -> s1 [label="60"]; + s2 -> s1 [label="61"]; + s2 -> s1 [label="62"]; + s2 -> s1 [label="63"]; + s2 -> s1 [label="64"]; + s2 -> s1 [label="65"]; + s2 -> s1 [label="66"]; + s2 -> s1 [label="67"]; + s2 -> s1 [label="68"]; + s2 -> s1 [label="69"]; + s2 -> s1 [label="70"]; + s2 -> s1 [label="71"]; + s2 -> s1 [label="72"]; + s2 -> s1 [label="73"]; + s2 -> s1 [label="74"]; + s2 -> s1 [label="75"]; + s2 -> s1 [label="76"]; + s2 -> s1 [label="77"]; + s2 -> s1 [label="78"]; + s2 -> s1 [label="79"]; + s2 -> s1 [label="80"]; + s2 -> s1 [label="81"]; + s2 -> s1 [label="82"]; + s2 -> s1 [label="83"]; + s2 -> s1 [label="84"]; + s2 -> s1 [label="85"]; + s2 -> s1 [label="86"]; + s2 -> s1 [label="87"]; + s2 -> s1 [label="88"]; + s2 -> s1 [label="89"]; + s2 -> s1 [label="90"]; + s2 -> s1 [label="91"]; + s2 -> s1 [label="92"]; + s2 -> s1 [label="93"]; + s2 -> s1 [label="94"]; + s2 -> s1 [label="95"]; + s2 -> s1 [label="96"]; + s2 -> s1 [label="97"]; + s2 -> s1 [label="98"]; + s2 -> s1 [label="99"]; + s2 -> s1 [label="100"]; + s2 -> s1 [label="101"]; + s2 -> s1 [label="102"]; + s2 -> s1 [label="103"]; + s2 -> s1 [label="104"]; + s2 -> s1 [label="105"]; + s2 -> s1 [label="106"]; + s2 -> s1 [label="107"]; + s2 -> s1 [label="108"]; + s2 -> s1 [label="109"]; + s2 -> s1 [label="110"]; + s2 -> s1 [label="111"]; + s2 -> s1 [label="112"]; + s2 -> s1 [label="113"]; + s2 -> s1 [label="114"]; + s2 -> s1 [label="115"]; + s2 -> s1 [label="116"]; + s2 -> s1 [label="117"]; + s2 -> s1 [label="118"]; + s2 -> s1 [label="119"]; + s2 -> s1 [label="120"]; + s2 -> s1 [label="121"]; + s2 -> s1 [label="122"]; + s2 -> s1 [label="123"]; + s2 -> s1 [label="124"]; + s2 -> s1 [label="125"]; + s2 -> s1 [label="126"]; + s2 -> s1 [label="127"]; + s2 -> s0 [label="-128"]; + s2 -> s0 [label="-127"]; + s2 -> s0 [label="-126"]; + s2 -> s0 [label="-125"]; + s2 -> s0 [label="-124"]; + s2 -> s0 [label="-123"]; + s2 -> s0 [label="-122"]; + s2 -> s0 [label="-121"]; + s2 -> s0 [label="-120"]; + s2 -> s0 [label="-119"]; + s2 -> s0 [label="-118"]; + s2 -> s0 [label="-117"]; + s2 -> s0 [label="-116"]; + s2 -> s0 [label="-115"]; + s2 -> s0 [label="-114"]; + s2 -> s0 [label="-113"]; + s2 -> s0 [label="-112"]; + s2 -> s0 [label="-111"]; + s2 -> s0 [label="-110"]; + s2 -> s0 [label="-109"]; + s2 -> s0 [label="-108"]; + s2 -> s0 [label="-107"]; + s2 -> s0 [label="-106"]; + s2 -> s0 [label="-105"]; + s2 -> s0 [label="-104"]; + s2 -> s0 [label="-103"]; + s2 -> s0 [label="-102"]; + s2 -> s0 [label="-101"]; + s2 -> s0 [label="-100"]; + s2 -> s0 [label="-99"]; + s2 -> s0 [label="-98"]; + s2 -> s0 [label="-97"]; + s2 -> s0 [label="-96"]; + s2 -> s0 [label="-95"]; + s2 -> s0 [label="-94"]; + s2 -> s0 [label="-93"]; + s2 -> s0 [label="-92"]; + s2 -> s0 [label="-91"]; + s2 -> s0 [label="-90"]; + s2 -> s0 [label="-89"]; + s2 -> s0 [label="-88"]; + s2 -> s0 [label="-87"]; + s2 -> s0 [label="-86"]; + s2 -> s0 [label="-85"]; + s2 -> s0 [label="-84"]; + s2 -> s0 [label="-83"]; + s2 -> s0 [label="-82"]; + s2 -> s0 [label="-81"]; + s2 -> s0 [label="-80"]; + s2 -> s0 [label="-79"]; + s2 -> s0 [label="-78"]; + s2 -> s0 [label="-77"]; + s2 -> s0 [label="-76"]; + s2 -> s0 [label="-75"]; + s2 -> s0 [label="-74"]; + s2 -> s0 [label="-73"]; + s2 -> s0 [label="-72"]; + s2 -> s0 [label="-71"]; + s2 -> s0 [label="-70"]; + s2 -> s0 [label="-69"]; + s2 -> s0 [label="-68"]; + s2 -> s0 [label="-67"]; + s2 -> s0 [label="-66"]; + s2 -> s0 [label="-65"]; + s2 -> s1 [label="-64"]; + s2 -> s1 [label="-63"]; + s2 -> s1 [label="-62"]; + s2 -> s1 [label="-61"]; + s2 -> s1 [label="-60"]; + s2 -> s1 [label="-59"]; + s2 -> s1 [label="-58"]; + s2 -> s1 [label="-57"]; + s2 -> s1 [label="-56"]; + s2 -> s1 [label="-55"]; + s2 -> s1 [label="-54"]; + s2 -> s1 [label="-53"]; + s2 -> s1 [label="-52"]; + s2 -> s1 [label="-51"]; + s2 -> s1 [label="-50"]; + s2 -> s1 [label="-49"]; + s2 -> s1 [label="-48"]; + s2 -> s1 [label="-47"]; + s2 -> s1 [label="-46"]; + s2 -> s1 [label="-45"]; + s2 -> s1 [label="-44"]; + s2 -> s1 [label="-43"]; + s2 -> s1 [label="-42"]; + s2 -> s1 [label="-41"]; + s2 -> s1 [label="-40"]; + s2 -> s1 [label="-39"]; + s2 -> s1 [label="-38"]; + s2 -> s1 [label="-37"]; + s2 -> s1 [label="-36"]; + s2 -> s1 [label="-35"]; + s2 -> s1 [label="-34"]; + s2 -> s1 [label="-33"]; + s2 -> s1 [label="-32"]; + s2 -> s1 [label="-31"]; + s2 -> s1 [label="-30"]; + s2 -> s1 [label="-29"]; + s2 -> s1 [label="-28"]; + s2 -> s1 [label="-27"]; + s2 -> s1 [label="-26"]; + s2 -> s1 [label="-25"]; + s2 -> s1 [label="-24"]; + s2 -> s1 [label="-23"]; + s2 -> s1 [label="-22"]; + s2 -> s1 [label="-21"]; + s2 -> s1 [label="-20"]; + s2 -> s1 [label="-19"]; + s2 -> s1 [label="-18"]; + s2 -> s1 [label="-17"]; + s2 -> s1 [label="-16"]; + s2 -> s1 [label="-15"]; + s2 -> s1 [label="-14"]; + s2 -> s1 [label="-13"]; + s2 -> s1 [label="-12"]; + s2 -> s1 [label="-11"]; + s2 -> s1 [label="-10"]; + s2 -> s1 [label="-9"]; + s2 -> s1 [label="-8"]; + s2 -> s1 [label="-7"]; + s2 -> s1 [label="-6"]; + s2 -> s1 [label="-5"]; + s2 -> s1 [label="-4"]; + s2 -> s1 [label="-3"]; + s2 -> s1 [label="-2"]; + s2 -> s1 [label="-1"]; + s3 -> s1 [label="0"]; + s3 -> s1 [label="1"]; + s3 -> s1 [label="2"]; + s3 -> s1 [label="3"]; + s3 -> s1 [label="4"]; + s3 -> s1 [label="5"]; + s3 -> s1 [label="6"]; + s3 -> s1 [label="7"]; + s3 -> s1 [label="8"]; + s3 -> s1 [label="9"]; + s3 -> s1 [label="10"]; + s3 -> s1 [label="11"]; + s3 -> s1 [label="12"]; + s3 -> s1 [label="13"]; + s3 -> s1 [label="14"]; + s3 -> s1 [label="15"]; + s3 -> s1 [label="16"]; + s3 -> s1 [label="17"]; + s3 -> s1 [label="18"]; + s3 -> s1 [label="19"]; + s3 -> s1 [label="20"]; + s3 -> s1 [label="21"]; + s3 -> s1 [label="22"]; + s3 -> s1 [label="23"]; + s3 -> s1 [label="24"]; + s3 -> s1 [label="25"]; + s3 -> s1 [label="26"]; + s3 -> s1 [label="27"]; + s3 -> s1 [label="28"]; + s3 -> s1 [label="29"]; + s3 -> s1 [label="30"]; + s3 -> s1 [label="31"]; + s3 -> s1 [label="32"]; + s3 -> s1 [label="33"]; + s3 -> s1 [label="34"]; + s3 -> s1 [label="35"]; + s3 -> s1 [label="36"]; + s3 -> s1 [label="37"]; + s3 -> s1 [label="38"]; + s3 -> s1 [label="39"]; + s3 -> s1 [label="40"]; + s3 -> s1 [label="41"]; + s3 -> s1 [label="42"]; + s3 -> s1 [label="43"]; + s3 -> s1 [label="44"]; + s3 -> s1 [label="45"]; + s3 -> s1 [label="46"]; + s3 -> s1 [label="47"]; + s3 -> s1 [label="48"]; + s3 -> s1 [label="49"]; + s3 -> s1 [label="50"]; + s3 -> s1 [label="51"]; + s3 -> s1 [label="52"]; + s3 -> s1 [label="53"]; + s3 -> s1 [label="54"]; + s3 -> s1 [label="55"]; + s3 -> s1 [label="56"]; + s3 -> s1 [label="57"]; + s3 -> s1 [label="58"]; + s3 -> s1 [label="59"]; + s3 -> s1 [label="60"]; + s3 -> s1 [label="61"]; + s3 -> s1 [label="62"]; + s3 -> s1 [label="63"]; + s3 -> s1 [label="64"]; + s3 -> s1 [label="65"]; + s3 -> s1 [label="66"]; + s3 -> s1 [label="67"]; + s3 -> s1 [label="68"]; + s3 -> s1 [label="69"]; + s3 -> s1 [label="70"]; + s3 -> s1 [label="71"]; + s3 -> s1 [label="72"]; + s3 -> s1 [label="73"]; + s3 -> s1 [label="74"]; + s3 -> s1 [label="75"]; + s3 -> s1 [label="76"]; + s3 -> s1 [label="77"]; + s3 -> s1 [label="78"]; + s3 -> s1 [label="79"]; + s3 -> s1 [label="80"]; + s3 -> s1 [label="81"]; + s3 -> s1 [label="82"]; + s3 -> s1 [label="83"]; + s3 -> s1 [label="84"]; + s3 -> s1 [label="85"]; + s3 -> s1 [label="86"]; + s3 -> s1 [label="87"]; + s3 -> s1 [label="88"]; + s3 -> s1 [label="89"]; + s3 -> s1 [label="90"]; + s3 -> s1 [label="91"]; + s3 -> s1 [label="92"]; + s3 -> s1 [label="93"]; + s3 -> s1 [label="94"]; + s3 -> s1 [label="95"]; + s3 -> s1 [label="96"]; + s3 -> s1 [label="97"]; + s3 -> s1 [label="98"]; + s3 -> s1 [label="99"]; + s3 -> s1 [label="100"]; + s3 -> s1 [label="101"]; + s3 -> s1 [label="102"]; + s3 -> s1 [label="103"]; + s3 -> s1 [label="104"]; + s3 -> s1 [label="105"]; + s3 -> s1 [label="106"]; + s3 -> s1 [label="107"]; + s3 -> s1 [label="108"]; + s3 -> s1 [label="109"]; + s3 -> s1 [label="110"]; + s3 -> s1 [label="111"]; + s3 -> s1 [label="112"]; + s3 -> s1 [label="113"]; + s3 -> s1 [label="114"]; + s3 -> s1 [label="115"]; + s3 -> s1 [label="116"]; + s3 -> s1 [label="117"]; + s3 -> s1 [label="118"]; + s3 -> s1 [label="119"]; + s3 -> s1 [label="120"]; + s3 -> s1 [label="121"]; + s3 -> s1 [label="122"]; + s3 -> s1 [label="123"]; + s3 -> s1 [label="124"]; + s3 -> s1 [label="125"]; + s3 -> s1 [label="126"]; + s3 -> s1 [label="127"]; + s3 -> s1 [label="-128"]; + s3 -> s1 [label="-127"]; + s3 -> s1 [label="-126"]; + s3 -> s1 [label="-125"]; + s3 -> s1 [label="-124"]; + s3 -> s1 [label="-123"]; + s3 -> s1 [label="-122"]; + s3 -> s1 [label="-121"]; + s3 -> s1 [label="-120"]; + s3 -> s1 [label="-119"]; + s3 -> s1 [label="-118"]; + s3 -> s1 [label="-117"]; + s3 -> s1 [label="-116"]; + s3 -> s1 [label="-115"]; + s3 -> s1 [label="-114"]; + s3 -> s1 [label="-113"]; + s3 -> s1 [label="-112"]; + s3 -> s1 [label="-111"]; + s3 -> s1 [label="-110"]; + s3 -> s1 [label="-109"]; + s3 -> s1 [label="-108"]; + s3 -> s1 [label="-107"]; + s3 -> s1 [label="-106"]; + s3 -> s1 [label="-105"]; + s3 -> s1 [label="-104"]; + s3 -> s1 [label="-103"]; + s3 -> s1 [label="-102"]; + s3 -> s1 [label="-101"]; + s3 -> s1 [label="-100"]; + s3 -> s1 [label="-99"]; + s3 -> s1 [label="-98"]; + s3 -> s1 [label="-97"]; + s3 -> s2 [label="-96"]; + s3 -> s2 [label="-95"]; + s3 -> s2 [label="-94"]; + s3 -> s2 [label="-93"]; + s3 -> s2 [label="-92"]; + s3 -> s2 [label="-91"]; + s3 -> s2 [label="-90"]; + s3 -> s2 [label="-89"]; + s3 -> s2 [label="-88"]; + s3 -> s2 [label="-87"]; + s3 -> s2 [label="-86"]; + s3 -> s2 [label="-85"]; + s3 -> s2 [label="-84"]; + s3 -> s2 [label="-83"]; + s3 -> s2 [label="-82"]; + s3 -> s2 [label="-81"]; + s3 -> s2 [label="-80"]; + s3 -> s2 [label="-79"]; + s3 -> s2 [label="-78"]; + s3 -> s2 [label="-77"]; + s3 -> s2 [label="-76"]; + s3 -> s2 [label="-75"]; + s3 -> s2 [label="-74"]; + s3 -> s2 [label="-73"]; + s3 -> s2 [label="-72"]; + s3 -> s2 [label="-71"]; + s3 -> s2 [label="-70"]; + s3 -> s2 [label="-69"]; + s3 -> s2 [label="-68"]; + s3 -> s2 [label="-67"]; + s3 -> s2 [label="-66"]; + s3 -> s2 [label="-65"]; + s3 -> s1 [label="-64"]; + s3 -> s1 [label="-63"]; + s3 -> s1 [label="-62"]; + s3 -> s1 [label="-61"]; + s3 -> s1 [label="-60"]; + s3 -> s1 [label="-59"]; + s3 -> s1 [label="-58"]; + s3 -> s1 [label="-57"]; + s3 -> s1 [label="-56"]; + s3 -> s1 [label="-55"]; + s3 -> s1 [label="-54"]; + s3 -> s1 [label="-53"]; + s3 -> s1 [label="-52"]; + s3 -> s1 [label="-51"]; + s3 -> s1 [label="-50"]; + s3 -> s1 [label="-49"]; + s3 -> s1 [label="-48"]; + s3 -> s1 [label="-47"]; + s3 -> s1 [label="-46"]; + s3 -> s1 [label="-45"]; + s3 -> s1 [label="-44"]; + s3 -> s1 [label="-43"]; + s3 -> s1 [label="-42"]; + s3 -> s1 [label="-41"]; + s3 -> s1 [label="-40"]; + s3 -> s1 [label="-39"]; + s3 -> s1 [label="-38"]; + s3 -> s1 [label="-37"]; + s3 -> s1 [label="-36"]; + s3 -> s1 [label="-35"]; + s3 -> s1 [label="-34"]; + s3 -> s1 [label="-33"]; + s3 -> s1 [label="-32"]; + s3 -> s1 [label="-31"]; + s3 -> s1 [label="-30"]; + s3 -> s1 [label="-29"]; + s3 -> s1 [label="-28"]; + s3 -> s1 [label="-27"]; + s3 -> s1 [label="-26"]; + s3 -> s1 [label="-25"]; + s3 -> s1 [label="-24"]; + s3 -> s1 [label="-23"]; + s3 -> s1 [label="-22"]; + s3 -> s1 [label="-21"]; + s3 -> s1 [label="-20"]; + s3 -> s1 [label="-19"]; + s3 -> s1 [label="-18"]; + s3 -> s1 [label="-17"]; + s3 -> s1 [label="-16"]; + s3 -> s1 [label="-15"]; + s3 -> s1 [label="-14"]; + s3 -> s1 [label="-13"]; + s3 -> s1 [label="-12"]; + s3 -> s1 [label="-11"]; + s3 -> s1 [label="-10"]; + s3 -> s1 [label="-9"]; + s3 -> s1 [label="-8"]; + s3 -> s1 [label="-7"]; + s3 -> s1 [label="-6"]; + s3 -> s1 [label="-5"]; + s3 -> s1 [label="-4"]; + s3 -> s1 [label="-3"]; + s3 -> s1 [label="-2"]; + s3 -> s1 [label="-1"]; + s4 -> s1 [label="0"]; + s4 -> s1 [label="1"]; + s4 -> s1 [label="2"]; + s4 -> s1 [label="3"]; + s4 -> s1 [label="4"]; + s4 -> s1 [label="5"]; + s4 -> s1 [label="6"]; + s4 -> s1 [label="7"]; + s4 -> s1 [label="8"]; + s4 -> s1 [label="9"]; + s4 -> s1 [label="10"]; + s4 -> s1 [label="11"]; + s4 -> s1 [label="12"]; + s4 -> s1 [label="13"]; + s4 -> s1 [label="14"]; + s4 -> s1 [label="15"]; + s4 -> s1 [label="16"]; + s4 -> s1 [label="17"]; + s4 -> s1 [label="18"]; + s4 -> s1 [label="19"]; + s4 -> s1 [label="20"]; + s4 -> s1 [label="21"]; + s4 -> s1 [label="22"]; + s4 -> s1 [label="23"]; + s4 -> s1 [label="24"]; + s4 -> s1 [label="25"]; + s4 -> s1 [label="26"]; + s4 -> s1 [label="27"]; + s4 -> s1 [label="28"]; + s4 -> s1 [label="29"]; + s4 -> s1 [label="30"]; + s4 -> s1 [label="31"]; + s4 -> s1 [label="32"]; + s4 -> s1 [label="33"]; + s4 -> s1 [label="34"]; + s4 -> s1 [label="35"]; + s4 -> s1 [label="36"]; + s4 -> s1 [label="37"]; + s4 -> s1 [label="38"]; + s4 -> s1 [label="39"]; + s4 -> s1 [label="40"]; + s4 -> s1 [label="41"]; + s4 -> s1 [label="42"]; + s4 -> s1 [label="43"]; + s4 -> s1 [label="44"]; + s4 -> s1 [label="45"]; + s4 -> s1 [label="46"]; + s4 -> s1 [label="47"]; + s4 -> s1 [label="48"]; + s4 -> s1 [label="49"]; + s4 -> s1 [label="50"]; + s4 -> s1 [label="51"]; + s4 -> s1 [label="52"]; + s4 -> s1 [label="53"]; + s4 -> s1 [label="54"]; + s4 -> s1 [label="55"]; + s4 -> s1 [label="56"]; + s4 -> s1 [label="57"]; + s4 -> s1 [label="58"]; + s4 -> s1 [label="59"]; + s4 -> s1 [label="60"]; + s4 -> s1 [label="61"]; + s4 -> s1 [label="62"]; + s4 -> s1 [label="63"]; + s4 -> s1 [label="64"]; + s4 -> s1 [label="65"]; + s4 -> s1 [label="66"]; + s4 -> s1 [label="67"]; + s4 -> s1 [label="68"]; + s4 -> s1 [label="69"]; + s4 -> s1 [label="70"]; + s4 -> s1 [label="71"]; + s4 -> s1 [label="72"]; + s4 -> s1 [label="73"]; + s4 -> s1 [label="74"]; + s4 -> s1 [label="75"]; + s4 -> s1 [label="76"]; + s4 -> s1 [label="77"]; + s4 -> s1 [label="78"]; + s4 -> s1 [label="79"]; + s4 -> s1 [label="80"]; + s4 -> s1 [label="81"]; + s4 -> s1 [label="82"]; + s4 -> s1 [label="83"]; + s4 -> s1 [label="84"]; + s4 -> s1 [label="85"]; + s4 -> s1 [label="86"]; + s4 -> s1 [label="87"]; + s4 -> s1 [label="88"]; + s4 -> s1 [label="89"]; + s4 -> s1 [label="90"]; + s4 -> s1 [label="91"]; + s4 -> s1 [label="92"]; + s4 -> s1 [label="93"]; + s4 -> s1 [label="94"]; + s4 -> s1 [label="95"]; + s4 -> s1 [label="96"]; + s4 -> s1 [label="97"]; + s4 -> s1 [label="98"]; + s4 -> s1 [label="99"]; + s4 -> s1 [label="100"]; + s4 -> s1 [label="101"]; + s4 -> s1 [label="102"]; + s4 -> s1 [label="103"]; + s4 -> s1 [label="104"]; + s4 -> s1 [label="105"]; + s4 -> s1 [label="106"]; + s4 -> s1 [label="107"]; + s4 -> s1 [label="108"]; + s4 -> s1 [label="109"]; + s4 -> s1 [label="110"]; + s4 -> s1 [label="111"]; + s4 -> s1 [label="112"]; + s4 -> s1 [label="113"]; + s4 -> s1 [label="114"]; + s4 -> s1 [label="115"]; + s4 -> s1 [label="116"]; + s4 -> s1 [label="117"]; + s4 -> s1 [label="118"]; + s4 -> s1 [label="119"]; + s4 -> s1 [label="120"]; + s4 -> s1 [label="121"]; + s4 -> s1 [label="122"]; + s4 -> s1 [label="123"]; + s4 -> s1 [label="124"]; + s4 -> s1 [label="125"]; + s4 -> s1 [label="126"]; + s4 -> s1 [label="127"]; + s4 -> s2 [label="-128"]; + s4 -> s2 [label="-127"]; + s4 -> s2 [label="-126"]; + s4 -> s2 [label="-125"]; + s4 -> s2 [label="-124"]; + s4 -> s2 [label="-123"]; + s4 -> s2 [label="-122"]; + s4 -> s2 [label="-121"]; + s4 -> s2 [label="-120"]; + s4 -> s2 [label="-119"]; + s4 -> s2 [label="-118"]; + s4 -> s2 [label="-117"]; + s4 -> s2 [label="-116"]; + s4 -> s2 [label="-115"]; + s4 -> s2 [label="-114"]; + s4 -> s2 [label="-113"]; + s4 -> s2 [label="-112"]; + s4 -> s2 [label="-111"]; + s4 -> s2 [label="-110"]; + s4 -> s2 [label="-109"]; + s4 -> s2 [label="-108"]; + s4 -> s2 [label="-107"]; + s4 -> s2 [label="-106"]; + s4 -> s2 [label="-105"]; + s4 -> s2 [label="-104"]; + s4 -> s2 [label="-103"]; + s4 -> s2 [label="-102"]; + s4 -> s2 [label="-101"]; + s4 -> s2 [label="-100"]; + s4 -> s2 [label="-99"]; + s4 -> s2 [label="-98"]; + s4 -> s2 [label="-97"]; + s4 -> s2 [label="-96"]; + s4 -> s2 [label="-95"]; + s4 -> s2 [label="-94"]; + s4 -> s2 [label="-93"]; + s4 -> s2 [label="-92"]; + s4 -> s2 [label="-91"]; + s4 -> s2 [label="-90"]; + s4 -> s2 [label="-89"]; + s4 -> s2 [label="-88"]; + s4 -> s2 [label="-87"]; + s4 -> s2 [label="-86"]; + s4 -> s2 [label="-85"]; + s4 -> s2 [label="-84"]; + s4 -> s2 [label="-83"]; + s4 -> s2 [label="-82"]; + s4 -> s2 [label="-81"]; + s4 -> s2 [label="-80"]; + s4 -> s2 [label="-79"]; + s4 -> s2 [label="-78"]; + s4 -> s2 [label="-77"]; + s4 -> s2 [label="-76"]; + s4 -> s2 [label="-75"]; + s4 -> s2 [label="-74"]; + s4 -> s2 [label="-73"]; + s4 -> s2 [label="-72"]; + s4 -> s2 [label="-71"]; + s4 -> s2 [label="-70"]; + s4 -> s2 [label="-69"]; + s4 -> s2 [label="-68"]; + s4 -> s2 [label="-67"]; + s4 -> s2 [label="-66"]; + s4 -> s2 [label="-65"]; + s4 -> s1 [label="-64"]; + s4 -> s1 [label="-63"]; + s4 -> s1 [label="-62"]; + s4 -> s1 [label="-61"]; + s4 -> s1 [label="-60"]; + s4 -> s1 [label="-59"]; + s4 -> s1 [label="-58"]; + s4 -> s1 [label="-57"]; + s4 -> s1 [label="-56"]; + s4 -> s1 [label="-55"]; + s4 -> s1 [label="-54"]; + s4 -> s1 [label="-53"]; + s4 -> s1 [label="-52"]; + s4 -> s1 [label="-51"]; + s4 -> s1 [label="-50"]; + s4 -> s1 [label="-49"]; + s4 -> s1 [label="-48"]; + s4 -> s1 [label="-47"]; + s4 -> s1 [label="-46"]; + s4 -> s1 [label="-45"]; + s4 -> s1 [label="-44"]; + s4 -> s1 [label="-43"]; + s4 -> s1 [label="-42"]; + s4 -> s1 [label="-41"]; + s4 -> s1 [label="-40"]; + s4 -> s1 [label="-39"]; + s4 -> s1 [label="-38"]; + s4 -> s1 [label="-37"]; + s4 -> s1 [label="-36"]; + s4 -> s1 [label="-35"]; + s4 -> s1 [label="-34"]; + s4 -> s1 [label="-33"]; + s4 -> s1 [label="-32"]; + s4 -> s1 [label="-31"]; + s4 -> s1 [label="-30"]; + s4 -> s1 [label="-29"]; + s4 -> s1 [label="-28"]; + s4 -> s1 [label="-27"]; + s4 -> s1 [label="-26"]; + s4 -> s1 [label="-25"]; + s4 -> s1 [label="-24"]; + s4 -> s1 [label="-23"]; + s4 -> s1 [label="-22"]; + s4 -> s1 [label="-21"]; + s4 -> s1 [label="-20"]; + s4 -> s1 [label="-19"]; + s4 -> s1 [label="-18"]; + s4 -> s1 [label="-17"]; + s4 -> s1 [label="-16"]; + s4 -> s1 [label="-15"]; + s4 -> s1 [label="-14"]; + s4 -> s1 [label="-13"]; + s4 -> s1 [label="-12"]; + s4 -> s1 [label="-11"]; + s4 -> s1 [label="-10"]; + s4 -> s1 [label="-9"]; + s4 -> s1 [label="-8"]; + s4 -> s1 [label="-7"]; + s4 -> s1 [label="-6"]; + s4 -> s1 [label="-5"]; + s4 -> s1 [label="-4"]; + s4 -> s1 [label="-3"]; + s4 -> s1 [label="-2"]; + s4 -> s1 [label="-1"]; + s5 -> s1 [label="0"]; + s5 -> s1 [label="1"]; + s5 -> s1 [label="2"]; + s5 -> s1 [label="3"]; + s5 -> s1 [label="4"]; + s5 -> s1 [label="5"]; + s5 -> s1 [label="6"]; + s5 -> s1 [label="7"]; + s5 -> s1 [label="8"]; + s5 -> s1 [label="9"]; + s5 -> s1 [label="10"]; + s5 -> s1 [label="11"]; + s5 -> s1 [label="12"]; + s5 -> s1 [label="13"]; + s5 -> s1 [label="14"]; + s5 -> s1 [label="15"]; + s5 -> s1 [label="16"]; + s5 -> s1 [label="17"]; + s5 -> s1 [label="18"]; + s5 -> s1 [label="19"]; + s5 -> s1 [label="20"]; + s5 -> s1 [label="21"]; + s5 -> s1 [label="22"]; + s5 -> s1 [label="23"]; + s5 -> s1 [label="24"]; + s5 -> s1 [label="25"]; + s5 -> s1 [label="26"]; + s5 -> s1 [label="27"]; + s5 -> s1 [label="28"]; + s5 -> s1 [label="29"]; + s5 -> s1 [label="30"]; + s5 -> s1 [label="31"]; + s5 -> s1 [label="32"]; + s5 -> s1 [label="33"]; + s5 -> s1 [label="34"]; + s5 -> s1 [label="35"]; + s5 -> s1 [label="36"]; + s5 -> s1 [label="37"]; + s5 -> s1 [label="38"]; + s5 -> s1 [label="39"]; + s5 -> s1 [label="40"]; + s5 -> s1 [label="41"]; + s5 -> s1 [label="42"]; + s5 -> s1 [label="43"]; + s5 -> s1 [label="44"]; + s5 -> s1 [label="45"]; + s5 -> s1 [label="46"]; + s5 -> s1 [label="47"]; + s5 -> s1 [label="48"]; + s5 -> s1 [label="49"]; + s5 -> s1 [label="50"]; + s5 -> s1 [label="51"]; + s5 -> s1 [label="52"]; + s5 -> s1 [label="53"]; + s5 -> s1 [label="54"]; + s5 -> s1 [label="55"]; + s5 -> s1 [label="56"]; + s5 -> s1 [label="57"]; + s5 -> s1 [label="58"]; + s5 -> s1 [label="59"]; + s5 -> s1 [label="60"]; + s5 -> s1 [label="61"]; + s5 -> s1 [label="62"]; + s5 -> s1 [label="63"]; + s5 -> s1 [label="64"]; + s5 -> s1 [label="65"]; + s5 -> s1 [label="66"]; + s5 -> s1 [label="67"]; + s5 -> s1 [label="68"]; + s5 -> s1 [label="69"]; + s5 -> s1 [label="70"]; + s5 -> s1 [label="71"]; + s5 -> s1 [label="72"]; + s5 -> s1 [label="73"]; + s5 -> s1 [label="74"]; + s5 -> s1 [label="75"]; + s5 -> s1 [label="76"]; + s5 -> s1 [label="77"]; + s5 -> s1 [label="78"]; + s5 -> s1 [label="79"]; + s5 -> s1 [label="80"]; + s5 -> s1 [label="81"]; + s5 -> s1 [label="82"]; + s5 -> s1 [label="83"]; + s5 -> s1 [label="84"]; + s5 -> s1 [label="85"]; + s5 -> s1 [label="86"]; + s5 -> s1 [label="87"]; + s5 -> s1 [label="88"]; + s5 -> s1 [label="89"]; + s5 -> s1 [label="90"]; + s5 -> s1 [label="91"]; + s5 -> s1 [label="92"]; + s5 -> s1 [label="93"]; + s5 -> s1 [label="94"]; + s5 -> s1 [label="95"]; + s5 -> s1 [label="96"]; + s5 -> s1 [label="97"]; + s5 -> s1 [label="98"]; + s5 -> s1 [label="99"]; + s5 -> s1 [label="100"]; + s5 -> s1 [label="101"]; + s5 -> s1 [label="102"]; + s5 -> s1 [label="103"]; + s5 -> s1 [label="104"]; + s5 -> s1 [label="105"]; + s5 -> s1 [label="106"]; + s5 -> s1 [label="107"]; + s5 -> s1 [label="108"]; + s5 -> s1 [label="109"]; + s5 -> s1 [label="110"]; + s5 -> s1 [label="111"]; + s5 -> s1 [label="112"]; + s5 -> s1 [label="113"]; + s5 -> s1 [label="114"]; + s5 -> s1 [label="115"]; + s5 -> s1 [label="116"]; + s5 -> s1 [label="117"]; + s5 -> s1 [label="118"]; + s5 -> s1 [label="119"]; + s5 -> s1 [label="120"]; + s5 -> s1 [label="121"]; + s5 -> s1 [label="122"]; + s5 -> s1 [label="123"]; + s5 -> s1 [label="124"]; + s5 -> s1 [label="125"]; + s5 -> s1 [label="126"]; + s5 -> s1 [label="127"]; + s5 -> s2 [label="-128"]; + s5 -> s2 [label="-127"]; + s5 -> s2 [label="-126"]; + s5 -> s2 [label="-125"]; + s5 -> s2 [label="-124"]; + s5 -> s2 [label="-123"]; + s5 -> s2 [label="-122"]; + s5 -> s2 [label="-121"]; + s5 -> s2 [label="-120"]; + s5 -> s2 [label="-119"]; + s5 -> s2 [label="-118"]; + s5 -> s2 [label="-117"]; + s5 -> s2 [label="-116"]; + s5 -> s2 [label="-115"]; + s5 -> s2 [label="-114"]; + s5 -> s2 [label="-113"]; + s5 -> s2 [label="-112"]; + s5 -> s2 [label="-111"]; + s5 -> s2 [label="-110"]; + s5 -> s2 [label="-109"]; + s5 -> s2 [label="-108"]; + s5 -> s2 [label="-107"]; + s5 -> s2 [label="-106"]; + s5 -> s2 [label="-105"]; + s5 -> s2 [label="-104"]; + s5 -> s2 [label="-103"]; + s5 -> s2 [label="-102"]; + s5 -> s2 [label="-101"]; + s5 -> s2 [label="-100"]; + s5 -> s2 [label="-99"]; + s5 -> s2 [label="-98"]; + s5 -> s2 [label="-97"]; + s5 -> s1 [label="-96"]; + s5 -> s1 [label="-95"]; + s5 -> s1 [label="-94"]; + s5 -> s1 [label="-93"]; + s5 -> s1 [label="-92"]; + s5 -> s1 [label="-91"]; + s5 -> s1 [label="-90"]; + s5 -> s1 [label="-89"]; + s5 -> s1 [label="-88"]; + s5 -> s1 [label="-87"]; + s5 -> s1 [label="-86"]; + s5 -> s1 [label="-85"]; + s5 -> s1 [label="-84"]; + s5 -> s1 [label="-83"]; + s5 -> s1 [label="-82"]; + s5 -> s1 [label="-81"]; + s5 -> s1 [label="-80"]; + s5 -> s1 [label="-79"]; + s5 -> s1 [label="-78"]; + s5 -> s1 [label="-77"]; + s5 -> s1 [label="-76"]; + s5 -> s1 [label="-75"]; + s5 -> s1 [label="-74"]; + s5 -> s1 [label="-73"]; + s5 -> s1 [label="-72"]; + s5 -> s1 [label="-71"]; + s5 -> s1 [label="-70"]; + s5 -> s1 [label="-69"]; + s5 -> s1 [label="-68"]; + s5 -> s1 [label="-67"]; + s5 -> s1 [label="-66"]; + s5 -> s1 [label="-65"]; + s5 -> s1 [label="-64"]; + s5 -> s1 [label="-63"]; + s5 -> s1 [label="-62"]; + s5 -> s1 [label="-61"]; + s5 -> s1 [label="-60"]; + s5 -> s1 [label="-59"]; + s5 -> s1 [label="-58"]; + s5 -> s1 [label="-57"]; + s5 -> s1 [label="-56"]; + s5 -> s1 [label="-55"]; + s5 -> s1 [label="-54"]; + s5 -> s1 [label="-53"]; + s5 -> s1 [label="-52"]; + s5 -> s1 [label="-51"]; + s5 -> s1 [label="-50"]; + s5 -> s1 [label="-49"]; + s5 -> s1 [label="-48"]; + s5 -> s1 [label="-47"]; + s5 -> s1 [label="-46"]; + s5 -> s1 [label="-45"]; + s5 -> s1 [label="-44"]; + s5 -> s1 [label="-43"]; + s5 -> s1 [label="-42"]; + s5 -> s1 [label="-41"]; + s5 -> s1 [label="-40"]; + s5 -> s1 [label="-39"]; + s5 -> s1 [label="-38"]; + s5 -> s1 [label="-37"]; + s5 -> s1 [label="-36"]; + s5 -> s1 [label="-35"]; + s5 -> s1 [label="-34"]; + s5 -> s1 [label="-33"]; + s5 -> s1 [label="-32"]; + s5 -> s1 [label="-31"]; + s5 -> s1 [label="-30"]; + s5 -> s1 [label="-29"]; + s5 -> s1 [label="-28"]; + s5 -> s1 [label="-27"]; + s5 -> s1 [label="-26"]; + s5 -> s1 [label="-25"]; + s5 -> s1 [label="-24"]; + s5 -> s1 [label="-23"]; + s5 -> s1 [label="-22"]; + s5 -> s1 [label="-21"]; + s5 -> s1 [label="-20"]; + s5 -> s1 [label="-19"]; + s5 -> s1 [label="-18"]; + s5 -> s1 [label="-17"]; + s5 -> s1 [label="-16"]; + s5 -> s1 [label="-15"]; + s5 -> s1 [label="-14"]; + s5 -> s1 [label="-13"]; + s5 -> s1 [label="-12"]; + s5 -> s1 [label="-11"]; + s5 -> s1 [label="-10"]; + s5 -> s1 [label="-9"]; + s5 -> s1 [label="-8"]; + s5 -> s1 [label="-7"]; + s5 -> s1 [label="-6"]; + s5 -> s1 [label="-5"]; + s5 -> s1 [label="-4"]; + s5 -> s1 [label="-3"]; + s5 -> s1 [label="-2"]; + s5 -> s1 [label="-1"]; + s6 -> s1 [label="0"]; + s6 -> s1 [label="1"]; + s6 -> s1 [label="2"]; + s6 -> s1 [label="3"]; + s6 -> s1 [label="4"]; + s6 -> s1 [label="5"]; + s6 -> s1 [label="6"]; + s6 -> s1 [label="7"]; + s6 -> s1 [label="8"]; + s6 -> s1 [label="9"]; + s6 -> s1 [label="10"]; + s6 -> s1 [label="11"]; + s6 -> s1 [label="12"]; + s6 -> s1 [label="13"]; + s6 -> s1 [label="14"]; + s6 -> s1 [label="15"]; + s6 -> s1 [label="16"]; + s6 -> s1 [label="17"]; + s6 -> s1 [label="18"]; + s6 -> s1 [label="19"]; + s6 -> s1 [label="20"]; + s6 -> s1 [label="21"]; + s6 -> s1 [label="22"]; + s6 -> s1 [label="23"]; + s6 -> s1 [label="24"]; + s6 -> s1 [label="25"]; + s6 -> s1 [label="26"]; + s6 -> s1 [label="27"]; + s6 -> s1 [label="28"]; + s6 -> s1 [label="29"]; + s6 -> s1 [label="30"]; + s6 -> s1 [label="31"]; + s6 -> s1 [label="32"]; + s6 -> s1 [label="33"]; + s6 -> s1 [label="34"]; + s6 -> s1 [label="35"]; + s6 -> s1 [label="36"]; + s6 -> s1 [label="37"]; + s6 -> s1 [label="38"]; + s6 -> s1 [label="39"]; + s6 -> s1 [label="40"]; + s6 -> s1 [label="41"]; + s6 -> s1 [label="42"]; + s6 -> s1 [label="43"]; + s6 -> s1 [label="44"]; + s6 -> s1 [label="45"]; + s6 -> s1 [label="46"]; + s6 -> s1 [label="47"]; + s6 -> s1 [label="48"]; + s6 -> s1 [label="49"]; + s6 -> s1 [label="50"]; + s6 -> s1 [label="51"]; + s6 -> s1 [label="52"]; + s6 -> s1 [label="53"]; + s6 -> s1 [label="54"]; + s6 -> s1 [label="55"]; + s6 -> s1 [label="56"]; + s6 -> s1 [label="57"]; + s6 -> s1 [label="58"]; + s6 -> s1 [label="59"]; + s6 -> s1 [label="60"]; + s6 -> s1 [label="61"]; + s6 -> s1 [label="62"]; + s6 -> s1 [label="63"]; + s6 -> s1 [label="64"]; + s6 -> s1 [label="65"]; + s6 -> s1 [label="66"]; + s6 -> s1 [label="67"]; + s6 -> s1 [label="68"]; + s6 -> s1 [label="69"]; + s6 -> s1 [label="70"]; + s6 -> s1 [label="71"]; + s6 -> s1 [label="72"]; + s6 -> s1 [label="73"]; + s6 -> s1 [label="74"]; + s6 -> s1 [label="75"]; + s6 -> s1 [label="76"]; + s6 -> s1 [label="77"]; + s6 -> s1 [label="78"]; + s6 -> s1 [label="79"]; + s6 -> s1 [label="80"]; + s6 -> s1 [label="81"]; + s6 -> s1 [label="82"]; + s6 -> s1 [label="83"]; + s6 -> s1 [label="84"]; + s6 -> s1 [label="85"]; + s6 -> s1 [label="86"]; + s6 -> s1 [label="87"]; + s6 -> s1 [label="88"]; + s6 -> s1 [label="89"]; + s6 -> s1 [label="90"]; + s6 -> s1 [label="91"]; + s6 -> s1 [label="92"]; + s6 -> s1 [label="93"]; + s6 -> s1 [label="94"]; + s6 -> s1 [label="95"]; + s6 -> s1 [label="96"]; + s6 -> s1 [label="97"]; + s6 -> s1 [label="98"]; + s6 -> s1 [label="99"]; + s6 -> s1 [label="100"]; + s6 -> s1 [label="101"]; + s6 -> s1 [label="102"]; + s6 -> s1 [label="103"]; + s6 -> s1 [label="104"]; + s6 -> s1 [label="105"]; + s6 -> s1 [label="106"]; + s6 -> s1 [label="107"]; + s6 -> s1 [label="108"]; + s6 -> s1 [label="109"]; + s6 -> s1 [label="110"]; + s6 -> s1 [label="111"]; + s6 -> s1 [label="112"]; + s6 -> s1 [label="113"]; + s6 -> s1 [label="114"]; + s6 -> s1 [label="115"]; + s6 -> s1 [label="116"]; + s6 -> s1 [label="117"]; + s6 -> s1 [label="118"]; + s6 -> s1 [label="119"]; + s6 -> s1 [label="120"]; + s6 -> s1 [label="121"]; + s6 -> s1 [label="122"]; + s6 -> s1 [label="123"]; + s6 -> s1 [label="124"]; + s6 -> s1 [label="125"]; + s6 -> s1 [label="126"]; + s6 -> s1 [label="127"]; + s6 -> s1 [label="-128"]; + s6 -> s1 [label="-127"]; + s6 -> s1 [label="-126"]; + s6 -> s1 [label="-125"]; + s6 -> s1 [label="-124"]; + s6 -> s1 [label="-123"]; + s6 -> s1 [label="-122"]; + s6 -> s1 [label="-121"]; + s6 -> s1 [label="-120"]; + s6 -> s1 [label="-119"]; + s6 -> s1 [label="-118"]; + s6 -> s1 [label="-117"]; + s6 -> s1 [label="-116"]; + s6 -> s1 [label="-115"]; + s6 -> s1 [label="-114"]; + s6 -> s1 [label="-113"]; + s6 -> s4 [label="-112"]; + s6 -> s4 [label="-111"]; + s6 -> s4 [label="-110"]; + s6 -> s4 [label="-109"]; + s6 -> s4 [label="-108"]; + s6 -> s4 [label="-107"]; + s6 -> s4 [label="-106"]; + s6 -> s4 [label="-105"]; + s6 -> s4 [label="-104"]; + s6 -> s4 [label="-103"]; + s6 -> s4 [label="-102"]; + s6 -> s4 [label="-101"]; + s6 -> s4 [label="-100"]; + s6 -> s4 [label="-99"]; + s6 -> s4 [label="-98"]; + s6 -> s4 [label="-97"]; + s6 -> s4 [label="-96"]; + s6 -> s4 [label="-95"]; + s6 -> s4 [label="-94"]; + s6 -> s4 [label="-93"]; + s6 -> s4 [label="-92"]; + s6 -> s4 [label="-91"]; + s6 -> s4 [label="-90"]; + s6 -> s4 [label="-89"]; + s6 -> s4 [label="-88"]; + s6 -> s4 [label="-87"]; + s6 -> s4 [label="-86"]; + s6 -> s4 [label="-85"]; + s6 -> s4 [label="-84"]; + s6 -> s4 [label="-83"]; + s6 -> s4 [label="-82"]; + s6 -> s4 [label="-81"]; + s6 -> s4 [label="-80"]; + s6 -> s4 [label="-79"]; + s6 -> s4 [label="-78"]; + s6 -> s4 [label="-77"]; + s6 -> s4 [label="-76"]; + s6 -> s4 [label="-75"]; + s6 -> s4 [label="-74"]; + s6 -> s4 [label="-73"]; + s6 -> s4 [label="-72"]; + s6 -> s4 [label="-71"]; + s6 -> s4 [label="-70"]; + s6 -> s4 [label="-69"]; + s6 -> s4 [label="-68"]; + s6 -> s4 [label="-67"]; + s6 -> s4 [label="-66"]; + s6 -> s4 [label="-65"]; + s6 -> s1 [label="-64"]; + s6 -> s1 [label="-63"]; + s6 -> s1 [label="-62"]; + s6 -> s1 [label="-61"]; + s6 -> s1 [label="-60"]; + s6 -> s1 [label="-59"]; + s6 -> s1 [label="-58"]; + s6 -> s1 [label="-57"]; + s6 -> s1 [label="-56"]; + s6 -> s1 [label="-55"]; + s6 -> s1 [label="-54"]; + s6 -> s1 [label="-53"]; + s6 -> s1 [label="-52"]; + s6 -> s1 [label="-51"]; + s6 -> s1 [label="-50"]; + s6 -> s1 [label="-49"]; + s6 -> s1 [label="-48"]; + s6 -> s1 [label="-47"]; + s6 -> s1 [label="-46"]; + s6 -> s1 [label="-45"]; + s6 -> s1 [label="-44"]; + s6 -> s1 [label="-43"]; + s6 -> s1 [label="-42"]; + s6 -> s1 [label="-41"]; + s6 -> s1 [label="-40"]; + s6 -> s1 [label="-39"]; + s6 -> s1 [label="-38"]; + s6 -> s1 [label="-37"]; + s6 -> s1 [label="-36"]; + s6 -> s1 [label="-35"]; + s6 -> s1 [label="-34"]; + s6 -> s1 [label="-33"]; + s6 -> s1 [label="-32"]; + s6 -> s1 [label="-31"]; + s6 -> s1 [label="-30"]; + s6 -> s1 [label="-29"]; + s6 -> s1 [label="-28"]; + s6 -> s1 [label="-27"]; + s6 -> s1 [label="-26"]; + s6 -> s1 [label="-25"]; + s6 -> s1 [label="-24"]; + s6 -> s1 [label="-23"]; + s6 -> s1 [label="-22"]; + s6 -> s1 [label="-21"]; + s6 -> s1 [label="-20"]; + s6 -> s1 [label="-19"]; + s6 -> s1 [label="-18"]; + s6 -> s1 [label="-17"]; + s6 -> s1 [label="-16"]; + s6 -> s1 [label="-15"]; + s6 -> s1 [label="-14"]; + s6 -> s1 [label="-13"]; + s6 -> s1 [label="-12"]; + s6 -> s1 [label="-11"]; + s6 -> s1 [label="-10"]; + s6 -> s1 [label="-9"]; + s6 -> s1 [label="-8"]; + s6 -> s1 [label="-7"]; + s6 -> s1 [label="-6"]; + s6 -> s1 [label="-5"]; + s6 -> s1 [label="-4"]; + s6 -> s1 [label="-3"]; + s6 -> s1 [label="-2"]; + s6 -> s1 [label="-1"]; + s7 -> s1 [label="0"]; + s7 -> s1 [label="1"]; + s7 -> s1 [label="2"]; + s7 -> s1 [label="3"]; + s7 -> s1 [label="4"]; + s7 -> s1 [label="5"]; + s7 -> s1 [label="6"]; + s7 -> s1 [label="7"]; + s7 -> s1 [label="8"]; + s7 -> s1 [label="9"]; + s7 -> s1 [label="10"]; + s7 -> s1 [label="11"]; + s7 -> s1 [label="12"]; + s7 -> s1 [label="13"]; + s7 -> s1 [label="14"]; + s7 -> s1 [label="15"]; + s7 -> s1 [label="16"]; + s7 -> s1 [label="17"]; + s7 -> s1 [label="18"]; + s7 -> s1 [label="19"]; + s7 -> s1 [label="20"]; + s7 -> s1 [label="21"]; + s7 -> s1 [label="22"]; + s7 -> s1 [label="23"]; + s7 -> s1 [label="24"]; + s7 -> s1 [label="25"]; + s7 -> s1 [label="26"]; + s7 -> s1 [label="27"]; + s7 -> s1 [label="28"]; + s7 -> s1 [label="29"]; + s7 -> s1 [label="30"]; + s7 -> s1 [label="31"]; + s7 -> s1 [label="32"]; + s7 -> s1 [label="33"]; + s7 -> s1 [label="34"]; + s7 -> s1 [label="35"]; + s7 -> s1 [label="36"]; + s7 -> s1 [label="37"]; + s7 -> s1 [label="38"]; + s7 -> s1 [label="39"]; + s7 -> s1 [label="40"]; + s7 -> s1 [label="41"]; + s7 -> s1 [label="42"]; + s7 -> s1 [label="43"]; + s7 -> s1 [label="44"]; + s7 -> s1 [label="45"]; + s7 -> s1 [label="46"]; + s7 -> s1 [label="47"]; + s7 -> s1 [label="48"]; + s7 -> s1 [label="49"]; + s7 -> s1 [label="50"]; + s7 -> s1 [label="51"]; + s7 -> s1 [label="52"]; + s7 -> s1 [label="53"]; + s7 -> s1 [label="54"]; + s7 -> s1 [label="55"]; + s7 -> s1 [label="56"]; + s7 -> s1 [label="57"]; + s7 -> s1 [label="58"]; + s7 -> s1 [label="59"]; + s7 -> s1 [label="60"]; + s7 -> s1 [label="61"]; + s7 -> s1 [label="62"]; + s7 -> s1 [label="63"]; + s7 -> s1 [label="64"]; + s7 -> s1 [label="65"]; + s7 -> s1 [label="66"]; + s7 -> s1 [label="67"]; + s7 -> s1 [label="68"]; + s7 -> s1 [label="69"]; + s7 -> s1 [label="70"]; + s7 -> s1 [label="71"]; + s7 -> s1 [label="72"]; + s7 -> s1 [label="73"]; + s7 -> s1 [label="74"]; + s7 -> s1 [label="75"]; + s7 -> s1 [label="76"]; + s7 -> s1 [label="77"]; + s7 -> s1 [label="78"]; + s7 -> s1 [label="79"]; + s7 -> s1 [label="80"]; + s7 -> s1 [label="81"]; + s7 -> s1 [label="82"]; + s7 -> s1 [label="83"]; + s7 -> s1 [label="84"]; + s7 -> s1 [label="85"]; + s7 -> s1 [label="86"]; + s7 -> s1 [label="87"]; + s7 -> s1 [label="88"]; + s7 -> s1 [label="89"]; + s7 -> s1 [label="90"]; + s7 -> s1 [label="91"]; + s7 -> s1 [label="92"]; + s7 -> s1 [label="93"]; + s7 -> s1 [label="94"]; + s7 -> s1 [label="95"]; + s7 -> s1 [label="96"]; + s7 -> s1 [label="97"]; + s7 -> s1 [label="98"]; + s7 -> s1 [label="99"]; + s7 -> s1 [label="100"]; + s7 -> s1 [label="101"]; + s7 -> s1 [label="102"]; + s7 -> s1 [label="103"]; + s7 -> s1 [label="104"]; + s7 -> s1 [label="105"]; + s7 -> s1 [label="106"]; + s7 -> s1 [label="107"]; + s7 -> s1 [label="108"]; + s7 -> s1 [label="109"]; + s7 -> s1 [label="110"]; + s7 -> s1 [label="111"]; + s7 -> s1 [label="112"]; + s7 -> s1 [label="113"]; + s7 -> s1 [label="114"]; + s7 -> s1 [label="115"]; + s7 -> s1 [label="116"]; + s7 -> s1 [label="117"]; + s7 -> s1 [label="118"]; + s7 -> s1 [label="119"]; + s7 -> s1 [label="120"]; + s7 -> s1 [label="121"]; + s7 -> s1 [label="122"]; + s7 -> s1 [label="123"]; + s7 -> s1 [label="124"]; + s7 -> s1 [label="125"]; + s7 -> s1 [label="126"]; + s7 -> s1 [label="127"]; + s7 -> s4 [label="-128"]; + s7 -> s4 [label="-127"]; + s7 -> s4 [label="-126"]; + s7 -> s4 [label="-125"]; + s7 -> s4 [label="-124"]; + s7 -> s4 [label="-123"]; + s7 -> s4 [label="-122"]; + s7 -> s4 [label="-121"]; + s7 -> s4 [label="-120"]; + s7 -> s4 [label="-119"]; + s7 -> s4 [label="-118"]; + s7 -> s4 [label="-117"]; + s7 -> s4 [label="-116"]; + s7 -> s4 [label="-115"]; + s7 -> s4 [label="-114"]; + s7 -> s4 [label="-113"]; + s7 -> s1 [label="-112"]; + s7 -> s1 [label="-111"]; + s7 -> s1 [label="-110"]; + s7 -> s1 [label="-109"]; + s7 -> s1 [label="-108"]; + s7 -> s1 [label="-107"]; + s7 -> s1 [label="-106"]; + s7 -> s1 [label="-105"]; + s7 -> s1 [label="-104"]; + s7 -> s1 [label="-103"]; + s7 -> s1 [label="-102"]; + s7 -> s1 [label="-101"]; + s7 -> s1 [label="-100"]; + s7 -> s1 [label="-99"]; + s7 -> s1 [label="-98"]; + s7 -> s1 [label="-97"]; + s7 -> s1 [label="-96"]; + s7 -> s1 [label="-95"]; + s7 -> s1 [label="-94"]; + s7 -> s1 [label="-93"]; + s7 -> s1 [label="-92"]; + s7 -> s1 [label="-91"]; + s7 -> s1 [label="-90"]; + s7 -> s1 [label="-89"]; + s7 -> s1 [label="-88"]; + s7 -> s1 [label="-87"]; + s7 -> s1 [label="-86"]; + s7 -> s1 [label="-85"]; + s7 -> s1 [label="-84"]; + s7 -> s1 [label="-83"]; + s7 -> s1 [label="-82"]; + s7 -> s1 [label="-81"]; + s7 -> s1 [label="-80"]; + s7 -> s1 [label="-79"]; + s7 -> s1 [label="-78"]; + s7 -> s1 [label="-77"]; + s7 -> s1 [label="-76"]; + s7 -> s1 [label="-75"]; + s7 -> s1 [label="-74"]; + s7 -> s1 [label="-73"]; + s7 -> s1 [label="-72"]; + s7 -> s1 [label="-71"]; + s7 -> s1 [label="-70"]; + s7 -> s1 [label="-69"]; + s7 -> s1 [label="-68"]; + s7 -> s1 [label="-67"]; + s7 -> s1 [label="-66"]; + s7 -> s1 [label="-65"]; + s7 -> s1 [label="-64"]; + s7 -> s1 [label="-63"]; + s7 -> s1 [label="-62"]; + s7 -> s1 [label="-61"]; + s7 -> s1 [label="-60"]; + s7 -> s1 [label="-59"]; + s7 -> s1 [label="-58"]; + s7 -> s1 [label="-57"]; + s7 -> s1 [label="-56"]; + s7 -> s1 [label="-55"]; + s7 -> s1 [label="-54"]; + s7 -> s1 [label="-53"]; + s7 -> s1 [label="-52"]; + s7 -> s1 [label="-51"]; + s7 -> s1 [label="-50"]; + s7 -> s1 [label="-49"]; + s7 -> s1 [label="-48"]; + s7 -> s1 [label="-47"]; + s7 -> s1 [label="-46"]; + s7 -> s1 [label="-45"]; + s7 -> s1 [label="-44"]; + s7 -> s1 [label="-43"]; + s7 -> s1 [label="-42"]; + s7 -> s1 [label="-41"]; + s7 -> s1 [label="-40"]; + s7 -> s1 [label="-39"]; + s7 -> s1 [label="-38"]; + s7 -> s1 [label="-37"]; + s7 -> s1 [label="-36"]; + s7 -> s1 [label="-35"]; + s7 -> s1 [label="-34"]; + s7 -> s1 [label="-33"]; + s7 -> s1 [label="-32"]; + s7 -> s1 [label="-31"]; + s7 -> s1 [label="-30"]; + s7 -> s1 [label="-29"]; + s7 -> s1 [label="-28"]; + s7 -> s1 [label="-27"]; + s7 -> s1 [label="-26"]; + s7 -> s1 [label="-25"]; + s7 -> s1 [label="-24"]; + s7 -> s1 [label="-23"]; + s7 -> s1 [label="-22"]; + s7 -> s1 [label="-21"]; + s7 -> s1 [label="-20"]; + s7 -> s1 [label="-19"]; + s7 -> s1 [label="-18"]; + s7 -> s1 [label="-17"]; + s7 -> s1 [label="-16"]; + s7 -> s1 [label="-15"]; + s7 -> s1 [label="-14"]; + s7 -> s1 [label="-13"]; + s7 -> s1 [label="-12"]; + s7 -> s1 [label="-11"]; + s7 -> s1 [label="-10"]; + s7 -> s1 [label="-9"]; + s7 -> s1 [label="-8"]; + s7 -> s1 [label="-7"]; + s7 -> s1 [label="-6"]; + s7 -> s1 [label="-5"]; + s7 -> s1 [label="-4"]; + s7 -> s1 [label="-3"]; + s7 -> s1 [label="-2"]; + s7 -> s1 [label="-1"]; + s8 -> s1 [label="0"]; + s8 -> s1 [label="1"]; + s8 -> s1 [label="2"]; + s8 -> s1 [label="3"]; + s8 -> s1 [label="4"]; + s8 -> s1 [label="5"]; + s8 -> s1 [label="6"]; + s8 -> s1 [label="7"]; + s8 -> s1 [label="8"]; + s8 -> s1 [label="9"]; + s8 -> s1 [label="10"]; + s8 -> s1 [label="11"]; + s8 -> s1 [label="12"]; + s8 -> s1 [label="13"]; + s8 -> s1 [label="14"]; + s8 -> s1 [label="15"]; + s8 -> s1 [label="16"]; + s8 -> s1 [label="17"]; + s8 -> s1 [label="18"]; + s8 -> s1 [label="19"]; + s8 -> s1 [label="20"]; + s8 -> s1 [label="21"]; + s8 -> s1 [label="22"]; + s8 -> s1 [label="23"]; + s8 -> s1 [label="24"]; + s8 -> s1 [label="25"]; + s8 -> s1 [label="26"]; + s8 -> s1 [label="27"]; + s8 -> s1 [label="28"]; + s8 -> s1 [label="29"]; + s8 -> s1 [label="30"]; + s8 -> s1 [label="31"]; + s8 -> s1 [label="32"]; + s8 -> s1 [label="33"]; + s8 -> s1 [label="34"]; + s8 -> s1 [label="35"]; + s8 -> s1 [label="36"]; + s8 -> s1 [label="37"]; + s8 -> s1 [label="38"]; + s8 -> s1 [label="39"]; + s8 -> s1 [label="40"]; + s8 -> s1 [label="41"]; + s8 -> s1 [label="42"]; + s8 -> s1 [label="43"]; + s8 -> s1 [label="44"]; + s8 -> s1 [label="45"]; + s8 -> s1 [label="46"]; + s8 -> s1 [label="47"]; + s8 -> s1 [label="48"]; + s8 -> s1 [label="49"]; + s8 -> s1 [label="50"]; + s8 -> s1 [label="51"]; + s8 -> s1 [label="52"]; + s8 -> s1 [label="53"]; + s8 -> s1 [label="54"]; + s8 -> s1 [label="55"]; + s8 -> s1 [label="56"]; + s8 -> s1 [label="57"]; + s8 -> s1 [label="58"]; + s8 -> s1 [label="59"]; + s8 -> s1 [label="60"]; + s8 -> s1 [label="61"]; + s8 -> s1 [label="62"]; + s8 -> s1 [label="63"]; + s8 -> s1 [label="64"]; + s8 -> s1 [label="65"]; + s8 -> s1 [label="66"]; + s8 -> s1 [label="67"]; + s8 -> s1 [label="68"]; + s8 -> s1 [label="69"]; + s8 -> s1 [label="70"]; + s8 -> s1 [label="71"]; + s8 -> s1 [label="72"]; + s8 -> s1 [label="73"]; + s8 -> s1 [label="74"]; + s8 -> s1 [label="75"]; + s8 -> s1 [label="76"]; + s8 -> s1 [label="77"]; + s8 -> s1 [label="78"]; + s8 -> s1 [label="79"]; + s8 -> s1 [label="80"]; + s8 -> s1 [label="81"]; + s8 -> s1 [label="82"]; + s8 -> s1 [label="83"]; + s8 -> s1 [label="84"]; + s8 -> s1 [label="85"]; + s8 -> s1 [label="86"]; + s8 -> s1 [label="87"]; + s8 -> s1 [label="88"]; + s8 -> s1 [label="89"]; + s8 -> s1 [label="90"]; + s8 -> s1 [label="91"]; + s8 -> s1 [label="92"]; + s8 -> s1 [label="93"]; + s8 -> s1 [label="94"]; + s8 -> s1 [label="95"]; + s8 -> s1 [label="96"]; + s8 -> s1 [label="97"]; + s8 -> s1 [label="98"]; + s8 -> s1 [label="99"]; + s8 -> s1 [label="100"]; + s8 -> s1 [label="101"]; + s8 -> s1 [label="102"]; + s8 -> s1 [label="103"]; + s8 -> s1 [label="104"]; + s8 -> s1 [label="105"]; + s8 -> s1 [label="106"]; + s8 -> s1 [label="107"]; + s8 -> s1 [label="108"]; + s8 -> s1 [label="109"]; + s8 -> s1 [label="110"]; + s8 -> s1 [label="111"]; + s8 -> s1 [label="112"]; + s8 -> s1 [label="113"]; + s8 -> s1 [label="114"]; + s8 -> s1 [label="115"]; + s8 -> s1 [label="116"]; + s8 -> s1 [label="117"]; + s8 -> s1 [label="118"]; + s8 -> s1 [label="119"]; + s8 -> s1 [label="120"]; + s8 -> s1 [label="121"]; + s8 -> s1 [label="122"]; + s8 -> s1 [label="123"]; + s8 -> s1 [label="124"]; + s8 -> s1 [label="125"]; + s8 -> s1 [label="126"]; + s8 -> s1 [label="127"]; + s8 -> s4 [label="-128"]; + s8 -> s4 [label="-127"]; + s8 -> s4 [label="-126"]; + s8 -> s4 [label="-125"]; + s8 -> s4 [label="-124"]; + s8 -> s4 [label="-123"]; + s8 -> s4 [label="-122"]; + s8 -> s4 [label="-121"]; + s8 -> s4 [label="-120"]; + s8 -> s4 [label="-119"]; + s8 -> s4 [label="-118"]; + s8 -> s4 [label="-117"]; + s8 -> s4 [label="-116"]; + s8 -> s4 [label="-115"]; + s8 -> s4 [label="-114"]; + s8 -> s4 [label="-113"]; + s8 -> s4 [label="-112"]; + s8 -> s4 [label="-111"]; + s8 -> s4 [label="-110"]; + s8 -> s4 [label="-109"]; + s8 -> s4 [label="-108"]; + s8 -> s4 [label="-107"]; + s8 -> s4 [label="-106"]; + s8 -> s4 [label="-105"]; + s8 -> s4 [label="-104"]; + s8 -> s4 [label="-103"]; + s8 -> s4 [label="-102"]; + s8 -> s4 [label="-101"]; + s8 -> s4 [label="-100"]; + s8 -> s4 [label="-99"]; + s8 -> s4 [label="-98"]; + s8 -> s4 [label="-97"]; + s8 -> s4 [label="-96"]; + s8 -> s4 [label="-95"]; + s8 -> s4 [label="-94"]; + s8 -> s4 [label="-93"]; + s8 -> s4 [label="-92"]; + s8 -> s4 [label="-91"]; + s8 -> s4 [label="-90"]; + s8 -> s4 [label="-89"]; + s8 -> s4 [label="-88"]; + s8 -> s4 [label="-87"]; + s8 -> s4 [label="-86"]; + s8 -> s4 [label="-85"]; + s8 -> s4 [label="-84"]; + s8 -> s4 [label="-83"]; + s8 -> s4 [label="-82"]; + s8 -> s4 [label="-81"]; + s8 -> s4 [label="-80"]; + s8 -> s4 [label="-79"]; + s8 -> s4 [label="-78"]; + s8 -> s4 [label="-77"]; + s8 -> s4 [label="-76"]; + s8 -> s4 [label="-75"]; + s8 -> s4 [label="-74"]; + s8 -> s4 [label="-73"]; + s8 -> s4 [label="-72"]; + s8 -> s4 [label="-71"]; + s8 -> s4 [label="-70"]; + s8 -> s4 [label="-69"]; + s8 -> s4 [label="-68"]; + s8 -> s4 [label="-67"]; + s8 -> s4 [label="-66"]; + s8 -> s4 [label="-65"]; + s8 -> s1 [label="-64"]; + s8 -> s1 [label="-63"]; + s8 -> s1 [label="-62"]; + s8 -> s1 [label="-61"]; + s8 -> s1 [label="-60"]; + s8 -> s1 [label="-59"]; + s8 -> s1 [label="-58"]; + s8 -> s1 [label="-57"]; + s8 -> s1 [label="-56"]; + s8 -> s1 [label="-55"]; + s8 -> s1 [label="-54"]; + s8 -> s1 [label="-53"]; + s8 -> s1 [label="-52"]; + s8 -> s1 [label="-51"]; + s8 -> s1 [label="-50"]; + s8 -> s1 [label="-49"]; + s8 -> s1 [label="-48"]; + s8 -> s1 [label="-47"]; + s8 -> s1 [label="-46"]; + s8 -> s1 [label="-45"]; + s8 -> s1 [label="-44"]; + s8 -> s1 [label="-43"]; + s8 -> s1 [label="-42"]; + s8 -> s1 [label="-41"]; + s8 -> s1 [label="-40"]; + s8 -> s1 [label="-39"]; + s8 -> s1 [label="-38"]; + s8 -> s1 [label="-37"]; + s8 -> s1 [label="-36"]; + s8 -> s1 [label="-35"]; + s8 -> s1 [label="-34"]; + s8 -> s1 [label="-33"]; + s8 -> s1 [label="-32"]; + s8 -> s1 [label="-31"]; + s8 -> s1 [label="-30"]; + s8 -> s1 [label="-29"]; + s8 -> s1 [label="-28"]; + s8 -> s1 [label="-27"]; + s8 -> s1 [label="-26"]; + s8 -> s1 [label="-25"]; + s8 -> s1 [label="-24"]; + s8 -> s1 [label="-23"]; + s8 -> s1 [label="-22"]; + s8 -> s1 [label="-21"]; + s8 -> s1 [label="-20"]; + s8 -> s1 [label="-19"]; + s8 -> s1 [label="-18"]; + s8 -> s1 [label="-17"]; + s8 -> s1 [label="-16"]; + s8 -> s1 [label="-15"]; + s8 -> s1 [label="-14"]; + s8 -> s1 [label="-13"]; + s8 -> s1 [label="-12"]; + s8 -> s1 [label="-11"]; + s8 -> s1 [label="-10"]; + s8 -> s1 [label="-9"]; + s8 -> s1 [label="-8"]; + s8 -> s1 [label="-7"]; + s8 -> s1 [label="-6"]; + s8 -> s1 [label="-5"]; + s8 -> s1 [label="-4"]; + s8 -> s1 [label="-3"]; + s8 -> s1 [label="-2"]; + s8 -> s1 [label="-1"]; + +__start0 [label="" shape="none" width="0" height="0"]; +__start0 -> s0; + +} diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..3b23c30 --- /dev/null +++ b/run.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +set -euxo pipefail + +mvn package + +time java -cp target/utf8learner-1.0.0-SNAPSHOT.jar nl.ou.utf8learner.Main diff --git a/src/main/java/nl/ou/utf8learner/Main.java b/src/main/java/nl/ou/utf8learner/Main.java new file mode 100644 index 0000000..4c3b69f --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/Main.java @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import java.io.IOException; +import java.util.Collection; +import org.checkerframework.checker.nullness.qual.Nullable; +import com.google.common.collect.Lists; +import de.learnlib.acex.AcexAnalyzers; +import de.learnlib.algorithm.LearningAlgorithm.DFALearner; +import de.learnlib.algorithm.ttt.dfa.TTTLearnerDFA; +import de.learnlib.oracle.EquivalenceOracle; +import de.learnlib.oracle.EquivalenceOracle.DFAEquivalenceOracle; +import de.learnlib.oracle.MembershipOracle.DFAMembershipOracle; +import de.learnlib.oracle.equivalence.DFAEQOracleChain; +import de.learnlib.oracle.equivalence.DFARandomWpMethodEQOracle; +import de.learnlib.oracle.equivalence.DFAWMethodEQOracle; +import de.learnlib.query.DefaultQuery; +import de.learnlib.query.Query; +import de.learnlib.util.Experiment.DFAExperiment; +import net.automatalib.alphabet.impl.AbstractAlphabet; +import net.automatalib.automaton.fsa.DFA; +import net.automatalib.serialization.dot.GraphDOT; +import net.automatalib.word.Word; + +public class Main { + public static void main(String[] args) throws IOException { + // Basic set-up. Normally one would use a Cache, but in this case + // the queries are much faster than the lookup. So no cache here. + ByteAlphabet alph = new ByteAlphabet(); + DFAMembershipOracle mqOracle = new UTF8MembershipOracle(); + + // We run three equivalence oracles in sequence: from fast to exhaustive. + // It is really only the W-method in the end which makes a lot of queries. + // But we want at least some guarantee of completeness :-). + DFAEquivalenceOracle fixedTestSuite = new DFASampleSetEQOracle<>(getTestSuite(), mqOracle); + DFAEquivalenceOracle randomWpMethod = new DFARandomWpMethodEQOracle<>(mqOracle, 0, 8, 5000); + DFAEquivalenceOracle wmethod = new DFAWMethodEQOracle<>(mqOracle, 1); + DFAEquivalenceOracle eqOracle = new DFAEQOracleChain<>(fixedTestSuite, randomWpMethod, wmethod); + + // TTT is always a good default + DFALearner learner = new TTTLearnerDFA<>(alph, mqOracle, AcexAnalyzers.BINARY_SEARCH_BWD); + DFAExperiment experiment = new DFAExperiment<>(learner, eqOracle, alph); + experiment.run(); + + // Output result! + System.err.println(""); + System.out.println(experiment.getRounds().getSummary()); + GraphDOT.write(experiment.getFinalHypothesis(), alph, System.out); + } + + // Implementing the membership oracle directly. We obtain a word of bytes, + // and assemble them into a byte array, which is then passed to the + // underlying implementation. + public static class UTF8MembershipOracle implements DFAMembershipOracle { + private long count = 0; + + @Override + public void processQuery(Query query) { + count++; + System.err.print("\r" + count); + + Word input = query.getInput(); + byte[] bytearray = new byte[input.length()]; + + int i = 0; + for (Byte b : input) { + bytearray[i] = b; + i++; + } + + boolean acc = UTF8SUL.accepts(bytearray); + query.answer(acc); + } + + @Override + public void processQueries(Collection> queries) { + for (Query query : queries) { + processQuery(query); + } + } + } + + // Alphabet of all 256 bytes. Implemented directly for efficiency. + public static class ByteAlphabet extends AbstractAlphabet { + @Override + public Byte getSymbol(int index) { + return (byte) index; + } + + @Override + public int getSymbolIndex(Byte symbol) { + if (symbol >= 0) { + return (int) symbol; + } else { + return (int) (symbol + 256); + } + } + + @Override + public boolean containsSymbol(Byte symbol) { + return true; + } + + @Override + public int size() { + return 256; + } + } + + // For some reason the SampleSetEQOracle of LearnLib was not easy to + // use with DFAs. So I made my own. + public static class DFASampleSetEQOracle implements EquivalenceOracle.DFAEquivalenceOracle { + final private Collection> testSuite; + final private DFAMembershipOracle truth; + + public DFASampleSetEQOracle(Collection> testSuite, DFAMembershipOracle truth) { + this.testSuite = testSuite; + this.truth = truth; + } + + @Override + public @Nullable DefaultQuery findCounterExample(DFA hypothesis, + Collection alphabet) { + for (Word test : testSuite) { + DefaultQuery query = new DefaultQuery<>(test); + truth.processQuery(query); + + if (hypothesis.accepts(test) != query.getOutput()) { + return query; + } + } + + return null; + } + } + + // This should cover all states, I think. + public static Collection> getTestSuite() { + return Lists.newArrayList( + Word.fromSymbols((byte) -15, (byte) 64), + Word.fromSymbols((byte) -62, (byte) -65), + Word.fromSymbols((byte) -33, (byte) 127), + Word.fromSymbols((byte) -32, (byte) 0), + Word.fromSymbols((byte) -12, (byte) -112), + Word.fromSymbols((byte) -18, (byte) -100, (byte) 0), + Word.fromSymbols((byte) -32, (byte) -70, (byte) -120), + Word.fromSymbols((byte) -19, (byte) -97, (byte) -1), + Word.fromSymbols((byte) -31, (byte) -128, (byte) -100), + Word.fromSymbols((byte) -31, (byte) -128, (byte) 127), + Word.fromSymbols((byte) -16, (byte) -112, (byte) -64), + Word.fromSymbols((byte) -18, (byte) -100, (byte) -100), + Word.fromSymbols((byte) -19, (byte) -97, (byte) -90), + Word.fromSymbols((byte) 0xEF, (byte) 0xBB, (byte) 0xBF), + Word.fromSymbols((byte) -16, (byte) -112, (byte) -128, (byte) -128), + Word.fromSymbols((byte) -12, (byte) -120, (byte) -65, (byte) -80), + Word.fromSymbols((byte) -15, (byte) -65, (byte) -65, (byte) -65), + Word.fromSymbols((byte) -15, (byte) -128, (byte) -128, (byte) -128)); + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SUL.java b/src/main/java/nl/ou/utf8learner/UTF8SUL.java new file mode 100644 index 0000000..6a7022f --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SUL.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import java.nio.ByteBuffer; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CodingErrorAction; +import java.nio.charset.CharacterCodingException; + +public class UTF8SUL { + public static boolean accepts(byte[] data) { + CharsetDecoder decoder = Charset.forName("UTF-8").newDecoder(); + decoder.onMalformedInput(CodingErrorAction.REPORT); + decoder.onUnmappableCharacter(CodingErrorAction.REPORT); + + try { + decoder.decode(ByteBuffer.wrap(data)); + return true; + } catch (CharacterCodingException e) { + return false; + } + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SULApache.java b/src/main/java/nl/ou/utf8learner/UTF8SULApache.java new file mode 100644 index 0000000..17bbf84 --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SULApache.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import java.util.Arrays; +import org.apache.commons.codec.binary.StringUtils; + +public class UTF8SULApache { + public static boolean accepts(byte[] data) { + try { + String s = StringUtils.newStringUtf8(data); + return Arrays.equals(data, StringUtils.getBytesUtf8(s)); + } catch (Exception e) { + return false; + } + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SULGuava.java b/src/main/java/nl/ou/utf8learner/UTF8SULGuava.java new file mode 100644 index 0000000..b78cea1 --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SULGuava.java @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import com.google.common.base.Utf8; + +public class UTF8SULGuava { + public static boolean accepts(byte[] data) { + return Utf8.isWellFormed(data); + } +} diff --git a/src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java b/src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java new file mode 100644 index 0000000..59c89ef --- /dev/null +++ b/src/main/java/nl/ou/utf8learner/UTF8SULICU4J.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2025 Joshua Moerman, Open Universiteit + * SPDX-License-Identifier: EUPL-1.2 + */ + +package nl.ou.utf8learner; + +import com.ibm.icu.text.CharsetDetector; +import com.ibm.icu.text.CharsetMatch; + +public class UTF8SULICU4J { + public static boolean accepts(byte[] data) { + // The CharsetDetector is not a good validator, it accepts a certain + // amount of errors. And it doesn't always report short strings as + // valid UTF-8. + CharsetDetector detector = new CharsetDetector(); + detector.setDeclaredEncoding("UTF-8"); + detector.setText(data); + + CharsetMatch[] matches = detector.detectAll(); + for (CharsetMatch match : matches) { + // The confidence can be either 15, 25, 80 or 100. + if ("UTF-8".equalsIgnoreCase(match.getName()) && match.getConfidence() >= 100) { + return true; + } + } + + return false; + } +}