mò óRÅDc@sŸdkZdkZdkZdklZeeƒdƒeeƒdƒeeƒdƒeeƒdƒdkTdklZ d„Z d e fd „ƒYZ dS( N(s demandloads5re zlib ConfigParser mimetools cStringIO sys tempfiles/mercurial:mdiff,ui,hg,util,archival,streamclonesmercurial:templaters+mercurial.hgweb.common:get_mtime,staticfile(t*(sgettextcCsm|ddjod|}n|ddjo|d }ntii|ƒ}|djodSn|dS(Nit/iÿÿÿÿ(tptostpathtdirnametup(RR((t=/usr/lib/python2.4/site-packages/mercurial/hgweb/hgweb_mod.pyt_ups thgwebcBs²tZdd„Zd„Zd„Zd„Zd„Zgddd„Zd„Z e d„Z d „Z d „Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zhdd5<dd6<dd7HsiiR)trev( R?t_[1]tsiblingststnullidR8thiderevtdictR6targs(RRAR?RDRFR@RB((RRAFs 2*cCsB|i|ƒ}|o(td|ddt|dƒƒgSngS(NR1iR)i(tfltrenamedR)trRER6(RRGR)RI((Rt renamelinkOs(cks7x0|ii|ƒD]}|i|d||VqWdS(Nttag(RRtnodetagsR)R5tt1RF(RRMR)RFR5((RtshowtagUsc#s¯d„‰dg‰‡‡‡d†} ‡d†‰ˆi}|i}|i }|i |ƒ}|i |ƒ}|i |dƒ}|i |dƒ}ti|dƒ} ti|dƒ} |i||ƒ\}}}}} ˆo.t‡‡d†|||fƒ\}}}nˆiiiƒ}|d}|d}|d }|d }xƒ|D]{}|i%|ƒi ||ƒ}|i%|ƒi ||ƒ} | t(i)|| | | |d|d|d |d |ƒ|| ƒVqLWxm|D]e}d}|i%|ƒi ||ƒ} | t(i)|| | | |d|d|d |d |ƒ|| ƒVqÒWxm|D]e}|i%|ƒi ||ƒ}d} | t(i)|| | | |d|d|d |d |ƒ|| ƒVqBWdS( NcCs¬g}|D]}||jo ||q q ~}xs|D]k}|o%|dtijo|ti7}n|g}|D]!}|i|ƒo ||qyqy~7}q9W|S(Niÿÿÿÿ( R@R3R=tfilterstlR5Rtsept startswith(ROR3RPR@R5R=((Rt filterfilesZs2=ic #sRˆiddˆ|ƒdˆdd|dt|ptƒƒVdˆdˆdƒstshowfunctignorewstignorewsamounttignoreblanklines(+RSRVRTRXRRRIt changelogtcltmanifestR7treadtnode1tchange1tnode2tchange2tmmap1tmmap2tutiltdatestrtdate1tdate2tchangestmodifiedtaddedtremovedtdeletedtunknownR3tmapRtdiffoptsRdReRfRgR4R1ttottntmdifftunidifftNone(RRlRnR3RVReRfRiRXRtRTRuR{RR~RpRdRoRmRxRgRzR}RyR7R4RwRqRIRS((RR3RVRSRXRRYYsb    !          c #sÓ‡‡‡d†}‡‡‡d†}ˆii}|i|iƒƒd}|i ƒ‰t dˆˆi dƒ‰tˆˆˆi ƒ‰ˆd‰ˆidd|dt|ƒdˆd ˆd |d ˆid ƒƒVdS( Nc+s>d‡d†‰g}d}xÈdˆiƒD]¯}|ˆijp ||joq.n|ˆjoPn|}d|}ˆ|ˆjo|i d|ˆ|fƒnˆ|djo"|i dd|ˆ|fƒq.q.Whdd<dd 1†iiRhRŒRjR?t changesetstentriesRR†(RŒR›RRRhRiRkR†R7RˆtmaxR‰RR“tminR”R5R6R/( RR‰RˆR7R”RŒRiR›R“((RR‰RˆR“R”RRh¡s!     c #s]‡‡d†}ˆii}|i|iƒƒd}ˆiddˆdt |ƒd|ƒVdS(Nc +s³ˆii‰d}ˆiƒiƒ}‡d†} x|| ƒD]q\}}} d}xk|D]c}|| diƒjp8|| diƒjp!|di| dd ƒiƒjp d}PqVqVW|oq:n|d7}t|ƒ}ˆidd |d@d | dd ˆiˆi|ƒˆiƒd ˆiˆi|ƒˆiƒd ˆid |ƒdt| dƒd| dd| ddˆi| d|ƒd|d|ƒ V|ˆijoPq:q:WdS(Nic#s«x¤tˆiƒdddƒD]†}g}xXttd|dƒ|ƒD]:}ˆi|ƒ}ˆi |ƒ}|i |||fƒqFW|i ƒx|D] }|Vq•WqWdS(Niiiœÿÿÿid(R•RiRˆR-RPRžtjR)R–RkRvRŠtreverseRš(RšR-R RPR–Rv(Ri(Rtrevgenòs iit iit searchentryRVRRŽRRRjR‘R’iR3R?R)(RRRhRiRˆtquerytlowertsplittqwR¢R–R-RvtmisstqtjoinR6R—R5RAR˜R?R™RNR<R( R|RˆR¨RiR-R©R–RªR—R¢Rv(RR¥(RiRR›ís<  R         itsearchR¥RjR( R›RRRhRiRkR†R7R5R¥R6(RR¥R7RiR›((RR¥RR¬ës.   c #sƒˆii}ˆii|ƒ‰tˆƒ}|iˆƒ} |i ˆƒd‰g}ˆii i| dƒ}xF| dD]:}|iˆiddt|i|tƒƒd|ƒƒqvW‡‡‡d†}ˆidd|d |iˆƒd |d ˆi|i ˆƒ|iƒd ˆi|iˆƒ|iƒd ˆid ˆƒdt| dƒd| dd| dd| dd|dˆi|ƒƒ VdS(NiiR0RWR1c+sˆiˆˆdƒVdS(N(RRYtp1R–R‚(R|(RR­R–(RRY0sR;RYR?R)RŽRt changesettagRjRiR‘iR’iR3R(RRRhRitlookupR.R–R6RkRvR˜R­R3RjR7R4RŠR5tgetRCRYR?RAR™RNR/( RR.R3R­RiR4R–R7RYRv((RR­R–RR;#s2   )    c #szˆii‰ˆiiˆƒ‰tˆi|ƒƒ}ˆi ƒ‰‡‡‡‡‡d†}ˆi ddˆd|d|ƒVdS(Nc +sfg}ˆdd@}x6tˆƒD](}ˆi|ƒ}ˆi|ƒ}ˆi|ƒ}ˆi ˆi|ƒƒ}|idhd|<dt|ƒ<d|<dˆ<dt|ƒ<d|d<d |d <d ˆiˆ|ƒ<d ˆiˆi|ƒˆidˆƒ<d ˆiˆi|ƒˆidˆƒ<d|d<ƒd|}q!Wx|D] }|VqTWdS(NiiRVRWtfilerevR1R)RR’itrenameRŽRR‘i(RPRˆRVR•R-RGR)R–tlinkrevtlrRitcnRktcsR‹R6R4RRJRAR˜R?R™Rš( R|RšRµRVR-RPR–R´R¶(RˆR4RRiRG(RRGs Š '"tfilelogR1RWR( RRRhRiR1R4RGR6R¯RWRˆRR5(RR4RWRˆRiRRG((RR4RˆRGRiRR·As   c"#s¿|ii|ƒ} | i|ƒ}t|ƒ}| i |ƒ‰| i |ƒ} |ii }|i| ƒ}|i |ƒ} | d}ti|ƒd} ˆ}tiˆƒo| pd} d| ‰n| pd} ‡d†} |idd|d|d t|ƒd | ƒd |d | d | dt|ƒdt|ƒd| dd| dd|i| i|ƒ| id|ƒd|i| i|ƒ| id|ƒd|i| |ƒd|ii i!|ƒ|ƒVdS(Nisapplication/octet-streams (binary:%s)s text/plainc#sUxNtˆidƒƒD]7\}}hd|<dd|d<d|d@st entriesnotipc s ˆt|S(N(RR%R=(R=(R(RR>s(RRRhRiRkR†R7ttagslistR-R¡RãRR5R6(RR7RiR-R((RiR-RRRâ s     c #sVˆii‰ˆiˆiƒƒd}ˆiiƒ‰ˆi ƒ‡‡‡d†}‡‡‡d†}ˆii‰ˆiˆiƒƒd}ˆi ƒ}t d|ˆiƒ‰t|ˆˆiƒ‰ˆiddˆiiidddƒd ˆiiid d ƒp2ˆiiidd ƒpˆiiidd dƒdddt|ƒd|d|ƒVdS(Nic+s»d}d}x¨ˆD] \}}|djoqn|d7}|djoPnˆi|ƒ}|d}|d}ˆi dd|d|d t |ƒd |d t |ƒƒVd|}qWdS( NiR†ii ittagentryRVRKR)R’Rß( RVRˆR-RàR–RiRktctmR5RR6(R|RˆRçRVRàRèR–R5(R-RiR(Rt tagentries(s&        c +sÍd}ˆii}g}xªtˆˆƒD]™}|i |ƒ}|i |ƒ}t|ƒ}|d}|idˆidd|d|ddt|dƒd|d d |d |d |ƒƒd|}q(W|VdS( Niit shortlogentryRVRiRjR‘iR’R?R)(RVRRRhRiRPR•R“R”R-R)R–RkRvR6R—R5R‹( R|RiR-RPR–R—R5RVRv(R”RR“(RR›?s&      tsummaryR‘Rt descriptionR{townerRtusernametcontactRt lastchangeRjRâtshortlog(ii(RRRhRiRkR†R7RåR-R¡RéR›RˆRžRR“RŸR”R5RRR6( RRˆR7R”RiR-R›R“Ré((RR-R“R”RiRRë!s$     M c #sˆii}ˆii|ƒ‰tˆƒ}|iˆƒd‰|i ˆƒ}ˆii i |dƒ}‡‡‡‡d†}ˆiddˆdt|iˆtƒƒd|dˆiiiˆƒdˆi|iˆƒ|iƒd ˆi|iˆƒ|iƒd |ƒVdS( Nic+sˆiˆˆˆgƒVdS(N(RRYR­R–R1(R|(RR­R1R–(RRYnstfilediffR1RWR)R?RŽRRY(RRRhRiR¯R;R–R6R˜R­RkR¶RjR7RYR5R1R°RCR?RAR™( RR1R;R­RiR–R7R¶RY((RR1R­R–RRòfs   R sapplication/x-tarttbz2s.tar.bz2R ttgzs.tar.gzR sapplication/zips.zipc CsÆtiddtii|iƒƒ} d| t|ƒf}|i |\}} }}d|fdd||ffg}|o|id|fƒn|i|ƒti|i|i|| d|ƒdS( Ns\W+R^s%s-%ss Content-typesContent-dispositionsattachment; filename=%s%ssContent-encodingtprefix(tretsubRRRÎRRRÞRÉRt archive_specsttype_R½tartypet extensiontencodingtheadersRŠtreqtheadertarchivaltarchiveRtout( RRþRÉRùR½RRûRüRýRRú((RR€s$" cCs4ti|ƒ}|d djotdƒ‚n|S(Nis..ssuspicious path(RrtnormpathRRt Exception(RRR((Rt cleanpathscsntiiddƒidƒptdƒ‚ndkii}dkl }‡d†}|i ||ƒƒdS(NtGATEWAY_INTERFACER sCGI/1.sJThis function is only intended to be called while running as a CGI script.(swsgiapplicationcsˆS(N(R((R(Rt make_web_app›s( RtenvironR°RRt RuntimeErrortmercurial.hgweb.wsgicgiR twsgicgitrequesttwsgiapplicationRtlaunch(RRR R ((RRtrun–s   c s‰‡‡d†} ‡d†}‡d†}d„}ˆiƒ|ˆiƒti i ˆi dƒ}ˆi iidddƒ}ˆiidƒoˆidd }n|oOti id |ƒ}ti i ˆi |ƒ} ti i| ƒo | }qønˆid } | d jo d | pd} ˆid}d|jo|idƒd }ndˆid| |f}ˆip<ˆi iiddƒp|idƒp ˆi iˆ_nti|tidhd|<dˆi<d| <d|<d|<ƒˆ_ ˆiidƒpˆi i!dgˆidR?R@RARBRCRDRERFRKRPRSR]R^RaRgRnRR(((RR sV      H J 8  $ ) 6 F  E !   T              J( Rtos.pathRÁtmercurial.demandloadt demandloadtglobalstmercurial.nodetmercurial.i18ntgettextR|RtobjectR (RÁR•RR RR|((RR* s