+
    kHàj/Z  ã                  óú  € R t ^ RIHt ^ RIt^ RIt^ RIHt R˜ U u/ uF	  p V RV  2bK  	  up tR^ R^R^R^/tR	R
RRRRRR/t	RR/t
RtR™];QJ d    . R Rš 4       F  NK  	  5M! R Rš 4       4      ,            U u/ uF  p V ] RV  2bK  	  up t^t^t^t]P"                  ! 4       t^ sR›tR R lt^ t^t^t^t]^]^/tR R ltR R ltR R ltR R ltR  R! ltR" R# lt R$ R% lt!R& R' lt"R( R) lt#R* R+ lt$R, R- lt%R. R/ lt&RœR0 R1 llt'R�R2 R3 llt(RžR4 R5 llt)R6 R7 lt*R8 R9 lt+R:] R;] R<]!R=]!R>]"R?R@ RARB /t,RC RD lt-RŸt.RE RF lt/RG RH lt0R RI RJ llt1RK RL lt2R¡RM RN llt3RO RP lt4RQ RR lt5RžRS RT llt6RU RV lt7RW RX lt8RœRY RZ llt9. R¢Ot:. R£Ot;R¤R¥.t<R[ R\ lt=R] R^ lt>R_ R` lt?Ra Rb lt@^Rc]'3^Rd]'3^Re]'3^Rf]'3^Rg]'3^Rh]'3^Ri]'3^Rj](3^	Rk](3^
Rl](3^Rm]'3^Rn]'3^RoRp 3^Rq]'3^Rr](3^Rs]'3^RtRu 3^Rv](3^Rw]'3^RxRy 3.tARz R{ ltB. R¦OtCR| R} ltDR~ R ltER€ R� ltFR§R‚ Rƒ lltGR¨R„ R… lltHR©R† R‡ lltIRˆ R‰ ltJRŠ R‹ ltK]3RŒ R� lltL]^ 3RŽ R� lltMR� R‘ ltNR’ R“ ltORªR” R• lltPR– R— ltQR# u up i u up i )«uÚ  yuanbao_proto.py - Yuanbao WebSocket å��è®®ç¼–è§£ç �ï¼ˆæ‰‹å†™ protobuf wire-formatï¼Œä¸�ä¾�èµ– google.protobufï¼‰

æ¯�ä¸ª WebSocket frame = ä¸€æ�¡ ConnMsg protobufï¼ˆæ ‡å‡† protobufï¼›conn.proto æ³¨é‡Šé‡Œçš„ magic+len äºŒè¿›åˆ¶æ ¼å¼�å�ªç”¨äºŽ quic/tcpï¼‰ï¼š
  ConnMsg { Head head=1 (cmd_type, cmd, seq_no, msg_id, module, ...); bytes data=2 }
  data = ä¸šåŠ¡ payloadï¼ˆInboundMessagePush / SendC2CMessageReq / ...ï¼ŒåŒ… trpc.yuanbao.yuanbao_conn.yuanbao_openclaw_proxy.*ï¼‰
)ÚannotationsN)ÚOptionalztrpc.yuanbao.conn_common.ÚRequestÚResponseÚPushÚPushAckÚAuthBindz	auth-bindÚPingÚpingÚKickoutÚkickoutÚ
UpdateMetazupdate-metaÚ
ConnAccessÚconn_accessÚyuanbao_openclaw_proxyc              #  ó@   "  € T F  pR F  pV V 2x € K  	  K  	  R# 5i)ÚReqN)r   ÚRsp© )Ú.0ÚmÚks   &  ÚL/home/ubuntu/.hermes/hermes-agent/plugins/platforms/yuanbao/yuanbao_proto.pyÚ	<genexpr>r      s2   é € ð -ñJ�aÛSaÈað ˆ#ˆaˆS�	ÙSañ 	ó Jùs   ‚Ú.c               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚintr   )Úformats   "r   Ú__annotate__r    +   s   € ÷ ñ �Sñ ó    c                 ó˜   € \         ;_uu_ 4        \        p \        ^,           \        ,          sRRR4       V #   + '       g   i     X # ; i)u9   ç”Ÿæˆ�é€’å¢žåº�åˆ—å�·ï¼ˆçº¿ç¨‹å®‰å…¨ï¼Œæº¢å‡ºæ—¶å½’é›¶ï¼‰N)Ú	_seq_lockÚ_seq_counterÚ_SEQ_MAX)Úvals    r   Únext_seq_nor'   +   s8   € ÷ 
ŽÜˆÜ$ qÕ(¬HÕ4ˆ÷ 
ð €J÷ 
Žð €Jús	   �8¸A		c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer   r   Úbytesr   )r   s   "r   r    r    =   s   € ÷  ñ  ˜#ð   %ñ  r!   c                óÈ   € V ^ 8  d
   V R,          p . p V ^,          pV ^,          p V '       g   VP                  V4       \        V4      # VP                  V^€,          4       KQ  )u6   protobuf varintï¼ˆè´Ÿæ•°æŒ‰ 64-bit two's complementï¼‰ì   ÿÿÿÿ )Úappendr*   )r)   ÚoutÚbitss   &  r   Ú_encode_varintr0   =   sW   € àˆq„yØÐ#Õ#ˆØ
€CØ
Ø�t�|ˆØ�!�ˆßØ�J‰J�tÔÜ˜“:ÐØ�
‰
�4˜$•;Ör!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Údatar*   Úposr   r   ztuple[int, int]r   )r   s   "r   r    r    K   s!   € ÷ ñ ˜ð  Sð ¨_ñ r!   c                óÞ   € ^ p^ pV\        V 4      8  dX   W,          pV^,          pW$^,          V,          ,          pV^,          pV^€,          '       g    W!3# V^@8¼  g   K\  \        R4      hW!3# )u6   ä»Ž data[pos:] è§£ç � varintï¼Œè¿”å›ž (value, new_pos)zvarint too long)ÚlenÚ
ValueError)r2   r3   ÚresultÚshiftÚbs   &&   r   Ú_decode_varintr:   K   st   € à€FØ€EØ
”�D“	Œ/Ø�IˆØˆq�ˆØ�t•8 Õ%Õ%ˆØ��
ˆØ�D—”Øð ˆ;Ðð �BŽ;ÜÐ.Ó/Ð/Øˆ;Ðr!   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úfield_numberr   Ú	wire_typer)   r*   r   r   )r   s   "r   r    r    [   s.   € ÷ Cñ C ð C°ð C¸Eð CÀeñ Cr!   c                óB   € \        V ^,          V,          4      V,           # )é   )r0   )r<   r=   r)   s   &&&r   Ú_encode_fieldr@   [   s   € Ü˜<¨1Õ,°	Õ9Ó:¸UÕBÐBr!   c               ó    € V ^8„  d   QhRRRR/# )r   r9   r*   r   r   )r   s   "r   r    r    _   s   € ÷ &ñ &�uð & ñ &r!   c                ó8   € \        \        V 4      4      V ,           # )u,   length-prefixed bytes / åµŒå¥— message value)r0   r5   )r9   s   &r   Ú_encode_messagerC   _   s   € äœ#˜a›&Ó! AÕ%Ð%r!   c               ó    € V ^8„  d   QhRRRR/# )r   ÚsÚstrr   r*   r   )r   s   "r   r    r    d   s   € ÷ .ñ .�cð .˜eñ .r!   c                ó6   € \        V P                  R 4      4      # )úutf-8)rC   Úencode)rE   s   &r   Ú_encode_stringrJ   d   s   € Ü˜1Ÿ8™8 GÓ,Ó-Ð-r!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úfnr   rE   rF   r   r*   r   )r   s   "r   r    r    i   s!   € ÷ 8ñ 8ˆ3ð 8�3ð 8˜5ñ 8r!   c                ó6   € \        V \        \        V4      4      # ©N)r@   ÚWT_LENrJ   )rL   rE   s   &&r   Ú_srP   i   s   € Ü˜œV¤^°AÓ%6Ó7Ð7r!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rL   r   Únr   r*   r   )r   s   "r   r    r    m   s!   € ÷ ;ñ ;ˆ3ð ;�3ð ;˜5ñ ;r!   c                ó6   € \        V \        \        V4      4      # rN   )r@   Ú	WT_VARINTr0   )rL   rR   s   &&r   Ú_vrU   m   s   € Ü˜œY¬°qÓ(9Ó:Ð:r!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rL   r   r9   r*   r   r   )r   s   "r   r    r    q   s!   € ÷ 9ñ 9ˆ3ð 9�5ð 9˜Uñ 9r!   c                ó6   € \        V \        \        V4      4      # rN   )r@   rO   rC   )rL   r9   s   &&r   Ú_mrX   q   s   € Ü˜œV¤_°QÓ%7Ó8Ð8r!   c               ó    € V ^8„  d   QhRRRR/# )r   r2   r*   r   z"list[tuple[int, int, bytes | int]]r   )r   s   "r   r    r    u   s   € ÷ ñ ˜ð Ð"Dñ r!   c                ó|  € . p^ pV\        V 4      8  d¨   \        W4      w  r2V^,          pV\        8X  d   \        W4      w  rRM\V\        8X  d   \        W4      w  rbM1V\        9   d   \        V,          pM\        RV RV^,
           24      hWW&,            pW&,          pVP                  V^,	          WE34       K·  V# )ul   â†’ [(field_number, wire_type, raw_value)]ï¼›raw_value ä¸º intï¼ˆVARINTï¼‰æˆ– bytesï¼ˆLEN / 64BIT / 32BITï¼‰zunknown wire type z at pos )r5   r:   rT   rO   Ú_FIXED_SIZEr6   r-   )r2   Úfieldsr3   Útagr=   r&   Úlengths   &      r   Ú_parse_fieldsr_   u   s´   € à€FØ
€CØ
”�D“	Œ/Ü! $Ó,‰ˆØ˜$•Jˆ	Øœ	Ô!Ü% dÓ0‰HˆC�àœFÔ"Ü,¨TÓ7‘�˜ØœkÔ)Ü$ YÕ/‘ä Ð#5°i°[ÀÈÈqÍÈ	Ð!RÓSÐSØ˜C�LÐ)ˆCØ�MˆCØ�‰�s˜a•x Ð0Ö1Ø€Mr!   c               ó    € V ^8„  d   QhRRRR/# )r   r\   Úlistr   údict[int, list]r   )r   s   "r   r    r    ‹   s   € ÷ ñ ˜Dð  _ñ r!   c                óf   € / pV  F(  w  r#pVP                  V. 4      P                  W434       K*  	  V# )uK   â†’ {field_number: [(wire_type, value), ...]}ï¼ˆrepeated å­—æ®µæœ‰å¤šä¸ªï¼‰)Ú
setdefaultr-   )r\   ÚdrL   Úwtr&   s   &    r   Ú_fields_to_dictrg   ‹   s5   € à€AÛ‰ˆ�Ø	�‰�R˜Ó×#Ñ# R IÖ.ñ à€Hr!   c               ó    € V ^8„  d   QhRRRR/# )r   r2   r*   r   rb   r   )r   s   "r   r    r    “   s   € ÷ 0ñ 0�eð 0 ñ 0r!   c                ó*   € \        \        V 4      4      # rN   )rg   r_   )r2   s   &r   Ú_parse_dictrj   “   s   € Üœ=¨Ó.Ó/Ð/r!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚfdictÚdictrL   r   rf   r   )r   s   "r   r    r    —   s&   € ÷ Fñ F�$ð F˜Cð F Sñ Fr!   c                ó‚   € V P                  V4      pV'       d&   V^ ,          ^ ,          V8X  d   V^ ,          ^,          # R# )u@   ç¬¬ä¸€ä¸ªå­—æ®µå€¼ï¼ˆä»…å½“å…¶ wire type åŒ¹é…�ï¼‰ï¼Œæ— åˆ™ NoneN)Úget)rl   rL   rf   Úentriess   &&& r   Ú_firstrq   —   s3   € à�i‰i˜‹m€Gß#¨°­
°1­¸Ô(;ˆ7�1�:�a�=ÐEÀÐEr!   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rl   rm   rL   r   ÚdefaultrF   r   r   )r   s   "r   r    r    �   s.   € ÷ eñ e�tð e ð e¨sð e¸Cñ er!   c                ó„   € \        W\        4      p\        V\        \        34      '       d   VP                  R RR7      # T# )rH   Úreplace)Úerrors)rq   rO   Ú
isinstancer*   Ú	bytearrayÚdecode©rl   rL   rs   r&   s   &&& r   Ú_get_stringr{   �   s8   € Ü
�œFÓ
#€CÜ4>¸sÄUÌIÐDV×4WÒ4Wˆ3�:‰:�g iˆ:Ó0ÐdÐ]dÐdr!   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rl   rm   rL   r   rs   r   r   )r   s   "r   r    r    ¢   s(   € ÷ 4ñ 4�tð 4 ð 4¨sð 4¸3ñ 4r!   c                óV   € \        W\        4      p\        V\        4      '       d   V# T# rN   )rq   rT   rw   r   rz   s   &&& r   Ú_get_varintr~   ¢   s%   € Ü
�œIÓ
&€CÜ˜S¤#×&Ò&ˆ3Ð3¨GÐ3r!   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rl   rm   rL   r   rs   r*   r   r   )r   s   "r   r    r    §   s.   € ÷ Jñ J�dð J ð J¨eð J¸eñ Jr!   c                ót   € \        W\        4      p\        V\        \        34      '       d   \        V4      # T# rN   )rq   rO   rw   r*   rx   rz   s   &&& r   Ú
_get_bytesr�   §   s.   € Ü
�œFÓ
#€CÜ# C¬%´Ð);×<Ò<Œ5�‹:ÐIÀ'ÐIr!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rl   rm   rL   r   r   zlist[bytes]r   )r   s   "r   r    r    ¬   s&   € ÷ Iñ I˜tð I¨ð I°ñ Ir!   c                ó†   € V P                  V. 4       UUu. uF  w  r#V\        8X  g   K  \        V4      NK  	  upp# u uppi rN   )ro   rO   r*   )rl   rL   rf   r&   s   &&  r   Ú_get_repeated_bytesr„   ¬   s5   € Ø&+§i¡i°°BÔ&7ÔHÑ&7™7˜2¸2Ä¹<ŒJŒE�#ŽJÑ&7ÒHÐHùÓHs   –=ª=c               ó$   € V ^8„  d   QhRRRRRR/# )r   rl   rm   rL   r   r   z
list[dict]r   )r   s   "r   r    r    °   s&   € ÷ Dñ D˜4ð D Sð D¨Zñ Dr!   c                óT   € \        W4       Uu. uF  p\        V4      NK  	  up# u upi rN   )r„   rj   )rl   rL   r9   s   && r   Ú_parse_repeatedr‡   °   s%   € Ü$7¸Ô$BÓCÑ$B˜qŒK˜ŽNÑ$BÑCÐCùÒCó   Ž%ÚSrE   ÚvrR   r   r9   c                ó:   a € R P                  V 3R lV 4       4      # )r!   c              3  óN   <"  € T F  p\        S\        V4      4      x € K  	  R # 5irN   )rX   Ú_encode_msg_body_element)r   ÚelrL   s   & €r   r   Ú<lambda>.<locals>.<genexpr>¹   s#   øé € Ð"WÑRVÈB¤2 bÔ*BÀ2Ó*F×#GÐ#GÓRVùs   ƒ"%)Újoin)rL   Úbodys   f&r   Ú<lambda>r’   ¹   s   ø€ ˜#Ÿ(™(Ô"WÑRVÓ"WÔWr!   Útc                ó.   € \        V \        ^V4      4      # )é   )rX   rP   )rL   Útrace_ids   &&r   r’   r’   º   s   € œb ¤R¨¨8£_Ô5r!   c               ó    € V ^8„  d   QhRRRR/# )r   Úpartsra   r   r*   r   )r   s   "r   r    r    ¾   s   € ÷ ñ ˜ð  %ñ r!   c                ó”   € R pV  F?  w  r#pVR8X  g   VR8X  d   Vf   K  M
V'       g   K%  V\         V,          ! W$4      ,          pKA  	  V# )r!   r‰   rR   )Ú_PART_ENCODERS)r˜   ÚbufrL   Úkindr&   s   &    r   Ú_encode_partsr�   ¾   sE   € Ø
€CÛ‰ˆ�#Ø�3Œ;¨d°c¬k˜3�?¿s¹sØ”> $Ö'¨Ó0Õ0ŠCñ ð €Jr!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úobjrm   Úspecra   r   r*   r   )r   s   "r   r    r    Ì   s!   € ÷ ñ �dð  $ð ¨5ñ r!   c                óø   € R pV Fq  w  r4pT P                  YE\        9   d   RM^ 4      pV'       g   K.  Y%\        9   d   \        Y5R8X  d   \        V4      MT4      M\	        V\        V4      4      ,          pKs  	  V# )r!   Ú rE   )ro   Ú
_STR_KINDSrP   rF   rU   r   )rŸ   r    r›   rL   Úkeyrœ   rŠ   s   &&     r   Ú_encode_specr¥   Ì   sj   € Ø
€CÛ‰ˆ�Ø�G‰G�C¤zÔ1™°qÓ9ˆß‰1ØÄ:Ô;M”2�b¨C¤Kœ#˜aœ&°QÔ7ÔSUÐVXÔZ]Ð^_ÓZ`ÓSaÕaŠCñ ð €Jr!   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rl   rm   r    ra   r   r   )r   s   "r   r    r    Õ   s!   € ÷ ñ ˜ð  Dð ¨Tñ r!   c                ó€   € / pV F5  w  r4pV\         9   d   \        W4      M
\        W4      pV'       g   K1  WbV&   K7  	  V# rN   )r£   r{   r~   )rl   r    r.   rL   r¤   rœ   rŠ   s   &&     r   Ú_decode_specr¨   Õ   s@   € Ø€CÛ‰ˆ�Ø&*¬jÔ&8ŒK˜Ô"¼kÈ%Ó>Tˆß‰1Ø�‹Hñ ð €Jr!   c               ó8   € V ^8„  d   QhRRRRRRRRRRRR	R
RRR/# )r   Úcmd_typer   ÚcmdrF   Úseq_noÚmsg_idÚmoduleÚneed_ackÚboolÚstatusr   r*   r   )r   s   "r   r    r    ä   sL   € ÷ ñ ØðØðØ%(ðØ25ðØ?BðØNRðØdgðà
ñr!   c                ór   € \        ^RV 3^RV3^RV3^RV3^RV3^RV'       d   ^M^ 3^
RVR,          3.4      # )r•   rŠ   rE   r,   )r�   ©rª   r«   r¬   r­   r®   r¯   r±   s   &&&&&&&r   Ú_encode_headr´   ä   sc   € ô Ø	
ˆC�Ð˜Q  S˜M¨A¨s°FÐ+;¸aÀÀfÐ=MÐPQÐSVÐX^ÐO_Ø	
ˆC—h‘ AÐ&¨¨S°&Ð;MÕ2MÐ(Nðó ð r!   c               ó    € V ^8„  d   QhRRRR/# ©r   r2   r*   r   rm   r   )r   s   "r   r    r    í   s   € ÷ ñ �uð  ñ r!   c                óÖ   € \        V 4      pR \        V^4      R\        V^4      R\        V^4      R\        V^4      R\        V^4      R\        \        V^4      4      R\        V^
4      /# r³   )rj   r~   r{   r°   )r2   Úfds   & r   Ú_decode_headr¹   í   ss   € Ü	�TÓ	€Bà”K  AÓ&¨¬{¸2¸qÓ/AÀ8Ì[ÐY[Ð]^ÓM_ÐaiÔkvÐwyÐ{|Ók}Ø”+˜b !Ó$ j´$´{À2ÀqÓ7IÓ2JÈHÔVaÐbdÐfhÓViðð r!   c               ó8   € V ^8„  d   QhRRRRRRRRRRRR	R
RRR	/# )r   rª   r   r«   rF   r¬   r­   r®   r2   r*   r¯   r°   r   r   )r   s   "r   r    r    õ   sL   € ÷ .ñ .Øð.Øð.Ø%(ð.Ø25ð.Ø?Bð.ØJOð.Ø[_ð.à
ñ.r!   c                ój   € \        ^\        WW#WF4      4      pV'       d   V\        ^V4      ,           # T# )uB   ç¼–ç �å®Œæ•´çš„ ConnMsgï¼ˆå�« cmd/msg_id/module ç­‰ head å­—æ®µï¼‰)rX   r´   )rª   r«   r¬   r­   r®   r2   r¯   r›   s   &&&&&&& r   Úencode_conn_msg_fullr¼   õ   s1   € ô ˆQ”˜X¨F¸FÓMÓ
N€Cß $ˆ3”�A�t“ÕÐ-¨#Ð-r!   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úmsg_typer   r¬   r2   r*   r   r   )r   s   "r   r    r    ý   s.   € ÷ Dñ D˜cð D¨3ð D°eð DÀñ Dr!   c                ó"   € \        V RVRRV4      # )uB   ç¼–ç � ConnMsgï¼ˆç®€åŒ–æŽ¥å�£ï¼šä»… cmd_type + seq_no + payloadï¼‰r¢   )r¼   )r¾   r¬   r2   s   &&&r   Úencode_conn_msgrÀ   ý   s   € ä ¨"¨f°b¸"¸dÓCÐCr!   c               ó    € V ^8„  d   QhRRRR/# r¶   r   )r   s   "r   r    r      s   € ÷ pñ p˜%ð p Dñ pr!   c           	     ó†   € \        V 4      p\        \        V^4      4      pRVR,          RVR,          R\        V^4      RV/# )uO   è§£ç � ConnMsg â†’ {msg_type, seq_no, data, head}ï¼ˆhead ä¸ºå®Œæ•´ Head dictï¼‰r¾   rª   r¬   r2   Úhead)rj   r¹   r�   )r2   rl   rÃ   s   &  r   Údecode_conn_msgrÄ     sH   € ä˜Ó€EÜœ
 5¨!Ó,Ó-€DØ˜˜ZÕ(¨(°D¸µNÀFÌJÐW\Ð^_ÓL`ÐbhÐjnÐoÐor!   c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R/# )
r   rª   r   r«   rF   r­   r®   r2   r*   r   r   )r   s   "r   r    r    	  s?   € ÷ Tñ T˜Cð T cð T°3ð TÀð TÈ5ð TÐ[`ñ Tr!   c                ó.   € \        W\        4       W#V4      # rN   )r¼   r'   )rª   r«   r­   r®   r2   s   &&&&&r   Ú_conn_requestrÇ   	  s   € Ü ¬{«}¸fÈdÓSÐSr!   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r   ÚservicerF   ÚmethodÚreq_idr‘   r*   r   r   )r   s   "r   r    r      s6   € ÷ Mñ M˜Cð M¨ð M°cð MÀð MÈ5ñ Mr!   c                ó2   € \        \        R,          WW4      # )uH   å°†å·²ç¼–ç �çš„ä¸šåŠ¡ protobuf åŒ…è£…ä¸ºå�¯ç›´æŽ¥å�‘é€�çš„ ConnMsg bytesr   )rÇ   ÚCMD_TYPE)rÉ   rÊ   rË   r‘   s   &&&&r   Úencode_biz_msgrÎ     s   € äœ )Õ,¨f¸gÓLÐLr!   c               ó    € V ^8„  d   QhRRRR/# r¶   r   )r   s   "r   r    r      s   € ÷ ñ ˜ð  4ñ r!   c                ó¨   € \        V 4      pVR,          pRVR,          RVR,          RVR,          RVR	,          R
VR,          \        R,          8H  RV/# )uE   è§£ç � ConnMsg â†’ {service, method, req_id, body, is_response, head}rÃ   rÉ   r®   rÊ   r«   rË   r­   r‘   r2   Úis_responserª   r   )rÄ   rÍ   )r2   r7   rÃ   s   &  r   Údecode_biz_msgrÒ     s\   € ä˜TÓ"€FØ�&�>€Dà�4˜•> 8¨T°%­[¸(ÀDÈÅNÐTZÐ\bÐciÕ\jØ�t˜JÕ'¬8°JÕ+?Ñ?ÀÈðð r!   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r   rÊ   rF   Úprefixr‘   r*   r­   r   r   )r   s   "r   r    r       s6   € ÷ Yñ Y˜ð Y cð Y°ð YÀð YÈUñ Yr!   c                óR   € \        \        Y;'       g    V R\        4        2V4      # )uf   biz è¯·æ±‚ ConnMsgï¼›req_id ä¸º msg_idï¼Œç©ºåˆ™ '<prefix>_<seq>'ï¼ˆseq åœ¨ conn seq_no ä¹‹å‰�åˆ†é…�ï¼‰Ú_)rÎ   Ú_BIZ_PKGr'   )rÊ   rÔ   r‘   r­   s   &&&&r   Ú_biz_requestrØ      s'   € äœ( F×,QÐ,Q¸¸ÀÄ+Ã-ÀÐ6QÐSWÓXÐXr!   c               ó    € V ^8„  d   QhRRRR/# )r   Úcontentrm   r   r*   r   )r   s   "r   r    r    5  s   € ÷ ñ  ð ¨%ñ r!   c                óš  € \        V \        4      pV P                  R 4      ;'       g    .  F$  pV\        ^\        V\        4      4      ,          pK&  	  V P                  R4      p\        V\        4      '       dQ   VP                  4        F<  w  rEV\        R\        R\        V4      R\        V4      /\        4      4      ,          pK>  	  V# )Úimage_info_arrayÚext_mapéç  r¤   r)   )
r¥   Ú_MSG_CONTENT_SPECro   rX   Ú_IMAGE_INFO_SPECrw   rm   ÚitemsrF   Ú_MAP_ENTRY_SPEC)rÚ   r›   ÚimgrÝ   r   rŠ   s   &     r   Ú_encode_msg_contenträ   5  s¢   € Ü
�wÔ 1Ó
2€CØ�{‰{Ð-Ó.×4Ð4°"Ò4ˆØŒr�!”\ #Ô'7Ó8Ó9Õ9Šñ 5à�k‰k˜)Ó$€GÜ�'œ4× Ò Ø—M‘M–O‰DˆAØ”2�cœ<¨´°A³¸ÄÀQÃÐ(HÌ/ÓZÓ[Õ[ŠCñ $à€Jr!   c               ó    € V ^8„  d   QhRRRR/# r¶   r   )r   s   "r   r    r    @  s   € ÷ ñ ˜eð ¨ñ r!   c                ó¤  € \        V 4      p\        V\        4      pR  \        V^4       4        Uu. uF  q3'       g   K  VNK  	  pp\        VR4       Uu/ uF.  p\	        V^4      '       g   K  \	        V^4      \	        V^4      bK0  	  ppTP                  RV3RV33 UUu/ uF  w  rxV'       g   K  WxbK  	  upp4       V# u upi u upi u uppi )c              3  óB   "  € T F  p\        V\        4      x € K  	  R # 5irN   )r¨   rà   )r   re   s   & r   r   Ú&_decode_msg_content.<locals>.<genexpr>C  s   é € ÐaÑG`À!œL¨Ô,<×=Ð=ÓG`ùs   ‚rÞ   rÜ   rÝ   )rj   r¨   rß   r‡   r{   Úupdate)	r2   rl   rÚ   rã   ÚimgsÚerÝ   r   rŠ   s	   &        r   Ú_decode_msg_contentrì   @  sÉ   € Ü˜Ó€EÜ˜5Ô"3Ó4€GÙaÄÐW\Ð^_ÔG`ÔaÓiÑa�CÓeh�CˆCÑa€DÐiÜ=LÈUÐTWÔ=XÓnÑ=X¸Ô\gÐhiÐkl×\mÔ3Œ{˜1˜aÓ ¤+¨a°Ó"3Ò3Ñ=X€GÐnØ‡N�NÐ'9¸4Ð&@À9ÈgÐBVÑ%WÔ]Ñ%W™T˜QÔ[\”D�A’DÑ%WÒ]Ô^Ø€Nùò jùÚnùÛ]s"   ±	C¿CÁCÁ.CÂ!C
Â2C
c               ó    € V ^8„  d   QhRRRR/# )r   Úelementrm   r   r*   r   )r   s   "r   r    r    J  s   € ÷ ~ñ ~ dð ~¨uñ ~r!   c                óž   € V P                  R / 4      p\        ^RV P                  RR4      3^RV'       d   \        V4      3.4      # R3.4      # )Úmsg_contentrE   r¾   r¢   r   r!   )ro   r�   rä   )rî   rÚ   s   & r   r�   r�   J  sT   € Ø�k‰k˜-¨Ó,€GÜ˜1˜c 7§;¡;¨z¸2Ó#>Ð?À!ÀS×jqÔJ]Ð^eÓJfÐA{Ð|Ó}Ð}ÐwzÐA{Ð|Ó}Ð}r!   c               ó    € V ^8„  d   QhRRRR/# r¶   r   )r   s   "r   r    r    O  s   € ÷ {ñ { 5ð {¨Tñ {r!   c                óx   € \        V 4      p\        V^4      pR\        V^4      RV'       d   \        V4      /# / /# )r   r¾   rð   )rj   r�   r{   rì   )r2   rl   Úcontent_bytess   &  r   Ú_decode_msg_body_elementrô   O  sA   € Ü˜Ó€EÜ˜u aÓ(€MØœ E¨1Ó-¨}×dqÔ>QÐR_Ó>`ÐzÐzÐwyÐzÐzr!   Úcallback_commandÚfrom_accountÚ
to_accountÚsender_nicknameÚgroup_idÚ
group_codeÚ
group_nameÚmsg_seqÚ
msg_randomÚmsg_timeÚmsg_keyr­   Úmsg_bodyc                óT   € \        W4       Uu. uF  p\        V4      NK  	  up# u upi rN   )r„   rô   )r¸   rL   r9   s   && r   r’   r’   ^  s%   € ÔJ]Ð^`ÔJeÓ$fÑJeÀQÔ%=¸aÖ%@ÑJeÒ$fùÒ$frˆ   Úcloud_custom_dataÚ
event_timeÚbot_owner_idÚrecall_msg_seq_listc           
     ó†   € \        W4       Uu. uF  pR \        V^4      R\        V^4      /NK  	  up;'       g    R# u upi )rü   r­   N)r‡   r~   r{   )r¸   rL   re   s   && r   r’   r’   `  sT   € ÜM\Ð]_ÔMdó0fÙMdÈˆ”K  1Ó% x´¸QÀÓ1BÓCÑMdñ0f÷ 0nð 0nØimð0nùò 0fs   Ž#>Úclaw_msg_typeÚprivate_from_group_coder–   c                ód   € \        W4      '       d   \        \        \        W4      4      ^4      # R# )r•   r¢   )r�   r{   rj   )r¸   rL   s   &&r   r’   r’   c  s+   € ÔWaÐbd×WiÒWi¤K´¼JÀrÓ<NÓ0OÐQRÓ$SÐ$qÐoqÐ$qr!   c               ó    € V ^8„  d   QhRRRR/# ©r   r2   r*   r   zOptional[dict]r   )r   s   "r   r    r    g  s   € ÷ ñ ˜eð ¨ñ r!   c           
     ó  €  \        V 4      p\         UUUu/ uF  w  r#qCV! W4      bK  	  ppppVP                  4        UUu/ uF  w  rgV'       g
   VR9   g   K  WgbK  	  upp# u upppi u uppi   \         d     R# i ; i)uy   è§£æž� InboundMessagePush biz payloadï¼›ç©ºå€¼å·²è¿‡æ»¤ï¼ˆmsg_body / msg_seq å§‹ç»ˆä¿�ç•™ï¼‰ï¼Œè§£æž�å¤±è´¥è¿”å›ž Noneã€‚N>   rü   r   )rj   Ú_INBOUND_PUSH_SPECrá   Ú	Exception)r2   rl   rL   r¤   ro   r7   r   rŠ   s   &       r   Údecode_inbound_pushr  g  sx   € ðÜ˜DÓ!ˆÝ:LÕMÑ:L©,¨"°3‘s˜5“~Ò%Ñ:LˆÒMØ!'§¡¤ÔU¡™˜·1¸Ð=TÑ8T”�’¡ÒUÐUùô NùÛUøÜô Úðús3   ‚A1 —A$«A1 ÁA+ÁA+Á A1 Á$A1 Á1B Á?B c               ó    € V ^8„  d   QhRRRR/# r¶   r   )r   s   "r   r    r      s   € ÷ ñ  eð °ñ r!   c                ó  € \        V 4      pR\        V^4      /p\        V^4      '       d   \        V^4      VR&   \        V^4      '       d.   \	        V^4       Uu. uF  p\        V\        4      NK  	  upVR&   V# u upi )uR   MsgContent â†’ {type, text?, multimedia?}ï¼ˆshape ä¸Ž _format_multimedia å¯¹é½�ï¼‰ÚtypeÚtextÚ
multimedia)rj   r~   r{   r„   r‡   r¨   Ú_FORWARD_MULTIMEDIA_SPEC)r2   rl   rÚ   re   s   &   r   Ú_decode_forward_msg_contentr    s~   € ä˜Ó€EØœ[¨°Ó2Ð3€GÜ�5˜!×ÒÜ% e¨QÓ/ˆ�‰Ü˜5 !×$Ò$ÜTcÐdiÐklÔTmÓ nÑTmÈq¤¨aÔ1IÖ!JÑTmÑ nˆ�ÑØ€Nùò !os   ÁA<c               ó    € V ^8„  d   QhRRRR/# )r   r¸   rm   r   r   )r   s   "r   r    r    Š  s   € ÷ `ñ `˜Dð ` Tñ `r!   c                ó¢   € R \        V ^4      R\        V ^4      R\        V ^4      R\        V ^4       Uu. uF  p\        V4      NK  	  up/# u upi )ÚsenderÚtimeÚ	plainTextÚ
msgContent)r{   r~   r„   r  )r¸   r9   s   & r   Ú_decode_forward_msgr  Š  s\   € Ø”k " aÓ(¨&´+¸bÀ!Ó2DÀkÔS^Ð_aÐcdÓSeØÔCVÐWYÐ[\ÔC]Ó^ÑC]¸aÔ6°qÖ9ÑC]Ñ^ð`ð `ùÚ^s   ´Ac               ó    € V ^8„  d   QhRRRR/# r  r   )r   s   "r   r    r    �  s   € ÷ 
ñ 
 %ð 
¨Nñ 
r!   c                óö   €  \        V 4      pR\        V^4      R\        V^4      R\        V^4      R\        V^4      R\        V^4       Uu. uF  p\	        V4      NK  	  up/# u upi   \
         d     R# i ; i)zÃParse ForwardMsgData bytes (base64-decoded ext_map value) into the {sub_type, nick_name, msg, ...}
structure consumed by ForwardedRecordsParseMiddleware.build_forward_text; None on parse failure.Úsub_typeÚ
begin_timeÚend_timeÚ	nick_nameÚmsgN)rj   r~   r{   r‡   r  r  )r2   r¸   re   s   &  r   Údecode_forward_msg_datar%  �  s‡   € ðÜ˜Óˆàœ B¨Ó*¨L¼+ÀbÈ!Ó:LÈjÔZeÐfhÐjkÓZlØœ R¨Ó+¨UÔUdÐegÐijÔUkÓ4lÑUkÐPQÔ5HÈÖ5KÑUkÑ4lð
ð 	
ùâ4løäô Úðús$   ‚A
A) ÁA$Á A) Á$A) Á)A8Á7A8c               ó<   € V ^8„  d   QhRRRRRRRRRRR	R
RRRRRR/	# )r   r÷   rF   r   ra   rö   r­   rý   r   rü   úOptional[int]rú   r–   r   r*   r   )r   s   "r   r    r    �  sV   € ÷ ñ ØðØ#ðØ36ðØ@CðØVYðàðà/2ðàCFðð ñr!   c                óp   € \        RR\        ^RV3^RV 3^RV3^RV3^RV3^RV3^RV3^RV3.4      V4      # )	uí   SendC2CMessageReq â†’ å®Œæ•´ ConnMsg bytesï¼ˆå�¯ç›´æŽ¥å�‘é€�ï¼‰ã€‚

msg_body items are {"msg_type": str, "msg_content": dict}; msg_id doubles as req_id when set;
group_code is filled for the "private chat originating from a group" case.
Úsend_c2c_messageÚc2crE   r‰   rŠ   r9   rR   r“   ©rØ   r�   )r÷   r   rö   r­   rý   rü   rú   r–   s   &&&&&&&&r   Úencode_send_c2c_messager,  �  ss   € ô Ð*¨E´=Ø	
ˆC�Ð˜1˜c :Ð.°°C¸Ð0FÈÈCÐQ[ÐH\Ø	
ˆC�Ð˜Q  ZÐ0°1°c¸7Ð2CÀaÈÈhÐEWðBó 4ð 	óð r!   c               ó@   € V ^8„  d   QhRRRRRRRRRRRRR	R
RRRRRR/
# )r   rú   rF   r   ra   rö   r­   r÷   Úrandomrü   r'  Ú
ref_msg_idr–   r   r*   r   )r   s   "r   r    r    ¬  s^   € ÷ ñ ØðØ#ðØ36ðØ@CðØVYðØhkðàðà/2ðàCFðð ñr!   c	                óx   € \        RR\        ^RV3^RV 3^RV3^RV3^RV3^RV3^RV3^RV3^	RV3.	4      V4      # )ue   SendGroupMessageReq â†’ å®Œæ•´ ConnMsg bytesã€‚to_account usually empty; ref_msg_id = quoted message.Úsend_group_messageÚgrprE   r‰   r9   rR   r“   r+  )	rú   r   rö   r­   r÷   r.  rü   r/  r–   s	   &&&&&&&&&r   Úencode_send_group_messager3  ¬  s   € ô
 Ð,¨e´]Ø	
ˆC�Ð˜1˜c :Ð.°°C¸Ð0FÈÈCÐQ[ÐH\Ð_`ÐbeÐgmÐ^nØ	
ˆC�Ð˜Q  ZÐ0°1°c¸7Ð2CÀaÈÈhÐEWðDó 6ð 	óð r!   c               ó@   € V ^8„  d   QhRRRRRRRRRRRRRRR	RR
RRR/
# )r   Úbiz_idrF   ÚuidÚsourceÚtokenr­   Úapp_versionÚoperation_systemÚbot_versionÚ	route_envr   r*   r   )r   s   "r   r    r    º  sj   € ÷ fñ fØðfØðfØ#&ðfØ/2ðfØ<?ðfØNQðfØjmðfàðfà&)ðfð ñfr!   c	           
     ó@  € \        ^RV3^RV3^
R\        \        4      3^RV3.4      p	\        ^RV 3^R\        ^V4      \        ^V4      ,           \        ^V4      ,           3^RV	3^RV3.4      p
\	        \
        R,          \        R,          V\        R,          V
4      # )uÞ   auth-bind è¯·æ±‚ ConnMsg bytesã€‚

AuthBindReq: 1 biz_id, 2 auth_info (AuthInfo{1 uid, 2 source, 3 token}),
  3 device_info (DeviceInfo{1 app_version, 2 app_operation_system, 10 instance_id, 24 bot_version}),
  5 env_name
rE   r‰   r   r   r   r   )r�   rF   ÚHERMES_INSTANCE_IDrP   rÇ   rÍ   ÚCMDÚMODULE)r5  r6  r7  r8  r­   r9  r:  r;  r<  Údev_bufÚreq_bufs   &&&&&&&&&  r   Úencode_auth_bindrC  º  s¾   € ô Ø	
ˆC�Ð  3Ð(8Ð9¸BÀÄSÔI[ÓE\Ð;]Ð`bÐdgÐitÐ_uðó €Gô Ø	
ˆC�Ð˜1˜c¤2 a¨£:´°1°f³Õ#=ÄÀ1ÀeÃÕ#LÐMÐPQÐSVÐX_ÐO`ÐcdÐfiÐktÐbuðó €Gô œ )Õ,¬c°*­o¸vÄvÈlÕG[Ð]dÓeÐer!   c               ó    € V ^8„  d   QhRRRR/# )r   r­   rF   r   r*   r   )r   s   "r   r    r    Í  s   € ÷ Yñ Y˜ð Y ñ Yr!   c                ó`   € \        \        R,          \        R,          V \        R,          4      # )u3   ping è¯·æ±‚ ConnMsg bytesï¼ˆPingReq ä¸ºç©ºæ¶ˆæ�¯ï¼‰r   r	   r   )rÇ   rÍ   r?  r@  )r­   s   &r   Úencode_pingrF  Í  s!   € äœ )Õ,¬c°&­k¸6Ä6È,ÕCWÓXÐXr!   c               ó    € V ^8„  d   QhRRRR/# )r   Úoriginal_headrm   r   r*   r   )r   s   "r   r    r    Ò  s   € ÷ ñ  4ð ¨Eñ r!   c           	     ó”   € \        \        R,          V P                  RR4      V P                  RR4      V P                  RR4      4      # )u=   push ACK å›žåŒ…ï¼ˆå›žæ˜¾åŽŸ head çš„ cmd / msg_id / moduleï¼‰r   r«   r¢   r­   r®   )rÇ   rÍ   ro   )rH  s   &r   Úencode_push_ackrJ  Ò  sH   € äÜ�Õ˜]×.Ñ.¨u°bÓ9¸=×;LÑ;LÈXÐWYÓ;ZÐ\i×\mÑ\mÐnvÐxzÓ\{óð r!   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rö   rF   r÷   Ú	heartbeatr   r   r*   r   )r   s   "r   r    r    Ü  s0   € ÷ yñ y°ð yÀð yÐQTð yÐpuñ yr!   c           	     ót   € \        RR\        ^V 4      \        ^V4      ,           \        ^V4      ,           4      # )uj   SendPrivateHeartbeatReq{1 from_account, 2 to_account, 3 heartbeat (RUNNING=1, FINISH=2)} â†’ ConnMsg bytesÚsend_private_heartbeatÚhb_priv©rØ   rP   rU   )rö   r÷   rL  s   &&&r   Úencode_send_private_heartbeatrQ  Ü  s7   € äÐ0°)¼RÀÀ<Ó=PÔSUÐVWÐYcÓSdÕ=dÔgiÐjkÐmvÓgwÕ=wÓxÐxr!   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   rö   rF   rú   rL  r   Ú	send_timer   r*   r   )r   s   "r   r    r    á  s4   € ÷ ?ñ ?Øð?Ø#&ð?Ø36ð?ØZ]ð?à
ñ?r!   c                ó  € T;'       g&    \        \        P                  ! 4       R,          4      p\        ^V 4      \        ^R4      ,           \        ^V4      ,           \        ^V4      ,           \        ^V4      ,           p\	        RRV4      # )u�   SendGroupHeartbeatReq{1 from_account, 2 to_account (ç¾¤åœºæ™¯ç•™ç©º), 3 group_code,
4 send_time (ms; 0 â†’ now), 5 heartbeat} â†’ ConnMsg bytesiè  r¢   Úsend_group_heartbeatÚhb_grp)r   r  rP   rU   rØ   )rö   rú   rL  rS  Útsr›   s   &&&&  r   Úencode_send_group_heartbeatrX  á  sl   € ð
 
×	-Ð	-”cœ$Ÿ)š)›+¨Õ,Ó-€BÜ
ˆQ�Ó
¤ 1 b£	Õ
)¬B¨q°*Ó,=Õ
=ÄÀ1ÀbÃ	Õ
IÌBÈqÐR[ÓL\Õ
\€CÜÐ.°¸#Ó>Ð>r!   c               ó    € V ^8„  d   QhRRRR/# )r   rú   rF   r   r*   r   )r   s   "r   r    r    ë  s   € ÷ Fñ F¨ð F°ñ Fr!   c                ó0   € \        RR\        ^V 4      4      # )u1   QueryGroupInfoReq{1 group_code} â†’ ConnMsg bytesÚquery_group_infoÚqgi)rØ   rP   )rú   s   &r   Úencode_query_group_infor]  ë  s   € äÐ*¨E´2°a¸Ó3DÓEÐEr!   c               ó    € V ^8„  d   QhRRRR/# r  r   )r   s   "r   r    r    ð  s   € ÷ ñ  eð °ñ r!   c           	     óÔ  €  \        V 4      pR\        V^4      /p\        V^4      '       d   \        V^4      VR&   VP                  ^. 4      pV'       d   V^ ,          ^,          MRpV'       d(   \	        V\
        \        34      '       d   \        V4      M/ pVP                  \        V^4      \        V^4      \        V^4      \        V^4      R7       V#   \         d     R# i ; i)u
  QueryGroupInfoRsp{1 code, 2 message, 3 GroupInfo{1 group_name, 2 group_owner_user_id,
3 group_owner_nickname, 4 group_size}} â†’ {code, message?, group_name, owner_id, owner_nickname,
member_count}ï¼ˆå¯¹é½� TS member.ts queryGroupInfoï¼‰ï¼›è§£æž�å¤±è´¥è¿”å›ž Noneã€‚ÚcodeÚmessager!   )rû   Úowner_idÚowner_nicknameÚmember_countN)	rj   r~   r{   ro   rw   r*   rx   ré   r  )r2   rl   r7   Ú
gi_entriesÚgi_bytesÚgis   &     r   Údecode_query_group_info_rsprh  ð  sÖ   € ðÜ˜DÓ!ˆØ¤¨E°1Ó 5Ð6ˆÜ�u˜a× Ò Ü +¨E°1Ó 5ˆF�9Ñà—Y‘Y˜q "Ó%ˆ
ß'1�:˜a•= Ö#°sˆß&.´:¸hÌÔPYÐHZ×3[Ò3[Œ[˜Ô"ÐacˆØ�‰Ü" 2 qÓ)´KÀÀAÓ4FÔWbÐceÐghÓWiÜ$ R¨Ó+ð 	ô 	
ð ˆøÜô Úðús   ‚AC ÁC Á0A'C ÃC'Ã&C'c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rú   rF   Úoffsetr   Úlimitr   r*   r   )r   s   "r   r    r      s/   € ÷ ñ ¨Sð ¸#ð È#ð ÐX]ñ r!   c           	     óˆ   € \        RR\        ^V 4      V'       d   \        ^V4      MR,           \        ^V4      ,           4      # )uH   GetGroupMemberListReq{1 group_code, 2 offset, 3 limit} â†’ ConnMsg bytesÚget_group_member_listÚgmlr!   rP  )rú   rj  rk  s   &&&r   Úencode_get_group_member_listro    s;   € äÐ/°¼¸1¸jÓ8I×^dÌRÐPQÐSYÌ]ÐjmÕ8nÔqsÐtuÐw|Óq}Õ8}Ó~Ð~r!   c               ó    € V ^8„  d   QhRRRR/# r  r   )r   s   "r   r    r      s   € ÷ ñ ¨5ð °^ñ r!   c                ó  €  \        V 4      p\        V^4       Uu. uFA  pR\        V^4      R\        V^4      R\        V^4      R\        V^4      R\        V^4      /NKC  	  ppR\        V^4      R\        V^4      RV UUUu. uF7  qDP	                  4        UUu/ uF  w  rVV'       g
   VR8X  g   K  WVbK  	  uppNK9  	  upppR	\        V^4      R
\        \        V^4      4      /# u upi u uppi u upppi   \         d     R# i ; i)u  GetGroupMemberListRsp{1 code, 2 message, 3 members (repeated MemberInfo), 4 next_offset, 5 is_complete}ï¼›
MemberInfo{1 user_id, 2 nickname, 3 role (0=member,1=admin,2=owner), 4 join_time, 5 name_card (ç¾¤æ˜µç§°)}ã€‚
member dict è¿‡æ»¤ç©ºå€¼ä½†ä¿�ç•™ roleï¼›è§£æž�å¤±è´¥è¿”å›ž Noneã€‚Úuser_idÚnicknameÚroleÚ	join_timeÚ	name_cardr`  ra  ÚmembersÚnext_offsetÚis_completeN)rj   r‡   r{   r~   rá   r°   r  )r2   rl   r   rw  Úmemr   rŠ   s   &      r   Ú decode_get_group_member_list_rspr{    s  € ðÜ˜DÓ!ˆô % U¨AÔ.ó
ñ /�ð œ A qÓ)¨:´{À1ÀaÓ7HÈ&ÔR]Ð^_ÐabÓRcØœ+ a¨Ó+¨[¼+ÀaÈÓ:KóMá.ð 	ð 
ð ”K  qÓ)¨9´kÀ%ÈÓ6KØÑV]Õ^ÑV]Ès¯)©)¬+ÔJ©+¡$ !¿¸aÀ6¹kœ˜š©+ÕJÑV]Ó^Øœ; u¨aÓ0°-ÄÄkÐRWÐYZÓF[ÓA\ð
ð 	
ùò
ùó KùÔ^øô ô ÚðúsM   ‚C9 ›AC'Á"!C9 ÂC2ÂC,Â2C,Â8C2Ã &C9 Ã'C9 Ã,C2Ã2C9 Ã9DÄD)ÚConnMsgÚAuthBindReqÚAuthBindRspÚPingReqÚPingRspÚ
KickoutMsgÚDirectedPushÚPushMsg)ÚInboundMessagePush)ÚSendC2CMessageÚSendGroupMessageÚQueryGroupInfoÚGetGroupMemberListÚSendPrivateHeartbeatÚSendGroupHeartbeatl   ÿÿ )r¢   )é    )r!   )rE   Úr)Fr‹  )F))r•   r  rE   )r   ÚuuidrE   )é   r2   rE   )é   ÚdescrE   )é   ÚextrE   )é   ÚsoundrE   )é
   ÚurlrE   )é   Ú	file_namerE   )r?   Úimage_formatÚi)é	   Úindexrš  )é   Ú	file_sizerš  ))r•   r  rš  )r   Úsizerš  )r?   Úwidthrš  )rŽ  Úheightrš  )r�  r–  rŒ  )r•   r¤   rE   )r   r)   rE   ))r•   r  rE   )r   r–  rE   )rŽ  r˜  rE   )r�  rž  rš  )é   Úmedia_idrE   )r¢   r‹  Nr¢   r¢   )r¢   r¢   r¢   Nr¢   r¢   )r¢   r¢   r¢   r¢   )r‹  éÈ   )RÚ__doc__Ú
__future__r   Ú	threadingr  Útypingr   ÚPB_MSG_TYPESrÍ   r?  r@  r×   ÚtupleÚBIZ_SERVICESr>  ÚWS_HEARTBEAT_RUNNINGÚWS_HEARTBEAT_FINISHÚLockr#   r$   r%   r'   rT   ÚWT_64BITrO   ÚWT_32BITr[   r0   r:   r@   rC   rJ   rP   rU   rX   r_   rg   rj   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,  r3  rC  rF  rJ  rQ  rX  r]  rh  ro  r{  )rR   s   0r   Ú<module>r±     s�  ðñõ #ã Û Ý ñ
 vóáuˆð Ð	" 1 #Ð&Ò&Ùuñ€ð
 �q˜* a¨°°I¸qÐA€Ø�; ¨°	¸9ÀlÐTaÐb€Ø
˜Ð	&€ð $€ð %§u uñ -ñJó-§u¡uñ -ñJó-ó (ö óñˆð ˆ(ˆ�1�Q�CÐÒññ€ð Ð ØÐ ØÐ à�NŠNÓ€	Ø€Ø€õð €	Ø€Ø	
€Ø€Ø˜˜H aÐ(€õ õõ Cõ&õ
.õ
8õ;õ9õõ,õ0õF÷e÷
4÷
Jõ
IõDð ˆˆS�"�c˜2˜s B¨¨RØÑ	WØÑ	5ð€õð €
õõ÷õ÷.õDõ
p÷TõMõ
÷YòÐ ò
 pÐ Ø"Ð$5Ð6€õõõ~õ
{ð Ð˜KÐ(¨1¨n¸kÐ*JÈQÐP\Ð^iÐLjØÐ˜;Ð'¨!¨Z¸Ð)EÈÈ<ÐYdÐGeØˆ�kÐ" Q¨	°;Ð$?À!À\ÐS^ÐA_Øˆ�[Ð! B¨	°;Ð#?À"ÀhÐP[ÐA\ØˆÑfÐgØÐ	˜kÐ*¨R°¸{Ð,KÈbÐR`ÐbmÐMnØÐ	ñ !nð oàˆ˜+Ð&¨Ð-FÈÐ(TØˆÑqÐrðÐ õò* DÐ õõ`õ

÷÷÷fõ&Yõ
ð Xl÷ yð :NÐ`a÷?õFõ
÷,÷
ùòyùòs   ›I3Á8I8