hyb
2026-01-30 7657e1b2fa251a2ea372710ad75cb395a3c0e374
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Ë
 
çúh<7ãó—ddlZddlZddlmZmZddlmZddlmZm    Z    m
Z
m Z m Z ddl mZddlmZmZGd„de«ZGd    „d
e«ZGd „d e«ZGd „de«ZGd„de«ZGd„d«ZGd„de«ZGd„de«ZGd„d«ZGd„d«ZGd„d«ZGd„d«ZGd„d «ZGd!„d"e«Z Gd#„d$e«Z!Gd%„d&e«Z"Gd'„d(e«Z#Gd)„d*e«Z$Gd+„d,e«Z%Gd-„d.e«Z&y)/éN)ÚABCÚabstractmethod)ÚEnum)ÚDictÚListÚOptionalÚTypeÚUnion)ÚTokenInterface)ÚCredentialProviderÚStreamingCredentialProvidercó&—eZdZdZedefd„«Zy)ÚEventListenerInterfacez7
    Represents a listener for given event object.
    Úeventcó—y©N©©Úselfrs  õ^H:\项目\archive\测试组\脚本\Change_password\venv_build\Lib\site-packages\redis/event.pyÚlistenzEventListenerInterface.listenó€à óN©Ú__name__Ú
__module__Ú __qualname__Ú__doc__rÚobjectrrrrrr s"„ñðð ˜Fò óñ rrcó&—eZdZdZedefd„«Zy)ÚAsyncEventListenerInterfacez>
    Represents an async listener for given event object.
    rcƒó K—y­wrrrs  rrz"AsyncEventListenerInterface.listenó    èø€à ùó‚Nrrrrr!r!s"„ñðð  &ò óñ rr!cór—eZdZdZedefd„«Zedefd„«Zedee    ee
e e e fffd„«Zy)ÚEventDispatcherInterfacezf
    Represents a dispatcher that dispatches events to listeners
    associated with given event.
    rcó—yrrrs  rÚdispatchz!EventDispatcherInterface.dispatch%rrcƒó K—y­wrrrs  rÚdispatch_asyncz'EventDispatcherInterface.dispatch_async)r#r$Úmappingscó—y)zRegister additional listeners.Nr)rr+s  rÚregister_listenersz+EventDispatcherInterface.register_listeners-s€ð     rN)rrrrrrr(r*rr    rr
rr!r-rrrr&r&s„ñð
ð ˜fò óð ðð ¨&ò óð ðð àØ ‰LØ Ð-Ð/JÐJÑKÑ Lð Nñ
ò óñ rr&có,‡—eZdZdZdedefˆfd„ ZˆxZS)ÚEventExceptionzM
    Exception wrapper that adds an event object into exception context.
    Ú    exceptionrcó@•—||_||_t‰| |«yr)r0rÚsuperÚ__init__)rr0rÚ    __class__s   €rr3zEventException.__init__>sø€Ø"ˆŒØˆŒ
Ü ‰Ñ˜Õ#r)rrrrÚ    Exceptionrr3Ú __classcell__)r4s@rr/r/9s ø„ñð$ )ð$°F÷$ñ$rr/có|—eZdZ    d    deeeeeeffd„Z    defd„Z
defd„Z deeeee ee fffd„Zy)
ÚEventDispatcherNÚevent_listenersc ó.—tt«gtt«gtt «gt t«gtt«gtt«gi|_ tj«|_d|_|r|j#|«yy)z]
        Dispatcher that dispatches events to listeners associated with given event.
        N)ÚAfterConnectionReleasedEventÚReAuthConnectionListenerÚ(AfterPooledConnectionsInstantiationEventÚ"RegisterReAuthForPooledConnectionsÚ'AfterSingleConnectionInstantiationEventÚ!RegisterReAuthForSingleConnectionÚ'AfterPubSubConnectionInstantiationEventÚRegisterReAuthForPubSubÚ#AfterAsyncClusterInstantiationEventÚ"RegisterReAuthForAsyncClusterNodesÚ!AsyncAfterConnectionReleasedEventÚAsyncReAuthConnectionListenerÚ_event_listeners_mappingÚ    threadingÚLockÚ_lockÚ _async_lockr-)rr9s  rr3zEventDispatcher.__init__Fs•€ô )Ü(Ó*ð+ô 5Ü2Ó4ð7ô 4Ü1Ó3ð6ô 4Ô6MÓ6OÐ5PÜ /Ô2TÓ2VÐ1WÜ -Ü-Ó/ð0ð
ð     Ô%ô&—^‘^Ó%ˆŒ
؈Ôá Ø × #Ñ # OÕ 4ð rrcó—|j5|jjt|«g«}|D]}|j    |«Œ    ddd«y#1swYyxYwr)rJrGÚgetÚtyper©rrÚ    listenersÚlisteners    rr(zEventDispatcher.dispatchhsU€Ø Z‰Zñ    'Ø×5Ñ5×9Ñ9¼$¸u»+ÀrÓJˆIà%ò 'Ø—‘ Õ&ñ '÷    '÷    'ñ    'ús >AÁAcƒó`K—|j€tj«|_|j4ƒd{–—†|jj    t |«g«}|D]}|j |«ƒd{–—†Œddd«ƒd{–—†y7ŒZ7Œ7Œ    #1ƒd{–—†7swYyxYw­wr)rKÚasynciorIrGrMrNrrOs    rr*zEventDispatcher.dispatch_asyncos›èø€Ø × Ñ Ð #Ü&Ÿ|™|›~ˆDÔ à×#Ñ#÷    -ñ    -Ø×5Ñ5×9Ñ9¼$¸u»+ÀrÓJˆIà%ò -Ø—o‘o eÓ,×,Ñ,ð -÷    -÷    -ñ    -øð-øð        -ø÷    -÷    -ñ    -üsV‚6B.¸B¹B.¼?BÁ;BÁ<B B. BÂB.ÂBÂB.ÂB+ÂB"  B+Â'B.r+c    ó—|j5|D]W}||jvr5tt|j|||z««|j|<ŒF|||j|<ŒY    ddd«y#1swYyxYwr)rJrGÚlistÚset)rr+Ú
event_types   rr-z"EventDispatcher.register_listenersys•€ðZ‰Zñ
    UØ&ò     U
Ø ×!>Ñ!>Ñ>Ü@DÜØ ×9Ñ9¸*ÑEØ& zÑ2ñ3óóAD×1Ñ1°*Ò=ðAIÈÑ@TD×1Ñ1°*Ò=ñ     U÷
    U÷
    Uñ
    Uús AA4Á4A=r)rrrrrr    rrrr3r(r*r
r!r-rrrr8r8Ds~„ð ñ     5à!Ø f‘˜tÐ$:Ñ;Ð;Ñ <ñ
ó 5ðD'˜fó'ð-¨&ó-ðUàØ ‰LØ Ð-Ð/JÐJÑKÑ Lð Nñ
ôUrr8có&—eZdZdZd„Zed„«Zy)r;zA
    Event that will be fired before each command execution.
    có—||_yr©Ú _connection)rÚ
connections  rr3z%AfterConnectionReleasedEvent.__init__’s
€Ø%ˆÕrcó—|jSrrZ©rs rr\z'AfterConnectionReleasedEvent.connection•ó€à×ÑÐrN)rrrrr3Úpropertyr\rrrr;r;s „ñò&ðñ óñ rr;có —eZdZy)rEN©rrrrrrrErEšó„ØrrEcó—eZdZdZdZy)Ú
ClientType)Úsync)ÚasyncN)rrrÚSYNCÚASYNCrrrrerežs „Ø €DØ Errecót—eZdZdZ    d dededeefd„Ze    d„«Z
e    defd    „«Z e    de edffd
„«Z y) r=zQ
    Event that will be fired after pooled connection instances was created.
    NÚconnection_poolsÚ client_typeÚcredential_providercó.—||_||_||_yr)Ú_connection_poolsÚ _client_typeÚ_credential_provider)rrkrlrms    rr3z1AfterPooledConnectionsInstantiationEvent.__init__¨s€ð "2ˆÔØ'ˆÔØ$7ˆÕ!rcó—|jSr)ror^s rrkz9AfterPooledConnectionsInstantiationEvent.connection_pools²s€à×%Ñ%Ð%rÚreturncó—|jSr©rpr^s rrlz4AfterPooledConnectionsInstantiationEvent.client_type¶ó€àנѠРrcó—|jSr©rqr^s rrmz<AfterPooledConnectionsInstantiationEvent.credential_providerºó€à×(Ñ(Ð(rr)rrrrrrerr r3r`rkrlr
rmrrrr=r=£s‰„ñð=Añ    8àð8ð ð8ð&Ð&8Ñ9ó    8ðñ&óð&ðð!˜Zò!óð!ðð) UÐ+=¸tÐ+CÑ%Dò)óñ)rr=cóÀ—eZdZdZdedeejejffd„Z
e d„«Z e defd„«Z e deejejffd„«Zy    )
r?z¹
    Event that will be fired after single connection instances was created.
 
    :param connection_lock: For sync client thread-lock should be provided,
    for async asyncio.Lock
    rlÚconnection_lockcó.—||_||_||_yr)r[rpÚ_connection_lock)rr\rlr{s    rr3z0AfterSingleConnectionInstantiationEvent.__init__Çs€ð &ˆÔØ'ˆÔØ /ˆÕrcó—|jSrrZr^s rr\z2AfterSingleConnectionInstantiationEvent.connectionÑr_rrscó—|jSrrur^s rrlz3AfterSingleConnectionInstantiationEvent.client_typeÕrvrcó—|jSr©r}r^s rr{z7AfterSingleConnectionInstantiationEvent.connection_lockÙó€à×$Ñ$Ð$rN)rrrrrer
rHÚRLockrSrIr3r`r\rlr{rrrr?r?¿sŽ„ñð0ð ð0ð˜yŸ™°· ± Ð<Ñ=ó    0ðñ óð ðð!˜Zò!óð!ðð%  y§¡¸¿ ¹ Ð'DÑ!Eò%óñ%rr?có̗eZdZdedeej ejffd„Z    e
d„«Z e
d„«Z e
defd„«Z e
deej ejffd„«Zy    )
rArlr{có<—||_||_||_||_yr)Ú_pubsub_connectionÚ_connection_poolrpr})rÚpubsub_connectionÚconnection_poolrlr{s     rr3z0AfterPubSubConnectionInstantiationEvent.__init__ßs$€ð#4ˆÔØ /ˆÔØ'ˆÔØ /ˆÕrcó—|jSr)r†r^s rrˆz9AfterPubSubConnectionInstantiationEvent.pubsub_connectionës€à×&Ñ&Ð&rcó—|jSr)r‡r^s rr‰z7AfterPubSubConnectionInstantiationEvent.connection_poolïr‚rrscó—|jSrrur^s rrlz3AfterPubSubConnectionInstantiationEvent.client_typeórvrcó—|jSrrr^s rr{z7AfterPubSubConnectionInstantiationEvent.connection_lock÷r‚rN)rrrrer
rHrƒrSrIr3r`rˆr‰rlr{rrrrArAÞs„ð
0ð ð    
0ð
˜yŸ™°· ± Ð<Ñ=ó
0ðñ'óð'ðñ%óð%ðð!˜Zò!óð!ðð%  y§¡¸¿ ¹ Ð'DÑ!Eò%óñ%rrAcó`—eZdZdZ    d    dedeefd„Zedefd„«Z    ede
edffd„«Z y)
rCz±
    Event that will be fired after async cluster instance was created.
 
    Async cluster doesn't use connection pools,
    instead ClusterNode object manages connections.
    NÚnodesrmcó —||_||_yr)Ú_nodesrq)rrrms   rr3z,AfterAsyncClusterInstantiationEvent.__init__s€ð
ˆŒ Ø$7ˆÕ!rrscó—|jSr)r‘r^s rrz)AfterAsyncClusterInstantiationEvent.nodes s €à{‰{Ðrcó—|jSrrxr^s rrmz7AfterAsyncClusterInstantiationEvent.credential_providerryrr) rrrrÚdictrr r3r`rr
rmrrrrCrCüsk„ñð=Añ8àð8ð&Ð&8Ñ9ó8ððtòóððð) UÐ+=¸tÐ+CÑ%Dò)óñ)rrCcóL—eZdZdZdedefd„Zedefd„«Zedefd„«Z    y)    ÚOnCommandsFailEventzD
    Event fired whenever a command fails during the execution.
    Úcommandsr0có —||_||_yr)Ú    _commandsÚ
_exception)rr—r0s   rr3zOnCommandsFailEvent.__init__s€ð
"ˆŒØ#ˆrrscó—|jSr)r™r^s rr—zOnCommandsFailEvent.commands"s €à~‰~Ðrcó—|jSr)ršr^s rr0zOnCommandsFailEvent.exception&s €à‰ÐrN)
rrrrÚtupler5r3r`r—r0rrrr–r–sT„ñð$àð$ðó$ðð˜%òóððð˜9òóñrr–có —eZdZy)ÚAsyncOnCommandsFailEventNrbrrrrŸrŸ+rcrrŸcó—eZdZdZdefd„Zy)r<zG
    Listener that performs re-authentication of given connection.
    rcó8—|jj«yr©r\Úre_authrs  rrzReAuthConnectionListener.listen4s€Ø ×Ñ× Ñ Õ"rN)rrrrr;rrrrr<r</s„ñð#Ð8ô#rr<có—eZdZdZdefd„Zy)rFzM
    Async listener that performs re-authentication of given connection.
    rcƒóTK—|jj«ƒd{–—†y7Œ­wrr¢rs  rrz$AsyncReAuthConnectionListener.listen=sèø€Ø×Ñ×&Ñ&Ó(×(Ò(ús ‚( &¡(N)rrrrrErrrrrFrF8s„ñð)Ð"Cô)rrFcóF—eZdZdZd„Zdefd„Zd„Zd„Zde    fd„Z
de    fd    „Z y
) r>zŒ
    Listener that registers a re-authentication callback for pooled connections.
    Required by :class:`StreamingCredentialProvider`.
    có—d|_yr©Ú_eventr^s rr3z+RegisterReAuthForPooledConnections.__init__Gó    €Øˆ rrcó¬—t|jt«rº||_|jt
j k(rK|jj|j«|jj|j«y|jj|j«|jj|j«yyr) Ú
isinstancermr r©rlrerhÚon_nextÚ_re_authÚon_errorÚ_raise_on_errorÚ_re_auth_asyncÚ_raise_on_error_asyncrs  rrz)RegisterReAuthForPooledConnections.listenJs˜€Ü e×/Ñ/Ô1LÔ M؈DŒKà× Ñ ¤J§O¡OÒ3Ø×)Ñ)×1Ñ1°$·-±-Ô@Ø×)Ñ)×2Ñ2°4×3GÑ3GÕHà×)Ñ)×1Ñ1°$×2EÑ2EÔFØ×)Ñ)×2Ñ2°4×3MÑ3MÕNð Nrcó\—|jjD]}|j|«Œyr©r©rkÚre_auth_callback©rÚtokenÚpools   rr®z+RegisterReAuthForPooledConnections._re_authUs)€Ø—K‘K×0Ñ0ò    )ˆDØ × !Ñ ! %Õ (ñ    )rcƒóxK—|jjD]}|j|«ƒd{–—†Œy7Œ­wrr´r¶s   rr±z1RegisterReAuthForPooledConnections._re_auth_asyncYs6èø€Ø—K‘K×0Ñ0ò    /ˆDØ×'Ñ'¨Ó.× .Ñ .ñ    /Ø .ús ‚.:°8±:Úerrorcó.—t||j«‚r©r/r©©rrºs  rr°z2RegisterReAuthForPooledConnections._raise_on_error]ó€Ü˜U D§K¡KÓ0Ð0rcƒó6K—t||j«‚­wrr¼r½s  rr²z8RegisterReAuthForPooledConnections._raise_on_error_async`óèø€Ü˜U D§K¡KÓ0Ð0ùó‚N) rrrrr3r=rr®r±r5r°r²rrrr>r>As=„ñò
ð    OÐDó    Oò)ò/ð1 Yó1ð1°ô1rr>cóF—eZdZdZd„Zdefd„Zd„Zd„Zde    fd„Z
de    fd    „Z y
) r@z‹
    Listener that registers a re-authentication callback for single connection.
    Required by :class:`StreamingCredentialProvider`.
    có—d|_yrr¨r^s rr3z*RegisterReAuthForSingleConnection.__init__jrªrrcó—t|jjt«râ||_|j
t jk(r_|jjj|j«|jjj|j«y|jjj|j«|jjj|j«yyr)r¬r\rmr r©rlrerhr­r®r¯r°r±r²rs  rrz(RegisterReAuthForSingleConnection.listenms½€Ü Ø × Ñ × 0Ñ 0Ô2Mô
ð ˆDŒKà× Ñ ¤J§O¡OÒ3Ø× Ñ ×4Ñ4×<Ñ<¸T¿]¹]ÔKØ× Ñ ×4Ñ4×=Ñ=¸d×>RÑ>RÕSà× Ñ ×4Ñ4×<Ñ<¸T×=PÑ=PÔQØ× Ñ ×4Ñ4×=Ñ=Ø×.Ñ.õð
rcó*—|jj5|jjjd|j    d«|j ««|jjj «ddd«y#1swYyxYw©NÚAUTHÚoid©r©r{r\Ú send_commandÚtry_getÚ    get_valueÚ read_response©rr·s  rr®z*RegisterReAuthForSingleConnection._re_auth|sk€Ø [‰[× (Ñ (ñ    3Ø K‰K× "Ñ "× /Ñ /ؘŸ ™  eÓ,¨e¯o©oÓ.?ô ð K‰K× "Ñ "× 0Ñ 0Ô 2÷        3÷    3ñ    3ús —A)B        Bcƒó”K—|jj4ƒd{–—†|jjjd|j    d«|j ««ƒd{–—†|jjj «ƒd{–—†ddd«ƒd{–—†y7Œ7ŒC7Œ7Œ #1ƒd{–—†7swYyxYw­wrÆrÉrÎs  rr±z0RegisterReAuthForSingleConnection._re_auth_asyncƒs¥èø€Ø—;‘;×.Ñ.÷    9ñ    9Ø—+‘+×(Ñ(×5Ñ5ؘŸ ™  eÓ,¨e¯o©oÓ.?ó÷ ð ð—+‘+×(Ñ(×6Ñ6Ó8× 8Ð 8÷        9÷    9ñ    9øð øð 9øð        9ø÷    9÷    9ñ    9üsi‚CB+žC¡AB3Á)B-Á*+B3ÂB/ÂB3 CÂ%B1Â&CÂ-B3Â/B3Â1CÂ3CÂ9B< Â:CÃCrºcó.—t||j«‚rr¼r½s  rr°z1RegisterReAuthForSingleConnection._raise_on_errorŠr¾rcƒó6K—t||j«‚­wrr¼r½s  rr²z7RegisterReAuthForSingleConnection._raise_on_error_asyncrÀrÁN) rrrrr3r?rr®r±r5r°r²rrrr@r@ds;„ñò
ð ÐCó ò3ò9ð1 Yó1ð1°ô1rr@có6—eZdZd„Zdefd„Zdefd„Zdefd„Z    y)    rDcó—d|_yrr¨r^s rr3z+RegisterReAuthForAsyncClusterNodes.__init__’rªrrcóܗt|jt«rR||_|jj    |j
«|jj |j«yyr)r¬rmr r©r­r®r¯r°rs  rrz)RegisterReAuthForAsyncClusterNodes.listen•sR€Ü e×/Ñ/Ô1LÔ M؈DŒKØ × %Ñ %× -Ñ -¨d¯m©mÔ <Ø × %Ñ %× .Ñ .¨t×/CÑ/CÕ Dð Nrr·cƒó¦K—|jjD]2}|jj|j|«ƒd{–—†Œ4y7Œ­wr)r©rrµ)rr·Úkeys   rr®z+RegisterReAuthForAsyncClusterNodes._re_auth›sGèø€Ø—;‘;×$Ñ$ò    AˆCØ—+‘+×#Ñ# CÑ(×9Ñ9¸%Ó@× @Ñ @ñ    AØ @ús‚AAÁAÁArºcƒó6K—t||j«‚­wrr¼r½s  rr°z2RegisterReAuthForAsyncClusterNodes._raise_on_errorŸrÀrÁN)
rrrr3rCrr r®r5r°rrrrDrD‘s0„òðEÐ?óEð A NóAð1¨9ô1rrDcóN—eZdZd„Zdefd„Zdefd„Zdefd„Zde    fd„Z
de    fd    „Z y
) rBcóJ—d|_d|_d|_d|_d|_yr)r[r‡rpr}r©r^s rr3z RegisterReAuthForPubSub.__init__¤s)€ØˆÔØ $ˆÔØ ˆÔØ $ˆÔ؈ rrcóÖ—t|jjt«rD|jj    «dvr&||_|j|_|j|_|j|_
|j|_ |jtjk(r_|j jj|j «|j jj#|j$«y|j jj|j&«|j jj#|j(«yyy)N)éÚ3)r¬rˆrmr Ú get_protocolr©r[r‰r‡rlrpr{r}rerhr­r®r¯r°r±r²rs  rrzRegisterReAuthForPubSub.listen«s€Ü Ø × #Ñ #× 7Ñ 7Ô9Tõ
à×%Ñ%×2Ñ2Ó4¸Ò@؈DŒKØ$×6Ñ6ˆDÔ Ø$)×$9Ñ$9ˆDÔ !Ø %× 1Ñ 1ˆDÔ Ø$)×$9Ñ$9ˆDÔ !à× Ñ ¤J§O¡OÒ3Ø× Ñ ×4Ñ4×<Ñ<¸T¿]¹]ÔKØ× Ñ ×4Ñ4×=Ñ=¸d×>RÑ>RÕSà× Ñ ×4Ñ4×<Ñ<¸T×=PÑ=PÔQØ× Ñ ×4Ñ4×=Ñ=Ø×.Ñ.õðAð
rr·có$—|j5|jjd|jd«|j    ««|jj «ddd«|j j|«y#1swYŒ%xYwrÆ©r}r[rÊrËrÌrÍr‡rµrÎs  rr®z RegisterReAuthForPubSub._re_auth¾su€Ø × "Ñ "ñ    -Ø × Ñ × )Ñ )ؘŸ ™  eÓ,¨e¯o©oÓ.?ô ð × Ñ × *Ñ *Ô ,÷        -ð      ×Ñ×.Ñ.¨uÕ5÷     -ð    -ús ABÂBcƒó¢K—|j4ƒd{–—†|jjd|jd«|j    ««ƒd{–—†|jj «ƒd{–—†ddd«ƒd{–—†|j j|«ƒd{–—†y7Œœ7Œ\7Œ<7Œ.#1ƒd{–—†7swYŒ>xYw7Œ"­wrÆrßrÎs  rr±z&RegisterReAuthForPubSub._re_auth_asyncÇs»èø€Ø×(Ñ(÷    3ñ    3Ø×"Ñ"×/Ñ/ؘŸ ™  eÓ,¨e¯o©oÓ.?ó÷ ð ð×"Ñ"×0Ñ0Ó2× 2Ð 2÷        3÷    3ð ×#Ñ#×4Ñ4°UÓ;×;Ñ;ð     3øð øð 3øð        3ø÷    3÷    3ñ    3úð     <úst‚C“B0”C—>B8ÁB2Á!B8Á7B4Á8B8Á< CÂB6Â"CÂ*C Â+CÂ2B8Â4B8Â6CÂ8C
Â>C Â?C
ÃCrºcó.—t||j«‚rr¼r½s  rr°z'RegisterReAuthForPubSub._raise_on_errorÐr¾rcƒó6K—t||j«‚­wrr¼r½s  rr²z-RegisterReAuthForPubSub._raise_on_error_asyncÓrÀrÁN) rrrr3rArr r®r±r5r°r²rrrrBrB£sD„òðÐCóð&6˜nó6ð<¨.ó<ð1 Yó1ð1°ô1rrB)'rSrHÚabcrrÚenumrÚtypingrrrr    r
Úredis.auth.tokenr Úredis.credentialsr r rr!r&r5r/r8r;rErer=r?rArCr–rŸr<rFr>r@rDrBrrrú<module>rèsðÛÛß#Ýß4Õ4å+ßMô ˜Sô ô  #ô ô ˜sô ô4$Yô$ôFUÐ.ôFU÷R
 ñ
 ô    Ð(Dô    ôô÷
)ñ)÷8%ñ%÷>%ñ%÷<)ñ)÷2ñô,    Ð2ô    ô#Ð5ô#ô)Ð$?ô)ô 1Ð)?ô 1ôF*1Ð(>ô*1ôZ1Ð)?ô1ô$11Ð4õ11r