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/httpclient
Viewing File: /usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyo
� Hq�Qc@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ej e �Z ddgZ dZdZdd>Zdd >Zd Zd Zd Zd ZdZdZdZedZdZeZdefd��YZdefd��YZdej fd��YZ!dej fd��YZ"dej fd��YZ#dej fd��YZ$ej%Z%dS(sXImproved HTTP/1.1 client library This library contains an HTTPConnection which is similar to the one in httplib, but has several additional features: * supports keepalives natively * uses select() to block for incoming data * notices when the server responds early to a request * implements ssl inline instead of in a different class i����NtHTTPConnectiont HTTPResponsesHTTP/1.0sHTTP/1.1iiisaccept-encodingt connectionscontent-lengthstransfer-encodingtchunkedtcloses icBs_eZdZd�Zed��Zd�Zd�Zd�Zd d�Z d�Z d�Z RS( s�Response from an HTTP server. The response will continue to load as available. If you need the complete response before continuing, check the .complete() method. cCs�||_||_d|_d|_d|_t|_d|_d|_ t|_ d|_ d|_ d|_ d|_t|_||_dS(Nti(tsocktmethodt raw_responset _headers_lentNonetheaderstFalset will_closet status_linetstatust continuedt http_versiontreasont_readert_read_locationtEOLt_eolt_timeout(tselfRttimeoutR((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyt__init__Us              cCs |jdS(Ni(R(R((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyt _end_headershscCs|jr|jj�SdS(sReturns true if this response is completely loaded. Note that if this is a connection where complete means the socket is closed, this will nearly always return False, even in cases where all the data has actually been loaded. N(Rtdone(R((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pytcompletels cCs#|jdk r|jj�ndS(N(RR t_close(R((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyRvscCsgg}xQtrY|jjd|�|r<|dddksH|j�rLPn|j�q Wdj|�S(s�Read a single line from the response body. This may block until either a line ending is found or the response is complete. s i����R(tTrueRtreadtoRt_selecttjoin(Rtblocks((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pytreadlinezs &cCs�x4|j� r6| s)||jjkr6|j�qW|sL|jj}n|jj|�}|j�r�|jr�|jj�n|S(N(RRtavailable_dataR!treadR RR(Rtlengthtr((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR&�scCstj|jggg|j�\}}}|sa|j�satjd|j�td��qany|jjt�}Wn@t j k r�}|j dt j kr��ntj d�tSXtj dt|��|s�|jr�|jj�ntS|j|�tSdS(Nstimed out with timeout of %sstimeout reading datais2SSL_ERROR_WANT_READ in _select, should retry laters$response read %d data during _select(tselectRRRtloggertinfotHTTPTimeoutExceptiontrecvtINCOMING_BUFFER_SIZEtsockettsslerrortargstSSL_ERROR_WANT_READtdebugRtlenRRR t_load_response(RR(t_tdatate((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR!�s&*    c Cse|j|7_|j|jkr�xbdD]W}||jkr(|jj|�t|j�dkr(tjd|�||_Pq(q(Wn|j|jks�|jr�dS|jj|jd�\}}|jdd�\}}|j d�r||_t |_ tj d|�dS|jj|jd�\}}|`|j|krd|j|jd�\|_ }n||_ d}|j jdd �\|_|_|_t|j�|_|jtkr�|j|jd �}ntjtj|��}d}t|krt|t�}n|jtkr+t |_n(t|krS|tj�tk|_nt|kr�|tj�t kr�t!j"|j�|_#tj d �n�|j$d ks�|j$d kr�|dkr�d}n|dk r�tj d|�t!j%|�|_#n%t!j&�|_#tj d�t |_|r<|j#j'|�ntj d�||_|j#j'|_(dS(Ns s is-bogus line endings detected, using %r for EOLt t100s!continue seen, setting body to %rRis susing a chunked readertHEADtCONNECTis,using a content-length reader with length %dsusing a close-is-end readersheaders complete(s s ()RRtindexR4R*R+RR tsplitt startswithRRR3RRRRtintRtreplacetrfc822tMessaget cStringIOtStringIOR tHDR_CONTENT_LENGTHt HTTP_VER_1_0R tHDR_CONNECTION_CTRLtlowertCONNECTION_CLOSEtHDR_XFER_ENCODINGtXFER_ENCODING_CHUNKEDt_readerst ChunkedReaderRRtContentLengthReadertCloseIsEndReadert_loadR5( RR7tbad_eolthdrstbodythttp_verRR t content_len((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR5�sp      ! '            N( t__name__t __module__t__doc__RtpropertyRRRR$R R&R!R5(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyROs    cBsteZdZeZeZdddee dd�Z d�Z d�Z d�Z d�Zdied�Zd�ZRS( s�Connection to a single http server. Supports 100-continue and keepalives natively. Uses select() for non-blocking socket operations. c Ks�|d kr!|jd�dks-d|krp|jdd�\}}t|�}d|krp|dd!}qpn|d kr�|d kr�t}d}n<|d kr�|dk}n!|d kr�|r�dp�d}n||_|r�tj r�td��n||_ ||_ ||_ ||_ d |_ d |_t|_|d krYd |_|_n|\|_|_||_||_d S( sCreate a new HTTPConnection. Args: host: The host to which we'll connect. port: Optional. The port over which we'll connect. Default 80 for non-ssl, 443 for ssl. use_ssl: Optional. Whether to use ssl. Defaults to False if port is not 443, true if port is 443. ssl_validator: a function(socket) to validate the ssl cert timeout: Optional. Connection timeout, default is TIMEOUT_DEFAULT. continue_timeout: Optional. Timeout for waiting on an expected "100 Continue" response. Default is TIMEOUT_ASSUME_CONTINUE. proxy_hostport: Optional. Tuple of (host, port) to use as an http proxy for the connection. Default is to not use a proxy. t:is]:t[i����iPi�s,ssl requested but unavailable on this PythonN(R tcounttrsplitR@R tportt socketutilthave_sslt Exceptiontssltssl_optst_ssl_validatorthostRt_current_responset_current_response_takent _proxy_hostt _proxy_portRtcontinue_timeout( RRfR_tuse_sslt ssl_validatorRRktproxy_hostportRd((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyRs6-               cCs�|jr dS|jdk rdtjd|j|j�tj|j|jf�}|jr|j dd|j |j fit �}|j |�|jd�|j||jd�}td�}xR|j�sy(|j�s�|j�s�|�q�nWq�tk r|�q�Xq�W|jdkrEtd|j|j�f��ntjd |j |j �qntj|j |j f�}|jr�|jd �tjd |j�tj||j�}|jr�|j|�q�n|jd�||_dS( s3Connect to the host and port specified in __init__.NsConnecting to http proxy %s:%sR<s%s:%dis1Timed out waiting for CONNECT response from proxyi�sProxy connection failed: %d %ss/CONNECT (for SSL) to %s:%s via proxy succeeded.is'wrapping socket for ssl with options %r(RRiR R*R+RjR`tcreate_connectionRct buildheadersRfR_RGtsendt setblockingtresponse_classRR,RR!RtHTTPProxyConnectFailedExceptionR&R3Rdt wrap_socketRe(RRR7R(t timeout_exc((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyt_connectGsN                    c Cs!|jr|jdks'|jdkr3|j}n>d|jkr[d|j|jf}nd|j|jf}|jr�|j r�d||f}nd|||tfg}d|f|d <td f|t<x4|j�D]&\}}|jd ||tf�q�W|jt�d j|�S( Ni�iPR[s[%s]:%ds%s:%ds http://%s%ss %s %s %s%stHostRftidentitys%s: %s%sR( RcR_RfRiRtHDR_ACCEPT_ENCODINGt itervaluestappendR"( RRtpathR RUthdrhosttoutgoingthdrtval((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyRp{s'  cCsF|jdkrdS|jj�d|_tjd|j|j�dS(s�Close the connection to the server. This is a no-op if the connection is already closed. The connection may automatically close if requested by the server or required by the nature of a response. Nsclosed connection to %s on %s(RR RR*R+RfR_(R((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR�s   cCsa|j}|dk r]|jrY|jr=d|_d|_tS|j�rYd|_tSntStS(s�Returns True if this connection object is currently in use. If a response is still pending, this will return True, even if the request has finished sending. In the future, HTTPConnection may transparently juggle multiple connections to the server, in which case this will be useful to detect if any of those connections is ready for use. N(RgR RhR RR RR(Rtcr((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pytbusy�s        cs/�j�rtjd��nt�_tjd||�j�j�t d�|j �D��}|j dd�dj �dkr�t }n|r�d|d<nt}|rt|krt|d t�r�tt|�f|t<qt|d t�rttf|t<t }qtd ��n�j��j|||�j�}d} t } �fd �} xF|sl|r�| o{| j� r��j} |p�|} t}|r�| r�| o�| jp�| j r�tjd�j��j} t }t} n| r�jg}ng}tj�jg|g| �\}}}||koO|koOgknr|rpt}tjd�qtd��n| }|ryVy|dj t!�}WnBt"j#k r�}|j$dt"j%kr��ntj&d�w`nX|s�tjd�d�_d�_'| dk r(| j(�n| dk rQ| j�rQtjd�Pq�|r�| dkr�tjd�| d �w`q�t)d��ntj&dt|��| dkr��j*|d�j|�} n| j+|�w`Wqt"j,k r}|dt-j.kr| r�qqXn|r`| r`y�t| d t�r�| j/t0�}|sYw`nt|�t0kr�|r�dt1t1}q�d}n|r�t2t|��dt1|t1} q�|} n|dj3| �}Wn}t"j,k rR}|dt"j4kr �j5r q`n)|dt-j6t-j.fkr3| r3�n| d��jj3| �}nXtj&d|�t} |r|| | }n| |kr�| |}q�| |}q`q`W| dkr��j*�j�j|�} n| j�}t7|p�|�}|r tjd�t | _8n| j8r"d�_n| �_'dS( s�Send a request to the server. For increased flexibility, this does not return the response object. Future versions of HTTPConnection that juggle multiple sockets will be able to send (for example) 5 requests all at once, and then let the requests arrive as data is available. Use the `getresponse()` method to retrieve the response. s=Can not send another request before current response is read!s*sending %s request for %s to %s on port %scss-|]#\}}|j�||ffVqdS(N(RI(t.0tktv((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pys <genexpr>�stexpectRis 100-continuetExpects 100-Continuet__len__R&s body has no __len__() nor read()cs(tjd|��j��j�dS(Nsreconnecting during %s(R*R+RRw(twhere(R(sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyt reconnect�s s:waiting up to %s seconds for continue response from serversTno response to continue expectation from server, optimistically sending request bodystimeout sending datais3SSL_ERROR_WANT_READ while sending data, retrying...ssocket appears closed in reads2Got an early response, aborting remaining request.sOConnection appeared closed in read on first request loop iteration, will retry.sjConnection appears closed after some request data was written, but the response was missing or incomplete!sread %d bytes in request()t0itwritessent %ds@stopped sending request early, will close the socket to be safe.N(RR(R�s 100-Continue(9R�thttplibtCannotSendRequestR RhR*R+RfR_tdictt iteritemstgetRIRRFtgetattrR4RKRLtBadRequestDataRwRpRR RRR RRkRR)R,R-R.R/R0R1R2R3RgRtHTTPStateErrorRsR5terrorterrnotEPIPER&tOUTGOING_BUFFER_SIZERthexRqtSSL_ERROR_WANT_WRITERct ECONNRESETtboolR (RRR}RTR texpect_continueRSRtoutgoing_headerstresponsetfirstR�tselect_timeouttouttblocking_on_continuetwR(txt was_firstR7R8tamtt sent_dataRt data_left((RsC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pytrequest�s�    "           ''             %           cCs�|jdkrtj��n|j}x<|jdkre|j� r*|j� r*tj��q*q*W|j r�d|_ d|_n!|j�r�d|_n t |_ |S(N( RgR R�tResponseNotReadyR R!RRMtHTTPRemoteClosedErrorR RRRh(RR(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyt getresponsews       N(RWRXRYt HTTP_VER_1_1RRRsR tTIMEOUT_DEFAULTtTIMEOUT_ASSUME_CONTINUERRwRpRR�R R�R�(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR s  . 4   �R,cBseZdZRS(s/A timeout occurred while waiting on the server.(RWRXRY(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR,�sR�cBseZdZRS(s1Request body object has neither __len__ nor read.(RWRXRY(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR��sRtcBseZdZRS(s$Connecting to the HTTP proxy failed.(RWRXRY(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyRt�sR�cBseZdZRS(s#Invalid internal state encountered.(RWRXRY(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyR��s(&RYRDR�R�tloggingRBR)R/RMR`t getLoggerRWR*t__all__RGR�R�R.RzRHRFRKRLRJRt _END_HEADERSR�R R�tobjectRRt HTTPExceptionR,R�RtR�R�(((sC/usr/lib64/python2.7/site-packages/mercurial/httpclient/__init__.pyt<module>&sB             ��|