PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib64/python2.7/site-packages/mercurial
Viewing File: /usr/lib64/python2.7/site-packages/mercurial/ui.pyc
� Hq�Qc@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZdefd��YZdS(i����(t_NtuicBseZd2d�Zd�Zd�Zd�Zd2ed2d2d�Zd2d2d�Z d�Z d�Z e d�Z d �Zed �Zd2ed �Zd2ed �Zeed �Zd2ed�Zded�Zd2ed�Zed�Zed�Zed�Zd2d�Zd�Zd�Zd2d�Zd�Zed�Zd�Zd�Z d�Z!d�Z"d�Z#d �Z$d!�Z%d"d#�Z&d$d%�Z'dd&�Z(d2d2d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d2ed-�Z/d.�Z0d"d"d2d/�Z1d0�Z2d1�Z3RS(3cCs�g|_t|_|_|_|_t|_tj�|_ tj�|_ tj�|_ t �|_ t �|_t|_|r'|j|_|j|_|j|_|j j�|_ |j j�|_ |j j�|_ |j j�|_ |jj�|_|j|_|j|_|j�nZtj|_tj|_tj|_tj|_x'tj�D]}|j|dt�qdWdS(Nttrust(t_bufferstFalsetquiettverboset debugflagt tracebackflagtTruet_reportuntrustedtconfigt_ocfgt_tcfgt_ucfgtsett _trustuserst _trustgroupst callhookstfouttferrtfintcopytenviront fixconfigtsyststdouttstderrtstdintostscmutiltrcpatht readconfig(tselftsrctf((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt__init__ s6               cCs |j|�S(N(t __class__(R!((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR0scCstj|||�S(N(t formatter(R!ttopictopts((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR&3scCs�tj|�}tj|�r"tS|j|j}}d|ksMd|krQtStj|j�}tj|j �}||ks�||ks�|tj�kr�tS|j r�|j t d�|||f�nt S(Nt*s6not trusting file %s from untrusted user %s, group %s (tutiltfstattisownerR RRtusernametst_uidt groupnametst_gidR twarnRR(R!tfpR#tstttusersttgroupstusertgroup((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt_trusted6s* c Cs�yt|�}Wntk r0|s*dS�nXtj�}|pX|pX|j||�}y*|j||d|d|�|j�Wn?tjk r�} |r��n|jt d�t | ��nX|j �r0x,dD]$} | |d kr�|d | =q�q�Wx+|j d �D]\} } |d | =qWn|j d�rmx+|j d�D]\} } |d| =qOWn|r�|j j|�|j j|j�n|jj|�|jj|j�|dkr�tjjd�}n|jd|�dS(Ntsectionstremaps ignored: %s tdebugtfallbackencodingRtslasht logtemplatetstylet tracebackRRtdefaultstaliast~troot(sdebugR<squietsslashR>R?s tracebacksverbose(topentIOErrorR R8treadtcloseterrort ConfigErrorR1RtstrtplaintitemsR tupdateR RtNoneRtpatht expanduserR( R!tfilenameRDRR9R:R2tcfgttrustedtinsttktv((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR IsD  !   c Cs0|dkr&|ptj�}x|j|j|jfD]�}x�|jd�D]�\}}|seqMnd|kr�|jtd�|||j d|�f�|j dd�}nt j |�}t j |� rtjj|� rtjjtjj||��}n|jd||�qMWq7Wn|dkr�|jdd�|_|jp_|jdd�|_|j o~|jdd�|_|jr�|jr�t|_|_n|jp�|jdd t�|_|jdd t�|_n|dkr,|jj|jd d ��|jj|jd d ��ndS(Ntpathss%%s((deprecated '%%' in path %s=%s from %s) t%RR;RRtreport_untrustedR@RTtuserstgroups(Nspaths(Nsui(Nstrusted(RORtgetcwdR RR RMR1Rt configsourcetreplaceR*t expandpatht hasschemeRPtisabstnormpathtjoinRt configboolRRRRR R RRRNt configlistR(R!RDtsectiontctntp((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyRts4  #$  cCs:|jj||�|jj||�|jj||�fS(N(R tbackupR R(R!Rgtitem((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt backupconfig�scCs@|jj|d�|jj|d�|jj|d�dS(Niii(R trestoreR R(R!tdata((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt restoreconfig�scCs_|r|jj|||�n|jj|||�|jj|||�|jd|�dS(NRg(R RR RR(R!Rgtnametvaluetoverlay((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt setconfig�s cCs|r|jp|jS(N(RR (R!t untrusted((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt_data�scCs|j|�j||�pdS(Ntnone(Rvtsource(R!RgRqRu((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR^�sc Cs�t|t�r|}n |g}xH|D]:}|j|�j||d�}|dk r(|}Pq(q(W|}|jr�| r�|jr�|jj||�}|dk r�||kr�|jd|||f�q�n|S(Ns3ignoring untrusted configuration option %s.%s = %s ( t isinstancetlistRvtgetRORR RR;( R!RgRqtdefaultRut alternatesRiRrtuvalue((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR �s     cCs�|j||||�}|dkr(dStjj|� sGd|kr�|j|||�}d|kr�tjj|jd�d�}tjj|tjj |��}q�n|S(sEget a path config item, expanded relative to repo root or config files://t:iN( R RORRPRbR^tdirnametrsplitRdRQ(R!RgRqR|RuRWR"tbase((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt configpath�s  'cCs|j||d|�}|dkr(|St|t�r;|Stj|�}|dkr{tjtd�|||f��n|S(sPparse a configuration element as a boolean >>> u = ui(); s = 'foo' >>> u.setconfig(s, 'true', 'yes') >>> u.configbool(s, 'true') True >>> u.setconfig(s, 'false', 'no') >>> u.configbool(s, 'false') False >>> u.configbool(s, 'unknown') False >>> u.configbool(s, 'unknown', True) True >>> u.setconfig(s, 'invalid', 'somevalue') >>> u.configbool(s, 'invalid') Traceback (most recent call last): ... ConfigError: foo.invalid is not a boolean ('somevalue') s%s.%s is not a boolean ('%s')N( R RORytboolR*t parseboolRIRJR(R!RgRqR|RuRWtb((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyRe�s  cCsp|j||d|�}|dkr(|Syt|�SWn3tk rktjtd�|||f��nXdS(s parse a configuration element as an integer >>> u = ui(); s = 'foo' >>> u.setconfig(s, 'int1', '42') >>> u.configint(s, 'int1') 42 >>> u.setconfig(s, 'int2', '-42') >>> u.configint(s, 'int2') -42 >>> u.configint(s, 'unknown', 7) 7 >>> u.setconfig(s, 'invalid', 'somevalue') >>> u.configint(s, 'invalid') Traceback (most recent call last): ... ConfigError: foo.invalid is not an integer ('somevalue') s%s.%s is not an integer ('%s')N(R ROtintt ValueErrorRIRJR(R!RgRqR|RuRW((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt configint�s  ic Cs|j||�}}|d krBt|t�s5|S|}}nd}tjd|tj�}|r�|j�\}} | j�} t dddddd�j | d�}nyt t |�|�SWn3t k r�tjtd �|||f��nXd S( s�parse a configuration element as a quantity in bytes Units can be specified as b (bytes), k or kb (kilobytes), m or mb (megabytes), g or gb (gigabytes). >>> u = ui(); s = 'foo' >>> u.setconfig(s, 'val1', '42') >>> u.configbytes(s, 'val1') 42 >>> u.setconfig(s, 'val2', '42.5 kb') >>> u.configbytes(s, 'val2') 43520 >>> u.configbytes(s, 'unknown', '7 MB') 7340032 >>> u.setconfig(s, 'invalid', 'somevalue') >>> u.configbytes(s, 'invalid') Traceback (most recent call last): ... ConfigError: foo.invalid is not a byte quantity ('somevalue') is([^kmbg]+?)\s*([kmg]?)b?$RVitmitgi@s#%s.%s is not a byte quantity ('%s')N(R RORyRKtretmatchtIR\tlowertdictR{R�tfloatR�RIRJR( R!RgRqR|RutorigtstringtmultipleR�tkey((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt configbytes s    * cs���fd����fd���fd��|j||d|�}|dkrf|p`g}nt|t�r��|jd��}|dkr�|p�g}q�n|S(sparse a configuration element as a list of comma/space separated strings >>> u = ui(); s = 'foo' >>> u.setconfig(s, 'list1', 'this,is "a small" ,test') >>> u.configlist(s, 'list1') ['this', 'is', 'a small', 'test'] c s$t}xF|t|�krN||j�s;||dkrNt}|d7}q W|t|�krnd||fS|r�|jd�n||dkr�|d r��||dfS||dkr�|dddkr�|dd |||d<�||dfS|dc||7<�||dfS(Nt,itt"i����s\(RtlentisspaceR ROtappend(tpartststoffsett whitespace(t _parse_plaint _parse_quote(s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�:s5 $c sN|t|�kr�||dkr�|jd�|d7}x@|t|�kr{||j�sn||dkr{|d7}q<W�||fSx�|t|�kr&||dkr&||dkr|dt|�kr||ddkr|d7}|dcd7<n|dc||7<|d7}q�W|t|�kr��|d�}|s\d|d<n)d|d|d<|d }|j|�d||fS|d7}x0|t|�kr�||d kr�|d7}q�W|t|�kr4|dt|�kr$||dkr$|dcd7<|d7}qA|jd�n d||fS�||fS( NR�R�iR�s\i����it (R�R�(R�R�R�textendRO(R�R�R�t real_parts(t _configlistR�(s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�Ks@"  % %&      %&  cs\|jd�}|sgS�dgd}}}x%|rW||||�\}}}q3W|S(Ns ,R�i(trstrip(R�tparserR�R�(R�(s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�vs Rus , N(R RORyt basestringtlstrip(R!RgRqR|Rutresult((R�R�R�s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyRf0s +   cCs||j|�kS(s&tell whether section exists in config.(Rv(R!RgRu((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt has_section�scCs�|j|�j|�}|jr�| r�|jr�x[|jj|�D]D\}}|jj||�|krD|jd|||f�qDqDWn|S(Ns3ignoring untrusted configuration option %s.%s = %s (RvRMRR RR R{R;(R!RgRuRMRVRW((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt configitems�s ccs[|j|�}xE|j�D]7}x.|j||�D]\}}|||fVq5WqWdS(N(RvR9R�(R!RuRSRgRqRr((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt walkconfig�scCs`dtjkr"dtjkr"tStjjdd�j�jd�}|r\|r\||kStS(s'is plain mode active? Plain mode means that all configuration variables which affect the behavior and output of Mercurial should be ignored. Additionally, the output should be stable, reproducible and suitable for use in scripts or applications. The only way to trigger plain mode is by setting either the `HGPLAIN' or `HGPLAINEXCEPT' environment variables. The return value can either be - False if HGPLAIN is not set, or feature is in HGPLAINEXCEPT - True otherwise tHGPLAINt HGPLAINEXCEPTR�R�(RRRR{tstriptsplitR (R!tfeaturet exceptions((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyRL�s $  cCshtjjd�}|d krT|jdd�}|d k rTtjj|�}qTn|d krutjjd�}n|d kr�|jdd�r�|jt d�dd �}n|d kr|j � ry7dt j �t j�f}|jt d �|�Wqtk rqXn|s6t jt d ���nd |krdt jt d �t|���n|S(sAReturn default username to be used in commits. Searched in this order: $HGUSER, [ui] section of hgrcs, $EMAIL and stop searching if one of these is set. If not found and ui.askusername is True, ask the user, else use ($LOGNAME or $USER or $LNAME or $USERNAME) + "@full.hostname". tHGUSERRR-tEMAILt askusernamesenter a commit username:R|s%s@%ss&no username found, using '%s' instead s+no username supplied (see "hg help config")s susername %s contains a newline N(RRR{ROR RPt expandvarsRetpromptRt interactiveR*tgetusertsockettgetfqdnR1tKeyErrortAborttrepr(R!R6((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR-�s(     "cCs|jstj|�}n|S(s>Return a short representation of a user name or email address.(RR*t shortuser(R!R6((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR��s cCsxtj|�s0tjjtjj|d��r4|S|jd|�}| rn|dk rn|jd|�}n|pw|S(s:Return repository location relative to cwd or from [paths]s.hgRXN(R*RaRRPtisdirRdR RO(R!tlocR|RP((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR`�s 0cCs|jjg�dS(N(RR�(R!((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt pushbuffer�scCsdj|jj��S(s�pop the last buffer and return the buffered output If labeled is True, any labels associated with buffered output will be handled. By default, this has no effect on the output returned, but extensions and GUI tools may handle this argument and returned styled output. If output is being buffered so it can be captured and parsed or processed, labeled should not be set to True. R�(RdRtpop(R!tlabeled((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt popbuffer�s cOsd|jr9|jdjg|D]}t|�^q�n'x$|D]}|jjt|��q@WdS(s�write args to output By default, this method simply writes to the buffer or stdout, but extensions or GUI tools may override this method, write_err(), popbuffer(), and label() to style output from various parts of hg. An optional keyword argument, "label", can be passed in. This should be a string containing label names separated by space. Label names take the form of "topic.type". For example, ui.debug() issues a label of "ui.debug". When labeling output for a specific command, a label of "cmdname.type" is recommended. For example, status issues a label of "status.modified" for modified files. i����N(RR�RKRtwrite(R!targsR(ta((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR��s 0 cOs�yut|jdt�s(|jj�nx$|D]}|jjt|��q/Wt|jdt�st|jj�nWn:tk r�}|jtj tj tj fkr��q�nXdS(Ntclosed( tgetattrRRtflushRR�RKRFterrnotEPIPEtEIOtEBADF(R!R�R(R�RU((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt write_errs !cCsZy|jj�Wnttfk r*nXy|jj�Wnttfk rUnXdS(N(RR�RFR�R(R!((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�scCs&|jddt�rtStj|�S(NRtnontty(ReRR*tisatty(R!tfh((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt_isattyscCs5|jddd�}|dkr1|j|j�S|S(s-is interactive input allowed? An interactive session is a session where input can be reasonably read from `sys.stdin'. If this function returns false, any attempt to read from stdin should fail with an error, unless a sensible default has been specified. Interactiveness is triggered by the value of the `ui.interactive' configuration variable or - if it is unset - when `sys.stdin' points to a terminal device. This function refers to input only; for output, see `ui.formatted()'. RR�N(ReROR�R(R!ti((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�s cCsEdtjkr;yttjd�SWq;tk r7q;Xntj�S(s-how wide is the terminal in columns? tCOLUMNS(RRR�R�R*t termwidth(R!((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�3s  cCsE|j�rtS|jddd�}|dkrA|j|j�S|S(s*should formatted output be used? It is often desirable to format the output to suite the output medium. Examples of this are truncating long lines or colorizing messages. However, this is not often not desirable when piping output into other utilities, e.g. `grep'. Formatted output is triggered by the value of the `ui.formatted' configuration variable or - if it is unset - when `sys.stdout' points to a terminal device. Please note that `ui.formatted' should be considered an implementation detail; it is not intended for use outside Mercurial or its extensions. This function refers to output only; for input, see `ui.interactive()'. This function always returns false when in plain mode, see `ui.plain()'. Rt formattedN(RLRReROR�R(R!R�((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�=s   R�cCs�|j|j�r@yddl}|jWq@tk r<q@Xn|j|�tj}tj}|jt_|j t_t d�}|t_|t_t j dkr�|r�|ddkr�|d }n|S(Ni����R�s s ( R�Rtreadlinetread_history_filet ExceptionR�RRRRt raw_inputRtlinesep(R!R�R�toldintoldouttline((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt _readlineYs"           % tycCs�|j�s&|j|d|d�|Sy-|j|j|d��}|sN|S|SWn&tk r{tjtd���nXdS(shPrompt user with msg, read response. If ui is not interactive, the default is returned. R�s s ui.promptsresponse expectedN(R�R�R�tlabeltEOFErrorR*R�R(R!tmsgR|tr((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�ys  cCs�g|D]#}||jd�dj�^q}xXtr�|j|||�}|j�|krt|j|j��S|jtd��q3WdS(sVPrompt user with msg, read response, and ensure it matches one of the provided choices. The index of the choice is returned. choices is a sequence of acceptable responses with the format: ('&None', 'E&xec', 'Sym&link') Responses are case insensitive. If ui is not interactive, the default is returned. t&isunrecognized response N(tindexR�R R�R�R(R!R�tchoicesR|R�trespsR�((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt promptchoice�s 0 cCss|j�s|Sy6|j|j|p.td�d��tjd�SWn&tk rntjtd���nXdS(Ns password: s ui.promptR�sresponse expected(R�R�R�RtgetpassR�R*R�(R!R�R|((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR��s % cOs:|js6|jdd�d|d<|j||�ndS(sqwrite status message to output (if ui.quiet is False) This adds an output label of "ui.status". R�R�s ui.statusN(RR{R�(R!R�R(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pytstatus�s cOs.|jdd�d|d<|j||�dS(sewrite warning message to output (stderr) This adds an output label of "ui.warning". R�R�s ui.warningN(R{R�(R!R�R(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR1�scOs:|jr6|jdd�d|d<|j||�ndS(sfwrite note to output (if ui.verbose is True) This adds an output label of "ui.note". R�R�s ui.noteN(RR{R�(R!R�R(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pytnote�s cOs:|jr6|jdd�d|d<|j||�ndS(srwrite debug message to output (if ui.debugflag is True) This adds an output label of "ui.debug". R�R�s ui.debugN(RR{R�(R!R�R(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR;�s c Cs�tjdddddt�\}}z�tj|d�}|j|�|j�|j�}tj d||fdi|d 6d tj d t d �d |j �t |�}|j�}|j�Wdtj|�X|S(Ntprefixs hg-editor-tsuffixs.txtttexttws%s "%s"RR�tonerrt errprefixs edit failedtout(ttempfiletmkstempR RtfdopenR�RHt geteditorR*tsystemR�RRRERGtunlink(R!R�R6tfdRqR#teditortt((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pytedit�s        cCs�|js|r�|d kr*tj�}nt|ddd �}|d k r�tj|d�}tj|d�}tj|d|d�}|jddj |d �dj |�dj |��q�tj |d|d|dd|j �n|jp�|S( s�print exception traceback if traceback printing enabled or forced. only to call in exception handler. returns true if traceback printed.itcauseiis#Traceback (most recent call last): R�i����tfileN( RRORtexc_infoR�R@t format_tbtformat_exception_onlyR�Rdtprint_exceptionR(R!texctforceRtcausetbtexctbtexconly((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR@�s     cCsgtjdkrd}nd}tjjd�pf|jdd�pftjjd�pftjjd|�S( sreturn editor to usetplan9tEtvitHGEDITORRR�tVISUALtEDITOR(RtplatformRRR{R (R!R�((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR��s c Cs�|dks|j rdS|r-d|}n|r@d|}n|rzd||}|jd||||||f�n|jd||||f�dS(sxshow a progress message With stock hg, this is simply a debug message that is hidden by default, but with extensions or GUI tools it may be visible. 'topic' is the current operation, 'item' is a non-numeric marker of the current position (i.e. the currently in-process file), 'pos' is the current numeric position (i.e. revision, bytes, etc.), unit is a corresponding unit label, and total is the highest expected pos. Multiple nested topics may be active at a time. All topics should be marked closed by setting pos to None at termination. NR�gY@s%s:%s %s/%s%s (%4.2f%%) s %s:%s %s%s (RORR;(R!R'tposRltunitttotaltpct((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pytprogress�s   cOsdS(s�hook for logging facility extensions service should be a readily-identifiable subsystem, which will allow filtering. message should be a newline-terminated string to log. N((R!tserviceR�R(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pytlogscCs|S(s%style msg based on supplied label Like ui.write(), this just returns msg unchanged, but extensions and GUI tools can override it to allow styling output without writing it. ui.write(s, 'label') is equivalent to ui.write(ui.label(s, 'label')). ((R!R�R�((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR�#s N(4t__name__t __module__ROR$RR&R8RR RRmRpR RtRvR^R R�ReR�R�RfR�R�R�RLR-R�R`R�R�R�R�R�R�R�R�R�R�R�R�R�R�R1R�R;RR@R�RRR�(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyR s` #   *"       'X                     (ti18nRR�R�RR�R�RR�R@R RR*RIR&tobjectR(((s2/usr/lib64/python2.7/site-packages/mercurial/ui.pyt<module>s`<