* iconv/loop.c: Let user add code to use and set paramaters.

	* iconvdata/iso-2022-kr.c: Correct to-loop.

	* iconvdata/ksc5601.h (ksc5601_to_ucs4): Use correct value to find
	hanja.

	* iconvdata/TESTS: Add ISO-2022-KR test.
	* iconvdata/testdata/ISO-2022-KR: New file.

	* wcsmbs/btowc.c: Likewise.
	* wcsmbs/mbrtowcs.c: Likewise.
	* wcsmbs/mbsnrtowcs.c: Likewise.
	* wcsmbs/mbsrtowcs.c: Likewise.
	* wcsmbs/wcrtomb.c: Likewise.
	* wcsmbs/wcsnrtombs.c: Likewise.
	* wcsmbs/wcsrtombs.c: Likewise.
	* wcsmbs/wctob.c: Likewise.
This commit is contained in:
Ulrich Drepper 1998-05-16 00:03:15 +00:00
parent c9fc0e2228
commit 66175fa825
14 changed files with 665 additions and 88 deletions

View File

@ -1,14 +1,32 @@
1998-05-15 Ulrich Drepper <drepper@cygnus.com> 1998-05-15 Ulrich Drepper <drepper@cygnus.com>
* iconv/loop.c: Let user add code to use and set paramaters.
* iconvdata/iso-2022-kr.c: Correct to-loop.
* iconvdata/iso-2022-kr.c (PREPARE_LOOP): Use correct variable to * iconvdata/iso-2022-kr.c (PREPARE_LOOP): Use correct variable to
point to output buffer. point to output buffer.
* iconvdata/ksc5601.h (ksc5601_to_ucs4): Use correct value to find
hanja.
* iconvdata/TESTS: Add ISO-2022-KR test.
* iconvdata/testdata/ISO-2022-KR: New file.
1998-05-15 21:07 Ulrich Drepper <drepper@cygnus.com> 1998-05-15 21:07 Ulrich Drepper <drepper@cygnus.com>
* iconv/gconv.h (gconv_step_data): Add new fields invocation_counter * iconv/gconv.h (gconv_step_data): Add new fields invocation_counter
and internal_use. and internal_use.
* iconv/gconv_open.c (__gconv_open): Initialize invocation_counter * iconv/gconv_open.c (__gconv_open): Initialize invocation_counter
and internal_use. and internal_use.
* wcsmbs/btowc.c: Likewise.
* wcsmbs/mbrtowcs.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wctob.c: Likewise.
* iconv/skeleton.c: Increment invocation_counter. * iconv/skeleton.c: Increment invocation_counter.
* iconvdata/iso-2022-kr.c: When used in iconv() emit designator * iconvdata/iso-2022-kr.c: When used in iconv() emit designator
sequence first. sequence first.

View File

@ -44,7 +44,10 @@
BODY this is supposed to expand to the body of the loop. BODY this is supposed to expand to the body of the loop.
The user must provide this. The user must provide this.
EXTRA_LOOP_DECLS Extra arguments passed from converion loop call. EXTRA_LOOP_DECLS extra arguments passed from converion loop call.
INIT_PARAMS code to define and initialize variables from params.
UPDATE_PARAMS code to store result in params.
*/ */
#include <gconv.h> #include <gconv.h>
@ -134,6 +137,10 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
size_t min_out_rounds = (outend - outptr) / MAX_NEEDED_OUTPUT; size_t min_out_rounds = (outend - outptr) / MAX_NEEDED_OUTPUT;
size_t min_rounds = MIN (min_in_rounds, min_out_rounds); size_t min_rounds = MIN (min_in_rounds, min_out_rounds);
#ifdef INIT_PARAMS
INIT_PARAMS;
#endif
#undef NEED_LENGTH_TEST #undef NEED_LENGTH_TEST
#define NEED_LENGTH_TEST 0 #define NEED_LENGTH_TEST 0
while (min_rounds-- > 0) while (min_rounds-- > 0)
@ -195,7 +202,7 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
/* Here comes the body the user provides. It can stop with /* Here comes the body the user provides. It can stop with
RESULT set to GCONV_INCOMPLETE_INPUT (if the size of the RESULT set to GCONV_INCOMPLETE_INPUT (if the size of the
input characters vary in size), GCONV_ILLEGAL_INPUT, or input characters vary in size), GCONV_ILLEGAL_INPUT, or
GCONV_FULL_OUTPUT (if the output characters vary in size. */ GCONV_FULL_OUTPUT (if the output characters vary in size). */
BODY BODY
/* If necessary count the successful conversion. */ /* If necessary count the successful conversion. */
@ -216,6 +223,9 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
/* Update the pointers pointed to by the parameters. */ /* Update the pointers pointed to by the parameters. */
*inptrp = inptr; *inptrp = inptr;
*outptrp = outptr; *outptrp = outptr;
#ifdef UPDATE_PARAMS
UPDATE_PARAMS;
#endif
return result; return result;
} }
@ -232,3 +242,5 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend,
#undef BODY #undef BODY
#undef LOOPFCT #undef LOOPFCT
#undef EXTRA_LOOP_DECLS #undef EXTRA_LOOP_DECLS
#undef INIT_PARAMS
#undef UPDATE_PARAMS

View File

@ -73,3 +73,4 @@ CP1254 CP1254 Y UTF8
CP1255 CP1255 Y UTF8 CP1255 CP1255 Y UTF8
CP1256 CP1256 Y UTF8 CP1256 CP1256 Y UTF8
CP1257 CP1257 Y UTF8 CP1257 CP1257 Y UTF8
ISO-2022-KR ISO-2022-KR Y UTF8

View File

@ -44,7 +44,7 @@
#define MAX_NEEDED_TO 4 #define MAX_NEEDED_TO 4
#define PREPARE_LOOP \ #define PREPARE_LOOP \
int save_set; \ int save_set; \
int set = data->statep->count; \ int *setp = &data->statep->count; \
if (!FROM_DIRECTION && !data->internal_use && data->invocation_counter == 0)\ if (!FROM_DIRECTION && !data->internal_use && data->invocation_counter == 0)\
{ \ { \
/* Emit the designator sequence. */ \ /* Emit the designator sequence. */ \
@ -56,7 +56,7 @@
*outbuf++ = ')'; \ *outbuf++ = ')'; \
*outbuf++ = 'C'; \ *outbuf++ = 'C'; \
} }
#define EXTRA_LOOP_ARGS , set #define EXTRA_LOOP_ARGS , setp
/* The COUNT element of the state keeps track of the currently selected /* The COUNT element of the state keeps track of the currently selected
@ -72,27 +72,27 @@ enum
the output state to the initial state. This has to be done during the the output state to the initial state. This has to be done during the
flushing. */ flushing. */
#define EMIT_SHIFT_TO_INIT \ #define EMIT_SHIFT_TO_INIT \
if (data->statep->count != 0) \ if (data->statep->count != ASCII_set) \
{ \ { \
if (step->data == &from_object) \ if (FROM_DIRECTION) \
/* It's easy, we don't have to emit anything, we just reset the \ /* It's easy, we don't have to emit anything, we just reset the \
state for the input. */ \ state for the input. */ \
data->statep->count = 0; \ data->statep->count = ASCII_set; \
else \ else \
{ \ { \
char *outbuf = data->outbuf; \ char *outbuf = data->outbuf; \
\ \
/* We are not in the initial state. To switch back we have \ /* We are not in the initial state. To switch back we have \
to emit `SO'. */ \ to emit `SI'. */ \
if (outbuf == data->outbufend) \ if (outbuf == data->outbufend) \
/* We don't have enough room in the output buffer. */ \ /* We don't have enough room in the output buffer. */ \
status = GCONV_FULL_OUTPUT; \ status = GCONV_FULL_OUTPUT; \
else \ else \
{ \ { \
/* Write out the shift sequence. */ \ /* Write out the shift sequence. */ \
*outbuf++ = SO; \ *outbuf++ = SI; \
data->outbuf = outbuf; \ data->outbuf = outbuf; \
data->statep->count = 0; \ data->statep->count = ASCII_set; \
} \ } \
} \ } \
} }
@ -102,9 +102,9 @@ enum
and retore the state. */ and retore the state. */
#define SAVE_RESET_STATE(Save) \ #define SAVE_RESET_STATE(Save) \
if (Save) \ if (Save) \
save_set = set; \ save_set = *setp; \
else \ else \
set = save_set *setp = save_set
/* First define the conversion function from ISO-2022-JP to UCS4. */ /* First define the conversion function from ISO-2022-JP to UCS4. */
@ -127,7 +127,7 @@ enum
if (ch == ESC) \ if (ch == ESC) \
{ \ { \
/* We don't really have to handle escape sequences since all the \ /* We don't really have to handle escape sequences since all the \
switching is done using the SI and SO bytes. Butwe have to \ switching is done using the SI and SO bytes. But we have to \
recognize `Esc $ ) C' since this is a kind of flag for this \ recognize `Esc $ ) C' since this is a kind of flag for this \
encoding. We simply ignore it. */ \ encoding. We simply ignore it. */ \
if (inptr + 1 > inend \ if (inptr + 1 > inend \
@ -146,14 +146,14 @@ enum
continue; \ continue; \
} \ } \
} \ } \
else if (ch == SI) \ else if (ch == SO) \
{ \ { \
/* Switch to use KSC. */ \ /* Switch to use KSC. */ \
++inptr; \ ++inptr; \
set = KSC5601_set; \ set = KSC5601_set; \
continue; \ continue; \
} \ } \
else if (ch == SO) \ else if (ch == SI) \
{ \ { \
/* Switch to use ASCII. */ \ /* Switch to use ASCII. */ \
++inptr; \ ++inptr; \
@ -161,9 +161,16 @@ enum
continue; \ continue; \
} \ } \
\ \
if (set == ASCII_set || ch < 0x21 || ch == 0x7f) \ if (set == ASCII_set) \
{ \
if (ch >= 0x80) \
{ \
result = GCONV_ILLEGAL_INPUT; \
break; \
} \
/* Almost done, just advance the input pointer. */ \ /* Almost done, just advance the input pointer. */ \
++inptr; \ ++inptr; \
} \
else \ else \
{ \ { \
assert (set == KSC5601_set); \ assert (set == KSC5601_set); \
@ -186,7 +193,9 @@ enum
\ \
*((uint32_t *) outptr)++ = ch; \ *((uint32_t *) outptr)++ = ch; \
} }
#define EXTRA_LOOP_DECLS , int set #define EXTRA_LOOP_DECLS , int *setp
#define INIT_PARAMS int set = *setp
#define UPDATE_PARAMS *setp = set
#include <iconv/loop.c> #include <iconv/loop.c>
@ -197,74 +206,49 @@ enum
#define LOOPFCT TO_LOOP #define LOOPFCT TO_LOOP
#define BODY \ #define BODY \
{ \ { \
unsigned char ch; \ uint32_t ch; \
size_t written = 0; \ size_t written = 0; \
\ \
ch = *((uint32_t *) inptr); \ ch = *((uint32_t *) inptr); \
\ \
/* First see whether we can write the character using the currently \ /* First see whether we can write the character using the currently \
selected character set. */ \ selected character set. */ \
if (set == ASCII_set || (ch >= 0x01 && (ch < 0x21 || ch == 0x7f))) \ if (ch < 0x80) \
{ \ { \
/* Please note that the NUL byte is *not* matched if we are not \ if (set != ASCII_set) \
currently using the ASCII charset. This is because we must \
switch to the initial state whenever a NUL byte is written. */ \
if (ch <= 0x7f) \
{ \ { \
*outptr++ = ch; \ *outptr++ = SI; \
written = 1; \
} \
} \
else \
{ \
assert (set == KSC5601_set); \
\
written = ucs4_to_ksc5601 (ch, outptr, \
(NEED_LENGTH_TEST ? outend - outptr : 2)); \
\
if (NEED_LENGTH_TEST && written == 0) \
{ \
result = GCONV_FULL_OUTPUT; \
break; \
} \
if (written == UNKNOWN_10646_CHAR) \
{ \
/* Either this is an unknown character or we have to switch \
the currently selected character set. The character sets \
do not code entirely separate parts of ISO 10646 and \
therefore there is no single correct result. If we choose \
the character set to use wrong we might be end up with \
using yet another character set for the next character \
though the current and the next could be encoded with one \
character set. We leave this kind of optimization for \
later and now simply use a fixed order in which we test for \
availability */ \
\
if (ch <= 0x7f) \
{ \
/* We must encode using ASCII. First write out the \
escape sequence. */ \
*outptr++ = SO; \
set = ASCII_set; \ set = ASCII_set; \
\
if (NEED_LENGTH_TEST && outptr == outend) \ if (NEED_LENGTH_TEST && outptr == outend) \
{ \ { \
result = GCONV_FULL_OUTPUT; \ result = GCONV_FULL_OUTPUT; \
break; \ break; \
} \
} \ } \
\ \
*outptr++ = ch; \ *outptr++ = ch; \
written = 1; \
} \ } \
else \ else \
{ \ { \
char buf[2]; \ char buf[2]; \
\ \
written = ucs4_to_ksc5601 (ch, buf, 2); \ written = ucs4_to_ksc5601 (ch, buf, 2); \
if (written != UNKNOWN_10646_CHAR) \ \
if (written == UNKNOWN_10646_CHAR) \
{ \ { \
/* Illegal character. */ \
result = GCONV_ILLEGAL_INPUT; \
break; \
} \
assert (written == 2); \
\
/* We use KSC 5601. */ \ /* We use KSC 5601. */ \
*outptr++ = SI; \ if (set != KSC5601_set) \
{ \
*outptr++ = SO; \
set = KSC5601_set; \ set = KSC5601_set; \
} \
\ \
if (NEED_LENGTH_TEST && outptr + 2 > outend) \ if (NEED_LENGTH_TEST && outptr + 2 > outend) \
{ \ { \
@ -274,20 +258,14 @@ enum
\ \
*outptr++ = buf[0]; \ *outptr++ = buf[0]; \
*outptr++ = buf[1]; \ *outptr++ = buf[1]; \
} \
else \
{ \
result = GCONV_ILLEGAL_INPUT; \
break; \
} \
} \
} \
} \ } \
\ \
/* Now that we wrote the output increment the input pointer. */ \ /* Now that we wrote the output increment the input pointer. */ \
inptr += 4; \ inptr += 4; \
} }
#define EXTRA_LOOP_DECLS , int set #define EXTRA_LOOP_DECLS , int *setp
#define INIT_PARAMS int set = *setp
#define UPDATE_PARAMS *setp = set
#include <iconv/loop.c> #include <iconv/loop.c>

View File

@ -73,7 +73,7 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
if (idx >= 1410 && idx < 3760) if (idx >= 1410 && idx < 3760)
return (__ksc5601_hangul_to_ucs[idx - 1410] return (__ksc5601_hangul_to_ucs[idx - 1410]
?: ((*s) -= 2, UNKNOWN_10646_CHAR)); ?: ((*s) -= 2, UNKNOWN_10646_CHAR));
else if (idx > 3854) else if (idx >= 3854)
/* Hanja : row 42 - row 93 : 3854 = 94 * (42-1) */ /* Hanja : row 42 - row 93 : 3854 = 94 * (42-1) */
return (__ksc5601_hanja_to_ucs[idx - 3854] return (__ksc5601_hanja_to_ucs[idx - 3854]
?: ((*s) -= 2, UNKNOWN_10646_CHAR)); ?: ((*s) -= 2, UNKNOWN_10646_CHAR));

552
iconvdata/testdata/ISO-2022-KR vendored Normal file
View File

@ -0,0 +1,552 @@
$)C
!! !" !# !$ !% !& !' !( !) !* !+ !, !- !. !/
!0 !1 !2 !3 !4 !5 !6 !7 !8 !9 !: !; !< != !> !?
!@ !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 !{ !| !} !~
"! "" "# "$ "% "& "' "( ") "* "+ ", "- ". "/
"0 "1 "2 "3 "4 "5 "6 "7 "8 "9 ": "; "< "= "> "?
"@ "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
#! #" ## #$ #% #& #' #( #) #* #+ #, #- #. #/
#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #: #; #< #= #> #?
#@ #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 #{ #| #} #~
$! $" $# $$ $% $& $' $( $) $* $+ $, $- $. $/
$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $: $; $< $= $> $?
$@ $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 ${ $| $} $~
%! %" %# %$ %% %& %' %( %) %*
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
%A %B %C %D %E %F %G %H %I %J %K %L %M %N %O
%P %Q %R %S %T %U %V %W %X
%a %b %c %d %e %f %g %h %i %j %k %l %m %n %o
%p %q %r %s %t %u %v %w %x
&! &" &# &$ &% && &' &( &) &* &+ &, &- &. &/
&0 &1 &2 &3 &4 &5 &6 &7 &8 &9 &: &; &< &= &> &?
&@ &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
'! '" '# '$ '% '& '' '( ') '* '+ ', '- '. '/
'0 '1 '2 '3 '4 '5 '6 '7 '8 '9 ': '; '< '= '> '?
'@ '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
(! (" (# ($ (& (( () (* (+ (, (- (. (/
(1 (2 (3 (4 (5 (6 (7 (8 (9 (: (; (< (= (> (?
(@ (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 ({ (| (} (~
)! )" )# )$ )% )& )' )( )) )* )+ ), )- ). )/
)0 )1 )2 )3 )4 )5 )6 )7 )8 )9 ): ); )< )= )> )?
)@ )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 ){ )| )} )~
*! *" *# *$ *% *& *' *( *) ** *+ *, *- *. */
*0 *1 *2 *3 *4 *5 *6 *7 *8 *9 *: *; *< *= *> *?
*@ *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
+! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/
+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +?
+@ +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
,! ," ,# ,$ ,% ,& ,' ,( ,) ,* ,+ ,, ,- ,. ,/
,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,: ,; ,< ,= ,> ,?
,@ ,A
,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
0! 0" 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/
00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0?
0@ 0A 0B 0C 0D 0E 0F 0G 0H 0I 0J 0K 0L 0M 0N 0O
0P 0Q 0R 0S 0T 0U 0V 0W 0X 0Y 0Z 0[ 0\ 0] 0^ 0_
0` 0a 0b 0c 0d 0e 0f 0g 0h 0i 0j 0k 0l 0m 0n 0o
0p 0q 0r 0s 0t 0u 0v 0w 0x 0y 0z 0{ 0| 0} 0~
1! 1" 1# 1$ 1% 1& 1' 1( 1) 1* 1+ 1, 1- 1. 1/
10 11 12 13 14 15 16 17 18 19 1: 1; 1< 1= 1> 1?
1@ 1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 1N 1O
1P 1Q 1R 1S 1T 1U 1V 1W 1X 1Y 1Z 1[ 1\ 1] 1^ 1_
1` 1a 1b 1c 1d 1e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o
1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z 1{ 1| 1} 1~
2! 2" 2# 2$ 2% 2& 2' 2( 2) 2* 2+ 2, 2- 2. 2/
20 21 22 23 24 25 26 27 28 29 2: 2; 2< 2= 2> 2?
2@ 2A 2B 2C 2D 2E 2F 2G 2H 2I 2J 2K 2L 2M 2N 2O
2P 2Q 2R 2S 2T 2U 2V 2W 2X 2Y 2Z 2[ 2\ 2] 2^ 2_
2` 2a 2b 2c 2d 2e 2f 2g 2h 2i 2j 2k 2l 2m 2n 2o
2p 2q 2r 2s 2t 2u 2v 2w 2x 2y 2z 2{ 2| 2} 2~
3! 3" 3# 3$ 3% 3& 3' 3( 3) 3* 3+ 3, 3- 3. 3/
30 31 32 33 34 35 36 37 38 39 3: 3; 3< 3= 3> 3?
3@ 3A 3B 3C 3D 3E 3F 3G 3H 3I 3J 3K 3L 3M 3N 3O
3P 3Q 3R 3S 3T 3U 3V 3W 3X 3Y 3Z 3[ 3\ 3] 3^ 3_
3` 3a 3b 3c 3d 3e 3f 3g 3h 3i 3j 3k 3l 3m 3n 3o
3p 3q 3r 3s 3t 3u 3v 3w 3x 3y 3z 3{ 3| 3} 3~
4! 4" 4# 4$ 4% 4& 4' 4( 4) 4* 4+ 4, 4- 4. 4/
40 41 42 43 44 45 46 47 48 49 4: 4; 4< 4= 4> 4?
4@ 4A 4B 4C 4D 4E 4F 4G 4H 4I 4J 4K 4L 4M 4N 4O
4P 4Q 4R 4S 4T 4U 4V 4W 4X 4Y 4Z 4[ 4\ 4] 4^ 4_
4` 4a 4b 4c 4d 4e 4f 4g 4h 4i 4j 4k 4l 4m 4n 4o
4p 4q 4r 4s 4t 4u 4v 4w 4x 4y 4z 4{ 4| 4} 4~
5! 5" 5# 5$ 5% 5& 5' 5( 5) 5* 5+ 5, 5- 5. 5/
50 51 52 53 54 55 56 57 58 59 5: 5; 5< 5= 5> 5?
5@ 5A 5B 5C 5D 5E 5F 5G 5H 5I 5J 5K 5L 5M 5N 5O
5P 5Q 5R 5S 5T 5U 5V 5W 5X 5Y 5Z 5[ 5\ 5] 5^ 5_
5` 5a 5b 5c 5d 5e 5f 5g 5h 5i 5j 5k 5l 5m 5n 5o
5p 5q 5r 5s 5t 5u 5v 5w 5x 5y 5z 5{ 5| 5} 5~
6! 6" 6# 6$ 6% 6& 6' 6( 6) 6* 6+ 6, 6- 6. 6/
60 61 62 63 64 65 66 67 68 69 6: 6; 6< 6= 6> 6?
6@ 6A 6B 6C 6D 6E 6F 6G 6H 6I 6J 6K 6L 6M 6N 6O
6P 6Q 6R 6S 6T 6U 6V 6W 6X 6Y 6Z 6[ 6\ 6] 6^ 6_
6` 6a 6b 6c 6d 6e 6f 6g 6h 6i 6j 6k 6l 6m 6n 6o
6p 6q 6r 6s 6t 6u 6v 6w 6x 6y 6z 6{ 6| 6} 6~
7! 7" 7# 7$ 7% 7& 7' 7( 7) 7* 7+ 7, 7- 7. 7/
70 71 72 73 74 75 76 77 78 79 7: 7; 7< 7= 7> 7?
7@ 7A 7B 7C 7D 7E 7F 7G 7H 7I 7J 7K 7L 7M 7N 7O
7P 7Q 7R 7S 7T 7U 7V 7W 7X 7Y 7Z 7[ 7\ 7] 7^ 7_
7` 7a 7b 7c 7d 7e 7f 7g 7h 7i 7j 7k 7l 7m 7n 7o
7p 7q 7r 7s 7t 7u 7v 7w 7x 7y 7z 7{ 7| 7} 7~
8! 8" 8# 8$ 8% 8& 8' 8( 8) 8* 8+ 8, 8- 8. 8/
80 81 82 83 84 85 86 87 88 89 8: 8; 8< 8= 8> 8?
8@ 8A 8B 8C 8D 8E 8F 8G 8H 8I 8J 8K 8L 8M 8N 8O
8P 8Q 8R 8S 8T 8U 8V 8W 8X 8Y 8Z 8[ 8\ 8] 8^ 8_
8` 8a 8b 8c 8d 8e 8f 8g 8h 8i 8j 8k 8l 8m 8n 8o
8p 8q 8r 8s 8t 8u 8v 8w 8x 8y 8z 8{ 8| 8} 8~
9! 9" 9# 9$ 9% 9& 9' 9( 9) 9* 9+ 9, 9- 9. 9/
90 91 92 93 94 95 96 97 98 99 9: 9; 9< 9= 9> 9?
9@ 9A 9B 9C 9D 9E 9F 9G 9H 9I 9J 9K 9L 9M 9N 9O
9P 9Q 9R 9S 9T 9U 9V 9W 9X 9Y 9Z 9[ 9\ 9] 9^ 9_
9` 9a 9b 9c 9d 9e 9f 9g 9h 9i 9j 9k 9l 9m 9n 9o
9p 9q 9r 9s 9t 9u 9v 9w 9x 9y 9z 9{ 9| 9} 9~
:! :" :# :$ :% :& :' :( :) :* :+ :, :- :. :/
:0 :1 :2 :3 :4 :5 :6 :7 :8 :9 :: :; :< := :> :?
:@ :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 :{ :| :} :~
;! ;" ;# ;$ ;% ;& ;' ;( ;) ;* ;+ ;, ;- ;. ;/
;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9 ;: ;; ;< ;= ;> ;?
;@ ;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 ;{ ;| ;} ;~
<! <" <# <$ <% <& <' <( <) <* <+ <, <- <. </
<0 <1 <2 <3 <4 <5 <6 <7 <8 <9 <: <; << <= <> <?
<@ <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 <{ <| <} <~
=! =" =# =$ =% =& =' =( =) =* =+ =, =- =. =/
=0 =1 =2 =3 =4 =5 =6 =7 =8 =9 =: =; =< == => =?
=@ =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 ={ =| =} =~
>! >" ># >$ >% >& >' >( >) >* >+ >, >- >. >/
>0 >1 >2 >3 >4 >5 >6 >7 >8 >9 >: >; >< >= >> >?
>@ >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 >{ >| >} >~
?! ?" ?# ?$ ?% ?& ?' ?( ?) ?* ?+ ?, ?- ?. ?/
?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?: ?; ?< ?= ?> ??
?@ ?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 ?{ ?| ?} ?~
@! @" @# @$ @% @& @' @( @) @* @+ @, @- @. @/
@0 @1 @2 @3 @4 @5 @6 @7 @8 @9 @: @; @< @= @> @?
@@ @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! A" A# A$ A% A& A' A( A) A* A+ A, A- A. A/
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A: A; A< A= A> A?
A@ AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
AP AQ AR AS AT AU AV AW AX AY AZ A[ A\ A] A^ A_
A` Aa Ab Ac Ad Ae Af Ag Ah Ai Aj Ak Al Am An Ao
Ap Aq Ar As At Au Av Aw Ax Ay Az A{ A| A} A~
B! B" B# B$ B% B& B' B( B) B* B+ B, B- B. B/
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B: B; B< B= B> B?
B@ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO
BP BQ BR BS BT BU BV BW BX BY BZ B[ B\ B] B^ B_
B` Ba Bb Bc Bd Be Bf Bg Bh Bi Bj Bk Bl Bm Bn Bo
Bp Bq Br Bs Bt Bu Bv Bw Bx By Bz B{ B| B} B~
C! C" C# C$ C% C& C' C( C) C* C+ C, C- C. C/
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C: C; C< C= C> C?
C@ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO
CP CQ CR CS CT CU CV CW CX CY CZ C[ C\ C] C^ C_
C` Ca Cb Cc Cd Ce Cf Cg Ch Ci Cj Ck Cl Cm Cn Co
Cp Cq Cr Cs Ct Cu Cv Cw Cx Cy Cz C{ C| C} C~
D! D" D# D$ D% D& D' D( D) D* D+ D, D- D. D/
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D: D; D< D= D> D?
D@ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO
DP DQ DR DS DT DU DV DW DX DY DZ D[ D\ D] D^ D_
D` Da Db Dc Dd De Df Dg Dh Di Dj Dk Dl Dm Dn Do
Dp Dq Dr Ds Dt Du Dv Dw Dx Dy Dz D{ D| D} D~
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{ E| E} E~
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 F{ F| F} F~
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{ G| G} G~
H! H" H# H$ H% H& H' H( H) H* H+ H, H- H. H/
H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H: H; H< H= H> H?
H@ HA HB HC HD HE HF HG HH HI HJ HK HL HM HN HO
HP HQ HR HS HT HU HV HW HX HY HZ H[ H\ H] H^ H_
H` Ha Hb Hc Hd He Hf Hg Hh Hi Hj Hk Hl Hm Hn Ho
Hp Hq Hr Hs Ht Hu Hv Hw Hx Hy Hz H{ H| H} H~
J! J" J# J$ J% J& J' J( J) J* J+ J, J- J. J/
J0 J1 J2 J3 J4 J5 J6 J7 J8 J9 J: J; J< J= J> J?
J@ JA JB JC JD JE JF JG JH JI JJ JK JL JM JN JO
JP JQ JR JS JT JU JV JW JX JY JZ J[ J\ J] J^ J_
J` Ja Jb Jc Jd Je Jf Jg Jh Ji Jj Jk Jl Jm Jn Jo
Jp Jq Jr Js Jt Ju Jv Jw Jx Jy Jz J{ J| J} J~
K! K" K# K$ K% K& K' K( K) K* K+ K, K- K. K/
K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K: K; K< K= K> K?
K@ KA KB KC KD KE KF KG KH KI KJ KK KL KM KN KO
KP KQ KR KS KT KU KV KW KX KY KZ K[ K\ K] K^ K_
K` Ka Kb Kc Kd Ke Kf Kg Kh Ki Kj Kk Kl Km Kn Ko
Kp Kq Kr Ks Kt Ku Kv Kw Kx Ky Kz K{ K| K} K~
L! L" L# L$ L% L& L' L( L) L* L+ L, L- L. L/
L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 L: L; L< L= L> L?
L@ LA LB LC LD LE LF LG LH LI LJ LK LL LM LN LO
LP LQ LR LS LT LU LV LW LX LY LZ L[ L\ L] L^ L_
L` La Lb Lc Ld Le Lf Lg Lh Li Lj Lk Ll Lm Ln Lo
Lp Lq Lr Ls Lt Lu Lv Lw Lx Ly Lz L{ L| L} L~
M! M" M# M$ M% M& M' M( M) M* M+ M, M- M. M/
M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M: M; M< M= M> M?
M@ MA MB MC MD ME MF MG MH MI MJ MK ML MM MN MO
MP MQ MR MS MT MU MV MW MX MY MZ M[ M\ M] M^ M_
M` Ma Mb Mc Md Me Mf Mg Mh Mi Mj Mk Ml Mm Mn Mo
Mp Mq Mr Ms Mt Mu Mv Mw Mx My Mz M{ M| M} M~
N! N" N# N$ N% N& N' N( N) N* N+ N, N- N. N/
N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N: N; N< N= N> N?
N@ NA NB NC ND NE NF NG NH NI NJ NK NL NM NN NO
NP NQ NR NS NT NU NV NW NX NY NZ N[ N\ N] N^ N_
N` Na Nb Nc Nd Ne Nf Ng Nh Ni Nj Nk Nl Nm Nn No
Np Nq Nr Ns Nt Nu Nv Nw Nx Ny Nz N{ N| N} N~
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 On Oo
Op Oq Or Os Ot Ou Ov Ow Ox Oy Oz O{ O| O} O~
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 Pm Pn Po
Pp Pq Pr Ps Pt Pu Pv Pw Px Py Pz P{ P| P} P~
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 QZ 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 Qz Q{ Q| Q} Q~
R! R" R# R$ R% R& R' R( R) R* R+ R, R- R. R/
R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R: R; R< R= R> R?
R@ RA RB RC RD RE RF RG RH RI RJ RK RL RM RN RO
RP RQ RR RS RT RU RV RW RX RY RZ R[ R\ R] R^ R_
R` Ra Rb Rc Rd Re Rf Rg Rh Ri Rj Rk Rl Rm Rn Ro
Rp Rq Rr Rs Rt Ru Rv Rw Rx Ry Rz R{ R| R} R~
S! S" S# S$ S% S& S' S( S) S* S+ S, S- S. S/
S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S: S; S< S= S> S?
S@ SA SB SC SD SE SF SG SH SI SJ SK SL SM SN SO
SP SQ SR SS ST SU SV SW SX SY SZ S[ S\ S] S^ S_
S` Sa Sb Sc Sd Se Sf Sg Sh Si Sj Sk Sl Sm Sn So
Sp Sq Sr Ss St Su Sv Sw Sx Sy Sz S{ S| S} S~
T! T" T# T$ T% T& T' T( T) T* T+ T, T- T. T/
T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T: T; T< T= T> T?
T@ TA TB TC TD TE TF TG TH TI TJ TK TL TM TN TO
TP TQ TR TS TT TU TV TW TX TY TZ T[ T\ T] T^ T_
T` Ta Tb Tc Td Te Tf Tg Th Ti Tj Tk Tl Tm Tn To
Tp Tq Tr Ts Tt Tu Tv Tw Tx Ty Tz T{ T| T} T~
U! U" U# U$ U% U& U' U( U) U* U+ U, U- U. U/
U0 U1 U2 U3 U4 U5 U6 U7 U8 U9 U: U; U< U= U> U?
U@ UA UB UC UD UE UF UG UH UI UJ UK UL UM UN UO
UP UQ UR US UT UU UV UW UX UY UZ U[ U\ U] U^ U_
U` Ua Ub Uc Ud Ue Uf Ug Uh Ui Uj Uk Ul Um Un Uo
Up Uq Ur Us Ut Uu Uv Uw Ux Uy Uz U{ U| U} U~
V! V" V# V$ V% V& V' V( V) V* V+ V, V- V. V/
V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V: V; V< V= V> V?
V@ VA VB VC VD VE VF VG VH VI VJ VK VL VM VN VO
VP VQ VR VS VT VU VV VW VX VY VZ V[ V\ V] V^ V_
V` Va Vb Vc Vd Ve Vf Vg Vh Vi Vj Vk Vl Vm Vn Vo
Vp Vq Vr Vs Vt Vu Vv Vw Vx Vy Vz V{ V| V} V~
W! W" W# W$ W% W& W' W( W) W* W+ W, W- W. W/
W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W: W; W< W= W> W?
W@ WA WB WC WD WE WF WG WH WI WJ WK WL WM WN WO
WP WQ WR WS WT WU WV WW WX WY WZ W[ W\ W] W^ W_
W` Wa Wb Wc Wd We Wf Wg Wh Wi Wj Wk Wl Wm Wn Wo
Wp Wq Wr Ws Wt Wu Wv Ww Wx Wy Wz W{ W| W} W~
X! X" X# X$ X% X& X' X( X) X* X+ X, X- X. X/
X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X: X; X< X= X> X?
X@ XA XB XC XD XE XF XG XH XI XJ XK XL XM XN XO
XP XQ XR XS XT XU XV XW XX XY XZ X[ X\ X] X^ X_
X` Xa Xb Xc Xd Xe Xf Xg Xh Xi Xj Xk Xl Xm Xn Xo
Xp Xq Xr Xs Xt Xu Xv Xw Xx Xy Xz X{ X| X} X~
Y! Y" Y# Y$ Y% Y& Y' Y( Y) Y* Y+ Y, Y- Y. Y/
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y: Y; Y< Y= Y> Y?
Y@ YA YB YC YD YE YF YG YH YI YJ YK YL YM YN YO
YP YQ YR YS YT YU YV YW YX YY YZ Y[ Y\ Y] Y^ Y_
Y` Ya Yb Yc Yd Ye Yf Yg Yh Yi Yj Yk Yl Ym Yn Yo
Yp Yq Yr Ys Yt Yu Yv Yw Yx Yy Yz Y{ Y| Y} Y~
Z! Z" Z# Z$ Z% Z& Z' Z( Z) Z* Z+ Z, Z- Z. Z/
Z0 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z: Z; Z< Z= Z> Z?
Z@ ZA ZB ZC ZD ZE ZF ZG ZH ZI ZJ ZK ZL ZM ZN ZO
ZP ZQ ZR ZS ZT ZU ZV ZW ZX ZY ZZ Z[ Z\ Z] Z^ Z_
Z` Za Zb Zc Zd Ze Zf Zg Zh Zi Zj Zk Zl Zm Zn Zo
Zp Zq Zr Zs Zt Zu Zv Zw Zx Zy Zz Z{ Z| Z} Z~
[! [" [# [$ [% [& [' [( [) [* [+ [, [- [. [/
[0 [1 [2 [3 [4 [5 [6 [7 [8 [9 [: [; [< [= [> [?
[@ [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 [{ [| [} [~
\! \" \# \$ \% \& \' \( \) \* \+ \, \- \. \/
\0 \1 \2 \3 \4 \5 \6 \7 \8 \9 \: \; \< \= \> \?
\@ \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 \{ \| \} \~
]! ]" ]# ]$ ]% ]& ]' ]( ]) ]* ]+ ], ]- ]. ]/
]0 ]1 ]2 ]3 ]4 ]5 ]6 ]7 ]8 ]9 ]: ]; ]< ]= ]> ]?
]@ ]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 ]{ ]| ]} ]~
^! ^" ^# ^$ ^% ^& ^' ^( ^) ^* ^+ ^, ^- ^. ^/
^0 ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^: ^; ^< ^= ^> ^?
^@ ^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 ^{ ^| ^} ^~
_! _" _# _$ _% _& _' _( _) _* _+ _, _- _. _/
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _: _; _< _= _> _?
_@ _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 _{ _| _} _~
`! `" `# `$ `% `& `' `( `) `* `+ `, `- `. `/
`0 `1 `2 `3 `4 `5 `6 `7 `8 `9 `: `; `< `= `> `?
`@ `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! a" a# a$ a% a& a' a( a) a* a+ a, a- a. a/
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a: a; a< a= a> a?
a@ aA aB aC aD aE aF aG aH aI aJ aK aL aM aN aO
aP aQ aR aS aT aU aV aW aX aY aZ a[ a\ a] a^ a_
a` aa ab ac ad ae af ag ah ai aj ak al am an ao
ap aq ar as at au av aw ax ay az a{ a| a} a~
b! b" b# b$ b% b& b' b( b) b* b+ b, b- b. b/
b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b: b; b< b= b> b?
b@ bA bB bC bD bE bF bG bH bI bJ bK bL bM bN bO
bP bQ bR bS bT bU bV bW bX bY bZ b[ b\ b] b^ b_
b` ba bb bc bd be bf bg bh bi bj bk bl bm bn bo
bp bq br bs bt bu bv bw bx by bz b{ b| b} b~
c! c" c# c$ c% c& c' c( c) c* c+ c, c- c. c/
c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c: c; c< c= c> c?
c@ cA cB cC cD cE cF cG cH cI cJ cK cL cM cN cO
cP cQ cR cS cT cU cV cW cX cY cZ c[ c\ c] c^ c_
c` ca cb cc cd ce cf cg ch ci cj ck cl cm cn co
cp cq cr cs ct cu cv cw cx cy cz c{ c| c} c~
d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/
d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d?
d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO
dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_
d` da db dc dd de df dg dh di dj dk dl dm dn do
dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~
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{ e| e} e~
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 f{ f| f} f~
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{ g| g} g~
h! h" h# h$ h% h& h' h( h) h* h+ h, h- h. h/
h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h: h; h< h= h> h?
h@ hA hB hC hD hE hF hG hH hI hJ hK hL hM hN hO
hP hQ hR hS hT hU hV hW hX hY hZ h[ h\ h] h^ h_
h` ha hb hc hd he hf hg hh hi hj hk hl hm hn ho
hp hq hr hs ht hu hv hw hx hy hz h{ h| h} h~
i! i" i# i$ i% i& i' i( i) i* i+ i, i- i. i/
i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 i: i; i< i= i> i?
i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM iN iO
iP iQ iR iS iT iU iV iW iX iY iZ i[ i\ i] i^ i_
i` ia ib ic id ie if ig ih ii ij ik il im in io
ip iq ir is it iu iv iw ix iy iz i{ i| i} i~
j! j" j# j$ j% j& j' j( j) j* j+ j, j- j. j/
j0 j1 j2 j3 j4 j5 j6 j7 j8 j9 j: j; j< j= j> j?
j@ jA jB jC jD jE jF jG jH jI jJ jK jL jM jN jO
jP jQ jR jS jT jU jV jW jX jY jZ j[ j\ j] j^ j_
j` ja jb jc jd je jf jg jh ji jj jk jl jm jn jo
jp jq jr js jt ju jv jw jx jy jz j{ j| j} j~
k! k" k# k$ k% k& k' k( k) k* k+ k, k- k. k/
k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 k: k; k< k= k> k?
k@ kA kB kC kD kE kF kG kH kI kJ kK kL kM kN kO
kP kQ kR kS kT kU kV kW kX kY kZ k[ k\ k] k^ k_
k` ka kb kc kd ke kf kg kh ki kj kk kl km kn ko
kp kq kr ks kt ku kv kw kx ky kz k{ k| k} k~
l! l" l# l$ l% l& l' l( l) l* l+ l, l- l. l/
l0 l1 l2 l3 l4 l5 l6 l7 l8 l9 l: l; l< l= l> l?
l@ lA lB lC lD lE lF lG lH lI lJ lK lL lM lN lO
lP lQ lR lS lT lU lV lW lX lY lZ l[ l\ l] l^ l_
l` la lb lc ld le lf lg lh li lj lk ll lm ln lo
lp lq lr ls lt lu lv lw lx ly lz l{ l| l} l~
m! m" m# m$ m% m& m' m( m) m* m+ m, m- m. m/
m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 m: m; m< m= m> m?
m@ mA mB mC mD mE mF mG mH mI mJ mK mL mM mN mO
mP mQ mR mS mT mU mV mW mX mY mZ m[ m\ m] m^ m_
m` ma mb mc md me mf mg mh mi mj mk ml mm mn mo
mp mq mr ms mt mu mv mw mx my mz m{ m| m} m~
n! n" n# n$ n% n& n' n( n) n* n+ n, n- n. n/
n0 n1 n2 n3 n4 n5 n6 n7 n8 n9 n: n; n< n= n> n?
n@ nA nB nC nD nE nF nG nH nI nJ nK nL nM nN nO
nP nQ nR nS nT nU nV nW nX nY nZ n[ n\ n] n^ n_
n` na nb nc nd ne nf ng nh ni nj nk nl nm nn no
np nq nr ns nt nu nv nw nx ny nz n{ n| n} n~
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 on oo
op oq or os ot ou ov ow ox oy oz o{ o| o} o~
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 pm pn po
pp pq pr ps pt pu pv pw px py pz p{ p| p} p~
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 qZ 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 qz q{ q| q} q~
r! r" r# r$ r% r& r' r( r) r* r+ r, r- r. r/
r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r: r; r< r= r> r?
r@ rA rB rC rD rE rF rG rH rI rJ rK rL rM rN rO
rP rQ rR rS rT rU rV rW rX rY rZ r[ r\ r] r^ r_
r` ra rb rc rd re rf rg rh ri rj rk rl rm rn ro
rp rq rr rs rt ru rv rw rx ry rz r{ r| r} r~
s! s" s# s$ s% s& s' s( s) s* s+ s, s- s. s/
s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s: s; s< s= s> s?
s@ sA sB sC sD sE sF sG sH sI sJ sK sL sM sN sO
sP sQ sR sS sT sU sV sW sX sY sZ s[ s\ s] s^ s_
s` sa sb sc sd se sf sg sh si sj sk sl sm sn so
sp sq sr ss st su sv sw sx sy sz s{ s| s} s~
t! t" t# t$ t% t& t' t( t) t* t+ t, t- t. t/
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t: t; t< t= t> t?
t@ tA tB tC tD tE tF tG tH tI tJ tK tL tM tN tO
tP tQ tR tS tT tU tV tW tX tY tZ t[ t\ t] t^ t_
t` ta tb tc td te tf tg th ti tj tk tl tm tn to
tp tq tr ts tt tu tv tw tx ty tz t{ t| t} t~
u! u" u# u$ u% u& u' u( u) u* u+ u, u- u. u/
u0 u1 u2 u3 u4 u5 u6 u7 u8 u9 u: u; u< u= u> u?
u@ uA uB uC uD uE uF uG uH uI uJ uK uL uM uN uO
uP uQ uR uS uT uU uV uW uX uY uZ u[ u\ u] u^ u_
u` ua ub uc ud ue uf ug uh ui uj uk ul um un uo
up uq ur us ut uu uv uw ux uy uz u{ u| u} u~
v! v" v# v$ v% v& v' v( v) v* v+ v, v- v. v/
v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v: v; v< v= v> v?
v@ vA vB vC vD vE vF vG vH vI vJ vK vL vM vN vO
vP vQ vR vS vT vU vV vW vX vY vZ v[ v\ v] v^ v_
v` va vb vc vd ve vf vg vh vi vj vk vl vm vn vo
vp vq vr vs vt vu vv vw vx vy vz v{ v| v} v~
w! w" w# w$ w% w& w' w( w) w* w+ w, w- w. w/
w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w: w; w< w= w> w?
w@ wA wB wC wD wE wF wG wH wI wJ wK wL wM wN wO
wP wQ wR wS wT wU wV wW wX wY wZ w[ w\ w] w^ w_
w` wa wb wc wd we wf wg wh wi wj wk wl wm wn wo
wp wq wr ws wt wu wv ww wx wy wz w{ w| w} w~
x! x" x# x$ x% x& x' x( x) x* x+ x, x- x. x/
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x?
x@ xA xB xC xD xE xF xG xH xI xJ xK xL xM xN xO
xP xQ xR xS xT xU xV xW xX xY xZ x[ x\ x] x^ x_
x` xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo
xp xq xr xs xt xu xv xw xx xy xz x{ x| x} x~
y! y" y# y$ y% y& y' y( y) y* y+ y, y- y. y/
y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y: y; y< y= y> y?
y@ yA yB yC yD yE yF yG yH yI yJ yK yL yM yN yO
yP yQ yR yS yT yU yV yW yX yY yZ y[ y\ y] y^ y_
y` ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo
yp yq yr ys yt yu yv yw yx yy yz y{ y| y} y~
z! z" z# z$ z% z& z' z( z) z* z+ z, z- z. z/
z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z: z; z< z= z> z?
z@ zA zB zC zD zE zF zG zH zI zJ zK zL zM zN zO
zP zQ zR zS zT zU zV zW zX zY zZ z[ z\ z] z^ z_
z` za zb zc zd ze zf zg zh zi zj zk zl zm zn zo
zp zq zr zs zt zu zv zw zx zy zz z{ z| z} z~
{! {" {# {$ {% {& {' {( {) {* {+ {, {- {. {/
{0 {1 {2 {3 {4 {5 {6 {7 {8 {9 {: {; {< {= {> {?
{@ {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 {{ {| {} {~
|! |" |# |$ |% |& |' |( |) |* |+ |, |- |. |/
|0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |: |; |< |= |> |?
|@ |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 |{ || |} |~
}! }" }# }$ }% }& }' }( }) }* }+ }, }- }. }/
}0 }1 }2 }3 }4 }5 }6 }7 }8 }9 }: }; }< }= }> }?
}@ }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 }{ }| }} }~

View File

@ -43,6 +43,8 @@ __btowc (c)
/* Tell where we want the result. */ /* Tell where we want the result. */
data.outbuf = (char *) buf; data.outbuf = (char *) buf;
data.outbufend = data.outbuf + sizeof (wchar_t); data.outbufend = data.outbuf + sizeof (wchar_t);
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = &data.__state; data.statep = &data.__state;

View File

@ -45,6 +45,8 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
/* Tell where we want the result. */ /* Tell where we want the result. */
data.outbuf = outbuf; data.outbuf = outbuf;
data.outbufend = outbuf + sizeof (wchar_t); data.outbufend = outbuf + sizeof (wchar_t);
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = ps ?: &state; data.statep = ps ?: &state;

View File

@ -50,6 +50,8 @@ __mbsnrtowcs (dst, src, nmc, len, ps)
int status; int status;
/* Tell where we want the result. */ /* Tell where we want the result. */
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = ps ?: &state; data.statep = ps ?: &state;

View File

@ -46,6 +46,8 @@ __mbsrtowcs (dst, src, len, ps)
int status; int status;
/* Tell where we want the result. */ /* Tell where we want the result. */
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = ps ?: &state; data.statep = ps ?: &state;

View File

@ -45,6 +45,8 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
/* Tell where we want the result. */ /* Tell where we want the result. */
data.outbuf = s; data.outbuf = s;
data.outbufend = s + MB_CUR_MAX; data.outbufend = s + MB_CUR_MAX;
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = ps ?: &state; data.statep = ps ?: &state;

View File

@ -49,6 +49,8 @@ __wcsnrtombs (dst, src, nwc, len, ps)
size_t result = 0; size_t result = 0;
/* Tell where we want the result. */ /* Tell where we want the result. */
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = ps ?: &state; data.statep = ps ?: &state;

View File

@ -45,6 +45,8 @@ __wcsrtombs (dst, src, len, ps)
size_t result = 0; size_t result = 0;
/* Tell where we want the result. */ /* Tell where we want the result. */
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = ps ?: &state; data.statep = ps ?: &state;

View File

@ -38,6 +38,8 @@ wctob (c)
/* Tell where we want the result. */ /* Tell where we want the result. */
data.outbuf = buf; data.outbuf = buf;
data.outbufend = buf + MB_LEN_MAX; data.outbufend = buf + MB_LEN_MAX;
data.invocation_counter = 0;
data.internal_use = 1;
data.is_last = 1; data.is_last = 1;
data.statep = &data.__state; data.statep = &data.__state;