3
uQh                 @   s  d Z ddlmZ ddlmZ ddlmZmZmZmZ ddl	Z	ddl
Z
ddlmZ er|ddlmZmZmZmZmZmZmZm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&G d-d. d.eZ'G d/d0 d0eZ(G d1d2 d2eZ)G d3d4 d4eZ*G d5d6 d6eZ+G d7d8 d8eZ,G d9d: d:eZ-G d;d< d<eZ.G d=d> d>eZ/G d?d@ d@eZ0G dAdB dBeZ1G dCdD dDeZ2G dEdF dFeZ3G dGdH dHeZ4dS )IzBFile generated by TLObjects' generator. All changes will be ERASED   )TLObject)	TLRequest    )OptionalListUnionTYPE_CHECKINGN)datetime)TypeDataJSONTypeInputFileTypeInputGroupCallTypeInputPeerTypeInputPhoneCallTypeInputUserTypePhoneCallDiscardReasonTypePhoneCallProtocolc               @   sB   e Zd ZdZdZdeddddZdd	 Zd
d Ze	dd Z
dS )AcceptCallRequesti;l   O~) r   r   )peerg_bprotocolc             C   s   || _ || _|| _dS )zB
        :returns phone.PhoneCall: Instance of PhoneCall.
        N)r   r   r   )selfr   r   r    r   ?/tmp/pip-build-2nz6shyl/telethon/telethon/tl/functions/phone.py__init__   s    zAcceptCallRequest.__init__c             C   s@   dt | jtr| jj n| j| jt | jtr6| jj n| jdS )Nr   )_r   r   r   )
isinstancer   r   to_dictr   r   )r   r   r   r   r      s    zAcceptCallRequest.to_dictc             C   s&   dj d| jj | j| j| jj fS )N    s   ;)joinr   _bytesserialize_bytesr   r   )r   r   r   r   r   !   s
    
zAcceptCallRequest._bytesc             C   s&   |j  }|j }|j  }| |||dS )N)r   r   r   )tgread_objecttgread_bytes)clsreader_peerZ_g_b	_protocolr   r   r   from_reader)   s    zAcceptCallRequest.from_readerN)__name__
__module____qualname__CONSTRUCTOR_IDSUBCLASS_OF_IDbytesr   r   r   classmethodr'   r   r   r   r   r      s   r   c               @   sX   e Zd ZdZdZdee dddZdd Zd	d
 Z	dd Z
edd Zedd ZdS )CheckGroupCallRequestl   wy9k iq&Pr   )callsourcesc             C   s   || _ || _dS )zF
        :returns Vector<int>: This type has no constructors.
        N)r0   r1   )r   r0   r1   r   r   r   r   5   s    zCheckGroupCallRequest.__init__c                s   |j | j| _d S )N)get_input_group_callr0   )r   clientutilsr   r   r   resolve<   s    zCheckGroupCallRequest.resolvec             C   s<   dt | jtr| jj n| j| jd kr*g n| jd d  dS )Nr/   )r   r0   r1   )r   r0   r   r   r1   )r   r   r   r   r   ?   s    zCheckGroupCallRequest.to_dictc             C   s:   dj d| jj dtjdt| jdj dd | jD fS )Nr   s   ws   ĵz<ic             s   s   | ]}t jd |V  qdS )z<iN)structpack).0xr   r   r   	<genexpr>J   s    z/CheckGroupCallRequest._bytes.<locals>.<genexpr>)r   r0   r   r6   r7   lenr1   )r   r   r   r   r   F   s    zCheckGroupCallRequest._bytesc             C   sH   |j  }|j  g }x&t|j D ]}|j }|j| q"W | ||dS )N)r0   r1   )r!   read_intrangeappend)r#   r$   _call_sourcesr   _xr   r   r   r'   M   s    z!CheckGroupCallRequest.from_readerc                s"    j    fddt j  D S )Nc                s   g | ]} j  qS r   )r<   )r8   r   )r$   r   r   
<listcomp>[   s    z5CheckGroupCallRequest.read_result.<locals>.<listcomp>)r<   r=   )r$   r   )r$   r   read_resultX   s    z!CheckGroupCallRequest.read_resultN)r(   r)   r*   r+   r,   r   intr   r5   r   r   r.   r'   staticmethodrC   r   r   r   r   r/   1   s   r/   c               @   sD   e Zd ZdZdZdeeddddZdd	 Zd
d Z	e
dd ZdS )ConfirmCallRequesti".l   O~) r   r   )r   g_akey_fingerprintr   c             C   s   || _ || _|| _|| _dS )zB
        :returns phone.PhoneCall: Instance of PhoneCall.
        N)r   rG   rH   r   )r   r   rG   rH   r   r   r   r   r   b   s    zConfirmCallRequest.__init__c             C   sD   dt | jtr| jj n| j| j| jt | jtr:| jj n| jdS )NrF   )r   r   rG   rH   r   )r   r   r   r   rG   rH   r   )r   r   r   r   r   k   s
    zConfirmCallRequest.to_dictc             C   s2   dj d| jj | j| jtjd| j| jj fS )Nr   s   ".z<q)	r   r   r   r    rG   r6   r7   rH   r   )r   r   r   r   r   t   s    
zConfirmCallRequest._bytesc             C   s0   |j  }|j }|j }|j  }| ||||dS )N)r   rG   rH   r   )r!   r"   	read_long)r#   r$   r%   Z_g_a_key_fingerprintr&   r   r   r   r'   }   s
    zConfirmCallRequest.from_readerN)r(   r)   r*   r+   r,   r-   rD   r   r   r   r.   r'   r   r   r   r   rF   ^   s   			rF   c               @   s@   e Zd ZdZdZdedddZdd Zd	d
 Ze	dd Z
dS )CreateConferenceCallRequestl   	? l   O~) r   )r   rH   c             C   s   || _ || _dS )zB
        :returns phone.PhoneCall: Instance of PhoneCall.
        N)r   rH   )r   r   rH   r   r   r   r      s    z$CreateConferenceCallRequest.__init__c             C   s&   dt | jtr| jj n| j| jdS )NrK   )r   r   rH   )r   r   r   r   rH   )r   r   r   r   r      s    z#CreateConferenceCallRequest.to_dictc             C   s    dj d| jj tjd| jfS )Nr   s   	z<q)r   r   r   r6   r7   rH   )r   r   r   r   r      s    z"CreateConferenceCallRequest._bytesc             C   s   |j  }|j }| ||dS )N)r   rH   )r!   rI   )r#   r$   r%   rJ   r   r   r   r'      s    z'CreateConferenceCallRequest.from_readerN)r(   r)   r*   r+   r,   rD   r   r   r   r.   r'   r   r   r   r   rK      s   rK   c               @   s\   e Zd ZdZdZddee eee ee	 dddZ
dd	 Zd
d Zdd Zedd ZdS )CreateGroupCallRequestiHl   * Nr   )r   rtmp_stream	random_idtitleschedule_datec             C   s@   || _ || _|dk	r|ntjtjdddd| _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N   bigT)signed)	r   rM   rD   
from_bytesosurandomrN   rO   rP   )r   r   rM   rN   rO   rP   r   r   r   r      s
    $zCreateGroupCallRequest.__init__c                s   |j |j| jI d H | _d S )N)get_input_peerget_input_entityr   )r   r3   r4   r   r   r   r5      s    zCreateGroupCallRequest.resolvec             C   s2   dt | jtr| jj n| j| j| j| j| jdS )NrL   )r   r   rM   rN   rO   rP   )r   r   r   r   rM   rN   rO   rP   )r   r   r   r   r      s    zCreateGroupCallRequest.to_dictc             C   s   dj dtjd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jd ksV| jdkrZdndB | jj tjd	| j| jd ks| jdkrdn
| j	| j| jd ks| jdkrdn
| j
| jfS )
Nr   s   Hz<IFr   rQ         z<i)r   r6   r7   rM   rO   rP   r   r   rN   r    Zserialize_datetime)r   r   r   r   r      s    Z"zCreateGroupCallRequest._bytesc             C   sb   |j  }t|d@ }|j }|j  }|d@ r6|j }nd }|d@ rL|j }nd }| |||||dS )NrQ   rY   rZ   )r   rM   rN   rO   rP   )r<   boolr!   tgread_stringZtgread_date)r#   r$   flagsZ_rtmp_streamr%   
_random_id_titleZ_schedule_dater   r   r   r'      s    

z"CreateGroupCallRequest.from_reader)NNNN)r(   r)   r*   r+   r,   r   r[   rD   strr	   r   r5   r   r   r.   r'   r   r   r   r   rL      s   $


rL   c               @   sL   e Zd ZdZdZddedeee dddZd	d
 Z	dd Z
edd ZdS )DiscardCallRequestl   Ae l   * Nr   r   )r   durationreasonconnection_idvideoc             C   s"   || _ || _|| _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r   rb   rc   rd   re   )r   r   rb   rc   rd   re   r   r   r   r      s
    zDiscardCallRequest.__init__c             C   sH   dt | jtr| jj n| j| jt | jtr6| jj n| j| j| jdS )Nra   )r   r   rb   rc   rd   re   )r   r   r   r   rb   rc   rd   re   )r   r   r   r   r      s    zDiscardCallRequest.to_dictc          	   C   sV   dj dtjd| jd ks | jdkr$dnd| jj tjd| j| jj tjd| jfS )	Nr   s   ˲z<IFr   rY   z<iz<q)	r   r6   r7   re   r   r   rb   rc   rd   )r   r   r   r   r      s    "zDiscardCallRequest._bytesc             C   sF   |j  }t|d@ }|j }|j  }|j }|j }| |||||dS )NrY   )r   rb   rc   rd   re   )r<   r[   r!   rI   )r#   r$   r]   _videor%   Z	_durationZ_reasonZ_connection_idr   r   r   r'      s    zDiscardCallRequest.from_reader)N)r(   r)   r*   r+   r,   rD   r   r[   r   r   r   r.   r'   r   r   r   r   ra      s   


ra   c               @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )DiscardGroupCallRequesti5qwzl   * r   )r0   c             C   s
   || _ dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   )r   r0   r   r   r   r     s    z DiscardGroupCallRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    zDiscardGroupCallRequest.resolvec             C   s"   dt | jtr| jj n| jdS )Nrg   )r   r0   )r   r0   r   r   )r   r   r   r   r     s    zDiscardGroupCallRequest.to_dictc             C   s   dj d| jj fS )Nr   s   5qwz)r   r0   r   )r   r   r   r   r     s    zDiscardGroupCallRequest._bytesc             C   s   |j  }| |dS )N)r0   )r!   )r#   r$   r?   r   r   r   r'   $  s    z#DiscardGroupCallRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   rg     s   rg   c            
   @   sn   e Zd ZdZdZdddee ee ee ee ee ee dddZd	d
 Z	dd Z
dd Zedd ZdS )EditGroupCallParticipantRequestl   :NJ l   * Nr   r   )r0   participantmutedvolume
raise_handvideo_stoppedvideo_pausedpresentation_pausedc	       	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   ri   rj   rk   rl   rm   rn   ro   )	r   r0   ri   rj   rk   rl   rm   rn   ro   r   r   r   r   .  s    z(EditGroupCallParticipantRequest.__init__c                s,   |j | j| _|j|j| jI d H | _d S )N)r2   r0   rW   rX   ri   )r   r3   r4   r   r   r   r5   ;  s    z'EditGroupCallParticipantRequest.resolvec          
   C   sT   dt | jtr| jj n| jt | jtr2| jj n| j| j| j| j| j| j	| j
d	S )Nrh   )	r   r0   ri   rj   rk   rl   rm   rn   ro   )r   r0   r   r   ri   rj   rk   rl   rm   rn   ro   )r   r   r   r   r   ?  s    z'EditGroupCallParticipantRequest.to_dictc             C   sH  dj dtjd| jd krdnd| jd ks0| jdkr4dndB | jd krFdndB | jd krXdnd	B | jd krjdnd
B | jd kr|dndB | j	j
 | jj
 | jd krdn| jrdnd| jd ks| jdkrdntjd| j| jd krdn| jrdnd| jd krdn| jrdnd| jd krdn| jr"dnd| jd kr4dn| jr@dndf
S )Nr   s   :'z<Ir   rY   FrZ   rQ             s   urs   7yz<i)r   r6   r7   rj   rk   rl   rm   rn   ro   r0   r   ri   )r   r   r   r   r   L  s    |$z&EditGroupCallParticipantRequest._bytesc          
   C   s   |j  }|j }|j }|d@ r*|j }nd }|d@ r@|j  }nd }|d@ rV|j }nd }|d@ rl|j }nd }|d@ r|j }	nd }	|d@ r|j }
nd }
| |||||||	|
dS )NrY   rZ   rQ   rp   rq   rr   )r0   ri   rj   rk   rl   rm   rn   ro   )r<   r!   tgread_bool)r#   r$   r]   r?   Z_participant_mutedZ_volumeZ_raise_hand_video_stoppedZ_video_pausedZ_presentation_pausedr   r   r   r'   Z  s,    





z+EditGroupCallParticipantRequest.from_reader)NNNNNN)r(   r)   r*   r+   r,   r   r[   rD   r   r5   r   r   r.   r'   r   r   r   r   rh   *  s   6rh   c               @   sH   e Zd ZdZdZdedddZdd Zd	d
 Zdd Z	e
dd ZdS )EditGroupCallTitleRequesti
l   * r   )r0   rO   c             C   s   || _ || _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   rO   )r   r0   rO   r   r   r   r     s    z"EditGroupCallTitleRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    z!EditGroupCallTitleRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nrv   )r   r0   rO   )r   r0   r   r   rO   )r   r   r   r   r     s    z!EditGroupCallTitleRequest.to_dictc             C   s   dj d| jj | j| jfS )Nr   s   
)r   r0   r   r    rO   )r   r   r   r   r     s    z EditGroupCallTitleRequest._bytesc             C   s   |j  }|j }| ||dS )N)r0   rO   )r!   r\   )r#   r$   r?   r_   r   r   r   r'     s    z%EditGroupCallTitleRequest.from_readerN)r(   r)   r*   r+   r,   r`   r   r5   r   r   r.   r'   r   r   r   r   rv   {  s   rv   c               @   sN   e Zd ZdZdZddee dddZdd	 Zd
d Z	dd Z
edd ZdS )ExportGroupCallInviteRequestl   dTM i;;Nr   )r0   can_self_unmutec             C   s   || _ || _dS )z^
        :returns phone.ExportedGroupCallInvite: Instance of ExportedGroupCallInvite.
        N)r0   rx   )r   r0   rx   r   r   r   r     s    z%ExportGroupCallInviteRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    z$ExportGroupCallInviteRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nrw   )r   r0   rx   )r   r0   r   r   rx   )r   r   r   r   r     s    z$ExportGroupCallInviteRequest.to_dictc             C   s6   dj dtjd| jd ks | jdkr$dnd| jj fS )Nr   s   dz<IFr   rY   )r   r6   r7   rx   r0   r   )r   r   r   r   r     s    "z#ExportGroupCallInviteRequest._bytesc             C   s(   |j  }t|d@ }|j }| ||dS )NrY   )r0   rx   )r<   r[   r!   )r#   r$   r]   Z_can_self_unmuter?   r   r   r   r'     s    z(ExportGroupCallInviteRequest.from_reader)N)r(   r)   r*   r+   r,   r   r[   r   r5   r   r   r.   r'   r   r   r   r   rw     s   rw   c               @   s0   e Zd ZdZdZdd Zdd Zedd Zd	S )
GetCallConfigRequestiEUl   RZ c             C   s   ddiS )Nr   ry   r   )r   r   r   r   r     s    zGetCallConfigRequest.to_dictc             C   s
   dj dS )Nr      EU)rz   )r   )r   r   r   r   r     s    zGetCallConfigRequest._bytesc             C   s   |  S )Nr   )r#   r$   r   r   r   r'     s    z GetCallConfigRequest.from_readerN)	r(   r)   r*   r+   r,   r   r   r.   r'   r   r   r   r   ry     s
   ry   c               @   sH   e Zd ZdZdZdedddZdd Zd	d
 Zdd Z	e
dd ZdS )GetGroupCallRequestiEiA0r   )r0   limitc             C   s   || _ || _dS )zB
        :returns phone.GroupCall: Instance of GroupCall.
        N)r0   r|   )r   r0   r|   r   r   r   r     s    zGetGroupCallRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    zGetGroupCallRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nr{   )r   r0   r|   )r   r0   r   r   r|   )r   r   r   r   r     s    zGetGroupCallRequest.to_dictc             C   s    dj d| jj tjd| jfS )Nr   s   Ez<i)r   r0   r   r6   r7   r|   )r   r   r   r   r     s    zGetGroupCallRequest._bytesc             C   s   |j  }|j }| ||dS )N)r0   r|   )r!   r<   )r#   r$   r?   _limitr   r   r   r'     s    zGetGroupCallRequest.from_readerN)r(   r)   r*   r+   r,   rD   r   r5   r   r   r.   r'   r   r   r   r   r{     s   r{   c               @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )GetGroupCallJoinAsRequestl   :!^ l   pni r   )r   c             C   s
   || _ dS )zF
        :returns phone.JoinAsPeers: Instance of JoinAsPeers.
        N)r   )r   r   r   r   r   r     s    z"GetGroupCallJoinAsRequest.__init__c                s   |j |j| jI d H | _d S )N)rW   rX   r   )r   r3   r4   r   r   r   r5     s    z!GetGroupCallJoinAsRequest.resolvec             C   s"   dt | jtr| jj n| jdS )Nr~   )r   r   )r   r   r   r   )r   r   r   r   r     s    z!GetGroupCallJoinAsRequest.to_dictc             C   s   dj d| jj fS )Nr   s   :!|)r   r   r   )r   r   r   r   r     s    z GetGroupCallJoinAsRequest._bytesc             C   s   |j  }| |dS )N)r   )r!   )r#   r$   r%   r   r   r   r'     s    z%GetGroupCallJoinAsRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   r~     s   r~   c               @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )!GetGroupCallStreamChannelsRequesti@l   E" r   )r0   c             C   s
   || _ dS )z^
        :returns phone.GroupCallStreamChannels: Instance of GroupCallStreamChannels.
        N)r0   )r   r0   r   r   r   r     s    z*GetGroupCallStreamChannelsRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5   "  s    z)GetGroupCallStreamChannelsRequest.resolvec             C   s"   dt | jtr| jj n| jdS )Nr   )r   r0   )r   r0   r   r   )r   r   r   r   r   %  s    z)GetGroupCallStreamChannelsRequest.to_dictc             C   s   dj d| jj fS )Nr   s   @)r   r0   r   )r   r   r   r   r   +  s    z(GetGroupCallStreamChannelsRequest._bytesc             C   s   |j  }| |dS )N)r0   )r!   )r#   r$   r?   r   r   r   r'   1  s    z-GetGroupCallStreamChannelsRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   r     s   r   c               @   sH   e Zd ZdZdZdedddZdd Zd	d
 Zdd Z	e
dd ZdS ) GetGroupCallStreamRtmpUrlRequestl   +g= l   # r   )r   revokec             C   s   || _ || _dS )z\
        :returns phone.GroupCallStreamRtmpUrl: Instance of GroupCallStreamRtmpUrl.
        N)r   r   )r   r   r   r   r   r   r   ;  s    z)GetGroupCallStreamRtmpUrlRequest.__init__c                s   |j |j| jI d H | _d S )N)rW   rX   r   )r   r3   r4   r   r   r   r5   B  s    z(GetGroupCallStreamRtmpUrlRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nr   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   E  s    z(GetGroupCallStreamRtmpUrlRequest.to_dictc             C   s    dj d| jj | jrdndfS )Nr   s   s   urs   7y)r   r   r   r   )r   r   r   r   r   L  s    z'GetGroupCallStreamRtmpUrlRequest._bytesc             C   s   |j  }|j }| ||dS )N)r   r   )r!   rs   )r#   r$   r%   Z_revoker   r   r   r'   S  s    z,GetGroupCallStreamRtmpUrlRequest.from_readerN)r(   r)   r*   r+   r,   r[   r   r5   r   r   r.   r'   r   r   r   r   r   7  s   r   c               @   sV   e Zd ZdZdZded ee eedddZdd	 Z	d
d Z
dd Zedd ZdS )GetGroupParticipantsRequestl   X
 irr   r   )r0   idsr1   offsetr|   c             C   s"   || _ || _|| _|| _|| _dS )zR
        :returns phone.GroupParticipants: Instance of GroupParticipants.
        N)r0   r   r1   r   r|   )r   r0   r   r1   r   r|   r   r   r   r   ^  s
    z$GetGroupParticipantsRequest.__init__c                sH   |j | j| _g }x*| jD ] }|j|j|j|I d H  qW || _d S )N)r2   r0   r   r>   rW   rX   )r   r3   r4   _tmprA   r   r   r   r5   h  s
     z#GetGroupParticipantsRequest.resolvec             C   s`   dt | jtr| jj n| j| jd kr*g ndd | jD | jd krFg n| jd d  | j| jdS )Nr   c             S   s"   g | ]}t |tr|j n|qS r   )r   r   r   )r8   r9   r   r   r   rB   t  s    z7GetGroupParticipantsRequest.to_dict.<locals>.<listcomp>)r   r0   r   r1   r   r|   )r   r0   r   r   r   r1   r   r|   )r   r   r   r   r   p  s    z#GetGroupParticipantsRequest.to_dictc             C   sv   dj d| jj dtjdt| jdj dd | jD dtjdt| jdj dd | jD | j| j	tjd| j
f
S )Nr   s   Xs   ĵz<ic             s   s   | ]}|j  V  qd S )N)r   )r8   r9   r   r   r   r:   ~  s    z5GetGroupParticipantsRequest._bytes.<locals>.<genexpr>c             s   s   | ]}t jd |V  qdS )z<iN)r6   r7   )r8   r9   r   r   r   r:     s    )r   r0   r   r6   r7   r;   r   r1   r    r   r|   )r   r   r   r   r   z  s    &&
z"GetGroupParticipantsRequest._bytesc       	      C   s   |j  }|j  g }x&t|j D ]}|j  }|j| q"W |j  g }x&t|j D ]}|j }|j| qVW |j }|j }| |||||dS )N)r0   r   r1   r   r|   )r!   r<   r=   r>   r\   )	r#   r$   r?   Z_idsr   rA   r@   _offsetr}   r   r   r   r'     s    z'GetGroupParticipantsRequest.from_readerN)r(   r)   r*   r+   r,   r   rD   r`   r   r5   r   r   r.   r'   r   r   r   r   r   Z  s   


r   c               @   sL   e Zd ZdZdZded dddZdd	 Zd
d Zdd Z	e
dd ZdS )InviteToGroupCallRequesti`19{l   * r   r   )r0   usersc             C   s   || _ || _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   )r   r0   r   r   r   r   r     s    z!InviteToGroupCallRequest.__init__c                sH   |j | j| _g }x*| jD ] }|j|j|j|I d H  qW || _d S )N)r2   r0   r   r>   get_input_userrX   )r   r3   r4   r   rA   r   r   r   r5     s
     z InviteToGroupCallRequest.resolvec             C   s>   dt | jtr| jj n| j| jd kr*g ndd | jD dS )Nr   c             S   s"   g | ]}t |tr|j n|qS r   )r   r   r   )r8   r9   r   r   r   rB     s    z4InviteToGroupCallRequest.to_dict.<locals>.<listcomp>)r   r0   r   )r   r0   r   r   r   )r   r   r   r   r     s    z InviteToGroupCallRequest.to_dictc             C   s:   dj d| jj dtjdt| jdj dd | jD fS )Nr   s   `19{s   ĵz<ic             s   s   | ]}|j  V  qd S )N)r   )r8   r9   r   r   r   r:     s    z2InviteToGroupCallRequest._bytes.<locals>.<genexpr>)r   r0   r   r6   r7   r;   r   )r   r   r   r   r     s    zInviteToGroupCallRequest._bytesc             C   sH   |j  }|j  g }x&t|j D ]}|j  }|j| q"W | ||dS )N)r0   r   )r!   r<   r=   r>   )r#   r$   r?   Z_usersr   rA   r   r   r   r'     s    z$InviteToGroupCallRequest.from_readerN)r(   r)   r*   r+   r,   r   r   r5   r   r   r.   r'   r   r   r   r   r     s   r   c            	   @   sd   e Zd ZdZdZddddee ee ee ee ddd	Z	d
d Z
dd Zdd Zedd ZdS )JoinGroupCallRequestl   <, l   * Nr   r   r
   )r0   join_asparamsrj   rm   invite_hashrH   c             C   s.   || _ || _|| _|| _|| _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   r   rj   rm   r   rH   )r   r0   r   r   rj   rm   r   rH   r   r   r   r     s    zJoinGroupCallRequest.__init__c                s,   |j | j| _|j|j| jI d H | _d S )N)r2   r0   rW   rX   r   )r   r3   r4   r   r   r   r5     s    zJoinGroupCallRequest.resolvec          	   C   sf   dt | jtr| jj n| jt | jtr2| jj n| jt | jtrL| jj n| j| j| j| j| j	dS )Nr   )r   r0   r   r   rj   rm   r   rH   )
r   r0   r   r   r   r   rj   rm   r   rH   )r   r   r   r   r     s    zJoinGroupCallRequest.to_dictc          	   C   s   dj dtjd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jd ksV| jdkrZdndB | jd ksr| jdkrvdnd	B | jj | j	j | jd ks| jdkrdn
| j
| j| jd ks| jdkrdntjd
| j| jj fS )Nr   s   z<IFr   rY   rQ   rZ   rp   z<q)r   r6   r7   rj   rm   r   rH   r0   r   r   r    r   )r   r   r   r   r     s    v"$zJoinGroupCallRequest._bytesc       
   	   C   sz   |j  }t|d@ }t|d@ }|j }|j }|d@ rB|j }nd }|d@ rX|j }nd }|j }	| |||	||||dS )NrY   rQ   rZ   rp   )r0   r   r   rj   rm   r   rH   )r<   r[   r!   r\   rI   )
r#   r$   r]   rt   ru   r?   _join_asZ_invite_hashrJ   _paramsr   r   r   r'     s    

z JoinGroupCallRequest.from_reader)NNNN)r(   r)   r*   r+   r,   r   r[   r`   rD   r   r5   r   r   r.   r'   r   r   r   r   r     s   ,r   c               @   sH   e Zd ZdZdZdddddZdd	 Zd
d Zdd Ze	dd Z
dS ) JoinGroupCallPresentationRequestl   k l   * r   r
   )r0   r   c             C   s   || _ || _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   )r   r0   r   r   r   r   r     s    z)JoinGroupCallPresentationRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    z(JoinGroupCallPresentationRequest.resolvec             C   s<   dt | jtr| jj n| jt | jtr2| jj n| jdS )Nr   )r   r0   r   )r   r0   r   r   r   )r   r   r   r   r     s    z(JoinGroupCallPresentationRequest.to_dictc             C   s   dj d| jj | jj fS )Nr   s   k)r   r0   r   r   )r   r   r   r   r     s    z'JoinGroupCallPresentationRequest._bytesc             C   s   |j  }|j  }| ||dS )N)r0   r   )r!   )r#   r$   r?   r   r   r   r   r'      s    z,JoinGroupCallPresentationRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   r     s   r   c               @   sH   e Zd ZdZdZdedddZdd Zd	d
 Zdd Z	e
dd ZdS )LeaveGroupCallRequestiwPl   * r   )r0   sourcec             C   s   || _ || _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   )r   r0   r   r   r   r   r   +  s    zLeaveGroupCallRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5   2  s    zLeaveGroupCallRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nr   )r   r0   r   )r   r0   r   r   r   )r   r   r   r   r   5  s    zLeaveGroupCallRequest.to_dictc             C   s    dj d| jj tjd| jfS )Nr   s   wPz<i)r   r0   r   r6   r7   r   )r   r   r   r   r   <  s    zLeaveGroupCallRequest._bytesc             C   s   |j  }|j }| ||dS )N)r0   r   )r!   r<   )r#   r$   r?   _sourcer   r   r   r'   C  s    z!LeaveGroupCallRequest.from_readerN)r(   r)   r*   r+   r,   rD   r   r5   r   r   r.   r'   r   r   r   r   r   '  s   r   c               @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )!LeaveGroupCallPresentationRequestiDPl   * r   )r0   c             C   s
   || _ dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   )r   r0   r   r   r   r   N  s    z*LeaveGroupCallPresentationRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5   T  s    z)LeaveGroupCallPresentationRequest.resolvec             C   s"   dt | jtr| jj n| jdS )Nr   )r   r0   )r   r0   r   r   )r   r   r   r   r   W  s    z)LeaveGroupCallPresentationRequest.to_dictc             C   s   dj d| jj fS )Nr   s   DP)r   r0   r   )r   r   r   r   r   ]  s    z(LeaveGroupCallPresentationRequest._bytesc             C   s   |j  }| |dS )N)r0   )r!   )r#   r$   r?   r   r   r   r'   c  s    z-LeaveGroupCallPresentationRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   r   J  s   r   c               @   s>   e Zd ZdZdZddddZdd Zd	d
 Zedd Z	dS )ReceivedCallRequestiaOl   gk r   )r   c             C   s
   || _ dS )z?
        :returns Bool: This type has no constructors.
        N)r   )r   r   r   r   r   r   m  s    zReceivedCallRequest.__init__c             C   s"   dt | jtr| jj n| jdS )Nr   )r   r   )r   r   r   r   )r   r   r   r   r   s  s    zReceivedCallRequest.to_dictc             C   s   dj d| jj fS )Nr   s   aO)r   r   r   )r   r   r   r   r   y  s    zReceivedCallRequest._bytesc             C   s   |j  }| |dS )N)r   )r!   )r#   r$   r%   r   r   r   r'     s    zReceivedCallRequest.from_readerN)
r(   r)   r*   r+   r,   r   r   r   r.   r'   r   r   r   r   r   i  s   r   c               @   sZ   e Zd ZdZdZddedee ed eddd	Z	d
d Z
dd Zdd Zedd ZdS )RequestCallRequestl   `M l   O~) Nr   r   r   )user_idg_a_hashr   re   conference_callrN   c             C   sF   || _ || _|| _|| _|| _|dk	r*|ntjtjdddd| _	dS )zB
        :returns phone.PhoneCall: Instance of PhoneCall.
        NrQ   rR   T)rS   )
r   r   r   re   r   rD   rT   rU   rV   rN   )r   r   r   r   re   r   rN   r   r   r   r     s    zRequestCallRequest.__init__c                s2   |j |j| jI d H | _| jr.|j| j| _d S )N)r   rX   r   r   r2   )r   r3   r4   r   r   r   r5     s    zRequestCallRequest.resolvec             C   sb   dt | jtr| jj n| j| jt | jtr6| jj n| j| jt | jtrT| jj n| j| jdS )Nr   )r   r   r   r   re   r   rN   )	r   r   r   r   r   r   re   r   rN   )r   r   r   r   r     s    zRequestCallRequest.to_dictc             C   s   dj dtjd| jd ks | jdkr$dnd| jd ks:| jdkr>dndB | jj | jd ks`| jdkrddn| jj tjd| j| j| j	| j
j fS )	Nr   s   `Ħz<IFr   rY   rZ   z<i)r   r6   r7   re   r   r   r   rN   r    r   r   )r   r   r   r   r     s    > 
zRequestCallRequest._bytesc       	      C   s^   |j  }t|d@ }|j }|d@ r.|j }nd }|j  }|j }|j }| ||||||dS )NrY   rZ   )r   r   r   re   r   rN   )r<   r[   r!   r"   )	r#   r$   r]   rf   Z_user_idZ_conference_callr^   Z	_g_a_hashr&   r   r   r   r'     s    
zRequestCallRequest.from_reader)NNN)r(   r)   r*   r+   r,   r-   r   r[   rD   r   r5   r   r   r.   r'   r   r   r   r   r     s   "r   c               @   s@   e Zd ZdZdZdddddZdd	 Zd
d Zedd Z	dS )SaveCallDebugRequesti~z'l   gk r   r
   )r   debugc             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r   )r   r   r   r   r   r   r     s    zSaveCallDebugRequest.__init__c             C   s<   dt | jtr| jj n| jt | jtr2| jj n| jdS )Nr   )r   r   r   )r   r   r   r   r   )r   r   r   r   r     s    zSaveCallDebugRequest.to_dictc             C   s   dj d| jj | jj fS )Nr   s   ~z')r   r   r   r   )r   r   r   r   r     s    zSaveCallDebugRequest._bytesc             C   s   |j  }|j  }| ||dS )N)r   r   )r!   )r#   r$   r%   _debugr   r   r   r'     s    z SaveCallDebugRequest.from_readerN)
r(   r)   r*   r+   r,   r   r   r   r.   r'   r   r   r   r   r     s   r   c               @   s@   e Zd ZdZdZdddddZdd	 Zd
d Zedd Z	dS )SaveCallLogRequesti$Al   gk r   r   )r   filec             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r   )r   r   r   r   r   r   r     s    zSaveCallLogRequest.__init__c             C   s<   dt | jtr| jj n| jt | jtr2| jj n| jdS )Nr   )r   r   r   )r   r   r   r   r   )r   r   r   r   r     s    zSaveCallLogRequest.to_dictc             C   s   dj d| jj | jj fS )Nr   s   $A)r   r   r   r   )r   r   r   r   r     s    zSaveCallLogRequest._bytesc             C   s   |j  }|j  }| ||dS )N)r   r   )r!   )r#   r$   r%   _filer   r   r   r'     s    zSaveCallLogRequest.from_readerN)
r(   r)   r*   r+   r,   r   r   r   r.   r'   r   r   r   r   r     s   r   c               @   sH   e Zd ZdZdZdddddZdd Zd	d
 Zdd Ze	dd Z
dS )!SaveDefaultGroupCallJoinAsRequesti^Wl   gk r   )r   r   c             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r   )r   r   r   r   r   r   r     s    z*SaveDefaultGroupCallJoinAsRequest.__init__c                s8   |j |j| jI d H | _|j |j| jI d H | _d S )N)rW   rX   r   r   )r   r3   r4   r   r   r   r5   
  s    z)SaveDefaultGroupCallJoinAsRequest.resolvec             C   s<   dt | jtr| jj n| jt | jtr2| jj n| jdS )Nr   )r   r   r   )r   r   r   r   r   )r   r   r   r   r     s    z)SaveDefaultGroupCallJoinAsRequest.to_dictc             C   s   dj d| jj | jj fS )Nr   s   ^W)r   r   r   r   )r   r   r   r   r     s    z(SaveDefaultGroupCallJoinAsRequest._bytesc             C   s   |j  }|j  }| ||dS )N)r   r   )r!   )r#   r$   r%   r   r   r   r   r'     s    z-SaveDefaultGroupCallJoinAsRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   r     s   r   c               @   s@   e Zd ZdZdZdedddZdd Zd	d
 Ze	dd Z
dS )SendSignalingDataRequestl   ~ l   gk r   )r   datac             C   s   || _ || _dS )z?
        :returns Bool: This type has no constructors.
        N)r   r   )r   r   r   r   r   r   r   '  s    z!SendSignalingDataRequest.__init__c             C   s&   dt | jtr| jj n| j| jdS )Nr   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   .  s    z SendSignalingDataRequest.to_dictc             C   s   dj d| jj | j| jfS )Nr   s   z)r   r   r   r    r   )r   r   r   r   r   5  s    zSendSignalingDataRequest._bytesc             C   s   |j  }|j }| ||dS )N)r   r   )r!   r"   )r#   r$   r%   _datar   r   r   r'   <  s    z$SendSignalingDataRequest.from_readerN)r(   r)   r*   r+   r,   r-   r   r   r   r.   r'   r   r   r   r   r   #  s   r   c               @   sJ   e Zd ZdZdZddeeee dddZ	dd	 Z
d
d Zedd ZdS )SetCallRatingRequesti'Yl   * Nr   )r   ratingcommentuser_initiativec             C   s   || _ || _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r   r   r   r   )r   r   r   r   r   r   r   r   r   G  s    zSetCallRatingRequest.__init__c             C   s.   dt | jtr| jj n| j| j| j| jdS )Nr   )r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   P  s
    zSetCallRatingRequest.to_dictc             C   sL   dj dtjd| jd ks | jdkr$dnd| jj tjd| j| j| jfS )Nr   s   'Yz<IFr   rY   z<i)	r   r6   r7   r   r   r   r   r    r   )r   r   r   r   r   Y  s    "zSetCallRatingRequest._bytesc             C   s<   |j  }t|d@ }|j }|j  }|j }| ||||dS )NrY   )r   r   r   r   )r<   r[   r!   r\   )r#   r$   r]   Z_user_initiativer%   Z_rating_commentr   r   r   r'   b  s    z SetCallRatingRequest.from_reader)N)r(   r)   r*   r+   r,   rD   r`   r   r[   r   r   r   r.   r'   r   r   r   r   r   C  s   			r   c               @   sF   e Zd ZdZdZddddZdd Zd	d
 Zdd Ze	dd Z
dS )StartScheduledGroupCallRequestiBVl   * r   )r0   c             C   s
   || _ dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   )r   r0   r   r   r   r   q  s    z'StartScheduledGroupCallRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5   w  s    z&StartScheduledGroupCallRequest.resolvec             C   s"   dt | jtr| jj n| jdS )Nr   )r   r0   )r   r0   r   r   )r   r   r   r   r   z  s    z&StartScheduledGroupCallRequest.to_dictc             C   s   dj d| jj fS )Nr   s   BV)r   r0   r   )r   r   r   r   r     s    z%StartScheduledGroupCallRequest._bytesc             C   s   |j  }| |dS )N)r0   )r!   )r#   r$   r?   r   r   r   r'     s    z*StartScheduledGroupCallRequest.from_readerN)r(   r)   r*   r+   r,   r   r5   r   r   r.   r'   r   r   r   r   r   m  s   r   c               @   s`   e Zd ZdZdZddee ee ee ee dddZdd	 Z	d
d Z
dd Zedd ZdS )ToggleGroupCallRecordRequestl   GQb l   * Nr   )r0   startre   rO   video_portraitc             C   s"   || _ || _|| _|| _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   re   rO   r   )r   r0   r   re   rO   r   r   r   r   r     s
    z%ToggleGroupCallRecordRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    z$ToggleGroupCallRecordRequest.resolvec             C   s2   dt | jtr| jj n| j| j| j| j| jdS )Nr   )r   r0   r   re   rO   r   )r   r0   r   r   r   re   rO   r   )r   r   r   r   r     s    z$ToggleGroupCallRecordRequest.to_dictc             C   s  | j s| j d k	r | jsP| jd k	sP| j d ks4| j dkrH| jd ksP| jdksPtddjdtjd| jd ksp| jdkrtdnd| j d ks| j dkrdndB | jd ks| jdkrdnd	B | jd krdndB | jj	 | jd ks| jdkrdn
| j
| j| jd krdn| jrd
ndfS )NFzQvideo, video_portrait parameters must all be False-y (like None) or all me True-yr   s   (z<Ir   rY   rQ   rZ   s   urs   7y)re   r   AssertionErrorr   r6   r7   r   rO   r0   r   r    )r   r   r   r   r     s    Pl"z#ToggleGroupCallRecordRequest._bytesc             C   sf   |j  }t|d@ }t|d@ }|j }|d@ r:|j }nd }|d@ rP|j }nd }| |||||dS )NrY   rQ   rZ   )r0   r   re   rO   r   )r<   r[   r!   r\   rs   )r#   r$   r]   Z_startrf   r?   r_   Z_video_portraitr   r   r   r'     s    

z(ToggleGroupCallRecordRequest.from_reader)NNNN)r(   r)   r*   r+   r,   r   r[   r`   r   r5   r   r   r.   r'   r   r   r   r   r     s   (


r   c               @   sT   e Zd ZdZdZddee ee dddZdd	 Zd
d Z	dd Z
edd ZdS )ToggleGroupCallSettingsRequesti=tl   * Nr   )r0   reset_invite_hash
join_mutedc             C   s   || _ || _|| _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   r   )r   r0   r   r   r   r   r   r     s    z'ToggleGroupCallSettingsRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    z&ToggleGroupCallSettingsRequest.resolvec             C   s*   dt | jtr| jj n| j| j| jdS )Nr   )r   r0   r   r   )r   r0   r   r   r   r   )r   r   r   r   r     s    z&ToggleGroupCallSettingsRequest.to_dictc             C   sb   dj dtjd| jd ks | jdkr$dnd| jd kr4dndB | jj | jd krPdn| jrZdnd	fS )
Nr   s   =tz<IFr   rZ   rY   s   urs   7y)r   r6   r7   r   r   r0   r   )r   r   r   r   r     s
    4z%ToggleGroupCallSettingsRequest._bytesc             C   s@   |j  }t|d@ }|j }|d@ r.|j }nd }| |||dS )NrZ   rY   )r0   r   r   )r<   r[   r!   rs   )r#   r$   r]   Z_reset_invite_hashr?   Z_join_mutedr   r   r   r'     s    
z*ToggleGroupCallSettingsRequest.from_reader)NN)r(   r)   r*   r+   r,   r   r[   r   r5   r   r   r.   r'   r   r   r   r   r     s   r   c               @   sH   e Zd ZdZdZdedddZdd Zd	d
 Zdd Z	e
dd ZdS )'ToggleGroupCallStartSubscriptionRequesti4!l   * r   )r0   
subscribedc             C   s   || _ || _dS )z
        :returns Updates: Instance of either UpdatesTooLong, UpdateShortMessage, UpdateShortChatMessage, UpdateShort, UpdatesCombined, Updates, UpdateShortSentMessage.
        N)r0   r   )r   r0   r   r   r   r   r     s    z0ToggleGroupCallStartSubscriptionRequest.__init__c                s   |j | j| _d S )N)r2   r0   )r   r3   r4   r   r   r   r5     s    z/ToggleGroupCallStartSubscriptionRequest.resolvec             C   s&   dt | jtr| jj n| j| jdS )Nr   )r   r0   r   )r   r0   r   r   r   )r   r   r   r   r     s    z/ToggleGroupCallStartSubscriptionRequest.to_dictc             C   s    dj d| jj | jrdndfS )Nr   s   4!s   urs   7y)r   r0   r   r   )r   r   r   r   r     s    z.ToggleGroupCallStartSubscriptionRequest._bytesc             C   s   |j  }|j }| ||dS )N)r0   r   )r!   rs   )r#   r$   r?   Z_subscribedr   r   r   r'     s    z3ToggleGroupCallStartSubscriptionRequest.from_readerN)r(   r)   r*   r+   r,   r[   r   r5   r   r   r.   r'   r   r   r   r   r     s   r   )5__doc__Ztl.tlobjectr   r   typingr   r   r   r   rU   r6   r	   Ztl.typesr
   r   r   r   r   r   r   r   r   r/   rF   rK   rL   ra   rg   rh   rv   rw   ry   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   <module>   sP   ($-( 7.Q#%##>-?##:  $ *7,