mò óRÅDc@s}dkZdklZeeƒdƒeeƒdƒeeƒdƒeeƒdƒdklZdefd„ƒYZdS( N(s demandloads ConfigParser mimetools cStringIOsmercurial:ui,hg,util,templatersmercurial.hgweb.hgweb_mod:hgwebs+mercurial.hgweb.common:get_mtime,staticfile(sgettextthgwebdircBs#tZd„Zd„Zd„ZRS(Nc CsÝd„}d|_dtf|_t|ttfƒo"||ƒ|_ dtf|_nt|t ƒo&||i ƒƒ|_ |i i ƒnKt iƒ}|i|ƒg|_ |idƒo,|iddƒo|iddƒ|_n|idƒo#|i i||i dƒƒƒn|idƒoœx™|i dƒD]„\}}xuti|ƒD]d}tii|ƒ}|}|i|ƒo|t|ƒ}n|i i |i!ti"ƒ|fƒq\Wq@Wn|i i ƒdS(NcCs7g}|D]%\}}||itiƒ|fq ~S(N(t_[1]titemstnametpathtstriptostsep(RRRR((t@/usr/lib/python2.4/site-packages/mercurial/hgweb/hgwebdir_mod.pyt cleannamesstRtwebtmotdtpathst collections(#R tselfR tFalset repos_sortedt isinstancetconfigtlistttupletrepostdictRtsortt ConfigParsertSafeConfigParsertcptreadt has_sectiont has_optiontgettextendtprefixtroottutilt walkreposRRtnormpathtrepoRt startswithtlentappendtlstripR( RRR&RR"R RR!R((Rt__init__s6     ## .csntiiddƒ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_app6s( RtenvironRR't RuntimeErrortmercurial.hgweb.wsgicgithgwebtwsgicgitrequesttwsgiapplicationR-tlaunch(RR-R4R2((RRtrun1s   cs燇d†}‡‡d†}tiitiƒdƒ}ti|tidhd|<d|<ƒ‰d„‰dt ‡‡‡d †} ˆiid dƒid ƒ}|oÁtˆiƒi|ƒ} | o…yt| ƒiˆƒWqitj o%} ˆiˆd d | iƒƒqitij o(} ˆiˆd d t| ƒƒƒqiXqãˆiˆd d|ƒƒnwˆii dƒo`tiitiƒdƒ}ˆidd} ˆit#|| ˆƒpˆd d d| ƒƒnddddg} ˆi%\}}ˆii dƒoPˆidd}|i(dƒ}|o|d}n|| jo d}qdng}| D]=}|d|d| o||jodpd|ffqo~}ˆiˆdd| d|d|t|ƒƒdS(Nc+sTtidiˆd|ƒƒ}ti|dƒ}ˆi |i ƒƒ|i ƒVdS(NR theaderi( t cStringIOtStringIOtjointtmpltmapt header_filet mimetoolstMessagetmsgtreqR7RR(R<R=R@(R;RA(RR7;s!c+sˆddˆi|VdS(NtfooterR (R;RR R<(R<(RR;(RRBAsR<tdefaultsR7RBccsw|iddƒ}x^dddgD]M}||jp|idd|ƒo#hd|<d|<d |