+
    üÐjW  ã                  ó†   € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RI	H
t
Ht ^ RIHt ^ RIHt R R	 lt ! R
 R4      tR# )é    )ÚannotationsN)ÚAny)ÚisIPAddressÚisIPv6Address)ÚDeferredÚsucceed)ÚMulticastJoinError)ÚIReactorCorec               ó$   € V ^8„  d   QhRRRRRR/# )é   Úreactorr
   ÚaddrÚstrÚreturnzDeferred[str]© )Úformats   "Ú=/usr/lib/python3/dist-packages/twisted/internet/_multicast.pyÚ__annotate__r      s!   € ÷ !ñ !˜<ð !¨sð !°}ñ !ó    c                ó~   € \        V4      '       g   \        V4      '       d   \        V4      # V P                  V4      # ©N)r   r   r   Úresolve)r   r   s   &&r   Ú_maybeResolver      s0   € Ü�T×Òœk¨$×/Ò/Ü�t‹}ÐØ�?‰?˜4Ó Ð r   c                  ó(  € ] tR t^t$ RtR]R&   R]R&   R]R&   R R	 lt]R
 R l4       t]R R l4       t	]R R l4       t
]R R l4       t]R R l4       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" R# lltR(R$ R% lltR&tR'# ))ÚMulticastMixinz$
Implement multicast functionality.
zsocket.AddressFamilyÚaddressFamilyr   r   zsocket.socketÚsocketc               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   Úbytesr   )r   s   "r   r   ÚMulticastMixin.__annotate__    s   € ÷ 
ñ 
˜cð 
 eñ 
r   c                óØ   €  \         P                  ! V P                  V4      #   \         d<    \	        R\         P
                  ! T P                  4      P                   RT: 24      hi ; i)z[
Pack an IP address literal into bytes, according to the address family
of this transport.
zinvalid address literal for z: )r   Ú	inet_ptonr   ÚOSErrorr	   ÚAddressFamilyÚname)Úselfr   s   &&r   Ú	_addrpackÚMulticastMixin._addrpack    sg   € ð
	Ü×#Ò# D×$6Ñ$6¸Ó=Ð=øÜô 	Ü$Ø.¬v×/CÒ/CÀD×DVÑDVÓ/W×/\Ñ/\Ð.]Ð]_Ð`dÑ_gÐhóð ð	ús
   ‚ # £AA)c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   r    -   ó   € ÷ 
ñ 
˜#ñ 
r   c                	ó€   € V P                   \        P                  8X  d   \        P                  # \        P                  # r   )r   r   ÚAF_INETÚ
IPPROTO_IPÚIPPROTO_IPV6©r&   s   &r   Ú_ipprotoÚMulticastMixin._ipproto,   s6   € ð ×!Ñ!¤V§^¡^Ô3ô ×Ñð	
ô ×$Ñ$ð	
r   c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   r    5   ó   € ÷ 
ñ 
˜Cñ 
r   c                	ó€   € V P                   \        P                  8X  d   \        P                  # \        P                  # r   )r   r   r.   ÚIP_MULTICAST_LOOPÚIPV6_MULTICAST_LOOPr1   s   &r   Ú
_multiloopÚMulticastMixin._multiloop4   s6   € ð ×!Ñ!¤V§^¡^Ô3ô ×$Ñ$ð	
ô ×+Ñ+ð	
r   c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   r    =   r,   r   c                	ó€   € V P                   \        P                  8X  d   \        P                  # \        P                  # r   )r   r   r.   ÚIP_MULTICAST_IFÚIPV6_MULTICAST_IFr1   s   &r   Ú_multiifÚMulticastMixin._multiif<   s6   € ð ×!Ñ!¤V§^¡^Ô3ô ×"Ñ"ð	
ô ×)Ñ)ð	
r   c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   r    E   r5   r   c                	ó€   € V P                   \        P                  8X  d   \        P                  # \        P                  # r   )r   r   r.   ÚIP_ADD_MEMBERSHIPÚIPV6_JOIN_GROUPr1   s   &r   Ú
_joingroupÚMulticastMixin._joingroupD   s6   € ð ×!Ñ!¤V§^¡^Ô3ô ×$Ñ$ð	
ô ×'Ñ'ð	
r   c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   r    M   s   € ÷ 
ñ 
˜Sñ 
r   c                	ó€   € V P                   \        P                  8X  d   \        P                  # \        P                  # r   )r   r   r.   ÚIP_DROP_MEMBERSHIPÚIPV6_LEAVE_GROUPr1   s   &r   Ú_leavegroupÚMulticastMixin._leavegroupL   s6   € ð ×!Ñ!¤V§^¡^Ô3ô ×%Ñ%ð	
ô ×(Ñ(ð	
r   c               ó   € V ^8„  d   QhRR/# )r   r   ú	str | intr   )r   s   "r   r   r    T   s   € ÷ 	7ñ 	7 iñ 	7r   c                	óf  € V P                   \        P                  8X  d   ^M^pV P                  pV P                  pV P                  P                  W#V4      p^ RIHp V P                   \        P                  8X  d   \        P                  WE4      # \        P                  ! V P                   V4      # )é   )Ú	byteorder)r   r   r.   r2   r?   Ú
getsockoptÚsysrQ   ÚAF_INET6r+   Ú
from_bytesÚ	inet_ntop)r&   ÚblenÚipprotoÚmultiifÚirQ   s   &     r   ÚgetOutgoingInterfaceÚ#MulticastMixin.getOutgoingInterfaceT   s   € Ø×(Ñ(¬F¯N©NÔ:‰sÀˆØ—-‘-ˆØ—-‘-ˆØ�K‰K×"Ñ" 7°TÓ:ˆÝ!à×Ñ¤§¡Ô0Ü—>‘> !Ó/Ð/Ü×Ò × 2Ñ 2°AÓ6Ð6r   c               ó    € V ^8„  d   QhRRRR/# )r   r   rN   r   zDeferred[int]r   )r   s   "r   r   r    _   s   € ÷ 8ñ 8¨ð 8°}ñ 8r   c                óP   a a€ R VV 3R llp\         P                  ! V! 4       4      # )z3
@see: L{IMulticastTransport.setOutgoingInterface}
c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   Ú9MulticastMixin.setOutgoingInterface.<locals>.__annotate__d   s   € ÷ 	ñ 	 cñ 	r   c               “  óˆ  <"  € SP                   \        P                  8X  dL   \        S\        4      '       g   Q R 4       hSP                  \        SP                  S4      G Rj  x€L
 4      p M\        S\        4      '       g   Q R4       hSp SP                  P                  SP                  SP                  V 4       ^#  L[5i)z*IPv4 interfaces are specified as addressesNz)IPv6 interfaces are specified as integers)r   r   r.   Ú
isinstancer   r'   r   r   r+   Ú
setsockoptr2   r?   )rZ   r   r&   s    €€r   ÚasynchronouslyÚ;MulticastMixin.setOutgoingInterface.<locals>.asynchronouslyd   s®   øé € à×!Ñ!¤V§^¡^Ô3Ü!Øœ#÷ò ð @à?ó@ð ð —N‘N¬°t·|±|ÀTÓ)J×#JÓK‘ä!Øœ#÷ò ð ?à>ó?ð ð �Ø�K‰K×"Ñ" 4§=¡=°$·-±-ÀÔCÙñ $Kùs   ƒA!CÁ$C Á%AC)r   ÚfromCoroutine)r&   r   rd   s   ff r   ÚsetOutgoingInterfaceÚ#MulticastMixin.setOutgoingInterface_   s#   ù€ ÷
	ñ 	ô ×%Ò%¡nÓ&6Ó7Ð7r   c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   r    u   s   € ÷ Lñ L ñ Lr   c                	ót   € \        V P                  P                  V P                  V P                  4      4      # r   )rj   r   rR   r2   r9   r1   s   &r   ÚgetLoopbackModeÚMulticastMixin.getLoopbackModeu   s&   € Ü�D—K‘K×*Ñ*¨4¯=©=¸$¿/¹/ÓJÓKÐKr   c               ó    € V ^8„  d   QhRRRR/# )r   Úmoder+   r   ÚNoner   )r   s   "r   r   r    x   s   € ÷ 6ñ 6 Cð 6¨Dñ 6r   c           	     	ó’   € V P                   pV P                  pV P                  P                  W#\	        \        V4      4      4       R # r   )r2   r9   r   rc   r+   rj   )r&   ro   ÚaÚbs   &&  r   ÚsetLoopbackModeÚMulticastMixin.setLoopbackModex   s0   € à�M‰MˆØ�O‰OˆØ�‰×Ñ˜q¤S¬¨d«£_Ö5r   c               ó   € V ^8„  d   QhRR/# r*   r   )r   s   "r   r   r    ~   s   € ÷ Rñ R˜ñ Rr   c                	ór   € V P                   P                  \         P                  \         P                  4      # r   )r   rR   r/   ÚIP_MULTICAST_TTLr1   s   &r   ÚgetTTLÚMulticastMixin.getTTL~   s%   € Ø�{‰{×%Ñ%¤f×&7Ñ&7¼×9PÑ9PÓQÐQr   c               ó    € V ^8„  d   QhRRRR/# )r   Úttlr+   r   rp   r   )r   s   "r   r   r    �   s   € ÷ Qñ Q˜#ð Q $ñ Qr   c                	ó¦   € \         P                  ! R V4      pV P                  P                  \        P                  \        P
                  V4       R# )ÚBN)ÚstructÚpackr   rc   r/   rx   )r&   r|   Úbttls   && r   ÚsetTTLÚMulticastMixin.setTTL�   s4   € Ü�{Š{˜3 Ó$ˆØ�‰×Ñœv×0Ñ0´&×2IÑ2IÈ4ÖPr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   Ú	interfaceÚjoinrj   r   úDeferred[None]r   )r   s   "r   r   r    …   s(   € ÷ .ñ .˜sð .¨sð .¸$ð .À>ñ .r   c                	óî   a aaa€ V'       d   S P                   MS P                  oS'       g$   S P                  \        P                  8X  d   R MRoR VVVV 3R llp\
        P                  ! V! 4       4      # )z0.0.0.0z::c               ó   € V ^8„  d   QhRR/# )r   r   rp   r   )r   s   "r   r   Ú/MulticastMixin._joinleave.<locals>.__annotate__Š   s   € ÷ 		Jñ 		J˜Dñ 		Jr   c               “  óˆ  <"  € \        SP                  S4      G R j  x€L
 p \        SP                  S4      G R j  x€L
 pSP                  V 4      pSP                  V4      p SP                  P	                  SP
                  SW#,           4       R #  Lt LX  \         d   p\        SS.TP                  O5!  ThR p?ii ; i5ir   )	r   r   r'   r   rc   r2   r#   r	   Úargs)	ÚresaddrÚresifÚpackaddrÚpackifÚer   Úcmdr…   r&   s	        €€€€r   ÚimplÚ'MulticastMixin._joinleave.<locals>.implŠ   sž   øé € Ü)¨$¯,©,¸Ó=×=ˆGÜ'¨¯©°iÓ@×@ˆEà—~‘~ gÓ.ˆHØ—^‘^ EÓ*ˆFðJØ—‘×&Ñ& t§}¡}°c¸8Õ;LÖMñ >Ù@øô ô JÜ(¨¨yÐB¸1¿6¹6ÓBÈÐIûðJüsC   ƒC�BžC»B¼&CÁ#-B ÂCÂCÂB?Â!B:Â:B?Â?C)rE   rK   r   r   r.   r   rf   )r&   r   r…   r†   r“   r’   s   fff& @r   Ú
_joinleaveÚMulticastMixin._joinleave…   sR   û€ ß!%ˆd�oŠo¨4×+;Ñ+;ˆßØ%)×%7Ñ%7¼6¿>¹>Ô%I™	ÈtˆI÷		Jó 		Jô ×%Ò%¡d£fÓ-Ð-r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   r   r   r…   r   r‡   r   )r   s   "r   r   r    —   s!   € ÷ 6ñ 6˜cð 6¨cð 6¸>ñ 6r   c                ó&   € V P                  WR4      # )z(
@see: L{IMulticastTransport.joinGroup}
T©r•   ©r&   r   r…   s   &&&r   Ú	joinGroupÚMulticastMixin.joinGroup—   s   € ð �‰˜t°Ó5Ð5r   c               ó$   € V ^8„  d   QhRRRRRR/# r˜   r   )r   s   "r   r   r    �   s!   € ÷ 7ñ 7˜sð 7¨sð 7¸Nñ 7r   c                ó&   € V P                  WR4      # )z)
@see: L{IMulticastTransport.leaveGroup}
Frš   r›   s   &&&r   Ú
leaveGroupÚMulticastMixin.leaveGroup�   s   € ð �‰˜t°Ó6Ð6r   r   N)Ú )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r'   Úpropertyr2   r9   r?   rE   rK   r[   rg   rl   rt   ry   r‚   r•   rœ   r    Ú__static_attributes__r   r   r   r   r      s¸   ‡ ñð (Ó'ØƒLØÓõ
ð ô
ó ð
ð ô
ó ð
ð ô
ó ð
ð ô
ó ð
ð ô
ó ð
õ	7õ8õ,Lõ6õRõQõ.÷$6÷7ó 7r   r   )Ú
__future__r   r   r   Útypingr   Útwisted.internet.abstractr   r   Útwisted.internet.deferr   r   Útwisted.internet.errorr	   Útwisted.internet.interfacesr
   r   r   r   r   r   Ú<module>r±      s0   ðõ
 #ã Û Ý ç @ß 4Ý 5Ý 4õ!÷J7ó J7r   