+
    UBiH                       ^ RI Ht ^ RI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 ^RI
Ht ^RI
Ht ^R	I
Ht ^R
I
Ht ^RIHtHt ^RIHt ^RIHt ^RIHt ]P4                  '       d@   ^ RIHt ^ RIt ! R R]P<                  ]4      t]P@                  ]!]PD                  3,          t#R R lt$R R lt% ! R R]PL                  4      t' ! R R4      t(R R lt)R R lt*R R lt+R  R! lt,R# )"    )annotationsN)build)cmdline)coredataoptions)environment)mesonlib)mintro)mlog)AstIDGeneratorIntrospectionInterpreter)MachineChoice)	OptionKey)OptionInterpreter)Protocolc                  6    ] tR t^ t$ R]R&   R]R&   R]R&   RtR# )
CMDOptionsstrbuilddirbool
clearcachepager N)__name__
__module____qualname____firstlineno____annotations____static_attributes__r       5/usr/lib/python3.14/site-packages/mesonbuild/mconf.pyr   r       s    r!   r   c                    V ^8  d   QhRRRR/# )   parserz'argparse.ArgumentParser'returnNoner   )formats   "r"   __annotate__r)   +   s     < <3 < <r!   c                    \         P                  ! V 4       V P                  R RRR7       V P                  RRRRR7       V P                  R	R
RRR7       V P                  R\         P                  R/ RR7       R# )r   ?.)nargsdefaultz--clearcache
store_trueFz,Clear cached state (e.g. found dependencies))actionr.   helpz
--no-pagerstore_falser   z!Do not redirect output to a pager)r0   destr1   z-Ucmd_line_optionszRemove a subproject option.)r0   r3   r.   r1   N)r   register_builtin_argumentsadd_argumentKeyNoneAction)r%   s   &r"   add_argumentsr8   +   s    &&v.

#s;
|UK  M
]@  B
W%:%:AS]_:  <r!   c                    V ^8  d   QhRRRR/# )r$   valT.Anyr&   r   r   )r(   s   "r"   r)   r)   5   s     	 	5 	S 	r!   c                    \        V \        4      '       d   \        V 4      P                  4       # \        V \        4      '       d   R P                  R V  4       4      pRV R2# V f   R# \        V 4      # )z, c              3  8   "   T F  p\        V4      x  K  	  R # 5iN)	stringify).0is   & r"   	<genexpr>stringify.<locals>.<genexpr>9   s     0CqillCs   [] )
isinstancer   r   lowerlistjoin)r:   ss   & r"   r?   r?   5   s_    #t3x~~	C		II0C001#Qx	3xr!   c                      ] tR t^AtRtR# )ConfExceptionr   N)r   r   r   r   r    r   r!   r"   rM   rM   A   s    r!   rM   c                      ] tR t^EtR R ltR R ltR R ltR R ltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltRtR# )Confc                   V ^8  d   QhRR/# )r$   	build_dirr   r   )r(   s   "r"   r)   Conf.__annotate__F   s     6} 6}# 6}r!   c           	     	   \         P                  P                  \         P                  P                  V4      4      V n        R \         P                  P                  V P                  4      V P                  39   d/   \         P                  P                  V P                  4      V n        RV n        ^<V n        RV n	        . V n
        . V n        . V n        . V n        \        4       V n        \         P                  P!                  \         P                  P#                  V P                  R4      4      '       EdR   \        P$                  ! V P                  4      V n        V P                  P&                  P)                  4       V n        V P                  P&                  P,                  V n        RV n        V P,                  P0                  P3                  4        EF  w  r#VEe   \         P                  P5                  V^ ,          4      '       d   V^ ,          p\7        VR4      ;_uu_ 4       p\8        P:                  ! VP=                  4       4      P?                  4       pWc^,          8w  d|   \A        V P,                  PB                  V4      pVPE                  V4       V P,                  PB                  PG                  VPH                  V4       WF3V P,                  P0                  V&   RRR4       EK  \         P                  P#                  V P*                  R4      p\         P                  P5                  V4      '       g+   \         P                  P#                  V P*                  R4      p\         P                  P5                  V4      '       d   \A        V P,                  PB                  V4      pVPE                  V4       V P,                  PB                  PG                  VPH                  V4       \7        VR4      ;_uu_ 4       p\8        P:                  ! VP=                  4       4      P?                  4       pRRR4       VX3V P,                  P0                  V&   EK  V P,                  PB                  PG                  / V4       EK  	  R# \         P                  PK                  \         P                  P#                  V P                  \&        PL                  4      4      '       d   \N        PP                  ! 4       ;_uu_ 4        \         P                  P                  \         P                  P                  V P                  4      4      V n        \S        V P*                  RR\U        4       .R	7      pVPW                  4        RRR4       XP,                  V n        R
V n        R# \Y        RV R24      h  + '       g   i     EK  ; i  + '       g   i     EL; i  + '       g   i     Lb; i)zmeson.buildNzmeson-privateFrbzmeson.optionszmeson_options.txtrF   ninja)visitorsTz
Directory zC is neither a Meson build directory nor a project source directory.)-ospathabspathrealpathrQ   basenamedirnamer   max_choices_line_lengthpending_sectionname_col	value_colchoices_col	descr_colsetall_subprojectsisdirrJ   loadr	   get_source_dir
source_dirr   default_values_onlyoptions_filesitemsexistsopenhashlibsha1read	hexdigestr   optstoreprocessupdate_project_optionsr   isfilebuild_filenamer   
no_loggingr   r   analyzerM   )	selfrQ   subconf_optionsopfilefophashoiintrs	   &&       r"   __init__Conf.__init__F   s   )9)9))DERWW--dnn=t~~NNWW__T^^<DN
')$04)+*,,.*,+.577==dnnoFGGDNN3DJ"jj44CCEDO JJ22;;DM',D$
 &*]]%@%@%F%F%H!+|A0O0O)!_Ffd++q!(affh!7!A!A!C!!_4!24==3I3I3!OBJJv. MM22II"**VYZ@F?ODMM77< ,+  WW\\$//?KF77>>&11!#doo?R!Sww~~f--.t}}/E/EsK

6*..EEbjjRUV!&$//1%,\\!&&(%;%E%E%GF 0<BF;K33C8..EEb#N- &I. WW^^BGGLL9S9STUU"""$''//"''2B2B4>>2R"S/WZhZjYkl # !MMDM'+D$*YK7z {||; ,++ 0// #"s&   *B;V03WA>W0WWW)	c                   V ^8  d   QhRR/# r$   r&   r'   r   )r(   s   "r"   r)   rR   ~   s     $ $T $r!   c                	:    V P                   P                  4        R # r>   )r   clear_cachery   s   &r"   r   Conf.clear_cache~   s    !!#r!   c                   V ^8  d   QhRR/# r   r   )r(   s   "r"   r)   rR      s     5 5d 5r!   c                	    V P                   '       d   R # \        P                  ! V P                  V P                  4       R # r>   )ri   r   saverQ   r   s   &r"   r   	Conf.save   s'    ###dmmT^^4r!   c                   V ^8  d   QhRR/# r   r   )r(   s   "r"   r)   rR      s     3! 3!t 3!r!   c           	        \         P                  ! R	R7      ^ ,          p\        V^,          ^4      pV^V,          ,
          ^,
          pY"Y#^8  d   TMT3p\        V P                  V P
                  V P                  V P                  4       EFF  p\        V4      '       g   \        P                  ! R4       K-  V^ ,          '       d8   \        VR,          4      '       g    \        P                  ! V^ ,          4       Ks  R R lpV! V^ ,          V^ ,          4      pV! V^,          V^,          4      pV! V^,          V^,          4      p	V! V^,          V^,          4      p
\        P                  ! WxWRR7       FT  p\        ^4       Uu. uF(  qV,          '       d	   W,          MRWL,          ,          NK*  	  pp\        P                  ! V!   KV  	  EKI  	  R# u upi )
a  Do the actual printing.

This prints the generated output in an aligned, pretty form. it aims
for a total width of 160 characters, but will use whatever the tty
reports its value to be. Though this is much wider than the standard
80 characters of terminals, and even than the newer 120, compressing
it to those lengths makes the output hard to read.

Each column will have a specific width, and will be line wrapped.
)fallbackrF   :   NNc               $    V ^8  d   QhRRRRRR/# )r$   textLOGLINEwidthintr&   zmlog.TV_LoggableListr   )r(   s   "r"   r)   (Conf.print_aligned.<locals>.__annotate__   s'     J J J J8L Jr!   c           
     D   \        V \        P                  4      '       d   V P                  MT pVP	                  R 4      '       d   RMRp\
        P                  ! W!VR7      p\        V \        P                  4      '       dG   \        P                  ! RV Uu. uF#  p\        P                  ! WPP                  4      NK%  	  up4      pM\        P                  ! RV4      pV Uu. uF,  p\        V4      RV\        V4      ,
          ,          ,           NK.  	  up# u upi u upi )rD    rF   )subsequent_indentzT.List[LOGLINE])rG   r   AnsiDecoratorr   
startswithtextwrapwrapTcastcoder   len)r   r   rawindentwrapped_rA   wrappeds   &&     r"   	wrap_text%Conf.print_aligned.<locals>.wrap_text   s    #-dD4F4F#G#GdiiT #s 3 3#==vN dD$6$677ff%6ck8lck^_9K9KAyy9Yck8lmGff%6AG BIIAAA!777II 9m
 Js   )D
#2D)	fillvaluer   N)   r   )shutilget_terminal_sizemaxzipr_   r`   ra   rb   anyr   log	itertoolszip_longestrange)ry   total_width_collast_columnfour_columnliner   namer:   choicedesclrA   rk   s   &             r"   print_alignedConf.print_aligned   sj    ..A!D;!#R(!QX.24aTRt~~t7G7GXDt99 Awws48}}a!J$ T!Wk!n5DDG[^4CtAwA7FT!Wk!n5D**4fbQINqRA13+??R%  RC YD Ss   
.Gc                    V ^8  d   QhRRRR/# )r$   opts@T.Union[options.MutableKeyedOptionDictType, options.OptionStore]r&   z/T.Dict[str, options.MutableKeyedOptionDictType]r   )r(   s   "r"   r)   rR      s      1q *Yr!   c                	    / pVP                  4        FV  w  r4VP                  e&   V P                  P                  VP                  4       WBP	                  VP                  / 4      V&   KX  	  V# r>   )rk   
subprojectrd   add
setdefault)ry   r   resultkos   &&   r"   split_options_per_subproject!Conf.split_options_per_subproject   s[    BDJJLDA||'$$((656allB/2 ! r!   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )r$   r   r   valuechoicesdescrr&   r'   r   )r(   s   "r"   r)   rR      s1     % %g %g % %PW %\` %r!   c                	   \        V\        P                  4      '       d+   R V P                  ,          VP                  ,           Vn        MR V P                  ,          V,           pV P
                  P                  V4       V P                  P                  V4       V P                  P                  V4       V P                  P                  V4       R# )r   N)
rG   r   r   print_marginr   r_   appendr`   ra   rb   )ry   r   r   r   r   s   &&&&&r"   	_add_lineConf._add_line   s    dD..//d///$));DI***T1DT"e$(e$r!   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r$   keyr   r   r   r   r;   r   r&   r'   r   )r(   s   "r"   r)   rR      s0     2 2i 2 2E 2E 2VZ 2r!   c           
     	$   V P                  4        \        V4      p\        V4      pV P                  \        P                  ! \        VP                  R R7      4      4      \        P                  ! V4      \        P                  ! V4      V4       R # )N)r   )	_add_sectionr?   r   r   greenr   evolveyellowblue)ry   r   r   r   r   s   &&&&&r"   
add_optionConf.add_option   sc    % G$tzz#cjjDj&A"BCT[[QVEWyy)5	2r!   c                    V ^8  d   QhRRRR/# )r$   titler   r&   r'   r   )r(   s   "r"   r)   rR      s     d ds dt dr!   c           	     	   V P                  4        \        P                  ! V4      p\        P                  ! R 4      p\        P                  ! V P                  '       d   RMR4      p\        P                  ! R4      pV P	                  RRRR4       V P	                  W$WS4       V P	                  R\        V4      ,          R\        V4      ,          R\        V4      ,          R\        V4      ,          4       R# )DescriptionzDefault ValuezCurrent ValuezPossible ValuesrF   -N)r   r   cyanri   r   r   )ry   r   newtitler   r   r   s   &&    r"   	add_titleConf.add_title   s    99U#		-(		T-E-E-E/?[))-.r2r2&x7sS]*C#e*,<cCL>PRUX[\aXbRbcr!   c                   V ^8  d   QhRR/# r   r   )r(   s   "r"   r)   rR      s     $ $d $r!   c                	    V P                   '       g   R # ^ V n        V P                  RRRR4       V P                  \        P                  ! V P                   R,           4      RRR4       ^V n        R V n         R # )NrF   :)r^   r   r   r   normal_yellowr   s   &r"   r   Conf._add_section   sc    ###r2r2&t))$*>*>*DEr2rR#r!   c                    V ^8  d   QhRRRR/# )r$   sectionr   r&   r'   r   )r(   s   "r"   r)   rR      s     ' '3 '4 'r!   c                	    Wn         R # r>   )r^   )ry   r   s   &&r"   add_sectionConf.add_section   s    &r!   c               $    V ^8  d   QhRRRRRR/# )r$   r   r   r   r   r&   r'   r   )r(   s   "r"   r)   rR      s(     V V3 V.n Vsw Vr!   c                	   V'       g   R # V'       d   V P                  V4       \        VP                  4       4       F?  w  r4VP                  4       pV P	                  W4P
                  WTP                  4       4       KA  	  R # r>   )r   sortedrk   printable_valuer   descriptionprintable_choices)ry   r   r   r   r   r   s   &&&   r"   print_optionsConf.print_options   sY    NN5!4::<(DA//1O OOA}}o?R?R?TU )r!   c                    V ^8  d   QhRRRR/# )r$   r   r   r&   r'   r   )r(   s   "r"   r)   rR      s     T T T Tr!   c           
     	   V'       d   \         P                  ! 4        R  R lpV P                  '       d   V! 4        \         P                  ! R4       \         P                  ! R4       \         P                  ! RV P                  4       V P                  '       g"   \         P                  ! RV P
                  4       \        \        P                  4      p\        R4      \        R4      0p/ p/ p/ p\        P                  ! \        4      pV P                  P                  P                  P                  4        F  w  rW9   d   WV	&   K  W9   d   WV	&   K  V	P!                  4       '       dL   V	P#                  4       pV P$                  '       d   WP$                  P&                  9  d   Kq  WV,          V	&   K~  V P                  P                  P)                  V	4      '       g   K  WV	&   K  	  T P+                  VP                  4        U	U
u/ uF'  w  rV	P,                  \.        P0                  J g   K%  WbK)  	  up
p	4      pT P+                  VP                  4        U	U
u/ uF'  w  rV	P,                  \.        P2                  J g   K%  WbK)  	  up
p	4      pT P+                  V P                  P                  P                  4        U	U
u/ uFT  w  rV P                  P                  P5                  V	4      '       g   K2  V	P,                  \.        P0                  J g   KR  WbKV  	  up
p	4      pT P+                  V P                  P                  P                  4        U	U
u/ uFT  w  rV P                  P                  P5                  V	4      '       g   K2  V	P,                  \.        P2                  J g   KR  WbKV  	  up
p	4      pT P+                  V P                  P                  P                  4        U	U
u/ uF4  w  rV P                  P                  P7                  V	4      '       g   K2  WbK6  	  up
p	4      pV P                  ;'       g%    V P$                  P8                  P;                  4       pV P=                  R4       V P?                  R	VR
,          4       V'       d"   V'       d   V P?                  RVR
,          4       T P?                  RV P                  P                  P                  4        U	U
u/ uF4  w  rV P                  P                  PA                  V	4      '       g   K2  WbK6  	  up
p	4       T P?                  RV P                  P                  P                  4        U	U
u/ uF4  w  rV P                  P                  PC                  V	4      '       g   K2  WbK6  	  up
p	4       V P?                  RVPE                  R
/ 4      4       V'       d#   V P?                  RVPE                  R
/ 4      4       VP                  4        F  w  ppV P?                  V R2V4       K  	  V P?                  RV4       V P?                  RV4       V P?                  RVPE                  R/ 4      4       \G        V PH                  4       F  pVR8X  d   V P=                  R4       MV P=                  RV,           4       VV9   d   V P?                  R	VV,          4       VV9   d"   V'       d   V P?                  RVV,          4       VV9   d   V P?                  RVV,          4       VV9   d"   V'       d   V P?                  RVV,          4       VR8w  g   K  VV9   g   K  V P?                  RVV,          4       K  	  V PK                  4        V P                  '       d   \         P                  ! R4       V! 4        V PM                  4        V PO                  4        R
# u up
p	i u up
p	i u up
p	i u up
p	i u up
p	i u up
p	i u up
p	i )c                   V ^8  d   QhRR/# r   r   )r(   s   "r"   r)   %Conf.print_conf.<locals>.__annotate__  s     	Q 	Qd 	Qr!   c                 ^    \         P                  ! R 4       \         P                  ! R4       R# )zBThe source directory instead of the build directory was specified.z4Only the default values for the project are printed.N)r   warningr   r!   r"   print_default_values_warning5Conf.print_conf.<locals>.print_default_values_warning  s    LL]^LLOPr!   rF   zCore properties:z  Source dirz  Build dir 	errorlogsstdsplitzGlobal build optionszCore optionsNzBackend optionszBase optionszCompiler optionsz module optionsDirectorieszTesting optionszProject optionszMain projectzSubproject )(r   start_pagerri   r   rh   rQ   rc   r   BUILTIN_DIR_OPTIONSr   collectionsdefaultdictdictr   rr   rk   has_module_prefixget_module_prefixr   modulesis_builtin_optionr   machiner   HOSTBUILDis_compiler_optionis_project_optionr	   is_cross_buildr   r   is_backend_optionis_base_optiongetr   rd   r   "print_nondefault_buildtype_optionsprint_augments)ry   r   r   dir_option_namestest_option_namesdir_optionstest_optionscore_optionsmodule_optionsr   vmodnamehost_core_optionsbuild_core_optionshost_compiler_optionsbuild_compiler_optionsproject_optionsshow_build_optionsmodmod_optionsr   s   &&                   r"   
print_confConf.print_conf   sZ   	Q ###(*HHRL#$1'''HH^T^^4w::;&{3&z24 ;=;=;=JUJaJabfJgMM**2288:DA$!"A'"#Q$$&& --/:::'1C1C"C-.w'*''99!<<"#Q ; !==P\PbPbPd  ?IPdhihqhq  vC  vH  vH  iHtqtPd  ?I  J!>>Q]QcQcQe  @KQeijirir  wD  wJ  wJ  jJQe  @K  L $ A ATXTaTaTjTjTpTpTr  CHTrDAvz  wD  wD  wM  wM  w`  w`  ab  wc4  hi  hq  hq  uB  uG  uG  hG414Tr  CH  !I!%!B!BUYUbUbUkUkUqUqUs  DJUsTQw{  xE  xE  xN  xN  xa  xa  bc  xdD  ij  ir  ir  vC  vI  vI  iIDADUs  DJ  "K;;dmmNdNdNjNjNl  =]Nldaptp}p}  qG  qG  qY  qY  Z[  q\TQTNl  =]  ^!55``9O9O9^9^9`/0>+<T+BC"4r#5d#;<,@V@V@\@\@^  /O@^bfbobobxbx  cK  cK  LM  cNtqt@^  /O  	P>T]]=S=S=Y=Y=[  ,I=[TQ_c_l_l_u_u  `E  `E  FG  `HDAD=[  ,I  	J-/D/H/Hr/RSr#9#=#=dB#GH . 4 4 6C#o6D !7=+6,l;,o.A.A"b.IJ !5!56JR  0  !;<.."">3DZ3PQ//4F""2'9*'EF22""#57LZ7XY338J""2'=j'IJRJ/$A""#4oj6QR 7 	 ###HHRL(*//1Y ?I @K CH DJ =] /O ,Is`   "_
2_
"_
_
/_
9_
_
/_ 
_ 
-_ 
-/_&
!_&
-/_,!_,"/_2_2c                   V ^8  d   QhRR/# r   r   )r(   s   "r"   r)   rR   T  s     5 5D 5r!   c                	    V P                   P                  4       pV'       g   R # \        P                  ! R4       \        P                  ! R4       V F7  p\        P                  ! V^ ,          R V^,          R V^,          R 24       K9  	  R # )NzL
The following option(s) have a different value than the build type default
z                current   default2110)r   get_nondefault_buildtype_argsr   r   )ry   mismatchingms   &  r"   r  'Conf.print_nondefault_buildtype_optionsT  si    mmAACab34AHH!Ry1b	!A$r34 r!   c                   V ^8  d   QhRR/# r   r   )r(   s   "r"   r)   rR   ]  s     8 8 8r!   c                	V   V P                   P                  P                  '       dm   \        P                  ! R 4       V P                   P                  P                  P                  4        F"  w  r\        P                  ! V:R VR 24       K$  	  R# \        P                  ! R4       R# )z
Currently set option augments:r+  r,  z
There are no option augments.N)r   rr   augmentsr   r   rk   )ry   r   r  s   &  r"   r  Conf.print_augments]  su    ==!!***HH78..77==?A88Ab6*+ @ HH67r!   )rd   r   rQ   ra   r   ri   rb   r]   r_   r^   r   rh   r`   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'  r  r  r    r   r!   r"   rO   rO   E   sT    6}p$53!j%2d$'VTl58 8r!   rO   c                    V ^8  d   QhRRRR/# r$   r   r   r&   r   r   )r(   s   "r"   r)   r)   e  s     * *j *T *r!   c                ,    \        V P                  4      # r>   )r   r4   r   s   &r"   has_option_flagsr8  e  s    (())r!   c                    V ^8  d   QhRRRR/# r6  r   )r(   s   "r"   r)   r)   h  s      : $ r!   c                T    \        V 4      '       d   R # V P                  '       d   R # R# )FT)r8  r   r   s   &r"   is_print_onlyr;  h  s"      r!   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)   o  s!      j C C r!   c                   \        V 4      pR p \        V4      pVP                  '       d   V'       g   \        P                  ! R4      hVP                  '       g	   V'       d   VP                  V P                  4       ^ # Rp\        V 4      '       d8   WCP                  P                  V 4      ,          p\        P                  ! W4       V P                  '       d   VP                  4        RpV'       dq   VP                  4        \        P                   ! VP                  VP"                  P$                  P&                  4       \        P(                  ! VP"                  . 4       ^ #   \*         dR   p\,        P.                  ! R4       Te1   TP"                  e#   \        P(                  ! TP"                  T.4       ThR p?i\0         d     ^ # i ; i)Nz6No valid build directory found, cannot modify options.FTz(Meson configurator encountered an error:)r;  rO   ri   r
   MesonExceptionr'  r   r8  r   set_from_configure_commandr   update_cmd_line_filer   r   r   r   update_build_optionsr   r	   info_dirwrite_meson_info_filerM   r   r   BrokenPipeError)r   r   
print_onlycr   es   &&    r"   run_implrH  o  sN   w'JAN   ))*bcc   JLL'G$$JJ99'BBD((;MMODFFH''

AGG4G4G4P4PQ(("5   ;<=QWW0((1#6 sI   $E) 'E) E) $E) AE) E) 7A0E) )G4AG  GGGc                    V ^8  d   QhRRRR/# )r$   r   r   r&   r   r   )r(   s   "r"   r)   r)     s     ' ' ' 'r!   c                    \         P                  ! V 4       \        P                  P	                  \        P                  P                  V P                  4      4      p\        W4      # r>   )r   parse_cmd_line_optionsrW   rX   rY   rZ   r   rH  )r   r   s   & r"   runrL    sB    ""7+wwrww//0@0@ABHG&&r!   )-
__future__r   r   rn   r   rW   r   typingr   r  rF   r   r   r   r   r	   r
   r   r   astr   r   r   r   optinterpreterr   TYPE_CHECKINGtyping_extensionsr   argparseSharedCMDOptionsr   Unionr   r   r   r8   r?   r>  rM   rO   r8  r;  rH  rL  r   r!   r"   <module>rV     s   
 #    	            9 #  -???*W--x  ggc4---.G<		H++ 	^8 ^8@	*@'r!   