From: Tara L Andrews Date: Mon, 3 Oct 2011 15:39:32 +0000 (+0200) Subject: start documenting and testing X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2Fstemmatology.git;a=commitdiff_plain;h=331c2dbfdaef35bbdef9a529b5b6187d74242c5c start documenting and testing --- diff --git a/META.yml b/META.yml new file mode 100644 index 0000000..18a6c3b --- /dev/null +++ b/META.yml @@ -0,0 +1,41 @@ +--- +abstract: ~ +author: + - 'Tara L Andrews ' +build_requires: + ExtUtils::MakeMaker: 6.42 +configure_requires: + ExtUtils::MakeMaker: 6.42 +distribution_type: module +generated_by: 'Module::Install version 0.91' +license: perl +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: 1.4 +module_name: Text::Tradition +name: Text-Tradition +no_index: + directory: + - inc + - t +requires: + Algorithm::Diff: 0 + Bio::Phylo::IO: 0 + File::chdir: 0 + Graph: 0 + Graph::Convert: 0 + Graph::Easy: 0 + Graph::Reader::Dot: 0 + IPC::Run: 0 + Module::Load: 0 + Moose: 0 + Moose::Util::TypeConstraints: 0 + MooseX::NonMoose: 0 + Text::CSV::Simple: 0 + Text::CSV_XS: 0 + XML::LibXML: 0 + XML::LibXML::XPathContext: 0 + perl: 5.010 +resources: + license: http://dev.perl.org/licenses/ +version: undef diff --git a/Makefile.PL b/Makefile.PL index bf5e1d4..3218b99 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,11 +1,10 @@ #!/usr/bin/env perl -use 5.010; use inc::Module::Install; author( 'Tara L Andrews ' ); license( 'perl' ); -all_from( 'lib/Text/Tradition' ); -requires( 'perl' => '5.010' ); +perl_version( '5.012' ); +all_from( 'lib/Text/Tradition.pm' ); requires( 'Algorithm::Diff' ); requires( 'Bio::Phylo::IO' ); requires( 'File::chdir' ); diff --git a/lib/Text/Tradition.pm b/lib/Text/Tradition.pm index 5fa89b7..a978e9e 100644 --- a/lib/Text/Tradition.pm +++ b/lib/Text/Tradition.pm @@ -5,6 +5,9 @@ use Moose; use Text::Tradition::Collation; use Text::Tradition::Witness; +use vars qw( $VERSION ); +$VERSION = "0.1"; + has 'collation' => ( is => 'ro', isa => 'Text::Tradition::Collation', @@ -30,10 +33,141 @@ has 'name' => ( around 'add_witness' => sub { my $orig = shift; my $self = shift; + # TODO allow add of a Witness object? my $new_wit = Text::Tradition::Witness->new( @_ ); $self->$orig( $new_wit ); return $new_wit; }; + +=head1 NAME + +Text::Tradition - a software model for a set of collated texts + +=head1 SYNOPSIS + + use Text::Tradition; + my $t = Text::Tradition->new( + 'name' => 'this is a text', + 'input' => 'TEI', + 'file' => '/path/to/tei_parallel_seg_file.xml' ); + + my @text_wits = $t->witnesses(); + my $manuscript_a = $t->witness( 'A' ); + my $new_ms = $t->add_witness( 'sigil' => 'B' ); + + my $text_path_svg = $t->collation->as_svg(); + ## See Text::Tradition::Collation for more on text collation itself + +=head1 DESCRIPTION + +Text::Tradition is a library for representation and analysis of collated +texts, particularly medieval ones. A 'tradition' refers to the aggregation +of surviving versions of a text, generally preserved in multiple +manuscripts (or 'witnesses'). A Tradition object thus has one more more +Witnesses, as well as a Collation that represents the unity of all versions +of the text. + +=head1 METHODS + +=head2 new + +Creates and returns a new text tradition object. The following options are +accepted. + +General options: + +=over 4 + +=item B - The name of the text. + +=back + +Initialization based on a collation file: + +=over 4 + +=item B - The input format of the collation file. Can be one of the +following: + +=over 4 + +=item * Self - a GraphML format produced by this module + +=item * CollateX - a GraphML format produced by CollateX + +=item * CTE - a TEI XML format produced by Classical Text Editor + +=item * KUL - a specific CSV format for variants, not documented here + +=item * TEI - a TEI parallel segmentation format file + +=item * Tabular - a comma- or tab-separated collation. Takes an additional +option, 'sep_char', which defaults to the tab character. + +=back + +=item B - The name of the file that contains the data. One of 'file' +or 'string' should be specified. + +=item B - A text string that contains the data. One of 'file' or +'string' should be specified. + +=item B - The name of a text file that contains the base text, to be +used with input formats that require it (currently only KUL). + +=back + +Initialization based on a list of witnesses [NOT YET IMPLEMENTED]: + +=over 4 + +=item B - A reference to an array of Text::Tradition::Witness +objects that carry the text to be collated. + +=item B - A reference to a collation program that will accept +Witness objects. + +=back + +=head2 B + +Return the Text::Tradition::Witness objects associated with this tradition, +as an array. + +=head2 B( %opts ) + +Instantiate a new witness with the given options (see documentation for +Text::Tradition::Witness) and add it to the tradition. + +=begin testing + +use_ok( 'Text::Tradition', "can use module" ); + +my $t = Text::Tradition->new( 'name' => 'empty' ); +is( ref( $t ), 'Text::Tradition', "initialized an empty Tradition object" ); +is( $t->name, 'empty', "object has the right name" ); +is( scalar $t->witnesses, 0, "object has no witnesses" ); + +my $simple = 't/data/simple.txt'; +my $s = Text::Tradition->new( + 'name' => 'inline', + 'input' => 'Tabular', + 'file' => $simple, + ); +is( ref( $s ), 'Text::Tradition', "initialized a Tradition object" ); +is( $s->name, 'inline', "object has the right name" ); +is( scalar $s->witnesses, 3, "object has three witnesses" ); + +my $w = $s->add_witness( 'sigil' => 'D' ); +is( ref( $w ), 'Text::Tradition::Witness', "new witness created" ); +is( $w->sigil, 'D', "witness has correct sigil" ); +is( scalar $s->witnesses, 4, "object now has four witnesses" ); + +# TODO test initialization by witness list when we have it + +=end testing + +=cut sub BUILD { @@ -67,13 +201,10 @@ sub BUILD { $self->_save_collation( $collation ); # Call the appropriate parser on the given data - my @format_standalone = qw/ Self CollateX CSV CTE TEI Tabular /; + my @format_standalone = qw/ Self CollateX CTE TEI Tabular /; my @format_basetext = qw/ KUL /; my $use_base; my $format = $init_args->{'input'}; - unless( $format ) { - warn "No data given to create a collation; will initialize an empty one"; - } if( $format && !( grep { $_ eq $format } @format_standalone ) && !( grep { $_ eq $format } @format_basetext ) ) { warn "Unrecognized input format $format; not parsing"; @@ -100,6 +231,32 @@ sub BUILD { } } +=head2 B( $sigil ) + +Returns the Text::Tradition::Witness object whose sigil is $sigil, or undef +if there is no such object within the tradition. + +=begin testing + +use Text::Tradition; + +my $simple = 't/data/simple.txt'; +my $s = Text::Tradition->new( + 'name' => 'inline', + 'input' => 'Tabular', + 'file' => $simple, + ); +my $wit_a = $s->witness('A'); +is( ref( $wit_a ), 'Text::Tradition::Witness', "Found a witness A" ); +if( $wit_a ) { + is( $wit_a->sigil, 'A', "Witness A has the right sigil" ); +} +is( $s->witness('X'), undef, "There is no witness X" ); + +=end testing + +=cut + sub witness { my( $self, $sigil ) = @_; my $requested_wit; @@ -114,24 +271,24 @@ sub witness { return $requested_wit; } - - -# The user will usually be instantiating a Tradition object, and -# examining its collation. The information about the tradition can -# come via several routes: -# - graphML from CollateX or elsewhere, standalone -# - TEI parallel segmentation -# - Leuven-style spreadsheet of variants, converted to CSV, plus base text -# - apparatus pulled from CTE, plus base text -# From this we should be able to get basic witness information. -# -# Alternatively the user can just give us the uncollated texts. Then -# instead of passing a collation, s/he is passing a set of witnesses -# from which we will generate a collation. Those witnesses can be in -# plaintext or in TEI with certain constraints adopted. - -# So the constructor for a tradition needs to take one of these infosets, -# and construct the collation and the witness objects. - no Moose; __PACKAGE__->meta->make_immutable; + + +=head1 BUGS / TODO + +=over + +=item * Allow tradition to be initialized via passing to a collator. + +=back + +=head1 LICENSE + +This package is free software and is provided "as is" without express +or implied warranty. You can redistribute it and/or modify it under +the same terms as Perl itself. + +=head1 AUTHOR + +Tara L Andrews Eaurum@cpan.orgE diff --git a/t/01app.t b/t/01app.t index 9f512b4..f626a2d 100644 --- a/t/01app.t +++ b/t/01app.t @@ -5,10 +5,14 @@ use lib 'lib'; use Test::More; use Text::Tradition; +binmode STDOUT, ":utf8"; +binmode STDERR, ":utf8"; +eval { no warnings; binmode $DB::OUT, ":utf8"; }; + BEGIN { use_ok 'Text::Tradition' } # A simple test, just to make sure we can parse a graph. -my $datafile = 't/data/florilegium_graphml.xml'; +my $datafile = 't/data/florilegium_tei_ps.xml'; my $tradition = Text::Tradition->new( 'input' => 'TEI', 'name' => 'test0', 'file' => $datafile, @@ -19,8 +23,8 @@ is( scalar $tradition->witnesses, 13, "Found all witnesses" ); ok( $tradition->collation, "Tradition has a collation" ); my $c = $tradition->collation; -is( scalar $c->readings, 236, "Collation has all readings" ); -is( scalar $c->paths, 1838, "Collation has all paths" ); +is( scalar $c->readings, 319, "Collation has all readings" ); +is( scalar $c->paths, 2854, "Collation has all paths" ); is( scalar $c->relationships, 0, "Collation has all relationships" ); done_testing; \ No newline at end of file diff --git a/t/02pod.t b/t/02pod.t index 3d1bab1..32b6d9f 100644 --- a/t/02pod.t +++ b/t/02pod.t @@ -5,6 +5,6 @@ use Test::More; eval "use Test::Pod 1.14"; plan skip_all => 'Test::Pod 1.14 required' if $@; -plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; +# plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; all_pod_files_ok(); diff --git a/t/data/florilegium_graphml.xml b/t/data/florilegium_graphml.xml index 0741c6f..d25df80 100644 --- a/t/data/florilegium_graphml.xml +++ b/t/data/florilegium_graphml.xml @@ -16,7 +16,7 @@ - + , base text 1 @@ -24,13 +24,13 @@ #END# #END# - 210 + 281 meta #LACUNA_a1.42_0# #LACUNA_a1.42_0# - 75 + 101 meta @@ -46,8756 +46,13322 @@ meta - #LACUNA_a3.19_0# - #LACUNA_a3.19_0# - 130 + #LACUNA_a9.31_0# + #LACUNA_a9.31_0# + 228 meta - #LACUNA_a3.19_1# - #LACUNA_a3.19_1# - 130 + #LACUNA_a9.31_1# + #LACUNA_a9.31_1# + 228 meta - #LACUNA_a3.19_2# - #LACUNA_a3.19_2# - 130 + #LACUNA_a9.31_2# + #LACUNA_a9.31_2# + 228 meta - #LACUNA_a3.19_3# - #LACUNA_a3.19_3# - 130 + #LACUNA_a9.31_3# + #LACUNA_a9.31_3# + 228 meta - #LACUNA_a3.19_4# - #LACUNA_a3.19_4# - 130 + #LACUNA_a9.31_4# + #LACUNA_a9.31_4# + 228 meta - #LACUNA_a3.19_5# - #LACUNA_a3.19_5# - 130 + #LACUNA_a9.31_5# + #LACUNA_a9.31_5# + 228 meta - #LACUNA_a3.19_6# - #LACUNA_a3.19_6# - 130 + #LACUNA_a9.31_6# + #LACUNA_a9.31_6# + 228 meta + #LACUNA_a9.31_7# + #LACUNA_a9.31_7# + 228 + meta + + #START# #START# 0 meta - + w0 Μαξίμου 1 graphml - - w100 - τῆς - 81 - common - - w101 - ἁγίας - 82 - common + w100 + καταλύσαντι + 87 + graphml - w102 - γραφῆς - 83 - common - - w103 - κατακινούσης - 84 - graphml - - - w104 - κατακρινούσης - 84 + κατακλύσαντι + 87 graphml - + w105 - ἐκείνους, - 85 + οὔτε + 88 common - + w106 - οἳ - 86 + ἐνταῦθα + 89 common - + w107 - κατὰ - 87 + οὔτε + 90 common - + w108 - τῆς - 88 - graphml + ἐν + 91 + common - + w109 - τοῦ - 89 + τῷ + 92 common - + w11 πνεύματος 10 graphml - + w110 - θεοῦ - 90 + μέλλοντι + 93 common - + w111 - βλασφημίας - 91 + ἀφεθήσεται + 94 common - + w112 - αἴτιοι - 92 + τῆς + 95 common - + w113 - γίνονται. - 93 + ἀπιστίας + 96 common - + w114 - Οὐαὶ - 94 + καὶ + 97 common - + w115 - γὰρ - 95 + ἀθεΐας + 98 common - + w116 - φησὶν - 96 - graphml + ἡ + 99 + common - + w117 - δι᾽ - 97 + ἁμαρτία. + 100 common - + w118 - οὓς - 98 - common + Ἰσιδώρου + 101 + graphml - + w119 - τὸ - 99 - common + Πηλουσίου + 102 + graphml - + w12 βλασφημία 11 graphml - + w120 - ὄνομά - 100 - common + πηλουσιώτ(ου) + 102 + graphml - + w121 - μου + νείλου 101 - common + graphml - + w122 - βλασφημεῖται + Γρηγορίου + 103 + graphml + + + w123 + Νύσης + 104 + graphml + + + w124 + τοῦ 102 - common + graphml - w123 - ἐν + w125 + νύσσης 103 - common + graphml - w124 - τοῖς - 104 + w126 + Ἤκουσά + 105 common - w125 - ἔθνεσι. - 105 + w127 + που + 106 common - w126 - Διὰ - 106 + w128 + τῆς + 107 common - w127 - τοῦτο - 107 - graphml - - - w128 - γὰρ + w129 + ἁγίας 108 - graphml + common - + w13 βλασφημίας 11 graphml - + w130 - χαλεπὴν + γραφῆς 109 common - + w131 - τοῖς + κατακινούσης 110 - common + graphml - + w132 - τοιούτοις + κατακρινούσης + 110 + graphml + + + w133 + ἐκείνους, 111 common - w133 - ἀπειλὴν + w134 + οἳ 112 common - w134 - ὁ + w135 + κατὰ 113 common - w135 - λόγος + w136 + τῆς 114 - common + graphml - w136 - ἐπανατείνεται + w137 + τοῦ 115 common - w137 - λέγων + w138 + θεοῦ 116 common - w138 - ἐκείνοις + w139 + βλασφημίας 117 common - w139 - εἶναι - 118 - common - - w14 ἀπορία 12 graphml - + w140 - τὸ + αἴτιοι + 118 + common + + + w141 + γίνονται. 119 common - w141 + w142 Οὐαὶ 120 common - w142 - δι᾽ + w143 + γὰρ 121 common - w143 - οὓς + w144 + φησὶν 122 - common + graphml - w144 - τὸ + w145 + δι᾽ 123 common - w145 - ὄνομά + w146 + οὓς 124 common - w146 - μου + w147 + τὸ 125 common - w147 - βλασφημεῖται + w148 + ὄνομά 126 common - w148 - ἐν + w149 + μου 127 common - w149 - τοῖς - 128 - common - - w15 αὐτόθεν 13 graphml - + w150 - ἔθνεσιν. - 129 + βλασφημεῖται + 128 common - + w151 - Γʹ - 130 - graphml + ἐν + 129 + common - + w152 - κεφάλαιον + τοῖς 130 - graphml + common - + w153 - μδʹ + ἔθνεσι. 131 - graphml + common - + w154 - περὶ + Διὰ 132 common - + w155 - βλασφημίας + τοῦτο 133 - common + graphml - + w156 - Ἰώβ + γὰρ 134 - common - - - w157 - Τί - 135 - common + graphml - + w158 - ἐτόλμησας - 136 + χαλεπὴν + 135 common - + w159 - ἐν - 137 + τοῖς + 136 common - + w16 αὐτόθι 13 graphml - + w160 - τῇ - 138 + τοιούτοις + 137 common - + w161 - καρδία - 139 + ἀπειλὴν + 138 common - + w162 - σου, - 140 + ὁ + 139 common - + w163 - ὅτι - 141 + λόγος + 140 common - + w164 - θυμὸν - 142 + ἐπανατείνεται + 141 common - + w165 - ἔρρηξας - 143 + λέγων + 142 common - + w166 - ἐναντίον - 144 + ἐκείνοις + 143 common - + w167 - τοῦ - 145 + εἶναι + 144 common - + w168 - θεοῦ, - 146 + τὸ + 145 common - + w169 - φιλάνθρωπον - 147 + Οὐαὶ + 146 common - + w17 ἔχει 14 graphml - + w170 - πνεῦμα - 148 + δι᾽ + 147 common - + w171 - σοφία, - 149 + οὓς + 148 common - + w172 - καὶ - 150 + τὸ + 149 common - + w173 - οὐκ - 151 + ὄνομά + 150 common - + w174 - ἀθωώσει - 152 + μου + 151 common - + w175 - βλάσφημον - 153 + βλασφημεῖται + 152 common - + w176 - ἀπὸ - 154 + ἐν + 153 common - + w177 - χειλέων - 155 + τοῖς + 154 common - + w178 - αὐτοῦ. - 156 + ἔθνεσιν. + 155 common - + w179 - τοῦ - 157 - common + Νείλου + 156 + graphml - + w18 ἔχειν 14 graphml - + w180 - Χρυσοστόμου + μοναχοῦ + 157 + graphml + + + w183 + ἀπὸ 158 - common + graphml - - w181 - Τοὺς + + w184 + τῶν 159 - common + graphml - - w182 - ἐν + + w185 + τῆς 160 - common + graphml - - w183 - τῇ + + w186 + κακίας 161 - common + graphml - - w184 - πόλει + + w187 + ὀκτῶ 162 - common + graphml - - w185 - βλασφημοῦντας, + + w188 + λογισμῶν 163 - common + graphml + + + w189 + ἡ + 157 + graphml - w186 - σωφρόνιζε. - 164 + w19 + τὴν + 15 common - w187 - Κἂν - 165 - common + w190 + Ὄψις + 164 + graphml - w188 - ἀκούσῃς - 166 + w192 + γυναικὸς + 165 common - w189 - τινὸς - 167 - common + w193 + μέλος + 166 + graphml - w19 - τὴν - 15 - common + w194 + ἐστὶ + 168 + graphml - w190 - ἐν - 168 - common + w195 + πεφαρμακευμένον + 169 + graphml - w191 - ἀμφόδῳ - 169 + w196 + βέλος + 167 graphml - w193 - ἢ - 170 + w199 + πεφαρμακευμένον + 166 graphml - w194 - ἐν - 171 + w2 + ἁγίου + 2 graphml - w195 - ὁδῶ - 172 - graphml + w20 + λύσιν· + 16 + common - w196 - ἢ - 173 + w202 + ἔτρωσε + 170 common - w197 - ἐν - 174 + w203 + τὴν + 171 common - w198 - ἀγορᾷ - 175 + w204 + ψυχὴν, + 172 common - w199 - βλασφημοῦντος - 176 + w205 + καὶ + 173 common - w2 - ἁγίου - 2 - graphml + w206 + τὸν + 174 + common - w20 - λύσιν· - 16 + w207 + ἰὸν + 175 common - w200 - τὸν - 177 + w208 + ἐναπέθετο, + 176 common - w201 - Θεόν, - 178 + w209 + καὶ + 177 common - w202 - πρόσελθε, - 179 + w21 + ὁ + 17 common - w203 - ἐπιτίμησον, - 180 + w210 + ὅσον + 178 common - w204 - κἂν - 181 + w211 + χρονίζει, + 179 common - w205 - πληγὰς - 182 + w212 + πλείονα + 180 common - w206 - ἐπιθεῖναι - 183 + w213 + τὴν + 181 common - w207 - δέῃ, - 184 + w214 + σῆψιν + 182 common - w208 - μὴ - 185 + w215 + ἐργάζεται. + 183 common - w209 - παρεστήση - 186 - graphml + w216 + βέλτιον + 184 + common - w21 - ὁ - 17 + w217 + γὰρ + 185 common - w210 - παραιτήσῃ + w218 + οἴκοι 186 - graphml + common - w211 - ῥάπισον + w219 + μένοντα 187 common - w212 - αὐτοῦ - 188 + w22 + δὲ + 18 common - w213 - τὴν - 189 + w220 + σχολάζειν + 188 common - w214 - ὄψιν, - 190 + w221 + διηνεκῶς + 189 common - w215 - σύντριψον - 191 + w222 + τῇ + 190 common - w216 - αὐτοῦ - 192 + w223 + προσευχῇ, + 191 common - w217 - τὸ - 193 + w224 + ἢ + 192 common - w218 - στόμα, - 194 + w225 + διὰ + 193 common - w219 - ἁγίασόν - 195 + w226 + τοῦ + 194 common - w22 - δὲ - 18 + w227 + τιμᾶν + 195 common - w220 - σου + w228 + τὰς 196 common - w221 - τὴν + w229 + ἑορτὰς 197 common - w222 - χεῖρα - 198 + w23 + δεύτερος + 19 common - w223 - διὰ - 199 - common + w230 + παρανάλωμα + 198 + graphml - w224 - τῆς - 200 - common + w231 + πάρεργον + 198 + graphml - w225 - πληγῆς, - 201 + w232 + γίνεσθαι + 199 common - w226 - κἂν - 202 - common + w233 + τῶν + 200 + graphml - w227 - ἐγκαλῶσι - 203 - common + w234 + ἐχθρῶν + 201 + graphml - w228 - τινές, - 204 - common + w235 + τὸν + 200 + graphml - w229 - κὰν - 205 - common + w236 + ἐχθρόν + 201 + graphml - w23 - δεύτερος - 19 + w239 + Φεῦγε + 202 common - w230 - εἰς - 206 + w24 + ἐστὶν + 20 common - w231 - δικαστήριον - 207 + w240 + συντυχίας + 203 common - w232 - ἕλκωσιν, - 208 + w241 + γυναικῶν + 204 common - w233 - ἀκολούθησον. - 209 + w242 + ἐὰν + 205 common - w24 - ἐστὶν - 20 + w243 + θέλῃς + 206 common - w25 - οὗτος· - 21 + w244 + σωφρονεῖν, + 207 common - w26 - ὅτάν - 22 + w245 + καὶ + 208 common - w27 - τις - 23 + w246 + μηδαμῶς + 209 graphml - w28 - ἐν - 24 - common + w247 + μὴ + 209 + graphml - w29 - ἁμαρτίαις - 25 - common + w248 + δῷς + 210 + graphml - w3 - Ἡ - 3 + w249 + αὐτῆς + 211 graphml - w30 - ἐνεχόμενος, - 26 + w25 + οὗτος· + 21 common - w31 - ἀκούων - 27 - common + w250 + αὐταῖς + 211 + graphml - w32 - δὲ - 28 + w251 + παρρησίαν + 212 common - w33 - τοῦ - 29 + w252 + θαρρῆσαι + 213 common - w34 - κυρίου - 30 + w253 + σοί + 214 common - w35 - λέγοντος - 31 + w254 + ποτε. + 215 common - w36 - μὴ - 32 - common + w255 + Θάλλει + 216 + graphml - w37 - κρίνετε - 33 + w256 + θάλπει + 216 graphml - w39 - κρίνεται - 34 + w257 + βοτάνη + 217 graphml - w4 - περὶ - 4 - common + w258 + ἰστῶσα + 218 + graphml - w40 - φοβούμενος - 35 - common + w259 + ἐστῶσα + 218 + graphml - w41 - οὐδένα - 36 + w26 + ὅτάν + 22 common - w42 - κρίνει - 37 + w260 + ἑστῶσα + 218 graphml - w44 - κρίνῃ - 37 + w262 + βοτάνη + 219 graphml - w45 - ἐν - 38 + w263 + παρ᾽ + 220 common - w46 - τῇ - 39 + w264 + ὕδατι, + 221 common - w47 - ἐξετάσει - 40 + w265 + καὶ + 222 common - w48 - τῶν - 41 + w266 + πάθος + 223 common - w49 - βεβιωμένων - 42 + w267 + ἀκολασίας, + 224 common - w5 - τῆς - 5 - graphml + w268 + ἐν + 225 + common - w50 - ὡς - 43 + w269 + συντυχίαις + 226 common - w51 - φύλαξ - 44 - common + w27 + τις + 23 + graphml - w52 - τῆς - 45 + w270 + γυναικῶν. + 227 common - w53 - ἐντολῆς - 46 + w271 + τοῦ + 228 common - w54 - οὐ - 47 + w272 + Χρυσοστόμου + 229 common - w55 - κρίνεται· - 48 + w273 + Τοὺς + 230 common - w56 - εἰ - 49 + w274 + ἐν + 231 common - w57 - μὴ - 50 + w275 + τῇ + 232 common - w58 - τὸ - 51 + w276 + πόλει + 233 common - w59 - γενέσθαι - 52 + w277 + βλασφημοῦντας, + 234 common - w6 - τοῦ - 6 + w278 + σωφρόνιζε. + 235 common - w60 - πιστόν, - 53 + w279 + Κἂν + 236 common - w61 - εἰκότως - 54 + w28 + ἐν + 24 common - w62 - οὖν - 55 - graphml + w280 + ἀκούσῃς + 237 + common - w63 - τῷ - 56 - graphml + w281 + τινὸς + 238 + common - w64 - τῶν - 55 - graphml - - - w65 + w282 ἐν - 57 + 239 common + + w283 + ἀμφόδῳ + 240 + graphml + - w66 - ἀπιστεία - 58 + w285 + ἢ + 241 graphml - w67 - ἀπιστίᾳ - 58 + w286 + ἐν + 242 graphml - w68 - τὸν - 59 - common + w287 + ὁδῶ + 243 + graphml - w69 - βίον - 60 + w288 + ἢ + 244 common - w7 - πνεύματος - 7 - graphml + w289 + ἐν + 245 + common - w70 - κατακλείσαντι - 61 - graphml + w29 + ἁμαρτίαις + 25 + common - w72 - καταλύσαντι - 61 - graphml + w290 + ἀγορᾷ + 246 + common - w75 - κατακλύσαντι - 61 - graphml + w291 + βλασφημοῦντος + 247 + common - w77 - οὔτε - 62 + w292 + τὸν + 248 common - w78 - ἐνταῦθα - 63 + w293 + Θεόν, + 249 common - w79 - οὔτε - 64 + w294 + πρόσελθε, + 250 common - w8 - τοῦ - 8 - graphml + w295 + ἐπιτίμησον, + 251 + common - w80 - ἐν - 65 + w296 + κἂν + 252 common - w81 - τῷ - 66 + w297 + πληγὰς + 253 common - w82 - μέλλοντι - 67 + w298 + ἐπιθεῖναι + 254 common - w83 - ἀφεθήσεται - 68 + w299 + δέῃ, + 255 common - w84 - τῆς - 69 - common + w3 + Ἡ + 3 + graphml - w85 - ἀπιστίας - 70 + w30 + ἐνεχόμενος, + 26 common - w86 - καὶ - 71 + w300 + μὴ + 256 common - w87 - ἀθεΐας - 72 - common + w301 + παρεστήση + 257 + graphml - w88 - ἡ - 73 - common + w302 + παραιτήσῃ + 257 + graphml - w89 - ἁμαρτία. - 74 + w303 + ῥάπισον + 258 common - w9 - ἁγίου - 9 - graphml + w304 + αὐτοῦ + 259 + common - w90 - Ἰσιδώρου - 75 - graphml + w305 + τὴν + 260 + common - w91 - Πηλουσίου - 76 - graphml + w306 + ὄψιν, + 261 + common - w92 - πηλουσιώτ(ου) - 76 - graphml + w307 + σύντριψον + 262 + common - w93 - νείλου - 75 - graphml + w308 + αὐτοῦ + 263 + common - w94 - Γρηγορίου - 77 - graphml + w309 + τὸ + 264 + common - w95 - Νύσης - 78 - graphml + w31 + ἀκούων + 27 + common - w96 - τοῦ - 76 - graphml + w310 + στόμα, + 265 + common - w97 - νύσσης - 77 - graphml + w311 + ἁγίασόν + 266 + common - w98 - Ἤκουσά - 79 + w312 + σου + 267 common - w99 - που - 80 + w313 + τὴν + 268 common - - path - K + + w314 + χεῖρα + 269 + common + + + w315 + διὰ + 270 + common + + + w316 + τῆς + 271 + common + + + w317 + πληγῆς, + 272 + common + + + w318 + κἂν + 273 + common + + + w319 + ἐγκαλῶσι + 274 + common + + + w32 + δὲ + 28 + common + + + w320 + τινές, + 275 + common + + + w321 + κὰν + 276 + common + + + w322 + εἰς + 277 + common + + + w323 + δικαστήριον + 278 + common + + + w324 + ἕλκωσιν, + 279 + common + + + w325 + ἀκολούθησον. + 280 + common + + + w33 + τοῦ + 29 + common + + + w34 + κυρίου + 30 + common + + + w35 + λέγοντος + 31 + common + + + w36 + μὴ + 32 + common + + + w37 + κρίνετε + 33 + graphml + + + w39 + κρίνεται + 34 + graphml + + + w4 + περὶ + 4 + common + + + w40 + φοβούμενος + 35 + common + + + w41 + οὐδένα + 36 + common + + + w42 + κρίνει + 37 + graphml + + + w44 + κρίνῃ + 37 + graphml + + + w45 + ἐν + 38 + common + + + w46 + τῇ + 39 + common + + + w47 + ἐξετάσει + 40 + common + + + w48 + τῶν + 41 + common + + + w49 + βεβιωμένων + 42 + common + + + w5 + τῆς + 5 + graphml + + + w50 + ὡς + 43 + common + + + w51 + φύλαξ + 44 + common + + + w52 + τῆς + 45 + common + + + w53 + ἐντολῆς + 46 + common + + + w54 + οὐ + 47 + common + + + w55 + κρίνεται· + 48 + common + + + w56 + εἰ + 49 + common + + + w57 + μὴ + 50 + common + + + w58 + τὸ + 51 + common + + + w59 + γενέσθαι + 52 + common + + + w6 + τοῦ + 6 + common + + + w60 + πιστόν, + 53 + common + + + w61 + εἰκότως + 54 + common + + + w62 + ὅταν + 55 + common + + + w63 + ἐν + 56 + common + + + w64 + ἁμαρτίαις + 57 + common + + + w65 + τίς + 58 + common + + + w66 + ὢν + 59 + common + + + w67 + οἰκονομεῖται + 60 + graphml + + + w68 + οἰκονομῆται + 60 + graphml + + + w69 + ἐκ + 61 + common + + + w7 + πνεύματος + 7 + graphml + + + w70 + τῆς + 62 + common + + + w71 + προνοίας + 63 + common + + + w72 + ἐν + 64 + common + + + w73 + συμφοραῖς, + 65 + common + + + w74 + ἐν + 66 + common + + + w75 + ἀνάγκαις, + 67 + common + + + w76 + ἐν + 68 + common + + + w77 + νόσοις + 69 + common + + + w78 + ὡς + 70 + graphml + + + w79 + οὐκ + 71 + graphml + + + w8 + τοῦ + 8 + graphml + + + w80 + οἶδε + 72 + graphml + + + w81 + γὰρ + 73 + common + + + w82 + διὰ + 74 + common + + + w83 + τῶν + 75 + common + + + w84 + τοιούτων + 76 + common + + + w85 + καθεαυτὸν + 77 + graphml + + + w86 + καθαίρει + 77 + graphml + + + w87 + αὐτὸν + 78 + graphml + + + w88 + ὁ + 79 + common + + + w89 + θεός + 80 + common + + + w9 + ἁγίου + 9 + graphml + + + w90 + οὖν + 81 + graphml + + + w91 + τῷ + 82 + graphml + + + w92 + τῶν + 81 + graphml + + + w93 + ἐν + 83 + common + + + w94 + ἀπιστεία + 84 + graphml + + + w95 + ἀπιστίᾳ + 84 + graphml + + + w96 + τὸν + 85 + common + + + w97 + βίον + 86 + common + + + w98 + κατακλείσαντι + 87 + graphml + + + path + K + + + path + B + + + path + G + + + path + T + + + path + D + + + path + E + + + path + F + + + path + G + + + path + H + + + path + K + + + path + Q + + + path + A + + + path + T + + + path + E + + + path + H + + + path + G + + + path + S + + + path + K + + + path + Q + + + path + C + + + path + D + + + path + F + + + path + P + + + path + B + + + path + S + + + path + F + + + path + H + + + path + P + + + path + K + + + path + A + + + path + true + E + + + path + Q + + + path + F + + + path + E + + + path + G + + + path + F + + + path + G + + + path + K + + + path + D + + + path + T + + + path + H + + + path + S + + + path + C + + + path + E + + + path + Q + + + path + P + + + path + A + + + path + G + + + path + D + + + path + F + + + path + A + + + path + S + + + path + P + + + path + T + + + path + C + + + path + K + + + path + H + + + path + E + + + path + Q + + + path + Q + + + path + E + + + path + A + + + path + C + + + path + G + + + path + H + + + path + F + + + path + S + + + path + P + + + path + D + + + path + T + + + path + K + + + path + S + + + path + A + + + path + H + + + path + E + + + path + G + + + path + C + + + path + K + + + path + T + + + path + P + + + path + F + + + path + Q + + + path + D + + + path + D + + + path + E + + + path + S + + + path + P + + + path + K + + + path + Q + + + path + T + + + path + G + + + path + C + + + path + A + + + path + F + + + path + H + + + path + S + + + path + D + + + path + Q + + + path + P + + + path + T + + + path + E + + + path + C + + + path + H + + + path + S + + + path + K + + + path + D + + + path + F + + + path + P + + + path + A + + + path + Q + + + path + G + + + path + K + + + path + T + + + path + F + + + path + A + + + path + C + + + path + D + + + path + Q + + + path + H + + + path + G + + + path + P + + + path + E + + + path + S + + + path + A + + + path + P + + + path + K + + + path + D + + + path + T + + + path + E + + + path + G + + + path + Q + + + path + C + + + path + S + + + path + F + + + path + H + + + path + H + + + path + K + + + path + C + + + path + D + + + path + T + + + path + Q + + + path + S + + + path + E + + + path + P + + + path + F + + + path + A + + + path + G + + + path + T + + + path + S + + + path + F + + + path + E + + + path + C + + + path + G + + + path + A + + + path + Q + + + path + D + + + path + H + + + path + P + + + path + K + + + path + F + + + path + S + + + path + E + + + path + Q + + + path + K + + + path + C + + + path + G + + + path + A + + + path + P + + + path + D + + + path + T + + + path + H + + + path + G + + + path + K + + + path + Q + + + path + D + + + path + C + + + path + P + + + path + T + + + path + F + + + path + H + + + path + A + + + path + S + + + path + E + + + path + C + + + path + K + + + path + G + + + path + H + + + path + Q + + + path + D + + + path + T + + + path + S + + + path + A + + + path + F + + + path + P + + + path + E + + + path + S + + + path + C + + + path + E + + + path + H + + + path + P + + + path + D + + + path + H + + + path + C + + + path + E + + + path + Q + + + path + S + + + path + P + + + path + D + + + path + Q + + + path + T + + + path + D + + + path + G + + + path + A + + + path + E + + + path + P + + + path + S + + + path + H + + + path + C + + + path + F + + + path + C + + + path + F + + + path + E + + + path + H + + + path + P + + + path + D + + + path + S + + + path + G + + + path + A + + + path + T + + + path + Q + + + path + Q + + + path + H + + + path + Q + + + path + E + + + path + P + + + path + S + + + path + F + + + path + C + + + path + T + + + path + A + + + path + D + + + path + G + + + path + Q + + + path + S + + + path + G + + + path + A + + + path + E + + + path + F + + + path + D + + + path + T + + + path + H + + + path + P + + + path + C + + + path + A + + + path + Q + + + path + P + + + path + T + + + path + D + + + path + G + + + path + H + + + path + E + + + path + S + + + path + C + + + path + F + + + path + F + + + path + A + + + path + P + + + path + C + + + path + H + + + path + G + + + path + S + + + path + T + + + path + D + + + path + E + + + path + Q + + + path + A + + + path + P + + + path + D + + + path + F + + + path + T + + + path + H + + + path + S + + + path + C + + + path + K + + + path + E + + + path + G + + + path + true + Q + + + path + Q + + + path + E + + + path + H + + + path + S + + + path + F + + + path + D + + + path + A + + + path + C + + + path + P + + + path + T + + + path + true + Q + + + path + S + + + path + Q + + + path + F + + + path + T + + + path + A + + + path + P + + + path + E + + + path + D + + + path + G + + + path + H + + + path + C + + + path + C + + + path + F + + + path + E + + + path + A + + + path + T + + + path + G + + + path + P + + + path + Q + + + path + D + + + path + H + + + path + S + + + path + C + + + path + Q + + + path + F + + + path + G + + + path + A + + + path + T + + + path + H + + + path + S + + + path + E + + + path + P + + + path + D + + + path + D + + + path + P + + + path + C + + + path + F + + + path + S + + + path + T + + + path + A + + + path + E + + + path + H + + + path + G + + + path + Q + + + path + T + + + path + E + + + path + H + + + path + D + + + path + S + + + path + C + + + path + G + + + path + P + + + path + F + + + path + A + + + path + S + + + path + D + + + path + T + + + path + G + + + path + A + + + path + E + + + path + H + + + path + Q + + + path + F + + + path + C + + + path + P + + + path + D + + + path + G + + + path + F + + + path + Q + + + path + T + + + path + S + + + path + A + + + path + H + + + path + C + + + path + E + + + path + P + + + path + Q + + + path + D + + + path + P + + + path + S + + + path + F + + + path + T + + + path + A + + + path + G + + + path + C + + + path + E + + + path + H + + + path + E + + + path + T + + + path + C + + + path + D + + + path + A + + + path + H + + + path + F + + + path + K + + + path + P + + + path + S + + + path + C + + + path + E + + + path + P + + + path + D + + + path + A + + + path + H + + + path + T + + + path + G + + + path + S + + + path + Q + + + path + F + + + path + G + + + path + S + + + path + T + + + path + C + + + path + Q + + + path + A + + + path + E + + + path + D + + + path + H + + + path + P + + + path + F + + + path + T + + + path + H + + + path + C + + + path + P + + + path + Q + + + path + A + + + path + S + + + path + F + + + path + G + + + path + E + + + path + D + + + path + D + + + path + C + + + path + H + + + path + E + + + path + P + + + path + A + + + path + G + + + path + S + + + path + Q + + + path + F + + + path + T + + + path + S + + + path + E + + + path + G + + + path + Q + + + path + D + + + path + C + + + path + P + + + path + T + + + path + A + + + path + F + + + path + A + + + path + S + + + path + G + + + path + T + + + path + P + + + path + H + + + path + Q + + + path + D + + + path + C + + + path + E + + + path + S + + + path + C + + + path + T + + + path + F + + + path + A + + + path + H + + + path + E + + + path + P + + + path + Q + + + path + D + + + path + G + + + path + P + + + path + D + + + path + Q + + + path + E + + + path + G + + + path + B + + + path + C + + + path + T + + + path + F + + + path + H + + + path + S + + + path + A + + + path + E + + + path + D + + + path + T + + + path + H + + + path + G + + + path + B + + + path + Q + + + path + A + + + path + S + + + path + F + + + path + C + + + path + P + + + path + G + + + path + S + + + path + C + + + path + P + + + path + H + + + path + F + + + path + D + + + path + B + + + path + Q + + + path + T + + + path + A + + + path + E + + + path + K + + + path + E + + + path + Q + + + path + Q + + + path + E + + + path + D + + + path + P + + + path + S + + + path + B + + + path + C + + + path + F + + + path + A + + + path + G + + + path + T + + + path + H + + + path + S + + + path + F + + + path + B + + + path + T + + + path + G + + + path + Q + + + path + A + + + path + H + + + path + P + + + path + D + + + path + E + + + path + C + + + path + H + + + path + F + + + path + P + + + path + G + + + path + S + + + path + T + + + path + D + + + path + E + + + path + Q + + + path + A + + + path + B + + + path + C + + + path + A + + + path + P + + + path + T + + + path + B + + + path + E + + + path + D + + + path + S + + + path + C + + + path + H + + + path + F + + + path + Q + + + path + G + + + path + E + + + path + D + + + path + B + + + path + A + + + path + H + + + path + P + + + path + F + + + path + G + + + path + T + + + path + Q + + + path + S + + + path + C + + + path + D + + + path + Q + + + path + T + + + path + S + + + path + B + + + path + E + + + path + A + + + path + H + + + path + C + + + path + P + + + path + F + + + path + G + + + path + Q + + + path + S + + + path + E + + + path + H + + + path + P + + + path + T + + + path + C + + + path + Q + + + path + A + + + path + F + + + path + G + + + path + B + + + path + D + + + path + C + + + path + G + + + path + B + + + path + S + + + path + F + + + path + P + + + path + T + + + path + D + + + path + H + + + path + Q + + + path + E + + + path + A + + + path + D + + + path + S + + + path + C + + + path + P + + + path + F + + + path + T + + + path + A + + + path + H + + + path + G + + + path + F + + + path + D + + + path + A + + + path + P + + + path + B + + + path + E + + + path + S + + + path + C + + + path + Q + + + path + H + + + path + T + + + path + F + + + path + Q + + + path + G + + + path + H + + + path + D + + + path + E + + + path + A + + + path + S + + + path + P + + + path + C + + + path + T + + + path + B + + + path + D + + + path + G + + + path + E + + + path + S + + + path + C + + + path + H + + + path + Q + + + path + A + + + path + F + + + path + P + + + path + T + + + path + B + + + path + H + + + path + T + + + path + S + + + path + Q + + + path + P + + + path + B + + + path + F + + + path + A + + + path + G + + + path + E + + + path + D + + + path + C + + + path + H + + + path + C + + + path + S + + + path + F + + + path + B + + + path + A + + + path + P + + + path + G + + + path + E + + + path + T + + + path + D + + + path + Q + + + path + B + + + path + P + + + path + G + + + path + A + + + path + D + + + path + S + + + path + Q + + + path + E + + + path + H + + + path + T + + + path + F + + + path + C + + + path + D + + + path + P + + + path + F + + + path + T + + + path + S + + + path + E + + + path + Q + + + path + H + + + path + G + + + path + B + + + path + C + + + path + A + + + path + F + + + path + D + + + path + S + + + path + C + + + path + H + + + path + E + + + path + Q + + + path + G + + + path + A + + + path + B + + + path + T + + + path + P + + + path + Q + + + path + E + + + path + G + + + path + C + + + path + B + + + path + F + + + path + A + + + path + H + + + path + P + + + path + D + + + path + S + + + path + T + + + path + D + + + path + B + + + path + H + + + path + Q + + + path + G + + + path + P + + + path + F + + + path + E + + + path + S + + + path + C + + + path + A + + + path + T + + + path + S + + + path + K + + + path + A + + + path + Q + + + path + C + + + path + H + + + path + E + + + path + D + + + path + F + + + path + T + + + path + C + + + path + T + + + path + P + + + path + Q + + + path + G + + + path + B + + + path + A + + + path + S + + + path + D + + + path + H + + + path + E + + + path + F + + + path + B + + + path + S + + + path + E + + + path + C + + + path + A + + + path + T + + + path + F + + + path + G + + + path + P + + + path + D + + + path + H + + + path + Q + + + path + E + + + path + H + + + path + B + + + path + T + + + path + A + + + path + Q + + + path + G + + + path + S + + + path + C + + + path + D + + + path + P + + + path + F + + + path + Q + + + path + F + + + path + P + + + path + S + + + path + H + + + path + D + + + path + B + + + path + A + + + path + C + + + path + T + + + path + E + + + path + G + + + path + D + + + path + G + + + path + P + + + path + F + + + path + T + + + path + E + + + path + S + + + path + B + + + path + H + + + path + C + + + path + Q + + + path + A + + + path + Q + + + path + E + + + path + B + + + path + G + + + path + C + + + path + A + + + path + T + + + path + S + + + path + P + + + path + F + + + path + D + + + path + H + + + path + S + + + path + Q + + + path + P + + + path + T + + + path + C + + + path + A + + + path + H + + + path + D + + + path + G + + + path + F + + + path + B + + + path + E + + + path + B + + + path + H + + + path + E + + + path + P + + + path + C + + + path + A + + + path + D + + + path + S + + + path + G + + + path + F + + + path + T + + + path + Q + + + path + G + + + path + D + + + path + A + + + path + Q + + + path + S + + + path + B + + + path + F + + + path + H + + + path + T + + + path + C + + + path + E + + + path + P + + + path + B + + + path + D + + + path + Q + + + path + A + + + path + T + + + path + K + + + path + F + + + path + E + + + path + C + + + path + S + + + path + G + + + path + H + + + path + P + + + path + C + + + path + S + + + path + B + + + path + A + + + path + T + + + path + E + + + path + Q + + + path + G + + + path + D + + + path + F + + + path + F + + + path + F + + + path + F + + + path + F + + + path + F + + + path + F + + + path + H + + + path + K + + + path + Q + + + path + T + + + path + S + + + path + H + + + path + P + + + path + A + + + path + F + + + path + E + + + path + D + + + path + C + + + path + A + + + path + K + + + path + T + + + path + S + + + path + E + + + path + H + + + path + D + + + path + F + + + path + P + + + path + G + + + path + Q + + + path + C + + + path + B + + + path + E + + + path + Q + + + path + F + + + path + P + + + path + G + + + path + T + + + path + K + + + path + A + + + path + D + + + path + H + + + path + C + + + path + B + + + path + S + + + path + T + + + path + S + + + path + C + + + path + P + + + path + D + + + path + T + + + path + E + + + path + A + + + path + K + + + path + B + + + path + F + + + path + H + + + path + G + + + path + Q + + + path + T + + + path + H + + + path + F + + + path + E + + + path + K + + + path + G + + + path + D + + + path + C + + + path + Q + + + path + A + + + path + F + + + path + B + + + path + Q + + + path + P + + + path + D + + + path + G + + + path + A + + + path + C + + + path + S + + + path + K + + + path + H + + + path + E + + + path + P + + + path + B + + + path + S + + + path + F + + + path + H + + + path + H + + + path + P + + + path + E + + + path + Q + + + path + T + + + path + C + + + path + K + + + path + D + + + path + S + + + path + F + + + path + A + + + path + G + + + path + H + + + path + T + + + path + K + + + path + E + + + path + B + + + path + A + + + path + D + + + path + C + + + path + F + + + path + S + + + path + Q + + + path + P + + + path + B + + + path + P + + + path + Q + + + path + T + + + path + E + + + path + K + + + path + F + + + path + D + + + path + G + + + path + H + + + path + A + + + path + C - + path - B + S - + path - G + D - + path - T + A - + path - D + P - + path - E + C - + path F - + + path + S + + + path + Q + + path G - + + path + T + + + path + E + + path H - + path - Q + K + + + path + B + + + path + H - + path F - + + path + P + + + path + K + + path S - + path Q - + path - T + B - + path C - + path - H + D + + + path + A + + + path + E - + path G - + path - B + T - + path - D + H - + path - K + T + + + path + D - + path E - + path - A + C - + path - P + K - + path - A + G - + path - H + P - + path - S + F - + path - K + Q - + path - F + S - + path - P + B - + path - P + A - + + path + T + + path Q - + path S - + path - D + K - + path - H + A + + + path + D - + path F - + path G - + + path + B + + + path + C + + + path + E + + + path + P + + + path + H + + path A - + path - T + P - + path - C + G - + path - E + H - + path Q - + path - A + S - + path D - + path - P + F - + path - S + B - + path - T + K - + path C - + path E - + path - G + T - + path H - + path - F + C - + path - S + E - + path - true - Q + T - + + path + B + + path P - + + path + D + + + path + S + + path G - + path - E + Q + + + path + K - + path F - + path - H + A - + + path + S + + path A - + + path + H + + + path + P + + path D - + path - C + Q + + + path + K + + + path + E + + + path + F - + path T - + path - Q + C - + path - true Q - + path - P + F - + path - Q + A - + path - C + K - + path - S + T - + path - E + B - + path - F + E - + path G - + path - A + P - + path D - + path - T + H - + path - H + S + + + path + C + + + path + G + + + path + F - + path T - + + path + S + + path D - + + path + P + + path A - + path - Q + K - + path - P + E - + path - S + Q - + path - G + B - + path C - + path H - + path - F + S - + path E - + + path + C + + + path + B + + path F - + path - S + H + + + path + A - + path P - + path - E + D - + path - H + K + + + path + G - + path Q - + path T - + path - C + Q - + path - A + H - + path - D + S - + path - G + E - + path - H + B - + path - D + C - + + path + K + + path T - + path G - + path - C + P + + + path + D - + path A - + path - E + F + + + path + B + + + path + K - + path S - + path - F - - - path - P + T - + path Q - + path P - + path - C + E - + path - F + C - + path - S + G - + path A - - path - E - - + path H - + path - G + F - + path D - + path - T - - - path - D + C - + path - E + A - + path - H + K - + path - A + S - + path T - - path - C - - + path - S + D - + path F - + path - G + P - + path - Q + H - + path - P + G - + path Q - + path - D + E - + path - P + B - + path - S + T - + path - F + G - + path - Q + F - + path E - + path C - - path - A - - + path - P + H - + path D - + path - T + A - + path - G + Q - + path S - - path - H - - - path - G - - + path - A + B - + path - T + K - + path - S + P - + path - P + H - + path - Q + D - + path F - + path - C + P - + path - E + S - + path - H + B - + path - D + E - + path T - - path - D - - + path C - + path - H + Q - + path A - + path G - + path - F + K - + path S - - path - P - - + path - Q - - - path - E + D - + path - G + B - + path A - - path - F - - + path - Q + P - + path - S + K - + path - P + T - + path E - + path - T + G - + path C - + path - D + F - + path H - + path - F + Q - + path - C + E - + path - D + K - + path - P + G - + path - S + P - + path - G + T - + path - H + D - + path A - + path - Q + F - + path - E + H - + path - T + C - + path S - + path - Q - - - path - A + B - + path - E + Q - + path - T + H - + path - C + A - + path - F + T - + path - H + K - + path - G + S - + path D - + path P - + path C - - path - E - - + path - P + Q - + path - A + F - + path - T + E - + path - G + C - + path - S + K - + path - Q + G - + path - D + F - + path - F + Q - + path - H + E - + path A - + path - E + P - + path - P + H - + path - D + B - + path T - + path - G + D - + path S - - path - C - - - path - Q - - - path - Q - - + path - S + A - + path P - + path - C + E - + path - E + C - + path - T + B - + path - G + H - + path - D + S - + path - F + G - + path - H + T - + path - A + Q - + path - H + F - + path - E + K - + path - F + D - + path P - + path - S + D - + path - T + C - + path - C + H - + path - D + F - + path - B + E - + path G - + path - A + B - + path Q - + path - Q + T - + path - G + S - + path - F + K - + path - B + A + + + path + S - + path - H + T - + path - C + F - + path - Q + G - + path - A + K - + path - E + H - + path - S + D - + path - T + B - + path - D + Q - + path P - + path A - + path C - + path - H + E - + path - F + G - + path E - + path - P - - - path - G + H - + path - B + K - + path Q - + path T - - path - S - - + path - D + A - + path - G + C - + path - Q + P - + path D - + path - S + F - + path B - + path - A + S - + path C - + path - P + D - + path - E + F - + path - H + G - + path T - + path - F + S - + path - E + B - + path - C + E - + path - T + K - + path - A + H - + path - P + A - + path - H + Q - + path - F + P - + path - B + P - + path - D + S - + path - G + T - + path - Q + B - + path - S + F - + path - D + A - + path - B + H - + path - E + Q - + path - F + G - + path - Q + K - + path - P + D - + path - H + E - + path C - + path - S + G - + path - A + P - + path - G + A - + path - T + B - + path - P + H - + path - T + Q - + path - S + D - + path - G + K - + path C - - path - F - - + path - A + E - + path - B + T - + path - E + S - + path - D + F - + path H - + path - Q + T - + path Q - + path P - + path - T + E - + path - H + K - + path - B + C - + path - G + S - + path D - + path - S + F - + path - C + G - + path - F + A - + path - A + B - + path - E + K - + path - G + C - + path S - + path - P + G - + path - C + T - + path F - + path - E + P - + path B - - path - T - - + path - H + Q - + path D - + path - Q + H - + path A - + path - Q + E - + path D - + path - P + K - + path - K + C - + path - F + P - + path A - + path - H + S - + path T - + path - S + Q - + path - C + F - + path - E + H - + path - S + E - + path - E + H - + path - A + G - + path D - + path - T + P - + + path + F + + path B - + path - G + Q - + path C - + path - P + T - + path - H + S - + path - F + E - + path - Q + K - + path - H + A - + path - P + F - + path - F + A + + + path + B - + path + true T - + path Q - + path - B + S - + path - C + D - + path - D + P - + path - S + H - + path - E + C - + path - A + T - + path - G + E - + path - B + K - + path - D + G - + path E - + path S - + path - G + Q - + path - P + H - + path - Q + K - + path - F + D - + path - A + G - + path - H + B + + + path + C - + path T - + + path + P + + + path + F + + path C - + path - H + true + T - + path - F + G - + path - S + E - + path - A + B - + path - D + K - + path - C + T + + + path + F + + + path + H + + + path + S - + path - G + D - + path Q - - path - B - - + path P - + path - E + A - + path + true T - + path - D + A - + path - C + D - + path - A + P - + path - E + B - + path - Q + C - + path G - + + path + S + + + path + K + + path T - + path F - + path - P + Q - + path - S + H - + path - H + A - + path - B + E - + path - T + P - + path - G + E - + path - F + D - + path Q - + path - E + F - + path - B + S - + path - P + C - + path - D + H - + path - H + T - + path A - + path - C + K - + path - S + D - + path - A + S - + path - C + A - + path H - + path - T + P - + path - Q + K - + path - F + C - + path E - + path - D + T - + path - P + Q - + path B - + path G - + path - S + F - + path Q - - path - F - - + path B - + path - E + K - + path H - - path - S - - + path - A - - - path - C + E - + path D - + path - G + F - + path - T + P - + path - P + S - + path A - + path - D + T - + path - Q + G - + path - F + C - + path - S + C - + path G - + + path + E + + path B - + path - C + F - + path - E + T - + path P - + path - T + A - + path - H + D - + path - B + K - + path - P + Q - + path S - + path - T + H - + path Q - + path - G + E - + path - E + S - + path H - + path - D + A - + path C - - path - A - - + path F - + path - H + G - + path - T + D - + path - C + B - + path - S + K - + path - E + T - + path P - + path - D + A - + path - F + T - + path - A + P - + path - K + H + + + path + S - + path D - + path - E + K - + path - S + G - + path - F + E - + path Q - + path - P + F - + path - G + B - + path - T + C - + path - H + D - + path - A + T - + path C - + path B - - path - G - - + path - H + E - + path - T + Q - + path - A + P - + path S - + path - D + H - + path - E + A - + path F - + path - C + G - + path - B + K - + path - P + S - + path Q - + path - T + B - + path - A + K - + path - Q + G - + path - H + T - + path - G + E - + path - P + F - + path - F + C - + path - B + A - + path - S + D - + path - C + P - + path - E + H - + path - D + H - + path - C + K - + path G - + path F - + path - T + A - + path - S + T - + path - E + D - + path - D + P - + path - Q + E - + path - P + Q - + path - A + C - + path B - + path - H + P - + path - E + A - + path - B + H - + path - A + F - + path Q - - path - G - - + path - P + E - + path - S + K - + path - F + T - + path - D + S - + path - H + C - + path - T + D - + path - C + P - + path - Q + E - + path - D + S - + path C - + path - T + F - + path - S + D - + path - E + Q - + path - F + T - + path - B + A - + path - P + G - + path - G + K - + path - A + B - + path H - + path F - + path - G + K - + path S - + path - E + A - + path B - + path - P + E - + path - Q + C - + path - H + P - + path D - + path - A + Q - + path - C + T - + path - T + G - + path - A + H - + path - P + B - + path - T + H - + path - C + G - + path - F + Q - + path - S + P - + path - H + C - + path - G + D + + + path + T + + + path + F - + path E - + path - B + A - + path - Q + S - + path - D + K - + path - F + E - + path - D + C - + path B - + path - H + S - + path - A + T - + path - Q + H - + path - P + G - + path - E + K - + path - T + A - + path - C + F - + path - G + D - + path - S + P - + path Q - + path G - + path - C + K - + path P - + path - F + E - + path - D + A - + path - S + T - + path - B + Q - + path - T + S - + path - A + H - + path - E + B - + path - H + F - + path - E + C - + path - K + D - + path - Q + A - + path - P + T - + path F - + path - H + Q - + path D - + path - B + E - + path - E + C - + path - A + G - + path - C + K - + path - T + H + + + path + B - + path S - + + path + P + + path Q - + path - G + D - + path A - + path C - + path - P + F - + path - S + T - + path - B + K - + path - B + H - + path - P + E - + path - S + G - + path - C + H - + path - B + T - + path - S + F - + path A - + path C - + path - P + K - + path - P + D - + path - A + P - + path - B + E - + path S - + path - C + Q - + path - B + H - + path - S + T - + path - C + D - + path - A + S - + path - P + B - + path - P + G - + path - C + A - + path - B + F - + path - S + P - + path - A + K - + path - A + Q - + path - P + C - + path - S + E - + path B - - path - C - - + path S - + path - C + P - + path - P + H - + path - B + P - + path - A + T - + path - F + D - + path - A + E - + path - D + G - + path - P + A - + path - H + K - + path C - + path S - + path - T + F - + path - C + B - + path - P + Q - + path - A + G - + path S - + path - B + F - + path - P + A - + path - S + K - + path C - + path B - + path - A + P - + path - S + E - + path - P + Q - + path - C + T + + + path + H - + + path + D + + path A - + path - B + Q - + + path + D + + path B - + path S - + path - P + K - + path - C + T - + path - A + G - + path - A + F - + path - S + H - + path - C + P - + path - P + C - + path - B + E - + path - B + E - + path - P + Q - + path - A + D - + path C - + path - S + T - + path S - + path - A + K - + path - C + F - + path - P + G - + path - B + A - + path - B + H - + path - S + P - + path - P + B - + path C - + path - A + E - + path - S + H - + + path + P + + path B - + path - A + F - + path - C + K - + path - P + Q - + path - C + T - + path - A + D - + path S - + path - P + A - + path - B + G - + path Q - - path - H - - + path - S + K - + path - E + F - + path - D + H - + path - K + T - + path - T + B - + path - F + G - + path - A + D - + path - C + E - + path S - + path A - + + path + P + + path C - + path B - + path - P + D - + path A - + path - C + T - + path - S + Q - + path - P + H - + path - B + E - + path - B + G - + path S - + path - C + K - + path - A + F - + path P - + path C - + path - P + T + + + path + E - + path S - + path - B + H - + path A - + path - B + D - + path - S + P - + path - A + K - + path C - + path - P - - - path - C + Q - + path P - - path - B - - + path - S + E - + path - A + T - + path A - + path - C - - - path - B + Q - + path - S + K - + path - P + C - + path - P + F - + path B - + path - A + H - + path - C + D - + path S - - path - P - - - path - A - - + path - C + G - + path S - - path - B - - + path P - + path B - + path C - + path A - + path - S + B - + path - P + A - + path C - + path S - - path - B - - + path P - - path - A - - + path - B + S - + path C - - path - S - - + path A - + path P - + path B - + path - A + S - + path - S + P - + path C - + path - P + B - + path - C + A - + path P - + path - A + C - + path B - + path S - + + path + A + + path C - + path A - + path B - - path - P - - + path S - + path - A + P - + path S - + path - B + P - + path - P + A - + path - C + B - + path C - + path - B + A - + path S - + path - A + B - + path P - + path - A + C - + path P - + path - S + B - + path C - - path - B - - + path A - + path - P - - - path - B + S - + path S - + path - C + E - + path - A + H - + path - S + Q - + path - B + A - + path C - - path - P - - + path - A + T - + path - Q + F - + path K - + path - F - - - path - T + P - + path D - + path - H + B - + path C - + path P - + path - E + A - + path S - + path P - + path - B + S - + path A - + path C - + path - S + B - + path S - - path - C - - + path B - + path A - + path - P + C - + path P - + path B - + path - S + P - + path - B + C - + path S - + path - P + A - + path S - + path P - + path B - - path - A - - - path - C - - + path S - + path P - + path B - - path - S - - - path - C - - + path B - + path - A + S - + path P - + path - P + A - + path S - + path C - - path - A - - + path B - + path - S + P - + path - B + S - + path C - + path - A + P - + path - P + B - + path - F + A - + path - H + D - + path - T + S - + path - C + P - + path - S + E - + path - D + F - + path H - + path - E + T - + path Q - + path - P + C + + + path + K - + path A - + path - K + S - + path - F + C - + path A - + path B - + path P - - path - S - - + path C - + path - C + A - + path S - + path - A + P - + path B - + path - P + B - + path A - + path - B + P - + path - P + S - + path C - + path S - + path - S + P - + path - P + B - + path C - + path A - + path - B + S - + path A - + + path + B + + path P - + path C - + path - S + P - + path - B + A - + path C - + + path + S + + path B - + path - P + B - + path A - + + path + C + + path S - + + path + P + + path B - + + path + A + + path P - + path C - + path S - - path - A - - + path - C + P - + path S - + path B - + path - P + C - + path A - + path - P + A - + path - C + P - + path B - + path S - + path - A + C - + path - S + K - + path - S + H - + path - E + D - + path - F + S - + path - K + Q - + path - T + F - + path - H + T - + path A - - path - C - - + path - Q + E - + path - P + T - + path - D + F - + path - B + S - + path - A + Q - + path - P + D - + path C - + path - B + K - + path - C + E - + path A - - path - S - - + path P - + path - C + H - + path P - + path - S + B - + path - B + C + + + path + S - + path A - + path S - + path - A + B - + path C - + path - B + A - + path P - + path B - + path - S - - - path - P + A - + path C - + path - A + S - + path P - + path - S + C - + path A - + path - C + B - + path - B + P - + path - B + S - + path A - + path S - + path P - + path C - + path - A + B - + path B - + path - S + C - + path P - + path - C + A - + path - P + S - + path B - + path - C + A - + path - A + P - + path S - + path C - + + path + P + + path S - + path - P + A - + + path + C + + path B - + path - A + P - + path - E + S - + path - F + C - + path A - + path - P + B - + path K - + path - Q + E - + path H - + path - D + A - + path T - + path - C + P - + path S - + path - P + F - + path - A + Q - + path - S + C - + path - B + D - + path C - + path - S + B - + path - A + P - + path - C + A - + path - P + S - + path - B + A - + path B - + path - A + P - + path C - + + path + S + + + path + B + + path P - + + path + C + + path S - + path - C + A - + path A - + + path + C + + path S - + + path + B + + path P - + path B - + path C - + path - B + A - + path - A + S + + + path + P - + path S - + path P - + path A - + + path + B + + + path + C + + path S - + path P - + + path + B + + path C - + path - B + A - + path - B + P - + path S - + path - A + B - + path C - + path - P + A - + path - S + C - + path - A + S - + path P - + path - C + A - + path B - + path B - + path - S + C - + path A - + path - C + S - + path P - + path - S + E - + path - P + A - + path C - + path - B + P - + path - A + F - + + path + H + + path Q - + path - C + T - + path S - + + path + K + + path D - + path - E + A - + path - H + P - + path - A + S - + path - P + C - + path - T + B - + path - F + A - + path - K + B - + path S - + path - A + P - + path C - + path P - + path B - + path C - - path - B - - + path A - + path S - + path - P + C + + + path + S - + path A - + path - S + B - + path P - + path C - + path - B + S - + path - C + A + + + path + P - + path B - + path - A + B + + + path + S - + path P - + path - S + A - + path - Q + C - + path - P + E - + path - F + P - + path D - + path - S + C - + path - A + S - + path - K + T - + path - C + K - + path H - + path - T + Q - + path - E + F - + path A - + + path + S + + path D - + path - S + K - + path - E + F - + path - H + Q - + path T - + + path + A + + path C - + path P - + path - Q + H - + + path + E + + path K - + + path + S + + + path + H + + path F - + path - P + E - + path - K + A - + path Q - + path - F + P - + path C - + path - A + D - + path - S + T + + + path + Q + + + path + D - + path H - + path T - + path E - + path - D + F - + path - C + A - + path - E + P - + path - D + S - + path - H + C - + path - P + K - + path - T + E - + path - Q + P - + path - S + F - + path - A + C - + path - K + Q - + path H - + path - T + S - + path - P + K - + path - Q + A - + path D - + path - E + T - + path - K + H - + path - A + D + + + path + K - + path C - + path S - + path F - - path - Q - - + path - E + H - + path A - + path - F + Q - + path - C + E - + path P - + path T - + path - H + P - + path - K + C - + path - D + H - + path - S + Q - + path - F + E - + path - D + F - + path - T + S - + path - E + D - + path - Q + K - + path A - + + path + T + + path H - + path - K + F - + path - S + E - + path T - + path - H + S - + path - F + D - + path K - + path - S + A - + path Q - + path - E + true + Q - + path - D + C - + path P - + + path + E + + path A - + path - C + K - + path - D + T - + path - K + D - + path - Q + H - + path - P + true + Q - + path - A + F - + path - T + P - + path - C + S - + path - H + Q - + path - F + C - + path - S + A - + path - E + C - + path - H + Q - + path F - + path - Q + T - + path S - + path - D + E - + path - T + K - + path - K + P - + path - E + H - + path - C + D - + path - P + Q - + path - A + D - + path - K + H - + path - S + P - + path - E + C + + + path + F - + path T - + path A - + path - C + K - + path - Q + E - + path - D + S - + path - H + Q - + path - F + S - + path - P + F - + path - H + T - + path - F + G - + path - P + A - + path - D + E - + path K - + path - E + H - + path - A + D + + + path + P - + path - S + C - + path Q - + path C - + path - T + P - + path - E + S - + path - F + E - + path - A + D - + path - S + H - + path - H + T - + path - C + K - + path - P + A - + path - T + F - + path - Q + G - + path - D + F - + path K - + path P - + path Q - + path - D + C - + path - F + T - + path - K + S - + path A - - path - S - - + path - C + E - + path - T + G - + path H - + path - E + D - + path - S + E - + path - C + A - + path P - + path - E + K - + path - H + T - + path - Q + C - + path F - + path - K + D - + path - H + S - + path - A + E - + path - T + C - + path D - + path - A + H - + path - Q + S - + path - K + G - + path - C + T - + path - S + A - + path - E + K - + path - H + Q - + path F - + path P - + path - D + H - + path - T + Q - + path K - - path - T - - - path - H - - + path D - + path - Q + T - + path A - + path C - - path - F - - + path E - - path - S - - + path P - - path - D - - + path - S + F - + path - E + G - + path - P + S - + path - Q + K - + path - F + G - + path A - + path - H + P - + path - C + Q - + path - K + F - + path - true - Q + D - + path T - + path E - + path - true - Q + C - + path H - + path - T + S - + path - F + E - + path - D + C - + path - A + F - + path - K + P - + path - C + T - + path - S + H - + path - P + K - + path - Q + S - + path - D + Q - + path - F + A - + path - P + D - + path - T + G - + path - Q + F - + path - K + S - + path H - + path - E + D - + path A - + path - S + E - + path C - + path - C + T - + path - T + K - + path - S + G - + path Q - + path P - + path - E + H - + path - A + K - + path - K + T - + path - H + S + + + path + G - + path F - + + path + A + + + path + E + + + path + P + + path D - + path - Q + C - + path - T + Q - + path - A + Q - + path - D + G - + path P - + path - F + D - + path K - + + path + E + + path H - + path - G + F - + path - C + A - + path - E + C - + path S - + path - K + T - + path - C + T - + path - Q + F - + path - E + A - + path - S + C - + path G - + path - T + E - + path - F + P - + path H - + path - D + S - + path - P + Q - + path - A + D - + path - Q + K - + path D - + path - A + G - + path F - + path - H + S - + path P - + path - S + E - + path - K + A - + path - G + H - + path - T + K - + path C - + path - E - - - path - E + T - + path - F + Q - + path - K + Q - + path S - + path - C + H - + path D - - path - T - - + path - A + K - + path - P + C - + path - E + A - + path - S + F - + path - Q + G - + path - D + P - + path - F + E - + path - K + T - + path A - + path - C + H - + + path + S + + path P - + path - G + E - + path T - + path - H + C - + path K - - path - C - - + path - T + D - + path - H + F - + path - E + Q - + path - S + P - + path - G + A - + path - F + C - + path - A + D - + path - D + F - + path - P + T - + path Q - + path - E + K - + path G - + path - F + E - + path S - + path - Q + H - + path - P + G - + path K - + path - T + A - + path - H + P - + path D - + path - A + T - + path - C + F - + + path + E + + path S - + path H - + path Q - + path - D + C - + path - K + E - + path - T + H - + path - C + P - + path - P + D - + path - E + A - + path F - + path - A + S - + path - G + Q - + path - F + G - + path - P + T - + path - E + C - + path - H + K - + path - A + H - + path S - + path - G + T - + path Q - + path - T + G - + path - K + F - + path - D + K - + path C - - path - Q - - + path D - + path - T + A - + path - S + P - + path - H + E - + path - C + F - + path - K + P - + path - F + T - + path - A + S - + path - G + K - + path - E + Q - + path - P + C - + path - P + D - + path E - + path - K + G - + path - G + H - + path A - + path - D + K - + path - S + F - + path T - - path - F - - + path - Q + E - + path C - + path - H + S - + path - Q + G - + path H - - path - K - - - path - T - - - path - F - - + path - E + P - + path - S + Q - + path - P + A - + path - A + D - + path - G + F - + path D - + path C - - path - Q - - + path - H + E - + path A - + path G - + path - C + H - + path P - + path - D + T - + path - S + K - + path - E + S - + path - T + Q - + path - F + G - + path - K + H - + path S - + path - P + F - + path - E + D - + path T - - path - Q - - + path - K - - - path - F + E - + path C - - path - H - - + path - G + Q - + path A - + path - D + P - + path - D + K - + path - P + K - + path - E + T - + path - F + E - + path A - + path - H + D - + path S - + path - K + F - + path - C + H - + path - T + G - + path Q - + path - K + C - + path - Q + P - + path - F + T - + path H - + path - G + A - + path - C + F - + path - A + C - + path - S + E - + path - T + K - + path P - + path E - - path - D - - + path T - + path A - + path C - + path D - - path - E - - - path - Q - - - path - P - - - path - H - - + path S - + path - K + H - + path F - - path - G - - - path - D - - + path Q - - path - H - - + path - F + K - + path - S + G - + path - A + F - + path - T + Q - + path - P + D - + path C - + path - D + H - + path - A + T - + path - E + A - + path P - - path - G - - + path - T + E - + path - H + K - + path - C + G - + path S - + path F - - path - Q - - + path - K + S - + path - Q + H - + path - H + D - + path - G + T - + path - P + A - + path - K + Q - + path - T + P - + path - S + G - + path - D + K - + path C - + path - F + E - + path - A + T - + path E - + path - A + G - + path D - + path - P + S - + path - F + C - + path - C + K - + path - S + F - + path - G + H - + path - E + A - + path - K + Q - + path - H + P - + path Q - + path - T + A - + path D - + path P - + path C - - path - H - - - path - S - - + path E - - path - T - - + path G - - path - F - - + path - Q + S - + path K - + path - A + H - + path F - + path - C + T - + path P - + path - K + Q - + + path + S + + path H - + path - Q + G - + path A - + path - T + C - + path - S + K - + path - G + E - + path - true - Q + T - + path - true - E + F - + path D - + path - E + G + + + path + A - + path F - + + path + C + + path K - + path - E + T - + path - A + H - + path - T + E - + path - C + D - + path - H + Q - + path - A + P - + path S - + path - T + K - + path C - - path - true - Q - - + path D - + path - H + T - + path - K + A - + path P - + path - true E - + + path + true + P + + path F - + path Q - + path - G + S - + path - E + G - + path - A + H - + path - K + D - + path - D + H - + path - F + T - + path - H + A - + path Q - + path - T + S - + path - E + G - + path - P + E - + path - C + K - + path - G + F - + path - S + P - + path - Q + C - + path E - + path - K + G - + path T - - path - G - - + path D - + path - S + F - + path C - + path - A + S - + path - F + H - + path P - + path - H + K - + path - F + Q - + path - C + A - + path - H + K + + + path + C - + path E - + + path + F + + path A - + path - P + H + + + path + T - + path G - + path - T + C - + path - Q + E - + path - D + T - + path - S + F - + path K - + path - T + S - + path H - + path - F - - - path - C + D - + path - K + P - + path A - + path - E + Q - + path Q - + path - S + K - + path - H + D - + path - K + S - + path - G + F - + path P - + path A - + path - F + H - + path T - - path - D - - + path E - + path C - + path - A + G - + path - S + P - + path - K + H - + path - C + G - + path T - + path - D + K - + path - G + A - + path - F + D - + path E - - path - P - - + path Q - - path - H - - + path - D + C - + path - G + S - + path F - + path - Q + G - + path - P + K - + path - H + E - + path - K + T - + path S - + path - C + Q - + path - E + D - + path - T + H - + path A - + path - C + F - + path - E + P - + path - G + C - + path F - - path - H - - + path - D + T - + path - S + Q - + path - Q + E - + path A - + path - P + D - + path - K + H - + path - T + G - + path - H + C - + path - F + K - + path S - + path - K + P - + path - P + S - + path - T + Q - + path D - + path - C + A - + path - E + F + + + path + C - + path G - + path - Q + T - + path - A + K - + path - D + P - + path - A + E - + path - T + H - + path - E + C - + path G - + path K - + path - S + F - + path - C + P - + path - Q + D - + path - F + T - + path - P + A - + path H - + path - F + Q - + path - Q + E - + path - H + K - + path - S + P - + path - K + S - + path - P + F - + path T - + path - D + A - + path E - + path - C + H - + path - G + Q - + path - A + D - + path - K + C - + path - P + G - + path E - - path - D - - + path F - + path - C + T - + path - A + Q - + path - G + H - + path - Q + S - + path - T + P - + path - S + D - + path - H + K - + path - K + C - + path G - + path - T + A + + + path + K - + path H - + + path + Q + + + path + C + + path S - + path E - + path - D + F - + path - Q + D - + path P - + path - A + T - + path - C + A - + path - F + A - + path - E + H - + path - Q + C - + path - A + S - + path - H + T - + path F - + path - T + D - + path P - + path - K + Q - + path - S + P - + path - C + G - + path D - + path - G + A - + path - E + H - + path - A + E - + path T - - path - P - - + path - C + F - + path Q - + path - D + C - + path S - + path - F + K - + path - K + T - + path - H + F - + path - P + Q - + path - S + D - + path - E + A - + path - H + P - + path - D + G - + path - C + S - + path H - + path E - + + path + K + + path C - + + path + A + + path D - + path P - + path - S + F - + path Q - + path C - - path - E - - - path - P - - + path - S + H - + path G - + path - H + E - + path T - + path - F + S - + path - D + K - + path - A + K - + path - A + H - + path S - - path - T - - + path - F + C - + path D - + path G - + path - H + E - + path - C + T - + path - E + Q - + path P - + path - Q + A - + path - Q + F - + path - G + P - + path - C + A - + path - D + K - + path - A + true + Q - + path Q - + path - E + C - + path - P + T - + path - F + G - + path - H + true + E - + path - S + E - + path - T + H - + path - E + D - + path - G + F - + path - F + S - + path - D + T - + path - P + K - + path + true Q - + path - C + S + + + path + P - + path A - + path - S + H - + path - T + C - + path - H + D diff --git a/t/data/simple.txt b/t/data/simple.txt new file mode 100644 index 0000000..8be9717 --- /dev/null +++ b/t/data/simple.txt @@ -0,0 +1,23 @@ +A B C +Je Je Je +suis suis suis +dépourvu dépourvu depourvu +de de de +foi foi foi +et et et +ne ne ne +puis puis puis +donc donc donc +être être être +"heureux," "heureux," "heureux," +l'être le lézard l'être +humain humain +doit doit doit +mettre mettre mettre +des des des +millions millions millions +d'années d'années d'années +pour pour pour +devenir devenir devenir +un un un +lézard! être humain lézard! \ No newline at end of file diff --git a/t/inline2test.conf b/t/inline2test.conf new file mode 100644 index 0000000..d365b49 --- /dev/null +++ b/t/inline2test.conf @@ -0,0 +1,6 @@ +input=lib +output=t +execute=0 +verbose=1 +readonly=1 +header=inline2text.txt diff --git a/t/text_tradition.t b/t/text_tradition.t new file mode 100644 index 0000000..7ddc7e1 --- /dev/null +++ b/t/text_tradition.t @@ -0,0 +1,59 @@ +#!/usr/bin/perl -w + +use strict; +use Test::More 'no_plan'; +$| = 1; + + + +# =begin testing +{ +use_ok( 'Text::Tradition', "can use module" ); + +my $t = Text::Tradition->new( 'name' => 'empty' ); +is( ref( $t ), 'Text::Tradition', "initialized an empty Tradition object" ); +is( $t->name, 'empty', "object has the right name" ); +is( scalar $t->witnesses, 0, "object has no witnesses" ); + +my $simple = 't/data/simple.txt'; +my $s = Text::Tradition->new( + 'name' => 'inline', + 'input' => 'Tabular', + 'file' => $simple, + ); +is( ref( $s ), 'Text::Tradition', "initialized a Tradition object" ); +is( $s->name, 'inline', "object has the right name" ); +is( scalar $s->witnesses, 3, "object has three witnesses" ); + +my $w = $s->add_witness( 'sigil' => 'D' ); +is( ref( $w ), 'Text::Tradition::Witness', "new witness created" ); +is( $w->sigil, 'D', "witness has correct sigil" ); +is( scalar $s->witnesses, 4, "object now has four witnesses" ); + +# TODO test initialization by witness list when we have it +} + + + +# =begin testing +{ +use Text::Tradition; + +my $simple = 't/data/simple.txt'; +my $s = Text::Tradition->new( + 'name' => 'inline', + 'input' => 'Tabular', + 'file' => $simple, + ); +my $wit_a = $s->witness('A'); +is( ref( $wit_a ), 'Text::Tradition::Witness', "Found a witness A" ); +if( $wit_a ) { + is( $wit_a->sigil, 'A', "Witness A has the right sigil" ); +} +is( $s->witness('X'), undef, "There is no witness X" ); +} + + + + +1;