HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //proc/1233/root/usr/lib/python3/dist-packages/samba/__pycache__/ms_schema.cpython-310.pyc
o

�KyaD%�	@s*dZddlZddlZddlZiZidd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�ed <id!d�d"d�d#d�d$d�d%d�d&d�d'd
�d(d�d)d�d*d+�d,d-�d.d/�d0d1�d2d3�d4d5�d6d�ed7<d8died9<e�d:��d;�e�d<��d;�e�d=��d;�e�d>��d;�e�d?��d;�e�d@��d;�e�dA��d;�dB�ZegdC��Z	dDdE�Z
dFdG�ZdHdI�ZdJdK�Z
dLdM�ZdNdO�ZdPdQ�ZdYdTdU�ZedVk�rddlZzejd5Zejd3ZWne�y	edWejdejdX�e�d5�Ynweeee��dSdS)Zz&Generate LDIF from WSPP documentation.�N�	fATTINDEX��
fPDNTATTINDEX��fANR��fPRESERVEONDELETE��fCOPY��fTUPLEINDEX��fSUBTREEATTINDEX��
fCONFIDENTIAL��
fCONFIDENTAIL�fNEVERVALUEAUDIT��fRODCAttribute��fRODCFilteredAttribute�fRODCFILTEREDATTRIBUTE�fEXTENDEDLINKTRACKING��	fBASEONLY��fPARTITIONSECRET��searchflags�FLAG_ATTR_NOT_REPLICATED�FLAG_CR_NTDS_NC� FLAG_ATTR_REQ_PARTIAL_SET_MEMBER�FLAG_CR_NTDS_DOMAIN�FLAG_ATTR_IS_CONSTRUCTED�FLAG_CR_NTDS_NOT_GC_REPLICATED�FLAG_ATTR_IS_OPERATIONAL�FLAG_SCHEMA_BASE_OBJECT�FLAG_ATTR_IS_RDN�FLAG_DISALLOW_MOVE_ON_DELETE��FLAG_DOMAIN_DISALLOW_MOVE��FLAG_DOMAIN_DISALLOW_RENAME��FLAG_CONFIG_ALLOW_LIMITED_MOVE��FLAG_CONFIG_ALLOW_MOVE��FLAG_CONFIG_ALLOW_RENAME��FLAG_DISALLOW_DELETE�systemflags�FLAG_ATTR_IS_CRITICAL�
schemaflagsexs	+�s�>�utf8s
*�H��sVs
*�H��s	+�s�Js	+�s�\s
*�H��)z1.3.12.2.1011.28.0.702z1.2.840.113556.1.1.1.12z2.6.6.1.2.5.11.29z1.2.840.113556.1.1.1.11z1.3.12.2.1011.28.0.714z1.3.12.2.1011.28.0.732z1.2.840.113556.1.1.1.6)�auxiliaryclass�
maycontain�mustcontain�
posssuperiors�systemauxiliaryclass�systemmaycontain�systemmustcontain�systemposssuperiorscCsl|}	|��}|dd�dkr|dkr|dksJ�||}n|dkr.|}|dkr-	||fSn|}	||fSq)z- reads a line from an LDIF file, unfolding itTNr4� ��
)�readline)�f�buffer�line�l�rJ�1/usr/lib/python3/dist-packages/samba/ms_schema.py�__read_folded_lineYs 
��rLccs��ddl}t�d�}d}	g}	t||�\}}|dd�dkr q|dks(|dkr)n+|�|�}|rD|d	d�dkr>|dd	�}|�|�ntd
|d|jd�|�d�qt	|�r[|V|dkradSq
)
z)reads an LDIF entry, only unfolding linesrNz^([A-Za-z]+[A-Za-z0-9-]*):rCTr4�#rD���zInvalid line: %srB)�end�file)
�sys�re�compilerL�match�append�print�stderr�exit�len)rFrQ�attr_type_rerG�entryrI�mrJrJrK�__read_raw_entrieszs2�


��r]cCsb|�d�dkr|�dd�}|�dd�}|�dd�S|�d�r$|�d	d�S|�d
�r/|�dd�S|S)z"fix a string DN to use ${SCHEMADN}z<RootDomainDN>rN�
 rCrBz)CN=Schema,CN=Configuration,<RootDomainDN>z${SCHEMADN}zDC=XzCN=Schema,CN=Configuration,DC=XzCN=XzCN=Schema,CN=Configuration,CN=X)�find�replace�endswith)�dnrJrJrK�fix_dn�s

rccCs�t|t�sJ�|�dd�}|�dd�}z	t|�}Wt|�StyBd}|�d�}|D]}t||}|dd|>B}q,Yt|�Sw)z%Evaluate the OR expression in 'value'r^rCrBr�|r4r)�
isinstance�strr`�int�
ValueError�split�	bitFields)�key�value�o�flagsrF�bitposrJrJrK�__convert_bitfield�s
�
��rpcCs~g}|D]5}t|dt�r|dg}n|d}|dr)|�d|d|df�q|D]
}|�d|d|f�q+qd�|�S)zWrite out entry as LDIFr4r2z%s:: %srz%s: %srD)rerfrU�join)r[�outrI�vl�vrJrJrK�__write_ldif_one�s�
rucCs*dd�|D�}d}d}}}}|D]�}|d�d�r,|�d�|ddd	�|d<n|�d�|d
��}|d��|d<|d��|d<|sQ|dkrQ|d}|tvrr|d�dd�|d<|d�d
d�|d<|d�d�|d<|tvrt	||d�|d<|dkr�|ds�t
|d��|d<d|d<t|dt
�r�t|d�|d<|dkr�d}|d}	|dkr�d}q|dkr�d}q|dkr�d}q|s�J�g}
|s�|
�dd|dg�n|
�d|	dg�|s�|
�dd|gdg�|s�|
�d|dg�|s�|
�d|dg�|
�dt
t���dg�|
dd�|D�}|S)z}Perform transformations required to convert the LDIF-like schema
       file entries to LDIF, including Samba-specific stuff.cSsg|]}|�dd��qS)�:r4)ri)�.0rIrJrJrK�
<listcomp>�sz%__transform_entry.<locals>.<listcomp>rCFr4z: Tr2Nr�cnr^rB�,�
omobjectclassrb�objectclass�admindisplayname�admindescriptionzCN=%s,${SCHEMADN}�objectClass�top�adminDescription�adminDisplayName�
objectGUIDcSs(g|]}|d��tgd��vr|�qS)r)rb�
changetype�objectcategory)�lower�set)rw�xrJrJrKrxs()�
startswithrUr��lstrip�rstrip�multivalued_attrsr`rirjrp�oMObjectClassBER�striprerfrc�uuid�uuid4)r[rry�skip_dn�skip_objectclass�skip_admin_description�skip_admin_display_namerIrkrb�headerrJrJrK�__transform_entry�sb

�r�cCsjg}ddlm}||ddd��}t|�D]}|�tt||���qWd�n1s+wYd�|�S)z!Load and transform a schema file.r)�open�rzlatin-1)�encodingN�

)�ior�r]rUrur�rq)�filenamerrrr�rFr[rJrJrK�__parse_schema_file#s��
r�TFcCs4d}d}|rt|d�}|rt|d�}|d|dS)z-Read WSPP documentation-derived schema files.rC�attributeSchema�classSchemar�)r�)�	attr_file�classes_file�dump_attributes�dump_classes�debug�	attr_ldif�classes_ldifrJrJrK�read_ms_schema0s

r��__main__z(Usage: %s attr-file.txt classes-file.txt)rP)TTF)�__doc__rR�base64r�rj�	b64encode�decoder�r�r�rLr]rcrprur�r�r��__name__rQ�argvr�r��
IndexErrorrVrWrXrJrJrJrK�<module>s���������	�
������������������	�
���
���!'J


��