Lingua-Translit-0.24/0000755000175000017500000000000012625256311013747 5ustar alinkealinkeLingua-Translit-0.24/lib/0000755000175000017500000000000012625256311014515 5ustar alinkealinkeLingua-Translit-0.24/lib/Lingua/0000755000175000017500000000000012625256311015734 5ustar alinkealinkeLingua-Translit-0.24/lib/Lingua/Translit/0000755000175000017500000000000012625256311017534 5ustar alinkealinkeLingua-Translit-0.24/lib/Lingua/Translit/Tables.pm0000644000175000017500000001627612625256267021332 0ustar alinkealinkepackage Lingua::Translit::Tables; # # Copyright (C) 2007-2008 ... # Alex Linke # Rona Linke # Copyright (C) 2009-2015 Lingua-Systems Software GmbH # use strict; use warnings; use utf8; require 5.008; our $VERSION = '0.11'; use Carp; =pod =encoding utf8 =head1 NAME Lingua::Translit::Tables - provides transliteration tables =head1 SYNOPSIS use Lingua::Translit::Tables qw/:checks/; my $truth; $truth = translit_supported("ISO 9"); $truth = translit_reverse_supported("ISO 9"); use Lingua::Translit::Tables qw/:list/; translit_list_supported(); =head1 DESCRIPTION This module is primary used to provide transliteration tables for L and therefore allows one to separate data and algorithm. Beyond that, it provides routines to check if a given transliteration is supported and allows one to print a simple list of supported transliterations along with some meta information. =head1 EXPORTS No symbols are exported by default. Use either the routine's name or one of the following I to import symbols to your namespace. =over 4 =item B Import all routines. =item B Import all routines that allow one to check if a given transliteration is supported: translit_supported() and translit_reverse_supported(). =item B Import translit_list_supported(). (Convenience tag) =back =cut require Exporter; our @ISA = qw/Exporter/; our @EXPORT = qw//; # Export nothing by default our @EXPORT_OK = qw/translit_supported translit_reverse_supported translit_list_supported/; our %EXPORT_TAGS = ( checks => [qw/translit_supported translit_reverse_supported/], list => [qw/translit_list_supported/], all => [@EXPORT_OK] ); # For convenience, the tables are initialized at the bottom of this file. our %tables; # Used internally to retrieve a reference to a single transliteration table. sub _get_table_reference { my $name = shift(); return unless $name; $name = _get_table_id($name); foreach my $table ( keys %tables ) { return _handle_perl_unicode_bug( $tables{$table} ) if $table =~ /^$name$/i; } return; } # Handle the "Unicode Bug" affecting code points in the Latin-1 block. # # Have a look at perlunicode (section "The 'Unicode Bug'") for details. sub _handle_perl_unicode_bug { my $tbl = shift(); foreach my $rule ( @{ $tbl->{rules} } ) { utf8::upgrade( $rule->{from} ); utf8::upgrade( $rule->{to} ); if ( defined( $rule->{context} ) ) { utf8::upgrade( $rule->{context}->{before} ) if defined $rule->{context}->{before}; utf8::upgrade( $rule->{context}->{after} ) if defined $rule->{context}->{after}; } } return $tbl; } =head1 ROUTINES =head2 translit_supported(I) Returns true (1), iff I is supported. False (0) otherwise. =cut sub translit_supported { return ( _get_table_reference( _get_table_id( $_[0] ) ) ? 1 : 0 ); } =head2 translit_reverse_supported(I) Returns true (1), iff I is supported and allows reverse transliteration. False (0) otherwise. =cut sub translit_reverse_supported { my $table = _get_table_reference( _get_table_id( $_[0] ) ); croak("Failed to retrieve table for $_[0].") unless ($table); return ( ( $table->{reverse} =~ /^true$/ ) ? 1 : 0 ); } =head2 B Prints a list of all supported transliterations to STDOUT, providing the following information: * Name * Reversibility * Description The same information is provided in this document as well: =cut sub translit_list_supported { foreach my $table ( sort keys %tables ) { my $t = $tables{$table}; print "$t->{name}, ", ( $t->{reverse} eq "false" ? "not " : "" ), "reversible, $t->{desc}\n"; } } =head1 SUPPORTED TRANSLITERATIONS =over 4 =item Cyrillic I, not reversible, ALA-LC:1997, Cyrillic to Latin, Russian I, reversible, ISO 9:1995, Cyrillic to Latin I, reversible, ISO 9:1954, Cyrillic to Latin I, reversible, DIN 1460:1982, Cyrillic to Latin, Russian I, reversible, DIN 1460:1982, Cyrillic to Latin, Ukrainian I, reversible, DIN 1460:1982, Cyrillic to Latin, Bulgarian I, not reversible, The Streamlined System: 2006, Cyrillic to Latin, Bulgarian I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin, Russian I, not reversible, GOST 7.79:2000 (table B), Cyrillic to Latin with support for Old Russian (pre 1918), Russian I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin, Ukrainian =item Greek I, not reversible, ISO 843:1997, Greek to Latin I, not reversible, DIN 31634:1982, Greek to Latin I, not reversible, Greeklish (Phonetic), Greek to Latin =item Latin I, not reversible, Czech without diacritics I, not reversible, German without umlauts I, not reversible, Unaccented Polish I, not reversible, Romanian without diacritics as commonly used I, not reversible, Slovak without diacritics I, not reversible, Slovenian without diacritics I, reversible, Romanian with appropriate diacritics =item Arabic I, not reversible, Common Romanization of Arabic =back =head1 ADDING NEW TRANSLITERATIONS In case you want to add your own transliteration tables to L, have a look at the developer manual included in the distribution. An online version is available at L. A template of a transliteration table is provided as well (F) so you can easily start developing. =head1 BUGS None known. Please report bugs to perl@lingua-systems.com. =head1 SEE ALSO L L =head1 CREDITS Thanks to Dr. Daniel Eiwen, Romanisches Seminar, Universitaet Koeln for his help on Romanian transliteration. Thanks to Dmitry Smal and Rusar Publishing for contributing the "ALA-LC RUS" transliteration table. Thanks to Ahmed Elsheshtawy for his help implementing the "Common ARA" Arabic transliteration. Thanks to Dusan Vuckovic for contributing the "ISO/R 9" transliteration table. Thanks to Ștefan Suciu for contributing the "ISO 8859-16 RON" transliteration table. =head1 AUTHORS Alex Linke Rona Linke =head1 LICENSE AND COPYRIGHT Copyright (C) 2007-2008 Alex Linke and Rona Linke Copyright (C) 2009-2015 Lingua-Systems Software GmbH This module is free software. It may be used, redistributed and/or modified under the terms of either the GPL v2 or the Artistic license. =cut # Get a table's identifier (based on the table's name) # i.e "Common DEU" -> "common_deu" sub _get_table_id { my $name = shift(); return "" unless $name; $name =~ s/\s/_/g; return lc($name); } # For convenience, the next line is automatically substituted with the set # of transliteration tables at build time. %tables; # PLACEHOLDER 1; # vim: sts=4 sw=4 ts=4 ai et Lingua-Translit-0.24/lib/Lingua/Translit.pm0000644000175000017500000002506612625256267020115 0ustar alinkealinkepackage Lingua::Translit; # # Copyright (C) 2007-2008 ... # Alex Linke # Rona Linke # Copyright (C) 2009-2015 Lingua-Systems Software GmbH # use strict; use warnings; require 5.008; use Carp qw/croak/; use Encode qw/encode decode/; use Lingua::Translit::Tables; our $VERSION = '0.24'; =pod =encoding utf8 =head1 NAME Lingua::Translit - transliterates text between writing systems =head1 SYNOPSIS use Lingua::Translit; my $tr = new Lingua::Translit("ISO 843"); my $text_tr = $tr->translit("character oriented string"); if ($tr->can_reverse()) { $text_tr = $tr->translit_reverse("character oriented string"); } =head1 DESCRIPTION Lingua::Translit can be used to convert text from one writing system to another, based on national or international transliteration tables. Where possible a reverse transliteration is supported. The term C describes the conversion of text from one writing system or alphabet to another one. The conversion is ideally unique, mapping one character to exactly one character, so the original spelling can be reconstructed. Practically this is not always the case and one single letter of the original alpabet can be transcribed as two, three or even more letters. Furthermore there is more than one transliteration scheme for one writing system. Therefore it is an important and necessary information, which scheme will be or has been used to transliterate a text, to work integrative and be able to reconstruct the original data. Reconstruction is a problem though for non-unique transliterations, if no language specific knowledge is available as the resulting clusters of letters may be ambigous. For example, the Greek character "PSI" maps to "ps", but "ps" could also result from the sequence "PI", "SIGMA" since "PI" maps to "p" and "SIGMA" maps to s. If a transliteration table leads to ambigous conversions, the provided table cannot be used reverse. Otherwise the table can be used in both directions, if appreciated. So if ISO 9 is originally created to convert Cyrillic letters to the Latin alphabet, the reverse transliteration will transform Latin letters to Cyrillic. =head1 METHODS =head2 new(I<"name of table">) Initializes an object with the specific transliteration table, e.g. "ISO 9". =cut sub new { my $class = shift(); my $name = shift(); my $self; # Assure that a table name was set croak("No transliteration name given.") unless $name; # Stay compatible with programs that use Lingua::Translit < 0.05 if ( $name =~ /^DIN 5008$/i ) { $name = "Common DEU"; } my $table = Lingua::Translit::Tables::_get_table_reference($name); # Check that a table reference was assigned to the object croak("No table found for $name.") unless $table; # Assure the table's data is complete croak("$name table: missing 'name'") unless defined $table->{name}; croak("$name table: missing 'desc'") unless defined $table->{desc}; croak("$name table: missing 'reverse'") unless defined $table->{reverse}; croak("$name table: missing 'rules'") unless defined $table->{rules}; # Copy over the table's data $self->{name} = $table->{name}; $self->{desc} = $table->{desc}; $self->{rules} = $table->{rules}; # Set a truth value of the transliteration's reversibility according to # the natural language string in the original transliteration table $self->{reverse} = ( $table->{reverse} =~ /^true$/i ) ? 1 : 0; undef($table); return bless $self, $class; } =head2 translit(I<"character oriented string">) Transliterates the given text according to the object's transliteration table. Returns the transliterated text. =cut sub translit { my $self = shift(); my $text = shift(); # Return if no input was given return unless $text; my $utf8_flag_on = Encode::is_utf8($text); unless ($utf8_flag_on) { $text = decode( "UTF-8", $text ); } foreach my $rule ( @{ $self->{rules} } ) { if ( defined $rule->{context} ) { my $c = $rule->{context}; # single context rules if ( defined $c->{before} && !defined $c->{after} ) { $text =~ s/$rule->{from}(?=$c->{before})/$rule->{to}/g; } elsif ( defined $c->{after} && !defined $c->{before} ) { $text =~ s/(?<=$c->{after})$rule->{from}/$rule->{to}/g; } # double context rules: logical "inbetween" elsif ( defined $c->{before} && defined $c->{after} ) { $text =~ s/ (?<=$c->{after})$rule->{from}(?=$c->{before}) /$rule->{to}/gx; } else { croak("incomplete rule context"); } } else { $text =~ s/$rule->{from}/$rule->{to}/g; } } unless ($utf8_flag_on) { return encode( "UTF-8", $text ); } else { return $text; } } =head2 translit_reverse(I<"character oriented string">) Transliterates the given text according to the object's transliteration table, but uses it the other way round. For example table ISO 9 is a transliteration scheme for the converion of Cyrillic letters to the Latin alphabet. So if used reverse, Latin letters will be mapped to Cyrillic ones. Returns the transliterated text. =cut sub translit_reverse { my $self = shift(); my $text = shift(); # Return if no input was given return unless $text; # Is this transliteration reversible? croak("$self->{name} cannot be reversed") unless $self->{reverse}; my $utf8_flag_on = Encode::is_utf8($text); unless ($utf8_flag_on) { $text = decode( "UTF-8", $text ); } foreach my $rule ( @{ $self->{rules} } ) { if ( defined $rule->{context} ) { my $c = $rule->{context}; # single context rules if ( defined $c->{before} && !defined $c->{after} ) { $text =~ s/$rule->{to}(?=$c->{before})/$rule->{from}/g; } elsif ( defined $c->{after} && !defined $c->{before} ) { $text =~ s/(?<=$c->{after})$rule->{to}/$rule->{from}/g; } # double context rules: logical "inbetween" elsif ( defined $c->{before} && defined $c->{after} ) { $text =~ s/ (?<=$c->{after})$rule->{to}(?=$c->{before}) /$rule->{from}/gx; } else { croak("incomplete rule context"); } } else { $text =~ s/$rule->{to}/$rule->{from}/g; } } unless ($utf8_flag_on) { return encode( "UTF-8", $text ); } else { return $text; } } =head2 can_reverse() Returns true (1), iff reverse transliteration is possible. False (0) otherwise. =cut sub can_reverse { return $_[0]->{reverse}; } =head2 name() Returns the name of the chosen transliteration table, e.g. "ISO 9". =cut sub name { return $_[0]->{name}; } =head2 desc() Returns a description for the transliteration, e.g. "ISO 9:1995, Cyrillic to Latin". =cut sub desc { return $_[0]->{desc}; } =head1 SUPPORTED TRANSLITERATIONS =over 4 =item Cyrillic I, not reversible, ALA-LC:1997, Cyrillic to Latin, Russian I, reversible, ISO 9:1995, Cyrillic to Latin I, reversible, ISO 9:1954, Cyrillic to Latin I, reversible, DIN 1460:1982, Cyrillic to Latin, Russian I, reversible, DIN 1460:1982, Cyrillic to Latin, Ukrainian I, reversible, DIN 1460:1982, Cyrillic to Latin, Bulgarian I, not reversible, The Streamlined System: 2006, Cyrillic to Latin, Bulgarian I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin, Russian I, not reversible, GOST 7.79:2000 (table B), Cyrillic to Latin with support for Old Russian (pre 1918), Russian I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin, Ukrainian =item Greek I, not reversible, ISO 843:1997, Greek to Latin I, not reversible, DIN 31634:1982, Greek to Latin I, not reversible, Greeklish (Phonetic), Greek to Latin =item Latin I, not reversible, Czech without diacritics I, not reversible, German without umlauts I, not reversible, Unaccented Polish I, not reversible, Romanian without diacritics as commonly used I, not reversible, Slovak without diacritics I, not reversible, Slovenian without diacritics I, reversible, Romanian with appropriate diacritics =item Arabic I, not reversible, Common Romanization of Arabic =back =head1 ADDING NEW TRANSLITERATIONS In case you want to add your own transliteration tables to L, have a look at the developer manual included in the distribution. An online version is available at L. A template of a transliteration table is provided as well (F) so you can easily start developing. =head1 RESTRICTIONS L is suited to handle B and utilizes comparisons and regular expressions that rely on B. Therefore, any input is supposed to be B (C, ...) instead of byte oriented. However, if your data is byte oriented, be sure to pass it B to translit() and/or translit_reverse() - it will be converted internally. =head1 BUGS None known. Please report bugs to perl@lingua-systems.com. =head1 SEE ALSO L, L, L C's manpage L =head1 CREDITS Thanks to Dr. Daniel Eiwen, Romanisches Seminar, Universitaet Koeln for his help on Romanian transliteration. Thanks to Dmitry Smal and Rusar Publishing for contributing the "ALA-LC RUS" transliteration table. Thanks to Ahmed Elsheshtawy for his help implementing the "Common ARA" Arabic transliteration. Thanks to Dusan Vuckovic for contributing the "ISO/R 9" transliteration table. Thanks to Ștefan Suciu for contributing the "ISO 8859-16 RON" transliteration table. =head1 AUTHORS Alex Linke Rona Linke =head1 LICENSE AND COPYRIGHT Copyright (C) 2007-2008 Alex Linke and Rona Linke Copyright (C) 2009-2015 Lingua-Systems Software GmbH This module is free software. It may be used, redistributed and/or modified under the terms of either the GPL v2 or the Artistic license. =cut 1; # vim: sts=4 sw=4 ts=4 ai et Lingua-Translit-0.24/README0000644000175000017500000000165712546667167014661 0ustar alinkealinkePerl Module Lingua::Translit ---------------------------- ABOUT Lingua::Translit can be used to convert text from one writing system to another, based on national or international transliteration tables. Where possible a reverse transliteration is supported. PREREQUISTES Perl 5.8.0 or above If you are going to work on the included XML definitions or even want to write your own, XML::LibXML is needed as well. INSTALLATION To test and install Lingua::Translit, untar the archive and execute perl Makefile.PL make make test make install CONTACT You are welcome to contact the authors at perl@lingua-systems.com if you have any suggestions and contributions. COPYRIGHT AND LICENSE Copyright (C) 2007-2008 Alex Linke and Rona Linke Copyright (C) 2009-2015 Lingua-Systems Software GmbH This module is free software. It may be used, redistributed and/or modified under the terms of either the GPL v2 or the Artistic license. Lingua-Translit-0.24/META.yml0000644000175000017500000000105712625256311015223 0ustar alinkealinke--- #YAML:1.0 name: Lingua-Translit version: 0.24 abstract: transliterates text between writing systems author: - Alex Linke license: unknown distribution_type: module configure_requires: ExtUtils::MakeMaker: 0 build_requires: ExtUtils::MakeMaker: 0 requires: {} no_index: directory: - t - inc generated_by: ExtUtils::MakeMaker version 6.57_05 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 Lingua-Translit-0.24/tools/0000755000175000017500000000000012625256311015107 5ustar alinkealinkeLingua-Translit-0.24/tools/substitute_tables.pl0000755000175000017500000000156412337323551021223 0ustar alinkealinke#!/usr/bin/perl -w # # Copyright (C) 2007-2008 Alex Linke # Copyright (C) 2009-2014 Lingua-Systems Software GmbH # use strict; use IO::File; my $tbl_file = 'xml/tables.dump'; my $infile = $ARGV[0] || die "usage: $0 file"; my $fh = new IO::File(); local $/; # read input file $fh->open($infile) or die "$infile: $!\n"; my $in_content = <$fh>; $fh->close(); # read tables file $fh->open($tbl_file) or die "$tbl_file: $!\n"; my $tbls = <$fh>; $fh->close(); if ( $in_content =~ s/\n\%tables;\s+# PLACEHOLDER\s*\n/\n$tbls\n/ ) { print "$infile: substituted tables: " . length($tbls) . " bytes.\n"; } else { print "$infile: no substitution.\n"; exit 1; } chmod 0644, $infile or die "chmod: $!\n"; # write output to input file $fh->open("> $infile") or die "$infile: $!\n"; print $fh $in_content; $fh->close(); # vim: sts=4 sw=4 ts=4 ai et Lingua-Translit-0.24/developer-manual__eng.pdf0000644000175000017500000116075512337323551020712 0ustar alinkealinke%PDF-1.5 % 74 0 obj << /Length 348 /Filter /FlateDecode >> stream xuRN0+2QrCB.M Ii{*|o= \'}Q%+*&D*(,4T xJg6,ȸL}]sm҇Ɉz=W`$*% C˱|\ڍ%`NܻrU"# e7j_OUF8nf@|%*!ׄ$La=@fC^p6!׎8t= \*~91ghD~!CY[uܝ1Nq!Ke 'J^V{*B 4$TL|'ȵ2}J+ByEfmι endstream endobj 72 0 obj << /Type /XObject /Subtype /Image /Width 3189 /Height 1181 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 135131 /Filter /FlateDecode >> stream xwU7y>̽juԶ-R5hXAVfc'hIqT:ƴ=_k59gVz1 Bs?yֵfug'37111vU_7 ]J- CM[jo\sA];_dYsOС7:r$>@UPmzl ߫b1|RU_u7y 7'yС7FFN\j#z}`3;IٵZjGvlС7NW* ,&&S]`յK V-)Uo~q;;75ȁ7=T%꿯'6?5`+Psԑ#G~;[RUwzbS&&&\l*39*VGwQ v؁7lxJ?UuRU VoucsGT*.$6j3?7嚪fikHU]vxĈyVsozlHBURUշ~}cc]lZj?SU֝w7ΐPLRUOUez~ノO\Pʑ#Gm7| SUs-?9122Ȟ7:U%J8UW]y}G1ܹC~{L͛{:xCȑةQ#CWTV&S߻7~)dKsOUmԓաȪZ?r-ubɫ'6?qokMr𵩩)16ߔ{j7os`+ ]511qсCo\G.^'dKwg~cj~6*غӇս`ղ?}UBVhGΥ{3;>;RpЛO9} /TRUW_scnch;7g MU~]:cEVTfCm:}Uf*^?UU[xъoI9}ΝܰT՜+3xuj&&&*]SSS/uIUX* ;2}TUVwm\U$J十_^ijqz]szmSSSĦǶ\*Ugv:QQЀTZwKл@aUf*rT՚es 5rOUͩĤP4G]s6ZjSU|7M[.:r5Ri7.wjvcT>(XBJ7ܱZ]Y|띿zWX###w}aj#GJÅʛoR!\RUs'V:@T* Xum:?̯Zʿ.kM7kt@3xxfj*"SSSO>mRUs_X|ΝڼiT`KtKUͮG721nЪ\7~֎ŧ.˺e]ǎ勡U=TUFR255s?[T՜zş[ҽ38g?ܹ)a9>{~p2fպ- (r/puOR;uZgXVJ_^_Te}GWtȉC~gpH[hO&&ydrԛo++v*RU{vM|%-{nwRm5v@7<6>cսy9RUn4^\Z wZ}5R oruo<}V4p;^)@*ʎ;Ze}ܔP(LLޮSUsرŎW :eHD{=`՚57Zϗ#U5V4Lg{Gxq |!ଡUJEO(яnY߹ j ;[#DU*={^0MMMuw?{jv=VxlUg{SMLLlU$_>aO&` ƎWsklh\tQSUn^oG `l.2С7ZuOZEE9$N>am[[xU\vJc__}]V i|SU:v}M]lժG ظᯯ._k;~%aU]]N0v5|}u{h! }:MUIX,}}NȑW_f-_U+G}OX唪]_lUKKx#NTUJ8VyVAm۶s1MNN-rlڶ6ɷū^>clj'sIUeu;jiOMkTS?3Xݏ_s@3;-[+勄Sf׶g[it)v|}xՙ'+&''h/TWu/|Po;^uv|)(X*+g 4W %V?[ Vjiq)˙`٪m;Va番]z 4UN9E~ZxUN 4/TUn jUo1;^)哏W OXFo\RUkh,<ĎW JN9EJWMUX̳f/@X;^U.rr?8V`eêV7SU>u@3ZSt`m;V`LNNw(T욜r)zk`OXoO敪Z-SĆ`ߖ8V`e`.Z}o]GVwX 񪓣N9EZxUӎXq۞y6Tzw4jukkx#NTUcZ\RU̙q)˱Ukڜr~[>,^ ?UU;XVfTSU~c/Tڽ{t)v|}xՙ'+P(vKjv@$Ugǝrer@Tq.Y?-FlUV8E9,[tcs V-OWU8;>;[S4,^5].ٵgK +vSNц,^5UcR{Ͼ\RUn@VƎWLO;T:,[Ὧ9V >_ؕK^>ي@ -3ӱUkڜr~[>,^ Whjv $dTSUٟȱٱsIUz9sVcTw)v|}xՙ'+?+TUl٦@*:;bǫN:uū)~'Tk,U--U8E9,[tcCrIU{8S \.Vuw8 O,^+3g撪]{@ ƎWu),^ǯ9V i{K^73g5(]UCN9Eێ $O\RUz'4(rS,[3璪]wTcŠZSt`٪m;V jC璪=>k(UN9E~ZxUN p_i,P@Ur^>xxoG+Ǝ?%U5ΟTc;^5\*9mxkUS?;V 3g敪Ν5(խU3N99տNVu+L}SU~z9sVc☙ZSt`m;V ?啪V@r)zk`OXxxJUMUͮ?X ŎW ;:!XOJUz- DwWWxQ_CxUӎrIU.X;^S4UslՆXΟ4TV@٪mmN9E- z>j/ꇵ:~|Dc5\*ŎWu),^ǯ9V ?+UU/7vjhp)hUgΟp@l{9T;^uv|)(X*+g wټRUoV<ڣ h/ge_XfݹfVJ9;>;[S4U[/Fߖ8VT+`e ƎWsHwo%U5N/okOOxp{h^z|v-v\.;ehjz%U5[oZ׼RUY}e 5hU]]NOJUͮ_@NVg敪[ 4LwWWxQ +FJUuWUcukkx#%U5>`Dc(˱Ukڜ2C+UUGXK==NVm嶿/vj)޼RU:/4XnUgǝ2>+U5ժjUKKx#RtrttN U.\*qv|džZMZRUz?-|ΎVuw8ehjoX we+Sy4@fMQ+YDJj=- }g {K]pٗe #Or V~]E)hx&ӝ]a.Q)g]2ɮ}}_0^.m 393WA/"߲v@Ee*Y\`^y FTYHW6](Xj΋γ?y>},jG~3FUeE}3¯*\hhp0@・gaVMnW[X GV`Ex5Yƈ8Xeja&V-4ÔRyưo}UžJAu~Eju駟-0yASNQVNQ7Flqr~1V-`y>a}Ęx{=>;>!e'of17!&TK^9w+"Bmm1bdΩ^cͶ+*-"afR*m0/뵫M2h]ͣ?ɢUw\re_N)jΎmkk;+瘰 3L)gxKv;ހf (˂U+4Ky/JU}Uwu%HG]A GW4Fi2^/+cxW ŕ%cc*v sa\ ݾLN嘪o~sBomNuw8xcȴ  __l} ( o͹؆JV\z{K/;G1V͹hTRUj!f\kL9ƗX*[_{Z+-+l,l_UN0޴0!r#+UUժKo<@^MGn8p.ܠk+ť SJ#mvu;5]}fz6R(0P?z ,ZRPd3ӦDl8:;>ժ]Q $[6448hnÄY|d겯bj +7䘪ב#X𯉛6ZHWp0FLjLmE`1siŇބ3}/W(O?t񩪋jXmmlocj 0![¿b6wəl}wfv;^bg1t8ؐ"XoښWV_/;\t Hj/4'*[qaJ m}w]n/ETDM W_1UUg?[``?JA*JO1bUX-\E `#3}fe`>79c^_/;1rr)jxÑlV '[o<#TaV1&xѝ~.[K%I駟昪׽?[``[Hɨcl uK3F"'(1.>.*oҲkSU V=X#~D\Gx& Dp43=c1l ]rLLL%~r*˅vϗHsUʾT^:c^/sHlo#"ҥ%#*(^pe'cR*aV1 i&y9|SUz \x+ldkr^MD1bmkG"[cR* 0/~.[Iٳ瘪{>[ԩ1.vKSNNԅt)7FL@6H._/T{DvvUv˼)GZ1U5?…N\V^ NnN5LSΖ/fR*6Rŗ:BHڦ[0UUOo suGxDv`5R˚ 3L)9^ݎ2Lnvfz:މVv.X弄9v˹sS ,Dls)(BDp j[rlɲN‰1L)g vifz:^@%R߾ wsLU{:k/ss)j ,GSjT&W_a_֫+ݛyAy4TzMm^`!g'K%x }cj•^ǫ`CQv@_UhIՄ-ӟcjv^u ~@ȫɂH5+'O 1-G+x>9:3~H0XuT]?[}npD{ˊխ8E]]X m}5"EzM{T͹~c^߹j/0 ?KOTtNQ"M5[5m}o`^֖|=Je/c^[ױaà /{D75x&ӝfj-3gs&z{ [{zR7Z")U}f &"CEY 䘪}8[o+3>;􂪦5\*VvR5y٩x[{zm]=ץr<48a`syfz)''PD&&;g{E޷/̟7U--[{zra¿$=;>348hIA4P\9_%yR|MrL[[#H1,gbMԄUۺw[\RZz۽W]}`A.*Gx z5YoB+;x z-Xcf6:3FOϬmk lK?5}&VEb1UyZ^uǶ0p/;;r⽚LtZjOt ;w.S%^6x^]ng_h&%/eÄ>\E Gz}}W]`SN 'Ti f%RI | ZZ;ִ3Ry.u?i_U$\o U~1^z}Zz ~p䔓dq4Oarl L:<*nؓf̖x{viqċzdV4rju}n[zՃ5#r씓o!]Sd$CAm-誆e>84&|x"/.TPxUsUK V}_w֬~^9b\SdSboL[3%%7-Y42[U~f&5R ,ZU=anejSUֻZzÆ5-|v"ݍlM. tpT S]Kb:Dԃh|`3qU~av3oYP4K\8}W][fC^;E-B/#,X+lIRΐLþF59?#-!TUXW:5@]נ'GGrr J,bV|NMjEqӖV/^$x{EnƻԌf~bYRWŐo?z=VZȑ ԅRw\VtNQkUKˊbLbh[Ȍ<ɎIUl}4sH~U!XύU1<ȖRU}[m[ [6V:y5YeeY,MCtSRI\n;]Y_He%ٞ|SU?ܰ?7=E؃S<]&$:E-BEPj  /TfW5^ 6l>4+sU LU^8'UUZߤ@MDrr-KENgXt. ~[kk‡z;on# 4^HgaWQ4x"SU?H*ߜw2Sgى75x&ӝfi]q[MI5C*gx݌nſ#ee<OٵUW׍kS, 9S"ᨘխ u7,gxgQ}k5=(^Em2^W*u=W g "aeoO1BD]V!?g ?3.7yX~i^|Tս[x^|xա׮^"N "bݢƫ >"]^V%uTt? HYcǫJUjOu-^- DN]3 dqpT*`q 8'1Dv XUU//.Uu`W=^aà _S7\@)j!QUE o,>^3}iuZ* ldTecޟڐCV?Z*+}b, .*>Dkڊ|y ptgMVrWxI_9NByx^xUê҈[HWWoXa_\jue_w5p^SE7[ /xSUzUNi54/LOT6vW!?E/sQ^5"G7E 'Wy+ܯᄱUW|8`Kx}}oQapW3.l$v*g]nU!ROT"\֜xU. U^jhfV \WoX_ ڎ+IT{+rt#X_ZZ<16L0)aU LU]h'kN-^u`A2;Ęo!]_M^T GE~)|Gp泶Jhf#En2b41s.kkMmjhZgJdSdS+r2x" ȋ?ian#śWfgw;yW1UУO=tV~G !r,S)m)l݁Kb:^ڤOFt"5?ūMU=#?ޚu_ƫjhZ#⽚O B~ ;',@sd U NUkvM(voTSm8*1C&f$қƅ%Etn,K'#UUW@Ӌ6cXfZpHmq1X3 *ˢ 33=۫ZZ<2[feЗ񪅦.Xjk%^M.9)Ȅ0FTj}5I%#򢛍ocwWR~&:]zTUKOU]4^g&^v"řdSl8jHvj}-f9g{yFW,X\H{SU]ڼeGfǫ6=E[gx5Y65m%E`QUJ>L꽼f#es)y,^ZΩ/UU@i~fx V&zƈy֞`,`#m5*w3l{Ōnd`>XdSUں}O\r4]c!ت"V^Ǫ2u?gKЫ|@;Jۡ)jt8 mvtDV,;ܡ=>3Da^4Fl܎۬;PEK}\p<:Oξe~zo<3sАNĈd4V6ڇڤ Z>u2h 0/N*n,lGojX٪* 7uTWg'"M A_G݉6W[X^ !@Ѥ)jt8IWg6zGۊy#s. 6ѧWLFO. qJ}VUjXjb|)Pl4l7֣3]}\cS7%4B_UK& 7􍱏&~PN.qLݸ1(FWyf981bѷ dMƠsަ>syMJɫr{/*]\ڪ _ڏWw773.BC:!6 (3]L8gCn>P&3K|K٪:zMV/mի=` 4!*h5blҗL*mh:@ݴI6Q6{[Z40R)"J}KofoOV*,ot[zS}+@_‰)jt8ɱBxLuu&nRh| ڪ*_}U^+9#f}?AMtM6{>uuv*dRҼ-A鲰omgU XŪ2_n[z)Pb]D_‰Gb$w8Z畍&t.R]͞ml&[H[WyP6ڣ鴣{*J}Kbիe뽦oa^u>3;t4EG6rF{ws3o=o|3 'B F&fR6}ɤAVf )fOYD_6v/UtY(jVUcUXUAխ2DhEi@C:9;DhgY nkb\kSnN$sMHU6鲰#WGǿfU}] ˪ V v+%x4G!au:eQƗowV+l_&x\?C[#/e"g M2N#fl&hG2cPrwkisc(m:Ԩ{N. eYUuUU}Vꝷ s'\OM2N&Bۺ:; h:M [y׽v i6ѧQB5\pꭺso-ϡW|>3W&7/FLrChRY1zfOYDiʼ@ozN. VoVf*n7 s'N}G&xa57 [u&]Fۡ&nߊenDbseTRtM_BVcUvΛz?.WݺyPl|fN@# m$p5|[{ Mhr8>9NQH f3Yn,lÏ&[UlUuGe*@%N]O&@MM/C g3|]͞nu++>XGG_2iaéIt7]ғcUzmuZ[2*Q-c̲p"}1b;fTJF+>Gݴ2ShoF_gh1K076* 5ZUsXUonyn^uţLHܣfM 8sLX'Nucf~94!CѤ)jĈp[M rWg'> o{ MBh;фTUVh,le죩W_/Bb׺{v|><Uo3HSO'AEF#fM-\Q9n1G޼񕍶&]I[}dVe!vwB|{G[x_8JYjxxk,/'/^>}&qXL*ĩb[?`]!#f\.X8{@ݴ>P~R}J[WM.tY(֭׻CzՍsD꽢O%Y\M1b.9Wwz U4Y}1b;Fp[A VkURۏЏ;Unj@}d[U[OLqctUU } $MV1(DtwMv77+mMHe_b]Ә. Y[[kتzzX^51>@Mj8O]y}@Ѥ)jt8Fji/Е=M^h-]%٭z+ OxKv{B~T/_eYΝ&ݨW@UM>X^=ĉN>3WZ>Opd}m4-,pWMv[FhV]%ܭzͫP^XUU"V^;[̳֭TԉS]HSV˅:ĂΒbtr F&{[Zl%MƠs ĕsyM~IC2\pJY>鲰ϖ뷪U[Ī?ZU{^uţL Tf|b> $ bAYgI ?АNb$w82[y뱰1͡syMh& |Քn,lᱯYUUm-WvہXbǸ& T &@#[OwK#}cn2F[etX"6B/66"e 23;Xz&/(4u5bme¢?+{ Md3e2K/A8. $Uuw8xe*Sw0/3 Tĩ. +K&e@5blrMh Vsna׌ؕsyMKi([Rbj鲰 p*uNu<,E 10@N\ҹG}1bG[| %y1P7mI: \YO-掦o߮XDzzՑ2/03;Q' +P>w!CѤ)jt8Z>Oh=@O,s!:GdifqF-KP%cMaUb}OիyyBa=q 42J@C:!&Bdą0eU}dcMFM/66[UA[e*S7n15.ZW>w_R]̲p4):Dyl)B_+,2ԁ ge[Qh,$DjXժz`ꊩs;g/^qp@s'R)`;%<:ل6 h dSʴLWQ7mb F;jyM͵j|GeH+5YUĪڬb~P֭ڷ-S]MjfvBGiC*lIwSԈJJb>>,1P7mbLe=NKde݊R%rz~yXU+%b5]tՙW^ejdy9GC@9ePXpVjjb]DYwSpd}m{[Z&ĭy}ΉCMɣ f.c%m+ms7]NbUm*XUAmW 052>1${3 DhH'bl,Ա3)Ȼ@ݴZ>l6!UiT滲n,<^o .oWݹ`x K˜-)t/n+[r1}*X_D@P|= @Ѥ)jb$(՗LJdey:Gݴy(mMHh,\ªUuo[gҕ+]ڱ:7~=7\;wK˜=>|5WjɹŚ5P̚53:S% XLb$(>wd!pdBX^v3t'1u[]W4.%GEٗ jظ`VUE*~vU/8`6W{R4*[]N8+ɹ[J>qn݉'se6~B~| Uk|b{BAi>+I!#f}+0 1P7mrF{zJցBғ4峹. 궪걪LM=^J0nnoĪ*֡'G.ɼ؅]!^zGSbg6F Vnnf]p[ '#&Ñіڦ)Q\>WӭsyMChW+ (mxwDS`UVUQ j~^u-'/s6DDdRXU"YJ23XU"Ydǡƭ" wh5:DS6M2җIu&LBnb2^DYm!Tfbj:jpGbV˿z\?Ϸӫ^:qJEm>cJS.b23]BWٙ<ƪ7yaɹZ^FPyg3N&:D_h[.'K΅YL<MhT_2)j .tYxUUm;*z_Y֍6';ٿإ rJGKb֡'l,+*GLPh}%P5iGUBMi?v55 ge] le'ͺu.i}LFkn&tY$ېU٪(cU|[7oXtbn\וڗY NޖfEhH':Dc<(ғ:Gݴ _U`u+6KPbU{ɆUT۹U;n8=x*ˆW3+y$%+]M `xqC'iNP&@# m3W8teOݔlD Nj"ʾh,ZZgU]:I2>l;xd;+4 5G[eͰjf%;x(ӅKzϬ,q }|fl&CcR2|XcnFSә.^%@:. NWiU]ªJ WiU] /޻^5<<"p ֡'Gs/GwK\iԆ*+Baĩ.$L"oRKPNK*0AC:9#f]MMF{-Ň^Hc[6s45š:ӹ?Ԥ(.9+wW㲪zo;ԃ󢌣褣F^nd>K"#駤IOɑ4n OVW w_*@;3s;H\}3]ev$rccnr^g! 鲞3*Vfe;{/sVHG+ۡ_@ԑS.ɹel+V} >.VvMj_)m\)5:d4&Ub#6Q&Ļu-( [U_~5RUU ~SڈI딷=^Y{C{]CGͰ@y}$=V6f뀄!#f}ILqBҷǠ.+&PӻR(zh\`U³L굷~n΀7nI16וްtp[Z[ E`a#:䋽V8Յ{xJ*CO2b54Fif9811>Q6Yfa+AkbWQ7mҝH(mi6vsGe}& ת*#VmF ]}<]$ ܹvbZ̆uIM>"'v*CP ;n# 霈 ,Ch2(t\u&mv&(k+/|[eYެժz,V]:аU:t┴p{_J+5pw-lt5tIʳSw<}&Q_5oUPM^w@V񙹣;t4E1(;1PA%3j|lvw+W^z`Ԅ|>3W @M%BHdFi*}s{ MkiMLu/dmMKsC}cjpxG*Bcׯ~4eT }F,9CNNGO9thdf&[ݚ;?Hˮ7*֣c{38^ VW%+twfv ŇU  G6!&ЗC)gyWjۨ8\UUkQ[F̡qA]YJW ݺRS w'Y.Ώ1ziw(q\Bԣa^򙙝7yDˠ&}Hg:P,n1b6176&Cܟ=h+{WՙN_Qwe ZUWF]6?}z;j߾F̭΀A{ο[.9wew w'Xw+-yoK J[E_豣rmjƾUu*W_{Bto+I8sde:w 6C圻UuT@fh@m;wHאNd#fmmD*Am"XG{ 6{^%:;as|xu.'>˪*LϘ8\AqcNԠh2Ϲ6dǞwbW [yNI _peUP(lڪe@*Epd}bCK1gfW&j]MM US5XU#;[U_UZUc̏VyYi樄3tuJM-_bubQYh|"οP{Ы{efYkg $D_v 1b'HޥO;ʡ=͞طu,RHZ*\buZ+J7G2gkҥ ^l}Ƒ?3/s;V=rIC)}TW\kN>V¡3 ،P5iGU/FLfOh:lm}z3b{ WUNܰdRPKWRv?;J]tY4 jrGb׭kSϙ_^51>!mpMz w'+^.[z=4Q@X^&/1uLwkg iK碈yQf6Vrw*vC2(L~vER.!s V*DfsG[ݕpЫ˜ER9qQ('Rk8%gsU[Y]CP,eЗ*n'VyRlO9#Y^ʹk5Nz{Wir7]7GWhUǮhUM|Է[u3 zzzUݸt{-9 FN\UIe@M> @M"VWnkcx9a'vyhj-5tA'ZMO뵪Be[y&\YEB AGdZ}$S P߸E_扣)jR8$gD RFXG[#D*6+֜M3ْIgez.oleb}}=^꺩مgnu Gq8Jbcafv!5r 94@TdyhBem@ k<ƒYFk\}aMzʄ9xE|JnЉm!_XlԪ*#V`U5TJfgG%s^ҥZ/vp*RzP @b2sPN)]hH'blT6|{kիb -C*7{2_^25B*:v4]+׿(ZUW?8"u#;0`H8K5N1^^+Oԛ s2[ɫsPN)GMQ#&f2-X}aUnU*S?I5VP4zW|I Ӫ*>\{bg@= tzqR]Ŷ=Kf){2-.DD{IR5s'HΝ/eMpd BXKf2Rڷa]䢄SŞnwJ=_ž9Ŷ=)Y].Ig@$γhB2a/%/Cr6ݎ|x ZO|s:zK~FWvKִ[몮-ElVUo zoJɕm$:dewKs+RP{I#^%9 f`pHg~=&Sծ&;S3GUBMbOOq_2ig$=t:Wٓ3Ȋ`%tkqGe!gUZUצf>ժ j.{ި[ӹyW{Fޓ6pb/>uxYH:W!@D>3G5ϝtuvb8(L]GCy-U+Ο3R+*oL} 5zZUZUXU?3s߫V?ɹݒpV c,Ϲf g:./BCz  @kFDC:! RĈYC_h67zծHsjK57Oz՝'V9}x9:. ťUXU3 [UAUӭǞohwT;,ܝ3`OL0,ҫ̯ʛBgy9{@N)M 1;,&d6''Ȼ?[uo$3\Na(iJJNl&4h'UPUejѿT֫YqbTt]ȕ6k$+uIW.v'%q΀m*ѫx@Wv+9 ߵmCC:9Hh;UcWgg@*yaWuo$auwƔ)ʪD>V. MV'&g{*U/8ʨ^ ,/f9u$pfv^` >o$=|*lK&) .ĈDi!T1 kQf/ޖjܢk`M4u@]UXUTTqhl9j0*`pۉƣ|٨q(mT.|<]ѫo8qlct{i2;S\Bxڕ:;kJXGi>{X⹼)1^ɼkۡUwUnm!lfX Ījg?]ʙ\j3Ϻ5 w'} x/sևVǞw3N? N /_hBi> oͻpR1b6wFÙ:<rd.;0TIeҫ0eksy}9BVUU"V5bUkOs;wVmiҥ.v~QF^l>@ WoH2G5i2% /bl{5!3,X)@fEc5*7/O:!%9 ō'-,ngUMWgUjܪ s=ݪNrO{9ꋕcXYЍؐwU uJ-sP^u6(w:D;D}ք̰[.ozUqrH}cژACrwfgk걪?WMO(v չv;+A:yuaJ'b>=ࡣ +cj~tZЙ%BQ1}mbIm'Δ]?`وn$ 5Bbx&/{c< vN|sÇs[aYUrU~hej߾j?^YtdsÖ/6ƙuέ2OLWoqR0&(pvfv9 >cАNĈd-GȌTRcQ3h:m^:i%eFCgssg\{%;q}ѪzV'XU:x^FƿlbnۗZ\{.ܝtAx*ۯ0x @JHq~z~`J[z$=Vрl6lBhΝtٍI"8}.16Y)e]_IߐieO% !;嬪eVUPn;wVe{~Gժuɮ+6sɹVcnwȪJ#!y֣̑Xo}AYi=94)an 7>1% *Ik1oy9ݘ)67aa>u =+sl4fNT7!s‡ZQ:H8>Dr6'arV ?6]1=bUϕݪ#/ҊϷ7 w'}R]bU*F^l'nU'Y$"-W")VG `a^ljƦ 3%OO}RX}$=8SGwxM9ED}hQ!iĔ}Xy|*6!}GH_t!F&v<7 ]3vR'EdYnCvw\\bUVUPcwaT"(BOL1}1#rb [q)UNfV89n96|-GCN_^VWW[100x/,3AHV%W*6!1E$K8 XMĮ&) ztء?ͿU]]w?gn~ VuP{ej32qq %W5W:fHzLα~,5.DҎw:hu^K|Gsׁ\ YyܥMpOcW鴋1bVS׊Κ)ġ4V$t'Rzɇp6Ƭ1w\#G25=Uoth]J~zpĩ.jX^iB/Kh(V5 I. wj!eUo-;ά![Ab@삤g圌cN$8#\D’K5@l) k1Y6YE׻*S_َz՝;+V֫;N2U^Dz9$V| AN)]hH'blry`=RC៰\+G)(WNa inܧ=ݪNb0dhG!6CB0BȔMTC)D̄g={9QVL0{뀛w={hZA[ejOsݪ}0w2Gn*]AgbV-b;o6B ʿ켻1MDf*5"1H,pF N4ڎ#fs drdحB$1 u:QŜ/Dw{o_~[q1ꝷ> "D,{ ?yWt ,L5'L\'?~]B' _*XVhf +*94 RMEx5 'Ĉ1y5GܪG eDJӚ]Z[wz%W5Uk>ݨ9b6m%5I^eU\P#Z!$ǦU45wS]Rw +6!UWQp@TC_ޖGbl/LƚC!߭z@(}&s/V魕m '};In#_ѧ; tS;Ug^yP L>d7[Z^ΑSSfҎOLZ}E^iZ|P_]x1TepLLI]MM>Pw4YXJ8ncɣm1R5dr8HWg'7mn]ʉK&nnYu4[Lz4|oN<*/^Rbmbb,qptjBzmWĻrYPS{g;uF_#1b6v77k}ulURpN&'t`OK%@t;_PK(. ݪ_}0[zHz VdY'"I'V#iG*O {] EfYVN(3H8q"1bM2y:ae2!ĶHe:z{kaפ1zU,OPyvQ'L]Jb!jy9GhkMbcIfxlx#ܦ^y؄Xf$JtZQVdKpTsYچah *+}[ɺfMs;c솩r0"$-MgÛwz>fCT @ -i~R:pw׈_~%ap~R_6T`NּA>̠vAK& ]WgK1b6V[tMnnfS릨ͯQ(BdɎKP:]eΝf u?22;NFz4t۶-kUnB,#r\2dFWg;UA`6U1"=MDU8%[ZjV"Pc^jzTTon6!["ZQ p"}$Lj m&̅tTE5"٢k:Z>5kT`*E46x\|!ӭ2jxxI (Jԉ.)"k8d}y5UQC {KAN@6!Zec4z4 Hh* U蚮d)FժVE6^FV3Q!nYu7j߾ t?;e&Ğaҫ< 8tqͬ1pPڞQ*lB ʭ!u/S}!;ڄi}v'N*::BY51\_Ъ쎧r$=ԁD}@Rmئ}>?p:ꝷD?-ebBAlh>XkčFi nV?.2#ݛ4!NX;LVĈ٤/DT,Y9de~[󼄘ΤoˡL8Pf}~0p@__hU(ZdB6*vx7]eO/^0/\WY@&gN+GCBzÚ +;L>*`a1*'z?TϝtA2e㶻%B_#1bzGi޳[#)7b51|OR)3WX=7B\e rO[e3$x͡Bpp=fj*3\Q `!* q5ƭEJS>wA!XLGR)Q`0Utޖ*T9Zv?8^x A/cK!֭z\O5Uw0>yyn5(J<@\TnG@ i<&*B|Gf>"Y`@)ť;#NkbOժ)eq婆N+z~gz՞vtxynz[ԁEB*G~~X8>()w͖҇NTXa^W1AGuGFclBX3w  'R>RXG& Cdܨ-{[ZXSo9$-S>4 l?:, v ]@"U7n1m1V#1vJU#3(\9ĭFf'Nu;v{cu.K#dc.* y&BKL4R4AM L(a-7 @*eԁUMd]sBlCfһ|M(N9Sor9}zf*=v,QƆX}0648|Un NU42;xhoB ]1^{D/K󶯙sWWwMHmB\m.pOL!;gW/m m@h:tX+h4f5XE-V(:J񚎔U##b1@RMbyd,\c THfڄ72Pp[Rop$9|#l95c-N$M2Н e^>Nf2ZCf#mYRpۣF\zt;o1Pf4[Jbz^%0x$\[@x[@@73;/|㞗QʌXk[qҬ$u<\AMn|M2&1JɪfUw:,gD~&m zbUD?LeklA3JwYg׫"ڄ7ʢЏ@1}$]_8;dȌԪݬ)nk| ٭27J(N98('zU9z*a]p!$cGⅇ:\.*kV7&IL eTcvʹO/?p.v~v"\ w2<+ {L ucw'{V0h:KV@m v姫2u %`U[D* #BY\Xe Cx3ocdf)ĢW-/t3ԬTvpafv^)<˂3{GzW3[hV@ mvˈW;ɛ @ Uk< P嶀r[UAOV]5<<„@5ΣNU/xH>Џg=UiX;dp6+F]dIwfUJG<; C#Jl$&t唹UVi XUUϗq;l@aDUWL{ KR`Md3@x␵4:" Kne@uw+X]YuH#'ybm&0N+ӫ1%Dp;j jv~qfӱDW@ N:v%:).ЫM+Jn)yKh76D;(pEg qdK^UҝH(ӫI`3~VU5;\&SDW@D,/œGμ=璬poF۲:Y#rɲ/ɗgˎ{#n( @C+ӫVD0̭*S72`wcBV#N aG)AgW?{+yl[b_o[f4-wd:PVbN6z;UU*kU}ϴ _4nUbUhVBѪ*wUUw0 aTAlb%DqIddS MH{/MQ,VЫo`١[+p|Wυ7䩗|yenf/?˭4jUmbUݬ۪25>5VO_nՙW^eZ D04sl0rc*B̫ zؗX%6!NL.2XG `ȭܫª5`U-}ZbU}\U5>5U#V &-.|֫5Fܓl LX]SH`9kJľ+%ZUe!J:}8^D6tH&Zoɚyw1TCWg2j4fZk:ɝ°z$U;sҺŅ]H`YS~CH>(͇L-8f#Bdy$[3#$doK2j-gZs6~Э&XUצf&gL}gj:iWI":=X>|z3 $fVm]glUZJx$?>f£_lB"Bf&,@jjRt'G;)swU3´7fUy,U Ba]UWI;"f[H^l! Fޏf'{˚^en+m,y^k]6#72J5jUXUjU=щ ! UxWI&ѐٌ},TڈIHQf-Nxӷ(R\ى8c1=5If2p[2JDJap*SmU]+&[UWWDW@*:<ԫFc8ј3qׄ^^:tEƓs rbUqbK4Hw"I>k2jws3Ç_M.Ljvg+*oDWL$'u`XE8/YgtUӊ6?>Һ©Db̈́Q h}TMRvDk;H~S؄8MWg h:L2oWkn,ضG?_ڏ]W.?«d,f7JڙotzlY">>g,7rlB :_sChP^5=5C޲zjzU5PU56>3ZΪJ]77UmtՍsL.B~T?3U7 N69ܴ٣@K~je%C3Ps:BBoM;H ܬFN$$54*ljXUUUtxxM^@{k*iufH&#ŒxH4]bܖkE" dӒz 3 >|'?IWV]BQmAJŊ2"zfpK+s ꑜ$m$K#v*ɂsF< &""Ѩ0dxOUiUjjVvVU% [is4 tsӎlXѕ 7>sd3#Expd$=&j$diNTXS>g,$ل@DLOMi}rءVf|kZUSu[U%b׻{G)iXьC_~Guut#gO6MpQVYpby9X(|-ٙ}c,$ބĢ@(ӫ$uWg2/ Y_gEjv^U5tZP{wQ`E\\DW2IF\+ɝ# /ƭd3K6!ҝHWY`-ԤL>vV2V'aYUWk:3DWVW 7CKe,DW(x/^%}E#Dɨtԍ@;Xf|qqUf~<iWY?RVnkYZmVյj~jXk3|*ݪ3p$ũ>Q\f|[U >>1[7 Q uceRԭ%j]EE=9FmIQlBb) ہ^e)>]X~QFlVŪ꭪+#~5$v$oba$ĊAR&^B8с^5v77o~iVWbU8VU VdU)@%zS.lJj[_\o/5u`-ϳ^XՈU5UTwO_nU(XUSfOPQݾ,GgWk8ۢ!=JX00@,7N\} xrQ HYw55)ӫ ߮noUmv7DW'c%᜷%Tʹ9c1ITw:盕n_ffEZ # )wd3.x!/zelB\D^dD oWg'UNS(oUML4۪ȵ+UXUC_gjb4Q͛,GW|hiE#J>Vpɍ ca$;vsb& ǘtZf3enU>>IDVVAXw!+Ň}rEjfn<$RBdHVg7v z cqtUͰ Dp26O/!_ |BJ)lL0ڤBm yspaKwwd}|/ypʫ**^/o2 `m^&.uVIC* oRk:0YaCX"sN+I!5bfp ysp|c/HhmX޷&,9(Y;7+@wv&Α;H惴h=4scȃ+UUyXUsUowKWT5̙>qr#~N#3yU8#}S2g<>A"7>|̗ {DNsmE?ds䟷?r?X ޱjCC,Ʌj/}IUUV5ʫxmt dЮy^RktUQ33} |̗֊~B|9M,3S YL#K%@S(oqDž}ȼ T[UaUUUvs嫫jܲՇPB kA]UAi]U4<6sD!Dž‰j{ȟ?/]eNgD(15 |̗ |YR}o?5͜ !yOȩxh|- 󮏍͉\UUWUjtծ}5jaZ^b]@虾 m\/;pnޖ)x麱$rdUd~]b+@_p"Jh=aڪ9s]PLV9Ju^IɆG}:ggxF6Ds&u $=4;% !ź:;F*Ȥ'N[UJ*QUyՑ#G}^a,ͫ9)3&vi௉V[=Q *1_VkSD ؇w4ftyQ֢ |̹?5WWUu`*^=UU%cUhym)=(oY]5p|G8>˪vl)xNlCS\oAd-0ocf~ݶ pRIUUV5**~hm~kZXaU-Uն}kǾh͘pUm@F>@>AB^ղ+ȋݜltZAn΃|dԵZ6'㉣-'Y'Hzn͖A RDx=Ūڪf͓CB˫y'X ZFW~3?>53@2gb`*Q{DN (cׯo* ??N6zQUUVM_Ukͷ];wM5:zma4oU/qh?/Qtg:^*Ko`0??"S L8ACHBwϋ2 ߟ. ]ZU#j̙gt@ |$Mf_A- a$hݷ?Os >su'*\-\Hrϙ)x#!H#3qΟȉSg0}UUVVUū{uUmU9jD!X򪦾 &ɾ F:uIPB>/ rϙHoI! :,Z@̙##nȋKRgUλ WU_wn{jS,ZF g E% F}j/m߱'wq@SI?E1ZџН$(0!ɠB [cׯ?4sB)k1WUVUMVݬnYT3g4tz7z( !#1_0J j#~b{j7%uLm=g"3| !įoboqN)~x @~ocWU_UU5TUڰqKm@F{^t&sʫ%-yUiݽ!|/Ғ ^A n- $=p\8^a5oc W?*j jeoGjf̚}U^Z (-^Z|1*'Nw6;y?,5d( [&䧯'H}M<*ECva+7n|~ZUUuTU{oUU%+]kn i7)z %ajy*p¦U5IdHJxrG~{3R! 7sp{| ?4s~*ʍ4U՗aUwk&Uڸi']uQ;߼?[)6A.Eȫ#ftUdf_p6ޅ CPї!(AԆ Ld$y uuvʙZ֯~ ~٦VUqXU[U/bj۪KL*!Kz ,):)*ӈlzffwV^_2CUB>/Sfa>A9r*>7eZ/q&@Jڪw}UնWU{pRXW^oڼ̙vPOnJ\z8!ϫ] M豏B{_پc5%B9 =v!$j0222ocêOȭ?O٨|{SWV oJLLT͓#Ƃ=)K B8ID!vd6BA @ޱ+a؟2RU5EXUyU5նU3f;rT"JV.o^{S C]nn4*UKrhWmx82˛3[EY8'Hѩ2HЌtuvU2jҪꍒjUUq}6ڵsT(EG_ +J()]9wCˮr O-$ I!iɓ lV@UURTU/삥նUs̳ʥI/;+JdB%BΫ]bcղk oFGVbPl!-ZK8A2!у<Y5v};6_?22bk@ӿ*Jڗ_ͫN?a?KѿO/+ 2r͔yU⥍U71Qp x ~ :~/Q B6 vvJf"Lg%Ns& f[w7 ~###[7Rrޱø*(qƍb[5eUUV5"ڸi[/[Ym[+W@N>7*E7ͫG4BSzFOk~qrƒx},!JM]nZftرNUՆ/?o@7n7UU6* 7cwmKUI/>xaU!|NW kªa^H{6R'=%p+IM% V BLDȆ uuv~;Tͪݸq6z-Z5UV͙3o|lܮMWw]tRygWhwIBƗ-x pp6?37g[m|"D=gR$=K'OnX3s;cƮ_`z_ULSUaUsv\UMV+_p,' Zy T=6D!㱢?R/ G `Po6n7M"/a!\Ii*&~c6_?ocN93N 8qUUն[]UUWUZƷ;նUK@IVB~9U ^s4Jhyc]doо nq˛-I5 L7ss<{ǎ Vџ3{|P'?ntU5EXʪzWߚ5|]T+]VRU >O~3*@Miw$挮Rtyy$5,3N̡nH\m70ߌciͧ~ꍒjګMۦ޹-[ !R(]7Et∖?\‘  v=xMxk.To!!G,'H5!T'U-X0oc믾q/ E ,mUUaUs8׺M5 8cqAAN}Ǟ\T:O kitUr:Ol~B7ҚOKj J, U,~U2 rUUڰt,'l 6):*yUZ~<-3Bokʐr#KB !^7i<-RݻnI7($'HzefK) [U QUm,^eUڪK:l fLu^dLnx&ލ9/JfG ad{&Zv(^!rϙ'o'HNLrՒM/w)tVUVUMEUU\?8ʕPUNl@y|0S˚%~G Mw4ϫB??1ZOt{7$=B99/o'HK lsq[UOU5EXFU7-~5Uv7zȫ$ u'~L^ Da 9Ig75{#^D7оA!\籴9&gPC?$!ʼndynzUUV\URMUkkh̙7>6n{5W5Io?x2a<&LUB>i4[G)H濭Ӭ J]^x.ҲMxU"3y!O32}U/^UMV\Um|IaտcO?a{UxN"`#O6U_&7 rlB9E ڪwn"jnUi[UU_IU5erUuoC5UvC.VI Ej*.iQƂ^l6uʩB{ܼ-/QC'#GRYN 9'K,B9E &UVUoTU[w6**mZ۷󞭡?"uyURo*71QyZ!M)uY yLR߮yfVķi2`ӿ5")g$!O !dI= IzUUV%UU5U:sM4Dm|ৱb4W<ꋰ۵jHS'weKx^(V0 ˲4ȦIL~rϙSk|/} tU`$RU"'Hw<Dz5WUSUͮߨ5 kn[h4vA'im ;yFWP |r v>]EjODl|6Scͭ- m%;j"@8y;ACHST3@&UWU5ZWRUmׂkkܲn$yUN>hxTf\{ܾZ9+IM䯁f̅ 9Vo֚$=!$pHjvUUVl\w_C[5gμqhUVtJ遀U@ɫR1l:}$U-x[`oWU.آ5-~|AR[{yh*ZU\OU4^JfamN?axQE)(:ޡUI& l lY({hؐYWen*m ؒC9 9z!MFWTn`UUYXUkUջҪ?^=FW9rԞZ :|j .=mi?0͐*]/D[Noxx$ЂUJjc% *I7 B<dCI[UsUWRU livUu/VE˱@i2wG0,^V̰jkJŤ!i?s=Vtݢ[M:}X7¦55L챭_D˘SR}h7($I-NCH"4*Uͮ֕TU}bڪ];w9@4"+-6' u iD-쨧a(De $?w&6XJE?nn{Wt:8,,!O7R"Hܛ5uWBJ>띡VUaU㫪aUUUw4UUq=8ڪ :Ȫ|POVwUA 4G:}d"E迒aſֿ y0ro`8+^O)x8,wzܞ ơg!ı(ij^nAUҰ֪ꥮ+?35 xeHD붳D2R*HS nޖ2$ $'7ئN|MWT(rQTܞ$S:o{CHŶUڐx=hymcd _v5 sLNݻol`[Mx\ѼD8z#=d9?A2E3rS 3 x{n[Umh~UջjeOuUU;V9H)2yJFW&'QuvBkbH@8w@i<+g !$d p[7۪]* ]UzUU:VX}ܱ@z9{{j gx赤vB৘5j5 2YOKydb"I^OK"A93|:9@Ln6Y{UUVUUgO-t, v>c{$Me,J/r Bڵ-:u\wS61QЛJHJ* jVU]Uki{?}c `+W‘*B~mx]+ ?-!Uj\gz B9ѷw[KUFU=eaUUhu3v, jR!KyUFWo}R%5COӖV`Ȥ'z%rkmMj;'@^}_j`KU՚uVTYUGX@ 3 V} M w>*61Qh[ac䴻iAʜRȉ,wNmU"UUϚMVTUZ\{mc0`%_os8 G ])W|Zs .SkyxO#k N,,KwNmm]:-]ꥒjbXEKwk]54tFR`$2/"( 2Zʭ#AHQVX%r1c7cun)x?()x^B<Ŷjꪪ,Z\Uj_݇8gUImkY\HȀ~doDߏ̬oC>/'z"'H?5sTUJZ޳tYO~Vs[X@ uGdC*Eؓך{8+ڜ“3IwY8'HzA9{|UUiXjyx=w_s^u { H –~U|jztU>|smxdiJ#i9AB>(3 9CHyHUSUUk^U) \UMVM_Uk{ݚ۪^{ H)t U(tnnԙS8\NL<8'uPf?VZ 8!BZ﫶*jEBU⥫^XꡇXq H/t UNgVI{w|~2n}ǞD~8DQ LՆ9Sq*@~5WU=k66*jUUǟh֙3gm' h]a^DZd>3k=ZC>/2CHo$=x{-֖UWUs|5Uonj;0<<޹f@Hׄq+jtU5԰U'EPPmª3Rzn?)S&sx#!VUZUi\UUբ] \wknos, %ۼwhһM70(H}#W$^ڋ5ʒ3B>/D!?&R9A/̻#MPV5*Z:mU?/2f% !ڇ>P+W l2jMU>λ3gظ\b7ì{7ݷ߬JK^etU흫A&g4é-=3=QWUHt nN+ɜj?xWm՚V4Z־QUͰjRUgڿ/ߩgtKm-XTU]}iUU>zڪK:l-JW/1m߱誼D^eBTZӸjUբUU;^~]ՓW8~hxF\Ek=ۊLP+~O1y*-R1*Ce4Ӎ 8~ʿDKV ! 8\[URIUr}UaU_x4EUU\=zڪ7l1k T?t*>+UAWUzZYUEks}hN=mmcU@c m~Uªh=\dzmeUjʰUͰ֪jAYUg\?p=m՜9m3hF7۪ ֪jYx}UѺ|m-ct(N Z,zl=::۪U@C|oQUuZUmO-h;ﺯ6V2 h *{Jê&WUaUU nU%YUsT(vU)ªE-*g=R籀/]T(6}rXrU /UM|vٓ,}?:`@]Onxese=-UsUԗUUdmUOw-ftPO>ڻvc#:U35wu_=m՜97h1:uTUSU ª_'s:GW]t~3 㿛2ZfXjAuUCC7h=ڼCuVUW7V5jwSg[k@etՅ }XBs׻ۆU?}u^mmcv^*FW BM?obUUUYX*^?3wu_=mՌY/_l@]Tk+VT]UU5WUV6zzAiXUmUy?{{stՑ#G:HU@U q[تjQ㪪UUx<{gV o FWU3UaUC멪m~US~z`uUu݃TUzUU=FTUslf̚}UatPB}Mªh5*ʫh{r#s֙3g=HU@%>oUUG󫪩ªڪgZRUѹ:۪];w{J\髤ZfXrUUV_UOs:۪^{dtp[|fr[fXUkUUO+[nmmc$*ඎ諰}uVUӄUz`uU3f;| 2 FP˃VUKTUMV_U{ϭ։'@HU4 +nmXUheUUYXjG~R[断v $*VFFGX䪪,hKuUUSUUUϤC?|>btU{jGqUՂz**^yjq[gtPT(ٻfX쪪aUOVEѹ:۪f_tn]Į}W6j^?~*ZgΜ FWKܹbm㫪jʰ*Vs۪v#* NLQU-ZaUU/$RU}u䓾ªWUeaUxUmKUO'w5VU Z^U4 UUUٖ odUܪ*ذmظ A1 P(aS+)êWU̇of̚}eBctŋ;zªWUOƪmUΜ9ks@h\߇YU=4gU|цUG9 @]ն'u*L^>ސ-[OPZFWD[[_k^~}Mֽ x͙3oh[M^yuK UOUZΝ]5ڵs} .Ŷ*z׾Uњ9jfor TgaӇUڪ{aKN]ڊU}лUO p*Z%aK]}W@^LG}ԶSU8\ k\zUK+/?zsVE*S۪3@8q\U_ӷj@Ϛ=ko*^+՟WڹQЪ2 Ugt9}qUb͵j+ӄU*:FG jU$sqUjmUWnUx؈ȑ>U*TVuu굯WҵrU_IUbx՟W9sbh d꺹V }ϭ\UʫehUG/VͶ*ozl,˗.C1*wu Z7'?xcc.!(i+lbU_yUU\UP V@9+Z#WG\ Ql^[r}WwuO^k_4Zb]yUeuU2J[2rud-7A9u\\Uūg`d}mʪU2J[7ܺwqUԩŰ*ZVaղK{̫.1<<ݻAפӟ/toZx>8jmUNJu]u}ZNYU-]ՒWUâ&md{ woZ?_pAVVuXױ|mQZ뷪X^UCUy#WGm@wٸ֪:^X*^uUonٚbbw~E 27V<Ucc.|/ŰkWtVE5%UWUʫvܝ…흫M*Ȥ{_ъT+=|틝k|u}&S/op}iEK~!yU C\?x'*h#[? HJ8۪zg`ja򪡡}N>׶Cz臏7*Vg#WG__o>yOj\[5VU7Ѫ3:slf>kiU=u U䶪cź:۪/o*.yU豏 V@||?[۪x-R韾V>{^5<<70(dV@êcc 3ɕ ۪7VEkY髪3J?x谊I[S 5 *RhP[oӔU/49Vͫ.\޹Z1m`rXx‘# )UluVNJ%mՆoN_}+^<vUUq0(l߱Gz`* gGOׄU_U:en[UMʫ_s2~[vHU#WG]U_&{KUNIUZ׷*;UO^tIG.赾A 2cHk+*Z?06>沐]ji{e=W7K+WRU׷Wy"mR^(כּ FW:]==~R[*87|a|[ur|vsJ<}_86:uLSUzmx& ׹V4Kv9s.709{mH{.LqkG˅wK~$ljh_iHX5Vm`3C0amվgT5T:pp}abU%X^䶶 @KTƚr֯}\C$D@ ٣aa_Upe0cڪm{f>v*|*,ZJorrR+1)mSu?l=ՐpM>]YvVgko7kW R?uj}\8H[mt>BuLn5QUUyՒ%$ WԲ vgƬUL".tNPu umk۫@e3[VvsIgCsi g:Ve}x<:yR,Gڴm֪J8+l%#}g/=ID[E[@u [ElumeYI\ _py۪M[۸彬>1RS[}|LJ6*"7lwRRӦϘk`[rVPpCKԷW׶DjSz"FW dVڵB\8VmڲwmxvPGU%5[WEwr\[ڷzeLc۪6@2p\y `ُ|K=;_]{m]/<:Pk" nSVB@$o#'J:%s᷌WMQUIGwrrmUU?kUdOꬂGW}8@|=g! ŋybU&ͻŝRCuڠ#5Wmg髪̫hxkUb/e/]ht94v4 'jgU;\D]5fkl[i~H[`Ӽ޾^.կ6WUNTE^ڶ`Ԫ*U*VGq%eR˛(*Ra~V sY\yjѕ ^ i?ŁS]͗ªxU9v*od܅if `ٝp3p5ZU%ZU]7Coi\8ʶ<}'j^*UltF[e`XE[$^渚LJ8.6jpPYI?Gil吶jZ8p0ڰipĶJwIZ1SwUem83g/2*( o'ןp k:nGrjx)UsWψaUp[`Ӽ6.,jXU=mNVɦV9KU{^5?d3ΌYm23SK3ʧ)/.x!`p[u.Mjoܹ.-s3bX]EhNɍ=J`^6@ǴULi`X5s{g~u ল_jPT)V U^FWDB) n]TUaՓjacb*UH^Q }̒%軆mmltY5qt* >~Q^{GkWT[VYu*V7Ww;G ^ٶ]^]XU罽VE֬Ll^S&'*U3΢%m\4*1z>f[.<ͨ g;=m]¹\Nj l( >zN&>yUY-:]Jlv'.\V`/Ub^E[d UkGڪb*u3\)UwQ^qP6IcΜ7V %*,\]-%U2G6 )+&Ҳq&3ϫZ2wO䤳x-&K`#U:Aa\Ӎ[5'(8ngg* De'-N֯}a$ZsK>L];&=t'6Ŀ*|کLKˤ*].*Fzjl[il[j *8^ jb,bO9ex9 hӟ?>zymI fΞG[؋%s ª;8j̮].v' *̩IWzu3F^ *9*JJGe$դ lmd۪p}x5wڪT)Vy-W577EťH;s.7vh:urlA@OeTUXvvL@|~KԻTyruM]UUU:;ߩ {b8u^~UpJԻȫȫL'tBGA.Y&ylUHf55bU5V;Q1Uչϯt['&'*S۪W4:zm`Y_.{{5*ɫ>o~ ~@<$ɓWeO}Ѝ}]UU=j\ WMA^B mxzªJ6:1Z̜7 ЩgRIӍmΞ9 Ksث ϫ\ޟNF4wDLBʥ$ɫ`zm""ȵ9Ր92> C&z'ܕJ[d&U\|톎Kg&- yՔi|= S܅ o20Y{77t44 Ϋ>. @0$'IW'ﳋ '| +7Rt3yUHf55bUS^[IGGOWԨd&M~mђH>s\llX5s0uz.s?ʀUtBFW `O$ɫ>#GXWǑCkXMI@^'Qnl'W &VS>)}_󪉓1)OJjڌYm,y^'w {rY K*z&buwFX5|z]"FW `ϣn'C^%|Vf`zȱﳋ*'W( vE^hlB nVٺiދUQձMMk#槤 9zeLc*+m; X@o纼?9հ笰J x?ٕQ19Q'@bs%S2U:~ڮ m"&Wł<~6q5^Vc/ymhĶj嚭VRy׋b9ꃫjWM.#g!8im#h*q?wvEe(㰶jx3`w*{gLFێϫ{]Wł<~6qջW(Up~_6r2mE q{O*b*u<2#L:Ր透*!F'!@c!|jE~j@^Sn/|gwbX[JIU*Jae誐js\6d83g/2z˸7#Gy Ʋ_lX4r6̀u $̲q}=qxW)[XN[zXW:V ;_F+c7Uϲ= F[mU[V 2NSSC]XYVq]W͘5RRӦL{ذjy:qV-ktܾ4à]Y5C|~ ,&>!*WB}n 6yU^Ǐi읕^FEe᭯^U/?Cg7mˮ*%Q$jʴ-YMw gRפɯV\iq{ak?Ka[E쪚YrC8AC 0xtUw]O 1_kJ̤*|Z>oɫxhltm[\,#}.[<{+g 6rrl!mժUT;Ukšp9Qᱞ8imqf ʉ2[:bXlC۪U[yȫ\^BJt>4S_Moȫȫm[WgKϥإ1WU*٤JLV8s1O}u-_YIOȁ8V <-@D]gu˛UI8ZnC^~Ύȫ2vp^)Q)kCc-ym,UNӄ|5i`]^Umն6slOڪ;DzZLy(y_2R(6 '%5mʴ׍ fΞqoLTCRMZC/|ȧ6IkO$IySWi)<9C 6'󖼊Ǝv#MBʺ^~6zՓW^zz۪s`mSS)V t/upɒw:uroL7Qo=w5aCġ 9W9S:fh!0I%⡱:.7=M]RX.w*H@ڪ _Bd۪SYU_)`tǐ3wrf;_{kJ_8^jswԏUC:shiGW9k@7*iWi ?(M;ϥyK^CckciC%:z 2 vN{W V>zJdTdW91]'3f7:z7pQ.wpOkn}Gp;Ű*I5J N_:-H~?ZV#UcV-lNjx-H[EFWyyWi2kn]k󖼊ƾVPW _i?`ȭҲȫ` ۲(U*UT1Vy׋v:YhIӍ fΞy `Ǐ*Ǹ|ֵ~r}2mUB](U_k/H j1;2i7#*M@xi?GWW%յ:{r-IylY뱽mՂMJpJ8>J<|u N,gΛ Zs ֯}KSK#aUP[Ev!`[WOUE-3Nk i{T^t;/1к>̲[*_[^˾5ݬd[PMW#|_Usyg۪ _B۪OG o +ySvF7IUH^s/8:OJjڔiV=s /ǕfVN* kR[:Vuw'{[%\I-:O8/@ȅZœjL-yݯƲy8*d3H}2ʂȫ`eBJ8 -\(87eGmK\](U.1,Zڌ^ow@_I*n) 5mޚ򐶪#tnU󽑰*ꥭ*kwQtUZ&3~JjHi-ۓWW%۵uL^%|Z6ZB^jWWz Rn메R( -Ȅ8Yruu JwUnaUp[UV#Ui,VI VD]%@G^5}rၓ*N]WtĸaЩ[*_[5G6e\4Kv⟥W;IZk N%VI2x(. ?jDd%W]|v&Lch7ؓR)oeRG8:ڪUrmUMmFWǏ4h[<mUr5N@L[eQH%⡱uF~5)y,;/+U( V}yj$r=bs3)]ѱp o ^䭢g6B[ж*P)-kɴUmU`ISO_^5}IypM ru?5%⡱uF~0rYwi}.+ɫ`/K7WnRυ#jĞmQ쬾*)ND,IB57za:ϳ})-9aՍ۴U@gwx[u"{Lo;`Fh:))QZ*ZyޒWjht Su|~7X+ȫ`QVz GRjK"uV"|j팮$x!`FN*Y_ͮlJ h lU*1 Ȋ%ҺOEWi7%|v?ga)t󖼊VښÚ޷g9&@^KZx%j[`<.I*FM NxJ+#7XMdiUܢ@,GBV=s /5K&\n[њ/*NtyNY?I%jHWJag#ɫR3l*2ap󖼊׶׫tX)<:D]&i寅ɫ` m/r'@$[sYˊE_;o+,o3mUB{#mp]"=Z:τ8&R,:dOS {b|8%⡱^њnOky:r42z'/8?j[\+8Ox[ѱ3UcqUxaU؊@FWqV2y:r.+Vzswz[rŰʌ%۪@gwX[h j׻!$VyՐmtNȫ?.=""Jk㒪"g :fB񸨛E}=Z/9ȫ`KV_b@? Vf[<[*Һ*?:q!IIM1k> pc/?YUڒ#=mU[VշW˴UF۪֧mU;V- Y(ƎFậ)}A@0$1\%ƝȫFPgLi l7㔼*I6 y34[1c*$0j[%*_ #V8JO)R<ʝU1VV]/Z6,^2c!`F΁n&@0K΢GŰJM[uKm۪ڶhmUgUЪ.#meD ā!yՐ M1ȫ]!hM2K-yMƂ\׫7-jlSVΣ2:4ϪRMa%btG1ap\NH{<9 v_礼׸rV8w/V=]jh!'9ލPt*.AeT^5ú7X9 zN\9Րi޸]=*;^[b˦jO፵~ӽȫPSVb- '*uIGiSnxޒWX \ʲ} :_+*$D{g/Y 傓DmLJ4DVrUaV[&EKVOm˕y{GQxf_\|\8E2mVݽ*VUnJk&^ ؑkۺzWЪKM{?~;cܹyՐt:&:>TPoomu:yK^CIΩL}{cߩ:#KH@W 1_xnftչVpHmAU#feM#Jea"Pl\̣&9o.6<3縁 i~S^G^Uӑ*wetnUeWAm;mUv%A[%mj<})CfY R ϫ[OmWicK5u[*ŏek.oɫxhbU:hQDzTT@ȫg z5mpZ\pj#&U:+mUyp>cU;QeU'ʣbE`p[ujmYL{݌U=TZV\?x{Q~Gڪ&*VU^i\ 8<%|t]珮 lиc[H !34mo^uTsi.Һ[*ҶbbWz sɫO۲i޾^.!ڔS[uZJ:*x?`ǟQqޘt醷U;<$`O~<0U_EcVꄔWImUZĶe\Z@Um]= ں÷^lڕ^Pf^^OV3~sUZ{8[*p;?nu`W \Wz~?vgo<*=rjKaUY^XUO؝E_**+^'8^i|''˺?W*U7egUQj]4ufnUx!U/m]wXU:C!MlˤmʴvJ^E^kk#*ӐJ~@zZኑW >BFj(rڪ*MUUzTV7(͌*pxUgq߀}=s%k_x&΂YʙW5\[i-R[}-UÛ;.'UaUEP͂~v?? aj^5j*q;U:z7<9Zh ;yK^C㵵":Pp]⿔0vUʶj\.8@JRSI"𼪴"l~MP1d;~p'Kψ'ZVי寜YwnϕѶZhmՉJZUՁQGW5v4nlmên>S ik/vFW5Ϋt8Wim TCU<41^[k&-:R:Ƃ f蟲e5mpZb/i7"UU'U:X 1U;Ce*cV p߀#5W٦̷Nx[MeY~Ku{ԴU 'h-Uݣknkk4r\Ȩl@;8 XG*mOIv̫TQ$Q=?rO^E^kkٳx\]RO]C t?lձr1 f;z>[e[\.]uMmH[ޒ4RcHduE`_\6ֈU _*,VJ~xrnnN\-U‘ڪ #TjΫGW Ur6U.8Vj$c?ajHWq*wUZa?8O&[*ŏ^>Wbq֖uY_4*Me[%޾^lMɨ|MJ*)Uy՞1UO)ᄷU+gw\;j2m-U 󪎱yUJ}Y54uM:W$nͫ?ZV<.?:RFyK^CIcϩLᾤ;Ud!ƞOґx%(WNgW +wl]Vŧ 9*ȫ\̣>rЪI_3r9O{{z ky~;lڪsUR[eZ@Jmp嚚̀Ձy՘UcƎjx?`G V]m]?iU)W5+&%?6Jz(q՗Nj IW /.md]W ӑ;7nȫ` mՁ{b#fxXuIyz|wfV!BUv 9xhs2w2 6/Jq3;ht7R^pxU~ᑕ8;*d. ?`vɫt:0U-:f:vɫ}. y ybR߇e/.$ ̫{O]w&yzXj5ye.Ũ%{U:C.ܖtK눼 F]5#ihFMۼ3*(4TZ#U/QϘkFXr57?4_-۪M%SOn#cVHmgwVnU)Uϻ~Q+Z6|UkGW#?BmU‰:阪̀Ay%ר&l?jIģPGNS Ǝ[m%YIWwݎs^5?ƒe* :Q&dR*M\]i[Lj*嵀륶lfUatf&Uy7Hʠ,&Uҟ{)=,ΖJґdX&3|N5d 6U:A;i*}C.'UB]^eT.ܽ|7Ko'1yb:jFsi.lA "ҙT~yVyUb $ P8W. pg5}|XUS(fIW0@gnې *":' 1:wJ8U .,N F*ŞJV@**IyU" %gα V_:T|}ы۪u?ڪ K}X@8+(UFW-Ku{mͫn4UE'*$*U2XE,UPg:JKLU+Tm5ҟrrlV1 :yU`y+i]&| )L;#eM*}Ƅ5搜P8ramWi}sǫzI.U,ɫ _TVM]=VɄUaSSkGsΤ*|UcKGJe^%UyUqiզ}DJv<6o`NnwNjaUH[~iGêyU4*h3`̀o4$*k ͫ TXESS;\IgQ%8J1Y'X-ұ0!DZGX$ɫtMo4p<9 UQ?+־W TU9w4 V&VU.tU! /BVԔWINɎg̚oFXd;l<(l=۪4/K~{||~P[5:j|[vtէSՏ:Siz0Ð̀ỳj*UTXUuαU) ;8!]F,We\V?e;l1ɓW0ϏWD_Ihv̫^d{ƭ$@,No_/ V]V5VUROzʣYV1UCg/*1I\c ,⛿2vf_ntVmpKzov|`1ീ:bt̀Uw/Uew/)`%_XUn*DVONRLb ߹}^U _jyU>U:A-+'^ O†)ҽP8ƒPG'&1ҚX5ae`W@7wyj՞T.,K NRTFV[ϫ*q3/WˠV6W4i} `=9mvj{p6=mҊd UoHmUGW}r+E認FW 6rQȫBR_XBj3*|?vX-jȴi^cP7L]G,,$̫?ZV<Ύy(2}LbwU'U^H7& =qɐW2z-;JIk/ɫOCKJ8\7X7X>:vF.P tK8is7P*XۣUwjQ7{f'%5mΛ8s+ #IG<&3E:p%>V8 %BX%[U:=UHL|·ɫjFWݩmRȫʪ|=Cd3wI_3ch#j蹙۰/7V򛐶JI{ g,):p4ht̀y՘̀utU!C*UcNe -UIV!UPptķ-yG||aUU</aͼj($D L+T&h->d=5ɐW{QFλkwP+O%:m&So_Ump|\7XL[qMa8JSR%YV-cW6TW)o<dK?L{݌*#}gs;Yģ{כygfx~Vm-UFw|U #eUs:R\jZ4*f3v3`ļ*RW Tʫz[rUVaVnsqǖ_;o\U 2HBͫmqJ`Ρ9f@ |-z9d\_Yĺ^Dz jdȫ{ OO9|^WA-r~sNkj/q`5mUSkث**dUS=ټUe^%z]ŷΘ5ߌjɒw2^H̓ˇ+L.Z҉;J..3Jj{Ȏ|~UUKZntf_ؼjt3y՗uU2Xɬ\X) gu+][Oz9-WU&l^5+IQ:&$vS֯}:ꩆL (7)Q۫6շX1\C;U:w3b6aR]/"S?*h׫b3 ,E J>!;*QayUWUnڪ2ș,u.\>ikf :za7}%mZ)QJUK/w1N{RFWUfwҤlBmZAż* +IVa#V!Ww߿3T?";X)y%擡oGǵuN֑?quvJW(9}m?X}#Ǥ wikf}-\7$B[V:V=ͫzdU~̀M!yU~A)m΢%L{݌*#}}ao2[qftFx[QV[{&JyAސU򪏪n\y3/+ `"0ra%(PY͇?^lN?[0]̫?2^şNѿpc_i^ww"v̫ t^z=;Iy;z![S[_+uCbU[:u& ɫ9pOfҊ;6hy{3V\i~^0[eF"mUgRw[K~%UOڪUKWifDΫF7U*+yUXV~J9;+*=1ZVDR p&K^%gY-ұMoY8+?*u\"_,X3̰c^5kMWC!yȫU5U!۪VlTX(UM2y1K+lGd6s"3ª%Kzxlm͟Ylvx[dJgVϿm-p[Ѽi[峣q3gAm;kcϫr QVMTVS uՍvUM_VVǏ4ܼJǬ'vop<*D]WÌU"6ͫt3jѼՄV (җt'Jc6ky ornGW5v(l]E[e3'M7<9{ޕy q5!=̭dRƓ={2jx3 D]}3 yyyUݘJ8!yU~jRc%FVRgu'5vVMs#]FyՐW-=zZe\:>.OGǏ1Z>_+Un*|E`Jv}UwTL]]TsPTew[3~I`wX<,ߓlKa`#W8>oԍ썁ӄguWCN"y]77@Ry'Z$= !F6ji?ϥCBȵUVZ%@L^PytmUbO1׌*#}gsW7"<ϸ7`RP[5ql[jㅓV\8f¯]7 = =+69JW̫ `fE`HaSop2_եϿU@*6ӑs70|ک|UU`k#U !!"UZWUw;6*:1DԴV-YNMu /m$Pj$WS[U3WO]E/)'ݢ)~^8om{~'[Ku}黽d򪪥AyyfW}^cLa56 >*|EɚuԤ~R꽪?l$5?JuE{Z}8.Qn2ʧ os D@ 6V hN6 *鄏j2ȧiVysI2^Hsyg*s*|W8 IxVp΍𖫋I8k^ՓS2!l?WpT/:76:_M)tmog_՜YSO g凞u\EWk[% .L to~[s9%]܌jyW. ̫?S~<#UHmO$ƶJ8)3|jWOEψgɍg F΢# :κo*p6{Gᅥ_lx\k;+[7h]VtEk[sO* ]tt=huL{݌mUMy7ǿkiv["r[myu'xG"Z۪W]/sOm->]%P*ڪĮ1ka#< ёWDV^H umՏ#U‰V}kl[7ڪŴUϗ V \7MH[elP:]h,q,Z~U,yt~ꇯӼJU[FTU¡0 jhV Z.#*Ug*d3UwjU9o/_{Q`Ff?eXYyx~?Qhm"m_EjޢwN5drsgUi[ϥCȴUmV]E[e3Z۪%KahlɀAyxO$_mջETUA[1 ps`:* a[%::q-5⥮I_TX͜=W4ؼJ:?_ù^V=G[atFG[jo* f k2+ٱ ]ڡR1Y͘5_++^'/mXIyx~|㠶{*۪Uĝ}T׽q׵Z]&Bi=XO4Gch^ѠQLuFIBڄԪ$ bD20֬8fafxg9=jf< ̗6mļFGh. ܺL[WVe_zFVYWE价UV# bL, bmtgڪحUgi0Ox5U~*F \n^ViEV]x,D#*c-ļU\%EؖWE{wȫUi'n:DIUY7XKmim&:%΂,f-.\rL /|*2-[~K[UI[8<\qBD[57N U_8ϥ+V-bغ 69wMd` U<8VHRdgH6V~yUtFH{/USԜǥKUbX:“mUk-mՙ/ڪꃏN(gO~H"}n=XU7+m;+;ťJ)h==qmn iDڪ@T'\9u,BCu2f1"a*XULu~6K<غJLɻ,]\f*1/ڪ󑶪xO#(bU3d+Źm eU<7+m|J!Fbx`s$*1oWc ǫmUk-mՙmU݉شI>s/Cr[%^*Y}2fY2!FM ?nh7X=HV[떶MVi3<ʩgV .9sk  U9J9rԊi5{jD[E^9۪WP䙶JLb*Fb@b+8+*:SI;S1W32*yXdW۪ _Um"yV1ҳ 7X$8(,_6V|%*s ֪Yݛ6q$F;QJLɁbVqW_R[lJE m^C<6{ŠmPo̿oLڪ1$4b* w%ڪ_/)'B۪^jniwJqw{EfAo3DVozpAq`KXVeJVLe㫙 CW VW!$mUk7^܅7V1U34RX-\̙._psmvkV[5jwnU**$ぶju<3w'?6VH Go4Y9>}[WCWlȫ0@̹ܶH[v˵mU:rQ|xr ncuÓ\"С:NZm=g/Jn/E-J-hȫ+~[u5Vt몶 ȍtq<6{JK/na+N7T7wujtH"fQUFZhq3VW!*n[x*q{{q,M~`G簍\*,_Wx$6V|U.umۮqcm}iȊUЮ?VW/q[ޭZ;mU%;2UEk\h+kƬNQs/ hWrXJG^꒴U.ݺB6I[xcxr ncz{u^ M'(bb;K W%hȫRټSvt聀u?mylXKUeP1l]h \n; DW+WihȫRju6Dڪn]=lۅ=UgAo3 FV>ߪ\/Uz |D \n](K)⏉?,:к ppW}gx-}ş^-wijU*T6:3jrI[u#ki>JxugHJ̾ Bq lZĝy u^ Dj cj&55kIi}gx͚c6K],/<Js[E^J nN=wc֎U { 5GOCx{_z I4Z^#ܠK֝{xcrVF ;%WLvau#LMK]zQxmZ˷ˆwn$^M*s3VWmUsغ{N=IyɕS2[%^.PG畀'YLf/@*#MW757;*qMܫJcвEy+HǁnLLI+m[ ̝^zq XN ~j92}yl@^e㻪piW汼J<oɫg\M݌[< ^BɫQsIb*1Z?mՙmթUq7:z^Ww0Ldxr鳌V?:m`+ܺTC ?Z@;*uL]zR^Y` h#R)']Y?'QTy4ϫUa-Q[WWq1ަU-Y0^`lc'\EaRdtMwUV3+n,wwF^5B՞U*3\l/@5墟5y=y@jWihȫ-I[{2hmTȫn9 M.WNH0qgA?l6V~0>5`-J!YۆpȫĢqk_ +*i)0Y#K]wW-*h'VWy؀J޷7ڪ3-nUUqOnZ%P+Q0LYG盲Us &MȻ)>Sjy=ƥa*UVU*3R}M^*ȫѹ6]]{U뻍77h4(r6= U7nӫ>O?0CK)XۻK+_1Uo.U2n7Yjy* +*e5kM|j&oz5W,J̩@1q۪SͫZ; nٴ=zkō_VѾL[qk,$t^ #QB^esøp}wo^eE[*C,HQsxw|/&yܧ 7Xkh"|@ĝܴЬWy@ʒkȫ'Q[%&V5̫NmOWq${`X_^L00zYVb zU1F~2̋(*wSsaU&U2sX㑔⏉?,YfWrUG;bR^1<xi)01Ta;*h'V^1TsJWnɫ>n|֎\lXu4/6j90,=̙.RwKG ;Z^JDWYNJV]{5>ƹ42D0q aݔ? JMVբ s>Ge*ob+㥥l[U)ߖhȫÓ lNdsWYUۅ$aSܸUG-z 9(G盵[%^H1XkLRUnCƼxs"w;e7g3JMVE^IF/ `"x{Ļ7gī)ҧ9]~9[[X=V}Ԣ7|>`kE붫poUMo8|1>s/CV .a+3~fȫ,3}fU6˫ |2,ZX2Fbg"Ru7eeksX&Wil,/f.Q[uR[^u| Z;.]0WUdCUU▋ۿT1 c6VSb+X,~;a*@^e][v:FPaKrW^%IZ7rjពJAKzQte(#[;XW@ؼJ{[O9%jUM-U7"Y >0V VVE۪?]z1}~eVasN~x 2&ς `J-Kaś:zwUFʊ<_D/U{T|F+n=_PE|A^Jʋ%ڪȰz5*ۑJ{^u*>wji鬺I5`%UqV >u0 c,=͊^zq X+#0J+""{譝*#gUyS +0O*BvƯ8M{d}^ E*JL(b(N[ W%30NՑcCz׋Ο,KtnƬa9>OèmOgIl\A^ 6G=&N},tpc1*hw*$V9tF\fp[Ÿb^R(WnH<[9 rHcV7FϏPyt}nңܒWɕV\Zv6W)eOKF_3.- U o̮Y@X[e`wޭt`5HAk= >* y.Eow8dznWUr9kMܦ[l*HW8NܯE\ȫ CrmܝkX@:o J3q#/*y t8ɯzo H >o<gB^]NUV}cݿ8}h& cd-ȫL7>ɿPvew&([ &AJ"HP;DWrUcniɝ f`uC^!*2, )M2q<u$/ %W#$~AìEJb!*#rS𒗫zw~LPpM$6wǼ`J̩&e*ƑQPyqz?uѻ9g"KUx뾚 T*U7'0i@^CJNT#upg?#W [ڪo. HV5Ø56{Ww)-g}/O}*W3秲y v¢yL/Wo`X@x=y@ݾFϛX@R V1yq Mm<`$Wi ؒS6qO*sݿN _ހ痏x5N+k4 uiU y c7QY*jγme*x4 2ċ_ {W̥Uf{$*jmn~oh JlG0VxZ@y4ܾRnlbъ';ۨWI4*G-W~Fb?eA]UCmͻ7]ZOaQs9Ur'Hn"Fus$%pYͼʥ{W9BsI7R#{$*hPJ{شQ|*ȫ|b(jSgLϫĻ>oLnD^>*'K=jm0Yu< KHUrwk5شQ1ȫ!]4#)XUBu{5>y鏬S*YJ iz3K^٩2*UQmnɫ4Ubޮ:lZŸb]ZC^%Aocp;)Hr`.+*!nAg*x%"2M hd,$&*_MUN6nbuoe p6b2JWI O8բJ"9g*uY*\1;ƿh***Cm7zk[Ti5 4*='q"{Z=3QLnt8WȒW|UW$\ջ_q5vj}ȫȫȫ\WȵU9pϐRUz5ٿӦDd]^֣7ОFx&WW9{M)W4*.;N-DgK^e b7IUbS26.6jE _jU}l5,=̮1X}ȫLdɫT`8RI5KN=J}&"kKUb45@MWz?aԟi~I;{j?$B^K}gSD`,,ͫ,yyyk=N-ހf]~dɫȫ\rPL jc݌6s1}, AU-vQJ,CgjU >**+愯#K^E^!wm_J$+VEƓ*r xCH^Dy%` =ibYWI}/I&_5*{jݫDz76\w9> yyx2Θ>l޽)a^5T[%fkYCTֳ {3ccG/l]"NgkpE!f gWȒW|Uw6-F$&tz:ɫ- Q'CUI*1peYZ6LzG@3Sԩ*6=mrQeO w~SBCͼJ|>6ydɫT;8^IRjUURrH[ewWgpJZď 78`&;`:*$+>|x3@mRԜgjUrT)ȒW|Uw6YT|{{@랓UUsnq> Ψn/sKƽ9#ٺ F^\cHlB+nf[^%J|P3Sh0UV\ B$ܺ_Z%KX9Upͻ7IU|@ly% a}i~DǐWi!q*RiKgg $i$ͫ$:tmC^eU k7kU~gX*H [>$|=gY鞹V@"ӰRW},wjljI)lwl_ZwSwʊSA՗ָW\NuNWEBᐑJL^1`nfW3a@~l^%utH-WZ)O:I, OK/Up]b#m`EU4H8`Ft}jHEyxԣf^' Xe*k e#ȫTW EϫT8MaU]"W\k!ڑWuBᐑקb+ ֝K2h<^1 */x_vm[pײ(x zI^ĉE'u ذyUʄ$N7?],#.F6/WVs!v*@%{Ui"s + @"]>E*1 *i9v O9x=5wu$`tT<*gK'wv 9LPY+|5TؾFn*w&q.K#j>`6K#X" WBJ̎XI SC\@[3ҔoϜm {غ DW%SɊM_EpAZU)'wTx-]V؜.ΛrUu*(WWi4Gp Vӥ *Vy{fv<ªqc#OIdL7^%xy`W.:nI@Jz*(ع`rMSDH& vHΩHno(c0Ω=ȒW?kmVigeZu rkˇU1mU^#L9p):ڢO斦~nw?UIT *r m:yUl'/‭Xr9=txqSF:XI*jsgtj;5KE^ C?^3H[%MSXIŸ=[aUeFH3@[6 v[`*A^5f rT^%Ƶ1X+wJ[+Oi?]>ж#ؤ00Owj#YLcֆۦT^gX:e/ |ǞAʩtAzs[]XU\L̶>-mvE$X|kMiȫvO5Vݮ5$ 5~цcaU0sFVܒN_!;߽7+MrHUHeg5Z^edep;U^jÍ4x&邑}r[Kx*v~rOj-G0\vFƟU?h̥ς$ \wռ>VVy~fvJ'G+\=谨9O-Ƭ8кӍ66R03p֛yUlbW]}gۅ9.*zzsȽ έҧ陥]}XU)v+i]Ӡ*2pxkj~mU0ˆݗfց G<KO9r)*Y! ]MD`5jUO[)aJd%r#(3)XRA-wMYUqOKK>pёE<=?758KqU4q:Uwp6V}xXƭ,z6ڪI;iՙn')hK}q#2Jh,A)'f^'S]wˬө1X^-wݱJ\= |y(V,2?#/$nͷ{Z \ L+[VW/>鿙WhGޏ I];Vf7\c[%6V}L o)?xoVKU؉*JSi>@J@V)WI%ob&Muœ@DGMEgx^g@WH]T*wppCs_D:D_ M? B[;H[VO SU3ӊ3/ݬ%xsWgKoگ̐Kv*U}㣱 q6 |Zڿ+T'u`3?2PeUU寛 U:?~V8r~Q+/*EftH6:\GsoنbWoRUn_Oݺr^gAZJUuYK8r?WWxovd'̫Ub}V^6K*ǀ*뽄mՂJ*Ϙw4m*c!ܥ*G^'[%܎%>-c[ q7,<{Uȫ\U9VIUI  S6gG5L^E^ !ڪÍ~:]>~Ii'jVyefi%SҔ?$nR˨%>3_O+`Q? (̀ |y%|5iT[%.i0UU^ӜllÏB p硲,RJ mf;Lܴ*`?UJ؅FUk\WE .z+{u/S/ W6`Iʖ}{pqPs#;$"H5 UGYLŸmo+V=N[M6m*1e}>9eM_c:OGWi):Sr @c֊㊼po (Rtn yfxJ!.Nr@OHh$2QKH^E^%> nYg[%gϏc+Nڟ-߾mmUlZ5.R3M9pewǬS_] *lωc*YtܒW-h)QذeMԐ7O#<(Pg+Wm{,ԹS)UƓԼZbE**)ػ`[6(oVUVi߾cmU?=jE[WR<;JO2\-yׂιy#*-r릫y_|jNMKL^E^=S*2[bqJk'gW~M=0VsK7C߭VJ<,*X+uW^+\WEV&^2baͺ")Wžk=#jxC;}`vv 9 {۪ϥς'Y][*|[5`)7@X?1-c8? uėcݗo))y:vY+5k%M{>uJkߔf/ ^X:+/_xJ51u MNSEy_1\a;x䢧"@*{)Iڪ[m Ybi8iUiشJˁ Gm{y{ƬvGQgD%BܺEy,pA,laȉlF4hK[:d@) ~mM'fCۊb*}mݖsن7iԊ4Wg)+p!%R)+&M^t% |G:O;J5kşQlG@ep?~dsXOmŸ|zmܴJLb7&UKg*)o繻7YO"aok)4U+n،aU268grh |\snl`z6~[%^ DêU_3V-r=,7)Xu=LsKӐpҎᎬvrW+mUB`}kZ*1Z۪ *7͘wi2>g:چۿso`eJ[t16`n{pyUZji*뽄mՂJ*w̴b7:\[eٿZ?@DUbVgS[X?VIV}ֶjxjmft;Vٶ:3͘nj&p .}LWinFM~`ɿU=UiIVU~Yc[%ʍ3iY&U27U Svț=֕,BZQG[Ui\K VN_VjAڪieFH3}Ӫeٴ*d|Ҏl]8+3ڪȼFKC4k m ڪUU#f4}Ӫ2>5C9#m[;"m}{)mUdNw4!?j+E*mmWh:3v7M<Ѧ쫠iȻp_v=.M`72Vd$q=8xm]۪'i2sFV)_a{1+X[5&N1Wƒ nەs'aUL[߈Vjb[5Icx,êK4c;MqS;x,]\Dnl`eF[%f<Ȫ~;O[坙]64+6߾1뚍4mM1ꇣ9ַ7VG,|iêl&l-NV rYgL9ᨻ^ %_sFuP8mb*-mUd^? }*ڪJ*ןxϼt+6)XMkeY6^ZyH[5&sG@*jԾ[>1ڪ嶴Ub(9 p KN9̿ϥ/斦!`ƬtKZpVmUJ̤c8"RJv~Gh3Z\qmFgن`wzCZV=4sʤJ}oYUHzϬ<#=mUj!mUMb;2䝝`-/@Y[4Lɽ*xX/^yGڪ88`[%Fk[UA[=lKNU}ic䫙 pȶjJ[ǜ\4.WijV$i*C[L+voUzoӪ&-+0cɏׁ֝\iMl"Ss:ɉ7~ЄjƶUjonKV=N[.6jUaW7wM"Lz[Wpe],88Vֶ6x4ul96w۪͡ ڪZ~0Cs[uֶJ32mH62BRu6QR 0fUJ/Obm@}W?iO[{xbL[5ނ+U.[ȘΦUƉ{:jܛfc*{5_ƙVO-k *,;-={kOV~'q[uƶI*7̤Ͳ4ٴ**`k6Ӵݫ87̞co?9G>w'9 ڪ_5U>m&UZaaX%&`m7,_eeuUo-V6V√ӕ-(]G^>sm7U?V=*?m;fvٰ9#- eo8Aqxeq?>``*6VJ_OX^pßTTpnUUU_mUi9#fZVmUjVEhӲD.er>\zܶJ̿o1ZzEf@[u=RwȘniX5uɔ斦IjY{غ PPФ5̲];]?'om~VIV-CdL1yֆUbJ.e >,5`>>mUz۪|w  _غejqmUJUfYV-ې}oeѦ? 3`^%|gd^={`)yՓkJ3V-rhf6jaո̱6c/ֲtGuKN-u?2=V1V]ϫ4U+U_V^X%&`m;tH2jYiź=-,/`}Ķc*>EZN|CIV n~E[5ֶjƶUjonKV=N[uY![˪Aw9ۊ*2mn +HS/ΌUOm&$jnj mZ۪J*kǶ%lUem]<Kmn-yImė +HjgO 3ڪU_RjȘnCXi,=ٺ P_ɽqڪxmUL^VV?ۡ'VVUڪՉ*$nV=I[a!N:kga˓rmĸmUL^CaB?>x㥺T[[5%Q[ZU۪_FU۪ydQn e-kD;q'9NJ׃Т*23vPXHQv~⥺UMVMV6A[hom`[{ieFL9ҞJL/[4.wu 'nUU?y(ˍne$V۪ hUڪ۪IڪŶUى۪,*U6d˴izjYQ+Ҵ<;YRqT`][%?噯 ϻrtuV[VVUH&dJ}Q^߾Q3/}ȧf j(_o&&h"_X]M.7ak]hl?2ʫUVDc[%&Q[ܖj>mKªqcKʵXX[W.rRmUloˇu6ϸrn;tk]mmk*LoWF[e=lԊ4;*17zC~-Ҥ񁘴cxƢB@rÁ֝)l^^*Xw3b󞖂uկ:^F^/E/M11G{-mn\q% yݍ_usjMVjA[mUj!maUeA^–:Ѧ$ϐ;YL+Ңܺr#aF}g9=,!ހϺ|u+5/X@הfx 6Ճ/D۪ؼq*g K]{ᶷxzXu*8j~[\PjJ̀*+Q[UA[%3v ?:=4>(iUI_wv"ϒbPm1 Ey Cέ.֙uo2#ы. ][oo##V,xD՗#/mu{k+Jmv~T$(o`Jow [\bMqÚW=_UJV>z Q[m$m{ ۪Uê{.rϫNsWgjyhRԜ2(>$nza/r xuo;!4kS:q7,ʰ*)ۙGيtKo ťCg T,+K犗Cxa%J vihk*~u1ti1VݒWm9mUdPǟ|?aUXVϸmmշUbU_ҭmDm*?y6U2ǖ/x!,`hvY' J 7' >e?TR? ݞ -6/[ZsxQy?%]TݘWXQs nu;t*g3Ϋ_yS|i?>i훫#@C?_)ֶjƶjSq*1zڪq۪yjm*]Ve̲;mW!aSJk|&U=z".-Uxb~ǗU2VP3#Vm8<]z껉ڪ34Ukm*iΌFHlC6a [4>de|\@{(nϫҩZ\Zuc aUf[]K0z>LpjmW[(S7H{tT}{~]}Z]}W/oئZ/Zxڋ7(T" 4\ % J prO&B$SB.82~^j۟xmAm<&Ov>ش#|jeI'݂ꇴU{\~䨅U=qshqz;#RVx[ ٟ8 K|j}e'*'WUʾshʹBaE^%ʼn= eX8uɫĵayV0E*x {y.~Y+Sïo[55#Ҷ*9ZE?m]۪UّU8p?9USY[UTYu\+ŭyUGtPay6U'U:n,]Wv*a\P8H[VGv\m#].~†O?9<ïoVV%hUwlj^m[ڕ:ʡ;3iXˤkPBH`UbPm~%(;_)F *d γ7D%Z*>su%tG\_C6V&XsE%UpbYI::ujEɹygaW_t\l~V[o2AjNdn:zOXZwxmmֶU9CMo^wmsos nDp_#u~ٜ;J(?@SqצDYS+XS{̚g"YuŒJcS= Y\[pb)PL3~,NUZ^egмʬIxIT),ⷊ 56>Fڪ"lcYA>+_=muy alH3W2U~ U'0kz6Em.8D`]q\TU&wYtΦ[6b1#nUU)WgM)mn9hnH QTϫB۪?+qo_u˂5>$f[uվmlju}۪IUMg[ՓWmnjnV]V=mA^sŘd:aTV3sv2W2*olKϫ?g`S\F^)*g4D%TBHj#ͧJ|N1uֵFb3qV^el\.]qJA *ώJ[ؗlcY gI^t{j`?mDmղGöUbUU UhĈ5aUem+Z}^#⇷w3W2emW Y lbPҳ+qlm/;G,15#wٹZhuZyM?ټJL{9+>֞rJ VfUnѽ%\|*ܿI=aUʳ@w[5SZUζ÷U.?Vw[uF[5Bg[=4ڪ۪˴ڪIVt{O}ꨇU SVހArZ~ =ᇃ*acedlܡW6U~F +γ ȫ\ Xy:Y#LټʆUAyj Š >ۺꡁ'>lƵlc3U s,_?; w<y ΢,}cl.&Db$rY?r^eu格Jн|f駶m&_XE&]sL颼uJ?cjeI'݂ꇴUZ^79іTr0e~GC2EJ(^'&YyUlfg^ם1Vy4yUD$>\ѷ2ў'Qٶ, KUitۓ[l2U*۪'wtIv--珗7Y*eW{mm^ړ!c,KmW'qʕ7K**?S'EِۙWY#*xr4쳿Wž_[@\lmիCʨl]VVVVMV%kUoܯɫڪa۪[[m:UTY["?"9,\A%@'Aoz91رryRԧ4`gKg-GצFJm01ujFҷ+*\Jn#Du %F7VV!mU`^ei[tƠ]#!Oئɥ_W[SMUkhR۪U˵ڪVM l0V-.mp ۪۪}lWe?-VK6:l9P3drb^{yS_IL+NgϿx,j$n!%vKS3?:;̫$~Xqڝy.'q¯  tVڪ{|=fTdYھ>wl)7v95kmվ괾m*jG;vU+h ڪ;uUbhU/VMvU1Fgd3"5ck A%Ė5Ua)WɅIJm]',qٶvWY})\8H4 6,rSgs\ѕyUOyɕ6W؀ˆ=]#<zYmmlDVY.ҙ暖ҒƌM*f*x[,3ڪa*1mrV2wU2{"U1ccsFzeô9P3 "2DƠU3,FȞy{9nO[B^ebs!Pڜ%KT~T?TsoUU*wUr*u"`!MgoI?&sv9_9SuVVeUVV}\6-l[aDmm1U7kUuUbhUϻٽ]յ\HU?xS#k_tzJp7*b$J$Ź]uya{W'>kjN@U]R :* d$*0\lQß,?<{ K[4do/*VdVrdaضJ mUJmUUCLo&kU= ڪ{\>d`u1FoH@WY[t 1'zUH^eg8F$zIla)jzUVOGOd\{ʫ:/I\& r^%mKF$Փ@ 6gϣJUÓ _:;~snWQkhUkolnjm^7mUw^m^Uo?{B8r;/ yAN̫$N㒨eURE"0l>ѕSg|nUWuTΫض8Sڪ' U{ AK:xz_ \8|[\V*; l÷UykuUbhU ڮsa܈ὗ[@,pP F̆͜WI|f^}JfCeDJsźoYTM bX{ªyUTg*UfێkM+*1kvU*wwk\Mbͅs_kl1JYڪMme}ڪ%Zm&m~ڪ:۪eEm iFlfVĶAvG@ό%{S=fbJ5sb^%nѬ-ɀ~ADrYTMJڿ.9%ȭ긼Jn7tR9rɀjrvV^wyCT->k/={Fvض@]FP[UP9l[%V[by߶*I,VjV>zmUKVݡVVujF2jmC}jdzfhKb4*$a kJ^jgIcur--$9p$[U ?6C).wwN]W Ur?QLYͫ/xYxNhUOVrKN {ߜ8re"15mJvn6hU+۪MoR&o)|p[5RGZm˹q۪+Uh<pDZ}0WfNT@pk&W6s\^%pbd6|*$Nu<:D̾xXܬg[Չyce*]%u꫆v1`[WV=?P[0tw~fVp.k;{ls}sͱebm,ۦVU lVV VVw[$|[ՓWYVnA[CU2{R1an|~q"2S1)%D$Fqy&`6Lħra=񃥗[E r4R= 'ٰj@n#*1rhU]R}צ8-J$yce" j#*fdq_󰰔S|pӧ..sjU4@TXsɶ*瑴UmVM%Ǎs~,iW A/]܅3N>sZ"mnF[_VUkUۏ-6VaZE?m]۪UّUYsUUv6P?;;qshm^4{Wv-V'>#DeW:Vuz^%wHͼJicǛ6/ڪlmfg}%wkjk:Ξok9s7 *V[u1WѷTWַZV(ζjmUbV[uζJ e[ڪ6U+㞸ZjSͻK6nl"F/ܧٶ-H?NR'g{/cQ% \UX}:uWuI)ZWQt-V=I[55>mU!mOڪV]V^k3~ѫmͩNZ{ڪж꘿*o<* ljrknU2ڶ*gmXjTFONK- y& ,hضGX=bƷ1Q'@R )8yE* PLb]uʖVbꢵ֖V*O] UrI$FUBwOX޼ʔ7?l==ƨ y_WV1Ŀ3U1U!L*۪ʪ jRڪy:۪˦m>,z\?ƂfjζJ jMmUUu(W2u;߁/6YD^e\*eU -Fv/bzi^6;Ss̫?$bHuU<sw'%0u#ʴUB۪\jV@mUmZ3LJgy?h)Kwί/vt~}Bs[Μ;yTL<ڪ5ZmՑgXVrdaضJ mUJIH[U4`[F?mU~?m%J,bZmsֶUWU#%c eK'iX|pە:}y%bv'N^W%q#p=Jxī6uW jUJ5ⷖ#2xL 6g~䪿`[m!mUBJ =mբwQpowӱ7󼛪ZP[9O*+Jpmi۪hhUkUK_h5OZзz݌jVO۪V)^U0e~ };/mLsݔWMɋ#o<t9:bEUUʈ4_𪶍,:Ԇ[5yUkgDmUV|eÇckĘmZ[5#GAmlCmz*1 }kh1ͨDfC_%0:{̹/u֢J: Vq@o[Uʫ]Cy3Vzo[5[w[5x[%V[%PmUO^Q#F[uV[mը~3:m_KUJ۪[w#<~SdTUPӞCMY_>Y.@__u_]h;{}",leUöUbn4*mLjU:*qo jζ{hUb ih.?a`e*dz~qxGpS[şWMɋB;$EJKkgXڑɢ֊U0_*W ێWYaȫV3qO\}Ϛ%*1۪+U?4gΫUˊ·Ub1=(m?YU|j VYfSٞ1Z7\g;tpm{ƅZΞͭ'ZNqwd]]SX=o)tE*l[%V[Uqζajv[Bz[ZVM6V[p[5RGZm˹qUUo?nU՘i!q\VE-sEcg=QoܞH\!U*\,|6E6en&1uϫ)xܐW UV޽՜O V=om[ucmZmՂ?Ujm"euFʚC)ƺólrgܺu=cC^}(; 1ZO-'Vi;%Fk4;ߍߎ8:|?xk֪qg6<ͥէQ#M5j(hcёb1/+o<$ƷѱUbT9YVtI[Uso[UaB[UM^VV-jҏjUkuU+K·U=ymU?z }-]y3W+^Uq p:*\p8`'C)S+DA̢/;/L</STO4eꢾXUBijUJ#"| sՃ/+۪Va?O[?*jiH[\4nYͶlJ "Fybl:0f᧞7u2{kb(_12*eT&]Uq+R[:M운bծ;uubo%]%Yb;:bj<夶ViUUUiUol6NVnj<ΫUs۪hUWir~VM9h?2{X68mA.ȫ7WWW¿Ue*mrni%zߪ˫r_ıj1qcϳFqlݕI^?(P&~22ɫU۪7 V'V<VM lڪ۪!m'کZVmVo-nV[%FH[䨶EVI lYmU&*1*qiU"i&/<VV-nVwV[5+mU|[n>X`fN`J^\_g&4韻ӗ,LJEU|5J w| ڢv>/x]3u6Oy!Փ`yu?ȫ-7~vU/GVZjYmAm{۪3Bڪڪ,mUqH[u[0P[塭:Ҹ_:P[g[%m՞ʕ:*1]m[5#Ϋ UoVۧF[5O[VEg[ˍUіM<87J>8ql಼**)ԉ=ώ^T4KgCj%.=ۦ.pTUݚWRW)5*D#Ghh_2>g}IUjz**ޠjqp[`$mՄ۪eSMlVhU5mUAS۪m)mUwoʻUw[zOejض*2WHضJ mKm$mUv[V:۪JfVe[%V=u?a3WUiId$TgSUVJm(a:,]\=ώ^T4۴v6g%NP[iV;:ެ?~ضPcnP[UݥV}ZVζjmUbV[uζJUb8n*d:U)-8MC)#P6J4ġKSX[Tdb,;۾^p9nD*~ZT3Rj}&ۜ*#W_UWU? jo`[u|[ﴮ@[쐶jn`[%JHڪUyAmцҁڪ:wUuMm1mZmUnzmUjYfUöUbXV 5zqeUOe'QgxBX'iX[+R|e\Sg坝~Pb(K\臿2=XI̬O^dceYsl^%[t\_įASFR' *__ZV#?zajU}۪)iUk"i>=O[ulIp[UiV3X[ܶ!L*۪_e߶*ElZضò۪5۪c,hnnljh~aoɃTQUtIf Y޳1ܢU~"#XV1O|ylMaOoDÞ? y K`)$j9u!np0ۦ*H6 a/e*Z{9_pmصjfU/UCUUݣ.*1BڪmCU=۪=U+oĈjlUGjN|[+9iU'kڪ hzm{:۪-GmjJ) il觭吝"VVM][g5b3: %AU]=/LU&'y&eǢfSŽSgLRPb7e1e*lvXi7LCorUbh n?V%xo[5N[Z6ٺjGymUaݶP[UVrT[uZCζjMjtUK_h5OZзz=FjVO۪kU??-ِ_=u**( R?2PXvĕ4:^Pm07skg y&GL:{$ K  ͫ$NM(i89"~xjrCkU U[V=ٷ7ڪ۪իj6VU?殶Y:jUbhU۪ڵ:*1v/Vmlfn&ojVUUbU?h.vU?u/}NL+cWu(ro}E6|nf;<@[v`[Qnp[U)V*VUNktUGuUb5ڪM۪]÷UKLhVMV-+zO[Uf[UO[5`[5;VMuuns*1Ċ_9%:O+xikS*5,qE}6V&xlTvɫVנ-ͫ<?8xu nR)3mtP$pk[t[zޟo0ZQV.}QtcomVeפVm,V nNjU-UUǏo j7mV%iU۪ZmuU6jCV#mUO^w|mUҁl&luC_{I%xS# i9+HĞ&?LisDQ` ^eUWNDhiId|lI UΫ"sU>SW(?bg#?&4sϭm}ڪQUUKCڪqUjUeU_kڪ "ZV jhO9je r\^%m=^R6?9:zGEU1*̥7+^ԙb0I\rU]RKT[Kbi~ vZ}iIZBkJ5!돚mUAmHڪ U˦Vmi2ڪ*&*bj[UV8:e* VyUm=:*qmVVMV%kUoܯɫڪaAmc뇌|7kwlQ#⇋.8l{WI|v8P䶮y[ Gϳć >>DMag鬛J#m8I= HAGVbꐧ70:mCUUUbUmU!mmiWUBڪCa۪QCg[%mUS*1UK觭o[uv[5C'XI8gϧ%P?X*GO_emErZҀCkw VVMn6z5/VZ[%FmUCv`[u(*o<VmN|[+9iUϥVuOH@[3,mVm90l[%FP[mU8jFƨ>ŷqҭ=%U,M⽌AN̫",I+2Ot:kރۿoro3*.7'q^'!hUXE76k鉬ĸn߽睢G<ַJ-l][<Ķn[P[Ulr[uQmiJ Ͷs;۪m75ڪ9bV.}Qz֌7=ycW s0TIU@}1ȉyUQMT>C˟KmuE}KgͳAHwĢ\aQ~/YŜQ$Hqayx^%sK4ۜ>"~fހɾmUm' V-V^=P[Ķ1wUZmU V[%(CVծV|ζjf[5[w[5x[&~r==ա7xc**㽌AUSH[%¨_gu~ґ+g!]\Eg[B^%Ayl^e=snҘ'G{G{f1Fl$➾O G$dOmmughl2* n*۪uU۪ඪimUζJ̰F[I[by| m~ڪ:۪eEU?Gݹzckc"p D^ҳȻ(P6q> 9Kݷ[WFtH_xm|+wԜ:ۂjŶۖʆxJ6(O 2S2ctDc1vnV.}QtcomVeפVm,V nNjU-UUǏo j7mV%iU۪ZmuUwUs?ڿu5IHLbٜ^Y[AR1(򪨼S3/źV+~^e<٩#Z'}6=it[eöiFaSN"Ƶll,qh. K?a|B8_/9-I牁㦩7]2VP[,ͫkR۪ﮐ*?C[ur[%FmUInmjv[\[^J-z}σS#ϹTL%X.'U,{ȫ,%7bKm/p,lmr׳ZG}FI62?n|$^mg,+?MTҵ0?SgS6ur*y 5~ޏdd?~:(\M~/lRf[uOVzﱀ+۪5mUiꈁ۪:s޶=J jmU 3>;nz5O_1UN51(E)xX"5/ϳ_k|Ec4/*qgr[zY_L:YM:UFW 5!(dᢸ%jx0IC)5*x6 ;`ROG[RLmiLq炻]Og.|-L[U9g`[%mUCmUD[UX5Zks;7x󿣌>Oh9,;yAͫNtz&$>@B ^?Y*#>[*yU g휦z8uk{8G^eܚW CP|:~Qt13g%Nn~-R׷] ??^jlUGCڪmՉok%GU>Jڪ hzFp[݋}8iOO?:lfw7L>bs*، UzT ^e3 1]q+;S)J^j{m3`'Tͩ#2gyUᢘ~[+t[Zոn9R~l>:u{_m:娶tDmՆSN{[f'N[2SZ}! *W5f/ZKP8ReԮAU򪰼g=x?ԉ+J*D:U?ƪG';V S揈T7a3T&,ҝIHUVK9YW紶jGqVZ֏7}v~0iKbڒ:ct*Tp*W ro>ۜ@bpT8z%6EMYTɫ"";{qaM>gĝԑWYAY'U,M<bAemEf䴤 s)y3LcsFt?jl4(H(2W!.gᬪ iXkQ{\\ޒN\VLX\:;+zM7篭ۊa~J qɱ!Xois?*Lɋ/TR+I`atf~NJڔXް:޶t CPr$m쿛@Z} S泽Cb+*~9F= l<5:/]x LC@Toj؜4cbv6:p** Tem+sST[,?v/şR0{J E=Dc̴OMwskA{GrZRoM.HDb|%5OJK0w#8'0^2kEPC|*v endstream endobj 81 0 obj << /Length 1351 /Filter /FlateDecode >> stream xڕWK8ϯ$0&}dKd2F5\ 2Ǜ=ItK_?1دf$#~={N ".`w6&Im >8wDaJPCcoZgqu%P7Y+GZ7qij] ,4 }' qF ԝQۅk)D$r04H,ֵrٹ/qѥ[b9h2X};طR&i[od\2;*#sq#H͆K"e&i&-,l0Q Gf"Ki DewxiS 4lmz8ҨŲVӭ',&Y3CҐ݁6L9MiJVY>9IA񷵺ދfLi\5'Em;z.|kAbS'yIvNc8 W<]5|Nmf!:j&YiIO G.*INz\#Z&b;與X]|'kWpX'⼡lrFd>vrIoJ/'RJm9¿$dh>EML EbPwcSѾ,m!.v.aWG/9KTc*c/D0NHqy4L{xCja`fI SX +n@)SXFu70UֲQ+ۘWTs"?^놚ݺx5“qTXcqdݕ&iis7R(pw2TSC9J:}C&)56E.x|Ϫft99s"^3uLyXȰ醁v.`I5Kn'GS,B5ss2=TIsY^70uw ߑ_yuEaqCI1w@0{P%|iرٛUB5j G ڮnE*474I!ܿgaI  `er}OUv4WD~s>J?UQ]@*b$]WÈS檯 > stream xWr0Zޠ쒴c4%t2]cf0 +6v=~.m]t\3@zEyC13UP=&(0q>:svM}`@8dAGU ~ F|BgGBsdI:(p$n?yijnbQ ϰ6 14qC4nQB *KURFFdZ Y@@-2U=~uX߰8rY,<*aq&;F:y:.ż-T`8ruVס  endstream endobj 112 0 obj << /Length 2553 /Filter /FlateDecode >> stream x[m>ܗUkFBU꒽U.J1Xc5xg_%a6|dnI;q>aۏY%_(#V <)< cg㷳˪mSYZ.LimeZvl硖wG"s )džh=fzP_xfHFn^ErZz$͏Zy*w`1laȑ,y4ZF5U5؉ 6v-0=NgiX@dTx` #P̕Y.'fҿQE˥-^  d o@O sİ]wQu A/̼ܬYU3,$+m{?23G]+솰{ꪻҕL>}$[ݣ/uןk%-i{{SeE-jfrKsxX#5TaIiTV&랂prgNfԵ3[ı}9ģ">s_xX7?Yks=$n{kf=fM݁v_ZJ0!D0B~h2z׸C>FǗ8{`,ˠ5Chvů&8f-).J \X['Ss:2L"<lv09B~̮U@à1hR N J=F=λ7N|}(;bOOdOO#7?bD-Bq}$z>DCB0XxxdOt*RW |RpxbcOXOG'A w2ʮ逾,>gG-*`.'c F ]tb.1EP2uJUVLަV -73 j5M߱%d/ OMrTvT0DjTa%M_f#Evp\o mnӧmͬ @B30wTn\( SYʍ*t:)USY(ISbdk^LӱO  a;$*e'hdmus-ӇTEyYp8yD`4^Hf}>ԘEfXgewFd९:IV?EfƄWвJtXn%kOgC=bulIͳ}֚mY{v6 eN endstream endobj 135 0 obj << /Length 2508 /Filter /FlateDecode >> stream x[s6_NgzLs̤kźDYR+gbAJ0C&.ZQڣ-?.Ξ$$2b텊hz2+/#O]d6͋?"Qш6, 9esSÌS?/>UR${`6f׶u3Fx _ąCY_^h-3ɊmOnGL"aL%9q۬mf@/?Ϫ-"MܮM8[Jf7)LjAwvSMi3c~m'f,h"`3a=2׋?z̋4y!`H3Ij [j8B4y)ד[g ϲI"OR=SowHRG&G^(@mh))?挅>ȷ>H~u@) SDQPqy G}*.4Eg!R.*kDbXUwyZ {{ |Ē-{5#Yhա ^ GRbUGϑb vB%Wyb ,@ɰZ^ aeMXEvX_`ݶ4(23ґJmA}X7]`f7hn3olAN'.H}$GR]pAߥ.KBIsA |ⱂ޼|gJ=dDD(h6x F} IL98YGxIr iyBW0f7zaXl)`۹_`m&4>Y-vm|~kc嚬*l+N rkMVhS- 6h&@ _WD&k俴)Z5Uk/pU2fmU̍aslok FOm>M}˽وfp^.rͼ[)Pڙ!IP }\X5q(c]ϼOZOQmp~6i%BSz[1NzvIQC%!*]pV$ $TBR"R™/wKn;Jnl0B `}s\- mZ,nq ]-ݢF z"gD+EyOh jf=]NZ,iEm/픤ٲdYl4Ö| q|֓Z#kn 6Mm-sivqܐjbdV>r{w{_k($4{;V ;$\peۚ2$ (@`S}) !'SyR)H҃ |Rs[M) ,޴i<04@/,8kEh=o\ &n?H}q/ߔʁq 7͔oP!@gpɰq- ^E}_N<ˋok0OIpoU0NLk8=@wɧ&b3}αmZ!/H ,UpT{wO*UQ->bȰ^``}‚h!885x Ʃ}N ip\Qpb&,Ʋ2\e Ux vż~ ch9),]F EcØqo" 1=.B.]p'=DN䢵EB!`*z Z%"A5]hpD a3X:dSLW4x ]O+*  ^1C߁I|ÖG` *55 ^U} _,5}LAn.z=D%rs+Hރ u|;_NP߯'E8XpT{wOj]sIlIue҆MpI3nJij ̐C=?CM+Vy)rL1Ɂr iP4o$ xCپhqj$`Nج6T\S"XKp6]OyP*92},1)E,;Î9?U7y:Sɝy95R<*VjpY`x THAH]%|FjUhؿϤn xǁQΜmzI??Gr *&AaD?(L'apFl FI+U ۃ&'&I*W=z얖bLjL8>pĵI;,;ԲZ/q1& f> stream xYnF}Wcna A4-<u$â[{WIQv͠({9gf2Jxa aTIV)%= R^ -`0ZJ1"FL"bIIXmPXA&9a"Ө+xy)K @X"=8#Sb5xQDƶ a=a%2a3 0P$X+3gO^4쟘;(6lexyOi}􅆧|hWkl& qeXT>ШA_aBkq3aU0Nm`WknAB xW 4@ !Cȃ_C75{#$ @C3 CFQ4BuJCn@Jbc1  (\-DT"tOA& .iF7: NpS{0(p̽ f utbjӹbj+&09#qrةR#lF6Yozӹ)g}gه/Y/o[~5 endstream endobj 162 0 obj << /Length 1318 /Filter /FlateDecode >> stream xYn7}WlS-$i⤍4QXڻv -,h-W'7h 3o7h \_(ȅت^8As2h& fJd[,͆w$anMv52.0 U[ ʵ=l}ߺ~ZbBKh [g&l٢n[X[m`=~Z hCa.呋iʓBJbElf@5 U_:fzyS#)à9 ))VwR?DJj~R,J &'x"դ)軼,60DdȮAG/`-sR^;䔕@}D><x:QF:@ Ec5ܯ5V}f['k@ޠ̵Uڕ]ze73߾m' ͌¢% c iĠC+K $-(=gyw,u>B_}K/'7 Ot2S'C'35?M DpӬM3 t wlF=iau!U;n~Rs-7nm}Ҭx'cO›c+2Pa9^L<1I#' \ER;'G$5?D4׻y|2;uKedHyD^$a> stream xڽ]6=CNRl-nK |bcgHJNlILIERen[zB[ 8 } "q.dq]_ZHYuf-~]X-^s]:EgR띭8_tyqЎl)!"-MqAlLBNE/ m׎'45lFfKkltFt;dw"g`?/w̨WK"V0F 1Ň*p0ܐ ]sj}s6RT =ЮVCۺJkqiro'e8̱6=o(Ff31Rrc2 LRE/gox nT ?*4n40\BkWa21vegy]z'Zf?47U? vɴK IdQĤ }&mv-|r܈ i6^'Iy%΍m<0oBJB6yǸ]{Z_é<]3oaj"#X r[2% E~6ڎrrJ˃lYgrt9w0>f2C !>0.q sKΨfId_є4! ako-uMh'=!>3 uqЇ;EUj5B xBtt 3C!CP ݞ:"$8'YK>[)y0k1³m0%ASq1}'\qky"L73%+}D*D&"DR#10/5L$Wp|B_$Oh]Y"O JQ&t)OI> stream xڽZs۸_tL >$='Md;lHb}HI//`owͨyI+R">x9m&%vȱNcSV4,1q6pkF0z"m@w5،{DH*# Evy,PtAx6agewGB ܉, /\@5B _v)nrUt}2< 4{eZۼS_؈ ~jV #uުc8QUp(Uuvg18U.2 , @$S3NvYj pfa|M ym:ko0P|w,e*S,>i`#oh 1M-Vme4MU|ShM*'G\`3GiP?zۢ茩Y ܇p~^ex ERkQXehxS~Ѯ ÄHkmi[tZ Y{PqA*,~! (C)WԨ _ Ty-peIq}j°ۄ0-7q YLg_,V2<``Cya@(4yu@#/s+Ziy6d\ޅ:T2r;fWm2H#GODVa7i:_ kKfliw$3P;U -~ [(Ss hRB>=E ǝKHТCdzO%CJYQ= E7XoZxIw8q!ivIl,w{;Ց;](ϴ{*lj\j3 LJl  8J%8w (#dx*%<^õN:$NU![!cMHTMx ޣB㜠4BDNFʽ@렼rMr2e_DQ{jn"A(ϧGl;}^baNx[M.^lvߓZ޵oP>ܤv톧ţ`JKvnvoS;5l;)ǯ.$ɬѓ2қ5 _(_:&鉙epӝ͐|}/A5fb1O|.Lf:\=H._~% hںw??>J;N0kA{l:L%4o endstream endobj 204 0 obj << /Length 1555 /Filter /FlateDecode >> stream xXK6WA@%)Q"sj4AM>Hr`$z-,VlAjC* 5XS",UF(MbpfIHҨ3fE"#D7()u3\ JW5WUs\\Wo̒wKIcqh\/9 dJ΃g[\*dl[Wn8ϦyJ#wW_5"ȸ:Sض4ftSz;^CJdB6褐 v`TayRNI"Ӊ;q;8P$IG'xp!݅S  Yr?__lbJ7}]Y۶j09?X5E}(hu+C?u.Uʗ \LJ Xe>`4`6QI$G Ls?kQ@tq;CbB*;$3 n& ,`oڈޭr<;E2qbP-͸t),`y|@LXJc 1׮m4hnoZϛň.%{WsAl߮R;L 0.,2 h2uߙ ?50 &pO.3 ,#\Հ3tN0GbjОKAtmkA8!dͣ!Pt=ğ"Ŀ\*'+C%.>XXX,51sy=dЙ=C(4XnƃAcIS)ޢ' O4ϡ5ٙP[߮OKw 0yv𠱺jzY4{|]$KAY3{9 y.#$a24xfi.sK0tT|Lc۞)(!<00-\,ˎ*ȇKrrۇ+nǜL;Wۓ6dN}[$fpW`eZ0X=x, S$({ xo3|]_CwԿ!my4^s&յä jEᬃ'f&ۅf \O>pDĻтo//~5.z[~*Lӛ.8)8}DZ-H1F5h7.+-*])O.I{o. W{Gy\"~^bGp049^-0jDQsS'Gi"|$F\W4O ?kVmoԠ\p2.k ,xqG)Yą$RɈv> stream x|վ!T@Q@@A5@RJUDD@TnB*%䆐Ξ}?M3srݏ?~m۶M8x }ɓ_LNNNIINF2dH*t5((~7<<\t}V|6ma2@!777b=߿?v|8 ` 'Ofv\\\p@"{o/^:x~_^{~ݻի*v$ov0m4^mw++99_9K}+}bnZ:G,Z麲.1#`T]]]-n긠-&Ϭ1pїm^6 q>N|||TTU۟{(p).H _R[1b5`zY[=~QdVoE5n5&/F?Vjժ<+&6A6dK놑#H~Bպupv# eY[ m/_77~xkYlk̸+Ը۸M?h 7 rssq&X088:=C\θ˸._0`<5˜IƳSⷷG5heUlqMD'#WSYgl|hA|]vsݣJjj&'zC-GAAu!D~o߾ 9K/TTTHIIR<$LQZrr2wOkiԨObBe'N\&#b#e,70^-I? '@Æ ?O599####J 'G]d@.,O(#ٲ!4_7qZ+!JMɃNfӭuƩ^L10{sƝ5{*rn6~ܽٳ'v3gUO3mw9FVlTE``3|WQII .m$''ϛ7Og<]$O|Y q\ #{I&ܲ-Zg=y5k2FBBٟiZթ؏&q=jKm鞞.n߾=22E)8yw?83f03a^ƟzO\L*ءVafPzVs3e&s7ڡ6dK}N~Opܽ{Wu @^ v[bO}c8HC"+i&KJ ;hӷ3\v/*;SVw;}MCsI7nr\g_T "c ݱ)))P/}gU;$a*m6ԚR3rULw4h,cOLܪ?(`Ϟ+-h{Ft:]1V)&vQ[]cL}ܬ+-mPO+u(6$*ɼez;hE{Y}}} %/Bһj4U qsb|W8't/oȋd@ZsME܆5BVc r!x)mow|FbRe\Zj:EľՕש 85Lułtj^Yz_CBB❧_ROD=vܞ2ƵchOY]g6Żk׮` §m`mh<3A;nmW;ҲY]P:Xi*5k֌O*q-v~.;ɺ2Bƿ _u(wsO&FFY+dUVj;|KIӏHw+GˣtgKύ_ j8};l2j6ϼ]I"b*RD,`oC#@a +-~bkhL2Ijh ѻKu`4_?ac6mΝ;! ŋ.yAbj.`|OpnƐEMJHZm¢f'z Gw$v>!^U OjNY1biꍲCo)'vn -`IF7F &ꝡ :Jwz.t/cԫeG/Zs9la9|@>|X+8VGj'ZWsIRkgcN#j1fu\z777SrبvU[Q/I@ǔĻW;7bhexR/F ¤IL}kxNcw] w:+OؖĬ.ck/ P̶m<"v L*vi \$؛&-ևG `0Nj?1#v+#ïU%$$r +ع1 g$]pzꝝŒw֠O hL*":ZB?K粋0f's-]; בY;k? }[ˈ 5cVrE$f1.V/ Z?kn 3@"۷7-Ƴ8'Ukn?=Eb4z\{5Ck>uku Y^uSbZK=p ۥTѾD ]_uQZ=aݦޱӎSI?xpQZ ۸.;|;luBDȜ L}+sn22o53;AɌ+au>bVRTq(2#_SVW۷s<@%LebmY[W`&f3rbW\n_;xt[baS}eoö[ 6nyéH|@RfW1,vVء8"u;wXEWUiyw-d^1yk=wV#D-Tj֬i[.l~f>=04|bo6ܠѩa +'u*s3ԏH~"&ݾxջ] 5Lšr-LnoLFJL;ڿvf6klS?$W2/v>6Twߣ/tW = x=4_=瑌X<:6Mkz̥-6f *G$k.OTn*He ;7Bf.ڇ1<oc~>#Rhot,sEo4vORu<͘mhz7tۣVmɿ]M]Ί?4 ){Z)ZǪq7GuڷX]%Ǵ?Bf辈MbY|,?;yiY?>MO WJ|:o7Yt\hoĦ_]Gb#1e\um9܊"+kșG ݾxjj hci*kJMctn_P[E||x2gfsM1fx8poN &xN\G1Flo$nLiVys,%Xv'K|L-Wk ۶m i{]Db㫚Lb?Ude1Lĺ#`r̉qܡ85/M`Kf Y"pV&u,v_0Em 2!v lqw%g&4a߳5^NN={Է ]̏^{P-[ OL1[u-[boŅ9J+{ٲbh׮4TLjMW#6lS_{ȼNcAyZ\qqq0. v4!3)w}pKIGBr{( ƈm)5c0xOS7Q7fha__-ǭwfNvѹW-FkCZ]IFXΉ ;'k5?T(EC#pBX)jX&)@'j4<ٖ}3B0 hڴWר _ r+}2Gr &RIۤMLA|9CnePүoj SޠʖLV?aaR d(;O Ʈp<׸rҹOҷMgw$3_d>PQk,صꚟC??/zc;Z$c6_p6lgI4U/m}2+(PS,; j nRzVgҤz.;`۷o eo,MMdct.jr{d"C+vU9*p+TgR nnn(jKZ)'ss).\X@H=7_PI4=z럏4veFqcUvFY$-}A&dlժt/ꭋ|3Jc2cڽLo/_2Sõowj(؋:bQvѶБ3:ruvhGu#;o߾ j4ׇZ)vەI=;k5*ffS|ԮJgU@FFFë[hG=%2:N t0 }։!q<캣 ˤC0*;deeU}Q ~u ^1+Ul7EcU-ewW-{d>?>{b(܎2[ZJ}9noc;}6/~m/^ 25Q+FAԓ-!"pZ~BQQYc/anW).zD]xDUعYSO8FosOe2nW)6ƅo̶[P$bHb?e4&>J`p;^5rJeΗ~`4f ;=W!J'%%Av{<01B0!'M>Tۛas{^3O fw] 8bl]ܞ1mqqG- ՋF/:^v #="9,kG/e;{ӏP}'p; {$dn5.pBk HM*p;m S`(n_hXUfd;JA8:;?2#hS5n18jW}…c b2$dSSm$hi`x 6ӚB":mr~ۙÂ+_/[=oo 6fn)3[y@$^ڔz's'K9Jp0`:XFoW6FSn>5g|.KLTRϽy] ۾Rbb"@|M7-!W {.;jN\eJL8}X&O%Sv? >lb/_5CewXVG/^Siz)[}9ү|dvYf_LDw -|4$ջv[\~g2שmTI} 8$" EOV琿nes_s lu`( {:Ý="}b8)Mzz;HLѩaS~MHFbB2g8)'xi==g&h1-VSnݻW!=t_Ę&cgɡyb#}:uw-|ӔT{xxL=&.nG݊v:l: Z,-Xnm6멷y͓Vv[\52zniٲ%@?^q{|?(.KNFnz>\Ҽys)<)&X4 !- G^l-))SۥHXtilj2ҹZnNrc daqr%U IA驖3mڴ!\en/ok仰 g9sJk2Pyqvvv]{FWiUƐ<>>ZKǬ$ͬ"2Y)22uW^M۷ 8lrs)O'kOSYfǬ┨jӍ;L#_`X0.\H|\Yo/ە3|d"܍MV_Z=Sn#JZo14 & ӽ{whVyݻ*zҞ;+nR[$Cҹ!ܮl~>JnRG'\M)mgbR(**"zkɟ׫﫸AV`x".t؍ d赇IU[MMѧO}yReū9x٬hb&Wp^!aSȘDHHՀ+6SyM=4yU0Q3L-;˵gr/ U͝;w+H@@˹I;O*WrASBֿn&ҧJm`ZGkz~9qt 'ϸQ:1ɤIk϶uSyԍxyyCpy{N-F TӝRD3$d-۶ n< j{e*$f5}_k8 srJM>{f˼&::UL " .t{,,nNg+7դëjZR(kPYŋbjKiV42fsm|??#rJor/ndž&ϓFӡMfl%˩'1>d8-fMzd]7mujKu.@݀4w!`7nػTz9w4, |<.]K<]ǕM_qw wVpVϘml&|hʻK+=*[u0q >ԆzyڢV\'mS.K/ 9OpOsC85y = ^藩j@^޽h(|q.K\[ hͳ&%s[J`@X%..UǏuDlj w@9aQEbDDU2;p+4ݞS$yԊݹs׮]KU3Æ tɞ˭ j*3]ؑQdr+\ɑw ^]Y ;s;eʔ)]t1kVwbL{eU{gYn%ƍg՚^\\ ˥KR˥N e[㇩R毘;…EU?-*#R%M#h hw(E[`iQQlYK2TWɖ *FBDWI;СCmHoܸӧO< 4[VCLO Cb盗Ux\IYCԩ# Kqq1+_>qe˖:Ұ:>VQ/TL{O>ܹD0]S*1p;ܮ<3f$&Lb4Ftt{Emuʰa*1cƈ΀3 #;O*v]. ]dУnSW/,ŋ`J#00#˘RFO$)3Q [vч#СCwp*XRéR2a0Nn%6ۆ:<7:ۓPFJ@@@Xk l]I l-S.e:k0Tj!d^1Xt=B4l:}h^4mI&Qԯ_0]h=I~V;wR1NرCNs35Նv#&:N2eǭo^–zX"}ÇB=Άy ~lXw,Ge7m{oiE=Ɂ+vZ+vnU&2^wIOndAA擿!e) A/SׯCŲz2me^I]sʶd|'^o0R{ ^rqqB:hR#;`%t 0dk׮hmƍ6Ѵ$[gN )=u /ֻZF/ԳeVZM4QrCNhiT{Fb@xo7|6i|+y2jԨA%%%)v=jvxj0sÇt\=|K˷((HpMHXJ_xyyl޼VZgWt钜l_c]iжm[ EUGa$$ڷ/joOmڴy饗j~؟Yg2Jrek.]t͚5uR>--E<ΝC]Iѣ 4ǁjp@xzzH:!HOOG]y>|KckTVͻ >>>M=6{|"Cr L;ڵѱ:jC?f“'Opdc11Ο?:K.T2판 YYY*#8!Hnܸs`# X ` )C"QC `X5Y߿:3+χBY,%;;dB;w޽{0'VPW^MKKy 0Ul 0E^^< @K>zT/ni HNNĮp2[XwCKw@ANNKZZĮU>}<pB1(;Sܹ9 yyyW:zNLriyfVV 8wܵk7PXX Ο?}h Tfq0<6ןF`өQ 8ׯcr+Zc`#_z#j/^D$rK@:.]{.ѣG7nܸp&@ HZZZnn.m ^ǏчMژW?R6())yk'=ϝ;8r *weff= :IsÛ7oggg@K梡ߞ/**Ǫ@I .*ݻz*mңV-}GsIO/ڢ:jjS3Oe' `r O>-))xRn޼yƍׯv ڵk+WЖŋ~NN)deeeffs&w j˗/5GTA(eK x'ӏF? K?29Җ6]RE;o'.N0zGQj?@z#JG=|{*f.r^^݆|1DSTtkΣ硯;~k 8LeKK5KeK[J8f6EzנoBŋ b endstream endobj 212 0 obj << /Type /XObject /Subtype /Image /Width 500 /Height 419 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 1333 /Filter /FlateDecode >> stream xq@@QB-ԢZT P -8e:acM>M4ҋ \^tMr%ќ+k.Hjh5"\^t%4gBheМ᛫99.hp595W@so.hpͭhhv4Gs4\s5\s5\r5\s5͑qw1\s5\r5\s5\|r5Gs4g+s5gkH{sܚgbO2Ē*Ě4% \ZEZs_Kr=K-~-\rkknsͭ8cʑ]53zroNH9;Ok HHΒknќ%7k暋.k/Řt555䫛5ϹhஹkEknNs4Gs4gmۇ;kkt1\s2[scM8͍kWp=8暷yon zln+8v6s17XVmӯ17Kya{Fܘ^L.zL.&%}l4\>Kg|%ӛxZ[]柭>oy endstream endobj 215 0 obj << /Length 2895 /Filter /FlateDecode >> stream x\mo#_ x|I.HР)E/j>uɍ;]k&u¥V )>̐\\60҆5!uc&ߗj0"l/'_<%l LbTsz޼m_\Qn7liKog?~s QP#f. ͣV\z bR=]vwzgc5-p-ʆn<:~YEofuk,K;!VH|h"Z3Rcv9q ێ!q;Y8,j#m_Yb.5GH1[=EťfS^1Ԕ5Awj0 eS}}ҔXi^CL~Xn_oCu fҸOAH7gqlpΜw "zW|LCǫ?|;T&yA eb>6!=p؃R-#Ho9(Wl~R~&J> ;{3H0tylЎcF;fЎc-=%dG: :bYH xoUь X +,QA``*o,RQPV'c*ŸЮk-1+2AL1"vr%JnxwND{,rXr7Miq>8< ϒ-]>|=DkRQ=:i۴jU3S^R5;P8R>«# N!&OL>FLJ[1? zq} }&{LBj w Y|1Bx'/MI"4ߑmC4Y3o`Lq U]|Aaù *Y # NUX-k3{X|p6Vd'L 5T`>%w ot!a>Tq|fY;ːqx~RuQtlCS´McP;,\b[.uNKa!RBY$cĄ*0Dķ74Ua[2+ :V ;NgbfᏲǂ{w2Y剬|M47?EfHU&O9? J_pFWXbyUX~ i7yfh$ݯ.o7zUSؚP,5OdO|l"B 5sѹHkeXf%ae x%j1' dbY+7I'+cF3Yޓ=xFKDVY4'c44hX~Zyfx,1^!9ljF*=g3c3W5R+"8}jgPԏH5JieY$c܄'t2ډAL1Upa i6~Lwٰpre"<9Gm4#g:ρ֪;UeyiЇW}X_`9s6s3־qQe=~)Ѵ,e|l𺳘KSC*2J>J 2F?C7DIGsHGK,>gCx`Nˁ֏IQ5"Q]U3DgrɣS" Q4#5WJB"deY$c܄' B|lCx]W8n"b/Foz4GQ!*DVlMfk;[ TK $bVBY$cwr p PXXXñed9!g126!~s_WRk @Jo5G*?寋r\1זǔrOdi>!)'D2I鉬AL1ם%/͛nr؇=z1wߞZU6ci1#cq*H>f3⋧܌ȩ Y'9c9ץhRFnD(ᦌʦ3sJ'saeq+yDV>O O!OƿZ |!upHp2Q໢yTlZf$')O(u)׆p1\c ֽ/iauwxNdӟZf%n#[ [!j<0Y78'IOdSQkg\3jaʄY%cSb J徹wx[~{ (_/9עGڜW60n^o_9?yc|'~U[|G<n?\_mZw^_/xnq럼[ki (' endstream endobj 159 0 obj << /Type /ObjStm /N 100 /First 853 /Length 893 /Filter /FlateDecode >> stream xVMo7ﯘc{ǐ a@yQE,ο{|v/)X&9||3fv!eRMLRPCV$d+~9PV*G DCB \8U%F % d,0f)!v)Ѱ6)8BP ݅q2f3,Vfޜջu}N_mox.nohYΏ{ѐ[wv o (jя;mo?۟-ߊm)5V,?׫fH;Mn;67f¸`L $$RZ'/#`GŦ·Aw_,'SG׺ӧan{GC}Jޛӕn=>VF7]m5-މ;墿d]}J~~e޿Jtߒ/4` endstream endobj 269 0 obj << /Length 2381 /Filter /FlateDecode >> stream x\[o6~ϯ>@6E@E hf d:qf_̈]`_hwDËEۊV?^ >i*MQVh}JTj_vū&I.߷hCRV7d6ֻfu[d7W?0[1J,sF,3\Ows_~X>86m]߸wuU,qKl%^==]W{yLjKVZ$i F:5b6]FzsI9 DmxH\$+uLgΜЅhqNXyU 8k];s;/X#9NM5}%qXd-@kxiUՆPӄn*}^4 >dB eB:SSY>s~ZGPVJ<]rk_g9j0/J5qTR`@e::$*LYQ8I40;qGVGsJL'[F^uso>b^FðS,WX.S mi,QLSQ<<; 'f1Tg9RQ”,L!1Q Tthz4Ct7O{Am0m+/W6潠fSI 3~ϰF,(! Dʉ~N%2I@NӑUSiYY")xb?y sl=  SxřV='>'DÌM0*h_MD! :Gtݷroys ?#%1V(#Xc%v(qɁ䠉,lfpQ:ܣ#p#9å 'AyVm pN4!c2V%uXDU68_{ r?čk< \o͹rq5}L Sv6G-Q}wX夂{s#\NAԑUQ#JO@M*W|N)\dDk~xOMcTVFsKOD6ʏPGd񈓂ӄI4g|ec/M _?> W@ϟPf w34E'rTV=gQ9IGVGsJLg ]sOA q Y~A 9Bl*[G3ΚB[bDLep>~N #;qtv'r,wdn>g~NhJ@΢:K*3HL5( ߝɉQz*Gs§𙏐XI0xM{XoEÏnC|#U8Oig Zs?TQC7h~o_"H._?/׷ׯ__Κο㟋b^7W>^JKY:Wm蚥Kq endstream endobj 313 0 obj << /Length 772 /Filter /FlateDecode >> stream xKS0*3,on (QlGj+ͤ+a0yL( CIE,Ď 1!wէ E@h`:!fsh QQnclZ!ƍe,nt0}`C"P=r(ͻ'4Y8ju/2skl(~! ݣXv#2b*^^6y&{wʋ6qIaR(uQqYXRm{X\nR[FqUزVqLڽXv `BB{w:܇luexXN$kBK2jiJ<~YFZ %/^';"$#k~يW5-kӂ<85g*ݓ+u}oȞ7^/bϦ|,dlrzZ\Tߒ |ĉC}}%r*vPւp7p *xp`wM!1,Vw2-v] QFJ~0D 8 z+A'4^뎞жf4cM ``cη5*mצΠA .S !(ZjCKIPn_N_.iW䔁y'tV&fp_x4缿@[\ endstream endobj 309 0 obj << /Type /XObject /Subtype /Image /Width 500 /Height 687 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 315 0 R /Length 67655 /Filter /FlateDecode >> stream x\S.6[[0PTlF. ;QB?e |x޻}s=?!Pdg6VP\<2qxǀ.BAD"p8F%vRwKgLDyj^Ʒ򑈑l_bPlqB8o\u.ܔO!Ky:ޅfRM ;}I>qŸy:ׯ`či# PF#ZTs)k*7X:h fƼcۧ IP~ş3_[Tf٘F%xu[m+r£7E-U{N$]7OiT2N# V8NcTE#`>Af,&\R(\ĢZR+ȚB/Q{1UYJ/phX;υ=$#C!9|HLI4?XbH[􂶛artQMuR2ghB?DAǰ;*ȳwjzz8[LФ62vO:y%Gj~c9˱aT߸ӏga +&tuu& i1dk^carwW{QwߜK"|Q ڒ PV~ݱ?K0/_ұ]_t".v/+:&?k]ag,žP;Y XG ,eС'CE#ܸ$I󭰳<t^r6 >Gsqh4':erٹ1%p@X.>F)nG1DӒCאd}Ors0ö[S%v,kYx]T_=8v|OM11c3w G5TQ-dUѠQfґtf\}~}1J%2FO+!qX,3!Z֡R{cSAmtci߿{[w0ђT؛S4 f¹N*rS%nF%?)>sY#}ό\ܺzr?@En׻EOJDaPy=E㰨]dVh!νjHf}:T +IDwnWJWEՈݕ%{ʴv@7k"J>Y;(zR`aQԏTN<1{e.mx|k?nyxOw42Mޫaҋ p sg2Ȱ]Y#A{ZO)ztL|wewZ1hd';ke @ItlߊH]3$Kܣ;,qifY1A'_=8ZswVFFfx.2|65ҠnM.sIn6VQ>T>6xW9ZFvncR_k.۾u@{Qm71 u2YLQxTQZO a3|֥Ex}!*k]v42%Mk6&L:)pP G;33c޼5A޼KWڴϠK3pTm&N:ȥ]zQ5R# gG Hl ӾCw6:sLsjΎ-hTrbnwXynG8̺GʡcrW޺uT}IC[$,P}0fܳn&\Ibw#lc_ F𙏯lֽ[>gCh{mE͚@& j橰۱;U5}m6v3'/okN-i;Ԃ@x,^ _-e씖lڜ mvU DRێƱ"?gCQnv1T>1Ohj*~:*Q8McdjSzEMlWdH"g 5|)@ yY=yq`:Kfvr/ۥzn"6%m'+"lR59 ?tF[?jȸ1LE^?bHTͮ\l laRһRޢ[hGtʨ~ME`8u JB|D7a`ܜmP~?^VESG,GLюJ2ӴlqM2R{b׼v<۷PG!Ml=|A@7Ap6D޷=B}v]*ub*!:IeUãӦz( Z&qE":j]ߒ Aq+vYYR9N-q{TTw.ƥX&bjȍ)W|S@q3{H[ jeasY)ڻ}1v{;#9!7l=>J!Y/w X0E2 ;ѱ#Mg+兪'C!J_tBAE?y5\d+>sD\)d>pvj@V)ncsȮ}:LD?D z@$IDi?R:bP0|ލٹ*Ǎgl?NT"tᰨ۾OPI .M K$']܃h+1g<}n]>҄|2 {l2E"ϟաLĠlp_)/%Uc0$Sc!ڶ#1$b|@iXͤ"$l}{howgSm^WOh|QFI#͛E )铽)C15⡺nf{R杠4AH&lr8BW6_x!c3IR>>c\33U_~^8wnfF1obvyN:5>v<w/n|OyuޝGڦyo^CFM$_rW{H!3#ƥ??s;$εw ~V k4D&!>|(ҹs;ռ Шd&l(doYW n.t_86h 999SPRRRJiƴV+'c\ P:bdd;!dgg`1{GԶ[vӊaGUo437&y4 yT ijlQ{m'W^ ![Trrrx\AuxRurssl̨Ҡz)`/U HԺ=a;@INNi Uv5sRJ}finD!7,虛 PExbɳ!vPNM:hcxaq:]z*Mw5?45G1 צ]s!Vn-nω?E=m:v my&*%'/v#2[5e36gvTNB=֡j rȆ]3!VL]OlC$ ԏ(/o`Ϡȩj8rtCzp2svVװ?Dh H>N>{nc!زr &i>/|foxui@pp:G#;C*jE ooAwDxc5r!*dm.uz.dP{-q3?{aZz@!55cS)U;g5m܈A#OӐ|@ܹ~>[!@˗l̘w`ݐwTL;3rrH>"NZ!@ux.-#UkidoWG!*ظzW 1u2CʽzTCi5.eygr?=ǡ5pzlN^ i#EGٝa@ "He@~Hn&VtE`)ɕ2wV! 0;}p]6^}}}wS+7Ӡ0*PA:lzHD-?/>~d0UҌǡ/(7AjzZ<RrN55]?6]"QaIx*Ġw.땗Q=wJ͛7=TqcGH/5v̝6(eq8nfߨH$rv'tNjuH;8Sg[H|Lխŋ,HȾreNR_C*~L&ۆT}7BzN/auTޟPNXLj>kۊDį ir)?$\ 9E۾J FؽU9h~wu0ٵnG_ȷ0=H֝4qDh\ymo]u*R+rreGcC΁bD^ֳF7Tټy31:[Kbb"Brw2w~!H|-L 2{LToY#'2?s;!LnNGD*Ů.6WOVZr юZ9Wfg?~j;< %#|pR*ڱ=zͤX=0';dP)65HW3##::n]jotl88@=|N iTDvv/jRI]9,Zܾ @QfЌ4ԊX\aуx{t (wnjdTYd N3R(ɣ{5rRB~~% (p7LKT@%~2phpH8%|B&).Ŗ6Gq @iN{ o߾QɳH~ q= !PE9"vHHP>^ӱ䗐 :zL"{(d(+Iϼ\̾F`z[g@*2S_wq03TE߿3mx  h/V,Dy^8sFb;(DA\+*|Fz\eh۩!@u~+oy8 J :yMd_)/ Dy}%ܸḬCm, VC*9qNJ_kB@$''pճC3>A6i|?KQnr+L w?3j dffY3TK~v?6;7dTDRRض74f~5f(wgm;- *%>>ݣ# (nA&.V>aH+H/\{[˗wA*Yiuc Rb%I\ ՙXAٱ}%vk0; @%mvxt.$1dy֋uVbg L P?;6- mKɳٷ^ɠ^Ŋ⹓tB5}}ΜC^s)#}] lT Akum[37[Cde *?/ ~.!3(w3';m"@H$+3aϐ:]ﴴAz-@LԌF)|1nHK'BzOTSCntM!%l +w;7~D":r@;#=\hTM7.x=RR(֝_$'#rVFncf կɬmuȌWCmY/hp&tQQoW2?]<xYCظA([t9yݒ=l=yٙ2è]:3K#C!GWWEL\׶~7OI &G7j%.sRR@iSN=H!!3cF2өBH@QĠC[>8'8PeȜ3 dҋ.m|o^=9R X悟*qׯu 6%Lh(dO2?5$ooN_> y\ACUD$9kM)NIĢ+ 4er҇kcg)46E5-CkӦW:bpش+³~4j:Ou^J-ߙNMJI/`r*"bUS  Ϫǡa_'vieS pgL:D=Г7u - amkdwE1?2oE'D"}|fZT1WO~8I֯iO$ٟ;9说( Tq$?;+$$;)ˏv-f񨉃5eWJ_OjrJG9JtWDQ$߱D ҨMd?>.tr`" M'/%.ׯ_|%Zr!|tttD+E#ɑ7#ύؤa #=Ks#kK# SQ|)df05\jzYzXq?Gx]ꮙə/QܯĿ63ICVWQb W_?8ݍqwg\}+vەk_v@~{Vaٌtm2ej=@2'Vfz|.@{$stuݿ)z] 8r``EĎ̎B=ޠF./Ҏ'gN5miU7gDxcH9EVrl3O߼jʺ7r6E&/~GżTT9X[Z ״m*Эq]uzDu?{ڮ#nj?%HQ7N/~"93ܾY֏۳f=tYxz[ǻWEaQqZ ޠo[q PjdxG\=̮'wN=yDԵ .{;cwd>+oldQڋGhɩog}{GV>E,~r9ޙm\3tme ˶<5pnP%-JW߮ >uwnYŤbM"F?~ :tPڹlz,'W`л30C/@Ek cfn̷0su0Aеm!=m]^LΧ-➱ Yc`&qjq~nPqlekZ]~}ygϳmG[694}>vHVfGC$ TRr 2z/#T+_2-TLnw zr^us0Baf-02M k>{dM ;l\v&ڛOLdB=XL [5}Ak"{^k}~{M>ԝkq9S#.-?*KH,2ÔmzzZUcSBVbV9awOE";|=y _ES;6`X .jl茓|wїK?[i]TvͽP񉞿f:Ks09cûݩn.i boΨA-{ljz}ϐL6ݐgmv𻧦t%W)@DB_v?)bGqix?OKli[NOUsP9kP-\Ll?"DS.J>\x)\s;=M#ðM˦E*"v,뎹msg76ܪ97ǚpc.֦%ݝVU_^}9) Cmgq{!&,Tl]ڧb/03@neڿ`уURSgz:WKer>NG텗K~jnjS;*E(36wxV6ej<}Ƙo}#/qC޻^u介ю6 Vرsxl`[e ɕZtuuRŕ OoU}T6k鷶rŎË́A$UO.>T2'6}cMxԕ1.㞊ۣe_.\G=[">2F%}ήjOl\wo50/tX_oU3c0A5e}ײ/YbRV U oD9X!֮V\?>Ԣr9O=cځJgY;bꁢ\:B"MS"\-LꇄCnWX_y:ǡg^ۗSĒnMݩ\N>_uW QI{VPر־l%;+}bt:U܈#ttj構qM )AxzcSꝧF3~=]!Ƿgwb1(H N( l&_]JU+$IF~ij|8o*x3iIb')Ego7s5cK``Ş7Lw$)۹ٟכsVE3{_6QjE^^ᘁsY XLzW➱Y'+v݄5>̘'kB?vӁul ArW̎*;sFs&l??>|6Uѯ7rWK[+"Q^cun ͽfS.K:,΃1E1顲{gijc?EҳQ`C+i62K[YW e_]kJ hGm©A鲸zhӺ7kĎǡ-_\ZվyY0*Da־4˗/Xjh)n2sl7OAXdZ-gxvU,c~wVo*7Gl$7/ UshӇ?kJZ4c-*{Ye2YQf^፱m #\X ɒVEF@9TAl\"ROEk'ŵ ʝyJ쟏+ ,jT1LHDTFFK7lD%)v { {ՁeslQ |n_WvO.yq{xDހJd!b/uF!iqJ;چ75wj]` @/8[I"з*v{l|NK9OV?0^6@Qwm[p;MLF _c$nA(*q峺߹Oh7Oa@PTx7(Fw|lQ|-1{4/:.0=̘6EExq='l*?Oʺ{ Q)1ӛ @:a8I=qhއJ)Ax"&LKV/7QE;6';8-QBQhQJOg+eQm=aRm{D{_=ps4!T s$qfePDC!I5_FC4="Y1Ff^P Tcbg2(7 4܎Śe ǁ(c0VpJ4řyubj -*^zT(& {ưN{׸ iuFLTt Xգs @Xh 5~:qd =~H:WZVg^sDEjN2ptYin7lRϹs_%?exK*$s]&ҡM}=**ҳ]Y'+ifR];:YqZ &{2:2\|&lce?`/* oWsFM}v XIKKקO'$ܸqŋo~7o~)!E%acaХ=S+0 Fu,-*GTO~Tݴ*(+O5#:(diBvC* h`As{C+-ƭ+}| ʣGZlpLLLx<BkkA} 2V>l+:bn—PZYf㰨HyD.K1m=#;HuID29N'T եnO u_v&>JE?Ǐ!kWC^sЮ>{M-՟. {|pme=X m]4QbG3;HH,s*u9D@d1ۿ%=kՒh )F\\\߾}їY}LJX&8;4w= T'KW"={8YH$&I.$***%%S,ѹrpbdDNO)@-:2-5kϟ׬Y#{K?egfut:A= }ځ/uh!V5ȬO~\6-xݲo߾Ş2d֪=z[<V &Op"{:8LbЩaժUչ)dCc?R/S ɓf?~}Ȟtgֽm344zɲi7O_/)EgiS,]tPH!]R_$~v*r8,*v*/ZWΝ4򼈾?˞wOOA>G6f2 &㦸eKqfzG' GGǭ[V>yPXQ>T@vwab 17ӳ[_b*۶˞?i]?y|JmyxQiWph0=>AGv%SDMeHٻzotG"D"5Nۊ|rss333A$==}Сm-gTbXk3dT\-vs}B딳A&5^)7+)1j#}nOLL}ƍgU9=퍋m׋f{>s]mrjQ™jaŤ|\HD"*iT r8JbcRq ]^t&UDGe6pJ>qqDA$ $IzBѺI- (v,Nױ1RTr޽hh|hÈ?_s3{6m~ dR}қ7on^kzYi?[\VnYƴXώY :J&(+Mc2nR"^cG5Pm3ϷUDӦM3vxfi݂ mF .8ZH 7/wl F<<pM_WT;\:t̐uӧ쳼|ւJq6FSL C/ˡPtjRHmangyl6ŤK{YA!v{@@A +:J@fQlx<0YCBB{՟QCP-.Ydn҄e!34>ݯD"PrX}(u󻣊 j nXiUmfϞmbb!8_AyV/B ,M] `~:\@G2|H8XŧC=cTI{fLYICr!3'N%<44T">+\:C9SΗ Eejx91T&fѱh#L&wިM2v@+(/Jmώ;|yֆ~,@QW+ Lׯ_!>+9݋Zjup~|U1?~իW.]M$^Xn^+v8=t:F$Pmm.P۹l0dK3+GfAr9r$:*^*O{,vY08 }PReRsǑݝ;v_1EaɕW0v=Xg.=)j^aSL>Linڶ&7bdkNI^~)&NŎʼn&rt֭g{tyx6)ړgGlMlZY|U}ZWϨ!T Qx#b1_.  R~qXTcjуǏSFcӢ[WNL&Ĩtw<\Q8/gW&R<.Hܻw&|zQ+n%ei2^Λ5Ke4F6€A93K۱맊$>S)n;/MzKJ~=cxI$~pU[lѓ'J3]YYYZ#%\-hy֫?au1PPD3wkOoktƔEs !U-η͓;spzvᠠM<ť֟͢-67g) F;챽؞rV$Y1̱cje}< 8GVf(؎=uDʽĐnO|ܷf WfK}yI4DAM?-n~@z8)e<CeYkuuJyi?|0-zl6g1dk)MX򓳺Bt={}9s^.f96mM*t􉂶ݿrՇH-v;_OW,PaQ7t-/'EaGT M  Mذ,`RH^ +ڛ5p\ϟ܃98:v*v}}S=Tpy[_gSaڵӲ+69wc5+e抨NzrץmM-v9ѺAB"o;2ұ\ 8Rɓ[Suwg37/-Qn~Xfzj<]H$KiediuFҥKڔvېN#X[|TÂ5Pͦ*QIY;yA,X*X C _:Evٝ*ƝX6V.gϞe CEwVuj6,e˖ڔah3UmX0Y|OXSzWg̗ѕ.'*(vd-r{@-f|.}WQ)*v|a#}^]?;{kL;6w'ӊw}1@]уE`c傜 &"J."r|͛7#*n,z &(9U*r J_ݐŜ//}+R9t5rɴb q7f)n]Rš7tն@ŋ0344~c)nTrwNH#;.iuu4ss4A_+JXR$ވRsѠ 59oTğ\=i]eL{!@Gngv7 }犾T]=TtL"/[VX*tzC>i걱~ KMz-)Փ[W6o袈۝ 5wN5Uxϔwwb3~%W;buIxnk티v~@ ȿHsTvf夯?e$-H[(PWXз^.JNZwkWStM{ǡWzňجb:֩8y[DbѱV`$յ\ MG d~cr*8ob;Klzɭg_;Pߤ=e O7I%K2z,;+}9 Խ!=1t#Z$"DvÃF߲`NvUݵ} ͬm dkz@/B&znAx]29D@ʺCe̎QZܡ 7GT?۴>\Z&|{+RW;~pީ/$®Ay~y&V):. Y F`_^ӓoa*qwNFolrQQiLT?EM)'1X> FF qlgR_[KȦPح~ZkP s+>u.X#7P P|VVLs_/-^^ߴJ+]/4J#+Zկ7oz%ˑ|xnv_Eon־VI-+3Au{#v8|zo2}^:?@: ԯâxsS.ٲOqwE֙ƶ [54͸q S-ut|zL W6О ~~y VL&e82U )ϽLkϋSNin߽fQ9yoZT9nZҿ"iuӐN2׏L*BsW2 z,(k ^ܾq*i'AªׯhGI?߭lnGqr~}W.vɿ|颵L΅Լ;^R/aW7ts%ג܎*nuǧOHVf` ߌ*u I>ajĻvHUE _6y򙡹YiaUp5*J$ CJw)wi;-W/ X[ʹZ)Âxǫ^ZWjկoD[ DE;I_G8Pێue}HXE=zT(H.S TCdϔmdddgg'iB7q7ҵĮkLU$PU/3ш-Ec.kr7ɉEv /pΉcL&-`+#u˿tEnnDikč`fDڳX*5<,5b_Sn:IP)Ĉ5P V v DG kU)111l6l X2Xh EmgSS?44»WO,yvr lE*5yBMtuuMl\Y&nvsyog~s̝;F|簨p1)= ^PR\޵kW.{ig2QRyҽeI,L]l DP+5Tbj&r|РvpIR xA=[2>TAP.,-{93q4A@r`j4[u>}/t6x(?,B}z>Z=; Pɰ`̔_wjLlҥP L۷/ \s\p/1F4dBW?ǚ͛t]q8Ljfّ#Txd8)F6Idcs!*,1(Jw[̙zkf_{StUp+0Iyz.}Fa{pp0JggG .2|#G T)<`Cx~v˿ O,KŠVђbRv= AO65Y`,w#TcpC6W'Ɂ!EKQۇc4d <޽{Y,֠AJR ڲ>+_V~&F:vDǂ 099JhC:4q{YyyhA&\zm784 S/_PaAڀu3;寠OvM0p&*/xQldQh{.?hG"{iʼnz5DfAe@x*`oc8Og߼z^w?}^^|6t0[S/MYHRmˆ ߶VJҧs{E lڊ*=R;నY{¡?*5MPz"D#V#Y11J[WW|}6"XCTïۺx?6JKX¢*Lλ;Ft'rh%fQ9гPӷ/o[j1dU>3!ůFrp#%G p>ג%؍^$ Y2Ϟ<\` V‚=o1|_F;hb/rUnـ` Q լy5+ٗ|5DMصi~Rtim Fb)"n4V2Tŋ"$/,xX6HX,*0;3-`"Ejd*;>DwF_$Qni Vt,92*1RAwkrt9=;ﲕ2?'+٨%&hx?'RFN6L&w~2b8pX"ȢR:::/]a3 r;4DfKs?ҲE}Mb޼d릕i#{݀1"iF@& Y=7WE(SMa*}m~߿S(@xh0ݯE)?C]vq}Zv) s玑f6#@CLgՖ1}$ JE }L`tfw85Pl? !v7W*鞐f'Nx5NÅ&tQ]RD`umazt:pH:5l0e Q>r@k У/?}Y_wY3 l1'ug-K+_Q:|Lw`ەqz.LHu:J'騨xÇ)҆KKG2gS\CHnۢYHL5wx#3@6"SpITeĎF7v쥩ze2 aڮg/Nn2AZ#LJ^&n-mtJPcу<L:Ms>}b|.5 *NfoԪ+$Uu!"%\Q}0_^& f#Q[,[_C# }3 u9R+b+6ҔfFnQ~m\ͻ0RcxfE1H¥(m9ʻUe$O||<ݶm)L9,wMQUU0aXC 3!*#u5`Y;QAXgQGΓ}nNۅs2Ī o'< ד2 >/4ݏD(h֯^RRTSaݎ@ Q~|x  lL .ؾ=[ʝd ŭ)尨quuP(ׯ?Q/]Di%'絶H 2=e=5WO)lofc AYY!ߍKeq2(|fğ"Z 0(r@kcnYb'NPǦz1e}Yn?_G%R(tpe}[YT*uΝJW^驌b{I'K'k4TRSgvZSk5%ǡteAJI$w6p5,Gx1JxuٲeE]X#[Z?vǦ,M7Tkɔm~<'O DU>sa^*)>|bd'4#|Y,F>}PvGGD l'p`8\,YCȵBw`Jq?2󻡠 oO*Q^?Jsg?)SSSeL/PY<ݛCø~|1Dea2AOYlP(˜䚷d|~{.A߱eϥNXRh޽`6s 'Aڹ%B,a<9@ QY>+I4yh<#톺3q%'d KáF'O<$8Ded;Jr7pYM4l&~Uu8s%dmɡN%zOA=ѻTJv-&P<⼗Q3guM Ճۗ{cZa0h:H&[ٻTWDZX[&fZL:yvx|i6V2ax뷦(1,B˜(7… cF`0 lr>ЛbD"@ E~y5=|_GC:C ;z4=cZoILlBhlqPd"GǠ$ wNǕ{Ү];`;皚|>_EEET"""GfOoT ?}d'Ok`v0p8L:}T |j&dDZl_[$`W|ɿ-߾}+mqYJa˖-[Tb`__ߕ GG6S2>YUIF_RV(x9W*Y (L"9^^|ApQߋ {vm17V?n B0Df;}byӁn_#Ap=%5yO"Xڱ,vVމ_-**260ۖV9|0E_`B0Df˜ijޖ`- J7-SmFkD? **ܽ:_|w޳T+SkiI \[6Ⱘgv!CTjT q\;7?= Q>;AWc#JS0 i_R\ Zjٰn}҈۷oxK{FgeeSfvyB`~-ٶu>7iVӻ&0!d#fAm,M4gS=%r$d;½#ejiyBc0~~U#V h;i3V' uaͧ D˦ d0(A'~pX<ko7󢘀ˉ-a4MW=x`o(|rͺ77xz7`.ӵ?w4.<-lE{Nmk$a7 vn`0Ш5z12㫨ӵXfv|;/5+{5 'cKU=  askdѷOxserޓ}ճݻ%E:pLL Uxq`D=9_\TYF97wcJ )??F%{[R' Vi`W@]&:Xv6跋SpIo17A  39fFj}4>Tniv63ԯVle,Z`]6CI}x@'gD:cjފ Ox~rT6X]g['}pZ93EdUnngKhv&]cPD{cF/.@vɅsgA>}qYZkiq^~ 9*wm-Q)DQUڵ7yy^m*W ~U26oJvƾxt…͙l03T_+FeޭU8,aї+z:j~f]!߼USy|8fӢa;׻Kve< 6mjEuu3҇f:8H>nPw\r& e1e&40&EЪl7SrM<N%;Iy> %Ɇfd\xBmM~/ҙ3gHDI~y }i%CdoV&#~"W@Wuˡ}-MKG`` +Zo-..`'@%cpxRǯ9=.DL_+IaF5䆲^}lcDwŜ#=%͝ŪՃLŰUץ&I4Q_oGbiaj]ڦl7ibbL9CK:gG r58/Eb u&St_0@ʣ!men`w?{GXY MݵLp# V ¨rܔS%{q(v'1Yd;6<:5tkmyftlWuUs] RA \wHXSR#zL/6StlL%pv0iH2 Em.҈aA3&8N/@`plby]ǏکCf;諸ACuCQZ܋aW-ϓ&DnQ M-9*<#:,HЈ" >ض"TX=D*S7x,u*Ƴvi*=f.Ep8,JXzjo^< ޢbɀڹ';Ìda;蓆HG`>83zׯ_C޻姜Rŋl&G'WOCȫW5L؎6Fz'f~fF4 1׾xFo R&9ql ߿GtY8~{* :ZloEBz+V`'oOK_Y]͸hb$RՌ##CSV$iRyNL Gl6F[C]ɀ`H2|Ǣ:wG}h\65+uzV67rIc\ځ VK ںZ$1uF-'dD:|%5AP>;B8}y@aŋ4ai9xBLfT F!n_= !mK[ν+Mhg};ku=ԹX+p2&ra}T^MPX˦!mpL%:4{Oa)t13&8fHV; ّw L}mDX zS8 %kV%~2~79~]W8l@\F]S~l1 ۧX}0_몃j,"wp`lIOO3 ,9eA/̗5TYdN#Xa%xDC;%LyKܝ-v& {q?NkΎâ8"tUKQ4bka5Dool fy0VCxmx>CeGwDQ4 Z%E%HޘbkK5ީgMNv y_ga3+FhpvqS^YegS%H'toX/ Rw.`sɁFŻw H\TI {@].ΞiTJ\0c`oC ƨrvE|xD̝;yrd4S#U}mޜ=^rHÏcwmZͅi͌]෡޿ӛO?|@RHD 1;?c^99u#Z˅Ld!JЧ¥ޑT%##ës:fV&kkHY6CM3cqr;hzFږk6cG f&X,&,KY:ivv,d23}Ĭp|]^fMBOogC$p8*$=ZԎ^ʫN_~b_W4x/Y>X7UsfR6Od+v&HgQQ(Vʊ3 Z3؏jŠ}[A 3eS;c N+ɲt0=˦9~ pŲ]Y~\;h,&lxhۯMc$6͜mds,aҙѬ0WV4NQޭ- i$4տۍKG!R&߾}kbU|…|K5˴vSD3Ff$A0D«هב0W,LJK{7_l]S3 @"cX_ţnNc{uvXQ1CyM1ÂI ͐W[1k sR#aIzchu gA>[ w8a9[vPͦ X{,Ss7};BmKR{tvh4l/7o|}:q9 :U8QtR S 2J":wˢj|ڷJݿ-?9Sl3cGlb~}llv@*͕yӧ ^<CC15ƪI#}=M+s΋"ZH(߷2ӹpv'wЬ]7QX0oP//FKCL&I&$ 4*Íӥ :8yb`;zX ~}P$ "u!'OmwЬbI~:S)Đ! MvPq(2Cؖ%qz|"= &FQ5U` X0S*ٽsgߞf1(ܱwGPȄ_G}`SCWdM̯K[s>>yw#cAT3gv۹[,5z@.W>\T.sJ %`{wr3 \y٧7ȞDK.\bqBI.67}3bJ;*+iV.tD"x{qg-toǺZx0OKn^v6QM. IQp7uցMSȿ,7ntkD<ݼjpcbe_`U,r9?FUd`6l]ANj٭\ۅ F\6?sRB&4~0ڈ rޝG6&;'%4lv{rl?5N#-3*WSN&`';=6˩nإ+Fz}/u޹q1B$c}{tjDCCo\0b/PWa&NXgE;lo8̔p\Lx*{۹Yp;LmY,N} bzHwݳAb;vDKrNB1傇b#i4f qBs-M4hT]U`?Y!v~ŠY~?^&yҊâ^:B!J 'ƌbdAK}!};ҋQ"Inyu7/T %_뢸5oNx :K{FB!b8!fQL@c{D_6®b?]-mZ2REl"CMGPLjRvp41/O"H=׷LuTU$f/,&~6[3~d} hG鷦Z'n簩-*c%Qv2E㱛OaK(d:Gl_q?/I;x9TwZ5?~$θy"5C%yVS6NT*ᰩ \X}1߾d:Jk{l0t7xf6pLIN FjagV5זK9T]Sİb&_hTXј@-٧a4ee#S:*ʠ@Ք{{g52&pwOj|K"$ jYSvV=!$PЏ7*ا!&F:@0+OO=L!Lπ|ݬGa;pQaT}py'BDپ@$lO"l[I=[s - NPyZ`+Ƀr0V( u=:oTS٘n؂ VC7]=LJXꆐ!Dj";烥rYg$FmDoO?TGeƂrn_'rXT:T!Ze@ak@vgLI$,ţ ( 8H3d"w#-ꖞ.TsS=l<Yc]p@֖fFjMUu4-EtV$IVQݭLLEơܣ/}B`7TW3[9x_]Jȹx|xf`{#Ɩ}G>?޿x<ŤeE H㓅s(dCS?;<]̀qz?wzӔ k{|6bc%-G}1{h K`$"N/֦8Ř/ѻLϷ\6ΐY"J;vDϷR.~$bTG0޵r02sI7ԎǦA3ؚT"ePS准u΂Jgp'n-ڥ]z`-x FtkM;I8f{ӨD/X=,mU~Nqα~vjt(['pNꪼ9GQ|g?3B5 oL&X h`K,)>2ƻݻ@{!@Iaa*kǦ9TߤvmY?ܛ 9Vx"JC!}6 x s`VE1n-0du֤OoZ4,4= \6͢Ҩd*L&m,]Rop7:=e] -߾;>OCCPu ya;"M6fTV.ML.r~[l*J{2-HHi0bLqn5WR ,j'h(^|`h.R1 AwڲdK?/MNrǡ%Fmk+Ъm_%yIl'#uɌN|MʑXw۷olW)hZHZI(,@A owE)+G֊ kJ!y7~_5Q0ax{m\MGK"+̷WH^{OQ FPH#-u6]R%goZUUHt4D36`j F;ǧ5ۧF$|ɩtv)m\sLԻ* ec{#ۓ (BQna] xl¾;zX[io_ݠ,Q_1cx<ϥK ckه~Ӣa !X 2Lojr#kcЩi*Kb+}pa; ZKأPHD~ܾ ZPo/&,9MUX_?m ?yLM>y;sL5q;OI[eGux*f^4"{G#I)+Gb&E姫v]m5`y )o(˭/7_^mϷˣRH@ǧ׸u-u9%Z{w}] :bdɁ~[Wl6 mL"j ct4 :YQf,@DK c7y0UĭeOOVZd${}. !Z 7+Ơg4$a]bMwL@o{;yRϝ2pPW''W禖f&F:m\|[ !zB'W*{Y}Ǧ B&ύݹ#n6iЮojRh'կeWkv |3#5IfZ~=Jh-GL4UP1[2 O!uTwo=tMhF)9|.ݯ|eS+ 8FmPEӶ>>Ea?jND7[+#a]H$040ktU'^ !NPHV`rFc,:|& ~N׏}8WzV@TWLqYP1$LROš3zO఩UxOS+ɨ<)d6*oY2ɀ6CSbEQXAPMtѓ5â +|a'bOQ>wk'snA2-oJν]7#'՝954çG :"&rP|{akd2qn̨۫,/HK=__N_#8 90 X,ƲS{,0,ipPήK%F|pll&lԊAUm,F?^$Gu Fq^y#jTAQ]{_l1hW6lG6*\2fW^ ͤ>Iq!tW#`Tx *sqLI2}U?0qYуZ9TRNg۶v(6ɵ]O/@QhL܃aHIusn$Mԑ$e[ x,}P/.6ʳ:1h`R>O ߞk*oKX: ՀnryCBxks*s^Eux+B)DN%-??GPea|n\3,I-_#ilUOZ,,M4X(\O),/A$pPEδln%HVІO2+P]5dP[=-a._$ir_^+UƖ{d!$7 :N:7&N͇f?oIK%Me;Ca86կ`:/6xvE x +"+j*kXIϩA%={kJji|wOk㲎^PюY҅& ~Ļ;r$L|n=OSx!5E:(P귻Kj|{W’z)4rtG6":8ԒL*OLng tGvգSzaŀQZ 6$IY8P< `0@M5d9 `g{!5M T>kNba_83)]hsw<+<@eO\0DLW s^;p9L 5~N9j/lڥ/O \7Yqh5 Br0 by$(<2k GQ6rrΫmDZD?Z4ᧀ;#= YLXW]"ʑ"?x7dA)@uPfV܅{$mM`^חLv``{ʗۀl;60< ߔуkV%$R ܨ"hzYROyv׻%F`0M?~i8C&0ufa 72*d>"]K5>;r`x3M\˄}6"mf1r9N)9)J^0L)B& {Yx:LѾ0_|xn0$Duq6-tЬz75`2V v2Խw}85Wj|{ `r+\'0xڎPLJExƴԕ9 l['W?4wوP]"G{Ϫ@?"'<|s^w a+eX!Xkg Vs O!őv=ME16<~!C<0Exof6qԨWɜgزd/0"T>NL[KaP8w(0vKПl9p{Wܸ^XX8sROx`?+?re:w |jϷK8[> IIj~?_gja?ewbܣew{$qj4K8 ߹Z EEZ2J VwۿvtE}4of3sRD_ <Y֕-[Pe۞TTQ4.盄ɒ]<6gz$z<#:|-M5j;Φ BY>-"?\Gg){M4/6z4(wO>nG8 0̩Nm$c١~"S)wrJ+VZyOOr a^* E׎b|3S"jڣ}ل6;zX2Qg nm 8/P|Ab% lj>xV/eWI/ɓ{T"F<r{LIbQ &u@=i(6X\N&GY.yFfѹ#Ϯnjb.bGk(>} }]MSZ9b1'JhWۢe#/zZIxŃQ/©AI~-ǽԸL j5a8?rE!=ZN}D(_t+\RB>Vz=-%!fB\ԅNny P0O=%I0t.pSJ$*&J腈QD ߵlgtib(HT1L;D`g*pz$]m3J-<].Ժ>bI6o"a/RUGK3سEڊ9rFԜm >*Y*x `y}kFYhM ˋsxpϖ'4WT\€F%-uεuڅs_=\`&F!Brx Y6E͌ۧf>WVundQOW1!rٽ+ ` Ťw{nLIg3Jo͢UJq^NqUUyT*Y[SuiGgfsB[I*ϼ)= oMK7-2 ;Wk}4ikpDVމOfuwi=#{i}¨ֈi/؏nVY 55T͢|W^ /䶉nFŶ0TA;b3FU?-TLguݽgB;X7A>@D=Ќ@g㫉S{62ޱrʇ?Sn n2|0xpbn^]|+МRzH|O ߡpo, +N=5>tTwMu^.VvJԅQ5i{b G6SNW=ՏmbYWnF >}4SIّɬYXLaF)V=kP$>T?`r5ϸ&axЅbTҡ2[ iޔunl 90Ʌܟ.3CݫQf,4Ѭ~p7rp89V\03z/ND(S=:pXwo` q̺kv{+C04U6-Z]N]E$]Rń !3'ua1)kM>tŤAlbz`97NڌZmyqa. 1#%9 /-@ [ ߗ6A=[5oav?PF@^у<#7jԞx0J`ˇh8'*me~0DP222wbl2؎]X{S&d,N|hE z} 7>_p&಩ӫӠVZ{wm>5R]4$]΅P voGFݚ\,޷& ·`+|{q]a0/`;|c;m 5nvwǛ Z-PQ!Or V`n CHJĤ|zVfWf: v5>k'Ra0hOw*fcsQdԘN`Cpry :fod~?c8 HbkT(ҾݓEu dF 3'sѷ!gg;|ܯuR^>@`=g+M<ɕtEL;9P iډ[ixфŒL=Kw5&Z˧׋V~(fUO9k[>0∍],=:ًNs<|F g/|,HF|.Hikphº!|‡q=I}fJ,xO͋ bT"M_Rk/޽a|WUqEz4Qټxn-~ʓ>ÇPKnnNo>T`W@:7\q]ЖD|-uNcU`PSAW' ʀ/iU;U~(Eg|?BDD>~kǶ 0.oV:zh7ҥ[Q_{9ե1jOȾ.Rgݸ~-E+=ҵTߴh1Mc1X XgX册J_hUzd̡ !g rb=syȺ!,ػ6z.^i"5ZCi {3!R2_0oU/_<4'B;{i+QjH[~QWF4˄a;:ݽuBm]-7bq)*( x9eC^=:ݵ՟K#u|7:,I#Wòg%pPݨmrxݜIDe,}[EW5}y~jG#Fu0Xa^2,DmrhpM56z 58fZCoT)wfT@~˒۹YBg15T ҀbkLQؽӳ* |%fg8+^.ػg7.dHUWHgBTEN²v R3+]0tcYxs`o_asSUzvoč ^GS9nX~nGoAЁKs;K䬰.emyxXQћ˫ϟ7ׂCmbw. *+Vғtڷi$1ŋ-h˺IbQvxou=8sѶw1,yv>~Ƭ}[}!=@QҖ @D%l|}@7g <R/X55+D$=);{48!E_~uԞL&b(@&{g}i}ߤ"$d H!BJ|{-(ZBBK݉2sDZ ̗@/%VmoXL3ZfD@?WB;zgnomB.} HAЦ~ ݸۊ〈t#ěٌ#j^*T [ȠjMu-B "Ymm޻^pj=zDA+cڛ+@\bUS{LQą$ 0 =}[~z[y"1"Rz83nxy9"aMcnn.JWs+$vcأ#\04ǬE6mΟx?'+1$ywN?I9e" I͍5:WqFEYp~#}-Q'6۶lVkk5Q9i]K,wsJc3xygA Ru'5x@c yAtmbҌ܌ UfH ]A*1kay15&E+e%WTqH)++:).ߊ8t3e2M T߿ c xAfh%ehݣt[|PЪ85=9S1C}lPЪYX A*7/VSﰘG[l߲^Y?dPT3*h;X#q&]Mbg2y;YGj-&jjV5mwwlCQt4寧oCE_RTT(g2߽~UKmfhU)2DRn\v`ZWQ.B5C l⷏@Ez{wfhUv'[S>ȵkSR;(p:>o|o2ĠSCBz1s4UCaՆ}}b_6.##sdK M"Rwh* 9. [PymaY&-n  uevL4bL[LO$m9m W[꾱#C/jL+'c/\ǣo ;!\6L&]=} Ak׮mT(hhŖ~xoi{ܖpeddNńO!H}`Ϟ]ţ~KvD@dPgv.xn uٳgD|;F;6 6(*iN(hhUoskɠS>x AGruCPЪlnF3ӝVۗM2nAB:\o`{*meddd҃yC#P($5eAht+{mHg0CEقH9g|yv0-5J>eR)at͚iDW9hǼĢ)_;DŤz.JRߵ׆}o޼r U3>d$i ^"˽5P($C};Q:nsBU "Iv7W'q<鯝ٳz E?}z9z:|. cLjbrm\Nd-FB:6MB]a)/>nYb8KqA'l7㬬{t~*vb_, %V8haS3CV? uc. ".8&ve],dJ0z@]Ԕs٧gUMEQM u]r|ɘۿl:.[x|Rqo9{gVMۏl dH1+-ƆGU1v9?>_`ٕ%Uv0]M: !Hݲ65e.";{pD J:D.=;?qT=tH@n^L ա|ɿ uBw˦v+yV/u9yK挐~$im^:me3v2~p:!͛iabbv1l6kهA ^8s-%m4*YCUx-u-:!A ݴTu>h:{19cPKArgFB:d)'r˶KFܩv`ǒ(?*X^Mu9,z wt.C͟$s/_;P_T(޲~F\5wf.j{IknP'@L/a0_ ISqv}mEBy\?~&ec'ݙ j9{k8 q@o%׷_/)͌QӍ}+}cQ[>5fhk~{޹F IjiHeMUI@&tz ۶l)˧G1/[5 ;XC*JXS׿{R7\|QCUb*ݥp @m/e GhubR'<Drk23;;\kx7)jJE\9>0t1޿ߩc)%\'k@ڋJԚ6-thTr~o砗!)**jf!jxVu3My>jJ ݉p+ ݧE:222{ )y%dm->>VM [N-y\fCچVEX=k\O]%M씧[֔k !t'V?RX CüfޚŤ3[j7Rǧ;)#mMbߴK}k̼i⛗ Ztl̶m Q9fvw켄"n S( q e jGsADimf2 ވ6ͫLt42?Vl׸`‘ƸHR %@Wib_*|Ysƺm p+Ԭ{ ;a\â޽z AOc} e~Av*jޖ:±X!q;dMx{em+KjCwba$DܴC˪9{mTE8 ^'v5aC:iTrJɘ)\p_RɱM%t4vDʌ f1iǦֶ}/;|͍C[eN u'E%kc|;Y\6Yh"eoYO&OvG%1`hF:r<CVȟTK-,ae-z' :ߊD$JqB}lG&TߌL5s;GkNƌKO˹i3#uCkAA;߽:$܂:o}ckOۉ*{Op|!H[YWH$Y]% {um &L ڶLUg2*r gr޲橙ԭUakd:7:} AyS&??_cq9YW6‘͢T2TrڤШd5<[gdӯ/oݫAۡ} FCڒgD"Q䗙'l1aXOn-\Z*  )W`ֶ9ٚ ,Me'"4:u F9{h|=YKd'")dKCBlh \!JuDlڸAϒ~' 1Q*i Bʳ+Kn^ ]#Dܺ*Mr%~j&EplmZ-e(\&FY:DjzJNLp"fHU:>~(R4IMۍUlFywD672[rxCؑMukgKM{Y1T7~$5&}zrt<7Rk`&1G_CiFlMQwfˆâ{t\ A`k3c6c3Aak")f9l;X[m+k# W-,@wCѣ%hȽ[Rv4 AHSCd߿_ö׉{Z4AɁ!V5`{3N06(^86 Aƻw|HpR9tJ!06ԗ_X25nZNY5}uB=:@j) n$@ lL9d5-A5TSע!HJ<2grAlvwdp#kO"++0b"Dj|f4QD$;EٖQv [hw6kkŽNJڊzZ Z4Մt:Hyp}h{c]e6U58T*L&i>:,³ǟt]K RH⼙?2U]YPqW%y:8 EDjneJQ⷏@q[2}RXa>6T*YVVf\&[:tman;nH+ǧNrUV1AY3- a3Er9 ؊򼦆jN]Sb2_>!tشiX= v#q%-jMS A4 J㳜lMgv9mk݌,ȎD1#ND=:aG<U WqC>ϩ<@h"s H0 ds"Suh_Z%) BHc }c3Mvއ[Q bQcJ;jTq"> PhWƔ%q~cffw u!I=c={ C2IލeDJ51~r:Jwflr+fZ?jÇAvJȡlZlOtg bId2ջb+*rƀE^5V?ԯ ɟDK?oeL(`sٌ>Z9 RCQAвf C86 ;p))a1HV0j"j49s@e^q̖ޅ^!tXA[3ח׆n >lZ OLqLproеP&>Y6PXLZ3#Uq"N%&i-t\2PW%{\3k{5nf(;45T{|V Ѕ}HN1^;er%f87xٓK..|sc۬`_^N؝Uc[7,Եq]r;m$K!7`yG9>FLp|j;KXuXǤQ>C6^IR|..C#}1G: p2WrZFm3<hb:zѤ{ )Ҧ⽮UZ$nDiq"ݫ#*L AUy͌9Y:ߞ!WÓYc\fu9cȾ7gd%IzV #OM8o22jovhC((6QJ\7zit"*ɅxYIA@LN< 4C6Ď}k^5dzGf],\>Z 'Ő dkuA@AAivVS~U,y!4WtP/tYaEr#D:u1ix~e ?I&键wZ:ߑaǶm ?Q61%#I6.!HuD*ѣ",XbfyLg 9cteRU\8F%5R ݿvHܔZ(zڊIQ"Ν;dPY9^>D 2ڲˋAlo'φGf´G'x86ډ鷒g;37WZJ8T[on, yXBT\v7Р͌H/M|8?BKځuC ECD: y:ٕ%̗O9{hRMåd߿GE>AzM HB57֠(,OAj-YLJ bѸX,گI$G\:M Mm[+0ʀ C (o!Hm3lh D'׹.19s}Dů J$io\;̯E>Ƿ ՄY' 쫶َ@*LQK!6111: u3sNӌNJ4>}-A=~c W{wJ ڸՕ xLnQ#HmMUx>$FJKhXC((7D5 j`R?nTٺ[6e2]-rD L8͢Z>//vbΨD=uT]VM4L Ռ4Q4W.'xv(L˖B-mHV򬚺[QCj4$I/YDfhS;ÿ+BC "O)֮%S颦$rhT ;FQ 闹"]9.@Qcۆs7եI~xB,Q'ԝf_vz=r/V|j3̋l׽w.mئEF ĚOXPWPT0haUR"I qt:Ԗf( EDtb vаǶnžKLM ǽ𣂈 ._CM~f#GLMMxbzz˗/?͛o}-,ܽ{5JOObl\쭛idk MZ[Us=7/;q*- ^b%}R{ر]$Ǚ3)f b~`Эss731TWU) @@!Lr l:M:{ukV97g ׯ_.(((,,,*j8y~ٵMQQy%a巭AO<əZ )z? Ǐ4Մee&gv8D@WIYG0^EQ PSTUVQXmeҸm߈B08w<5rv(qFH:k7ж$lA$Y2Ao;~>T*yۦF\~iNsƹ p2wB4*fh4D:ެm:/_|ƍ bB@$nH%g *( Ɠ;+LR@8J۴J9')2[]=е''/x,EarL-Mmw3~5·t97^DY3:xuVBp,H4%| DYcn{MM @,qN t4zYzZtoff7o޿Njjx3G9%xsi36Ѣ&A'Ifl& XoUm19ܡ[&Ө Kt:UGSES][NaC|;v*OOO6GXOc_'HjZ(:5^p Aj/^iCܐRó;Ge?(9FŵPyd >PnejiׯV?r?VȐI#kt' `v6mY,ƙcα#48&*t0RWs $]QTqZ4^礤7G@v\6Bm: ք#t8~8I8ʤU3mt 2ͪM_7qBy~/߿$][Cw~y.Z3/V"rssA]E4s#Us=`bF,&S)dC}UWիWF,h9n_h0 w^7GDJlaDUS~2fdΊ<6k" xL9>K(T?gW$>DN.|Gh{|wW [ AêU \MI_3߻iSMb EKH1%)ѣG7x mZē{mf1\~{ !??cj]5I߷f\LJ[4ձneؼ=Шd7nT4h{ܞBs^c!tHȣ(ҵJZW$AD\?>/^&9s挂HɘR׿ޫ{@k^l"FA 8HWS %d-߸zgԏ_AAbֲ驽c g2,8cpI߿VB_ߪyl cU}rC6]EĢ>0kn/N aTp8a.^&Br+f/'RqAaevڂɠh? <|d쒹m@t4VBǭWEڰȇMymɱNDi~})JyJ"5"W:Ko[`BlEdnvJyѥH39N ŰŹa^1/GkVBk*ewswlIT&--fҩ@ s.6DB@y>Km:Ft4H Oρ )̯fϛ@8qne+f% nY 3AݦsnE}}vTlhܧDZJ"5N'p9 s3×ϟ/}ֹc[pR|Bݶsj@l@ ))xe沯OTyO=|+y;wlq4*yX!L֫={ l[/?R2LMt<k^8|F?e畒Ę9>KSMw ~m5o?"9NU0 A۷o\pU{kR~)n$lZVHO8nO;0wOq_:A [6o$5fePIm<{RX/&ׯw VR?@hW?{zf(l"'5oUOK ;J\^ɱM rⱡE9VFg#HoTxmu?}zkHN ÆB6C=(686A os?h;vQpInߊ1Vmo V2+y oī 9G08qn4*ɶūLl+ʪmkhXYtͿ>? Ӈp֦F_$%uoM5f* ng`|}3# m_23eh? b[J6&_'I_M(\ĞJȰ!+7./e :մקq 6ԏh$ȫI mo\IR$>}z˗/? x|ѝ;w2333$\tx,Io._PpwSOH5ɂ'<ϲb@'9lM܋ƆBz‚955?}deXp3= ۫5IgN˗/?~  o޼yiNNNVVֵk@ϝ;w6p\#nܸowcׯ#xmF}>0|^D? 7Np)~AKqlA(sǛ|, uOPtl-5Q꾱cCH6np#b B~=7opE[j\z4ݻpU'aFnvdtlsNEG/f,?m+//R~XI$YOpdTFrwh"H6yyyru?t/==ٳgU˷nFQ˗/~'[G|APqB9rAةdxa_oUDrB]?0"B!s9b'~qq}YtӦ)'bvƮJ=+-9ջʟ O>PKE>E'd!hiL BHJcI$ɟJ!6Lt4>_:9qH[Ho_M ھ~AHxf]5Z8sО!RQk6ξ{.޽(**څ.+dA Qc[[@>9wthhXZ&:5͋p"}}gCIgvu0aMdt'}gt-}f8$ -1Lrr-q<%\t b{U6z&j0jV3e(6cdžOU/ܛ~%w &'c"^BC>=M(|͍,$ܱgr=nKCuS"Pi UagΤ9 .\ȸrʭ[>}jt!V/Ӽ22$ݬbcw:~t6M+)⮲gTIїOoo\ݿqRQIrzu^[6ߋ>}ľvh9G=-5q'.اXۓvmw3$c47бWOw24¿ۙ4׮]Ά˗ӧOgmL%1Px2rKO?vaȁ6ntiBdYL -Ծde3+tso..U Ձ873R }ٽ7_:(\Sʕ4&"#KjDHQ2k`Þ&'.ڻgC( /k^`#c׻Ws6͝@|]ulPφVGZ7x{_< oE_gW_V4*LYQ`ݹ޽VrA)(/@H8~]?6v۬WnۺvNm߭@r7*u(-2`.J3ٔ~ɳvQU+3XM5H -厥D q3'$>!G5 7ҘD .ȠSY⠅LQ!R-5шnG7_H}IAAAaa!YK>vҬ1J>0Q(Ǎ^Iޭ $iiiBѥYsc G(p%l}eX#`SYnݺ<D_C<2eҡ{LTPqc bN<$z`+++K@g83"- jͩSH ȥ@Gk77bIXvh}4fq̎Z{wjef*  :wW6d{Fĭ,^𙞞~O~ wW炰*m̚كWyO˗n]6Wqd:E"rssr9\ ˖,_5Z 鉉Gbc^d8cȨȋ+siTɶb<],Ƹ(?7ȹOI3 MKNDs` K'gBRƶo wa tsP(}{Fg'O<{vo>/;wn\zwǘ45Hf#9lq$XKT^cn3CC߿#?۷J|^{{ u4A!-[ŋI*f 8lyAs=z,U9Ԃ'l D*j᳨|xq{jCZj]DžFtbcݕ΢Q$uc[IKAٷo/Htie{sij CNAtC6Gvkg߻wd}aپ]bb4a1鲲2n=̒vII… ma!VxDtv۷N tس/xu6536mmmؐ.ҲeKVyd`Q0Ry2?&CG&ɚ5o`Ȝkw7oUR?,\_xY%^PӹyfA&GjQ#*W?j'Os2e éۙ'eU!&e;)P> w_ȓ2!K {1'N\+a˖-+i 8>Huag~3B %ϦaI(6k|h%rU&)wr0[;jݻvaR,> "-kg/^<a'cv,6U;X3I$WO'K~^|A7 9...<:D.[Pjee'騝:uI_:n7*cCjYYY(GHMq%= t‰R}ٳtr t7/M4cr d5AQdtTh )7\/)쮮UŪ,EH_%y8"dsǹ=oX~(BP4)Pޑz»*4%Ջ`?X*_zPy߹~|lV/'҈[Wwˑ 8 钖/ gf1+V(7\'u0^5. >a4QJ3F,TI 71P~X<2v9bMyq5@`RDșb7 ݹ2L i5ߑW(?~]lx֖-k# H[]#C˗/D!Ufy5vmq޽{W_؝\{5L)h :G6K=9sbWlmcǔڑTYT!h9ztΝ6r|I5s_TxғGyԒ?|%𿽥1;6v??L/bwK]VƗd adAd߷&Y9v" +;rXt$8Gؙ߰3'j}an#c:wQS}>d$M4O;W>*47Rؤk%UMWq9 ݗ[ G=]zۛ++ѩ Bv-],c)ڞ|dyCW3KtF$M)dǎAhj$ K41A {9õU@!Aj✮.N\%Oqe}u`js}4!aLwx)-->L=[]H@Hrou2 NO1Xiۼy5+Lj;ZzI2յGk^!-uϰ[hҨdy!(ܳs egggk:qvSTrqb<65Ԁ 3"r،m+Jqるs")PνTmh;a!N?';Wwny\ ѣكttr >^sz爚mwZѻg990ݾ}`2^ b~T8oy)[tW(ѷoY$6wpuٻ{'f&44knұ}-uxD@@bZd׮D G#n<Xu~]ʋ5σ=\&&I;2cC_<Ϸ՗bt)%+bn'!իgw9k{%HjJF/V8NÇ]Ο?͕܈߹§[ٳg(bH)OHFM{x{%СUۏe̺O171_d\wrs..v`=\m hW[FQFقЈA=pj z:j}\֭ q ذ,$)Xk&.nu3E \ %o@qrڐ! 1dATAޛk3؁U߈WqRR`F<'~(yvn= o\/ ;:tN{uHd"jq޽{j<}4##̩X yⶾNёC[%$ȑ`Չ,Xu |p:TU۹qepa0d0/5PF6dS|& 8,%98#y!ga9w2/횃89k%5\&x$ -9%|]=z9'߿qM5t'9>Kcؒbyyzؤ,?v`xж "+D&{̎Q!vڊD@,YH:sF⊟+nbm8ma”Y|Y\6yw9tP]Z,,v۔ @+;zh#D;{7LW¸suhd$Yq|M])w5eAaXrS\L"iokԫڵ0^hoӭ eWd@x<"\p`);?rp [-X .pp#jxd ]+uU{ڊ7]ڙPR~'r7<'8>tZxDw"haȲcǟ:WrG:. >OffzhGWK 6-D55^P0`o6dZrTy♨Eڴ1SUQRRC ݒ.I%6%,5%tnjoތPfb8 \&r͛74ilVE%%"O8 ".O\(4ԕ4Ԕu;6bY2VUf1x1"!>?Ug>zM,H^<3fm]?FG_ATJ"A^V 'Oìܯ;œ+%3V\} t8:vĤUU๞e!!7"]Xw{<O22RK }dD+gz +2i( ?>[> =+5^A I'6ws)W s]F|޵aϞ))wfysUE glݼjv;{y:~lOKO[I\BKMt%yMvRuS E;25N>F~pF'w|\!$=a ;衍'ϟ5~i3#ud0"^cͦa!7nmAӧ|_sƺ]L.7sJU?ii(D{CA`R_]k&vz8h;L\5W~~>^~#C!6myj#={2''꼟 #bs4?s'`'OƂN] < jXBZJћ:YMJR'luImK#䄇AL'/g:}?\x]u\\[Z괉Ǔ37H>cW$ i%o\\ڻR;;k/y37(XЛi69 {o&dEׯ_%sd.Y34g_9اTU0ChӢVd`g-w13@BFޞ->tC.dn;;3"ŜXmc$ύh>t}555@~e$L63'_yD1ѡ]e3::LC]Eeeqa\ꦵ ^0jD<ֽ^.^x:zZ|Ai;eTF}֣AġqBkc3c4Iy #1כ8S/|}bbbj_zrF4g^tIQQZdXX2 <2 C(us tUt?12ȝ7tH}=wT'gZؤqV.2c) qATP^RR4X\H|o:@E"_GL1dջ~wSV.PO#&dg#d]:u"%yg<>vlWf5PW[m,)04)',_2ӓZ. e&vN93,"c:`|; 9GMvu`yɤ#?2di@on lkȌ>aKT5j8{(Eszc^T9\~C|p$@ HNN~4H5iiZY1 ô4GMqSO└:t1334 Q'~c7nZ?d&atV``TG+tJ$aܻw 􄇇nw<v-f,Sl;B?lW^6+IxzHed 7D lS967DN_wYYc;vx8|phh( ԠX#io5}<~2FZZBaZVĄ~gcNF80gy4h:E|fmֆhɪ-v V OMMݻw>}...{rvv^tiSZZN7312yd]IL M_15NSWGK[kXuzhb?}ٳ׬YF7((h0t?uk*++qǃD3U~G NN%M L'aѰ;Om=#{Vp]A>uYu2}"-t0JEQG[@gKN}sb@u())$0:$ j=<,X0_N'ZUx܂z5% W***")Jw-++{^w,)))nnnVZbNNNtLJ[@NNNCC4Pioo/..0a-mF"P@*ʢ:NnXSS#sss;w_ 8IĀ)a{POvv6}MMMׯ_/++#gv(֦ Hw}kk͛7KJJD"QAA R b2W(bg@ *t,CO?p-:?i&-ڵkdSۅ0x '__~|ꊊ I3Y.P;222JsVVI:ɨ`p cx}MIOKc*_# ˛EG#}6I=,HjjjJKK \TF 缠|t,H!0U|r!bNUUUE.9!wq'Cp@uuX,eee= `hEEESS<Gp;wmA喖)(..Ds0HYYY$s#W,Mt&>mmmMMMR\c)))! 3@Q{H yϿQ gZ1R/}U QHEw?%Aerp9] \֭[$rLMϊ7nH$F !nx7۰xr;r[`VFy: Ep9Bx洷 wE&ą endstream endobj 315 0 obj << /Type /XObject /Subtype /Image /Width 500 /Height 687 /BitsPerComponent 8 /ColorSpace /DeviceGray /Length 3880 /Filter /FlateDecode >> stream xݍqȵю0ĂX cA F+}ϱ>6RJZ-B"ɂ˞r3)1 ^j+.z'L.z4*)?(l{I^'-=ar%=Gݘko}/nk3Bgm}p7[^.nov)y Ĉټ~rjjn&$36=asC6]&57,y-s5]s5 'AɧEoۋmĄ觍yEoA7j.zOl ӾQYC9hOܝX^54uHovvJ>l%@rя~ ū6}C~уG_SCDo'p.z?z80(z{<葢烊櫕:.zm!b?w<;S]_M'z\1˿=$¼4z4ˣr%]]Tɗ^ɍ]7O 6J/{*A4bXK|H1vQ61O6Utw:؛vm7&y\sͷzz:;Рk=Ytc%&<ߜkk]y9t]5\s5\r4׼w g2hn5\r5\sͷŸi~q) e'l'o;J^4k~A_a~ˑJj_pXْdR_C:@Nݖw1竎!y{vܳYyA^z=5ovyݢvyJ:S׋yj.Qˮy{sͽsj5O8f5{*5i^5k\sc~?$׼pgK^k{r%|k^5\|5o8Q6|Ųh޼zQfWw\34o)9}7|:j_Vw1ۂ3a%V !#'o׻nvZ}MG$O_0 5ϩLy]</j^6wu %k^Ka$e5a׍pܘ^4߶Ul5lt7B ۼhmj͋-Ř_}8;y浙U=/oXf7zm%Wɣ%?)hMr^r[iOc м_̒qsSGb{{g>Sn?_u']NV9Qn6k>q yܩ_85HSg?6??mqTcdЫguiʷs6/a?9]Zi*汒 P)]JGKl_~HY_ =OK`<ɯh~a?(7/q?!ݫǜ})QK/r$Xa|{|Uנm;F/WM韴zmtW.Dŝ+5_%c5_%>͗,H #/^J>I>Jnu{bdhg__Q{:mO>&-y]{=i"Ӕ/[;Ky VAs5\hɓ=kwq4k5w]sݝ]s{x<-_>A`|iku ޫP *}>wmm7uY;O^3|Ӿp^=y5ݼ߂i{v%5i{֬ýӪԚy7'#ݪ;gg.b͙kӏ,zNysԲ^#q^捜Do d=y[P$gV،3͞G4oݷytQA}:Eߛ{xZ} yno$L-8pE?8{5oGυ;GWӰ[r5_>X&~~>B ܰYD IÊ+݂b\pП@W,Ys)g=tO6ke%=Www_?wf[{f?5L8ah`ɓrgpAޕSͮ 'f{:~ʽq6_~B6 endstream endobj 316 0 obj << /Length 254 /Filter /FlateDecode >> stream xڕбN@42/(V$HaRK r-%aYL,$/0;?S5K>ǒ^hquyxmG-W*.LEwoOTlϹbw%1'\|zp"_^D"j|tF}Z;6ޏf6$Z fnݐ}^-~'?pNNr]nQZ]k* iMDE~0gzgJBd:̬L7Zs! endstream endobj 317 0 obj << /Length 219 /Filter /FlateDecode >> stream x}н @ H!KyZt;:9::(ZpCLrE>%ɋhH)#tyT?D@(rIfRfFی3'zj[Cp\; f[ k} H{wZI Nd;j<WJX2.&,iT !q^P endstream endobj 318 0 obj << /Length 194 /Filter /FlateDecode >> stream xuб @ H!KyնԩP+AAAQpGNA70i^4(]G 9˅ŊL(9O=l1EN 9A*lTS[lolnګtѩY|guU^emz'g'(Ieގ endstream endobj 319 0 obj << /Length 262 /Filter /FlateDecode >> stream xuAJ@xAN`bP+.U҅"8EBxxq7@|/Ģ.oa7Jh+(*[$'eY1Ƨ|qqFwΏ)xN)%WX 0 A@'X!TW@ F-@\GaL@+?QowI Sji*ՕTj`t ^3@ #=ңuf'^^ endstream endobj 320 0 obj << /Length 217 /Filter /FlateDecode >> stream xu1N@P#. l5ɺ&RheaB8 G bc WySWk{][!R:]޼~ȡe.{ywxBQ _>*@H9“2؜!b( b> stream x}бn0n|OPBP:!T*CfeJ;fhծGQx (JXbٟtg4{y]SLK^+}&iƵq`Q=P}.rG?_h %htL(>a%ȽwGk]BrQN &Cv&̍A FȗF7"'1u&<کZ܆dT?s1ݭC&Vo} endstream endobj 322 0 obj << /Length 262 /Filter /FlateDecode >> stream xu1N@E"4>Xq ,  * ()@ QaK\#Eg xyxԙ.rS/I9,/ݣkoK~<>H:Bn JQ 'PG>&f_S3 H#>%Xh:Y3ICE2%3ЁUmr88va;7;׫g*zɴ'H 8o3.7F>se弖k" endstream endobj 323 0 obj << /Length 183 /Filter /FlateDecode >> stream x31ӳP0PbSS3CB. I$r9yr+p{E=}JJS ]  b<]{u 1{ H2Y&|$#d>B&vFāj\= m endstream endobj 324 0 obj << /Length 222 /Filter /FlateDecode >> stream xڅ1j@oL#hN,J8rR%)S8$.e(:J›27KN9KE΋_3S>gSN9js5?e>S2 mv!4 > stream xU1N1Ei|kBR[ AEQA h.SD;&O͟7+nykzeayH={ɏ#~@~  ,FI# $Hy!p9sP SlQ S]BS3O?9Cz 5I[lIݐ\N+*iD=ktSn'-o endstream endobj 326 0 obj << /Length 168 /Filter /FlateDecode >> stream xڕʱ 0+[| LBI Njh}x&A Ifz9mPkcaP,IkSע03:;|L EI+Er$ 4./ @'PE \b<<Iya9PpbpO)T< endstream endobj 327 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.cS I$r9yr+r{E=}JJS ]  b<]``Q"? ?8 8{0u L?` .WO@.R_^ endstream endobj 328 0 obj << /Length 177 /Filter /FlateDecode >> stream x}ʱ 0J-}{B(u* ftr'utPt+G#t< pwxb1?p dsԍaw\XL@y B-r@) -=/4mVgu𤆚N-.Ѧt+.Jf{m?FN3w!ct1]a`/B' endstream endobj 329 0 obj << /Length 190 /Filter /FlateDecode >> stream xm1 P ,jEB`A'qRGE>֣<;B|?Ns42!Mgohu۶՞Lj-)tC*.G'}4!r8FJp-27sX;+YJ>!PDhxհ#qʩe#\Y.D*~ps endstream endobj 330 0 obj << /Length 217 /Filter /FlateDecode >> stream xe=n0 ^ !Ȕt"YkMG4z0R :]ށ"ħ=,\'7O>i:aAOtL}eÞܖ[V($FFUG"@'C;MBMIU (5[resKMSCЩAgC4jFV"j"kJh+bo endstream endobj 331 0 obj << /Length 247 /Filter /FlateDecode >> stream xuпN0/`<JUeTD$02G#d|P,'?.n\uۚPk^kozETkToj/ ׯԭ 6~9H$؀BzF{baIu=L1;> stream x}= 0 kI NEzbIJS$.(qfc.1xIjsq$Uj"ۯ1)Fy#ҜN&"Yy 2$P5sΚʮTz)z@=qQg5椳[o }6 dcq endstream endobj 333 0 obj << /Length 222 /Filter /FlateDecode >> stream xm=N0_4{2lXҲH@j D (GQr.L(4~sr>p>ܟq q<> stream xuϽ@ ^H.1::htG K6idP@ 5E5^0PጙAKaRݮzNi)أ F8/nO+y\җ1DgiP->Ձan,Oz౽R0ʞ^ endstream endobj 335 0 obj << /Length 187 /Filter /FlateDecode >> stream xe=@!$p? b"VJ--4ں{4 Fiͼ$)%)]"c0;9߰jP(PlL񺢨v+Pt(> stream xM1 @'49(I F0X]09ZRY73las.O>t%ߓ1y8^(NIHdK*]87 vI%w9PpHZ..XM!/3(ѯz?Gh ź1n_*U JU@h ;0" cd:0&I˔dU~ endstream endobj 337 0 obj << /Length 206 /Filter /FlateDecode >> stream xmͱ0# $'" b"NI4)h< бZ{upФMGlL%%c4g WfY endstream endobj 338 0 obj << /Length 232 /Filter /FlateDecode >> stream xMαn02 ݒG^:DSD$:u@LЪ:DGˣ=D1>$N}q2QDcMMtR1% '3̶{FܽBيԂ4570ze(mi_,h[i[s?v%| ϛ'a73UVWhvV۩~rk endstream endobj 342 0 obj << /Length 197 /Filter /FlateDecode >> stream xڍ `4w/Pj)MPԚ>#46_Gth =(TWC# |=yrϭ3;/ft싳^l,N+=u-',]ƠBR"/ w]OJ Hѐ4MJ0?_9.6վэ-iN͋eVL endstream endobj 343 0 obj << /Length 196 /Filter /FlateDecode >> stream xڍ= @ GbVbh%GH"/Vef Ʃj?8$C(gbg(X]r;fwPL@ | ~nF <z/@:Mrp\3]8[FihHOҙAHVxuO endstream endobj 344 0 obj << /Length 197 /Filter /FlateDecode >> stream x=;0DQ m#'1Q.@T@Ip'Xz&p:SN8qjhBq&,d p’r^ %mW|O w=ْ\%NfN‚R8Ԏ;?]Aq !帿;$EC3NMYBvҶ6n* UKe endstream endobj 345 0 obj << /Length 194 /Filter /FlateDecode >> stream xE10AH MR.@T@I< )) bex{6G9avὡũ4!H#8%5))z -lH1r-9 "HE H$;5ƚ2 @Ll)a7lI3G+lJ endstream endobj 346 0 obj << /Length 157 /Filter /FlateDecode >> stream x31ӳP0P0UеP01R03VH1*26 (Bds<͸=\ %E\N @BA,B?Q"A=h`;$@F0A8&TT#`xxrK/ endstream endobj 347 0 obj << /Length 106 /Filter /FlateDecode >> stream x31ӳP0P0UеT01R5RH1*26 (C$s<͸=̹=}JJS ]  b<]L!W51 endstream endobj 348 0 obj << /Length 110 /Filter /FlateDecode >> stream x31ӳP0P0 )\\@> IrW04 s{*r;8+E]zb<]@ 5 \\\deX. endstream endobj 349 0 obj << /Length 142 /Filter /FlateDecode >> stream x31ӳP0P04S54V06R04TH1*24 (s< M=\ %E\N \. ц \. ?aC??@P`4,r endstream endobj 350 0 obj << /Length 96 /Filter /FlateDecode >> stream x31ӳP0P0@P!Ő H(`\.'O.pU()*Mw pV]zb<]\= endstream endobj 351 0 obj << /Length 162 /Filter /FlateDecode >> stream x31ӳP0P0UеP01R03VH1*26 (Bds<͸=\ %E\N @BA,<b@N ?8$D D`#2f2X3Iq,63 *@'W yK/ endstream endobj 352 0 obj << /Length 104 /Filter /FlateDecode >> stream x31ӳP0P0@dbUeh䃹`\.'O.pCC.}0BIQi*SPE!'EA0XA0Փ+ 9-I endstream endobj 353 0 obj << /Length 157 /Filter /FlateDecode >> stream xڅ0EkHO-DD'㤎]O:2bg'g/18ǂS WqY2˝jCHo mvx=7~ &ĈdDVvUr9+G^‹aUnF;~ZQ:?8 endstream endobj 354 0 obj << /Length 111 /Filter /FlateDecode >> stream x31ӳP0P0V04W01Q0PH1*21PA#CLr.'~PKW4K)YwQ6T0tQz ?*1pՓ+ JS endstream endobj 355 0 obj << /Length 102 /Filter /FlateDecode >> stream x31ӳP0PP04W0T02VH1*26PA3Dr.'~BIQi*S!BA,B?ĸ\=E:( endstream endobj 356 0 obj << /Length 118 /Filter /FlateDecode >> stream x31ӳP0P04P0"sSsCB.#39T*9ɓK?\ȌK(ΥPRTʥ`ȥm``P !\`߀ Apzrr]7 endstream endobj 357 0 obj << /Length 172 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O&4Ŀ,`ꀐh2B0 0`@?D0pzrrV endstream endobj 358 0 obj << /Length 262 /Filter /FlateDecode >> stream xuN@ u%+ iCN*E"L 22`7 or}g!uIg ZTW)Zg\5QUc~%c̛kz{}|usA^}I6k Fe`<@!cf0?]p sېy&dH}8*v%Vf51СJZ FGY&I⣽0n5FzPEZI7s.^6x*H endstream endobj 359 0 obj << /Length 272 /Filter /FlateDecode >> stream x}1N0ЉRDr#x.٠,, E"T ()@Сr5|BF*\[L}^u#ԓ+ ^曻GnTyusĪl.ASFU͆cۤ0k?Fvh;!uif B "Qc?1X})bԑvI nG/ADk"vAd0ξ 6ae+ ؐmⱹ\5RgR? J endstream endobj 360 0 obj << /Length 201 /Filter /FlateDecode >> stream xڕ1 @E'l&GȜMFQVbIx--qFj%.̃^ )LKb> stream x31ӳP0P0bSSsCB.1s<L=\ %E\N \. ц \. P߀ J2~~d|"N`%값 hL F'y,$33oAYՓ+ H06 endstream endobj 362 0 obj << /Length 198 /Filter /FlateDecode >> stream x}ϱ 0 [|TkI Nj}>JcҘ 4蠄|4;.ˇ)Jq)+di#  3 bnA5o3bDTYk[z^DyÒ1 <§QSHhUsjD0N/QG<T]KDbh@C63K[xGj endstream endobj 363 0 obj << /Length 230 /Filter /FlateDecode >> stream xڥбJ@/L i +PysQ%o镶={[r\/䶷\C#;"L E(JdG)23!_#2C[{GE{ʐ :Z2 fFb֘9e)QSFO?V2C鎾?9ru endstream endobj 364 0 obj << /Length 197 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.C I$r9yr+r{E=}JJS. @-\. 700& @Y4$)&?H L2A :0Y&q RbbH.C _@|A! HC, !݈I endstream endobj 365 0 obj << /Length 149 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.C I$r9yr+r{E=}JJS. @-\. $BփI uD6`D2JOĥj2|$(47Ae\=WD endstream endobj 366 0 obj << /Length 141 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O$3``'Lȁ|DAjD  \\\, endstream endobj 367 0 obj << /Length 230 /Filter /FlateDecode >> stream xڕN0/?BՅv`b@Lб $R_.jKŊ-}oﳻͦTИJr&7R+Ly?ocv~K*^d`dPɑaDZN{8;@Ά:0GdzT 3#'d!Q M4 >15Ȏ×t*ć5 endstream endobj 368 0 obj << /Length 114 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.1s<L=\ %E\N \. ц \. p,~BĄ'W NP endstream endobj 369 0 obj << /Length 105 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.c# I$r9yr+q{E=}JJS ]  b<] 0 %\\\6Qg? endstream endobj 370 0 obj << /Length 231 /Filter /FlateDecode >> stream x]ϱn0` n#' v D$:1NClf1t#4Cd?Ka@?>ό/x7e`+/l2 .|w9be;U:.Jp΂Zг j@AR&B n ~x)[yF^}lEƪ# `"P0~? endstream endobj 371 0 obj << /Length 126 /Filter /FlateDecode >> stream x31ӳP0P0bS3CB.rAɹ\N\ &\@Q.}O_T.}gC.}hCX.O``'!P:'`b\=jo endstream endobj 372 0 obj << /Length 201 /Filter /FlateDecode >> stream xڭ1 @4 \kP1),J--!9D,,T]S[̃3nQ*9zK5.sWj9!!qSdaV o,cP$nPPBz@Q(>Zll/5.K=&Mإ(o9)[-_m0v`fs8 endstream endobj 373 0 obj << /Length 199 /Filter /FlateDecode >> stream xe1 0-wӖZtP*AAAQPPRo7iqpT I( 8{~B&6}\9Ol[L,7@g@GEq;>:@8w^@8@X&as!eV^zH4 6Q25> stream x͐=@XL #V &naRK (҂.C l}/N竌BJh&)^PF ] 厹Fq(Eu1 }C$QtQZۂgmJ9Հe 7Fд?oaF k ,|_F&h endstream endobj 375 0 obj << /Length 182 /Filter /FlateDecode >> stream xڭϱ 0H^{ӐZZ+AAA(}$]8N KM9&xg,\Od+ f.S0~ ,Ђ)qo19/"jB.P;UuDF 'aybhF4j-iMːO*"`a oƅt endstream endobj 376 0 obj << /Length 218 /Filter /FlateDecode >> stream xڝн 1 Y|;? N⤎磝"b/Y>Jڤu)&cjiɈZ=qYh>&xޡG*hɘR. eى/".Ҭt ҪwVhO/o2C xBbMn7ݥ| "Ԁ3ï>$$J endstream endobj 377 0 obj << /Length 250 /Filter /FlateDecode >> stream xu1N@E'rai=1IL,  DѶ. (ig?lncQiں'Tl=yE&lk\FZ,6KNZa| 9|t5iûH Jbz<rd'0 (9qp&8 %?cFi=H^Q #t)g/pxLkDυ3zA endstream endobj 378 0 obj << /Length 127 /Filter /FlateDecode >> stream x31ӳP0P0bSS3CB.1s<L=\ %E\N \. ц \. D?`OY$$ ;R?$XՓ+ VX endstream endobj 379 0 obj << /Length 174 /Filter /FlateDecode >> stream x1 @ ) fa n!he!Vjih-GL2 +7&.&RY S2sjOƠZKFe7?/4#ڂJ"nݯ;QO7ZB؈U$fMYD@ ϝf+;|WW endstream endobj 380 0 obj << /Length 210 /Filter /FlateDecode >> stream xڍϱj@_pK@{98Sj@-48 -rpnA0f#VX܏]і1ey8%dIL2~Ar<"9hM锳AitJweB# LX6vs`RaF$i4 ;QWytExݭ'{gk~϶,O*$=t %~ endstream endobj 381 0 obj << /Length 242 /Filter /FlateDecode >> stream xmбn@ P#$/ "L :vhծgO@@$2Dv."PtO h"+4}ih//hMм.tI?hfs ,hRtA אLZ5;: Gk?ޱR/R7ux;xl;3{gߺjmkxN|סuޔΚv:T-tjO;Q d,ŲZ8ݎ[+R endstream endobj 382 0 obj << /Length 201 /Filter /FlateDecode >> stream xڵͽ 0+ zO`ZE`A'qRGE6Go t(;T%w.z!h>22J;@j)bAjPjJ-SYmEc-wy 7R5-!l·<дM nܝޣtVWYw8C:rb endstream endobj 383 0 obj << /Length 220 /Filter /FlateDecode >> stream xu=N@ _b%79 H" * D[n&"ymafYy.\O:/wa\gVVOK{Ǵý~~|m]=(k}fϋ kEm&fhF hrá +'2ʉ3q4|PY؁0e齳s5\@e'XreSU4Q~MQd endstream endobj 384 0 obj << /Length 206 /Filter /FlateDecode >> stream xڥϽ 0+->Z+S*AAAѹ}>b$*.bBz:ԥVDJQܣmT;fiTTf3:; :Yc6\;lhkb⍹/N-Z6*p|ZX?4>usn tn N2\KKv endstream endobj 385 0 obj << /Length 205 /Filter /FlateDecode >> stream xڍn1 ]1%o )$n@S ZYG!i _ϲ=gzp;:٨T6{hh.DmyءQvF0`80cf̱b9)zA}T$"'S|_Q((M I +TPGey?4dѸYz1_ S endstream endobj 386 0 obj << /Length 220 /Filter /FlateDecode >> stream xڝ; @ )isJE"b=A aS~] endstream endobj 387 0 obj << /Length 216 /Filter /FlateDecode >> stream xu1N0E*ir ,-D $(VT@Iv(>–)VAaYO??V=ϝz`U6]oX?ݕvⷺ}qE XXͨ̎p[P0LhB M 4ESDiDf( DETHIc %)>/~Œ\r/_})oG endstream endobj 388 0 obj << /Length 164 /Filter /FlateDecode >> stream x31ӳP0P0bSsCB.c3 I$r9yr+q{E=}JJS ]  b<]300? C=`cf ?F%5Ƅ@.N%\=CSt endstream endobj 389 0 obj << /Length 275 /Filter /FlateDecode >> stream xڅ=N@ M_(E"T+*AD \%7!H9Ec{BHLid=RI'tT%=VjIM}h=<|ŕԱh UXiSQy :!1{.g t<A9Nt¿ɽ`n [Y'(3@ ~sPoi5E,b6y0ɬ1$V ٺ[Lz #h&;ij$^MR} ^x?m endstream endobj 390 0 obj << /Length 165 /Filter /FlateDecode >> stream xɱ @ : Y k 7:9utPt>ZpcҘ(@>?1t>C1I0IF*x܂ڡA ʮv@F G` t>'C/fH= b賚'b6l Q"Di endstream endobj 391 0 obj << /Length 137 /Filter /FlateDecode >> stream x31ӳP0P0bCSsCB.cc I$r9yr+s{E=}JJS ]  b<](B` D00 aDHpzrrȧYA endstream endobj 392 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭνn0pH' Q" vP+ċekdUGk?>48^iƏ%Ii?1B4,Ⱦr'd Wwc'/kL8TEk%t:u=|?Q ;DN d~U7 S[v0ؼ?bjv? k1N\*7V*=4#S endstream endobj 393 0 obj << /Length 123 /Filter /FlateDecode >> stream x31ӳP0P0b#S3CB.c3 I$r9yr+q{E=}JJS ]  b<]``? ×0? 'W g endstream endobj 394 0 obj << /Length 161 /Filter /FlateDecode >> stream x31ӳP0C CB.sD"9ɓK?\ĜK(ʥPRTʥ`ȥm`C}?  Yo`*?!*9=g!@d\= endstream endobj 395 0 obj << /Length 159 /Filter /FlateDecode >> stream x1 @бa1[ZYZZ(ZoG 2΢]> stream xڍ1@E #0eV$&ZY+h+{4(- 㲘ڼOϛ$ͦ񄇚1'O6MvV6&U~{I7 ֤rkT dR" "/x"o"x Aā, Ң~~5oU9qNȩ9IR 3,hK` endstream endobj 397 0 obj << /Length 221 /Filter /FlateDecode >> stream xڭбn0bt @Y"QPNt@hycs U.ɺϿm˧ > stream xڵ1 A i832VºSZYZZ(ZXYz#llXZO7荆d/9C;GtVibs0W,lQ9O=l1!洖}N)!0Z2-ygg"(.0P5tŷAUɲ+Y0\%-nYW endstream endobj 399 0 obj << /Length 218 /Filter /FlateDecode >> stream xM1J`b`w.~7hXW0VbZ * vnUra!,ǔK-tgQ ->Gy劲p3%WtpK-Ϗ kxzX 33䎅rCF40@:b #LɂY.dČ 曶AȺ lB{,Zxώ`1K{+orSN~o' endstream endobj 400 0 obj << /Length 160 /Filter /FlateDecode >> stream x31ӳP0P0R5T01P05PH1*26 \.'O.pcs.}0BIQi*Sm` $?` #$`'0   Sd.WO@.] endstream endobj 401 0 obj << /Length 159 /Filter /FlateDecode >> stream x31ӳP0P0R5T01U0TH1*21 (@es<L=\ %E\N \. ц \. `,dF }H<00g?`G"?\=kqt endstream endobj 402 0 obj << /Length 174 /Filter /FlateDecode >> stream x31ӳP0P0bScKCB.1s<L=\ %E\N \. ц \. 7P& eJ``$? @cg@%4*PFF2?F2~~F2?N7 H{ r V endstream endobj 403 0 obj << /Length 195 /Filter /FlateDecode >> stream xuν @ > stream xmν 0C(vAAAѵͣ7Q|AwݤGr6&آt&=>'|z zzBQvi z0b zoU YUX)է-ؽFF'{DžyVJtlH!r&u]Ŋ;7RCSQ񋦠iwH>ʳh endstream endobj 405 0 obj << /Length 237 /Filter /FlateDecode >> stream xeαN02D%{pҊ.TD$: &73Ea+RősƂ)eTQS9mr|IJҌ.kk* C秗{˫3Q&l [f۲cvӨh+켍 R PPÛLm55wۃQ?ڋ_"|v։&Ԋ*Z IM ]4O`9kb{0D>7k endstream endobj 406 0 obj << /Length 218 /Filter /FlateDecode >> stream xڥ1n@E?@#\ ^ c)ʅ*q"QQ8%Ŋ2[$r~y.9R3.#OcE_/T_ܙt_?g~)O)'o6`Pv*;k . , UPC< èzDNe{Υ]ɷ~+| 2%E_Iqhҁ x endstream endobj 407 0 obj << /Length 143 /Filter /FlateDecode >> stream x31ӳP0PbSsCB.crAɹ\N\ \@Q.}O_T.}gC.}hCX.O@l``z 灸C??P szrrRZ endstream endobj 408 0 obj << /Length 232 /Filter /FlateDecode >> stream xmN0Kxe' 0Y*E"L vd(~wH`O,+¯.wZt7j='(IB??v7ϭo^x# `0#,yB=:F0A.O= {řs2t 9FtJ:ZTTwHsͪTU!,)b")3t#}wo endstream endobj 409 0 obj << /Length 239 /Filter /FlateDecode >> stream xMбN@ `G"yv~%-a H0u@LбCQn館?I}LeC-c%H00cRbL5hR"&\/d /N^J+Jx#jC(^ Nw6d`NV?1F3:=0+(-aO"{|ldy endstream endobj 410 0 obj << /Length 196 /Filter /FlateDecode >> stream xڕ=@%$p."AL0XF;pJ 87[syc Of|F&di\%8])Hلט6?/#)"*C Ė(\ -p- *XJ  pZZYjW ( 0G(Yb_/*:p^ endstream endobj 411 0 obj << /Length 217 /Filter /FlateDecode >> stream xڭα@4;/@NYYZZ(ښWG#Lq:q5_1xD1 P)> stream xm1N0E'ris v7,eHV ()@&9#L<| Q`ɯ9JrZ\\Q<^ W7(s W+:C-GnB"LdT@.ëGHF316 6P9n\ Pbf4RuYHq_#B}!\0gܜ!TFIAC$yDE}H#A _|o_ endstream endobj 413 0 obj << /Length 232 /Filter /FlateDecode >> stream xu=N@"4>`m Z) HPQ *HIh{=KV)yl/[.᳊Rsut_iۑ%e-o﮸"NJ'v\8I@/#2DR9LKp)Lz OnPY]D 5ň>Lr>AʍpgWi9ԫo0ZTj~]wtO endstream endobj 414 0 obj << /Length 261 /Filter /FlateDecode >> stream xmбJ@ )yŻgp` ,J--m/Zy/0`0h#eg?|%3Yq-SYc/> stream xڥбj@ @_ 4z|k:ŐPdc! (= t:IÄS~¹ӑB)fgW)NnxfOnk醪9 mvarU();'Q/$C 3!`.z7l(ki?n!a먠luAIu2θ ҫq42BT]E endstream endobj 419 0 obj << /Length 249 /Filter /FlateDecode >> stream xuϱJ@?LᾀSZY mr| 3J duM/|HհXhS-7YwkH~Ͳݍ~}~JR>Z=x~]賑ix o@ʺ\ur'x; endstream endobj 420 0 obj << /Length 202 /Filter /FlateDecode >> stream xڕ; @A  M QL!he!9ZGHB;RXW?#l hS+z*ߛņBQK'jF;LA0Ӫ]WCȋz&\e (t XLݷ!)&e~R27ukd1y ]msXp endstream endobj 421 0 obj << /Length 277 /Filter /FlateDecode >> stream x]J@EoH$j),J-- ɧͧ']ͪ x}|)TrBf1^զUٽʮYVY{#/*^J<?v+'@-0#" |'İ+Y X9"1fm)ӎz+~x/ȇ3FY g,ڏ@'DV{:RRh4zQc;uD*` "Ah^ᰥKp[Vݩoqg endstream endobj 430 0 obj << /Length1 1432 /Length2 6114 /Length3 0 /Length 7086 /Filter /FlateDecode >> stream xڍx4־DA{' 1#ft-QK-$z M_֬5;{?{3DP p#(A4@E (%4`턜O$':@=@ i@TDDo S 8Iȩ:u~x@))I%w'9\ BP~H#ByH 9#(` ABhAms"R@! rUی8i@Na@yzA!CA(# 'wvg'`- '8-1W_@@PJB%† # C}zK< /h=C<q !?w?~w(/Z^(l!o@AP/j3wF\xWH; (- t 1D tУrC-Ht~ g]585OO?B+q@=`o:pBxj@.} ( DowEB@ sLˈ:%Fc+]V1(O\tr4*ۃӍ<1 d;}&/t9Sֿ|$X43`p|N~bLjom͝f1w)#Kur.PvFƖɈJP*|lƱz@Hiee6qxOo:1{xim@bZQTl#)yگ\g*Q\X?fSżUBo<mj@,3m~&kIu{¡Y 8:bӰpofV~OId ~z,acqp%d4gs]# Y?ڒ5 ~c'qL=lٙ۷JK9^=ێ7 i&ظ۰KC澢${i){SM,}+H2JJj$Fʅe y8ytKh/~QwdG#aQ|[®.ڨ-e#ɹBfv:%HytXhs=nl@"SɽNM_ͦ3#Ja ARXusxuni gϨSw"ݍPۭ&CUURbBb̃Uݣ vl  a85nt>ZsTWap"Wm0Z߯Єm|11>Pcs0+@*eIxؕo6H%l ٌ< $3zJw)m=="FGHӤ!à:~J̛>2YuPQ` ,mgI$nq|y*}w3QV)s7`k3[Q a~ĠnD#uIM>]H4M 0kru5Kߵ|<=i."/0!hb95#iDY%ʤbToIMnwodz_}^vK9!sۭaox섭<'{D;F86,=1v.6E~iIY)%5߽\J}/f5u ɉZ0Ti?dא"*#>+,i)&Oܬh5QQ qb_,ۗ]uw$RPMכQuH/yZ~D`k-WE=\( F4]oQHo}ӉuՏk^Yc"# cB IeNe]>nX.4IP0ս n X{ݥW?Ӝ&s/OV: ӧοn˹%4Fe9X-?+ ̷D*~sbVqµl_׵M@wX7+QV.LU>Xy qq-;iչ  _JyZH QN6 ц1NPGXs~#<>-%I\\Lxn=yӷ7WT0qbN=!2JFL Y𐩘~BIXLc/x~a*6-(;u ݪG\"U/WYƾJu0􏘡~:oYP#z&=s':N swa|ꗳ= fpIi,'pZ=Ko]9|c˺Nc ԽR\2"R{tvB-uz0͛*1%Mn5H'N^_!=<޶UV\[I#e?}Z6 ȼ]Bf~g:7rբ*CafR3k3 m W02gV0ؙ| D. $!O!sшFź`5#neGGRjm4ɮrm[>8vb3 w󕳷6r*)V;8!e]yk6%!DԻjå}BWɅ8W7]Pygnnn6wwk@N-Ed*#'?ϞxŒj}Ɏv\8t4a=lJ]Jwx7:\2P ݼg_hZނdgݎ*Ey F&N[k3V׊/s~b$+g0bB:m*Wz>>T[9FM}p6aJ0zqRS<F!dgiO/H!{@Fl5 gӣHz]N@D225Tdyb?=gǚC^[?z[t[O!7Wsg1}fSCdGD݅ac~Efԫ30doHR*TdC92nxRo(xa/Ro~Qהn|tJִ֮9>hlk5CO"@C]±91ԓV*eNuhܳ" yCG-Zv;1!*G4N3WՀs׫KAaxT鋺9; %vWwOu-f'%T|"fM$±\PfM%-L2\ՒQ(d3-~:3x*7eux=\mz V#[NT?g},փ!&P"4.IK_FW^ 2M22{;G]?RK% : '%t=W޾ VW /IZOO 7zPɸ&fWQwOnnŕ#/hH{d__."ߓEead9SKIogǻ GJV>M 3 *'ƒt;-[0_R]A7jH*v=sr\~xA⩌QAen>b ^v,W+Z$;7vY8^؇ JQ ~k(̿ڙkB粁eWxMpݾSm#*;u19Mbꩪȫ.YiX©M*k }*>{gN=,"~3YBJ)3lT \}VZU^ yppȚzF7Υ3ъw!.F3g0f Sd-wT@V]|}#zglߥv}IH w)AI$Xtܯ·*6>opUIr\nDMƪı,N~Ha'{\7 nzY-+Z*:*X>uTxMq02{Z|BC𩫌9Re9{ĆZXT`=6i? 9\0f3ׄj#הּ(뾟KS0{Z3G7Q6ZO>/UȺUuX D;8+8gX?ڍf%U!\3ejMDٴerDdaY-\YlfmV XiϞ?R1 YB(fC2vOKM%z5eAG~ʎ06.ߤ#w"N=c_سϹ~4&v<}N;- `R̸.>kQ?dZǵu{A.*XљLk}8oFvb=<+^)*@^?ȂǢLοq2n {^,/bm"R_-!s3SշcFQHg [Y{)D@(.bjFmO`b.:M.G  *f0[jƼNmd4T]>mBWPz ʤ]It+ƳG;Ja <ѸUbP>KӶTX)4'-K󭧞U%}_Tr~.U]Eϖ7W&,{ 6X&S3Wj|^{7So.Axxw_Bٌ)%V_ϬK  ߷S3+XG˲27[r/HV@ 8'*uWEӘ.1 ޴wΈ2Cjd7a7@ؗ%GZmLt'U|fx aㄵ+i_($vƵPɂ#_DrE^/D Kt*ӜZP19Gl$bpwj8%+ڳ[]S9bX/{F4YU>i3xt==z@+BUXuH?xt%E? ֽK4Ȉ _7('o݅j ~p :,7t7T:,rk={YAB /Agi%҂2,87V7İJe揄?uժޝ/X.Ťi3#Fag endstream endobj 432 0 obj << /Length1 1608 /Length2 9932 /Length3 0 /Length 10758 /Filter /FlateDecode >> stream xڭwePі-NpkBpwAh%-{pwK'HܩUߖ{sV](ع9D G W-s[v)ɏAO/ 4 `sP-<<naaa z4 t4YYI t@`3  @ZM@QU$uW %-v2!K 5g7.s h z>BP#r8a3A ~k_BPgssLstAa2r 5z ϙVK?-={s(i߬90ykZžkۀEl pso Ϙ 3 s+`TKw*sD7Ho"M]}Wh9WUsx~a\oޘ/?dk 'Eހm"Z`ks뀭 0Y˿csKLdi3t! _?74뿾ԟUi{BG*2`HIA<܂v^. bsyi ,bgO``/ǟosi]r h}o!1F . t}.PQ?!9]eg؁+xҗ'Mu'Ӵ;P/dW$C.ݝ1 MӢ6^gk:8~uDxp5 ? t!|`N/jN|@|ow*ĐqZ!WݯvPHR~l\#W♠5q'l|1V? 6ntג"+(/l͸N1w G ۘD vxgϓK FGJɍS~ޔ&;L9ͣޢ*]SIoW}!J_DXxE_?z{ ֗9 Kiܠd:l\` ̦l @H ]p=|~14O:Y3;I7,kSdCL =nIx@>#{A{à cfKx!QD|oabA:$|2w)$|kۖ.麧'l {xP-1 \Cn0p~.{: ٛRQP)}5>f.gA]aTۚiTV|eJ)N9rMH$<69wIq}x4tWDxGPJG=̓]Oo6 ?,%!ޣcx<.7ҔE>/p).!ǒ rw.q?6Sjt"T|(KJ^I0#solJ*B_*d}DJhh iFdcl Xj5faƵmCRTZf !ggԗ6qbmsIN1gz!Z w"<5拤vRJ[u3Xm&,c\Xљ 1Y&<ٹc1eFմ'LValOU@X`zԚƱX+%}#(GCv`~Igw(%]>r֏uPͪCG2hT2UrU>Hk%~xUcȯSv@BvZ >I:l_=58wjÁŶ#"U 0b,"e]r GЃ(]P`ɲ [kہ}e`b:%IAxo?7!v"G4͊v9]XTs<(wA'3U^p?7K_.lO$DxvJ\jK/W-:) g%㌞i_ӎMV.J[L8驱h G֦-UR'd`Dn-9s&Q[m%zݕq(:eR)yO)v&9.R877mX@mt_)gÅHVA9Օ񚨟ׇ+J|3!3uC)eNv=Nİ1lNf)'rj0{ۧ%y[s-{{pʴHp֚8\ʏ.Ȃ/b7l=^}pmB'?_r:}X]#nr]_'Wo3 e7nvD8IADjd$]PY 7.CҹEwsq,Z"dSC.uWz=cGv͵3r >keKS/ K޲Y54ì0և% l%><^Pu,mn63O~wD3;:PP|)P9s1^]/\mfdch8W;QIL.L)!Z{tU& :,i!X -MJ%v>@8n%hzh_t7њ^nЁzrّzϒc䜻ۖϸisC y!5"et8_8+[EqJoI>.1\hkzO#Ydil8Ԛ|{ t_ c܁w,B#a(mMEjs/~R5 2w;#|S 0ӷSPZ6 /iy)Z`(pǁ! Pϣ!B5Bnd!\ʮg51ۥٝҩB?_9!A7U~|R߰$*eBubcA?T쟗do 5gEJC\kqp 40`DWhH-5X/K%M} cj4U&7K0\6Ԭg ꥷQ»ar14 W*O<o/x₳6K_[]$!pnY3}ȩ!4ub ?p݋0&'ف2B 3L.m38(rс1=ms:lX(r\n_=DȭQoBبlTtW4"v*dmM o5q.٦njVF+`wzp[4 7kMsh 8f2鵨DuWNcum$ qŅq q=~À_\;K);:Mq@" qEґ(^p3{cm;u ) `H0G$!kqI#9 kWL'Ɉ G kњ`u(@Rj^3f ze܎&13r"R¤#[eJ~XڵQF0DPPfpS~jEdRQ< ^.'1=')8wՎ$ϸ֕ړ#| jg* EEuoߓw銬D^q;'0}~~}qTzjl~J b?QnԊ}E⍊1h72ARXm0?_x`u l9dZwk3T$<^-$N Լ(u3$t',O Sj_~;YMY/_TyvQ6\^^HT!$mX`N^7Cj\b叕#jeZNP/1䓏 yں H?e#- -Qbg37ryƍ6}Pg?$ `ZIKR/sT 46=xx@9S a=R;ݮP^P4)S3s EJy$g]YY]i>p1A&t628H Yӽ..ʺ`SҚy;t5a:irM1QuBOsBš͙w ]b)AhC>$w2Qk}3NUp\t^̴g^ l wQvT Dv1oݮV faؖ0\cBvfC:$\% n,] u^êi*Q4%3M7L-;{|ZUBI>5Fg4h@c|xC5pflo=砜ޭ$P!n o]'ux(cC %~_@ D:D vl%pKt`$WcךM"b|os$C'~4K_Y:tMƣzan0Ue.UJjrVCFS{l3d`Z 3 |PzH'b1n`9zFԒrV.۬k)+0n}mrW'΃-.ٮyEHi~eMpM\oӕﭘ%X=6"y: De2}?L8⽏1x7=$AX,(M]:79FIuЕ g\J@"reqBa7eK-u&  p`fd Z u'wukDW/*f6D[ LD/.du}cr{(ck.j :(6xjy*}E-*VG­I+~.R9wrrȚbWos'dc?Nt%VfRH\\^)eѮsV)CY ܖ?U/ ਹ/NՅ MAnҭ^L(k4S(!(L` JW~1J=r,SYйE~HV ~b&úsQ|y.#!n>~*ʊ{l90A#j?Tա⮆9=W^zwRNgƒ%m T[?| b2jk6̉yۂ4ݙoMvL/ǿO^= rH(_{l}6s%;ehZGȹ*qzj.CP}@cZgwMzd KE-e~AxW; Ylp*ӸEMSN=K_f.7cدK8!SUF'& RE* 4n-ݢC.l5qL^COK 5ѢQk ,LJَ n\`%O ۈ9i=:~xhwh4 9{.ƿ {KF;52b3O=1ωoK\ư]Ve@}l *b#|$_|o x1vHę p"36n}ՄQRk2䞯mĿ/+O4d׍E- "aS03(Gf1ZZ8}G?دDe&aLxڭ-TJM`]uB,m|"=1l50bIl$LE/y~,B%HD}fKD,]p5kT`(k%%-Ź] J+DUt>~;+2E5yQu~JG +Aص #`u1i10tWaLKľ8A!9b.Vɬ%Bze=.,E5Q&q(% 7,f& .~4}dF0&]FE@뜒eW:+\vf<36_$ʶ̠RD2]k훍 SAu-{^_A ~{6A? x됕_ hRl ?4_ 8{L L 6ሲ-ʳcc8^߿~ -ߺS3\,D!0 9oI`Ћ-F~"ޢyuh@d';fA67bzN%NapP.W@JШYW[A*UK][Na7Qf0UA 0-E-W΋44 b9 k] 8 .h&ac4ZT[[ĚÚ䆃bE~Lu1W[g~BrT&\|g@?lODɢMcSi?Ueاh t_7==~i Fā1ډ IΡlM9:opg|9loa7R52Xu7}׌ ]2h$mj[`$bCjpFzs4i>b.ʷBXEvaű/&>>{ %T͠bvm+Ua9589S*kвtz8\$-'^%c@Wg] +UN;u'Gԇ:A"6IhF6}uCf aeT"C K߇iisSp`S N~wksJI+iOji}$܌H#T f|:MX[B/e*ˈ>.?r,$qO/EJ?Lh`%m,E1\(~R]*_cNeWU q )W|\"Ek]{sUw(Y"%URSW:'xE*QWxp_.=~3x0ݪ, h9߭:U#m:ܪQ^րj%}SK/b[QUӥ.;Pw ~#)/8@&Ah}I)"5vhو@WG.yIbLݙ|6ctp*e+k#TNpC'X |DhCI~K@L!]aU&e9hS#2KߥnӜ3?4,3fN!l kh'Ѳrޏ§̵dT-ahK^˧ <UNPo|K gVjT5ŽJmۤ@*7zR/]QYvgW%zp>DF1Npkqj9iZ輴׆:=Wȿ</XZ#TLUF|d`1ZC2;j{ə#,9'H'fT!_~io|;yW!ħZ20nZb17D.I4"3- Ɣa&&z#wy VIVxJ~_'wK^Mش})aB ֈz-nڲ48M9ů'$ &෢O=D^{ߍFk\ADhxK93fF&7*d{hS9.ރ;'?v^Y3r+x`"7+WK R7]Gm#jBk]ooJDQbkZc<GeWcTJ.~[{:|b&e@#LC"ID Q祝sm 3+H6hvJ={;/gCQZCѳÚC$gI؀ KH#:ƘtZb,FJ> stream xuyeX[-N\h Ip ܃wOp /̝|Zo (vdb :.l@; Dy:~#d܁ kY9\œ|\okN݅ g@ twQ`k3Sh=wk0 =zL,,FVd@ mtU-ִ_r6 Ͽ0{z spZ0v[v'[r.62`x,h6/v/bH6W=$ cv@O'7'7XsUR7lb vZ:yAܡpql@֞+1; ^0dpukev6`'[:2r2,9o)ٸxl܂|oNy(?uմ>9R 8o:s$/Ǜ7ۘ ?=A@㿭c暷j'Ua7=<qtpKgO%OK'ӿdyȃ|6 Ok*5dp kGYM]l5b|sͿhk<۳ۂ}( `kpλ:)Ro ~~W%/J6;7u" Rk\YQ{cX5XdRoG!.vDcFQuas$Ʃ ~x2gTU7Ft28:` wnU LBN﵄Fe9B>*L3(Cm9ŭ±_F T@l8"5~Re--`ؿC}aCC JK!_G " SuYF"͚/fA\brmUMӯ"z6=ص3l_p&\1֭=UoBEM (WH $U"zd IME<#ߟ93cFϪYu3HT/V-XE+FGd5׹?dircLF /?=1q5.a'$-FD``PZp8w39Hl~\ VĠURFĻR#-ߩ .)z5,T9&nH> _ Bʯ꣘:>C}nH㭳x+:ڀNd RC"}% y df'vB`;185BjH bʧzP>CKM!lň_sKAzjqYRCiMB ]7W"N\~M~BZgNbqyQ^:}Bf݅wک^;NX&7*|6%E?\./oѦw2&Mom$ Ljv}KuwMuգ5ј'L^֐t$sθЪH ߇aI4E4PѴT#_L ]|Gم K䛾JR.)y]Ӝ׊<8_pH'IWJ/'өmH׹93TFw}.5l1D|D{qSFg?񅗑a~#tZ+McYʂC@nœpW'-|uf%'d1~(6wu4|GFپ&ir0a2aºAeP㈆Sk|A_잝RՙTE ^DZ`1ΜZ[%=W1_q*Qƒ6r۔FV^gEH*&JMS"l[K=m2(A[^A͕ʲpo9jl4>]b]Qh֘tTbRDL} RpOj[T2WAWOV k+kooß~mm!< nI8=уv>Ahz#j# ⌭W p4$8Hi|-gk[_!B_Jp 0:[,MӸNVu'$먮|Ov "fb U޽N?*^IHkdd/="iXE쨗AW5¬ I$OX9e5(؋k^K3T _ڍxM f4(4{+9GeEJL?1IfǢCCw_wFzCHT!(t],;tg(P}ͻ"TK)v(z'{)9 +˩ ~MnYOte2u)W˯\6+L4_SUp,E|hWLj:ӽP]sCF{9N U`7 ݠقTYq{-*16-S "$] & UU WPNss ^o {k?ne]yq1:# /? *pOR'Xv~(RrT?a1] NTfډȉe3x/.V rI%~O ,HL?0oIu;+x6|#{&<5IC(o91-P?ug+vtuqss@k)Ii38 [+A tثǭC%kg*Ms!~?9P*̙x eTs4"d-bS(uv9I|_.3ZX=Hc6ft<6 [fwj=^w#F+ˤ1i\\9 2E%A) S8afzFoxP7&e@/ا"|*H vV;􏮩=By>jHv!Sjm¡ә# 0Biu~yBCt)㜫Jl6"A{<d2G'Y.miBBk|jX*ڧm0V;#=ٵhw6NG0m;_ʌ+JT%~؅Wx><>DITVo7Hj Ȑ}'[(HPW\Nj!qChx_Os]<'npZıwA߱)}mDP=oPWԧ\NT* tY/9lŃʕZe,|!h) dg4F< ?}R}h4Y5='Q %hE!;D^.3Hvuחx IkN_YuW%Hl"x}# Ӵ|,b0ЎM'@ d\-M(9~Ė,7C`JvϐoH*~$U?[g]& ^I^JE⋓՘ܹ]E=H+}6 #Թ|J+[cef܆*sR915t`$hZisN=LƉwnrTORӈx/b,D+""i)ʞnGTLy)m[#ŻtHJKw'XŽajVe]M{ vdB(-[!~*hiso.aj?m6cJ!"TP,F_bՇ(خbr ^bvQAs͈G"wnc٩x:Mq<!8o/Ҵ+0RX[2AOd̐L9C*!~Ln^1k`uh ;I>ʂmQȖSzX1Cx”7vc~MeusoţjMGno\S"-Li%x{UR\>>RW]-AL8b4^@ʁ>vZtr4i gW@ &GN9pH [20y:L>Mн~5cA"zʾt mUqep/*Unlm8W6ㅁBzLܮ}qnP}\ks3 H*2n+.$*QJT$rø] GDB~HpnD9\cdͺ묥Nc]hW!t` 9|I^pT l3*'7 zJb]Fb=] bwkQ$ ԣ[}(&Jqy t"+wp`M6t xޡɾyd7twsM?'% LܱZHTXGrv…h{5>~!] A2&س*s`&ΩВJKҴf4>$ySp~ Z4lCFՕ\v:Lw=ELW2!5**Uu=2Hz@V,}1K* (/Y>sȱv}6fDh7}C$P¹,Y,D6CUm;Uy9z 7IpK˴Gw(F%,2-Q5; `g6y4RNSV#zTP+ŏ]=6[*·chuqToD yAd|1kk.3/&=\/pdyrC57@B=9k+Bj3.3t?d>tF{׹Z`庨pmrҏe6TUS@0wNDa_<@^tA{TUpvJ!K8u/K]""snնxNXVA\6Oyi/ÑjݖALdXfmbC'4mdrgi̫;8,0-UC@"siaE=_GT&P倻5ʤ'%b uLCUf_DiKLa>dG~*IŮNuaԺmJwԩs{m#[쭁 rٜdL AжebZ.@?ҿd "͵y'V%|U?k›:#cjrW9VEAAj_$R[+eGƋݢhǵuq k87(;F#7j׮9;tdNm{MmM(6+A+?V'??1uU@ P2*PG`>1ʠ"W^\.gJS4Gn|֙ЊAGa|/=Cqr]T+}v hP9~5Z';+0F;e-/F JEiKR5yP0^zPOc;'?c1x[­**0^1ԠJ=FpE\XdžalВ$;K5h5(S觸9׉>ҜȳЮ {2(%0&Kyd|tFm3 ܲd7ɶڐD&,F6l# -MN>dG[jbd{%LDKJ>,*L)D5汆Z"̆?zf.]tݬcGc$FDw$!5Oxm)-#d.i+Rzqc+hM{p4Y-\ӝJ*ذΆ4GbOW$i]|vܓhkZs^dόjj-zG~dTyhBJ`qyRcn=d (N!Ru7 T?xj4 k[Ԯ4t ,lgW_ 5ɐDY] i3WŔF H&.h=>gHng1<Y煷^z{o/Чwd*uFZЩam4 ݳ!SPwMUDԢVb1Πt \y,c#M| 2kF(znώ1, ` ۆrk]O, 9 9w9mh4w}'/$z x/py# C4|Obݹo}#s~϶J@ҠBjdSjl\2/kڭ*{.('-& *}q;:ڍZ-XpK i!ۉc)|I|ǥA~I3wpѲttfey3Il5Hn3M']#(埚FF\^Z)`IKy3Ռ'!appP:T>kX9BL>w_ }R0sYM₈3T8c}r ْ)LUa_&$WmMBk3\U-x;#C=[r9%nղ~sNeSy )T+ݯߕml%Ta,b?7rR=ϥB"mCf.DY2w%JTW,zlϔE'6,[BW+7 ~+NG)S*?)M' ~Xؠ%zݵ4 x6+u_U݆ގ;hO{ԔW2}73D`|сokkVfIdqMG+6c6M@Շfj-걤lf,b}q'_2ug=WjG, - 6nTSm\c­v,}4`ΠѡDdM{ܢ.?k$QzM=}WUBo,TV{T<Ŕ0ԍC!DZ{%TcTDzdIo6E64\-YՅ)UBW1sM++U[e;vs&\ ű$ r'kJǜO|b; ؿ}n3AV\X$y1@^ 'F n&S-cZ(ݼqy1N+]De~W&o_<%(c, `F,]n] <6QA9.\EASh(0^ ])WqӺsDvW it"KnCK.`yS;hG*j>]b4Fb^KfRNRFnec8 hS5|p-C 8S9W%Gf;,Il9ոg%_.%jn0(NQO>kP&Skhݬ`'6Ė )MECѭps%lѝ#2RNHTd4Zqyu^j˟,2mh|zhT/uOI/yȪ^v{@Gѐ\ dj^~S"L0rnO/Gx$C91?6no!7sda@>rU`88мhb)C!2ڲa(jthg{/bPxuKYFC雥9قLH=*l-lЗ)3$d 7E6+yo~El̈InIN 7X3w'qB*%%IZJr}6hȨ zуC㗄Vi@L*&"aiƑ\Tޣ QQW~A`-Z +RYm̾:3QQjo+OqFSōjV GEz:^k"t_uw@3]_9+fǰ4 endstream endobj 436 0 obj << /Length1 1199 /Length2 6224 /Length3 0 /Length 7005 /Filter /FlateDecode >> stream xmswBW=[!#6{;P ,K@Ԇ>.?@f6ݠ0;͏ <~/7aa-h yoP?Zwh@'ǵE">kC@!%=%5M ZAaq =MbdiUO)vH-hW[Pͬym^k#a6P cdLO_PPOI75U,oe`6_:@\]aE4T`P[]ßܶ,(T7!b `6NͣAHA@lk xP7:R7`7%BPitc}XY"K_0vFy3xIRz²U[$L9ovx r6W3P8ZJY &V"ID+i@e{_ߛצ1>i#@8炎4 6豋|cM{Z' 5O 22 T;?{Z&qNY-0mbzH:V71 3I3I|W\h?9Πs+,HX Xg(ni]pwgrrF2]J`+%3$ؚv5X(; 豾E-\Z[=XД@=<1 gT} Dh_g~<1Q^rOϷa;G~&?0z3 Շѱ0|RgI)==94cQ[@|v$py£7Z;fXv*_T$_w[; P`9vi95&UQ4.HI|]̀a8{#v)zK)qxbppNS/jDMqG}q!f/$g|lxNrt]F #Z-yjAd\⧦YnSA:ky߮} Aez3Rm`L\pTNXu2n&2~yITs0'j-Vf2*;!kqSqЉJdvgc]F&UWl̰GfD)VbC^Lf!(8-1rPzo<99esgmwUgLJ>"H ?=xq @̑Kr ֦wwYBZ"v/Iܡ)՗P [k1iSkb!B>PB{owO_z 0R]q I4g\JT.Ю/i iKFhG+؝:e>CjxGC.k %)<[R[ڊ/U(K2%wr iCu|Hd4 ɻJU2q̪h;L'Mn1T 3WR Jy^8ie+PPY|W5;O_оxM*N]Ylnlxa^N⃭vl'`@:"x 7U#O>?uleX[84 y+eyyNl3J.qlaO/vQXJJ _L\Ny%Ug/[_^D}JIVN ]ȋlXZV[Nu? ۸v;1SG nŦ'z!WĀߺwC.xEwNgBYQJ+/^gN}؉=qBKY鍧l78x5/D--xGv~Al;5ſ[ |ӰhWV':/SYuAZ^Բ_ܻ瀔mzڸe#-g8U35gt[i$ p6-OxXjݍM9 *:mǒh!Z/aIVt)N4ZGm,*^xYaVWJbM-¸ڨX%Ն pQ[W=C?/z8I:Șr*x{R(>s3?s cpDȳ@Y-!^c%.Q!nk_˓fkRt)C87e䕓>sViD.-՞F3YIyjF4t5XD r3*웹]GISZlɕ]L9cF$nXUetiN Lwy:5Pkvlj1z4v| e旭qp'.YGدX'[oSՋj3[9=uh )<3չ5|Z$sƳsBVKƄ,%e%G 땾?vAտpER.FK:)M4^LLyD`k&T]ϭUh3MЬ+mS{[2 k䎆ًh[ 5t>d2 gYyȤiHc7kmkHEqvl<δ]]덈 (Pi)p//Fkk8jk+=V5=vRNjkʒ-ث$Y],yy2w=C_~x1?Ʒ Z5ݿͽS \vad]GzT15xk\C:.]}ՒJ&S!R ydL軳P6M<8f/9qH~FP5j<@DS8-&-ɓib(gWAF g: Wl#5oe|TR_Pi3#)/mJu8=U(De/*'u+ޮ(aTA!B6f^m\Yd,qȨ\H1mVgBTMdJdKLJ2ͻn.=,z#/ Z4;i R+XpDlJ7 >cs-EcRx awvn^!$6}\\8FMS y*&yVw!yEDW3jlj' DçeηD̶dnpm=X@~/h≀X2ꍅHpr5&LmGѱ =EPV(ѥ-5UbAsjMըo_(?O 9Gq(Q<Ֆ-:GyІYu9 %Kx`1'@4hY^(`_g\]9)t?Òv a:e~:4>@Lp>|ՖLJ5OH\,OA(\zdN+N-/`kvQN*?g:ـVI 5WE"̃͵Lmu ꖏ H w]o]w|AԊn endstream endobj 266 0 obj << /Type /ObjStm /N 100 /First 860 /Length 3300 /Filter /FlateDecode >> stream xZo6[߯CP q&׼.NqPve{}Z97nֹh`SG3pfH2 Cÿg&WEI+4@I,@Iw g*^`Z^dZ;4r<s, ̉ȔKɀ5yK`|иk-q,X{cgQ^`Qf) d1/`BL04O?ÙCĒE2tLZU7]MfhwlŇ/af٭#zuNu ;F[hd F[HN4{W_woV֚2GF]攗o)1P^.Wu* HBv{%3YӦM?G蠊9L*b[U CU\"L%4_?-oJۓnZcԾ9ﺋqݻj>[]ևYj^糎 )LP%*UW(<*/t会\j՞l)IօXQu Yu^%IqIeSw/*ƍ*? wTPPtYVٲ6_nF.x JW0mZ47M&+Zom~ܵModŕ7AXW֐B]eo"KG{W#쨂ޓv2Ыo~ lDtvn')FIhR |\w팲S%R_~:1%;TDx;)sɹ+W;IBߟn<ꡃy6Α/P)[NV쳴}M%봑!*2lc>}s'uޟ&˳kNO:¢6!^Ï|@" hA GhЀP3ؕo+!؆ZAPvݮ `MC70]tttz *b_u:p/@ܡ0t("Ș;x!Mh%sIIa/w RVvY؃ʏ=R@ ű.Z=EG4ck50cϡ7ʂ k=ʂ,eQ4^(w 5C@$PtB#WD:ڎ&[ #*t U(C'f_,w3Fˆ|gC'g`G4:hqd4c7,L]fM)";S`yu1h>s3fjtg <`Y$t%"{Sdw%ǻ"{_z%4h Vb0NEEYGYGbe!}M:`SD@#lpcAXDEYı$0,L- $0,Lb, #DQ!ĈMACk@e(S,Suw,e ;ߴJebݦH%HudQ d*Rwe;Hq)ăf)l`  c\[CmMs,:7m7Z-a;Cq;$\ 7ts$lk>m}y'zVΕk*ˍYIu:Z ގSڰND7U[q4pGA1F)L2ޫtfEz4 N.DUib<"}׃4b"[ѿ>`P&Yɧɧ'~y`FE\%H&# O]+fŠR'~(jGx*W~J ÝdQ=#5gC蔍z,Zi15X9[~`)|YOEj,ۧ_{wGt0ϐ<|";8%Vd|{=^ނ䨾x;- Ce]=Mn/ w%#WѲϺϿuۮ޵OfdLV^302ÑG)|⇿}dxs>s(Ru gd*'dۓy\V\o;Mc??_x %'&6?|||9[6|W^kn6Kۦݻo;jնzu{[}ޜ]^^*PwF mm+l]i(t?3\/u{~2I[8k(0sh{ }07];`m^_e=41}Ѯ)IW39Zغ|9` |vViZ!vVbu^0Y r[c%^Q+xBlt5Xa}@GZ s$e%{/H~<2yHe%Q4њ`mFkN6I'JIE~{v_"b\wu}7P16>Yz}Wf]1]uD?EO{}ɮ ]T!R!'Ȯp#+?G:qϚ~s Y3|W?ΦX17?c؅MFA` 0Fc!ScPtOeG׃6p^Cdn`(FYn|7ixm2MzR;OO胷%K endstream endobj 481 0 obj << /Author(\376\377\000L\000i\000n\000g\000u\000a\000-\000S\000y\000s\000t\000e\000m\000s\000\040\000S\000o\000f\000t\000w\000a\000r\000e\000\040\000G\000m\000b\000H)/Title(\376\377\000L\000i\000n\000g\000u\000a\000:\000:\000T\000r\000a\000n\000s\000l\000i\000t\000\040\000D\000e\000v\000e\000l\000o\000p\000e\000r\000\040\000M\000a\000n\000u\000a\000l)/Subject(\376\377\000L\000i\000n\000g\000u\000a\000:\000:\000T\000r\000a\000n\000s\000l\000i\000t\000\040\000D\000e\000v\000e\000l\000o\000p\000e\000r\000\040\000M\000a\000n\000u\000a\000l)/Creator(\376\377\000L\000i\000n\000g\000u\000a\000-\000S\000y\000s\000t\000e\000m\000s\000\040\000S\000o\000f\000t\000w\000a\000r\000e\000\040\000G\000m\000b\000H)/Producer(pdfTeX-1.40.13)/Keywords(\376\377\000L\000i\000n\000g\000u\000a\000:\000:\000T\000r\000a\000n\000s\000l\000i\000t\000,\000t\000r\000a\000n\000s\000l\000i\000t\000e\000r\000a\000t\000i\000o\000n\000,\000P\000e\000r\000l) /CreationDate (D:20140411095418+02'00') /ModDate (D:20140411095418+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) kpathsea version 6.1.0) >> endobj 440 0 obj << /Type /ObjStm /N 55 /First 461 /Length 1978 /Filter /FlateDecode >> stream xڥYɎ7WhI08dq DliSUDi4U,{,;v3!LphK_gwƋEM821+q4I%LdS5l|2p1Re "8q xH9wJ<8tFA@?LFGI\8<8k+bD%JKY ]Ǯ ~ fJK=GDoBw2k &HW<[D\lRL,'Ɲy5sՈH-ޤ ⊧H#\QfJ0^;1T._zjt7 3?_m0O/^q ?_OB Pk7q1uy*cmkO=Ծ/ӀMT e\$-Ehɂ%1I4p_?|xit~$̋7De[mx:\c/;Npw8-,D=KbA' ~òG qVQieo&x [vc(4dl7Y.i iR6d ?wOZRI)J}#SLC)Ld=G!% W"t-9UTჺ{ԗz v퉽'Co 53 kRN\dt&1=&.(o뱮.L+"Tª8'2|_ڀ DP%'*TɉJUry2:AQJNT"PwE%2qy0TQ)@J^T P%/*0x)smuwJA~$*JDRI+Y_ـ HXDBTP%"TDU"Q)‡AR9'PWa Nq La JQZp`-$m~Al5eSVR%+ sRr.'cRli3L*]"RK`U ]R.Kw6Jͯ@6K\r/ͯ@$.wP%)JEY] 'MzŃV`=du9ӻC{8V$9Mn-`=/H9ZP-cZީ-Ki,xQς,8e R:u)eLizL76 A9Z-  8Ug*D8D!p tYp; [X*$1-BzŲzpHYSOE#`!R!6o"m CEOŵtYq' x-;6.}mi̋!M/3vB{Ppoz m"gވg!Y+z٧zR:LFMUT@P)u7s+fJ.z[ToTQJu.#4lNۇw ߣ=njFiZxvWۯv?O/O>]y;^xn5i6/P3x endstream endobj 482 0 obj << /Type /XRef /Index [0 483] /Size 483 /W [1 3 1] /Root 480 0 R /Info 481 0 R /ID [ ] /Length 1210 /Filter /FlateDecode >> stream xYlUv}o+[.@"}Ao.Dc‹ >`0FѸ-"[QOgι {a  g2r*2% ̥3Jy4Fɐ{#fd~E0gW؍xYȜTg9[60œ=F.1ʜ=i>0ƜB!19{b(a^ʘfV*0.Y+W6Bjvm ,@-'8lz欷S4a4C BC,Nn^%]Xxnq˝0 .,MVXy : 6(l-00VS.[NN$j{`lCBHPV\(JJ(8 r+ ~~%˅=3vhEhUG&VaԕX]QMbD J .OQ4BH5PR `nBBxA:dRByD!/////.x.#xY K\8csԁ,A̅eȅ/-׸p][[[[[[[[[[[[[[,n*Leؒ22YA A2@*Đ*΁\sVQOJ vJ=}-j zb6,n+ ] = 0lxr.9DrE9rrsg/Wν^Փ/(U.U.'+(Wʵ=ʷOma׹7N(]S+?Kn)so)7_S~ݭ/()zS}ir?urE>K^UB}(qR+IT%eRIQj%mq@EY7 %_ɝUcJJZT=VJSJu2]بRqP<,8,䲪#JGJuJQiPQJ#5Uo(}J#`#lrQak2 a LL;ylEO # Rona Linke # Copyright (C) 2009-2015 Lingua-Systems Software GmbH # use strict; use Getopt::Long; require 5.008; use Lingua::Translit; use Lingua::Translit::Tables qw/:all/; my $VERSION = '0.4'; =pod =head1 NAME translit - transliterate text between various writing systems =head1 SYNOPSIS translit B<-t> I B<-r> B<-i> I B<-o> I -l -v -h =head1 DESCRIPTION B transliterates B encoded natural language text from one writing system to another. It utilizes the Perl module L to accomplish this task and follows the provided transliteration standards as strict as possible. B regards the following commandline switches: =over 4 =item B<--trans>, B<-t> I Use the transliteration standard named I. =item B<--reverse>, B<-r> Transliterate in reverse direction. B: Not every transliteration is capable of being reversed. If unsure, have a look at the list of supported transliterations using the B<--list> switch. =item B<--infile>, B<-i> I Read text from I. Defaults to STDIN. =item B<--outfile>, B<-o> I Write the transliterated text to I. Defaults to STDOUT. =item B<--list>, B<-l> Print a list of supported transliterations showing their =over 4 =item * name =item * reversibility =item * description =back =item B<--verbose>, B<-v> Print verbose status messages to STDERR. =item B<--help>, B<-h> Show a short help text introducing command line switches only. =back =cut # Set defaults where possible my %opt = ( trans => "", infile => "", outfile => "", reverse => 0, list => 0, verbose => 0, # off help => 0 ); show_help(1) unless GetOptions( "trans|t=s" => \$opt{trans}, "infile|i=s" => \$opt{infile}, "outfile|o=s" => \$opt{outfile}, "reverse|r" => \$opt{reverse}, "list|l" => \$opt{list}, "verbose|v" => \$opt{verbose}, "help|h" => \$opt{help} ); show_help(0) if $opt{help}; show_list() if $opt{list}; show_help(1) unless $opt{trans}; # Assure the requested transliteration is supported... die "$opt{trans} is not supported.\n" unless translit_supported( $opt{trans} ); # ...and reverse transliteration is supported, too - if requested die "$opt{trans} cannot be reversed.\n" if ( $opt{reverse} && !translit_reverse_supported( $opt{trans} ) ); # If no input file was specified, use STDIN as a fallback. This way, translit # may also be used in pipes! my $in; if ( $opt{infile} ) { print STDERR "Reading input from $opt{infile}...\n" if $opt{verbose}; open IN, "$opt{infile}" or die "$opt{infile}: $!\n"; $in = *IN; } else { print STDERR "Reading input from STDIN...\n" if $opt{verbose}; $in = *STDIN; } # If no output file was specified, use STDOUT as a fallback. my $out; if ( $opt{outfile} ) { print STDERR "Writing output to $opt{outfile}...\n" if $opt{verbose}; open OUT, "> $opt{outfile}" or die "$opt{outfile}: $!\n"; $out = *OUT; } else { print STDERR "Writing output to STDOUT...\n" if $opt{verbose}; $out = *STDOUT; } # Slurp in all the input and close filehandle local $/; my $text = <$in>; close($in); # Transliterate my $tr = new Lingua::Translit( $opt{trans} ); my $text_tr; unless ( $opt{reverse} ) { print STDERR "Transliterating according to ", $tr->name(), "...\n" if $opt{verbose}; $text_tr = $tr->translit($text); } else { print STDERR "Transliterating according to ", $tr->name(), " (reverse)...\n" if $opt{verbose}; $text_tr = $tr->translit_reverse($text); } # Write the transliterated text to the filehandle and close it print $out $text_tr; close($out); sub show_help { my $retval = shift(); print "translit v$VERSION -- ", "(c) 2009-2015 Lingua-Systems Software GmbH\n\n", "usage: $0 -i FILE -o FILE -t NAME -r -l -v -h\n\n", " --infile -i FILE read input from FILE\n", " --outfile -o FILE write output to FILE\n", " --trans -t NAME use transliteration NAME\n", " --reverse -r transliterate in reverse direction\n", " --list -l list all supported transliterations\n\n", " --verbose -v print verbose status messages\n", " --help -h show this help\n\n", "Read translit(1) for details.\n"; exit($retval); } sub show_list { print "Transliterations supported by Lingua::Translit v" . $Lingua::Translit::VERSION . ":\n\n"; translit_list_supported(); exit(0); } =head1 RESTRICTIONS The input has to be UTF-8 encoded. =head1 BUGS None known. Please report bugs to perl@lingua-systems.com. =head1 SEE ALSO L, L =head1 AUTHORS Alex Linke Rona Linke =head1 LICENSE AND COPYRIGHT Copyright (C) 2007-2008 Alex Linke and Rona Linke Copyright (C) 2009-2015 Lingua-Systems Software GmbH This program is free software. It may be used, redistributed and/or modified under the terms of either the GPL v2 or the Artistic license. =cut # vim: sts=4 sw=4 ts=4 ai et Lingua-Translit-0.24/Makefile.PL0000644000175000017500000000131112337323551015716 0ustar alinkealinke# Lingua::Translit heavily relies on Perl's UTF-8 implementation and # therefore needs at least Perl 5.8.0 to be installed. require 5.008; use strict; use ExtUtils::MakeMaker; WriteMakefile( NAME => "Lingua::Translit", VERSION_FROM => "lib/Lingua/Translit.pm", ABSTRACT_FROM => "lib/Lingua/Translit.pm", AUTHOR => 'Alex Linke ', EXE_FILES => [ qw/translit/ ], PL_FILES => { 'tools/substitute_tables.pl' => 'blib/lib/Lingua/Translit/Tables.pm' }, ); package MY; sub postamble { # include target to rebuild tables return "tables:\n\t\$(MAKE) -C xml tables\n"; } # vim: sts=4 sw=4 ts=4 ai et Lingua-Translit-0.24/Changes0000644000175000017500000001435712625256267015266 0ustar alinkealinke0.24 -- 2015-11-25 * Define POD encoding (UTF-8) - thanks to Lucas Kanashiro and Mohammad Sajid Anwar for reporting this issue! 0.23 -- 2015-11-23 * Added "ISO 8859-16 RON" transliteration. Thanks to Ștefan Suciu for contributing this table! 0.22 -- 2015-07-07 * Added "ISO/R 9" transliteration (ISO/R 9:1954). Thanks to Dusan Vuckovic for contributing this table! 0.21 -- 2014-10-24 * Added "Common ARA" Arabic transliteration. Thanks to Ahmed Elsheshtawy for suggesting this transliteration and his help implementing it! 0.20 -- 2014-05-22 * lib/Lingua/Translit/Tables.pm: Added sub to handle Perl's "Unicode Bug", see perlunicode for details (v0.10). This fixes the errors reported by Perl v5.18.0. * MANIFEST: Added missing "ALA-LC RUS" files to distribution. * xml/: Removed "Common Classical MON" transliteration due to errors and contributors lack of time to fix these. * Code cleanups 0.19 -- 2011-04-15 * Added "ALA-LC RUS" transliteration (ALA-LC:1997). Thanks to Dmitry Smal and Rusar Publishing for contributing this table! 0.18 -- 2010-07-29 * Added transliterations: * "GOST 7.79 RUS OLD" (GOST 7.79:2000 B, support for Old Russian) * "GOST 7.79 RUS" (GOST 7.79:2000 B, reversible) * "GOST 7.79 UKR" (GOST 7.79:2000 B, reversible) * lib/Lingua/Translit/Tables.pm: Improved translit_list_supported() output (v0.9) * translit: Minor improvements (v0.4) * tools/substitute_tables.pl: Typo fixed 0.17 -- 2010-01-20 * Added "DIN 1460 UKR" transliteration * xml/din_1460_rus.xml: Hard and soft sign improvements * t/23_tr_DIN_1460_RUS.t: Added all caps hard sign test 0.16 -- 2010-01-04 * Added "DIN 1460 RUS" transliteration * MANIFEST.SKIP: Added to ignore .git * t/01_Lingua-Translit-Tables.t: Added various tests to verify any supported transliteration can be referenced by a couple of variants of their names, i.e. "Common DEU", "common_deu", "COMMON DEU" or "common deu". * t/11_tr_Common_DEU.t: Added decoded UTF-8 input tests * Replaced HTML developer manual with a PDF version 0.15 -- 2009-10-19 * Added support for the current development version of Perl (5.11) by using named Unicode properties instead of POSIX character classes within any context dependent transliteration rule. The following transliteration tables are affected: * xml/din_1460_bul.xml * xml/iso_9.xml * xml/streamlined_system_bul.xml Closes #50613. Thanks to Andreas Koenig for reporting this issue. * xml/template.xml: Added some more examples, added missing closing tag. * lib/Lingua/Translit/Tables.pm, xml/xml2dump.pl: To increase robustness and ease of use, tables are now associated with an identifier instead of their names. * Removed "utf8" and "bytes" pragmas. * Updated indent of all transliteration tables. 0.14 -- 2009-10-16 * Added Win32 support. (Closes #49544) Please note that a Unix-like environment is still required to develop transliteration tables using the provided set of tools. * t/03_translit.t: Use $^X rather than relying on the shebang * Various trivial fixes, code cleanups and hyperlink updates * xml/manual/manual.pod: Added missing markup 0.13 -- 2008-04-29 * Added developer manual covering the addition of own transliteration tables (xml/manual/). * Added test template (t/xx_tr_template.t.pl) * Makefile.PL: * Added "manual" target * Suited MSWin32 check for CPAN Testers tools 0.12 -- 2008-04-23 * Added common Polish transliteration ("Common POL") 0.11 -- 2008-04-21 * xml/din_1460_bul.xml: changed transliteration of SOFT SIGN to plain ASCII apostrophe. * New transliterations: * Common SLK (Slovak) * Common SLV (Slovenian) 0.10 -- 2008-04-17 * lib/Lingua/Translit.pm, xml/translit.dtd: Contexts can now contain two patterns at a time (before and after). These are combined using AND logics and therefore act as a logical "inbetween". * xml/xml2dump.pl: Switched from XML::Simple to XML::LibXML in order to prevent loss of whitespace charactes like U+180E. * xml/greeklish.xml: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA (U+03AB) bug fixed. * t/13_tr_Greeklish.t: Added test for upsilon bugfix. * Added two transliterations for Bulgarian: * DIN 1460 * Streamlined System 0.09 -- 2008-04-09 * Added Mongolian transliteration "Common Classical MON". Thanks to Bayanzul Lodoysamba (baynaa@users.sourceforge.net) for contributing this table! * lib/Lingua/Translit.pm: "from" and "to" transliteration patterns are now evaluated literally only (within \Q and \E). * lib/Lingua/Translit/Tables.pm: Removed verbose package information from translit_list_supported() * translit: Display Lingua::Translit's version if show_list() is called * translit: For convenience, every underscore in a transliteration's name is substituted by a blank. * Makefile.PL: Exit with a hint on MSWin32 rather than dying in t/03_translit.t * xml/xml2dump.pl: workaround for discarded U+180E character (see l.85) * Added a transliteration table template (xml/template.xml) 0.08 -- 2008-03-31 * Added common Czech transliteration "Common CES" 0.07 -- 2008-03-21 * Fixed a wrong codepoint in an ISO 843 rule. 0.06 -- 2008-03-21 * Fixed a wrong codepoint in a DIN 31634 rule. 0.05 -- 2008-03-10 * Renamed "DIN 5008" to "Common DEU" as the DIN norm doesn't cover the transliteration explicitly. 0.04 -- 2008-02-28 * Added common Romanian transliteration ("Common RON") * Updated Makefile.PL to use tools/substitute_tables.pl to read a transliteration table dump and substitute a placeholder line in lib/Lingua/Translit/Tables.pm with it. 0.03 -- 2008-02-25 * Added DIN 31634 (1982) * Test fixes (require Perl 5.8 if the "utf8" pragma is used) 0.02 -- 2008-02-18 * Added Greeklish * Code cleanup 0.01 -- 2008-02-13 * Initial release * Set of supported transliterations: * ISO 9 * ISO 843 * DIN 5008 # vim: set ft=changelog sw=4 sts=4 ts=4 ai et: Lingua-Translit-0.24/MANIFEST0000644000175000017500000000241012625256311015075 0ustar alinkealinkeChanges developer-manual__eng.pdf lib/Lingua/Translit.pm lib/Lingua/Translit/Tables.pm Makefile.PL MANIFEST MANIFEST.SKIP README t/01_Lingua-Translit-Tables.t t/02_Lingua-Translit.t t/03_translit.t t/10_tr_ISO_843.t t/11_tr_Common_DEU.t t/12_tr_ISO_9.t t/13_tr_Greeklish.t t/14_tr_DIN_31634.t t/15_tr_Common_RON.t t/16_tr_Common_CES.t t/18_tr_DIN_1460_BUL.t t/19_tr_Streamlined_System_BUL.t t/20_tr_Common_SLK.t t/21_tr_Common_SLV.t t/22_tr_Common_POL.t t/23_tr_DIN_1460_RUS.t t/24_tr_DIN_1460_UKR.t t/25_tr_GOST_RUS_OLD.t t/26_tr_GOST_RUS.t t/27_tr_GOST_UKR.t t/28_tr_ALA-LC_RUS.t t/29_tr_Common_ARA.t t/30_tr_ISO-R_9_SR.t t/31_tr_ISO_8859-16_RON.t tools/substitute_tables.pl translit t/xx_tr_template.t.pl xml/ala-lc_rus.xml xml/common_ara.xml xml/common_ces.xml xml/common_deu.xml xml/common_pol.xml xml/common_ron.xml xml/common_slk.xml xml/common_slv.xml xml/din_1460_bul.xml xml/din_1460_rus.xml xml/din_1460_ukr.xml xml/din_31634.xml xml/gost_7-79_rus_old.xml xml/gost_7-79_rus.xml xml/gost_7-79_ukr.xml xml/greeklish.xml xml/iso_843.xml xml/iso_8859-16_ron.xml xml/iso_9.xml xml/iso-r_9.xml xml/Makefile xml/streamlined_system_bul.xml xml/tables.dump xml/template.xml xml/translit.dtd xml/xml2dump.pl META.yml Module meta-data (added by MakeMaker) Lingua-Translit-0.24/MANIFEST.SKIP0000644000175000017500000000000511727351000015631 0ustar alinkealinke.git Lingua-Translit-0.24/t/0000755000175000017500000000000012625256311014212 5ustar alinkealinkeLingua-Translit-0.24/t/25_tr_GOST_RUS_OLD.t0000644000175000017500000000401411727351000017405 0ustar alinkealinkeuse strict; use Test::More tests => 4; my $name = "GOST 7.79 RUS OLD"; my $reversible = 0; # Taken from http://www.ohchr.org/EN/UDHR/Pages/Language.aspx?LangID=rus my $input = "№1 " . "Все люди рождаются свободными и равными в своем " . "достоинстве и правах. Они наделены разумом и " . "совестью и должны поступать в отношении друг друга " . "в духе братства."; my $output_ok = "#1 " . "Vse lyudi rozhdayutsya svobodny'mi i ravny'mi v " . "svoem dostoinstve i pravax. Oni nadeleny' razumom i " . "sovest`yu i dolzhny' postupat` v otnoshenii drug " . "druga v duxe bratstva."; my $context = "публикация - Властелин колец - Царства - " . "ЦИК СССР - " . "ЯЗЫК - ВООБЩЕ - вообще - Частной переписке"; my $context_ok = "publikaciya - Vlastelin kolecz - Czarstva - " . "CIK SSSR - YAZY'K - VOOBSHHE - voobshhe - Chastnoj " . "perepiske"; my $old = "сентябрѣ - міръ - Царь Ѳеодоръ - мѵро - сѵнодъ - " . "типографіи - МОСКОВІЯ - далекій"; my $old_ok = "sentyabrye - mi'r`` - Czar` Fheodor`` - myhro - " . "syhnod`` - tipografii - MOSKOVIYA - daleki'j"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), $reversible, "$name: reversibility"); # 2 is($output, $output_ok, "$name: UDOHR"); $output = $tr->translit($context); # 3 is($output, $context_ok, "$name: context-sensitive"); $output = $tr->translit($old); # 4 is($output, $old_ok, "$name: Old Russian"); # vim: sts=4 sw=4 ai et Lingua-Translit-0.24/t/19_tr_Streamlined_System_BUL.t0000644000175000017500000000354011727351000021725 0ustar alinkealinkeuse strict; require 5.008; use utf8; use Test::More tests => 3; my $name = "Streamlined System BUL"; # Taken from http://www.unhchr.ch/udhr/lang/blg.htm my $udohr_cyr = "Като взе предвид, че пренебрегването и неуважаването " . "на правата на човека доведоха до варварски деяния, " . "които потресоха съвестта на човечеството, и че ". "създаването на един свят, в който хората ще се радват ". "на свобода на словото и убежденията си и ще бъдат " . "свободни от страх и лишения бе провъзгласено за " . "най-съкровения стремеж на човека,"; my $udohr_lat = "Kato vze predvid, che prenebregvaneto i " . "neuvazhavaneto na pravata na choveka dovedoha do " . "varvarski deyaniya, koito potresoha savestta na " . "chovechestvoto, i che sazdavaneto na edin svyat, v " . "koyto horata shte se radvat na svoboda na slovoto " . "i ubezhdeniyata si i shte badat svobodni ot strah i " . "lisheniya be provazglaseno za nay-sakroveniya " . "stremezh na choveka,"; my $all_caps = "ОБЩОТО , ВСЕОБЩА , ДЕКЛАРАЦЯ , ПРЕАМБЮЛ , ЧОВЕКА" . " --- Член, Живопис, Шоуто, Южна Америка"; my $all_caps_ok = "OBSHTOTO , VSEOBSHTA , DEKLARATSYA , PREAMBYUL , " . "CHOVEKA --- Chlen, Zhivopis, Shouto, Yuzhna Amerika"; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); my $o = $tr->translit($udohr_cyr); # 2 is($o, $udohr_lat, "$name: UDOHR transliteration"); $o = $tr->translit($all_caps); # 3 is($o, $all_caps_ok, "$name: all caps"); Lingua-Translit-0.24/t/15_tr_Common_RON.t0000644000175000017500000000215312321724021017347 0ustar alinkealinkeuse strict; require 5.008; use utf8; use Encode; use Test::More tests => 2; my $name = "Common RON"; # Taken from http://www.unhchr.ch/udhr/lang/rum.htm my $input = "Fiecare om se poate prevala de toate drepturile şi ". "libertăţile proclamate în prezenta Declaraţie fără ". "nici un fel de deosebire ca, de pildă, deosebirea ". "de rasă, culoare, sex, limbă, religie, opinie ". "politică sau orice altă opinie, de origine ". "naţională sau socială, avere, naştere sau orice ". "alte împrejurări."; my $output_ok = "Fiecare om se poate prevala de toate drepturile si ". "libertatile proclamate in prezenta Declaratie fara ". "nici un fel de deosebire ca, de pilda, deosebirea ". "de rasa, culoare, sex, limba, religie, opinie ". "politica sau orice alta opinie, de origine ". "nationala sau sociala, avere, nastere sau orice ". "alte imprejurari."; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); my $o = $tr->translit($input); # 2 is($o, $output_ok, "$name: UDOHR transliteration"); Lingua-Translit-0.24/t/03_translit.t0000644000175000017500000000102011727351000016523 0ustar alinkealinkeuse strict; use Test::More tests => 5; my $truth; my $script = "./blib/script/translit"; $truth = -e $script; # 1 is($truth, 1, "translit found"); $truth = system($^X, $script, "-h"); # 2 is($truth, 0, "translit supports -h switch"); $truth = system($^X, $script, "--help"); # 3 is($truth, 0, "translit supports --help switch"); $truth = system($^X, $script, "-l"); # 4 is($truth, 0, "translit supports -l switch"); $truth = system($^X, $script, "--list"); # 5 is($truth, 0, "translit supports --list switch"); Lingua-Translit-0.24/t/12_tr_ISO_9.t0000644000175000017500000000354712253771215016303 0ustar alinkealinkeuse strict; require 5.008; use utf8; use Test::More tests => 5; my $name = "ISO 9"; # Taken from http://www.unhchr.ch/udhr/lang/rus.htm my $udohr_cyr = "Каждый человек должен обладать всеми правами и всеми " . "свободами, провозглашенными настоящей Декларацией, " . "без какого бы то ни было различия, как-то в отношении " . "расы, цвета кожи, пола, языка, религии, политических " . "или иных убеждений, национального или социального " . "происхождения, имущественного, сословного или иного " . "положения."; my $udohr_lat = "Každyj čelovek dolžen obladatʹ vsemi pravami i vsemi " . "svobodami, provozglašennymi nastoâŝej Deklaraciej, " . "bez kakogo by to ni bylo različiâ, kak-to v otnošenii " . "rasy, cveta koži, pola, âzyka, religii, političeskih " . "ili inyh ubeždenij, nacionalʹnogo ili socialʹnogo " . "proishoždeniâ, imuŝestvennogo, soslovnogo ili inogo " . "položeniâ."; # Test hard and soft signs my $context_cyr = "ВЪЕЗД - въезд - альбом"; my $context_lat = "VʺEZD - vʺezd - alʹbom"; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 1, "$name: is reversible"); my $o = $tr->translit($context_cyr); # 2 is($o, $context_lat, "$name: hard and soft signs"); $o = $tr->translit_reverse($o); # 3 is($o, $context_cyr, "$name: hard and soft signs: reverse"); $o = $tr->translit($udohr_cyr); # 4 is($o, $udohr_lat, "$name: UDOHR transliteration"); $o = $tr->translit_reverse($o); # 5 is($o, $udohr_cyr, "$name: UDOHR transliteration (reverse)"); Lingua-Translit-0.24/t/28_tr_ALA-LC_RUS.t0000644000175000017500000000170611727351000017034 0ustar alinkealinkeuse strict; use Test::More tests => 4; my $name = "ALA-LC RUS"; my $reversible = 0; my $upper = "AБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; my $upper_ok = "ABVGDEËZhZIĬKLMNOPRSTUFKhTSChShShch″Y′ĖIUIA"; my $lower = "aбвгдеёжзийклмнопрстуфхцчшщъыьэюя"; my $lower_ok = "abvgdeëzhziĭklmnoprstufkhtschshshch″y′ėiuia"; my $context = "труъ ТРУЪ"; my $context_ok = "tru TRU"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output; # 1 is($tr->can_reverse(), $reversible, "$name: reversibility"); # 2 $output = $tr->translit($upper); is($output, $upper_ok, "$name: upper transliteration"); # 3 $output = $tr->translit($lower); is($output, $lower_ok, "$name: lower transliteration"); # 4 $output = $tr->translit($context); is($output, $context_ok, "$name: transliteration (context-sensitive)"); # vim: sts=4 sw=4 ai et Lingua-Translit-0.24/t/01_Lingua-Translit-Tables.t0000644000175000017500000000326312337323551021131 0ustar alinkealinkeuse strict; use Test::More tests => (12 + (12 * 4)); my $truth; my @check_support = ( "ISO 843", "Common DEU", "ISO 9", "Greeklish", "DIN 31634", "Common RON", "Common CES", "DIN 1460 BUL", "Streamlined System BUL", "Common SLV", "Common SLK", "Common POL" ); BEGIN { # 1 use_ok("Lingua::Translit::Tables"); # 2 use_ok("Lingua::Translit::Tables", qw/translit_supported/); # 3 use_ok("Lingua::Translit::Tables", qw/translit_reverse_supported/); # 4 use_ok("Lingua::Translit::Tables", qw/translit_list_supported/); # 5 use_ok("Lingua::Translit::Tables", qw/:checks/); # 6 use_ok("Lingua::Translit::Tables", qw/:list/); # 7 use_ok("Lingua::Translit::Tables", qw/:all/); } # 8 can_ok("Lingua::Translit::Tables", qw/translit_supported/); # 9 can_ok("Lingua::Translit::Tables", qw/translit_reverse_supported/); # 10 can_ok("Lingua::Translit::Tables", qw/translit_list_supported/); use Lingua::Translit::Tables qw/:checks/; $truth = translit_supported("nonexistent"); # 11 is($truth, 0, "support for nonexistent table"); $truth = translit_supported(""); # 12 is($truth, 0, "support for empty table"); foreach my $name (@check_support) { my $id = Lingua::Translit::Tables::_get_table_id($name); $truth = translit_supported($name); is($truth, 1, "support for existing table $id - by name"); $truth = translit_supported(uc($name)); is($truth, 1, "support for existing table $id - by uc(name)"); $truth = translit_supported(lc($name)); is($truth, 1, "support for existing table $id - by lc(name)"); $truth = translit_supported($id); is($truth, 1, "support for existing table $id - by id"); } Lingua-Translit-0.24/t/10_tr_ISO_843.t0000644000175000017500000000255012253772132016437 0ustar alinkealinkeuse strict; use Test::More tests => 3; my $truth; my $name = "ISO 843"; # Taken from http://www.unhchr.ch/udhr/lang/grk.htm my $greek_valid = "Επειδή η αναγνώριση της αξιοπρέπειας, που είναι " . "σύμφυτη σε όλα τα μέλη της ανθρώπινης οικογένειας, " . "καθώς και των ίσων και αναπαλλοτρίωτων δικαιωμάτων " . "τους αποτελεί το θεμέλιο της ελευθερίας, της " . "δικαιοσύνης και της ειρήνης στον κόσμο."; my $latin_valid = "Epeidī́ ī anagnṓrisī tīs axioprépeias, poy eínai " . "sýmfytī se óla ta mélī tīs anthrṓpinīs oikogéneias, " . "kathṓs kai tōn ísōn kai anapallotríōtōn dikaiōmátōn " . "toys apoteleí to themélio tīs eleytherías, tīs " . "dikaiosýnīs kai tīs eirī́nīs ston kósmo."; my $punct_greek = "και;"; my $punct_valid = "kai?"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $latin_tr = $tr->translit($greek_valid); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); # 2 is($latin_tr, $latin_valid, "$name: UDOHR transliteration"); my $punct_tr = $tr->translit($punct_greek); # 3 is($punct_tr, $punct_valid, "$name: punctation transliteration"); Lingua-Translit-0.24/t/22_tr_Common_POL.t0000644000175000017500000000326112253603274017354 0ustar alinkealinkeuse strict; use Test::More tests => 3; my $name = "Common POL"; # Taken from http://www.unhchr.ch/udhr/lang/pql.htm my $input = "Nie wolno ponadto czynić żadnej różnicy w zależności " . "od sytuacji politycznej, prawnej lub międzynarodowej " . "kraju lub obszaru, do którego dana osoba przynależy, " . "bez względu na to, czy dany kraj lub obszar jest " . "niepodległy, czy też podlega systemowi powiernictwa, " . "nie rządzi się samodzielnie lub jest w jakikolwiek " . "sposób ograniczony w swej niepodległości."; my $output_ok = "Nie wolno ponadto czynic zadnej roznicy w zaleznosci " . "od sytuacji politycznej, prawnej lub miedzynarodowej " . "kraju lub obszaru, do ktorego dana osoba przynalezy, " . "bez wzgledu na to, czy dany kraj lub obszar jest " . "niepodlegly, czy tez podlega systemowi powiernictwa, " . "nie rzadzi sie samodzielnie lub jest w jakikolwiek " . "sposob ograniczony w swej niepodleglosci."; my $alphabet = "A Ą B C Ć D E Ę F G H I J K L Ł M N Ń O Ó P R S Ś T " . "U W Y Z Ź Ż " . "a ą b c ć d e ę f g h i j k l ł m n ń o ó p r s ś t " . "u w y z ź ż"; my $alphabet_ok = "A A B C C D E E F G H I J K L L M N N O O P R S S T " . "U W Y Z Z Z " . "a a b c c d e e f g h i j k l l m n n o o p r s s t " . "u w y z z z"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); # 2 is($output, $output_ok, "$name: UDOHR transliteration"); my $o = $tr->translit($alphabet); # 3 is($o, $alphabet_ok, "$name: alphabet"); # vim: sts=4 Lingua-Translit-0.24/t/xx_tr_template.t.pl0000644000175000017500000000140411727351000020040 0ustar alinkealinkeuse strict; use Test::More tests => 3; # number of tests my $name = ""; # transliterations name my $reversible = 0; # is the transliteration reversible? my $input = ""; # short corpus... my $output_ok = ""; # ...its correct transliteration my $context = ""; # context-sensitive example my $context_ok = ""; # ...its correct transliteration use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), $reversible, "$name: reversibility"); # 2 is($output, $output_ok, "$name: transliteration"); $output = $tr->translit($context); # 3 is($output, $context_ok, "$name: transliteration (context-sensitive)"); # vim: sts=4 sw=4 enc=utf-8 ai et Lingua-Translit-0.24/t/23_tr_DIN_1460_RUS.t0000644000175000017500000000404312252552033017222 0ustar alinkealinkeuse strict; require 5.008; use Test::More tests => 7; my $name = "DIN 1460 RUS"; # Taken from http://www.ohchr.org/EN/UDHR/Pages/Language.aspx?LangID=rus my $udohr_cyr = 'Все люди рождаются свободными и равными в своем ' . 'достоинстве и правах. Они наделены разумом и совестью и ' . 'должны поступать в отношении друг друга в духе братства.'; my $udohr_lat = 'Vse ljudi roždajutsja svobodnymi i ravnymi v svoem ' . 'dostoinstve i pravach. Oni nadeleny razumom i sovest\'ju ' . 'i dolžny postupat\' v otnošenii drug druga v duche ' . 'bratstva.'; my $hypen_cyr = 'также известен как Йа криве́дко - ' . 'от эск. йугыт, йуит люди - ' . 'Кандалакшская (ШЧ-20)'; my $hypen_lat = 'takže izvesten kak J-a krivédko - ' . 'ot ėsk. j-ugyt, j-uit ljudi - ' . 'Kandalakšskaja (Š-Č-20)'; my $sign_cyr = 'объявлять - высказаться - ОБЯЗАЛИСЬ - ' . 'выстроилисъ - ПРЕДЪ'; my $sign_lat = 'ob"javljat\' - vyskazat\'sja - OBJAZALIS\' - ' . 'vystroilis" - PRED"'; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 1, "$name: is reversible"); my $o = $tr->translit($udohr_cyr); # 2 is($o, $udohr_lat, "$name: UDOHR transliteration"); $o = $tr->translit_reverse($o); # 3 is($o, $udohr_cyr, "$name: UDOHR transliteration (reverse)"); $o = $tr->translit($hypen_cyr); # 4 is($o, $hypen_lat, "$name: DIN 1460 §3"); $o = $tr->translit_reverse($o); # 5 is($o, $hypen_cyr, "$name: DIN 1460 §3 (reverse)"); $o = $tr->translit($sign_cyr); # 6 is($o, $sign_lat, "$name: hard and soft signs"); $o = $tr->translit_reverse($o); # 7 is($o, $sign_cyr, "$name: hard and soft signs (reverse)"); # vim: sts=4 sw=4 ai et ft=perl Lingua-Translit-0.24/t/14_tr_DIN_31634.t0000644000175000017500000000426612321724021016561 0ustar alinkealinkeuse strict; require 5.008; use utf8; use Encode; use Test::More tests => 7; my $name = "DIN 31634"; # Taken from http://www.unhchr.ch/udhr/lang/grk.htm my $input = "Επειδή έχει ουσιαστική σημασία να προστατεύονται τα " . "ανθρώπινα δικαιώματα από ένα καθεστώς δικαίου, ώστε ο " . "άνθρωπος να μην αναγκάζεται να προσφεύγει, ως έσχατο " . "καταφύγιο, στην εξέγερση κατά της τυραννίας και της " . "καταπίεσης."; my $output_ok = "Epeidē echei usiastikē sēmasia na prostateyontai ta " . "anthrōpina dikaiōmata apo ena kathestōs dikaiu, ōste " . "o anthrōpos na mēn anankazetai na prospheygei, ōs " . "eschato kataphygio, stēn exegersē kata tēs tyrannias " . "kai tēs katapiesēs."; my $txt_1 = "Νέος ΓΓ του ΝΑΤΟ διορίζεται"; my $txt_1_ok = "Neos NG tu NATO diorizetai"; my $txt_2 = "Γκρουπ 1: Αυστρία, Ελβετία, Ελλάδα, Ολλανδία"; my $txt_2_ok = "Gkrup 1: Austria, Elbetia, Ellada, Ollandia"; my $txt_3 = "Σχετικές αλλαγές"; my $txt_3_ok = "Schetikes allages"; my $txt_4 = "Μπιλ Γκρεγκ -- Αυστραλιανό -- δημιουργήθηκε -- Ουσίες"; my $txt_4_ok = "Mpil Gkrenk -- Australiano -- dēmiurgēthēke -- Usies"; my $txt_5 = "εξαϋλωμένο -- προϋπάρχουσα -- Κεϋλάνη"; my $txt_5_ok = "exaÿlōmeno -- proÿparchusa -- Keylanē"; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); my $o = $tr->translit($input); # 2 is($o, $output_ok, "$name: UDOHR transliteration"); $o = $tr->translit($txt_1); # 3 is($o, $txt_1_ok, "$name: Short text #1"); $o = $tr->translit($txt_2); # 4 is($o, $txt_2_ok, "$name: Short text #2"); $o = $tr->translit($txt_3); # 5 is($o, $txt_3_ok, "$name: Short text #3"); $o = $tr->translit($txt_4); # 6 is($o, $txt_4_ok, "$name: Short text #4"); $o = $tr->translit($txt_5); # 7 is($o, $txt_5_ok, "$name: Short text #5"); Lingua-Translit-0.24/t/26_tr_GOST_RUS.t0000644000175000017500000000505312254006312016713 0ustar alinkealinkeuse strict; use Test::More tests => 7; my $name = "GOST 7.79 RUS"; my $reversible = 1; # Taken from http://www.ohchr.org/EN/UDHR/Pages/Language.aspx?LangID=rus my $input = "№1 " . "Все люди рождаются свободными и равными в своем " . "достоинстве и правах. Они наделены разумом и " . "совестью и должны поступать в отношении друг друга " . "в духе братства."; my $output_ok = "#1 " . "Vse lyudi rozhdayutsya svobodny'mi i ravny'mi v " . "svoem dostoinstve i pravax. Oni nadeleny' razumom i " . "sovest`yu i dolzhny' postupat` v otnoshenii drug " . "druga v duxe bratstva."; my $context = "публикация - Властелин колец - Царства - " . "ЦИК СССР - ЯЗЫК - ВООБЩЕ - вообще - Частной переписке"; my $context_ok = "publikaciya - Vlastelin kolecz - Czarstva - " . "CIK SSSR - YAZY'K - VOOBSHHE - voobshhe - Chastnoj " . "perepiske"; my $reverse = "провозглашает настоящую Всеобщую декларацию прав " . "человека в качестве задачи - цвета кожи - " . "провозглашено - характера этих прав - неотъемлемых"; my $reverse_ok = "provozglashaet nastoyashhuyu Vseobshhuyu " . "deklaraciyu prav cheloveka v kachestve zadachi - " . "czveta kozhi - provozglasheno - xaraktera e`tix " . "prav - neot``emlemy'x"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), $reversible, "$name: reversibility"); # 2 is($output, $output_ok, "$name: UDOHR"); # 3 $output = $tr->translit_reverse($output); is($output, $input, "$name: UDOHR (reverse)"); # 4 $output = $tr->translit($context); is($output, $context_ok, "$name: context-sensitive"); # 5 $output = $tr->translit_reverse($output); is($output, $context, "$name: context-sensitive (reverse)"); # 6 $output = $tr->translit($reverse); is($output, $reverse_ok, "$name: reverse"); # 7 $output = $tr->translit_reverse($output); is($output, $reverse, "$name: reverse (reverse)"); # vim: sts=4 sw=4 ai et Lingua-Translit-0.24/t/20_tr_Common_SLK.t0000644000175000017500000000342512253606340017350 0ustar alinkealinkeuse strict; use Test::More tests => 4; my $name = "Common SLK"; # Taken from http://www.unhchr.ch/udhr/lang/slo.htm my $input = "že ľud Spojených národov zdoraznil v Charte " . "znovu svoju vieru v základné ľudské práva, v " . "dostojnosť a hodnotu ľudskej osobnosti, v rovnaké " . "práva mužov a žien a že sa rozhodol podporovať " . "sociálny pokrok a vytvoriť lepšie životné " . "podmienky za vačšej slobody, že členské štáty " . "prevzaly závazok zaistiť v spolupráci s " . "Organizáciou Spojeých národov všeobecné uznávanie " . "a zachovávanie ľudských práv a základýých slobod. " . "- dôstojnosti"; my $output_ok = "ze lud Spojenych narodov zdoraznil v Charte " . "znovu svoju vieru v zakladne ludske prava, v " . "dostojnost a hodnotu ludskej osobnosti, v rovnake " . "prava muzov a zien a ze sa rozhodol podporovat " . "socialny pokrok a vytvorit lepsie zivotne podmienky " . "za vacsej slobody, ze clenske staty prevzaly " . "zavazok zaistit v spolupraci s Organizaciou " . "Spojeych narodov vseobecne uznavanie a zachovavanie " . "ludskych prav a zakladyych slobod. - dostojnosti"; my $all_caps = "VŠOBECNÁ DEKLARÁCIA LUDSKÝCH PRÁV"; my $all_caps_ok = "VSOBECNA DEKLARACIA LUDSKYCH PRAV"; my $digraphs = "MEDZI - DŽEM"; my $digraphs_ok = "MEDZI - DZEM"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); # 2 is($output, $output_ok, "$name: UDOHR transliteration"); my $o = $tr->translit($all_caps); # 3 is($o, $all_caps_ok, "$name: all caps"); $o = $tr->translit($digraphs); # 4 is($o, $digraphs_ok, "$name: digraphs"); Lingua-Translit-0.24/t/31_tr_ISO_8859-16_RON.t0000644000175000017500000000237212624540540017503 0ustar alinkealinkeuse strict; require 5.008; use utf8; use Encode; use Test::More tests => 3; use Lingua::Translit; my $name = "ISO 8859-16 RON"; # Taken from http://www.unhchr.ch/udhr/lang/rum.htm my $text_cedila = "Fiecare om se poate prevala de toate drepturile şi ". "libertăţile proclamate în prezenta Declaraţie fără ". "nici un fel de deosebire ca, de pildă, deosebirea ". "de rasă, culoare, sex, limbă, religie, opinie ". "politică sau orice altă opinie, de origine ". "naţională sau socială, avere, naştere sau orice ". "alte împrejurări."; my $text_comma = "Fiecare om se poate prevala de toate drepturile și ". "libertățile proclamate în prezenta Declarație fără ". "nici un fel de deosebire ca, de pildă, deosebirea ". "de rasă, culoare, sex, limbă, religie, opinie ". "politică sau orice altă opinie, de origine ". "națională sau socială, avere, naștere sau orice ". "alte împrejurări."; my $tr = Lingua::Translit->new($name); # 1 is $tr->can_reverse(), 1, "$name: is reversible"; my $o = $tr->translit($text_cedila); # 2 is $o, $text_comma, "$name: UDOHR transliteration"; my $r = $tr->translit_reverse($text_comma); # 3 is $r, $text_cedila, "$name: UDOHR transliteration (reverse)"; Lingua-Translit-0.24/t/24_tr_DIN_1460_UKR.t0000644000175000017500000000346512253566662017240 0ustar alinkealinkeuse strict; require 5.008; use Test::More tests => 7; my $name = "DIN 1460 UKR"; # Taken from http://www.ohchr.org/EN/UDHR/Pages/Language.aspx?LangID=ukr my $udohr_cyr = 'Всі люди народжуються вільними і рівними у своїй гідності' . ' та правах. Вони наділені розумом і совістю і повинні ' . 'діяти у відношенні один до одного в дусі братерства.'; my $udohr_lat = 'Vsi ljudy narodžujut\'sja vil\'nymy i rivnymy u svoïj ' . 'hidnosti ta pravach. Vony nadileni rozumom i sovistju i ' . 'povynni dijaty u vidnošenni odyn do odnoho v dusi ' . 'braterstva.'; my $hypen_cyr = 'йехьван - минийаь - зівйуться - ' . 'цг - тверді ч, шч'; my $hypen_lat = 'j-ech\'van - mynyj-a\' - zivj-ut\'sja - ' . 'c-h - tverdi č, š-č'; my $caps_cyr = 'ЗАГАЛЬНА ДЕКЛАРАЦІЯ ПРАВ ЛЮДИНІ'; my $caps_lat = 'ZAHAL\'NA DEKLARACIJA PRAV LJUDYNI'; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 1, "$name: is reversible"); my $o = $tr->translit($udohr_cyr); # 2 is($o, $udohr_lat, "$name: UDOHR transliteration"); $o = $tr->translit_reverse($o); # 3 is($o, $udohr_cyr, "$name: UDOHR transliteration (reverse)"); $o = $tr->translit($hypen_cyr); # 4 is($o, $hypen_lat, "$name: DIN 1460 §3"); $o = $tr->translit_reverse($o); # 5 is($o, $hypen_cyr, "$name: DIN 1460 §3 (reverse)"); $o = $tr->translit($caps_cyr); # 6 is($o, $caps_lat, "$name: capital letters only"); $o = $tr->translit_reverse($o); # 7 is($o, $caps_cyr, "$name: capital letters only (reverse)"); # vim: sts=4 sw=4 ai et ft=perl Lingua-Translit-0.24/t/29_tr_Common_ARA.t0000644000175000017500000000204212422367262017332 0ustar alinkealinkeuse strict; use Test::More tests => 3; my $name = "Common ARA"; my $reversible = 0; my $input = "اخبار اليوم"; # "News Today" my $output_ok = "akhbar alywm"; my $udohr = "يولد جميع الناس أحراراً متساوين في الكرامة والحقوق، " . "وقد وهبوا عقلاً وضميراً وعليهم أن يعامل بعضهم بعضاً " . "بروح الإخاء."; my $udohr_ok = "ywld jmy'e alnas ahrara mtsawyn fy alkramh walhqwq, " . "wqd whbwa 'eqla wdmyra w'elyhm an y'eaml b'edhm " . "b'eda brwh alekha'."; use Lingua::Translit; my $tr = Lingua::Translit->new( $name ); my $output = $tr->translit( $input ); # 1 is( $tr->can_reverse(), $reversible, "$name: reversibility" ); # 2 is( $output, $output_ok, "$name: transliteration (short)" ); $output = $tr->translit( $udohr ); # 3 is( $output, $udohr_ok, "$name: transliteration (UDOHR)" ); # vim: set sts=4 sw=4 ts=4 ai et ft=perl: Lingua-Translit-0.24/t/18_tr_DIN_1460_BUL.t0000644000175000017500000000552412321724021017177 0ustar alinkealinkeuse strict; require 5.008; use Test::More tests => 7; my $name = "DIN 1460 BUL"; # Taken from http://www.unhchr.ch/udhr/lang/blg.htm my $udohr_cyr = "Като взе предвид, че пренебрегването и неуважаването " . "на правата на човека доведоха до варварски деяния, " . "които потресоха съвестта на човечеството, и че ". "създаването на един свят, в който хората ще се радват ". "на свобода на словото и убежденията си и ще бъдат " . "свободни от страх и лишения бе провъзгласено за " . "най-съкровения стремеж на човека,"; my $udohr_lat = "Kato vze predvid, če prenebregvaneto i " . "neuvažavaneto na pravata na čoveka dovedocha ". "do varvarski dejanija, koito potresocha săvestta " . "na čovečestvoto, i če săzdavaneto na edin svjat, v " . "kojto chorata šte se radvat na svoboda na slovoto i " . "ubeždenijata si i šte bădat svobodni ot strach i " . "lišenija be provăzglaseno za naj-săkrovenija stremež " . "na čoveka,"; # Test hyphen my $hyphen_cyr = "равнище, юрисдикция, задължиха, " . # small without "Южнославянски, Хърватски, " . # capital without "йа, ЙАК, йу, Йуно, пешть, ШТАБ, Штаб"; # these need a hyphen, but as it is very unlikely to # find these combinations, the examples are construed my $hyphen_lat = "ravnište, jurisdikcija, zadălžicha, " . "Južnoslavjanski, Chărvatski, " . "j-a, J-AK, j-u, J-uno, peš-t', Š-TAB, Š-tab"; # Test all caps, hard and soft signs my $context_cyr = "ОБЩОТО , ВСЕОБЩА , ДЕКЛАРАЦЯ , ПРЕАМБЮЛ --- " . #allcaps "внукът , Ъгъл , СЪБРАИНЕ --- " . # hard sign "актьор , СИНЬО" ; # soft sign my $context_lat = "OBŠTOTO , VSEOBŠTA , DEKLARACJA , PREAMBJUL --- " . "vnukăt , Ăgăl , SĂBRAINE --- " . "akt'or , SIN'O"; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 1, "$name: is reversible"); my $o = $tr->translit($context_cyr); # 2 is($o, $context_lat, "$name: hard and soft signs"); $o = $tr->translit_reverse($o); # 3 is($o, $context_cyr, "$name: hard and soft signs (reverse)"); $o = $tr->translit($udohr_cyr); # 4 is($o, $udohr_lat, "$name: UDOHR transliteration"); $o = $tr->translit_reverse($o); # 5 is($o, $udohr_cyr, "$name: UDOHR transliteration (reverse)"); $o = $tr->translit($hyphen_cyr); # 6 is($o, $hyphen_lat, "$name: hyphen separator"); $o = $tr->translit_reverse($o); # 7 is($o, $hyphen_cyr, "$name: hyphen separator (reverse)"); Lingua-Translit-0.24/t/16_tr_Common_CES.t0000644000175000017500000000226711727351000017334 0ustar alinkealinkeuse strict; use Test::More tests => 3; my $name = "Common CES"; # Taken from http://www.unhchr.ch/udhr/lang/czc.htm my $input = "Žádný rozdíl nebude dále činěn z důvodu politického, " . "právního nebo mezinárodního postavení země nebo " . "území, k nimž určitá osoba přísluší, ať jde o zemi " . "nebo území nezávislé nebo pod poručenstvím, " . "nesamosprávné nebo podrobené jakémukoli jinému " . "omezení suverenity."; my $output_ok = "Zadny rozdil nebude dale cinen z duvodu politickeho, " . "pravniho nebo mezinarodniho postaveni zeme nebo " . "uzemi, k nimz urcita osoba prislusi, at jde o zemi " . "nebo uzemi nezavisle nebo pod porucenstvim, " . "nesamospravne nebo podrobene jakemukoli jinemu " . "omezeni suverenity."; my $all_caps = "DĚJSTVÍ PRVNÍ"; my $all_caps_ok = "DEJSTVI PRVNI"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); # 2 is($output, $output_ok, "$name: UDOHR transliteration"); my $o = $tr->translit($all_caps); # 3 is($o, $all_caps_ok, "$name: all caps"); Lingua-Translit-0.24/t/27_tr_GOST_UKR.t0000644000175000017500000000451212254015767016721 0ustar alinkealinkeuse strict; use Test::More tests => 7; my $name = "GOST 7.79 UKR"; my $reversible = 1; # Taken from http://www.ohchr.org/EN/UDHR/Pages/Language.aspx?LangID=ukr my $input = "№1 " . "Всі люди народжуються вільними і рівними у своїй " . "гідності та правах. Вони наділені розумом і совістю " . "і повинні діяти у відношенні один до одного в дусі " . "братерства."; my $output_ok = "#1 " . "Vsi lyudy` narodzhuyut`sya vil`ny`my` i rivny`my` u " . "svoyij gidnosti ta pravax. Vony` nadileni rozumom i " . "sovistyu i povy`nni diyaty` u vidnoshenni ody`n do " . "odnogo v dusi braterstva."; my $context = "вдаватиця - Націй - співробітництві - цих"; my $context_ok = "vdavaty`cya - Nacij - spivrobitny`cztvi - cy`x"; my $reverse = "справедливості - Ємних Їх Прав - щоб людина - " . "між - ґудзик - Націй - співробітництві - членам - " . "проголошено - становища - людина - визнання"; my $reverse_ok = "spravedly`vosti - Yemny`x Yix Prav - shhob " . "lyudy`na - mizh - g`udzy`k - Nacij - " . "spivrobitny`cztvi - chlenam - progolosheno - " . "stanovy`shha - lyudy`na - vy`znannya"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), $reversible, "$name: reversibility"); # 2 is($output, $output_ok, "$name: UDOHR"); # 3 $output = $tr->translit_reverse($output); is($output, $input, "$name: UDOHR (reverse)"); # 4 $output = $tr->translit($context); is($output, $context_ok, "$name: context-sensitive"); # 5 $output = $tr->translit_reverse($output); is($output, $context, "$name: context-sensitive (reverse)"); # 6 $output = $tr->translit($reverse); is($output, $reverse_ok, "$name: reverse"); # 7 $output = $tr->translit_reverse($output); is($output, $reverse, "$name: reverse (reverse)"); # vim: sts=4 sw=4 ai et Lingua-Translit-0.24/t/21_tr_Common_SLV.t0000644000175000017500000000240512253607537017372 0ustar alinkealinkeuse strict; use Test::More tests => 3; my $name = "Common SLV"; # Taken from http://www.unhchr.ch/udhr/lang/slv.htm my $input = "ker sta zanikanje in teptanje človekovih pravic " . "pripeljala do barbarskih dejanj, žaljivih za " . "človeško vest, in ker je bila stvaritev sveta, " . "v katerem bi imeli vsi ljudje svobodo govora " . "in verovanja in v katerem ne bi živeli v strahu " . "in pomanjkanju, spoznana za najvišje prizadevanje " . "človeštva;"; my $output_ok = "ker sta zanikanje in teptanje clovekovih pravic " . "pripeljala do barbarskih dejanj, zaljivih za " . "clovesko vest, in ker je bila stvaritev sveta, " . "v katerem bi imeli vsi ljudje svobodo govora in " . "verovanja in v katerem ne bi ziveli v strahu " . "in pomanjkanju, spoznana za najvisje prizadevanje " . "clovestva;"; my $all_caps = "KITAJSKA PUŠČAVSKA MAČKA"; my $all_caps_ok = "KITAJSKA PUSCAVSKA MACKA"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); # 2 is($output, $output_ok, "$name: UDOHR transliteration"); my $o = $tr->translit($all_caps); # 3 is($o, $all_caps_ok, "$name: all caps"); Lingua-Translit-0.24/t/11_tr_Common_DEU.t0000644000175000017500000000315111727351000017323 0ustar alinkealinkeuse strict; use Test::More tests => 7; use Encode qw/decode/; my $name = "Common DEU"; # Taken from http://www.unhchr.ch/udhr/lang/ger.htm my $input = "Alle Menschen sind frei und gleich an Würde und " . "Rechten geboren. Sie sind mit Vernunft und Gewissen " . "begabt und sollen einander im Geist der " . "Brüderlichkeit begegnen."; my $output_ok = "Alle Menschen sind frei und gleich an Wuerde und " . "Rechten geboren. Sie sind mit Vernunft und Gewissen " . "begabt und sollen einander im Geist der " . "Bruederlichkeit begegnen."; my $ext = "ÄÖÜäöüß"; my $ext_out_ok = "AeOeUeaeoeuess"; my $all_caps = "MAßARBEIT -- Spaß"; my $all_caps_ok = "MASSARBEIT -- Spass"; use Lingua::Translit; my $tr = new Lingua::Translit($name); my $output = $tr->translit($input); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); # 2 is($output, $output_ok, "$name: UDOHR transliteration"); $output = $tr->translit(decode("UTF-8", $input)); # 3 is($output, $output_ok, "$name: UDOHR transliteration (decoded)"); my $ext_output = $tr->translit($ext); # 4 is($ext_output, $ext_out_ok, "$name: umlauts and sz-ligature"); $ext_output = $tr->translit(decode("UTF-8", $ext)); # 5 is($ext_output, $ext_out_ok, "$name: umlauts and sz-ligature (decoded)"); my $o = $tr->translit($all_caps); # 6 is($o, $all_caps_ok, "$name: all caps"); $o = $tr->translit(decode("UTF-8", $all_caps)); # 7 is($o, $all_caps_ok, "$name: all caps (decoded)"); # vim: sts=4 sw=4 ai et ft=perl Lingua-Translit-0.24/t/30_tr_ISO-R_9_SR.t0000644000175000017500000000320112546667167017110 0ustar alinkealinkeuse strict; use Test::More tests => 5; use Encode qw/decode/; my $name = "ISO/R 9 - SR"; # Copyright (c) Zoran Radisavljević my $pangram1 = "Њој пљачком згрћеш туђ ЦД, ВХС, беж филџан!"; my $pangram1_ok = "Njoj pljačkom zgrćeš tuđ CD, VHS, bež fildžan!"; # Copyright (c) Rastko Ćirić my $pangram2 = "Дебљој згужвах смеђ филц – њен шкрт џепчић."; my $pangram2_ok = "Debljoj zgužvah smeđ filc – njen škrt džepčić."; # Copyright (c) Ivan Klajn my $pangram3 = "Ђаче, уштеду плаћај жаљењем због џиновских цифара."; my $pangram3_ok = "Đače, uštedu plaćaj žaljenjem zbog džinovskih cifara."; my $lower_case = "абвгдђежзијклљмнњопрстћуфхцчџш"; my $lower_case_ok = "abvgdđežzijklljmnnjoprstćufhcčdžš"; my $upper_case = "АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ"; my $upper_case_ok = "ABVGDĐEŽZIJKLLJMNNJOPRSTĆUFHCČDŽŠ"; use Lingua::Translit; my $tr = new Lingua::Translit("ISO/R 9"); # 1 my $output = $tr->translit($pangram1); is($output, $pangram1_ok, "$name: Serbian pangram (33) transliteration"); # 2 $output = $tr->translit($pangram2); is($output, $pangram2_ok, "$name: Serbian pangram (34) transliteration"); # 3 $output = $tr->translit($pangram3); is($output, $pangram3_ok, "$name: Serbian pangram (42) transliteration"); # 4 $output = $tr->translit($lower_case); is($output, $lower_case_ok, "$name: lower case alphabet"); # 5 $output = $tr->translit($upper_case); is($output, $upper_case_ok, "$name: upper case alphabet"); Lingua-Translit-0.24/t/02_Lingua-Translit.t0000644000175000017500000000236212337323551017721 0ustar alinkealinkeuse strict; use Test::More tests => (8 + (12 * 4)); my $truth; my @check_support = ( "ISO 843", "Common DEU", "ISO 9", "Greeklish", "DIN 31634", "Common RON", "Common CES", "DIN 1460 BUL", "Streamlined System BUL", "Common SLV", "Common SLK", "Common POL" ); my $num_str = "1234567890"; BEGIN { # 1 use_ok("Lingua::Translit"); } use Lingua::Translit; # create new object my $tr = new Lingua::Translit($check_support[0]); # 2 can_ok($tr, "translit"); # 3 can_ok($tr, "translit_reverse"); # 4 can_ok($tr, "can_reverse"); # 5 can_ok($tr, "name"); # 6 can_ok($tr, "desc"); undef($tr); eval { $tr = new Lingua::Translit(""); }; # 7 isnt($@, '', "create object from empty transliteration"); undef($tr); eval { $tr = new Lingua::Translit("DIN 5008"); }; # 8 is ($@, '', "legacy 'DIN 5008' compatibility"); undef($tr); foreach my $name (@check_support) { eval { $tr = new Lingua::Translit($name); }; is($@, '', "$name: create object"); is($tr->name(), $name, "$name: compare names"); isnt($tr->desc(), '', "$name: has a description"); # transliterating a number string should lead to an exact copy my $num_str_tr = $tr->translit($num_str); is($num_str, $num_str_tr, "$name: number transliteration"); } Lingua-Translit-0.24/t/13_tr_Greeklish.t0000644000175000017500000000351512253571534017334 0ustar alinkealinkeuse strict; use Test::More tests => 6; my $name = "Greeklish"; # Taken from http://www.unhchr.ch/udhr/lang/grk.htm my $input = "Επειδή έχει ουσιαστική σημασία να προστατεύονται τα " . "ανθρώπινα δικαιώματα από ένα καθεστώς δικαίου, ώστε ο " . "άνθρωπος να μην αναγκάζεται να προσφεύγει, ως έσχατο " . "καταφύγιο, στην εξέγερση κατά της τυραννίας και της " . "καταπίεσης."; my $output_ok = "Epidi ehi usiastiki simasia na prostatefontai ta " . "anthropina dikaiomata apo ena kathestos dikaiu, oste " . "o anthropos na min anaykazetai na prosfefyi, os " . "eshato katafiyio, stin exeyersi kata tis tirannias " . "kai tis katapiesis."; # Taken from http://en.wikipedia.org/wiki/Greeklish#Examples my $wiki_1 = "Καλημέρα, πώς είστε;"; my $wiki_1_ok = "Kalimera, pos iste?"; my $wiki_2 = "Θήτα"; my $wiki_2_ok = "Thita"; # Check digraphs my $digraph = "ειέιείευέυεύουούόυ"; my $digraph_ok = "iiiefefefuuu"; # Upsilon bug fixed? ("«" -> "I": "Iideoloyika»") my $bug_1 = "«ιδεολογικά» -- Ϋ"; my $bug_1_ok = "«ideoloyika» -- I"; use Lingua::Translit; my $tr = new Lingua::Translit($name); # 1 is($tr->can_reverse(), 0, "$name: not reversible"); my $o = $tr->translit($input); # 2 is($o, $output_ok, "$name: UDOHR transliteration"); $o = $tr->translit($wiki_1); # 3 is($o, $wiki_1_ok, "$name: Wikipedia example #1"); $o = $tr->translit($wiki_2); # 4 is($o, $wiki_2_ok, "$name: Wikipedia example #2"); $o = $tr->translit($digraph); # 5 is($o, $digraph_ok, "$name: digraphs"); $o = $tr->translit($bug_1); # 6 is($o, $bug_1_ok, "$name: bugfix #1"); Lingua-Translit-0.24/xml/0000755000175000017500000000000012625256311014547 5ustar alinkealinkeLingua-Translit-0.24/xml/iso_8859-16_ron.xml0000644000175000017500000000275212624540540017667 0ustar alinkealinke ISO 8859-16 RON Romanian with appropriate diacritics true Ş Ș ş ș Ţ Ț ţ ț Lingua-Translit-0.24/xml/common_deu.xml0000644000175000017500000000353111727351000017411 0ustar alinkealinke Common DEU German umlauts false Ä Ae ä ae Ö Oe ö oe Ü Ue ü ue ß SS \p{IsUpper} ß ss Lingua-Translit-0.24/xml/din_1460_ukr.xml0000644000175000017500000003502311727351000017372 0ustar alinkealinke DIN 1460 UKR DIN 1460:1982, Cyrillic to Latin, Ukrainian true є je Є JE [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Є Je х ch Х CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Х Ch щ šč Щ ŠČ [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Šč ю ju Ю JU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Ju я ja Я JA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ja Й J- [aueAUEауеАУЕ] й j- [aueауе] Ш Š- [ČčЧч] ш š- [čч] ц c- [hг] Ц C- [hHгГ] а a А A б b Б B в v В V г h Г H ґ g Ґ G д d Д D е e Е E ж ž Ж Ž з z З Z и y И Y і i І I ї ï Ї Ï й j Й J к k К K л l Л L м m М M н n Н N о o О O п p П P р r Р R с s С S т t Т T у u У U ф f Ф F ц c Ц C ч č Ч Č ш š Ш Š Ь ' \p{IsUpper} ь ' ʼ ˮ Lingua-Translit-0.24/xml/iso_843.xml0000644000175000017500000002633611727351000016464 0ustar alinkealinke ISO 843 ISO 843:1997 TL (Type 1), Greek to Latin false Α A α a Β V β v Γ G γ g Δ D δ d Ε E ε e Ζ Z ζ z Η Ī η ī Θ Th θ th Ι I ι i Κ K κ k Λ L λ l Μ M μ m Ν N ν n Ξ X ξ x Ο O ο o Π P π p Ρ R ρ r Σ S ς s σ s Τ T τ t Υ Y υ y Φ F φ f Χ Ch χ ch Ψ Ps ψ ps Ω Ō ω ō Ϛ S ϛ s Ϝ W ϝ f ϳ j ΄ ´ ΅ ΅ ͂ ̂ ̓ ʼ ̓ ʼ ̔ h ͅ ̧ ͅ ̧ Ά Á ά á Έ É έ é Ή Ī́ ή ī́ Ί Í ί í Ό Ó ό ó Ύ Ý ύ ý Ώ ώ Ϊ Ï ϊ ï Ϋ Ÿ ϋ ÿ ΐ ΰ ÿ́ ; ? \b ; ? \b · ; - Lingua-Translit-0.24/xml/translit.dtd0000644000175000017500000000123712422367262017112 0ustar alinkealinke Lingua-Translit-0.24/xml/common_pol.xml0000644000175000017500000000602411727351000017426 0ustar alinkealinke Common POL Unaccented Polish false Ą A ą a Ć C ć c Ę E ę e Ł L ł l Ń N ń n Ó O ó o Ś S ś s Ź Z ź z Ż Z ż z Lingua-Translit-0.24/xml/greeklish.xml0000644000175000017500000002552011727351000017243 0ustar alinkealinke Greeklish Greeklish (Phonetic), Greek to Latin false ει i έι i εί i ευ ef έυ ef εύ ef ου u ού u όυ u Α A α a Ά A ά a Β V β v Γ Y γ y Δ D δ d Ε E ε e Έ E έ e Ζ Z ζ z Η I η i Ή I ή i Θ Th θ th Ι I ι i Ί I ί i Ϊ I ϊ i ΐ i Κ K κ k Λ L λ l Μ M μ m Ν N ν n Ξ X ξ x Ο O ο o Ό O ό o Π P π p Ρ R ρ r Σ S σ s Τ T τ t Υ I υ i Ύ I ύ i Ϋ I ϋ i ΰ i Φ F φ f Χ H χ h Ψ Ps ψ ps Ω O ω o Ώ O ώ o ς s ; ? \b ; ? \b · ; - ΄ ΅ ͂ ̓ ̓ ̔ ͅ ͅ Lingua-Translit-0.24/xml/common_ron.xml0000644000175000017500000000543711727351000017441 0ustar alinkealinke Common RON Romanian without diacritics false Ă A ă a  A â a Î I î i Ș S ș s Ş S ş s Ț T ț t Ţ T ţ t Lingua-Translit-0.24/xml/xml2dump.pl0000755000175000017500000001101012422367262016653 0ustar alinkealinke#!/usr/bin/perl -w # # Copyright (C) 2007-2008 Alex Linke # Copyright (C) 2009-2014 Lingua-Systems Software GmbH # use strict; use warnings; require 5.008; use XML::LibXML; use Data::Dumper; use Getopt::Long; my $VERSION = '0.5'; my %tables; # set default options my %opt = ( output => "tables.dump", verbose => 0, ); # parse commandline options show_help(1) unless GetOptions( "output|o=s" => \$opt{output}, "verbose|v" => \$opt{verbose}, "help|h" => \$opt{help} ); show_help(1) if scalar(@ARGV) == 0; # No XML file(s) given show_help(0) if $opt{help}; my $xmlparser = new XML::LibXML(); # Set parser options $xmlparser->pedantic_parser(1); $xmlparser->validation(1); $xmlparser->expand_entities(1); $xmlparser->keep_blanks(1); $xmlparser->line_numbers(1); # Treat everything else in @ARGV as a filename foreach my $file (@ARGV) { print "Parsing $file..." if $opt{verbose}; my %counts = ( rules => 0, contexts => 0 ); my $ds; my $doc = $xmlparser->parse_file($file) or die "Error parsing $file: $!\n"; # Retrieve meta-documentation from XML document first foreach my $meta (qw/name desc reverse/) { my @nodes = $doc->findnodes("/translit/$meta"); die "#/translit/$meta != 1" if ( scalar(@nodes) != 1 ); $ds->{$meta} = $nodes[0]->to_literal(); } # Perform some basic meta data checks die "Name undefined.\n" unless $ds->{name}; die "Description undefined.\n" unless $ds->{desc}; die "Reversibility undefined.\n" unless $ds->{reverse}; # Check tag contains valid data. # TODO: move this to the DTD die "Reversibility: '$ds->{reverse}' -- Should be 'true' or 'false'.\n" unless $ds->{reverse} =~ /^(true|false)$/; # Set the table's identifier $ds->{id} = lc( $ds->{name} ); $ds->{id} =~ s/\s/_/g; # Retrieve all rules, extract their data and store it to an appropriate # data structure foreach my $rule ( $doc->findnodes("/translit/rules/rule") ) { my @nodes; my $rule_ds; # Retrieve "from" and "to" literals foreach my $n (qw/from to/) { @nodes = $rule->findnodes("./$n"); die "#/translit/rules/rules/$n != 1 " . "(at line " . $rule->line_number() . ")\n" if ( scalar(@nodes) != 1 ); $rule_ds->{$n} = $nodes[0]->to_literal(); } # Retrieve rule's "context" @nodes = $rule->findnodes("./context"); die "#/translit/rules/rule/context > 1 " . "(at line " . $rule->line_number() . ")\n" if ( scalar(@nodes) > 1 ); # Process rule's "context" if necessary if ( scalar(@nodes) ) { foreach my $context (qw/before after/) { @nodes = $rule->findnodes("./context/$context"); die "#/translit/rules/rule/context/$context > 1 " . "(at line " . $rule->line_number() . ")\n" if ( scalar(@nodes) > 1 ); # Copy the context to the rule's data structure if ( scalar(@nodes) ) { $rule_ds->{context}->{$context} = $nodes[0]->to_literal(); } } $counts{contexts}++; } $counts{rules}++; die $rule_ds->{name} . ": from==to -> " . $rule_ds->{from} . "\n" if ( $rule_ds->{from} eq $rule_ds->{to} ); push @{ $ds->{rules} }, $rule_ds; } # Copy transliteration structure over to the final hash $tables{ $ds->{id} } = $ds; print " ($ds->{id}: rules=$counts{rules}, contexts=$counts{contexts})\n" if $opt{verbose}; undef($ds); # free memory } # Configure Data::Dumper my $dumper = new Data::Dumper( [ \%tables ], [qw/*tables/] ); $dumper->Purity(0); $dumper->Useqq(1); $dumper->Indent(1); # Dump the table(s) to disk open FH, ">$opt{output}" or die "$opt{output}: $!\n"; print FH $dumper->Dump(); close(FH); print scalar( keys(%tables) ), " transliteration table(s) dumped to $opt{output}.\n" if $opt{verbose}; sub show_help { my $retval = shift(); print STDERR "xml2dump v$VERSION -- Copyright 2007-2008 by Alex Linke ", "\n\n", "usage: $0 [-v -h] -o FILE XML-FILE(s)\n\n", "\t--output -o FILE set output file (default: transtbl.dump)\n", "\t--verbose -v be verbose\n", "\t--help -h show this help\n"; exit($retval); } # vim: sw=4 sts=4 ts=4 ai et Lingua-Translit-0.24/xml/common_ara.xml0000644000175000017500000001423112422367262017410 0ustar alinkealinke Common ARA Common Romanization of Arabic false ث th خ kh ش sh غ gh ع 'e ئ 'e ؤ 'e ا a أ a آ a ى a إ e ب b ت t ج j ح h د d ذ d ض d ر r ز z ظ z س s ص s ط t ف f ق q ك k ل l م m ن n ه h ة h و w ي y ء ' ؟ ? ، , ـ ً ٌ ٍ َ ُ ِ ّ ْ Lingua-Translit-0.24/xml/din_1460_rus.xml0000644000175000017500000003772511727351000017415 0ustar alinkealinke DIN 1460 RUS DIN 1460:1982, Cyrillic to Latin, Russian true х ch Х CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Х Ch щ šč Щ ŠČ [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Šč Ъ " ([^\p{IsWord}]|$) \p{IsUpper} ъ " ([^\p{IsWord}]|$) \p{IsWord} ъ " \p{IsWord} \p{IsWord} Ъ " \p{IsWord} \p{IsWord} ю ju Ю JU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Ju я ja Я JA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ja Й J- [auAUауАУ] й j- [auау] Ш Š- [ČčЧч] ш š- [čч] а a А A б b Б B в v В V г g Г G д d Д D е e Е E ё ë Ё Ë ж ž Ж Ž з z З Z и i И I і i І I й j Й J к k К K л l Л L м m М M н n Н N о o О O п p П P р r Р R с s С S т t Т T у u У U ф f Ф F ц c Ц C ч č Ч Č ш š Ш Š ы y Ы Y Ь ' \p{IsUpper} ь ' ѣ ě Ѣ Ě э ė Э Ė ѳ Ѳ ѵ Ѵ Lingua-Translit-0.24/xml/tables.dump0000644000175000017500000032110712624540540016713 0ustar alinkealinke%tables = ( "common_slk" => { "desc" => "Slovak without diacritics", "name" => "Common SLK", "id" => "common_slk", "rules" => [ { "to" => "A", "from" => "\x{c1}" }, { "to" => "a", "from" => "\x{e1}" }, { "to" => "A", "from" => "\x{c4}" }, { "to" => "a", "from" => "\x{e4}" }, { "to" => "C", "from" => "\x{10c}" }, { "to" => "c", "from" => "\x{10d}" }, { "to" => "D", "from" => "\x{10e}" }, { "to" => "d", "from" => "\x{10f}" }, { "to" => "d", "from" => "d\x{30c}" }, { "to" => "E", "from" => "\x{c9}" }, { "to" => "e", "from" => "\x{e9}" }, { "to" => "I", "from" => "\x{cd}" }, { "to" => "i", "from" => "\x{ed}" }, { "to" => "L", "from" => "\x{139}" }, { "to" => "l", "from" => "\x{13a}" }, { "to" => "L", "from" => "\x{13d}" }, { "to" => "l", "from" => "\x{13e}" }, { "to" => "L", "from" => "L\x{30c}" }, { "to" => "l", "from" => "l\x{30c}" }, { "to" => "N", "from" => "\x{147}" }, { "to" => "n", "from" => "\x{148}" }, { "to" => "O", "from" => "\x{d3}" }, { "to" => "o", "from" => "\x{f3}" }, { "to" => "R", "from" => "\x{154}" }, { "to" => "r", "from" => "\x{155}" }, { "to" => "S", "from" => "\x{160}" }, { "to" => "s", "from" => "\x{161}" }, { "to" => "T", "from" => "\x{164}" }, { "to" => "t", "from" => "\x{165}" }, { "to" => "t", "from" => "t\x{30c}" }, { "to" => "U", "from" => "\x{da}" }, { "to" => "u", "from" => "\x{fa}" }, { "to" => "Y", "from" => "\x{dd}" }, { "to" => "y", "from" => "\x{fd}" }, { "to" => "Z", "from" => "\x{17d}" }, { "to" => "z", "from" => "\x{17e}" }, { "to" => "O", "from" => "\x{d4}" }, { "to" => "o", "from" => "\x{f4}" }, { "to" => "DZ", "from" => "\x{1f1}" }, { "to" => "Dz", "from" => "\x{1f2}" }, { "to" => "dz", "from" => "\x{1f3}" }, { "to" => "DZ", "from" => "\x{1c4}" }, { "to" => "Dz", "from" => "\x{1c5}" }, { "to" => "dz", "from" => "\x{1c6}" } ], "reverse" => "false" }, "common_ron" => { "desc" => "Romanian without diacritics", "name" => "Common RON", "id" => "common_ron", "rules" => [ { "to" => "A", "from" => "\x{102}" }, { "to" => "a", "from" => "\x{103}" }, { "to" => "A", "from" => "\x{c2}" }, { "to" => "a", "from" => "\x{e2}" }, { "to" => "I", "from" => "\x{ce}" }, { "to" => "i", "from" => "\x{ee}" }, { "to" => "S", "from" => "\x{218}" }, { "to" => "s", "from" => "\x{219}" }, { "to" => "S", "from" => "\x{15e}" }, { "to" => "s", "from" => "\x{15f}" }, { "to" => "T", "from" => "\x{21a}" }, { "to" => "t", "from" => "\x{21b}" }, { "to" => "T", "from" => "\x{162}" }, { "to" => "t", "from" => "\x{163}" } ], "reverse" => "false" }, "common_pol" => { "desc" => "Unaccented Polish", "name" => "Common POL", "id" => "common_pol", "rules" => [ { "to" => "A", "from" => "\x{104}" }, { "to" => "a", "from" => "\x{105}" }, { "to" => "C", "from" => "\x{106}" }, { "to" => "c", "from" => "\x{107}" }, { "to" => "E", "from" => "\x{118}" }, { "to" => "e", "from" => "\x{119}" }, { "to" => "L", "from" => "\x{141}" }, { "to" => "l", "from" => "\x{142}" }, { "to" => "N", "from" => "\x{143}" }, { "to" => "n", "from" => "\x{144}" }, { "to" => "O", "from" => "\x{d3}" }, { "to" => "o", "from" => "\x{f3}" }, { "to" => "S", "from" => "\x{15a}" }, { "to" => "s", "from" => "\x{15b}" }, { "to" => "Z", "from" => "\x{179}" }, { "to" => "z", "from" => "\x{17a}" }, { "to" => "Z", "from" => "\x{17b}" }, { "to" => "z", "from" => "\x{17c}" } ], "reverse" => "false" }, "streamlined_system_bul" => { "desc" => "The Streamlined System: 2006, Cyrillic to Latin, Bulgarian", "name" => "Streamlined System BUL", "id" => "streamlined_system_bul", "rules" => [ { "to" => "SHT", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Sht", "from" => "\x{429}" }, { "to" => "sht", "from" => "\x{449}" }, { "to" => "ZH", "from" => "\x{416}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Zh", "from" => "\x{416}" }, { "to" => "zh", "from" => "\x{436}" }, { "to" => "TS", "from" => "\x{426}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ts", "from" => "\x{426}" }, { "to" => "ts", "from" => "\x{446}" }, { "to" => "CH", "from" => "\x{427}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{427}" }, { "to" => "ch", "from" => "\x{447}" }, { "to" => "SH", "from" => "\x{428}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Sh", "from" => "\x{428}" }, { "to" => "sh", "from" => "\x{448}" }, { "to" => "YU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yu", "from" => "\x{42e}" }, { "to" => "yu", "from" => "\x{44e}" }, { "to" => "YA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ya", "from" => "\x{42f}" }, { "to" => "ya", "from" => "\x{44f}" }, { "to" => "A", "from" => "\x{410}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "Y", "from" => "\x{419}" }, { "to" => "y", "from" => "\x{439}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "H", "from" => "\x{425}" }, { "to" => "h", "from" => "\x{445}" }, { "to" => "A", "from" => "\x{42a}" }, { "to" => "a", "from" => "\x{44a}" }, { "to" => "Y", "from" => "\x{42c}" }, { "to" => "y", "from" => "\x{44c}" } ], "reverse" => "false" }, "gost_7.79_rus_old" => { "desc" => "GOST 7.79:2000, Cyrillic to Latin with support for Old Russian (pre 1918), Russian", "name" => "GOST 7.79 RUS OLD", "id" => "gost_7.79_rus_old", "rules" => [ { "to" => "i'", "from" => "\x{456}", "context" => { "before" => "[^\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{44d}\x{451}\x{463}\x{475}\x{456}]" } }, { "to" => "I'", "from" => "\x{406}", "context" => { "before" => "[^\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{401}\x{42d}\x{462}\x{474}\x{406}]" } }, { "to" => "i", "from" => "\x{456}" }, { "to" => "I", "from" => "\x{406}" }, { "to" => "c", "from" => "\x{446}", "context" => { "before" => "[iejy\x{438}\x{435}\x{439}\x{44b}\x{44e}\x{44f}]" } }, { "to" => "C", "from" => "\x{426}", "context" => { "before" => "[IEJY\x{418}\x{415}\x{419}\x{42b}\x{42e}\x{42f}]" } }, { "to" => "cz", "from" => "\x{446}" }, { "to" => "CZ", "from" => "\x{426}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Cz", "from" => "\x{426}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "A", "from" => "\x{410}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "yo", "from" => "\x{451}" }, { "to" => "YO", "from" => "\x{401}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yo", "from" => "\x{401}" }, { "to" => "zh", "from" => "\x{436}" }, { "to" => "ZH", "from" => "\x{416}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Zh", "from" => "\x{416}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "x", "from" => "\x{445}" }, { "to" => "X", "from" => "\x{425}" }, { "to" => "ch", "from" => "\x{447}" }, { "to" => "CH", "from" => "\x{427}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{427}" }, { "to" => "sh", "from" => "\x{448}" }, { "to" => "SH", "from" => "\x{428}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Sh", "from" => "\x{428}" }, { "to" => "shh", "from" => "\x{449}" }, { "to" => "SHH", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Shh", "from" => "\x{429}" }, { "to" => "``", "from" => "\x{44a}" }, { "to" => "``", "from" => "\x{42a}" }, { "to" => "y'", "from" => "\x{44b}" }, { "to" => "Y'", "from" => "\x{42b}" }, { "to" => "`", "from" => "\x{42c}" }, { "to" => "`", "from" => "\x{44c}" }, { "to" => "e`", "from" => "\x{44d}" }, { "to" => "E`", "from" => "\x{42d}" }, { "to" => "yu", "from" => "\x{44e}" }, { "to" => "YU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yu", "from" => "\x{42e}" }, { "to" => "ya", "from" => "\x{44f}" }, { "to" => "YA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ya", "from" => "\x{42f}" }, { "to" => "ye", "from" => "\x{463}" }, { "to" => "YE", "from" => "\x{462}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ye", "from" => "\x{462}" }, { "to" => "fh", "from" => "\x{473}" }, { "to" => "FH", "from" => "\x{472}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Fh", "from" => "\x{472}" }, { "to" => "yh", "from" => "\x{475}" }, { "to" => "YH", "from" => "\x{474}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yh", "from" => "\x{474}" }, { "to" => "#", "from" => "\x{2116}" } ], "reverse" => "false" }, "din_1460_rus" => { "desc" => "DIN 1460:1982, Cyrillic to Latin, Russian", "name" => "DIN 1460 RUS", "id" => "din_1460_rus", "rules" => [ { "to" => "ch", "from" => "\x{445}" }, { "to" => "CH", "from" => "\x{425}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{425}" }, { "to" => "\x{161}\x{10d}", "from" => "\x{449}" }, { "to" => "\x{160}\x{10c}", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "\x{160}\x{10d}", "from" => "\x{429}" }, { "to" => "\"", "from" => "\x{42a}", "context" => { "after" => "\\p{IsUpper}", "before" => "([^\\p{IsWord}]|\$)" } }, { "to" => "\"", "from" => "\x{44a}", "context" => { "after" => "\\p{IsWord}", "before" => "([^\\p{IsWord}]|\$)" } }, { "to" => "\"", "from" => "\x{44a}", "context" => { "after" => "\\p{IsWord}", "before" => "\\p{IsWord}" } }, { "to" => "\"", "from" => "\x{42a}", "context" => { "after" => "\\p{IsWord}", "before" => "\\p{IsWord}" } }, { "to" => "ju", "from" => "\x{44e}" }, { "to" => "JU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ju", "from" => "\x{42e}" }, { "to" => "ja", "from" => "\x{44f}" }, { "to" => "JA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ja", "from" => "\x{42f}" }, { "to" => "J-", "from" => "\x{419}", "context" => { "before" => "[auAU\x{430}\x{443}\x{410}\x{423}]" } }, { "to" => "j-", "from" => "\x{439}", "context" => { "before" => "[au\x{430}\x{443}]" } }, { "to" => "\x{160}-", "from" => "\x{428}", "context" => { "before" => "[\x{10c}\x{10d}\x{427}\x{447}]" } }, { "to" => "\x{161}-", "from" => "\x{448}", "context" => { "before" => "[\x{10d}\x{447}]" } }, { "to" => "a", "from" => "\x{430}" }, { "to" => "A", "from" => "\x{410}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "\x{eb}", "from" => "\x{451}" }, { "to" => "\x{cb}", "from" => "\x{401}" }, { "to" => "\x{17e}", "from" => "\x{436}" }, { "to" => "\x{17d}", "from" => "\x{416}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "i", "from" => "\x{456}" }, { "to" => "I", "from" => "\x{406}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "c", "from" => "\x{446}" }, { "to" => "C", "from" => "\x{426}" }, { "to" => "\x{10d}", "from" => "\x{447}" }, { "to" => "\x{10c}", "from" => "\x{427}" }, { "to" => "\x{161}", "from" => "\x{448}" }, { "to" => "\x{160}", "from" => "\x{428}" }, { "to" => "y", "from" => "\x{44b}" }, { "to" => "Y", "from" => "\x{42b}" }, { "to" => "'", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "'", "from" => "\x{44c}" }, { "to" => "\x{11b}", "from" => "\x{463}" }, { "to" => "\x{11a}", "from" => "\x{462}" }, { "to" => "\x{117}", "from" => "\x{44d}" }, { "to" => "\x{116}", "from" => "\x{42d}" }, { "to" => "\x{1e1f}", "from" => "\x{473}" }, { "to" => "\x{1e1e}", "from" => "\x{472}" }, { "to" => "\x{1e8f}", "from" => "\x{475}" }, { "to" => "\x{1e8e}", "from" => "\x{474}" } ], "reverse" => "true" }, "iso_9" => { "desc" => "ISO 9:1995, Cyrillic to Latin", "name" => "ISO 9", "id" => "iso_9", "rules" => [ { "to" => "A", "from" => "\x{410}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "\x{102}", "from" => "\x{4d0}" }, { "to" => "\x{103}", "from" => "\x{4d1}" }, { "to" => "\x{c4}", "from" => "\x{4d2}" }, { "to" => "\x{e4}", "from" => "\x{4d3}" }, { "to" => "A\x{30b}", "from" => "\x{4d8}" }, { "to" => "a\x{30b}", "from" => "\x{4d9}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "G\x{300}", "from" => "\x{490}" }, { "to" => "g\x{300}", "from" => "\x{491}" }, { "to" => "\x{11e}", "from" => "\x{494}" }, { "to" => "\x{11f}", "from" => "\x{495}" }, { "to" => "\x{120}", "from" => "\x{492}" }, { "to" => "\x{121}", "from" => "\x{493}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "\x{110}", "from" => "\x{402}" }, { "to" => "\x{111}", "from" => "\x{452}" }, { "to" => "\x{1f4}", "from" => "\x{403}" }, { "to" => "\x{1f5}", "from" => "\x{453}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "\x{cb}", "from" => "\x{401}" }, { "to" => "\x{eb}", "from" => "\x{451}" }, { "to" => "\x{114}", "from" => "\x{4d6}" }, { "to" => "\x{115}", "from" => "\x{4d7}" }, { "to" => "\x{ca}", "from" => "\x{404}" }, { "to" => "\x{ea}", "from" => "\x{454}" }, { "to" => "C\x{306}", "from" => "\x{4bc}" }, { "to" => "c\x{306}", "from" => "\x{4bd}" }, { "to" => "\x{c7}\x{306}", "from" => "\x{4be}" }, { "to" => "\x{e7}\x{306}", "from" => "\x{4bf}" }, { "to" => "\x{17d}", "from" => "\x{416}" }, { "to" => "\x{17e}", "from" => "\x{436}" }, { "to" => "Z\x{306}", "from" => "\x{4c1}" }, { "to" => "z\x{306}", "from" => "\x{4c2}" }, { "to" => "Z\x{304}", "from" => "\x{4dc}" }, { "to" => "z\x{304}", "from" => "\x{4dd}" }, { "to" => "\x{17d}\x{326}", "from" => "\x{496}" }, { "to" => "\x{17e}\x{327}", "from" => "\x{497}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Z\x{308}", "from" => "\x{4de}" }, { "to" => "z\x{308}", "from" => "\x{4df}" }, { "to" => "\x{1e90}", "from" => "\x{405}" }, { "to" => "\x{1e91}", "from" => "\x{455}" }, { "to" => "\x{179}", "from" => "\x{4e0}" }, { "to" => "\x{17a}", "from" => "\x{4e1}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "\x{ce}", "from" => "\x{4e4}" }, { "to" => "\x{ee}", "from" => "\x{4e5}" }, { "to" => "\x{cc}", "from" => "\x{406}" }, { "to" => "\x{ec}", "from" => "\x{456}" }, { "to" => "\x{cf}", "from" => "\x{407}" }, { "to" => "\x{ef}", "from" => "\x{457}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J\x{30c}", "from" => "\x{408}" }, { "to" => "\x{1f0}", "from" => "\x{458}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "\x{136}", "from" => "\x{49a}" }, { "to" => "\x{137}", "from" => "\x{49b}" }, { "to" => "K\x{304}", "from" => "\x{49e}" }, { "to" => "k\x{304}", "from" => "\x{49f}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "L\x{302}", "from" => "\x{409}" }, { "to" => "l\x{302}", "from" => "\x{459}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "N\x{302}", "from" => "\x{40a}" }, { "to" => "n\x{302}", "from" => "\x{45a}" }, { "to" => "\x{1e44}", "from" => "\x{4a4}" }, { "to" => "\x{1e45}", "from" => "\x{4a5}" }, { "to" => "\x{1e46}", "from" => "\x{4a2}" }, { "to" => "\x{1e47}", "from" => "\x{4a3}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "\x{d6}", "from" => "\x{4e6}" }, { "to" => "\x{f6}", "from" => "\x{4e7}" }, { "to" => "\x{d4}", "from" => "\x{4e8}" }, { "to" => "\x{f4}", "from" => "\x{4e9}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "\x{1e54}", "from" => "\x{4a6}" }, { "to" => "\x{1e55}", "from" => "\x{4a7}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "\x{c7}", "from" => "\x{4aa}" }, { "to" => "\x{e7}", "from" => "\x{4ab}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "\x{162}", "from" => "\x{4ac}" }, { "to" => "\x{163}", "from" => "\x{4ad}" }, { "to" => "\x{106}", "from" => "\x{40b}" }, { "to" => "\x{170}", "from" => "\x{45b}" }, { "to" => "\x{1e30}", "from" => "\x{40c}" }, { "to" => "\x{1e31}", "from" => "\x{45c}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "\x{da}", "from" => "\x{423}\x{301}" }, { "to" => "\x{fa}", "from" => "\x{443}\x{301}" }, { "to" => "\x{16c}", "from" => "\x{40e}" }, { "to" => "\x{16d}", "from" => "\x{45e}" }, { "to" => "\x{dc}", "from" => "\x{4f0}" }, { "to" => "\x{fc}", "from" => "\x{4f1}" }, { "to" => "\x{170}", "from" => "\x{4f2}" }, { "to" => "\x{171}", "from" => "\x{4f3}" }, { "to" => "\x{d9}", "from" => "\x{4ae}" }, { "to" => "\x{f9}", "from" => "\x{4af}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "H", "from" => "\x{425}" }, { "to" => "h", "from" => "\x{445}" }, { "to" => "\x{1e28}", "from" => "\x{4b2}" }, { "to" => "\x{1e29}", "from" => "\x{4b3}" }, { "to" => "\x{1e24}", "from" => "\x{4ba}" }, { "to" => "\x{1e25}", "from" => "\x{4bb}" }, { "to" => "C", "from" => "\x{426}" }, { "to" => "c", "from" => "\x{446}" }, { "to" => "C\x{304}", "from" => "\x{4b4}" }, { "to" => "c\x{304}", "from" => "\x{4b5}" }, { "to" => "\x{10c}", "from" => "\x{427}" }, { "to" => "\x{10d}", "from" => "\x{447}" }, { "to" => "C\x{308}", "from" => "\x{4f4}" }, { "to" => "c\x{308}", "from" => "\x{4f5}" }, { "to" => "\x{c7}", "from" => "\x{4cb}" }, { "to" => "\x{e7}", "from" => "\x{4cc}" }, { "to" => "D\x{302}", "from" => "\x{40f}" }, { "to" => "d\x{302}", "from" => "\x{45f}" }, { "to" => "\x{160}", "from" => "\x{428}" }, { "to" => "\x{161}", "from" => "\x{448}" }, { "to" => "\x{15c}", "from" => "\x{429}" }, { "to" => "\x{15d}", "from" => "\x{449}" }, { "to" => "\x{2ba}", "from" => "\x{42a}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "\x{2ba}", "from" => "\x{44a}" }, { "to" => "\x{2019}", "from" => "\x{2bc}" }, { "to" => "Y", "from" => "\x{42b}" }, { "to" => "y", "from" => "\x{44b}" }, { "to" => "\x{178}", "from" => "\x{4f8}" }, { "to" => "\x{ff}", "from" => "\x{4f9}" }, { "to" => "\x{2b9}", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "\x{2b9}", "from" => "\x{44c}" }, { "to" => "\x{c8}", "from" => "\x{42d}" }, { "to" => "\x{e8}", "from" => "\x{44d}" }, { "to" => "\x{db}", "from" => "\x{42e}" }, { "to" => "\x{fb}", "from" => "\x{44e}" }, { "to" => "\x{c2}", "from" => "\x{42f}" }, { "to" => "\x{e2}", "from" => "\x{44f}" }, { "to" => "\x{11a}", "from" => "\x{48c}" }, { "to" => "\x{11b}", "from" => "\x{48d}" }, { "to" => "\x{1cd}", "from" => "\x{46a}" }, { "to" => "\x{1ce}", "from" => "\x{46b}" }, { "to" => "F\x{300}", "from" => "\x{472}" }, { "to" => "f\x{300}", "from" => "\x{473}" }, { "to" => "\x{1ef2}", "from" => "\x{474}" }, { "to" => "\x{1ef3}", "from" => "\x{475}" }, { "to" => "\x{d2}", "from" => "\x{4a8}" }, { "to" => "\x{f2}", "from" => "\x{4a9}" }, { "to" => "\x{2021}", "from" => "\x{4c0}" } ], "reverse" => "true" }, "common_slv" => { "desc" => "Slovenian without diacritics", "name" => "Common SLV", "id" => "common_slv", "rules" => [ { "to" => "C", "from" => "\x{10c}" }, { "to" => "c", "from" => "\x{10d}" }, { "to" => "S", "from" => "\x{160}" }, { "to" => "s", "from" => "\x{161}" }, { "to" => "Z", "from" => "\x{17d}" }, { "to" => "z", "from" => "\x{17e}" } ], "reverse" => "false" }, "iso_8859-16_ron" => { "desc" => "Romanian with appropriate diacritics", "name" => "ISO 8859-16 RON", "id" => "iso_8859-16_ron", "rules" => [ { "to" => "\x{218}", "from" => "\x{15e}" }, { "to" => "\x{219}", "from" => "\x{15f}" }, { "to" => "\x{21a}", "from" => "\x{162}" }, { "to" => "\x{21b}", "from" => "\x{163}" } ], "reverse" => "true" }, "iso_843" => { "desc" => "ISO 843:1997 TL (Type 1), Greek to Latin", "name" => "ISO 843", "id" => "iso_843", "rules" => [ { "to" => "A", "from" => "\x{391}" }, { "to" => "a", "from" => "\x{3b1}" }, { "to" => "V", "from" => "\x{392}" }, { "to" => "v", "from" => "\x{3b2}" }, { "to" => "G", "from" => "\x{393}" }, { "to" => "g", "from" => "\x{3b3}" }, { "to" => "D", "from" => "\x{394}" }, { "to" => "d", "from" => "\x{3b4}" }, { "to" => "E", "from" => "\x{395}" }, { "to" => "e", "from" => "\x{3b5}" }, { "to" => "Z", "from" => "\x{396}" }, { "to" => "z", "from" => "\x{3b6}" }, { "to" => "\x{12a}", "from" => "\x{397}" }, { "to" => "\x{12b}", "from" => "\x{3b7}" }, { "to" => "Th", "from" => "\x{398}" }, { "to" => "th", "from" => "\x{3b8}" }, { "to" => "I", "from" => "\x{399}" }, { "to" => "i", "from" => "\x{3b9}" }, { "to" => "K", "from" => "\x{39a}" }, { "to" => "k", "from" => "\x{3ba}" }, { "to" => "L", "from" => "\x{39b}" }, { "to" => "l", "from" => "\x{3bb}" }, { "to" => "M", "from" => "\x{39c}" }, { "to" => "m", "from" => "\x{3bc}" }, { "to" => "N", "from" => "\x{39d}" }, { "to" => "n", "from" => "\x{3bd}" }, { "to" => "X", "from" => "\x{39e}" }, { "to" => "x", "from" => "\x{3be}" }, { "to" => "O", "from" => "\x{39f}" }, { "to" => "o", "from" => "\x{3bf}" }, { "to" => "P", "from" => "\x{3a0}" }, { "to" => "p", "from" => "\x{3c0}" }, { "to" => "R", "from" => "\x{3a1}" }, { "to" => "r", "from" => "\x{3c1}" }, { "to" => "S", "from" => "\x{3a3}" }, { "to" => "s", "from" => "\x{3c2}" }, { "to" => "s", "from" => "\x{3c3}" }, { "to" => "T", "from" => "\x{3a4}" }, { "to" => "t", "from" => "\x{3c4}" }, { "to" => "Y", "from" => "\x{3a5}" }, { "to" => "y", "from" => "\x{3c5}" }, { "to" => "F", "from" => "\x{3a6}" }, { "to" => "f", "from" => "\x{3c6}" }, { "to" => "Ch", "from" => "\x{3a7}" }, { "to" => "ch", "from" => "\x{3c7}" }, { "to" => "Ps", "from" => "\x{3a8}" }, { "to" => "ps", "from" => "\x{3c8}" }, { "to" => "\x{14c}", "from" => "\x{3a9}" }, { "to" => "\x{14d}", "from" => "\x{3c9}" }, { "to" => "S", "from" => "\x{3da}" }, { "to" => "s", "from" => "\x{3db}" }, { "to" => "W", "from" => "\x{3dc}" }, { "to" => "f", "from" => "\x{3dd}" }, { "to" => "j", "from" => "\x{3f3}" }, { "to" => "\x{b4}", "from" => "\x{384}" }, { "to" => "\x{a8}\x{301}", "from" => "\x{385}" }, { "to" => "\x{302}", "from" => "\x{342}" }, { "to" => "\x{2bc}", "from" => "\x{343}" }, { "to" => "\x{2bc}", "from" => "\x{313}" }, { "to" => "h", "from" => "\x{314}" }, { "to" => "\x{327}", "from" => "\x{345}" }, { "to" => "\x{327}", "from" => "\x{345}" }, { "to" => "\x{c1}", "from" => "\x{386}" }, { "to" => "\x{e1}", "from" => "\x{3ac}" }, { "to" => "\x{c9}", "from" => "\x{388}" }, { "to" => "\x{e9}", "from" => "\x{3ad}" }, { "to" => "\x{12a}\x{301}", "from" => "\x{389}" }, { "to" => "\x{12b}\x{301}", "from" => "\x{3ae}" }, { "to" => "\x{cd}", "from" => "\x{38a}" }, { "to" => "\x{ed}", "from" => "\x{3af}" }, { "to" => "\x{d3}", "from" => "\x{38c}" }, { "to" => "\x{f3}", "from" => "\x{3cc}" }, { "to" => "\x{dd}", "from" => "\x{38e}" }, { "to" => "\x{fd}", "from" => "\x{3cd}" }, { "to" => "\x{1e52}", "from" => "\x{38f}" }, { "to" => "\x{1e53}", "from" => "\x{3ce}" }, { "to" => "\x{cf}", "from" => "\x{3aa}" }, { "to" => "\x{ef}", "from" => "\x{3ca}" }, { "to" => "\x{178}", "from" => "\x{3ab}" }, { "to" => "\x{ff}", "from" => "\x{3cb}" }, { "to" => "\x{1e2f}", "from" => "\x{390}" }, { "to" => "\x{ff}\x{301}", "from" => "\x{3b0}" }, { "to" => "?", "from" => "\x{37e}", "context" => { "after" => "\\b" } }, { "to" => "?", "from" => ";", "context" => { "after" => "\\b" } }, { "to" => ";", "from" => "\x{b7}" }, { "to" => "-", "from" => "\x{203f}" } ], "reverse" => "false" }, "din_31634" => { "desc" => "DIN 31634:1982, Greek to Latin", "name" => "DIN 31634", "id" => "din_31634", "rules" => [ { "to" => "AU", "from" => "\x{391}\x{3a5}" }, { "to" => "au", "from" => "\x{3b1}\x{3c5}" }, { "to" => "Au", "from" => "\x{391}\x{3c5}" }, { "to" => "A\x{178}", "from" => "\x{391}\x{3ab}" }, { "to" => "a\x{ff}", "from" => "\x{3b1}\x{3cb}" }, { "to" => "NG", "from" => "\x{393}\x{393}" }, { "to" => "ng", "from" => "\x{3b3}\x{3b3}" }, { "to" => "Ng", "from" => "\x{393}\x{3b3}" }, { "to" => "GK", "from" => "\x{393}\x{39a}", "context" => { "after" => "\\b" } }, { "to" => "gk", "from" => "\x{3b3}\x{3ba}", "context" => { "after" => "\\b" } }, { "to" => "Gk", "from" => "\x{393}\x{3ba}", "context" => { "after" => "\\b" } }, { "to" => "NK", "from" => "\x{393}\x{39a}" }, { "to" => "nk", "from" => "\x{3b3}\x{3ba}" }, { "to" => "Nk", "from" => "\x{393}\x{3ba}" }, { "to" => "NX", "from" => "\x{393}\x{39e}" }, { "to" => "nx", "from" => "\x{3b3}\x{3be}" }, { "to" => "Nx", "from" => "\x{393}\x{3be}" }, { "to" => "nch", "from" => "\x{393}\x{3a7}" }, { "to" => "nch", "from" => "\x{3b3}\x{3c7}" }, { "to" => "Nch", "from" => "\x{393}\x{3c7}" }, { "to" => "EU", "from" => "\x{395}\x{3a5}" }, { "to" => "eu", "from" => "\x{3b5}\x{3c5}" }, { "to" => "Eu", "from" => "\x{395}\x{3c5}" }, { "to" => "\x{112}U", "from" => "\x{397}\x{3a5}" }, { "to" => "\x{113}u", "from" => "\x{3b7}\x{3c5}" }, { "to" => "\x{112}u", "from" => "\x{397}\x{3c5}" }, { "to" => "U", "from" => "\x{39f}\x{3a5}" }, { "to" => "u", "from" => "\x{3bf}\x{3c5}" }, { "to" => "U", "from" => "\x{39f}\x{3c5}" }, { "to" => "O\x{178}", "from" => "\x{39f}\x{3ab}" }, { "to" => "o\x{ff}", "from" => "\x{3bf}\x{3cb}" }, { "to" => "A", "from" => "\x{391}" }, { "to" => "a", "from" => "\x{3b1}" }, { "to" => "B", "from" => "\x{392}" }, { "to" => "b", "from" => "\x{3b2}" }, { "to" => "G", "from" => "\x{393}" }, { "to" => "g", "from" => "\x{3b3}" }, { "to" => "D", "from" => "\x{394}" }, { "to" => "d", "from" => "\x{3b4}" }, { "to" => "E", "from" => "\x{395}" }, { "to" => "e", "from" => "\x{3b5}" }, { "to" => "Z", "from" => "\x{396}" }, { "to" => "z", "from" => "\x{3b6}" }, { "to" => "\x{112}", "from" => "\x{397}" }, { "to" => "\x{113}", "from" => "\x{3b7}" }, { "to" => "Th", "from" => "\x{398}" }, { "to" => "th", "from" => "\x{3b8}" }, { "to" => "th", "from" => "\x{3d1}" }, { "to" => "I", "from" => "\x{399}" }, { "to" => "i", "from" => "\x{3b9}" }, { "to" => "K", "from" => "\x{39a}" }, { "to" => "k", "from" => "\x{3ba}" }, { "to" => "L", "from" => "\x{39b}" }, { "to" => "l", "from" => "\x{3bb}" }, { "to" => "M", "from" => "\x{39c}" }, { "to" => "m", "from" => "\x{3bc}" }, { "to" => "N", "from" => "\x{39d}" }, { "to" => "n", "from" => "\x{3bd}" }, { "to" => "X", "from" => "\x{39e}" }, { "to" => "x", "from" => "\x{3be}" }, { "to" => "O", "from" => "\x{39f}" }, { "to" => "o", "from" => "\x{3bf}" }, { "to" => "P", "from" => "\x{3a0}" }, { "to" => "p", "from" => "\x{3c0}" }, { "to" => "R", "from" => "\x{3a1}" }, { "to" => "r", "from" => "\x{3c1}" }, { "to" => "S", "from" => "\x{3a3}" }, { "to" => "s", "from" => "\x{3c3}" }, { "to" => "s", "from" => "\x{3c2}", "context" => { "before" => "\\b" } }, { "to" => "T", "from" => "\x{3a4}" }, { "to" => "t", "from" => "\x{3c4}" }, { "to" => "Y", "from" => "\x{3a5}" }, { "to" => "y", "from" => "\x{3c5}" }, { "to" => "Ph", "from" => "\x{3a6}" }, { "to" => "ph", "from" => "\x{3c6}" }, { "to" => "ph", "from" => "\x{3d5}" }, { "to" => "Ch", "from" => "\x{3a7}" }, { "to" => "ch", "from" => "\x{3c7}" }, { "to" => "Ps", "from" => "\x{3a8}" }, { "to" => "ps", "from" => "\x{3c8}" }, { "to" => "\x{14c}", "from" => "\x{3a9}" }, { "to" => "\x{14d}", "from" => "\x{3c9}" }, { "to" => "A", "from" => "\x{386}" }, { "to" => "a", "from" => "\x{3ac}" }, { "to" => "E", "from" => "\x{388}" }, { "to" => "e", "from" => "\x{3ad}" }, { "to" => "\x{112}", "from" => "\x{389}" }, { "to" => "\x{113}", "from" => "\x{3ae}" }, { "to" => "I", "from" => "\x{38a}" }, { "to" => "i", "from" => "\x{3af}" }, { "to" => "I", "from" => "\x{3aa}" }, { "to" => "i", "from" => "\x{3ca}" }, { "to" => "i", "from" => "\x{390}" }, { "to" => "O", "from" => "\x{38c}" }, { "to" => "o", "from" => "\x{3cc}" }, { "to" => "Y", "from" => "\x{38e}" }, { "to" => "y", "from" => "\x{3cd}" }, { "to" => "Y", "from" => "\x{3ab}" }, { "to" => "y", "from" => "\x{3cb}" }, { "to" => "y", "from" => "\x{3b0}" }, { "to" => "\x{14c}", "from" => "\x{38f}" }, { "to" => "\x{14d}", "from" => "\x{3ce}" }, { "to" => "?", "from" => "\x{37e}" }, { "to" => "?", "from" => ";" }, { "to" => ";", "from" => "\x{b7}" }, { "to" => "", "from" => "\x{384}" }, { "to" => "", "from" => "\x{385}" }, { "to" => "", "from" => "\x{342}" }, { "to" => "", "from" => "\x{343}" }, { "to" => "", "from" => "\x{313}" }, { "to" => "", "from" => "\x{314}" }, { "to" => "", "from" => "\x{345}" }, { "to" => "", "from" => "\x{345}" } ], "reverse" => "false" }, "common_ces" => { "desc" => "Czech without diacritics", "name" => "Common CES", "id" => "common_ces", "rules" => [ { "to" => "A", "from" => "\x{c1}" }, { "to" => "a", "from" => "\x{e1}" }, { "to" => "C", "from" => "\x{10c}" }, { "to" => "c", "from" => "\x{10d}" }, { "to" => "D", "from" => "\x{10e}" }, { "to" => "d", "from" => "\x{10f}" }, { "to" => "d", "from" => "d\x{30c}" }, { "to" => "E", "from" => "\x{c9}" }, { "to" => "e", "from" => "\x{e9}" }, { "to" => "E", "from" => "\x{11a}" }, { "to" => "e", "from" => "\x{11b}" }, { "to" => "I", "from" => "\x{cd}" }, { "to" => "i", "from" => "\x{ed}" }, { "to" => "N", "from" => "\x{147}" }, { "to" => "n", "from" => "\x{148}" }, { "to" => "O", "from" => "\x{d3}" }, { "to" => "o", "from" => "\x{f3}" }, { "to" => "R", "from" => "\x{158}" }, { "to" => "r", "from" => "\x{159}" }, { "to" => "S", "from" => "\x{160}" }, { "to" => "s", "from" => "\x{161}" }, { "to" => "T", "from" => "\x{164}" }, { "to" => "t", "from" => "\x{165}" }, { "to" => "t", "from" => "t\x{30c};" }, { "to" => "U", "from" => "\x{da}" }, { "to" => "u", "from" => "\x{fa}" }, { "to" => "U", "from" => "\x{16e}" }, { "to" => "u", "from" => "\x{16f}" }, { "to" => "Y", "from" => "\x{dd}" }, { "to" => "y", "from" => "\x{fd}" }, { "to" => "Z", "from" => "\x{17d}" }, { "to" => "z", "from" => "\x{17e}" } ], "reverse" => "false" }, "din_1460_ukr" => { "desc" => "DIN 1460:1982, Cyrillic to Latin, Ukrainian", "name" => "DIN 1460 UKR", "id" => "din_1460_ukr", "rules" => [ { "to" => "je", "from" => "\x{454}" }, { "to" => "JE", "from" => "\x{404}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Je", "from" => "\x{404}" }, { "to" => "ch", "from" => "\x{445}" }, { "to" => "CH", "from" => "\x{425}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{425}" }, { "to" => "\x{161}\x{10d}", "from" => "\x{449}" }, { "to" => "\x{160}\x{10c}", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "\x{160}\x{10d}", "from" => "\x{429}" }, { "to" => "ju", "from" => "\x{44e}" }, { "to" => "JU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ju", "from" => "\x{42e}" }, { "to" => "ja", "from" => "\x{44f}" }, { "to" => "JA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ja", "from" => "\x{42f}" }, { "to" => "J-", "from" => "\x{419}", "context" => { "before" => "[aueAUE\x{430}\x{443}\x{435}\x{410}\x{423}\x{415}]" } }, { "to" => "j-", "from" => "\x{439}", "context" => { "before" => "[aue\x{430}\x{443}\x{435}]" } }, { "to" => "\x{160}-", "from" => "\x{428}", "context" => { "before" => "[\x{10c}\x{10d}\x{427}\x{447}]" } }, { "to" => "\x{161}-", "from" => "\x{448}", "context" => { "before" => "[\x{10d}\x{447}]" } }, { "to" => "c-", "from" => "\x{446}", "context" => { "before" => "[h\x{433}]" } }, { "to" => "C-", "from" => "\x{426}", "context" => { "before" => "[hH\x{433}\x{413}]" } }, { "to" => "a", "from" => "\x{430}" }, { "to" => "A", "from" => "\x{410}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "h", "from" => "\x{433}" }, { "to" => "H", "from" => "\x{413}" }, { "to" => "g", "from" => "\x{491}" }, { "to" => "G", "from" => "\x{490}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "\x{17e}", "from" => "\x{436}" }, { "to" => "\x{17d}", "from" => "\x{416}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "y", "from" => "\x{438}" }, { "to" => "Y", "from" => "\x{418}" }, { "to" => "i", "from" => "\x{456}" }, { "to" => "I", "from" => "\x{406}" }, { "to" => "\x{ef}", "from" => "\x{457}" }, { "to" => "\x{cf}", "from" => "\x{407}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "c", "from" => "\x{446}" }, { "to" => "C", "from" => "\x{426}" }, { "to" => "\x{10d}", "from" => "\x{447}" }, { "to" => "\x{10c}", "from" => "\x{427}" }, { "to" => "\x{161}", "from" => "\x{448}" }, { "to" => "\x{160}", "from" => "\x{428}" }, { "to" => "'", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "'", "from" => "\x{44c}" }, { "to" => "\x{2ee}", "from" => "\x{2bc}" } ], "reverse" => "true" }, "din_1460_bul" => { "desc" => "DIN 1460:1982, Cyrillic to Latin, Bulgarian", "name" => "DIN 1460 BUL", "id" => "din_1460_bul", "rules" => [ { "to" => "\x{160}T", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "\x{160}t", "from" => "\x{429}" }, { "to" => "\x{161}t", "from" => "\x{449}" }, { "to" => "JU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ju", "from" => "\x{42e}" }, { "to" => "ju", "from" => "\x{44e}" }, { "to" => "JA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ja", "from" => "\x{42f}" }, { "to" => "ja", "from" => "\x{44f}" }, { "to" => "CH", "from" => "\x{425}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{425}" }, { "to" => "ch", "from" => "\x{445}" }, { "to" => "J-", "from" => "\x{419}", "context" => { "before" => "[auAU\x{430}\x{443}\x{410}\x{423}]" } }, { "to" => "j-", "from" => "\x{439}", "context" => { "before" => "[au\x{430}\x{443}]" } }, { "to" => "\x{160}-", "from" => "\x{428}", "context" => { "before" => "[tT\x{442}\x{422}]" } }, { "to" => "\x{161}-", "from" => "\x{448}", "context" => { "before" => "[t\x{442}]" } }, { "to" => "A", "from" => "\x{410}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "\x{17d}", "from" => "\x{416}" }, { "to" => "\x{17e}", "from" => "\x{436}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "C", "from" => "\x{426}" }, { "to" => "c", "from" => "\x{446}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "\x{10c}", "from" => "\x{427}" }, { "to" => "\x{10d}", "from" => "\x{447}" }, { "to" => "\x{160}", "from" => "\x{428}" }, { "to" => "\x{161}", "from" => "\x{448}" }, { "to" => "\x{102}", "from" => "\x{42a}" }, { "to" => "\x{103}", "from" => "\x{44a}" }, { "to" => "'", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "'", "from" => "\x{44c}" } ], "reverse" => "true" }, "ala-lc_rus" => { "desc" => "ALA-LC:1997, Cyrillic to Latin, Russian", "name" => "ALA-LC RUS", "id" => "ala-lc_rus", "rules" => [ { "to" => "A", "from" => "\x{410}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "\x{cb}", "from" => "\x{401}" }, { "to" => "Zh", "from" => "\x{416}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "\x{12a}", "from" => "\x{406}" }, { "to" => "\x{12c}", "from" => "\x{419}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "Kh", "from" => "\x{425}" }, { "to" => "TS", "from" => "\x{426}" }, { "to" => "Ch", "from" => "\x{427}" }, { "to" => "Ch", "from" => "\x{427}" }, { "to" => "Sh", "from" => "\x{428}" }, { "to" => "Shch", "from" => "\x{429}" }, { "to" => "", "from" => "\x{42a}", "context" => { "before" => "\\b" } }, { "to" => "\x{2033}", "from" => "\x{42a}" }, { "to" => "Y", "from" => "\x{42b}" }, { "to" => "\x{2032}", "from" => "\x{42c}" }, { "to" => "IE", "from" => "\x{462}" }, { "to" => "\x{116}", "from" => "\x{42d}" }, { "to" => "IU", "from" => "\x{42e}" }, { "to" => "IA", "from" => "\x{42f}" }, { "to" => "\x{118}", "from" => "\x{466}" }, { "to" => "\x{1e1e}", "from" => "\x{4e8}" }, { "to" => "\x{1e8e}", "from" => "\x{474}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "\x{eb}", "from" => "\x{451}" }, { "to" => "zh", "from" => "\x{436}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "\x{12b}", "from" => "\x{456}" }, { "to" => "\x{12d}", "from" => "\x{439}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "kh", "from" => "\x{445}" }, { "to" => "ts", "from" => "\x{446}" }, { "to" => "ch", "from" => "\x{447}" }, { "to" => "sh", "from" => "\x{448}" }, { "to" => "shch", "from" => "\x{449}" }, { "to" => "", "from" => "\x{44a}", "context" => { "before" => "\\b" } }, { "to" => "\x{2033}", "from" => "\x{44a}" }, { "to" => "y", "from" => "\x{44b}" }, { "to" => "\x{2032}", "from" => "\x{44c}" }, { "to" => "ie", "from" => "\x{463}" }, { "to" => "\x{117}", "from" => "\x{44d}" }, { "to" => "iu", "from" => "\x{44e}" }, { "to" => "ia", "from" => "\x{44f}" }, { "to" => "\x{119}", "from" => "\x{467}" }, { "to" => "\x{1e1f}", "from" => "\x{4e9}" }, { "to" => "\x{1e8f}", "from" => "\x{475}" } ], "reverse" => "false" }, "iso/r_9" => { "desc" => "ISO/R 9:1954, Cyrillic to Latin", "name" => "ISO/R 9", "id" => "iso/r_9", "rules" => [ { "to" => "A", "from" => "\x{410}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "G\x{300}", "from" => "\x{490}" }, { "to" => "g\x{300}", "from" => "\x{491}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "\x{1f4}", "from" => "\x{403}" }, { "to" => "\x{1f5}", "from" => "\x{453}" }, { "to" => "\x{110}", "from" => "\x{402}" }, { "to" => "\x{111}", "from" => "\x{452}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "\x{cb}", "from" => "\x{401}" }, { "to" => "\x{eb}", "from" => "\x{451}" }, { "to" => "Je", "from" => "\x{404}" }, { "to" => "je", "from" => "\x{454}" }, { "to" => "\x{17d}", "from" => "\x{416}" }, { "to" => "\x{17e}", "from" => "\x{436}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Dz", "from" => "\x{405}" }, { "to" => "dz", "from" => "\x{455}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "I", "from" => "\x{406}" }, { "to" => "i", "from" => "\x{456}" }, { "to" => "Ji", "from" => "\x{407}" }, { "to" => "ji", "from" => "\x{457}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J", "from" => "\x{408}" }, { "to" => "j", "from" => "\x{458}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "LJ", "from" => "\x{409}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "Lj", "from" => "\x{409}" }, { "to" => "lj", "from" => "\x{459}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "NJ", "from" => "\x{40a}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "Nj", "from" => "\x{40a}" }, { "to" => "nj", "from" => "\x{45a}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "\x{1e30}", "from" => "\x{40c}" }, { "to" => "\x{1e31}", "from" => "\x{45c}" }, { "to" => "\x{106}", "from" => "\x{40b}" }, { "to" => "\x{107}", "from" => "\x{45b}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "\x{16c}", "from" => "\x{40e}" }, { "to" => "\x{16d}", "from" => "\x{45e}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "H", "from" => "\x{425}" }, { "to" => "h", "from" => "\x{445}" }, { "to" => "C", "from" => "\x{426}" }, { "to" => "c", "from" => "\x{446}" }, { "to" => "\x{10c}", "from" => "\x{427}" }, { "to" => "\x{10d}", "from" => "\x{447}" }, { "to" => "D\x{17d}", "from" => "\x{40f}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "D\x{17e}", "from" => "\x{40f}" }, { "to" => "d\x{17e}", "from" => "\x{45f}" }, { "to" => "\x{160}", "from" => "\x{428}" }, { "to" => "\x{161}", "from" => "\x{448}" }, { "to" => "\x{160}\x{10c}", "from" => "\x{429}" }, { "to" => "\x{161}\x{10d}", "from" => "\x{449}" }, { "to" => "Y", "from" => "\x{42a}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "y", "from" => "\x{44a}" }, { "to" => "Y", "from" => "\x{42b}" }, { "to" => "y", "from" => "\x{44b}" }, { "to" => "\x{2b9}", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "\x{2b9}", "from" => "\x{44c}" }, { "to" => "\x{11a}", "from" => "\x{462}" }, { "to" => "\x{11b}", "from" => "\x{463}" }, { "to" => "\x{c8}", "from" => "\x{42d}" }, { "to" => "\x{e8}", "from" => "\x{44d}" }, { "to" => "JU", "from" => "\x{42e}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "Ju", "from" => "\x{42e}" }, { "to" => "ju", "from" => "\x{44e}" }, { "to" => "JA", "from" => "\x{42f}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "Ja", "from" => "\x{42f}" }, { "to" => "ja", "from" => "\x{44f}" }, { "to" => "\x{226}", "from" => "\x{46a}" }, { "to" => "\x{227}", "from" => "\x{46b}" }, { "to" => "\x{1e1e}", "from" => "\x{472}" }, { "to" => "\x{1e1f}", "from" => "\x{473}" }, { "to" => "\x{1e8e}", "from" => "\x{474}" }, { "to" => "\x{1e8f}", "from" => "\x{475}" } ], "reverse" => "true" }, "common_ara" => { "desc" => "Common Romanization of Arabic", "name" => "Common ARA", "id" => "common_ara", "rules" => [ { "to" => "th", "from" => "\x{62b}" }, { "to" => "kh", "from" => "\x{62e}" }, { "to" => "sh", "from" => "\x{634}" }, { "to" => "gh", "from" => "\x{63a}" }, { "to" => "'e", "from" => "\x{639}" }, { "to" => "'e", "from" => "\x{626}" }, { "to" => "'e", "from" => "\x{624}" }, { "to" => "a", "from" => "\x{627}" }, { "to" => "a", "from" => "\x{623}" }, { "to" => "a", "from" => "\x{622}" }, { "to" => "a", "from" => "\x{649}" }, { "to" => "e", "from" => "\x{625}" }, { "to" => "b", "from" => "\x{628}" }, { "to" => "t", "from" => "\x{62a}" }, { "to" => "j", "from" => "\x{62c}" }, { "to" => "h", "from" => "\x{62d}" }, { "to" => "d", "from" => "\x{62f}" }, { "to" => "d", "from" => "\x{630}" }, { "to" => "d", "from" => "\x{636}" }, { "to" => "r", "from" => "\x{631}" }, { "to" => "z", "from" => "\x{632}" }, { "to" => "z", "from" => "\x{638}" }, { "to" => "s", "from" => "\x{633}" }, { "to" => "s", "from" => "\x{635}" }, { "to" => "t", "from" => "\x{637}" }, { "to" => "f", "from" => "\x{641}" }, { "to" => "q", "from" => "\x{642}" }, { "to" => "k", "from" => "\x{643}" }, { "to" => "l", "from" => "\x{644}" }, { "to" => "m", "from" => "\x{645}" }, { "to" => "n", "from" => "\x{646}" }, { "to" => "h", "from" => "\x{647}" }, { "to" => "h", "from" => "\x{629}" }, { "to" => "w", "from" => "\x{648}" }, { "to" => "y", "from" => "\x{64a}" }, { "to" => "'", "from" => "\x{621}" }, { "to" => "?", "from" => "\x{61f}" }, { "to" => ",", "from" => "\x{60c}" }, { "to" => "", "from" => "\x{640}" }, { "to" => "", "from" => "\x{64b}" }, { "to" => "", "from" => "\x{64c}" }, { "to" => "", "from" => "\x{64d}" }, { "to" => "", "from" => "\x{64e}" }, { "to" => "", "from" => "\x{64f}" }, { "to" => "", "from" => "\x{650}" }, { "to" => "", "from" => "\x{651}" }, { "to" => "", "from" => "\x{652}" }, { "to" => "", "from" => "\x{200f}" } ], "reverse" => "false" }, "common_deu" => { "desc" => "German umlauts", "name" => "Common DEU", "id" => "common_deu", "rules" => [ { "to" => "Ae", "from" => "\x{c4}" }, { "to" => "ae", "from" => "\x{e4}" }, { "to" => "Oe", "from" => "\x{d6}" }, { "to" => "oe", "from" => "\x{f6}" }, { "to" => "Ue", "from" => "\x{dc}" }, { "to" => "ue", "from" => "\x{fc}" }, { "to" => "SS", "from" => "\x{df}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "ss", "from" => "\x{df}" } ], "reverse" => "false" }, "gost_7.79_rus" => { "desc" => "GOST 7.79:2000, Cyrillic to Latin, Russian", "name" => "GOST 7.79 RUS", "id" => "gost_7.79_rus", "rules" => [ { "to" => "c", "from" => "\x{446}", "context" => { "before" => "[iejy\x{438}\x{435}\x{439}\x{44b}\x{44e}\x{44f}\x{44d}\x{451}]" } }, { "to" => "C", "from" => "\x{426}", "context" => { "before" => "[IEJY\x{418}\x{415}\x{419}\x{42b}\x{42e}\x{42f}\x{401}\x{42d}]" } }, { "to" => "cz", "from" => "\x{446}" }, { "to" => "CZ", "from" => "\x{426}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Cz", "from" => "\x{426}" }, { "to" => "shh", "from" => "\x{449}" }, { "to" => "SHH", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Shh", "from" => "\x{429}" }, { "to" => "yo", "from" => "\x{451}" }, { "to" => "YO", "from" => "\x{401}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yo", "from" => "\x{401}" }, { "to" => "zh", "from" => "\x{436}" }, { "to" => "ZH", "from" => "\x{416}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Zh", "from" => "\x{416}" }, { "to" => "ch", "from" => "\x{447}" }, { "to" => "CH", "from" => "\x{427}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{427}" }, { "to" => "sh", "from" => "\x{448}" }, { "to" => "SH", "from" => "\x{428}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Sh", "from" => "\x{428}" }, { "to" => "yu", "from" => "\x{44e}" }, { "to" => "YU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yu", "from" => "\x{42e}" }, { "to" => "ya", "from" => "\x{44f}" }, { "to" => "YA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ya", "from" => "\x{42f}" }, { "to" => "``", "from" => "\x{44a}" }, { "to" => "``", "from" => "\x{42a}", "context" => { "after" => "\\p{IsUpper}", "before" => "([^\\p{IsWord}]|\$)" } }, { "to" => "y'", "from" => "\x{44b}" }, { "to" => "Y'", "from" => "\x{42b}" }, { "to" => "e`", "from" => "\x{44d}" }, { "to" => "E`", "from" => "\x{42d}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "A", "from" => "\x{410}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "i", "from" => "\x{438}" }, { "to" => "I", "from" => "\x{418}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "x", "from" => "\x{445}" }, { "to" => "X", "from" => "\x{425}" }, { "to" => "`", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "`", "from" => "\x{44c}" }, { "to" => "#", "from" => "\x{2116}" } ], "reverse" => "true" }, "greeklish" => { "desc" => "Greeklish (Phonetic), Greek to Latin", "name" => "Greeklish", "id" => "greeklish", "rules" => [ { "to" => "i", "from" => "\x{3b5}\x{3b9}" }, { "to" => "i", "from" => "\x{3ad}\x{3b9}" }, { "to" => "i", "from" => "\x{3b5}\x{3af}" }, { "to" => "ef", "from" => "\x{3b5}\x{3c5}" }, { "to" => "ef", "from" => "\x{3ad}\x{3c5}" }, { "to" => "ef", "from" => "\x{3b5}\x{3cd}" }, { "to" => "u", "from" => "\x{3bf}\x{3c5}" }, { "to" => "u", "from" => "\x{3bf}\x{3cd}" }, { "to" => "u", "from" => "\x{3cc}\x{3c5}" }, { "to" => "A", "from" => "\x{391}" }, { "to" => "a", "from" => "\x{3b1}" }, { "to" => "A", "from" => "\x{386}" }, { "to" => "a", "from" => "\x{3ac}" }, { "to" => "V", "from" => "\x{392}" }, { "to" => "v", "from" => "\x{3b2}" }, { "to" => "Y", "from" => "\x{393}" }, { "to" => "y", "from" => "\x{3b3}" }, { "to" => "D", "from" => "\x{394}" }, { "to" => "d", "from" => "\x{3b4}" }, { "to" => "E", "from" => "\x{395}" }, { "to" => "e", "from" => "\x{3b5}" }, { "to" => "E", "from" => "\x{388}" }, { "to" => "e", "from" => "\x{3ad}" }, { "to" => "Z", "from" => "\x{396}" }, { "to" => "z", "from" => "\x{3b6}" }, { "to" => "I", "from" => "\x{397}" }, { "to" => "i", "from" => "\x{3b7}" }, { "to" => "I", "from" => "\x{389}" }, { "to" => "i", "from" => "\x{3ae}" }, { "to" => "Th", "from" => "\x{398}" }, { "to" => "th", "from" => "\x{3b8}" }, { "to" => "I", "from" => "\x{399}" }, { "to" => "i", "from" => "\x{3b9}" }, { "to" => "I", "from" => "\x{38a}" }, { "to" => "i", "from" => "\x{3af}" }, { "to" => "I", "from" => "\x{3aa}" }, { "to" => "i", "from" => "\x{3ca}" }, { "to" => "i", "from" => "\x{390}" }, { "to" => "K", "from" => "\x{39a}" }, { "to" => "k", "from" => "\x{3ba}" }, { "to" => "L", "from" => "\x{39b}" }, { "to" => "l", "from" => "\x{3bb}" }, { "to" => "M", "from" => "\x{39c}" }, { "to" => "m", "from" => "\x{3bc}" }, { "to" => "N", "from" => "\x{39d}" }, { "to" => "n", "from" => "\x{3bd}" }, { "to" => "X", "from" => "\x{39e}" }, { "to" => "x", "from" => "\x{3be}" }, { "to" => "O", "from" => "\x{39f}" }, { "to" => "o", "from" => "\x{3bf}" }, { "to" => "O", "from" => "\x{38c}" }, { "to" => "o", "from" => "\x{3cc}" }, { "to" => "P", "from" => "\x{3a0}" }, { "to" => "p", "from" => "\x{3c0}" }, { "to" => "R", "from" => "\x{3a1}" }, { "to" => "r", "from" => "\x{3c1}" }, { "to" => "S", "from" => "\x{3a3}" }, { "to" => "s", "from" => "\x{3c3}" }, { "to" => "T", "from" => "\x{3a4}" }, { "to" => "t", "from" => "\x{3c4}" }, { "to" => "I", "from" => "\x{3a5}" }, { "to" => "i", "from" => "\x{3c5}" }, { "to" => "I", "from" => "\x{38e}" }, { "to" => "i", "from" => "\x{3cd}" }, { "to" => "I", "from" => "\x{3ab}" }, { "to" => "i", "from" => "\x{3cb}" }, { "to" => "i", "from" => "\x{3b0}" }, { "to" => "F", "from" => "\x{3a6}" }, { "to" => "f", "from" => "\x{3c6}" }, { "to" => "H", "from" => "\x{3a7}" }, { "to" => "h", "from" => "\x{3c7}" }, { "to" => "Ps", "from" => "\x{3a8}" }, { "to" => "ps", "from" => "\x{3c8}" }, { "to" => "O", "from" => "\x{3a9}" }, { "to" => "o", "from" => "\x{3c9}" }, { "to" => "O", "from" => "\x{38f}" }, { "to" => "o", "from" => "\x{3ce}" }, { "to" => "s", "from" => "\x{3c2}" }, { "to" => "?", "from" => "\x{37e}", "context" => { "after" => "\\b" } }, { "to" => "?", "from" => ";", "context" => { "after" => "\\b" } }, { "to" => ";", "from" => "\x{b7}" }, { "to" => "-", "from" => "\x{203f}" }, { "to" => "", "from" => "\x{384}" }, { "to" => "", "from" => "\x{385}" }, { "to" => "", "from" => "\x{342}" }, { "to" => "", "from" => "\x{343}" }, { "to" => "", "from" => "\x{313}" }, { "to" => "", "from" => "\x{314}" }, { "to" => "", "from" => "\x{345}" }, { "to" => "", "from" => "\x{345}" } ], "reverse" => "false" }, "gost_7.79_ukr" => { "desc" => "GOST 7.79:2000, Cyrillic to Latin, Ukrainian", "name" => "GOST 7.79 UKR", "id" => "gost_7.79_ukr", "rules" => [ { "to" => "c", "from" => "\x{446}", "context" => { "before" => "[iejy\x{438}\x{435}\x{439}\x{44e}\x{44f}\x{454}\x{456}\x{457}]" } }, { "to" => "C", "from" => "\x{426}", "context" => { "before" => "[IEJY\x{418}\x{415}\x{419}\x{42e}\x{42f}\x{404}\x{406}\x{407}]" } }, { "to" => "cz", "from" => "\x{446}" }, { "to" => "CZ", "from" => "\x{426}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Cz", "from" => "\x{426}" }, { "to" => "shh", "from" => "\x{449}" }, { "to" => "SHH", "from" => "\x{429}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Shh", "from" => "\x{429}" }, { "to" => "g`", "from" => "\x{491}" }, { "to" => "G`", "from" => "\x{490}" }, { "to" => "ye", "from" => "\x{454}" }, { "to" => "YE", "from" => "\x{404}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ye", "from" => "\x{404}" }, { "to" => "zh", "from" => "\x{436}" }, { "to" => "ZH", "from" => "\x{416}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Zh", "from" => "\x{416}" }, { "to" => "y`", "from" => "\x{438}" }, { "to" => "Y`", "from" => "\x{418}" }, { "to" => "yi", "from" => "\x{457}" }, { "to" => "YI", "from" => "\x{407}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yi", "from" => "\x{407}" }, { "to" => "ch", "from" => "\x{447}" }, { "to" => "CH", "from" => "\x{427}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ch", "from" => "\x{427}" }, { "to" => "sh", "from" => "\x{448}" }, { "to" => "SH", "from" => "\x{428}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Sh", "from" => "\x{428}" }, { "to" => "yu", "from" => "\x{44e}" }, { "to" => "YU", "from" => "\x{42e}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Yu", "from" => "\x{42e}" }, { "to" => "ya", "from" => "\x{44f}" }, { "to" => "YA", "from" => "\x{42f}", "context" => { "after" => "[\\p{IsUpper}\\p{IsSpace}]", "before" => "[\\p{IsUpper}\\p{IsSpace}]" } }, { "to" => "Ya", "from" => "\x{42f}" }, { "to" => "a", "from" => "\x{430}" }, { "to" => "A", "from" => "\x{410}" }, { "to" => "b", "from" => "\x{431}" }, { "to" => "B", "from" => "\x{411}" }, { "to" => "v", "from" => "\x{432}" }, { "to" => "V", "from" => "\x{412}" }, { "to" => "g", "from" => "\x{433}" }, { "to" => "G", "from" => "\x{413}" }, { "to" => "d", "from" => "\x{434}" }, { "to" => "D", "from" => "\x{414}" }, { "to" => "e", "from" => "\x{435}" }, { "to" => "E", "from" => "\x{415}" }, { "to" => "z", "from" => "\x{437}" }, { "to" => "Z", "from" => "\x{417}" }, { "to" => "j", "from" => "\x{439}" }, { "to" => "J", "from" => "\x{419}" }, { "to" => "i", "from" => "\x{456}" }, { "to" => "I", "from" => "\x{406}" }, { "to" => "k", "from" => "\x{43a}" }, { "to" => "K", "from" => "\x{41a}" }, { "to" => "l", "from" => "\x{43b}" }, { "to" => "L", "from" => "\x{41b}" }, { "to" => "m", "from" => "\x{43c}" }, { "to" => "M", "from" => "\x{41c}" }, { "to" => "n", "from" => "\x{43d}" }, { "to" => "N", "from" => "\x{41d}" }, { "to" => "o", "from" => "\x{43e}" }, { "to" => "O", "from" => "\x{41e}" }, { "to" => "p", "from" => "\x{43f}" }, { "to" => "P", "from" => "\x{41f}" }, { "to" => "r", "from" => "\x{440}" }, { "to" => "R", "from" => "\x{420}" }, { "to" => "s", "from" => "\x{441}" }, { "to" => "S", "from" => "\x{421}" }, { "to" => "t", "from" => "\x{442}" }, { "to" => "T", "from" => "\x{422}" }, { "to" => "u", "from" => "\x{443}" }, { "to" => "U", "from" => "\x{423}" }, { "to" => "f", "from" => "\x{444}" }, { "to" => "F", "from" => "\x{424}" }, { "to" => "x", "from" => "\x{445}" }, { "to" => "X", "from" => "\x{425}" }, { "to" => "`", "from" => "\x{42c}", "context" => { "after" => "\\p{IsUpper}" } }, { "to" => "`", "from" => "\x{44c}" }, { "to" => "#", "from" => "\x{2116}" } ], "reverse" => "true" } ); Lingua-Translit-0.24/xml/common_slk.xml0000644000175000017500000001460211727351000017426 0ustar alinkealinke Common SLK Slovak without diacritics false Á A á a Ä A ä a Č C č c Ď D ď d d É E é e Í I í i Ĺ L ĺ l Ľ L ľ l L l Ň N ň n Ó O ó o Ŕ R ŕ r Š S š s Ť T ť t t Ú U ú u Ý Y ý y Ž Z ž z Ô O ô o DZ DZ Dz Dz dz dz DŽ DZ Dž Dz dž dz Lingua-Translit-0.24/xml/ala-lc_rus.xml0000644000175000017500000002165111727351000017311 0ustar alinkealinke ALA-LC RUS ALA-LC:1997, Cyrillic to Latin, Russian false А A Б B В V Г G Д D Е E Ё Ë Ж Zh З Z И I І Ī Й Ĭ К K Л L М M Н N О O П P Р R С S Т T У U Ф F Х Kh Ц TS Ч Ch Ч Ch Ш Sh Щ Shch Ъ \b Ъ Ы Y Ь Ѣ IE Э Ė Ю IU Я IA Ѧ Ę Ө Ѵ а a б b в v г g д d е e ё ë ж zh з z и i і ī й ĭ к k л l м m н n о o п p р r с s т t у u ф f х kh ц ts ч ch ш sh щ shch ъ \b ъ ы y ь ѣ ie э ė ю iu я ia ѧ ę ө ѵ Lingua-Translit-0.24/xml/Makefile0000644000175000017500000000173112624540540016210 0ustar alinkealinkeTARGET := tables.dump DUMP := perl xml2dump.pl -v CHECK := xmllint --noout --postvalid INDENT := xmlindent -i 4 # List of stable and supported transliteration tables TABLES := din_31634.xml \ din_1460_bul.xml din_1460_rus.xml din_1460_ukr.xml \ iso_843.xml iso_9.xml iso-r_9.xml \ iso_8859-16_ron.xml \ streamlined_system_bul.xml \ greeklish.xml \ common_deu.xml common_ron.xml common_ces.xml \ common_slk.xml common_slv.xml common_pol.xml \ common_ara.xml \ gost_7-79_rus_old.xml gost_7-79_rus.xml \ gost_7-79_ukr.xml \ ala-lc_rus.xml all: clean tables tables: $(DUMP) -o $(TARGET) $(TABLES) all-tables: $(DUMP) -o $(TARGET) $(filter-out template.xml,$(wildcard *.xml)) check: $(TABLES) @for xml in $^; do \ echo "Checking $$xml..."; \ $(CHECK) $$xml; \ done indent: $(TABLES) template.xml @for xml in $^; do \ $(INDENT) $$xml | perl -pe 's/[\t ]*$$//' > $$xml.$$$$; \ mv $$xml.$$$$ $$xml; \ done clean: -rm -f $(TARGET) Lingua-Translit-0.24/xml/iso_9.xml0000644000175000017500000006704211727351000016315 0ustar alinkealinke ISO 9 ISO 9:1995, Cyrillic to Latin true А A а a Ӑ Ă ӑ ă Ӓ Ä ӓ ä Ә ә Б B б b В V в v Г G г g Ґ ґ Ҕ Ğ ҕ ğ Ғ Ġ ғ ġ Д D д d Ђ Đ ђ đ Ѓ Ǵ ѓ ǵ Е E е e Ё Ë ё ë Ӗ Ĕ ӗ ĕ Є Ê є ê Ҽ ҽ Ҿ Ç̆ ҿ ç̆ Ж Ž ж ž Ӂ ӂ Ӝ ӝ Җ Ž̦ җ ž̧ З Z з z Ӟ ӟ Ѕ ѕ Ӡ Ź ӡ ź И I и i Ӥ Î ӥ î І Ì і ì Ї Ï ї ï Й J й j Ј ј ǰ К K к k Қ Ķ қ ķ Ҟ ҟ Л L л l Љ љ М M м m Н N н n Њ њ Ҥ ҥ Ң ң О O о o Ӧ Ö ӧ ö Ө Ô ө ô П P п p Ҧ ҧ Р R р r С S с s Ҫ Ç ҫ ç Т T т t Ҭ Ţ ҭ ţ Ћ Ć ћ Ű Ќ ќ У U у u У́ Ú у́ ú Ў Ŭ ў ŭ Ӱ Ü ӱ ü Ӳ Ű ӳ ű Ү Ù ү ù Ф F ф f Х H х h Ҳ ҳ Һ һ Ц C ц c Ҵ ҵ Ч Č ч č Ӵ ӵ Ӌ Ç ӌ ç Џ џ Ш Š ш š Щ Ŝ щ ŝ Ъ ʺ \p{IsUpper} ъ ʺ ʼ Ы Y ы y Ӹ Ÿ ӹ ÿ Ь ʹ \p{IsUpper} ь ʹ Э È э è Ю Û ю û Я Â я â Ҍ Ě ҍ ě Ѫ Ǎ ѫ ǎ Ѳ ѳ Ѵ ѵ Ҩ Ò ҩ ò Ӏ Lingua-Translit-0.24/xml/common_slv.xml0000644000175000017500000000276311727351000017446 0ustar alinkealinke Common SLV Slovenian without diacritics false Č C č c Š S š s Ž Z ž z Lingua-Translit-0.24/xml/gost_7-79_ukr.xml0000644000175000017500000003410311727351000017603 0ustar alinkealinke GOST 7.79 UKR GOST 7.79:2000, Cyrillic to Latin, Ukrainian true ц c [iejyиейюяєії] Ц C [IEJYИЕЙЮЯЄІЇ] ц cz Ц CZ [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ц Cz щ shh Щ SHH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Shh ґ g` Ґ G` є ye Є YE [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Є Ye ж zh Ж ZH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ж Zh и y` И Y` ї yi Ї YI [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ї Yi ч ch Ч CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ч Ch ш sh Ш SH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ш Sh ю yu Ю YU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Yu я ya Я YA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ya а a А A б b Б B в v В V г g Г G д d Д D е e Е E з z З Z й j Й J і i І I к k К K л l Л L м m М M н n Н N о o О O п p П P р r Р R с s С S т t Т T у u У U ф f Ф F х x Х X Ь ` \p{IsUpper} ь ` # Lingua-Translit-0.24/xml/streamlined_system_bul.xml0000644000175000017500000002221411727351000022040 0ustar alinkealinke Streamlined System BUL The Streamlined System: 2006, Cyrillic to Latin, Bulgarian false Щ SHT [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Sht щ sht Ж ZH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ж Zh ж zh Ц TS [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ц Ts ц ts Ч CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ч Ch ч ch Ш SH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ш Sh ш sh Ю YU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Yu ю yu Я YA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ya я ya А A а a Б B б b В V в v Г G г g Д D д d Е E е e З Z з z И I и i Й Y й y К K к k Л L л l М M м m Н N н n О O о o П P п p Р R р r С S с s Т T т t У U у u Ф F ф f Х H х h Ъ A ъ a Ь Y ь y Lingua-Translit-0.24/xml/iso-r_9.xml0000644000175000017500000004641312546667167016603 0ustar alinkealinke ISO/R 9 ISO/R 9:1954, Cyrillic to Latin true А A а a Б B б b В V в v Г G г g Ґ ґ Д D д d Ѓ Ǵ ѓ ǵ Ђ Đ ђ đ Е E е e Ё Ë ё ë Є Je є je Ж Ž ж ž З Z з z Ѕ Dz ѕ dz И I и i І I і i Ї Ji ї ji Й J й j Ј J ј j К K к k Л L л l Љ LJ \p{IsUpper} Љ Lj љ lj М M м m Н N н n Њ NJ \p{IsUpper} Њ Nj њ nj О O о o П P п p Р R р r С S с s Т T т t Ќ ќ Ћ Ć ћ ć У U у u Ў Ŭ ў ŭ Ф F ф f Х H х h Ц C ц c Ч Č ч č Џ \p{IsUpper} Џ џ Ш Š ш š Щ ŠČ щ šč Ъ Y \p{IsUpper} ъ y Ы Y ы y Ь ʹ \p{IsUpper} ь ʹ Ѣ Ě ѣ ě Э È э è Ю JU \p{IsUpper} Ю Ju ю ju Я JA \p{IsUpper} Я Ja я ja Ѫ Ȧ ѫ ȧ Ѳ ѳ Ѵ ѵ Lingua-Translit-0.24/xml/gost_7-79_rus.xml0000644000175000017500000003330411727351000017615 0ustar alinkealinke GOST 7.79 RUS GOST 7.79:2000, Cyrillic to Latin, Russian true ц c [iejyиейыюяэё] Ц C [IEJYИЕЙЫЮЯЁЭ] ц cz Ц CZ [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ц Cz щ shh Щ SHH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Shh ё yo Ё YO [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ё Yo ж zh Ж ZH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ж Zh ч ch Ч CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ч Ch ш sh Ш SH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ш Sh ю yu Ю YU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Yu я ya Я YA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ya ъ `` Ъ `` ([^\p{IsWord}]|$) \p{IsUpper} ы y' Ы Y' э e` Э E` а a А A б b Б B в v В V г g Г G д d Д D е e Е E з z З Z и i И I й j Й J к k К K л l Л L м m М M н n Н N о o О O п p П P р r Р R с s С S т t Т T у u У U ф f Ф F х x Х X Ь ` \p{IsUpper} ь ` # Lingua-Translit-0.24/xml/din_1460_bul.xml0000644000175000017500000002743511727351000017363 0ustar alinkealinke DIN 1460 BUL DIN 1460:1982, Cyrillic to Latin, Bulgarian true Щ ŠT [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Št щ št Ю JU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Ju ю ju Я JA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ja я ja Х CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Х Ch х ch Й J- [auAUауАУ] й j- [auау] Ш Š- [tTтТ] ш š- [tт] А A а a Б B б b В V в v Г G г g Д D д d Е E е e Ж Ž ж ž З Z з z И I и i Й J й j К K к k Л L л l М M м m Н N н n О O о o П P п p Р R р r Т T т t У U у u Ф F ф f Ц C ц c С S с s Ч Č ч č Ш Š ш š Ъ Ă ъ ă Ь ' \p{IsUpper} ь ' Lingua-Translit-0.24/xml/common_ces.xml0000644000175000017500000001130411727351000017403 0ustar alinkealinke Common CES Czech without diacritics false Á A á a Č C č c Ď D ď d d É E é e Ě E ě e Í I í i Ň N ň n Ó O ó o Ř R ř r Š S š s Ť T ť t ť; t Ú U ú u Ů U ů u Ý Y ý y Ž Z ž z Lingua-Translit-0.24/xml/din_31634.xml0000644000175000017500000003453711727351000016610 0ustar alinkealinke DIN 31634 DIN 31634:1982, Greek to Latin false ΑΥ AU αυ au Αυ Au ΑΫ αϋ aÿ ΓΓ NG γγ ng Γγ Ng ΓΚ GK \b γκ gk \b Γκ Gk \b ΓΚ NK γκ nk Γκ Nk ΓΞ NX γξ nx Γξ Nx ΓΧ nch γχ nch Γχ Nch ΕΥ EU ευ eu Ευ Eu ΗΥ ĒU ηυ ēu Ηυ Ēu ΟΥ U ου u Ου U ΟΫ οϋ oÿ Α A α a Β B β b Γ G γ g Δ D δ d Ε E ε e Ζ Z ζ z Η Ē η ē Θ Th θ th ϑ th Ι I ι i Κ K κ k Λ L λ l Μ M μ m Ν N ν n Ξ X ξ x Ο O ο o Π P π p Ρ R ρ r Σ S σ s ς s \b Τ T τ t Υ Y υ y Φ Ph φ ph ϕ ph Χ Ch χ ch Ψ Ps ψ ps Ω Ō ω ō Ά A ά a Έ E έ e Ή Ē ή ē Ί I ί i Ϊ I ϊ i ΐ i Ό O ό o Ύ Y ύ y Ϋ Y ϋ y ΰ y Ώ Ō ώ ō ; ? ; ? · ; ΄ ΅ ͂ ̓ ̓ ̔ ͅ ͅ Lingua-Translit-0.24/xml/template.xml0000644000175000017500000000227712422367262017117 0ustar alinkealinke X Y ä ae ä ae A B x y Lingua-Translit-0.24/xml/gost_7-79_rus_old.xml0000644000175000017500000004123111727351000020451 0ustar alinkealinke GOST 7.79 RUS OLD GOST 7.79:2000, Cyrillic to Latin with support for Old Russian (pre 1918), Russian false і i' [^аеёиоуыэюяэёѣѵі] І I' [^АЕЁИОУЫЭЮЯЁЭѢѴІ] і i І I ц c [iejyиейыюя] Ц C [IEJYИЕЙЫЮЯ] ц cz Ц CZ [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ц Cz а a А A б b Б B в v В V г g Г G д d Д D е e Е E ё yo Ё YO [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ё Yo ж zh Ж ZH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ж Zh з z З Z и i И I й j Й J к k К K л l Л L м m М M н n Н N о o О O п p П P р r Р R с s С S т t Т T у u У U ф f Ф F х x Х X ч ch Ч CH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ч Ch ш sh Ш SH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ш Sh щ shh Щ SHH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Щ Shh ъ `` Ъ `` ы y' Ы Y' Ь ` ь ` э e` Э E` ю yu Ю YU [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ю Yu я ya Я YA [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Я Ya ѣ ye Ѣ YE [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ѣ Ye ѳ fh Ѳ FH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ѳ Fh ѵ yh Ѵ YH [\p{IsUpper}\p{IsSpace}] [\p{IsUpper}\p{IsSpace}] Ѵ Yh #