+
    üÐjXD  ã                   ó"  € R t ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt  ! R R	]P                   4      t ! R
 R4      t ! R R]	P&                  4      t ! R R]P*                  4      t ! R R]P*                  4      tR# )z_
Tests for L{twisted.protocol.socks}, an implementation of the SOCKSv4 and
SOCKSv4a protocols.
N)ÚaddressÚdefer)ÚDNSLookupError)Úsocks)Ú	iterbytes)Úproto_helpers)Úunittestc                   ó:   a € ] tR t^t o RtRtR tR tR tRt	V t
R# )ÚStringTCPTransportFNc                ó   € V P                   # )N)Úpeer©Úselfs   &Ú9/usr/lib/python3/dist-packages/twisted/test/test_socks.pyÚgetPeerÚStringTCPTransport.getPeer   s   € Ø�y‰yÐó    c                ó2   € \         P                  ! R R^*4      # )ÚTCPz2.3.4.5)r   ÚIPv4Addressr   s   &r   ÚgetHostÚStringTCPTransport.getHost   s   € Ü×"Ò" 5¨)°RÓ8Ð8r   c                ó   € R V n         R# )TN©ÚstringTCPTransport_closingr   s   &r   ÚloseConnectionÚ!StringTCPTransport.loseConnection   s
   € Ø*.ˆÖ'r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r
   r
      s$   ø‡ € Ø!&ÐØ€Dòò9÷/ð /r   r
   c                   ó0   a € ] tR t^"t o RtR tR tRtV tR# )ÚFakeResolverReactorzH
Bare-bones reactor with deterministic behavior for the resolve method.
c                ó   € Wn         R# )z£
@type names: L{dict} containing L{str} keys and L{str} values.
@param names: A hostname to IP address mapping. The IP addresses are
    stringified dotted quads.
N©Únames)r   r)   s   &&r   Ú__init__ÚFakeResolverReactor.__init__'   s	   € ð Ž
r   c           	     óÞ   €  \         P                  ! V P                  V,          4      #   \         d9    \         P                  ! \        RTP                  R4      ,           4      4      u # i ; i)zA
Resolve a hostname by looking it up in the C{names} dictionary.
z"FakeResolverReactor couldn't find zutf-8)r   Úsucceedr)   ÚKeyErrorÚfailr   Údecode)r   Úhostnames   &&r   ÚresolveÚFakeResolverReactor.resolve/   sX   € ð	Ü—=’= §¡¨HÕ!5Ó6Ð6øÜô 	Ü—:’:ÜØ8¸8¿?¹?È7Ó;SÕSóóò ð	ús   ‚&) ©A A,Á+A,r(   N)	r   r   r   r    Ú__doc__r*   r2   r!   r"   r#   s   @r   r&   r&   "   s   ø‡ € ñò÷ð r   r&   c                   ó4   a € ] tR t^=t o RtRtR tR tRtV t	R# )ÚSOCKSv4DriverNc                óÐ   € V! V!  p\        4       Vn        \        P                  ! R W4      VP                  n        VP                  4        WPn        \        P                  ! V4      # )r   )	r
   Ú	transportr   r   r   ÚconnectionMadeÚdriver_outgoingr   r-   )r   ÚhostÚportÚklassÚargsÚprotos   &&&&* r   ÚconnectClassÚSOCKSv4Driver.connectClassD   sO   € á�t‘ˆÜ,Ó.ˆŒÜ&×2Ò2°5¸$ÓEˆ�‰ÔØ×ÑÔØ$ÔÜ�}Š}˜UÓ#Ð#r   c                ó\   € V! V!  pW@n         V^ 8X  d   Rp\        P                  ! RV34      # )é    éÒ  ú6.7.8.9)Údriver_listenr   r-   )r   r<   r=   r>   Úfactorys   &&&* r   ÚlistenClassÚSOCKSv4Driver.listenClassM   s1   € á˜‘,ˆØ$ÔØ�1Œ9ØˆDÜ�}Š}˜i¨Ð.Ó/Ð/r   )rF   r:   )
r   r   r   r    r:   rF   r@   rH   r!   r"   r#   s   @r   r6   r6   =   s    ø‡ € à€Oð €Mò$÷0ð 0r   r6   c                   óT   a € ] tR t^Vt o RtR tR tR tR tR t	R t
R tR	 tR
tV tR# )ÚConnectTestszN
Tests for SOCKS and SOCKSv4a connect requests using the L{SOCKSv4} protocol.
c                óÂ   € \        4       V n        \        4       V P                  n        V P                  P	                  4        \        R R/4      V P                  n        R# ©s	   localhostú	127.0.0.1N©r6   Úsockr
   r8   r9   r&   Úreactorr   s   &r   ÚsetUpÚConnectTests.setUp[   ó@   € Ü!“OˆŒ	Ü0Ó2ˆ�	‰	ÔØ�	‰	× Ñ Ô"Ü/°¸{Ð0KÓLˆ�	‰	Ör   c                óŠ   € V P                   P                  pVe)   V P                  VP                  P                  R4       R # R # )Nz-Outgoing SOCKS connections need to be closed.)rP   r:   Ú
assertTruer8   r   )r   Úoutgoings   & r   ÚtearDownÚConnectTests.tearDowna   s:   € Ø—9‘9×,Ñ,ˆØÒØ�O‰OØ×"Ñ"×=Ñ=Ø?öñ  r   c           	     ó  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4       pV P                   P                  P                  4        V P                  V\        P                  ! R ^ ^Z^"4      \        P
                  ! R4      ,           4       V P                  V P                   P                  P                  4       V P                  V P                   P                  4       V P                   P                  R4       V P                  V P                   P                  P                  P                  4       R4       V P                   P                  P                  R4       V P                  V P                   P                  P                  4       R4       V P                   P                  R4       R# )ú!BBHú1.2.3.4ó   fooBARó    ó   hello, worldó   hi thereúfake reasonN)rP   ÚdataReceivedÚstructÚpackÚsocketÚ	inet_atonr8   ÚvalueÚclearÚassertEqualÚassertFalser   ÚassertIsNotNoner:   ÚconnectionLost)r   Úsents   & r   Útest_simpleÚConnectTests.test_simplei   sq  € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨RÓ0´6×3CÒ3CÀIÓ3NÕNô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHØ×Ñ˜TŸY™Y×6Ñ6Ô7ð 	�	‰	×Ñ˜Ô/Ø×Ñ˜Ÿ™×2Ñ2×<Ñ<×BÑBÓDÀoÔVð 	�	‰	×!Ñ!×.Ñ.¨{Ô;Ø×Ñ˜Ÿ™×,Ñ,×2Ñ2Ó4°kÔBà�	‰	× Ñ  Ö/r   c           	     ó>  € \         P                  ! R^^^"4      \        P                  ! R4      ,           R,           R,           p\	        V4       F  pV P
                  P                  V4       K   	  V P
                  P                  P                  4       pV P
                  P                  P                  4        V P                  V\         P                  ! R^ ^Z^"4      \        P                  ! R4      ,           4       V P                  V P
                  P                  P                  4       V P                  V P
                  P                  4       V P
                  P                  R4       V P                  V P
                  P                  P                  P                  4       R4       V P
                  P                  P                  R4       V P                  V P
                  P                  P                  4       R4       V P
                  P                  R4       R	# )
áE  
If the destination IP address has zeros for the first three octets and
non-zero for the fourth octet, the client is attempting a v4a
connection.  A hostname is specified after the user ID string and the
server connects to the address that hostname resolves to.

@see: U{http://en.wikipedia.org/wiki/SOCKS#SOCKS_4a_protocol}
r[   ú0.0.0.1ó   fooBAZ ó
   localhost rN   r_   r`   ra   N)rc   rd   re   rf   r   rP   rb   r8   rg   rh   ri   rj   r   rk   r:   rl   ©r   ÚclientRequestÚbyterm   s   &   r   Ú test_socks4aSuccessfulResolutionÚ-ConnectTests.test_socks4aSuccessfulResolution‚   s‹  € ô �KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õð 	ô ˜mÖ,ˆDØ�I‰I×"Ñ" 4Ö(ñ -ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#ð 	×ÑØ”&—+’+˜f a¨¨RÓ0´6×3CÒ3CÀKÓ3PÕPô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHØ×Ñ˜TŸY™Y×6Ñ6Ô7ð 	�	‰	×Ñ˜Ô/Ø×Ñ˜Ÿ™×2Ñ2×<Ñ<×BÑBÓDÀoÔVð 	�	‰	×!Ñ!×.Ñ.¨{Ô;Ø×Ñ˜Ÿ™×,Ñ,×2Ñ2Ó4°kÔBà�	‰	× Ñ  Ö/r   c           	     ó\  € \         P                  ! R^^^"4      \        P                  ! R4      ,           R,           R,           p\	        V4       F  pV P
                  P                  V4       K   	  V P
                  P                  P                  4       pV P                  V\         P                  ! R^ ^[^ 4      \        P                  ! R4      ,           4       V P                  V P
                  P                  P                  4       V P                  V P
                  P                  4       R# ©zs
Failed hostname resolution on a SOCKSv4a packet results in a 91 error
response and the connection getting closed.
r[   rr   rs   s   failinghost ú0.0.0.0N©rc   rd   re   rf   r   rP   rb   r8   rg   ri   rV   r   ÚassertIsNoner:   ru   s   &   r   Útest_socks4aFailedResolutionÚ)ConnectTests.test_socks4aFailedResolution°   óå   € ô �KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õð 	ô ˜mÖ,ˆDØ�I‰I×"Ñ" 4Ö(ñ -ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ×ÑØ”&—+’+˜f a¨¨QÓ/´&×2BÒ2BÀ9Ó2MÕMô	
ð
 	�‰˜Ÿ	™	×+Ñ+×FÑFÔGØ×Ñ˜$Ÿ)™)×3Ñ3Ö4r   c           	     óT  € R  V P                   n        V P                   P                  \        P                  ! R^^R4      \
        P                  ! R4      ,           R,           R,           4       V P                  V P                   P                  P                  4       \        P                  ! R^ ^[^ 4      \
        P                  ! R4      ,           4       V P                  V P                   P                  P                  4       V P                  V P                   P                  4       R# )c                 ó   € ^ # ©rC   © ©ÚcodeÚserverr<   Úusers   &&&&r   Ú<lambda>Ú0ConnectTests.test_accessDenied.<locals>.<lambda>Î   ó   € ¹qr   r[   é’  ú10.2.3.4r]   r^   r|   N)rP   Ú	authorizerb   rc   rd   re   rf   ri   r8   rg   rV   r   r~   r:   r   s   &r   Útest_accessDeniedÚConnectTests.test_accessDeniedÍ   sÕ   € Ù@ˆ�	‰	ÔØ�	‰	×ÑÜ�KŠK˜  1 dÓ+Ü×Ò˜zÓ*õ+àõð õô	
ð 	×ÑØ�I‰I×Ñ×%Ñ%Ó'Ü�KŠK˜  2 qÓ)¬F×,<Ò,<¸YÓ,GÕGô	
ð 	�‰˜Ÿ	™	×+Ñ+×FÑFÔGØ×Ñ˜$Ÿ)™)×3Ñ3Ö4r   c                ó\  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4        V P                   P                  R4       V P                  V P                   P                  P                  P                  4       R4       V P                   P                  P                  P                  4        V P                   P                  P                  R4       R# ©r[   r\   r]   r^   r_   ra   N)rP   rb   rc   rd   re   rf   r8   rh   ri   r:   rg   r   rl   r   s   &r   Útest_eofRemoteÚConnectTests.test_eofRemoteÜ   sÖ   € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð 	�	‰	×Ñ×!Ñ!Ô#ð 	�	‰	×Ñ˜Ô/Ø×Ñ˜Ÿ™×2Ñ2×<Ñ<×BÑBÓDÀoÔVð 	�	‰	×!Ñ!×+Ñ+×:Ñ:Ô<Ø�	‰	×!Ñ!×0Ñ0°Ö?r   c                óì  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4        V P                   P                  R4       V P                  V P                   P                  P                  P                  4       R4       V P                   P                  R4       R# r“   )rP   rb   rc   rd   re   rf   r8   rh   ri   r:   rg   rl   r   s   &r   Útest_eofLocalÚConnectTests.test_eofLocalí   s´   € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð 	�	‰	×Ñ×!Ñ!Ô#ð 	�	‰	×Ñ˜Ô/Ø×Ñ˜Ÿ™×2Ñ2×<Ñ<×BÑBÓDÀoÔVð 	�	‰	× Ñ  Ö/r   ©rP   N)r   r   r   r    r4   rR   rX   rn   rx   r   r�   r”   r—   r!   r"   r#   s   @r   rK   rK   V   s:   ø‡ € ñòMòò0ò2,0ò\5ò:5ò@÷"0ð 0r   rK   c                   óT   a € ] tR t^þt o RtR tR tR tR tR t	R t
R tR	 tR
tV tR# )Ú	BindTestszK
Tests for SOCKS and SOCKSv4a bind requests using the L{SOCKSv4} protocol.
c                óÂ   € \        4       V n        \        4       V P                  n        V P                  P	                  4        \        R R/4      V P                  n        R# rM   rO   r   s   &r   rR   ÚBindTests.setUp  rT   r   c           	     óæ  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4       pV P                   P                  P                  4        V P                  V\        P                  ! R ^ ^ZR4      \        P
                  ! R4      ,           4       V P                  V P                   P                  P                  4       V P                  V P                   P                  4       V P                   P                  P                  R4      pV P                  V4       \        4       Vn        VP!                  4        V P                   P                  P                  4       pV P                   P                  P                  4        V P                  V\        P                  ! R ^ ^Z^ 4      \        P
                  ! R4      ,           4       V P                  V P                   P                  P                  4       V P                   P                  R4       V P                  VP                  P                  4       R4       VP                  R4       V P                  V P                   P                  P                  4       R4       V P                   P#                  R	4       R
# )r[   r\   r]   r^   rD   rE   r|   r_   r`   ra   N©r\   éá  )rP   rb   rc   rd   re   rf   r8   rg   rh   ri   rj   r   rk   rF   ÚbuildProtocolr
   r9   rl   ©r   rm   Úincomings   &  r   rn   ÚBindTests.test_simple  s!  € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨TÓ2´V×5EÒ5EÀiÓ5PÕPô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHØ×Ñ˜TŸY™Y×4Ñ4Ô5ð —9‘9×*Ñ*×8Ñ8Ð9JÓKˆØ×Ñ˜XÔ&Ü/Ó1ˆÔØ×ÑÔ!ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨QÓ/´&×2BÒ2BÀ9Ó2MÕMô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHð 	�	‰	×Ñ˜Ô/Ø×Ñ˜×+Ñ+×1Ñ1Ó3°_ÔEð 	×Ñ˜kÔ*Ø×Ñ˜Ÿ™×,Ñ,×2Ñ2Ó4°kÔBà�	‰	× Ñ  Ö/r   c           	     ó  € \         P                  ! R^^^"4      \        P                  ! R4      ,           R,           R,           p\	        V4       F  pV P
                  P                  V4       K   	  V P
                  P                  P                  4       pV P
                  P                  P                  4        V P                  V\         P                  ! R^ ^ZR4      \        P                  ! R4      ,           4       V P                  V P
                  P                  P                  4       V P                  V P
                  P                  4       V P
                  P                  P                  R4      pV P                  V4       \!        4       Vn        VP#                  4        V P
                  P                  P                  4       pV P
                  P                  P                  4        V P                  V\         P                  ! R^ ^Z^ 4      \        P                  ! R4      ,           4       V P%                  V P
                  P                  P                  R4       V P
                  P                  R	4       V P                  VP                  P                  4       R	4       VP                  R	4       V P                  V P
                  P                  P                  4       R	4       V P
                  P'                  R
4       R# )rq   r[   rr   rs   rt   rD   rE   r|   Nr`   ra   )rN   r    )rc   rd   re   rf   r   rP   rb   r8   rg   rh   ri   rj   r   rk   rF   r¡   r
   r9   ÚassertIsNotrl   )r   rv   rw   rm   r£   s   &    r   Útest_socks4aÚBindTests.test_socks4a7  s=  € ô �KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õð 	ô ˜mÖ,ˆDØ�I‰I×"Ñ" 4Ö(ñ -ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#ð 	×ÑØ”&—+’+˜f a¨¨TÓ2´V×5EÒ5EÀiÓ5PÕPô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHØ×Ñ˜TŸY™Y×4Ñ4Ô5ð —9‘9×*Ñ*×8Ñ8Ð9LÓMˆØ×Ñ˜XÔ&Ü/Ó1ˆÔØ×ÑÔ!ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨QÓ/´&×2BÒ2BÀ9Ó2MÕMô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÈÔNð 	�	‰	×Ñ˜{Ô+Ø×Ñ˜×+Ñ+×1Ñ1Ó3°[ÔAð 	×Ñ˜kÔ*Ø×Ñ˜Ÿ™×,Ñ,×2Ñ2Ó4°kÔBà�	‰	× Ñ  Ö/r   c           	     ó\  € \         P                  ! R^^^"4      \        P                  ! R4      ,           R,           R,           p\	        V4       F  pV P
                  P                  V4       K   	  V P
                  P                  P                  4       pV P                  V\         P                  ! R^ ^[^ 4      \        P                  ! R4      ,           4       V P                  V P
                  P                  P                  4       V P                  V P
                  P                  4       R# r{   r}   ru   s   &   r   r   Ú&BindTests.test_socks4aFailedResolutionr  r�   r   c           	     óT  € R  V P                   n        V P                   P                  \        P                  ! R^^R4      \
        P                  ! R4      ,           R,           R,           4       V P                  V P                   P                  P                  4       \        P                  ! R^ ^[^ 4      \
        P                  ! R4      ,           4       V P                  V P                   P                  P                  4       V P                  V P                   P                  4       R# )c                 ó   € ^ # r„   r…   r†   s   &&&&r   rŠ   Ú-BindTests.test_accessDenied.<locals>.<lambda>�  rŒ   r   r[   r�   rŽ   r]   r^   r|   N)rP   r�   rb   rc   rd   re   rf   ri   r8   rg   rV   r   r~   rF   r   s   &r   r�   ÚBindTests.test_accessDenied�  sÕ   € Ù@ˆ�	‰	ÔØ�	‰	×ÑÜ�KŠK˜  1 dÓ+Ü×Ò˜zÓ*õ+àõð õô	
ð 	×ÑØ�I‰I×Ñ×%Ñ%Ó'Ü�KŠK˜  2 qÓ)¬F×,<Ò,<¸YÓ,GÕGô	
ð 	�‰˜Ÿ	™	×+Ñ+×FÑFÔGØ×Ñ˜$Ÿ)™)×1Ñ1Ö2r   c           	     óL  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4       pV P                   P                  P                  4        V P                   P                  P                  R4      pV P                  V4       \        4       Vn        VP                  4        V P                   P                  P                  4       pV P                   P                  P                  4        V P                  V\        P                  ! R ^ ^Z^ 4      \        P
                  ! R4      ,           4       V P                  V P                   P                  P                   4       V P                   P                  R4       V P                  VP                  P                  4       R4       VP                  P#                  4        VP%                  R4       R# ©	r[   r\   r]   r^   r|   r_   ra   NrŸ   )rP   rb   rc   rd   re   rf   r8   rg   rh   rF   r¡   rk   r
   r9   ri   rj   r   r   rl   r¢   s   &  r   r”   ÚBindTests.test_eofRemotež  s”  € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#ð —9‘9×*Ñ*×8Ñ8Ð9JÓKˆØ×Ñ˜XÔ&Ü/Ó1ˆÔØ×ÑÔ!ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨QÓ/´&×2BÒ2BÀ9Ó2MÕMô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHð 	�	‰	×Ñ˜Ô/Ø×Ñ˜×+Ñ+×1Ñ1Ó3°_ÔEð 	×Ñ×)Ñ)Ô+Ø×Ñ Ö.r   c           	     ó,  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4       pV P                   P                  P                  4        V P                   P                  P                  R4      pV P                  V4       \        4       Vn        VP                  4        V P                   P                  P                  4       pV P                   P                  P                  4        V P                  V\        P                  ! R ^ ^Z^ 4      \        P
                  ! R4      ,           4       V P                  V P                   P                  P                   4       V P                   P                  R4       V P                  VP                  P                  4       R4       V P                   P#                  R4       R# r°   )rP   rb   rc   rd   re   rf   r8   rg   rh   rF   r¡   rk   r
   r9   ri   rj   r   rl   r¢   s   &  r   r—   ÚBindTests.test_eofLocal¾  s†  € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#ð —9‘9×*Ñ*×8Ñ8Ð9JÓKˆØ×Ñ˜XÔ&Ü/Ó1ˆÔØ×ÑÔ!ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨QÓ/´&×2BÒ2BÀ9Ó2MÕMô	
ð 	×Ñ˜Ÿ™×,Ñ,×GÑGÔHð 	�	‰	×Ñ˜Ô/Ø×Ñ˜×+Ñ+×1Ñ1Ó3°_ÔEð 	�	‰	× Ñ  Ö/r   c           	     ó.  € V P                   P                  \        P                  ! R ^^^"4      \        P
                  ! R4      ,           R,           R,           4       V P                   P                  P                  4       pV P                   P                  P                  4        V P                   P                  P                  R4      pV P                  V4       V P                   P                  P                  4       pV P                   P                  P                  4        V P                  V\        P                  ! R ^ ^[^ 4      \        P
                  ! R4      ,           4       V P                  V P                   P                  P                  4       R# )r[   r\   r]   r^   r|   N)z1.6.6.6iš  )rP   rb   rc   rd   re   rf   r8   rg   rh   rF   r¡   r~   ri   rV   r   r¢   s   &  r   Útest_badSourceÚBindTests.test_badSourceÝ  s&  € Ø�	‰	×ÑÜ�KŠK˜  1 bÓ)Ü×Ò˜yÓ)õ*àõð õô	
ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#ð —9‘9×*Ñ*×8Ñ8Ð9IÓJˆØ×Ñ˜(Ô#ð �y‰y×"Ñ"×(Ñ(Ó*ˆØ�	‰	×Ñ×!Ñ!Ô#Ø×ÑØ”&—+’+˜f a¨¨QÓ/´&×2BÒ2BÀ9Ó2MÕMô	
ð 	�‰˜Ÿ	™	×+Ñ+×FÑFÖGr   r™   N)r   r   r   r    r4   rR   rn   r§   r   r�   r”   r—   rµ   r!   r"   r#   s   @r   r›   r›   þ   s=   ø‡ € ñòMò%0òN90òv5ò:3ò/ò@0÷>Hð Hr   r›   )r4   re   rc   Útwisted.internetr   r   Útwisted.internet.errorr   Útwisted.protocolsr   Útwisted.python.compatr   Útwisted.testr   Útwisted.trialr   ÚStringTransportr
   r&   ÚSOCKSv4r6   ÚTestCaserK   r›   r…   r   r   Ú<module>rÀ      s{   ðñó
 Û ç +Ý 1Ý #Ý +Ý &Ý "ô/˜×6Ñ6ô /÷ñ ô60�E—M‘Mô 0ô2e0�8×$Ñ$ô e0ôPtH�×!Ñ!ö tHr   