# -----------------------------------------------------------------------------
# Unicode::Japanese
# Unicode::Japanese::PurePerl
# -----------------------------------------------------------------------------
# $Id: Japanese_stub.pm 41491 2008-02-15 07:21:13Z hio $
# -----------------------------------------------------------------------------
package Unicode::Japanese::PurePerl;
package Unicode::Japanese;

use strict;
use vars qw($VERSION $XS_VERSION $PurePerl $xs_loaderror);
$VERSION    = '0.49';
$XS_VERSION = $VERSION;
$VERSION    = eval $VERSION;

# `use bytes' and `use Encode' if we are on perl-5.8.0 or later.
if( $] >= 5.008 )
{
  my $evalerr;
  {
    local($SIG{__DIE__}) = 'DEFAULT';
    local($@);
    eval 'use bytes;use Encode;';
    $evalerr = $@;
  }
  $evalerr and CORE::die($evalerr);
}

# -----------------------------------------------------------------------------
# import
#
sub import
{
  my $pkg = shift;
  my ($callerpkg) = caller;
  my %exp =
  (
    '&unijp' => \&unijp,
  );
  my @na;
  my @add = (grep{$_ eq ':all'} @_) ? keys %exp : ();
  foreach(@_, @add)
  {
    $_ eq 'PurePerl' and $PurePerl=1, next;
    if( $exp{$_} || $exp{'&'.$_} )
    {
      no strict 'refs';
      (my $name = $_) =~ s/^\W//;
      my $obj = $exp{$_} || $exp{'&'.$_};
      *{$callerpkg.'::'.$name} = $obj;
    }elsif( $_ eq 'no_I18N_Japanese' )
    {
      $^H &= ~0x0f00_0000;
      package Unicode::Japanese::PurePerl;
      $^H &= ~0x0f00_0000;
      package Unicode::Japanese;
      next;
    }
    push(@na,$_);
  }
  if( @na )
  {
    #use Carp;
    #croak("invalid parameter (".join(',',@na).")");
  }
}

# -----------------------------------------------------------------------------
# DESTROY
#
sub DESTROY
{
}

# -----------------------------------------------------------------------------
# load_xs.
#   loading xs-subs.
#   this method is called from new (through new=>_init_table=>load_xs)
#   
sub load_xs
{
  #print STDERR "load_xs\n";
  if( $PurePerl )
  {
    #print STDERR "PurePerl mode\n";
    $xs_loaderror = 'disabled';
    return;
  }
  #print STDERR "XS mode\n";
  
  my $use_xs;
  LoadXS:
  {
    
    #print STDERR "* * bootstrap...\n";
    eval q
    {
      use strict;
      require DynaLoader;
      use vars qw(@ISA);
      @ISA = qw(DynaLoader);
      local($SIG{__DIE__}) = 'DEFAULT';
      Unicode::Japanese->bootstrap($XS_VERSION);
    };
    #print STDERR "* * the trial has been done.\n";
    #undef @ISA;
    if( $@ )
    {
      #print STDERR "failed.\n";
      #print STDERR "$@\n";
      $use_xs = 0;
      $xs_loaderror = $@;
      undef $@;
      last LoadXS;
    }
    #print STDERR "succeeded.\n";
    $use_xs = 1;
    eval q
    {
      #print STDERR "overriding _s2u,_u2s\n";
      do_memmap();
      #print STDERR "memmap done\n";
      END{ do_memunmap(); }
      #print STDERR "binding xsubs has been done.\n";
    };
    if( $@ )
    {
      #print STDERR "error in the last part of operation to load XS.\n";
      $xs_loaderror = $@;
      CORE::die($@);
    }

    #print STDERR "done.\n";
  }

  if( $@ )
  {
    $xs_loaderror = $@;
    CORE::die("Cannot load Unicode::Japanese of neither XS nor PurePerl side\n$@");
  }
  if( !$use_xs )
  {
    #print STDERR "no xs.\n";
    eval q
    {
      sub do_memmap($){}
      sub do_memunmap($){}
    };
  }
  $xs_loaderror = '' if( !defined($xs_loaderror) );
  #print STDERR "load_xs done.\n";
}

# -----------------------------------------------------------------------------
# Unicode::Japanese->new();
# cache for char conversion.
# 2bytes.
#  JIS C 6226-1979  \e$@
#  JIS X 0208-1983  \e$B
#  JIS X 0208-1990  \e&@\e$B
#  JIS X 0212-1990  \e$(D
# 1byte.
#  JIS ROMAN  \e(J
#  JIS ROMAN  \e(H
#  ASCII      \e(B
#  JIS KANA   \e(I
# -----------------------------------------------------------------------------
# $unijp = Unicode::Japanese->new([$str,[$icode]]);
# 
sub new
{
  my $pkg = shift;
  my $this = {};

  if( defined($pkg) )
  {
    bless $this, $pkg;
  $this->_init_table;
  }else
  {
    bless $this;
  $this->_init_table;
  }
  
  @_ and $this->set(@_);
  
  $this;
}


# -----------------------------------------------------------------------------
# _got_undefined_subroutine
#   die with message 'undefiend subroutine'.
# 
sub _got_undefined_subroutine
{
  my $subname = pop;
  CORE::die "Undefined subroutine \&$subname got called.\n";
}

# -----------------------------------------------------------------------------
# AUTOLOAD
#   AUTOLOAD of Unicode::Japanese.
#   imports PurePerl methods.
# 
AUTOLOAD
{
  # load pure perl subs.
  use vars qw($AUTOLOAD);

  #print "AUTOLOAD... $AUTOLOAD\n";

  if(!defined($Unicode::Japanese::xs_loaderror) )
  {
    Unicode::Japanese::PurePerl::_init_table();
    if( defined(&$AUTOLOAD) )
    {
      no strict 'refs';
      goto &$AUTOLOAD;
    }
  }

  my ($pkg, $subname) = do{
    local($1, $2);
    $AUTOLOAD =~ /^(.*)::(\w+)$/
  } or got_undefined_subroutine($AUTOLOAD);

  my $pppkg     = $pkg . '::PurePerl';
  my $ppsubname = $pkg . '::PurePerl::' . $subname;
  if( !defined(&$ppsubname) )
  {
    my $save = $@;
    my @BAK = @_;
    $pppkg->_loadsub($ppsubname);
    $@ = $save;
    @_ = @BAK;
  }

  my $sub = \&$ppsubname;
  {
    no strict  'refs';
    *$AUTOLOAD = $sub; # copy.
  }
  goto &$sub;
}

# -----------------------------------------------------------------------------
# Unicode::Japanese::PurePerl
# -----------------------------------------------------------------------------
package Unicode::Japanese::PurePerl;


use strict;
use vars qw(%CHARCODE %ESC %RE @CHARSET_LIST);

use vars qw(@J2S @S2J @S2E @E2S @U2T %T2U %S2U %U2S %SA2U1 %U2SA1 %SA2U2 %U2SA2);

%CHARCODE = (
	     UNDEF_EUC  =>     "\xa2\xae",
	     UNDEF_SJIS =>     "\x81\xac",
	     UNDEF_JIS  =>     "\xa2\xf7",
	     UNDEF_UNICODE  => "\x20\x20",
	 );

%ESC =  (
	 JIS_0208      => "\e\$B",
	 JIS_0212      => "\e\$(D",
	 ASC           => "\e\(B",
	 KANA          => "\e\(I",
	 E_JSKY_START  => "\e\$",
	 E_JSKY_END    => "\x0f",
	 );

%RE =
    (
     ASCII     => '[\x00-\x7f]',
     EUC_0212  => '\x8f[\xa1-\xfe][\xa1-\xfe]',
     EUC_C     => '[\xa1-\xfe][\xa1-\xfe]',
     EUC_KANA  => '\x8e[\xa1-\xdf]',
     JIS_0208  => '\e\$\@|\e\$B|\e&\@\e\$B',
     JIS_0212  => "\e" . '\$\(D',
     JIS_ASC   => "\e" . '\([BJ]',
     JIS_KANA  => "\e" . '\(I',
     SJIS_DBCS => '[\x81-\x9f\xe0-\xef\xfa-\xfc][\x40-\x7e\x80-\xfc]',
     SJIS_KANA => '[\xa1-\xdf]',
     UTF8      => '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}',
     BOM2_BE    => '\xfe\xff',
     BOM2_LE    => '\xff\xfe',
     BOM4_BE    => '\x00\x00\xfe\xff',
     BOM4_LE    => '\xff\xfe\x00\x00',
     UTF32_BE   => '\x00[\x00-\x10][\x00-\xff]{2}',
     UTF32_LE   => '[\x00-\xff]{2}[\x00-\x10]\x00',
     E_IMODEv1  => '\xf8[\x9f-\xfc]|\xf9[\x40-\x49\x50-\x52\x55-\x57\x5b-\x5e\x72-\x7e\x80-\xb0]',
     E_IMODEv2  => '\xf9[\xb1-\xfc]',
     E_IMODE    => '\xf8[\x9f-\xfc]|\xf9[\x40-\x49\x50-\x52\x55-\x57\x5b-\x5e\x72-\x7e\x80-\xfc]',
     E_JSKY1    => '[EFGOPQ]',
     E_JSKY1v1  => '[EFG]',
     E_JSKY1v2  => '[OPQ]',
     E_JSKY2    => '[\!-z]',
     E_DOTI     => '\xf0[\x40-\x7e\x80-\xfc]|\xf1[\x40-\x7e\x80-\xd6]|\xf2[\x40-\x7e\x80-\xab\xb0-\xd5\xdf-\xfc]|\xf3[\x40-\x7e\x80-\xfa]|\xf4[\x40-\x4f\x80\x84-\x8a\x8c-\x8e\x90\x94-\x96\x98-\x9c\xa0-\xa4\xa8-\xaf\xb4\xb5\xbc-\xbe\xc4\xc5\xc8\xcc]',
     E_JIS_AU   => '[\x75-\x7b][\x21-\x7e]',
     E_SJIS_AU  => '[\xf3\xf4\xf6\xf7][\x40-\xfc]',
     E_ICON_AU_START => '<IMG ICON="',
     E_ICON_AU_END   => '">',
     E_JSKY_START => quotemeta($ESC{E_JSKY_START}),
     E_JSKY_END   => '(?:'.quotemeta($ESC{E_JSKY_END}).'|\z)',
     E_JSKYv1_UTF8 => '\xee(?:\x80[\x81-\xbf]|\x81[\x80-\x9a]|\x84[\x81-\xbf]|\x85[\x80-\x9a]|\x88[\x81-\xbf]|\x89[\x80-\x9a])',
     E_JSKYv2_UTF8 => '\xee(?:\x8c[\x81-\xbf]|\x8d[\x80-\x8d]|\x90[\x81-\xbf]|\x91[\x80-\x8c]|\x94[\x81-\xb7])',
     );

$]<5.005 and $RE{E_JSKY_END} =~ s/\\z/\$/;
$RE{E_JSKY}     =  $RE{E_JSKY_START}
  . $RE{E_JSKY1} . $RE{E_JSKY2} . '+'
  . $RE{E_JSKY_END};
$RE{E_JSKYv1}     =  $RE{E_JSKY_START}
  . $RE{E_JSKY1v1} . $RE{E_JSKY2} . '+'
  . $RE{E_JSKY_END};
$RE{E_JSKYv2}     =  $RE{E_JSKY_START}
  . $RE{E_JSKY1v2} . $RE{E_JSKY2} . '+'
  . $RE{E_JSKY_END};

@CHARSET_LIST = qw(
  utf8
  ucs2
  ucs4
  utf16
  
  sjis
  sjis-imode
  sjis-doti
  sjis-jsky
  sjis-icon-au
  cp932
  
  jis
  jis-jsky
  jis-au
  jis-icon-au
  
  euc
  euc-jp
  euc-icon-au
  
  utf8-jsky
  utf8-icon-au
  utf8-imode
);

use vars qw($s2u_table $u2s_table);
use vars qw($ei2u1 $ei2u2 $ed2u $ej2u1 $ej2u2 $ea2u1 $ea2u2 $ea2u1s $ea2u2s);
use vars qw($eu2i1 $eu2i2 $eu2d $eu2j1 $eu2j2 $eu2a1 $eu2a2 $eu2a1s $eu2a2s);

use vars qw(%_h2zNum %_z2hNum %_h2zAlpha %_z2hAlpha %_h2zSym %_z2hSym %_h2zKanaK %_z2hKanaK %_h2zKanaD %_z2hKanaD %_hira2kata %_kata2hira);



use vars qw($PID $FH $TABLE $HEADLEN $PROGLEN);

# -----------------------------------------------------------------------------
# AUTOLOAD
#   AUTOLOAD of Unicode::Japanese::PurePerl.
#   load PurePerl methods from embedded data.
# 
AUTOLOAD
{
  use strict;
  use vars qw($AUTOLOAD);
  
  #print "AUTOLOAD... $AUTOLOAD\n";
  
  my $save = $@;
  my @BAK = @_;
  
  my ($pkg, $subname) = do{
    local($1, $2);
    $AUTOLOAD =~ /^(.*)::(\w+)$/
  } or got_undefined_subroutine($AUTOLOAD);

  $pkg->_loadsub($AUTOLOAD);

  $@ = $save;
  @_ = @BAK;
  goto &$AUTOLOAD;
}

sub _loadsub
{
  my $pkg = shift;
  my $fullsubname = shift;
  #print "subs..\n",join("\n",keys %$TABLE,'');
  use vars qw($AUTOLOAD);

  local($1, $2);
  my ($subpkg,$subname) = $fullsubname =~ /^(.*)::(\w+)$/
    or got_undefined_subroutine($fullsubname);

  # check
  if(!defined($TABLE->{$subname}{offset}))
    {
      _init_table();
      if( !defined($TABLE->{$subname}{offset}) )
      {
	if( $subname eq 'DESTROY' )
	{
	  my $sub = sub{};
	  {
	    no strict 'refs';
	    *$fullsubname = $sub;
	  }
	  return $sub;
	}
      
        CORE::die "Undefined subroutine \&$fullsubname got called.\n";
      }
    }
  if($TABLE->{$subname}{offset} == -1)
    {
      CORE::die "\&$fullsubname is getting loaded twice. There must be a problem in AUTOLOAD.\n";
    }
  
  _check_and_update_fh();
  seek($FH, $PROGLEN + $HEADLEN + $TABLE->{$subname}{offset}, 0)
    or die "Can't seek $subname. [$!]\n";
  
  my $sub;
  read($FH, $sub, $TABLE->{$subname}{'length'})
    or die "Can't read $subname. [$!]\n";

  if( $]>=5.008 )
  {
    $sub = 'use bytes;'.$sub;
  }

  CORE::eval(($sub=~/(.*)/s)[0]);
  if ($@)
    {
      CORE::die $@;
    }
  $DB::sub = $fullsubname; # Now debugger knows where we are.
  
  # evaled
  $TABLE->{$subname}{offset} = -1;

}

# -----------------------------------------------------------------------------
# Unicode::Japanese::PurePerl->new()
# 
sub new
{
  goto &Unicode::Japanese::new;
}

# -----------------------------------------------------------------------------
# DESTROY
# 
sub DESTROY
{
}

# -----------------------------------------------------------------------------
# gensym
# 
sub gensym {
  package Unicode::Japanese::Symbol;
  no strict;
  $genpkg = "Unicode::Japanese::Symbol::";
  $genseq = 0;
  my $name = "GEN" . $genseq++;
  my $ref = \*{$genpkg . $name};
  delete $$genpkg{$name};
  $ref;
}

sub _check_and_update_fh {
  _open_fh() if not ($PID == $$);
}
sub _open_fh {
  my $file = "Unicode/Japanese.pm";
  $PID = $$;
  OPEN:
  {
    if( $INC{$file} )
    {
      open($FH,$INC{$file}) || CORE::die("could not open file [$INC{$file}] for input : $!");
      last OPEN;
    }
    foreach my $path (@INC)
      {
        my $mypath = $path;
        $mypath =~ s#/$##;
        if (-f "$mypath/$file")
          {
            open($FH,"$mypath/$file") || CORE::die("could not open file [$INC{$file}] for input : $!");
            last OPEN;
          }
      }
    CORE::die "Can't find Japanese.pm in \@INC\n";
  }
  binmode($FH);
}

# -----------------------------------------------------------------------------
# _init_table
# 
sub _init_table {
  
  if(!defined($HEADLEN))
    {
      $FH = gensym;

      _open_fh();
      
      local($/) = "\n";
      my $line;
      while(defined($line = <$FH>))
	{
	  last if($line =~ m/^__DATA__/);
	}
      $PROGLEN = tell($FH);
      
      read($FH, $HEADLEN, 4)
	or die "Can't read the table. [$!]\n";
      $HEADLEN = unpack('N', $HEADLEN);
      read($FH, $TABLE, $HEADLEN)
	or die "Can't seek the table. [$!]\n";
      $TABLE =~ /(.*)/s;
      $TABLE = eval(($TABLE=~/(.*)/s)[0]);
      if($@)
	{
	  die "Internal Error. [$@]\n";
	}
      if(!defined($TABLE))
	{
	  die "Internal Error.\n";
	}
      $HEADLEN += 4;

      # load xs.
      Unicode::Japanese::load_xs();
    }
}

# -----------------------------------------------------------------------------
# _getFile
#   load embedded file data.
# 
sub _getFile {
  my $this = shift;

  my $file = shift;

  exists($TABLE->{$file})
    or die "no such file [$file]\n";

  _check_and_update_fh();
  #my $offset16 = $TABLE->{$file}{offset} % 16;
  #print STDERR "_getFile($file, $TABLE->{$file}{offset}, $TABLE->{$file}{'length'}, $offset16)\n";
  seek($FH, $PROGLEN + $HEADLEN + $TABLE->{$file}{offset}, 0)
    or die "Can't seek $file. [$!]\n";
  
  my $data;
  read($FH, $data, $TABLE->{$file}{'length'})
    or die "Can't read $file. [$!]\n";
  
  $data;
}

# -----------------------------------------------------------------------------
# use_I18N_Japanese
#   copied from I18N::Japanese in jperl-5.5.3
#
sub use_I18N_Japanese
{
  shift;
  if( @_ )
  {
    my $bits = 0;
    foreach( @_ )
    {
      $bits |= 0x1000000 if $_ eq 're';
      $bits |= 0x2000000 if $_ eq 'tr';
      $bits |= 0x4000000 if $_ eq 'format';
      $bits |= 0x8000000 if $_ eq 'string';
    }
    $^H |= $bits;
  }else
  {
    $^H |= 0x0f00_0000;
  }
}

# -----------------------------------------------------------------------------
# no_I18N_Japanese
#   copied from I18N::Japanese in jperl-5.5.3
#
sub no_I18N_Japanese
{
  shift;
  if( @_ )
  {
    my $bits = 0;
    foreach( @_ )
    {
      $bits |= 0x1000000 if $_ eq 're';
      $bits |= 0x2000000 if $_ eq 'tr';
      $bits |= 0x4000000 if $_ eq 'format';
      $bits |= 0x8000000 if $_ eq 'string';
    }
    $^H &= ~$bits;
  }else
  {
    $^H &= ~0x0f00_0000;
  }
}

1;

=encoding utf-8

=head1 NAME

Unicode::Japanese - Convert encoding of japanese text


=head1 SYNOPSIS

 use Unicode::Japanese;
 use Unicode::Japanese qw(unijp);
 
 # convert utf8 -> sjis
 
 print Unicode::Japanese->new($str)->sjis;
 print unijp($str)->sjis; # same as above.
 
 # convert sjis -> utf8
 
 print Unicode::Japanese->new($str,'sjis')->get;
 
 # convert sjis (imode_EMOJI) -> utf8
 
 print Unicode::Japanese->new($str,'sjis-imode')->get;
 
 # convert zenkaku (utf8) -> hankaku (utf8)
 
 print Unicode::Japanese->new($str)->z2h->get;

=head1 DESCRIPTION

The Unicode::Japanese module converts encoding of japanese text from one
encoding to another.


=head2 FEATURES

=over 2

=item *



An instance of Unicode::Japanese internally holds a string in UTF-8.


=item *



This module is implemented in two ways: XS and pure perl. If efficiency is
important for you, you should build and install the XS module. If you don't want
to, or if you can't build the XS module, you may use the pure perl module
instead. In that case, only you have to do is to copy Japanese.pm into somewhere
in @INC.


=item *



This module can convert characters from zenkaku (full-width) form to hankaku
(half-width) form, and vice versa. Conversion between hiragana (one of two sets
of japanese phonetical alphabet) and katakana (another set of japanese
phonetical alphabet) is also supported.


=item *



This module has mapping tables for emoji (graphic characters) defined by various
japanese mobile phones; DoCoMo i-mode, ASTEL dot-i and J-PHONE J-Sky. Those
letters are mapped on Unicode Private Use Area so unicode strings it outputs are
still valid even if they contain emoji, and you can safely pass them to other
softwares that can handle Unicode.


=item *



This module can map some emoji from one set to another. Different mobile phones
define different sets of emoji, so mapping each other is not always
possible. But since some emoji exist in two or more sets with similar
appearance, this module considers those emoji to be the same.


=item *



This module uses the mapping table for MS-CP932 instead of the standard
Shift_JIS. The Shift_JIS encoding used by MS-Windows (MS-SJIS/MS-CP932) slightly
differs from the standard.


=item *



When the module converts strings from Unicode to Shift_JIS, EUC-JP or
ISO-2022-JP, unicode letters which can't be represented in those encodings will
be encoded in "&#dddd;" form (decimal character reference). Note, however, that
letters in Unicode Private Use Area will be replaced with '?' mark ('QUESTION
MARK'; U+003F) instead of being encoded. In addition, encoding to character sets
for mobile phones makes every unrepresentable letters being '?' mark.


=item *



On perl-5.8.0 or later, this module handles the UTF-8 flag: the method utf8()
returns UTF-8 I<byte> string, and the method getu() returns UTF-8 I<character>
string.


Currently the method get() returns UTF-8 I<byte> string but this behavior may be
changed in the future.


Methods like sjis(), jis(), utf8(), and such like return I<byte> string. new(),
set(), getcode() methods just ignore the UTF-8 flag of strings they take.


=back

=head1 REQUIREMENT

=over 4

=item *



perl 5.10.x, 5.8.x, etc. (5.004 and later)


=item *



(optional)
C Compiler.
This module supports both XS and Pure Perl.
If you have no C Compilers,
Unicode::Japanese will be installed as Pure Perl module.


=item *



(optional)
Test.pm and Test::More for testing.


=back

No other modules are required at run time.


=head1 METHODS

=over 4

=item $s = Unicode::Japanese->new($str [, $icode [, $encode]])

Create a new instance of Unicode::Japanese.


Any given parameters will be internally passed to the method L</set>().


=item $s = unijp($str [, $icode [, $encode]])

Same as Unicode::Jananese->new(...).


=item $s->set($str [, $icode [, $encode]])
X<set>

=over 2

=item $str: string

=item $icode: optional character encoding (default: 'utf8')

=item $encode: optional binary encoding (default: no binary encodings are assumed)

=back

Store a string into the instance.


Possible character encodings are:


 auto
 utf8 ucs2 ucs4
 utf16-be utf16-le utf16
 utf32-be utf32-le utf32
 sjis cp932 euc euc-jp jis
 sjis-imode sjis-imode1 sjis-imode2
 utf8-imode utf8-imode1 utf8-imode2
 sjis-doti sjis-doti1
 sjis-jsky sjis-jsky1 sjis-jsky2
 jis-jsky  jis-jsky1  jis-jsky2
 utf8-jsky utf8-jsky1 utf8-jsky2
 sjis-au sjis-au1 sjis-au2
 jis-au  jis-au1  jis-au2
 sjis-icon-au sjis-icon-au1 sjis-icon-au2
 euc-icon-au  euc-icon-au1  euc-icon-au2
 jis-icon-au  jis-icon-au1  jis-icon-au2
 utf8-icon-au utf8-icon-au1 utf8-icon-au2
 ascii binary

(see also L</SUPPORTED ENCODINGS>.)


If you want the Unicode::Japanese detect the character encoding of string, you
must explicitly specify 'auto' as the second argument. In that case, the given
string will be passed to the method getcode() to guess the encoding.


For binary encodings, only 'base64' is currently supported. If you specify
'base64' as the third argument, the given string will be decoded using Base64
decoder.


Specify 'binary' as the second argument if you want your string to be stored
without modification.


When you specify 'sjis-imode' or 'sjis-doti' as the character encoding, any
occurences of '&#dddd;' (decimal character reference) in the string will be
interpreted and decoded as code point of emoji, just like emoji implanted into
the string in binary form.


Since encoded forms of strings in various encodings are not clearly distinctive
to each other, it is not always certainly possible to detect what encoding is
used for a given string.


When a given string is possibly interpreted as both Shift_JIS and UTF-8 string,
this module considers such a string to be encoded in Shift_JIS. And if the
encoding is not distinguishable between 'sjis-au' and 'sjis-doti', this module
considers it 'sjis-au'.


=item $str = $s->get

=over 2

=item $str: string (UTF-8)

=back

Get the internal string in UTF-8.


This method currently returns a byte string (whose UTF-8 flag is turned off),
but this behavior may be changed in the future.


If you absolutely want a byte string, you should use the method utf8()
instead. And if you want a character string (whose UTF-8 flag is turned on), you
have to use the method getu().


=item $str = $s->getu

=over 2

=item $str: string (UTF-8)

=back

Get the internal string in UTF-8.


On perl-5.8.0 or later, this method returns a character string with its UTF-8
flag turned on.


=item $code = $s->getcode($str)

=over 2

=item $str: string

=item $code: name of character encoding

=back

Detect the character encoding of given string.


Note that this method, exceptionaly, doesn't deal with the internal string of an
instance.


To guess the encoding, the following algorithm is used:


(For pure perl implementation)


=over 4

=item 1



If the string has an UTF-32 BOM, its encoding is 'utf32'.


=item 2



If it has an UTF-16 BOM, its encoding is 'utf16'.


=item 3



If it is valid for UTF-32BE, its encoding is 'utf32-be'.


=item 4



If it is valid for UTF-32LE, its encoding is 'utf32-le'.


=item 5



If it contains no ESC characters or bytes whose eighth bit is on, its encoding
is 'ascii'. Every ASCII control characters (0x00-0x1F and 0x7F) except ESC
(0x1B) are considered to be in the range of 'ascii'.


=item 6



If it contains escape sequences of ISO-2022-JP, its encoding is 'jis'.


=item 7



If it contains any emoji defined for J-PHONE, its encoding is 'sjis-jsky'.


=item 8



If it is valid for EUC-JP, its encoding is 'euc'.


=item 9



If it is valid for Shift_JIS, its encoding is 'sjis'.


=item 10



If it contains any emoji defined for au, and everything else is valid for
Shift_JIS, its encoding is 'sjis-au'.


=item 11



If it contains any emoji defined for i-mode, and everything else is valid for
Shift_JIS, its encoding is 'sjis-imode'.


=item 12



If it contains any emoji defined for dot-i, and everything else is valid for
Shift_JIS, its encoding is 'sjis-doti'.


=item 13



If it is valid for UTF-8, its encoding is 'utf8'.


=item 14



If no conditions above are fulfilled, its encoding is 'unknown'.


=back

(For XS implementation)


=over 4

=item 1



If the string has an UTF-32 BOM, its encoding is 'utf32'.


=item 2



If it has an UTF-16 BOM, its encoding is 'utf16'.


=item 3



Find all possible encodings that might have been applied to the string from the
following:


ascii / euc / sjis / jis / utf8 / utf32-be / utf32-le / sjis-jsky /
sjis-imode / sjis-au / sjis-doti


=item 4



If any encodings have been found possible, this module picks out one encoding
having the highest priority among them. The priority order is as follows:


utf32-be / utf32-le / ascii / jis / euc / sjis / sjis-jsky / sjis-imode /
sjis-au / sjis-doti / utf8


=item 5



If no conditions above are fulfilled, its encoding is 'unknown'.


=back

Pay attention to the following pitfalls in the above algorithm:


=over 2

=item *



UTF-8 strings might be accidentally considered to be encoded in Shift_JIS.


=item *



UCS-2 strings (sequence of raw UCS-2 letters in big-endian; each letters has
always 2 bytes) can't be detected because they look like nothing but sequences
of random bytes whose length is an even number.


=item *



UTF-16 strings must have BOM to be detected.


=item *



Emoji are only be recognized if they are implanted into the string in binary
form. If they are described in '&#dddd;' form, they aren't considered to be
emoji.


=back

Since the XS and pure perl implementations use different algorithms to guess
encoding, they may guess differently for the same string. Especially, the pure
perl implementation finds Shift_JIS strings containing ESC character (0x1B) to
be actually encoded in Shift_JIS but XS implementation doesn't. This is because
such strings can hardly be distinguished from 'sjis-jsky'. In addition, EUC-JP
strings containing ESC character are also rejected for the same reason.


=item $code = $s->getcodelist($str)

=over 2

=item $str: string

=item $code: name of character encodings

=back

Detect the character encoding of given string.


Unlike the method getcode(), getcodelist() returns a list of possible encodings.


=item $str = $s->conv($ocode, $encode)

=over 2

=item $ocode: character encoding (possible encodings are:)

 utf8 ucs2 ucs4 utf16
 sjis cp932 euc euc-jp jis
 sjis-imode sjis-imode1 sjis-imode2
 utf8-imode utf8-imode1 utf8-imode2
 sjis-doti sjis-doti1
 sjis-jsky sjis-jsky1 sjis-jsky2
 jis-jsky  jis-jsky1  jis-jsky2
 utf8-jsky utf8-jsky1 utf8-jsky2
 sjis-au sjis-au1 sjis-au2
 jis-au  jis-au1  jis-au2
 sjis-icon-au sjis-icon-au1 sjis-icon-au2
 euc-icon-au  euc-icon-au1  euc-icon-au2
 jis-icon-au  jis-icon-au1  jis-icon-au2
 utf8-icon-au utf8-icon-au1 utf8-icon-au2
 binary

(see also L</SUPPORTED ENCODINGS>.)


Some encodings for mobile phones have a trailing digit like 'sjis-au2'. Those
digits represent the version number of encodings. Such encodings have a variant
with no trailing digits, like 'sjis-au', which is the same as the latest version
among its variants.


=item $encode: optional binary encoding

=item $str: string

=back

Get the internal string of instance with encoding it using a given character
encoding method.


If you want the resulting string to be encoded in Base64, specify 'base64' as
the second argument.


On perl-5.8.0 or later, the UTF-8 flag of resulting string is turned off even if
you specify 'utf8' to the first argument.


=item $s->tag2bin

Interpret decimal character references (&#dddd;) in the instance, and replaces
them with single characters they represent.


=item $s->z2h

Replace zenkaku (full-width) letters in the instance with hankaku (half-width)
letters.


=item $s->h2z

Replace hankaku (half-width) letters in the instance with zenkaku (full-width)
letters.


=item $s->hira2kata

Replace any hiragana in the instance with katakana.


=item $s->kata2hira

Replace any katakana in the instance with hiragana.


=item $str = $s->jis

$str: byte string in ISO-2022-JP


Get the internal string of instance with encoding it in ISO-2022-JP.


=item $str = $s->euc

$str: byte string in EUC-JP


Get the internal string of instance with encoding it in EUC-JP.


=item $str = $s->utf8

$str: byte string in UTF-8


Get the internal UTF-8 string of instance.


On perl-5.8.0 or later, the UTF-8 flag of resulting string is turned off.


=item $str = $s->ucs2

$str: byte string in UCS-2


Get the internal string of instance as a sequence of raw UCS-2 letters in
big-endian. Note that this is different from UTF-16BE as raw UCS-2 sequence has
no concept of surrogate pair.


=item $str = $s->ucs4

$str: byte string in UCS-4


Get the internal string of instance as a sequence of raw UCS-4 letters in
big-endian. This is practically the same as UTF-32BE.


=item $str = $s->utf16

$str: byte string in UTF-16


Get the insternal string of instance with encoding it in UTF-16 in big-endian
with no BOM prepended.


=item $str = $s->sjis

$str: byte string in Shift_JIS


Get the internal string of instance with encoding it in Shift_JIS (MS-SJIS /
MS-CP932).


=item $str = $s->sjis_imode

$str: byte string in 'sjis-imode'


Get the internal string of instance with encoding it in 'sjis-imode'.


=item $str = $s->sjis_imode1

$str: byte string in 'sjis-imode1'


Get the internal string of instance with encoding it in 'sjis-imode1'.


=item $str = $s->sjis_imode2

$str: byte string in 'sjis-imode2'


Get the internal string of instance with encoding it in 'sjis-imode2'.


=item $str = $s->sjis_doti

$str: byte string in 'sjis-doti'


Get the internal string of instance with encoding it in 'sjis-doti'.


=item $str = $s->sjis_jsky

$str: byte string in 'sjis-jsky'


Get the internal string of instance with encoding it in 'sjis-jsky'.


=item $str = $s->sjis_jsky1

$str: byte string in 'sjis-jsky1'


Get the internal string of instance with encoding it in 'sjis-jsky1'.


=item $str = $s->sjis_jsky

$str: byte string in 'sjis-jsky'


Get the internal string of instance with encoding it in 'sjis-jsky'.


=item $str = $s->sjis_icon_au

$str: byte string in 'sjis-icon-au'


Get the internal string of instance with encoding it in 'sjis-icon-au'.


=item $str_arrayref = $s->strcut($len)

=over 2

=item $len: maximum length of each chunks (in number of 
full-width characters)

=item $str_arrayref: reference to array of strings

=back

Split the internal string of instance into chunks of a given length. 


On perl-5.8.0 or later, UTF-8 flags of each chunks are turned on.


=item $len = $s->strlen

$len: character width of the internal string


Calculate the character width of the internal string. Half-width characters have
width of one unit, and full-width characters have width of two units.


=item $s->join_csv(@values);

@values: array of strings


Build a line of CSV from the arguments, and store it into the instance. The
resulting line has a trailing line break ("\n").


=item @values = $s->split_csv;

@values: array of strings


Parse a line of CSV in the instance and return each columns. The line will be
chomp()ed before getting parsed.


If the internal string was decoded from 'binary' encoding (see methods new() and
set()), the UTF-8 flags of the resulting array of strings are turned
off. Otherwise the flags are turned on.


=back

=head1 SUPPORTED ENCODINGS

 +---------------+----+-----+-------+
 |encoding       | in | out | guess |
 +---------------+----+-----+-------+
 |auto           : OK : --  | ----- |
 +---------------+----+-----+-------+
 |utf8           : OK : OK  | OK    |
 |ucs2           : OK : OK  | ----- |
 |ucs4           : OK : OK  | ----- |
 |utf16-be       : OK : --  | ----- |
 |utf16-le       : OK : --  | ----- |
 |utf16          : OK : OK  | OK(#) |
 |utf32-be       : OK : --  | OK    |
 |utf32-le       : OK : --  | OK    |
 |utf32          : OK : --  | OK(#) |
 +---------------+----+-----+-------+
 |sjis           : OK : OK  | OK    |
 |cp932          : OK : OK  | ----- |
 |euc            : OK : OK  | OK    |
 |euc-jp         : OK : OK  | ----- |
 |jis            : OK : OK  | OK    |
 +---------------+----+-----+-------+
 |sjis-imode     : OK : OK  | OK    |
 |sjis-imode1    : OK : OK  | ----- |
 |sjis-imode2    : OK : OK  | ----- |
 |utf8-imode     : OK : OK  | ----- |
 |utf8-imode1    : OK : OK  | ----- |
 |utf8-imode2    : OK : OK  | ----- |
 +---------------+----+-----+-------+
 |sjis-doti      : OK : OK  | OK    |
 |sjis-doti1     : OK : OK  | ----- |
 +---------------+----+-----+-------+
 |sjis-jsky      : OK : OK  | OK    |
 |sjis-jsky1     : OK : OK  | ----- |
 |sjis-jsky2     : OK : OK  | ----- |
 |jis-jsky       : OK : OK  | ----- |
 |jis-jsky1      : OK : OK  | ----- |
 |jis-jsky2      : OK : OK  | ----- |
 |utf8-jsky      : OK : OK  | ----- |
 |utf8-jsky1     : OK : OK  | ----- |
 |utf8-jsky2     : OK : OK  | ----- |
 +---------------+----+-----+-------+
 |sjis-au        : OK : OK  | OK    |
 |sjis-au1       : OK : OK  | ----- |
 |sjis-au2       : OK : OK  | ----- |
 |jis-au         : OK : OK  | ----- |
 |jis-au1        : OK : OK  | ----- |
 |jis-au2        : OK : OK  | ----- |
 |sjis-icon-au   : OK : OK  | ----- |
 |sjis-icon-au1  : OK : OK  | ----- |
 |sjis-icon-au2  : OK : OK  | ----- |
 |euc-icon-au    : OK : OK  | ----- |
 |euc-icon-au1   : OK : OK  | ----- |
 |euc-icon-au2   : OK : OK  | ----- |
 |jis-icon-au    : OK : OK  | ----- |
 |jis-icon-au1   : OK : OK  | ----- |
 |jis-icon-au2   : OK : OK  | ----- |
 |utf8-icon-au   : OK : OK  | ----- |
 |utf8-icon-au1  : OK : OK  | ----- |
 |utf8-icon-au2  : OK : OK  | ----- |
 +---------------+----+-----+-------+
 |ascii          : OK : --  | OK    |
 |binary         : OK : OK  | ----- |
 +---------------+----+-----+-------+
 (#): guessed when it has bom.

=head2 GUESSING ORDER

 1.  utf32 (#)
 2.  utf16 (#)
 3.  utf32-be
 4.  utf32-le
 5.  ascii
 6.  jis
 7.  sjis-jsky (pp)
 8.  euc
 9.  sjis
 10. sjis-jsky (xs)
 11. sjis-au
 12. sjis-imode
 13. sjis-doti
 14. utf8
 15. unknown

=head1 DESCRIPTION OF UNICODE MAPPING

Transcoding between Unicode encodings and other ones is performed as below:


=over 2

=item Shift_JIS

This module uses the mapping table of MS-CP932.


L<< ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT >>


When the module tries to convert Unicode string to Shift_JIS, it represents most
letters which isn't available in Shift_JIS as decimal character reference
('&#dddd;'). There is one exception to this: every graphic characters for mobile
phones are replaced with '?' mark.


For variants of Shift_JIS defined for mobile phones, every unrepresentable
characters are replaced with '?' mark unlike the plain Shift_JIS.


=item EUC-JP/ISO-2022-JP

This module doesn't directly convert Unicode string from/to EUC-JP or
ISO-2022-JP: it once converts from/to Shift_JIS and then do the rest
translation. So characters which aren't available in the Shift_JIS can not be
properly translated.


=item DoCoMo i-mode

This module maps emoji in the range of F800 - F9FF to U+0FF800 - U+0FF9FF.


=item ASTEL dot-i

This module maps emoji in the range of F000 - F4FF to U+0FF000 - U+0FF4FF.


=item J-PHONE J-SKY

The encoding method defined by J-SKY is as follows: first an escape sequence
"\e\$" comes to indicate the beginning of emoji, then the first byte of an emoji
comes next, then the second bytes of at least one emoji comes next, then "\x0f"
comes last to indicate the end of emoji. If a string contains a series of emoji
whose first bytes are identical, such sequence can be compressed by cascading
second bytes of them to the single first byte.


This module considers a pair of those first and second bytes to be one letter,
and map them from 4500 - 47FF to U+0FFB00 - U+0FFDFF.


When the module encodes J-SKY emoji, it performs the compression automatically.


=item AU

This module maps AU emoji to U+0FF500 - U+0FF6FF.


=back

=head1 PurePerl mode

   use Unicode::Japanese qw(PurePerl);

If you want to explicitly take the pure perl implementation, pass
C<'PurePerl'> to the argument of the C<use> statement.


=head1 BUGS

Please report bugs and requests to C<bug-unicode-japanese at rt.cpan.org> or
L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Unicode-Japanese>. If you
report them to the web interface, any progress to your report will be
automatically sent back to you.


=over 2

=item *



This module doesn't directly convert Unicode string from/to EUC-JP or
ISO-2022-JP: it once converts from/to Shift_JIS and then do the rest
translation. So characters which aren't available in the Shift_JIS can not be
properly translated.


=item *



The XS implementation of getcode() fails to detect the encoding when the given
string contains \e while its encoding is EUC-JP or Shift_JIS.


=item *



Japanese.pm is composed of textual perl script and binary character conversion
table. If you transfer it on FTP using ASCII mode, the file will collapse.


=back

=head1 SUPPORT

You can find documentation for this module with the perldoc command.


    perldoc Unicode::Japanese

You can find more information at:


=over 4

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/Unicode-Japanese>


=item * CPAN Ratings

L<http://cpanratings.perl.org/d/Unicode-Japanese>


=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Unicode-Japanese>


=item * Search CPAN

L<http://search.cpan.org/dist/Unicode-Japanese>


=back

=head1 CREDITS

Thanks very much to:


NAKAYAMA Nao


SUGIURA Tatsuki & Debian JP Project


=head1 COPYRIGHT & LICENSE

Copyright 2001-2008
SANO Taku (SAWATARI Mikage) and YAMASHINA Hio,
all rights reserved.


This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.



=cut



__DATA__
î{'joinCsv'=>{'length'=>947,'offset'=>0},'_decodeBase64'=>{'length'=>610,'offset'=>947},'z2hNum'=>{'length'=>277,'offset'=>1557},'_utf16le_utf16'=>{'length'=>179,'offset'=>3069},'kata2hira'=>{'length'=>1235,'offset'=>1834},'jcode/emoji2/ea2u.dat'=>{'length'=>1320,'offset'=>376816},'_u2ai2'=>{'length'=>1062,'offset'=>3248},'z2hAlpha'=>{'length'=>829,'offset'=>4310},'_u2ui2'=>{'length'=>721,'offset'=>5139},'_ui2u2'=>{'length'=>785,'offset'=>5860},'_ucs4_utf8'=>{'length'=>936,'offset'=>6645},'h2zSym'=>{'length'=>309,'offset'=>7581},'utf8_icon_au1'=>{'length'=>73,'offset'=>7890},'h2z'=>{'length'=>114,'offset'=>7963},'jcode/emoji2/ea2u2s.dat'=>{'length'=>4096,'offset'=>434688},'sjis'=>{'length'=>177,'offset'=>8077},'euc_icon_au2'=>{'length'=>98,'offset'=>8254},'_u2si1'=>{'length'=>1619,'offset'=>8352},'_sj2u1'=>{'length'=>1144,'offset'=>9971},'euc_icon_au'=>{'length'=>97,'offset'=>11443},'tag2bin'=>{'length'=>328,'offset'=>11115},'z2hSym'=>{'length'=>589,'offset'=>11540},'ucs2'=>{'length'=>183,'offset'=>12129},'jis_au2'=>{'length'=>80,'offset'=>12312},'jcode/emoji2/ei2u2.dat'=>{'length'=>2048,'offset'=>248816},'_si2u1'=>{'length'=>1228,'offset'=>12392},'_utf8_utf16'=>{'length'=>950,'offset'=>13620},'jis_icon_au1'=>{'length'=>98,'offset'=>14570},'sjis_icon_au1'=>{'length'=>86,'offset'=>14668},'sjis_jsky2'=>{'length'=>70,'offset'=>14754},'jcode/emoji2/ei2u.dat'=>{'length'=>2048,'offset'=>230384},'getcode'=>{'length'=>2111,'offset'=>14824},'_j2s2'=>{'length'=>469,'offset'=>16935},'jcode/emoji2/ea2us.dat'=>{'length'=>4096,'offset'=>414208},'sjis_au2'=>{'length'=>95,'offset'=>17404},'h2zKanaD'=>{'length'=>803,'offset'=>17499},'sjis_imode1'=>{'length'=>71,'offset'=>18302},'eucjp'=>{'length'=>32,'offset'=>18373},'utf8'=>{'length'=>187,'offset'=>18405},'_s2e'=>{'length'=>244,'offset'=>18592},'jcode/emoji2/ea2u2.dat'=>{'length'=>3288,'offset'=>394528},'utf8_jsky'=>{'length'=>189,'offset'=>18836},'_uj2u2'=>{'length'=>874,'offset'=>19025},'utf8_jsky1'=>{'length'=>70,'offset'=>19899},'jcode/emoji2/eu2a2.dat'=>{'length'=>16384,'offset'=>397824},'jcode/s2u.dat'=>{'length'=>48573,'offset'=>181808},'conv'=>{'length'=>3896,'offset'=>19969},'_utf16be_utf16'=>{'length'=>71,'offset'=>23865},'jcode/emoji2/eu2j.dat'=>{'length'=>40960,'offset'=>270320},'hira2kata'=>{'length'=>1235,'offset'=>23936},'splitCsvu'=>{'length'=>197,'offset'=>25171},'_u2ui1'=>{'length'=>744,'offset'=>25368},'sjis_doti1'=>{'length'=>69,'offset'=>26112},'_s2j'=>{'length'=>272,'offset'=>26181},'_sa2j2'=>{'length'=>384,'offset'=>26453},'_j2sa'=>{'length'=>179,'offset'=>26837},'sjis_au1'=>{'length'=>95,'offset'=>27016},'join_csv'=>{'length'=>29,'offset'=>27111},'_ai2u1'=>{'length'=>458,'offset'=>27140},'jcode/emoji2/eu2as.dat'=>{'length'=>16384,'offset'=>418304},'_s2u'=>{'length'=>988,'offset'=>27598},'utf8_imode1'=>{'length'=>71,'offset'=>28586},'_j2sa3'=>{'length'=>434,'offset'=>28657},'jis_jsky1'=>{'length'=>82,'offset'=>29091},'jis_icon_au2'=>{'length'=>98,'offset'=>29173},'sjis_jsky'=>{'length'=>189,'offset'=>29271},'_u2uj2'=>{'length'=>788,'offset'=>29460},'jis'=>{'length'=>179,'offset'=>30248},'jis_au1'=>{'length'=>80,'offset'=>30427},'_utf8_ucs4'=>{'length'=>1149,'offset'=>30507},'get'=>{'length'=>162,'offset'=>31656},'z2h'=>{'length'=>114,'offset'=>31818},'getu'=>{'length'=>266,'offset'=>31932},'_loadConvTable'=>{'length'=>18009,'offset'=>32198},'unijp'=>{'length'=>137,'offset'=>50207},'utf8_imode2'=>{'length'=>71,'offset'=>50344},'_u2uj1'=>{'length'=>806,'offset'=>50415},'jcode/emoji2/eu2a2s.dat'=>{'length'=>16384,'offset'=>438784},'_u2ja1'=>{'length'=>1639,'offset'=>51221},'_j2s'=>{'length'=>177,'offset'=>52860},'utf16'=>{'length'=>187,'offset'=>53037},'utf8_jsky2'=>{'length'=>70,'offset'=>53224},'_u2ai1'=>{'length'=>1203,'offset'=>53294},'sjis_icon_au2'=>{'length'=>86,'offset'=>54497},'_u2si2'=>{'length'=>1620,'offset'=>54583},'jcode/emoji2/eu2i.dat'=>{'length'=>16384,'offset'=>232432},'splitCsv'=>{'length'=>350,'offset'=>56203},'jcode/emoji2/eu2i2.dat'=>{'length'=>16384,'offset'=>250864},'sjis_jsky1'=>{'length'=>70,'offset'=>56553},'_s2j3'=>{'length'=>355,'offset'=>56623},'_sa2u1'=>{'length'=>1137,'offset'=>56978},'_u2s'=>{'length'=>2320,'offset'=>58115},'_sa2j3'=>{'length'=>455,'offset'=>60435},'_utf16_utf8'=>{'length'=>769,'offset'=>60890},'h2zNum'=>{'length'=>167,'offset'=>61659},'h2zKanaK'=>{'length'=>972,'offset'=>61826},'strlen'=>{'length'=>360,'offset'=>62798},'strcutu'=>{'length'=>195,'offset'=>63158},'sjis_imode2'=>{'length'=>71,'offset'=>63353},'_validate_utf8'=>{'length'=>763,'offset'=>63424},'jcode/emoji2/eu2a.dat'=>{'length'=>16384,'offset'=>378144},'z2hKanaK'=>{'length'=>972,'offset'=>64187},'h2zAlpha'=>{'length'=>257,'offset'=>65159},'set'=>{'length'=>5582,'offset'=>65416},'_ucs2_utf8'=>{'length'=>549,'offset'=>70998},'_utf16_utf16'=>{'length'=>300,'offset'=>71547},'getcodelist'=>{'length'=>2241,'offset'=>71847},'_sj2u2'=>{'length'=>1503,'offset'=>74088},'jcode/emoji2/ed2u.dat'=>{'length'=>5120,'offset'=>355312},'jis_icon_au'=>{'length'=>97,'offset'=>75591},'_utf32_ucs4'=>{'length'=>312,'offset'=>75688},'_ai2u2'=>{'length'=>410,'offset'=>76000},'utf8_icon_au2'=>{'length'=>73,'offset'=>76410},'_uj2u1'=>{'length'=>600,'offset'=>76483},'_sa2j'=>{'length'=>174,'offset'=>77083},'h2zKana'=>{'length'=>185,'offset'=>77257},'z2hKana'=>{'length'=>89,'offset'=>77442},'utf8_imode'=>{'length'=>192,'offset'=>77531},'_si2u2'=>{'length'=>1227,'offset'=>77723},'_u2sj1'=>{'length'=>1772,'offset'=>78950},'_u2sj2'=>{'length'=>1794,'offset'=>80722},'utf8_icon_au'=>{'length'=>72,'offset'=>82516},'jis_jsky2'=>{'length'=>82,'offset'=>82588},'sjis_doti'=>{'length'=>188,'offset'=>82670},'_e2s'=>{'length'=>202,'offset'=>82858},'jcode/emoji2/ej2u2.dat'=>{'length'=>3072,'offset'=>311280},'euc'=>{'length'=>175,'offset'=>83060},'_j2s3'=>{'length'=>337,'offset'=>83235},'jcode/emoji2/ej2u.dat'=>{'length'=>3072,'offset'=>267248},'ucs4'=>{'length'=>183,'offset'=>83572},'_j2sa2'=>{'length'=>446,'offset'=>83755},'_ui2u1'=>{'length'=>803,'offset'=>84201},'_sd2u'=>{'length'=>1221,'offset'=>85004},'_u2ja2'=>{'length'=>1640,'offset'=>86225},'_s2e2'=>{'length'=>446,'offset'=>87865},'z2hKanaD'=>{'length'=>491,'offset'=>88311},'_u2sd'=>{'length'=>1615,'offset'=>88802},'sjis_au'=>{'length'=>94,'offset'=>90417},'jcode/emoji2/eu2j2.dat'=>{'length'=>40960,'offset'=>314352},'jcode/emoji2/eu2d.dat'=>{'length'=>16384,'offset'=>360432},'jcode/u2s.dat'=>{'length'=>85504,'offset'=>96304},'_utf8_ucs2'=>{'length'=>755,'offset'=>90511},'euc_icon_au1'=>{'length'=>98,'offset'=>91266},'jis_au'=>{'length'=>195,'offset'=>91364},'_utf32le_ucs4'=>{'length'=>178,'offset'=>91559},'sjis_imode'=>{'length'=>192,'offset'=>91737},'_e2s2'=>{'length'=>535,'offset'=>91929},'_s2j2'=>{'length'=>377,'offset'=>92464},'_encodeBase64'=>{'length'=>775,'offset'=>92841},'validate_utf8'=>{'length'=>129,'offset'=>93616},'split_csv'=>{'length'=>131,'offset'=>93830},'sjis_icon_au'=>{'length'=>85,'offset'=>93745},'_sa2u2'=>{'length'=>1138,'offset'=>93961},'jis_jsky'=>{'length'=>200,'offset'=>95099},'strcut'=>{'length'=>894,'offset'=>95299},'_utf32be_ucs4'=>{'length'=>70,'offset'=>96226},'cp932'=>{'length'=>33,'offset'=>96193}}     sub joinCsv {
  my $this = shift;
  my $list;
  
  if(ref($_[0]) eq 'ARRAY')
    {
      $list = shift;
      if( $]>=5.008 )
      {
	$list = [ @$list ];
	foreach(@$list)
	{
	  defined($_) and Encode::_utf8_off($_);
	}
      }
    }
  elsif(!ref($_[0]))
    {
      $list = [ @_ ];
      if( $]>=5.008 )
      {
	foreach(@$list)
	{
	  defined($_) and Encode::_utf8_off($_);
	}
      }
    }
  else
    {
      my $ref = ref($_[0]);
      die "String#joinCsv: param[1] is neither ARRRAY Ref nor Scalar. [$ref]\n";
    }
      
  my $text;
  if( $^W && grep{!defined($_)}@$list )
  {
    $_[0] && $list eq $_[0] and $list = [@$list];
    foreach(@$list)
    {
      defined($_) and next;
      warn "Use of uninitialized value in Unicode::Japanese::joinCsv";
      $_ = "";
    }
  }
  $text = join ',', map {defined($_) ? (s/"/""/g or /[\r\n,]/) ? qq("$_") : $_ : ""} @$list;

  $this->{str} = $text."\n";
  $this->{icode} = 'binary';

  $this;
}
sub _decodeBase64
{
  local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123]

  my $this = shift;
  my $str = shift;
  my $res = "";

  $str =~ tr|A-Za-z0-9+=/||cd;            # remove non-base64 chars
  if (length($str) % 4)
    {
      warn("Length of Base64 data is not multiple of 4");
    }
  $str =~ s/=+$//;                        # remove padding
  $str =~ tr|A-Za-z0-9+/| -_|;            # convert to uuencoded format
  while ($str =~ /(.{1,60})/gs)
    {
      my $len = chr(32 + length($1)*3/4); # compute length byte
      $res .= unpack("u", $len . $1 );    # uudecode
    }
  $res;
}
sub z2hNum {
  my $this = shift;

  if( !%_z2hNum )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xef\xbc\x90|\xef\xbc\x91|\xef\xbc\x92|\xef\xbc\x93|\xef\xbc\x94|\xef\xbc\x95|\xef\xbc\x96|\xef\xbc\x97|\xef\xbc\x98|\xef\xbc\x99)/$_z2hNum{$1}/eg;
  
  $this;
}
sub kata2hira {
  my $this = shift;

  if( !%_kata2hira )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xe3\x82\xa1|\xe3\x82\xa2|\xe3\x82\xa3|\xe3\x82\xa4|\xe3\x82\xa5|\xe3\x82\xa6|\xe3\x82\xa7|\xe3\x82\xa8|\xe3\x82\xa9|\xe3\x82\xaa|\xe3\x82\xab|\xe3\x82\xac|\xe3\x82\xad|\xe3\x82\xae|\xe3\x82\xaf|\xe3\x82\xb0|\xe3\x82\xb1|\xe3\x82\xb2|\xe3\x82\xb3|\xe3\x82\xb4|\xe3\x82\xb5|\xe3\x82\xb6|\xe3\x82\xb7|\xe3\x82\xb8|\xe3\x82\xb9|\xe3\x82\xba|\xe3\x82\xbb|\xe3\x82\xbc|\xe3\x82\xbd|\xe3\x82\xbe|\xe3\x82\xbf|\xe3\x83\x80|\xe3\x83\x81|\xe3\x83\x82|\xe3\x83\x83|\xe3\x83\x84|\xe3\x83\x85|\xe3\x83\x86|\xe3\x83\x87|\xe3\x83\x88|\xe3\x83\x89|\xe3\x83\x8a|\xe3\x83\x8b|\xe3\x83\x8c|\xe3\x83\x8d|\xe3\x83\x8e|\xe3\x83\x8f|\xe3\x83\x90|\xe3\x83\x91|\xe3\x83\x92|\xe3\x83\x93|\xe3\x83\x94|\xe3\x83\x95|\xe3\x83\x96|\xe3\x83\x97|\xe3\x83\x98|\xe3\x83\x99|\xe3\x83\x9a|\xe3\x83\x9b|\xe3\x83\x9c|\xe3\x83\x9d|\xe3\x83\x9e|\xe3\x83\x9f|\xe3\x83\xa0|\xe3\x83\xa1|\xe3\x83\xa2|\xe3\x83\xa3|\xe3\x83\xa4|\xe3\x83\xa5|\xe3\x83\xa6|\xe3\x83\xa7|\xe3\x83\xa8|\xe3\x83\xa9|\xe3\x83\xaa|\xe3\x83\xab|\xe3\x83\xac|\xe3\x83\xad|\xe3\x83\xae|\xe3\x83\xaf|\xe3\x83\xb0|\xe3\x83\xb1|\xe3\x83\xb2|\xe3\x83\xb3)/$_kata2hira{$1}/eg;
  
  $this;
}
sub _utf16le_utf16 {
  my $this = shift;
  my $str = shift;

  my $result = '';
  foreach my $ch (unpack('v*', $str))
    {
      $result .= pack('n', $ch);
    }
  
  $result;
}
sub _u2ai2 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($eu2a2))
    {
      $eu2a2 = $this->_getFile('jcode/emoji2/eu2a2.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $d;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? $1 :
     (length($1) == 3) ? $1 :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2a2, ($ch - 0x0fe000) * 2, 2),
			    $d = unpack('n', $c),
			    $c =~ tr,\0,,d,
			    ($d <= 0x0336) ? $RE{E_ICON_AU_START} . $d . $RE{E_ICON_AU_END} :
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;
  
  $str;
}
sub z2hAlpha {
  my $this = shift;

  if( !%_z2hAlpha )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xef\xbc\xa1|\xef\xbc\xa2|\xef\xbc\xa3|\xef\xbc\xa4|\xef\xbc\xa5|\xef\xbc\xa6|\xef\xbc\xa7|\xef\xbc\xa8|\xef\xbc\xa9|\xef\xbc\xaa|\xef\xbc\xab|\xef\xbc\xac|\xef\xbc\xad|\xef\xbc\xae|\xef\xbc\xaf|\xef\xbc\xb0|\xef\xbc\xb1|\xef\xbc\xb2|\xef\xbc\xb3|\xef\xbc\xb4|\xef\xbc\xb5|\xef\xbc\xb6|\xef\xbc\xb7|\xef\xbc\xb8|\xef\xbc\xb9|\xef\xbc\xba|\xef\xbd\x81|\xef\xbd\x82|\xef\xbd\x83|\xef\xbd\x84|\xef\xbd\x85|\xef\xbd\x86|\xef\xbd\x87|\xef\xbd\x88|\xef\xbd\x89|\xef\xbd\x8a|\xef\xbd\x8b|\xef\xbd\x8c|\xef\xbd\x8d|\xef\xbd\x8e|\xef\xbd\x8f|\xef\xbd\x90|\xef\xbd\x91|\xef\xbd\x92|\xef\xbd\x93|\xef\xbd\x94|\xef\xbd\x95|\xef\xbd\x96|\xef\xbd\x97|\xef\xbd\x98|\xef\xbd\x99|\xef\xbd\x9a)/$_z2hAlpha{$1}/eg;
  
  $this;
}
sub _u2ui2
{
  my $this = shift;
  my $str = shift;

  if(!defined($str))
  {
    return '';
  }

  #  imode   : F800-F9FF => U+0FF800 - U+0FF9FF
  # [BASIC]
  # F89F = E63E = ee 98 be = F3BFA29F
  # F9B0 = E70B = ee 9c 8b = F3BFA6B0
  # [EXTENSION]
  # F9B1 = E70C = ee 9c 8c = F3BFA6B1
  # F9FC = E757 = ee 9d 97 = F3BFA7BC
  $str =~ s{\xf3\xbf([\xa2-\xa7][\x80-\xbf])}{
    my ($in1, $in2) = unpack("CC", $1);
    my $in = (($in1 - 0xa2) << 6) + $in2;
    my $diff = $in <=  0xfc ?  0xfc -  0x9b
             : $in <= 0x17e ? 0x17e -  0xda
             :                0x1b0 - 0x10b;
    my $ucs2offset = $in + 0xe600 - $diff;
    pack("C3", 0xee, (($ucs2offset>>6)&63)+128, ($ucs2offset&63)+128);
  }xeg;

  $str;
}
sub _ui2u2
{
  my $this = shift;
  my $str = shift;

  if(!defined($str))
  {
    return '';
  }

  if(!defined($ei2u2))
  {
    $ei2u2 = $this->_getFile('jcode/emoji2/ei2u2.dat');
  }

  $str = $this->_validate_utf8($str);

  #  imode   : F800-F9FF => U+0FF800 - U+0FF9FF
  # E63E - E70B = ee 98 be - ee 9c 8b
  # E70C - E757 = ee 9c 8c - ee 9d 97
  $str =~ s{\xee([\x98-\x9e][\x80-\xbf])}{
    my ($in1, $in2) = unpack("CC", $1);
    my $in = (($in1 - 0x98) << 6) + ($in2 - 0x80);
    my $diff = $in <= 0x9b ? ( 0xfc -  0x9b)
             : $in <= 0xda ? (0x17e -  0xda)
             :               (0x1b0 - 0x10b);
    my $sjisoffset = $diff + $in;
    my $sjisbin    = pack("n", $sjisoffset);
    $S2U{$sjisbin} ||= substr($ei2u2, $sjisoffset * 4, 4) || '?';
  }xeg;
  
  $str;
}
sub _ucs4_utf8 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  my $result = '';
  for my $uc (unpack("N*", $str))
    {
      $result .= ($uc < 0x80) ? chr($uc) :
	($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) :
	  ($uc < 0x10000) ? chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) :
	    ($uc < 0x200000) ? chr(0xF0 | ($uc >> 18)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) :
	      ($uc < 0x4000000) ? chr(0xF8 | ($uc >> 24)) . chr(0x80 | (($uc >> 18) & 0x3F)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) :
		chr(0xFC | ($uc >> 30)) . chr(0x80 | (($uc >> 24) & 0x3F)) . chr(0x80 | (($uc >> 18) & 0x3F)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F));
    }
  
  $result;
}
sub h2zSym {
  my $this = shift;

  if( !%_h2zSym )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\x20|\x21|\x22|\x23|\x24|\x25|\x26|\x27|\x28|\x29|\x2a|\x2b|\x2c|\x2d|\x2e|\x2f|\x3a|\x3b|\x3c|\x3d|\x3e|\x3f|\x40|\x5b|\x5c|\x5d|\x5e|_|\x60|\x7b|\x7c|\x7d|\x7e)/$_h2zSym{$1}/eg;
  
  $this;
}
sub utf8_icon_au1
{
  my $this = shift;
  $this->_u2ai1($this->{str});
}
sub h2z {
  my $this = shift;

  $this->h2zKana;
  $this->h2zNum;
  $this->h2zAlpha;
  $this->h2zSym;

  $this;
}
# -----------------------------------------------------------------------------
# $bytes_sjis = $unijp->sjis();
# 
sub sjis
{
  my $this = shift;
  $this->_u2s($this->{str});
}
sub euc_icon_au2
{
  my $this = shift;
  $this->_s2e($this->_u2s($this->_u2ai2($this->{str})));
}
sub _u2si1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2i1))
    {
      $eu2i1 = $this->_getFile('jcode/emoji2/eu2i.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2i1, ($ch - 0x0fe000) * 2, 2),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;
  $str;
  
}
sub _sj2u1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ej2u1))
    {
      $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat');
    }

  my $l;
  my $j1;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_JSKYv1}|[\x80-\xff])/
    (length($1) <= 2) ? 
      (
       $l = (unpack('n', $1) or unpack('C', $1)),
       (
	($l >= 0xa1 and $l <= 0xdf)     ?
	(
	 $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	 $uc =~ tr,\0,,d,
	 $uc
	) :
	($l >= 0x8100 and $l <= 0x9fff) ?
	(
	 $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	 $uc =~ tr,\0,,d,
	 $uc
	) :
	($l >= 0xe000 and $l <= 0xffff) ?
	(
	 $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	 $uc =~ tr,\0,,d,
	 $uc
	) :
	($l < 0x80) ?
	chr($l) :
	'?'
       )
      ) :
	(
         $l = $1,
	 $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v1}),,o,
	 $j1 = $1,
	 $uc = '',
	 $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u1, (unpack('n', $j1 . $1) - 0x4500) * 4, 4), ''!ego,
	 $uc =~ tr,\0,,d,
	 $uc
	)
  /eg;
  
  $str;
  
}
# -----------------------------------------------------------------------------
# tag2bin
#
sub tag2bin {
  my $this = shift;

  $this->{str} =~ s/\&(\#\d+|\#x[a-f0-9A-F]+);/
    (substr($1, 1, 1) eq 'x') ? $this->_ucs4_utf8(pack('N', hex(substr($1, 2)))) :
      $this->_ucs4_utf8(pack('N', substr($1, 1)))
	/eg;
  
  $this;
}
sub euc_icon_au
{
  my $this = shift;
  $this->_s2e($this->_u2s($this->_u2ai2($this->{str})));
}
sub z2hSym {
  my $this = shift;

  if( !%_z2hSym )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xe3\x80\x80|\xef\xbc\x8c|\xef\xbc\x8e|\xef\xbc\x9a|\xef\xbc\x9b|\xef\xbc\x9f|\xef\xbc\x81|\xef\xbd\x80|\xef\xbc\xbe|\xef\xbc\xbf|\xef\xbc\x8f|\xef\xbd\x9e|\xef\xbd\x9c|\xe2\x80\x99|\xe2\x80\x9d|\xef\xbc\x88|\xef\xbc\x89|\xef\xbc\xbb|\xef\xbc\xbd|\xef\xbd\x9b|\xef\xbd\x9d|\xef\xbc\x8b|\xef\xbc\x8d|\xef\xbc\x9d|\xef\xbc\x9c|\xef\xbc\x9e|\xef\xbf\xa5|\xef\xbc\x84|\xef\xbc\x85|\xef\xbc\x83|\xef\xbc\x86|\xef\xbc\x8a|\xef\xbc\xa0|\xe3\x80\x9c)/$_z2hSym{$1}/eg;
  
  $this;
}
# -----------------------------------------------------------------------------
# $bytes_ucs2 = $unijp->ucs2();
# 
sub ucs2
{
  my $this = shift;
  $this->_utf8_ucs2($this->{str});
}
sub jis_au2
{
  my $this = shift;
  $this->_s2j($this->_u2ja2($this->{str}));
}
sub _si2u1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ei2u1))
    {
      $ei2u1 = $this->_getFile('jcode/emoji2/ei2u.dat');
    }

  $str =~ s/(\&\#(\d+);)/
    ($2 >= 0xf800 and $2 <= 0xf9ff) ? pack('n', $2) : $1
      /eg;
  
  my $l;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_IMODEv1}|[\x80-\xff])/
    $S2U{$1}
      or ($S2U{$1} =
	  (
	   $l = (unpack('n', $1) or unpack('C', $1)),
	   (
	    ($l >= 0xa1 and $l <= 0xdf)     ?
	    (
	     $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0x8100 and $l <= 0x9fff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xf800 and $l <= 0xf9ff) ?
	    (
	     $uc = substr($ei2u1, ($l - 0xf800) * 4, 4),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xe000 and $l <= 0xffff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l < 0x80) ?
	    chr($l) :
	    '?'
	   )
	  )
	 )/eg;
  
  $str;
  
}
sub _utf8_utf16 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $uc;
  $str =~ s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})/
    $T2U{$1}
      or ($T2U{$1}
	  = ((length($1) == 1) ? pack("n", unpack("C", $1)) :
	     (length($1) == 2) ? (($c1,$c2) = unpack("C2", $1),
				  pack("n", (($c1 & 0x1F)<<6)|($c2 & 0x3F))) :
	     (length($1) == 3) ? (($c1,$c2,$c3) = unpack("C3", $1),
				  pack("n", (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F))) :
	     (length($1) == 4) ? (($c1,$c2,$c3,$c4) = unpack("C4", $1),
				  ($uc = ((($c1 & 0x07) << 18)|(($c2 & 0x3F) << 12)|
					  (($c3 & 0x3f) << 6)|($c4 & 0x3F)) - 0x10000),
				  (($uc < 0x100000) ? pack("nn", (($uc >> 10) | 0xd800), (($uc & 0x3ff) | 0xdc00)) : "\0?")) :
	     "\0?")
	 );
  /eg;
  $str;
}
sub jis_icon_au1
{
  my $this = shift;
  $this->_s2j($this->_u2s($this->_u2ai1($this->{str})));
}
sub sjis_icon_au1
{
  my $this = shift;
  $this->_u2s($this->_u2ai1($this->{str}));
}
sub sjis_jsky2
{
  my $this = shift;
  $this->_u2sj2($this->{str});
}
# -----------------------------------------------------------------------------
# $code = Unicode::Japanese->getcode($str);
# 
sub getcode {
  my $this = shift;
  my $str = shift;

  if( $]>=5.008 )
  {
    Encode::_utf8_off($str);
  }
  
  my $l = length($str);
  
  if((($l % 4) == 0)
     and ($str =~ m/^(?:$RE{BOM4_BE}|$RE{BOM4_LE})/o))
    {
      return 'utf32';
    }
  if((($l % 2) == 0)
     and ($str =~ m/^(?:$RE{BOM2_BE}|$RE{BOM2_LE})/o))
    {
      return 'utf16';
    }

  my $str2;
  
  if(($l % 4) == 0)
    {
      $str2 = $str;
      1 while($str2 =~ s/^(?:$RE{UTF32_BE})//o);
      if($str2 eq '')
	{
	  return 'utf32-be';
	}
      
      $str2 = $str;
      1 while($str2 =~ s/^(?:$RE{UTF32_LE})//o);
      if($str2 eq '')
	{
	  return 'utf32-le';
	}
    }
  
  if($str !~ m/[\e\x80-\xff]/)
    {
      return 'ascii';
    }

  if($str =~ m/$RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA}/o)
    {
      if($str =~ m/(?:$RE{JIS_0208})(?:[^\e]{2})*$RE{E_JIS_AU}/o)
	{
	  return 'jis-au';
	}
      elsif($str =~ m/(?:$RE{E_JSKY})/o)
	{
	  return 'jis-jsky';
	}
      else
	{
	  return 'jis';
	}
    }

  if($str =~ m/(?:$RE{E_JSKY})/o)
    {
      return 'sjis-jsky';
    }

  $str2 = $str;
  1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C})//o);
  if($str2 eq '')
    {
      return 'euc';
    }

  $str2 = $str;
  1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA})//o);
  if($str2 eq '')
    {
      return 'sjis';
    }

  my $str3;
  $str3 = $str2;
  1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_SJIS_AU})//o);
  if($str3 eq '')
    {
      return 'sjis-au';
    }


  $str3 = $str2;
  1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_IMODE})//o);
  if($str3 eq '')
    {
      return 'sjis-imode';
    }

  $str3 = $str2;
  1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_DOTI})//o);
  if($str3 eq '')
    {
      return 'sjis-doti';
    }

  $str2 = $str;
  1 while($str2 =~ s/^(?:$RE{UTF8})//o);
  if($str2 eq '')
    {
      return 'utf8';
    }

  return 'unknown';
}
sub _j2s2 {
  my $this = shift;
  my $esc = shift;
  my $str = shift;

  if($esc eq $ESC{JIS_0212})
    {
      $str =~ s/../$CHARCODE{UNDEF_SJIS}/g;
    }
  elsif($esc !~ m/^$RE{JIS_ASC}/)
    {
      $str =~ s{([\x21-\x7e]+)}{
        my $str = $1;
        $str =~ tr/\x21-\x7e/\xa1-\xfe/;
        if($esc =~ m/^$RE{JIS_0208}/)
	  {
	    $str =~ s/($RE{EUC_C})/
	      $J2S[unpack('n', $1)] or $this->_j2s3($1)
	        /geo;
	  }
	$str;
      }e;
    }
  
  $str;
}
sub sjis_au2
{
  my $this = shift;
  $this->_j2sa($this->_s2j($this->_u2ja2($this->{str})));
}
sub h2zKanaD {
  my $this = shift;

  if( !%_h2zKanaD )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xef\xbd\xb3\xef\xbe\x9e|\xef\xbd\xb6\xef\xbe\x9e|\xef\xbd\xb7\xef\xbe\x9e|\xef\xbd\xb8\xef\xbe\x9e|\xef\xbd\xb9\xef\xbe\x9e|\xef\xbd\xba\xef\xbe\x9e|\xef\xbd\xbb\xef\xbe\x9e|\xef\xbd\xbc\xef\xbe\x9e|\xef\xbd\xbd\xef\xbe\x9e|\xef\xbd\xbe\xef\xbe\x9e|\xef\xbd\xbf\xef\xbe\x9e|\xef\xbe\x80\xef\xbe\x9e|\xef\xbe\x81\xef\xbe\x9e|\xef\xbe\x82\xef\xbe\x9e|\xef\xbe\x83\xef\xbe\x9e|\xef\xbe\x84\xef\xbe\x9e|\xef\xbe\x8a\xef\xbe\x9e|\xef\xbe\x8a\xef\xbe\x9f|\xef\xbe\x8b\xef\xbe\x9e|\xef\xbe\x8b\xef\xbe\x9f|\xef\xbe\x8c\xef\xbe\x9e|\xef\xbe\x8c\xef\xbe\x9f|\xef\xbe\x8d\xef\xbe\x9e|\xef\xbe\x8d\xef\xbe\x9f|\xef\xbe\x8e\xef\xbe\x9e|\xef\xbe\x8e\xef\xbe\x9f)/$_h2zKanaD{$1}/eg;
  
  $this;
}
sub sjis_imode1
{
  my $this = shift;
  $this->_u2si1($this->{str});
}
sub eucjp
{
  shift->euc(@_);
}
# -----------------------------------------------------------------------------
# $bytes_utf8 = $unijp->utf8();
# 
sub utf8
{
  my $this = shift;
  $this->_validate_utf8($this->{str});
}
sub _s2e {
  my $this = shift;
  my $str = shift;
  
  if( $]>=5.008 )
  {
    Encode::_utf8_off($str);
  }

  $str =~ s/($RE{SJIS_DBCS}|$RE{SJIS_KANA})/
    $S2E[unpack('n', $1) or unpack('C', $1)] or $this->_s2e2($1)
      /geo;
  
  $str;
}
# -----------------------------------------------------------------------------
# $bytes_utf8 = $unijp->utf8_jsky();
# 
sub utf8_jsky
{
  my $this = shift;
  $this->_u2uj2($this->{str});
}
# utf8-jsky2 => utf8.
sub _uj2u2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
  {
    return '';
  }
  
  if(!defined($s2u_table))
  {
    $s2u_table = $this->_getFile('jcode/s2u.dat');
  }

  if(!defined($ej2u1))
  {
    $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat');
  }
  if(!defined($ej2u2))
  {
    $ej2u2 = $this->_getFile('jcode/emoji2/ej2u2.dat');
  }

  $str = $this->_validate_utf8($str);
  
  my @umap = (0x200, 0x000, 0x100);
  $str =~ s{($RE{E_JSKYv1_UTF8}+)}{
    join('',
      map{
        my $l = $_ - 0xe000;
        substr($ej2u1, ($umap[$l/256]+($l&255)+0x20) * 4, 4);
      } unpack("n*", $this->_utf8_ucs2($1))
    )
  }geo;
  $str =~ s{($RE{E_JSKYv2_UTF8}+)}{
    join('',
      map{
        my $l = $_ - 0xe300 + 0x20;
        substr($ej2u2, $l * 4, 4);
      } unpack("n*", $this->_utf8_ucs2($1))
    )
  }geo;
  
  $str;
  
}
sub utf8_jsky1
{
  my $this = shift;
  $this->_u2uj1($this->{str});
}
# -----------------------------------------------------------------------------
# $bytes_str = $unijp->conv($ocode,[$encode]);
# 
sub conv {
  my $this = shift;
  my $ocode = shift;
  my $encode = shift;
  my (@option) = @_;

  my $res;
  if(!defined($ocode))
    {
      use Carp;
      croak(qq(String#conv: param[1] is undef.));
    }
  elsif($ocode eq 'utf8')
    {
      $res = $this->utf8;
    }
  elsif($ocode eq 'euc' || $ocode eq 'euc-jp' )
    {
      $res = $this->euc;
    }
  elsif($ocode eq 'jis')
    {
      $res = $this->jis;
    }
  elsif($ocode eq 'sjis' || $ocode eq 'cp932')
    {
      $res = $this->sjis;
    }
  elsif($ocode eq 'sjis-imode')
    {
      $res = $this->sjis_imode;
    }
  elsif($ocode eq 'sjis-imode1')
    {
      $res = $this->sjis_imode1;
    }
  elsif($ocode eq 'sjis-imode2')
    {
      $res = $this->sjis_imode2;
    }
  elsif($ocode eq 'utf8-imode')
    {
      $res = $this->utf8_imode;
    }
  elsif($ocode eq 'utf8-imode1')
    {
      $res = $this->utf8_imode1;
    }
  elsif($ocode eq 'utf8-imode2')
    {
      $res = $this->utf8_imode2;
    }
  elsif($ocode eq 'sjis-doti')
    {
      $res = $this->sjis_doti;
    }
  elsif($ocode eq 'sjis-doti1')
    {
      $res = $this->sjis_doti;
    }
  elsif($ocode eq 'sjis-jsky')
    {
      $res = $this->sjis_jsky;
    }
  elsif($ocode eq 'sjis-jsky1')
    {
      $res = $this->sjis_jsky1;
    }
  elsif($ocode eq 'sjis-jsky2')
    {
      $res = $this->sjis_jsky2;
    }
  elsif($ocode eq 'jis-jsky')
    {
      $res = $this->jis_jsky;
    }
  elsif($ocode eq 'jis-jsky1')
    {
      $res = $this->jis_jsky1;
    }
  elsif($ocode eq 'jis-jsky2')
    {
      $res = $this->jis_jsky2;
    }
  elsif($ocode eq 'utf8-jsky')
    {
      $res = $this->utf8_jsky;
    }
  elsif($ocode eq 'utf8-jsky1')
    {
      $res = $this->utf8_jsky1;
    }
  elsif($ocode eq 'utf8-jsky2')
    {
      $res = $this->utf8_jsky2;
    }
  elsif($ocode eq 'jis-au')
    {
      $res = $this->jis_au2;
    }
  elsif($ocode eq 'jis-au1')
    {
      $res = $this->jis_au1;
    }
  elsif($ocode eq 'jis-au2')
    {
      $res = $this->jis_au2;
    }
  elsif($ocode eq 'sjis-au')
    {
      $res = $this->sjis_au2;
    }
  elsif($ocode eq 'sjis-au1')
    {
      $res = $this->sjis_au1;
    }
  elsif($ocode eq 'sjis-au2')
    {
      $res = $this->sjis_au2;
    }
  elsif($ocode eq 'sjis-icon-au')
    {
      $res = $this->sjis_icon_au2;
    }
  elsif($ocode eq 'sjis-icon-au1')
    {
      $res = $this->sjis_icon_au1;
    }
  elsif($ocode eq 'sjis-icon-au2')
    {
      $res = $this->sjis_icon_au2;
    }
  elsif($ocode eq 'jis-icon-au')
    {
      $res = $this->jis_icon_au2;
    }
  elsif($ocode eq 'jis-icon-au1')
    {
      $res = $this->jis_icon_au1;
    }
  elsif($ocode eq 'jis-icon-au2')
    {
      $res = $this->jis_icon_au2;
    }
  elsif($ocode eq 'euc-icon-au')
    {
      $res = $this->euc_icon_au2;
    }
  elsif($ocode eq 'euc-icon-au1')
    {
      $res = $this->euc_icon_au1;
    }
  elsif($ocode eq 'euc-icon-au2')
    {
      $res = $this->euc_icon_au2;
    }
  elsif($ocode eq 'utf8-icon-au')
    {
      $res = $this->utf8_icon_au2;
    }
  elsif($ocode eq 'utf8-icon-au1')
    {
      $res = $this->utf8_icon_au1;
    }
  elsif($ocode eq 'utf8-icon-au2')
    {
      $res = $this->utf8_icon_au2;
    }
  elsif($ocode eq 'ucs2')
    {
      $res = $this->ucs2;
    }
  elsif($ocode eq 'ucs4')
    {
      $res = $this->ucs4;
    }
  elsif($ocode eq 'utf16')
    {
      $res = $this->utf16;
    }
  elsif($ocode eq 'binary')
    {
      $res = $this->{str};
    }
  else
    {
      use Carp;
      croak(qq(String#conv: param[1]: invalid ocode "$ocode"));
    }

  if(defined($encode))
    {
      if($encode eq 'base64')
	{
	  $res = $this->_encodeBase64($res, @option);
	}
      else
	{
	  use Carp;
	  croak(qq(String#conv: param[2]: invalid encoding "$encode"));
	}
    }

  $res;
}
sub _utf16be_utf16 {
  my $this = shift;
  my $str = shift;

  $str;
}
sub hira2kata {
  my $this = shift;

  if( !%_hira2kata )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xe3\x81\x81|\xe3\x81\x82|\xe3\x81\x83|\xe3\x81\x84|\xe3\x81\x85|\xe3\x81\x86|\xe3\x81\x87|\xe3\x81\x88|\xe3\x81\x89|\xe3\x81\x8a|\xe3\x81\x8b|\xe3\x81\x8c|\xe3\x81\x8d|\xe3\x81\x8e|\xe3\x81\x8f|\xe3\x81\x90|\xe3\x81\x91|\xe3\x81\x92|\xe3\x81\x93|\xe3\x81\x94|\xe3\x81\x95|\xe3\x81\x96|\xe3\x81\x97|\xe3\x81\x98|\xe3\x81\x99|\xe3\x81\x9a|\xe3\x81\x9b|\xe3\x81\x9c|\xe3\x81\x9d|\xe3\x81\x9e|\xe3\x81\x9f|\xe3\x81\xa0|\xe3\x81\xa1|\xe3\x81\xa2|\xe3\x81\xa3|\xe3\x81\xa4|\xe3\x81\xa5|\xe3\x81\xa6|\xe3\x81\xa7|\xe3\x81\xa8|\xe3\x81\xa9|\xe3\x81\xaa|\xe3\x81\xab|\xe3\x81\xac|\xe3\x81\xad|\xe3\x81\xae|\xe3\x81\xaf|\xe3\x81\xb0|\xe3\x81\xb1|\xe3\x81\xb2|\xe3\x81\xb3|\xe3\x81\xb4|\xe3\x81\xb5|\xe3\x81\xb6|\xe3\x81\xb7|\xe3\x81\xb8|\xe3\x81\xb9|\xe3\x81\xba|\xe3\x81\xbb|\xe3\x81\xbc|\xe3\x81\xbd|\xe3\x81\xbe|\xe3\x81\xbf|\xe3\x82\x80|\xe3\x82\x81|\xe3\x82\x82|\xe3\x82\x83|\xe3\x82\x84|\xe3\x82\x85|\xe3\x82\x86|\xe3\x82\x87|\xe3\x82\x88|\xe3\x82\x89|\xe3\x82\x8a|\xe3\x82\x8b|\xe3\x82\x8c|\xe3\x82\x8d|\xe3\x82\x8e|\xe3\x82\x8f|\xe3\x82\x90|\xe3\x82\x91|\xe3\x82\x92|\xe3\x82\x93)/$_hira2kata{$1}/eg;
  
  $this;
}
sub splitCsvu
{
  my $this = shift;
  my $result = &splitCsv;
  
  if( $]>=5.008 && $this->{icode} ne 'binary' )
  {
    foreach(@$result)
    {
      Encode::_utf8_on($_);
    }
  }

  $result;
}
sub _u2ui1
{
  my $this = shift;
  my $str = shift;

  if(!defined($str))
  {
    return '';
  }

  #  imode   : F800-F9FF => U+0FF800 - U+0FF9FF
  # [BASIC]
  # F89F = E63E = ee 98 be = F3BFA29F
  # F9B0 = E70B = ee 9c 8b = F3BFA6B0
  # [EXTENSION]
  # F9B1 = E70C = ee 9c 8c = F3BFA6B1
  # F9FC = E757 = ee 9d 97 = F3BFA7BC
  $str =~ s{\xf3\xbf([\xa2-\xa7][\x80-\xbf])}{
    my ($in1, $in2) = unpack("CC", $1);
    my $in = (($in1 - 0xa2) << 6) + $in2;
    my $diff = $in <=  0xfc ?  0xfc -  0x9b
             : $in <= 0x17e ? 0x17e -  0xda
             :                0x1b0 - 0x10b;
    my $ucs2offset = $in + 0xe600 - $diff;
    $in <= 0x1b0 ? pack("C3", 0xee, (($ucs2offset>>6)&63)+128, ($ucs2offset&63)+128) : '?';
  }xeg;
  
  $str;
}
sub sjis_doti1
{
  my $this = shift;
  $this->_u2sd($this->{str});
}
# -----------------------------------------------------------------------------
# conversion methods (private).
# 
sub _s2j {
  my $this = shift;
  my $str = shift;

  $str =~ s/((?:$RE{SJIS_DBCS}|$RE{SJIS_KANA})+)/
    $this->_s2j2($1) . $ESC{ASC}
      /geo;

  $str;
}
sub _sa2j2 {
  my $this = shift;
  my $str = shift;

  $str =~ s/((?:$RE{SJIS_DBCS}|$RE{E_SJIS_AU})+|(?:$RE{SJIS_KANA})+)/
    my $s = $1;
  if($s =~ m,^$RE{SJIS_KANA},o)
    {
      $s =~ tr,\xa1-\xdf,\x21-\x5f,;
      $ESC{KANA} . $s
    }
  else
    {
      $s =~ s!($RE{SJIS_DBCS}|$RE{E_SJIS_AU})!
	$this->_sa2j3($1)
	  !geo;
      $ESC{JIS_0208} . $s;
    }
  /geo;
  
  $str;
}
sub _j2sa {
  my $this = shift;
  my $str = shift;

  $str =~ s/($RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA})([^\e]*)/
    $this->_j2sa2($1, $2)
      /geo;

  $str;
}
sub sjis_au1
{
  my $this = shift;
  $this->_j2sa($this->_s2j($this->_u2ja1($this->{str})));
}
sub join_csv {
  &joinCsv;
}
# utf8Ãæ¤Î<IMG ICON="">ʸ»ú¤òAU³¨Ê¸»ú¥³¡¼¥É¤ËÊÑ´¹
sub _ai2u1 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($ea2u1))
    {
      $ea2u1 = $this->_getFile('jcode/emoji2/ea2u.dat');
    }

  my $c;
  $str =~ s/$RE{E_ICON_AU_START}(\d+)$RE{E_ICON_AU_END}/
    ($1 > 0 and $1 <= 0x14a) ?
      ($c = substr($ea2u1, ($1-1) * 4, 4), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c) :
	'?'
    /ige;

  $str;
}
# -----------------------------------------------------------------------------
# sjis/³¨Ê¸»ú => utf8
# 
sub _s2u {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  my $l;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/
    $S2U{$1}
      or ($S2U{$1} =
	  (
	   $l = (unpack('n', $1) or unpack('C', $1)),
	   (
	    ($l >= 0xa1 and $l <= 0xdf)     ?
	    (
	     $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0x8100 and $l <= 0x9fff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xe000 and $l <= 0xfcff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l < 0x80) ?
	    chr($l) :
	    '?'
	   )
	  )
	 )/eg;
  
  $str;
  
}
sub utf8_imode1
{
  my $this = shift;
  $this->_u2ui1($this->{str});
}
sub _j2sa3 {
  my $this = shift;
  my $c = shift;

  my ($c1, $c2) = unpack('CC', $c);
  if ($c1 % 2)
    {
      $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71);
      $c2 -= 0x60 + ($c2 < 0xe0);
    }
  else
    {
      $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70);
      $c2 -= 2;
    }
  $c1 = 0xf6 if($c1 == 0xeb);
  $c1 = 0xf7 if($c1 == 0xec);
  $c1 = 0xf3 if($c1 == 0xed);
  $c1 = 0xf4 if($c1 == 0xee);
  
  pack('CC', $c1, $c2);
}
sub jis_jsky1
{
  my $this = shift;
  $this->_s2j($this->_u2sj1($this->{str}));
}
sub jis_icon_au2
{
  my $this = shift;
  $this->_s2j($this->_u2s($this->_u2ai2($this->{str})));
}
# -----------------------------------------------------------------------------
# $bytes_jsky = $unijp->sjis_jsky();
# 
sub sjis_jsky
{
  my $this = shift;
  $this->_u2sj2($this->{str});
}
sub _u2uj2
{
  my $this = shift;
  
  if(!defined($eu2j2))
  {
    $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat');
  }
  
  my $str = $this->_validate_utf8($this->{str});
  
  $str =~ s{([\xf0-\xf7][\x80-\xbf]{3})}{
    my ($c1,$c2,$c3,$c4) = unpack("C4", $1);
    my $ch = (($c1 & 0x07)<<18) | (($c2 & 0x3F)<<12) |
             (($c3 & 0x3f)<< 6) | ($c4 & 0x3F);
    if( 0x0fe000 <= $ch && $ch <= 0x0fffff )
    {
      my $c = substr($eu2j2, ($ch - 0x0fe000) * 5, 5);
      $c =~ tr,\0,,d;
      $c eq '' and $c = '?';
      if( $c =~ /^\e\$([GEFOPQ])(.)\x0f/ )
      {
        my ($j1,$j2) = ($1,$2);
        $j1 =~ tr/GEFOPQ/\xe0-\xe5/;
        $j2 =~ tr/!-z/\x01-\x5a/;
        $c = $this->_ucs2_utf8($j1.$j2);
      }
      $c;
    }else
    {
      '?';
    }
  }ge;
  $str;
}
# -----------------------------------------------------------------------------
# $bytes_iso2022jp = $unijp->jis();
# 
sub jis
{
  my $this = shift;
  $this->_s2j($this->sjis);
}
sub jis_au1
{
  my $this = shift;
  $this->_s2j($this->_u2ja1($this->{str}));
}
sub _utf8_ucs4 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  $str =~ s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}|(.))/
    defined($2) ? "\0\0\0$2" : 
    (length($1) == 1) ? pack("N", unpack("C", $1)) :
    (length($1) == 2) ? 
      do {
        ($c1,$c2) = unpack("C2", $1);
        my $n = (($c1 & 0x1F) << 6)|($c2 & 0x3F);
        pack("N", $n>=0x80 ? $n : unpack("C",'?'));
      } :
    (length($1) == 3) ?
      do {
        ($c1,$c2,$c3) = unpack("C3", $1);
        my $n = (($c1 & 0x0F) << 12)|(($c2 & 0x3F) << 6)| ($c3 & 0x3F);
        pack("N", $n>=0x800 ? $n : unpack("C",'?'));
      } :
    (length($1) == 4) ?
      do {
        ($c1,$c2,$c3,$c4) = unpack("C4", $1);
        my $n = (($c1 & 0x07) << 18)|(($c2 & 0x3F) << 12)|
                           (($c3 & 0x3f) << 6)|($c4 & 0x3F);
        pack("N", ($n>=0x010000 && $n<=0x10FFFF) ? $n : unpack("C",'?'));
      } :
      pack("N", unpack("C",'?'))
    /eg;

  $str;
}
# -----------------------------------------------------------------------------
# $bytes_utf8 = $unijp->get();
# 
sub get {
  my $this = shift;
  $this->{str};
}
sub z2h {
  my $this = shift;

  $this->z2hKana;
  $this->z2hNum;
  $this->z2hAlpha;
  $this->z2hSym;

  $this;
}
# -----------------------------------------------------------------------------
# $chars_utf8 = $unijp->getu();
# 
sub getu {
  my $this = shift;
  my $str = $this->{str};
  if( $]>=5.008 && $this->{icode} ne 'binary' )
  {
    Encode::_utf8_on($str);
  }
  $str;
}
sub _loadConvTable {


%_h2zNum = (
		"0" => "\xef\xbc\x90", "1" => "\xef\xbc\x91", 
		"2" => "\xef\xbc\x92", "3" => "\xef\xbc\x93", 
		"4" => "\xef\xbc\x94", "5" => "\xef\xbc\x95", 
		"6" => "\xef\xbc\x96", "7" => "\xef\xbc\x97", 
		"8" => "\xef\xbc\x98", "9" => "\xef\xbc\x99", 
		
);



%_z2hNum = (
		"\xef\xbc\x90" => "0", "\xef\xbc\x91" => "1", 
		"\xef\xbc\x92" => "2", "\xef\xbc\x93" => "3", 
		"\xef\xbc\x94" => "4", "\xef\xbc\x95" => "5", 
		"\xef\xbc\x96" => "6", "\xef\xbc\x97" => "7", 
		"\xef\xbc\x98" => "8", "\xef\xbc\x99" => "9", 
		
);



%_h2zAlpha = (
		"A" => "\xef\xbc\xa1", "B" => "\xef\xbc\xa2", 
		"C" => "\xef\xbc\xa3", "D" => "\xef\xbc\xa4", 
		"E" => "\xef\xbc\xa5", "F" => "\xef\xbc\xa6", 
		"G" => "\xef\xbc\xa7", "H" => "\xef\xbc\xa8", 
		"I" => "\xef\xbc\xa9", "J" => "\xef\xbc\xaa", 
		"K" => "\xef\xbc\xab", "L" => "\xef\xbc\xac", 
		"M" => "\xef\xbc\xad", "N" => "\xef\xbc\xae", 
		"O" => "\xef\xbc\xaf", "P" => "\xef\xbc\xb0", 
		"Q" => "\xef\xbc\xb1", "R" => "\xef\xbc\xb2", 
		"S" => "\xef\xbc\xb3", "T" => "\xef\xbc\xb4", 
		"U" => "\xef\xbc\xb5", "V" => "\xef\xbc\xb6", 
		"W" => "\xef\xbc\xb7", "X" => "\xef\xbc\xb8", 
		"Y" => "\xef\xbc\xb9", "Z" => "\xef\xbc\xba", 
		"a" => "\xef\xbd\x81", "b" => "\xef\xbd\x82", 
		"c" => "\xef\xbd\x83", "d" => "\xef\xbd\x84", 
		"e" => "\xef\xbd\x85", "f" => "\xef\xbd\x86", 
		"g" => "\xef\xbd\x87", "h" => "\xef\xbd\x88", 
		"i" => "\xef\xbd\x89", "j" => "\xef\xbd\x8a", 
		"k" => "\xef\xbd\x8b", "l" => "\xef\xbd\x8c", 
		"m" => "\xef\xbd\x8d", "n" => "\xef\xbd\x8e", 
		"o" => "\xef\xbd\x8f", "p" => "\xef\xbd\x90", 
		"q" => "\xef\xbd\x91", "r" => "\xef\xbd\x92", 
		"s" => "\xef\xbd\x93", "t" => "\xef\xbd\x94", 
		"u" => "\xef\xbd\x95", "v" => "\xef\xbd\x96", 
		"w" => "\xef\xbd\x97", "x" => "\xef\xbd\x98", 
		"y" => "\xef\xbd\x99", "z" => "\xef\xbd\x9a", 
		
);



%_z2hAlpha = (
		"\xef\xbc\xa1" => "A", "\xef\xbc\xa2" => "B", 
		"\xef\xbc\xa3" => "C", "\xef\xbc\xa4" => "D", 
		"\xef\xbc\xa5" => "E", "\xef\xbc\xa6" => "F", 
		"\xef\xbc\xa7" => "G", "\xef\xbc\xa8" => "H", 
		"\xef\xbc\xa9" => "I", "\xef\xbc\xaa" => "J", 
		"\xef\xbc\xab" => "K", "\xef\xbc\xac" => "L", 
		"\xef\xbc\xad" => "M", "\xef\xbc\xae" => "N", 
		"\xef\xbc\xaf" => "O", "\xef\xbc\xb0" => "P", 
		"\xef\xbc\xb1" => "Q", "\xef\xbc\xb2" => "R", 
		"\xef\xbc\xb3" => "S", "\xef\xbc\xb4" => "T", 
		"\xef\xbc\xb5" => "U", "\xef\xbc\xb6" => "V", 
		"\xef\xbc\xb7" => "W", "\xef\xbc\xb8" => "X", 
		"\xef\xbc\xb9" => "Y", "\xef\xbc\xba" => "Z", 
		"\xef\xbd\x81" => "a", "\xef\xbd\x82" => "b", 
		"\xef\xbd\x83" => "c", "\xef\xbd\x84" => "d", 
		"\xef\xbd\x85" => "e", "\xef\xbd\x86" => "f", 
		"\xef\xbd\x87" => "g", "\xef\xbd\x88" => "h", 
		"\xef\xbd\x89" => "i", "\xef\xbd\x8a" => "j", 
		"\xef\xbd\x8b" => "k", "\xef\xbd\x8c" => "l", 
		"\xef\xbd\x8d" => "m", "\xef\xbd\x8e" => "n", 
		"\xef\xbd\x8f" => "o", "\xef\xbd\x90" => "p", 
		"\xef\xbd\x91" => "q", "\xef\xbd\x92" => "r", 
		"\xef\xbd\x93" => "s", "\xef\xbd\x94" => "t", 
		"\xef\xbd\x95" => "u", "\xef\xbd\x96" => "v", 
		"\xef\xbd\x97" => "w", "\xef\xbd\x98" => "x", 
		"\xef\xbd\x99" => "y", "\xef\xbd\x9a" => "z", 
		
);



%_h2zSym = (
		"\x20" => "\xe3\x80\x80", "\x21" => "\xef\xbc\x81", 
		"\x22" => "\xe2\x80\x9d", "\x23" => "\xef\xbc\x83", 
		"\x24" => "\xef\xbc\x84", "\x25" => "\xef\xbc\x85", 
		"\x26" => "\xef\xbc\x86", "\x27" => "\xe2\x80\x99", 
		"\x28" => "\xef\xbc\x88", "\x29" => "\xef\xbc\x89", 
		"\x2a" => "\xef\xbc\x8a", "\x2b" => "\xef\xbc\x8b", 
		"\x2c" => "\xef\xbc\x8c", "\x2d" => "\xef\xbc\x8d", 
		"\x2e" => "\xef\xbc\x8e", "\x2f" => "\xef\xbc\x8f", 
		"\x3a" => "\xef\xbc\x9a", "\x3b" => "\xef\xbc\x9b", 
		"\x3c" => "\xef\xbc\x9c", "\x3d" => "\xef\xbc\x9d", 
		"\x3e" => "\xef\xbc\x9e", "\x3f" => "\xef\xbc\x9f", 
		"\x40" => "\xef\xbc\xa0", "\x5b" => "\xef\xbc\xbb", 
		"\x5c" => "\xef\xbf\xa5", "\x5d" => "\xef\xbc\xbd", 
		"\x5e" => "\xef\xbc\xbe", "_" => "\xef\xbc\xbf", 
		"\x60" => "\xef\xbd\x80", "\x7b" => "\xef\xbd\x9b", 
		"\x7c" => "\xef\xbd\x9c", "\x7d" => "\xef\xbd\x9d", 
		"\x7e" => "\xef\xbd\x9e", 
);



%_z2hSym = (
		"\xe3\x80\x80" => "\x20", "\xef\xbc\x8c" => "\x2c", 
		"\xef\xbc\x8e" => "\x2e", "\xef\xbc\x9a" => "\x3a", 
		"\xef\xbc\x9b" => "\x3b", "\xef\xbc\x9f" => "\x3f", 
		"\xef\xbc\x81" => "\x21", "\xef\xbd\x80" => "\x60", 
		"\xef\xbc\xbe" => "\x5e", "\xef\xbc\xbf" => "_", 
		"\xef\xbc\x8f" => "\x2f", "\xef\xbd\x9e" => "\x7e", 
		"\xef\xbd\x9c" => "\x7c", "\xe2\x80\x99" => "\x27", 
		"\xe2\x80\x9d" => "\x22", "\xef\xbc\x88" => "\x28", 
		"\xef\xbc\x89" => "\x29", "\xef\xbc\xbb" => "\x5b", 
		"\xef\xbc\xbd" => "\x5d", "\xef\xbd\x9b" => "\x7b", 
		"\xef\xbd\x9d" => "\x7d", "\xef\xbc\x8b" => "\x2b", 
		"\xef\xbc\x8d" => "\x2d", "\xef\xbc\x9d" => "\x3d", 
		"\xef\xbc\x9c" => "\x3c", "\xef\xbc\x9e" => "\x3e", 
		"\xef\xbf\xa5" => "\x5c", "\xef\xbc\x84" => "\x24", 
		"\xef\xbc\x85" => "\x25", "\xef\xbc\x83" => "\x23", 
		"\xef\xbc\x86" => "\x26", "\xef\xbc\x8a" => "\x2a", 
		"\xef\xbc\xa0" => "\x40", "\xe3\x80\x9c" => "\x7e", 
		
);



%_h2zKanaK = (
		"\xef\xbd\xa1" => "\xe3\x80\x82", "\xef\xbd\xa2" => "\xe3\x80\x8c", 
		"\xef\xbd\xa3" => "\xe3\x80\x8d", "\xef\xbd\xa4" => "\xe3\x80\x81", 
		"\xef\xbd\xa5" => "\xe3\x83\xbb", "\xef\xbd\xa6" => "\xe3\x83\xb2", 
		"\xef\xbd\xa7" => "\xe3\x82\xa1", "\xef\xbd\xa8" => "\xe3\x82\xa3", 
		"\xef\xbd\xa9" => "\xe3\x82\xa5", "\xef\xbd\xaa" => "\xe3\x82\xa7", 
		"\xef\xbd\xab" => "\xe3\x82\xa9", "\xef\xbd\xac" => "\xe3\x83\xa3", 
		"\xef\xbd\xad" => "\xe3\x83\xa5", "\xef\xbd\xae" => "\xe3\x83\xa7", 
		"\xef\xbd\xaf" => "\xe3\x83\x83", "\xef\xbd\xb0" => "\xe3\x83\xbc", 
		"\xef\xbd\xb1" => "\xe3\x82\xa2", "\xef\xbd\xb2" => "\xe3\x82\xa4", 
		"\xef\xbd\xb3" => "\xe3\x82\xa6", "\xef\xbd\xb4" => "\xe3\x82\xa8", 
		"\xef\xbd\xb5" => "\xe3\x82\xaa", "\xef\xbd\xb6" => "\xe3\x82\xab", 
		"\xef\xbd\xb7" => "\xe3\x82\xad", "\xef\xbd\xb8" => "\xe3\x82\xaf", 
		"\xef\xbd\xb9" => "\xe3\x82\xb1", "\xef\xbd\xba" => "\xe3\x82\xb3", 
		"\xef\xbd\xbb" => "\xe3\x82\xb5", "\xef\xbd\xbc" => "\xe3\x82\xb7", 
		"\xef\xbd\xbd" => "\xe3\x82\xb9", "\xef\xbd\xbe" => "\xe3\x82\xbb", 
		"\xef\xbd\xbf" => "\xe3\x82\xbd", "\xef\xbe\x80" => "\xe3\x82\xbf", 
		"\xef\xbe\x81" => "\xe3\x83\x81", "\xef\xbe\x82" => "\xe3\x83\x84", 
		"\xef\xbe\x83" => "\xe3\x83\x86", "\xef\xbe\x84" => "\xe3\x83\x88", 
		"\xef\xbe\x85" => "\xe3\x83\x8a", "\xef\xbe\x86" => "\xe3\x83\x8b", 
		"\xef\xbe\x87" => "\xe3\x83\x8c", "\xef\xbe\x88" => "\xe3\x83\x8d", 
		"\xef\xbe\x89" => "\xe3\x83\x8e", "\xef\xbe\x8a" => "\xe3\x83\x8f", 
		"\xef\xbe\x8b" => "\xe3\x83\x92", "\xef\xbe\x8c" => "\xe3\x83\x95", 
		"\xef\xbe\x8d" => "\xe3\x83\x98", "\xef\xbe\x8e" => "\xe3\x83\x9b", 
		"\xef\xbe\x8f" => "\xe3\x83\x9e", "\xef\xbe\x90" => "\xe3\x83\x9f", 
		"\xef\xbe\x91" => "\xe3\x83\xa0", "\xef\xbe\x92" => "\xe3\x83\xa1", 
		"\xef\xbe\x93" => "\xe3\x83\xa2", "\xef\xbe\x94" => "\xe3\x83\xa4", 
		"\xef\xbe\x95" => "\xe3\x83\xa6", "\xef\xbe\x96" => "\xe3\x83\xa8", 
		"\xef\xbe\x97" => "\xe3\x83\xa9", "\xef\xbe\x98" => "\xe3\x83\xaa", 
		"\xef\xbe\x99" => "\xe3\x83\xab", "\xef\xbe\x9a" => "\xe3\x83\xac", 
		"\xef\xbe\x9b" => "\xe3\x83\xad", "\xef\xbe\x9c" => "\xe3\x83\xaf", 
		"\xef\xbe\x9d" => "\xe3\x83\xb3", "\xef\xbe\x9e" => "\xe3\x82\x9b", 
		"\xef\xbe\x9f" => "\xe3\x82\x9c", 
);



%_z2hKanaK = (
		"\xe3\x80\x81" => "\xef\xbd\xa4", "\xe3\x80\x82" => "\xef\xbd\xa1", 
		"\xe3\x83\xbb" => "\xef\xbd\xa5", "\xe3\x82\x9b" => "\xef\xbe\x9e", 
		"\xe3\x82\x9c" => "\xef\xbe\x9f", "\xe3\x83\xbc" => "\xef\xbd\xb0", 
		"\xe3\x80\x8c" => "\xef\xbd\xa2", "\xe3\x80\x8d" => "\xef\xbd\xa3", 
		"\xe3\x82\xa1" => "\xef\xbd\xa7", "\xe3\x82\xa2" => "\xef\xbd\xb1", 
		"\xe3\x82\xa3" => "\xef\xbd\xa8", "\xe3\x82\xa4" => "\xef\xbd\xb2", 
		"\xe3\x82\xa5" => "\xef\xbd\xa9", "\xe3\x82\xa6" => "\xef\xbd\xb3", 
		"\xe3\x82\xa7" => "\xef\xbd\xaa", "\xe3\x82\xa8" => "\xef\xbd\xb4", 
		"\xe3\x82\xa9" => "\xef\xbd\xab", "\xe3\x82\xaa" => "\xef\xbd\xb5", 
		"\xe3\x82\xab" => "\xef\xbd\xb6", "\xe3\x82\xad" => "\xef\xbd\xb7", 
		"\xe3\x82\xaf" => "\xef\xbd\xb8", "\xe3\x82\xb1" => "\xef\xbd\xb9", 
		"\xe3\x82\xb3" => "\xef\xbd\xba", "\xe3\x82\xb5" => "\xef\xbd\xbb", 
		"\xe3\x82\xb7" => "\xef\xbd\xbc", "\xe3\x82\xb9" => "\xef\xbd\xbd", 
		"\xe3\x82\xbb" => "\xef\xbd\xbe", "\xe3\x82\xbd" => "\xef\xbd\xbf", 
		"\xe3\x82\xbf" => "\xef\xbe\x80", "\xe3\x83\x81" => "\xef\xbe\x81", 
		"\xe3\x83\x83" => "\xef\xbd\xaf", "\xe3\x83\x84" => "\xef\xbe\x82", 
		"\xe3\x83\x86" => "\xef\xbe\x83", "\xe3\x83\x88" => "\xef\xbe\x84", 
		"\xe3\x83\x8a" => "\xef\xbe\x85", "\xe3\x83\x8b" => "\xef\xbe\x86", 
		"\xe3\x83\x8c" => "\xef\xbe\x87", "\xe3\x83\x8d" => "\xef\xbe\x88", 
		"\xe3\x83\x8e" => "\xef\xbe\x89", "\xe3\x83\x8f" => "\xef\xbe\x8a", 
		"\xe3\x83\x92" => "\xef\xbe\x8b", "\xe3\x83\x95" => "\xef\xbe\x8c", 
		"\xe3\x83\x98" => "\xef\xbe\x8d", "\xe3\x83\x9b" => "\xef\xbe\x8e", 
		"\xe3\x83\x9e" => "\xef\xbe\x8f", "\xe3\x83\x9f" => "\xef\xbe\x90", 
		"\xe3\x83\xa0" => "\xef\xbe\x91", "\xe3\x83\xa1" => "\xef\xbe\x92", 
		"\xe3\x83\xa2" => "\xef\xbe\x93", "\xe3\x83\xa3" => "\xef\xbd\xac", 
		"\xe3\x83\xa4" => "\xef\xbe\x94", "\xe3\x83\xa5" => "\xef\xbd\xad", 
		"\xe3\x83\xa6" => "\xef\xbe\x95", "\xe3\x83\xa7" => "\xef\xbd\xae", 
		"\xe3\x83\xa8" => "\xef\xbe\x96", "\xe3\x83\xa9" => "\xef\xbe\x97", 
		"\xe3\x83\xaa" => "\xef\xbe\x98", "\xe3\x83\xab" => "\xef\xbe\x99", 
		"\xe3\x83\xac" => "\xef\xbe\x9a", "\xe3\x83\xad" => "\xef\xbe\x9b", 
		"\xe3\x83\xaf" => "\xef\xbe\x9c", "\xe3\x83\xb2" => "\xef\xbd\xa6", 
		"\xe3\x83\xb3" => "\xef\xbe\x9d", 
);



%_h2zKanaD = (
		"\xef\xbd\xb3\xef\xbe\x9e" => "\xe3\x83\xb4", "\xef\xbd\xb6\xef\xbe\x9e" => "\xe3\x82\xac", 
		"\xef\xbd\xb7\xef\xbe\x9e" => "\xe3\x82\xae", "\xef\xbd\xb8\xef\xbe\x9e" => "\xe3\x82\xb0", 
		"\xef\xbd\xb9\xef\xbe\x9e" => "\xe3\x82\xb2", "\xef\xbd\xba\xef\xbe\x9e" => "\xe3\x82\xb4", 
		"\xef\xbd\xbb\xef\xbe\x9e" => "\xe3\x82\xb6", "\xef\xbd\xbc\xef\xbe\x9e" => "\xe3\x82\xb8", 
		"\xef\xbd\xbd\xef\xbe\x9e" => "\xe3\x82\xba", "\xef\xbd\xbe\xef\xbe\x9e" => "\xe3\x82\xbc", 
		"\xef\xbd\xbf\xef\xbe\x9e" => "\xe3\x82\xbe", "\xef\xbe\x80\xef\xbe\x9e" => "\xe3\x83\x80", 
		"\xef\xbe\x81\xef\xbe\x9e" => "\xe3\x83\x82", "\xef\xbe\x82\xef\xbe\x9e" => "\xe3\x83\x85", 
		"\xef\xbe\x83\xef\xbe\x9e" => "\xe3\x83\x87", "\xef\xbe\x84\xef\xbe\x9e" => "\xe3\x83\x89", 
		"\xef\xbe\x8a\xef\xbe\x9e" => "\xe3\x83\x90", "\xef\xbe\x8a\xef\xbe\x9f" => "\xe3\x83\x91", 
		"\xef\xbe\x8b\xef\xbe\x9e" => "\xe3\x83\x93", "\xef\xbe\x8b\xef\xbe\x9f" => "\xe3\x83\x94", 
		"\xef\xbe\x8c\xef\xbe\x9e" => "\xe3\x83\x96", "\xef\xbe\x8c\xef\xbe\x9f" => "\xe3\x83\x97", 
		"\xef\xbe\x8d\xef\xbe\x9e" => "\xe3\x83\x99", "\xef\xbe\x8d\xef\xbe\x9f" => "\xe3\x83\x9a", 
		"\xef\xbe\x8e\xef\xbe\x9e" => "\xe3\x83\x9c", "\xef\xbe\x8e\xef\xbe\x9f" => "\xe3\x83\x9d", 
		
);



%_z2hKanaD = (
		"\xe3\x82\xac" => "\xef\xbd\xb6\xef\xbe\x9e", "\xe3\x82\xae" => "\xef\xbd\xb7\xef\xbe\x9e", 
		"\xe3\x82\xb0" => "\xef\xbd\xb8\xef\xbe\x9e", "\xe3\x82\xb2" => "\xef\xbd\xb9\xef\xbe\x9e", 
		"\xe3\x82\xb4" => "\xef\xbd\xba\xef\xbe\x9e", "\xe3\x82\xb6" => "\xef\xbd\xbb\xef\xbe\x9e", 
		"\xe3\x82\xb8" => "\xef\xbd\xbc\xef\xbe\x9e", "\xe3\x82\xba" => "\xef\xbd\xbd\xef\xbe\x9e", 
		"\xe3\x82\xbc" => "\xef\xbd\xbe\xef\xbe\x9e", "\xe3\x82\xbe" => "\xef\xbd\xbf\xef\xbe\x9e", 
		"\xe3\x83\x80" => "\xef\xbe\x80\xef\xbe\x9e", "\xe3\x83\x82" => "\xef\xbe\x81\xef\xbe\x9e", 
		"\xe3\x83\x85" => "\xef\xbe\x82\xef\xbe\x9e", "\xe3\x83\x87" => "\xef\xbe\x83\xef\xbe\x9e", 
		"\xe3\x83\x89" => "\xef\xbe\x84\xef\xbe\x9e", "\xe3\x83\x90" => "\xef\xbe\x8a\xef\xbe\x9e", 
		"\xe3\x83\x91" => "\xef\xbe\x8a\xef\xbe\x9f", "\xe3\x83\x93" => "\xef\xbe\x8b\xef\xbe\x9e", 
		"\xe3\x83\x94" => "\xef\xbe\x8b\xef\xbe\x9f", "\xe3\x83\x96" => "\xef\xbe\x8c\xef\xbe\x9e", 
		"\xe3\x83\x97" => "\xef\xbe\x8c\xef\xbe\x9f", "\xe3\x83\x99" => "\xef\xbe\x8d\xef\xbe\x9e", 
		"\xe3\x83\x9a" => "\xef\xbe\x8d\xef\xbe\x9f", "\xe3\x83\x9c" => "\xef\xbe\x8e\xef\xbe\x9e", 
		"\xe3\x83\x9d" => "\xef\xbe\x8e\xef\xbe\x9f", "\xe3\x83\xb4" => "\xef\xbd\xb3\xef\xbe\x9e", 
		
);



%_hira2kata = (
		"\xe3\x81\x81" => "\xe3\x82\xa1", "\xe3\x81\x82" => "\xe3\x82\xa2", 
		"\xe3\x81\x83" => "\xe3\x82\xa3", "\xe3\x81\x84" => "\xe3\x82\xa4", 
		"\xe3\x81\x85" => "\xe3\x82\xa5", "\xe3\x81\x86" => "\xe3\x82\xa6", 
		"\xe3\x81\x87" => "\xe3\x82\xa7", "\xe3\x81\x88" => "\xe3\x82\xa8", 
		"\xe3\x81\x89" => "\xe3\x82\xa9", "\xe3\x81\x8a" => "\xe3\x82\xaa", 
		"\xe3\x81\x8b" => "\xe3\x82\xab", "\xe3\x81\x8c" => "\xe3\x82\xac", 
		"\xe3\x81\x8d" => "\xe3\x82\xad", "\xe3\x81\x8e" => "\xe3\x82\xae", 
		"\xe3\x81\x8f" => "\xe3\x82\xaf", "\xe3\x81\x90" => "\xe3\x82\xb0", 
		"\xe3\x81\x91" => "\xe3\x82\xb1", "\xe3\x81\x92" => "\xe3\x82\xb2", 
		"\xe3\x81\x93" => "\xe3\x82\xb3", "\xe3\x81\x94" => "\xe3\x82\xb4", 
		"\xe3\x81\x95" => "\xe3\x82\xb5", "\xe3\x81\x96" => "\xe3\x82\xb6", 
		"\xe3\x81\x97" => "\xe3\x82\xb7", "\xe3\x81\x98" => "\xe3\x82\xb8", 
		"\xe3\x81\x99" => "\xe3\x82\xb9", "\xe3\x81\x9a" => "\xe3\x82\xba", 
		"\xe3\x81\x9b" => "\xe3\x82\xbb", "\xe3\x81\x9c" => "\xe3\x82\xbc", 
		"\xe3\x81\x9d" => "\xe3\x82\xbd", "\xe3\x81\x9e" => "\xe3\x82\xbe", 
		"\xe3\x81\x9f" => "\xe3\x82\xbf", "\xe3\x81\xa0" => "\xe3\x83\x80", 
		"\xe3\x81\xa1" => "\xe3\x83\x81", "\xe3\x81\xa2" => "\xe3\x83\x82", 
		"\xe3\x81\xa3" => "\xe3\x83\x83", "\xe3\x81\xa4" => "\xe3\x83\x84", 
		"\xe3\x81\xa5" => "\xe3\x83\x85", "\xe3\x81\xa6" => "\xe3\x83\x86", 
		"\xe3\x81\xa7" => "\xe3\x83\x87", "\xe3\x81\xa8" => "\xe3\x83\x88", 
		"\xe3\x81\xa9" => "\xe3\x83\x89", "\xe3\x81\xaa" => "\xe3\x83\x8a", 
		"\xe3\x81\xab" => "\xe3\x83\x8b", "\xe3\x81\xac" => "\xe3\x83\x8c", 
		"\xe3\x81\xad" => "\xe3\x83\x8d", "\xe3\x81\xae" => "\xe3\x83\x8e", 
		"\xe3\x81\xaf" => "\xe3\x83\x8f", "\xe3\x81\xb0" => "\xe3\x83\x90", 
		"\xe3\x81\xb1" => "\xe3\x83\x91", "\xe3\x81\xb2" => "\xe3\x83\x92", 
		"\xe3\x81\xb3" => "\xe3\x83\x93", "\xe3\x81\xb4" => "\xe3\x83\x94", 
		"\xe3\x81\xb5" => "\xe3\x83\x95", "\xe3\x81\xb6" => "\xe3\x83\x96", 
		"\xe3\x81\xb7" => "\xe3\x83\x97", "\xe3\x81\xb8" => "\xe3\x83\x98", 
		"\xe3\x81\xb9" => "\xe3\x83\x99", "\xe3\x81\xba" => "\xe3\x83\x9a", 
		"\xe3\x81\xbb" => "\xe3\x83\x9b", "\xe3\x81\xbc" => "\xe3\x83\x9c", 
		"\xe3\x81\xbd" => "\xe3\x83\x9d", "\xe3\x81\xbe" => "\xe3\x83\x9e", 
		"\xe3\x81\xbf" => "\xe3\x83\x9f", "\xe3\x82\x80" => "\xe3\x83\xa0", 
		"\xe3\x82\x81" => "\xe3\x83\xa1", "\xe3\x82\x82" => "\xe3\x83\xa2", 
		"\xe3\x82\x83" => "\xe3\x83\xa3", "\xe3\x82\x84" => "\xe3\x83\xa4", 
		"\xe3\x82\x85" => "\xe3\x83\xa5", "\xe3\x82\x86" => "\xe3\x83\xa6", 
		"\xe3\x82\x87" => "\xe3\x83\xa7", "\xe3\x82\x88" => "\xe3\x83\xa8", 
		"\xe3\x82\x89" => "\xe3\x83\xa9", "\xe3\x82\x8a" => "\xe3\x83\xaa", 
		"\xe3\x82\x8b" => "\xe3\x83\xab", "\xe3\x82\x8c" => "\xe3\x83\xac", 
		"\xe3\x82\x8d" => "\xe3\x83\xad", "\xe3\x82\x8e" => "\xe3\x83\xae", 
		"\xe3\x82\x8f" => "\xe3\x83\xaf", "\xe3\x82\x90" => "\xe3\x83\xb0", 
		"\xe3\x82\x91" => "\xe3\x83\xb1", "\xe3\x82\x92" => "\xe3\x83\xb2", 
		"\xe3\x82\x93" => "\xe3\x83\xb3", 
);



%_kata2hira = (
		"\xe3\x82\xa1" => "\xe3\x81\x81", "\xe3\x82\xa2" => "\xe3\x81\x82", 
		"\xe3\x82\xa3" => "\xe3\x81\x83", "\xe3\x82\xa4" => "\xe3\x81\x84", 
		"\xe3\x82\xa5" => "\xe3\x81\x85", "\xe3\x82\xa6" => "\xe3\x81\x86", 
		"\xe3\x82\xa7" => "\xe3\x81\x87", "\xe3\x82\xa8" => "\xe3\x81\x88", 
		"\xe3\x82\xa9" => "\xe3\x81\x89", "\xe3\x82\xaa" => "\xe3\x81\x8a", 
		"\xe3\x82\xab" => "\xe3\x81\x8b", "\xe3\x82\xac" => "\xe3\x81\x8c", 
		"\xe3\x82\xad" => "\xe3\x81\x8d", "\xe3\x82\xae" => "\xe3\x81\x8e", 
		"\xe3\x82\xaf" => "\xe3\x81\x8f", "\xe3\x82\xb0" => "\xe3\x81\x90", 
		"\xe3\x82\xb1" => "\xe3\x81\x91", "\xe3\x82\xb2" => "\xe3\x81\x92", 
		"\xe3\x82\xb3" => "\xe3\x81\x93", "\xe3\x82\xb4" => "\xe3\x81\x94", 
		"\xe3\x82\xb5" => "\xe3\x81\x95", "\xe3\x82\xb6" => "\xe3\x81\x96", 
		"\xe3\x82\xb7" => "\xe3\x81\x97", "\xe3\x82\xb8" => "\xe3\x81\x98", 
		"\xe3\x82\xb9" => "\xe3\x81\x99", "\xe3\x82\xba" => "\xe3\x81\x9a", 
		"\xe3\x82\xbb" => "\xe3\x81\x9b", "\xe3\x82\xbc" => "\xe3\x81\x9c", 
		"\xe3\x82\xbd" => "\xe3\x81\x9d", "\xe3\x82\xbe" => "\xe3\x81\x9e", 
		"\xe3\x82\xbf" => "\xe3\x81\x9f", "\xe3\x83\x80" => "\xe3\x81\xa0", 
		"\xe3\x83\x81" => "\xe3\x81\xa1", "\xe3\x83\x82" => "\xe3\x81\xa2", 
		"\xe3\x83\x83" => "\xe3\x81\xa3", "\xe3\x83\x84" => "\xe3\x81\xa4", 
		"\xe3\x83\x85" => "\xe3\x81\xa5", "\xe3\x83\x86" => "\xe3\x81\xa6", 
		"\xe3\x83\x87" => "\xe3\x81\xa7", "\xe3\x83\x88" => "\xe3\x81\xa8", 
		"\xe3\x83\x89" => "\xe3\x81\xa9", "\xe3\x83\x8a" => "\xe3\x81\xaa", 
		"\xe3\x83\x8b" => "\xe3\x81\xab", "\xe3\x83\x8c" => "\xe3\x81\xac", 
		"\xe3\x83\x8d" => "\xe3\x81\xad", "\xe3\x83\x8e" => "\xe3\x81\xae", 
		"\xe3\x83\x8f" => "\xe3\x81\xaf", "\xe3\x83\x90" => "\xe3\x81\xb0", 
		"\xe3\x83\x91" => "\xe3\x81\xb1", "\xe3\x83\x92" => "\xe3\x81\xb2", 
		"\xe3\x83\x93" => "\xe3\x81\xb3", "\xe3\x83\x94" => "\xe3\x81\xb4", 
		"\xe3\x83\x95" => "\xe3\x81\xb5", "\xe3\x83\x96" => "\xe3\x81\xb6", 
		"\xe3\x83\x97" => "\xe3\x81\xb7", "\xe3\x83\x98" => "\xe3\x81\xb8", 
		"\xe3\x83\x99" => "\xe3\x81\xb9", "\xe3\x83\x9a" => "\xe3\x81\xba", 
		"\xe3\x83\x9b" => "\xe3\x81\xbb", "\xe3\x83\x9c" => "\xe3\x81\xbc", 
		"\xe3\x83\x9d" => "\xe3\x81\xbd", "\xe3\x83\x9e" => "\xe3\x81\xbe", 
		"\xe3\x83\x9f" => "\xe3\x81\xbf", "\xe3\x83\xa0" => "\xe3\x82\x80", 
		"\xe3\x83\xa1" => "\xe3\x82\x81", "\xe3\x83\xa2" => "\xe3\x82\x82", 
		"\xe3\x83\xa3" => "\xe3\x82\x83", "\xe3\x83\xa4" => "\xe3\x82\x84", 
		"\xe3\x83\xa5" => "\xe3\x82\x85", "\xe3\x83\xa6" => "\xe3\x82\x86", 
		"\xe3\x83\xa7" => "\xe3\x82\x87", "\xe3\x83\xa8" => "\xe3\x82\x88", 
		"\xe3\x83\xa9" => "\xe3\x82\x89", "\xe3\x83\xaa" => "\xe3\x82\x8a", 
		"\xe3\x83\xab" => "\xe3\x82\x8b", "\xe3\x83\xac" => "\xe3\x82\x8c", 
		"\xe3\x83\xad" => "\xe3\x82\x8d", "\xe3\x83\xae" => "\xe3\x82\x8e", 
		"\xe3\x83\xaf" => "\xe3\x82\x8f", "\xe3\x83\xb0" => "\xe3\x82\x90", 
		"\xe3\x83\xb1" => "\xe3\x82\x91", "\xe3\x83\xb2" => "\xe3\x82\x92", 
		"\xe3\x83\xb3" => "\xe3\x82\x93", 
);


}
# -----------------------------------------------------------------------------
# unijp();
#
sub unijp
{
  Unicode::Japanese->new(@_);
}
sub utf8_imode2
{
  my $this = shift;
  $this->_u2ui2($this->{str});
}
# utf8 => utf8-jsky2
sub _u2uj1
{
  my $this = shift;
  
  if(!defined($eu2j1))
  {
    $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat');
  }
  
  my $str = $this->_validate_utf8($this->{str});
  
  $str =~ s{([\xf0-\xf7][\x80-\xbf]{3})}{
    my ($c1,$c2,$c3,$c4) = unpack("C4", $1);
    my $ch = (($c1 & 0x07)<<18) | (($c2 & 0x3F)<<12) |
             (($c3 & 0x3f)<< 6) | ($c4 & 0x3F);
    if( 0x0fe000 <= $ch && $ch <= 0x0fffff )
    {
      my $c = substr($eu2j1, ($ch - 0x0fe000) * 5, 5);
      $c =~ tr,\0,,d;
      $c eq '' and $c = '?';
      if( $c =~ /^\e\$([GEFOPQ])(.)\x0f/ )
      {
        my ($j1,$j2) = ($1,$2);
        $j1 =~ tr/GEF/\xe0-\xe5/;
        $j2 =~ tr/!-z/\x01-\x5a/;
        $c = $this->_ucs2_utf8($j1.$j2);
      }
      $c;
    }else
    {
      '?';
    }
  }ge;
  $str;
}
# utf8 -> jis-au1
sub _u2ja1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2a1s))
    {
      $eu2a1s = $this->_getFile('jcode/emoji2/eu2as.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2a1s, ($ch - 0x0fe000) * 2, 2),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;

  $str;
}
sub _j2s {
  my $this = shift;
  my $str = shift;

  $str =~ s/($RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA})([^\e]*)/
    $this->_j2s2($1, $2)
      /geo;

  $str;
}
# -----------------------------------------------------------------------------
# $bytes_utf16 = $unijp->utf16();
# 
sub utf16
{
  my $this = shift;
  $this->_utf8_utf16($this->{str});
}
sub utf8_jsky2
{
  my $this = shift;
  $this->_u2uj2($this->{str});
}
# -----------------------------------------------------------------------------
# AU³¨Ê¸»ú¥¿¥°ÊÑ´¹
# 
# utf8Ãæ¤ÎAU³¨Ê¸»ú¤ò<IMG ICON="">¤ØÊÑ´¹
sub _u2ai1 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($eu2a1))
    {
      $eu2a1 = $this->_getFile('jcode/emoji2/eu2a.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $d;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? $1 :
     (length($1) == 3) ? $1 :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2a1, ($ch - 0x0fe000) * 2, 2),
			    $d = unpack('n', $c),
			    $c =~ tr,\0,,d,
			    ($d <= 0x0336) ? $RE{E_ICON_AU_START} . $d . $RE{E_ICON_AU_END} :
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;
  
  $str;
}
sub sjis_icon_au2
{
  my $this = shift;
  $this->_u2s($this->_u2ai2($this->{str}));
}
sub _u2si2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2i2))
    {
      $eu2i2 = $this->_getFile('jcode/emoji2/eu2i2.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2i2, ($ch - 0x0fe000) * 2, 2),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;
  $str;
  
}
sub splitCsv {
  my $this = shift;
  my $text = $this->{str};
  my @field;
  
  chomp($text);

  while ($text =~ m/"([^"\\]*(?:(?:\\.|\"\")[^"\\]*)*)",?|([^,]+),?|,/g) {
    my $field = defined($1) ? $1 : (defined($2) ? $2 : '');
    $field =~ s/["\\]"/"/g;
    push(@field, $field);
  }
  push(@field, '')        if($text =~ m/,$/);
  
  \@field;
}
sub sjis_jsky1
{
  my $this = shift;
  $this->_u2sj1($this->{str});
}
sub _s2j3 {
  my $this = shift;
  my $c = shift;

  my ($c1, $c2) = unpack('CC', $c);
  if (0x9f <= $c2)
    {
      $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60);
      $c2 += 2;
    }
  else
    {
      $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61);
      $c2 += 0x60 + ($c2 < 0x7f);
    }
  
  $S2J[unpack('n', $c)] = pack('CC', $c1 - 0x80, $c2 - 0x80);
}
# sjis-au1 => utf8
sub _sa2u1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ea2u1s))
  {
    $ea2u1s = $this->_getFile('jcode/emoji2/ea2us.dat');
  }

  my $l;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/
    $SA2U1{$1}
      or ($SA2U1{$1} =
	  (
	   $l = (unpack('n', $1) or unpack('C', $1)),
	   (
	    ($l >= 0xa1 and $l <= 0xdf)     ?
	    (
	     $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0x8100 and $l <= 0x9fff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xeb00 and $l <= 0xeeff) ?
	    (
	     $uc = substr($ea2u1s, ($l - 0xeb00) * 4, 4),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xe000 and $l <= 0xfcff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l < 0x80) ?
	    chr($l) :
	    '?'
	   )
	  )
	 )/eg;
  
  $str;
  
}
# -----------------------------------------------------------------------------
# utf8 ==> sjis/³¨Ê¸»ú
#
sub _u2s {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }

  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' : (
    $U2S{$1}
      or ($U2S{$1}
	  = ((length($1) == 1) ? $1 :
	     (length($1) == 2) ? (
				  ($c1,$c2) = unpack("C2", $1),
				  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
				  $c = substr($u2s_table, $ch * 2, 2),
				  # UTF-3¥Ð¥¤¥È(U+0x80-U+07FF)¤«¤ésjis-1¥Ð¥¤¥È¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°¤Ï¤Ê¤¤¤Î¤Ç\0¤òºï½ü¤ÏɬÍפϤʤ¤
				  $ch<0x80 ? '?' : ($c eq "\0\0") ? '&#' . $ch . ';' : $c
				 ) :
	     (length($1) == 3) ? (
				  ($c1,$c2,$c3) = unpack("C3", $1),
				  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
				  (
				   ($ch <= 0x9fff) ?
				   $c = substr($u2s_table, $ch * 2, 2) :
				   ($ch >= 0xf900 and $ch <= 0xffff) ?
				   (
				    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
				    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
				   ) :
				   (
				    $c = '&#' . $ch . ';'
				   )
				  ),
				  $ch<0x0800 ? '?' : ($c eq "\0\0") ? '&#' . $ch . ';' : $c
				 ) :
	     (length($1) == 4) ? (
				  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
				  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
				  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
				  (
				   $ch <0x01_0000 ? '?' :
				   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
				   '?'
				   : '&#' . $ch . ';'
				  )
				 ) :
	     (length($1) == 5) ? (($c1,$c2,$c3,$c4,$c5) = unpack("C5", $1),
				  $ch = (($c1 & 0x03) << 24)|(($c2 & 0x3F) << 18)|
				  (($c3 & 0x3f) << 12)|(($c4 & 0x3f) << 6)|
				  ($c5 & 0x3F),
				  $ch<0x20_0000 ? '?' : '&#' . $ch . ';'
				 ) :
	                         (
				  ($c1,$c2,$c3,$c4,$c5,$c6) = unpack("C6", $1),
				  $ch = (($c1 & 0x03) << 30)|(($c2 & 0x3F) << 24)|
				  (($c3 & 0x3f) << 18)|(($c4 & 0x3f) << 12)|
				  (($c5 & 0x3f) << 6)|($c6 & 0x3F),
				  $ch<0x0400_0000 ? '?' : '&#' . $ch . ';'
				 )
	    )
	 )
			 )
	/eg;
  $str;
  
}
sub _sa2j3 {
  my $this = shift;
  my $c = shift;

  my ($c1, $c2) = unpack('CC', $c);
  $c1 = 0xeb if($c1 == 0xf6);
  $c1 = 0xec if($c1 == 0xf7);
  $c1 = 0xed if($c1 == 0xf3);
  $c1 = 0xee if($c1 == 0xf4);
  
  if (0x9f <= $c2)
    {
      $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60);
      $c2 += 2;
    }
  else
    {
      $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61);
      $c2 += 0x60 + ($c2 < 0x7f);
    }
  
  pack('CC', $c1 - 0x80, $c2 - 0x80);
}
sub _utf16_utf8 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  my $result = '';
  my $sa;
  foreach my $uc (unpack("n*", $str))
    {
      ($uc >= 0xd800 and $uc <= 0xdbff and $sa = $uc and next);
      
      ($uc >= 0xdc00 and $uc <= 0xdfff and ($uc = ((($sa - 0xd800) << 10)|($uc - 0xdc00))+0x10000));
      
      $result .= $U2T[$uc] ? $U2T[$uc] :
	($U2T[$uc] = ($uc < 0x80) ? chr($uc) :
	 ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) :
	 ($uc < 0x10000) ? chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) :
	 chr(0xF0 | ($uc >> 18)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)));
    }
  
  $result;
}
sub h2zNum {
  my $this = shift;

  if( !%_h2zNum )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(0|1|2|3|4|5|6|7|8|9)/$_h2zNum{$1}/eg;
  
  $this;
}
sub h2zKanaK {
  my $this = shift;

  if( !%_h2zKanaK )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xef\xbd\xa1|\xef\xbd\xa2|\xef\xbd\xa3|\xef\xbd\xa4|\xef\xbd\xa5|\xef\xbd\xa6|\xef\xbd\xa7|\xef\xbd\xa8|\xef\xbd\xa9|\xef\xbd\xaa|\xef\xbd\xab|\xef\xbd\xac|\xef\xbd\xad|\xef\xbd\xae|\xef\xbd\xaf|\xef\xbd\xb0|\xef\xbd\xb1|\xef\xbd\xb2|\xef\xbd\xb3|\xef\xbd\xb4|\xef\xbd\xb5|\xef\xbd\xb6|\xef\xbd\xb7|\xef\xbd\xb8|\xef\xbd\xb9|\xef\xbd\xba|\xef\xbd\xbb|\xef\xbd\xbc|\xef\xbd\xbd|\xef\xbd\xbe|\xef\xbd\xbf|\xef\xbe\x80|\xef\xbe\x81|\xef\xbe\x82|\xef\xbe\x83|\xef\xbe\x84|\xef\xbe\x85|\xef\xbe\x86|\xef\xbe\x87|\xef\xbe\x88|\xef\xbe\x89|\xef\xbe\x8a|\xef\xbe\x8b|\xef\xbe\x8c|\xef\xbe\x8d|\xef\xbe\x8e|\xef\xbe\x8f|\xef\xbe\x90|\xef\xbe\x91|\xef\xbe\x92|\xef\xbe\x93|\xef\xbe\x94|\xef\xbe\x95|\xef\xbe\x96|\xef\xbe\x97|\xef\xbe\x98|\xef\xbe\x99|\xef\xbe\x9a|\xef\xbe\x9b|\xef\xbe\x9c|\xef\xbe\x9d|\xef\xbe\x9e|\xef\xbe\x9f)/$_h2zKanaK{$1}/eg;
  
  $this;
}
sub strlen {
  my $this = shift;
  
  my $ch_re = '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}';
  my $length = 0;

  foreach my $c(split(/($ch_re)/,$this->{str})) {
    next if(length($c) == 0);
    $length += ((length($c) >= 3) ? 2 : 1);
  }

  return $length;
}
sub strcutu
{
  my $this = shift;
  my $result = &strcut;
  
  if( $]>=5.008 && $this->{icode} ne 'binary' )
  {
    foreach(@$result)
    {
      Encode::_utf8_on($_);
    }
  }
  
  $result;
}
sub sjis_imode2
{
  my $this = shift;
  $this->_u2si2($this->{str});
}
sub _validate_utf8
{
  my $pkg = shift;
  my $str = shift;
  
  # ŬÀڤǤʤ¤Ä¹¤µ¤Ë¥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë
  # ʸ»ú¤ò ? ¤ËÃÖ¤­´¹¤¨.
  defined($str) and $str =~ s{
     # 2 bytes char
     #
     [\xc0-\xc1] [\x80-\xbf]   
    |
     # 3 bytes char
     #
     \xe0        [\x80-\x9f] [\x80-\xbf]
    |
     # 4 bytes char
     #
     \xf0        [\x80-\x8f] [\x80-\xbf] [\x80-\xbf]
    |
     # > U+10FFFF (4byte)
     #
     \xf4        [\x90-\xbf] [\x80-\xbf] [\x80-\xbf]
    |[\xf5-\xf7] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf]
    |
     # > U+10FFFF (5byte)
     #
     [\xf8-\xfb] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf]
    |
     # > U+10FFFF (6byte)
     #
     [\xfc-\xfd] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf]
  }{?}xg;
  $str;
}
sub z2hKanaK {
  my $this = shift;

  if( !%_z2hKanaK )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xe3\x80\x81|\xe3\x80\x82|\xe3\x83\xbb|\xe3\x82\x9b|\xe3\x82\x9c|\xe3\x83\xbc|\xe3\x80\x8c|\xe3\x80\x8d|\xe3\x82\xa1|\xe3\x82\xa2|\xe3\x82\xa3|\xe3\x82\xa4|\xe3\x82\xa5|\xe3\x82\xa6|\xe3\x82\xa7|\xe3\x82\xa8|\xe3\x82\xa9|\xe3\x82\xaa|\xe3\x82\xab|\xe3\x82\xad|\xe3\x82\xaf|\xe3\x82\xb1|\xe3\x82\xb3|\xe3\x82\xb5|\xe3\x82\xb7|\xe3\x82\xb9|\xe3\x82\xbb|\xe3\x82\xbd|\xe3\x82\xbf|\xe3\x83\x81|\xe3\x83\x83|\xe3\x83\x84|\xe3\x83\x86|\xe3\x83\x88|\xe3\x83\x8a|\xe3\x83\x8b|\xe3\x83\x8c|\xe3\x83\x8d|\xe3\x83\x8e|\xe3\x83\x8f|\xe3\x83\x92|\xe3\x83\x95|\xe3\x83\x98|\xe3\x83\x9b|\xe3\x83\x9e|\xe3\x83\x9f|\xe3\x83\xa0|\xe3\x83\xa1|\xe3\x83\xa2|\xe3\x83\xa3|\xe3\x83\xa4|\xe3\x83\xa5|\xe3\x83\xa6|\xe3\x83\xa7|\xe3\x83\xa8|\xe3\x83\xa9|\xe3\x83\xaa|\xe3\x83\xab|\xe3\x83\xac|\xe3\x83\xad|\xe3\x83\xaf|\xe3\x83\xb2|\xe3\x83\xb3)/$_z2hKanaK{$1}/eg;
  
  $this;
}
sub h2zAlpha {
  my $this = shift;

  if( !%_h2zAlpha )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)/$_h2zAlpha{$1}/eg;
  
  $this;
}
# -----------------------------------------------------------------------------
# $unijp->set($str,[$icode,[$encode]]);
# 
sub set
{
  my $this = shift;
  my $str = shift;
  my $icode = shift;
  my $encode = shift;

  if(ref($str))
    {
      die "String#set: param[1] is a Ref.\n";
    }
  if(ref($icode))
    {
      die "String#set: param[2] is a Ref.\n";
    }
  if(ref($encode))
    {
      die "String#set, Param[3] is a Ref.\n";
    }

  if( $]>=5.008 )
  {
    Encode::_utf8_off($str);
  }
  
  if(defined($encode))
    {
      if($encode eq 'base64')
	{
	  $str = $this->_decodeBase64($str);
	}
      else
	{
	  die "String#set: param[3]: invalid encoding [$encode]\n";
	}
    }

  if(!defined($icode))
    { # defaults to 'utf8'
      $this->{str} = $this->_validate_utf8($str);
      $this->{icode} = 'utf8';
    }
  else
    {
      $icode = lc($icode);
      if($icode eq 'auto')
	{
	  $icode = $this->getcode($str);
	  if($icode eq 'unknown')
	    {
	      $icode = 'binary';
	    }
	}

      if($icode eq 'utf8')
	{
	  $this->{str} = $this->_validate_utf8($str);
	}
      elsif($icode eq 'ucs2')
	{
	  $this->{str} = $this->_ucs2_utf8($str);
	}
      elsif($icode eq 'ucs4')
	{
	  $this->{str} = $this->_ucs4_utf8($str);
	}
      elsif($icode eq 'utf16-be')
	{
	  $this->{str} = $this->_utf16_utf8($this->_utf16be_utf16($str));
	}
      elsif($icode eq 'utf16-le')
	{
	  $this->{str} = $this->_utf16_utf8($this->_utf16le_utf16($str));
	}
      elsif($icode eq 'utf16')
	{
	  $this->{str} = $this->_utf16_utf8($this->_utf16_utf16($str));
	}
      elsif($icode eq 'utf32-be')
	{
	  $this->{str} = $this->_ucs4_utf8($this->_utf32be_ucs4($str));
	}
      elsif($icode eq 'utf32-le')
	{
	  $this->{str} = $this->_ucs4_utf8($this->_utf32le_ucs4($str));
	}
      elsif($icode eq 'utf32')
	{
	  $this->{str} = $this->_ucs4_utf8($this->_utf32_ucs4($str));
	}
      elsif($icode eq 'jis')
	{
	  $this->{str} = $this->_s2u($this->_j2s($str));
	}
      elsif($icode eq 'euc' || $icode eq 'euc-jp')
	{
	  $this->{str} = $this->_s2u($this->_e2s($str));
	}
      elsif($icode eq 'sjis' || $icode eq 'cp932')
	{
	  $this->{str} = $this->_s2u($str);
	}
      elsif($icode eq 'sjis-imode')
	{
	  $this->{str} = $this->_si2u2($str);
	}
      elsif($icode eq 'sjis-imode1')
	{
	  $this->{str} = $this->_si2u1($str);
	}
      elsif($icode eq 'sjis-imode2')
	{
	  $this->{str} = $this->_si2u2($str);
	}
      elsif($icode eq 'utf8-imode')
	{
	  $this->{str} = $this->_ui2u2($str);
	}
      elsif($icode eq 'utf8-imode1')
	{
	  $this->{str} = $this->_ui2u1($str);
	}
      elsif($icode eq 'utf8-imode2')
	{
	  $this->{str} = $this->_ui2u2($str);
	}
      elsif($icode eq 'sjis-doti')
	{
	  $this->{str} = $this->_sd2u($str);
	}
      elsif($icode eq 'sjis-doti1')
	{
	  $this->{str} = $this->_sd2u($str);
	}
      elsif($icode eq 'sjis-jsky')
	{
	  $this->{str} = $this->_sj2u2($str);
	}
      elsif($icode eq 'sjis-jsky1')
	{
	  $this->{str} = $this->_sj2u1($str);
	}
      elsif($icode eq 'sjis-jsky2')
	{
	  $this->{str} = $this->_sj2u2($str);
	}
      elsif($icode eq 'jis-jsky')
	{
	  $this->{str} = $this->_sj2u2($this->_j2s($str));
	}
      elsif($icode eq 'jis-jsky1')
	{
	  $this->{str} = $this->_sj2u1($this->_j2s($str));
	}
      elsif($icode eq 'jis-jsky2')
	{
	  $this->{str} = $this->_sj2u2($this->_j2s($str));
	}
      elsif($icode eq 'utf8-jsky')
	{
	  $this->{str} = $this->_uj2u2($str);
	}
      elsif($icode eq 'utf8-jsky1')
	{
	  $this->{str} = $this->_uj2u1($str);
	}
      elsif($icode eq 'utf8-jsky2')
	{
	  $this->{str} = $this->_uj2u2($str);
	}
      elsif($icode eq 'jis-au')
	{
	  $this->{str} = $this->_sa2u2($this->_j2s($str));
	}
      elsif($icode eq 'jis-au1')
	{
	  $this->{str} = $this->_sa2u1($this->_j2s($str));
	}
      elsif($icode eq 'jis-au2')
	{
	  $this->{str} = $this->_sa2u2($this->_j2s($str));
	}
      elsif($icode eq 'sjis-au')
	{
	  $this->{str} = $this->_sa2u2($this->_j2s($this->_sa2j($str)));
	}
      elsif($icode eq 'sjis-au1')
	{
	  $this->{str} = $this->_sa2u1($this->_j2s($this->_sa2j($str)));
	}
      elsif($icode eq 'sjis-au2')
	{
	  $this->{str} = $this->_sa2u2($this->_j2s($this->_sa2j($str)));
	}
      elsif($icode eq 'sjis-icon-au')
	{
	  $this->{str} = $this->_ai2u2($this->_s2u($str));
	}
      elsif($icode eq 'sjis-icon-au1')
	{
	  $this->{str} = $this->_ai2u1($this->_s2u($str));
	}
      elsif($icode eq 'sjis-icon-au2')
	{
	  $this->{str} = $this->_ai2u2($this->_s2u($str));
	}
      elsif($icode eq 'euc-icon-au')
	{
	  $this->{str} = $this->_ai2u2($this->_s2u($this->_e2s($str)));
	}
      elsif($icode eq 'euc-icon-au1')
	{
	  $this->{str} = $this->_ai2u1($this->_s2u($this->_e2s($str)));
	}
      elsif($icode eq 'euc-icon-au2')
	{
	  $this->{str} = $this->_ai2u2($this->_s2u($this->_e2s($str)));
	}
      elsif($icode eq 'jis-icon-au')
	{
	  $this->{str} = $this->_ai2u2($this->_s2u($this->_j2s($str)));
	}
      elsif($icode eq 'jis-icon-au1')
	{
	  $this->{str} = $this->_ai2u1($this->_s2u($this->_j2s($str)));
	}
      elsif($icode eq 'jis-icon-au2')
	{
	  $this->{str} = $this->_ai2u2($this->_s2u($this->_j2s($str)));
	}
      elsif($icode eq 'utf8-icon-au')
	{
	  $this->{str} = $this->_ai2u2($str);
	}
      elsif($icode eq 'utf8-icon-au1')
	{
	  $this->{str} = $this->_ai2u1($str);
	}
      elsif($icode eq 'utf8-icon-au2')
	{
	  $this->{str} = $this->_ai2u2($str);
	}
      elsif($icode eq 'ascii')
	{
	  $this->{str} = $str;
	}
      elsif($icode eq 'binary')
	{
	  $this->{str} = $str;
	}
      else
	{
	  use Carp;
	  croak "invalid icode [$icode]";
	}
      $this->{icode} = $icode;
    }

  $this;
}
# -----------------------------------------------------------------------------
# Unicode Æâ Áê¸ßÊÑ´¹
# 
sub _ucs2_utf8 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  my $result = '';
  for my $uc (unpack("n*", $str))
    {
      $result .= $U2T[$uc] ? $U2T[$uc] :
	($U2T[$uc] = ($uc < 0x80) ? chr($uc) :
	  ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) :
	    chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) .
	      chr(0x80 | ($uc & 0x3F)));
    }
  
  $result;
}
sub _utf16_utf16 {
  my $this = shift;
  my $str = shift;

  if($str =~ s/^\xfe\xff//)
    {
      $str = $this->_utf16be_utf16($str);
    }
  elsif($str =~ s/^\xff\xfe//)
    {
      $str = $this->_utf16le_utf16($str);
    }
  else
    {
      $str = $this->_utf16be_utf16($str);
    }
  
  $str;
}
# -----------------------------------------------------------------------------
# @codelist = Unicode::Japanese->getcodelist($str);
# 
sub getcodelist {
  my $this = shift;
  my $str = shift;
  my @codelist;
  
  if( $]>=5.008 )
  {
    Encode::_utf8_off($str);
  }
  
  my $l = length($str);
  
  if((($l % 4) == 0)
     and ($str =~ m/^(?:$RE{BOM4_BE}|$RE{BOM4_LE})/o))
    {
      push(@codelist, 'utf32');
    }
  if((($l % 2) == 0)
     and ($str =~ m/^(?:$RE{BOM2_BE}|$RE{BOM2_LE})/o))
    {
      push(@codelist, 'utf16');
    }

  my $str2;
  
  if(($l % 4) == 0)
    {
      $str2 = $str;
      1 while($str2 =~ s/^(?:$RE{UTF32_BE})//o);
      if($str2 eq '')
	{
	  push(@codelist, 'utf32-be');
	}
      
      $str2 = $str;
      1 while($str2 =~ s/^(?:$RE{UTF32_LE})//o);
      if($str2 eq '')
	{
	  push(@codelist, 'utf32-le');
	}
    }
  
  if($str !~ m/[\e\x80-\xff]/)
    {
      push(@codelist, 'ascii');
    }

  if($str =~ m/$RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA}/o)
    {
      if($str =~ m/(?:$RE{JIS_0208})(?:[^\e]{2})*$RE{E_JIS_AU}/o)
	{
	  push(@codelist, 'jis-au');
	}
      elsif($str =~ m/(?:$RE{E_JSKY})/o)
	{
	  push(@codelist, 'jis-jsky');
	}
      else
	{
	  push(@codelist, 'jis');
	}
    }

  if($str =~ m/(?:$RE{E_JSKY})/o)
    {
      push(@codelist, 'sjis-jsky');
    }

  $str2 = $str;
  1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C})//o);
  if($str2 eq '')
    {
      push(@codelist, 'euc');
    }

  $str2 = $str;
  1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA})//o);
  if($str2 eq '')
    {
      push(@codelist, 'sjis');
    }
  if($str =~ m/^(?:$RE{E_SJIS_AU})/o)
    {
      push(@codelist, 'sjis-au');
    }

  my $str3;
  $str3 = $str2;
  1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_IMODE})//o);
  if($str3 eq '')
    {
      push(@codelist, 'sjis-imode');
    }

  $str3 = $str2;
  1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_DOTI})//o);
  if($str3 eq '')
    {
      push(@codelist, 'sjis-doti');
    }

  $str2 = $str;
  1 while($str2 =~ s/^(?:$RE{UTF8})//o);
  if($str2 eq '')
    {
      push(@codelist, 'utf8');
    }

  @codelist or push(@codelist, 'unknown');
  @codelist;
}
sub _sj2u2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ej2u1))
  {
    $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat');
  }
  if(!defined($ej2u2))
  {
    $ej2u2 = $this->_getFile('jcode/emoji2/ej2u2.dat');
  }

  my $l;
  my $j1;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_JSKY}|[\x80-\xff])/
    (length($1) <= 2) ? 
      (
       $l = (unpack('n', $1) or unpack('C', $1)),
       (
	($l >= 0xa1 and $l <= 0xdf)     ?
	(
	 $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	 $uc =~ tr,\0,,d,
	 $uc
	) :
	($l >= 0x8100 and $l <= 0x9fff) ?
	(
	 $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	 $uc =~ tr,\0,,d,
	 $uc
	) :
	($l >= 0xe000 and $l <= 0xffff) ?
	(
	 $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	 $uc =~ tr,\0,,d,
	 $uc
	) :
	($l < 0x80) ?
	chr($l) :
	'?'
       )
      ) :
	(
         $l = $1,
         ( $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v1}),,o
	   ?
	   (
	    $j1 = $1,
	    $uc = '',
	    $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u1, (unpack('n', $j1 . $1) - 0x4500) * 4, 4), ''!ego,
	    $uc =~ tr,\0,,d,
	    $uc
	    )
	   :
	   (
	    $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v2}),,o,
	    $j1 = $1,
	    $uc = '',
	    $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u2, (unpack('n', $j1 . $1) - 0x4f00) * 4, 4), ''!ego,
	    $uc =~ tr,\0,,d,
	    $uc
	    )
	   )
	)
  /eg;
  
  $str;
  
}
sub jis_icon_au
{
  my $this = shift;
  $this->_s2j($this->_u2s($this->_u2ai2($this->{str})));
}
sub _utf32_ucs4 {
  my $this = shift;
  my $str = shift;

  if($str =~ s/^\x00\x00\xfe\xff//)
    {
      $str = $this->_utf32be_ucs4($str);
    }
  elsif($str =~ s/^\xff\xfe\x00\x00//)
    {
      $str = $this->_utf32le_ucs4($str);
    }
  else
    {
      $str = $this->_utf32be_ucs4($str);
    }
  
  $str;
}
sub _ai2u2 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($ea2u2))
    {
      $ea2u2 = $this->_getFile('jcode/emoji2/ea2u2.dat');
    }

  my $c;
  $str =~ s/$RE{E_ICON_AU_START}(\d+)$RE{E_ICON_AU_END}/
    ($1 > 0 and $1 <= 0x0336) ?
      ($c = substr($ea2u2, ($1-1) * 4, 4), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c) :
	'?'
    /ige;

  $str;
}
sub utf8_icon_au2
{
  my $this = shift;
  $this->_u2ai2($this->{str});
}
# utf8-jsky1 => utf8.
sub _uj2u1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
  {
    return '';
  }
  
  if(!defined($s2u_table))
  {
    $s2u_table = $this->_getFile('jcode/s2u.dat');
  }

  if(!defined($ej2u1))
  {
    $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat');
  }

  $str = $this->_validate_utf8($str);
  
  my @umap = (0x200, 0x000, 0x100);
  $str =~ s{($RE{E_JSKYv1_UTF8}+)}{
    join('',
      map{
        my $l = $_ - 0xe000 + 0x20;
        substr($ej2u1, ($umap[$l/256]+($l&255)) * 4, 4);
      } unpack("n*", $this->_utf8_ucs2($1))
    )
  }geo;
  
  $str;
  
}
sub _sa2j {
  my $this = shift;
  my $str = shift;

  $str =~ s/((?:$RE{SJIS_DBCS}|$RE{E_SJIS_AU}|$RE{SJIS_KANA})+)/
    $this->_sa2j2($1) . $ESC{ASC}
      /geo;

  $str;
}
# -----------------------------------------------------------------------------
# h2z/z2h Kana
# 
sub h2zKana
{
  my $this = shift;

  $this->h2zKanaD;
  $this->h2zKanaK;
  
  $this;
}
sub z2hKana
{
  my $this = shift;
  
  $this->z2hKanaD;
  $this->z2hKanaK;
  
  $this;
}
# -----------------------------------------------------------------------------
# $bytes_imode = $unijp->utf8_imode();
# 
sub utf8_imode
{
  my $this = shift;
  $this->_u2ui2($this->{str});
}
sub _si2u2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ei2u2))
    {
      $ei2u2 = $this->_getFile('jcode/emoji2/ei2u2.dat');
    }

  $str =~ s/(\&\#(\d+);)/
    ($2 >= 0xf800 and $2 <= 0xf9ff) ? pack('n', $2) : $1
      /eg;
  
  my $l;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_IMODE}|[\x80-\xff])/
    $S2U{$1}
      or ($S2U{$1} =
	  (
	   $l = (unpack('n', $1) or unpack('C', $1)),
	   (
	    ($l >= 0xa1 and $l <= 0xdf)     ?
	    (
	     $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0x8100 and $l <= 0x9fff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xf800 and $l <= 0xf9ff) ?
	    (
	     $uc = substr($ei2u2, ($l - 0xf800) * 4, 4),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xe000 and $l <= 0xffff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l < 0x80) ?
	    chr($l) :
	    '?'
	   )
	  )
	 )/eg;
  
  $str;
  
}
sub _u2sj1 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2j1))
    {
      $eu2j1 = $this->_getFile('jcode/emoji2/eu2j.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2j1, ($ch - 0x0fe000) * 5, 5),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;

  1 while($str =~ s/($RE{E_JSKY_START})($RE{E_JSKY1})($RE{E_JSKY2}+)$RE{E_JSKY_END}$RE{E_JSKY_START}\2($RE{E_JSKY2})($RE{E_JSKY_END})/$1$2$3$4$5/o);
  
  $str;
  
}
# utf8 => utf8-jsky1
sub _u2sj2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2j2))
    {
      $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2j2, ($ch - 0x0fe000) * 5, 5),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;

  1 while($str =~ s/($RE{E_JSKY_START})($RE{E_JSKY1})($RE{E_JSKY2}+)$RE{E_JSKY_END}$RE{E_JSKY_START}\2($RE{E_JSKY2})($RE{E_JSKY_END})/$1$2$3$4$5/o);
  
  $str;
  
}
sub utf8_icon_au
{
  my $this = shift;
  $this->_u2ai2($this->{str});
}
sub jis_jsky2
{
  my $this = shift;
  $this->_s2j($this->_u2sj2($this->{str}));
}
# -----------------------------------------------------------------------------
# $bytes_doti = $unijp->sjis_doti();
# 
sub sjis_doti
{
  my $this = shift;
  $this->_u2sd($this->{str});
}
sub _e2s {
  my $this = shift;
  my $str = shift;

  $str =~ s/($RE{EUC_KANA}|$RE{EUC_0212}|$RE{EUC_C})/
    $E2S[unpack('n', $1) or unpack('N', "\0" . $1)] or $this->_e2s2($1)
      /geo;
  
  $str;
}
# -----------------------------------------------------------------------------
# $bytes_eucjp = $unijp->euc();
# 
sub euc
{
  my $this = shift;
  $this->_s2e($this->sjis);
}
sub _j2s3 {
  my $this = shift;
  my $c = shift;

  my ($c1, $c2) = unpack('CC', $c);
  if ($c1 % 2)
    {
      $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71);
      $c2 -= 0x60 + ($c2 < 0xe0);
    }
  else
    {
      $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70);
      $c2 -= 2;
    }
  
  $J2S[unpack('n', $c)] = pack('CC', $c1, $c2);
}
# -----------------------------------------------------------------------------
# $bytes_ucs4 = $unijp->ucs4();
# 
sub ucs4
{
  my $this = shift;
  $this->_utf8_ucs4($this->{str});
}
sub _j2sa2 {
  my $this = shift;
  my $esc = shift;
  my $str = shift;

  if($esc eq $ESC{JIS_0212})
    {
      $str =~ s/../$CHARCODE{UNDEF_SJIS}/g;
    }
  elsif($esc !~ m/^$RE{JIS_ASC}/)
    {
      $str =~ s{([\x21-\x7e]+)}{
        my $str = $1;
        $str =~ tr/\x21-\x7e/\xa1-\xfe/;
        if($esc =~ m/^$RE{JIS_0208}/)
	  {
	    $str =~ s/($RE{EUC_C})/
	      $this->_j2sa3($1)
	        /geo;
	  }
	$str;
      }e;
    }
  
  $str;
}
sub _ui2u1
{
  my $this = shift;
  my $str = shift;

  if(!defined($str))
  {
    return '';
  }

  if(!defined($ei2u2))
  {
    $ei2u1 = $this->_getFile('jcode/emoji2/ei2u.dat');
  }

  $str = $this->_validate_utf8($str);

  #  imode   : F800-F9FF => U+0FF800 - U+0FF9FF
  # E63E - E70B = ee 98 be - ee 9c 8b
  # E70C - E757 = ee 9c 8c - ee 9d 97
  $str =~ s{\xee([\x98-\x9e][\x80-\xbf])}{
    my ($in1, $in2) = unpack("CC", $1);
    my $in = (($in1 - 0x98) << 6) + ($in2 - 0x80);
    my $diff = $in <= 0x9b ? ( 0xfc -  0x9b)
             : $in <= 0xda ? (0x17e -  0xda)
             :               (0x1b0 - 0x10b);
    my $sjisoffset = $diff + $in;
    my $sjisbin    = pack("n", $sjisoffset);
    $in<=0x10b ? $S2U{$sjisbin} ||= substr($ei2u1, $sjisoffset * 4, 4) || '?' : '?';
  }xeg;
  
  $str;
}
sub _sd2u {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ed2u))
    {
      $ed2u = $this->_getFile('jcode/emoji2/ed2u.dat');
    }

  $str =~ s/(\&\#(\d+);)/
    ($2 >= 0xf000 and $2 <= 0xf4ff) ? pack('n', $2) : $1
      /eg;
  
  my $l;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_DOTI}|[\x80-\xff])/
    $S2U{$1}
      or ($S2U{$1} =
	  (
	   $l = (unpack('n', $1) or unpack('C', $1)),
	   (
	    ($l >= 0xa1 and $l <= 0xdf)     ?
	    (
	     $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0x8100 and $l <= 0x9fff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xf000 and $l <= 0xf4ff) ?
	    (
	     $uc = substr($ed2u, ($l - 0xf000) * 4, 4),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xe000 and $l <= 0xffff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l < 0x80) ?
	    chr($l) :
	    '?'
	   )
	  )
	 )/eg;
  
  $str;
  
}
# utf8 -> jis-au2
sub _u2ja2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2a2s))
    {
      $eu2a2s = $this->_getFile('jcode/emoji2/eu2a2s.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2a2s, ($ch - 0x0fe000) * 2, 2),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;

  $str;
}
sub _s2e2 {
  my $this = shift;
  my $c = shift;
  
  my ($c1, $c2) = unpack('CC', $c);
  if (0xa1 <= $c1 && $c1 <= 0xdf)
    {
      $c2 = $c1;
      $c1 = 0x8e;
    }
  elsif (0x9f <= $c2)
    {
      $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60);
      $c2 += 2;
    }
  else
    {
      $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61);
      $c2 += 0x60 + ($c2 < 0x7f);
    }
  
  $S2E[unpack('n', $c) or unpack('C', $1)] = pack('CC', $c1, $c2);
}
sub z2hKanaD {
  my $this = shift;

  if( !%_z2hKanaD )
    {
      $this->_loadConvTable;
    }

  $this->{str} =~ s/(\xe3\x82\xac|\xe3\x82\xae|\xe3\x82\xb0|\xe3\x82\xb2|\xe3\x82\xb4|\xe3\x82\xb6|\xe3\x82\xb8|\xe3\x82\xba|\xe3\x82\xbc|\xe3\x82\xbe|\xe3\x83\x80|\xe3\x83\x82|\xe3\x83\x85|\xe3\x83\x87|\xe3\x83\x89|\xe3\x83\x90|\xe3\x83\x91|\xe3\x83\x93|\xe3\x83\x94|\xe3\x83\x96|\xe3\x83\x97|\xe3\x83\x99|\xe3\x83\x9a|\xe3\x83\x9c|\xe3\x83\x9d|\xe3\x83\xb4)/$_z2hKanaD{$1}/eg;
  
  $this;
}
sub _u2sd {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($u2s_table))
    {
      $u2s_table = $this->_getFile('jcode/u2s.dat');
    }

  if(!defined($eu2d))
    {
      $eu2d = $this->_getFile('jcode/emoji2/eu2d.dat');
    }

  my $c1;
  my $c2;
  my $c3;
  my $c4;
  my $c5;
  my $c6;
  my $c;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/
    defined($2) ? '?' :
    ((length($1) == 1) ? $1 :
     (length($1) == 2) ? (
			  ($c1,$c2) = unpack("C2", $1),
			  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
			  $c = substr($u2s_table, $ch * 2, 2),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 3) ? (
			  ($c1,$c2,$c3) = unpack("C3", $1),
			  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
			  (
			   ($ch <= 0x9fff) ?
			   $c = substr($u2s_table, $ch * 2, 2) :
			   ($ch >= 0xf900 and $ch <= 0xffff) ?
			   (
			    $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2),
			    (($c =~ tr,\0,,d)==2 and $c = "\0\0"),
			   ) :
			   (
			    $c = '?'
			   )
			  ),
			  ($c eq "\0\0") ? '?' : $c
			 ) :
     (length($1) == 4) ? (
			  ($c1,$c2,$c3,$c4) = unpack("C4", $1),
			  $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)|
			  (($c3 & 0x3f) << 6)|($c4 & 0x3F),
			  (
			   ($ch >= 0x0fe000 and $ch <= 0x0fffff) ?
			   (
			    $c = substr($eu2d, ($ch - 0x0fe000) * 2, 2),
			    $c =~ tr,\0,,d,
			    ($c eq '') ? '?' : $c
			   ) :
			   '?'
			  )
			 ) :
     '?'
    )
      /eg;
  $str;
  
}
sub sjis_au
{
  my $this = shift;
  $this->_j2sa($this->_s2j($this->_u2ja2($this->{str})));
}
sub _utf8_ucs2 {
  my $this = shift;
  my $str = shift;
  
  if(!defined($str))
    {
      return '';
    }

  my $c1;
  my $c2;
  my $c3;
  my $ch;
  $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}|.)/
    defined($2)?"\0?":
    $T2U{$1}
      or ($T2U{$1}
	  = ((length($1) == 1) ? pack("n", unpack("C", $1)) :
	     (length($1) == 2) ? (($c1,$c2) = unpack("C2", $1),
				  $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F),
				  $ch<0x80 ? "\0?" : pack("n", $ch)
				  ) :
	     (length($1) == 3) ? (($c1,$c2,$c3) = unpack("C3", $1),
				  $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F),
				  $ch<0x0800 ? "\0?" : pack("n", $ch)
				  ) : "\0?"))
	/eg;
  $str;
}
sub euc_icon_au1
{
  my $this = shift;
  $this->_s2e($this->_u2s($this->_u2ai1($this->{str})));
}
# -----------------------------------------------------------------------------
# $bytes_au = $unijp->jis_au1();
# 
sub jis_au
{
  my $this = shift;
  $this->_s2j($this->_u2ja2($this->{str}));
}
sub _utf32le_ucs4 {
  my $this = shift;
  my $str = shift;

  my $result = '';
  foreach my $ch (unpack('V*', $str))
    {
      $result .= pack('N', $ch);
    }
  
  $result;
}
# -----------------------------------------------------------------------------
# $bytes_imode = $unijp->sjis_imode();
# 
sub sjis_imode
{
  my $this = shift;
  $this->_u2si2($this->{str});
}
sub _e2s2 {
  my $this = shift;
  my $c = shift;

  my ($c1, $c2) = unpack('CC', $c);
  if ($c1 == 0x8e)
    {		# SS2
      $E2S[unpack('n', $c)] = chr($c2);
    }
  elsif ($c1 == 0x8f)
    {	# SS3
      $E2S[unpack('N', "\0" . $c)] = $CHARCODE{UNDEF_SJIS};
    }
  else
    {			#SS1 or X0208
      if ($c1 % 2)
	{
	  $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71);
	  $c2 -= 0x60 + ($c2 < 0xe0);
	}
      else
	{
	  $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70);
	  $c2 -= 2;
	}
      $E2S[unpack('n', $c)] = pack('CC', $c1, $c2);
    }
}
sub _s2j2 {
  my $this = shift;
  my $str = shift;

  $str =~ s/((?:$RE{SJIS_DBCS})+|(?:$RE{SJIS_KANA})+)/
    my $s = $1;
  if($s =~ m,^$RE{SJIS_KANA},o)
    {
      $s =~ tr,\xa1-\xdf,\x21-\x5f,;
      $ESC{KANA} . $s
    }
  else
    {
      $s =~ s!($RE{SJIS_DBCS})!
	$S2J[unpack('n', $1)] or $this->_s2j3($1)
	  !geo;
      $ESC{JIS_0208} . $s;
    }
  /geo;
  
  $str;
}
# -----------------------------------------------------------------------------
# encode/decode
sub _encodeBase64
{
  my $this = shift;
  my $str = shift;
  my $eol = shift;
  my $res = "";
  
  $eol = "\n" unless defined $eol;
  pos($str) = 0;                          # ensure we start matching from the beginning
  while ($str =~ /(.{1,45})/gs)
    {
      $res .= substr(pack('u', $1), 1);
      chop($res);
    }
  $res =~ tr|` -_|AA-Za-z0-9+/|;               # `# help emacs
  # fix padding at the end
  my $padding = (3 - length($str) % 3) % 3;
  $res =~ s/.{$padding}$/'=' x $padding/e if $padding;
  # break encoded string into lines so that each lines have no more than 76
  # characters
  if (length $eol)
    {
      $res =~ s/(.{1,76})/$1$eol/g;
    }
  $res;
}
sub validate_utf8
{
  # my $safer_utf8 = Unicode::Japanese->validate_utf8($utf8_str);
  #
  $_[0]->_validate_utf8(@_[1..$#_]);
}
sub sjis_icon_au
{
  my $this = shift;
  $this->_u2s($this->_u2ai2($this->{str}));
}
# -----------------------------------------------------------------------------
# split/join Csv
# 
sub split_csv {
  &splitCsv;
}
# sjis-au2 => utf8
sub _sa2u2 {
  my $this = shift;
  my $str = shift;

  if(!defined($str))
    {
      return '';
    }
  
  if(!defined($s2u_table))
    {
      $s2u_table = $this->_getFile('jcode/s2u.dat');
    }

  if(!defined($ea2u2s))
  {
    $ea2u2s = $this->_getFile('jcode/emoji2/ea2u2s.dat');
  }

  my $l;
  my $uc;
  $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/
    $SA2U2{$1}
      or ($SA2U2{$1} =
	  (
	   $l = (unpack('n', $1) or unpack('C', $1)),
	   (
	    ($l >= 0xa1 and $l <= 0xdf)     ?
	    (
	     $uc = substr($s2u_table, ($l - 0xa1) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0x8100 and $l <= 0x9fff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xeb00 and $l <= 0xeeff) ?
	    (
	     $uc = substr($ea2u2s, ($l - 0xeb00) * 4, 4),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l >= 0xe000 and $l <= 0xfcff) ?
	    (
	     $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3),
	     $uc =~ tr,\0,,d,
	     $uc
	    ) :
	    ($l < 0x80) ?
	    chr($l) :
	    '?'
	   )
	  )
	 )/eg;
  
  $str;
  
}
# -----------------------------------------------------------------------------
# $bytes_jsky = $unijp->jis_jsky();
# 
sub jis_jsky
{
  my $this = shift;
  $this->_s2j($this->_u2sj2($this->{str}));
}
# -----------------------------------------------------------------------------
# strcut, strlen
# 
sub strcut
{
  my $this = shift;
  my $cutlen = shift;
  
  if(ref($cutlen))
    {
      die "String#strcut: param[1] is a Ref.\n";
    }
  if($cutlen !~ m/^\d+$/)
    {
      die "String#strcut: param[1] must be an integer.\n";
    }
  
  my $ch_re = '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}';
  
  my $result;
  my $line = '';
  my $linelength = 0;

  foreach my $c (split(/($ch_re)/, $this->{str}))
    {
      next if(length($c) == 0);
      if($linelength + (length($c) >= 3 ? 2 : 1) > $cutlen)
	{
	  $line ne '' and push(@$result, $line);
	  $line = '';
	  $linelength = 0;
	}
      $linelength += (length($c) >= 3 ? 2 : 1);
      $line .= $c;
    }
  push(@$result, $line);

  $result;
}
sub cp932
{
  shift->sjis(@_);
}
sub _utf32be_ucs4 {
  my $this = shift;
  my $str = shift;

  $str;
}
        	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~‘’\˜NÊ‹}L÷~€ƒŸƒ ƒ¡ƒ¢ƒ£ƒ¤ƒ¥ƒ¦ƒ§ƒ¨ƒ©ƒªƒ«ƒ¬ƒ­ƒ®ƒ¯ƒ°ƒ±ƒ²ƒ³ƒ´ƒµƒ¶ƒ¿ƒÀƒÁƒÂƒÃƒÄƒÅƒÆƒÇƒÈƒÉƒÊƒËƒÌƒÍƒÎƒÏƒÐƒÑƒÒƒÓƒÔƒÕƒÖ„F„@„A„B„C„D„E„G„H„I„J„K„L„M„N„O„P„Q„R„S„T„U„V„W„X„Y„Z„[„\„]„^„_„`„p„q„r„s„t„u„w„x„y„z„{„|„}„~„€„„‚„ƒ„„„…„†„‡„ˆ„‰„Š„‹„Œ„„Ž„„„‘„v]\aefghõödcñŒ¦~Ž‡‚‡„ð‡T‡U‡V‡W‡X‡Y‡Z‡[‡\‡]îïîðîñîòîóîôîõîöî÷îø©ª¨«ËÌÍÝÎÞ¸¹‡”|ãå‡‡˜ÚaÈÉ¿¾çè‡“ˆæäà‚ß…†áâ¼½º»Û‡™Ü‡@‡A‡B‡C‡D‡E‡F‡G‡H‡I‡J‡K‡L‡M‡N‡O‡P‡Q‡R‡S„Ÿ„ª„ „«„¡„¬„¢„­„¤„¯„£„®„¥„º„µ„°„§„¼„·„²„¦„¶„»„±„¨„¸„½„³„©„¹„¾„´¡ £¢¥¤Ÿž›œüš™Š‰ôóò@ABVXYZqrstuvwxyz§¬kl`‡€‡‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚ÂĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚ì‚í‚î‚ï‚ð‚ñJKTUƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒŽƒƒƒ‘ƒ’ƒ“ƒ”ƒ•ƒ–E[RS‡Š‡‹‡Œ‡…‡†‡‡‡ˆ‡‰‡e‡i‡`‡c‡a‡k‡j‡d‡l‡f‡n‡_‡m‡b‡g‡h‡~‡‡Ž‡‡r‡s‡o‡p‡q‡u‡t‡ƒˆê’šŽµ–œäŽOã‰º•s—^˜ ‰NŠŽ˜¡¢™À‹u•¸å—¼•ÀíL˜¢’†˜£‹ø˜¤ŠÛ’OŽå˜¥˜¦˜§”T‹v”V“áŒÁ–Råh˜¨æ˜©‰³‹ãŒî–盤—“ûŠ£‹T˜ª˜«—¹—\‘ˆ˜­Ž–“ñ˜°‰]ŒÝŒÜˆä˜j˜i±ˆŸ˜±˜²˜³–S˜´Œðˆå–’‹œ‹‹ž’à—º˜µ˜¶˜·lYm˜¼˜º˜»‹w¡‰î˜¹˜¸•§ŽeŽd‘¼˜½•tåW˜¾˜ÀíM‘ã—߈Ș¿‰¼‹Â’‡Œ˜Á”CíNíOŠéíP˜ÂˆÉŒÞŠê•š”°‹x‰ï˜å“`”Œ˜Ä”º—àLíQŽfŽ—‰¾’Ï’A˜ÈˆÊ’áZ²—C‘̉½íR˜Ç—]˜Ã˜Åì˜Æ›C˜Î˜Ñ˜Ï‰À•¹˜É˜ÍŒñŽgŠ¤˜Ò˜ÊíT—᎘˜Ë˜ÐíSíV˜Ó˜ÌíU‹ŸˆË‹ ‰¿›D–™•ŽŒòN—µ•ÖŒW‘£‰âíEríW˜×˜Ü˜Ú˜Õ‘­˜Ø˜Û˜Ù•Û˜ÖM–“˜Ý˜ÞC˜ë”o•U˜æ•î‰´˜êíZ˜ä˜í‘qŒÂ”{àŘì“|˜áŒôŒó˜ßí[ŽØ˜çíY•í’l˜ãŒ‘˜à˜è˜â—Ϙé˜`‹äŒíXí^˜îí\˜ï˜óˆÌ•Î˜ò˜ñ˜õ˜ô’⌒˜öí]ŽÃ‘¤’ã‹ô˜÷‹U˜ø˜ú–TŒ†í_ŽP”õ˜ùÃ—b˜ü™B˜ûÂŒX™C‹Í™@™A“­‘œ‹¡–l™Día—»™E™H™F‘m™G™Ií`™K™J•Æ‹V™M™N‰­™LŽò™Q™P™O˜Ô™Rž™S—D–×™U™T™W™V™X™YˆòŒ³ŒZ[’›‹¢æŒõíbŽ™[–Æ“eŽ™™Z™\“}Š•™]íc“ü‘S™_™`”ªŒö˜Z™a‹¤•º‘´‹ï“TŒ“™b™c“à‰~™fû™eÄ™gãì™h–`™i™j™kçŽÊídŠ¥™n™l–»™m•y™o™p™q“~™u™s™t™rá™v–è—â™wíe¦™xy™y’œ—½“€™Ã™z꣋Ù{–}ˆ‘ú™}“âíf™~™€ŠM™‹¥“ʉšo”Ÿ™‚“n™ƒ•ªØŠ Š§™„™†ŒY™…íg—ñ‰”»•Ê™‡—˜™ˆ™‰“ž™Š§üŒ”™‹Žh’䙍‘¥í™Ž™‘O™Œ™‘–U„™Œ•Ü”™”™’•›è™›Š„™•™“‘n™—™–ŠcŒ€™œ—«™˜™™š™™—ÍíhŒ÷‰Á—òíi•“w…™ ™¡î[—ã˜J™£Œø™¢ŠNíj™¤–u’º—E•×™¥èӓ®™¦Š¨–±íkŸ™§•å™«¨™¨‹Î™©Š©ŒM™¬™­™®™¯ŽÙŒù–Üíl–æ“õ•ï™°ím™±™³™µ™´™¶‰»–kú™·‘x ‹§™¸ín”Ù™¹™º™»™¼•C‹æˆã“½™½\ç™¿™¾¡Œß™Á”¼™Â”Ú‘²‘싦“ì’P”Ž–m™ÄèŒT™Å™Æ‰KˆóŠëío‘¦‹p—‘™É‰µ™È‹¨™Ê–ïíp™Ë—ÐŒúŒ´™Ì™Î™Í~‰X‰}™Ï™ÐíqŒµ™Ñ‹ŽŽQ™Ò–”³‹y—F‘o”½ŽûfŽæŽó–”¾ír™Õ‰b‘pŒûŒÃ‹å™Ù’@‘ü‹©¢™Ú™Ø‰Â‘䎶Žj‰EŠ†Ži™Û™Ü‹hŠe‡‹g’݉D“¯–¼@—™“fŒüŒN™å‹á–i”Û™äŠÜ™ß™à™â™ã‹z•«™á™ÝŒá™Þ˜C•ð’æŒà™æ“Û™êŽüŽô™í™ë–¡™è™ñ™ì™ïŒÄ–½™ð™ò™ôíuî˜a™é™ç™ó™îít™öšB™ø™üívš@™ùš]çŠP™÷šDˆôšCˆ£•išA™ú™õ™ûÆšEˆõšNšFšG£–‰šLšK“NšMšJíw‰S´OšH“‚šIˆ šS—B¥šYšXšO‘ÁšP‘íšU¤šR–âŒ[šVšWšTšZšQš`šešaš\šf‘PíxšhAš^’šbš[Š«ŠìŠ…šcš_Œ–šišg‘r‹i‹ªšd‹ò‰cšmškš¥špšjšnšlŽkšošršwšušt’Q‰Ãšqšs¦‰Ršv‰Üš‚úš}š{š|š~‰\‘XšxšyŠššŠíš„š€šƒ•¬“Ó”¶š†š…Šdš‡šŠš‰šˆ”Xš‹šŒšŽššš“š‘šš’š”š•š–š—š˜™dŽúŽl‰ñˆö’cš™¢ˆÍ}ššŒÅ‘šœš›•ÞššŸšžš š¡Œ—‰€š¢š¤š£š¦“yš§ˆ³ÝŒ\’nš¨š©š«š¬â‹Ï–Všªš­¿Bíyš±£íz’Rš®’Øš²‚š°š³Œ^š´šµCŠ_š·š¸í{š¹š¶š¯šºš»í}í|–„éš½š¾š¼šÀ”Wˆæ•ušÁûŽ·”|Šîé–x“°Œ˜‘Íš¿šÂ‘šÚĚƒ犬Ꟊ•ñê“gäšÌ•»—Û‰òšÈ‘YšË“ƒ“h“„”·’ˍǚlj–“UšÉšÅošÍm‹«šÎ•æ‘’Ä큚ЖnšÑšÖ킕­šÕšÏšÒšÔ¤•Çš×’d‰óëšÙšØˆšÚšÜšÛšÞšÓšàšßšÝŽmp‘sšáºˆë”„’Ùšãšâšäšåšæšç•Ïšè탉Ěé—[ŠO™Çg‘½šê–é–²šì‘å“V‘¾•všíšî‰›Ž¸šïˆÎšðšñ‰‚Šï“Þ•òšõ‘tšôŒ_턖zšó“…š÷šöí…톚ùšø퇉œšú§šü’Dšû•±—“z›@D›A”@”Ü–Ï”D›J‹W—d–­›ª›B›E툑ÖW“i›F–…퉍ȏ¨›GŽoŽnˆ·ŒÆ©ˆÏ›K›L›I‰WŠ­›H–ÕPˆ¦ˆ÷ŽpˆÐˆ¡›Q›O–º›R›P›NP›M•ØŒâ›V›W©›S˜K”k›U¥›X•w›Y›T–¹”}›Z•Q›[›_›\‰Å›^Ž¹›]Œ™›k›d›a’„›`›b›c›e›fŠð›h›g›iì›l’Ú‰d›j›m›n›q›o›pŽq›rE›s튎š‘¶›t›uŽyF–ЋGŒÇ›vŠw›w‘·›x›¡›y›z›{›}›~›€‘î‰FŽçˆÀ‘vŠ®Ž³G“†@Š¯’ˆ’舶‹X•óŽÀ‹qéŽº—G›‹{ÉŠQ‰ƒª‰Æ›‚—eh틎⛃Šñ“Ж§›„›…•x›‡Š¦‹õ›†íŠ°Q›‹Ž@‰Ç›Š›ˆ›Œ›‰”JžËR›íŽ—¾›Ž›’ž›¡Ž›‘ÎŽõ••êŽË›‘«›’›“ˆÑ‘¸q›”“±¬­›•ë®í›–›—–Þ›˜‹ÄA›™›šŽÚK“òs”ö”A‹Ç››‹›œ‹ü“͉®Žr›› ›Ÿ‹û›ž“W‘®“jŽÆ‘w—š›¢›£“ÔŽR›¥›¦›§Šò›¨›©‰ªí‘ZŠâ›«–¦‘Њx›­›¯ŠÝ푛¬›®›±›°›²›³“»‹¬‰ã›´›¹›·•õ•ô풓‡›¶s›µ’›ºè›À›Á›»ŠR›¼›Å›Ä›Ã›¿›¾›Â퓕ö햛ɛƛȗ’›Ç픛½“›Ê헍µ›Ë›Ì›Ï›Î›Í“ˆ›¸›Õ›Ñ›Ð›Ò›Ó›Öí˜í™—ä›×›Ô›ØŠÞ›Ù횛ۛڛܛݐìB„‘ƒH¶I‹›Þ·ŒÈ›ß–¤”b›àJŠª’F‹ÐŽs•z”¿›áŠó›ä’Ÿ›ã›â›å’鐃ŽtÈ‘Ñ‹A’ ›æ›çí–X›ê›é›è•›ñ–y›ë›í–‹›ì›î”¦›ï•¼›ðŠ±•½”N›ò›óKŠ²›ôŒ¶—c—HŠô›ö’¡L¯”ݏ°˜’ê•÷“XM•{›÷“xÀŒÉ’ëˆÁŽN—f›ø›ù”p›ú—õ˜L›ü›ûŠfœ@œCœDœB•_±œFœEœAœGœHœIœLœJœKœM‰„’ìœNŒš‰ô”UœO“ù•ÙœP˜MœQ•¾œT˜Ÿ˜¯Ž®“óœU‹|’¢ˆøœV•¤O’o’í훖팷ŒÊœWœXœ^Žã휒£‹­œY•J’eœZíKœ[‹®œ\œ]œ_“–œ`œaœbœSœRœcŒ`•F흍ʕV’¤•jœd²‰eœeœf–ð”Þœi‰ªœhœgŒa‘Òœmœkœj—¥Œã™œl“k]“¾œpœoœnœqŒäœr•œzœs”÷“¿’¥íž“Oœt‹JS•KŠõ”EœuŽu–Y–Z‰žœzퟒ‰œw‰õœ«œy”Oœxœvšœ|œƒœ‰œ“{œ†•|œ€œ…—åŽv‘Óœ}‹}œˆ«‰…œ‚‰öœ‡‹¯œ„œŠœŒœ–œ”œ‘œ—öœ’‹°Pšœ™œ‹í œœ~‰øœ“œ•’p¦‰¶œœ˜œ—‹±‘§Š†ŒbœŽœšœœŸí¡Ž»í¢œ¥’œ£‰÷œ¡œ¢œžœ Œå—IŠ³‰xœ¤”Yˆ«”ßœ{œªœ®–㜧“‰œ¬îœ­“Õ˜fœ©í¤œ¯›Éí£ˆÒœ¨œ¦‘yœœŽS‘Äœ»í¦‘zœ¶œ³œ´Žäœ·œºœµDœ¸œ²–ú–ùœ¼œ½ˆÓí§œ±‹ðˆ¤Š´í¥œ¹œÁœÀœÅí©œÆí¨œÄœÇœ¿œÃœÈœÉœ¾ŽœœÂ‘ԍQœ°TœÖ•çœÌœÍœÎœÕœÔ–ŠµœÒŒdŠSœÏ—¶œÑˆÔœÓœÊœÐœ×ŒcœË—|—JœÚœÞ‘ž—÷œßœÜœÙíªœØœÝ•®“²ŒeœàœÛœáŒ›‰¯œéŠ¶œçœè§œæœäœãœêœâœì‰ùœîœí’¦œñœïœåŒœœðœôœóœõœòœöœ÷œø•èœúœù^¬‰ä‰úí«œûˆ½ÊœüæÁ@ŒAíBC‹YDEF‘Ռ˖ߖ[ŠGî绔àŽèËH‘Å•¥‘ïKILJM•¯ˆµ•}”áNQ³‹ZOV´P”c—}RSW“ŠTRÜe”²‘ðí¬”â«•ø’ï–•Z‰Ÿ’Šc’S]d_fba”[‰ûY‹‘‘ñUXSÙµ`”q‹’ŠgŠ‡@hmiŒnŽA‰E\ŽkŽwlˆÂg’§‹“‹²jˆ¥ÁU’ð”ҝp‘}‘¨ŽJqso•ß’»‘{•ùŽÌ€~˜Œžx·“æ”Pv‘|Žö{¶uz”rtŒ@Š||—©Ì’TyÚT„‰†‘[w‹dŒf’͝}‘~ƒ‘µ‰„†•`’ñ‡—K—gŠ·ˆ¬…‚Šö‰‡í­ˆ—hŒ‘¹“Š‘rŽ’”À“‹‹ŒgïÛ—“Eí®”–€•––̐ Œ‚ŽTš™”Qí¯“³“P›œ•”dŽBï–oŠh£ž—i¥¡¢‘€í° ^¤Ÿ©ª“F¬ŽC§‹[­¦±°¯²´ï³·µ¶¹¸˜º®Žx»¼¾½¿‰üU•ú­ŒÌÁÄí±•q‹~ÃÂ”sÅ‹³ÇÆŠ¸ŽU“ÖŒh”È®“G•~ÉÊË•¶›|Ä•kÖ”ã”Á“l—¿ÍŽÎÎˆ´‹ÒË•€ÏŽa’fŽzVÐ•û‰—Ž{ÓÑÔ—·ÒùÕ‘°ÖŠøØ×ÙÚŠù“ú’U‹ŒŽ|‘{ˆ®Û‰ ßí²VÞ©¸íµÝ¹–¾¨ˆÕÌí³äí·¯‰fí¸t–†ðºí¶¥íGãáâí´’‹žEèŽžWæçWåŽNíºí»êéîïëí¹ŠAìí”Ó•Œiðí½°»’q‹Åñõ‰Éòôó‹’gˆÃöí¾÷í¿’¨—ïŽb•éíÀ–\žAùüûíÁøž@“ܝúžBŒžC—j”˜žDžFžGžH‹È‰gXžIžJ‘‘‚íÂíJ™Ö‘]‘\‘ÖÅ˜ðŒŽ—L•ü•žíÞKñ’½žL˜N–]’©žMŠúžNžO–Ø–¢–––{ŽDžQŽé–pžSžVžUŠ÷‹€žRžTžW™—›ˆÇÞ‘ºŽÛñžZ“mžX‘©žYð–Ûž[ž\—ˆíŞaY”tž^“ŒÜà‹n”fž`¼”žf”øž]žcžbÍ–—Ñ–‡‰ÊŽ}˜gže•ždž_ŒÍžkži‰ËžgžmžsíÆíȑƕ¿žu•Ažt”–^Š¹õ_’Ñ—Mžpžožqžnžvžlžjžržh’Œ–öŽÄò¸–Š`íɒ̓ȉhð²ŒIžxZŠœžzŠ”žž}ñŠjªŠiÍž{Œ…Œj“íʞyˆÄž|ž~‹ËŒKíNJº‹jž‚÷–‘ŽVžƒ•Ož‰±ž„ž•ž…—ÀžŒ”~ž”ž‡ˆ²ž‰[ž‹žŠž†ž‘½šëŒæ—œžˆ’òŠB«ž€žŠžŽž’“ŽŠüž°íH–Çž—Šûžží˖_žŸž¡ž¥ž™’I“ž©žœž¦ž Xžª±ž¨Š»˜ož–ž¤ˆÖž˜–¸žA’Åž“ž£šž­Š‘ŒŸž¯žšž®ž§ž›ž«ž¬ž½“Ìž¢ž¹ž»’Ö—k•–ž¶‘Èž¼‘^ž³žÀž¿“íž¾“èí͞žµ‹Æž¸|”€žº‹Éž²ž´ž±˜OŠyž·žÁŠTå‰|žÒ˜PžÕíϐYžÔžÓžÐžÄžážÃžÖžÎžÉžÆžÇžÏꠞ̍\’Æ‘„žÊžÅžÈ—l–ŠžÍž×íОߞ؞åžãžÞžÝ’Α…žÛžÙžàžæ”óžìžçžêžä’”•WžÚžâ¾–ÍžöžéŒ ‰¡Š~žÑíя¿žîžõŽ÷Š’’MžëíӞðžô‹´‹kžò‹@“ÉžñžóíҞííԞïíՊ€’hžúžøŒçž÷Ÿ@žwžùžûžüŸKŸGžŸFŸEŸBžèŸDŸCŸI˜EŸL‹ùŸHŸJíÖíה¥ŸMŸQŸN—“ŸOžÜŸRŸS‰TŸUŒ‡ŽŸ‹Ó‰¢—~ŸWŸVŸY‹\‹ÔŠ¼Ÿ\Ÿ[Ÿ]‰Ì’VŸ^Š½Ÿ`Ÿ_ŸaŸbŸcŽ~³Ÿ••à˜cŽ•Î—ðŸdŸeŽ€ŸfŸgŸiŸh–w}ŽêŽcŸjŸlBŸkŸmŸnŸoŸpŸqŸsŸrŸt‰£’iŸuŽEŠkŸv“ašÊ‹BŸwŸx•ê–ˆ“ÅŸy”äíؔù–ÑŸzŸ|Ÿ{Ÿ~Ÿ}ŸŽ–¯Ÿ‚Ÿƒ‹CŸ„Ÿ†Ÿ……•X‰i”Ãíْó`‹”ÄŽ¬ŸˆŠ¾‰˜íړ🇍]’rŸ‰Ÿ‘ŸŠíܑ¿‹‚Ÿ’Œˆ‹DŸŸŽŸ‹—€íے¾“ןŒŸ”Ÿ“ŒB‰«¹ŸŸ–v‘ò–—ŸœŸ‰Í•¦–ûŸŸŽ¡ÀŸ˜Ÿž‰ˆ‹µŸ•Ÿšò”‘”埗–@Ÿ™Ÿ¢íݟ Ÿ›–A”g‹ƒ“D’Ÿ£Ÿ¡‘ן–‰jíޗmŸ®Ÿ­ôŸª—Œ“´Ÿ¤’Ék^Ÿ§FŸ¬Ÿ«Ÿ¦Ÿ©ŠˆŸ¨”h—¬òóŸ´Ÿ²•lŸ¯Ÿ±‰Y_˜QŠ\•‚íà—ŠCZŸ³Ÿ¸íߏÁ—OŸµŸ°Ÿ¶íá—Ü“““ÀíâŠU‰tŸ¼Ÿ¿—Á—„ŸÆŸÀŸ½—ÒŸÃíãiŸÅŸÊ“‘ŸÈŸÂ’WŸÉŸ¾ŸÄŸËˆúŸÁŸÌ[íå~•£¬í䟹ŸÇ“Yí搴Š‰ÏÂŸ»aŒkŸºŸÐŒ¸ŸßŸÙ‹”“nŸÔŸÝˆ­‰Qí鉷ŸÖ‘ªŸÍŸÏ`ŸàíçŸÛíêŸÓŸÚ–©ŸØŸÜŒÎÃ’XíèŸÒ—NŸÕŸÎ“’ŸÑŸ×˜pŽ¼–žŸá”¬ŸíŒ¹€Ÿã—­aŸðˆìŸîŸâŸèŸê—nŸå“MŸçíëŸïŸé–ş䎠ŸüŠŠŸæŸëŸì‘ê‘ØŸôŸúŸø“HàBŸõŸöŸÞ‹™•YŽ½—˜RŸòàA‰‰‘†”™Š¿—ø–Ÿ’ПùŸû‘Qà@Ÿ÷ŸñŠÁŒ‰àNàIöŠƒàRàK’ªàH’×àkàEàDàMàGàFàLŸàCíìàOàPŠÀàUàTàVàY“bàSííàWŒƒ‘÷àQ”ZàXà]à[à^àaàZŠ”GŸ·—”à\à`‘óà_àJíîè‰àdàhàfíïíðàbàcàgàe•màmàjàiàl“Òàn’•‘ëíñ£àoàqàpŸóàr“åàs‰Î“”ŠD‹„ŽÜÐíò˜F†‰Šàuàtíóàx’Yà{àvàzày“_ˆ×íF—óà}‰Gà€à~à|àw–Bà‚íõàíô‰‹à„•°àƒ–³Å‘RÄí÷íø—ùàŠ÷à†à‹‰Œíöà‰”à…àˆÆ”ÏàŒŽÏøàà‡ŒFà—oàê¤nà‘à’”Mà”à•íú”R“•à—à™—Óà–à˜‰à“šzàš‘‡ŽWàœà›C™×ààŸàŽàžíûࠔšà¡à¢à£à¤’Üà¦à¥à§à¨ŽÝ•ƒ–êà©àª‘uŽ¢à«à¬à­•Ð”Åஔv’«à¯‰å‹–Ä–´‰²˜S–q•¨µà°“ÁŒ¡à±Òà³à²à´àµà¶‹]à·à¸Œ¢”Æíüຏóà¹î@‹¶à»à½à¼à¾ŒÏ࿋ç‘_àÁàÂàÀŽë“Æ‹·àĒKàØT”‚àÇàÉàƖÒàÈàʗÂîAàÎà͒–”LŒ£àÌà˗P—QàωŽ–Ž‚àÐàÑàӏbàÕàÔà֊làØîCà×àÚàٌº—¦‹Ê‰¤‹èŠß—æàÜàÞîDà߉ÏàÛîEŽX’¿àÝîHîFàâŽìîGààŒ]”ÇàáàüîJà猻‹…à䗝îI—®‘ôàæîKîMîLîNàè—Ô‹Õ”ú”iàéàëàîàêàíŒè‰lààì—ÚîOàòê¢àðàóàåàñºàôàõ—žîPàöà÷îQàãàøŠÂŽ£àùàúàû‰Zá@•ZáAŠ¢áBáCáDáFáGáE•ráIáHîRáKáJáLáMáOáN™áQáPŠÃr“[áR¶ŽY‰™áS—p•ááT팓c—Rb\’j™²’¬‰æáUáVá[áYáXÀŠEáWˆØ”¨”È—¯á\áZ’{¤”©•Lá^—ªŒlá_á]”Ôá`áaîSˆÙôáfác“ëáb‹Eáiádáeáhág•D‘a‘`‹^ájákálánám‰uáv”æápárát]áuásŽ¾áoáq•aÇáxáwáyŽ¤­“—áz’Éá|—Ÿá{‘‰á‚á„á…’sáƒá€á}á~ááˆá†á‡á‰á‹áŒááŽáŠááá‘—Ãá”á’á“Šà–ü•Èá–á•á—á˜áœá™ášá›áážáŸá á¡”­“oᢔ’•Sá£îTᤓIŠFcá¥á¦á§ŽHá©á¨áªá«îWîUîVîX”çá¬á­ê‰á®á¯á°ŽM᱔u–~‰m‰vá²á´á³“·ŸXᵖ¿á¶ŠÄ”Õá·á¸á¹–Ú–Ó’¼‘Šá»‚Èá¾á½á¼”ûŠÅŒ§áÄáÁ^–°áÀáÂáÃá¿áÅჭŠá’…îZáÇáÈáː‡“Âá̖ráÉáÊáÏáÎáÍáÑáÐáÒáÔáӕˏu—ÄáՓµáÖá×áÛáÙáÚáØáÜáÝáÞáߖµáà–îáá’m”Š‹é’Zá⋸Îá㍻áäá匤Óáçî\“uÔ‹m–C”j“v{áéî]Éî^—°dŒ¥”¡áëî_áíŒéáì’ôáïŠVáê”è‰Oê˜qáîáð•É×áòáóáñŠmáùáøŽ¥áúáõáûáö”Öáôá÷âAâ@–áüˆéâCâBÊâD‘bâFâEâGáæáèâIâHî`Ž¦—çŽÐâJŒV‹_‹FŽƒ—SâPâO‘câLâNj_âMâK”IË•[Õ“˜âQâRâh‹Ö˜\‘TâS‰Ð’õ•ŸîdîfâT‹šâUâWâX”HâYâZâ[‹×‰Ñ“ÏGŽ„â\H‰È•bâ]”é‘dâ`âa”‰`â^’â_ÌˆÚ‹Hâb’öâcÅ–«•Bâdâe’t—ÅâgâfŽíâiˆîâlâj‰ÒŒmâke’•äâm–sâoÏ‰n‰¸ˆªânâpâqõârŠnâtŒŠ‹†âu‹óâvú“ːލóâw’‚‘‹âyâ{âxâzŒAâ|ŒE‹‡—qâ~ M⃊–â‚ââ…â}↗§â‡âˆîgšòâŠâ‰â‹âŒ—³âèíÍâŽâv“¶âîh’Gîj⑒[⒋£™^’|Ž±ŠÆâ“â â–‹ˆâ•â¢â”Îâ˜â™“J⚊}y•„✑æâ—â›âù⤕M”¤“™‹Øâ£â¡”³âž’}“›“šôâ¶â¦â¨â«â¬â©âªâ§â¥âŸ•Í‰Óâ³â°âµâ´”“–¥ŽZâ®â·â²â±â­îk⯊ǒ\û” â¼”¢ß⹔Í⽕ђzâ¸âºâ»â¾ŽÂ“ÄâÃâÂ⿘UâÈâÌâÉâÅâÆâËâÀ™ÓâÇâÁâÊâЊÈâÍâÎâÏâÒâєôâӗú•ëâØâÕâԐÐâ×âÙâÖâÝâÚâÛâÄâÜâÞâߕÄâà–à‹ÌŒHâᕲˆ–®â◱””‘e”Slˆ¾âçâåâ㊟ÏâèâæâäâìâëâêâéâíââïâñâðŒÐ‘Wâó“œâòâô•³‘Œfâõ—Æâ÷âøâùâúŽ…âûŒn‹Š‹Iã@–ñgâüãC–ä”[•RƒãBŽÑhŽ†‹‰•´ãA‘f–aõŽ‡’ÛãF—ݍ×ãGaãIÐ®ãHIŒ¼‘gãDãJîmãEŒoãMãQŒ‹ãLãUîni—ˆºãR‹‹ãOãP“ãNãKŠGâŒ¦ãWãTãVãSŒp‘±ãX‘Žãeîpãaã[ã_ŽøˆÛãZãbãfj–Ô’Ôã\îoãdãY’]ã^ˆ»–Èã]‹Ù”ꑍ—ΏãŽîqãgüãcãhãj’÷ãmãi•ÒŠÉ–ɈÜãl—ûãk‰“êãnãuãoãvãr”›ŽÈãtãqãwãpc–Dkãsã€ã{ã~ã|ããzã`Ñ”Éã}ãx‘@ŒqJîrD‘Uã„ã†ã‡ãƒã…ãyã‚ãŠã‰–šŒJãˆãŒã‹ãã‘Ž[ãã’ã“í@ã”ãš“Zã–ã•ã—ã˜ã™ã›ãœŠÊããžãŸîsã ã¡ã¢ã£ã¤ã¦ã¥ã§ã¨ã©ã¬ãªã«ßŒr’u”±”l”ë㭜ëã®ã°—…ã¯ã²ã±—r㳔üã´ã·ã¶ãµît㸌Q‘A‹`ã¼ã¹ãºã½ã¾ã»‰H‰¥ãÀãÁã—‚KãÄãЉãÅãÆãNJãŠËãÈãɖ|—ƒ—s˜Vlã̎ÒãËã͎§‘Ïã΍k–ÕãÏãÐãÑãÒãӎ¨–ëãՒ^ãÔã×ãÖãؐ¹ãÙãڕ·ãۑãÜãݗüãàãßãޒ®ãáEãâãã˜Wãäãåãçã攣“÷˜]”§ãéÑ•IãêãèŠÌŒÒŽˆ”쌨–bãíãëmnˆçæ”xˆÝãò’_”w‘Ùãôãðãóãîãñ–EŒÓˆûãïãöã÷“·‹¹äE”\Ž‰‹ºÆ˜e–¬ãõÒ‹rãøãúãùãû’E”]’¯äBäAãüt•…äDäCo˜räTäHäIŽîäG˜äFäJ’°• ‘B‘ÚäNäOäKäLäMpäUäQ•†–Œ•GäPäSäR–cäVäW‘VäXäZä^ä[äY”^ä\ä]‰°ädä_ä`äa‘Ÿäcäbäeäfägb‰çäh—ÕŽ©LŽŠ’väiäj‰Päkälämänäo‹»¨äpãäqŽÉär˜®äs•ÜŠÚ‘Cw•‘Mätqäu”Êä„äw‘Ç”•Œ½äv‘Däx’øäzäyä|ä{ä}ä€ä~ŠÍää‚䃍¯—Ç䅐F‰ä†ä‡äˆˆðä‰äŠ•‡ŽÅ䌊Hˆ°ä‹äŽ”mc‰Ô–FŒ|‹Ú䍉芡‰‘ä’—è‘Û•c䞉Õäœäšä‘ääŽá‹ê’—“ωpä”ä“ä™ä•ä˜îv–Î䗉֊ä›äŒsä¡äªä«ˆ©ä²ˆïä©ä¨ä£ä¢ä äŸ’ƒ‘ùä¥ä¤ä§‘Œt‰`䦍r‘‘îwä¸ä¹‰×‰¬ä¶îxä¬ä´ä»äµä³ä–ä±ä­ŠÎä¯äºä°ä¼ä®”œ—‰ä·äÍä՛îy‹e‹ÛäÀ‰ÙÒäÍؓpäȕì俉،ԕHäÉä½îzäÆäÐäÁ䓸äÇäĖGäʈÞä¾äÌä˔‹äÒä݊žäàäÎäӗŽäÜî{—t—¨’˜Š‹•’äⓟˆ¯äÛäב’äÑäÙäޔKˆ¨äÖäߕ˜äÚäՏӏNŽª–Ö•fäåäîä؊—î|öäãä葓äääë’~äì—uäáŠWäçäꖪäíäæäéíD–H˜@äñäøäðŽÁäϕ̖ ä÷äöäòäó‰Uäõäï’Óäôˆü‘ •Áäùå@”×äüÔŽÇåB‹¼î}åC•™äûî~äÔäú˜n“ •“î€åJåPåQåD”–åNåFåHåRåGåK‰’“ãåLåOåE‘EåIŽFdŒO–ò–÷’î‚åVåT˜måS—•åUåWåXå[åY“¡åZ”ËåM“å\åa‘”å`åAåb‘hå]å_å^ŸPŸAådåc—–áºåeåfågŒÕ‹såi™|‹•—¸‹ñåjåk’Žål“øˆ¸‰áåqåråmŽ\ån”aåoåpåzåtåwåsåuåvŽÖåx’`ŒuŠaå{Š^åå|倔¸å}å~•g”Ø傑ûåŒåˆ‰é冖Iå‡å„å…åŠåå‹å‰åƒ’w唖¨å’å“åŽåå‘叐ä˜Xå˜å™åŸIå›åžå–å•å ‰Úåœå¡ååš’±å—”ˆå¥—Zå¤å£å¬å¦å®—†å±å¨å©å­å°å¯å§åªå»å´å²å³å¸å¹ŠI‹aå·å¢î…å¶åºåµå¼å¾å½åÀå¿åyåÄåÁåÂåÃåŌŒåÇåƏOsŸ¥åȏpŠXåɉqÕåʍtåˈߕ\å̐ŠåÓåВåÑå΋ÜåÍåԌU‘ÜåÚå֑³åÕåØåÏåÙå۔íå×åÜåތÑå҈¿åݍٗôåßåà‘•— åá—Tåâåã•âå䍾—¡åéåêÖåè‡ååå琻žåæå땡åíå슌–JåîíAåúåðåñåòåóå÷åøåöåôåïåõåù赉¦åü‹ÝåûæAæ@æCæBæDPæEæFæG¼—væH•¢”eæIæJŒ©‹KæKŽ‹”`æLŠoæMæO——æNeæPæQæRŠÏæSæTæUæVŠpæWæXæY‰ðGæZæ[æ\Œ¾’ùæ]Œvuæ`“¢æ_Pæ^‘õ‹Læaæb×Œæc–KÝ‹––ó‘iædf’Øæeæhæi¼‘ÀægÙ•]æfŽŒ‰ræmŒwŽŽŽ˜lælæk‘F‹l˜bŠYÚî‰æjæoæpænŒÖ—_Ž”Fæs¾’a—UævŒê½æræwŒëætæuîŠæqà“Ç’N‰Û”î‹b²æzæx’k¿ŠÐæyz—Ș_æ{懒³æ†îŒæƒæ‹æ„怒úæ~æ|—@Žææ}îŽæ…”Œ¿‘ø–d‰yˆà“£æ‰æˆ“äææ‚æŒæŽŒªæŠuŽÓ揗wæ’æ•æ“•T搋Þæ”æ–æšæ—æ™æ˜îæ›Ž¯ææœ•ˆæŸŒxæžæ æ¡‹c㿏÷梌ìæ£îæ¤Ž]Ìæ¥æ¦Qæ§æ¨æ©æªæ«’Jæ¬æ®æ­“¤æ¯–Læ°æ±æ²æ³“؏Û洍‹˜¬æµæ¶•^æ·æ¿æ¸æºæ¹æ»–eæ¼æ½æ¾æÀŠL’啉àv•n‰Ý”ÌæÊѐÓæÂæǒ™–áæÅæƋMæȔƒ‘Ý”ï“\æĖf‰êæʘG’À˜dŽ‘æɑ¯æڑG“ö•oæ͎^Ž’Ü”…Œ«æÌæ˕ŠŽ¿“qî‘î’æÏæЍwæÎæÑæÒæԑ¡æӊäæÖæÕæ×î“æÙæÛæܐԎÍæ݊qæޑ–æßæà•‹î”‹Næᒴ‰zæâŽï–‘«æåæäæãæëæéæææèæçæꋗæîÕæïŒ×æìæí˜H’µ‘Hæðæóæñæò—x“¥æöæôæõæ÷çHæúæûæùæø’ûç@çDçAæüçBçCçJçEÖçGçIçFçLRçKçMçNçQçPçOçSçR–ôçUçTçVçWçYçXgçZ‹ëç[ç]ç^ç_ç\ç`ŽÔça‹OŒR¬çb“î“]çcçfŽ²çeçdŒyçgŠrçiÚçhçqçkçm•ãçjçlçpçn‹Pçoçr”y—֏Sçs—Açuçtçx—`çwŠçvç{çzçy“Qç|ç}ç~ŒŒDç€çç‚h烎«ç„ç…™Ÿ™žç†ãç‡’CJ”_爕Ӓҍž’H‰I–˜vŒ}‹ß•Ôç‰ç‹çŠ‰Þ“ô猔—“R獏q珖Àçžç‘ç’’Ç‘Þ‘—“¦ç‹tç™ç–磓§’€ç“’ü“rç”瘐€”‡’ʐÀ痑¬‘¢ç•ˆ§˜A皑ߏTiçœç›ˆí睕N祓ِ‹’x‹ö礗V‰^•Õ‰ßçŸç ç¡ç¢“¹’Bˆáç¦ç§ê¡‘»ç¨‰“‘kŒ­—yî™ç©“K‘˜ŽÕçªç­…ç«‘J‘Iˆâ—É篔ðç±ç°ç®â„ŠÒçŽç³ç²ç´—W“ß–M絎×ç¶ç·ç¸“@ˆèx˜Yç¼îšŒSç¹çº•”Šs—X‹½“sç½ç¾îœç¿î“AçÁçÀ“ÑçUŽÞ”z’‘ŽðŒçÃçĐ|çÅçÆçǗVçÉçȍy“Ž_ç̏†çËçʑçŒíÁ”®Xç͏ÝçÐçÎçÏçÒçяøçÓçÔçՔ΍юßçÖçח¢d–ì—Êç؋àçÙBîžç܊˜jî çÚçےÞî£î¤–t‹úî¡î¢çÞçßçÝçáî¥î§“ÝŠbî¦çåçâçäçàènçã—éŒØî®î¨îªçíSçèçëçéçîî«çïî­ççî¬çô‰”ç攫çêÞzî±î²–g‹âe“ºíC‘Lçòçìçñ–Á’¶çóçðKç÷çöçõNîºî¸î´îµî¹›î³çø•Ý‰s•e’’‹˜íIçú|îÀîŽKçùŽè@èBîÁùî¼èAèCѕdŽà˜Bçüö˜^èEèDèFçûíB“ç“t’ÕèKîĒbèGèHŒLèJîÌ®èIßŠ™èO½‘™’ÈîŊZèMèN’ÁèLèPèVîÆèYèX“LèQèRèUèWîNj¾èZèTèSîÈè^è_è`è]è\à“¨è[èdèbîÉècèa‘öèeèfèhîÊîˊÓèg–øèsèièlèjèkèmèoèpèqètèrèuèwèv’·–åèx‘Mèy•ÂèzŠJ‰[ŠÕî̊Ôè{è|è}è~耊֊t}”´è‚èèƒ‰{è†è…è„è‡èŠˆÅèˆèŒè‹èŽèè“¬èè‘è“è’•Œè”蕍ãè–è—–h‘jˆ¢‘É蘕è›è™~蚌À•ÃèèŸèžè ‰@wœŠ×衔†è£‰A袒—˓©èœ—¤Œ¯—z‹÷—²ŒG‘àä@褊KŠuè¦è§è¥Œ„ÛáîωB—×è©ç¬è¨îÐè¬èªè«è­è®—êè¯è°Ç”¹Šå—Y‰ëWŒÙè³è²Ž“è´è±ŽGè¸å«™Ô—趗£“ï‰JáŽ´•µ‰_—뗋蹓dŽùèºè»k輗ìè·è¾èÀè¿è½èÁè‘š‰àèÖ¶èÄèŘIîўPèÆîÒèÇèÈèÌîÓèÉèÊèËèÍîÔîÕî֐ÂîזõÃèΔñèÏêr–ÊèÐèÑèҊvèԐxèՌCèÖèÚèØèي“è×èÛè܈ÆèÝèޏâèߋfèâèáèà摕ÚèãèäèåèæèçèèŠØèéèê”Bè쉹èïèî‰C‹¿•Å’¸ €‡{èñèð—aŠæ”Гڐœ—ÌŒzèôèó–j“ª‰oèõèò•p—Šèöè÷èù‘èŠzŠ{èøŠçŒ°î؊è“^—ÞîٌÚèúèûèüé@éBéA•—éCéDéEéFéHéGéI”òãʐH‹QéJéK™ªŸZ”шùˆ¹Ž”–OüéL–ÝéM—{‰aŽ`éN‰ìéOéPéRéSéUéQéTî܊ÙéVéWéXéYéZé\é[é^éaé]é_é`éb‹ÀŽñécédîÞéeŠ]”néfég’y“ééh”‘ʉw‹ì‹í’“ém‹î‰íéléjékéiéwénéoépéqésérxétév‹Réu‘›Œ±éx‘Ëéy“«ézé€é}é|é~é{é‚îßéé„‹Áéƒé…é†éˆé‡é‰é‹éŠœéŒéŠ[éŽé‘éé‘é’铍‚îàîáé”é•é–é—阔¯éš•Eé›é™ééœéžéŸé é¡é¢é£é¤é¥é¦é§é¨é©éªé«é¬ŸTé­âö‹SŠ@°é¯é®–£é±é²é°é³–‚é´‹›˜Dîãéµîâ鷈¼îä鸕©é¶é¹éºé»é¼é½–ŽŽLø‘Nîåé¾éÁîæé¿éŒïéÀéÃéÄéÅéɎI‘âéÊéÇéÆéȌ~éÎéÍé̈±îçéØéÔéÕéÑé×éӊ‚˜kéÖéÒéÐéÏéÚéÝéÜéەhéوñéÞéàŠéˉVéâéáéߒL–—Øéãéäéåéæé璹é蔵éíéééê–P–“Îéîééìé뉨é÷éö‰•éôéóéñŠ›éðŽ°‰§ƒéúéùéøéõéûéüêDêCêE‰Lê@êA”–·êBîé–QêJîèêFêKêHêGŒ{êLêMêNêIéòêO’ßêSêTêRêQêWêPêUêVêYêXê[ê\ê]˜hêZ‘éëê^îëê_ê`êaêbŒ²êcêdŽ­êeêfêgêhêkêi˜[êj—íêl—Ùêm”žênêpêqêo–Ë–ƒ›õŸ€–›‰©ês‹oêtêuêvî썕êwàҖّáêxêzêyê{ê|ê}ê~ê€êê‚êƒê„ê…ê†ê‡êˆ“CŒÛꊑlê‹êŒ•@êêŽâVæØèëêêê’ê“ê”—îê‘ê•ê–ê˜ê—êšê›ê™—´êœêâsêžíÄîÍísí~í€í•í¼íÌíÎíùîBîYîaîbîcîeîiîlîuîîƒî„îî•î—î˜î›î·î¾îÎîÚîÛîÝîêIîü”“•îûij–{C|D^‚O‚P‚Q‚R‚S‚T‚U‚V‚W‚XFGƒ„H—‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚ym_nOQM‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚šobp`¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞ߁‘’ÊPîúï½¡ï½¢ï½£ï½¤ï½¥ï½¦ï½§ï½¨ï½©ï½ªï½«ï½¬ï½­ï½®ï½¯ï½°ï½±ï½²ï½³ï½´ï½µï½¶ï½·ï½¸ï½¹ï½ºï½»ï½¼ï½½ï½¾ï½¿ï¾€ï¾ï¾‚テトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚???????????????????????????????????????????????????????????????? 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×?÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓???????????∈∋⊆⊇⊂⊃∪∩????????∧∨¬⇒⇔∀∃???????????∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬???????ʼn♯♭♪†‡¶????◯??????????????????????????????????????????????????????????????????????????????????0123456789???????ABCDEFGHIJKLMNOPQRSTUVWXYZ???????abcdefghijklmnopqrstuvwxyz????ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん??????????????????????????????????????????????????????????????????????????????ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ?ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ????????ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ????????αβγδεζηθικλμνξοπρστυφχψω?????????????????????????????????????????????????????????????????????????????????????????????????????????АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ???????????????абвгдеёжзийклмн?опрстуфхцчшщъыьэюя?????????????─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ?㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡????????㍻?〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭???????????????????????????????????????????????????????????????????院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円?園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改???????????????????????????????????????????????????????????????????魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫?橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄???????????????????????????????????????????????????????????????????機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救?朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈???????????????????????????????????????????????????????????????????掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨?劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向???????????????????????????????????????????????????????????????????后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降?項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷???????????????????????????????????????????????????????????????????察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止?死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周???????????????????????????????????????????????????????????????????宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳?準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾???????????????????????????????????????????????????????????????????拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨?逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線???????????????????????????????????????????????????????????????????繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻?操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只???????????????????????????????????????????????????????????????????叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄?逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓???????????????????????????????????????????????????????????????????邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬?凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入???????????????????????????????????????????????????????????????????如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅?楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美???????????????????????????????????????????????????????????????????鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷?斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋???????????????????????????????????????????????????????????????????法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆?摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒???????????????????????????????????????????????????????????????????諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲?沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯???????????????????????????????????????????????????????????????????蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕????????????????????????????????????????????弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲???????????????????????????????????????????????????????????????????僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭?凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨???????????????????????????????????????????????????????????????????咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸?噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩???????????????????????????????????????????????????????????????????奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀?它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏???????????????????????????????????????????????????????????????????廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠?怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛???????????????????????????????????????????????????????????????????戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫?捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼???????????????????????????????????????????????????????????????????曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎?梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣???????????????????????????????????????????????????????????????????檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯?麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌???????????????????????????????????????????????????????????????????漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝?烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱???????????????????????????????????????????????????????????????????瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿?痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬???????????????????????????????????????????????????????????????????磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰?窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆???????????????????????????????????????????????????????????????????紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷?縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋???????????????????????????????????????????????????????????????????隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤?艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈???????????????????????????????????????????????????????????????????蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬?蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞???????????????????????????????????????????????????????????????????襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧?諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊???????????????????????????????????????????????????????????????????蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜?轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮???????????????????????????????????????????????????????????????????錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙?閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰???????????????????????????????????????????????????????????????????顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃?騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈???????????????????????????????????????????????????????????????????鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯?黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏?塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱???????????????????????????????????????????????????????????????????犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙?蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑??ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊?兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯???????????????????????????????????????????????????????????????????涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神?祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙???????????????????????????????????????????????????????????????????髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????   ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿢟󿢠󿢡󿢢󿢣󿢤󿢥󿢦󿢧󿢨󿢩󿢪󿢫󿢬󿢭󿢮󿢯󿢰󿢱󿢲󿢳󿢴󿢵󿢶󿢷󿢸󿢹󿢺󿢻󿢼󿢽󿢾󿢿󿣀󿣁󿣂󿣃󿣄󿣅󿣆󿣇󿣈󿣉󿣊󿣋󿣌󿣍󿣎󿣏󿣐󿣑󿣒󿣓󿣔󿣕󿣖󿣗󿣘󿣙󿣚󿣛󿣜󿣝󿣞󿣟󿣠󿣡󿣢󿣣󿣤󿣥󿣦󿣧󿣨󿣩󿣪󿣫󿣬󿣭󿣮󿣯󿣰󿣱󿣲󿣳󿣴󿣵󿣶󿣷󿣸󿣹󿣺󿣻󿣼???????????????????????????????????????????????????????????????????󿥀󿥁󿥂󿥃󿥄󿥅󿥆󿥇󿥈󿥉??????󿥐󿥑󿥒??󿥕󿥖󿥗???󿥛󿥜󿥝󿥞???????????????????󿥲󿥳󿥴󿥵󿥶󿥷󿥸󿥹󿥺󿥻󿥼󿥽󿥾?󿦀󿦁󿦂󿦃󿦄󿦅󿦆󿦇󿦈󿦉󿦊󿦋󿦌󿦍󿦎󿦏󿦐󿦑󿦒󿦓󿦔󿦕󿦖󿦗󿦘󿦙󿦚󿦛󿦜󿦝󿦞󿦟󿦠󿦡󿦢󿦣󿦤󿦥󿦦󿦧󿦨󿦩󿦪󿦫󿦬󿦭󿦮󿦯󿦰????????????????????????????????????????????????????????????????????????????????ù§ù§Hù†©¨áâ??????ø£?????????{|ùŸª«?¥£????????øøø÷øŸø´ù^????ù‘øÒ??~?????~?¨©øӁ€?ù•™øÙùI??ùE??ù ?????øã?øè??£¥?øêøêøÑøâø¡?øä?øÎøäøäøä?øÖ?øßø ùwùzøØ?øÄ???øû??ùù}øêøê??ø¿????????ùE???????øê?øæ?øÐøä?ùR?ùs???øè?????øé????ùt?øÃùG??ø¼@ ?øàøáøü?ù‡ùˆù‰ùŠù‹ùŒùùŽù10ø¤ø¢?????????????øÉ?øÏøÍ???øÈøÌ??øÁø¾?ø·ø¶?øº???ùP?????øì?ùH??????????øÔ?????ùF?????ù•ù–ù—?ù¦ù¡ù¬?ù“ù”ùŸù£???ù‘ùž??øù??”é?ù¢ù­??“¾??øëø×?ù›??øÛ???Ezù{øí??UP?ø¥øµø¹????øå?øïøðøñøòøóøõøöù@??ù€ùù°ù™ù’?ù«???ù‚????????ù›?????ù”?ù¬???????øã???VS???????????øÆøÇ?øÊøÂ???Š„ƒTù|–ž‹óŽw‰c????????????j???????????øîù‘ù‘ù‘ù‘ù‘?ø¸???????????????????ù˜???????????ù›ù•??????????????????????????ø¦??????????øÊ?????????????‰Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????‚`‚a‚nABøùøú?ùšù¥ù¨ù©ù¯???????????????????????ù???????????????????ù–????ùw??????????????ùw???ù‘????Ì??????ùw?øôù…?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùù‡ùˆù‰ùŠù‹ùŒùùŽù101112ù‡ùˆù‰ùŠù‹ùŒùùŽù10‰cZŒð‹x”NEÈŽwù†‚`“Á”é’´‹}”ƒ”„Å‘SŒn‘°????????ùE???????????????ùF???????ùHù???????????????????????øÀøÁø¼?ø¾øÃøÂ??øÐøËøÔ??øÓøÒøÑøÐ???ø×øÊøÊ???øØøÝ?????????????ø´ø·ø¹ø¶øµø¸??øÍøÌ?øÐ??øÇ?ùœøÈ???øáøàøŸø ø¡ø¢ø£?©¨?ù~?????øôøõøöùž?ù‘ù”øîøð???????????????????????????????????????????????????????????????????øñøïù©ù¨?????ù›????????????øúøÕ??????øã?øû??øéøéøèøèø»ùt????ù^øâù øìøë?øÛ?øí?ùR?øêøä?øÖ?øÆ??ùwù??øÄøÅ?????????????????????ù£???????ùQù}???????????????øßøæ???ø¡???????ùV???????????t‰ÄH“~?ù•ù—ù–??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ù ù ù ù øŸøŸøŸøŸù“ù“ù“ù“?ù•ù•ù•?????????????????????????????????????????????????????????ù…ù??ùù‡ùˆù‰ùŠù‹ùŒùùŽù10??-!%./:;?@^_'"{=~€›ùz?????????ù°NG“¾Š„‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“??????????????????????????????????????????????????????????????????????????øùøù??????????????????????????????????????????????????????????????????ø¿ø¿?ùGøº??øÎ???øÉøÏøü?ø¤ø¦ùCùD????øÙø÷øøùIÌ???ù‚ù§????ù’ù„??????????????ùw?????????????øó??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????øŸø ø¡ø¢ø£ø¤ø¥ø¦ø§ø¨ø©øªø«ø¬ø­ø®ø¯ø°ø±ø²ø³ø´øµø¶ø·ø¸ø¹øºø»ø¼ø½ø¾ø¿øÀøÁøÂøÃøÄøÅøÆøÇøÈøÉøÊøËøÌøÍøÎøÏøÐøÑøÒøÓøÔøÕøÖø×øØøÙøÚøÛøÜøÝøÞøßøàøáøâøãøäøåøæøçøèøéøêøëøìøíøîøïøðøñøòøóøôøõøöø÷øøøùøúøûøü???????????????????????????????????????????????????????????????????ù@ùAùBùCùDùEùFùGùHùI??????ùPùQùR??ùUùVùW???ù[ù\ù]ù^???????????????????ùrùsùtùuùvùwùxùyùzù{ù|ù}ù~?ù€ùù‚ùƒù„ù…ù†ù‡ùˆù‰ùŠù‹ùŒùùŽùùù‘ù’ù“ù”ù•ù–ù—ù˜ù™ùšù›ùœùùžùŸù ù¡ù¢ù£ù¤ù¥ù¦ù§ù¨ù©ùªù«ù¬ù­ù®ù¯ù°?????????ùQ???ùR????????ù¬ù¬ù–?ù”???ù•??ù—?NG????”é??ù§‹Ö‹ó‡–žÌ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùsùr?ù”?ù¬??????ù ??øæ?ù???????????øÔ??ùœ?øßøíøí??øë???VSùQ??øº?????????ù¦ø£øÕ?øÏ???????øä????øÈøÎøÍ?øÏ?øÆøÉøÇøË?øÊøÁø¿??????????????????????????????????????????????øÏøÛ??jøà??ù£?øÖøå”é?????????????øãùP?ù›ù‘ù‘ù‘ù‘ù‘ù‘ù‘ùŸ™ù­ù«›~ù¡™Hù§??????????????????????????????????????????????????????????????????????????øÂ?????øá?øü?øîøðøïøñù…ù„ù‚UP?—L–³ŒŽ\???ù‡ùˆù‰ùŠù‹ùŒùùŽùù“¾Š„ƒTù|–ž‹óŽw‰c????ª«¨©øÙøøø÷ùI¨©âá?ø§ø¨ø©øªø«ø¬ø­ø®ø¯ø°ø±ø²??ù°????ù§?‚i????????????????????????????????????????????ù¬?????ù˜????????????ù•ù•ù–??øò?øó??????????????ø¹???øÀ??????ø¾??????ø¦??????ø¤???????????????????????????????????????????????????????????????ùž????øâøèøéùt?ù¢??øôøõøöø¸øµø¶ø´?ø·??ø¿ùGøÃø¼ø¾Hù§ù‘ù“???????????????ùH??øÄ?øÅ?øÌ?ø×øØù›ù}???øÐ?øÑ?øÓø¢ø øŸø¡???ùF??ùE???ù•ù•ù—ù–?????????????????????????????????????????????øØ??????????????????????????????????ùE???????‚`‚aAB‚nøù????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿢟󿢠󿢡󿢢󿢣󿢤󿢥󿢦󿢧󿢨󿢩󿢪󿢫󿢬󿢭󿢮󿢯󿢰󿢱󿢲󿢳󿢴󿢵󿢶󿢷󿢸󿢹󿢺󿢻󿢼󿢽󿢾󿢿󿣀󿣁󿣂󿣃󿣄󿣅󿣆󿣇󿣈󿣉󿣊󿣋󿣌󿣍󿣎󿣏󿣐󿣑󿣒󿣓󿣔󿣕󿣖󿣗󿣘󿣙󿣚󿣛󿣜󿣝󿣞󿣟󿣠󿣡󿣢󿣣󿣤󿣥󿣦󿣧󿣨󿣩󿣪󿣫󿣬󿣭󿣮󿣯󿣰󿣱󿣲󿣳󿣴󿣵󿣶󿣷󿣸󿣹󿣺󿣻󿣼???????????????????????????????????????????????????????????????????󿥀󿥁󿥂󿥃󿥄󿥅󿥆󿥇󿥈󿥉??????󿥐󿥑󿥒??󿥕󿥖󿥗???󿥛󿥜󿥝󿥞???????????????????󿥲󿥳󿥴󿥵󿥶󿥷󿥸󿥹󿥺󿥻󿥼󿥽󿥾?󿦀󿦁󿦂󿦃󿦄󿦅󿦆󿦇󿦈󿦉󿦊󿦋󿦌󿦍󿦎󿦏󿦐󿦑󿦒󿦓󿦔󿦕󿦖󿦗󿦘󿦙󿦚󿦛󿦜󿦝󿦞󿦟󿦠󿦡󿦢󿦣󿦤󿦥󿦦󿦧󿦨󿦩󿦪󿦫󿦬󿦭󿦮󿦯󿦰󿦱󿦲󿦳󿦴󿦵󿦶󿦷󿦸󿦹󿦺󿦻󿦼󿦽󿦾󿦿󿧀󿧁󿧂󿧃󿧄󿧅󿧆󿧇󿧈󿧉󿧊󿧋󿧌󿧍󿧎󿧏󿧐󿧑󿧒󿧓󿧔󿧕󿧖󿧗󿧘󿧙󿧚󿧛󿧜󿧝󿧞󿧟󿧠󿧡󿧢󿧣󿧤󿧥󿧦󿧧󿧨󿧩󿧪󿧫󿧬󿧭󿧮󿧯󿧰󿧱󿧲󿧳󿧴󿧵󿧶󿧷󿧸󿧹󿧺󿧻󿧼????ùÜù§Hù†©¨áâ???ùû??ø£????????ùā{|ùŸª«?¥£????????øøø÷øŸø´ù^?ù¸??ù‘øÒùæùׁ~?ùÁùÁ??~?¨©øӁ€?ùρ™øÙùIùÀ?ùE??ù ùô??ùÖùÛøã?øè??£¥?øêøêøÑøâø¡?øä?øÎøäøäøä?øÖ?øßø ùwùzøØ?øÄùè??øû??ùù}øêøê??ø¿???????ùìùE???????øêùÕøæ?øÐøä?ù¾?ùsù½??ñf?????øé????ùt?øÃùG??ø¼@ ?øàøáøü?ù‡ùˆù‰ùŠù‹ùŒùùŽù10ø¤ø¢?????????????øÉ?øÏøÍ???øÈøÌ?ùÂøÁø¾?ø·ø¶ù·øº???ùP?????øì?ùHùí???ùï?ùçùö?ùîøÔùö?ùù??ùFùõ?ùú??ùÏù–ùÒ?ù¦ù¡ù¬ùÍù“ù”ùŸù£???ù‘ùž??øù??ùÙ?ù¢ù­??“¾?ùÌøëø×?ù›??øÛùµ??Ezù{øí??UP?ø¥øµø¹????øå?øïøðøñøòøóøõøöù@??ù€ùù°ù™ù’?ù«??ùñù‚??ù»????ùåù›?????ùËùüùÇ??ù¿????øã???VS???????????øÆøÇùãøÊøÂ???Š„ƒTù|ùàùގw‰c??????????ùð?j???????????øîù‘ù‘ù‘ù‘ù‘?ø¸?ùÃùò?????????ùê??????ù˜???????????ù›ùÏ??????????????????????????ø¦??????????øÊ?????????????‰Â??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùö?ùö????????‚`‚a‚nABøùøú?ùšù¥ù¨ù©ù¯???ùé???????????????????ù???????????????????ùÉ????ùw??????????????ùw???ù‘ùôù¶ù¼ùÚùáùâùäùë??ùøùw?øôù…?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùù‡ùˆù‰ùŠù‹ùŒùùŽù101112ù‡ùˆù‰ùŠù‹ùŒùùŽù10‰cZŒð‹x”NEÈŽwù†‚`“Áùْ´‹}”ƒ”„Å‘SŒn‘°?????ùù??ùE???????????????ùF?ùöùö????ùHùùè?ùí??ùêùé????????????????øÀøÁø¼?ø¾øÃøÂùÂ?øÐøËøÔùñùðøÓøÒøÑøÐ???ø×øÊøÊ???øØøÝ??ùå??????????ø´ø·ø¹ø¶øµø¸ù·?øÍøÌ?øÐ??øÇ?ùœøÈ??ùãøáøàøŸø ø¡ø¢ø£?©¨ùâù~ùÚ????øôøõøöùž?ù‘ù”øîøð???????????????????????????????????????????????????????????????????øñøïù©ù¨?????ù›ùæ??????ù³?ù¶??øúøÕ??????øã?øû?ùÀøéøéøèøèø»ùtù»???ù^øâù øìøë?øÛ?øí?ù¾?øêøä?øÖùÕøÆ?ù¼ùwù??øÄøÅ????ù¹????????????????ù£?????ù¿ùÀùºù}???????????????øßøæùµ??ø¡???????ùV???ùï???????t‰ÄH“~ùÓùÏùÒù–??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùØùØùØùØ????????????????????ùùùùùùùùù ù ù ù øŸøŸøŸøŸù“ù“ù“ù“?ù•ù•ù•?????????????????????????????????????????????????????????ù…ù??ùù‡ùˆù‰ùŠù‹ùŒùùŽù10??-!%./:;?@^_'"{=~€›ùz?????????ù°ùԓ¾Š„‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“??????????????????????????????????????????????????????????????????????????øùøù??????????????????????????????????????????????????????????????????ø¿ø¿?ùGøºùî?øÎ???øÉøÏøü?ø¤ø¦ùCùD????øÙø÷øøùIùá???ù‚ù§????ù’ù„??????????????ùw?????????????øó??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????øŸø ø¡ø¢ø£ø¤ø¥ø¦ø§ø¨ø©øªø«ø¬ø­ø®ø¯ø°ø±ø²ø³ø´øµø¶ø·ø¸ø¹øºø»ø¼ø½ø¾ø¿øÀøÁøÂøÃøÄøÅøÆøÇøÈøÉøÊøËøÌøÍøÎøÏøÐøÑøÒøÓøÔøÕøÖø×øØøÙøÚøÛøÜøÝøÞøßøàøáøâøãøäøåøæøçøèøéøêøëøìøíøîøïøðøñøòøóøôøõøöø÷øøøùøúøûøü???????????????????????????????????????????????????????????????????ù@ùAùBùCùDùEùFùGùHùI??????ùPùQùR??ùUùVùW???ù[ù\ù]ù^???????????????????ùrùsùtùuùvùwùxùyùzù{ù|ù}ù~?ù€ùù‚ùƒù„ù…ù†ù‡ùˆù‰ùŠù‹ùŒùùŽùùù‘ù’ù“ù”ù•ù–ù—ù˜ù™ùšù›ùœùùžùŸù ù¡ù¢ù£ù¤ù¥ù¦ù§ù¨ù©ùªù«ù¬ù­ù®ù¯ù°ù±ù²ù³ù´ùµù¶ù·ù¸ù¹ùºù»ù¼ù½ù¾ù¿ùÀùÁùÂùÃùÄùÅùÆùÇùÈùÉùÊùËùÌùÍùÎùÏùÐùÑùÒùÓùÔùÕùÖù×ùØùÙùÚùÛùÜùÝùÞùßùàùáùâùãùäùåùæùçùèùéùêùëùìùíùîùïùðùñùòùóùôùõùöù÷ùøùùùúùûùü??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ùsùrùÍùËùüùÇ??ùú??ù¿ù ùæ?øæ?ùùØ??ùì???????øÔ??ùœ?øßøíøí??øë???VSùº??øº?????????ù¦ø£øÕ?øÏ???????øä????øÈøÎøÍ?øÏ?øÆøÉøÇøËùãøÊøÁø¿?????????????????????????????????????????ùè????øÏøÛùð?jøà??ù£?øÖøåùÙ??????ùµ??????øãùPù¸ù›ù‘ù‘ù‘ù‘ù‘ù‘ù‘ùŸ™ù­ù«›~ù¡™Hù§ùÃùò??????ùñ?ùî??ùê????????????????????????????????????????????????????????????øÂ?????øá?øü?øîøðøïøñù…ù„ù‚UP?—L–³ŒŽ\???ù‡ùˆù‰ùŠù‹ùŒùùŽùù“¾Š„ƒTù|ùàùގw‰c????ª«¨©øÙøøø÷ùI¨©âá?ø§ø¨ø©øªø«ø¬ø­ø®ø¯ø°ø±ø²??ù°ùÖùÛ??ùÜ?‚i????????????????????????????????????????????ùÈ???ùÎùÐù˜ùÓ???????????ùÏùÏù–??øò?øó??????????????ø¹???øÀ??????ø¾??????ø¦?ùä????ø¤???????????????????????????????????????????????????????????????ùž??ù³?øâøèøéùtù»ù¢ùÌ?øôøõøöø¸øµø¶ø´?ø·ùöùùø¿ùGøÃø¼ø¾Hù§ù‘ù“????????????ùí??ùHùÀùÀøÄ?øÅ?øÌùåø×øØù›ù}???øÐ?øÑùïøÓø¢ø øŸø¡???ùF??ùE?ùöùõùÏù•ùÒù–?????????????????????????????????????????????øØ????????????????????????ùö?ùöùô??????ùE???????‚`‚aAB‚nøùù×?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿬡󿬢󿬣󿬤󿬥󿬦󿬧󿬨󿬩󿬪󿬫󿬬󿬭󿬮󿬯󿬰󿬱󿬲󿬳󿬴󿬵󿬶󿬷󿬸󿬹󿬺󿬻󿬼󿬽󿬾󿬿󿭀󿭁󿭂󿭃󿭄󿭅󿭆󿭇󿭈󿭉󿭊󿭋󿭌󿭍󿭎󿭏󿭐󿭑󿭒󿭓󿭔󿭕󿭖󿭗󿭘󿭙󿭚󿭛󿭜󿭝󿭞󿭟󿭠󿭡󿭢󿭣󿭤󿭥󿭦󿭧󿭨󿭩󿭪󿭫󿭬󿭭󿭮󿭯󿭰󿭱󿭲󿭳󿭴󿭵󿭶󿭷󿭸󿭹󿭺??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿰡󿰢󿰣󿰤󿰥󿰦󿰧󿰨󿰩󿰪󿰫󿰬󿰭󿰮󿰯󿰰󿰱󿰲󿰳󿰴󿰵󿰶󿰷󿰸󿰹󿰺󿰻󿰼󿰽󿰾󿰿󿱀󿱁󿱂󿱃󿱄󿱅󿱆󿱇󿱈󿱉󿱊󿱋󿱌󿱍󿱎󿱏󿱐󿱑󿱒󿱓󿱔󿱕󿱖󿱗󿱘󿱙󿱚󿱛󿱜󿱝󿱞󿱟󿱠󿱡󿱢󿱣󿱤󿱥󿱦󿱧󿱨󿱩󿱪󿱫󿱬󿱭󿱮󿱯󿱰󿱱󿱲󿱳󿱴󿱵󿱶󿱷󿱸󿱹󿱺??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿴡󿴢󿴣󿴤󿴥󿴦󿴧󿴨󿴩󿴪󿴫󿴬󿴭󿴮󿴯󿴰󿴱󿴲󿴳󿴴󿴵󿴶󿴷󿴸󿴹󿴺󿴻󿴼󿴽󿴾󿴿󿵀󿵁󿵂󿵃󿵄󿵅󿵆󿵇󿵈󿵉󿵊󿵋󿵌󿵍󿵎󿵏󿵐󿵑󿵒󿵓󿵔󿵕󿵖󿵗󿵘󿵙󿵚󿵛󿵜󿵝󿵞󿵟󿵠󿵡󿵢󿵣󿵤󿵥󿵦󿵧󿵨󿵩󿵪󿵫󿵬󿵭󿵮󿵯󿵰󿵱󿵲󿵳󿵴󿵵󿵶󿵷󿵸󿵹󿵺??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Fr$GA$G@‚p$F[$FZ$F]$F\??‚‰?$Eb?$E]?????????{|™$FR$FS?¥£????????$FW$FX$Gj??$Gl??$G"$GB?$E0?~?????~?$FT$FU$Gg€?$Gv™$FV$FY$GU?$Gr??$E/??$G!$Fn$Fo$E>?$G)??£¥?$Eh?$Ge$G($Gk?$Eh?$En$Eh$Eh$Eh???$EE$Gi$E#$G]?$GV??$EI???$E4$G_$Eh$Eh??$Ez???$E!???$E8$Gr?????$FP$FQ$Eh?$E2?$Gc$Eh???$E#???$G)?????$G*????$G+?$G=$G<??$G>@ ??$F($F*$F)$F<$F=$F>$F?$F@$FA$FB$FC$FD10?$Gh?????????????$Et?$Eq$Eo$Ep$Ek?$Em$GZ??$Ey$G???$G5$G3$ER$ED?????$ES?$EP??$GS$GP$E;??$Gf??$G9??$E@$Gt?$G:$E)?$Go$Gu?$E+??$Gw$Gy$Gx?$E\$Gy$E($E%$GC$GB™?$E=?$El$GB$G#$E,??$E:?”é?$G-???$FF$E<$G.$EJ$G\?$G^$Ga?$G^?$E3?Ez?$EF??$F3$E[?$G4???????$F.$F-$F/??$G1$G2????$FE$Fm?$GB?$E(???$F2??$G,$EH?$GW?$G[$G^$Gn$Gp$Gq$Gs?$E&$E'$E($E*$E-$E.$E1$E6$E7$E9$E>$EA$EB$EM$EN$EQ???$EW$E_?$Ef?$Ej?$Es$Eu$Ew$Ex$F"$F'$F+$F4$FG$FH$FI$FJ$FK$FL$FM$FN$FO?$Fp$Fq???????j???????????$F,$GB$GB$GB$GB$GB?$G3???????????????????$Gx???????????$G^$Gv??????????????$Gb??????????????????????$Ex$Gm????????????‰Â???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$EZ??$G9?$G9????????‚`‚a‚nAB?????!?!!`???????????????$G7???????????????????????????$Gy????$E#??????????????$E#$F!??$GB????Ì??????$E#?$G0$F0?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD101112$F<$F=$F>$F?$F@$FA$FB$FC$FD10$FMZŒð‹x”NEÈ$FL‚p‚`“Á”é’´‹}”ƒ”„Å‘SŒn‘°$Gs$Gp???$G:$E)?$Gr???????????????$Go?$Gt$G9$E*???$GS???$GP$E9???????$G$$G%??$G!$G"$EZ??$E,$Gn$E:$Ez$Ey$G>$F!$G?$G=$F"??$Gc$Ev$E@??$Gg?$Ge$Gc???$G\$Ex$Ex?$ED?$G]???$G[???$El$ES$EM$ET$EV$EU????$G5$G4$G3$G3?$Eo$GZ$Ep$Gc??$Eu$EA$EC$Em??$Ew$F(?$Gj$Gi$Gk$Gh$E]?$F[$FZ???$FQ$FP$FO$FN$G0$G1$G2$G#$E<$GB$GB$F,$F-???????????????????????????????????????????????????????????????????$F/$F.!!!??????$G^$E0???$G&??$G&?????$E^??????$E>???$GT$G*$G*$G)$G)?$G+$G,????$G($E/?$EJ$EH$G^?$EF$E-??$Eh$Eh???$Es??$E#$E4??$GV$GX$GW???????????????????$E3??????$E.$GU$EO$G_$Ed?$E6?????????$Ga?$Eb$EE$E2???$Gk????????$Gz??$Gf???????t‰ÄH“~?$Gw$Gx$Gy??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E5$E5$E5$E5????????????????????$G:$G:$G:$G:$E/$E/$E/$E/$Gj$Gj$Gj$Gj$GC$GC$GC$GC?$Gw$Gw$Gw?????????????????????????????????????????????????????????$F0$FE??$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD10??-!%./:;?@^_'"{=~€›?????????$FmNG$FF$FG‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$G$$G%???$Ez$Ez?$G<$ER??$En???$Et$Eq$F*?????????$FV$FX$FW$FYÌ???$F2$GA??$F)?$GB$F1??????????????$E#????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Gj$Gi$Gk$Gh$E]???$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj??$G4$G5?$G3?$ER?$G>?$G?$Ez$Ez$Ey$F"$G=$GV$GX$Es$Eu$Em$Et$Ex$Ev$GZ$Eo$En$Eq$Gc$Ge?$Gg$E@$E^?$G\$G]$FV?$G^???$EE?$F($G($E>$Eh?$E2?$G)$G*$Eh$EJ?$EF$F,$F.$F-$F/??$G0$G1$G2$FX$FW???$F*????????????????????????????????????????????????????????????????????????$Gr$Go$G<$GS$FY??????????????????ON?????????????????????$E$$E#$G+‚‰‚‰$E#???$FI$G_???$E4$F2?$F1$F0‚p$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$GB$GB$GC$GB$Gw$Gy$Gx$Gx??$G^$EC?$G#?$E/$Gy$G-???$E\$GA!?!!?$E($E(?``$Fm??$G&???$G3??$EO$G,???$E.$GT??????$E($E($Gy?$E&$G.$E%?$Gw??$Gx?NG?$Fn?$E5”é?$Fo$Fr‹Ö$FK‡$FJÌ?$Ew?$G[$E0?????$E8$GP?$Gf?????$Gu$G9??$G:$E+?$E'????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E!$E"$E#$E$$E%$E&$E'$E($E)$E*$E+$E,$E-$E.$E/$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$E:$E;$E<$E=$E>$E?$E@$EA$EB$EC$ED$EE$EF$EG$EH$EI$EJ$EK$EL$EM$EN$EO$EP$EQ$ER$ES$ET$EU$EV$EW$EX$EY$EZ$E[$E\$E]$E^$E_$E`$Ea$Eb$Ec$Ed$Ee$Ef$Eg$Eh$Ei$Ej$Ek$El$Em$En$Eo$Ep$Eq$Er$Es$Et$Eu$Ev$Ew$Ex$Ey$Ez??????????????????????????????????????????????$E`$G^??j???????”é?$Eb???????????$E>??$G^$GB$GB$GB$GB$GB$GB$GB?™?$E(›~$Gy™$G@$GA?????????????????????????????????????????????????????????????????????????$F!$F"$F#$F$$F%$F&$F'$F($F)$F*$F+$F,$F-$F.$F/$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$F:$F;$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$FF$FG$FH$FI$FJ$FK$FL$FM$FN$FO$FP$FQ$FR$FS$FT$FU$FV$FW$FX$FY$FZ$F[$F\$F]$F^$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj$Fk$Fl$Fm$Fn$Fo$Fp$Fq$Fr$Fs$Ft$Fu$Fv$Fw$Fx$Fy$Fz??????????????????????????????????????$E(?????$Gx????????????$Gv$Gw$Gy???????????????????????$Ez??????$G????????$GW?????????$E9?$Gm???????????????????????????????????????????????????????$G!$G"$G#$G$$G%$G&$G'$G($G)$G*$G+$G,$G-$G.$G/$G0$G1$G2$G3$G4$G5$G6$G7$G8$G9$G:$G;$G<$G=$G>$G?$G@$GA$GB$GC$GD$GE$GF$GG$GH$GI$GJ$GK$GL$GM$GN$GO$GP$GQ$GR$GS$GT$GU$GV$GW$GX$GY$GZ$G[$G\$G]$G^$G_$G`$Ga$Gb$Gc$Gd$Ge$Gf$Gg$Gh$Gi$Gj$Gk$Gl$Gm$Gn$Go$Gp$Gq$Gr$Gs$Gt$Gu$Gv$Gw$Gx$Gy$Gz????????????????????????????????????????????$G]??????????????????$EZ?????$G9?$G9?????$E)?$Gr???????‚`‚aAB‚n???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿮡󿮢󿮣󿮤󿮥󿮦󿮧󿮨󿮩󿮪󿮫󿮬󿮭󿮮󿮯󿮰󿮱󿮲󿮳󿮴󿮵󿮶󿮷󿮸󿮹󿮺󿮻󿮼󿮽󿮾󿮿󿯀󿯁󿯂󿯃󿯄󿯅󿯆󿯇󿯈󿯉󿯊󿯋󿯌󿯍󿯎󿯏󿯐󿯑󿯒󿯓󿯔󿯕󿯖󿯗󿯘󿯙󿯚󿯛󿯜󿯝󿯞󿯟󿯠󿯡󿯢󿯣󿯤󿯥󿯦󿯧󿯨󿯩󿯪󿯫󿯬󿯭???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿲡󿲢󿲣󿲤󿲥󿲦󿲧󿲨󿲩󿲪󿲫󿲬󿲭󿲮󿲯󿲰󿲱󿲲󿲳󿲴󿲵󿲶󿲷󿲸󿲹󿲺󿲻󿲼󿲽󿲾󿲿󿳀󿳁󿳂󿳃󿳄󿳅󿳆󿳇󿳈󿳉󿳊󿳋󿳌󿳍󿳎󿳏󿳐󿳑󿳒󿳓󿳔󿳕󿳖󿳗󿳘󿳙󿳚󿳛󿳜󿳝󿳞󿳟󿳠󿳡󿳢󿳣󿳤󿳥󿳦󿳧󿳨󿳩󿳪󿳫󿳬????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿶡󿶢󿶣󿶤󿶥󿶦󿶧󿶨󿶩󿶪󿶫󿶬󿶭󿶮󿶯󿶰󿶱󿶲󿶳󿶴󿶵󿶶󿶷󿶸󿶹󿶺󿶻󿶼󿶽󿶾󿶿󿷀󿷁󿷂󿷃󿷄󿷅󿷆󿷇󿷈󿷉󿷊󿷋󿷌󿷍󿷎󿷏󿷐󿷑󿷒󿷓󿷔󿷕󿷖󿷗󿷘󿷙???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Fr$GA$G@‚p$F[$FZ$F]$F\??‚‰?$O7?$E]?????????{|$OO$FR$FS?¥£????????$FW$FX$Gj??$Gl$OE?$G"$GB?$E0$QW~?????$OS?$FT$FU$Gg€?$P4$OO$FV$FY$GU?$Gr$Pk?$E/$QC?$G!$Fn$Fo$OC?$G)??£¥$Q,$Eh$O!$Ge$G($Gk$PK$Eh?$En$Eh$Eh$Eh?$O3?$EE$Gi$E#$G]?$GV$O$?$EI???$E4$G_$Eh$Eh?$O:$Ez???$E!???$E8$QJ?????$FP$FQ$Eh?$E2?$Gc$Eh$PO??$E#???$G)?????$G*????$G+?$G=$G<??$G>@ ?$O.$F($F*$F)$F<$F=$F>$F?$F@$FA$FB$FC$FD10$Pc$Gh?????????????$Et?$Eq$Eo$Ep$Ek?$Em$GZ??$Ey$G???$G5$G3$ER$ED??$OD?$Q)$ES?$EP??$GS$GP$E;$Q+$Oh$Gf??$G9$Og$Ob$E@$Gt$QL$G:$E)$QQ$Go$Gu?$E+$O'$O%$P5$P6$Gx?$E\$OT$E($E%$GC$GB$OO$O1$E=?$El$OI$G#$E,?$QV$E:?$O5?$G-$OP??$FF$E<$G.$EJ$G\?$G^$Ga?$O*$O<$E3$O>Ez?$EF$O9?$F3$E[?$G4$PJ????$O4$Ok$F.$F-$F/$P9$P;$G1$G2????$FE$Fm?$GB?$OQ??$O`$F2??$G,$EH?$GW$PT$G[$G^$Gn$Gp$Gq$Gs?$E&$E'$E($E*$E-$E.$E1$E6$E7$E9$E>$EA$EB$EM$EN$EQ?$Q1$Q2$EW$E_?$Ef?$Ej?$Es$Eu$Ew$Ex$F"$F'$F+$F4$FG$FH$FI$FJ$FK$FL$FM$FN$FO?$Fp$Fq$O!$O"$O#$O&$O($O+$O,$O-?$O0$O2?$O8$O;$O=$O?$O@$OA$OB$F,$OG$OJ$OK$OL$OM?$G3?$OX$OY$OZ$O[$O\$O]$O^$O_$Oa$Oc$Od$Oe$Of$Oi$Oj$Ol?$P"$P'?????$P/??$P.??$OF$Gv?$P8$P:$P<?$P?$P@$PA$P>???$PE$PI$Gb$PL$PM$PP$PQ$PR$PS$PV$PX??$P[$P\?$P_$P`$Pa$Pb?$Pf$Ph$Pk$Pl$Ex$Pi$Q#$Q$$Q%$Q&?$Q-??????‰Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Q.$Q/$Q0$Q3$Q4$Q5$Q6$Q7??$Q:$Q;$Q<$Q@?$QB$QE$QF$QG$QK?$QA?$QP$QR$QS$QU$QT$QV????!?!!`???????????????$G7????????$OZ??????????????????$Gy????$E#??????????????$E#$F!??$OH$QC???Ì?$P^????$E#?$G0$F0?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD101112$F<$F=$F>$F?$F@$FA$FB$FC$FD10$FMZŒð‹x”NEÈ$FL‚p‚`“Á$O5’´‹}”ƒ”„Å‘SŒn‘°$Gs$Gp$QL?$QM$G:$E)$QN$Gr$QO??????????????$Go$QF$Gt$Q@$E*???$GS?$O$$O%$GP$E9$Of$Oe?$Og???$G$$G%??$G!$G"$Q:?$Ph$E,$Gn$E:$PN$Ey$G>$F!$G?$G=$F"??$Gc$Ev$E@$O`$O+$Gg?$Ge$Gc?$Od?$G\$Ex$Ex?$ED?$G]???$G[???$El$ES$EM$ET$EV$EU???$PJ$G5$G4$G3$G3?$Eo$GZ$Ep$Gc??$Eu$EA$EC$Em??$Ew$F($O.$Gj$Gi$Gk$Gh$E]?$F[$FZ???$FQ$FP$FO$FN$G0$G1$G2$G#$E<$GB$GB$F,$F-???????????????????????????????????????????????????????????????????$F/$F.!!!??????$G^$E0$QE$PY?$G&??$G&?????$E^?$O"?$Q#??$OC???$GT$G*$G*$G)$G)?$G+$G,????$G($E/?$EJ$EH$O*?$EF$E-??$Eh$Eh?$O3?$Es??$E#$E4??$GV$GX$GW$Q&??????????????????$E3$O1?????$E.$GU$EO$G_$Ed?$E6???$OZ?????$Ga?$O7$EE$E2$O<??$Gk??$O]?????$Gz??$Gf???$O,?$O2?t‰ÄH“~$P($P5$Gx$P6??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E5$E5$E5$E5????????????????????$G:$G:$G:$G:$E/$E/$E/$E/$Gj$Gj$Gj$Gj$GC$GC$GC$GC?$Gw$Gw$Gw?????????????????????????????????????????????????????????$F0$FE??$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD10??-!%./:;?@^_'"{=~€$OR?????????$FmNG$FF$FG‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“??????????????????????????????????????????????????????????????????????????$QV$QV?????????????????????????????????????????????????????????$QQ???$G$$G%???$Ez$Ez?$G<$ER$Ob?$En???$Et$Eq$F*?$Pc$P\??$Pk???$FV$FX$FW$FYÌ???$F2$OW??$F)?$GB$F1??????????????$E#?????????????$P;??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Gj$Gi$Gk$Gh$E]$Pc?$P\$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj??$G4$G5?$G3$PJ$ER?$G>?$G?$Ez$PN$Ey$F"$G=$GV$GX$Es$Eu$Em$Et$Ex$Ev$GZ$Eo$En$Eq$Gc$Ge?$Gg$E@$E^$O3$G\$G]$FV?$O*???$EE$O.$F($G($OC$Eh$O4$E2?$G)$G*$Eh$EJ?$EF$F,$F.$F-$F/$P9$P;$G0$G1$G2$FX$FW$QV??$F*????????????????????????????????????????????????????????????????????????$Gr$Go$G<$GS$FY??????$OD???????????ON?????????????????????$E$$E#$G+‚‰‚‰$E#???$FI$G_???$E4$F2?$F1$F0‚p$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$GB$GB$GC$GB$Gw$P6$Gx$P'??$G^$EC?$G#$ON$E/$OT$G-$O1??$E\$OW!?!!?$OQ$E($OP``$Fm??$G&?$O<?$G3$OE?$EO$G,???$E.$GT??$OX???$E($P!$Gy?$E&$G.$E%$P%$P5$P&?$Gx$P(NG?$Fn$QW$E5$O5?$Fo$Fr‹Ö$FK‡$FJÌ?$Ew$P^$G[$E0?$O$?$Oe?$E8$GP$Ob$Gf$O+$O`$OY?$QC$Gu$G9??$G:$E+?$E'????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E!$E"$E#$E$$E%$E&$E'$E($E)$E*$E+$E,$E-$E.$E/$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$E:$E;$E<$E=$E>$E?$E@$EA$EB$EC$ED$EE$EF$EG$EH$EI$EJ$EK$EL$EM$EN$EO$EP$EQ$ER$ES$ET$EU$EV$EW$EX$EY$EZ$E[$E\$E]$E^$E_$E`$Ea$Eb$Ec$Ed$Ee$Ef$Eg$Eh$Ei$Ej$Ek$El$Em$En$Eo$Ep$Eq$Er$Es$Et$Eu$Ev$Ew$Ex$Ey$Ez??????????????????????????????????????$O!$O"$O#$O$$O%$O&$O'$O($O)$O*$O+$O,$O-$O.$O/$O0$O1$O2$O3$O4$O5$O6$O7$O8$O9$O:$O;$O<$O=$O>$O?$O@$OA$OB$OC$OD$OE$OF$OG$OH$OI$OJ$OK$OL$OM$ON$OO$OP$OQ$OR$OS$OT$OU$OV$OW$OX$OY$OZ$O[$O\$O]$O^$O_$O`$Oa$Ob$Oc$Od$Oe$Of$Og$Oh$Oi$Oj$Ok$Ol$Om???????????????????????????????????????????????????$F!$F"$F#$F$$F%$F&$F'$F($F)$F*$F+$F,$F-$F.$F/$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$F:$F;$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$FF$FG$FH$FI$FJ$FK$FL$FM$FN$FO$FP$FQ$FR$FS$FT$FU$FV$FW$FX$FY$FZ$F[$F\$F]$F^$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj$Fk$Fl$Fm$Fn$Fo$Fp$Fq$Fr$Fs$Ft$Fu$Fv$Fw$Fx$Fy$Fz??????????????????????????????????????$P!$P"$P#$P$$P%$P&$P'$P($P)$P*$P+$P,$P-$P.$P/$P0$P1$P2$P3$P4$P5$P6$P7$P8$P9$P:$P;$P<$P=$P>$P?$P@$PA$PB$PC$PD$PE$PF$PG$PH$PI$PJ$PK$PL$PM$PN$PO$PP$PQ$PR$PS$PT$PU$PV$PW$PX$PY$PZ$P[$P\$P]$P^$P_$P`$Pa$Pb$Pc$Pd$Pe$Pf$Pg$Ph$Pi$Pj$Pk$Pl????????????????????????????????????????????????????$G!$G"$G#$G$$G%$G&$G'$G($G)$G*$G+$G,$G-$G.$G/$G0$G1$G2$G3$G4$G5$G6$G7$G8$G9$G:$G;$G<$G=$G>$G?$G@$GA$GB$GC$GD$GE$GF$GG$GH$GI$GJ$GK$GL$GM$GN$GO$GP$GQ$GR$GS$GT$GU$GV$GW$GX$GY$GZ$G[$G\$G]$G^$G_$G`$Ga$Gb$Gc$Gd$Ge$Gf$Gg$Gh$Gi$Gj$Gk$Gl$Gm$Gn$Go$Gp$Gq$Gr$Gs$Gt$Gu$Gv$Gw$Gx$Gy$Gz??????????????????????????????????????$Q!$Q"$Q#$Q$$Q%$Q&$Q'$Q($Q)$Q*$Q+$Q,$Q-$Q.$Q/$Q0$Q1$Q2$Q3$Q4$Q5$Q6$Q7$Q8$Q9$Q:$Q;$Q<$Q=$Q>$Q?$Q@$QA$QB$QC$QD$QE$QF$QG$QH$QI$QJ$QK$QL$QM$QN$QO$QP$QQ$QR$QS$QT$QU$QV$QW$QX$QY??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󿁀󿁁󿁂󿁃󿁄󿁅󿁆󿁇󿁈󿁉󿁊󿁋󿁌󿁍󿁎󿁏󿁐󿁑󿁒󿁓󿁔󿁕󿁖󿁗󿁘󿁙󿁚󿁛󿁜󿁝󿁞󿁟󿁠󿁡󿁢󿁣󿁤󿁥󿁦󿁧󿁨󿁩󿁪󿁫󿁬󿁭󿁮󿁯󿁰󿁱󿁲󿁳󿁴󿁵󿁶󿁷󿁸󿁹󿁺󿁻󿁼󿁽󿁾?󿂀󿂁󿂂󿂃󿂄󿂅󿂆󿂇󿂈󿂉󿂊󿂋󿂌󿂍󿂎󿂏󿂐󿂑󿂒󿂓󿂔󿂕󿂖󿂗󿂘󿂙󿂚󿂛󿂜󿂝󿂞󿂟󿂠󿂡󿂢󿂣󿂤󿂥󿂦󿂧󿂨󿂩󿂪󿂫󿂬󿂭󿂮󿂯󿂰󿂱󿂲󿂳󿂴󿂵󿂶󿂷󿂸󿂹󿂺󿂻󿂼󿂽󿂾󿂿󿃀󿃁󿃂󿃃󿃄󿃅󿃆󿃇󿃈󿃉󿃊󿃋󿃌󿃍󿃎󿃏󿃐󿃑󿃒󿃓󿃔󿃕󿃖󿃗󿃘󿃙󿃚󿃛󿃜󿃝󿃞󿃟󿃠󿃡󿃢󿃣󿃤󿃥󿃦󿃧󿃨󿃩󿃪󿃫󿃬󿃭󿃮󿃯󿃰󿃱󿃲󿃳󿃴󿃵󿃶󿃷󿃸󿃹󿃺󿃻󿃼???????????????????????????????????????????????????????????????????󿅀󿅁󿅂󿅃󿅄󿅅󿅆󿅇󿅈󿅉󿅊󿅋󿅌󿅍󿅎󿅏󿅐󿅑󿅒󿅓󿅔󿅕󿅖󿅗󿅘󿅙󿅚󿅛󿅜󿅝󿅞󿅟󿅠󿅡󿅢󿅣󿅤󿅥󿅦󿅧󿅨󿅩󿅪󿅫󿅬󿅭󿅮󿅯󿅰󿅱󿅲󿅳󿅴󿅵󿅶󿅷󿅸󿅹󿅺󿅻󿅼󿅽󿅾?󿆀󿆁󿆂󿆃󿆄󿆅󿆆󿆇󿆈󿆉󿆊󿆋󿆌󿆍󿆎󿆏󿆐󿆑󿆒󿆓󿆔󿆕󿆖󿆗󿆘󿆙󿆚󿆛󿆜󿆝󿆞󿆟󿆠󿆡󿆢󿆣󿆤󿆥󿆦󿆧󿆨󿆩󿆪󿆫󿆬󿆭󿆮󿆯󿆰󿆱󿆲󿆳󿆴󿆵󿆶󿆷󿆸󿆹󿆺󿆻󿆼󿆽󿆾󿆿󿇀󿇁󿇂󿇃󿇄󿇅󿇆󿇇󿇈󿇉󿇊󿇋󿇌󿇍󿇎󿇏󿇐󿇑󿇒󿇓󿇔󿇕󿇖?????????????????????????????????????????????????????????????????????????????????????????????????????????󿉀󿉁󿉂󿉃󿉄󿉅󿉆󿉇󿉈󿉉󿉊󿉋󿉌󿉍󿉎󿉏󿉐󿉑󿉒󿉓󿉔󿉕󿉖󿉗󿉘󿉙󿉚󿉛󿉜󿉝󿉞󿉟󿉠󿉡󿉢󿉣󿉤󿉥󿉦󿉧󿉨󿉩󿉪󿉫󿉬󿉭󿉮󿉯󿉰󿉱󿉲󿉳󿉴󿉵󿉶󿉷󿉸󿉹󿉺󿉻󿉼󿉽󿉾?󿊀󿊁󿊂󿊃󿊄󿊅󿊆󿊇󿊈󿊉󿊊󿊋󿊌󿊍󿊎󿊏󿊐󿊑󿊒󿊓󿊔󿊕󿊖󿊗󿊘󿊙󿊚󿊛󿊜󿊝󿊞󿊟󿊠󿊡󿊢󿊣󿊤󿊥󿊦󿊧󿊨󿊩󿊪󿊫????󿊰󿊱󿊲󿊳󿊴󿊵󿊶󿊷󿊸󿊹󿊺󿊻󿊼󿊽󿊾󿊿󿋀󿋁󿋂󿋃󿋄󿋅󿋆󿋇󿋈󿋉󿋊󿋋󿋌󿋍󿋎󿋏󿋐󿋑󿋒󿋓󿋔󿋕?????????󿋟󿋠󿋡󿋢󿋣󿋤󿋥󿋦󿋧󿋨󿋩󿋪󿋫󿋬󿋭󿋮󿋯󿋰󿋱󿋲󿋳󿋴󿋵󿋶󿋷󿋸󿋹󿋺󿋻󿋼???????????????????????????????????????????????????????????????????󿍀󿍁󿍂󿍃󿍄󿍅󿍆󿍇󿍈󿍉󿍊󿍋󿍌󿍍󿍎󿍏󿍐󿍑󿍒󿍓󿍔󿍕󿍖󿍗󿍘󿍙󿍚󿍛󿍜󿍝󿍞󿍟󿍠󿍡󿍢󿍣󿍤󿍥󿍦󿍧󿍨󿍩󿍪󿍫󿍬󿍭󿍮󿍯󿍰󿍱󿍲󿍳󿍴󿍵󿍶󿍷󿍸󿍹󿍺󿍻󿍼󿍽󿍾?󿎀󿎁󿎂󿎃󿎄󿎅󿎆󿎇󿎈󿎉󿎊󿎋󿎌󿎍󿎎󿎏󿎐󿎑󿎒󿎓󿎔󿎕󿎖󿎗󿎘󿎙󿎚󿎛󿎜󿎝󿎞󿎟󿎠󿎡󿎢󿎣󿎤󿎥󿎦󿎧󿎨󿎩󿎪󿎫󿎬󿎭󿎮󿎯󿎰󿎱󿎲󿎳󿎴󿎵󿎶󿎷󿎸󿎹󿎺󿎻󿎼󿎽󿎾󿎿󿏀󿏁󿏂󿏃󿏄󿏅󿏆󿏇󿏈󿏉󿏊󿏋󿏌󿏍󿏎󿏏󿏐󿏑󿏒󿏓󿏔󿏕󿏖󿏗󿏘󿏙󿏚󿏛󿏜󿏝󿏞󿏟󿏠󿏡󿏢󿏣󿏤󿏥󿏦󿏧󿏨󿏩󿏪󿏫󿏬󿏭󿏮󿏯󿏰󿏱󿏲󿏳󿏴󿏵󿏶󿏷󿏸󿏹󿏺?????????????????????????????????????????????????????????????????????󿑀󿑁󿑂󿑃󿑄󿑅󿑆󿑇󿑈󿑉󿑊󿑋󿑌󿑍󿑎󿑏????????????????????????????????????????????????󿒀???󿒄󿒅󿒆󿒇󿒈󿒉󿒊?󿒌󿒍󿒎?󿒐???󿒔󿒕󿒖?󿒘󿒙󿒚󿒛󿒜???󿒠󿒡󿒢󿒣󿒤???󿒨󿒩󿒪󿒫󿒬󿒭󿒮󿒯????󿒴󿒵??????󿒼󿒽󿒾?????󿓄󿓅??󿓈???󿓌????????????????????????????????????????????????????ô©ô©Hð_ðëðìáâ??‚‰?ñ´òÄ?ðé?????????òЁ|™ª«?¥£????????ô¢ô¡ðåðÎñm??ñ„ððùð³ñJ?òÒô¼????~ô½¨©ð²òÓñƒñӁ™ô ô£ñ£?ðsôœ?ño??ðœ??ñ^?ñe?ñ³£¥?ñyñyð´ñnñº?ñz?ôñzñzñzô¼ñ|ñƒñµðæñòÕð¿?ñ…ð??ñ`??ñ‚ñ¥ñyñyñ©?ô‰?ôªô«?????ðsñk?ñ„??ðñððñyñ}ñ¶?ðµñz?ñw?ñ???ñe?ñ{ñ{?ñ°ñdôµ???ñh?ð©ôŒ??ð¦@ ?ðäðãô–ô¬ðMðNðOðPðQðRðSðTðUðVô˜ðèðuðvðwðxðyðzð{ð|ð~ð€ðð‚ð}ô”?ô•ðÖðØ?ðÚðßð×?ð«ð¥ð¨?ðÏðÑðÔôð½???ðÅ?ðÈ??ñp?ð‹ð???ñÆ??ð†ð”ôŽð¯ð…ðmðpðqô€ðƒ????ðŽñÓñÕñÔ??ñÕ???ðú™ñœ?ñDðÇðùð÷ð¡?ôEð£?ðb?ðô???òáðø?ñqð¹?ñIñ²?ñsñ·ñ›?Ez?ñu??UP??ðÒðÐ??????ñAðüñ@?ôÌðõðö????ò²òß?ô®????ð°ô¨??ñiñr?ñ‡?ðÃñIð¢ðl?ðk?ðú??ð‡ñvñ¢ð÷ñ¨?ðñ^ðÝ?ðÉVS??????????ðàñ~ðÜðâðºðª???òâƒTID–ž‹óð^ðWðóðò????ñY???ð±ñʏjñ¸?ñÌ????????ðûðùðùðùðùðù?ðÓ??????ñ½????ð·ð’ð‘?????????????????ñIñÓ??????????????????????????ô™???????ð ôœ?ð»?ñ[??ñˆ????????‰Â?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ðšð›ðž??ð†ðÂð†ñKð„??????‚`‚a‚nABôEñV???ñCñB`??ð•ð“?????????ðn?????????ðŒñ¬??ñ­ñ¯??????????????ñÕ????ñ??????????ðÕ???ñð§??ðù?ñSñ€ðïô¤ðí?????ñ?ðôò±?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ð@ðAðBðCðDðEðFðGðHðIðJðKðLðMðNðOðPðQðRðSðTðUðVðWðXðYðZð[ð\ð]ð^ð_ð`ðaðbðcðdðeðfðgðhðiðjðkðlðmðnðoðpðqðrðsðtðuðvðwðxðyðzð{ð|ð}ð~?ð€ðð‚ðƒð„ð…ð†ð‡ðˆð‰ðŠð‹ðŒððŽððð‘ð’ð“ð”ð•ð–ð—ð˜ð™ðšð›ðœððžðŸð ð¡ð¢ð£ð¤ð¥ð¦ð§ð¨ð©ðªð«ð¬ð­ð®ð¯ð°ð±ð²ð³ð´ðµð¶ð·ð¸ð¹ðºð»ð¼ð½ð¾ð¿ðÀðÁðÂðÃðÄðÅðÆðÇðÈðÉðÊðËðÌðÍðÎðÏðÐðÑðÒðÓðÔðÕðÖð×ðØðÙðÚðÛðÜðÝðÞðßðàðáðâðãðäðåðæðçðèðéðêðëðìðíðîðïðððñðòðóðôðõðöð÷ðøðùðúðûðü???????????????????????????????????????????????????????????????????ñ@ñAñBñCñDñEñFñGñHñIñJñKñLñMñNñOñPñQñRñSñTñUñVñWñXñYñZñ[ñ\ñ]ñ^ñ_ñ`ñañbñcñdñeñfñgñhñiñjñkñlñmñnñoñpñqñrñsñtñuñvñwñxñyñzñ{ñ|ñ}ñ~?ñ€ññ‚ñƒñ„ñ…ñ†ñ‡ñˆñ‰ñŠñ‹ñŒññŽñññ‘ñ’ñ“ñ”ñ•ñ–ñ—ñ˜ñ™ñšñ›ñœññžñŸñ ñ¡ñ¢ñ£ñ¤ñ¥ñ¦ñ§ñ¨ñ©ñªñ«ñ¬ñ­ñ®ñ¯ñ°ñ±ñ²ñ³ñ´ñµñ¶ñ·ñ¸ñ¹ñºñ»ñ¼ñ½ñ¾ñ¿ñÀñÁñÂñÃñÄñÅñÆñÇñÈñÉñÊñËñÌñÍñÎñÏñÐñÑñÒñÓñÔñÕñÖ?????????????????????????????????????????????????????????????????????????????????????????????????????????ò@òAòBòCòDòEòFòGòHòIòJòKòLòMòNòOòPòQòRòSòTòUòVòWòXòYòZò[ò\ò]ò^ò_ò`òaòbòcòdòeòfògòhòiòjòkòlòmònòoòpòqòròsòtòuòvòwòxòyòzò{ò|ò}ò~?ò€òò‚òƒò„ò…ò†ò‡òˆò‰òŠò‹òŒòòŽòòò‘ò’ò“ò”ò•ò–ò—ò˜ò™òšò›òœòòžòŸò ò¡ò¢ò£ò¤ò¥ò¦ò§ò¨ò©òªò«????ò°ò±ò²ò³ò´òµò¶ò·ò¸ò¹òºò»ò¼ò½ò¾ò¿òÀòÁòÂòÃòÄòÅòÆòÇòÈòÉòÊòËòÌòÍòÎòÏòÐòÑòÒòÓòÔòÕ?????????òßòàòáòâòãòäòåòæòçòèòéòêòëòìòíòîòïòðòñòòòóòôòõòöò÷òøòùòúòûòü???????????????????????????????????????????????????????????????????ó@óAóBóCóDóEóFóGóHóIóJóKóLóMóNóOóPóQóRóSóTóUóVóWóXóYóZó[ó\ó]ó^ó_ó`óaóbócódóeófógóhóiójókólómónóoópóqórósótóuóvówóxóyózó{ó|ó}ó~?ó€óó‚óƒó„ó…ó†ó‡óˆó‰óŠó‹óŒóóŽóóó‘ó’ó“ó”ó•ó–ó—ó˜ó™óšó›óœóóžóŸó ó¡ó¢ó£ó¤ó¥ó¦ó§ó¨ó©óªó«ó¬ó­ó®ó¯ó°ó±ó²ó³ó´óµó¶ó·ó¸ó¹óºó»ó¼ó½ó¾ó¿óÀóÁóÂóÃóÄóÅóÆóÇóÈóÉóÊóËóÌóÍóÎóÏóÐóÑóÒóÓóÔóÕóÖó×óØóÙóÚóÛóÜóÝóÞóßóàóáóâóãóäóåóæóçóèóéóêóëóìóíóîóïóðóñóòóóóôóõóöó÷óøóùóú?????????????????????????????????????????????????????????????????????ô@ôAôBôCôDôEôFôGôHôIôJôKôLôMôNôO????????????????????????????????????????????????ô€???ô„ô…ô†ô‡ôˆô‰ôŠ?ôŒôôŽ?ô???ô”ô•ô–?ô˜ô™ôšô›ôœ???ô ô¡ô¢ô£ô¤???ô¨ô©ôªô«ô¬ô­ô®ô¯????ô´ôµ??????ô¼ô½ô¾?????ôÄôÅ??ôÈ???ôÌ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ðåðæñºðèðéô˜?ô™ðuðvðwðxðyðzð{ð|ð~ð€ðð‚?ðÎðÒðÑðÏðÓðÐôñgð¦?ð¨ô‰ð¤ð¥ðªð©ñ…ñ†ñ~ðÜðßô”ðºð®ð×ðÖôô•ðµð´ð³ð²ð¯ñWñ|ð¹ð¿ô ?ñs?ðÀ?ñµðäðãñnñ^ñz?ñ¶?ñeñdñyñqñpñuðûñAðüñ@?ôÌðôðõðöô¡ô¢ôEñVñ`ô–??????????????????????????????????????????????????????????????????????ôšô›ðsðƒôŒð‹ô£????????ñw???ñÂ?????ON?ñm???????????????????ñcññh‚‰‚‰ñ??òÕ?IDñ¥ðî??ñ‚ô¨?ô¯ò±ð_ò¶ò·ò¸ò¹òºò»ò¼ò½ò¾òµðùô®?ðúñÓñÕñÔ???ñIðÞðŒð÷?ñoñÕðôñœ???ô©ñCñB????``òß??ñO?ñ·ñSðÔ?ñ‹ñ¤ñiñ€?ñwñ¢ñb?ð«??????ñÕ?ðú???ñÓ??ñÔñÒòàñ}??òLðbðï?ô©‹Ö‹ó‡–žô¤ðíðâ?ðÃñJ?ðð“ð’??ðôŽñÆð±ð°????ð†??ðp?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ññc?ðú??ðqð‡?ð¡ñvñ¢ñoñJð÷ñ¶ñ›ñ‚òLñ¨??ðð£?ðø???ð¯ðÝ?ðÞð½ñµñuñuñr?ñq??ðÉVSñ¤??ôðÈðÊðÌðË??????ðéñW?ô•ñ´ñ´?ñ¦???ñz???ðÇðßôðÖðØô•?ñ~ô”ðÜð®ðâðºð¥ôŠ???????????????????????????????????????ñY?ððŽ???ô•ñsð±ñʏjðä??ñœñÌñ|?ðb?ñ´????ñ·??????ñ^??ñIðùðùðùðùðùðùðù?™??òԁ~ñՁ™Hô©?????ñ½??ð°?ôŽ?ð·ð’ð‘ð”?????????????????????????????????????????????????????????ð§ðª?????ðãô¬ô–?ðûðüñAñ@ò±ô¯ô¨UP?—L?ŒŽ\???ðMðNðOðPðQðRðSðTðUò²òáòâƒTID–ž‹óð^ðWðóðòðñððª«¨©ô ô¢ô¡ô£ðìðëâá?ðuðvðwðxðyðzð{ð|ð~ð€ðð‚ð}?òß????ô©?‚i???????????????????????????????????????????????????ñÒ???????????ñÓñÓñÕ????ôÌ??????????????ðÐ???ð¤??????ð¨???ñL??ô™ñ‡?????ô˜????ð ??ôœ?????????????????????????????????????????????????????ðœðð÷ð˜ð™ñO?ñnñeñdñhñiðô??ðôðõðöðÓðÒðÑðÎ?ðÏð†ðpð¤ôŒð©ð¦ð¨Hô©ðù?????????????ð??ð‹ñbñ£ñ…ñ‡ñ†?ð×ðÃð¹ð¿ñIñ¥?ñ²?ðµ?ð´ñÆð²ðèðæðåñº??ð¢ðƒðl?ðsðkð…?ñÓñÓñÔñÕñÃ????????????????????????????????????????ñ[??ñˆð¿??????????????????ðž?????ð†?ð†??ñKð„?ðq?ðs?ðmðoðrðt?ô€‚`‚aAB‚nôE?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󾀁󾀂󾀃󾀄󾀅󾀆󾀇󾀈󾀉󾀊󾀋󾀌󾀍󾀎󾀏󾀐󾀑󾀒󾀓󾀔󾀕󾀖󾀗󾀘󾀙󾀚󾀛󾀜󾀝󾀞󾀟󾀠󾀡󾀢󾀣󾀤󾀥󾀦󾀧󾀨󾀩󾀪󾀫󾀬󾀭󾀮󾀯󾀰󾀱󾀲󾀳󾀴󾀵󾀶󾀷󾀸󾀹󾀺󾀻󾀼󾀽󾀾󾀿󾁀󾁁󾁂󾁃󾁄󾁅󾁆󾁇󾁈󾁉󾁊󾁋󾁌󾁍󾁎󾁏󾁐󾁑󾁒󾁓󾁔󾁕󾁖󾁗󾁘󾁙󾁚󾁛󾁜󾁝󾁞󾁟󾁠󾁡󾁢󾁣󾁤󾁥󾁦󾁧󾁨󾁩󾁪󾁫󾁬󾁭󾁮󾁯󾁰󾁱󾁲󾁳󾁴󾁵󾁶󾁷󾁸󾁹󾁺󾁻󾁼󾁽󾁾󾁿󾂀󾂁󾂂󾂃󾂄󾂅󾂆󾂇󾂈󾂉󾂊󾂋󾂌󾂍󾂎󾂏󾂐󾂑󾂒󾂓󾂔󾂕󾂖󾂗󾂘󾂙󾂚󾂛󾂜󾂝󾂞󾂟󾂠󾂡󾂢󾂣󾂤󾂥󾂦󾂧󾂨󾂩󾂪󾂫󾂬󾂭󾂮󾂯󾂰󾂱󾂲󾂳󾂴󾂵󾂶󾂷󾂸󾂹󾂺󾂻󾂼󾂽󾂾󾂿󾃀󾃁󾃂󾃃󾃄󾃅󾃆󾃇󾃈󾃉󾃊󾃋󾃌󾃍󾃎󾃏󾃐󾃑󾃒󾃓󾃔󾃕󾃖󾃗󾃘󾃙󾃚󾃛󾃜󾃝󾃞󾃟󾃠󾃡󾃢󾃣󾃤󾃥󾃦󾃧󾃨󾃩󾃪󾃫󾃬󾃭󾃮󾃯󾃰󾃱󾃲󾃳󾃴󾃵󾃶󾃷󾃸󾃹󾃺󾃻󾃼󾃽󾃾󾃿󾄀󾄁󾄂󾄃󾄄󾄅󾄆󾄇󾄈󾄉󾄊󾄋󾄌󾄍󾄎󾄏󾄐󾄑󾄒󾄓󾄔󾄕󾄖󾄗󾄘󾄙󾄚󾄛󾄜󾄝󾄞󾄟󾄠󾄡󾄢󾄣󾄤󾄥󾄦󾄧󾄨󾄩󾄪󾄫󾄬󾄭󾄮󾄯󾄰󾄱󾄲󾄳󾄴󾄵󾄶󾄷󾄸󾄹󾄺󾄻󾄼󾄽󾄾󾄿󾅀󾅁󾅂󾅃󾅄󾅅󾅆󾅇󾅈󾅉󾅊        ?	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ????????????#?????
??????L?S???VS???????????????©???Š„ƒTID–ž‹óŽw‰c????????????j???????????333333?????????????????????????????????#D???????????????????????????????????K???????œ???????‰Â????????š?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ö?ö????????‚`‚a‚nAB????!?!!`??????????????????????????????????????????????l??????????????l???3N???Ì??????l???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????E´µ¶·¸¹º»¼½1112´µ¶·¸¹º»¼½‰cZŒð‹x”NEÈŽw‚`“Á’´‹}”ƒ”„Å‘SŒn‘°??÷??øù?J?ÀÁÂÃÄÅÆÇÌÈ?ÉÊËû?öö????êqë????ó???????P2????}ج?Ù¨©×?’Îõ??A4]’???!???ß?n?????ã?å?????-Û3Ü2?Ý?ÐÕђÓ????Ô???±°,k_¿????Œ???@3
3;???????????????????????????????????????????????????????????????????<:!!!?????#5????????????|??????S?t?H¡¡U›?¦??‡?.^Mè ?&?,?•?[ažh???lwC1p?????????????????????(??????HxŠ??{?????? ?$W
j'??_?????????m?ï???????t‰ÄH“~???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????øøøøMMMM,,,,				???????????????????????????????????????????????????????????E??E´µ¶·¸¹º»¼½??-!%./:;?@^_'"=7B›m?????????FNGŠ„‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ú????????}}?©Þô?c???Íϲ?¾???K???F+*GÌ????€³?H??????¢??????g>l?????????????>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,k_¿¾1?ÀÁÂÃÄÅÆÇÈÉÊË?-2ÜÛ?3Þ?¬?Ù}}Ø©¨p???ÔÍ?ÎÕÐcϒ]4Aõ|h!nF?&???j°±^Sa8?U¡[ è,3:;<=>?@+*?t²???????????????????????????????????????????????????????????????????A????Jû©êG??????â?•?????????ON?.???????????????????¡—¦?‚‰l??m+IDx??Dw????´µ¶·¸¹º»¼E3H	
?G?#??M??!?!!?J``F????'?Ý0???˜•?H9×????
????NGQ6??R‹Ö‹ó‡–žÌ????5ñq???…ëôï????Nüö??øþ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????—¡
?ù?þ??M5?(w??L…?ì
??õ???ßj,,?s ???VSç?Þå???????0|?Ï

?Š???a??ÒÔcÐÑÏ??Í?Î??Ø}?????????????????????????????????????????q?ÿ?Ï&??j°???h8?
?-|?'?)????Sâ0#333333?EJ›=E??????????ô????óî??9??????????????????????????????????????????????????????©?????±³²?3;:<???/?—L–³ŒŽ\???´µ¶·¸¹º»¼EŠ„ƒTID–ž‹óŽw‰c??Œ?@F*+G?ÀÁÂÃÄÅÆÇÈÉÊËÌ?FQR???‚i??????????????????????????????????????????????????????????????D??=?>??????????????3`??}”?????Ù?????????????¾???????K?????????????????????????????????????????????????????P2????^U¡¦???@?2Ü-?Ûöø}©¨¬Ù3	????????????ë??êHHp???Õ?!n#x?$?’?]ïA¿k,_/??û??J?öüD?????????????????????????????????????????????n?ä?íZ???????????????????ö?öN????ù?†?÷????ú‚`‚aAB‚n6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󾀁󾀂󾀃󾀄󾀅󾀆󾀇󾀈󾀉󾀊󾀋󾀌󾀍󾀎󾀏󾀐󾀑󾀒󾀓󾀔󾀕󾀖󾀗󾀘󾀙󾀚󾀛󾀜󾀝󾀞󾀟󾀠󾀡󾀢󾀣󾀤󾀥󾀦󾀧󾀨󾀩󾀪󾀫󾀬󾀭󾀮󾀯󾀰󾀱󾀲󾀳󾀴󾀵󾀶󾀷󾀸󾀹󾀺󾀻󾀼󾀽󾀾󾀿󾁀󾁁󾁂󾁃󾁄󾁅󾁆󾁇󾁈󾁉󾁊󾁋󾁌󾁍󾁎󾁏󾁐󾁑󾁒󾁓󾁔󾁕󾁖󾁗󾁘󾁙󾁚󾁛󾁜󾁝󾁞󾁟󾁠󾁡󾁢󾁣󾁤󾁥󾁦󾁧󾁨󾁩󾁪󾁫󾁬󾁭󾁮󾁯󾁰󾁱󾁲󾁳󾁴󾁵󾁶󾁷󾁸󾁹󾁺󾁻󾁼󾁽󾁾󾁿󾂀󾂁󾂂󾂃󾂄󾂅󾂆󾂇󾂈󾂉󾂊󾂋󾂌󾂍󾂎󾂏󾂐󾂑󾂒󾂓󾂔󾂕󾂖󾂗󾂘󾂙󾂚󾂛󾂜󾂝󾂞󾂟󾂠󾂡󾂢󾂣󾂤󾂥󾂦󾂧󾂨󾂩󾂪󾂫󾂬󾂭󾂮󾂯󾂰󾂱󾂲󾂳󾂴󾂵󾂶󾂷󾂸󾂹󾂺󾂻󾂼󾂽󾂾󾂿󾃀󾃁󾃂󾃃󾃄󾃅󾃆󾃇󾃈󾃉󾃊󾃋󾃌󾃍󾃎󾃏󾃐󾃑󾃒󾃓󾃔󾃕󾃖󾃗󾃘󾃙󾃚󾃛󾃜󾃝󾃞󾃟󾃠󾃡󾃢󾃣󾃤󾃥󾃦󾃧󾃨󾃩󾃪󾃫󾃬󾃭󾃮󾃯󾃰󾃱󾃲󾃳󾃴󾃵󾃶󾃷󾃸󾃹󾃺󾃻󾃼󾃽󾃾󾃿󾄀󾄁󾄂󾄃󾄄󾄅󾄆󾄇󾄈󾄉󾄊󾄋󾄌󾄍󾄎󾄏󾄐󾄑󾄒󾄓󾄔󾄕󾄖󾄗󾄘󾄙󾄚󾄛󾄜󾄝󾄞󾄟󾄠󾄡󾄢󾄣󾄤󾄥󾄦󾄧󾄨󾄩󾄪󾄫󾄬󾄭󾄮󾄯󾄰󾄱󾄲󾄳󾄴󾄵󾄶󾄷󾄸󾄹󾄺󾄻󾄼󾄽󾄾󾄿󾅀󾅁󾅂󾅃󾅄󾅅󾅆󾅇󾅈󾅉󾅊󾅋󾅌󾅍󾅎󾅏󾅐󾅑󾅒󾅓󾅔󾅕󾅖󾅗󾅘󾅙󾅚󾅛󾅜󾅝󾅞󾅟󾅠󾅡󾅢󾅣󾅤󾅥󾅦󾅧󾅨󾅩󾅪󾅫󾅬󾅭󾅮󾅯󾅰󾅱󾅲󾅳󾅴󾅵󾅶󾅷󾅸󾅹󾅺󾅻󾅼󾅽󾅾󾅿󾆀󾆁󾆂󾆃󾆄󾆅󾆆󾆇󾆈󾆉󾆊󾆋󾆌󾆍󾆎󾆏󾆐󾆑󾆒󾆓󾆔󾆕󾆖󾆗󾆘󾆙󾆚󾆛󾆜󾆝󾆞󾆟󾆠󾆡󾆢󾆣󾆤󾆥󾆦󾆧󾆨󾆩󾆪󾆫󾆬󾆭󾆮󾆯󾆰󾆱󾆲󾆳󾆴󾆵󾆶󾆷󾆸󾆹󾆺󾆻󾆼󾆽󾆾󾆿󾇀󾇁󾇂󾇃󾇄󾇅󾇆󾇇󾇈󾇉󾇊󾇋󾇌󾇍󾇎󾇏󾇐󾇑󾇒󾇓󾇔󾇕󾇖󾇗󾇘󾇙󾇚󾇛󾇜󾇝󾇞󾇟󾇠󾇡󾇢󾇣󾇤󾇥󾇦󾇧󾇨󾇩󾇪󾇫󾇬󾇭󾇮󾇯󾇰󾇱󾇲󾇳󾇴󾇵󾇶󾇷󾇸󾇹󾇺󾇻󾇼󾇽󾇾󾇿󾈀󾈁󾈂󾈃󾈄󾈅󾈆?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󾊼󾊽󾊾󾊿󾋀󾋁󾋂󾋃󾋄󾋅󾋆󾋇󾋈󾋉󾋊󾋋󾋌󾋍󾋎󾋏󾋐󾋑󾋒󾋓󾋔󾋕󾋖󾋗󾋘󾋙󾋚󾋛󾋜󾋝󾋞󾋟󾋠󾋡󾋢󾋣󾋤󾋥󾋦󾋧󾋨󾋩󾋪󾋫󾋬󾋭󾋮󾋯󾋰󾋱󾋲󾋳󾋴󾋵󾋶󾋷󾋸󾋹󾋺󾋻󾋼󾋽󾋾󾋿󾌀󾌁󾌂󾌃󾌄󾌅󾌆󾌇󾌈󾌉󾌊󾌋󾌌󾌍󾌎󾌏󾌐󾌑󾌒󾌓󾌔󾌕󾌖󾌗󾌘󾌙󾌚󾌛󾌜󾌝󾌞󾌟󾌠󾌡󾌢󾌣󾌤󾌥󾌦󾌧󾌨󾌩󾌪󾌫󾌬󾌭󾌮󾌯󾌰󾌱󾌲󾌳󾌴󾌵󾌶        ?	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ	

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ	

 !"#$%&'()*+,-./0123456?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????E´µ¶·¸¹º»¼½1112´µ¶·¸¹º»¼½…ZŒð‹x”NEÈ„‚`“Á’´‹}”ƒ”„Å‘SŒn‘°[Y÷í?øù?J?ÀÁÂÃÄÅÆÇÌÈ?ÉÊËûÍöÉ`???ê÷qëf³²ãóâ????ÄÅP2Æ?éX}ج Ù¨{×?’ÎõMA4]’?±?!zì?ß?n??ÊV?ã?åj????-Û3Ü2¥ÝÐÕђÓ?xh?Ôv?y±°,k_¿?)?'Œ‡†1?@3
3;???????????????????????????????????????????????????????????????????<:ÞÝ????W5Ì???????%??Ù|?Œ?î??S?t?H¡¡U›?¦Q?‡?.^Mè R&?,a•?[ažhw?&lwC1p?Tñ??????????????????(?????bHxŠ?d{??øû?ü ?$W
j'“?_??¬??????m?ï???‘?•?t‰ÄH“~???????????????????????????????????????????????????????????????????????????????????????????????????????????????????ÊÊÊÊ????????????????????????øøøøMMMM,,,,				??????????????????????????????????????????????????????????2E??E´µ¶·¸¹º»¼½??-!%./:;?@^_'"=7B›m?????????FNG‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ú????????}}?©Þô?c???Íϲ?¾á??K???F+*G(???N€³?H??????¢??????g>l?????????????>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,k_¿¾1áÀÁÂÃÄÅÆÇÈÉÊË?-2ÜÛ¥3Þ?¬?Ù}}Ø{¨p?wxÔÍzÎÕÐcϒ]4Aõ|h!nF?&???j°±^Sa8?U¡[ è,3:;<=>1?@+*Ùt²???????????????????????????????????????????????????????????????????A????Jû©êG??????â?•?????????ON?.???????????????????¡—¦?‚‰l??m+x??DwN??2´µ¶·¸¹º»¼E3H	
¹GÛW?÷?M?ÜÝÞ?J`ßF????'%Ý0?Q&˜•bH9ק??_?]????NGQ6?'R‹Öƒ‡‚()y*V5ñqã²+…ëôïM¨?Nüö?.øþ^?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????—¡]^_ù`þabM5c(w?de…fì
??õhi?ßj,,Rs ??jkçlÞå???p???0|qÏ

?Š?s?a?uÒÔcÐÑÏ?wÍxÎyzØ}??????????????????????????????????????‹ŒqŽÿÏ&‘’°?”•h8?
—-|˜'™)š›œSâ0ÅŸ# ¡¢£?EJ›=E§¨©ª«¬­®M¯ô°±²³óî´µ9¶???????????????????????????????????????????????????? {????|±³²}3;:<2?N/~—L–³ŒŽ\???´µ¶·¸¹º»¼E€‚ƒ„…†‡Œ?@F*+G?ÀÁÂÃÄÅÆÇÈÉÊËÌ?FQR‰Š?‚i????????????????????????????????????????????¸????¹??????¿????D?È=É>Ê?ÏÌÍÎ???Ó???Ô3`Ö×}”ØÙÚÛUÙÜ?Ý??àáT*ãäåæ¾??è?éísKë????????????????????????????????????????????????????P2????^U¡¦Q?1?@¥2Ü-ïÛöø}©¨¬Ù3	????????????ë??êHHpT??ÕV!nWx?$Ւ?]ïA¿k,_/íXûYZJ[öüÆ?????????????????????????????????????????îïðñn?ä?íZó¼½¾no¿ÀÁÂÃ??ÆÇÈ???ÉÑËN?ÌÍÎù?†Ï÷???ÓúÔÕ×Ö6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󾁋󾂾󾁣󾃚󾁌󾃟󾃥󾃦󾃶󾄁󾄂󾄃󾄄󾄅󾁍󾄉󾄊󾄋󾄌󾄍󾀺󾂰󾂱󾂲󾂳󾀁󾀂󾀃󾁢󾂿󾀏󾀐󾀬󾀯󾀼󾁅󾁟󾁫󾂧󾃀󾃁󾃂󾃃󾃄󾃅󾃆󾃇󾃈󾃉󾃊󾃋󾃌󾁓󾁛󾁪󾁺󾂏󾂕󾂞󾃍󾃎󾃏󾃐?󾃑󾃒󾃓󾃔󾁰󾂒󾂜󾃗󾃘󾃙󾁽󾂔󾂨󾂩󾂬󾃛󾃜󾃝󾃞󾀭󾁠󾃠󾃡󾃢󾃣󾃤󾀌󾀴󾁁󾂠󾃧󾃨󾃩󾂪󾃪󾃫󾃬󾃭󾃮󾂅󾂐󾃯󾃰󾃱󾃲󾃳󾃴󾃵󾃷󾃸󾃹󾃺󾃻󾃼󾃽󾃾󾁊󾁎󾂆󾃿󾄀󾁱󾄆󾄇󾄈󾄎󾄏󾄐󾄑󾄒󾄓󾄔󾄕󾄖󾄗󾄘󾄙󾄚󾄛󾄜󾄝󾄞󾄟󾀲󾁄󾁐󾁖󾁴󾂌󾂍󾂣󾄠󾄡󾄢󾄣󾄤󾄥󾄦󾄧󾄨󾄩󾄬󾄭󾄮󾄯󾄰󾀍󾀰󾀵󾁈󾁞󾁨󾁮󾁷󾁸󾁼󾂁󾂊󾂑󾂛󾂥󾂦󾁬󾂴󾂵???????????????????????????????????????????????????????????????????󾂶󾂷󾂸󾂹󾂺󾂻󾂼󾂽󾀄󾀅󾀆󾀇󾀈󾀉󾀊󾀋󾀑󾀒󾀓󾀔󾀕󾀖󾀗󾀘󾀚󾀛󾀜󾀝󾀞󾀟󾀠󾀡󾀢󾀣󾀤󾀥󾀦󾀧󾀨󾀩󾀪󾀫󾀶󾀷󾀽󾀾󾀿󾁀󾁂󾁆󾁇󾁉󾁑󾁒󾁘󾁙󾁵󾁶󾂄󾂈󾀱󾀸󾀻?󾁃󾁜󾁡󾁤󾁥󾁦󾁧󾁩󾁹󾂃󾂉󾂎󾂓󾂝󾃕󾃖󾁚󾁿󾂀󾂟󾄪󾄫󾀎󾀙󾀹󾁗󾁭󾁯󾁲󾁳󾁻󾁾󾂂󾂇󾂋󾂖󾂘󾂡󾂢󾂤󾂫󾂭󾂮󾂯󾁏󾁔󾂗󾂙󾂚󾀮󾀳󾁕󾁝󾄱󾄲󾄳󾄴󾄵󾄶󾄷󾄸󾄹󾄺󾄻󾄼󾄽󾄾󾄿󾅀󾅁󾅂󾅃󾅄󾅅󾅆󾅇󾅈󾅉󾅊??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëYëZë[ìHìIìJìKìLìMìNìOëšëêì–ë^ë_ìPìQìRìSìTìUìVìWì—ìXìYìZì[ì\ì]ì^ì_ì`ìaìbìcìdìeìfìgìhìië`ë“ì±ëaëëì|ëÓì²ë›ëììjìkì}ì˜ëTì~ëbìlìmìnìoëœìpì€ëÔëcìqìrëíìsë¸ë@ëDëNë¹ì¬ëÕìtìuëtì­ì³ëÖì™ìvìwìëuìì´ëîëdë”ì‚ë\ëBìƒì„ì…ì†ëïì‡ëvëeëúìšëðì›ë„ë½ìœìë×ìxìyëñëòìˆëwìžëóëŠìŸì‘ì’ëôì ì‰ìzë§ëºì¡ì{ìŠëõì¢ëØëÙì‹ëxë¨ëöë…ìŒë‹ëyì£ì®ì¤ì¯ì°ë÷ë†ìëzì“ëì¥ì¦ëÚì§ëøëùëfëŒëë¡ì¨ëŽì©ìªì«ëUëVëWëXëûëüì@ìAìBìCìDìEìFìGëAë]ëgëhëiëjëkëlëmënëoëpëqërësë{ë|ë}ë~ë€ëë‚ëƒìŽìë‡ëˆë‰ëCëëë‘ë’ëEë•ë–ë—ë˜ë™ëFëGëžëŸë ë¢ë£ë¤ë¥ë¦ë©ëªë«ë¬ë­ë®ë¯ëHë°ë±ë²ë³ë´ëµë¶ë·ë»ë¼ëIëJëKëLëMë¾ë¿ëÀëOëPëQëRëSëÁëÂëÃëÄëÅëÆëÇëÈëÉëÊëËëÌëÍëÎëÏëÐëÑëÒëÛëÜëÝëÞëßëàëáëâëãëäì”ì•ëåëæëçëèëéìµì¶ì·ì¸ì¹ìºì»ì¼ì½ì¾ì¿ìÀìÁìÂìÃìÄìÅìÆìÇìÈìÉìÊìËìÌìÍìÎ????????????ëÞ?????ëP?ë¿?????ëD?ët???VS???????????????ë???Š„ƒTID–ž‹óŽw‰c????????????j???????????ì²ì²ì²ì²ì²ì²?????????????????????????????????ëÞëÔ???????????????????????????????????ë@???????ë†???????‰Â????????ì°?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëH?ëH????????‚`‚a‚nABëÇ????!?!!`???????????????????????ëÉ???????????????????ëJ????ëú??????????????ëú???ì²ë¹???Ì??????ëú?ëÌ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ìÉëûëüì@ìAìBìCìDìEìFìG1112ëûëüì@ìAìBìCìDìEìFìG‰cZŒð‹x”NEÈŽwìH‚`“Áëʒ´‹}”ƒ”„Å‘SŒn‘°??ë°??ë±ë²?ë¸?ëgëhëiëjëkëlëmënësëo?ëpëqërë´?ëHëH????ë¢ëÉë½ë¼ë£????ë­???????ëÕëÓ???ëÅ?ëÈëŠëˆëŽ?ë‰ëŒëë‡?ë…ë|ë¯??ëœë›ì´ë…???ëÜ???ëE?ëð?????ë˜?ëÂëF?????ë“ëì·ëì¶?ë‘?ë~ìŽë€ë…ë‚????ëƒ???ëVëUë`ëeëdë]ë_?ìIìJ???ëÙëØ??ëÌìÃìÄëÄëÑì²ëPì²ì¿???????????????????????????????????????????????????????????????????ìÀì¾!!!?ëÁ????ëÞëì????????????ëó??????ët?ë×?ëíì¥ì¥ì³ë÷?ëù??ì¡?ì±ëîëNëŸëÛ?ëá?ëå?ëy?ëuì‚ëzëïëx???ëúëñì€ì|ë„?????????????????????ëãëR??????ëíì–ëòëõ??ìž??????ë?ëßì™ëêëvë¨ëâ??ëd?????????ìš?ë©???????t‰ÄH“~?ëIëKëJ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ë±ë±ë±ë±ëNëNëNëNë`ë`ë`ë`ëOëOëOëO?ëIëIëI??????????????????????????????????????????????????????????ìÉ??ìÉëûëüì@ìAìBìCìDìEìFìG??-!ì–%./:;?@^_'"ìX=ìkìp›ìš?????????ìÊNGëЊ„‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“??????????????????????????????????????????????????????????????????????????ëÇëÇ?????????????????????????????????????????????????????????ë³????????ëŠëŠ?ëë’ë®?ëB???ë{ë}ëW?ëA???ë@???ìqìiìhìrÌ????ëZì‘ì’ëX?ìÌ??????ì¦??????ì†ìmëú?????????????ìÂ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ë`ëeëdë]ë_ëAìµ?ëgëhëiëjëkëlëmënëoëpëqër?ë“ì¶ëë?ì·ë’?ëŽ?ë‰ëŠëŠëˆëëŒë„???ëƒë{?ë|ìŽë~ëBë}ë…ì´ë›ëœë¯ëóëïëÜëðìq?ëá???ëvëUëVëîëtì‚ì¼ë¨?ì³ì¥ëuëÛëŸëåì²ì¾ì¿ìÀìÁìÂëÌìÃìÄìiìhëÇ?ë×ëW???????????????????????????????????????????????????????????????????ìÅ????ë¸ë´ëë¢ìr??????ë—?ëy?????????ON?ì±???????????????????ì¥ì®ëù?‚‰ëú??ìšì•IDëò??ìÈëñ????ìHëûëüì@ìAìBìCìDìEìFìÉì²ìÌëOëPëIëJëK?ìË?ëÞ?ëÉëÄ?ëNë¾ëÌëR??ëMëZ!?!!?ìÎë¿ë́``ìÊ????ëâ?ë‘ëë?ì–??ì¤ëy?ëíì˜ë‡?ì—??ë¿ë¿ëJ?ëPëÒëÀ?ëI??ëK?NGëxìtìj?ëÊ?ìuëY‹Ö‹ó‡–žÌ????ëìë«ë½???ë§ë£ë®ë©????ë¹ëµëH??ë±ë·ëš?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëô?ì®ì¥ëÀëP?ë¿ë²?ë·ëÅ??ëNëì?ë¨ëãëñ??ëDë§?ëÈë¤ëÑëS??ë¯???ëEëvëåëå?ìëÛ???VSì–ëž?ë’ëF???????ëéëMë_ëó?ë}ëêëê?ëõ???ì‚??ëëÂëƒëBë~ë€ë}??ë{?ë|??ëˆëŠ?????????????????????????????????????????ë½ë¼?ë»?ë}ëá??jëU??ëR?ëïì¼ëÊ?ëê?ëæëó?ëâ?ëä????ëtë—ëëëÞì²ì²ëÃì²ì²ì²ì²?ëcëÍì΁›ìlë¾ëcë[ëZ??????????ë®????ë­ë¦??ì½??????????????????????????????????????????????????????ë?????ëVëXëW?ì²ì¿ì¾ìÀ???ëè?—L–³ŒŽ\???ëûëüì@ìAìBìCìDìEìFìÉëЊ„ƒTID–ž‹óŽw‰c??ëØëÙì[ì\ìnìoìqìhìiìrìJìIìLìK?ëgëhëiëjëkëlëmënëoëpëqërës?ìÊìtìu??ëY?‚i????????????????????????????????????????????ë¿??????????????????ëÔëIëJ??ìÁ?ìÂ??????????????ì·ë”??ëŠë‹?????ë‰?????????????ëA???????ë@?????????????????????????????????????????????????????ëÕëÓëÄ????ëîì³ì¥ëù?ëÌëÒ?ëÌìÃìÄ?ì¶ëë“?ëëHë±ëŠëëŒëŽë‰ë[ëZì²ëO????????????ë£??ë¢ëíëíë„???ìŽ?ëÜëðëÞëò?ëß?ë…?ì´ë©ëœë]ëeë`ëdëa??ë´??ë¸?ëHëµëÔëIëKëJ?????????????????????????????????????????????ëð?ë™?ë¥ì???????????????????ëH?ëHë¹????ë²?ëº?ë°????볂`‚aAB‚nëÇìj????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????󾁋󾂾󾁣󾃚󾁌󾃟󾃥󾃦󾃶󾄁󾄂󾄃󾄄󾄅󾁍󾄉󾄊󾄋󾄌󾄍󾀺󾂰󾂱󾂲󾂳󾀁󾀂󾀃󾁢󾂿󾀏󾀐󾀬󾀯󾀼󾁅󾁟󾁫󾂧󾃀󾃁󾃂󾃃󾃄󾃅󾃆󾃇󾃈󾃉󾃊󾃋󾃌󾁓󾁛󾁪󾁺󾂏󾂕󾂞󾃍󾃎󾃏󾃐?󾃑󾃒󾃓󾃔󾁰󾂒󾂜󾃗󾃘󾃙󾁽󾂔󾂨󾂩󾂬󾃛󾃜󾃝󾃞󾀭󾁠󾃠󾃡󾃢󾃣󾃤󾀌󾀴󾁁󾂠󾃧󾃨󾃩󾂪󾃪󾃫󾃬󾃭󾃮󾂅󾂐󾃯󾃰󾃱󾃲󾃳󾃴󾃵󾃷󾃸󾃹󾃺󾃻󾃼󾃽󾃾󾁊󾁎󾂆󾃿󾄀󾁱󾄆󾄇󾄈󾄎󾄏󾄐󾄑󾄒󾄓󾄔󾄕󾄖󾄗󾄘󾄙󾄚󾄛󾄜󾄝󾄞󾄟󾀲󾁄󾁐󾁖󾁴󾂌󾂍󾂣󾄠󾄡󾄢󾄣󾄤󾄥󾄦󾄧󾄨󾄩󾄬󾄭󾄮󾄯󾄰󾀍󾀰󾀵󾁈󾁞󾁨󾁮󾁷󾁸󾁼󾂁󾂊󾂑󾂛󾂥󾂦󾁬󾂴󾂵???????????????????????????????????????????????????????????????????󾂶󾂷󾂸󾂹󾂺󾂻󾂼󾂽󾀄󾀅󾀆󾀇󾀈󾀉󾀊󾀋󾀑󾀒󾀓󾀔󾀕󾀖󾀗󾀘󾀚󾀛󾀜󾀝󾀞󾀟󾀠󾀡󾀢󾀣󾀤󾀥󾀦󾀧󾀨󾀩󾀪󾀫󾀶󾀷󾀽󾀾󾀿󾁀󾁂󾁆󾁇󾁉󾁑󾁒󾁘󾁙󾁵󾁶󾂄󾂈󾀱󾀸󾀻?󾁃󾁜󾁡󾁤󾁥󾁦󾁧󾁩󾁹󾂃󾂉󾂎󾂓󾂝󾃕󾃖󾁚󾁿󾂀󾂟󾄪󾄫󾀎󾀙󾀹󾁗󾁭󾁯󾁲󾁳󾁻󾁾󾂂󾂇󾂋󾂖󾂘󾂡󾂢󾂤󾂫󾂭󾂮󾂯󾁏󾁔󾂗󾂙󾂚󾀮󾀳󾁕󾁝󾄱󾄲󾄳󾄴󾄵󾄶󾄷󾄸󾄹󾄺󾄻󾄼󾄽󾄾󾄿󾅀󾅁󾅂󾅃󾅄󾅅󾅆󾅇󾅈󾅉󾅊󾅋󾅌󾅍󾇴󾇵󾇶󾇷󾇸󾇹󾇺󾇻󾇼󾇽󾇾󾇿󾈀󾈁󾈂󾈃󾈄󾈅󾈆󾅎󾅏󾅐󾅑󾅒󾅓󾅔󾅕󾅖󾅗󾅘󾅙󾅚󾅛󾅜󾅝󾅞󾅟󾅠󾅡󾅢󾅣󾅤󾅥???????????????????????????????????????????????????????????????????󾅦󾅧󾅨󾅩󾅪󾅫󾅬󾅭󾅮󾅯󾅰󾅱󾅲󾅳󾅴󾅵󾅶󾅷󾅸󾅹󾅺󾅻󾅼󾅽󾅾󾅿󾆀󾆁󾆂󾆃󾆄󾆅󾆆󾆇󾆈󾆉󾆊󾆋󾆌󾆍󾆎󾆏󾆐󾆑󾆒󾆓󾆔󾆕󾆖󾆗󾆘󾆙󾆚󾆛󾆜󾆝󾆞󾆟󾆠󾆡󾆢󾆣󾆤?󾆥󾆦󾆧󾆨󾆩󾆪󾆫󾆬󾆭󾆮󾆯󾆰󾆱󾆲󾆳󾆴󾆵󾆶󾆷󾆸󾆹󾆺󾆻󾆼󾆽󾆾󾆿󾇀󾇁󾇂󾇃󾇄󾇅󾇆󾇇󾇈󾇉󾇊󾇋󾇌󾇍󾇎󾇏󾇐󾇑󾇒󾇓󾇔󾇕󾇖󾇗󾇘󾇙󾇚󾇛󾇜󾇝󾇞󾇟󾇠󾇡󾇢󾇣󾇤󾇥󾇦󾇧󾇨󾇩󾇪󾇫󾇬󾇭󾇮󾇯󾇰󾇱󾇲󾇳󾊼󾊽󾊾󾊿󾋀󾋁󾋂󾋃󾋄󾋅󾋆󾋇󾋈󾋉󾋊󾋋󾋌󾋍󾋎󾋏󾋐󾋑󾋒󾋓󾋔󾋕󾋖󾋗󾋘󾋙󾋚󾋛󾋜󾋝󾋞󾋟󾋠󾋡󾋢󾋣󾋤󾋥󾋦󾋧󾋨󾋩???????????????????????????????????????????????????????????????????󾋪󾋫󾋬󾋭󾋮󾋯󾋰󾋱󾋲󾋳󾋴󾋵󾋶󾋷󾋸󾋹󾋺󾋻󾋼󾋽󾋾󾋿󾌀󾌁󾌂󾌃󾌄󾌅󾌆󾌇󾌈󾌉󾌊󾌋󾌌󾌍󾌎󾌏󾌐󾌑󾌒󾌓󾌔󾌕󾌖󾌗󾌘󾌙󾌚󾌛󾌜󾌝󾌞󾌟󾌠󾌡󾌢󾌣󾌤󾌥󾌦󾌧󾌨?󾌩󾌪󾌫󾌬󾌭󾌮󾌯󾌰󾌱󾌲󾌳󾌴󾌵󾌶???????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëYëZë[ìHìIìJìKìLìMìNìOëšëêì–ë^ë_ìPìQìRìSìTìUìVìWì—ìXìYìZì[ì\ì]ì^ì_ì`ìaìbìcìdìeìfìgìhìië`ë“ì±ëaëëì|ëÓì²ë›ëììjìkì}ì˜ëTì~ëbìlìmìnìoëœìpì€ëÔëcìqìrëíìsë¸ë@ëDëNë¹ì¬ëÕìtìuëtì­ì³ëÖì™ìvìwìëuìì´ëîëdë”ì‚ë\ëBìƒì„ì…ì†ëïì‡ëvëeëúìšëðì›ë„ë½ìœìë×ìxìyëñëòìˆëwìžëóëŠìŸì‘ì’ëôì ì‰ìzë§ëºì¡ì{ìŠëõì¢ëØëÙì‹ëxë¨ëöë…ìŒë‹ëyì£ì®ì¤ì¯ì°ë÷ë†ìëzì“ëì¥ì¦ëÚì§ëøëùëfëŒëë¡ì¨ëŽì©ìªì«ëUëVëWëXëûëüì@ìAìBìCìDìEìFìGëAë]ëgëhëiëjëkëlëmënëoëpëqërësë{ë|ë}ë~ë€ëë‚ëƒìŽìë‡ëˆë‰ëCëëë‘ë’ëEë•ë–ë—ë˜ë™ëFëGëžëŸë ë¢ë£ë¤ë¥ë¦ë©ëªë«ë¬ë­ë®ë¯ëHë°ë±ë²ë³ë´ëµë¶ë·ë»ë¼ëIëJëKëLëMë¾ë¿ëÀëOëPëQëRëSëÁëÂëÃëÄëÅëÆëÇëÈëÉëÊëËëÌëÍëÎëÏëÐëÑëÒëÛëÜëÝëÞëßëàëáëâëãëäì”ì•ëåëæëçëèëéìµì¶ì·ì¸ì¹ìºì»ì¼ì½ì¾ì¿ìÀìÁìÂìÃìÄìÅìÆìÇìÈìÉìÊìËìÌìÍìÎìÏìÐìÑìåìæìçìèìéìêìëìììíìîìïìðìñìòìóìôìõìöì÷ìøìùìúìûìüí@íAíBíCíDíEíFíGíHíIíJíKíLíMíNíOíPíQíRíSíTíUíVíWíXíYíZí[í\í]í^í_í`íaíbícídíeífígíhíiíjíkílímíníoípíqírísítíuívíwíxíyízí{í|í}í~í€íí‚íƒí„í…í†í‡íˆí‰íŠí‹íŒííŽííí‘í’í“í”í•í–í—í˜í™íší›íœíížíŸí í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬í­í®í¯í°í±í²í³í´íµí¶í·í¸í¹íºí»í¼í½í¾í¿íÀíÁíÂíÃíÄíÅíÆíÇíÈíÉíÊíËíÌíÍíÎìÒìÓìÔìÕìÖì×ìØìÙìÚìÛìÜìÝìÞìßìàìáìâìãìä?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????íÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛíÜíÝíÞíßíàíáíâíãíäíåíæíçíèíéíêíëíìíííîíïíðíñíòíóíôíõíöí÷íøíùíúíûíüî@îAîBîCîDîEîFîGîHîIîJîKîLîMîNîOîPîQîRîSîTîUîVîWîXîYîZî[î\î]î^î_î`îaîbîcîdîeîfîgîhîiîjîkîlîmînîoîpîqîrîsîtîuîvîwîxîyîzî{î|î}î~î€îî‚îƒî„î…î†î‡îˆî‰îŠî‹îŒî?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ìÉëûëüì@ìAìBìCìDìEìFìG1112ëûëüì@ìAìBìCìDìEìFìGí_ZŒð‹x”NEÈí^ìH‚`“Áëʒ´‹}”ƒ”„Å‘SŒn‘°ìòìðë°îC?ë±ë²?ë¸?ëgëhëiëjëkëlëmënësëo?ëpëqërë´íàëHíÜì÷???ë¢îMë½ë¼ë£í@íŽííöë­íõ????í×íØëÕëÓíÙ?íÄëÅìïëÈëŠëˆëŽîvë‰ëŒíUë‡?ë…ë|ë¯ìÑíjëœë›ì´ë…?íŒ?ëÜíTíÇ?ëE?ëð??íÝìí?ë˜?ëÂëFíD????ë“ëì·ëì¶í€ë‘îqë~ìŽë€ë…ë‚?íRíB?ëƒíP?íSëVëUë`ëeëdë]ë_?ìIìJî€?î}ëÙëØíaí`îˆìÃìÄëÄëÑì²ëPì²ì¿???????????????????????????????????????????????????????????????????ìÀì¾íñíðëÁ????ìîëìíß???????î{??íìëó?íf?íÉ??ët?ë×?ëíì¥ì¥ì³ë÷?ëùìè?ì¡?ì±ëîëNëŸëÛìéëá?ëåìøëy?ëuì‚ëzëïëxíQ?î|ëúëñì€ì|ë„?ìëíÌ??????????????????ëãëR?????ìùëíì–ëòëõ?ìûìž??îNîQ?îRë?ëßì™ëêëvë¨ëâím?ëd??í‡??????ìš?ë©???ík?ío?t‰ÄH“~?ëIëKëJ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????íÝíÝíÝíÝ????????????????????????ë±ë±ë±ë±ëNëNëNëNë`ë`ë`ë`ëOëOëOëO?ëIëIëI?????????????????????????????????????????????????????????î‰ìÉ??ìÉëûëüì@ìAìBìCìDìEìFìG??-!ì–%./:;?@^_'"ìX=ìkìp›ìš?????????ìÊNGëÐíY‚‚‚‚ƒ‚„‚…‚†‚‡‚ˆ‚‰‚Š‚‹‚Œ‚‚Ž‚‚‚‘‚’‚“‚”‚•‚–‚—‚˜‚™‚š???????????????????????????????????????????????????????????????????‚`‚a‚b‚c‚d‚e‚f‚g‚h‚i‚j‚k‚l‚m‚n‚o‚p‚q‚r‚s‚t‚u‚v‚w‚x‚y‚Ÿ‚ ‚¡‚¢‚£‚¤‚¥‚¦‚§‚¨‚©‚ª‚«‚¬‚­‚®‚¯‚°‚±‚²‚³‚´‚µ‚¶‚·‚¸‚¹‚º‚»‚¼‚½‚¾‚¿‚À‚Á‚‚Ã?‚ĂłƂǂȂɂʂ˂̂͂΂ςЂт҂ӂԂՂւׂ؂قڂۂ܂݂ނ߂à‚á‚â‚ã‚ä‚å‚æ‚ç‚è‚é‚ê‚ë‚í‚ð‚ñƒ@ƒAƒBƒCƒDƒEƒFƒGƒHƒIƒJƒKƒLƒMƒNƒOƒPƒQƒRƒSƒTƒUƒVƒWƒXƒYƒZƒ[ƒ\ƒ]ƒ^ƒ_ƒ`ƒaƒbƒcƒdƒeƒfƒgƒhƒiƒjƒkƒlƒmƒnƒoƒpƒqƒrƒsƒtƒuƒvƒwƒxƒyƒzƒ{ƒ|ƒ}ƒ~ƒ€ƒƒ‚ƒƒƒ„ƒ…ƒ†ƒ‡ƒˆƒ‰ƒŠƒ‹ƒŒƒƒƒ’ƒ“??????????????????????????????????????????????????????????????????????????ëÇëÇ?????????????????????????????????????????????????????????ë³????????ëŠëŠ?ëë’ë®?ëB???ë{ë}ëW?ëAí¼??ë@???ìqìiìhìrî~???ìåëZì‘ì’ëX?ìÌ??????ì¦??????ì†ìmëú?????????????ìÂ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ë`ëeëdë]ë_ëAìµí¼ëgëhëiëjëkëlëmënëoëpëqër?ë“ì¶ëëí€ì·ë’?ëŽ?ë‰ëŠëŠëˆíUëŒë„?íQíRëƒë{íTë|ìŽë~ëBë}ë…ì´ë›ëœë¯ëóëïëÜëðìq?ëá???ëvëUëVëîëtì‚ì¼ë¨?ì³ì¥ëuëÛëŸëåì²ì¾ì¿ìÀìÁìÂîˆìÃìÄìiìhëÇíìë×ëW???????????????????????????????????????????????????????????????????ìÅ????ë¸ë´ëë¢ìr??????ë—?ëy?????????ON?ì±???????????????????ì¥ì®ëù?‚‰ëú??ìšì•í[ëò??ìÈëñìå??î‰ìHëûëüì@ìAìBìCìDìEìFìÉì²ìÌëOëPëIëJëKí”ìËíîìî?îMëÄ?ëNë¾ëÌëR?íïëMëZíðíñ?ìÎë¿ë́`íòìÊ????ëâî{ë‘ëë?ì–ìèî|ì¤ëyìùëíì˜ë‡í‚ì—??ìöë¿îa?ìôëÒëÀ?ëI??ëK?NGëxìtìj?ëÊî}ìuëY‹Öí]‡í\î~î€íSîìíëìë«ë½íöíî‚ë§ë£ë®ë©íjìÑíƒ?ë¹ëµëH?î…ë±ë·ëšìõ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ëô?ì®ì¥ëÀìôìõìöë²ì÷ë·ëÅìøìùëNëììúë¨ëãëñ?ìûìüë§í@ëÈë¤ëÑëS??ë¯íBíC?ëEëvëåëåìéìëÛ??íDíEì–ëžíFë’ëF???íJ???ëéëMë_ëóíKë}ëêëê?ëõ?íM?ì‚?íOëëÂëƒëBë~ë€ë}?íQë{íRë|íSíTëˆëŠ??????????????????????????????????????íeífígë½ë¼íhë»íië}ëáíjíkílëU?ínëRíoëïì¼ëÊ?ëêíqëæëóírëâísëäítíuívíwëtë—ëëí íyîyëÃízí{í|í}?ëcëÍì΁›ìlë¾ëcë[ëZí‚íƒí„í…í†í‡íˆí‰ìÑíŠë®í‹íŒííŽë­ë¦ííì½í‘????????????????????????????????????????????????????îvíU????íVëVëXëWíWì²ì¿ì¾ìÀî‰?ìåëèíX—L–³ŒŽ\???ëûëüì@ìAìBìCìDìEìFìÉëÐíYíZí[í\í]í^í_í`íaëØëÙì[ì\ìnìoìqìhìiìrìJìIìLìK?ëgëhëiëjëkëlëmënëoëpëqërës?ìÊìtìuícídëY?‚i????????????????????????????????????????????ë¿í“????í”??????ííš????ëÔëIëJ?í£ìÁí¤ìÂí¥?íªí§í¨í©???í®???í¯ì·ë”í±í²ëŠë‹í³í´íµí¶ììë‰í·?í¸??í»í¼ìëîí¾í¿íÀíÁëA??íÃ?íÄíÈíMë@íÆ????????????????????????????????????????????????????ëÕëÓëÄ????ëîì³ì¥ëùìèëÌëÒ?îˆìÃìÄí€ì¶ëë“îEëëHë±ëŠëëŒëŽë‰ë[ëZì²ëO????????????ë£??ë¢ëíëíë„ìë??ìŽìíëÜëðìîëò?ëßí°ë…?ì´ë©ëœë]ëeë`ëdëaíÈìïë´ìðìñë¸ìòëHëµí¡ëIëKëJ?????????????????????????????????????????íÉíÊíËíÌëð?ë™?ë¥ìíÎíÏíÐíÑíHíIíÒíÓíÔíÕíÖ??íÙíÚíÛ???íÜíäíÞë¹?íßíàíáë²?ëºíâë°???íæë³íçíèíêíéëÇìj????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????