+
    D#jD                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
H
t
 ^ RIHt ^ RIHtHt ^ RIHt ]'       d   ^ RIHt R	tR
tRtRtRtRtRtRXtRtRtRtRtRt Rt!Rt"Rt#Rt$R R lt%R R lt&]	! RRR7       ! R R 4      4       t']	! RRR7       ! R! R"4      4       t(RYR# R$ llt)R% R& lt*R' R( lt+R) R* lt,R+ R, lt-R- R. lt.R/ R0 lt/RZR1R/R2 R3 lllt0RYR4 R5 llt1RYR6 R7 llt2R8 R9 lt3R: R; lt4R< R= lt5R> R? lt6R@ RA lt7RB RC lt8RD RE lt9RF RG lt:RH RI lt;RJ RK lt<RYRL RM llt=RYR1RRNR/RO RP lllt>RZR1R/RQ RR lllt?RS RT lt@RU RV ltA]BRW8X  d   ]C! ]A! ]P                  4      4      hR# )[    )annotationsN)	dataclass)datetime)Path)TYPE_CHECKINGMapping)runtime_dir)AccountSnapshotSYSTRAY_STATUSLINE_STATE_DIRSYSTRAY_CODEX_ACCOUNT_SLUGSYSTRAY_CODEX_ACCOUNT_HOMESYSTRAY_CLAUDE_ACCOUNT_SLUGSYSTRAY_CLAUDE_ACCOUNT_HOMECLAUDE_HOMEzclaude-accountsz[00mz[02mz[01;32mz[01;34mz[00;36mz[00;33mz[00;35m[01;31m  c                   V ^8  d   QhRR/# )   returnr    )formats   "[/home/user/overdeck-private-tests/subrouter-s5-systray-latest/modules/systray/statusline.py__annotate__r   '   s     4 4T 4    c                 ,    \        4       \        ,          # )zRead at call time: `runtime_dir()` follows an environment variable, and a
module-level constant freezes whatever it was at import.)r	   CLAUDE_ACCOUNTS_DIR_NAMEr   r   r   claude_accounts_dirr   '   s     =333r   c                    V ^8  d   QhRRRR/# )r   usedintr   strr   )r   s   "r   r   r   -   s     	 	C 	C 	r   c                V    V ^Z8  d   R# V ^K8  d   R# V ^<8  d   \         # V ^(8  d   R# R# )Z   r   z[00;31mz[01;33mz[00;32m)YELLOW)r   s   &r   _percentage_colorr%   -   s/    rzrzrzrzr   T)frozenslotsc                  6    ] tR t^9t$ R]R&   R]R&   R]R&   RtR# )SessionMetadatar    
turn_countfloat | Nonefirst_activitylast_activityr   N__name__
__module____qualname____firstlineno____annotations____static_attributes__r   r   r   r)   r)   9   s    O  r   r)   c                  @    ] tR t^@t$ R]R&   R]R&   R]R&   R]R&   RtR	# )

SessionPinr!   
session_idaccount_slugr   account_homefloat	pinned_atr   Nr.   r   r   r   r6   r6   @   s    Or   r6   c                    V ^8  d   QhRRRR/# )r   	state_dirPath | Noner   r   r   )r   s   "r   r   r   H   s     Z Z+ Z Zr   c                    T ;'       g=    \        \        P                  P                  \        \        4       R ,          4      4      # )
statusline)r   osenvirongetSTATE_DIR_ENVr	   )r=   s   &r   
_state_dirrE   H   s+    YYRZZ^^M;=<;WXYYr   c               $    V ^8  d   QhRRRRRR/# )r   r=   r   r7   r!   r   r   )r   s   "r   r   r   L   s!     9 9 93 94 9r   c                    \         P                  ! VP                  R 4      4      P                  4       pV R,          V R2,          # )utf-8zsession-pinsz.json)hashlibsha256encode	hexdigest)r=   r7   digests   && r   	_pin_pathrN   L   s;    ^^J--g67AACF~%6(%(888r   c               $    V ^8  d   QhRRRRRR/# )r   pathr   payloadMapping[str, object]r   Noner   )r   s   "r   r   r   Q   s"          ';    r   c                   V P                   P                  R R RR7       \        P                  ! V P                   R4       \        P
                  ! RRV P                   RR7      ;_uu_ 4       p\        P                  ! WRR7       VP                  R4       \        VP                  4      pR	R	R	4       \        P                  ! XR
4       \        P                  ! W04       R	#   + '       g   i     L?; i)Ti  )parentsexist_okmodewrH   F)encodingdirdelete)
separators
Ni  ),:)parentmkdirrA   chmodtempfileNamedTemporaryFilejsondumpwriter   namereplace)rP   rQ   handle	temporarys   &&  r   _atomic_writerl   Q   s    KKdT>HHT[[% 		$	$S7TY	Z	Z^d		'j9T%	 
[ HHYJJy 
[	Zs   ,?C""C2	c               $    V ^8  d   QhRRRRRR/# )r   r=   r   pinr6   r   rS   r   )r   s   "r   r   r   \   s!     
 
 
J 
4 
r   c                    \        \        WP                  4      R ^RVP                  RVP                  R\	        VP
                  4      RVP                  /4       R# )schema_versionr7   r8   r9   r;   N)rl   rN   r7   r8   r!   r9   r;   )r=   rn   s   &&r   write_session_pinrq   \   sM    )^^,a#..C,,C 0 01	
	r   c                    V ^8  d   QhRRRR/# )r   rP   r   r   dict[str, object] | Noner   )r   s   "r   r   r   i   s     : :T :6 :r   c                     \         P                  ! V P                  R R7      4      p\        T\        4      '       d   T# R#   \        \         P                  3 d     R# i ; i)rH   rY   N)re   loads	read_textOSErrorJSONDecodeError
isinstancedict)rP   rQ   s   & r   
_read_jsonr|   i   sX    **T^^W^=> !$//79T9 T))* s   &A A! A!c               $    V ^8  d   QhRRRRRR/# )r   r=   r   r7   r!   r   SessionPin | Noner   )r   s   "r   r   r   q   s'     N N N# N:K Nr   c                   \        \        W4      4      pVf   R # VP                  R4      pVP                  R4      pVP                  R4      pVP                  R4      V8w  gY   \        V\        4      '       dC   V'       d;   \        V\        4      '       d%   V'       d   \        V\
        \        34      '       g   R # \        W\        V4      \        V4      4      # )Nr8   r9   r;   r7   )	r|   rN   rC   rz   r!   r    r:   r6   r   )r=   r7   rQ   slugr9   r;   s   &&    r   read_session_pinr   q   s    99:G;;~&D;;~.LK(IL!Z/$$$,,,)c5\22j\(:E)<LMMr   c               $    V ^8  d   QhRRRRRR/# )r   r7   r!   nowr:   r   r~   r   )r   s   "r   r   r      s"     	; 	;S 	;u 	;1B 	;r   c                   \        4       p VR ,          P                  RR7      P                  4       pTR,          T,          R,          pT'       d   TP	                  4       '       g   R# \        YYA4      #   \         d     R# i ; i)default_slugrH   ru   Naccounts
CODEX_HOME)r	   rw   striprx   is_dirr6   )r7   r   base_dirr   r9   s   &&   r   _default_pinr      sz    }H>)44g4FLLN j(4/,>L|**,,j::  s   'A6 6BBr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r   rQ   rR   environmentMapping[str, str] | Noner=   r>   r   r+   r   r~   r   )r   s   "r   r   r      s:      !) 
 
 r   c                  V P                  R 4      p\        V\        4      '       d	   V'       g   R# \        V4      p\	        WT4      pVf   \
        P
                  ! 4       MTpVf   \        P                  MTpRpVP                  \        4      p	VP                  \        4      p
\        V	\        4      '       dp   V	'       dh   \        V
\        4      '       dR   \        V
4      pVP                  4       '       d1   Ve   VP                  V	8X  d   V# \        WIW4      p\        WX4       V# Ve   V# \        WG4      pVe   \        WX4       V# )r7   N)rC   rz   r!   rE   r   timerA   rB   ACCOUNT_SLUG_ENVACCOUNT_HOME_ENVr   r   r8   r6   rq   r   )rQ   r   r=   r   r7   	directoryexistingcurrent_timern   r   account_home_valuer9   s   &&&$        r   pin_sessionr      s    \*Jj#&&j9%I	6H"%+499;3L + 3"**K!C??+,D$)9:$*5G*M*M./  #(=(=(EZ|JCi-J
z
0C
))Jr   c                    V ^8  d   QhRRRR/# )r   r   r   r   ztuple[str, Path] | Noner   )r   s   "r   r   r      s       8 D[ r   c                   V f   \         P                  MT p V P                  \        4      ;'       g    RpV P                  \        4      ;'       g    V P                  R4      ;'       g    RpV'       d   \        V4      MR pV'       g0   Ve,   VP                  \        8X  d   VP                  P                  pVf%   V'       d   \        4       V,          \        ,          pV'       d   Ve   VP                  4       '       g   R # W3# )N CLAUDE_CONFIG_DIR)rA   rB   rC   CLAUDE_ACCOUNT_SLUG_ENVCLAUDE_ACCOUNT_HOME_ENVr   rh   CLAUDE_ACCOUNT_HOME_NAMEr`   r   r   )r   r   r   r9   s   &   r   claude_accountr      s     + 3"**K??2399rD/0^^KOODW4X^^\^  0B4*+tLL,1B1BF^1^""''*,t36NN<'|/B/B/D/Dr   c               $    V ^8  d   QhRRRRRR/# )r   rQ   rR   r   r   r   boolr   )r   s   "r   r   r      s$      !0H	r   c                   \        V4      pV P                  R 4      pVe   \        V\        4      '       g   R# V^,          p/ pR F  w  rgVP                  V4      p\        V\        4      '       g   K.  VP                  R4      p	VP                  R4      p
\        V	\        4      '       g   \        V	\
        \        34      '       g   K  RV	RV
/WW&   K  	  V'       g   R# ^ RIHp VP                  WE4       R# )rate_limitsFused_percentage	resets_atpercent)ClaudeHealthClientT))	five_hourr   )	seven_dayr   )
r   rC   rz   r{   r   r    r:   claude_health_clientr   _write_rate_limits_payload)rQ   r   accountr   r9   mappedsourcetargetwindowr   r   r   s   &&          r   ingest_claude_usager      s     [)G++m,Kjd;;1:L "FR(&$''zz+,JJ{+	dD!!D3,)G)G#T;	B S 711,Gr   c                    V ^8  d   QhRRRR/# )r   r   r!   r   zAccountSnapshot | Noner   )r   s   "r   r   r      s     @ @ @!7 @r   c                    ^ RI Hp ^ RIHp \	        4       R,          pV! V^ R7      P                  4       pV! RV4      P                  V 4      # )r   )_tool_health_snapshots)HealthSnapshotStorezhealth_cache.json)stale_after_scodex)command_routerr   health_storer   r	   readrC   )r   r   r   rP   	snapshotss   &    r   codex_snapshotr      sB    50=..D#D:??AI!'9599$??r   c               $    V ^8  d   QhRRRRRR/# )r   r   objectr   r:   r   
str | Noner   )r   s   "r   r   r      s&     N N Ne N
 Nr   c                   \        V \        \        34      '       g   R # \        ^ \        \        V 4      V,
          4      4      pV^ 8X  d   R# VR8  d   \        ^V^;,           ^<,          4       R2# VR8  d*   \	        VR4      w  r4V^<8  d   V R2# V RV^<,           R2# \	        VR4      w  rVVR8  d   V R2# V RVR,           R2# )N0mr   mQ hd)rz   r    r:   maxdivmod)r   r   secondshoursminutesdays	remainders   &&     r   _format_remainingr      s    i#u..!Sy)C/01G!|~a'B,2-./q11.%l%{K5'7b=/0KKWe,OD"T)dV1:M$qd9J8K1/MMr   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   labelr!   r   r   r   r:   staler   r   r   r   )r   s   "r   r   r      s6     
O 
O# 
Ov 
OE 
O$ 
O: 
Or   c                R   \        V\        4      '       g   R # VP                  R4      p\        VP                  R4      V4      p\        V\        4      '       d   ^ Tu;8:  d   ^d8:  d	   M R # Vf   R # RV R2pV'       d   RV R2p\
         V  R\        V4       V R\         V 2# )Nr   r   z (z left)z left; stale)r_   %)rz   r{   rC   r   r    MAGENTAr%   RESET)r   r   r   r   r   	remainingsuffixs   &&&&   r   _format_windowr      s    fd##::'(D!&**["93?IdC  T(8S(8 =F<M)F#Fi[.YugQ067vQugfXNNr   c                    V ^8  d   QhRRRR/# )r   valuer   r   r+   r   )r   s   "r   r   r      s      & \ r   c                    \        V \        4      '       g   R #  \        P                  ! V P	                  RR4      4      P                  4       #   \         d     R # i ; i)NZz+00:00)rz   r!   r   fromisoformatri   	timestamp
ValueError)r   s   &r   _iso_timestampr      sN    eS!!%%emmC&BCMMOO s   3A AAc                    V ^8  d   QhRRRR/# )r   rQ   rR   r   r)   r   )r   s   "r   r   r   	  s      3  r   c                   V P                  R 4      p\        V\        4      '       d	   V'       g   \        ^ RR4      # \	        4       p. p \        V4      P                  RR7      ;_uu_ 4       pV F  p \        P                  ! V4      p\        T\        4      '       g   K2  TP                  R4      R8X  dX   TP                  R4      '       gA   TP                  R4      p\        T\        4      '       d   T'       d   TP                  T4       TP                  R4      R8X  g   K  \        TP                  R	4      4      pTf   K  TP                  T4       K  	  RRR4       \        \        T4      T'       d   \!        T4      MRT'       d   \#        T4      4      # R4      #   \        P                   d     EKM  i ; i  + '       g   i     Lm; i  \         d    \        ^ RR4      u # i ; i)
transcript_pathNrH   ru   typeusertoolUseResultpromptId	assistantr   )rC   rz   r!   r)   setr   openre   rv   ry   r{   addr   appendrx   lenminr   )	rQ   r   
prompt_ids
activities
transcriptlinerecord	prompt_idr   s	   &        r   _session_metadatar   	  s   kk"34Oos++?q$--5J J./"'''99Z"!ZZ-F "&$//::f%/

?8S8S &

: 6I!)S11i"y1::f%4 .vzz+/F GI ,")))4 # :$ J%J4%J  ,0  ++ 	 :9   .q$--.sm   
#G -G4F$
AG.G>$G'GGG $F>	9G=F>	>GG	G G G/.G/c                    V ^8  d   QhRRRR/# )r   rQ   rR   r   r!   r   )r   s   "r   r   r   )  s     T T 4 T Tr   c                   V P                  R 4      p\        V\        4      '       d   VP                  R4      MRp\        V\        4      '       d	   V'       gD   \	        \
        P                  ! 4       R,          R,          4      pVe   VP                  R4      MRp\        V\        4      '       d   RR/P                  W"4      # R# )	effortlevelNz.claudezsettings.jsoneffortLevelmediummedr   )rC   rz   r{   r!   r|   r   home)rQ   effort_fieldr   settingss   &   r   _configured_effortr   )  s    ;;x(L*4\4*H*H\g&dFfc""&diikI5GH080Dm,$4>vs4K4KHe  0SQSSr   c                    V ^8  d   QhRRRR/# )r   r   r:   r   r!   r   )r   s   "r   r   r   2  s      e  r   c                &   \        ^ \        V 4      4      pVR8  d1   \        VR4      w  r#\        VR4      w  rCV RVR RV^<,          R R2# VR8  d   \        VR4      w  rCV RV^<,           R2# V^<8  d   \        V^<4      w  rPV RV  R2# V R2# )r   r   r   r   02dr   r   s)r   r    r   )r   totalr   r   r   r   s   &     r   _format_durationr  2  s    3w< E~ .!)T2qs1Y"_S$9;;}!%.)r/*!,,{!%,!G9A&&WA;r   c               $    V ^8  d   QhRRRRRR/# )r   rQ   rR   r   r:   r   r!   r   )r   s   "r   r   r   A  s"      , 5 S r   c                   V P                  R 4      p\        V\        4      '       d   VP                  R4      MRp\        V\        4      '       d	   V'       g*   \        V\        4      '       d   VP                  R4      MRp\	        V 4      pV'       d   RV R2MRpV P                  R4      p\        V\        4      '       d   VP                  R4      MRp\        V\        4      '       d1   VP                  \        \        P                  ! 4       4      R	^4      pMRp\         V V \         R
\         V \         2.p\        V 4      p	V	P                  '       d+   VP                  \         V	P                   R\         24       V	P                  er   WP                  ,
          \         8  d   \"        M\$        p
\&        P(                  ! V	P                  4      P+                  R4      pVP                  V
 V \         24       V	P,                  eR   V	P                  eD   VP                  \.         \1        V	P                  V	P,                  ,
          4       \         24       V P                  R4      p\        V\        4      '       d   VP                  R4      MRp\        V\2        \4        34      '       d8   \7        V4      pVP                  \$         R\9        V4       V R\         24       RP;                  V4      # )modeldisplay_nameNidr   ()	workspacecurrent_dir~r_   tz%H:%M:%S %d/%mcontext_windowr   zctx:r   z  )rC   rz   r{   r!   r   ri   r   r   GREENr   BLUEr   r*   r   CYANr-   ACTIVITY_STALE_SECONDSBOLD_REDr$   r   fromtimestampstrftimer,   DIMr  r    r:   roundr%   join)rQ   r   r	  
model_namer   effort_labelr  cwdpartsmetadataactivity_colorr   contextr   roundeds   &&             r   
_core_liner%  A  sQ   KK E.8.E.E>*4Jj#&&j(25$(?(?UYYt_R
(F$*Qvha=LK(I*4Y*E*E)--
&2C#skk#diik*C3wzl<.qseE7KLE )Hvh112!E7;<)%(+A+A%ADZ%Z`f**8+A+ABKKL\]	'	{5':;*x/E/E/Qu-h.D.DxG^G^.^_`af`ghikk*+G-7-F-F7;;()DD$e%%+xt$5g$>#?y%QR99Ur   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   r   r   r   r:   r   r   r   r!   r   )r   s   "r   r   r   `  s4     
 

"(
/4
=A

r   c           
     b    R P                  R \        RWV4      \        RWV4      3 4       4      # ) c              3  2   "   T F  pVf   K	  Vx  K  	  R # 5iNr   ).0r   s   & r   	<genexpr>!_usage_windows.<locals>.<genexpr>c  s"      
F  	
s   
5h7d)r  r   )r   r   r   r   s   &&&&r   _usage_windowsr0  `  s>     88  4747
  r   c               (    V ^8  d   QhRRRRRRRR/# )	r   rQ   rR   r   r   r   r:   r   r!   r   )r   s   "r   r   r   m  s)      3  3-  3$  3U  3s  3r   c           
        V P                  R 4      p\        V\        4      '       d	   V'       g   R# \        W4      pVf   R# VP                  P                  4       '       g   \        W24      pVf   R# \        W4       Tp\        VP                  4      pVf   RVP                   R2# VP                  P                  R8X  d>   VP                  ;'       g    VP                  P                  pRVP                   RV R	2# VP                  RJ ;'       g    W&P                  ,
          \        8  pR
VP                  VP                   3RVP"                  VP$                  33 U	U
Uu/ uF  w  rpV
f   K  V	RV
RV/bK  	  pp
p	p\'        VP                  R
4      VP                  R4      W(4      pV'       g>   VP                  ;'       g    VP                  P                  pRVP                   RV R	2# RVP                   RV 2# u upp
p	i )r7   z#codex:unavailable (missing session)Nz"codex:unavailable (no session pin)z*codex:unavailable (pinned account missing)zcodex:z$ usage:unavailable (no health cache)brokenz usage:unavailable (r  r   r   r   r   r(  )rC   rz   r!   r   r9   r   r   rq   r   r8   statusr   detail
checked_atSTALE_AFTER_SECONDSprimary_used_pctprimary_reset_atsecondary_used_pctsecondary_reset_atr0  )rQ   r   r   r7   rn   replacementsnapshotr5  r   r   r   r   windows	availables   &&&           r   _codex_liner@  m  s   \*Jj#&&j4
9
1C
{3""$$":3?)1c../H(())MNN(99HOO$9$9(())=fXQGG4'ZZ31D1D+DGZ+ZE (33X5N5NO(55x7R7RS*
*
%EI  	D!7KCC*
   w{{;7[9QSV^I99HOO$9$9(())=fXQGGC$$%Qyk22s   '	H5Hc               $    V ^8  d   QhRRRRRR/# )r   r   r:   r   r   r   r!   r   )r   s   "r   r   r     s'     T Te T*B Tc Tr   c           
        \        V4      pVf   R# Vw  r4VR,          p\        V4      pVf   RV R2#  VP                  4       P                  p^ RIHpHp	 VP                  WiP                  Wp4      p
RT
P                  T
P                  3RT
P                   T
P"                  33 UUUu/ uF  w  rpTf   K  TR	TR
T/bK  	  ppppY,
          \$        8  p\'        TP)                  R4      TP)                  R4      Y4      pRT T'       d   RT 2 2# R 2#   \        \        \        \        \        3 d
    RT R2u # i ; iu upppi )Nzclaude:unavailable (no account)zrate-limits-cache.jsonzclaude:z usage:unavailable (no cache))r   HealthStatusz usage:unavailable (unreadable)r   r   r   r   r(  z usage:unavailable)r   r|   statst_mtimer   r   rC  _snapshot_from_payloadOKrx   ImportErrorAttributeError	TypeErrorr   r8  r9  r:  r;  r7  r0  rC   )r   r   r   r   r9   
cache_pathcacher6  r   rC  r=  r   r   r   r>  r   r?  s   &&               r   _claude_linerM    sp   [)G0 D 88Jz"E};<<?__&//
I%<<??J
 (33X5N5NO(55x7R7RS*
*
%EI  	D!7KCC*
   22Ew{{;7[9QSV^ITFiQyk?RSS=QRSS [.)ZH ?=>>?s   >D )	E7E&D?>D?r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   rQ   rR   r=   r>   r   r+   r   r   r   r!   r   )r   s   "r   r   r     s:     ( (!(( 
	(
 *( 	(r   c                   \        V4      pVf   \        P                  ! 4       MTp\        W4      p\        WV4      p\	        WS4      pV RV RV 2# )Nr]   )rE   r   r%  r@  rM  )	rQ   r=   r   r   r   r   corer   claudes	   &&$$     r   renderrR    sV     9%I"%+499;3Lg,DL9E,4FV2eWBvh''r   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# r   r   )r   s   "r   r   r     sA     A A!A)A A
 
A Ar   c                   \        WW#R 7      # ))r   )r   )rQ   r   r=   r   s   &&&$r   start_sessionrU    s     wY@@r   c                   V ^8  d   QhRR/# )r   r   rs   r   )r   s   "r   r   r     s     : :/ :r   c                      \         P                  ! \        P                  4      p \        T \        4      '       d   T # R #   \         P                  \
        3 d     R # i ; ir*  )re   loadsysstdinry   rx   rz   r{   )rQ   s    r   _read_payloadr[    sQ    ))CII& !$//79T9   '* s   $A   AAc                    V ^8  d   QhRRRR/# )r   argvz	list[str]r   r    r   )r   s   "r   r   r     s     
 
y 
S 
r   c                    \        V 4      ^8w  g   V ^,          R9  d   ^# \        4       pVf   ^# \        V4       V ^,          R8X  d   \        V4      e   ^ # ^# \	        \        V4      4       ^ # )r   session-start>   rR  r_  )r   r[  r   rU  printrR  )r]  rQ   s   & r   mainra    sc    
4yA~a(CCoG Aw/!!'*6q=A=	&/r   __main__i  r*  )NN)E
__future__r   rI   re   rA   rY  rc   r   dataclassesr   r   pathlibr   typingr   r   runtime_pathsr	   health_clientr
   rD   r   r   r   r   r   r   r7  r   r  r  r  r  r$   r   r  r  r   r%   r)   r6   rE   rN   rl   rq   r|   r   r   r   r   r   r   r   r   r   r   r   r  r%  r0  r@  rM  rR  rU  r[  ra  r/   
SystemExitr]  r   r   r   <module>rj     s   "   	 
   !   ) %-./ / 7 7 ( ,  	
 4	 $d#    $  $d#  $Z9
 
:N&	;
  B 4@N
O@T>
 3FT>( 	(
 -1( (A
 A A:
 z
T#((^
$$ r   