Mailing List Archive

UTF-8 is no fun...
Greg Stein wrote:
> In many cases, a Unicode used as a string is used as a UTF-8 value. Why is
> that different in this case? Seems like a wierd special case.

the whole "sometimes it's UTF-8, sometimes it's not" concept
is one big mess (try using some existing string crunching code
with unicode strings if you don't believe me -- using non-US
input strings, of course). among other things, it's very hard
to get things to work properly when string slicing and indexing
no longer works as expected...

I see two possible ways to solve this; rough proposals follow:

-----------------------------------------------------------------------
1. a java-like approach
-----------------------------------------------------------------------

a) define *character* in python to be a unicode character

b) provide two character containers: 8-bit strings and unicode strings.
the former can only hold unicode characters in the range 0-255, the
latter can hold characters from the full unicode character set (not
entirely true for the current implementation, but that's not relevant
here)

given a string "s" of any string type, s[i] is *always* the i'th character.
len(s) is always the number of characters in the string. len(s[i]) is 1.
etc.

c) string operations involving mixed types use the larger type for the
return value.

d) they raise TypeError if (c) doesn't make any sense.

e) as before, 8-bit strings can also be used to store binary data, hold-
ing *bytes* instead of characters. given an 8-bit string "b" used as a
buffer, b[i] is always the i'th byte. len(b) is always the number of bytes
in the buffer.

binary buffers can be used to hold any external unicode encodings
(utf-8, utf-16, etc), as well as non-unicode 8-bit encodings (iso-8859-x,
cyrillic, far east, etc). there are no implicit conversions from buffers
to strings; it's up to the programmer to spell that out when necessary.

f) it's up to the programmer to keep track of what a given 8-bit string
actually contains (strings, encoded characters, or some other kind of
binary data).

g) (optionally) change the language definition to say that source code
is written in unicode, and provide an "encoding pragma" to tell the com-
piler how to interpret any given source file. (maybe in 1.7?)

(there are more issues here, but let's start with these)

-----------------------------------------------------------------------
2. a tcl-like approach
-----------------------------------------------------------------------

a) change slicing, 8-bit regular expressions (etc) to handle UTF-8 byte
sequences as characters. this opens one big can of worms...

b) kill the worms.

-----------------------------------------------------------------------

comments? (for obvious reasons, I'm especially interested in comments
from people using non-ASCII characters on a daily basis...)

</F>



Return-Path: <mhammond@skippinet.com.au>
Delivered-To: python-dev@python.org
Received: from mr14.vic-remote.bigpond.net.au (mr14.vic-remote.bigpond.net.au [24.192.1.29])
by dinsdale.python.org (Postfix) with ESMTP id B8DCF1CD40
for <python-dev@python.org>; Sun, 9 Apr 2000 20:53:33 -0400 (EDT)
Received: from bobcat (CPE-144-132-23-166.vic.bigpond.net.au [144.132.23.166])
by mr14.vic-remote.bigpond.net.au (Pro-8.9.3/8.9.3) with SMTP id KAA21301
for <python-dev@python.org>; Mon, 10 Apr 2000 10:55:59 +1000 (EST)
From: "Mark Hammond" <mhammond@skippinet.com.au>
To: <python-dev@python.org>
Date: Mon, 10 Apr 2000 10:55:39 +1000
Message-ID: <ECEPKNMJLHAPFFJHDOJBEEIDCIAA.mhammond@skippinet.com.au>
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700
Subject: [Python-Dev] Crash in new "trashcan" mechanism.
Sender: python-dev-admin@python.org
Errors-To: python-dev-admin@python.org
X-BeenThere: python-dev@python.org
X-Mailman-Version: 2.0beta2
Precedence: bulk
List-Id: Python core developers <python-dev.python.org>

Ive struck a crash in the new trashcan mechanism (so I guess Chris
is gunna pay the most attention here). Although I can only provoke
this reliably in debug builds, I believe it also exists in release
builds, but is just far more insidious.

Unfortunately, I also can not create a simple crash case. But I
_can_ provide info on how you can reliably cause the crash.
Obviously only tested on Windows...

* Go to http://lima.mudlib.org/~rassilon/p2c/, and grab the
download, and unzip.

* Replace "transformer.py" with the attached version (multi-arg
append bites :-)

* Ensure you have a Windows "debug" build available, built from CVS.

* From the p2c directory, Run "python_d.exe gencode.py gencode.py"

You will get a crash, and the debugger will show you are destructing
a list, with an invalid object. The crash occurs about 1000 times
after this code is first hit, and I can't narrow the crash condition
down :-(

If you open object.h, and disable the trashcan mechanism (by
changing the "xx", as the comments suggest) then it runs fine.

Hope this helps someone - Im afraid I havent a clue :-(

Mark.


begin 666 transformer.py
M(R!#;W!Y<FEG:'0@,3DY-RTQ.3DX($=R96<@4W1E:6X@86YD($)I;&P@5'5T
M= T*(PT*(R!T<F%N<V9O<FUE<BYP>2 M+2!T<F%N<V9O<FUS(%!Y=&AO;B!P
M87)S92!T<F5E<PT*(PT*(R!486ME<R!A;B!I;G!U="!P87)S92!T<F5E(&%N
M9"!T<F%N<V9O<FUS(&ET(&EN=&\@82!H:6=H97(M;&5V96P@<&%R<V4-"B,@
M=')E92!T:&%T(&ES(&$@8FET(&UO<F4@86UE;F%B;&4@=&\@8V]D92!G96YE
M<F%T:6]N+@E%<W-E;G1I86QL>2P@:70-"B,@<VEM<&QY(&EN=')O9'5C97,@
M<V]M92!A9&1I=&EO;F%L('-E;6%N=&EC<RX-"B,-"B,@5W)I='1E;B!B>2!'
M<F5G(%-T96EN("AG<W1E:6Y <W9P86PN;W)G*0T*(PD)("!A;F0@0FEL;"!4
MqT("AR87-S:6QO;D!C86YN960N<F5C>6-L960N;F5T*0T*(R!&96)R=6%R
M>2 Q.3DW+@T*(PT*(PT*(R!4:&4@;W5T<'5T('1R964@:&%S('1H92!F;VQL
M;W=I;F<@;F]D97,Z#0HC#0HC(%-O=7)C92!0>71H;VX@;&EN92 C)W,@87!P
M96%R(&%T('1H92!E;F0@;V8@96%C:"!O9B!A;&P@;V8@=&AE<V4@;F]D97,-
M"B,@268@82!L:6YE(",@9&]E<VXG="!A<'!L>2P@=&AE<F4@=VEL;"!B92!A
M($YO;F4@:6YS=&5A9"X-"B,-"B,@;6]D=6QE.@ED;V,L(&YO9&4-"B,@<W1M
M=#H)"5L@;F]D93$L("XN+BP@;F]D94X@70T*(R!F=6YC=&EO;CH);F%M92P@
M87)G;F%M97,L(&1E9F%U;'1S+"!F;&%G<RP@9&]C+"!C;V1E3F]D90T*(R!L
M86UB9&$Z"6%R9VYA;65S+"!D969A=6QT<RP@9FQA9W,L(&-O9&5.;V1E#0HC
M(&-L87-S9&5F.@EN86UE+"!B87-E<RP@9&]C+"!C;V1E3F]D90T*(R!P87-S
M.@T*(R!B<F5A:SH-"B,@8V]N=&ENdZ#0HC(&9O<CH)"6%S<VEG;DYO9&4L
M(&QI<W1.;V1E+"!B;V1Y3F]D92P@96QS94YO9&4-"B,@=VAI;&4Z"71E<W1.
M;V1E+"!B;V1Y3F]D92P@96QS94YO9&4-"B,@:68Z"0E;("AT97-T3F]D92P@
M<W5I=&5.;V1E*2P@+BXN(%TL(&5L<V5.;V1E#0HC(&5X96,Z"0EE>'!R,4YO
M9&4L(&5X<'(R3F]D92P@97AP<C-.;V1E#0HC(&9R;VTZ"0EM;V1N86UE+"!;
M(&YA;64Q+" N+BXL(&YA;65.(%T-"B,@:6UP;W)T.@E;(&YA;64Q+" N+BXL
M(&YA;65.(%T-"B,@<F%I<V4Z"65X<'(Q3F]D92P@97AP<C).;V1E+"!E>'!R
M,TYO9&4-"B,@=')Y9FEN86QL>3H)=')Y4W5I=&5.;V1E+"!F:6Y3nT94YO
M9&4-"B,@=')Y97AC97!T.@ET<GE3nT94YO9&4L(%L@*&5X<').;V1E+"!A
M<W-G;DYO9&4L('-U:71E3F]D92DL("XN+B!=+"!E;'-E3F]D90T*(R!R971U
M<FXZ"79A;'5E3F]D90T*(R!C;VYS=#H)=F%Ld-"B,@<')I;G0Z"5L@;F]D
M93$L("XN+BP@;F]D94X@70T*(R!P<FEN=&YL.@E;(&YO9&4Q+" N+BXL(&YO
M9&5.(%T-"B,@9&ES8V%R9#H)97AP<DYO9&4-"B,@87-S:6=N.@E;(&YO9&4Q
M+" N+BXL(&YO9&5.(%TL(&5X<').;V1E#0HC(&%S<U]T=7!L93H)6R!N;V1E
M,2P@+BXN+"!N;V1E3B!=#0HC(&%S<U]L:7-T.@E;(&YO9&4Q+" N+BXL(&YO
M9&5.(%T-"B,@87-S7VYA;64Z"6YA;64L(&9L86=S#0HC(&%S<U]A='1R.@EE
M>'!R3F]D92P@871T<FYA;64L(&9L86=S#0HC(&QI<W0Z"0E;(&YO9&4Q+" N
M+BXL(&YO9&5.(%T-"B,@9&EC=#H)"5L@*&ME>3$L('9A;#$I+" N+BXL("AK
M97E.+"!V86Q.*2!=#0HC(&YO=#H)"65X<').;V1E#0HC(&-O;7!A<F4Z"65X
M<').;V1E+"!;("AO<"P@;F]D92DL("XN+BP@*&]P+"!N;V1E*2!=#0HC(&YA
M;64Z"0EN86UE#0HC(&=L;V)A;',Z"5L@;F%M93$L("XN+BP@;F%M94X@70T*
M(R!B86-K<75O=&4Z"6YO9&4-"B,@9V5T871T<CH)97AP<DYO9&4L(&%T=')N
M86UE#0HC(&-A;&Q?9G5N8SH);F]D92P@6R!A<F<Q+" N+BXL(&%R9TX@70T*
M(R!K97EW;W)D.@EN86UE+"!E>'!R3F]D90T*(R!S=6)S8W)I<'0Z"65X<').
M;V1E+"!F;&%G<RP@6R!S=6(Q+" N+BXL('-U8DX@70T*(R!E;&QI<'-I<SH-
M"B,@<VQI8V5O8FHZ"5L@;F]D93$L("XN+BP@;F]D94X@70T*(R!S;&EC93H)
M97AP<DYO9&4L(&9L86=S+"!L;W=E<DYO9&4L('5P<&5R3F]D90T*(R!A<W-E
M<G0Z"65X<'(Q+"!E>'!R,@T*(PT*(R!#;VUP:6QE9"!A<R B8FEN87)Y(B!O
M<',Z#0HC('1U<&QE.@E;(&YO9&4Q+" N+BXL(&YO9&5.(%T-"B,@;W(Z"0E;
M(&YO9&4Q+" N+BXL(&YO9&5.(%T-"B,@86YD.@D)6R!N;V1E,2P@+BXN+"!N
M;V1E3B!=#0HC(&)I=&]R.@E;(&YO9&4Q+" N+BXL(&YO9&5.(%T-"B,@8FET
M>&]R.@E;(&YO9&4Q+" N+BXL(&YO9&5.(%T-"B,@8FET86YD.@E;(&YO9&4Q
M+" N+BXL(&YO9&5.(%T-"B,-"B,@3W!E<F%T:6]N<R!E87-I;'D@979A;'5A
M=&5A8FQE(&]N(&-O;G-T86YT<SH-"B,@/#PZ"0EE>'!R3F]D92P@<VAI9G1.
M;V1E#0HC(#X^.@D)97AP<DYO9&4L('-H:69T3F]D90T*(R K.@D);&5F=$YO
M9&4L(')I9VAT3F]D90T*(R M.@D);&5F=$YO9&4L(')I9VAT3F]D90T*(R J
M.@D);&5F=$YO9&4L(')I9VAT3F]D90T*(R O.@D);&5F=$YO9&4L(')I9VAT
M3F]D90T*(R E.@D);&5F=$YO9&4L(')I9VAT3F]D90T*(R!P;W=E<CH);&5F
M=$YO9&4L(')I9VAT3F]D90T*(R!U;F%R>2LZ"6YO9&4-"B,@=6YA<GDM.@EN
M;V1E#0HC(&ENõR=#H);F]D90T*(PT*#0HB(B)087)S92!T<F5E('1R86YS
M9F]R;6%T:6]N(&UO9'5L92X-"@T*17AP;W-E<R!T:&4@5')A;G-F;W)M97(@
M8VQA<W,@=VET:"!A(&YU;6)E<B!O9B!M971H;V1S(&9O<B!R971U<FYI;F<@
M80T*(F-L96%N<V5D($%35"(@:6YS=&5A9"!O9B!T:&4@<&%R<V4@=')E92!T
M:&%T('1H92!P87)S97(@97AP;W-E<RX-"B(B(@T*#0II;7!O<G0@<&%R<V5R
M#0II;7!O<G0@<WEM8F]L#0II;7!O<G0@=&]K96X-"@T*:6UP;W)T('!P<FEN
M= T*#0IE<G)O<B ]("=W86QK97(N97)R;W(G#0H-"B,@8V]D92!F;&%G<PT*
M0T]?5D%205)'4R ](#$-"D-/7U9!4DM%65=/4D13(#T@,@T*#0HC(&]P97)A
M=&EO;B!F;&%G<PT*3U!?05-324=.(#T@)T]07T%34TE'3B<-"D]07T1%3$54
M12 ]("=/4%]$14Q%5$4G#0I/4%]!4%!,62 ]("=/4%]!4%!,62<-"@T*9&5F
M(&%S3&ES="AN;V1E<RDZ#0H@(&P@/2!;70T*("!F;W(@:71E;2!I;B!N;V1E
M<SH-"B @("!I9B!H87-A='1R*&ET96TL(")A<TQI<W0B*3H-"B @(" @(&PN
M87!P96YD*&ET96TN87-,:7-T*"DI#0H@(" @96QS93H-"B @(" @(&EF('1Y
M<&4H:71E;2D@:7,@='EP92@@*$YO;F4L($YO;F4I("DZ#0H@(" @(" @(&PN
M87!P96YD*'1U<&QE*&%S3&ES="AI=&5M*2DI#0H@(" @("!E;&EF('1Y<&4H
M:71E;2D@:7,@='EP92@@6UT@*3H-"B @(" @(" @;"YA<'!E;F0H87-,:7-T
M*&ET96TI*0T*(" @(" @96QS93H-"B @(" @(" @;"YA<'!E;F0H:71E;2D-
M"B @<F5T=7)N(&P-"B @(" -"F-L87-S($YO9&4Z#0H@(&1E9B!?7VEN:71?
M7RAS96QF+" J87)G<RDZ#0H@(" @<V5L9BY?7V-H:6QD<F5N(#T@87)G<PT*
M(" @('-E;&8N;&EN96YO(#T@3F]N90T*("!D968@7U]G971I=&5M7U\H<V5L
M9BP@:6YD97@I.@T*(" @(')E='5R;B!S96QF+E]?8VAI;&1R96Y;:6YD97AM#0H@(&1E9B!?7W-T<E]?*'-E;&8I.@T*(" @(')E='5R;B!S='(H<V5L9BY?
M7V-H:6QD<F5N*0T*("!D968@7U]R97!R7U\H<V5L9BDZ#0H@(" @<F5T=7)N
M(&!S96QF+E]?8VAI;&1R96Y@#0H@(&1E9B!?7VQE;E]?*'-E;&8I.@T*(" @
M(')E='5R;B!L96XH<V5L9BY?7V-H:6QD<F5N*0T*("!D968@7U]G971S;&EC
M95]?*'-E;&8L(&QO=RP@:&EG:"DZ#0H@(" @<F5T=7)N('-E;&8N7U]C:&EL
M9')E;EML;W<Z:&EG:%T-"B @9&5F(&=E=$-H:6QD<F5N*'-E;&8I.@T*(" @
M(')E='5R;B!S96QF+E]?8VAI;&1R96X-"B @9&5F(&=E=%1Y<&4H<V5L9BDZ
M#0H@(" @<F5T=7)N('-E;&8N7U]C:&EL9')E;ELP70T*("!D968@87-,:7-T
M*'-E;&8I.@T*(" @(')E='5R;B!T=7!L92AA<TQI<W0H<V5L9BY?7V-H:6QD
M<F5N*2D-"@T*8VQA<W,@5')A;G-F;W)M97(Z#0H@("(B(E5T:6QI='D@;V)J
M96-T(&9O<B!T<F%N<V9O<FUI;F<@4'ET:&]N('!A<G-E('1R965S+@T*#0H@
M($5X<&]S97,@=&AE(&9O;&QO=VEN9R!M971H;V1S.@T*"71R964@/2!T<F%N
M<V9O<FTH87-T7W1R964I#0H)=')E92 ]('!A<G-E<W5I=&4H=&5X="D-"@ET
M<F5E(#T@<&%R<V5E>'!R*'1E>'0I#0H)=')E92 ]('!A<G-E9FEL92AF:6QE
M;V(@?"!F:6QE;F%M92D-"B @(B(B#0H-"B @9&5F(%]?:6YI=%]?*'-E;&8I
M.@T*(" @('-E;&8N7V1I<W!A=&-H(#T@>R!]#0H@(" @9F]R('9A;'5E+"!N
M86UE(&EN('-Y;6)O;"YS>6U?;F%M92YI=&5M<R@I.@T*(" @(" @:68@:&%S
M871T<BAS96QF+"!N86UE*3H-"B @(" @(" @<V5L9BY?9&ES<&%T8VA;=F%L
Me=(#T@9V5T871T<BAS96QF+"!N86UE*0T*#0H@(&1E9B!T<F%N<V9O<FTH
M<V5L9BP@=')E92DZ#0H@(" @(B(B5')A;G-F;W)M(&%N($%35"!I;G1O(&$@
M;6]D:69I960@<&%R<V4@=')E92XB(B(-"B @("!I9B!T>7!E*'1R964I("$]
M('1Y<&4H*"DI(&%N9"!T>7!E*'1R964I("$]('1Y<&4H6UTI.@T*(" @(" @
M=')E92 ]('!A<G-E<BYA<W0R='5P;&4H=')E92PQ*0T*(" @(')E='5R;B!S
M96QF+F-O;7!I;&5?;F]D92AT<F5E*0T*#0H@(&1E9B!P87)S97-U:71E*'-E
M;&8L('1E>'0I.@T*(" @("(B(E)E='5R;B!A(&UO9&EF:65D('!A<G-E('1R
M964@9F]R('1H92!G:79E;B!SnT92!T97AT+B(B(@T*(" @(')E='5R;B!S
M96QF+G1R86YS9F]R;2AP87)S97(N<W5I=&4H=&5X="DI#0H-"B @9&5F('!A
M<G-E97AP<BAS96QF+"!T97AT*3H-"B @(" B(B)2971U<FX@82!M;V1I9FEE
M9"!P87)S92!T<F5E(&9O<B!T:&4@9VEV96X@97AP<F5S<VEO;B!T97AT+B(B
M(@T*(" @(')E='5R;B!S96QF+G1R86YS9F]R;2AP87)S97(N97AP<BAT97AT
M*2D-"@T*("!D968@<&%R<V5F:6QE*'-E;&8L(&9I;&4I.@T*"2(B(E)E='5R
M;B!A(&UO9&EF:65D('!A<G-E('1R964@9F]R('1H92!C;VYT96YT<R!O9B!T
M:&4@9VEV96X@9FEL92XB(B(-"@EI9B!T>7!E*&9I;&4I(#T]('1Y<&4H)R<I
M.@T*"2 @9FEL92 ](&]P96XH9FEL92D-"@ER971U<FX@<V5L9BYP87)S97-U
M:71E*&9I;&4N<F5A9"@I*0T*#0H@(",@+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T-"B @
M(PT*(" C(%!2259!5$4@34542$]$4PT*(" C#0H-"B @9&5F(&-O;7!I;&5?
M;F]D92AS96QF+"!N;V1E*3H-"@DC(R,@96UI="!A(&QI;F4M;G5M8F5R(&YO
M9&4_#0H);B ](&YO9&5;,%T-"@EI9B!N(#T]('-Y;6)O;"YS:6YG;&5?:6YP
MpZ#0H)("!R971U<FX@<V5L9BYS:6YG;&5?:6YPpH;F]D95LQ.ETI#0H)
M:68@;B ]/2!S>6UB;VPN9FEL95]I;G!U=#H-"@D@(')E='5R;B!S96QF+F9I
M;&5?:6YPpH;F]D95LQ.ETI#0H):68@;B ]/2!S>6UB;VPN979A;%]I;G!U
M=#H-"@D@(')E='5R;B!S96QF+F5V86Q?:6YPpH;F]D95LQ.ETI#0H):68@
M;B ]/2!S>6UB;VPN;&%M8F1E9CH-"@D@(')E='5R;B!S96QF+FQA;6)D968H
M;F]D95LQ.ETI#0H):68@;B ]/2!S>6UB;VPN9G5N8V1E9CH-"@D@(')E='5R
M;B!S96QF+F9U;F-D968H;F]D95LQ.ETI#0H):68@;B ]/2!S>6UB;VPN8VQA
M<W-D968Z#0H)("!R971U<FX@<V5L9BYC;&%S<V1E9BAN;V1E6S$Z72D-"@T*
M"7)A:7-E(&5R<F]R+" H)W5N97AP96-T960@;F]D92!T>7!E)RP@;BD-"@T*
M("!D968@<VEN9VQE7VEN<'5T*'-E;&8L(&YO9&4I.@T*"2,C(R!D;R!W92!W
M86YT('1O(&1O(&%N>71H:6YG(&%B;W5T(&)E:6YG(")I;G1E<F%C=&EV92(@
M/PT*#0H)(R!.15=,24Y%('P@<VEM<&QE7W-T;70@?"!C;VUP;W5N9%]S=&UT
M($Y%5TQ)3D4-"@EN(#T@;F]D95LP75LP70T*"6EF(&X@(3T@=&]K96XN3D57
M3$E.13H-"@D@(')E='5R;B!S96QF+F-O;5]S=&UT*&YO9&5;,%TI#0H-"@ER
M971U<FX@3F]D92@G<&%S<R<I#0H-"B @9&5F(&9I;&5?:6YPpH<V5L9BP@
M;F]D96QI<W0I.@T*"61O8R ]('-E;&8N9V5T7V1O8W-T<FEN9RAN;V1E;&ES
M="P@<WEM8F]L+F9I;&5?:6YPpI#0H)<W1M=',@/2!;(%T-"@EF;W(@;F]D
M92!I;B!N;V1E;&ES=#H-"@D@(&EF(&YO9&5;,%T@(3T@=&]K96XN14Y$34%2
M2T52(&%N9"!N;V1E6S!=("$]('1O:V5N+DY%5TQ)3D4Z#0H)"7-E;&8N8V]M
M7V%P<&5N9%]S=&UT*'-T;71S+"!N;V1E*0T*"7)E='5R;B!.;V1E*"=M;V1U
M;&4G+"!D;V,L($YO9&4H)W-T;70G+"!S=&UT<RDI#0H-"B @9&5F(&5V86Q?
M:6YPpH<V5L9BP@;F]D96QI<W0I.@T*"2,@9G)O;2!T:&4@8G5I;'0M:6X@
M9G5N8W1I;VX@:6YPpH*0T*"2,C(R!I<R!T:&ES('-U9F9I8VEE;G0_#0H)
M<F5T=7)N('-E;&8N8V]M7VYO9&4H;F]D96QI<W1;,%TI#0H-"B @9&5F(&9U
M;F-D968H<V5L9BP@;F]D96QI<W0I.@T*"2,@9G5N8V1E9CH@)V1E9B<@3D%-
M12!P87)A;65T97)S("<Z)R!SnT90T*"2,@<&%R86UE=&5R<SH@)R@G(%MV
M87)A<F=S;&ES=%T@)RDG#0H-"@EL:6YE;F\@/2!N;V1E;&ES=%LQ75LR70T*
M"6YA;64@(" ](&YO9&5L:7-T6S%=6S%=#0H)87)G<R @(#T@;F]D96QI<W1;
M,EU;,ET-"@D-"@EI9B!A<F=S6S!=(#T]('-Y;6)O;"YV87)A<F=S;&ES=#H-
M"@D@(&YA;65S+"!D969A=6QT<RP@9FQA9W,@/2!S96QF+F-O;5]A<F=L:7-T
M*&%R9W-;,3I=*0T*"65L<V4Z#0H)("!N86UE<R ](&1E9F%U;'1S(#T@*"D-
M"@D@(&9L86=S(#T@, T*"61O8R ]('-E;&8N9V5T7V1O8W-T<FEN9RAN;V1E
M;&ES=%LT72D-"@T*"2,@8V]D92!F;W(@9G5N8W1I;VX-"@EC;V1E(#T@<V5L
M9BYC;VU?;F]D92AN;V1E;&ES=%LT72D-"@T*"6X@/2!.;V1E*"=F=6YC=&EO
M;B<L(&YA;64L(&YA;65S+"!D969A=6QT<RP@9FQA9W,L(&1O8RP@8V]D92D-
M"B @(" @(" @;BYL:6YE;F\@/2!L:6YE;F\-"B @(" @(" @<F5T=7)N(&X-
M"@T*("!D968@;&%M8F1E9BAS96QF+"!N;V1E;&ES="DZ#0H)(R!L86UB9&5F
M.B G;&%M8F1A)R!;=F%R87)G<VQI<W1=("<Z)R!T97-T#0H):68@;F]D96QI
M<W1;,EU;,%T@/3T@<WEM8F]L+G9A<F%R9W-L:7-T.@T*"2 @;F%M97,L(&1E
M9F%U;'1S+"!F;&%G<R ]('-E;&8N8V]M7V%R9VQI<W0H;F]D96QI<W1;,EU;
M,3I=*0T*"65L<V4Z#0H)("!N86UE<R ](&1E9F%U;'1S(#T@*"D-"@D@(&9L
M86=S(#T@, T*#0H)(R!C;V1E(&9O<B!L86UB9&$-"@EC;V1E(#T@<V5L9BYC
M;VU?;F]D92AN;V1E;&ES=%LM,5TI#0H-"@EN(#T@3F]D92@G;&%M8F1A)RP@
M;F%M97,L(&1E9F%U;'1S+"!F;&%G<RP@8V]D92D-"B @(" @(" @;BYL:6YE
M;F\@/2!N;V1E;&ES=%LQ75LR70T*(" @(" @("!R971U<FX@;@T*#0H@(&1E
M9B!C;&%S<V1E9BAS96QF+"!N;V1E;&ES="DZ#0H@(" @(R!C;&%S<V1E9CH@
M)V-L87-S)R!.04U%(%LG*"<@=&5S=&QI<W0@)RDG72 G.B<@<W5I=&4-"B @
M(" -"B @("!N86UE(#T@;F]D96QI<W1;,5U;,5T-"B @("!D;V,@/2!S96QF
M+F=E=%]D;V-S=')I;F<H;F]D96QI<W1;+3%=*0T*(" @(&EF(&YO9&5L:7-T
M6S)=6S!=(#T]('1O:V5N+D-/3$]..@T*(" @(" @8F%S97,@/2!;70T*(" @
M(&5L<V4Z#0H@(" @("!B87-E<R ]('-E;&8N8V]M7V)A<V5S*&YO9&5L:7-T
M6S-=*0T*(" @(" @#0H@(" @(R!C;V1E(&9O<B!C;&%S<PT*(" @(&-O9&4@
M/2!S96QF+F-O;5]N;V1E*&YO9&5L:7-T6RTQ72D-"B @(" -"B @("!N(#T@
M3F]D92@G8VQA<W-D968G+"!N86UE+"!B87-E<RP@9&]C+"!C;V1E*0T*(" @
M(&XN;&EN96YO(#T@;F]D96QI<W1;,5U;,ET-"B @("!R971U<FX@;@T*(" -
M"B @9&5F('-T;70H<V5L9BP@;F]D96QI<W0I.@T*(" @(')E='5R;B!S96QF
M+F-O;5]S=&UT*&YO9&5L:7-T6S!=*0T*(" @(" @#0H@('-M86QL7W-T;70@
M/2!S=&UT#0H@(&9L;W=?<W1M=" ]('-T;70-"B @8V]M<&]U;F1?<W1M=" ]
M('-T;70-"@T*("!D968@<VEM<&QE7W-T;70H<V5L9BP@;F]D96QI<W0I.@T*
M(" @(",C(R!OqPp@82!,24Y%3D\@;F]D93\-"B @(" -"B @(" C('-M
M86QL7W-T;70@*"<[)R!S;6%L;%]S=&UT*2H@6R<[)UT@3D573$E.10T*(" @
M('-T;71S(#T@6R!=#0H@(" @9F]R(&D@:6X@<F%N9V4H,"P@;&5N*&YO9&5L
M:7-T*2P@,BDZ#0H@(" @("!S96QF+F-O;5]A<'!E;F1?<W1M="AS=&UT<RP@
M;F]D96QI<W1;:5TI#0H@(" @<F5T=7)N($YO9&4H)W-T;70G+"!S=&UT<RD-
M"@T*("!D968@<&%R86UE=&5R<RAS96QF+"!N;V1E;&ES="DZ#0H@(" @<F%I
M<V4@97)R;W(-"@T*("!D968@=F%R87)G<VQI<W0H<V5L9BP@;F]D96QI<W0I
M.@T*(" @(')A:7-E(&5R<F]R#0H-"B @9&5F(&9P9&5F*'-E;&8L(&YO9&5L
M:7-T*3H-"B @("!R86ES92!E<G)O<@T*#0H@(&1E9B!F<&QI<W0H<V5L9BP@
M;F]D96QI<W0I.@T*(" @(')A:7-E(&5R<F]R#0H-"B @9&5F(&1O='1E9%]N
M86UE*'-E;&8L(&YO9&5L:7-T*3H-"B @("!R86ES92!E<G)O<@T*#0H@(&1E
M9B!C;VUP7V]P*'-E;&8L(&YO9&5L:7-T*3H-"B @("!R86ES92!E<G)O<@T*
M#0H@(&1E9B!T<F%I;&5R*'-E;&8L(&YO9&5L:7-T*3H-"B @("!R86ES92!E
M<G)O<@T*#0H@(&1E9B!S;&EC96]P*'-E;&8L(&YO9&5L:7-T*3H-"B @("!R
M86ES92!E<G)O<@T*#0H@(&1E9B!A<F=U;65N="AS96QF+"!N;V1E;&ES="DZ
M#0H@(" @<F%I<V4@97)R;W(-"@T*(" C("TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM#0H@
M(",-"B @(R!35$%414U%3E0@3D]$15,)("AI;G9O:V5D(&)Y(&-O;5]N;V1E
M*"DI#0H@(",-"@T*("!D968@97AP<E]S=&UT*'-E;&8L(&YO9&5L:7-T*3H-
M"B @(" C('1E<W1L:7-T("@G/2<@=&5S=&QI<W0I*@T*(" @(&5X<').;V1E
M(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LM,5TI#0H@(" @:68@;&5N*&YO
M9&5L:7-T*2 ]/2 Q.@T*(" @(" @<F5T=7)N($YO9&4H)V1I<V-A<F0G+"!E
M>'!R3F]D92D-"B @("!N;V1E<R ](%L@70T*(" @(&9O<B!I(&EN(')A;F=E
M*# L(&QE;BAN;V1E;&ES="D@+2 R+" R*3H-"B @(" @(&YO9&5S+F%P<&5N
M9"@H<V5L9BYC;VU?87-S:6=N*&YO9&5L:7-T6VE=+"!/4%]!4U-)1TXI*2D-
M"B @("!N(#T@3F]D92@G87-S:6=N)RP@;F]D97,L(&5X<').;V1E*0T*(" @
M(&XN;&EN96YO(#T@;F]D96QI<W1;,5U;,ET-"B @("!R971U<FX@;@T*(" @
M( T*("!D968@<')I;G1?<W1M="AS96QF+"!N;V1E;&ES="DZ#0H@(" @(R!P
M<FEN=#H@*'1E<W0@)RPG*2H@6W1E<W1=#0H@(" @:71E;7,@/2!;(%T-"B @
M("!F;W(@:2!I;B!R86YG92@Q+"!L96XH;F]D96QI<W0I+" R*3H-"B @(" @
M(&ET96US+F%P<&5N9"AS96QF+F-O;5]N;V1E*&YO9&5L:7-T6VE=*2D-"B @
M("!I9B!N;V1E;&ES=%LM,5U;,%T@/3T@=&]K96XN0T]-34$Z#0H@(" @("!N
M(#T@3F]D92@G<')I;G0G+"!I=&5M<RD-"B @(" @(&XN;&EN96YO(#T@;F]D
M96QI<W1;,%U;,ET-"B @(" @(')E='5R;B!N#0H@(" @;B ]($YO9&4H)W!R
M:6YT;FPG+"!I=&5M<RD-"B @("!N+FQI;F5N;R ](&YO9&5L:7-T6S!=6S)M#0H@(" @<F5T=7)N(&X-"@T*("!D968@9&5L7W-T;70H<V5L9BP@;F]D96QI
M<W0I.@T*(" @(')E='5R;B!S96QF+F-O;5]A<W-I9VXH;F]D96QI<W1;,5TL
M($]07T1%3$5412D-"@T*("!D968@<&%S<U]S=&UT*'-E;&8L(&YO9&5L:7-T
M*3H-"B @(" C('!A<W,Z#0H@(" @;B ]($YO9&4H)W!A<W,G*0T*(" @(&XN
M;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-"B @("!R971U<FX@;@T*#0H@(&1E
M9B!B<F5A:U]S=&UT*'-E;&8L(&YO9&5L:7-T*3H-"B @(" C(&)R96%K.@T*
M(" @(&X@/2!.;V1E*"=B<F5A:R<I#0H@(" @;BYL:6YE;F\@/2!N;V1E;&ES
M=%LP75LR70T*(" @(')E='5R;B!N#0H-"B @9&5F(&-O;G1I;G5E7W-T;70H
M<V5L9BP@;F]D96QI<W0I.@T*(" @(",@8V]N=&ENd-"B @("!N(#T@3F]D
M92@G8V]N=&ENdG*0T*(" @(&XN;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-
M"B @("!R971U<FX@;@T*#0H@(&1E9B!R971U<FY?<W1M="AS96QF+"!N;V1E
M;&ES="DZ#0H@(" @(R!R971U<FXZ(%MT97-T;&ES=%T-"B @("!I9B!L96XH
M;F]D96QI<W0I(#P@,CH-"B @(" @(&X@/2!.;V1E*"=R971U<FXG+"!.;V1E
M*"=C;VYS="<L($YO;F4I*0T*(" @(" @;BYL:6YE;F\@/2!N;V1E;&ES=%LP
M75LR70T*(" @(" @<F5T=7)N(&X-"B @("!N(#T@3F]D92@G<F5T=7)N)RP@
M<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LQ72DI#0H@(" @;BYL:6YE;F\@/2!N
M;V1E;&ES=%LP75LR70T*(" @(')E='5R;B!N#0H-"B @9&5F(')A:7-E7W-T
M;70H<V5L9BP@;F]D96QI<W0I.@T*(" @(",@<F%I<V4Z('1E<W0@6R<L)R!T
M97-T(%LG+"<@=&5S=%U=#0H@(" @97AP<C$@/2!S96QF+F-O;5]N;V1E*&YO
M9&5L:7-T6S%=*0T*(" @(&EF(&QE;BAN;V1E;&ES="D@/B S.@T*(" @(" @
M97AP<C(@/2!S96QF+F-O;5]N;V1E*&YO9&5L:7-T6S-=*0T*(" @(" @:68@
M;&5N*&YO9&5L:7-T*2 ^(#4Z#0H@(" @(" @(&5X<'(S(#T@<V5L9BYC;VU?
M;F]D92AN;V1E;&ES=%LU72D-"B @(" @(&5L<V4Z#0H@(" @(" @(&5X<'(S
M(#T@3F]D92@G;F%M92<L("=.;VYE)RD-"B @("!E;'-E.@T*(" @(" @97AP
M<C(@/2!.;V1E*"=N86UE)RP@)TYO;F4G*0T*(" @(" @97AP<C,@/2!.;V1E
M*"=N86UE)RP@)TYO;F4G*0T*(" @(&X@/2!.;V1E*"=R86ES92<L(&5X<'(Q
M+"!E>'!R,BP@97AP<C,I#0H@(" @;BYL:6YE;F\@/2!N;V1E;&ES=%LP75LR
M70T*(" @(')E='5R;B!N#0H-"B @9&5F(&EM<&]R=%]S=&UT*'-E;&8L(&YO
M9&5L:7-T*3H-"B @(" C(&EM<&]R=#H@9&]T=&5D7VYA;64@*"<L)R!D;W1T
M961?;F%M92DJ('P-"B @(" C(&9R;VTZ(&1O='1E9%]N86UE("=I;7!O<G0G
M("@G*B<@?"!.04U%("@G+"<@3D%-12DJ*0T*(" @(&YA;65S(#T@6R!=#0H@
M(" @:68@;F]D96QI<W1;,%U;,5U;,%T@/3T@)V8G.@T*(" @(" @9F]R(&D@
M:6X@<F%N9V4H,RP@;&5N*&YO9&5L:7-T*2P@,BDZ#0H@(" @(" @(",@;F]T
M93H@;F]D96QI<W1;:5T@8V]U;&0@8F4@*'1O:V5N+E-405(L("<J)RD@;W(@
M*'1O:V5N+DY!344L(&YA;64I#0H@(" @(" @(&YA;65S+F%P<&5N9"AN;V1E
M;&ES=%MI75LQ72D-"B @(" @(&X@/2!.;V1E*"=F<F]M)RP@<V5L9BYC;VU?
M9&]T=&5D7VYA;64H;F]D96QI<W1;,5TI+"!N86UE<RD-"B @(" @(&XN;&EN
M96YO(#T@;F]D96QI<W1;,%U;,ET-"B @(" @(')E='5R;B!N#0H-"B @("!F
M;W(@:2!I;B!R86YG92@Q+"!L96XH;F]D96QI<W0I+" R*3H-"B @(" @(&YA
M;65S+F%P<&5N9"AS96QF+F-O;5]D;W1T961?;F%M92AN;V1E;&ES=%MI72DI
M#0H@(" @;B ]($YO9&4H)VEM<&]R="<L(&YA;65S*0T*(" @(&XN;&EN96YO
M(#T@;F]D96QI<W1;,%U;,ET-"B @("!R971U<FX@;@T*#0H@(&1E9B!G;&]B
M86Q?<W1M="AS96QF+"!N;V1E;&ES="DZ#0H@(" @(R!G;&]B86PZ($Y!344@
M*"<L)R!.04U%*2H-"B @("!N86UE<R ](%L@70T*(" @(&9O<B!I(&EN(')A
M;F=E*#$L(&QE;BAN;V1E;&ES="DL(#(I.@T*(" @(" @;F%M97,N87!P96YD
M*&YO9&5L:7-T6VE=6S%=*0T*(" @(&X@/2!.;V1E*"=G;&]B86QS)RP@;F%M
M97,I#0H@(" @;BYL:6YE;F\@/2!N;V1E;&ES=%LP75LR70T*(" @(')E='5R
M;B!N#0H-"B @9&5F(&5X96-?<W1M="AS96QF+"!N;V1E;&ES="DZ#0H@(" @
M(R!E>&5C7W-T;70Z("=E>&5C)R!E>'!R(%LG:6XG(&5X<'(@6R<L)R!E>'!R
M75T-"B @("!E>'!R,2 ]('-E;&8N8V]M7VYO9&4H;F]D96QI<W1;,5TI#0H@
M(" @:68@;&5N*&YO9&5L:7-T*2 ^/2 T.@T*(" @(" @97AP<C(@/2!S96QF
M+F-O;5]N;V1E*&YO9&5L:7-T6S-=*0T*(" @(" @:68@;&5N*&YO9&5L:7-T
M*2 ^/2 V.@T*(" @(" @("!E>'!R,R ]('-E;&8N8V]M7VYO9&4H;F]D96QI
M<W1;-5TI#0H@(" @("!E;'-E.@T*(" @(" @("!E>'!R,R ]($YO;F4-"B @
M("!E;'-E.@T*(" @(" @97AP<C(@/2!E>'!R,R ]($YO;F4-"B @(" @(" @
M#0H@(" @;B ]($YO9&4H)V5X96,G+"!E>'!R,2P@97AP<C(L(&5X<'(S*0T*
M(" @(&XN;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-"B @("!R971U<FX@;@T*
M#0H@(&1E9B!A<W-E<G1?<W1M="AS96QF+"!N;V1E;&ES="DZ#0H@(" @(R G
M87-S97)T)SH@=&5S="P@6R<L)R!T97-T70T*(" @(&5X<'(Q(#T@<V5L9BYC
M;VU?;F]D92AN;V1E;&ES=%LQ72D-"B @("!I9B H;&5N*&YO9&5L:7-T*2 ]
M/2 T*3H-"B @(" @(&5X<'(R(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LS
M72D-"B @("!E;'-E.@T*(" @(" @97AP<C(@/2!.;V1E*"=N86UE)RP@)TYO
M;F4G*0T*(" @(&X@/2!.;V1E*"=A<W-E<G0G+"!E>'!R,2P@97AP<C(I#0H@
M(" @;BYL:6YE;F\@/2!N;V1E;&ES=%LP75LR70T*(" @(')E='5R;B!N#0H-
M"B @9&5F(&EF7W-T;70H<V5L9BP@;F]D96QI<W0I.@T*(" @(",@:68Z('1E
M<W0@)SHG('-U:71E("@G96QI9B<@=&5S=" G.B<@<W5I=&4I*B!;)V5L<V4G
M("<Z)R!SnT95T-"B @("!T97-T<R ](%L@70T*(" @(&9O<B!I(&EN(')A
M;F=E*# L(&QE;BAN;V1E;&ES="D@+2 S+" T*3H-"B @(" @('1E<W1.;V1E
M(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%MI("L@,5TI#0H@(" @("!SnT
M94YO9&4@/2!S96QF+F-O;5]N;V1E*&YO9&5L:7-T6VD@*R S72D-"B @(" @
M('1E<W1S+F%P<&5N9"@H=&5S=$YO9&4L('-U:71E3F]D92DI#0H@(" @(" -
M"B @(" @(&EF(&QE;BAN;V1E;&ES="D@)2 T(#T](#,Z#0H@(" @(" @(&5L
M<V5.;V1E(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LM,5TI#0H@(" @("!E
M;'-E.@T*(" @(" @("!E;'-E3F]D92 ]($YO;F4-"B @("!N(#T@3F]D92@G
M:68G+"!T97-T<RP@96QS94YO9&4I#0H@(" @;BYL:6YE;F\@/2!N;V1E;&ES
M=%LP75LR70T*(" @(')E='5R;B!N#0H-"B @9&5F('=H:6QE7W-T;70H<V5L
M9BP@;F]D96QI<W0I.@T*(" @(",@)W=H:6QE)R!T97-T("<Z)R!SnT92!;
M)V5L<V4G("<Z)R!SnT95T-"@T*(" @('1E<W1.;V1E(#T@<V5L9BYC;VU?
M;F]D92AN;V1E;&ES=%LQ72D-"B @("!B;V1Y3F]D92 ]('-E;&8N8V]M7VYO
M9&4H;F]D96QI<W1;,UTI#0H-"B @("!I9B!L96XH;F]D96QI<W0I(#X@-#H-
M"B @(" @(&5L<V5.;V1E(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LV72D-
M"B @("!E;'-E.@T*(" @(" @96QS94YO9&4@/2!.;VYE#0H-"B @("!N(#T@
M3F]D92@G=VAI;&4G+"!T97-T3F]D92P@8F]D>4YO9&4L(&5L<V5.;V1E*0T*
M(" @(&XN;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-"B @("!R971U<FX@;@T*
M(" -"B @9&5F(&9O<E]S=&UT*'-E;&8L(&YO9&5L:7-T*3H-"B @(" C("=F
M;W(G(&5X<')L:7-T("=I;B<@97AP<FQI<W0@)SHG('-U:71E(%LG96QS92<@
M)SHG('-U:71E70T*#0H@(" @87-S:6=N3F]D92 ]('-E;&8N8V]M7V%S<VEG
M;BAN;V1E;&ES=%LQ72P@3U!?05-324=.*0T*(" @(&QI<W1.;V1E(#T@<V5L
M9BYC;VU?;F]D92AN;V1E;&ES=%LS72D-"B @("!B;V1Y3F]D92 ]('-E;&8N
M8V]M7VYO9&4H;F]D96QI<W1;-5TI#0H-"B @("!I9B!L96XH;F]D96QI<W0I
M(#X@.#H-"B @(" @(&5L<V5.;V1E(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES
M=%LX72D-"B @("!E;'-E.@T*(" @(" @96QS94YO9&4@/2!.;VYE#0H@(" @
M(" -"B @("!R971U<FX@3F]D92@G9F]R)RP@87-S:6=N3F]D92P@;&ES=$YO
M9&4L(&)O9'E.;V1E+"!E;'-E3F]D92P@;F]D96QI<W1;,%U;,ETI#0H-"B @
M9&5F('1R>5]S=&UT*'-E;&8L(&YO9&5L:7-T*3H-"B @(" C("=T<GDG("<Z
M)R!SnT92 H97AC97!T7V-L875S92 G.B<@<W5I=&4I*R!;)V5L<V4G("<Z
M)R!SnT95T-"B @(" C('P@)W1R>2<@)SHG('-U:71E("=F:6YA;&QY)R G
M.B<@<W5I=&4-"B @("!I9B!N;V1E;&ES=%LS75LP72 A/2!S>6UB;VPN97AC
M97!T7V-L875S93H-"B @(" @(')E='5R;B!S96QF+F-O;5]T<GE?9FEN86QL
M>2AN;V1E;&ES="D-"@T*(" @(')E='5R;B!S96QF+F-O;5]T<GE?97AC97!T
M*&YO9&5L:7-T*0T*#0H@(&1E9B!SnT92AS96QF+"!N;V1E;&ES="DZ#0H@
M(" @(R!S:6UP;&5?<W1M="!\($Y%5TQ)3D4@24Y$14Y4($Y%5TQ)3D4J("AS
M=&UT($Y%5TQ)3D4J*2L@1$5$14Y4#0H@(" @:68@;&5N*&YO9&5L:7-T*2 ]
M/2 Q.@T*(" @(" @<F5T=7)N('-E;&8N8V]M7W-T;70H;F]D96QI<W1;,%TI
M#0H-"B @("!S=&UT<R ](%L@70T*(" @(&9O<B!N;V1E(&EN(&YO9&5L:7-T
M.@T*(" @(" @:68@;F]D95LP72 ]/2!S>6UB;VPN<W1M=#H-"B @(" @(" @
M<V5L9BYC;VU?87!P96YD7W-T;70H<W1M=',L(&YO9&4I#0H@(" @<F5T=7)N
M($YO9&4H)W-T;70G+"!S=&UT<RD-"@T*(" C("TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M#0H@(",-"B @(R!%6%!215-324].($Y/1$53(" H:6YV;VME9"!B>2!C;VU?
M;F]D92@I*0T*(" C#0H-"B @9&5F('1E<W1L:7-T*'-E;&8L(&YO9&5L:7-T
M*3H-"B @(" C('1E<W1L:7-T.B!E>'!R("@G+"<@97AP<BDJ(%LG+"==#0H@
M(" @(R!E>'!R;&ES=#H@97AP<B H)RPG(&5X<'(I*B!;)RPG70T*(" @(')E
M='5R;B!S96QF+F-O;5]B:6YA<GDH)W1U<&QE)RP@;F]D96QI<W0I#0H-"B @
M97AP<FQI<W0@/2!T97-T;&ES= T*#0H@(&1E9B!T97-T*'-E;&8L(&YO9&5L
M:7-T*3H-"B @(" C(&%N9%]T97-T("@G;W(G(&%N9%]T97-T*2H@?"!L86UB
M9&5F#0H@(" @:68@;&5N*&YO9&5L:7-T*2 ]/2 Q(&%N9"!N;V1E;&ES=%LP
M75LP72 ]/2!S>6UB;VPN;&%M8F1E9CH-"B @(" @(')E='5R;B!S96QF+FQA
M;6)D968H;F]D96QI<W1;,%TI#0H@(" @<F5T=7)N('-E;&8N8V]M7V)I;F%R
M>2@G;W(G+"!N;V1E;&ES="D-"@T*("!D968@86YD7W1E<W0H<V5L9BP@;F]D
M96QI<W0I.@T*(" @(",@;F]T7W1E<W0@*"=A;F0G(&YO=%]T97-T*2H-"B @
M("!R971U<FX@<V5L9BYC;VU?8FEN87)Y*"=A;F0G+"!N;V1E;&ES="D-"@T*
M("!D968@;F]T7W1E<W0H<V5L9BP@;F]D96QI<W0I.@T*(" @(",@)VYO="<@
M;F]T7W1E<W0@?"!C;VUP87)I<V]N#0H@(" @<F5S=6QT(#T@<V5L9BYC;VU?
M;F]D92AN;V1E;&ES=%LM,5TI#0H@(" @:68@;&5N*&YO9&5L:7-T*2 ]/2 R
M.@T*(" @(" @;B ]($YO9&4H)VYO="<L(')E<W5L="D-"B @(" @(&XN;&EN
M96YO(#T@;F]D96QI<W1;,%U;,ET-"B @(" @(')E='5R;B!N#0H@(" @<F5T
M=7)N(')E<W5L= T*#0H@(&1E9B!C;VUP87)I<V]N*'-E;&8L(&YO9&5L:7-T
M*3H-"@DC(&-O;7!A<FES;VXZ(&5X<'(@*&-O;7!?;W @97AP<BDJ#0H);F]D
M92 ]('-E;&8N8V]M7VYO9&4H;F]D96QI<W1;,%TI#0H):68@;&5N*&YO9&5L
M:7-T*2 ]/2 Q.@T*"2 @<F5T=7)N(&YO9&4-"@T*"7)E<W5L=',@/2!;(%T-
M"@EF;W(@:2!I;B!R86YG92@R+"!L96XH;F]D96QI<W0I+" R*3H-"@D@(&YL
M(#T@;F]D96QI<W1;:2TQ70T*#0H)(" C(&-O;7!?;W Z("<\)R!\("<^)R!\
M("<])R!\("<^/2<@?" G/#TG('P@)SP^)R!\("<A/2<@?" G/3TG#0H)(" C
M"0D)('P@)VEN)R!\("=N;W0G("=I;B<@?" G:7,G('P@)VES)R!N;W0G("HO
M#0H)("!N(#T@;FQ;,5T-"@D@(&EF(&Y;,%T@/3T@=&]K96XN3D%-13H-"@D)
M='EP92 ](&Y;,5T-"@D):68@;&5N*&YL*2 ]/2 S.@T*"0D@(&EF('1Y<&4@
M/3T@)VYO="<Z#0H)"0ET>7!E(#T@)VYO=&EN)PT*"0D@(&5L<V4Z#0H)"0ET
M>7!E(#T@)VES;F]T)PT*"2 @96QS93H-"@D)='EP92 ](%]C;7!?='EP97-;
M;ELP75T-"@T*"2 @;&EN96YO(#T@;FQ;,5U;,ET-"@D@(')E<W5L=',N87!P
M96YD*"AT>7!E+"!S96QF+F-O;5]N;V1E*&YO9&5L:7-T6VE=*2D@*0T*#0H)
M(R!W92!N965D(&$@<W!E8VEA;" B8V]M<&%R92(@;F]D92!S;R!T:&%T('=E
M(&-A;B!D:7-T:6YGnS: T*"2,),R \('@@/" U"69R;VT)*#,@/"!X*2 \
M(#4-"@DC('1H92!T=V\@:&%V92!V97)Y(&1I9F9E<F5N="!S96UA;G1I8W,@
M86YD(')E<W5L=',@*&YO=&4@=&AA="!T:&4-"@DC(&QA='1E<B!F;W)M(&ES
M(&%L=V%Y<R!T<G5E*0T*#0H@(" @(" @(&X@/2!.;V1E*"=C;VUP87)E)RP@
M;F]D92P@<F5S=6QT<RD-"B @(" @(" @;BYL:6YE;F\@/2!L:6YE;F\-"B @
M(" @(" @<F5T=7)N(&X-"@T*("!D968@97AP<BAS96QF+"!N;V1E;&ES="DZ
M#0H@(" @(R!X;W)?97AP<B H)WPG('AO<E]E>'!R*2H-"B @("!R971U<FX@
M<V5L9BYC;VU?8FEN87)Y*"=B:71O<B<L(&YO9&5L:7-T*0T*#0H@(&1E9B!X
M;W)?97AP<BAS96QF+"!N;V1E;&ES="DZ#0H@(" @(R!X;W)?97AP<B H)UXG
M('AO<E]E>'!R*2H-"B @("!R971U<FX@<V5L9BYC;VU?8FEN87)Y*"=B:71X
M;W(G+"!N;V1E;&ES="D-"@T*("!D968@86YD7V5X<'(H<V5L9BP@;F]D96QI
M<W0I.@T*(" @(",@>&]R7V5X<'(@*"<F)R!X;W)?97AP<BDJ#0H@(" @<F5T
M=7)N('-E;&8N8V]M7V)I;F%R>2@G8FET86YD)RP@;F]D96QI<W0I#0H-"B @
M9&5F('-H:69T7V5X<'(H<V5L9BP@;F]D96QI<W0I.@T*(" @(",@<VAI9G1?
M97AP<B H)SP\)WPG/CXG('-H:69T7V5X<'(I*@T*(" @(&YO9&4@/2!S96QF
M+F-O;5]N;V1E*&YO9&5L:7-T6S!=*0T*(" @(&9O<B!I(&EN(')A;F=E*#(L
M(&QE;BAN;V1E;&ES="DL(#(I.@T*(" @(" @<FEG:'0@/2!S96QF+F-O;5]N
M;V1E*&YO9&5L:7-T6VE=*0T*(" @(" @:68@;F]D96QI<W1;:2TQ75LP72 ]
M/2!T;VME;BY,14944TA)1E0Z#0H@(" @(" @(&YO9&4@/2!.;V1E*"<\/"<L
M(%MN;V1E+"!R:6=H=%TI#0H@(" @(" @(&YO9&4N;&EN96YO(#T@;F]D96QI
M<W1;,5U;,ET-"B @(" @(&5L<V4Z#0H@(" @(" @(&YO9&4@/2!.;V1E*"<^
M/B<L(%MN;V1E+"!R:6=H=%TI#0H@(" @(" @(&YO9&4N;&EN96YO(#T@;F]D
M96QI<W1;,5U;,ET-"B @("!R971U<FX@;F]D90T*#0H@(&1E9B!A<FET:%]E
M>'!R*'-E;&8L(&YO9&5L:7-T*3H-"B @("!N;V1E(#T@<V5L9BYC;VU?;F]D
M92AN;V1E;&ES=%LP72D-"B @("!F;W(@:2!I;B!R86YG92@R+"!L96XH;F]D
M96QI<W0I+" R*3H-"B @(" @(')I9VAT(#T@<V5L9BYC;VU?;F]D92AN;V1E
M;&ES=%MI72D-"B @(" @(&EF(&YO9&5L:7-T6VDM,5U;,%T@/3T@=&]K96XN
M4$Q54SH-"B @(" @(" @;F]D92 ]($YO9&4H)RLG+"!;;F]D92P@<FEG:'1M*0T*(" @(" @("!N;V1E+FQI;F5N;R ](&YO9&5L:7-T6S%=6S)=#0H@(" @
M("!E;'-E.@T*(" @(" @("!N;V1E(#T@3F]D92@G+2<L(%MN;V1E+"!R:6=H
M=%TI#0H@(" @(" @(&YO9&4N;&EN96YO(#T@;F]D96QI<W1;,5U;,ET-"B @
M("!R971U<FX@;F]D90T*#0H@(&1E9B!T97)M*'-E;&8L(&YO9&5L:7-T*3H-
M"B @("!N;V1E(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LP72D-"B @("!F
M;W(@:2!I;B!R86YG92@R+"!L96XH;F]D96QI<W0I+" R*3H-"B @(" @(')I
M9VAT(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%MI72D-"B @(" @(&EF(&YO
M9&5L:7-T6VDM,5U;,%T@/3T@=&]K96XN4U1!4CH-"B @(" @(" @;F]D92 ]
M($YO9&4H)RHG+"!;;F]D92P@<FEG:'1=*0T*(" @(" @("!N;V1E+FQI;F5N
M;R ](&YO9&5L:7-T6S%=6S)=#0H@(" @("!E;&EF(&YO9&5L:7-T6VDM,5U;
M,%T@/3T@=&]K96XN4TQ!4T@Z#0H@(" @(" @(&YO9&4@/2!.;V1E*"<O)RP@
M6VYO9&4L(')I9VAT72D-"B @(" @(" @;F]D92YL:6YE;F\@/2!N;V1E;&ES
M=%LQ75LR70T*(" @(" @96QS93H-"B @(" @(" @;F]D92 ]($YO9&4H)R4G
M+"!;;F]D92P@<FEG:'1=*0T*(" @(" @("!N;V1E+FQI;F5N;R ](&YO9&5L
M:7-T6S%=6S)=#0H@(" @<F5T=7)N(&YO9&4-"@T*("!D968@9F%C=&]R*'-E
M;&8L(&YO9&5L:7-T*3H-"B @("!T(#T@;F]D96QI<W1;,%U;,%T-"B @("!N
M;V1E(#T@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LM,5TI#0H@(" @:68@=" ]
M/2!T;VME;BY03%53.@T*(" @(" @;F]D92 ]($YO9&4H)W5N87)Y*R<L(&YO
M9&4I#0H@(" @("!N;V1E+FQI;F5N;R ](&YO9&5L:7-T6S!=6S)=#0H@(" @
M:68@=" ]/2!T;VME;BY-24Y54SH-"B @(" @(&YO9&4@/2!.;V1E*"=U;F%R
M>2TG+"!N;V1E*0T*(" @(" @;F]D92YL:6YE;F\@/2!N;V1E;&ES=%LP75LR
M70T*(" @(&EF('0@/3T@=&]K96XN5$E,1$4Z#0H@(" @("!N;V1E(#T@3F]D
M92@G:6YV97)T)RP@;F]D92D-"B @(" @(&YO9&4N;&EN96YO(#T@;F]D96QI
M<W1;,%U;,ET-"B @("!R971U<FX@;F]D90T*#0H@(&1E9B!P;W=E<BAS96QF
M+"!N;V1E;&ES="DZ#0H@(" @(R!P;W=E<CH@871O;2!T<F%I;&5R*B H)RHJ
M)R!F86-T;W(I*@T*(" @(&YO9&4@/2!S96QF+F-O;5]N;V1E*&YO9&5L:7-T
M6S!=*0T*(" @(&9O<B!I(&EN(')A;F=E*#$L(&QE;BAN;V1E;&ES="DI.@T*
M(" @(" @:68@;F]D96QI<W1;:5U;,%T@/3T@=&]K96XN1$]50DQ%4U1!4CH-
M"B @(" @(" @;B ]($YO9&4H)W!O=V5R)RP@6VYO9&4L('-E;&8N8V]M7VYO
M9&4H;F]D96QI<W1;:2LQ72E=*0T*(" @(" @("!N+FQI;F5N;R ](&YO9&5L
M:7-T6VE=6S)=#0H@(" @(" @(')E='5R;B!N#0H@(" @(" -"B @(" @(&YO
M9&4@/2!S96QF+F-O;5]A<'!L>5]T<F%I;&5R*&YO9&4L(&YO9&5L:7-T6VEM*0T*#0H@(" @<F5T=7)N(&YO9&4-"@T*("!D968@871O;2AS96QF+"!N;V1E
M;&ES="DZ#0H@(" @=" ](&YO9&5L:7-T6S!=6S!=#0H@(" @:68@=" ]/2!T
M;VME;BY,4$%2.@T*(" @(" @:68@;F]D96QI<W1;,5U;,%T@/3T@=&]K96XN
M4E!!4CH-"B @(" @(" @;B ]($YO9&4H)V-O;G-T)RP@*"DI#0H@(" @(" @
M(&XN;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-"B @(" @(" @<F5T=7)N(&X-
M"B @(" @(')E='5R;B!S96QF+F-O;5]N;V1E*&YO9&5L:7-T6S%=*0T*#0H@
M(" @:68@=" ]/2!T;VME;BY,4U%".@T*(" @(" @:68@;F]D96QI<W1;,5U;
M,%T@/3T@=&]K96XN4E-10CH-"B @(" @(" @;B ]($YO9&4H)V-O;G-T)RP@
M6R!=*0T*(" @(" @("!N+FQI;F5N;R ](&YO9&5L:7-T6S!=6S)=#0H@(" @
M(" @(')E='5R;B!N#0H@(" @("!R971U<FX@<V5L9BYC;VU?;&ES=%]C;VYS
M=')U8W1O<BAN;V1E;&ES=%LQ72D-"@T*(" @(&EF('0@/3T@=&]K96XN3$)2
M04-%.@T*(" @(" @:68@;F]D96QI<W1;,5U;,%T@/3T@=&]K96XN4D)204-%
M.@T*(" @(" @("!R971U<FX@3F]D92@G8V]N<W0G+"![('TI#0H@(" @("!R
M971U<FX@<V5L9BYC;VU?9&EC=&UA:V5R*&YO9&5L:7-T6S%=*0T*#0H@(" @
M:68@=" ]/2!T;VME;BY"04-+455/5$4Z#0H@(" @("!N(#T@3F]D92@G8F%C
M:W%U;W1E)RP@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LQ72DI#0H@(" @("!N
M+FQI;F5N;R ](&YO9&5L:7-T6S!=6S)=#0H@(" @("!R971U<FX@;@T*(" @
M( T*(" @(&EF('0@/3T@=&]K96XN3E5-0D52.@T*(" @(" @(R,C(&YE960@
M=&\@õR:69Y('1H:7,@;6%T8VAE<R!C;VUP:6QE+F,-"B @(" @(&L@/2!E
M=F%L*&YO9&5L:7-T6S!=6S%=*0T*(" @(" @;B ]($YO9&4H)V-O;G-T)RP@
M:RD-"B @(" @(&XN;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-"B @(" @(')E
M='5R;B!N#0H@( T*(" @(&EF('0@/3T@=&]K96XN4U1224Y'.@T*(" @(" @
M(R,C(&YE960@=&\@õR:69Y('1H:7,@;6%T8VAE<R!C;VUP:6QE+F,-"B @
M(" @(&L@/2 G)PT*(" @(" @9F]R(&YO9&4@:6X@;F]D96QI<W0Z#0H@(" @
M(" @(&L@/2!K("L@979A;"AN;V1E6S%=*0T*(" @(" @;B ]($YO9&4H)V-O
M;G-T)RP@:RD-"B @(" @(&XN;&EN96YO(#T@;F]D96QI<W1;,%U;,ET-"B @
M(" @(')E='5R;B!N#0H-"B @("!I9B!T(#T]('1O:V5N+DY!344Z#0H@(" @
M(" C(R,@86YY('!R;V-E<W-I;F<@=&\@9&\_#0H@(" @("!N(#T@3F]D92@G
M;F%M92<L(&YO9&5L:7-T6S!=6S%=*0T*(" @(" @;BYL:6YE;F\@/2!N;V1E
M;&ES=%LP75LR70T*(" @(" @<F5T=7)N(&X-"@T*(" @(')A:7-E(&5R<F]R
M+" B=6YK;F]W;B!N;V1E('1Y<&4B#0H-"B @(R M+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+0T*(" C#0H@(",@24Y415).04P@4$%24TE.1R!55$E,251)15,-"B @(PT*
M#0H@(&1E9B!C;VU?;F]D92AS96QF+"!N;V1E*3H-"B @(" C($YO=&4Z(&-O
M;7!I;&4N8R!H87,@:&%N9&QI;F<@:6X@8V]M7VYO9&4@9F]R(&1E;%]S=&UT
M+"!P87-S7W-T;70L#0H@(" @(PD)8G)E86M?<W1M="P@<W1M="P@<VUA;&Q?
M<W1M="P@9FQO=U]S=&UT+"!S:6UP;&5?<W1M="P-"B @(" C"0EA;F0@8V]M
M<&]U;F1?<W1M="X)5V4G;&P@:G5S="!D:7-P871C:"!T:&5M+@T*#0H@(" @
M(PT*(" @(",@02 G.R<@870@=&AE(&5N9"!O9B!A(&QI;F4@8V%N(&UA:V4@
M82!.15=,24Y%('1O:V5N(&%P<&5A<B!H97)E+ T*(" @(",@4F5N9&5R(&ET
M(&AA<FUL97-S+B H9V5N8R!D:7-C87)D<R H)V1I<V-A<F0G+" H)V-O;G-T
M)RP@>'AX>"DI($YO9&5S*0T*(" @(",@#0H@(" @:68@;F]D95LP72 ]/2!T
M;VME;BY.15=,24Y%.@T*(" @(" @<F5T=7)N($YO9&4H)V1I<V-A<F0G+"!.
M;V1E*"=C;VYS="<L($YO;F4I*0T*(" @( T*(" @(&EF(&YO9&5;,%T@;F]T
M(&EN(%]L96=A;%]N;V1E7W1Y<&5S.@T*(" @(" @<F%I<V4@97)R;W(L("=I
M;&QE9V%L(&YO9&4@<&%S<V5D('1O(&-O;5]N;V1E.B E<R<@)2!N;V1E6S!M#0H@(" @#0H@(" @<F5T=7)N('-E;&8N7V1I<W!A=&-H6VYO9&5;,%U=*&YO
M9&5;,3I=*0T*#0H@(&1E9B!C;VU?87)G;&ES="AS96QF+"!N;V1E;&ES="DZ
M#0H@(" @(R!V87)A<F=S;&ES=#H-"B @(" C"2AF<&1E9B!;)STG('1E<W1M("<L)RDJ("@G*B<@3D%-12!;)RPG("@G*BHG?"<J)R G*B<I($Y!345=#0H@
M(" @(R @?"!F<&1E9B!;)STG('1E<W1=("@G+"<@9G!D968@6R<])R!T97-T
M72DJ(%LG+"==#0H@(" @(R @?" H)RHJ)WPG*B<@)RHG*2!.04U%*0T*(" @
M(",@9G!D968Z($Y!344@?" G*"<@9G!L:7-T("<I)PT*(" @(",@9G!L:7-T
M.B!F<&1E9B H)RPG(&9P9&5F*2H@6R<L)UT-"B @("!N86UE<R ](%L@70T*
M(" @(&1E9F%U;'1S(#T@6R!=#0H@(" @9FQA9W,@/2 P#0H-"B @("!I(#T@
M, T*(" @('=H:6QE(&D@/"!L96XH;F]D96QI<W0I.@T*(" @(" @;F]D92 ]
M(&YO9&5L:7-T6VE=#0H@(" @("!I9B!N;V1E6S!=(#T]('1O:V5N+E-405(@
M;W(@;F]D95LP72 ]/2!T;VME;BY$3U5"3$535$%2.@T*(" @(" @("!I9B!N
M;V1E6S!=(#T]('1O:V5N+E-405(Z#0H@(" @(" @(" @;F]D92 ](&YO9&5L
M:7-T6VDK,5T-"B @(" @(" @("!I9B!N;V1E6S!=(#T]('1O:V5N+DY!344Z
M#0H@(" @(" @(" @("!N86UE<RYA<'!E;F0H;F]D95LQ72D-"B @(" @(" @
M(" @(&9L86=S(#T@9FQA9W,@?"!#3U]605)!4D=3#0H@(" @(" @(" @("!I
M(#T@:2 K(#,-"@T*(" @(" @("!I9B!I(#P@;&5N*&YO9&5L:7-T*3H-"B @
M(" @(" @(" C('-H;W5L9"!B92!$3U5"3$535$%2(&]R(%-405(@4U1!4@T*
M(" @(" @(" @(&EF(&YO9&5L:7-T6VE=6S!=(#T]('1O:V5N+D1/54),15-4
M05(Z#0H@(" @(" @(" @("!N;V1E(#T@;F]D96QI<W1;:2LQ70T*(" @(" @
M(" @(&5L<V4Z#0H@(" @(" @(" @("!N;V1E(#T@;F]D96QI<W1;:2LR70T*
M(" @(" @(" @(&YA;65S+F%P<&5N9"AN;V1E6S%=*0T*(" @(" @(" @(&9L
M86=S(#T@9FQA9W,@?"!#3U]605)+15E73U)$4PT*#0H@(" @(" @(&)R96%K
M#0H-"B @(" @(",@9G!D968Z($Y!344@?" G*"<@9G!L:7-T("<I)PT*(" @
M(" @;F%M97,N87!P96YD*'-E;&8N8V]M7V9P9&5F*&YO9&4I*0T*#0H@(" @
M("!I(#T@:2 K(#$-"B @(" @(&EF(&D@/CT@;&5N*&YO9&5L:7-T*3H-"B @
M(" @(" @8G)E86L-"@T*(" @(" @:68@;F]D96QI<W1;:5U;,%T@/3T@=&]K
M96XN15%504PZ#0H@(" @(" @(&1E9F%U;'1S+F%P<&5N9"AS96QF+F-O;5]N
M;V1E*&YO9&5L:7-T6VD@*R Q72DI#0H@(" @(" @(&D@/2!I("L@,@T*(" @
M(" @96QI9B!L96XH9&5F875L=',I.@T*(" @(" @(" C(%1R96%T("(H83TQ
M+"!B*2(@87,@(BAA/3$L(&(]3F]N92DB#0H@(" @(" @(&1E9F%U;'1S+F%P
M<&5N9"A.;V1E*"=C;VYS="<L($YO;F4I*0T*#0H@(" @("!I(#T@:2 K(#$-
M"@T*(" @(')E='5R;B!N86UE<RP@9&5F875L=',L(&9L86=S#0H-"B @9&5F
M(&-O;5]F<&1E9BAS96QF+"!N;V1E*3H-"B @(" C(&9P9&5F.B!.04U%('P@
M)R@G(&9P;&ES=" G*2<-"B @("!I9B!N;V1E6S%=6S!=(#T]('1O:V5N+DQ0
M05(Z#0H@(" @("!R971U<FX@<V5L9BYC;VU?9G!L:7-T*&YO9&5;,ETI#0H@
M(" @<F5T=7)N(&YO9&5;,5U;,5T-"@T*("!D968@8V]M7V9P;&ES="AS96QF
M+"!N;V1E*3H-"B @(" C(&9P;&ES=#H@9G!D968@*"<L)R!F<&1E9BDJ(%LG
M+"==( T*(" @(&EF(&QE;BAN;V1E*2 ]/2 R.@T*(" @(" @<F5T=7)N('-E
M;&8N8V]M7V9P9&5F*&YO9&5;,5TI#0H@(" @;&ES=" ](%L@70T*(" @(&9O
M<B!I(&EN(')A;F=E*#$L(&QE;BAN;V1E*2P@,BDZ#0H@(" @("!L:7-T+F%P
M<&5N9"AS96QF+F-O;5]F<&1E9BAN;V1E6VE=*2D-"B @("!R971U<FX@='5P
M;&4H;&ES="D-"@T*("!D968@8V]M7V1O='1E9%]N86UE*'-E;&8L(&YO9&4I
M.@T*(" @(",@4W1R:6YG('1O9V5T:&5R('1H92!D;W1T960@;F%M97,@86YD
M(')E='5R;B!T:&4@<W1R:6YG#0H@(" @;F%M92 ]("(B#0H@(" @9F]R(&X@
M:6X@;F]D93H-"B @(" @(&EF('1Y<&4H;BD@/3T@='EP92@H*2D@86YD(&Y;
M,%T@/3T@,3H-"B @(" @(" @;F%M92 ](&YA;64@*R!N6S%=("L@)RXG#0H@
M(" @<F5T=7)N(&YA;65;.BTQ70T*#0H@(&1E9B!C;VU?8F%S97,H<V5L9BP@
M;F]D92DZ#0H@(" @8F%S97,@/2!;(%T-"B @("!F;W(@:2!I;B!R86YG92@Q
M+"!L96XH;F]D92DL(#(I.@T*(" @(" @8F%S97,N87!P96YD*'-E;&8N8V]M
M7VYO9&4H;F]D95MI72DI#0H@(" @<F5T=7)N(&)A<V5S#0H-"B @9&5F(&-O
M;5]T<GE?9FEN86QL>2AS96QF+"!N;V1E;&ES="DZ#0H@(" @(R!T<GE?9FEN
M7W-T;70Z(")T<GDB("(Z(B!SnT92 B9FEN86QL>2(@(CHB('-U:71E#0H@
M(" @;B ]($YO9&4H)W1R>69I;F%L;'DG+"!S96QF+F-O;5]N;V1E*&YO9&5L
M:7-T6S)=*2P@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%LU72DI#0H@(" @;BYL
M:6YE;F\@/2!N;V1E;&ES=%LP75LR70T*(" @(')E='5R;B!N#0H-"B @9&5F
M(&-O;5]T<GE?97AC97!T*'-E;&8L(&YO9&5L:7-T*3H-"B @(" C('1R>5]E
M>&-E<'0Z("=T<GDG("<Z)R!SnT92 H97AC97!T7V-L875S92 G.B<@<W5I
M=&4I*B!;)V5L<V4G('-U:71E70T*(" @("-T<GEE>&-E<'0Z"2!;5')Y3F]D
M92P@6V5X8V5P=%]C;&%U<V5S72P@96QS94YO9&4I70T*(" @('-T;70@/2!S
M96QF+F-O;5]N;V1E*&YO9&5L:7-T6S)=*0T*(" @(&-L875S97,@/2!;70T*
M(" @(&5L<V5.;V1E(#T@3F]N90T*(" @(&9O<B!I(&EN(')A;F=E*#,L(&QE
M;BAN;V1E;&ES="DL(#,I.@T*(" @(" @;F]D92 ](&YO9&5L:7-T6VE=#0H@
M(" @("!I9B!N;V1E6S!=(#T]('-Y;6)O;"YE>&-E<'1?8VQA=7-E.@T*(" @
M(" @(" C(&5X8V5P=%]C;&%U<V4Z("=E>&-E<'0G(%ME>'!R(%LG+"<@97AP
M<EU=("HO#0H@(" @(" @(&EF(&QE;BAN;V1E*2 ^(#(Z#0H@(" @(" @(" @
M97AP<C$@/2!S96QF+F-O;5]N;V1E*&YO9&5;,ETI#0H@(" @(" @(" @:68@
M;&5N*&YO9&4I(#X@-#H-"B @(" @(" @(" @(&5X<'(R(#T@<V5L9BYC;VU?
M87-S:6=N*&YO9&5;-%TL($]07T%34TE'3BD-"B @(" @(" @("!E;'-E.@T*
M(" @(" @(" @(" @97AP<C(@/2!.;VYE#0H@(" @(" @(&5L<V4Z#0H@(" @
M(" @(" @97AP<C$@/2!E>'!R,B ]($YO;F4-"B @(" @(" @8VQA=7-E<RYA
M<'!E;F0H*&5X<'(Q+"!E>'!R,BP@<V5L9BYC;VU?;F]D92AN;V1E;&ES=%MI
M*S)=*2DI#0H-"B @(" @(&EF(&YO9&5;,%T@/3T@=&]K96XN3D%-13H-"B @
M(" @(" @96QS94YO9&4@/2!S96QF+F-O;5]N;V1E*&YO9&5L:7-T6VDK,ETI
M#0H@(" @;B ]($YO9&4H)W1R>65X8V5P="<L('-E;&8N8V]M7VYO9&4H;F]D
M96QI<W1;,ETI+"!C;&%U<V5S+"!E;'-E3F]D92D-"B @("!N+FQI;F5N;R ]
M(&YO9&5L:7-T6S!=6S)=#0H@(" @<F5T=7)N(&X-"@T*("!D968@8V]M7V%S
M<VEG;BAS96QF+"!N;V1E+"!A<W-I9VYI;F<I.@T*(" @(",@<F5T=7)N(&$@
M;F]D92!SnT86)L92!F;W(@=7-E(&%S(&%N(")L=F%LdB#0H@(" @(R!L
M;V]P('1O(&%V;VED('1R:79I86P@<F5C=7)S:6]N#0H@(" @=VAI;&4@,3H-
M"B @(" @('0@/2!N;V1E6S!=#0H@(" @("!I9B!T(#T]('-Y;6)O;"YE>'!R
M;&ES="!O<B!T(#T]('-Y;6)O;"YT97-T;&ES=#H-"B @(" @(" @:68@;&5N
M*&YO9&4I(#X@,CH-"B @(" @(" @("!R971U<FX@<V5L9BYC;VU?87-S:6=N
M7W1U<&QE*&YO9&4L(&%S<VEG;FEN9RD-"B @(" @(" @;F]D92 ](&YO9&5;
M,5T-"B @(" @(&5L:68@="!I;B!?87-S:6=N7W1Y<&5S.@T*(" @(" @("!I
M9B!L96XH;F]D92D@/B R.@T*(" @(" @(" @(')A:7-E(%-Y;G1A>$5R<F]R
M+" B8V%N)W0@87-S:6=N('1O(&]P97)A=&]R(@T*(" @(" @("!N;V1E(#T@
M;F]D95LQ70T*(" @(" @96QI9B!T(#T]('-Y;6)O;"YP;W=E<CH-"B @(" @
M(" @:68@;F]D95LQ75LP72 A/2!S>6UB;VPN871O;3H-"B @(" @(" @("!R
M86ES92!3>6YT87A%<G)O<BP@(F-A;B=T(&%S<VEG;B!T;R!O<&5R871O<B(-
M"B @(" @(" @:68@;&5N*&YO9&4I(#X@,CH-"B @(" @(" @("!P<FEM87)Y
M(#T@<V5L9BYC;VU?;F]D92AN;V1E6S%=*0T*(" @(" @(" @(&9O<B!I(&EN
M(')A;F=E*#(L(&QE;BAN;V1E*2TQ*3H-"B @(" @(" @(" @(&-H(#T@;F]D
M95MI70T*(" @(" @(" @(" @:68@8VA;,%T@/3T@=&]K96XN1$]50DQ%4U1!
M4CH-"B @(" @(" @(" @(" @<F%I<V4@4WEN=&%X17)R;W(L(")C86XG="!A
M<W-I9VX@=&\@;W!E<F%T;W(B#0H@(" @(" @(" @("!P<FEM87)Y(#T@<V5L
M9BYC;VU?87!P;'E?=')A:6QE<BAP<FEM87)Y+"!C:"D-"B @(" @(" @("!R
M971U<FX@<V5L9BYC;VU?87-S:6=N7W1R86EL97(H<')I;6%R>2P@;F]D95LM
M,5TL(&%S<VEG;FEN9RD-"B @(" @(" @;F]D92 ](&YO9&5;,5T-"B @(" @
M(&5L:68@=" ]/2!S>6UB;VPN871O;3H-"B @(" @(" @=" ](&YO9&5;,5U;
M,%T-"B @(" @(" @:68@=" ]/2!T;VME;BY,4$%2.@T*(" @(" @(" @(&YO
M9&4@/2!N;V1E6S)=#0H@(" @(" @(" @:68@;F]D95LP72 ]/2!T;VME;BY2
M4$%2.@T*(" @(" @(" @(" @<F%I<V4@4WEN=&%X17)R;W(L(")C86XG="!A
M<W-I9VX@=&\@*"DB#0H@(" @(" @(&5L:68@=" ]/2!T;VME;BY,4U%".@T*
M(" @(" @(" @(&YO9&4@/2!N;V1E6S)=#0H@(" @(" @(" @:68@;F]D95LP
M72 ]/2!T;VME;BY24U%".@T*(" @(" @(" @(" @<F%I<V4@4WEN=&%X17)R
M;W(L(")C86XG="!A<W-I9VX@=&\@6UTB#0H@(" @(" @(" @<F5T=7)N('-E
M;&8N8V]M7V%S<VEG;E]L:7-T*&YO9&4L(&%S<VEG;FEN9RD-"B @(" @(" @
M96QI9B!T(#T]('1O:V5N+DY!344Z#0H@(" @(" @(" @<F5T=7)N('-E;&8N
M8V]M7V%S<VEG;E]N86UE*&YO9&5;,5TL(&%S<VEG;FEN9RD-"B @(" @(" @
M96QS93H-"B @(" @(" @("!R86ES92!3>6YT87A%<G)O<BP@(F-A;B=T(&%S
M<VEG;B!T;R!L:71E<F%L(@T*(" @(" @96QS93H-"B @(" @(" @<F%I<V4@
M4WEN=&%X17)R;W(L(")B860@87-S:6=N;65N="(-"@T*("!D968@8V]M7V%S
M<VEG;E]T=7!L92AS96QF+"!N;V1E+"!A<W-I9VYI;F<I.@T*(" @(&%S<VEG
M;G,@/2!;(%T-"B @("!F;W(@:2!I;B!R86YG92@Q+"!L96XH;F]D92DL(#(I
M.@T*(" @(" @87-S:6=N<RYA<'!E;F0H<V5L9BYC;VU?87-S:6=N*&YO9&5;
M:5TL(&%S<VEG;FEN9RDI#0H@(" @<F5T=7)N($YO9&4H)V%S<U]T=7!L92<L
M(&%S<VEG;G,I#0H-"B @9&5F(&-O;5]A<W-I9VY?;&ES="AS96QF+"!N;V1E
M+"!A<W-I9VYI;F<I.@T*(" @(&%S<VEG;G,@/2!;(%T-"B @("!F;W(@:2!I
M;B!R86YG92@Q+"!L96XH;F]D92DL(#(I.@T*(" @(" @87-S:6=N<RYA<'!E
M;F0H<V5L9BYC;VU?87-S:6=N*&YO9&5;:5TL(&%S<VEG;FEN9RDI#0H@(" @
M<F5T=7)N($YO9&4H)V%S<U]L:7-T)RP@87-S:6=N<RD-"@T*("!D968@8V]M
M7V%S<VEG;E]N86UE*'-E;&8L(&YO9&4L(&%S<VEG;FEN9RDZ#0H@(" @<F5T
M=7)N($YO9&4H)V%S<U]N86UE)RP@;F]D95LQ72P@87-S:6=N:6YG*0T*#0H@
M(&1E9B!C;VU?87-S:6=N7W1R86EL97(H<V5L9BP@<')I;6%R>2P@;F]D92P@
M87-S:6=N:6YG*3H-"B @("!T(#T@;F]D95LQ75LP70T*(" @(&EF('0@/3T@
M=&]K96XN3%!!4CH-"B @(" @(')A:7-E(%-Y;G1A>$5R<F]R+" B8V%N)W0@
M87-S:6=N('1O(&9U;F-T:6]N(&-A;&PB#0H@(" @:68@=" ]/2!T;VME;BY$
M3U0Z#0H@(" @("!R971U<FX@<V5L9BYC;VU?87-S:6=N7V%T='(H<')I;6%R
M>2P@;F]D95LR72P@87-S:6=N:6YG*0T*(" @(&EF('0@/3T@=&]K96XN3%-1
M0CH-"B @(" @(')E='5R;B!S96QF+F-O;5]S=6)S8W)I<'1L:7-T*'!R:6UA
M<GDL(&YO9&5;,ETL(&%S<VEG;FEN9RD-"B @("!R86ES92!3>6YT87A%<G)O
M<BP@(G5N:VYO=VX@=')A:6QE<B!T>7!E.B E<R(@)2!T#0H-"B @9&5F(&-O
M;5]A<W-I9VY?871T<BAS96QF+"!P<FEM87)Y+"!N;V1E+"!A<W-I9VYI;F<I
M.@T*(" @(')E='5R;B!.;V1E*"=A<W-?871T<B<L('!R:6UA<GDL(&YO9&5;
M,5TL(&%S<VEG;FEN9RD-"@T*("!D968@8V]M7V)I;F%R>2AS96QF+"!T>7!E
M+"!N;V1E;&ES="DZ#0H@(" @(D-O;7!I;&4@)TY/1$4@*$]0($Y/1$4I*B<@
M:6YT;R H='EP92P@6R!N;V1E,2P@+BXN+"!N;V1E3B!=*2XB#0H@(" @:68@
M;&5N*&YO9&5L:7-T*2 ]/2 Q.@T*(" @(" @<F5T=7)N('-E;&8N8V]M7VYO
M9&4H;F]D96QI<W1;,%TI#0H@(" @:71E;7,@/2!;(%T-"B @("!F;W(@:2!I
M;B!R86YG92@P+"!L96XH;F]D96QI<W0I+" R*3H-"B @(" @(&ET96US+F%P
M<&5N9"AS96QF+F-O;5]N;V1E*&YO9&5L:7-T6VE=*2D-"B @("!R971U<FX@
M3F]D92AT>7!E+"!I=&5M<RD-"@T*("!D968@8V]M7W-T;70H<V5L9BP@;F]D
M92DZ#0H@(" @(W!P<FEN="YP<')I;G0H;F]D92D-"B @("!R97-U;'0@/2!S
M96QF+F-O;5]N;V1E*&YO9&4I#0H@(" @=')Y.@T*(" @(" @<F5S=6QT6S!M#0H@(" @97AC97!T.@T*(" @(" @<')I;G0@;F]D95LP70T*(" @(&EF(')E
M<W5L=%LP72 ]/2 G<W1M="<Z#0H@(" @("!R971U<FX@<F5S=6QT#0H@(" @
M<F5T=7)N($YO9&4H)W-T;70G+"!;(')E<W5L="!=*0T*#0H@(&1E9B!C;VU?
M87!P96YD7W-T;70H<V5L9BP@<W1M=',L(&YO9&4I.@T*(" @(')E<W5L=" ]
M('-E;&8N8V]M7VYO9&4H;F]D92D-"B @("!T<GDZ#0H@(" @("!R97-U;'1;
M,%T-"B @("!E>&-E<'0Z#0H@(" @("!P<FEN="!N;V1E#0H@(" @:68@<F5S
M=6QT6S!=(#T]("=S=&UT)SH-"B @(" @('-T;71S6VQE;BAS=&UT<RDZ72 ]
M(')E<W5L=%LQ70T*(" @(&5L<V4Z#0H@(" @("!S=&UT<RYA<'!E;F0H<F5S
M=6QT*0T*#0H@(&1E9B!C;VU?;&ES=%]C;VYS=')U8W1O<BAS96QF+"!N;V1E
M;&ES="DZ#0H@(" @=F%LeS(#T@6R!=#0H@(" @9F]R(&D@:6X@<F%N9V4H
M,2P@;&5N*&YO9&5L:7-T*2P@,BDZ#0H@(" @("!V86QU97,N87!P96YD*'-E
M;&8N8V]M7VYO9&4H;F]D96QI<W1;:5TI*0T*(" @(')E='5R;B!.;V1E*"=L
M:7-T)RP@=F%LeS*0T*#0H@(&1E9B!C;VU?9&EC=&UA:V5R*'-E;&8L(&YO
M9&5L:7-T*3H-"B @(" C(&1I8W1M86ME<CH@=&5S=" G.B<@=&5S=" H)RPG
M('1E<W0@)SHG('9A;'5E*2H@6R<L)UT-"B @("!I=&5M<R ](%L@70T*(" @
M(&9O<B!I(&EN(')A;F=E*#$L(&QE;BAN;V1E;&ES="DL(#0I.@T*(" @(" @
M:71E;7,N87!P96YD*"AS96QF+F-O;5]N;V1E*&YO9&5L:7-T6VE=*2P@<V5L
M9BYC;VU?;F]D92AN;V1E;&ES=%MI*S)=*2DI#0H@(" @<F5T=7)N($YO9&4H
M)V1I8W0G+"!I=&5M<RD-"@T*("!D968@8V]M7V%P<&QY7W1R86EL97(H<V5L
M9BP@<')I;6%R>4YO9&4L(&YO9&5L:7-T*3H-"B @("!T(#T@;F]D96QI<W1;
M,5U;,%T-"B @("!I9B!T(#T]('1O:V5N+DQ005(Z#0H@(" @("!R971U<FX@
M<V5L9BYC;VU?8V%L;%]F=6YC=&EO;BAP<FEM87)Y3F]D92P@;F]D96QI<W1;
M,ETI#0H@(" @:68@=" ]/2!T;VME;BY$3U0Z#0H@(" @("!R971U<FX@<V5L
M9BYC;VU?<V5L96-T7VUE;6)E<BAP<FEM87)Y3F]D92P@;F]D96QI<W1;,ETI
M#0H@(" @:68@=" ]/2!T;VME;BY,4U%".@T*(" @(" @<F5T=7)N('-E;&8N
M8V]M7W-U8G-C<FEP=&QI<W0H<')I;6%R>4YO9&4L(&YO9&5L:7-T6S)=+"!/
M4%]!4%!,62D-"@T*(" @(')A:7-E(%-Y;G1A>$5R<F]R+" G=6YK;F]W;B!N
M;V1E('1Y<&4Z("5S)R E('0-"@T*("!D968@8V]M7W-E;&5C=%]M96UB97(H
M<V5L9BP@<')I;6%R>4YO9&4L(&YO9&5L:7-T*3H-"B @("!I9B!N;V1E;&ES
M=%LP72 A/2!T;VME;BY.04U%.@T*(" @(" @<F%I<V4@4WEN=&%X17)R;W(L
M(")M96UB97(@;75S="!B92!A(&YA;64B#0H@(" @;B ]($YO9&4H)V=E=&%T
M='(G+"!P<FEM87)Y3F]D92P@;F]D96QI<W1;,5TI#0H@(" @;BYL:6YE;F\@
M/2!N;V1E;&ES=%LR70T*(" @(')E='5R;B!N#0H-"B @9&5F(&-O;5]C86QL
M7V9U;F-T:6]N*'-E;&8L('!R:6UA<GE.;V1E+"!N;V1E;&ES="DZ#0H@(" @
M:68@;F]D96QI<W1;,%T@/3T@=&]K96XN4E!!4CH-"B @(" @(')E='5R;B!.
M;V1E*"È6QL7V9U;F,G+"!P<FEM87)Y3F]D92P@6R!=*0T*(" @(&%R9W,@
M/2!;(%T-"B @("!K=R ](# -"B @("!F;W(@:2!I;B!R86YG92@Q+"!L96XH
M;F]D96QI<W0I+" R*3H-"B @(" @(&MW+"!R97-U;'0@/2!S96QF+F-O;5]A
M<F=U;65N="AN;V1E;&ES=%MI72P@:W<I#0H@(" @("!A<F=S+F%P<&5N9"AR
M97-U;'0I#0H@(" @<F5T=7)N($YO9&4H)V-A;&Q?9G5N8R<L('!R:6UA<GE.
M;V1E+"!A<F=S*0T*#0H@(&1E9B!C;VU?87)G=6UE;G0H<V5L9BP@;F]D96QI
M<W0L(&MW*3H-"B @("!I9B!L96XH;F]D96QI<W0I(#T](#(Z#0H@(" @("!I
M9B!K=SH-"B @(" @(" @<F%I<V4@4WEN=&%X17)R;W(L(")N;VXM:V5Y=V]R
M9"!A<F<@869T97(@:V5Y=V]R9"!A<F<B#0H@(" @("!R971U<FX@,"P@<V5L
M9BYC;VU?;F]D92AN;V1E;&ES=%LQ72D-"B @("!R97-U;'0@/2!S96QF+F-O
M;5]N;V1E*&YO9&5L:7-T6S-=*0T*(" @(&X@/2!N;V1E;&ES=%LQ70T*(" @
M('=H:6QE(&QE;BAN*2 ]/2 R(&%N9"!N6S!=("$]('1O:V5N+DY!344Z#0H@
M(" @("!N(#T@;ELQ70T*(" @(&EF(&Y;,%T@(3T@=&]K96XN3D%-13H-"B @
M(" @(')A:7-E(%-Y;G1A>$5R<F]R+" B:V5Y=V]R9"!C86XG="!B92!A;B!E
M>'!R97-S:6]N("@E<RDB)6Y;,%T-"B @("!N(#T@3F]D92@G:V5Y=V]R9"<L
M(&Y;,5TL(')E<W5L="D-"B @("!N+FQI;F5N;R ](')E<W5L="YL:6YE;F\-
M"B @("!R971U<FX@,2P@;@T*#0H@(&1E9B!C;VU?<W5B<V-R:7!T;&ES="AS
M96QF+"!P<FEM87)Y+"!N;V1E;&ES="P@87-S:6=N:6YG*3H-"B @(" C('-L
M:6-I;F<Z"0D)<VEM<&QE7W-L:6-I;F<@?"!E>'1E;F1E9%]S;&EC:6YG#0H@
M(" @(R!S:6UP;&5?<VQI8VEN9SH)<')I;6%R>2 B6R(@<VAO<G1?<VQI8V4@
M(ETB#0H@(" @(R!E>'1E;F1E9%]S;&EC:6YG.B!P<FEM87)Y(");(B!S;&EC
M95]L:7-T(")=(B -"B @(" C('-L:6-E7VQI<W0Z"0ES;&EC95]I=&5M("@B
M+"(@<VQI8V5?:71E;2DJ(%LB+")=#0H-"B @(" C(&)A8VMW87)D<R!C;VUP
M870@<VQI8V4@9F]R("=;:3IJ72<-"B @("!I9B!L96XH;F]D96QI<W0I(#T]
M(#(Z#0H@(" @("!S=6(@/2!N;V1E;&ES=%LQ70T*(" @(" @:68@*'-U8ELQ
M75LP72 ]/2!T;VME;BY#3TQ/3B!O<B!<#0H@(" @(" @(" @(" @("AL96XH
M<W5B*2 ^(#(@86YD('-U8ELR75LP72 ]/2!T;VME;BY#3TQ/3BDI(&%N9"!<
M#0H@(" @(" @(" @(" @<W5B6RTQ75LP72 A/2!S>6UB;VPN<VQI8V5O<#H-
M"B @(" @(" @<F5T=7)N('-E;&8N8V]M7W-L:6-E*'!R:6UA<GDL('-U8BP@
M87-S:6=N:6YG*0T*#0H@(" @<W5B<V-R:7!T<R ](%L@70T*(" @(&9O<B!I
M(&EN(')A;F=E*#$L(&QE;BAN;V1E;&ES="DL(#(I.@T*(" @(" @<W5B<V-R
M:7!T<RYA<'!E;F0H<V5L9BYC;VU?<W5B<V-R:7!T*&YO9&5L:7-T6VE=*2D-
M"@T*(" @(')E='5R;B!.;V1E*"=S=6)S8W)I<'0G+"!P<FEM87)Y+"!A<W-I
M9VYI;F<L('-U8G-C<FEP=',I#0H-"B @9&5F(&-O;5]S=6)S8W)I<'0H<V5L
M9BP@;F]D92DZ#0H@(" @(R!S;&EC95]I=&5M.B!E>'!R97-S:6]N('P@<')O
M<&5R7W-L:6-E('P@96QL:7!S:7,-"B @("!C:" ](&YO9&5;,5T-"B @("!I
M9B!C:%LP72 ]/2!T;VME;BY$3U0@86YD(&YO9&5;,EU;,%T@/3T@=&]K96XN
M1$]4.@T*(" @(" @<F5T=7)N("@G96QL:7!S:7,G+"!.;VYE*0T*(" @(&EF
M(&-H6S!=(#T]('1O:V5N+D-/3$].(&]R(&QE;BAN;V1E*2 ^(#(Z#0H@(" @
M("!R971U<FX@<V5L9BYC;VU?<VQI8V5O8FHH;F]D92D-"B @("!R971U<FX@
M<V5L9BYC;VU?;F]D92AC:"D-"@T*("!D968@8V]M7W-L:6-E;V)J*'-E;&8L
M(&YO9&4I.@T*(" @(",@<')O<&5R7W-L:6-E.B!S:&]R=%]S;&EC92!\(&QO
M;F=?<VQI8V4-"B @(" C('-H;W)T7W-L:6-E.@E;;&]W97)?8F]U;F1=("(Z
M(B!;=7!P97)?8F]U;F1=#0H@(" @(R!L;VYG7W-L:6-E.@ES:&]R=%]S;&EC
M92 B.B(@6W-T<FED95T-"B @(" C(&QO=V5R7V)O=6YD.@EE>'!R97-S:6]N
M#0H@(" @(R!U<'!E<E]B;W5N9#H)97AP<F5S<VEO;@T*(" @(",@<W1R:61E
M.@D)97AP<F5S<VEO;@T*(" @(",-"B @(" C($YO=&4Z(&$@<W1R:61E(&UA
M>2!B92!F=7)T:&5R('-L:6-I;F<N+BX-"@T*(" @(&ET96US(#T@6R!=#0H-
M"B @("!I9B!N;V1E6S%=6S!=(#T]('1O:V5N+D-/3$]..@T*(" @(" @:71E
M;7,N87!P96YD*$YO9&4H)V-O;G-T)RP@3F]N92DI#0H@(" @("!I(#T@,@T*
M(" @(&5L<V4Z#0H@(" @("!I=&5M<RYA<'!E;F0H<V5L9BYC;VU?;F]D92AN
M;V1E6S%=*2D-"B @(" @(",@:2 ]/2 R(&ES(&$@0T],3TX-"B @(" @(&D@
M/2 S#0H-"B @("!I9B!I(#P@;&5N*&YO9&4I(&%N9"!N;V1E6VE=6S!=(#T]
M('-Y;6)O;"YT97-T.@T*(" @(" @:71E;7,N87!P96YD*'-E;&8N8V]M7VYO
M9&4H;F]D95MI72DI#0H@(" @("!I(#T@:2 K(#$-"B @("!E;'-E.@T*(" @
M(" @:71E;7,N87!P96YD*$YO9&4H)V-O;G-T)RP@3F]N92DI#0H-"B @(" C
M(&$@<VAO<G1?<VQI8V4@:&%S(&)E96X@8G5I;'0N"2!L;V]K(&9O<B!L;VYG
M7W-L:6-E(&YO=R!B>2!L;V]K:6YG#0H@(" @(R!F;W(@<W1R:61E<RXN+@T*
M(" @(&9O<B!J(&EN(')A;F=E*&DL(&QE;BAN;V1E*2DZ#0H@(" @("!C:" ]
M(&YO9&5;:ET-"B @(" @(&EF(&QE;BAC:"D@/3T@,CH-"B @(" @(" @:71E
M;7,N87!P96YD*$YO9&4H)V-O;G-T)RP@3F]N92DI#0H@(" @("!E;'-E.@T*
M(" @(" @("!I=&5M<RYA<'!E;F0H<V5L9BYC;VU?;F]D92AC:%LR72DI#0H-
M"B @("!R971U<FX@3F]D92@G<VQI8V5O8FHG+"!I=&5M<RD-"@T*("!D968@
M8V]M7W-L:6-E*'-E;&8L('!R:6UA<GDL(&YO9&4L(&%S<VEG;FEN9RDZ#0H)
M(R!S:&]R=%]S;&EC93H)6VQO=V5R7V)O=6YD72 B.B(@6W5P<&5R7V)O=6YD
M70T*"6QO=V5R(#T@=7!P97(@/2!.;VYE#0H):68@;&5N*&YO9&4I(#T](#,Z
M#0H)("!I9B!N;V1E6S%=6S!=(#T]('1O:V5N+D-/3$]..@T*"0EU<'!E<B ]
M('-E;&8N8V]M7VYO9&4H;F]D95LR72D-"@D@(&5L<V4Z#0H)"6QO=V5R(#T@
M<V5L9BYC;VU?;F]D92AN;V1E6S%=*0T*"65L:68@;&5N*&YO9&4I(#T](#0Z
M#0H)("!L;W=E<B ]('-E;&8N8V]M7VYO9&4H;F]D95LQ72D-"@D@('5P<&5R
M(#T@<V5L9BYC;VU?;F]D92AN;V1E6S-=*0T*"7)E='5R;B!.;V1E*"=S;&EC
M92<L('!R:6UA<GDL(&%S<VEG;FEN9RP@;&]W97(L('5P<&5R*0T*#0H@(&1E
M9B!G971?9&]C<W1R:6YG*'-E;&8L(&YO9&4L(&X]3F]N92DZ#0H):68@;B!I
M<R!.;VYE.@T*"2 @;B ](&YO9&5;,%T-"@D@(&YO9&4@/2!N;V1E6S$Z70T*
M"6EF(&X@/3T@<WEM8F]L+G-U:71E.@T*"2 @:68@;&5N*&YO9&4I(#T](#$Z
M#0H)"7)E='5R;B!S96QF+F=E=%]D;V-S=')I;F<H;F]D95LP72D-"@D@(&9O
M<B!S=6(@:6X@;F]D93H-"@D):68@<W5B6S!=(#T]('-Y;6)O;"YS=&UT.@T*
M"0D@(')E='5R;B!S96QF+F=E=%]D;V-S=')I;F<H<W5B*0T*"2 @<F5T=7)N
M($YO;F4-"@EI9B!N(#T]('-Y;6)O;"YF:6QE7VEN<'5T.@T*"2 @9F]R('-U
M8B!I;B!N;V1E.@T*"0EI9B!S=6);,%T@/3T@<WEM8F]L+G-T;70Z#0H)"2 @
M<F5T=7)N('-E;&8N9V5T7V1O8W-T<FEN9RAS=6(I#0H)("!R971U<FX@3F]N
M90T*"6EF(&X@/3T@<WEM8F]L+F%T;VTZ#0H)("!I9B!N;V1E6S!=6S!=(#T]
M('1O:V5N+E-44DE.1SH-"@D)<R ]("<G#0H)"69O<B!T(&EN(&YO9&4Z#0H)
M"0ES(#T@<R K(&5V86PH=%LQ72D-"@D)<F5T=7)N(',-"@D@(')E='5R;B!.
M;VYE#0H):68@;B ]/2!S>6UB;VPN<W1M="!O<B!N(#T]('-Y;6)O;"YS:6UP
M;&5?<W1M="!O<B!N(#T]('-Y;6)O;"YS;6%L;%]S=&UT.@T*"2 @<F5T=7)N
M('-E;&8N9V5T7V1O8W-T<FEN9RAN;V1E6S!=*0T*"6EF(&X@:6X@7V1O8U]N
M;V1E<R!A;F0@;&5N*&YO9&4I(#T](#$Z#0H)("!R971U<FX@<V5L9BYG971?
M9&]C<W1R:6YG*&YO9&5;,%TI#0H)<F5T=7)N($YO;F4-"@T*#0I?9&]C7VYO
M9&5S(#T@6PT*("!S>6UB;VPN97AP<E]S=&UT+ T*("!S>6UB;VPN=&5S=&QI
M<W0L#0H@('-Y;6)O;"YT97-T+ T*("!S>6UB;VPN86YD7W1E<W0L#0H@('-Y
M;6)O;"YN;W1?=&5S="P-"B @<WEM8F]L+F-O;7!A<FES;VXL#0H@('-Y;6)O
M;"YE>'!R+ T*("!S>6UB;VPN>&]R7V5X<'(L#0H@('-Y;6)O;"YA;F1?97AP
M<BP-"B @<WEM8F]L+G-H:69T7V5X<'(L#0H@('-Y;6)O;"YA<FET:%]E>'!R
M+ T*("!S>6UB;VPN=&5R;2P-"B @<WEM8F]L+F9A8W1O<BP-"B @<WEM8F]L
M+G!O=V5R+ T*("!=#0H-"B,@8V]M<%]O<#H@)SPG('P@)SXG('P@)STG('P@
M)SX])R!\("<\/2<@?" G/#XG('P@)R$])R!\("<]/2<-"B,)"0D@('P@)VEN
M)R!\("=N;W0G("=I;B<@?" G:7,G('P@)VES)R G;F]T)PT*7V-M<%]T>7!E
M<R ]('L-"B @=&]K96XN3$534R Z("<\)RP-"B @=&]K96XN1U)%051%4B Z
M("<^)RP-"B @=&]K96XN15%%455!3" Z("<]/2<L#0H@('1O:V5N+D5154%,
M(#H@)ST])RP-"B @=&]K96XN3$534T5154%,(#H@)SP])RP-"B @=&]K96XN
M1U)%051%4D5154%,(#H@)SX])RP-"B @=&]K96XN3D]415%504P@.B G(3TG
M+ T*("!]#0H-"E]L96=A;%]N;V1E7W1Y<&5S(#T@6PT*("!S>6UB;VPN9G5N
M8V1E9BP-"B @<WEM8F]L+F-L87-S9&5F+ T*("!S>6UB;VPN<W1M="P-"B @
M<WEM8F]L+G-M86QL7W-T;70L#0H@('-Y;6)O;"YF;&]W7W-T;70L#0H@('-Y
M;6)O;"YS:6UP;&5?<W1M="P-"B @<WEM8F]L+F-O;7!O=6YD7W-T;70L#0H@
M('-Y;6)O;"YE>'!R7W-T;70L#0H@('-Y;6)O;"YP<FEN=%]S=&UT+ T*("!S
M>6UB;VPN9&5L7W-T;70L#0H@('-Y;6)O;"YP87-S7W-T;70L#0H@('-Y;6)O
M;"YB<F5A:U]S=&UT+ T*("!S>6UB;VPN8V]N=&ENe?<W1M="P-"B @<WEM
M8F]L+G)E='5R;E]S=&UT+ T*("!S>6UB;VPN<F%I<V5?<W1M="P-"B @<WEM
M8F]L+FEM<&]R=%]S=&UT+ T*("!S>6UB;VPN9VQO8F%L7W-T;70L#0H@('-Y
M;6)O;"YE>&5C7W-T;70L#0H@('-Y;6)O;"YA<W-E<G1?<W1M="P-"B @<WEM
M8F]L+FEF7W-T;70L#0H@('-Y;6)O;"YW:&EL95]S=&UT+ T*("!S>6UB;VPN
M9F]R7W-T;70L#0H@('-Y;6)O;"YT<GE?<W1M="P-"B @<WEM8F]L+G-U:71E
M+ T*("!S>6UB;VPN=&5S=&QI<W0L#0H@('-Y;6)O;"YT97-T+ T*("!S>6UB
M;VPN86YD7W1E<W0L#0H@('-Y;6)O;"YN;W1?=&5S="P-"B @<WEM8F]L+F-O
M;7!A<FES;VXL#0H@('-Y;6)O;"YE>'!R;&ES="P-"B @<WEM8F]L+F5X<'(L
M#0H@('-Y;6)O;"YX;W)?97AP<BP-"B @<WEM8F]L+F%N9%]E>'!R+ T*("!S
M>6UB;VPN<VAI9G1?97AP<BP-"B @<WEM8F]L+F%R:71H7V5X<'(L#0H@('-Y
M;6)O;"YT97)M+ T*("!S>6UB;VPN9F%C=&]R+ T*("!S>6UB;VPN<&]W97(L
M#0H@('-Y;6)O;"YA=&]M+ T*("!=#0H-"E]A<W-I9VY?='EP97,@/2!;#0H@
M('-Y;6)O;"YT97-T+ T*("!S>6UB;VPN86YD7W1E<W0L#0H@('-Y;6)O;"YN
M;W1?=&5S="P-"B @<WEM8F]L+F-O;7!A<FES;VXL#0H@('-Y;6)O;"YE>'!R
M+ T*("!S>6UB;VPN>&]R7V5X<'(L#0H@('-Y;6)O;"YA;F1?97AP<BP-"B @
M<WEM8F]L+G-H:69T7V5X<'(L#0H@('-Y;6)O;"YA<FET:%]E>'!R+ T*("!S
D>6UB;VPN=&5R;2P-"B @<WEM8F]L+F9A8W1O<BP-"B @70T*
`
end
Re: UTF-8 is no fun... [ In reply to ]
> comments? (for obvious reasons, I'm especially interested in comments
> from people using non-ASCII characters on a daily basis...)

nobody?

maybe all problems are gone after the last round of checkins?
oh well, I'll rebuild again, and see what happens if I remove all
kludges in my test code...

</F>
Re: UTF-8 is no fun... [ In reply to ]
Fredrik Lundh wrote:
>
> > comments? (for obvious reasons, I'm especially interested in comments
> > from people using non-ASCII characters on a daily basis...)
>
> nobody?

FYI, there currently is a discussion emerging about this on the
i18n-sig list.

> maybe all problems are gone after the last round of checkins?

Probably not :-/ ... the last round only fixed some minor
things.

> oh well, I'll rebuild again, and see what happens if I remove all
> kludges in my test code...

--
Marc-Andre Lemburg
______________________________________________________________________
Business: http://www.lemburg.com/
Python Pages: http://www.lemburg.com/python/
Re: UTF-8 is no fun... [ In reply to ]
M.-A. Lemburg wrote:
> > nobody?
>
> FYI, there currently is a discussion emerging about this on the
> i18n-sig list.

okay, I'll catch up with that one later.

> > maybe all problems are gone after the last round of checkins?
>
> Probably not :-/ ... the last round only fixed some minor
> things.

hey, aren't you supposed to say "don't worry, the design
is rock solid"? ;-)

</F>
Re: UTF-8 is no fun... [ In reply to ]
Fredrik Lundh wrote:
>
> M.-A. Lemburg wrote:
> > > nobody?
> >
> > FYI, there currently is a discussion emerging about this on the
> > i18n-sig list.
>
> okay, I'll catch up with that one later.
>
> > > maybe all problems are gone after the last round of checkins?
> >
> > Probably not :-/ ... the last round only fixed some minor
> > things.
>
> hey, aren't you supposed to say "don't worry, the design
> is rock solid"? ;-)

Things are hard to get right when you have to deal with
backward *and* forward compatibility, interoperability and
user-friendliness all at the same time... but we'll keep
trying ;-)

--
Marc-Andre Lemburg
______________________________________________________________________
Business: http://www.lemburg.com/
Python Pages: http://www.lemburg.com/python/
RE: UTF-8 is no fun... [ In reply to ]
> > comments? (for obvious reasons, I'm especially
> interested in comments
> > from people using non-ASCII characters on a daily basis...)
>
> nobody?

Almost certainly not. a) Unicode objects are very new and not
everyone has the time to fiddle with them, and b) many of us only
speak English.

So we need _you_ to tell us what the problems were/are. Dont wait
for us to find them - explain them to us. At least we than have a
change of sympathizing, even if we can not directly relate the
experiences...

> maybe all problems are gone after the last round of checkins?
> oh well, I'll rebuild again, and see what happens if I remove all
> kludges in my test code...

OK - but be sure to let us know :-)

Mark.
RE: UTF-8 is no fun... [ In reply to ]
[Marc]

> Things are hard to get right when you have to deal with
> backward *and* forward compatibility, interoperability and
> user-friendliness all at the same time... but we'll keep
> trying ;-)

Let me say publically that I think you have done a fine job, and
obviously have put lots of thought and effort into it. If parts of
the design turn out to be less than ideal (and subsequently changed
before 1.6 is real) then this will not detract from your excellent
work.

Well done!

[.And also to Fredrik, whose code was the basis for the Unicode
object itself - that was a nice piece of code too!]

Aww-heck-I-love-all-you-guys-<wink>-ly,

Mark.
UTF-8 is no fun... [ In reply to ]
> > Things are hard to get right when you have to deal with
> > backward *and* forward compatibility, interoperability and
> > user-friendliness all at the same time... but we'll keep
> > trying ;-)
>
> Let me say publically that I think you have done a fine job, and
> obviously have put lots of thought and effort into it. If parts of
> the design turn out to be less than ideal (and subsequently changed
> before 1.6 is real) then this will not detract from your excellent
> work.
>
> Well done!
>
> [.And also to Fredrik, whose code was the basis for the Unicode
> object itself - that was a nice piece of code too!]

> Mark

I've spent a fair bit of time converting strings and files the
last few days, and I'd add that what we have now seems both rock solid
and very easy to use.

The remaining issues are entirely a matter of us end users trying
to figure out what we should have asked for in the first place. Whether
we achieve that finally before 1.6 is our problem; Marc-Andr\u00C9 and
Fredrik have done a great job, and I think we are on track for providing
something much more useful and extensible than (say) Java. As proof
of this, someone has already contributed Japanese codecs based on the
spec.

- Andy Robinson
Re: UTF-8 is no fun... [ In reply to ]
Andy Robinson <andy@reportlab.com> wrote:
> I've spent a fair bit of time converting strings and files the
> last few days, and I'd add that what we have now seems both rock solid
> and very easy to use.

I'm not worried about the core string types or the conversion
machinery; what disturbs me is mostly the use of automagic
conversions to UTF-8, which breaks the fundamental assumption
that a string is a sequence of len(string) characters.

"The items of a string are characters. There is no
separate character type; a character is represented
by a string of one item"

(from the language reference)

I still think the "all strings are sequences of unicode characters"
strawman I posted earlier would simplify things for everyone in-
volved (programmers, users, and the interpreter itself).

more on this later. gotta ship some code first.

</F>