403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib64/python3.9/site-packages/mercurial/hgweb/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib64/python3.9/site-packages/mercurial/hgweb/__pycache__/webutil.cpython-39.opt-1.pyc
a

�+�bl�@s�ddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
ddlmZddl
mZmZmZmZdd	lmZmZmZmZmZmZmZmZmZmZmZmZmZmZ m!Z!dd
l"m#Z#e!�$d�Z%d}dd
�Z&dd�Z'd~dd�Z(Gdd�de)�Z*Gdd�de*�Z+dd�Z,ddd�Z-dd�Z.dd�Z/d�dd�Z0d�d d!�Z1d"d#�Z2d$d%�Z3d&d'�Z4d(d)�Z5d*d+�Z6d,d-�Z7d.d/�Z8d�d0d1�Z9d�d2d3�Z:d�d4d5�Z;d6d7�Z<d8d9�Z=d:d;�Z>d<d=�Z?d>d?�Z@d@dA�ZAdBdC�ZBdDdE�ZCdFdGheC_DdHdI�ZEdJdK�ZFdFdGheF_DdLdM�ZGdNdO�ZHdPdQ�ZIdRdS�ZJdTdU�ZKdVdW�ZLdXdY�ZMdZd[�ZNd\d]�ZOd^d_�ZPd�dadb�ZQdcdd�ZRdedf�ZSdgdh�ZTdidj�ZUdkdl�ZVdmdn�ZWdodp�ZXdqdr�ZYdsdt�ZZGdudv�dvej[�Z\Gdwdx�dxe j�Z]dydz�Z^d{d|�Z_dS)��)�absolute_importN�)�_)�hex�short)�setattr�)�
ErrorResponse�HTTP_BAD_REQUEST�HTTP_NOT_FOUND�	paritygen)�context�diffutil�error�match�mdiff�obsutil�patch�pathutil�pycompat�scmutil�templatefilters�
templatekw�templateutil�ui�util)�
stringutil))�zip)sapplication/ziprs.zipN)sgz)sapplication/x-gzipstgzs.tar.gzN)sbz2)sapplication/x-bzip2stbz2s.tar.bz2NcCsf|jdddd�}g}t�t�D]<\}}||vsB|jdd|dd�r|�||d||d��qt�|�S)N�webs
allow-archiveT��	untrustedsallowr)�types	extension�nodesurl)Z
configlistr�	iteritems�archivespecsZ
configbool�appendr�mappinglist)rZnodeid�url�allowed�archives�typ�spec�r,�=/usr/lib64/python3.9/site-packages/mercurial/hgweb/webutil.py�archivelist8s
���	r.cCsT|dd�dkrd|}|dd�dkr4|dd�}tj�|�}|dkrLdS|dS)Nrr�/���)�os�path�dirname)�p�upr,r,r-r5Lsr5ccsX|r6|V|dkr$|dkr$d}|V||kr6|d9}q$d|Vd|V|d9}q6dS)N��(�2�
r�r,)�stepZ	firststepr,r,r-�_navseqWs


r<c@s8eZdZdd�Zdd�ZeZdd�Zdd�Zd	d
�ZdS)�revnavcCs|j|_dS)zUNavigation generation object

        :repo: repo object we generate nav for
        N)�	changelog�_revlog)�self�repor,r,r-�__init__hszrevnav.__init__cCs|��duS)z,return True if any revision to navigate overN)�_first�r@r,r,r-�__nonzero__pszrevnav.__nonzero__cCs*ztt|j��WSty$YdS0dS)z1return the minimum non-filtered changeset or NoneN)�next�iterr?�
StopIterationrDr,r,r-rCvsz
revnav._firstcCst|j�|��S�N)rr?�node�r@�revr,r,r-r}sz
revnav.hexc
Cs@|s"t�t�g�t�g�d�g�Sg}td|�D],}||kr@q^|�||�|�||�q0|��|��}d||�|�d�g}g}|D]�}	|	|jvr�q�||	kr�|kr�nn"|�dt|	|�|�|	�d��d|	kr�|kr�nq�|�dt|	|�|�|	�d��q�|�ddd��t�t�|�t�|�d�g�S)	a�computes label and revision id for navigation link

        :pos: is the revision relative to which we generate navigation.
        :pagelen: the size of each navigation page
        :limit: how far shall we link

        The return is:
            - a single element mappinglist
            - containing a dictionary with a `before` and `after` key
            - values are dictionaries with `label` and `node` keys
        )sbeforesafterrs(%i))slabelr"s+%drs-%d�tip)	rr&r<r%�sortrCrr?�abs)
r@�posZpagelen�limit�targets�f�firstZ	navbeforeZnavafterrLr,r,r-�gen�sF���	
�����z
revnav.genN)	�__name__�
__module__�__qualname__rBrE�__bool__rCrrUr,r,r,r-r=gsr=c@seZdZdd�Zdd�ZdS)�
filerevnavcCs|��j|_|�|�|_dS)z�Navigation generation object

        :repo: repo object we generate nav for
        :path: path of the file we generate nav for
        N)Z
unfilteredr>�
_changelog�filer?)r@rAr2r,r,r-rB�szfilerevnav.__init__cCst|j�|j�|���SrI)rr[rJr?ZlinkrevrKr,r,r-r�szfilerevnav.hexN)rVrWrXrBrr,r,r,r-rZ�srZccsV|D]L}|��|��|��|��|��|��d�}t�|d�rJ|��|d<|VqdS)N)r"�revsuser�datesdescription�branchspath�file)	rrL�user�date�description�branchrZsafehasattrr2)r
Zctxs�s�dr,r,r-�_ctxsgen�s�rgcCsJ|durg}dd�|D�}t|�dkr:|d��|kr:g}tjt|fd�S)NcSs"g|]}|��|��jkr|�qSr,)rJrA�nullid)�.0rer,r,r-�
<listcomp>��z_siblings.<locals>.<listcomp>rr��args)�lenrLr�mappinggeneratorrg)ZsiblingsZhiderevr,r,r-�	_siblings�srpcCsVtj|d|dd�}dD]:}|j�|�}|durt�|�}t|||durJ|nd�q|S)NT)r �sectionZ
whitespace)signorewssignorewsamountsignorewseolsignoreblanklines)r�difffeatureopts�qsparams�getrZ	parseboolr)�reqrrq�diffopts�k�vr,r,r-rr�s�
rrcCst||d�}|jd|d�S)NsannotateT)�followrv)rr�annotate)ru�fctxrrvr,r,r-rz�srzcCsFt|tj�r8|��}|����|kr8t|��|g|�St|��|�SrI)	�
isinstancer
Zbasefilectx�introrev�	changectxrLrprA�parents)�ctx�hider}r,r,r-r�s
rcCst|��|�SrI)rp�children)r�r�r,r,r-r�sr�cCs4|��}|r*t�|dt|d�d�g�St�g�S)Nrr)r`r")Zrenamedrr&r)r{�rr,r,r-�
renamelink	sr�cCstj|�|�dd�S�N�name��name)r�
hybridlist�nodetags�rArJr,r,r-�nodetagsdictsr�cCstj|�|�dd�Sr�)rr��
nodebookmarksr�r,r,r-�nodebookmarksdictsr�cCsXg}|��}z|�|�}Wntjy2d}Yn0||��krJ|�|�tj|dd�Sr��rdZ	branchtiprZRepoLookupErrorrJr%rr��rAr��branchesrdZ
branchnoder,r,r-�nodebranchdicts

r�cCs`g}|��}z|�|�}Wntjy2d}Yn0|dkrR||��krR|�|�tj|dd�S�Nsdefaultr�r�r�r�r,r,r-�nodeinbranch&s

r�cCs,g}|��}|dkr|�|�tj|dd�Sr�)rdr%rr�)r�r�rdr,r,r-�nodebranchnodefault2s

r�ccs||�D]}||iVqdSrIr,)r
rSrJr��tr,r,r-�
_nodenamesgen:sr�cCs*|dur|j}|j|df}tjt||d�S)Nstag�rmr�)rhr�rror��rA�t1rJrmr,r,r-�showtag?sr�cCs*|dur|j}|j|df}tjt||d�S)Nsbookmarkr�)rhr�rror�r�r,r,r-�showbookmarkFsr�cs<g�����t|��dd��������fdd�}t�|�S)NcSs|d|d��fS)Nrr)rL)�itemr,r,r-�<lambda>Qrkzbranchentries.<locals>.<lambda>c3s�d}�s4�����D]\}}}}���||f�qt��dd�D]h\}}�dkr`|�kr`dS|d7}|rrd}n|���vr�d}nd}t��|��||��|��d�VqBdS)	NrT)�key�reversersclosedsinactivesopen)�parityr_�statusr"r^)	Z	branchmapZiterbranchesr%�sortedrJrFrdrrb)r
�count�tagZhsZtip�closedr��status��headsrQ�parityrAZsortkeyZtipsr,r-�entriesSs&�zbranchentries.<locals>.entries)r�rrro)rA�stripecountrQr�r,r�r-�
branchentriesMsr�cCs.|�d�}tj|jdd�}tj|jd||d�S)Nr/F)Zrealfsrk)�auditor)�lstriprZpathauditor�rootZ	canonpath)rAr2r�r,r,r-�	cleanpathms
r�cCsFd}d|jvr:|jd}|�d�}|dkr:||dd�}t�||�S)NrMr"�:r0r�rs�findr�	revsymbol�rAru�changeidZiposr,r,r-r~ss


r~cCsBd|jvr>|jd}|�d�}|dkr>|d|�}t�||�SdS)Nr"r�r0r�r�r,r,r-�
basechangectx~s


r�cCs�d|jvrttd��t||jd�}d|jvr:|jd}n d|jvrP|jd}n
ttd��zt�||�|}Wn"tjy�|j||d�}Yn0|S)Nr`sfile not givenr"sfilenodesnode or filenode not given)Zfileid)	rsr	rr�rr�rZ	RepoError�filectx)rArur2r�r{r,r,r-r��s




r�c
Cs�|j�d�}|sdSt|�dkr*ttd��ztt|d�dd��\}}Wntydttd��Yn0zt	�
||�WStjy�}zttt
�|���WYd}~n
d}~00dS)Ns	linerangersredundant linerange parameterrr�sinvalid linerange parameter)rsZgetallrnr	r
�map�int�split�
ValueErrorrZprocesslineranger�
ParseErrorr�bytestr)ru�	linerange�fromline�toline�excr,r,r-r��s
r�cCsd|d|fS)Ns%d:%drr,)r�r�r,r,r-�formatlinerange�sr�c#sR|�|d��t�||�}|�||�D](}t�fdd�|dD��|d<|Vq$dS)N�repoc3s|]}�|VqdSrIr,)ri�	successor�rAr,r-�	<genexpr>�sz&_succsandmarkersgen.<locals>.<genexpr>s
successors)�resourcerZshowsuccsandmarkers�tovaluerp)r
�mappingZitemmappingsr�r,r�r-�_succsandmarkersgen�s�r�cCstjt|fd�S�Nrl)rror��r
r�r,r,r-�succsandmarkers�sr�r��ctxccsR|�|d�}|�|d�}t�||�}|D]$}|�d�rFt|d�|d<|Vq(dS)Nr�r�sdivergentnodes)r�r�whyunstablertrp)r
r�rAr�r��entryr,r,r-�_whyunstablegen�s
r�cCstjt|fd�Sr�)rror�r�r,r,r-r��sr�cs�t���}����t|������������������	�t
tj��
�dd�tt��t|��t|��t||�t||��fdd��fdd�d�S)Nsinstabilityr�cst��SrI�rr��r�r,r-r��rkzcommonentry.<locals>.<lambda>cst��SrI�r�r�r�r,r-r��rk)r�r]r"sauthorsdescr^sextrasphasesobsoletessuccsandmarkerss
instabilitiesswhyunstabler_sinbranchsbranchesstagss	bookmarks�parent�child)r�binnoderLrrarcrbZextraZphasestrZobsoleter�rr�Z
instabilitiesr�r�r�r�r�r�)rAr�rJr,r�r-�commonentry�s.
�

�r�csv|j}����t���}t|d|�}t���||j�}t|��}|�	�fdd���fdd���fdd�||d��|S)z�Obtain a dictionary to be used for entries in a changelist.

    This function is called when producing items for the "entries" list passed
    to the "shortlog" and "changelog" templates.
    �changelogtagcst��SrIr�r�r�r,r-r�rkz!changelistentry.<locals>.<lambda>cst��d�S�Nrr�r��r�rLr,r-r�rkcst��d�Sr�r�r�r�r,r-r�rk)s
allparentsr�r�r�sfiles)
rArLrr�r��
listfilediffs�filesZmaxfilesr��update)�webr�rA�n�showtagsr�r�r,r�r-�changelistentry�s


��	r�ccsL|j}d}|D]8}||krqH|d7}t|||�}t|�|d<|VqdS)z2Emit up to N records for an iterable of revisions.rrr�N)rAr�rF)r�ZrevsZmaxcountZparityfnrAr�rLr�r,r,r-�changelistentries
sr�cCs,d|jvrt�|jd�Stt�|��SdS)Nr")rsrZ	revescaperrr�)rur�r,r,r-�symrevorshortnodes
r�c	
cs�t|�}|��}t|���D]^\}}||vr2d}n||vr@d}nd}|dkrPdnd}|�||��||dt|�|d��VqdS)Nsremovedsaddedsmodifieds
filenolinksfilenodelinkr)r"r`�blocknor�r�)r�
filesadded�	enumerater��processrrF)	r
r�r�r�r��blocknorSr��templater,r,r-�
_listfilesgen"s$��r�c
st|jdt�|��}t|jdt�|��}t|�}t|j|j�}|durN|��}|�	dd�}d|jj
vrr|jj
d}t|||d|�}t|j
�}t|jj||��t|�|�}	tf|t|j|�|��|||tjt||j
fd��fdd�|	|�|���d	�
t�t|j|����S)
zBObtain a dictionary to be used to render the "changeset" template.schangesettagschangesetbookmarkNrsstylerlcst��SrI)�diffsummaryr��Zdiffstatsgenr,r-r�Zrkz changesetentry.<locals>.<lambda>)
�diffZsymrevZbasenodeZchangesettagZchangesetbookmarkZchangesetbranchr�r��diffstatr))r�rArr�r�r�r�ruZp1Zconfigrs�diffsrr��diffstatgenrr��dictr�rr�mappedgeneratorr�r.rZ	strkwargsr�)
r�r�r�Z
showbookmarksZ
showbranch�basectx�styler�r�Z	diffstatsr,r�r-�changesetentry9s>�


�
�
�r�ccsH|d|�D]}|�dt|�|d��Vqt|�|krD|�di�VdS)Nsfiledifflink)r"r`sfileellipses)r�rrn)r
r�rJ�maxrSr,r,r-�_listfilediffsgenasr�cCstjt|||fd�Sr�)rr�r�)r�rJr�r,r,r-r�hs
�r�c	cs|t|d�D]l\}}d||f}|�d�r.d}n$|�d�r>d}n|�d�rNd}nd	}|�||||d
|d|d��Vq
dS)
Nrs%d.%d�+sdifflineplus�-s
difflineminus�@s
difflineatsdifflinesl%ss% 8s)slineslineno�lineids
linenumber)r��
startswithr�)r
�linesr��lineidprefix�lineno�lZ
difflinenoZltyper,r,r-�_prettyprintdifflinesns"



��rc	cs�|rt�|�}	nt��}	tj|jdd�}
t|�}tj||||	|
d�}t|d�D]�\}
\}}}}|dkrr|dd�}dd�|D�}|D]@\}}|dur�|dur�|\}}}}t	�
||f|�s�q�|�|�q�|rNtj
t||
|fd�}t|�|
|d	�VqNdS)
NTr�ZoptsrsrawcSsg|]}|d�qS)�
r,)ri�hr,r,r-rj�rkz_diffsgen.<locals>.<listcomp>rl)r�r��lines)r�exact�alwaysrrvrr�	diffhunksr�rZhunkinrange�extendrr�rrF)r
rAr�r�r�r�r�r�r�mrvr�rr�Zfctx1Zfctx2�headerZhunksrZ	hunkrangeZ	hunklines�s1�l1�s2�l2rr,r,r-�	_diffsgen�s0
��rrkcCs(|j|||||j||f}tjt|dd�S)Ns	diffblockr�)rAr�rror)r�r�r�r�r�r�rrmr,r,r-r��s�
�r�c	Csj|rd|pd}||rd|p d7}|r0d|nd}|r@d|nd}|||d||pVd|d||pddd�S)Nsl%drksr%ds%ds% 6s)r!r�s
leftlinenosleftlinenumbersleftlinesrightlinenosrightlinenumbers	rightliner,)�type�
leftlineno�leftline�rightlineno�	rightlineZlineidZllnoZrlnor,r,r-�	_compline�s�rc

cs�|D]�\}}}}}t�|�}||}	||}
t|	|
�}t�|�D]8}t|||d|||||d|||d�Vq@|	|
kr�t�|||�D] }t||d||ddd�Vq�q|
|	krt�|||�D] }t|dd|d||d�Vq�qdS)Nr)rrrrr)rZsysbytes�minZxranger)
r
�	leftlines�
rightlines�opcodesrZlloZlhiZrloZrhiZlen1Zlen2r��ir,r,r-�_getcompblockgen�s>





�
��rcCs|||f}tjt|dd�S)Nscomparisonliner�)rror)rrrrmr,r,r-�
_getcompblock�s
�r ccs^t�d||�}|dkr2t|||���}d|iVn(|j|d�D]}t|||�}d|iVq>dS)z>Generator function that provides side-by-side comparison data.Nrr)r�)�difflibZSequenceMatcherr Zget_opcodesZget_grouped_opcodes)r
�
contextnumrrrer�ocr,r,r-�_comparegen�sr$cCs|||f}tjt|dd�S)Nscomparisonblockr�)rror$)r"rrrmr,r,r-�compares
�r%c
csVt�|ddi�}t�t�|j||d���}t�|�\}}}}}	||||||	fVq>dS)z3Generator function that provides the diffstat data.snoprefixFrN)rrvZdiffstatdatarZ	iterlinesr�Zdiffstatsum)
rr�r�rv�stats�maxname�maxtotal�addtotal�removetotal�binaryr,r,r-r�
sr�cCs*t|�\}}}}}}td�t|�||fS)z#Return a short summary of the diff.s5 %d files changed, %d insertions(+), %d deletions(-)
)rFrrn)�statgenr&r'r(r)r*r+r,r,r-r�s�r�c#s�t|�\}}�}}}|��}	�fdd�}
d}|D]Z\}}
}}||	vrHdnd}|
|}|d7}|�||��||||
|
�|
|�t|�d��Vq0dS)Ncs�dkrdSt|��dS)Nr�d)�float)r�r(r,r-�pct#sz_diffstattmplgen.<locals>.pctrsdiffstatlinksdiffstatnolinkr)r"r`sfilenostotalsaddpcts	removepctr�)rFr�r�r)r
r�r,r�r&r'r)r*r+r�r0�fileno�filenameZaddsZremovesZisbinaryr��totalr,r/r-�_diffstattmplgens&��r4cCs|||f}tjt|d�S)z5Return a diffstat template for each file in the diff.rl)rr�r4)r�r,r�rmr,r,r-r�;s
r�c@s~eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS) �sessionvars�?cCs||_||_dSrI)�_start�_vars)r@�vars�startr,r,r-rBBszsessionvars.__init__cCs
|j|SrI�r8)r@r�r,r,r-�__getitem__Fszsessionvars.__getitem__cCs||j|<dSrIr;)r@r��valuer,r,r-�__setitem__Iszsessionvars.__setitem__cCstt�|j�|j�SrI)r5�copyr8r7rDr,r,r-�__copy__Lszsessionvars.__copy__cCst�|||�}||jvSrI)r�unwrapvaluer8)r@r
r�r�r,r,r-�containsOszsessionvars.containscCst�|||�}|j�|�SrI)rrAr8rt)r@r
r�r�r,r,r-�	getmemberSszsessionvars.getmembercCst�td���dS�Nsnot comparable�rr�r�r@r
r�r,r,r-�getminWszsessionvars.getmincCst�td���dSrDrErFr,r,r-�getmaxZszsessionvars.getmaxcCst�td���dS)Nsnot filterablerE)r@r
r�Zselectr,r,r-�filter]szsessionvars.filterccs<|j}tt�|j��D] \}}|t�|�|d�Vd}qdS)N)r�svalues	separator�&)r7r�rr#r8r�)r@r
�	separatorr�r=r,r,r-�itermapsas�zsessionvars.itermapscCst�td���dS)Ns not displayable without templaterE)r@r
r��sepr,r,r-�joinkszsessionvars.joincCs|�||d�S)Nrk)rNrFr,r,r-�showoszsessionvars.showcCs
t|j�SrI)�boolr8rFr,r,r-�toboolrszsessionvars.toboolcCs|jSrIr;rFr,r,r-r�uszsessionvars.tovalueN)r6)rVrWrXrBr<r>r@rBrCrGrHrIrLrNrOrQr�r,r,r,r-r5As

r5c@seZdZdd�ZdS)�wsgiuicCsdS)N�Pr,rDr,r,r-�	termwidth{szwsgiui.termwidthN)rVrWrXrTr,r,r,r-rRysrRc	Cs2g}|j�d�}||j�d�7}|D�]\}}|dd�}t�|�}t�d|||f|�}|sx|j�td�||f�q$t�d|�}|�	||�
d��}	|�	||�
d��}
|�
d�}d	}|r�t�|�
��D]}
|tj|
O}q�zt�|	|�}	|�|	|
f�Wq$tj�y*|j�td
�||	f�Yq$0q$|S)Nswebsubsinterhgrrs1^s%s(.+)(?:(?<=\\\\)|(?<!\\))%s(.*)%s([ilmsux])*$s#websub: invalid pattern for %s: %s
s(?<!\\)\\%sr:rs"websub: invalid regexp for %s: %s
)rZconfigitemsrZreescape�rer�warnr�compile�sub�grouprZsysstr�upper�__dict__r%r)rAZwebsubtableZ
websubdefsr��patternZunesc�delimrZdelim_reZregexp�formatZflagin�flags�flagr,r,r-�
getwebsubssB
���
�racCst�||i�t�|�SrI)rZgetgraphnodecurrentZgetgraphnodesymbol)rAr�r,r,r-�getgraphnode�s
��rb)N)N)NN)N)N)N)N)r)Nrk)`Z
__future__rr?r!r1rUZi18nrrJrrrr�commonr	r
rr�r
rrrrrrrrrrrrZuimodrZutilsrZsortdictr$r.r5r<�objectr=rZrgrprrrzrr�r�r�r�r�r�r�r�r�r�r�r�r~r�r�r�r�r�r�Z	_requiresr�r�r�r�r�r�r�r�r�r�rrr�rrr r$r%r�r�r4r��wrappedr5rRrarbr,r,r,r-�<module>	s�D�	

T
	




 


()
"
8.

Youez - 2016 - github.com/yon3zu
LinuXploit