
    Yi|V                    v   S r SSKrSSKrSSKJr  SSKJr  SSKJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK J!r!  SSK"J#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)  SSK*J+r+J,r,J-r-J.r.J/r/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<  SSK=J>r>  SSK?J@r@  SSKAJBrB  SSKCJDrD  SS KEJFrF  SS!KGJHrH  SS"KIJJrJ  SS#KKJLrLJMrM  SS$KNJOrO  SS%KPJQrQ  SS&KRJSrS  SS'KTJUrU  SS(KVJWrWJXrX  SS)KYJZrZJ[r[  SS*K\J]r]J^r^  SS+K_J`r`  SS,KaJbrbJcrcJdrdJereJfrfJgrg  SS-KhJiri  SS.KjJkrkJlrlJmrmJnrn  SS/KoJprp  SS0KqJrrr  SS1KsJtrtJuruJvrv  SS2KwJxrx  SS3KyJzrz  \(       a*  SS4K{J|r|J}r}J~r~JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr   " S5 S6\
5      r " S7 S8\Q5      r " S9 S:\5      r " S; S<\5      rg)=zBThis module contains an object that represents a Telegram Message.    N)Sequence)escape)TYPE_CHECKINGOptional	TypedDictUnion)Chat)ChatBackground)ChatBoostAdded)Dice)	Animation)Audio)Contact)Document)Location)	PhotoSize)Sticker)Venue)Video)	VideoNote)Voice)ForumTopicClosedForumTopicCreatedForumTopicEditedForumTopicReopenedGeneralForumTopicHiddenGeneralForumTopicUnhidden)Game)InlineKeyboardMarkup)LinkPreviewOptions)MessageAutoDeleteTimerChanged)MessageEntity)PaidMediaInfo)PassportData)Invoice)RefundedPayment)SuccessfulPayment)Poll)ProximityAlertTriggered)ReplyParameters)
ChatSharedUsersShared)Story)TelegramObject)User)parse_sequence_arg)extract_tzinfo_from_defaultsfrom_timestamp)DEFAULT_NONEDefaultValue)parse_message_entitiesparse_message_entity)TextEncoding)CorrectOptionID	FileInputJSONDictMarkdownVersionODVInputReplyMarkup)warn)VideoChatEndedVideoChatParticipantsInvitedVideoChatScheduledVideoChatStarted)
WebAppData)WriteAccessAllowed)	ZERO_DATEMessageAttachmentType	ParseMode)escape_markdown)PTBDeprecationWarning)BotExternalReplyInfoGameHighScoreGiveawayGiveawayCompletedGiveawayCreatedGiveawayWinners
InputMediaInputMediaAudioInputMediaDocumentInputMediaPhotoInputMediaVideoInputPaidMediaInputPollOptionLabeledPrice	MessageIdMessageOriginReactionType	TextQuotec                   8    \ rS rSr% Sr\\\4   \S'   \	\S'   Sr
g)_ReplyKwargsv   )chat_idreply_parametersr`   ra    N)__name__
__module____qualname____firstlineno__	__slots__r   strint__annotations__r*   __static_attributes__rb       </app/.venv/lib/python3.13/site-packages/telegram/_message.pyr^   r^   v   s    /I38_%%rl   r^   c                      ^  \ rS rSrSrSrSS.S\S\S\R                  S	\	\
   4U 4S
 jjjr\S\4S j5       r\  SS\	\
   S\	S   S	\	\
   S\	S    4U 4S jjj5       rSrU =r$ )MaybeInaccessibleMessage}   a-  Base class for Telegram Message Objects.

Currently, that includes :class:`telegram.Message` and :class:`telegram.InaccessibleMessage`.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if their :attr:`message_id` and :attr:`chat` are equal

.. versionchanged:: 21.0
   ``__bool__`` is no longer overriden and defaults to Pythons standard implementation.

.. versionadded:: 20.8

Args:
    message_id (:obj:`int`): Unique message identifier.
    date (:class:`datetime.datetime`): Date the message was sent in Unix time or 0 in Unix
        time. Converted to :class:`datetime.datetime`

        |datetime_localization|
    chat (:class:`telegram.Chat`): Conversation the message belongs to.

Attributes:
    message_id (:obj:`int`): Unique message identifier.
    date (:class:`datetime.datetime`): Date the message was sent in Unix time or 0 in Unix
        time. Converted to :class:`datetime.datetime`

        |datetime_localization|
    chat (:class:`telegram.Chat`): Conversation the message belongs to.
)chatdate
message_idN
api_kwargsrq   rs   rr   ru   c                   > [         TU ]  US9  Xl        X l        X0l        U R                  U R                  4U l        U R                  5         g )Nrt   )super__init__rq   rs   rr   	_id_attrs_freeze)selfrq   rs   rr   ru   	__class__s        rm   rx   !MaybeInaccessibleMessage.__init__   sA     	J/	)'+	//4995rl   returnc                 (    U R                   [        :g  $ )z_Convenience attribute. :obj:`True`, if the date is not 0 in Unix time.

.. versionadded:: 20.8
)rr   rE   r{   s    rm   is_accessible&MaybeInaccessibleMessage.is_accessible   s     yyI%%rl   databotrJ   c                 p  > U R                  U5      nU(       d  gU [        L a/  US   S:X  a  [        R                  XS9$ [        R                  XS9$ [        U5      nUS   S:X  a
  [        US'   O[        US   US9US'   [        R                  " UR                  S5      U5      US'   [        TU ]-  XUS9$ ),See :meth:`telegram.TelegramObject.de_json`.Nrr   r   )r   r   tzinforq   r   r   ru   )_parse_dataro   InaccessibleMessagede_jsonMessager1   rE   r2   r	   getrw   _de_json)clsr   r   ru   
loc_tzinfor|   s        rm   r   !MaybeInaccessibleMessage._de_json   s     t$**F|q *222FF???66 2#6
 <1$DL)$v,zJDL||DHHV$4c:VwTzJJrl   )ry   rq   rr   rs   NN)rc   rd   re   rf   __doc__rg   r	   ri   datetimer   r:   rx   propertyboolr   classmethodr   rk   __classcell__r|   s   @rm   ro   ro   }   s    : /I *.  	 X& " &t & &   $)-	Kx K e_K X&	K
 
,	-K Krl   ro   c                   N   ^  \ rS rSrSrSrSS.S\S\S\\	   4U 4S	 jjjr
SrU =r$ )
r      a  This object represents an inaccessible message.

These are messages that are e.g. deleted.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if their :attr:`message_id` and :attr:`chat` are equal

.. versionadded:: 20.8

Args:
    message_id (:obj:`int`): Unique message identifier.
    chat (:class:`telegram.Chat`): Chat the message belongs to.

Attributes:
    message_id (:obj:`int`): Unique message identifier.
    date (:class:`constants.ZERO_DATE`): Always :tg-const:`telegram.constants.ZERO_DATE`.
        The field can be used to differentiate regular and inaccessible messages.
    chat (:class:`telegram.Chat`): Chat the message belongs to.
rb   Nrt   rq   rs   ru   c                L   > [         TU ]  X[        US9  U R                  5         g N)rq   rs   rr   ru   )rw   rx   rE   rz   )r{   rq   rs   ru   r|   s       rm   rx   InaccessibleMessage.__init__   s#     	d	V`arl   )rc   rd   re   rf   r   rg   r	   ri   r   r:   rx   rk   r   r   s   @rm   r   r      s?    ( I *. 
 X& rl   r   c                   r-  ^  \ rS rSrSrSr                                                                                  GS4SS.S\S\R                  S\S	\	\
   S
\	S    S\	\R                     S\	\   S\	\S      S\	\S      S\	\   S\	\   S\	\   S\	\\      S\	\   S\	\   S\	\   S\	\   S\	\\
      S\	\   S\	\   S\	\   S\	\   S\	\
   S\	\   S\	\\      S \	\   S!\	\   S"\	\   S#\	\   S$\	\   S%\	\   S&\	\   S'\	\   S(\	\   S)\	\   S*\	\   S+\	\   S,\	\   S-\	\   S.\	\   S/\	\   S0\	\    S1\	\
   S2\	\!   S3\	\   S4\	\"   S5\	\#   S6\	\$   S7\	\%   S8\	\&   S9\	\   S:\	\   S;\	\'   S<\	\   S=\	\   S>\	\(   S?\	\)   S@\	\*   SA\	\+   SB\	\,   SC\	\-   SD\	\.   SE\	\   SF\	\/   SG\	\0   SH\	SI   SJ\	SK   SL\	SM   SN\	SO   SP\	\1   SQ\	\2   SR\	SS   ST\	SU   SV\	SW   SX\	\0   SY\	\3   SZ\	\   S[\	\   S\\	\
   S]\	\   S^\	\4   S_\	\   S`\	\   Sa\	\5   Sb\	\6   Sc\	\7   4U 4Sd jjjjr8\9Se\4Sf j5       r:\9Se\4Sg j5       r;\9Se\	\   4Sh j5       r<\=GS5Si\	\7   Sj\	Sk   Se\	S    4U 4Sl jjj5       r>\9Se\?\\\\ \\\\\\\   \5\\\0\\\\\S4   4Sm j5       r@ GS5ST\	\   Sn\	\   Se\	\A   4So jjrB GS5ST\Sp\	\   Se\C\\	\C\DSq4      4   4Sr jjrESSS\F\F4ST\	\   Ss\	\   St\	\?\\4      Su\G\   S=\G\   Se\H4Sv jjrISw\	\?\\H4      ST\	\   Sn\	\   Sx\	Sy   Se\C\?\\4   \A4   4
Sz jrJ\F4S{\?\\4   S=\G\   Se\	\   4S| jjrK\F\FSS\F\F\FSSS4
S\FSSS\F\F\F\FSS}.
S\S~\G\   S\G\   S/\	\L   S\	\S      S\G\   S=\G\   SQ\GS   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4,S jjjrN\FSS\F\F\FSSS4	S\FSSS\F\F\F\FSS}.
S\S\G\   S/\	\L   S\	\S      S\G\   S=\G\   SQ\GS   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4*S jjjrO\FSS\F\F\FSSS4	S\FSSS\F\F\F\FSS}.
S\S\G\   S/\	\L   S\	\S      S\G\   S=\G\   SQ\GS   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4*S jjjrP\FSS\F\F\FSSS4	S\FSSS\F\F\F\FSS}.
S\S\G\   S/\	\L   S\	\S      S\G\   S=\G\   SQ\GS   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4*S jjjrQ\F\F\FSSS4S\FSS\F\F\F\FSS\FSS.S\\?S      S\G\   S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   S\	\   S~\G\   S\	\S      Se\CS   4(S jjjrRS\FS\FS\F\FSSSSS4S\FSSS\F\F\F\FSS.
S\?\SS4   S\	\   S\G\   S/\	\L   S~\G\   S\	\S      S\G\   S=\G\   S\	\   Sx\	Sy   S\	\   S\	\   S`\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 40S jjjrTSSSS\FS\FS\F\FSSSS4S\FSSS\F\F\F\FSS.
S\?\SS4   S\	\   S\	\   S\	\   S\	\   S\G\   S/\	\L   S~\G\   S\	\S      S\G\   S=\G\   S\	\S   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 44S jjjrUS\FS\FSS\F\FSSSS4S\FSSS\F\F\F\FSS.
S\?\SS4   S\	\   S\G\   S/\	\L   S~\G\   S\	\   S\	\S      S\G\   S=\G\   S\	\S   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 40S jjjrVSSSS\F\FSS\F\FSSSSSS4S\FSSS\F\F\F\FSS.
S,\?\SS4   S\	\   S\	\   S\	\   S\	\   S~\G\   S\G\   S/\	\L   S\	\S      S\G\   S=\G\   S\	\   S\	\S   Sx\	Sy   S\	\   S\	\   S`\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 48S jjjrW\FS\F\FSSSS4S\FSS\F\F\F\FSS.	S\?\SS4   S\G\   S/\	\L   S\G\   S=\G\   S\	\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4&S jjjrXSS\FSSS\FSS\F\FSSSSSS4S\FSSS\F\F\F\FSS.
S\?\SS4   S\	\   S\	\   S\G\   S/\	\L   S\	\   S\	\   S~\G\   S\	\   S\	\S      S\G\   S=\G\   S\	\   S\	\S   Sx\	Sy   S\	\   S\	\   S`\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4:S jjjrYSS\FS\F\FSSSS4
S\FSSS\F\F\F\FSS.
S\?\SS4   S\	\   S\	\   S\G\   S/\	\L   S\G\   S=\G\   S\	\S   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4,S jjjrZSS\FS\FS\F\FSSS4S\FSSS\F\F\F\FSS.
S\?\SS4   S\	\   S\	\   S\G\   S/\	\L   S~\G\   S\	\S      S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4.S jjjr[SS\FSSSSS\F\FSSS4S\FSSS\F\F\F\FSS.
S\	\M   S\	\M   S\G\   S/\	\L   S\	\   S\	\M   S\	\   S\	\   S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 40S jjjr\SSSSS\FSSSS\F\FSSS4S\FSSS\F\F\F\FSS.
S\	\M   S\	\M   S\	\   S\	\   S\	\   S\G\   S/\	\L   S\	\   S\	\   S\	\   S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 44S jjjr]SSS\FSS\F\FSSS4S\FSSS\F\F\F\FSS.
S\	\   S\	\   S\	\   S\G\   S/\	\L   S\	\   S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   S\	\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4,S jjjr^SSSSS\FSS\FSSS\F\FS\FSSS4S\FSS\F\F\F\FSS.	S\S\\?\S4      S\	\   S\	\   S\	\   S\	\_   S\	\   S\G\   S/\	\L   S\	\   S\G\   S\	\   S\	\?\\R                  4      S\	\S      S\G\   S=\G\   Sx\	Sy   S\G\   S\	\S      S\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4>S jjjr`\FSS\F\FSSS4S\FSS\F\F\F\FSS.	S\G\   S/\	\L   S\	\   S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4$S jjjra\F4\F\F\F\FSS.S\S=\G\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4S jjjrb\FS\F\FSSS4S\FSS\F\F\F\FSS.	S\S\G\   S/\	S   S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4$S jjjrcSSSSSSSSSS\FSSSSSS\F\FSSS4S\FSS\F\F\F\FSS.	S\S\S\S\	\   S\S\S   S\	\   S\	\   S\	\   S\	\   S\	\   S\	\   S\	\   S\	\   S\	\   S\	\   S\G\   S/\	S   S\	\?\\d4      S\	\   S\	\   S\	\   S\	\\      S\G\   S=\G\   Sx\	Sy   S\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4LS jjjre\F\FS4\F\F\F\FSS.S{\?\\4   S\G\   S\G\   S=\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4S jjjrfS\FS\FS\FSSSS4
S\F\F\F\F\FSS.S{\?\\4   S\	\   S~\G\   S\	\S      S\G\   S/\	\L   S\G\   S=\	\   Sx\	Sy   S`\	\   S\	\   Sn\	\   Su\G\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS4&S jjjrgS\FS\FS\F\FSSS4
S\FSS\F\F\F\FSS.	S\?\\4   S\S\	\   S~\G\   S\	\S      S\G\   S/\	\L   S\G\   S=\G\   Sx\	Sy   S`\	\   S\	\   Sn\	\   Su\G\   ST\	\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS4,S jjjrhS\FSS\F\FSSSS4
S\FS\F\F\F\FSS.S\S\S   S\	\   S~\G\   S\	\S      S`\	\   S\G\   S\G\   Sx\	Sy   S/\	\L   S\	\   S\	\   Sn\	\   Su\G\   Sw\	\?\\H4      S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   SeS 4*S jjjri\FSS\F4S\F\F\F\FSS.S\S~\G\   S/\	S   S\	\S      SQ\GS   S\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4S jjjrjSS\FSS4\F\F\F\FSS.S\	\   S/\	S   S~\G\   S\	\S      S`\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4S jjjrk GS5\F\F\F\FSS.SSS/\	S   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4GS  jjjrl GS5\F\F\F\FSS.S/\	S   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4GS jjjrm       GS6S\F\F\F\FSGS.S\	\M   S\	\M   S/\	S   S\	\M   S\	\   S\	\   S\	\   S\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4GS jjjrn GS5\F\F\F\FSS.S/\	S   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4GS jjjro  GS7\F\F\F\FSS.GS\GS\GS\	\   GS\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\?S \4   4GS	 jjjrp\F\F\F\FSS.GS\S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\CGS
   4GS jjrq\F\F\F\FSS.S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjrr GS5\F\F\F\FSS.S/\	S   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjjrs\F4\F\F\F\FSS.S\G\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjjrt\F\F\F\FSS.S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjru  GS7\F\F\F\FSS.GS\	\   GS\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjjrv\F\F\F\FSS.S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjrw\F\F\F\FSS.S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjrx\F\F\F\FSS.S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjry\F\F\F\FSS.S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjrz  GS7\F\F\F\FSS.GS\	\?\GS   GS\\   \4      GS\	\   S\G\M   S\G\M   S\G\M   S\G\M   Sc\	\7   Se\4GS jjjr{GS\DSe\4GS jr|GS\DSe\4GS jr}GS5GS\	\~\      Se\\D\4   4GS jjr GS5GS\	\~\      Se\\D\4   4GS  jjr\=  GS8GS!\	\   S\\D\4   GS"\GS#\Se\	\   4
GS$ jj5       r\9Se\4GS% j5       r\9Se\4GS& j5       r\9Se\4GS' j5       r\9Se\4GS( j5       r\=   GS9GS!\	\   S\\D\4   GS"\GS)\GS#\Se\	\   4GS* jj5       r\9Se\4GS+ j5       r\9Se\4GS, j5       r\9Se\4GS- j5       r\9Se\4GS. j5       r\9Se\4GS/ j5       r\9Se\4GS0 j5       r\9Se\4GS1 j5       r\9Se\4GS2 j5       rGS3rU =r$ (:  r      al  This object represents a message.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if their :attr:`message_id` and :attr:`chat` are equal.

Note:
    In Python :keyword:`from` is a reserved word. Use :paramref:`from_user` instead.

.. versionchanged:: 21.0
   Removed deprecated arguments and attributes ``user_shared``, ``forward_from``,
   ``forward_from_chat``, ``forward_from_message_id``, ``forward_signature``,
   ``forward_sender_name`` and ``forward_date``.

.. versionchanged:: 20.8
    * This class is now a subclass of :class:`telegram.MaybeInaccessibleMessage`.
    * The :paramref:`pinned_message` now can be either :class:`telegram.Message` or
      :class:`telegram.InaccessibleMessage`.

.. versionchanged:: 20.0

    * The arguments and attributes ``voice_chat_scheduled``, ``voice_chat_started`` and
      ``voice_chat_ended``, ``voice_chat_participants_invited`` were renamed to
      :paramref:`video_chat_scheduled`/:attr:`video_chat_scheduled`,
      :paramref:`video_chat_started`/:attr:`video_chat_started`,
      :paramref:`video_chat_ended`/:attr:`video_chat_ended` and
      :paramref:`video_chat_participants_invited`/:attr:`video_chat_participants_invited`,
      respectively, in accordance to Bot API 6.0.
    * The following are now keyword-only arguments in Bot methods:
      ``{read, write, connect, pool}_timeout``, ``api_kwargs``, ``contact``, ``quote``,
      ``filename``, ``loaction``, ``venue``. Use a named argument for those,
      and notice that some positional arguments changed position as a result.

Args:
    message_id (:obj:`int`): Unique message identifier inside this chat. In specific instances
        (e.g., message containing a video sent to a big chat), the server might automatically
        schedule a message instead of sending it immediately. In such cases, this field will be
        ``0`` and the relevant message will be unusable until it is actually sent.
    from_user (:class:`telegram.User`, optional): Sender of the message; may be empty for
        messages sent to channels. For backward compatibility, if the message was sent on
        behalf of a chat, the field contains a fake sender user in non-channel chats.
    sender_chat (:class:`telegram.Chat`, optional): Sender of the message when sent on behalf
        of a chat. For example, the supergroup itself for messages sent by its anonymous
        administrators or a linked channel for messages automatically forwarded to the
        channel's discussion group. For backward compatibility, if the message was sent on
        behalf of a chat, the field from contains a fake sender user in non-channel chats.
    date (:class:`datetime.datetime`): Date the message was sent in Unix time. Converted to
        :class:`datetime.datetime`.

        .. versionchanged:: 20.3
            |datetime_localization|
    chat (:class:`telegram.Chat`): Conversation the message belongs to.
    is_automatic_forward (:obj:`bool`, optional): :obj:`True`, if the message is a channel
        post that was automatically forwarded to the connected discussion group.

        .. versionadded:: 13.9
    reply_to_message (:class:`telegram.Message`, optional): For replies, the original message.
        Note that the Message object in this field will not contain further
        ``reply_to_message`` fields even if it itself is a reply.
    edit_date (:class:`datetime.datetime`, optional): Date the message was last edited in Unix
        time. Converted to :class:`datetime.datetime`.

        .. versionchanged:: 20.3
            |datetime_localization|
    has_protected_content (:obj:`bool`, optional): :obj:`True`, if the message can't be
        forwarded.

        .. versionadded:: 13.9
    is_from_offline (:obj:`bool`, optional): :obj:`True`, if the message was sent
        by an implicit action, for example, as an away or a greeting business message,
        or as a scheduled message.

        .. versionadded:: 21.1
    media_group_id (:obj:`str`, optional): The unique identifier of a media message group this
        message belongs to.
    text (:obj:`str`, optional): For text messages, the actual UTF-8 text of the message,
        0-:tg-const:`telegram.constants.MessageLimit.MAX_TEXT_LENGTH` characters.
    entities (Sequence[:class:`telegram.MessageEntity`], optional): For text messages, special
        entities like usernames, URLs, bot commands, etc. that appear in the text. See
        :attr:`parse_entity` and :attr:`parse_entities` methods for how to use properly.
        This list is empty if the message does not contain entities.

        .. versionchanged:: 20.0
            |sequenceclassargs|

    link_preview_options (:class:`telegram.LinkPreviewOptions`, optional): Options used for
        link preview generation for the message, if it is a text message and link preview
        options were changed.

        .. versionadded:: 20.8

    effect_id (:obj:`str`, optional): Unique identifier of the message effect added to the
        message.

        .. versionadded:: 21.3

    caption_entities (Sequence[:class:`telegram.MessageEntity`], optional): For messages with a
        Caption. Special entities like usernames, URLs, bot commands, etc. that appear in the
        caption. See :attr:`Message.parse_caption_entity` and :attr:`parse_caption_entities`
        methods for how to use properly. This list is empty if the message does not contain
        caption entities.

        .. versionchanged:: 20.0
            |sequenceclassargs|

    show_caption_above_media (:obj:`bool`, optional): |show_cap_above_med|

        .. versionadded:: 21.3
    audio (:class:`telegram.Audio`, optional): Message is an audio file, information
        about the file.
    document (:class:`telegram.Document`, optional): Message is a general file, information
        about the file.
    animation (:class:`telegram.Animation`, optional): Message is an animation, information
        about the animation. For backward compatibility, when this field is set, the document
        field will also be set.
    game (:class:`telegram.Game`, optional): Message is a game, information about the game.
        :ref:`More about games >> <games-tree>`.
    photo (Sequence[:class:`telegram.PhotoSize`], optional): Message is a photo, available
        sizes of the photo. This list is empty if the message does not contain a photo.

        .. versionchanged:: 20.0
            |sequenceclassargs|

    sticker (:class:`telegram.Sticker`, optional): Message is a sticker, information
        about the sticker.
    story (:class:`telegram.Story`, optional): Message is a forwarded story.

        .. versionadded:: 20.5
    video (:class:`telegram.Video`, optional): Message is a video, information about the
        video.
    voice (:class:`telegram.Voice`, optional): Message is a voice message, information about
        the file.
    video_note (:class:`telegram.VideoNote`, optional): Message is a
        `video note <https://telegram.org/blog/video-messages-and-telescope>`_, information
        about the video message.
    new_chat_members (Sequence[:class:`telegram.User`], optional): New members that were added
        to the group or supergroup and information about them (the bot itself may be one of
        these members). This list is empty if the message does not contain new chat members.

        .. versionchanged:: 20.0
            |sequenceclassargs|

    caption (:obj:`str`, optional): Caption for the animation, audio, document, paid media,
        photo, video
        or voice, 0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters.
    contact (:class:`telegram.Contact`, optional): Message is a shared contact, information
        about the contact.
    location (:class:`telegram.Location`, optional): Message is a shared location, information
        about the location.
    venue (:class:`telegram.Venue`, optional): Message is a venue, information about the
        venue. For backward compatibility, when this field is set, the location field will
        also be set.
    left_chat_member (:class:`telegram.User`, optional): A member was removed from the group,
        information about them (this member may be the bot itself).
    new_chat_title (:obj:`str`, optional): A chat title was changed to this value.
    new_chat_photo (Sequence[:class:`telegram.PhotoSize`], optional): A chat photo was changed
        to this value. This list is empty if the message does not contain a new chat photo.

        .. versionchanged:: 20.0
            |sequenceclassargs|

    delete_chat_photo (:obj:`bool`, optional): Service message: The chat photo was deleted.
    group_chat_created (:obj:`bool`, optional): Service message: The group has been created.
    supergroup_chat_created (:obj:`bool`, optional): Service message: The supergroup has been
        created. This field can't be received in a message coming through updates, because bot
        can't be a member of a supergroup when it is created. It can only be found in
        :attr:`reply_to_message` if someone replies to a very first message in a directly
        created supergroup.
    channel_chat_created (:obj:`bool`, optional): Service message: The channel has been
        created. This field can't be received in a message coming through updates, because bot
        can't be a member of a channel when it is created. It can only be found in
        :attr:`reply_to_message` if someone replies to a very first message in a channel.
    message_auto_delete_timer_changed (:class:`telegram.MessageAutoDeleteTimerChanged`,             optional): Service message: auto-delete timer settings changed in the chat.

        .. versionadded:: 13.4
    migrate_to_chat_id (:obj:`int`, optional): The group has been migrated to a supergroup
        with the specified identifier.
    migrate_from_chat_id (:obj:`int`, optional): The supergroup has been migrated from a group
        with the specified identifier.
    pinned_message (:class:`telegram.MaybeInaccessibleMessage`, optional): Specified message
        was pinned. Note that the Message object in this field will not contain further
        :attr:`reply_to_message` fields even if it is itself a reply.

        .. versionchanged:: 20.8
            This attribute now is either :class:`telegram.Message` or
            :class:`telegram.InaccessibleMessage`.
    invoice (:class:`telegram.Invoice`, optional): Message is an invoice for a payment,
        information about the invoice.
        :ref:`More about payments >> <payments-tree>`.
    successful_payment (:class:`telegram.SuccessfulPayment`, optional): Message is a service
        message about a successful payment, information about the payment.
        :ref:`More about payments >> <payments-tree>`.
    connected_website (:obj:`str`, optional): The domain name of the website on which the user
        has logged in.
        `More about Telegram Login >> <https://core.telegram.org/widgets/login>`_.
    author_signature (:obj:`str`, optional): Signature of the post author for messages in
        channels, or the custom title of an anonymous group administrator.
    passport_data (:class:`telegram.PassportData`, optional): Telegram Passport data.
    poll (:class:`telegram.Poll`, optional): Message is a native poll,
        information about the poll.
    dice (:class:`telegram.Dice`, optional): Message is a dice with random value.
    via_bot (:class:`telegram.User`, optional): Bot through which message was sent.
    proximity_alert_triggered (:class:`telegram.ProximityAlertTriggered`, optional): Service
        message. A user in the chat triggered another user's proximity alert while sharing
        Live Location.
    video_chat_scheduled (:class:`telegram.VideoChatScheduled`, optional): Service message:
        video chat scheduled.

        .. versionadded:: 20.0
    video_chat_started (:class:`telegram.VideoChatStarted`, optional): Service message: video
        chat started.

        .. versionadded:: 20.0
    video_chat_ended (:class:`telegram.VideoChatEnded`, optional): Service message: video chat
        ended.

        .. versionadded:: 20.0
    video_chat_participants_invited (:class:`telegram.VideoChatParticipantsInvited` optional):
        Service message: new participants invited to a video chat.

        .. versionadded:: 20.0
    web_app_data (:class:`telegram.WebAppData`, optional): Service message: data sent by a Web
        App.

        .. versionadded:: 20.0
    reply_markup (:class:`telegram.InlineKeyboardMarkup`, optional): Inline keyboard attached
        to the message. :paramref:`~telegram.InlineKeyboardButton.login_url` buttons are
        represented as ordinary url buttons.
    is_topic_message (:obj:`bool`, optional): :obj:`True`, if the message is sent to a forum
        topic.

        .. versionadded:: 20.0
    message_thread_id (:obj:`int`, optional): Unique identifier of a message thread to which
        the message belongs; for supergroups only.

        .. versionadded:: 20.0
    forum_topic_created (:class:`telegram.ForumTopicCreated`, optional): Service message:
        forum topic created.

        .. versionadded:: 20.0
    forum_topic_closed (:class:`telegram.ForumTopicClosed`, optional): Service message:
        forum topic closed.

        .. versionadded:: 20.0
    forum_topic_reopened (:class:`telegram.ForumTopicReopened`, optional): Service message:
        forum topic reopened.

        .. versionadded:: 20.0
    forum_topic_edited (:class:`telegram.ForumTopicEdited`, optional): Service message:
        forum topic edited.

        .. versionadded:: 20.0
    general_forum_topic_hidden (:class:`telegram.GeneralForumTopicHidden`, optional):
        Service message: General forum topic hidden.

        .. versionadded:: 20.0
    general_forum_topic_unhidden (:class:`telegram.GeneralForumTopicUnhidden`, optional):
        Service message: General forum topic unhidden.

        .. versionadded:: 20.0
    write_access_allowed (:class:`telegram.WriteAccessAllowed`, optional): Service message:
        the user allowed the bot to write messages after adding it to the attachment or side
        menu, launching a Web App from a link, or accepting an explicit request from a Web App
        sent by the method
        `requestWriteAccess <https://core.telegram.org/bots/webapps#initializing-mini-apps>`_.

        .. versionadded:: 20.0
    has_media_spoiler (:obj:`bool`, optional): :obj:`True`, if the message media is covered
        by a spoiler animation.

        .. versionadded:: 20.0
    users_shared (:class:`telegram.UsersShared`, optional): Service message: users were shared
        with the bot

        .. versionadded:: 20.8
    chat_shared (:class:`telegram.ChatShared`, optional):Service message: a chat was shared
        with the bot.

        .. versionadded:: 20.1
    giveaway_created (:class:`telegram.GiveawayCreated`, optional): Service message: a
        scheduled giveaway was created

        .. versionadded:: 20.8
    giveaway (:class:`telegram.Giveaway`, optional): The message is a scheduled giveaway
        message

        .. versionadded:: 20.8
    giveaway_winners (:class:`telegram.GiveawayWinners`, optional): A giveaway with public
        winners was completed

        .. versionadded:: 20.8
    giveaway_completed (:class:`telegram.GiveawayCompleted`, optional): Service message: a
        giveaway without public winners was completed

        .. versionadded:: 20.8
    external_reply (:class:`telegram.ExternalReplyInfo`, optional): Information about the
        message that is being replied to, which may come from another chat or forum topic.

        .. versionadded:: 20.8
    quote (:class:`telegram.TextQuote`, optional): For replies that quote part of the original
        message, the quoted part of the message.

        .. versionadded:: 20.8
    forward_origin (:class:`telegram.MessageOrigin`, optional): Information about the original
        message for forwarded messages

        .. versionadded:: 20.8
    reply_to_story (:class:`telegram.Story`, optional): For replies to a story, the original
        story.

        .. versionadded:: 21.0
    boost_added (:class:`telegram.ChatBoostAdded`, optional): Service message: user boosted
        the chat.

        .. versionadded:: 21.0
    sender_boost_count (:obj:`int`, optional): If the sender of the
        message boosted the chat, the number of boosts added by the user.

        .. versionadded:: 21.0
    business_connection_id (:obj:`str`, optional): Unique identifier of the business connection
        from which the message was received. If non-empty, the message belongs to a chat of the
        corresponding business account that is independent from any potential bot chat which
        might share the same identifier.

        .. versionadded:: 21.1

    sender_business_bot (:class:`telegram.User`, optional): The bot that actually sent the
        message on behalf of the business account. Available only for outgoing messages sent
        on behalf of the connected business account.

        .. versionadded:: 21.1

    chat_background_set  (:class:`telegram.ChatBackground`, optional): Service message: chat
        background set.

        .. versionadded:: 21.2
    paid_media (:class:`telegram.PaidMediaInfo`, optional): Message contains paid media;
        information about the paid media.

        .. versionadded:: 21.4
    refunded_payment (:class:`telegram.RefundedPayment`, optional): Message is a service
        message about a refunded payment, information about the payment.

        .. versionadded:: 21.4

Attributes:
    message_id (:obj:`int`): Unique message identifier inside this chat. In specific instances
        (e.g., message containing a video sent to a big chat), the server might automatically
        schedule a message instead of sending it immediately. In such cases, this field will be
        ``0`` and the relevant message will be unusable until it is actually sent.
    from_user (:class:`telegram.User`): Optional. Sender of the message; may be empty for
        messages sent to channels. For backward compatibility, if the message was sent on
        behalf of a chat, the field contains a fake sender user in non-channel chats.
    sender_chat (:class:`telegram.Chat`): Optional. Sender of the message when sent on behalf
        of a chat. For example, the supergroup itself for messages sent by its anonymous
        administrators or a linked channel for messages automatically forwarded to the
        channel's discussion group. For backward compatibility, if the message was sent on
        behalf of a chat, the field from contains a fake sender user in non-channel chats.
    date (:class:`datetime.datetime`): Date the message was sent in Unix time. Converted to
        :class:`datetime.datetime`.

        .. versionchanged:: 20.3
            |datetime_localization|
    chat (:class:`telegram.Chat`): Conversation the message belongs to.
    is_automatic_forward (:obj:`bool`): Optional. :obj:`True`, if the message is a channel
        post that was automatically forwarded to the connected discussion group.

        .. versionadded:: 13.9
    reply_to_message (:class:`telegram.Message`): Optional. For replies, the original message.
        Note that the Message object in this field will not contain further
        ``reply_to_message`` fields even if it itself is a reply.
    edit_date (:class:`datetime.datetime`): Optional. Date the message was last edited in Unix
        time. Converted to :class:`datetime.datetime`.

        .. versionchanged:: 20.3
            |datetime_localization|
    has_protected_content (:obj:`bool`): Optional. :obj:`True`, if the message can't be
        forwarded.

        .. versionadded:: 13.9
    is_from_offline (:obj:`bool`): Optional. :obj:`True`, if the message was sent
        by an implicit action, for example, as an away or a greeting business message,
        or as a scheduled message.

        .. versionadded:: 21.1
    media_group_id (:obj:`str`): Optional. The unique identifier of a media message group this
        message belongs to.
    text (:obj:`str`): Optional. For text messages, the actual UTF-8 text of the message,
        0-:tg-const:`telegram.constants.MessageLimit.MAX_TEXT_LENGTH` characters.
    entities (tuple[:class:`telegram.MessageEntity`]): Optional. For text messages, special
        entities like usernames, URLs, bot commands, etc. that appear in the text. See
        :attr:`parse_entity` and :attr:`parse_entities` methods for how to use properly.
        This list is empty if the message does not contain entities.

        .. versionchanged:: 20.0
            |tupleclassattrs|

    link_preview_options (:class:`telegram.LinkPreviewOptions`): Optional. Options used for
        link preview generation for the message, if it is a text message and link preview
        options were changed.

        .. versionadded:: 20.8

    effect_id (:obj:`str`): Optional. Unique identifier of the message effect added to the
        message.

        ..versionadded:: 21.3

    caption_entities (tuple[:class:`telegram.MessageEntity`]): Optional. For messages with a
        Caption. Special entities like usernames, URLs, bot commands, etc. that appear in the
        caption. See :attr:`Message.parse_caption_entity` and :attr:`parse_caption_entities`
        methods for how to use properly. This list is empty if the message does not contain
        caption entities.

        .. versionchanged:: 20.0
            |tupleclassattrs|

    show_caption_above_media (:obj:`bool`): Optional. |show_cap_above_med|

        .. versionadded:: 21.3
    audio (:class:`telegram.Audio`): Optional. Message is an audio file, information
        about the file.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    document (:class:`telegram.Document`): Optional. Message is a general file, information
        about the file.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    animation (:class:`telegram.Animation`): Optional. Message is an animation, information
        about the animation. For backward compatibility, when this field is set, the document
        field will also be set.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    game (:class:`telegram.Game`): Optional. Message is a game, information about the game.
        :ref:`More about games >> <games-tree>`.
    photo (tuple[:class:`telegram.PhotoSize`]): Optional. Message is a photo, available
        sizes of the photo. This list is empty if the message does not contain a photo.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

        .. versionchanged:: 20.0
            |tupleclassattrs|

    sticker (:class:`telegram.Sticker`): Optional. Message is a sticker, information
        about the sticker.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    story (:class:`telegram.Story`): Optional. Message is a forwarded story.

        .. versionadded:: 20.5
    video (:class:`telegram.Video`): Optional. Message is a video, information about the
        video.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    voice (:class:`telegram.Voice`): Optional. Message is a voice message, information about
        the file.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    video_note (:class:`telegram.VideoNote`): Optional. Message is a
        `video note <https://telegram.org/blog/video-messages-and-telescope>`_, information
        about the video message.

        .. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`
    new_chat_members (tuple[:class:`telegram.User`]): Optional. New members that were added
        to the group or supergroup and information about them (the bot itself may be one of
        these members). This list is empty if the message does not contain new chat members.

        .. versionchanged:: 20.0
            |tupleclassattrs|
    caption (:obj:`str`): Optional. Caption for the animation, audio, document, paid media,
        photo, video
        or voice, 0-:tg-const:`telegram.constants.MessageLimit.CAPTION_LENGTH` characters.
    contact (:class:`telegram.Contact`): Optional. Message is a shared contact, information
        about the contact.
    location (:class:`telegram.Location`): Optional. Message is a shared location, information
        about the location.
    venue (:class:`telegram.Venue`): Optional. Message is a venue, information about the
        venue. For backward compatibility, when this field is set, the location field will
        also be set.
    left_chat_member (:class:`telegram.User`): Optional. A member was removed from the group,
        information about them (this member may be the bot itself).
    new_chat_title (:obj:`str`): Optional. A chat title was changed to this value.
    new_chat_photo (tuple[:class:`telegram.PhotoSize`]): A chat photo was changed to
        this value. This list is empty if the message does not contain a new chat photo.

        .. versionchanged:: 20.0
            |tupleclassattrs|

    delete_chat_photo (:obj:`bool`): Optional. Service message: The chat photo was deleted.
    group_chat_created (:obj:`bool`): Optional. Service message: The group has been created.
    supergroup_chat_created (:obj:`bool`): Optional. Service message: The supergroup has been
        created. This field can't be received in a message coming through updates, because bot
        can't be a member of a supergroup when it is created. It can only be found in
        :attr:`reply_to_message` if someone replies to a very first message in a directly
        created supergroup.
    channel_chat_created (:obj:`bool`): Optional. Service message: The channel has been
        created. This field can't be received in a message coming through updates, because bot
        can't be a member of a channel when it is created. It can only be found in
        :attr:`reply_to_message` if someone replies to a very first message in a channel.
    message_auto_delete_timer_changed (:class:`telegram.MessageAutoDeleteTimerChanged`):
        Optional. Service message: auto-delete timer settings changed in the chat.

        .. versionadded:: 13.4
    migrate_to_chat_id (:obj:`int`): Optional. The group has been migrated to a supergroup
        with the specified identifier.
    migrate_from_chat_id (:obj:`int`): Optional. The supergroup has been migrated from a group
        with the specified identifier.
    pinned_message (:class:`telegram.MaybeInaccessibleMessage`): Optional. Specified message
        was pinned. Note that the Message object in this field will not contain further
        :attr:`reply_to_message` fields even if it is itself a reply.

        .. versionchanged:: 20.8
            This attribute now is either :class:`telegram.Message` or
            :class:`telegram.InaccessibleMessage`.
    invoice (:class:`telegram.Invoice`): Optional. Message is an invoice for a payment,
        information about the invoice.
        :ref:`More about payments >> <payments-tree>`.
    successful_payment (:class:`telegram.SuccessfulPayment`): Optional. Message is a service
        message about a successful payment, information about the payment.
        :ref:`More about payments >> <payments-tree>`.
    connected_website (:obj:`str`): Optional. The domain name of the website on which the user
        has logged in.
        `More about Telegram Login >> <https://core.telegram.org/widgets/login>`_.
    author_signature (:obj:`str`): Optional. Signature of the post author for messages in
        channels, or the custom title of an anonymous group administrator.
    passport_data (:class:`telegram.PassportData`): Optional. Telegram Passport data.

        Examples:
            :any:`Passport Bot <examples.passportbot>`
    poll (:class:`telegram.Poll`): Optional. Message is a native poll,
        information about the poll.
    dice (:class:`telegram.Dice`): Optional. Message is a dice with random value.
    via_bot (:class:`telegram.User`): Optional. Bot through which message was sent.
    proximity_alert_triggered (:class:`telegram.ProximityAlertTriggered`): Optional. Service
        message. A user in the chat triggered another user's proximity alert while sharing
        Live Location.
    video_chat_scheduled (:class:`telegram.VideoChatScheduled`): Optional. Service message:
        video chat scheduled.

        .. versionadded:: 20.0
    video_chat_started (:class:`telegram.VideoChatStarted`): Optional. Service message: video
        chat started.

        .. versionadded:: 20.0
    video_chat_ended (:class:`telegram.VideoChatEnded`): Optional. Service message: video chat
        ended.

        .. versionadded:: 20.0
    video_chat_participants_invited (:class:`telegram.VideoChatParticipantsInvited`): Optional.
        Service message: new participants invited to a video chat.

        .. versionadded:: 20.0
    web_app_data (:class:`telegram.WebAppData`): Optional. Service message: data sent by a Web
        App.

        .. versionadded:: 20.0
    reply_markup (:class:`telegram.InlineKeyboardMarkup`): Optional. Inline keyboard attached
        to the message. :paramref:`~telegram.InlineKeyboardButton.login_url` buttons are
        represented as ordinary url buttons.
    is_topic_message (:obj:`bool`): Optional. :obj:`True`, if the message is sent to a forum
        topic.

        .. versionadded:: 20.0
    message_thread_id (:obj:`int`): Optional. Unique identifier of a message thread to which
        the message belongs; for supergroups only.

        .. versionadded:: 20.0
    forum_topic_created (:class:`telegram.ForumTopicCreated`): Optional. Service message:
        forum topic created.

        .. versionadded:: 20.0
    forum_topic_closed (:class:`telegram.ForumTopicClosed`): Optional. Service message:
        forum topic closed.

        .. versionadded:: 20.0
    forum_topic_reopened (:class:`telegram.ForumTopicReopened`): Optional. Service message:
        forum topic reopened.

        .. versionadded:: 20.0
    forum_topic_edited (:class:`telegram.ForumTopicEdited`): Optional. Service message:
        forum topic edited.

        .. versionadded:: 20.0
    general_forum_topic_hidden (:class:`telegram.GeneralForumTopicHidden`): Optional.
        Service message: General forum topic hidden.

        .. versionadded:: 20.0
    general_forum_topic_unhidden (:class:`telegram.GeneralForumTopicUnhidden`): Optional.
        Service message: General forum topic unhidden.

        .. versionadded:: 20.0
    write_access_allowed (:class:`telegram.WriteAccessAllowed`): Optional. Service message:
        the user allowed the bot added to the attachment menu to write messages.

        .. versionadded:: 20.0
    has_media_spoiler (:obj:`bool`): Optional. :obj:`True`, if the message media is covered
        by a spoiler animation.

        .. versionadded:: 20.0
    users_shared (:class:`telegram.UsersShared`): Optional. Service message: users were shared
        with the bot

        .. versionadded:: 20.8
    chat_shared (:class:`telegram.ChatShared`): Optional. Service message: a chat was shared
        with the bot.

        .. versionadded:: 20.1
    giveaway_created (:class:`telegram.GiveawayCreated`): Optional. Service message: a
        scheduled giveaway was created

        .. versionadded:: 20.8
    giveaway (:class:`telegram.Giveaway`): Optional. The message is a scheduled giveaway
        message

        .. versionadded:: 20.8
    giveaway_winners (:class:`telegram.GiveawayWinners`): Optional. A giveaway with public
        winners was completed

        .. versionadded:: 20.8
    giveaway_completed (:class:`telegram.GiveawayCompleted`): Optional. Service message: a
        giveaway without public winners was completed

        .. versionadded:: 20.8
    external_reply (:class:`telegram.ExternalReplyInfo`): Optional. Information about the
        message that is being replied to, which may come from another chat or forum topic.

        .. versionadded:: 20.8
    quote (:class:`telegram.TextQuote`): Optional. For replies that quote part of the original
        message, the quoted part of the message.

        .. versionadded:: 20.8
    forward_origin (:class:`telegram.MessageOrigin`): Optional. Information about the original
        message for forwarded messages

        .. versionadded:: 20.8
    reply_to_story (:class:`telegram.Story`): Optional. For replies to a story, the original
        story.

        .. versionadded:: 21.0
    boost_added (:class:`telegram.ChatBoostAdded`): Optional. Service message: user boosted
        the chat.

        .. versionadded:: 21.0
    sender_boost_count (:obj:`int`): Optional. If the sender of the
        message boosted the chat, the number of boosts added by the user.

        .. versionadded:: 21.0

    business_connection_id (:obj:`str`): Optional. Unique identifier of the business connection
        from which the message was received. If non-empty, the message belongs to a chat of the
        corresponding business account that is independent from any potential bot chat which
        might share the same identifier.

        .. versionadded:: 21.1

    sender_business_bot (:class:`telegram.User`): Optional. The bot that actually sent the
        message on behalf of the business account. Available only for outgoing messages sent
        on behalf of the connected business account.

        .. versionadded:: 21.1

    chat_background_set (:class:`telegram.ChatBackground`): Optional. Service message: chat
        background set

        .. versionadded:: 21.2
    paid_media (:class:`telegram.PaidMediaInfo`): Optional. Message contains paid media;
        information about the paid media.

        .. versionadded:: 21.4
    refunded_payment (:class:`telegram.RefundedPayment`): Optional. Message is a service
        message about a refunded payment, information about the payment.

        .. versionadded:: 21.4

.. |custom_emoji_no_md1_support| replace:: Since custom emoji entities are not supported by
   :attr:`~telegram.constants.ParseMode.MARKDOWN`, this method now raises a
   :exc:`ValueError` when encountering a custom emoji.

.. |blockquote_no_md1_support| replace:: Since block quotation entities are not supported
   by :attr:`~telegram.constants.ParseMode.MARKDOWN`, this method now raises a
   :exc:`ValueError` when encountering a block quotation.

.. |reply_same_thread| replace:: If :paramref:`message_thread_id` is not provided,
   this will reply to the same thread (topic) of the original message.
)S_effective_attachment	animationaudioauthor_signatureboost_addedbusiness_connection_idcaptioncaption_entitieschannel_chat_createdchat_background_setchat_sharedconnected_websitecontactdelete_chat_photodicedocument	edit_date	effect_identitiesexternal_replyforum_topic_closedforum_topic_createdforum_topic_editedforum_topic_reopenedforward_origin	from_usergamegeneral_forum_topic_hiddengeneral_forum_topic_unhiddengiveawaygiveaway_completedgiveaway_createdgiveaway_winnersgroup_chat_createdhas_media_spoilerhas_protected_contentinvoiceis_automatic_forwardis_from_offlineis_topic_messageleft_chat_memberlink_preview_optionslocationmedia_group_id!message_auto_delete_timer_changedmessage_thread_idmigrate_from_chat_idmigrate_to_chat_idnew_chat_membersnew_chat_photonew_chat_title
paid_mediapassport_dataphotopinned_messagepollproximity_alert_triggeredquoterefunded_paymentreply_markupreply_to_messagereply_to_storysender_boost_countsender_business_botsender_chatshow_caption_above_mediastickerstorysuccessful_paymentsupergroup_chat_createdtextusers_sharedvenuevia_botvideovideo_chat_endedvideo_chat_participants_invitedvideo_chat_scheduledvideo_chat_started
video_notevoiceweb_app_datawrite_access_allowedNrt   rs   rr   rq   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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rM   r   rN   r   rO   r   rP   r   r   r   rK   r   r\   r   rZ   r   r   r   r   r   r   r   r   r   r   r   ru   cV                  > [         TWU ]  X1UWVS9  U R                  5          Xl        X@l        U-U l        X l        X0l        U3U l        XPl	        X`l
        U4U l        Xpl        [        U5      U l        [        U	5      U l        Xl        Xl        Xl        [        U5      U l        Xl        Xl        UU l        UU l        UU l        UU l        UU l        UU l        [        U5      U l        UU l        UU l        [        U5      U l        [A        U5      U l!        [A        U5      U l"        [A        U5      U l#        UU l$        UU l%        [A        U5      U l&        U1U l'        U U l(        U!U l)        U"U l*        U%U l+        U#U l,        U$U l-        U&U l.        U'U l/        U(U l0        U*U l1        U+U l2        U,U l3        U2U l4        U.U l5        U/U l6        U0U l7        U)U l8        U5U l9        U6U l:        U7U l;        U8U l<        U9U l=        U:U l>        U;U l?        U<U l@        U=U lA        U>U lB        U?U lC        WFU lD        W@U lE        WAU lF        WBU lG        WCU lH        WDU lI        WEU lJ        WGU lK        WHU lL        WIU lM        WJU lN        WKU lO        WLU lP        WMU lQ        WNU lR        WOU lS        WPU lT        WQU lU        WRU lV        WSU lW        WTU lX        WUU lY        [        U l[        U R                  U R                  4U l\        S S S 5        g ! , (       d  f       g = fr   )]rw   rx   	_unfrozenrs   r   r   rr   rq   r   r   r   r   r   r0   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   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   r3   r   ry   )Xr{   rs   rr   rq   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   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   ru   r|   sX                                                                                          rm   rx   Message.__init__   s   t 	dQ[\^^#-O-6N/:D+/I"I8LD%7G!:CN9ND&'+I7I(7SDM?QRb?cD!*/J(,I08M0B50IDJ.5L*/J*/DJ3=DO*1DL.5DL08DM*/DJ6HIY6ZD!4DD!1?D9KN9[D59:K5LD"6:;M6ND#;?@W;XD(5GD#7KD%8<=Q8RD%1 2 GUD.5DLCUD#4ED"3CD!1?D2;DN9FD(,DI(,DI+2DL) * G[D%BTD#>ND!/ 0 AMD6BD4DD!4ED"DWD$BTD#FZD%BTD#* + - - G[D%5FD"7CD5@D*/DJ08DMCUD#?OD!?OD!FZD%?MD.3DJ;ID3AD9DD5GD#9OD'7JD$3BD ATD$,5DN<TD)7ADO?OD!)5D&"ootyy9DNK s   KK++
K9r~   c                 .    U R                   R                  $ )zC:obj:`int`: Shortcut for :attr:`telegram.Chat.id` for :attr:`chat`.)rq   idr   s    rm   r`   Message.chat_id  s     yy||rl   c                     U R                   $ )zJ
:obj:`int`: Shortcut for :attr:`message_id`.

    .. versionadded:: 20.0
rs   r   s    rm   r   
Message.id  s     rl   c                    U R                   R                  [        R                  [        R                  4;  a  U R                   R
                  (       a  U R                   R
                  O$S[        U R                   R                  5      SS  3nSU SU R                   3nU R                  (       a  U R                  (       d  U R                  (       a  U SU R                   3nU$ g)a$  :obj:`str`: Convenience property. If the chat of the message is not
a private chat or normal group, returns a t.me link of the message.

    .. versionchanged:: 20.3
        For messages that are replies or part of a forum topic, the link now points
        to the corresponding thread view.
zc/   Nzhttps://t.me//z?thread=)rq   typer	   PRIVATEGROUPusernamerh   r   rs   r   r   r   )r{   to_linkbaselinks      rm   linkMessage.link  s     99>>$,,

!;;,0II,>,>dii((bTYY\\IZ[\[]I^H_D`G&wiq0ABH %%$*@*@TEZEZ&Zx0F0F/GHOrl   r   r   rJ   c                   > U R                  U5      nU(       d  g[        U5      n[        R                  " UR	                  SS5      U5      US'   [
        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        R                  UR                  S5      U5      US'   [        UR                  S5      US	9US'   [        R                  " UR                  S
5      U5      US
'   [        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [         R                  " UR                  S5      U5      US'   ["        R                  " UR                  S5      U5      US'   [$        R                  " UR                  S5      U5      US'   [&        R                  " UR                  S5      U5      US'   [(        R                  " UR                  S5      U5      US'   [*        R                  " UR                  S5      U5      US'   [,        R                  " UR                  S5      U5      US'   [.        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [        R                  " UR                  S5      U5      US'   [0        R                  " UR                  S5      U5      US'   [2        R                  UR                  S5      U5      US'   [4        R                  " UR                  S5      U5      US'   [6        R                  " UR                  S5      U5      US'   [8        R                  " UR                  S5      U5      US'   [:        R                  " UR                  S5      U5      US'   [<        R                  " UR                  S 5      U5      US '   [        R                  " UR                  S!5      U5      US!'   [>        R                  " UR                  S"5      U5      US"'   [@        R                  " UR                  S#5      U5      US#'   [B        R                  " UR                  S$5      U5      US$'   [D        R                  " UR                  S%5      U5      US%'   [F        R                  " UR                  S&5      U5      US&'   [H        R                  " UR                  S'5      U5      US''   [J        R                  " UR                  S(5      U5      US('   [L        R                  " UR                  S)5      U5      US)'   [N        R                  " UR                  S*5      U5      US*'   [P        R                  " UR                  S+5      U5      US+'   [R        R                  " UR                  S,5      U5      US,'   [T        R                  " UR                  S-5      U5      US-'   [V        R                  " UR                  S.5      U5      US.'   [X        R                  " UR                  S/5      U5      US/'   [Z        R                  " UR                  S05      U5      US0'   [\        R                  " UR                  S15      U5      US1'   [^        R                  " UR                  S25      U5      US2'   [`        R                  " UR                  S35      U5      US3'   [b        R                  " UR                  S45      U5      US4'   S5S6K2J3nJ4nJ5nJ6n  S5S7K7J8n  S5S8K9J:n	J;n
  UR                  " UR                  S95      U5      US9'   UR                  " UR                  S:5      U5      US:'   UR                  " UR                  S;5      U5      US;'   UR                  " UR                  S<5      U5      US<'   [x        R                  " UR                  S=5      U5      US='   U	R                  " UR                  S>5      U5      US>'   U
R                  " UR                  S?5      U5      US?'   UR                  " UR                  S@5      U5      US@'   ["        R                  " UR                  SA5      U5      USA'   [z        R                  " UR                  SB5      U5      USB'   [        R                  " UR                  SC5      U5      USC'   0 nSD H   nUR                  U5      =n(       d  M  X0nM"     [|        TU ]  XUSE9$ )Fr   Nfromr   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   r   r   r   r   r   r   )rM   rN   rO   rP   )rZ   )rK   r\   r   r   r   r   r   r   r   r   r   r   r   )user_sharedforward_fromforward_from_chatforward_from_message_idforward_signatureforward_sender_nameforward_dater   )@r   r1   r/   r   popr	   r   r"   de_listr   r2   r   r   r   r   r   r   r-   r   r   r   r   r   r   r!   ro   r%   r'   r$   r(   r   r)   r   rA   rB   r?   r@   rC   r   r   r   r   r   r   rD   r,   r+   r
   r#   r&   telegram._giveawayrM   rN   rO   rP   telegram._messageoriginrZ   telegram._replyrK   r\   r    r   rw   r   )r   r   r   r   rM   rN   rO   rP   rZ   rK   r\   ru   keyentryr|   s                 rm   r   Message.de_json  sO    t$ 2#6
 LL&$)?E["ll488M+BCH](00*1EsKZ#0#8#8BT9UWZ#[ #*??488<N3OQT#U *488K+@T[dhhw&7=W#++DHHZ,@#FZ%--dhh{.CSI[||DHHV$4c:V!))$((7*;SAW!//$((9*=sCYdhhw&7=Wdhhw&7=Wdhhw&7=W&..txx/EsK\!//$((9*=sCY#++DHHZ,@#FZdhhw&7=W#'<<9K0Lc#R #'<<9K0Lc#R !*!2!2488<L3Ms!S4Q4Y4YHH8935
01 ":!A!A$((K[B\^a!b!//$((9*=sCY%6%>%>txxH\?]_b%c!" , 4 4TXXo5NPS T_||DHHV$4c:V||DHHV$4c:V,,txx	':C@Y,C,K,KHH013-
()  4;;DHH^<TVYZ^'9'A'AHH+,c(
#$ &6%=%=dhhG[>\^a%b!"#1#9#9$((CU:VX[#\ 2N2V2VHH673
./  *11$((>2JCP^%5%=%=dhhG[>\^a%b!"&7&?&?HH*+S'
"# (:'A'AHH+,c(
#$ &6%=%=dhhG[>\^a%b!"-D-L-LHH12C.
)* 0I/P/PHH34c0
+, (:'A'AHH+,c(
#$  +22488N3KSQ^(00-1H#N]&4&<&<TXXF[=\^a&b"#*22488L3I3O\#2#:#:488DV;WY\#] 	
 	
	
	

 $++DHHZ,@#FZ%6%>%>txxH\?]_b%c!"#2#:#:488DV;WY\#] #2#:#:488DV;WY\#] '9'A'AHH+,c(
#$ "3!:!:488DT;UWZ![!))$((7*;SAW!.!6!6txx@P7QSV!W!&txx8H/I3!O,44TXXm5LcR]&*ll488<Q3RTW&X"#

C %u%!\

 w:   
 	
rl   c                 &   [        U R                  [        5      (       d  U R                  $ [         HJ  nX   (       d  M  X   U l        U[        R                  :X  a  [        [        SS5      SS9    U R                  $    SU l        U R                  $ )aa  If the message is a user generated content which is not a plain text message, this
property is set to this content. It may be one of

* :class:`telegram.Audio`
* :class:`telegram.Dice`
* :class:`telegram.Contact`
* :class:`telegram.Document`
* :class:`telegram.Animation`
* :class:`telegram.Game`
* :class:`telegram.Invoice`
* :class:`telegram.Location`
* :class:`telegram.PassportData`
* list[:class:`telegram.PhotoSize`]
* :class:`telegram.PaidMediaInfo`
* :class:`telegram.Poll`
* :class:`telegram.Sticker`
* :class:`telegram.Story`
* :class:`telegram.SuccessfulPayment`
* :class:`telegram.Venue`
* :class:`telegram.Video`
* :class:`telegram.VideoNote`
* :class:`telegram.Voice`

Otherwise :obj:`None` is returned.

.. seealso:: :wiki:`Working with Files and Media <Working-with-Files-and-Media>`

.. versionchanged:: 20.0
    :attr:`dice`, :attr:`passport_data` and :attr:`poll` are now also considered to be an
    attachment.

.. versionchanged:: 21.4
    :attr:`paid_media` is now also considered to be an attachment.

.. deprecated:: 21.4
    :attr:`successful_payment` will be removed in future major versions.

z21.4zVsuccessful_payment will no longer be considered an attachment in future major versions   
stacklevelN)
isinstancer   r4   rF   SUCCESSFUL_PAYMENTr>   rI   )r{   attachment_types     rm   effective_attachmentMessage.effective_attachmentd  s    ~ $44lCC---4O$$-1-B*"&;&N&NN-"5
 $%  )))!  5 *.D&)))rl   reply_to_message_idc                    Ub  [        U5      $ Ub  U(       a  [        U R                  5      $  g[        U R                  5       S5      (       aD  U R                  5       R                  (       a%  U R                  5       R                  R
                  nOSnUc(  U R                  R                  [        R                  :w  d  U(       a  [        U R                  5      $ g)z3Modify kwargs for replying with or without quoting.Ndefaults)
r*   rs   hasattrget_botr%  r   rq   r  r	   r  )r{   r   r#  default_quotes       rm   _quoteMessage._quote  s     *"#677&t77   t||~z22t||~7N7N $ 7 7 = = $%$))..DLL*H]&t77rl   index.c           	      >   U R                   =(       d    U R                  =n(       d  [        S5      eUR                  [        R
                  5      nUR                  [        R
                  5      nU=(       d    Sn[        [        R                  " [        R                  " U5      U5      5      n[        U5      =oS-   :  a  [        SU SU SU S35      e[        USXv   R                  5        5      S	-  n	[        U5      S	-  nX-   n
/ nU R                  =(       d    U R                   H  nXR                  UR                   -   ::  d  M!  UR                  U
::  d  M3  [#        SUR                  U	-
  5      n[%        XR                  UR                   -   5      [#        XR                  5      -
  nUS::  a  M  UR&                   Vs0 s H  o[)        X5      _M     nnUUS
'   UUS'   UR+                  [-        S0 UD65        M     U	[/        U5      =(       d    S4$ s  snf )a  
Use this function to compute position and entities of a quote in the message text or
caption. Useful for filling the parameters
:paramref:`~telegram.ReplyParameters.quote_position` and
:paramref:`~telegram.ReplyParameters.quote_entities` of :class:`telegram.ReplyParameters`
when replying to a message.

Example:

    Given a message with the text ``"Hello, world! Hello, world!"``, the following code
    will return the position and entities of the second occurrence of ``"Hello, world!"``.

    .. code-block:: python

        message.compute_quote_position_and_entities("Hello, world!", 1)

.. versionadded:: 20.8

Args:
    quote (:obj:`str`): Part of the message which is to be quoted. This is
        expected to have plain text without formatting entities.
    index (:obj:`int`, optional): 0-based index of the occurrence of the quote in the
        message. If not specified, the first occurrence is used.

Returns:
    tuple[:obj:`int`, :obj:`None` | tuple[:class:`~telegram.MessageEntity`, ...]]: On
    success, a tuple containing information about quote position and entities is returned.

Raises:
    RuntimeError: If the message has neither :attr:`text` nor :attr:`caption`.
    ValueError: If the requested index of quote doesn't exist in the message.
z*This message has neither text nor caption.r      zYou requested the z-th occurrence of 'z', but this text appears only z times.Nr  offsetlengthrb   )r   r   RuntimeErrorencoder7   	UTF_16_LElistrefinditerr   len
ValueErrorstartr   r   r.  r/  maxminrg   getattrappendr"   tuple)r{   r   r+  r   
utf16_textutf16_quoteeffective_indexmatchesr/  positionend_positionr   entityr.  e_lengthattrkwargss                    rm   #compute_quote_position_and_entities+Message.compute_quote_position_and_entities  s   F 2dll33KLL [[!7!78
ll<#9#9:*1r{{299[#9:FG'l"F&99$UG+>ug Fxw( 
 z"DG$<$B$B$DEF!K[!Q&(mm<t'<'<<F==6==88V]]l=ZQ 89|]]V]]-JKcmmO  q=
 CIBRBRSBR$ 55BRS#)x #+x  7 78# =& x0D00 Ts   Hquote_indextarget_chat_idallow_sending_without_replyc           	      J   USU R                   SU R                  R                   34;   nU(       a  USU R                  4;   a  UnOSnU(       a  U R	                  X5      OSu  p[        U(       a  SOU R                   U R                  UUU	US9U=(       d    U R                   S.$ )a"  
Builds a dictionary with the keys ``chat_id`` and ``reply_parameters``. This dictionary can
be used to reply to a message with the given quote and target chat.

Examples:

    Usage with :meth:`telegram.Bot.send_message`:

    .. code-block:: python

        await bot.send_message(
            text="This is a reply",
            **message.build_reply_arguments(quote="Quoted Text")
        )

    Usage with :meth:`reply_text`, replying in the same chat:

    .. code-block:: python

        await message.reply_text(
            "This is a reply",
            do_quote=message.build_reply_arguments(quote="Quoted Text")
        )

    Usage with :meth:`reply_text`, replying in a different chat:

    .. code-block:: python

        await message.reply_text(
            "This is a reply",
            do_quote=message.build_reply_arguments(
                quote="Quoted Text",
                target_chat_id=-100123456789
            )
        )

.. versionadded:: 20.8

Args:
    quote (:obj:`str`, optional): Passed in :meth:`compute_quote_position_and_entities`
        as parameter :paramref:`~compute_quote_position_and_entities.quote` to compute
        quote entities. Defaults to :obj:`None`.
    quote_index (:obj:`int`, optional): Passed in
        :meth:`compute_quote_position_and_entities` as parameter
        :paramref:`~compute_quote_position_and_entities.quote_index` to compute quote
        position. Defaults to :obj:`None`.
    target_chat_id (:obj:`int` | :obj:`str`, optional): |chat_id_channel|
        Defaults to :attr:`chat_id`.
    allow_sending_without_reply (:obj:`bool`, optional): |allow_sending_without_reply|
        Will be applied only if the reply happens in the same chat and forum topic.
    message_thread_id (:obj:`int`, optional): |message_thread_id|

Returns:
    :obj:`dict`:
N@r   )r`   rs   r   quote_positionquote_entitiesrL  )ra   r`   )r`   rq   r  r   rH  r*   rs   )
r{   r   rJ  rK  rL  r   target_chat_is_selfeffective_aswrrO  rP  s
             rm   build_reply_argumentsMessage.build_reply_arguments  s    ~ -t||qI[I[H\E]0^^#4""9
 $

 .IN!N MRD44UHWc 	' !0 3??--,:! &5

 
	
rl   do_quotera   r*   c                 T  #    U(       a  U(       a  [        S5      eUb  Ub  [        S5      eUb  [        [        SS5      SS9  U=(       d    UnU R                  nUb  UnXg4$ Ub  [	        US9nXg4$ [        U[        5      (       a  US   nUS	   nXg4$ U R                  U5      nXg4$ 7f)
Nz;The arguments `quote` and `do_quote` are mutually exclusivezD`reply_to_message_id` and `reply_parameters` are mutually exclusive.z20.8z|The `quote` parameter is deprecated in favor of the `do_quote` parameter. Please update your code to use `do_quote` instead.r  r  r   ra   r`   )r7  r>   rI   r`   r*   r  dictr)  )r{   rU  r   r#  ra   effective_do_quoter`   effective_reply_parameterss           rm   _parse_quote_argumentsMessage._parse_quote_argumentst  s      XZ[[*/?/KV  %I
  #.h#'<< ')9& 22 !,)8DW)X& 22 *D11);<N)O&(3G 22 *.5G)H&22s   B&B(r`   c                     [        U[        5      (       d  U$ U R                  (       d  g XR                  U R                  R
                  1;   a  U R                  $ S $ N)r  r4   r   r`   rq   r  r   )r{   r`   r   s      rm   _parse_message_thread_id Message._parse_message_thread_id  sR     +\::$$ $$ *1\\499CUCU4V)Vt%%`\``rl   )
r#  rL  disable_web_page_previewr   rU  read_timeoutwrite_timeoutconnect_timeoutpool_timeoutru   
parse_modedisable_notificationprotect_contentr    message_effect_idallow_paid_broadcastr`  ra  rb  rc  rd  c       
            #    U R                  UXU	5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUUUUU R                  U
US9I Sh  vN $  N[ N7f)a,  Shortcut for::

     await bot.send_message(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

Nr`   r   re  r`  r   rf  ra   r   rL  r   rg  r   ra  rb  rc  rd  ru   r   rh  ri  )rZ  r^  r'  send_messager   )r{   r   re  rf  r   r   rg  r   r   ra   rh  ri  r#  rL  r`  r   rU  ra  rb  rc  rd  ru   r`   rY  s                           rm   
reply_textMessage.reply_text  s     l 594O4Oe2B5
 /
++ !99'CTU\\^00!%=!5!57%(C+/%'+%!#'#>#>/!5) 1 
 
 	
	/

"   A9A5AA90A71A97A9c       
           #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UU[        R
                  UUUUUUUUUUUUUUU R                  U	U
S9I Sh  vN $  Ni N7f)a6  Shortcut for::

    await bot.send_message(
        update.effective_message.chat_id,
        message_thread_id=update.effective_message.message_thread_id,
        parse_mode=ParseMode.MARKDOWN,
        business_connection_id=self.business_connection_id,
        *args,
        **kwargs,
    )

Sends a message with Markdown version 1 formatting.

For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

.. versionchanged:: 21.1
        |reply_same_thread|

Note:
    :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
    Telegram for backward compatibility. You should use :meth:`reply_markdown_v2` instead.

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.
Nrk  )rZ  r^  r'  rl  rG   MARKDOWNr   r{   r   rf  r   r   rg  r   r   ra   rh  ri  r#  rL  r`  r   rU  ra  rb  rc  rd  ru   r`   rY  s                          rm   reply_markdownMessage.reply_markdown  s     v 594O4O05
 /
++ !99'CTU\\^00 ))%=!5!57%(C+/%'+%!#'#>#>/!5) 1 
 
 	
	/

"   BBA$B=B>BBc       
           #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UU[        R
                  UUUUUUUUUUUUUUU R                  U	U
S9I Sh  vN $  Ni N7f)a  Shortcut for::

    await bot.send_message(
        update.effective_message.chat_id,
        message_thread_id=update.effective_message.message_thread_id,
        parse_mode=ParseMode.MARKDOWN_V2,
        business_connection_id=self.business_connection_id,
        *args,
        **kwargs,
    )

Sends a message with markdown version 2 formatting.

For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.
Nrk  )rZ  r^  r'  rl  rG   MARKDOWN_V2r   rr  s                          rm   reply_markdown_v2Message.reply_markdown_v2X  s     n 594O4O05
 /
++ !99'CTU\\^00 ,,%=!5!57%(C+/%'+%!#'#>#>/!5) 1 
 
 	
	/

ru  c       
           #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UU[        R
                  UUUUUUUUUUUUUUU R                  U	U
S9I Sh  vN $  Ni N7f)an  Shortcut for::

    await bot.send_message(
        update.effective_message.chat_id,
        message_thread_id=update.effective_message.message_thread_id,
        parse_mode=ParseMode.HTML,
        business_connection_id=self.business_connection_id,
        *args,
        **kwargs,
    )

Sends a message with HTML formatting.

For the documentation of the arguments, please see :meth:`telegram.Bot.send_message`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.
Nrk  )rZ  r^  r'  rl  rG   HTMLr   rr  s                          rm   
reply_htmlMessage.reply_html  s     n 594O4O05
 /
++ !99'CTU\\^00 ~~%=!5!57%(C+/%'+%!#'#>#>/!5) 1 
 
 	
	/

ru  )r#  rL  r   rU  ra  rb  rc  rd  ru   r   re  r   media)rR   rS   rT   rU   )r   .c                   #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUU	UUUUUU R                  UUS9I Sh  vN $  NY N7f)aV  Shortcut for::

     await bot.send_media_group(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_media_group`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    tuple[:class:`telegram.Message`]: An array of the sent Messages.

Raises:
    :class:`telegram.error.TelegramError`
N)r`   r~  rf  ra   ra  rb  rc  rd  ru   rL  rg  r   r   re  r   r   rh  ri  )rZ  r^  r'  send_media_groupr   )r{   r~  rf  rg  r   ra   rh  ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r   re  r   r`   rY  s                         rm   reply_media_groupMessage.reply_media_group  s     p 594O4O05
 /
++ !99'CTU\\^44!57%'+%!(C+/!-#'#>#>/!5% 5 
 
 	
	/

s"   A6A2AA6-A4.A64A6)
r#  rL  filenamer   rU  ra  rb  rc  rd  ru   r   has_spoilerr  c       
            #    U R                  UUX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUUUUU	U R                  UUUS9I Sh  vN $  N] N7f)a(  Shortcut for::

     await bot.send_photo(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_photo`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r   rf  ra   r   re  rL  r   r  rg  r   ra  rb  rc  rd  ru   r  r   rh  ri  r   )rZ  r^  r'  
send_photor   )r{   r   r   rf  r   re  r   rg  r   r  ra   rh  ri  r   r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                             rm   reply_photoMessage.reply_photoM  s     p 594O4Oe05
 /
++ !99'CTU\\^..!57%!(C-+/%'+%!##'#>#>/!5%=- / 
 
 	
	/

"   A;A7AA;2A93A;9A;r   duration	performertitle	thumbnailc       
            #    U R                  UUUU5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUU	UU
UUUUUUUU R                  UUS9I Sh  vN $  N_ N7f)a(  Shortcut for::

     await bot.send_audio(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_audio`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r  r  r  r   rf  ra   r   re  rL  r   r  rg  r   ra  rb  rc  rd  ru   r  r   rh  ri  )rZ  r^  r'  
send_audior   )r{   r   r  r  r  r   rf  r   re  r   rg  r   r  ra   rh  ri  r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                               rm   reply_audioMessage.reply_audio  s     t 594O4Oe02B5
 /
++ !99'CTU\\^..!57%!(C-+/%'+%!#'#>#>/!51 / 
 
 	
	/

"   A>A:AA>5A<6A><A>r   disable_content_type_detectionc       
            #    U R                  UUX5      I Sh  vN u  nnU R                  UU	5      n	U R                  5       R                  UUUUUUUUUUUUUUUUUU	U
U R                  UUS9I Sh  vN $  N] N7f)a.  Shortcut for::

     await bot.send_document(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_document`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r  r   rf  ra   r   ra  rb  rc  rd  re  ru   r  rL  r   rg  r   r  r   rh  ri  )rZ  r^  r'  send_documentr   )r{   r   r   rf  r   re  r  r   rg  r   r  ra   rh  ri  r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                             rm   reply_documentMessage.reply_document  s     p 594O4Oe05
 /
++ !99'CTU\\^11!57%%'+%!!+I(C-+/#'#>#>/!5- 2 
 
 	
	/

r  r   widthheightc       
           #    U R                  UUUU5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUUUU	UU
UUUU R                  UUUS9I Sh  vN $  Na N7f)a0  Shortcut for::

     await bot.send_animation(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_animation`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r  r  r  r   re  rf  ra   r   ra  rb  rc  rd  ru   rL  r   r  rg  r   r  r  r   rh  ri  r   )rZ  r^  r'  send_animationr   )r{   r   r  r  r  r   re  rf  r   r   rg  r   r  r  ra   rh  ri  r   r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                                 rm   reply_animationMessage.reply_animationP	  s     x 594O4Oe02B5
 /
++ !99'CTU\\^22!!57%%'+%!(C-+/##'#>#>/!5%=5 3 
 
 	
	/

s"   B A<AB 7A>8B >B )	r#  rL  r   rU  ra  rb  rc  rd  ru   r   emojic
       	            #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUU R                  UU	S9I Sh  vN $  NX N7f)a,  Shortcut for::

     await bot.send_sticker(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_sticker`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   rf  ra   r   ra  rb  rc  rd  ru   rL  rg  r   r  r   rh  ri  )rZ  r^  r'  send_stickerr   )r{   r   rf  r   rg  r   r  ra   rh  ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r`   rY  s                        rm   reply_stickerMessage.reply_sticker	  s     f 594O4O05
 /
++ !99'CTU\\^00!57%%'+%!(C+/#'#>#>/!5# 1 
 
 	
	/

s"   A5A1AA5,A3-A53A5r   supports_streamingc       
           #    U R                  UUUU5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUU	UUU
UUUUUU R                  UUUS9I Sh  vN $  Nb N7f)a(  Shortcut for::

     await bot.send_video(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_video`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r  r   rf  ra   r   ra  rb  rc  rd  r  r  re  r  ru   rL  r   r  rg  r   r  r  r   rh  ri  r   )rZ  r^  r'  
send_videor   )r{   r   r  r   rf  r   r  r  re  r  r   rg  r   r  r  ra   rh  ri  r   r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                                  rm   reply_videoMessage.reply_video	  s     z 594O4Oe02B5
 /
++ !99'CTU\\^..!57%%'+%!1!(C-+/##'#>#>/!5%=7 / 
 
 	
	/

s"   BA=AB8A?9B?Br   r/  c       
            #    U R                  UXU	5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUUUUU R                  U
US9I Sh  vN $  N[ N7f)a2  Shortcut for::

     await bot.send_video_note(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_video_note`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r  r/  rf  ra   r   ra  rb  rc  rd  ru   rL  r  rg  r   r  r   rh  ri  )rZ  r^  r'  send_video_noter   )r{   r   r  r/  rf  r   rg  r   r  ra   rh  ri  r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                           rm   reply_video_noteMessage.reply_video_noteW
  s     l 594O4Oe2B5
 /
++ !99'CTU\\^33!!57%%'+%!(C+/#'#>#>/!5) 4 
 
 	
	/

ro  r   c       
            #    U R                  UUX5      I Sh  vN u  nnU R                  UU	5      n	U R                  5       R                  UUUUUUUUUUUUUUUUUU	U R                  UUS9I Sh  vN $  N\ N7f)a(  Shortcut for::

     await bot.send_voice(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_voice`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r   r  r   rf  ra   r   ra  rb  rc  rd  re  ru   rL  r   r  rg  r   r   rh  ri  )rZ  r^  r'  
send_voicer   )r{   r   r  r   rf  r   re  r   rg  r   ra   rh  ri  r#  rL  r  r   rU  ra  rb  rc  rd  ru   r`   rY  s                            rm   reply_voiceMessage.reply_voice
  s     n 594O4Oe05
 /
++ !99'CTU\\^..!57%%'+%!!(C-+/#'#>#>/!5+ / 
 
 	
	/

s"   A:A6AA:1A82A:8A:)
r#  rL  r   r   rU  ra  rb  rc  rd  ru   latitude	longitudelive_periodhorizontal_accuracyheadingproximity_alert_radiusc       
            #    U R                  UUX5      I Sh  vN u  nnU R                  UU
5      n
U R                  5       R                  UUUUUUUUUUUUUUUUUU	U
U R                  UUS9I Sh  vN $  N] N7f)a.  Shortcut for::

     await bot.send_location(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_location`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r  r  rf  ra   r   ra  rb  rc  rd  r   r  ru   r  r  r  rL  rg  r   r   rh  ri  )rZ  r^  r'  send_locationr   )r{   r  r  rf  r   r  r  r  r  rg  r   ra   rh  ri  r#  rL  r   r   rU  ra  rb  rc  rd  ru   r`   rY  s                             rm   reply_locationMessage.reply_location
  s     p 594O4Oe05
 /
++ !99'CTU\\^11!57%%'+%#! 3#9(C+/#'#>#>/!5- 2 
 
 	
	/

r  )
r#  rL  r   r   rU  ra  rb  rc  rd  ru   addressfoursquare_idfoursquare_typegoogle_place_idgoogle_place_typec       
            #    U R                  UUUU5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUUUU	U
UUUU R                  UUS9I Sh  vN $  N_ N7f)a(  Shortcut for::

     await bot.send_venue(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_venue`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r  r  r  r  r  rf  ra   r   ra  rb  rc  rd  r   r  ru   r  r  rL  rg  r   r   rh  ri  )rZ  r^  r'  
send_venuer   )r{   r  r  r  r  r  rf  r   r  r  r  rg  r   ra   rh  ri  r#  rL  r   r   rU  ra  rb  rc  rd  ru   r`   rY  s                               rm   reply_venueMessage.reply_venueP  s     t 594O4Oe02B5
 /
++ !99'CTU\\^..'!57%%'+%+!+/(C+/#'#>#>/!51 / 
 
 	
	/

r  )
r#  rL  r   r   rU  ra  rb  rc  rd  ru   phone_number
first_name	last_namevcardc       
            #    U R                  UXU	5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUUUUUUUUU R                  U
US9I Sh  vN $  N[ N7f)a,  Shortcut for::

     await bot.send_contact(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_contact`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r  r  r  rf  ra   r   ra  rb  rc  rd  r   r  ru   rL  rg  r   r   rh  ri  )rZ  r^  r'  send_contactr   )r{   r  r  r  rf  r   r  rg  r   ra   rh  ri  r#  rL  r   r   rU  ra  rb  rc  rd  ru   r`   rY  s                           rm   reply_contactMessage.reply_contact  s     l 594O4Oe2B5
 /
++ !99'CTU\\^00%!!57%%'+%!(C+/#'#>#>/!5) 1 
 
 	
	/

ro  questionoptionsrW   is_anonymousr  allows_multiple_answerscorrect_option_id	is_closedexplanationexplanation_parse_modeopen_period
close_dateexplanation_entitiesquestion_parse_modequestion_entitiesc       	           #    U R                  UUUU5      I Sh  vN u  nn U R                  UU5      nU R                  5       R                  " S0 SU_SU_SU_SU_SU_SU_SU_S	U_S
U_SU _SU	_SU_SU_SU_SU_SU
_SU_SU_SU_SU_SU_SU_SU_SU_SU R                  _SU_SU_SU_SU_6I Sh  vN $  N N7f) a&  Shortcut for::

     await bot.send_poll(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_poll`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

Nr`   r  r  r  r  r  r  r  rf  ra   r   ra  rb  rc  rd  r  r  r  r  ru   rL  r  rg  r   r   r  r  rh  ri  rb   )rZ  r^  r'  	send_pollr   )!r{   r  r  r  r  r  r  r  rf  r   r  r  r  r  r  rg  r   ra   r  r  rh  ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r`   rY  s!                                    rm   
reply_pollMessage.reply_poll  s    ~ 594O4Oe02B5
 /
++ !99'CTU\\^-- 


 
 &	

 
 %<
 0
  
 "6
 8
 &
 &
 (
 ,
 &
  $!
" $:#
$ $%
& "'
( ")
* )D+
, "6-
. ,/
0 01
2 $(#>#>3
4 !45
6 07
8 09
: "6;
 
 	
	/

s"   B?B;BB?6B=7B?=B?c	       	            #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUU
UUU R                  UUS9I Sh  vN $  NW N7f)a&  Shortcut for::

     await bot.send_dice(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_dice`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   rf  ra   r   ra  rb  rc  rd  r  ru   rL  rg  r   r   rh  ri  )rZ  r^  r'  	send_dicer   )r{   rf  r   r  rg  r   ra   rh  ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r`   rY  s                       rm   
reply_diceMessage.reply_dice]  s     d 594O4O05
 /
++ !99'CTU\\^--!57%%'+%!(C+/#'#>#>/!5! . 
 
 	
	/

"   A4A0AA4+A2,A42A4)ra  rb  rc  rd  ru   actionc                   #    U R                  5       R                  U R                  U R                  U R                  U5      UUUUUUU R                  S9	I Sh  vN $  N7f)a  Shortcut for::

     await bot.send_chat_action(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_chat_action`.

.. versionchanged:: 21.1
        |reply_same_thread|

.. versionadded:: 13.2

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.

)	r`   r   r  ra  rb  rc  rd  ru   r   N)r'  send_chat_actionr`   r^  r   )r{   r  r   ra  rb  rc  rd  ru   s           rm   reply_chat_actionMessage.reply_chat_action  sg     @ \\^44LL";;DLLJ[\%'+%!#'#>#> 5 

 

 
	
 

s   AA AA game_short_namer   c	       	            #    U R                  XX5      I Sh  vN u  nnU R                  UU5      nU R                  5       R                  UUUUUUUUUUU
UUU R                  UUS9I Sh  vN $  NW N7f)a>  Shortcut for::

     await bot.send_game(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         business_connection_id=self.business_connection_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_game`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

.. versionadded:: 13.2

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

N)r`   r  rf  ra   r   ra  rb  rc  rd  ru   rL  rg  r   r   rh  ri  )rZ  r^  r'  	send_gamer   )r{   r  rf  r   rg  r   ra   rh  ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r`   rY  s                       rm   
reply_gameMessage.reply_game  s     h 594O4O05
 /
++ !99'CTU\\^--+!57%%'+%!(C+/#'#>#>/!5! . 
 
 	
	/

r  descriptionpayloadprovider_tokencurrencypricesrX   start_parameter	photo_url
photo_sizephoto_widthphoto_height	need_nameneed_phone_number
need_emailneed_shipping_addressis_flexibleprovider_datasend_phone_number_to_providersend_email_to_providermax_tip_amountsuggested_tip_amountsc       	           #    U R                  U UUU5      I Sh  vN u  n&n'U R                  U&U5      nU R                  5       R                  " S%0 SU&_SU_SU_SU_SU_SU_SU_S	U_S
U_SU	_SU
_SU_SU_SU_SU_SU_SU_SU_SU'_SU_SU_SU_SU_SU!_SU"_SU#_SU$_SU%_SU_SU_S U_S!U_S"U_S#U_S$U_6I Sh  vN $  N N7f)&a  Shortcut for::

     await bot.send_invoice(
         update.effective_message.chat_id,
         message_thread_id=update.effective_message.message_thread_id,
         *args,
         **kwargs,
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_invoice`.

.. versionchanged:: 21.1
        |reply_same_thread|

Warning:
    As of API 5.2 :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>`
    is an optional argument and therefore the
    order of the arguments had to be changed. Use keyword arguments to make sure that the
    arguments are passed correctly.

.. versionadded:: 13.2

.. versionchanged:: 13.5
    As of Bot API 5.2, the parameter
    :paramref:`start_parameter <telegram.Bot.send_invoice.start_parameter>` is optional.

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.Message`: On success, instance representing the message posted.

Nr`   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rf  ra   r   r  r  r  ra  rb  rc  rd  ru   rL  r  r  rg  r   rh  ri  rb   )rZ  r^  r'  send_invoice)(r{   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rf  r   r  r  r  r  r  rg  r   ra   rh  ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r`   rY  s(                                           rm   reply_invoiceMessage.reply_invoice  s    b 594O4Oe02B5
 /
++ !99'CTU\\^00 $
$
$
 $$
 	$

 *$
 $
 $
 ,$
  $
 "$
 $$
 &$
  $
 0$
 "$
  #8!$
" $#$
$ "6%$
& 8'$
( &)$
* (+$
, +H-$
. $:/$
0 &1$
2 (3$
4 ,5$
6 &7$
8 "9$
: )D;$
< *=$
> #8?$
@ ,A$
B 0C$
D 0E$
F "6G$
 $
 $	
	/
$
s"   CCB#C>C?CCc                   #    U R                  5       R                  UU R                  U R                  UUUUUUUU	S9I Sh  vN $  N7f)a  Shortcut for::

     await bot.forward_message(
         from_chat_id=update.effective_message.chat_id,
         message_id=update.effective_message.message_id,
         *args,
         **kwargs
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.forward_message`.

Note:
    Since the release of Bot API 5.5 it can be impossible to forward messages from
    some chats. Use the attributes :attr:`telegram.Message.has_protected_content` and
    :attr:`telegram.ChatFullInfo.has_protected_content` to check this.

    As a workaround, it is still possible to use :meth:`copy`. However, this
    behaviour is undocumented and might be changed by Telegram.

Returns:
    :class:`telegram.Message`: On success, instance representing the message forwarded.

)r`   from_chat_idrs   rf  rg  r   ra  rb  rc  rd  ru   N)r'  forward_messager`   rs   )
r{   r`   rf  rg  r   ra  rb  rc  rd  ru   s
             rm   forwardMessage.forward  sY     H \\^33!5+/%'+%! 4 
 
 	
 
s   ?AAA)r#  rL  ra  rb  rc  rd  ru   rY   c                   #    U R                  5       R                  UU R                  U R                  UUUUUU	UUUUUUUUUU
US9I Sh  vN $  N7f)a  Shortcut for::

     await bot.copy_message(
         chat_id=chat_id,
         from_chat_id=update.effective_message.chat_id,
         message_id=update.effective_message.message_id,
         *args,
         **kwargs
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

Returns:
    :class:`telegram.MessageId`: On success, returns the MessageId of the sent message.

)r`   r  rs   r   re  r   rf  r#  ra   rL  r   ra  rb  rc  rd  ru   rg  r   r   ri  N)r'  copy_messager`   rs   )r{   r`   r   re  r   rf  r   rg  r   ra   r   ri  r#  rL  ra  rb  rc  rd  ru   s                      rm   copyMessage.copy  st     L \\^00!-!5 3-(C%%'+%!+/%=!5) 1 
 
 	
 
   AA
AAr  c       	            #    U R                  UXU
5      I Sh  vN u  nnU R                  UU	5      n	U R                  5       R                  UUUUUUUUUUUUUUUUU	UUS9I Sh  vN $  NP N7f)a'  Shortcut for::

     await bot.copy_message(
         chat_id=message.chat.id,
         message_thread_id=update.effective_message.message_thread_id,
         message_id=message_id,
         *args,
         **kwargs
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.copy_message`.

.. versionchanged:: 21.1
        |reply_same_thread|

Keyword Args:
    quote (:obj:`bool`, optional): |reply_quote|

        .. versionadded:: 13.1
        .. deprecated:: 20.8
            This argument is deprecated in favor of :paramref:`do_quote`
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

        .. versionadded:: 20.8

Returns:
    :class:`telegram.MessageId`: On success, returns the MessageId of the sent message.

N)r`   r  rs   r   re  r   rf  ra   rL  r   ra  rb  rc  rd  ru   rg  r   r   ri  )rZ  r^  r'  r	  )r{   r  rs   r   re  r   rf  r   rg  r   ra   r   ri  r#  rL  r   rU  ra  rb  rc  rd  ru   r`   rY  s                           rm   
reply_copyMessage.reply_copy  s     n 594O4Oe2B5
 /
++ !99'CTU\\^00%!!-!57(C%%'+%!+/%=!5' 1 
 
 	
	/

s"   A.A*AA.%A,&A.,A.)r#  rL  rU  ra  rb  rc  rd  ru   
star_countrV   c                   #    U R                  USX5      I Sh  vN u  nnU R                  5       R                  UUUUUU R                  UUUUUU
UUUUUUUUS9I Sh  vN $  NI N7f)a  Shortcut for::

     await bot.send_paid_media(
         chat_id=message.chat.id,
         business_connection_id=message.business_connection_id,
         *args,
         **kwargs
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.send_paid_media`.

.. versionadded:: 21.7

Keyword Args:
    do_quote (:obj:`bool` | :obj:`dict`, optional): |do_quote|
        Mutually exclusive with :paramref:`quote`.

Returns:
    :class:`telegram.Message`: On success, the sent message is returned.

N)r`   r   r  r~  r  r   re  r   rf  ra   rL  r   ra  rb  rc  rd  ru   rg  r   ri  )rZ  r'  send_paid_mediar   )r{   r  r~  r   re  r   r   rf  rg  ra   r   r  ri  r#  rL  rU  ra  rb  rc  rd  ru   r`   rY  s                          rm   reply_paid_mediaMessage.reply_paid_mediaX  s     Z 594O4Od/5
 /
++ \\^33!#'#>#>!-!57(C%%'+%!+%=!5) 4 
 
 	
/

s"   A'A#AA'A%A'%A')r`  ra  rb  rc  rd  ru   c                   #    U R                  5       R                  U R                  U R                  UUUUUUUU	U
UUSU R                  S9I Sh  vN $  N7f)a  Shortcut for::

     await bot.edit_message_text(
         chat_id=message.chat_id,
         message_id=message.message_id,
         business_connection_id=message.business_connection_id,
         *args, **kwargs
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.edit_message_text`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Message`: On success, if edited message is sent by the bot, the
    edited Message is returned, otherwise ``True`` is returned.

N)r`   rs   r   re  r`  r   r   ra  rb  rc  rd  ru   r   inline_message_idr   )r'  edit_message_textr`   rs   r   )r{   r   re  r   r   r   r`  ra  rb  rc  rd  ru   s               rm   	edit_textMessage.edit_text  sk     N \\^55LL!%=!5%%'+%!"#'#>#> 6 
 
 	
 
s   AAAAc                   #    U R                  5       R                  U R                  U R                  UUUUUU	UU
USUU R                  S9I Sh  vN $  N7f)a%  Shortcut for::

     await bot.edit_message_caption(
         chat_id=message.chat_id,
         message_id=message.message_id,
         business_connection_id=message.business_connection_id,
         *args, **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.edit_message_caption`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Message`: On success, if edited message is sent by the bot, the
    edited Message is returned, otherwise ``True`` is returned.

N)r`   rs   r   r   ra  rb  rc  rd  re  ru   r   r  r   r   )r'  edit_message_captionr`   rs   r   )r{   r   r   re  r   r   ra  rb  rc  rd  ru   s              rm   edit_captionMessage.edit_caption  sh     N \\^88LL%%'+%!!-"%=#'#>#> 9 
 
 	
 
s   AAAArQ   c                   #    U R                  5       R                  UU R                  U R                  UUUUUUSU R                  S9I Sh  vN $  N7f)a&  Shortcut for::

     await bot.edit_message_media(
         chat_id=message.chat_id,
         message_id=message.message_id,
         business_connection_id=message.business_connection_id,
         *args, **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.edit_message_media`.

Note:
    You can only edit messages that the bot sent itself(i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Message`: On success, if edited message is not an inline message, the
    edited Message is returned, otherwise ``True`` is returned.

N)r~  r`   rs   r   ra  rb  rc  rd  ru   r  r   )r'  edit_message_mediar`   rs   r   )r{   r~  r   ra  rb  rc  rd  ru   s           rm   
edit_mediaMessage.edit_media  s_     H \\^66LL%%'+%!"#'#>#> 7 
 
 	
 
s   A	AAAc                   #    U R                  5       R                  U R                  U R                  UUUUUUSU R                  S9
I Sh  vN $  N7f)a.  Shortcut for::

     await bot.edit_message_reply_markup(
         chat_id=message.chat_id,
         message_id=message.message_id,
         business_connection_id=message.business_connection_id,
         *args, **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.edit_message_reply_markup`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Message`: On success, if edited message is sent by the bot, the
    edited Message is returned, otherwise ``True`` is returned.
N
r`   rs   r   ra  rb  rc  rd  ru   r  r   )r'  edit_message_reply_markupr`   rs   r   r{   r   ra  rb  rc  rd  ru   s          rm   edit_reply_markupMessage.edit_reply_markupB  s\     D \\^==LL%%'+%!"#'#>#> > 
 
 	
 
r  )r   ra  rb  rc  rd  ru   c                   #    U R                  5       R                  U R                  U R                  UUUUU	U
UUUUUUUSU R                  S9I Sh  vN $  N7f)a3  Shortcut for::

     await bot.edit_message_live_location(
         chat_id=message.chat_id,
         message_id=message.message_id,
         business_connection_id=message.business_connection_id,
         *args, **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.edit_message_live_location`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Message`: On success, if edited message is sent by the bot, the
    edited Message is returned, otherwise :obj:`True` is returned.
N)r`   rs   r  r  r   r   ra  rb  rc  rd  ru   r  r  r  r  r  r   )r'  edit_message_live_locationr`   rs   r   )r{   r  r  r   r  r  r  r  r   ra  rb  rc  rd  ru   s                 rm   edit_live_locationMessage.edit_live_locationq  sq     R \\^>>LL%%'+%! 3#9#"#'#>#># ? 
 
 	
 
s   AAAAc                   #    U R                  5       R                  U R                  U R                  UUUUUUSU R                  S9
I Sh  vN $  N7f)a3  Shortcut for::

     await bot.stop_message_live_location(
         chat_id=message.chat_id,
         message_id=message.message_id,
         business_connection_id=message.business_connection_id,
         *args, **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.stop_message_live_location`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Message`: On success, if edited message is sent by the bot, the
    edited Message is returned, otherwise :obj:`True` is returned.
Nr#  )r'  stop_message_live_locationr`   rs   r   r%  s          rm   stop_live_locationMessage.stop_live_location  s\     D \\^>>LL%%'+%!"#'#>#> ? 
 
 	
 
r  user_idscoreforcedisable_edit_messagec                   #    U R                  5       R                  U R                  U R                  UUUUUUUUU	SS9I Sh  vN $  N7f)a|  Shortcut for::

     await bot.set_game_score(
         chat_id=message.chat_id, message_id=message.message_id, *args, **kwargs
     )

For the documentation of the arguments, please see :meth:`telegram.Bot.set_game_score`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

Returns:
    :class:`telegram.Message`: On success, if edited message is sent by the bot, the
    edited Message is returned, otherwise :obj:`True` is returned.
N)r`   rs   r0  r1  r2  r3  ra  rb  rc  rd  ru   r  )r'  set_game_scorer`   rs   )
r{   r0  r1  r2  r3  ra  rb  rc  rd  ru   s
             rm   r5  Message.set_game_score  s[     < \\^22LL!5%'+%!" 3 
 
 	
 
s   A A	AA	)rL   .c                   #    U R                  5       R                  U R                  U R                  UUUUUUSS9	I Sh  vN $  N7f)a  Shortcut for::

     await bot.get_game_high_scores(
         chat_id=message.chat_id, message_id=message.message_id, *args, **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.get_game_high_scores`.

Note:
    You can only edit messages that the bot sent itself (i.e. of the ``bot.send_*`` family
    of methods) or channel posts, if the bot is an admin in that channel. However, this
    behaviour is undocumented and might be changed by Telegram.

Returns:
    tuple[:class:`telegram.GameHighScore`]
N)	r`   rs   r0  ra  rb  rc  rd  ru   r  )r'  get_game_high_scoresr`   rs   )r{   r0  ra  rb  rc  rd  ru   s          rm   r8  Message.get_game_high_scores
  sR     6 \\^88LL%'+%!" 9 

 

 
	
 

   =AA Ac          
         #    U R                  5       R                  U R                  U R                  UUUUUS9I Sh  vN $  N7f)a$  Shortcut for::

      await bot.delete_message(
          chat_id=message.chat_id, message_id=message.message_id, *args, **kwargs
      )

For the documentation of the arguments, please see :meth:`telegram.Bot.delete_message`.

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.

)r`   rs   ra  rb  rc  rd  ru   N)r'  delete_messager`   rs   r{   ra  rb  rc  rd  ru   s         rm   deleteMessage.delete1  sL     * \\^22LL%'+%! 3 
 
 	
 
   ;AAAc                   #    U R                  5       R                  U R                  U R                  UUUUUUU R                  S9	I Sh  vN $  N7f)a  Shortcut for::

      await bot.stop_poll(
          chat_id=message.chat_id,
          message_id=message.message_id,
          business_connection_id=message.business_connection_id,
          *args, **kwargs
      )

For the documentation of the arguments, please see :meth:`telegram.Bot.stop_poll`.

.. versionchanged:: 21.4
   Now also passes :attr:`business_connection_id`.

Returns:
    :class:`telegram.Poll`: On success, the stopped Poll with the final results is
    returned.

)	r`   rs   r   ra  rb  rc  rd  ru   r   N)r'  	stop_pollr`   rs   r   r%  s          rm   rB  Message.stop_pollP  sX     : \\^--LL%%'+%!#'#>#> . 

 

 
	
 

   AA	A
Ac                   #    U R                  5       R                  U R                  U R                  U R                  UUUUUUS9	I Sh  vN $  N7f)a  Shortcut for::

      await bot.pin_chat_message(
          chat_id=message.chat_id,
          message_id=message.message_id,
          business_connection_id=message.business_connection_id,
          *args, **kwargs
      )

For the documentation of the arguments, please see :meth:`telegram.Bot.pin_chat_message`.

.. versionchanged:: 21.5
    Now also passes :attr:`business_connection_id` to
    :meth:`telegram.Bot.pin_chat_message`.

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.

)	r`   rs   r   rf  ra  rb  rc  rd  ru   N)r'  pin_chat_messager`   rs   r   )r{   rf  ra  rb  rc  rd  ru   s          rm   pinMessage.piny  sX     : \\^44LL#'#>#>!5%'+%! 5 

 

 
	
 

rD  c                   #    U R                  5       R                  U R                  U R                  U R                  UUUUUS9I Sh  vN $  N7f)a  Shortcut for::

      await bot.unpin_chat_message(
          chat_id=message.chat_id,
          message_id=message.message_id,
          business_connection_id=message.business_connection_id,
          *args, **kwargs
      )

For the documentation of the arguments, please see :meth:`telegram.Bot.unpin_chat_message`.

.. versionchanged:: 21.5
    Now also passes :attr:`business_connection_id` to
    :meth:`telegram.Bot.pin_chat_message`.

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.

)r`   rs   r   ra  rb  rc  rd  ru   N)r'  unpin_chat_messager`   rs   r   r=  s         rm   unpinMessage.unpin  sU     8 \\^66LL#'#>#>%'+%! 7 	
 	
 		
 	
s   AAA	Anameicon_custom_emoji_idc                   #    U R                  5       R                  U R                  U R                  UUUUUUUS9	I Sh  vN $  N7f)aQ  Shortcut for::

     await bot.edit_forum_topic(
        chat_id=message.chat_id, message_thread_id=message.message_thread_id, *args,
        **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.edit_forum_topic`.

.. versionadded:: 20.0

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.
)	r`   r   rM  rN  ra  rb  rc  rd  ru   N)r'  edit_forum_topicr`   r   )r{   rM  rN  ra  rb  rc  rd  ru   s           rm   rP  Message.edit_forum_topic  sT     4 \\^44LL"44!5%'+%! 5 

 

 
	
 

r:  c          
         #    U R                  5       R                  U R                  U R                  UUUUUS9I Sh  vN $  N7f)aS  Shortcut for::

     await bot.close_forum_topic(
        chat_id=message.chat_id, message_thread_id=message.message_thread_id, *args,
        **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.close_forum_topic`.

.. versionadded:: 20.0

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.
r`   r   ra  rb  rc  rd  ru   N)r'  close_forum_topicr`   r   r=  s         rm   rT  Message.close_forum_topic  sN     0 \\^55LL"44%'+%! 6 
 
 	
 
r@  c          
         #    U R                  5       R                  U R                  U R                  UUUUUS9I Sh  vN $  N7f)aT  Shortcut for::

    await bot.reopen_forum_topic(
        chat_id=message.chat_id, message_thread_id=message.message_thread_id, *args,
        **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.reopen_forum_topic`.

.. versionadded:: 20.0

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.
rS  N)r'  reopen_forum_topicr`   r   r=  s         rm   rW  Message.reopen_forum_topic  N     0 \\^66LL"44%'+%! 7 
 
 	
 
r@  c          
         #    U R                  5       R                  U R                  U R                  UUUUUS9I Sh  vN $  N7f)aU  Shortcut for::

     await bot.delete_forum_topic(
        chat_id=message.chat_id, message_thread_id=message.message_thread_id, *args,
        **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.delete_forum_topic`.

.. versionadded:: 20.0

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.
rS  N)r'  delete_forum_topicr`   r   r=  s         rm   r[  Message.delete_forum_topic3  rY  r@  c          
         #    U R                  5       R                  U R                  U R                  UUUUUS9I Sh  vN $  N7f)am  Shortcut for::

     await bot.unpin_all_forum_topic_messages(
        chat_id=message.chat_id, message_thread_id=message.message_thread_id, *args,
        **kwargs
     )

For the documentation of the arguments, please see
:meth:`telegram.Bot.unpin_all_forum_topic_messages`.

.. versionadded:: 20.0

Returns:
    :obj:`bool`: On success, :obj:`True` is returned.
rS  N)r'  unpin_all_forum_topic_messagesr`   r   r=  s         rm   r^  &Message.unpin_all_forum_topic_messagesU  sO     0 \\^BBLL"44%'+%! C 
 
 	
 
r@  reactionr[   is_bigc                   #    U R                  5       R                  U R                  U R                  UUUUUUUS9	I Sh  vN $  N7f)a;  Shortcut for::

     await bot.set_message_reaction(chat_id=message.chat_id, message_id=message.message_id,
        *args, **kwargs)

For the documentation of the arguments, please see
:meth:`telegram.Bot.set_message_reaction`.

.. versionadded:: 20.8

Returns:
    :obj:`bool` On success, :obj:`True` is returned.
)	r`   rs   r`  ra  ra  rb  rc  rd  ru   N)r'  set_message_reactionr`   rs   )r{   r`  ra  ra  rb  rc  rd  ru   s           rm   set_reactionMessage.set_reactionw  sR     4 \\^88LL%'+%! 9 

 

 
	
 

r:  rD  c                 f    U R                   (       d  [        S5      e[        U R                   U5      $ )aB  Returns the text from a given :class:`telegram.MessageEntity`.

Note:
    This method is present because Telegram calculates the offset and length in
    UTF-16 codepoint pairs, which some versions of Python don't handle automatically.
    (That is, you can't just slice ``Message.text`` with the offset and length.)

Args:
    entity (:class:`telegram.MessageEntity`): The entity to extract the text from. It must
        be an entity that belongs to this message.

Returns:
    :obj:`str`: The text of the given entity.

Raises:
    RuntimeError: If the message has no text.

zThis Message has no 'text'.)r   r0  r6   r{   rD  s     rm   parse_entityMessage.parse_entity  s(    & yy<==#DIIv66rl   c                 f    U R                   (       d  [        S5      e[        U R                   U5      $ )aH  Returns the text from a given :class:`telegram.MessageEntity`.

Note:
    This method is present because Telegram calculates the offset and length in
    UTF-16 codepoint pairs, which some versions of Python don't handle automatically.
    (That is, you can't just slice ``Message.caption`` with the offset and length.)

Args:
    entity (:class:`telegram.MessageEntity`): The entity to extract the text from. It must
        be an entity that belongs to this message.

Returns:
    :obj:`str`: The text of the given entity.

Raises:
    RuntimeError: If the message has no caption.

zThis Message has no 'caption'.)r   r0  r6   rg  s     rm   parse_caption_entityMessage.parse_caption_entity  s(    & ||?@@#DLL&99rl   typesc                 @    [        U R                  U R                  US9$ )a  
Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`.
It contains entities from this message filtered by their
:attr:`telegram.MessageEntity.type` attribute as the key, and the text that each entity
belongs to as the value of the :obj:`dict`.

Note:
    This method should always be used instead of the :attr:`entities` attribute, since it
    calculates the correct substring from the message text based on UTF-16 codepoints.
    See :attr:`parse_entity` for more info.

Args:
    types (list[:obj:`str`], optional): List of :class:`telegram.MessageEntity` types as
        strings. If the ``type`` attribute of an entity is contained in this list, it will
        be returned. Defaults to a list of all types. All types can be found as constants
        in :class:`telegram.MessageEntity`.

Returns:
    dict[:class:`telegram.MessageEntity`, :obj:`str`]: A dictionary of entities mapped to
    the text that belongs to them, calculated based on UTF-16 codepoints.

rm  )r5   r   r   r{   rm  s     rm   parse_entitiesMessage.parse_entities  s    . &diieLLrl   c                 @    [        U R                  U R                  US9$ )a  
Returns a :obj:`dict` that maps :class:`telegram.MessageEntity` to :obj:`str`.
It contains entities from this message's caption filtered by their
:attr:`telegram.MessageEntity.type` attribute as the key, and the text that each entity
belongs to as the value of the :obj:`dict`.

Note:
    This method should always be used instead of the :attr:`caption_entities` attribute,
    since it calculates the correct substring from the message text based on UTF-16
    codepoints. See :attr:`parse_entity` for more info.

Args:
    types (list[:obj:`str`], optional): List of :class:`telegram.MessageEntity` types as
        strings. If the ``type`` attribute of an entity is contained in this list, it will
        be returned. Defaults to a list of all types. All types can be found as constants
        in :class:`telegram.MessageEntity`.

Returns:
    dict[:class:`telegram.MessageEntity`, :obj:`str`]: A dictionary of entities mapped to
    the text that belongs to them, calculated based on UTF-16 codepoints.

ro  )r5   r   r   rp  s     rm   parse_caption_entitiesMessage.parse_caption_entities  s    2 &dllD4I4IQVWWrl   message_texturledr.  c                    Uc  g UR                  [        R                  5      nSnSn[        UR	                  5       S S9n/ n	U GH  u  pX;   a  M  U VVs0 s H`  u  pUR
                  U
R
                  :  d  M!  UR
                  UR                  -   U
R
                  U
R                  -   ::  d  MW  X:w  d  M^  X_Mb     nnnU	R                  [        UR                  5       5      5        U(       a  U R                  XX:R
                  S9nO[        U5      nU
R                  [        R                  :X  a  SU
R                   SU S3nGO(U
R                  [        R                   :X  a0  U
R"                  (       a  S	U
R"                  R$                   SU S3nGOU
R                  [        R&                  :X  a  U(       a  SU SU S3nGOU
R                  [        R(                  :X  a  S
U S3nGOU
R                  [        R*                  :X  a  SU S3nGO^U
R                  [        R,                  :X  a  SU S3nGO8U
R                  [        R.                  :X  a  SU S3nGOU
R                  [        R0                  :X  a  SU S3nOU
R                  [        R2                  :X  a,  U
R4                  (       a  SU
R4                   SU S3nOSU S3nOU
R                  [        R6                  :X  a  SU S3nO~U
R                  [        R8                  :X  a  SU S3nOYU
R                  [        R:                  :X  a  SU S3nO4U
R                  [        R<                  :X  a  SU
R>                   SU S3nOUnU[        XWS-  U
R
                  U-
  S-   RA                  [        R                  5      5      U-   -  nU
R
                  U-
  U
R                  -   nGM     U[        XWS-  S  RA                  [        R                  5      5      -  nU$ s  snnf ) N r   c                      U S   R                   $ Nr   r.  items    rm   <lambda>%Message._parse_html.<locals>.<lambda>      DGNNrl   r  )rw  r.  z	<a href="z">z</a>z<a href="tg://user?id=z<blockquote>z</blockquote>z<blockquote expandable>z<b>z</b>z<i>z</i>z<code>z</code>z<pre><code class="z</code></pre>z<pre>z</pre>z<u>z</u>z<s>z</s>z<span class="tg-spoiler">z</span>z<tg-emoji emoji-id="z</tg-emoji>r  )!r1  r7   r2  sorteditemsr.  r/  extendr3  keys_parse_htmlr   r  r"   	TEXT_LINKurlTEXT_MENTIONuserr   URL
BLOCKQUOTEEXPANDABLE_BLOCKQUOTEBOLDITALICCODEPRElanguage	UNDERLINESTRIKETHROUGHSPOILERCUSTOM_EMOJIcustom_emoji_iddecode)r   rv  r   rw  r.  utf_16_text	html_textlast_offsetsorted_entitiesparsed_entitiesrD  r   etnested_entitiesescaped_textinserts                    rm   r  Message._parse_html  s    ")),*@*@A	 !17RS+LF( .-FQ88v}},  HHqxx'6==6==+HH  K	 -   ""4(<(<(>#?@"}}  /    &d|{{m555$VZZL<.E : ::v{{1&++..1AL>QUV 1 11e$\N"\N$G 8 88'~]C C CC2<.N 2 22|nD1 4 44|nD1 2 22!,w7 1 11??1&//1B"\NR_`F$\N&9F 7 77|nD1 ; ;;|nD1 5 554\N'J : ::/0F0F/Gr,Wbc%
 a6==63IQ2NOVV$..
 I !--&06==@KA ,F 	VKa(9:AA,BXBXYZZ	Cs    P;2P1P8Pc                 T    U R                  U R                  U R                  5       SS9$ )a  Creates an HTML-formatted string from the markup entities found in the message.

Use this if you want to retrieve the message text with the entities formatted as HTML in
the same way the original message was formatted.

Warning:
    |text_html|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as HTML.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message text with entities formatted as HTML.

Frw  r  r   rq  r   s    rm   	text_htmlMessage.text_htmlZ  s)    . 		4+>+>+@NNrl   c                 T    U R                  U R                  U R                  5       SS9$ )a$  Creates an HTML-formatted string from the markup entities found in the message.

Use this if you want to retrieve the message text with the entities formatted as HTML.
This also formats :attr:`telegram.MessageEntity.URL` as a hyperlink.

Warning:
    |text_html|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as HTML.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message text with entities formatted as HTML.

Tr  r  r   s    rm   text_html_urledMessage.text_html_urleds  s)    . 		4+>+>+@MMrl   c                 T    U R                  U R                  U R                  5       SS9$ )a1  Creates an HTML-formatted string from the markup entities found in the message's
caption.

Use this if you want to retrieve the message caption with the caption entities formatted as
HTML in the same way the original message was formatted.

Warning:
    |text_html|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as HTML.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message caption with caption entities formatted as HTML.
Fr  r  r   rt  r   s    rm   caption_htmlMessage.caption_html  s*    . d.I.I.KSXYYrl   c                 T    U R                  U R                  U R                  5       SS9$ )aC  Creates an HTML-formatted string from the markup entities found in the message's
caption.

Use this if you want to retrieve the message caption with the caption entities formatted as
HTML. This also formats :attr:`telegram.MessageEntity.URL` as a hyperlink.

Warning:
    |text_html|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as HTML.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message caption with caption entities formatted as HTML.
Tr  r  r   s    rm   caption_html_urledMessage.caption_html_urled  s*    . d.I.I.KSWXXrl   versionc           	      8  ^ US:X  a  [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  4 HU  m[        U4S jU 5       5      (       d  M  TR                  R                  5       R                  SS5      n[        U S35      e   Uc  g UR                  [        R                  5      nSnSn	[        UR!                  5       S S	9n
/ nU
 GH_  u  pX;   a  M  U
 VVs0 s H`  u  pUR"                  UR"                  :  d  M!  UR"                  UR$                  -   UR"                  UR$                  -   ::  d  MW  X:w  d  M^  X_Mb     nnnUR'                  [)        UR+                  5       5      5        U(       a/  US
:  a  [        S5      eU R-                  UUUUR"                  US9nO	[/        XS9nUR0                  [         R2                  :X  aA  US:X  a  UR4                  nO#[/        UR4                  U[         R2                  S9nSU SU S3nGOUR0                  [         R6                  :X  a0  UR8                  (       a  SU SUR8                  R:                   S3nGOqUR0                  [         R<                  :X  a  U(       a  US:X  a  UOUnSU SU S3nGO7UR0                  [         R>                  :X  a  SU S3nGOUR0                  [         R@                  :X  a  SU S3nGOUR0                  [         RB                  :X  a   S[/        X[         RB                  5       S3nGOUR0                  [         RD                  :X  a^  [/        X[         RD                  S9nURF                  (       a  SURF                   S3nOURI                  S5      (       a  SnOSnU U S3nGO1UR0                  [         R                  :X  a  SU S3nGOUR0                  [         R
                  :X  a  SU S3nOUR0                  [         R                  :X  a  SU S3nOUR0                  [         R                  [         R                  4;   aF  SSRK                  URM                  5       5      -   nUR0                  [         R                  :X  a  U S3nOMUR0                  [         R                  :X  a-  [/        URN                  U[         R                  S9nSU SU S3nOUnU[/        XyS
-  UR"                  U-
  S
-   RQ                  [        R                  5      US9U-   -  nUR"                  U-
  UR$                  -   n	GMb     U[/        XyS
-  S  RQ                  [        R                  5      US9-  nU$ s  snnf ) Nr-  c              3   @   >#    U  H  oR                   T:H  v   M     g 7fr]  )r  ).0rD  entity_types     rm   	<genexpr>*Message._parse_markdown.<locals>.<genexpr>  s     If{{k1s   _ z2 entities are not supported for Markdown version 1ry  r   c                      U S   R                   $ r{  r|  r}  s    rm   r  )Message._parse_markdown.<locals>.<lambda>  r  rl   r  r  z8Nested entities are not supported for Markdown version 1)rw  r.  r  )r  )r  r  [z]()z](tg://user?id=*`z```
\z```
__~z||>z
>z![z](tg://emoji?id=))r"   r  r  r  r  r  r  anyrM  r  replacer7  r1  r7   r2  r  r  r.  r/  r  r3  r  _parse_markdownrH   r  r  r  r  r  r   r  r  r  r  r  r  
startswithjoin
splitlinesr  r  )r   rv  r   rw  r  r.  rM  r  markdown_textr  r  r  rD  r   r  r  r  r  r  r  r  codeprefixr  r  s                           @rm   r  Message._parse_markdown  s    a<33((**%%++''  IIII&++113;;CED$v-_%`aa  ")),*@*@A !17RS+LF( .-FQ88v}},  HHqxx'6==6==+HH  K	 -   ""4(<(<(>#?@Q;$%_``"22#!==#  3    /tE{{m555a< **C *

GAXAXC \N"SE3 : ::v{{\N/&++..9IK 1 11e&!|tTF"TF!, 2 22\N!, 4 44\N!, 2 22_TM<N<NOPPQR 1 11&t-J[J[\??"6??"326F__T**"F$F"8D6- 7 77l^2. ; ;;\N!, 5 55l^2.!9!9=;^;^ __uzz,*A*A*CDD;;-"E"EE &xr]F : :: #2**# - : :#
 l^+;O;LAN%
 a6==63IQ2NOVV$.. $	 M !--&06==@K{ ,@ 	a)*11,2H2HI
 	

 Cs    V72V-V4Vc                 T    U R                  U R                  U R                  5       SS9$ )a0  Creates an Markdown-formatted string from the markup entities found in the message
using :class:`telegram.constants.ParseMode.MARKDOWN`.

Use this if you want to retrieve the message text with the entities formatted as Markdown
in the same way the original message was formatted.

Warning:
    |text_markdown|

Note:
    :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
    Telegram for backward compatibility. You should use :meth:`text_markdown_v2` instead.

.. versionchanged:: 20.5
    |custom_emoji_no_md1_support|

.. versionchanged:: 20.8
    |blockquote_no_md1_support|

Returns:
    :obj:`str`: Message text with entities formatted as Markdown.

Raises:
    :exc:`ValueError`: If the message contains underline, strikethrough, spoiler,
        blockquote or nested entities.

Fr  r  r   rq  r   s    rm   text_markdownMessage.text_markdownE  s)    : ##DIIt/B/B/DE#RRrl   c                 V    U R                  U R                  U R                  5       SSS9$ )a`  Creates an Markdown-formatted string from the markup entities found in the message
using :class:`telegram.constants.ParseMode.MARKDOWN_V2`.

Use this if you want to retrieve the message text with the entities formatted as Markdown
in the same way the original message was formatted.

Warning:
    |text_markdown|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as Markdown V2.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message text with entities formatted as Markdown.
Fr  rw  r  r  r   s    rm   text_markdown_v2Message.text_markdown_v2d  s,    . ##DIIt/B/B/DE[\#]]rl   c                 T    U R                  U R                  U R                  5       SS9$ )aL  Creates an Markdown-formatted string from the markup entities found in the message
using :class:`telegram.constants.ParseMode.MARKDOWN`.

Use this if you want to retrieve the message text with the entities formatted as Markdown.
This also formats :attr:`telegram.MessageEntity.URL` as a hyperlink.

Warning:
    |text_markdown|

Note:
    :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
    Telegram for backward compatibility. You should use :meth:`text_markdown_v2_urled`
    instead.

.. versionchanged:: 20.5
    |custom_emoji_no_md1_support|

.. versionchanged:: 20.8
    |blockquote_no_md1_support|

Returns:
    :obj:`str`: Message text with entities formatted as Markdown.

Raises:
    :exc:`ValueError`: If the message contains underline, strikethrough, spoiler,
        blockquote or nested entities.

Tr  r  r   s    rm   text_markdown_urledMessage.text_markdown_urled}  s)    < ##DIIt/B/B/DD#QQrl   c                 V    U R                  U R                  U R                  5       SSS9$ )ar  Creates an Markdown-formatted string from the markup entities found in the message
using :class:`telegram.constants.ParseMode.MARKDOWN_V2`.

Use this if you want to retrieve the message text with the entities formatted as Markdown.
This also formats :attr:`telegram.MessageEntity.URL` as a hyperlink.

Warning:
    |text_markdown|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as Markdown V2.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message text with entities formatted as Markdown.
Tr  r  r  r   s    rm   text_markdown_v2_urledMessage.text_markdown_v2_urled  s,    . ##DIIt/B/B/DDZ[#\\rl   c                 T    U R                  U R                  U R                  5       SS9$ )aI  Creates an Markdown-formatted string from the markup entities found in the message's
caption using :class:`telegram.constants.ParseMode.MARKDOWN`.

Use this if you want to retrieve the message caption with the caption entities formatted as
Markdown in the same way the original message was formatted.

Warning:
    |text_markdown|

Note:
    :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
    Telegram for backward compatibility. You should use :meth:`caption_markdown_v2`
.. versionchanged:: 20.5
    |custom_emoji_no_md1_support|

.. versionchanged:: 20.8
    |blockquote_no_md1_support|

Returns:
    :obj:`str`: Message caption with caption entities formatted as Markdown.

Raises:
    :exc:`ValueError`: If the message contains underline, strikethrough, spoiler,
        blockquote or nested entities.

Fr  r  r   rt  r   s    rm   caption_markdownMessage.caption_markdown  s*    8 ##DLL$2M2M2OW\#]]rl   c                 V    U R                  U R                  U R                  5       SSS9$ )a  Creates an Markdown-formatted string from the markup entities found in the message's
caption using :class:`telegram.constants.ParseMode.MARKDOWN_V2`.

Use this if you want to retrieve the message caption with the caption entities formatted as
Markdown in the same way the original message was formatted.

Warning:
    |text_markdown|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as Markdown V2.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message caption with caption entities formatted as Markdown.
Fr  r  r  r   s    rm   caption_markdown_v2Message.caption_markdown_v2  s2    . ##LL$557ua $ 
 	
rl   c                 T    U R                  U R                  U R                  5       SS9$ )ao  Creates an Markdown-formatted string from the markup entities found in the message's
caption using :class:`telegram.constants.ParseMode.MARKDOWN`.

Use this if you want to retrieve the message caption with the caption entities formatted as
Markdown. This also formats :attr:`telegram.MessageEntity.URL` as a hyperlink.

Warning:
    |text_markdown|

Note:
    :tg-const:`telegram.constants.ParseMode.MARKDOWN` is a legacy mode, retained by
    Telegram for backward compatibility. You should use
    :meth:`caption_markdown_v2_urled` instead.

.. versionchanged:: 20.5
    |custom_emoji_no_md1_support|

.. versionchanged:: 20.8
    |blockquote_no_md1_support|

Returns:
    :obj:`str`: Message caption with caption entities formatted as Markdown.

Raises:
    :exc:`ValueError`: If the message contains underline, strikethrough, spoiler,
        blockquote or nested entities.

Tr  r  r   s    rm   caption_markdown_urledMessage.caption_markdown_urled  s*    < ##DLL$2M2M2OW[#\\rl   c                 V    U R                  U R                  U R                  5       SSS9$ )a  Creates an Markdown-formatted string from the markup entities found in the message's
caption using :class:`telegram.constants.ParseMode.MARKDOWN_V2`.

Use this if you want to retrieve the message caption with the caption entities formatted as
Markdown. This also formats :attr:`telegram.MessageEntity.URL` as a hyperlink.

Warning:
    |text_markdown|

.. versionchanged:: 13.10
   Spoiler entities are now formatted as Markdown V2.

.. versionchanged:: 20.3
   Custom emoji entities are now supported.

.. versionchanged:: 20.8
   Blockquote entities are now supported.

Returns:
    :obj:`str`: Message caption with caption entities formatted as Markdown.
Tr  r  r  r   s    rm   caption_markdown_v2_urled!Message.caption_markdown_v2_urled  s2    . ##LL$557tQ $ 
 	
rl   )Wr   ry   r   r   r   r   r   r   r   r   rq   r   r   r   r   rr   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   rs   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   )RNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr]  )NNNNNNNr   )Fr   )Fr-  r   )rc   rd   re   rf   r   rg   ri   r   r	   r   r/   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   ro   r%   r'   r   r$   r(   r   r   r)   rB   r?   r@   r!   rA   rC   r   r   r   r   r   r   rD   r+   r-   r,   r    r   r
   r#   r&   r:   rx   r   r`   r   r  r   r   r   r!  r*   r)  r=  r"   rH  r3   r<   r^   rS  rZ  r^  r=   floatrm  rs  rx  r|  r  r9   r  r  r  r  r  r  r  r  r  r  r  r8   r  r  r  r  objectr  r  r
  r  r  r  r  r   r&  r*  r.  r5  r8  r>  rB  rG  rK  rP  rT  rW  r[  r^  rd  rh  rk  r3  rW  rq  rt  r  r  r  r  r  r;   r  r  r  r  r  r  r  r  r  rk   r   r   s   @rm   r   r      s?   l
^TIv %)0415"8<@D!%'+#/3%)!%!%*.59!%%)'+!%+/(,8<,0-126/3,0.2=A%):>*.(,+/)-04#7;#"&GK&*9=59RVUY=A/304-1+/+/;?9==A9=HLLP=A,0,0!%)-<@8<8<.2=A8<'+48*.04,004.2*.8<#'37.26:mA:p *.qA:A: A: 	A:
 D>A: #9-A: H--.A: smA: 8O45A: #8O#<=A: A: 8$A: tnA: +,A: '"A:  !A:" #A:$ Y'%A:& #8D>2'A:( #)A:* '"+A:, 8$-A:. /A:0 #4.1A:2 !3A:4 !)!455A:6 $D>7A:8 %TN9A:: "*$;A:< 'tn=A:> %SM?A:@ 'smAA:B !!9:CA:D '"EA:F %%67GA:H #3-IA:J !KA:L $C=MA:N I&OA:P  -QA:R tnSA:T 34UA:V tnWA:X $YA:Z $,,C#D[A:\ d^]A:^ %%56_A:` #>2aA:b *22N)OcA:d ,44Q+ReA:f ''9:gA:h 'tniA:j  (~kA:l z*mA:n #4.oA:p $C=qA:r &&78sA:t %%56uA:v ''9:wA:x %%56yA:z %--D$E{A:| '//H&I}A:~ ''9:A:@ $D>AA:B j)CA:D EA:F :&GA:H %%89IA:J ##45KA:L ##45MA:N {+OA:P ''9:QA:R !!45SA:T $UA:V !1WA:X !YA:Z n-[A:\ %SM]A:^ !)_A:` &d^aA:b "$cA:d &n5eA:f C=gA:h #+4.iA:j ]+kA:l #?3mA:p X&qA: A:F    C   hsm  & |
8H- |
HUO |
xXaOb |
 |
| Q*	'	
Q* Q*h KOd^:B3-	/	"0 26J1J1!)#J1	sHU=##5677	8J1\  $%)486B+7W
}W
 c]W
 !sCx1	W

 &.d^W
 $C=W
 
W
r'35|!345'3 ~'3 &c]	'3
 ##45'3 
uS#X/	0'3X ,8asCxa $C=a 
#	a. %1/;.28<*6+7?K8<+//3O
 .26B37 $8<(4)5+7(4)-/O
O
 SMO
 'tn	O

 {+O
 8O45O
 "$O
 $C=O
 '';<O
 ##45O
 $C=O
 'tnO
 &c]O
 &.d^O
  #+4.!O
" ~#O
$ 5|!345%O
& uo'O
(  )O
* "%+O
, uo-O
. X&/O
0 
1O
h 0<.28<*6+7?K8<+//3T
 .26B37 $8<(4)5+7(4)--T
T
 'tnT
 {+	T

 8O45T
 "$T
 $C=T
 '';<T
 ##45T
 $C=T
 'tnT
 &c]T
 &.d^T
 #+4.T
  ~!T
" 5|!345#T
$ uo%T
&  'T
( "%)T
* uo+T
, X&-T
. 
/T
r 0<.28<*6+7?K8<+//3P
 .26B37 $8<(4)5+7(4)--P
P
 'tnP
 {+	P

 8O45P
 "$P
 $C=P
 '';<P
 ##45P
 $C=P
 'tnP
 &c]P
 &.d^P
 #+4.P
  ~!P
" 5|!345#P
$ uo%P
&  'P
( "%)P
* uo+P
, X&-P
. 
/P
j 0<.28<*6+7?K8<+//3P
 .26B37 $8<(4)5+7(4)--P
P
 'tnP
 {+	P

 8O45P
 "$P
 $C=P
 '';<P
 ##45P
 $C=P
 'tnP
 &c]P
 &.d^P
 #+4.P
  ~!P
" 5|!345#P
$ uo%P
&  'P
( "%)P
* uo+P
, X&-P
. 
/P
n 0<*6+78<+//3O
 .26B $8<(4)5+7(4)-!%$0@D/O
_`
O

 'tnO
 "$O
 $C=O
 ##45O
 $C=O
 'tnO
 &c]O
 &.d^O
 ~O
 5|!345O
  uo!O
"  #O
$ "%%O
& uo'O
( X&)O
* #+O
, SM-O
. #8O#<=/O
0 
~	1O
h "&/;.2$0@D*6+7&*8<+//337S
  .26B"& $8<(4)5+7(4)-3S
Y+,S
 #S
 'tn	S

 {+S
 SMS
 #8O#<=S
 "$S
 $C=S
 d^S
 ##45S
 $C=S
 'tnS
 #+4.S
  &c]!S
" &.d^#S
$ 3-%S
& ~'S
( 5|!345)S
* uo+S
,  -S
. "%/S
0 uo1S
2 X&3S
4 
5S
p #'#'#!%/;.2$0@D*6+7)-8<+//3!W
$ .26B"& $8<(4)5+7(4)-7W
Y'(W
 3-W
 C=	W

 }W
 #W
 'tnW
 {+W
 SMW
 #8O#<=W
 "$W
 $C=W
 I&W
 ##45W
 $C=W
  'tn!W
$ &c]%W
& &.d^'W
( 3-)W
* ~+W
, 5|!345-W
. uo/W
0  1W
2 "%3W
4 uo5W
6 X&7W
8 
9W
x "&/;.2$09=@D*6+7)-8<+//3S
  .26B"& $8<(4)5+7(4)-3S
	:-.S
 #S
 'tn	S

 {+S
 SMS
 )1S
 #8O#<=S
 "$S
 $C=S
 I&S
 ##45S
 $C=S
 'tnS
  &c]!S
" &.d^#S
$ 3-%S
& ~'S
( 5|!345)S
* uo+S
,  -S
. "%/S
0 uo1S
2 X&3S
4 
5S
p #'# $!%$0/;.2@D*6+7&*)-8<+//337%[
( .26B"& $8<(4)5+7(4)-;[
K/0[
 3-[
 }	[

 [
 #[
 SM[
 'tn[
 {+[
 #8O#<=[
 "$[
 $C=[
 d^[
 I&[
 ##45[
  $C=![
" 'tn#[
$ #+4.%[
( &c])[
* &.d^+[
, 3--[
. ~/[
0 5|!3451[
2 uo3[
4  5[
6 "%7[
8 uo9[
: X&;[
< 
=[
@ 0<.2*6+7#8<+//3I
 .26B $8<(4)5+7(4)-)I
y)+,I
 'tnI
 {+	I

 "$I
 $C=I
 }I
 ##45I
 $C=I
 'tnI
 &c]I
 &.d^I
 ~I
 5|!345I
  uo!I
"  #I
$ "%%I
& uo'I
( X&)I
* 
+I
\ #'!%/;.2# $$0-1@D*6+7&*)-8<+//337']
* .26B"& $8<(4)5+7(4)-=]
Y'(]
 3-]
 #	]

 'tn]
 {+]
 }]
 ]
 SM]
 %TN]
 #8O#<=]
 "$]
 $C=]
 d^]
 I&]
  ##45!]
" $C=#]
$ 'tn%]
& #+4.']
* &c]+]
, &.d^-]
. 3-/]
0 ~1]
2 5|!3453]
4 uo5]
6  7]
8 "%9]
: uo;]
< X&=]
> 
?]
D #' $/;.2*6+7)-8<+//3O
 .26B"& $8<(4)5+7(4)-/O
)[01O
 3-O
 	O

 'tnO
 {+O
 "$O
 $C=O
 I&O
 ##45O
 $C=O
 'tnO
 &c]O
 &.d^O
  3-!O
" ~#O
$ 5|!345%O
& uo'O
(  )O
* "%+O
, uo-O
. X&/O
0 
1O
h #'!%/;.2$0@D*6+78<+//3Q
 .26B"& $8<(4)5+7(4)-1Q
Y'(Q
 3-Q
 #	Q

 'tnQ
 {+Q
 SMQ
 #8O#<=Q
 "$Q
 $C=Q
 ##45Q
 $C=Q
 'tnQ
 &c]Q
  &.d^!Q
" 3-#Q
$ ~%Q
& 5|!345'Q
( uo)Q
*  +Q
, "%-Q
. uo/Q
0 X&1Q
2 
3Q
j %)%)/;.2%)/3!%04*6+78<+//3S
  .26B'+ $8<(4)5+7(4)-3S
5/S
 E?S
 'tn	S

 {+S
 c]S
 &e_S
 #S
 !)S
 "$S
 $C=S
 ##45S
 $C=S
 'tnS
  &c]!S
" &.d^#S
$ 8$%S
& ~'S
( 5|!345)S
* uo+S
,  -S
. "%/S
0 uo1S
2 X&3S
4 
5S
n %)%)#!%'+/;.2)-)-+/*6+78<+//3!W
$ .26B!% $8<(4)5+7(4)-7W
5/W
 E?W
 }	W

 #W
  }W
 'tnW
 {+W
 "#W
 "#W
 $C=W
 "$W
 $C=W
 ##45W
 $C=W
  'tn!W
$ &c]%W
& &.d^'W
( )W
* ~+W
, 5|!345-W
. uo/W
0  1W
2 "%3W
4 uo5W
6 X&7W
8 
9W
v '+$(#'/;.2#*6+78<+//3O
 .26B%) $8<(4)5+7(4)-/O
smO
 SMO
 C=	O

 'tnO
 {+O
 }O
 "$O
 $C=O
 ##45O
 $C=O
 'tnO
 &c]O
 &.d^O
  '"!O
" ~#O
$ 5|!345%O
& uo'O
(  )O
* "%+O
, uo-O
. X&/O
0 
1O
j (,"267;$(/;.2%)0<%)>BDH*6+78<-9AE+//3-a
0 .26B $8<(4)5+7(4)-Aa
a
 %%6 678a
 tn	a

 sma
 "*$a
 $O4a
 D>a
 'tna
 {+a
 c]a
 !)a
 c]a
 U3(9(9#9:;a
 'x'@Aa
  "$!a
" $C=#a
$ ##45%a
& &c]'a
( $H_$=>)a
* $C=+a
, 'tn-a
0 &c]1a
2 &.d^3a
4 ~5a
6 5|!3457a
8 uo9a
:  ;a
< "%=a
> uo?a
@ X&Aa
B 
Ca
J 0<.2#*6+78<+//3G
 .26B $8<(4)5+7(4)-'G
&tnG
 {+G
 }	G

 "$G
 $C=G
 ##45G
 $C=G
 'tnG
 &c]G
 &.d^G
 ~G
 5|!345G
 uoG
   !G
" "%#G
$ uo%G
& X&'G
( 
)G
X ,8*

 )5)5+7(4)-*
*
 $C=*

 uo*
  *
 "%*
 uo*
 X&*
 
*
^ 0<9=*6+78<+//3I
 .26B $8<(4)5+7(4)-'I
I
 'tnI
 56	I

 "$I
 $C=I
 ##45I
 $C=I
 'tnI
 &c]I
 &.d^I
 ~I
 5|!345I
 uoI
   !I
" "%#I
$ uo%I
& X&'I
( 
)I
f *.#'$(%)&*$(,0%)04&*/;9=6:8<15(,9=*6+78<+//3;y
> .26B $8<(4)5+7(4)-Oy
y
 y
 	y

 !y
 y
 (y
 "#y
 C=y
 SMy
 c]y
 smy
 D>y
 $D>y
 TNy
   (~!y
" d^#y
$ 'tn%y
& 56'y
(  c6k 23)y
* (0~+y
, !)-y
. !/y
0  (61y
2 "$3y
4 $C=5y
6 ##457y
8 $C=9y
: 'tn;y
> &c]?y
@ &.d^Ay
B ~Cy
D 5|!345Ey
F uoGy
H  Iy
J "%Ky
L uoMy
N X&Oy
P 
Qy
| 0<*6+/0
 )5)5+7(4)-0
sCx0
 'tn0
 "$	0

 $C=0
 uo0
  0
 "%0
 uo0
 X&0
 
0
j "&$0@D/;.2*6+/8<37/3;
 .26B(4)5+7(4)-);
sCx;
 #;
 SM	;

 #8O#<=;
 'tn;
 {+;
 "$;
 $C=;
 ##45;
 #+4.;
 'tn;
 &c];
 &.d^;
  uo!;
"  #;
$ "%%;
& uo';
( X&);
* 
+;
B "&$0@D/;.2*6+78<37/3O
 .26B $8<(4)5+7(4)-/O
CHoO
 O
 #	O

 SMO
 #8O#<=O
 'tnO
 {+O
 "$O
 $C=O
 ##45O
 #+4.O
 'tnO
 &c]O
  &.d^!O
" ~#O
$ 5|!345%O
& uo'O
(  )O
* "%+O
, uo-O
. X&/O
0 
1O
j "&$0@D37/;*68<.2!%/3E
 .26B8<(4)5+7(4)--E
E
 ()E
 #	E

 SME
 #8O#<=E
 #+4.E
 'tnE
 "$E
 ##45E
 {+E
 #E
 'tnE
 &c]E
  &.d^!E
" 5|!345#E
$ uo%E
&  'E
( "%)E
* uo+E
, X&-E
. 
/E
T %19=8<?K7
 48(4)5+7(4)-7
7
 SM7
 56	7

 8O457
 '';<7
 #+4.7
 uo7
  7
 "%7
 uo7
 X&7
 
y$	7
v "&9=$0@D376
 )5)5+7(4)-6
#6
 566
 SM	6

 #8O#<=6
 #+4.6
 uo6
  6
 "%6
 uo6
 X&6
 
y$	6
v :>0

 )5)5+7(4)-0
0
 560

 uo0
  0
 "%0
 uo0
 X&0
 
y$	0
h :>-
 )5)5+7(4)--
56-
 uo	-

  -
 "%-
 uo-
 X&-
 
y$	-
b %)%)9=/3!%04%);
 (,(4)5+7(4)-;
5/;
 E?;
 56	;

 &e_;
 #;
 !);
 c];
 8$;
 uo;
  ;
 "%;
 uo;
 X&;
  
y$	!;
~ :>-
 )5)5+7(4)--
56-
 uo	-

  -
 "%-
 uo-
 X&-
 
y$	-
f !%/3+
 )5)5+7(4)-+
+
 +
 ~	+

 'tn+
 uo+
  +
 "%+
 uo+
 X&+
 
y$	+
b )5)5+7(4)-%
%
 uo	%

  %
 "%%
 uo%
 X&%
 
#	$%
T )5)5+7(4)-
 uo
  	

 "%
 uo
 X&
 

B :>'
 )5)5+7(4)-'
56'
 uo	'

  '
 "%'
 uo'
 X&'
 
'
V 0<'
 )5)5+7(4)-'
&tn'
 uo	'

  '
 "%'
 uo'
 X&'
 
'
X )5)5+7(4)-%
 uo%
  	%

 "%%
 uo%
 X&%
 
%
R #.2$

 )5)5+7(4)-$
sm$
 'sm$

 uo$
  $
 "%$
 uo$
 X&$
 
$
R )5)5+7(4)- 
 uo 
  	 

 "% 
 uo 
 X& 
 
 
J )5)5+7(4)- 
 uo 
  	 

 "% 
 uo 
 X& 
 
 
J )5)5+7(4)- 
 uo 
  	 

 "% 
 uo 
 X& 
 
 
J )5)5+7(4)- 
 uo 
  	 

 "% 
 uo 
 X& 
 
 
L !%$
 )5)5+7(4)-$
(>*NHSM3NO
$

 $
 uo$
  $
 "%$
 uo$
 X&$
 
$
L7= 7S 70:= :S :0MHT#Y$7 M4WZHZC[ M4 ,0Xd3i(X	mS 	!X6 
 VsmV }c)*V 	V
 V 
#V Vp O3 O O0 N N N0 Zc Z Z0 YC Y Y0 
 #$DsmD }c)*D 	D
 !D D 
#D DL Ss S S< ^# ^ ^0 RS R R> ] ] ]0 ^# ^ ^: 
S 
 
4 ] ] ]> 
3 
 
rl   r   )r   r   r4  collections.abcr   htmlr   typingr   r   r   r   telegram._chatr	   telegram._chatbackgroundr
   telegram._chatboostr   telegram._dicer   telegram._files.animationr   telegram._files.audior   telegram._files.contactr   telegram._files.documentr   telegram._files.locationr   telegram._files.photosizer   telegram._files.stickerr   telegram._files.venuer   telegram._files.videor   telegram._files.videonoter   telegram._files.voicer   telegram._forumtopicr   r   r   r   r   r   telegram._games.gamer   %telegram._inline.inlinekeyboardmarkupr   telegram._linkpreviewoptionsr    'telegram._messageautodeletetimerchangedr!   telegram._messageentityr"   telegram._paidmediar#   telegram._passport.passportdatar$   telegram._payment.invoicer%   !telegram._payment.refundedpaymentr&   #telegram._payment.successfulpaymentr'   telegram._pollr(   !telegram._proximityalerttriggeredr)   r  r*   telegram._sharedr+   r,   telegram._storyr-   telegram._telegramobjectr.   telegram._userr/   telegram._utils.argumentparsingr0   telegram._utils.datetimer1   r2   telegram._utils.defaultvaluer3   r4   telegram._utils.entitiesr5   r6   telegram._utils.stringsr7   telegram._utils.typesr8   r9   r:   r;   r<   r=   telegram._utils.warningsr>   telegram._videochatr?   r@   rA   rB   telegram._webappdatarC   telegram._writeaccessallowedrD   telegram.constantsrE   rF   rG   telegram.helpersrH   telegram.warningsrI   telegramrJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r^   ro   r   r   rb   rl   rm   <module>r      s"  ( I  	 $  < <  3 .  / ' + - - / + ' ' / '  & F ; Q 1 - 8 - = A  E + 4 ! 3  > Q C Q 0  *  , ; J J , 3     .&9 &WK~ WKt2 DoL
& oL
rl   