o
    àý°j€  ã                   @   s¨  d dl mZ d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 d d	l3m4Z4 d d
l5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z= d dl>m?Z? d dl@mAZA G dd„ de?ƒZBeAdƒZCeAdƒZDeAdƒZEeAdƒZFeZGeZHe:ZIeZJeZKeZLeJZMe ZNG dd„ de8ƒZOeZPG dd„ de8ƒZQdZRdZSdZTdZUdZVdZWdZXG dd„ de6ƒZYG d d!„ d!e8ƒZZG d"d#„ d#e9ƒZ[G d$d%„ d%e9ƒZ\G d&d'„ d'e9ƒZ]G d(d)„ d)e9ƒZ^G d*d+„ d+e9ƒZ_G d,d-„ d-e9ƒZ`G d.d/„ d/e7ƒZaG d0d1„ d1e6ƒZbG d2d3„ d3e8ƒZcG d4d5„ d5e8ƒZdG d6d7„ d7e6ƒZeG d8d9„ d9e8ƒZfG d:d;„ d;e6ƒZgG d<d=„ d=e8ƒZhG d>d?„ d?e6ƒZiG d@dA„ dAe8ƒZjG dBdC„ dCe7ƒZkG dDdE„ dEe8ƒZlG dFdG„ dGe6ƒZmG dHdI„ dIe6ƒZnG dJdK„ dKe6ƒZoG dLdM„ dMe7ƒZpG dNdO„ dOe6ƒZqG dPdQ„ dQe6ƒZrG dRdS„ dSe6ƒZsG dTdU„ dUe7ƒZtG dVdW„ dWe6ƒZuG dXdY„ dYe7ƒZvG dZd[„ d[e6ƒZwG d\d]„ d]e7ƒZxG d^d_„ d_e6ƒZyeZzG d`da„ dae7ƒZ{G dbdc„ dce8ƒZ|G ddde„ dee8ƒZ}G dfdg„ dge6ƒZ~G dhdi„ die;ƒZG djdk„ dke7ƒZ€G dldm„ dme8ƒZ�G dndo„ doe6ƒZ‚G dpdq„ dqe8ƒZƒG drds„ dse=ƒZ„G dtdu„ due;ƒZ…G dvdw„ dwe6ƒZ†G dxdy„ dye8ƒZ‡G dzde„ dee8ƒZ}eZˆG d{d|„ d|e7ƒZ‰G d}d~„ d~e8ƒZŠG dd€„ d€e6ƒZ‹G d�d‚„ d‚e6ƒZŒeˆZ�G dƒd„„ d„e6ƒZŽG d…d†„ d†e;ƒZ�G d‡dˆ„ dˆe6ƒZ�G d‰dŠ„ dŠe8ƒZ‘eZ’G d‹dŒ„ dŒe7ƒZ“G d�dŽ„ dŽe8ƒZ”G d�d�„ d�e6ƒZ•G d‘d’„ d’e8ƒZ–G d“d”„ d”e6ƒZ—G d•d–„ d–e6ƒZ˜G d—d˜„ d˜e7ƒZ™G d™dš„ dše8ƒZšG d›dœ„ dœe6ƒZ›G d�dž„ dže8ƒZœG dŸd „ d e6ƒZ�G d¡d¢„ d¢e8ƒZžG d£d¤„ d¤e<ƒZŸG d¥d¦„ d¦e7ƒZ G d§d¨„ d¨e7ƒZ¡G d©dª„ dªeƒZ¢G d«d¬„ d¬eƒZ£G d­d®„ d®eƒZ¤G d¯d°„ d°eƒZ¥G d±d²„ d²eƒZ¦G d³d´„ d´eƒZ§G dµd¶„ d¶eƒZ¨G d·d¸„ d¸eƒZ©G d¹dº„ dºeƒZªG d»d¼„ d¼eƒZ«G d½d¾„ d¾eƒZ¬G d¿dÀ„ dÀeƒZ­G dÁdÂ„ dÂeƒZ®G dÃdÄ„ dÄeƒZ¯G dÅdÆ„ dÆeƒZ°G dÇdÈ„ dÈeƒZ±G dÉdÊ„ dÊeƒZ²G dËdÌ„ dÌeƒZ³i Z´dÍdÎ„ ZµdÏdÐ„ Z¶G dÑdÒ„ dÒeƒZ·G dÓdÔ„ dÔeƒZ¸G dÕdÖ„ dÖeƒZ¹dS )×é    )Údivision)Úprint_functionN)ÚpackÚunpack)ÚLOG)Úhresult_errors)	ÚDCOMCALLÚ
DCOMANSWERÚIRemUnknown2ÚPMInterfacePointerÚ	INTERFACEÚMInterfacePointerÚMInterfacePointer_ARRAYÚ
BYTE_ARRAYÚPPMInterfacePointer)ÚLPWSTRÚULONGÚDWORDÚSHORTÚGUIDÚUSHORTÚLONGÚWSTRÚBYTEÚLONGLONGÚFLOATÚDOUBLEÚHRESULTÚPSHORTÚPLONGÚ	PLONGLONGÚPFLOATÚPDOUBLEÚPHRESULTÚCHARÚ	ULONGLONGÚINTÚUINTÚPCHARÚPUSHORTÚPULONGÚ
PULONGLONGÚPINTÚPUINTÚNULL)ÚEnum)Ú	NDRSTRUCTÚNDRUniConformantArrayÚ
NDRPOINTERÚNDRENUMÚ	NDRUSHORTÚNDRUNIONÚNDRUniConformantVaryingArrayÚNDR)ÚDCERPCException)Ústring_to_binc                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S ©N)r8   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacket© rA   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/dcom/oaut.pyr<   .   s   zDCERPCSessionError.__init__c                 C   sF   | j tjv rtj| j  d }tj| j  d }d| j ||f S d| j  S )Nr   é   z'OAUT SessionError: code: 0x%x - %s - %sz+OAUT SessionError: unknown error code: 0x%x)r?   r   ÚERROR_MESSAGES)r=   Úerror_msg_shortÚerror_msg_verboserA   rA   rB   Ú__str__1   s
   
zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r<   rG   rA   rA   rA   rB   r:   -   s    
r:   z$00020400-0000-0000-C000-000000000046z$00020401-0000-0000-C000-000000000046z$00020403-0000-0000-C000-000000000046z$00000000-0000-0000-0000-000000000000c                   @   ó   e Zd ZdeffZdS )ÚPDATEÚDataN)rH   rI   rJ   ÚDATEÚreferentrA   rA   rA   rB   rL   S   ó    ÿrL   c                   @   rK   )ÚPVARIANT_BOOLrM   N)rH   rI   rJ   ÚVARIANT_BOOLrO   rA   rA   rA   rB   rQ   [   rP   rQ   rC   é   é   é   i   i   i   c                   @   s.   e Zd ZdefdefdefdefdeffZdS )ÚDECIMALÚ	wReservedÚscaleÚsignÚHi32ÚLo64N)rH   rI   rJ   ÚWORDr   r   r%   Ú	structurerA   rA   rA   rB   rV   n   s    ûrV   c                   @   rK   )ÚPDECIMALrM   N)rH   rI   rJ   rV   rO   rA   rA   rA   rB   r^   w   rP   r^   c                   @   s   e Zd ZG dd„ deƒZdS )ÚVARENUMc                   @   sT  e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&e"e&B Z'ee&B Z(ee&B Z)ee&B Z*ee&B Z+ee&B Z,ee&B Z-ee&B Z.ee&B Z/e	e&B Z0e
e&B Z1ee&B Z2ee&B Z3ee&B Z4e%e&B Z5ee&B Z6ee&B Z7ee&B Z8ee&B Z9ee&B Z:ee&B Z;ee&B Z<ee&B Z=d%S )&zVARENUM.enumItemsr   rC   rS   é   rT   é   é   é   rU   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é$   é%   é&   i    i @  N)>rH   rI   rJ   ÚVT_EMPTYÚVT_NULLÚVT_I2ÚVT_I4ÚVT_R4ÚVT_R8ÚVT_CYÚVT_DATEÚVT_BSTRÚVT_DISPATCHÚVT_ERRORÚVT_BOOLÚ
VT_VARIANTÚ
VT_UNKNOWNÚ
VT_DECIMALÚVT_I1ÚVT_UI1ÚVT_UI2ÚVT_UI4ÚVT_I8ÚVT_UI8ÚVT_INTÚVT_UINTÚVT_VOIDÚ
VT_HRESULTÚVT_PTRÚVT_SAFEARRAYÚ	VT_CARRAYÚVT_USERDEFINEDÚVT_LPSTRÚ	VT_LPWSTRÚ	VT_RECORDÚ
VT_INT_PTRÚVT_UINT_PTRÚVT_ARRAYÚVT_BYREFÚVT_RECORD_OR_VT_BYREFÚVT_UI1_OR_VT_BYREFÚVT_I2_OR_VT_BYREFÚVT_I4_OR_VT_BYREFÚVT_I8_OR_VT_BYREFÚVT_R4_OR_VT_BYREFÚVT_R8_OR_VT_BYREFÚVT_BOOL_OR_VT_BYREFÚVT_ERROR_OR_VT_BYREFÚVT_CY_OR_VT_BYREFÚVT_DATE_OR_VT_BYREFÚVT_BSTR_OR_VT_BYREFÚVT_UNKNOWN_OR_VT_BYREFÚVT_DISPATCH_OR_VT_BYREFÚVT_ARRAY_OR_VT_BYREFÚVT_VARIANT_OR_VT_BYREFÚVT_I1_OR_VT_BYREFÚVT_UI2_OR_VT_BYREFÚVT_UI4_OR_VT_BYREFÚVT_UI8_OR_VT_BYREFÚVT_INT_OR_VT_BYREFÚVT_UINT_OR_VT_BYREFÚVT_DECIMAL_OR_VT_BYREFrA   rA   rA   rB   Ú	enumItems~   sx    r¸   N)rH   rI   rJ   r/   r¸   rA   rA   rA   rB   r_   }   s    r_   c                   @   ó    e Zd ZdZG dd„ deƒZdS )ÚSF_TYPE©)rM   ú<Lc                   @   sR   e Zd ZejZejZejZ	ej
ZejZejZejZejZejZejZejdB ZdS )zSF_TYPE.enumItemsi €  N)rH   rI   rJ   r_   r‡   ÚSF_ERRORrŒ   ÚSF_I1r   ÚSF_I2r€   ÚSF_I4r�   ÚSF_I8r…   ÚSF_BSTRrŠ   Ú
SF_UNKNOWNr†   ÚSF_DISPATCHr‰   Ú
SF_VARIANTrœ   Ú	SF_RECORDÚ
SF_HAVEIIDrA   rA   rA   rB   r¸   Á   s    r¸   N©rH   rI   rJ   r]   r/   r¸   rA   rA   rA   rB   rº   ¼   ó    rº   c                   @   r¹   )ÚCALLCONVr»   c                   @   ó   e Zd ZdZdZdZdS )zCALLCONV.enumItemsrC   rS   rT   N)rH   rI   rJ   ÚCC_CDECLÚ	CC_PASCALÚ
CC_STDCALLrA   rA   rA   rB   r¸   Ô   ó    r¸   NrÈ   rA   rA   rA   rB   rÊ   Ï   rÉ   rÊ   c                   @   r¹   )ÚFUNCKINDr»   c                   @   rË   )zFUNCKIND.enumItemsrC   r`   rT   N)rH   rI   rJ   ÚFUNC_PUREVIRTUALÚFUNC_STATICÚFUNC_DISPATCHrA   rA   rA   rB   r¸   à   rÏ   r¸   NrÈ   rA   rA   rA   rB   rÐ   Û   rÉ   rÐ   c                   @   r¹   )Ú
INVOKEKINDr»   c                   @   s   e Zd ZdZdZdZdZdS )zINVOKEKIND.enumItemsrC   rS   rT   rU   N)rH   rI   rJ   ÚINVOKE_FUNCÚINVOKE_PROPERTYGETÚINVOKE_PROPERTYPUTÚINVOKE_PROPERTYPUTREFrA   rA   rA   rB   r¸   ë   s
    r¸   NrÈ   rA   rA   rA   rB   rÔ   æ   rÉ   rÔ   c                   @   r¹   )ÚTYPEKINDr»   c                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
zTYPEKIND.enumItemsr   rC   rS   r`   rT   ra   rb   rc   N)rH   rI   rJ   Ú
TKIND_ENUMÚTKIND_RECORDÚTKIND_MODULEÚTKIND_INTERFACEÚTKIND_DISPATCHÚTKIND_COCLASSÚTKIND_ALIASÚTKIND_UNIONrA   rA   rA   rB   r¸   ÷   s    r¸   NrÈ   rA   rA   rA   rB   rÙ   ò   rÉ   rÙ   c                   @   ó   e Zd ZdZdS )ÚUSHORT_ARRAYú<HN©rH   rI   rJ   ÚitemrA   rA   rA   rB   rã     ó    rã   c                   @   s<   e Zd ZdefdefdeffZdd„ Zdd„ Zdd
d„ZdS )ÚFLAGGED_WORD_BLOBÚcBytesÚclSizeÚasDatac                 C   s|   |dkr7|}t ƒ }|D ]}| d¡}| td|ƒd ¡ q|| j| d< t|ƒd | d< t|ƒ| d< d | _d S t | ||¡S )	Nrë   úutf-16lerä   r   rM   rS   ré   rê   )	ÚlistÚencodeÚappendr   ÚfieldsÚlenÚdatar0   Ú__setitem__)r=   ÚkeyÚvalueÚarrayÚletterÚencodedrA   rA   rB   ró     s   

zFLAGGED_WORD_BLOB.__setitem__c                 C   sD   |dkrd}| j d d D ]}|td|ƒ d¡7 }q|S t | |¡S )Nrë   Ú rM   rä   rì   )rð   r   Údecoder0   Ú__getitem__)r=   rô   rõ   r÷   rA   rA   rB   rû     s   zFLAGGED_WORD_BLOB.__getitem__Nr   c                 C   sL   |d u r| j j}d| }|dkrtd| ƒ d}td|| d f dd� d S )Nú rù   z%sz%sasData: %srë   )Úend)Ú	__class__rH   Úprint)r=   ÚmsgÚindentÚindrõ   rA   rA   rB   Údump#  s   zFLAGGED_WORD_BLOB.dump)Nr   )	rH   rI   rJ   r   rã   r]   ró   rû   r  rA   rA   rA   rB   rè     s    ý	rè   c                   @   rK   )ÚBSTRrM   N)rH   rI   rJ   rè   rO   rA   rA   rA   rB   r  ,  rP   r  c                   @   rK   )ÚPBSTRrM   N)rH   rI   rJ   r  rO   rA   rA   rA   rB   r  1  rP   r  c                   @   rK   )ÚCURRENCYÚint64N)rH   rI   rJ   r   r]   rA   rA   rA   rB   r  7  rP   r  c                   @   rK   )Ú	PCURRENCYrM   N)rH   rI   rJ   r  rO   rA   rA   rA   rB   r  <  rP   r  c                   @   ó(   e Zd ZdefdefdefdeffZdS )Ú_wireBRECORDÚfFlagsrê   ÚpRecInfoÚpRecordN)rH   rI   rJ   r   r   r   r]   rA   rA   rA   rB   r
  C  ó    ür
  c                   @   rK   )ÚBRECORDrM   N)rH   rI   rJ   r
  rO   rA   rA   rA   rB   r  K  rP   r  c                   @   ó   e Zd ZdefdeffZdS )ÚSAFEARRAYBOUNDÚ	cElementsÚlLboundN)rH   rI   rJ   r   r   r]   rA   rA   rA   rB   r  R  ó    þr  c                   @   rK   )ÚPSAFEARRAYBOUNDrM   N)rH   rI   rJ   r  rO   rA   rA   rA   rB   r  X  rP   r  c                   @   ó   e Zd ZeZdS )Ú
BSTR_ARRAYN©rH   rI   rJ   r  ræ   rA   rA   rA   rB   r  ^  rç   r  c                   @   rK   )ÚPBSTR_ARRAYrM   N)rH   rI   rJ   r  rO   rA   rA   rA   rB   r  a  rP   r  c                   @   r  )ÚSAFEARR_BSTRÚSizeÚaBstrN)rH   rI   rJ   r   r  r]   rA   rA   rA   rB   r  f  r  r  c                   @   r  )ÚSAFEARR_UNKNOWNr  Ú	apUnknownN©rH   rI   rJ   r   r   r]   rA   rA   rA   rB   r  m  r  r  c                   @   r  )ÚSAFEARR_DISPATCHr  Ú
apDispatchNr  rA   rA   rA   rB   r   t  r  r   c                   @   r  )ÚBRECORD_ARRAYN)rH   rI   rJ   r  ræ   rA   rA   rA   rB   r"  {  rç   r"  c                   @   r  )ÚSAFEARR_BRECORDr  ÚaRecordN)rH   rI   rJ   r   r"  r]   rA   rA   rA   rB   r#  ~  r  r#  c                   @   ó"   e Zd ZdefdefdeffZdS )ÚSAFEARR_HAVEIIDr  r  ÚiidN)rH   rI   rJ   r   r   ÚIIDr]   rA   rA   rA   rB   r&  …  ó
    ýr&  c                   @   r  )ÚBYTE_SIZEDARRrê   ÚpDataN)rH   rI   rJ   r   r   r]   rA   rA   rA   rB   r*  Ž  r  r*  c                   @   râ   )Ú
WORD_ARRAYrä   Nrå   rA   rA   rA   rB   r,  •  rç   r,  c                   @   r  )ÚWORD_SIZEDARRrê   r+  N)rH   rI   rJ   r   r,  r]   rA   rA   rA   rB   r-  ˜  r  r-  c                   @   râ   )ÚDWORD_ARRAYr¼   Nrå   rA   rA   rA   rB   r.  Ÿ  rç   r.  c                   @   r  )ÚDWORD_SIZEDARRrê   r+  N)rH   rI   rJ   r   r.  r]   rA   rA   rA   rB   r/  ¢  r  r/  c                   @   râ   )ÚHYPER_ARRAYz<QNrå   rA   rA   rA   rB   r0  ©  rç   r0  c                   @   r  )ÚHYPER_SIZEDARRrê   r+  N)rH   rI   rJ   r   r0  r]   rA   rA   rA   rB   r1  ¬  r  r1  c                   @   ó   e Zd Zddd„ZdS )ÚVARIANT_ARRAYNFc                 C   s   t  | ||¡ t| _d S r;   )r1   r<   ÚVARIANTræ   ©r=   rò   ÚisNDR64rA   rA   rB   r<   »  s   
zVARIANT_ARRAY.__init__©NF©rH   rI   rJ   r<   rA   rA   rA   rB   r3  ·  s    r3  c                   @   rK   )ÚPVARIANT_ARRAYrM   N)rH   rI   rJ   r3  rO   rA   rA   rA   rB   r9  ¿  rP   r9  c                   @   r2  )ÚPVARIANTNFc                 C   s   t  | ||¡ dtff| _d S )NrM   )r2   r<   r4  rO   r5  rA   rA   rB   r<   Ê  s   zPVARIANT.__init__r7  r8  rA   rA   rA   rB   r:  Ä  s    r:  c                   @   r  )ÚSAFEARR_VARIANTr  ÚaVariantN)rH   rI   rJ   r   r3  r]   rA   rA   rA   rB   r;  Ï  r  r;  c                   @   s~   e Zd ZdeffZejdefejde	fej
defejdefejdefejdefejdefejd	efejd
efejdefi
ZdS )ÚSAFEARRAYUNIONÚtagÚBstrStrÚ
UnknownStrÚDispatchStrÚ
VariantStrÚ	RecordStrÚ
HaveIidStrÚByteStrÚWordStrÚLongStrÚHyperStrN)rH   rI   rJ   r   Ú	commonHdrrº   rÂ   r  rÃ   r  rÄ   r   rÅ   r;  rÆ   r#  rÇ   r&  r¾   r*  r¿   r-  rÀ   r/  rÁ   r1  ÚunionrA   rA   rA   rB   r=  Ö  s    ÿ









ör=  c                   @   r  )ÚSAFEARRAYBOUND_ARRAYN)rH   rI   rJ   r  ræ   rA   rA   rA   rB   rK  è  rç   rK  c                   @   rK   )ÚPSAFEARRAYBOUND_ARRAYrM   N)rH   rI   rJ   rK  rO   rA   rA   rA   rB   rL  ë  rP   rL  c                   @   s4   e Zd ZdefdefdefdefdefdeffZdS )Ú	SAFEARRAYÚcDimsÚ	fFeaturesÚ
cbElementsÚcLocksÚuArrayStructsÚ	rgsaboundN)rH   rI   rJ   r   r   r=  rK  r]   rA   rA   rA   rB   rM  ð  s    úrM  c                   @   rK   )Ú
PSAFEARRAYrM   N)rH   rI   rJ   rM  rO   rA   rA   rA   rB   rT  ú  rP   rT  c                   @   ó   e Zd ZdZdZdS )ÚEMPTYr   rA   N)rH   rI   rJ   Úalignr]   rA   rA   rA   rB   rV    ó    rV  c                   @   s<  e Zd ZdeffZi ejdef“ejde	f“ej
def“ejdef“ejdef“ejdef“ejdef“ejd	ef“ejd
ef“ejdef“ejdef“ejdef“ejdef“ejde f“ej!de"f“ej#de"f“ej$def“i ej%de&f“ej'de(f“ej)de*f“ej+de,f“ej-de.f“ej/de0f“ej1de2f“ej3de4f“ej5de6f“ej7de8f“ej9de:f“ej;de:f“ej<de=f“ej>de?f“ej@d eAf“ejBd!eCf“ejDd"ef“¥ejEd#eFfejGd$eHfejId%eJfejKd&eLfejMd'eNfejOd(ePfejQd)eRfejSd*eTfejUd+eVfejWd,eXfejYd-eZfej[d.e\fej]d/e\fi¥Z^d0S )1ÚvarUnionr>  ÚllValÚlValÚbValÚiValÚfltValÚdblValÚboolValÚscodeÚcyValÚdateÚbstrValÚpunkValÚpdispValÚparrayÚbrecValÚpbValÚpiValÚplValÚpllValÚpfltValÚpdblValÚpboolValÚpscodeÚpcyValÚpdateÚpbstrValÚppunkValÚ	ppdispValÚpparrayÚpvarValÚcValÚuiValÚulValÚullValÚintValÚuintValÚdecValÚpcValÚpuiValÚpulValÚpullValÚpintValÚpuintValÚpdecValÚemptyÚnullN)_rH   rI   rJ   r   rI  r_   r�   r   r€   r   r�   r   r   r   r�   r   r‚   r   rˆ   rR   r‡   r   rƒ   r  r„   rN   r…   r  rŠ   r   r†   rŸ   rM  rœ   r  r¡   r¢   r£   r   r¤   r   r¥   r    r¦   r!   r§   r"   r¨   rQ   r©   r#   rª   r  r«   rL   r¬   r  r­   r   r®   r¯   rT  r°   r:  rŒ   r$   rŽ   r   r�   r‘   r%   r’   r&   r“   r'   r‹   rV   r±   r(   r²   r)   r³   r*   r´   r+   rµ   r,   r¶   r-   r·   r^   r}   rV  r~   rJ  rA   rA   rA   rB   rY    s¬    ÿ
ÿ
þ
ý
ü
û
ú
ù
ø
	÷

ö
õ
ô
ó
ò
ñ
ð
ï
î
í
ì
ë
ê
é
è
ç
æ
å
ä
ã
â
á
 à
!ß
"Þ
#












ÑrY  c                   @   sB   e Zd ZdefdefdefdefdefdefdeffZdd	„ Zd
S )ÚwireVARIANTStrrê   ÚrpcReservedÚvtÚ
wReserved1Ú
wReserved2Ú
wReserved3Ú	_varUnionc                 C   ó   dS )NrU   rA   ©r=   rA   rA   rB   ÚgetAlignmentG  ó   zwireVARIANTStr.getAlignmentN)rH   rI   rJ   r   r   rY  r]   r‘  rA   rA   rA   rB   rˆ  <  s    ù
rˆ  c                   @   rK   )r4  rM   N)rH   rI   rJ   rˆ  rO   rA   rA   rA   rB   r4  J  rP   r4  c                   @   rK   )r:  rM   N)rH   rI   rJ   r4  rO   rA   rA   rA   rB   r:  O  rP   c                   @   râ   )ÚDISPID_ARRAYr¼   Nrå   rA   rA   rA   rB   r“  X  rç   r“  c                   @   rK   )ÚPDISPID_ARRAYrM   N)rH   rI   rJ   r“  rO   rA   rA   rA   rB   r”  [  rP   r”  c                   @   s(   e Zd ZdefdefdefdeffZdS )Ú
DISPPARAMSÚrgvargÚrgdispidNamedArgsÚcArgsÚ
cNamedArgsN)rH   rI   rJ   r9  r”  r'   r]   rA   rA   rA   rB   r•  `  r  r•  c                
   @   sF   e Zd Zdefdefdefdefdefdefdefdefd	eff	Zd
S )Ú	EXCEPINFOÚwCoderW   Ú
bstrSourceÚbstrDescriptionÚbstrHelpFileÚdwHelpContextÚ
pvReservedÚpfnDeferredFillInra  N)	rH   rI   rJ   r\   r  r   r   r   r]   rA   rA   rA   rB   rš  i  s    ÷rš  c                   @   r2  )Ú	ARRAYDESCNFc                 C   s*   t  | ||¡ dtfdtfdtff| _d S )NÚ	tdescElemrN  Úrgbounds)r0   r<   ÚTYPEDESCr   rK  r]   r5  rA   rA   rB   r<   ‚  s
   
ýzARRAYDESC.__init__r7  r8  rA   rA   rA   rB   r¢  z  s    r¢  c                   @   s$   e Zd ZdZdeffZddd„ZdS )ÚtdUnionTr>  NFc              
   C   sH   t j| d ||d� tjdtftjdtftjdtftjdt	fdd i| _
d S )N©r6  ÚtopLevelÚlptdescÚlpadescÚhreftypeÚdefault)r5   r<   r_   r–   Ú	PTYPEDESCr—   r˜   r¢  r™   ÚHREFTYPErJ  )r=   rò   r6  r¨  rA   rA   rB   r<   ˜  s   




ûztdUnion.__init__©NFF)rH   rI   rJ   ÚnotAlignr   rI  r<   rA   rA   rA   rB   r¦  ‹  s
    ÿr¦  c                   @   s$   e Zd ZdefdeffZdd„ ZdS )r¥  ÚvtTyperŠ  c                 C   r�  )NrT   rA   r�  rA   rA   rB   r‘  ¨  r’  zTYPEDESC.getAlignmentN)rH   rI   rJ   r¦  r_   r]   r‘  rA   rA   rA   rB   r¥  ¢  s
    þr¥  c                   @   s    e Zd ZdeffZddd„ZdS )r­  rM   NFc                 C   s>   t j| d |dd�}|d u rt dd¡| jd< d S |  |¡ d S )NFr§  rC   iÿÿ  Ú
ReferentID)r2   r<   ÚrandomÚrandintrð   Ú
fromString)r=   rò   r6  r¨  ÚretrA   rA   rB   r<   ¯  s   zPTYPEDESC.__init__r¯  )rH   rI   rJ   r¥  rO   r<   rA   rA   rA   rB   r­  «  s    ÿr­  c                   @   r  )ÚSCODE_ARRAYN)rH   rI   rJ   ÚSCODEræ   rA   rA   rA   rB   r·  »  rç   r·  c                   @   rK   )ÚPSCODE_ARRAYrM   N)rH   rI   rJ   r·  rO   rA   rA   rA   rB   r¹  ¾  rP   r¹  c                   @   r  )ÚPARAMDESCEXré   ÚvarDefaultValueN)rH   rI   rJ   r   r4  r]   rA   rA   rA   rB   rº  Ä  r  rº  c                   @   rK   )ÚPPARAMDESCEXrM   N)rH   rI   rJ   rº  rO   rA   rA   rA   rB   r¼  Ê  rP   r¼  c                   @   r  )Ú	PARAMDESCÚpparamdescexÚwParamFlagsN)rH   rI   rJ   r¼  r   r]   rA   rA   rA   rB   r½  Ñ  r  r½  c                   @   r  )ÚELEMDESCÚtdescÚ	paramdescN)rH   rI   rJ   r¥  r½  r]   rA   rA   rA   rB   rÀ  Ø  r  rÀ  c                   @   r  )ÚELEMDESC_ARRAYN)rH   rI   rJ   rÀ  ræ   rA   rA   rA   rB   rÃ  Þ  rç   rÃ  c                   @   rK   )ÚPELEMDESC_ARRAYrM   N)rH   rI   rJ   rÃ  rO   rA   rA   rA   rB   rÄ  á  rP   rÄ  c                   @   sX   e Zd Zdefdefdefdefdefdefde	fde	fd	e	fd
e	fde
fdeffZdS )ÚFUNCDESCÚmemidÚ
lReserved1ÚlprgelemdescParamÚfunckindÚinvkindÚcallconvÚcParamsÚ
cParamsOptÚoVftÚ
cReserved2ÚelemdescFuncÚ
wFuncFlagsN)rH   rI   rJ   ÚMEMBERIDr¹  rÄ  rÐ   rÔ   rÊ   r   rÀ  r\   r]   rA   rA   rA   rB   rÅ  ç  s    ôrÅ  c                   @   rK   )Ú
LPFUNCDESCrM   N)rH   rI   rJ   rÅ  rO   rA   rA   rA   rB   rÓ  ÷  rP   rÓ  c                   @   s‚   e Zd Zdefdefdefdefdefdefdefdefd	e	fd
e	fde	fde	fde	fde	fde	fde	fde
fdefde	ffZdS )ÚTYPEATTRÚguidÚlcidÚdwReserved1ÚdwReserved2ÚdwReserved3ÚlpstrReserved4ÚcbSizeInstanceÚtypeKindÚcFuncsÚcVarsÚ
cImplTypesÚ	cbSizeVftÚcbAlignmentÚ
wTypeFlagsÚwMajorVerNumÚwMinorVerNumÚ
tdescAliasÚdwReserved5ÚdwReserved6N)rH   rI   rJ   r   ÚLCIDr   ÚLPOLESTRr   rÙ   r\   r¥  r]   rA   rA   rA   rB   rÔ  ü  s*    írÔ  c                   @   rK   )Ú	PTYPEATTRrM   N)rH   rI   rJ   rÔ  rO   rA   rA   rA   rB   rê    rP   rê  c                   @   r  )ÚBSTR_ARRAY_CVNr  rA   rA   rA   rB   rë    rç   rë  c                   @   râ   )Ú
UINT_ARRAYr¼   Nrå   rA   rA   rA   rB   rì    rç   rì  c                   @   r  )ÚOLESTR_ARRAYN)rH   rI   rJ   ré  ræ   rA   rA   rA   rB   rí    rç   rí  c                   @   ó   e Zd ZdZdeffZdS )ÚIDispatch_GetTypeInfoCountr`   ÚpwszMachineNameN)rH   rI   rJ   Úopnumr   r]   rA   rA   rA   rB   rï  &  ó    ÿrï  c                   @   r  )Ú"IDispatch_GetTypeInfoCountResponseÚpctinfoÚ	ErrorCodeN)rH   rI   rJ   r   Úerror_status_tr]   rA   rA   rA   rB   ró  ,  r  ró  c                   @   ó    e Zd ZdZdefdeffZdS )ÚIDispatch_GetTypeInforT   ÚiTInforÖ  N)rH   rI   rJ   rñ  r   r   r]   rA   rA   rA   rB   rø  3  ó
    þrø  c                   @   r  )ÚIDispatch_GetTypeInfoResponseÚppTInforõ  N©rH   rI   rJ   r   rö  r]   rA   rA   rA   rB   rû  :  r  rû  c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚIDispatch_GetIDsOfNamesra   ÚriidÚ	rgszNamesÚcNamesrÖ  N)	rH   rI   rJ   rñ  ÚREFIIDrí  r'   rè  r]   rA   rA   rA   rB   rþ  A  s    ürþ  c                   @   r  )ÚIDispatch_GetIDsOfNamesResponseÚrgDispIdrõ  N)rH   rI   rJ   r“  rö  r]   rA   rA   rA   rB   r  J  r  r  c                	   @   sD   e Zd ZdZdefdefdefdefdefde	fde
fd	effZd
S )ÚIDispatch_Invokerb   ÚdispIdMemberrÿ  rÖ  ÚdwFlagsÚpDispParamsÚcVarRefÚrgVarRefIdxÚrgVarRefN)rH   rI   rJ   rñ  ÚDISPIDr  rè  r   r•  r'   rì  r3  r]   rA   rA   rA   rB   r  Q  s    ør  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚIDispatch_InvokeResponseÚ
pVarResultÚ
pExcepInfoÚpArgErrrõ  N)rH   rI   rJ   r4  rš  r'   rö  r]   rA   rA   rA   rB   r  ^  r  r  c                   @   rU  )ÚITypeInfo_GetTypeAttrr`   rA   N©rH   rI   rJ   rñ  r]   rA   rA   rA   rB   r  g  rX  r  c                   @   r%  )ÚITypeInfo_GetTypeAttrResponseÚ
ppTypeAttrÚ	pReservedrõ  N)rH   rI   rJ   rê  r   rö  r]   rA   rA   rA   rB   r  l  r)  r  c                   @   rU  )ÚITypeInfo_GetTypeComprT   rA   Nr  rA   rA   rA   rB   r  t  rX  r  c                   @   r  )ÚITypeInfo_GetTypeCompResponseÚppTComprõ  Nrý  rA   rA   rA   rB   r  y  r  r  c                   @   rî  )ÚITypeInfo_GetFuncDescra   ÚindexN)rH   rI   rJ   rñ  r'   r]   rA   rA   rA   rB   r  €  rò  r  c                   @   r%  )ÚITypeInfo_GetFuncDescResponseÚ
ppFuncDescr  rõ  N)rH   rI   rJ   rÓ  r   rö  r]   rA   rA   rA   rB   r  †  r)  r  c                   @   r÷  )ÚITypeInfo_GetNamesrc   rÆ  Ú	cMaxNamesN)rH   rI   rJ   rñ  rÒ  r'   r]   rA   rA   rA   rB   r  Ž  rú  r  c                   @   r%  )ÚITypeInfo_GetNamesResponseÚrgBstrNamesÚpcNamesrõ  N)rH   rI   rJ   rë  r'   rö  r]   rA   rA   rA   rB   r  •  r)  r  c                   @   r÷  )ÚITypeInfo_GetDocumentationrg   rÆ  ÚrefPtrFlagsN)rH   rI   rJ   rñ  rÒ  r   r]   rA   rA   rA   rB   r"  �  rú  r"  c                   @   r	  )Ú"ITypeInfo_GetDocumentationResponseÚ	pBstrNameÚpBstrDocStringÚpdwHelpContextrõ  N)rH   rI   rJ   r  r   rö  r]   rA   rA   rA   rB   r$  ¤  r  r$  c           
      C   s  t ƒ }|  ¡ }|d dkrt d¡ i S |  ¡ }| ¡ }t|d d ƒD ]a}| |¡}| |d d d¡}t	|d	 d d
 ƒ | 
¡  t	dƒ |d dkro|d	 d d
 }i ||< td|d ƒD ]}	d|| |d	 |	 d
 < q`|d d tkr…|d d d d || d< q$|S )Nrô  r   zCAutomation Server does not support type information for this objectr  rÝ  r  rÆ  éÿ   r   rë   zP================================================================================r!  rC   rù   rÐ  rÁ  rŠ  r¶  )ÚdictÚGetTypeInfoCountr   ÚerrorÚGetTypeInfoÚGetTypeAttrÚrangeÚGetFuncDescÚGetNamesrÿ   r  r.   )
Ú
iInterfaceÚmethodsÚtypeInfoCountÚ	iTypeInfoÚ	iTypeAttrÚxÚfuncDescÚnamesÚnameÚparamrA   rA   rB   ÚenumerateMethodsÑ  s,   

€r;  c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r.   )ÚstringrA   rA   rB   ÚcheckNullStringé  s
   r?  c                   @   s   e Zd Zdd„ ZdS )Ú	ITypeCompc                 C   ó   t  | |¡ t| _d S r;   )r
   r<   ÚIID_ITypeCompÚ_iid©r=   Ú	interfacerA   rA   rB   r<   ó  ó   
zITypeComp.__init__Nr8  rA   rA   rA   rB   r@  ò  s    r@  c                   @   s@   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zdd
d„Zddd„ZdS )Ú	ITypeInfoc                 C   rA  r;   )r
   r<   ÚIID_ITypeInforC  rD  rA   rA   rB   r<   ø  rF  zITypeInfo.__init__c                 C   ó    t ƒ }| j|| j|  ¡ d�}|S ©N©r'  Úuuid)r  ÚrequestrC  Úget_iPid©r=   rM  ÚresprA   rA   rB   r-  ü  ó   zITypeInfo.GetTypeAttrc                 C   sJ   t ƒ }| j|| j|  ¡ d�}tt|  ¡ d |d d ¡|  ¡ |  	¡ d�ƒS )NrK  ó    r  ÚabData©Útarget)
r  rM  rC  rN  r@  r   Úget_cinstanceÚjoinÚget_ipidRemUnknownÚ
get_targetrO  rA   rA   rB   ÚGetTypeComp  s   .zITypeInfo.GetTypeCompc                 C   s(   t ƒ }||d< | j|| j|  ¡ d�}|S )Nr  rK  )r  rM  rC  rN  )r=   r  rM  rP  rA   rA   rB   r/    s   zITypeInfo.GetFuncDescre   c                 C   ó0   t ƒ }||d< ||d< | j|| j|  ¡ d�}|S )NrÆ  r  rK  )r  rM  rC  rN  )r=   rÆ  r  rM  rP  rA   rA   rB   r0    ó
   zITypeInfo.GetNamesé   c                 C   r[  )NrÆ  r#  rK  )r"  rM  rC  rN  )r=   rÆ  r#  rM  rP  rA   rA   rB   ÚGetDocumentation  r\  zITypeInfo.GetDocumentationN)re   )r]  )	rH   rI   rJ   r<   r-  rZ  r/  r0  r^  rA   rA   rA   rB   rG  ÷  s    
rG  c                   @   s6   e Zd Zdd„ Zdd„ Zdd„ Zddd	„Zd
d„ ZdS )Ú	IDispatchc                 C   rA  r;   )r
   r<   ÚIID_IDispatchrC  rD  rA   rA   rB   r<     rF  zIDispatch.__init__c                 C   rI  rJ  )rï  rM  rC  rN  rO  rA   rA   rB   r*     rQ  zIDispatch.GetTypeInfoCountc                 C   sZ   t ƒ }d|d< d|d< | j|| j|  ¡ d�}tt|  ¡ d |d d ¡|  ¡ |  	¡ d�ƒS )	Nr   rù  rÖ  rK  rR  rü  rS  rT  )
rø  rM  rC  rN  rG  r   rV  rW  rX  rY  rO  rA   rA   rB   r,  %  s
   .zIDispatch.GetTypeInfor   c           	      C   s„   t ƒ }t|d< |D ]}tƒ }t|ƒ|d< |d  |¡ q	t|ƒ|d< ||d< | j|| j|  ¡ d�}t	ƒ }|d D ]}| |¡ q8|S )Nrÿ  rM   r   r  rÖ  rK  r  )
rþ  ÚIID_NULLré  r?  rï   rñ   rM  rC  rN  rí   )	r=   r   rÖ  rM  r9  ÚtmpNamerP  ÚIDsÚidrA   rA   rB   ÚGetIDsOfNames,  s   zIDispatch.GetIDsOfNamesc           
      C   s`   t ƒ }||d< t|d< ||d< ||d< ||d< ||d< ||d< ||d< | j|| j|  ¡ d	�}	|	S )
Nr  rÿ  rÖ  r  r  r	  r
  r  rK  )r  ra  rM  rC  rN  )
r=   r  rÖ  r  r  r	  r
  r  rM  rP  rA   rA   rB   ÚInvoke<  s   zIDispatch.InvokeN)r   )rH   rI   rJ   r<   r*  r,  re  rf  rA   rA   rA   rB   r_    s    
r_  )ºÚ
__future__r   r   r³  Ústructr   r   Úimpacketr   r   Úimpacket.dcerpc.v5.dcomrtr   r	   r
   r   r   r   r   r   r   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   Úimpacket.dcerpc.v5.enumr/   Úimpacket.dcerpc.v5.ndrr0   r1   r2   r3   r4   r5   r6   r7   Úimpacket.dcerpc.v5.rpcrtr8   Úimpacket.uuidr9   r:   r`  rH  rB  ra  rö  rè  r\   r(  ré  ÚOLESTRr  rN   rL   rR   rQ   ÚDISPATCH_METHODÚDISPATCH_PROPERTYGETÚDISPATCH_PROPERTYPUTÚDISPATCH_PROPERTYPUTREFÚDISPATCH_zeroVarResultÚDISPATCH_zeroExcepInfoÚDISPATCH_zeroArgErrrV   r^   r_   rº   rÊ   rÐ   rÔ   rÙ   rã   rè   r  r  r  r  r
  r  r  r  r  r  r  r  r   r"  r#  r&  r*  r,  r-  r.  r/  r0  r1  r®  r3  r9  r:  r;  r=  rK  rL  rM  rT  rV  rY  rˆ  r4  r  r“  r”  r•  rš  rÒ  r¢  r¦  r¥  r­  r¸  r·  r¹  rº  r¼  r½  rÀ  rÃ  rÄ  rÅ  rÓ  rÔ  rê  rë  rì  rí  rï  ró  rø  rû  rþ  r  r  r  r  r  r  r  r  r  r  r  r"  r$  ÚOPNUMSr;  r?  r@  rG  r_  rA   rA   rA   rB   Ú<module>   s
  ,€(	?&	
6				!	$