Ë
    ")f@—  ã                   ó@  — d dl mZmZmZmZmZmZmZ d dlZddl	m
Z
mZmZmZmZ ddlmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z& dd	l'm(Z(m)Z)m*Z* d*d„Z+d*d„Z,d*d„Z-d*d„Z.d*d„Z/d*d„Z0d*d„Z1d*d„Z2d*d„Z3d*d„Z4d*d„Z5d*d„Z6d*d„Z7d*d„Z8d*d„Z9d*d„Z:d*d„Z;d*d„Z<d*d„Z=d*d„Z>d*d„Z?d*d „Z@d*d!„ZAd*d"„ZBej†                  j‰                  d#g d$¢«      d#eEd
dfd%„«       ZFej†                  j‰                  d#g d&¢«      d#eEd
dfd'„«       ZGd*d(„ZHd*d)„ZIy)+é    )ÚAnyÚcastÚDictÚListÚOptionalÚTupleÚTypeNé   )Ú_body_framingÚ_keep_aliveÚ
ConnectionÚ	NEED_DATAÚPAUSED)ÚConnectionClosedÚDataÚEndOfMessageÚEventÚInformationalResponseÚRequestÚResponse)ÚCLIENTÚCLOSEDÚDONEÚERRORÚIDLEÚMIGHT_SWITCH_PROTOCOLÚ
MUST_CLOSEÚ	SEND_BODYÚSEND_RESPONSEÚSERVERÚSWITCHED_PROTOCOL)ÚLocalProtocolErrorÚRemoteProtocolErrorÚSentinelé   )ÚConnectionPairÚget_all_eventsÚreceive_and_getÚreturnc                  óž  — t        t        dddg¬«      «      sJ ‚t        t        ddddg¬«      «      rJ ‚t        t        ddddg¬«      «      rJ ‚t        t        ddg d¬«      «      rJ ‚t        t        d	g ¬
«      «      sJ ‚t        t        d	dg¬
«      «      rJ ‚t        t        d	dg¬
«      «      rJ ‚t        t        d	g d¬«      «      rJ ‚y )NÚGETú/)ÚHostzExample.com©ÚmethodÚtargetÚheaders©r   Úclose)r   za, b, cLOse, fooú1.0©r/   r0   r1   Úhttp_versionéÈ   ©Ústatus_coder1   ©r9   r1   r6   )r   r   r   © ó    úV/var/www/html/flask-app/venv/lib/python3.12/site-packages/h11/tests/test_connection.pyÚtest__keep_aliver>       sæ   € ÜÜu SÐ3JÐ2KÔLôñ ô ÜØØØ,Ð.EÐFô	
ôñ ô ÜØØØ,Ð.PÐQô	
ôñ ô Üu S°"À5ÔIôñ ô ”x¨C¸Ô<Ô=Ñ=Üœ8°Ð>UÐ=VÔWÔXÑXÜÜ˜SÐ+MÐ*NÔOôñ ô œ8°¸RÈeÔTÔUÑUÐUr<   c            	      ó.  ‡— dt         t           dt        dt        t        t
        t
        f      fd„Š	 ddt        dt         t           dt        dt        fˆfd„} ddt         t           dt        dt        fˆfd„}i ddidd	idd	d
œfD ]Y  }t        t        t
        t        f   |«      }d | di |¤Žfd | dddi|¤Žfd | dddi|¤ŽffD ]  \  }}t        ||«      dk(  rŒJ ‚ Œ[ dd	idd	d
œfD ]L  }t        t        t
        t        f   |«      }d  |di |¤Žfd | di |¤ŽffD ]  \  }}t        ||«      dk(  rŒJ ‚ ŒN d  |d¬«      fd | d¬«      ffD ]  \  }}t        ||«      dk(  rŒJ ‚ t        d  |«       «      dk(  sJ ‚t        d | «       «      dk(  sJ ‚y )NÚclÚter)   c                 ól   — g }| |j                  dt        | «      f«       |r|j                  d«       |S )NúContent-Length©zTransfer-EncodingÚchunked)ÚappendÚstr)r@   rA   r1   s      r=   r1   z#test__body_framing.<locals>.headers?   s7   € ØˆØˆ>ØN‰NÐ,¬c°"«gÐ6Ô7ÙØN‰NÐ;Ô<Øˆr<   r9   c                 ó,   •— t        |  ‰||«      ¬«      S )Nr8   )r   )r9   r@   rA   r1   s      €r=   Úrespz test__body_framing.<locals>.respG   s   ø€ ô  K¹ÀÀR»ÔIÐIr<   c                 ó>   •—  ‰| |«      }|dgz  }t        dd|¬«      S )N©r-   zexample.comr+   r,   r.   )r   )r@   rA   Úhr1   s      €r=   Úreqztest__body_framing.<locals>.reqL   s+   ø€ ÙB˜‹OˆØ	Ð%Ð&Ñ&ˆÜ˜e¨C¸Ô;Ð;r<   éd   T)r@   rA   ó   HEADó   GETéÌ   i0  )úcontent-length)r   )rE   r;   )r@   )rR   )rN   )zhttp/1.0r;   )r7   NF)NFr;   )r   ÚintÚboolr   r   rG   r   r   r   r   r   r   )rI   rM   ÚkwargsÚmethÚrr1   s        @r=   Útest__body_framingrX   >   s  ø€ ð”HœS‘Mð ¤tð ´´U¼3Ä¸8±_Ñ0Eó ð FKñJÜðJÜ$,¬S¡MðJÜ>BðJä	õJñ
<”œ‘ð <¬$ð <¼7õ <ð ˜˜c{ T¨4 L¸ÀDÑ2IÐJò FˆÜ”dœ3¤˜8‘n fÓ-ˆà‘d‘n˜V‘nÐ%Ø‘TÑ4 cÐ4¨VÑ4Ð5Ø‘TÑ4 cÐ4¨VÑ4Ð5ð
ò 	F‰GˆD!ô
 !  qÓ)Ð-EÓEÑEñ	FðFð ˜$<¨°4Ñ!8Ð9ò =ˆÜ”dœ3¤˜8‘n fÓ-ˆØ™s™} V™}Ð-°¹¹¸v¹Ð/GÐHò 	=‰GˆD!Ü   qÓ)¨_Ó<Ñ<ñ	=ð=ð ™3 #œ;Ð'¨&±$¸#´,Ð)?Ð@ò D‰ˆˆaÜ˜T 1Ó%Ð)CÓCÑCðDô ˜™s›uÓ%Ð)AÒAÑAÜ˜¡£Ó(Ð,<Ò<Ñ<Ð<r<   c            	      óº  — t        j                  t        «      5  t        d«       d d d «       t	        «       } | j
                  t           j                  t        u sJ ‚| j
                  t           j                  t        u sJ ‚| j
                  t           j                  t        u sJ ‚| j
                  t           j                  t        u sJ ‚| j                  t        t        ddddg¬«      «      }|dk(  sJ ‚| j                  D ]'  }|j                  t        t        t        t        ik(  rŒ'J ‚ | j
                  t           j                   t        u sJ ‚| j
                  t           j"                  t        u sJ ‚| j
                  t           j                   t        u sJ ‚| j
                  t           j"                  t        u sJ ‚| j
                  t           j$                  J ‚| j
                  t           j$                  dk(  sJ ‚| j                  t        t'        d	g ¬
«      «      }|dk(  sJ ‚| j                  t        t)        ddg¬
«      «      }|dk(  sJ ‚| j                  D ]'  }|j                  t        t        t        t        ik(  rŒ'J ‚ | j
                  t           j$                  dk(  sJ ‚| j
                  t           j$                  dk(  sJ ‚| j                  t        t+        d¬«      «      }|dk(  sJ ‚| j                  t        t+        d¬«      t+        d¬«      t-        «       g¬«      }|dk(  sJ ‚| j                  t        t-        «       g ¬«      }|dk(  sJ ‚| j                  D ]'  }|j                  t        t.        t        t        ik(  rŒ'J ‚ | j                  t        t+        d¬«      «      }|dk(  sJ ‚| j                  t        t+        d¬«      t+        d¬«      t-        «       g¬«      }|dk(  sJ ‚| j                  t        t-        «       g ¬«      }|dk(  sJ ‚| j                  D ]'  }|j                  t        t.        t        t.        ik(  rŒ'J ‚ y # 1 sw Y   Œ,xY w)Nr   r+   r,   rK   ©rC   Ú10r.   s9   GET / HTTP/1.1
Host: example.com
Content-Length: 10

ó   1.1rN   r8   s   HTTP/1.1 100 

r7   )rC   Ú11s%   HTTP/1.1 200 
Content-Length: 11

ó   12345©Údataó   67890©Úexpectr<   ó
   1234567890ó   1)ÚpytestÚraisesÚ
ValueErrorr   r&   Úconnr   Úour_roleÚ
their_roler    Úsendr   ÚconnsÚstatesr   r   Ú	our_stateÚtheir_stateÚtheir_http_versionr   r   r   r   r   ©Úpr`   ri   s      r=   Ú)test_Connection_basics_and_content_lengthrt   j   s‚  € Ü	‰”zÓ	"ñ Ü8Ô÷ô 	Ó€AØ6‰6”&‰>×"Ñ"¤fÑ,Ñ,Ø6‰6”&‰>×$Ñ$¬Ñ.Ñ.Ø6‰6”&‰>×"Ñ"¤fÑ,Ñ,Ø6‰6”&‰>×$Ñ$¬Ñ.Ñ.à6‰6ÜÜØØØ,Ð.FÐGô	
ó€Dð ØTòñ ð —‘ò IˆØ{‰{œv¤y´&¼-ÐHÓHÑHðIà6‰6”&‰>×#Ñ#¤yÑ0Ñ0Ø6‰6”&‰>×%Ñ%¬Ñ6Ñ6Ø6‰6”&‰>×#Ñ#¤}Ñ4Ñ4Ø6‰6”&‰>×%Ñ%¬Ñ2Ñ2à6‰6”&‰>×,Ñ,Ð4Ñ4Ø6‰6”&‰>×,Ñ,°Ò6Ñ6à6‰6”&Ô/¸CÈÔLÓM€DØÐ+Ò+Ñ+à6‰6”&œ(¨sÐ=UÐ<VÔWÓX€DØÐAÒAÑAà—‘ò EˆØ{‰{œv¤y´&¼)ÐDÓDÑDðEð 6‰6”&‰>×,Ñ,°Ò6Ñ6Ø6‰6”&‰>×,Ñ,°Ò6Ñ6à6‰6”&œ$ HÔ-Ó.€DØ8ÒÑØ6‰6Ü”˜(Ô#¬T°xÔ-@Ä,Ã.Ð,Qð ó €Dð 8ÒÑØ6‰6”&œ,›.°ˆ6Ó4€DØ3Š;Ñà—‘ò @ˆØ{‰{œv¤t¬V´YÐ?Ó?Ñ?ð@ð 6‰6”&œ$ MÔ2Ó3€DØ=Ò Ñ Ø6‰6”&œ$ Dœ/´4¸T´?ÄLÃNÐ2Sˆ6ÓT€DØ4Š<ÑØ6‰6”&œ,›.°ˆ6Ó4€DØ3Š;Ñà—‘ò ;ˆØ{‰{œv¤t¬V´TÐ:Ó:Ñ:ñ;÷}ñ ús   šQÑQc            	      ó  — t        «       } | j                  t        t        ddddg¬«      «       | j                  t        t	        ddd¬«      «      }|d	k(  sJ ‚| j                  t        t	        d
dd¬«      «      }|dk(  sJ ‚| j                  t        t	        d¬«      g ¬«      }|dk(  sJ ‚| j                  t        t        dg¬«      «      }|dk(  sJ ‚| j                  t        t        ddg¬«      «       | j                  t        t	        ddd¬«      «       | j                  t        t	        ddd¬«      «       | j                  t        t        «       «       | j                  D ]'  }|j                  t        t        t        t        ik(  rŒ'J ‚ y )Nr+   r,   rK   rD   r.   rd   T©r`   Úchunk_startÚ	chunk_ends   a
1234567890
s   abcdes
   5
abcde
r<   r_   rb   )ÚhelloÚthere)r1   s   0
hello: there

r7   r8   s   54321r^   )r&   rl   r   r   r   r   r    r   rm   rn   r   rr   s      r=   Útest_chunkedr{   ­   sJ  € ÜÓ€Aà‡FFÜÜØØØ,Ð.NÐOô	
ôð 6‰6”&œ$ M¸tÈtÔTÓU€DØÐ)Ò)Ñ)Ø6‰6”&œ$ H¸$È$ÔOÓP€DØÐ$Ò$Ñ$Ø6‰6”&œ$ Cœ.°ˆ6Ó4€DØ3Š;ÑØ6‰6”&œ,Ð0BÐ/CÔDÓE€DØÐ/Ò/Ñ/à‡FFÜ” SÐ3SÐ2TÔUôð ‡FFŒ6”4˜X°4À4ÔHÔIØ‡FFŒ6”4˜X°4À4ÔHÔIØ‡FFŒ6”<“>Ô"à—‘ò ;ˆØ{‰{œv¤t¬V´TÐ:Ó:Ñ:ñ;r<   c                  ód  — t        t        ¬«      } d}| j                  |«       | j                  «       t	        ddddg¬«      k(  sJ ‚| j                  «       t
        u sJ ‚| j                  d«       | j                  «       t        d	d
d
¬«      k(  sJ ‚| j                  d«       | j                  «       t        dd
d¬«      k(  sJ ‚| j                  d«       | j                  «       t        ddd¬«      k(  sJ ‚| j                  d«       | j                  «       t        ddd
¬«      k(  sJ ‚| j                  d«       | j                  «       t        d	d
d
¬«      k(  sJ ‚| j                  d«       | j                  «       t
        k(  sJ ‚| j                  d«       | j                  «       t        «       k(  sJ ‚y )N©rj   óB   POST / HTTP/1.1
Host: example.com
Transfer-Encoding: chunked

ÚPOSTr,   rK   rD   r.   s
   5
hello
s   helloTrv   s   5
hels   helFó   ls   o
ó   os   5
helloó   
s   0

)r   r    Úreceive_dataÚ
next_eventr   r   r   r   )ri   Úrequests     r=   Útest_chunk_boundariesr†   Ì   sy  € ÜœvÔ&€Dð	ð ð 	×ÑgÔØ?‰?Ó¤ØØØ(Ð*JÐKô!ò ñ ð
 ?‰?Ó¤	Ñ)Ñ)à×ÑÐ'Ô(Ø?‰?Ó¤¨(ÀÐPTÔ UÒUÑUà×ÑkÔ"Ø?‰?Ó¤¨&¸dÈeÔ TÒTÑTà×ÑdÔØ?‰?Ó¤¨$¸EÈUÔ SÒSÑSà×ÑhÔØ?‰?Ó¤¨$¸EÈTÔ RÒRÑRà×ÑmÔ$Ø?‰?Ó¤¨(ÀÐPTÔ UÒUÑUà×ÑgÔØ?‰?Ó¤	Ò)Ñ)à×ÑlÔ#Ø?‰?Ó¤£Ò.Ñ.Ð.r<   c                  óü  — t        t        «      } | j                  t        dddg¬«      «       | j                  t	        «       «       | j
                  t        u sJ ‚t        | d«      t        dg dd¬	«      gk(  sJ ‚| j
                  t        u sJ ‚t        | d
«      t        d
¬«      gk(  sJ ‚t        | d«      t        d¬«      gk(  sJ ‚t        | d«      t	        «       t        «       gk(  sJ ‚| j                  t        u sJ ‚y )Nr+   r,   rK   r.   s   HTTP/1.0 200 OK

r7   r4   s   OK)r9   r1   r6   Úreasonr^   r_   ra   r<   )r   r   rl   r   r   ro   r   r(   r   r   r   r   rp   r   ©Úcs    r=   Ú$test_client_talking_to_http10_serverr‹   ó   sÞ   € Ü”6Ó€AØ‡FFŒ7˜%¨Ð6MÐ5NÔOÔPØ‡FFŒ<‹>ÔØ;‰;œ$ÑÑä˜1Ð8Ó9Ü˜S¨"¸5ÈÔOð>ò ñ ð ;‰;œ*Ñ$Ñ$Ü˜1˜hÓ'¬D°hÔ,?Ð+@Ò@Ñ@Ü˜1˜hÓ'¬D°hÔ,?Ð+@Ò@Ñ@Ü˜1˜cÓ"¤|£~Ô7GÓ7IÐ&JÒJÑJØ=‰=œFÑ"Ñ"Ð"r<   c                  óš  — t        t        «      } t        | d«      t        ddg d¬«      t	        «       gk(  sJ ‚| j
                  t        u sJ ‚| j                  t        dg ¬«      «      dk(  sJ ‚| j                  t        d	¬
«      «      d	k(  sJ ‚| j                  t	        «       «      dk(  sJ ‚| j                  t        u sJ ‚t        t        «      } t        | d«      t        dddgd¬«      t        d¬
«      gk(  sJ ‚t        | d«      t        d¬
«      t	        «       gk(  sJ ‚| j
                  t        u sJ ‚t        | d«      t        «       gk(  sJ ‚y )Nó   GET / HTTP/1.0

r+   r,   r4   r5   r7   r8   ó$   HTTP/1.1 200 
Connection: close

r^   r_   r<   s(   POST / HTTP/1.0
Content-Length: 10

1r   rZ   re   s	   234567890)r   r    r(   r   r   rp   r   rl   r   r   ro   r   r‰   s    r=   Ú$test_server_talking_to_http10_clientr     s@  € Ü”6Ó€Aô ˜1Ð7Ó8Üu S°"À5ÔIÜ‹ð=ò ñ ð =‰=œJÑ&Ñ&ð 	
‰Œx C°Ô4Ó5Ø8ò	9ñð
 6‰6”$˜HÔ%Ó&¨(Ò2Ñ2Ø6‰6”,“.Ó! SÒ(Ñ(Ø;‰;œ*Ñ$Ñ$ô 	”6Ó€Aä˜1ÐOÓPÜØØØ-Ð.Øô		
ô 	$ŒðUò ñ ô ˜1˜lÓ+´¸,Ô0GÌËÐ/XÒXÑXØ=‰=œJÑ&Ñ&Ü˜1˜cÓ"Ô'7Ó'9Ð&:Ò:Ñ:Ð:r<   c            	      óê  — dgg ddgfD ]è  } t        t        t        t        t        f      | «      } t	        «       }|j                  t        t        dddg¬«      t        «       g«       |j                  t        t        d| ¬«      t        ddg¬«      ¬	«       t        t        «      }t        |d
«       |j                  t        d| ¬«      «      dk(  sJ ‚|j                  t        d¬«      «      dk(  rŒèJ ‚ y )NrD   ©rC   Ú100r+   r,   rK   r.   r7   r8   rb   r   rŽ   r^   r_   )r   r   r   rG   r&   rl   r   r   r   r    r   r   r(   r   )Úuser_headersrs   rŠ   s      r=   Ú,test_automatic_transfer_encoding_in_responser”   (  sù   € ð 
*Ð*Ø
ð 
*Ð+DÐEðò "7ˆô œD¤¤s¬C x¡Ñ1°<Ó@ˆÜÓˆØ	‰Üä˜u¨SÐ;RÐ:SÔTÜ“ðô	
ð 	
‰ÜÜ ¨lÔ;ÜØÐ*JÐ)Kôð 	ô 	
ô ”vÓˆÜ˜Ð4Ô5àF‰F”8¨°\ÔBÓCØ<ò=ñ	
ð v‰v”d Ô)Ó*¨hÓ6Ñ6ñE"7r<   c            	      ó¾  — t        «       } | j                  t        t        ddddg¬«      t	        «       g«       | j
                  D ]  }|j                  t           t        u rŒJ ‚ | j                  t        t        dg ¬«      t	        «       gt        ddg¬«      t	        «       g¬	«       | j
                  D ]'  }|j                  t        t        t        t        ik(  rŒ'J ‚ y )
Nr+   r,   rK   r2   r.   rQ   r8   )Ú
connectionr3   rb   )
r&   rl   r   r   r   rm   rn   r   r    r   ©rs   ri   s     r=   Ú(test_automagic_connection_close_handlingr˜   R  s×   € ÜÓ€Að ‡FFÜäØØØ0Ð2IÐJôô
 ‹Nð	
ô
ð —‘ò 1ˆØ{‰{œ6Ñ"¤jÒ0Ñ0ð1ð ‡FFÜä	˜c¨2Ô	.´³Ð?ô  Ð/FÐ.GÔHÜ‹Nð
ð ô 	ð —‘ò GˆØ{‰{œv¤z´6¼:ÐFÓFÑFñGr<   c                  ó  — dt         fd„}  | «       }|j                  t        t        dg ¬«      «       |j                  D ]  }|j
                  rJ ‚|j                  sŒJ ‚  | «       }|j                  t        t        ddg¬«      «       |j                  D ]  }|j
                  rJ ‚|j                  sŒJ ‚  | «       }|j                  t        t        d¬«      «       |j                  D ]  }|j
                  rJ ‚|j                  sŒJ ‚ y )	Nr)   c            	      ó  — t        «       } | j                  t        t        ddg d¢¬«      «       | j                  D ]  }|j
                  rŒJ ‚ | j                  t           j                  rJ ‚| j                  t           j                  sJ ‚| S )Nr+   r,   )rK   r‘   )ÚExpectz100-continuer.   )	r&   rl   r   r   rm   Ú"client_is_waiting_for_100_continueri   Ú!they_are_waiting_for_100_continuer    r—   s     r=   Úsetupz test_100_continue.<locals>.setups  sz   € ÜÓˆØ	‰ÜÜØØòôô	
ð —G‘Gò 	;ˆDØ×:Ó:Ñ:ð	;à—6‘6œ&‘>×CÒCÑCØv‰v”f‰~×?Ò?Ñ?Øˆr<   rN   r8   r7   rD   r^   r_   )
r&   rl   r    r   rm   rœ   r   r   r   r   )rž   rs   ri   s      r=   Útest_100_continuerŸ   r  sñ   € ð”>ó ñ* 	‹€AØ‡FFŒ6Ô(°SÀ"ÔEÔFØ—‘ò :ˆØ×:Ò:Ñ:Ø×9Ó9Ñ9ð:ñ
 	‹€AØ‡FFÜ” SÐ3SÐ2TÔUôð —‘ò :ˆØ×:Ò:Ñ:Ø×9Ó9Ñ9ð:ñ
 	‹€AØ‡FFŒ6”4˜XÔ&Ô'Ø—‘ò :ˆØ×:Ò:Ñ:Ø×9Ó9Ñ9ñ:r<   c                  ó2  — t        t        «      } | j                  d«       | j                  «       t        u sJ ‚t        j                  t        «      5  	 | j                  d«       | j                  «        Œ"# 1 sw Y   nxY wt        t        d¬«      } | j                  d«       | j                  d«       | j                  d«       t        | «      t        dd	d
dg¬«      t        «       gk(  sJ ‚t        t        d¬«      } | j                  d«       | j                  d«       t        j                  t        «      5  | j                  «        d d d «       n# 1 sw Y   nxY wt        t        d¬«      } | j                  d«       | j                  dddz  z   «       t        | «      t        dd	d
dg¬«      t        ddz  ¬«      t        «       gk(  sJ ‚t        t        d¬«      } | j                  d«       t        | «      t        dddg¬«      t        «       gk(  sJ ‚| j                  d«       | j                  t        dg ¬«      «       | j                  t        «       «       | j                  «        t        | «      t        dddg¬«      t        «       gk(  sJ ‚| j                  t        dg ¬«      «       | j                  t        «       «       | j                  «        t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Ns   GET / HTTP/1.0
Endless: s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiˆ  )Úmax_incomplete_event_sizes   GET / HTTP/1.0
Big: s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas   

r+   r,   r4   )ÚbigÁ   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r/   r0   r6   r1   i   s%   GET / HTTP/1.0
Content-Length: 10000ó   ai'  )rC   Ú10000r_   rN   s   GET /1 HTTP/1.1
Host: a

GET /2 HTTP/1.1
Host: b

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXú/1)ÚhostÚar.   sè  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXr7   r8   ú/2)r§   Úb)r   r    rƒ   r„   r   rf   rg   r#   r'   r   r   r   rl   r   Ústart_next_cycler‰   s    r=   Ú-test_max_incomplete_event_size_countermeasurer¬   Ÿ  s™  € ä”6Ó€AØ‡NNÐ1Ô2Ø<‰<‹>œYÑ&Ñ&Ü	‰Ô*Ó	+ñ ØØN‰N˜;Ô'ØL‰LŒNð ÷ð úô 	”6°TÔ:€AØ‡NNÐ-Ô.Ø‡NN;ÔØ‡NN;ÔÜ˜!ÓÜØ °5ÐCVÐBWô	
ô 	‹ð	!ò ñ ô 	”6°TÔ:€AØ‡NNÐ-Ô.Ø‡NN;ÔÜ	‰Ô*Ó	+ñ Ø	‰Œ÷÷ ñ úô
 	”6°TÔ:€AØ‡NNÐ=Ô>Ø‡NN; ¨¡Ñ-Ô.Ü˜!ÓÜØØØØ0Ð1ô		
ô 	$˜‘,ÔÜ‹ð	!ò 	ñ 	ô 	”6°SÔ9€Að ‡NNð	<ôô ˜!ÓÜu T°M°?ÔCÜ‹ð!ò ñ ð
 ‡NN;Ôà‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>ÔØ×ÑÔÜ˜!ÓÜu T°M°?ÔCÜ‹ð!ò ñ ð ‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>ÔØ×ÑÔÜ	‰Ô*Ó	+ñ Ø	‰Œ÷÷ ñ ús$   Á$A6Á6A?Ä:EÅEË3LÌLc                  ó  — t        «       } | j                  t        t        dddg¬«      t	        «       g«       | j                  t
        t        ddg¬«      t	        «       g«       | j                  D ]7  }|j                  t        t        t
        t        ik(  sJ ‚|j                  «        Œ9 | j                  t        t        dd	dg¬«      t	        «       g«       | j                  t
        t        d
dg¬«      t	        «       g«       y )Nr+   r,   ©r-   r¨   r.   r7   ©s   transfer-encodings   chunkedr8   ÚDELETEú/fooé”  )r&   rl   r   r   r   r    r   rm   rn   r   r«   r—   s     r=   Útest_reuse_simpler³   ë  sâ   € ÜÓ€AØ‡FFÜÜ	˜ c°M°?Ô	CÄ\Ã^ÐTôð ‡FFÜä Ð/QÐ.RÔSÜ‹Nð	
ôð —‘ò  ˆØ{‰{œv¤t¬V´TÐ:Ò:Ñ:Ø×ÑÕð ð ‡FFÜä˜8¨F¸]¸OÔLÜ‹Nð	
ôð ‡FFÜä Ð/QÐ.RÔSÜ‹Nð	
õr<   c                  ó$  — t        t        «      } | j                  «       t        u sJ ‚| j	                  d«       t        | «      t        ddddg¬«      t        d¬«      t        «       gk(  sJ ‚| j                  t        u sJ ‚| j                  t        u sJ ‚| j                  «       t        u sJ ‚| j                  t        d	g ¬
«      «       | j                  t        «       «       | j                  t        u sJ ‚| j                  t        u sJ ‚| j!                  «        t        | «      t        ddddg¬«      t        d¬«      t        «       gk(  sJ ‚| j                  «       t        u sJ ‚| j                  t        d	g ¬
«      «       | j                  t        «       «       | j!                  «        t        | «      t        dddg¬«      t        «       gk(  sJ ‚| j                  «       t        u sJ ‚| j                  t        d	g ¬
«      «       | j                  t        «       «       | j                  «       t        u sJ ‚| j	                  d«       | j                  «       t        u sJ ‚| j"                  dk(  sJ ‚| j	                  d«       | j"                  dk(  sJ ‚| j                  «       t        u sJ ‚| j	                  d«       | j                  «       t        u sJ ‚t%        j&                  t(        «      5  | j	                  d«       d d d «       y # 1 sw Y   y xY w)Ns   GET /1 HTTP/1.1
Host: a.com
Content-Length: 5

12345GET /2 HTTP/1.1
Host: a.com
Content-Length: 5

67890GET /3 HTTP/1.1
Host: a.com

r+   r¦   )r-   úa.com)rC   Ú5r.   r^   r_   r7   r8   r©   ra   z/3ó   SADF)r·   Fr<   )r·   Ts   FDSA)r   r    r„   r   rƒ   r'   r   r   r   rp   r   ro   r   r   rl   r   r«   Útrailing_datarf   rg   ÚRuntimeErrorr‰   s    r=   Útest_pipeliningrº     s|  € ä”6Ó€AØ<‰<‹>œYÑ&Ñ&à‡NNð	2ôô ˜!ÓÜØØØ&Ð(?Ð@ô	
ô
 	(ÔÜ‹ð!ò ñ ð =‰=œDÑ Ñ Ø;‰;œ-Ñ'Ñ'à<‰<‹>œVÑ#Ñ#à‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>ÔØ=‰=œDÑ Ñ Ø;‰;œ$ÑÑà×ÑÔä˜!ÓÜØØØ&Ð(?Ð@ô	
ô
 	(ÔÜ‹ð!ò ñ ð <‰<‹>œVÑ#Ñ#Ø‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>ÔØ×ÑÔä˜!ÓÜu TÐ4EÐ3FÔGÜ‹ð!ò ñ ð
 <‰<‹>œYÑ&Ñ&Ø‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>Ôð <‰<‹>œYÑ&Ñ&Ø‡NN7ÔØ<‰<‹>œVÑ#Ñ#Ø?‰?Ð.Ò.Ñ.à‡NN3ÔØ?‰?˜oÒ-Ñ-Ø<‰<‹>œVÑ#Ñ#Ø‡NN3ÔØ<‰<‹>œVÑ#Ñ#ä	‰”|Ó	$ñ  Ø	‰wÔ÷ ÷  ñ  ús   Ë+LÌLc            	      óP	  ‡— t        ddddg¬«      t        ddg¬«      t        d	dg¬«      ft        d
dg d¢¬«      t        d	dg¬«      t        ddg¬«      ft        ddg d¢¬«      t        ddg¬«      t        d	dg¬«      ft        ddg d¢¬«      t        ddg¬«      t        ddg¬«      ffD ]Þ  \  Š} }dt        fˆfd„} |«       }|j	                  t
        | «       |j                  D ]'  }|j                  t        t        t
        t        ik(  rŒ'J ‚ |j	                  t
        t        «       «       |j                  D ]  }|j                  «        Œ  |«       }|j	                  t
        |«       |j                  D ]Š  }|j                  t        t        t
        t        ik(  sJ ‚|j                  d«       |j                  «       t         u sJ ‚|j                  d«       |j                  «       t         u sJ ‚|j"                  dk(  rŒŠJ ‚  |«       }|j$                  t
           }|j                  d«       |j                  «       t         u sJ ‚|j"                  dk(  sJ ‚|j	                  | «       |j                  «       t         u sJ ‚|j	                  t        «       «       |j                  «        t'        |«      t        d
dg d¬«      t        «       gk(  sJ ‚ |«       }|j$                  t
           }|j                  d«       |j                  «       t         u sJ ‚|j"                  dk(  sJ ‚|j	                  t
        |«       |j                  «       t         u sJ ‚ |«       }|j$                  t
           }|j                  d«       |j                  «       t         u sJ ‚|j	                  | «       |j                  «       t)        «       k(  sJ ‚ |«       }t+        j,                  t.        «      5  |j$                  t           j	                  t        d
ddg¬«      «       d d d «        |«       }|j	                  t
        |«       t+        j,                  t.        «      5  |j$                  t
           j	                  t1        d¬«      «       d d d «       Œá y # 1 sw Y   ŒxxY w# 1 sw Y   ŒùxY w)NÚCONNECTzexample.com:443©r-   Úfoo©rC   Ú1r.   r²   r¯   r8   r7   r+   r,   )r½   r¿   )ÚUpgradeza, bée   )rÁ   r¨   )rÁ   rª   r)   c                  óž  •— t        «       } | j                  t        ‰«       | j                  D ]  }|j                  t           t
        u rŒJ ‚ | j                  t        t        d¬«      t        «       g«       | j                  D ]  }|j                  t           t        u rŒJ ‚ | j                  t           j                  «       t        u sJ ‚| S )Nre   r_   )r&   rl   r   rm   rn   r   r   r   r   ri   r    r„   r   )rs   ri   rM   s     €r=   rž   z#test_protocol_switch.<locals>.setup~  s¦   ø€ ÜÓ ˆAØF‰F”6˜3Ôð Ÿ™ò 8Ø—{‘{¤6Ñ*¬iÒ7Ñ7ð8àF‰F”6œD dœO¬\«^Ð<Ô=ØŸ™ò DØ—{‘{¤6Ñ*Ô.CÒCÑCðDà—6‘6œ&‘>×,Ñ,Ó.´&Ñ8Ñ8ØˆHr<   ó   123s   456)s   123456Fr   )r   Fr4   r5   r<   )r<   Tr®   r_   )r   r   r   r&   rl   r    rm   rn   r   r   r   r   r«   r!   rƒ   r„   r   r¸   ri   r'   r   rf   rg   r"   r   )ÚdenyÚacceptrž   rs   ri   ÚscrM   s         @r=   Útest_protocol_switchrÈ   T  s  ø€ ô Ø Ø(Ø(Ð*AÐBôô
  Ð/QÐ.RÔSÜ Ð/QÐ.RÔSð	
ô ØØÚWôô
  Ð/QÐ.RÔSÜ!¨cÐ<LÐ;MÔNð	
ô Ø Ø(ÚWôô
  Ð/QÐ.RÔSä Ð/QÐ.RÔSð		
ô Ø Ø(ÚWôô
  Ð/QÐ.RÔSä!¨cÐ<LÐ;MÔNð		
ð;' ó y3ÑˆˆdFðR	”~õ 	ñ ‹GˆØ	‰ŒvtÔØ—G‘Gò 	DˆDØ—;‘;¤6¬4´¼Ð"CÓCÑCð	Dà	‰Œv”|“~Ô&à—G‘Gò 	$ˆDØ×!Ñ!Õ#ð	$ñ ‹GˆØ	‰ŒvvÔØ—G‘Gò 	<ˆDØ—;‘;¤6Ô+<¼fÔFWÐ"XÒXÑXØ×Ñ˜fÔ%Ø—?‘?Ó$¬Ñ.Ñ.Ø×Ñ˜fÔ%Ø—?‘?Ó$¬Ñ.Ñ.Ø×%Ñ%Ð);Ó;Ñ;ð	<ñ ‹GˆØV‰V”F‰^ˆØ
‰Ð1Ô2Ø}‰}‹¤&Ñ(Ñ(Ø×ÑÐ#EÒEÑEØ
‰ŒØ}‰}‹¤&Ñ(Ñ(Ø
‰”“ÔØ
×ÑÔÜ˜bÓ!Ü˜5¨°bÀuÔMÜ‹Nð&
ò 
ñ 	
ñ ‹GˆØV‰V”F‰^ˆØ
‰˜ÔØ}‰}‹¤&Ñ(Ñ(Ø×Ñ ;Ò.Ñ.Ø	‰ŒvvÔØ}‰}‹¤&Ñ(Ñ(á‹GˆØV‰V”F‰^ˆØ
‰˜ÔØ}‰}‹¤&Ñ(Ñ(Ø
‰ŒØ}‰}‹Ô"2Ó"4Ò4Ñ4ñ ‹GˆÜ]‰]Ô-Ó.ñ 	ØF‰F”6‰N×ÑÜ˜u¨S¸=¸/ÔJô÷	ñ ‹GˆØ	‰ŒvvÔÜ]‰]Ô-Ó.ñ 	3ØF‰F”6‰N×Ñ¤¨&Ô 1Ô2÷	3ñ 	3ñqy3÷d	ð 	ú÷	3ñ 	3ús   Ï(0RÑ-RÒR	ÒR%	c                  óè  ‡‡— t         t        ft        t         ffD ]»  \  ŠŠdt        fˆˆfd„}  | «       }|j                  ‰   j	                  «       t        «       k(  sJ ‚|j                  ‰   j	                  «       t        «       k(  sJ ‚|j                  ‰   j                  d«       |j                  ‰   j	                  «       t        «       k(  sJ ‚ | «       }|j                  ‰t        «       «       |j                  D ]*  }|j                  t        u sJ ‚|j                  t        u rŒ*J ‚  | «       }t        j                  t        «      5  |j                  ‰   j                  d«       d d d «        | «       }|j                  ‰   j                  d«       t        j                  t        «      5  |j                  ‰   j	                  «        d d d «       Œ¾ y # 1 sw Y   ŒqxY w# 1 sw Y   ŒÖxY w)Nr)   c                  ó¬   •— t        «       } | j                  ‰t        «       «       | j                  D ]  }|j                  ‰t
        ‰t        ik(  rŒJ ‚ | S ©N)r&   rl   r   rm   rn   r   r   )rs   ri   Úwho_shot_firstÚwho_shot_seconds     €€r=   rž   z test_close_simple.<locals>.setupÖ  sW   ø€ ÜÓ ˆAØF‰F>Ô#3Ó#5Ô6ØŸ™ò Ø—{‘{Ø"¤FØ#¤Zð'ó ñ ðð
 ˆHr<   r<   rÄ   rP   )r   r    r&   ri   r„   r   rƒ   rl   rm   ro   r   rp   rf   rg   r¹   r#   )rž   rs   ri   rÌ   rÍ   s      @@r=   Útest_close_simplerÎ   Ñ  s¡  ù€ ô 06´vÐ.>ÄÌÐ@PÐ-Qó #0Ñ)ˆ˜ð	”~ö 	ñ ‹GˆØv‰voÑ&×1Ñ1Ó3Ô7GÓ7IÒIÑIØv‰voÑ&×1Ñ1Ó3Ô7GÓ7IÒIÑIØ	‰ˆÑ×,Ñ,¨SÔ1Øv‰voÑ&×1Ñ1Ó3Ô7GÓ7IÒIÑIá‹GˆØ	‰ˆÔ 0Ó 2Ô3Ø—G‘Gò 	.ˆDØ—>‘>¤VÑ+Ñ+Ø×#Ñ#¤vÒ-Ñ-ð	.ñ ‹GˆÜ]‰]œ<Ó(ñ 	9ØF‰F?Ñ#×0Ñ0°Ô8÷	9ñ ‹GˆØ	‰ˆ~Ñ×+Ñ+¨FÔ3Ü]‰]Ô.Ó/ñ 	0ØF‰F>Ñ"×-Ñ-Ô/÷	0ñ 	0ñE#0÷:	9ð 	9ú÷
	0ñ 	0ús   ÅGÆ1G'ÇG$	Ç'G1	c            	      ó>  — t        dddg¬«      t        «       g} t        ddg¬«      t        «       g}t        «       }|j	                  t
        t        «       «       |j                  D ]'  }|j                  t
        t        t        t        ik(  rŒ'J ‚ t        «       }|j	                  t
        | «       |j	                  t
        t        «       «       |j                  D ]'  }|j                  t
        t        t        t        ik(  rŒ'J ‚ t        «       }|j	                  t
        | «       t        j                  t        «      5  |j                   t           j	                  t        «       «       d d d «       |j                   t
           j#                  d«       t        j                  t$        «      5  |j                   t
           j'                  «        d d d «       t        «       }|j	                  t
        | «       |j	                  t        |«       |j	                  t        t        «       «       |j                  D ]'  }|j                  t
        t        t        t        ik(  rŒ'J ‚ t        «       }|j	                  t
        | «       |j	                  t        |«       |j	                  t
        t        «       «       |j	                  t        t        «       «       |j	                  t
        t        «       «       |j	                  t        t        «       «       t        «       }|j	                  t
        t        dd	dd
g¬«      «       t        j                  t        «      5  |j                   t
           j	                  t        «       «       d d d «       |j                   t           j#                  d«       t        j                  t$        «      5  |j                   t           j'                  «        d d d «       y # 1 sw Y   Œ‡xY w# 1 sw Y   Œ/xY w# 1 sw Y   Œ‰xY w# 1 sw Y   y xY w)Nr+   r±   r®   r.   r7   r¯   r8   r<   r,   rZ   )r   r   r   r&   rl   r   r   rm   rn   r   r    r   r   rf   rg   r"   ri   rƒ   r#   r„   )rM   rI   rs   ri   s       r=   Útest_close_different_statesrÐ   ú  s	  € äu V°m°_ÔEÜ‹ð€Cô
 	˜SÐ+MÐ*NÔOÜ‹ð€Dô 	Ó€AØ‡FFŒ6Ô#Ó%Ô&Ø—‘ò CˆØ{‰{œv¤v¬v´zÐBÓBÑBðCô 	Ó€AØ‡FFŒ63ÔØ‡FFŒ6Ô#Ó%Ô&Ø—‘ò FˆØ{‰{œv¤v¬v´}ÐEÓEÑEðFô 	Ó€AØ‡FFŒ63ÔÜ	‰Ô)Ó	*ñ 0Ø	‰Œv‰×ÑÔ,Ó.Ô/÷0à‡FFŒ6N×Ñ Ô$Ü	‰Ô*Ó	+ñ $Ø	‰Œv‰×!Ñ!Ô#÷$ô 	Ó€AØ‡FFŒ63ÔØ‡FFŒ64ÔØ‡FFŒ6Ô#Ó%Ô&Ø—‘ò CˆØ{‰{œv¤z´6¼6ÐBÓBÑBðCô 	Ó€AØ‡FFŒ63ÔØ‡FFŒ64ÔØ‡FFŒ6Ô#Ó%Ô&Ø‡FFŒ6Ô#Ó%Ô&Ø‡FFŒ6Ô#Ó%Ô&Ø‡FFŒ6Ô#Ó%Ô&ô 	Ó€AØ‡FFÜÜØ ¨}Ð>VÐ.Wô	
ôô 
‰Ô)Ó	*ñ 0Ø	‰Œv‰×ÑÔ,Ó.Ô/÷0à‡FFŒ6N×Ñ Ô$Ü	‰Ô*Ó	+ñ $Ø	‰Œv‰×!Ñ!Ô#÷$ð $÷E0ñ 0ú÷$ñ $ú÷80ð 0ú÷$ð $ús0   Ä=+O-Æ+"O:Í+PÏ"PÏ-O7Ï:PÐPÐPc                  ó´  — t        t        «      } | j                  d«       | j                  d«       t        | «      t	        ddddg¬«      t        d¬	«      t        «       gk(  sJ ‚| j                  t           t        u sJ ‚| j                  t        d
g ¬«      «       | j                  t        «       «       | j                  t           t        u sJ ‚| j                  «        t        | «      t	        ddddg¬«      t        d¬	«      t        «       t        «       gk(  sJ ‚| j                  t        t        t        t        ik(  sJ ‚| j                  t        d
g ¬«      «       | j                  t        «       «       | j                  t        t        t        t         ik(  sJ ‚| j                  t        «       «       | j                  t        t        t        t        ik(  sJ ‚y )Nsp   GET /1 HTTP/1.1
Host: a.com
Content-Length: 5

12345GET /2 HTTP/1.1
Host: a.com
Content-Length: 5

67890r<   r+   r¦   )r§   rµ   )rR   r¶   r.   r^   r_   r7   r8   r©   ra   )r   r    rƒ   r'   r   r   r   rn   r   r   rl   r   r«   r   r   r   r   r‰   s    r=   Útest_pipelined_closerÒ   <  s€  € Ü”6Ó€Aà‡NNð	ôð ‡NN3ÔÜ˜!ÓÜØØØ&Ð(?Ð@ô	
ô
 	(ÔÜ‹ð!ò ñ ð 8‰8”FÑœtÑ#Ñ#Ø‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>ÔØ8‰8”FÑœtÑ#Ñ#Ø×ÑÔÜ˜!ÓÜØØØ&Ð(?Ð@ô	
ô
 	(ÔÜ‹ÜÓð	!ò 	ñ 	ð 8‰8œ¤¬´Ð>Ò>Ñ>Ø‡FFŒ8 ¨RÔ0Ô1Ø‡FFŒ<‹>ÔØ8‰8œ¤¬´
Ð;Ò;Ñ;Ø‡FFÔÓÔØ8‰8œ¤¬´Ð7Ò7Ñ7Ð7r<   c            
      óÊ  ‡—  G d„ d«      }  | «       Šdt         t        t        f   dt        dt         t        t        t        t
              f   fˆfd„} |dd«      \  }}|‰gk(  sJ ‚|j                  t        «       «        |d	d«      \  }}‰|v sJ ‚d
||j                  ‰«      <   dj                  |«      dk(  sJ ‚ |d d«      \  }}|‰gk(  sJ ‚|j                  t        u sJ ‚y )Nc                   ó   — e Zd Zdefd„Zy)ú*test_sendfile.<locals>.SendfilePlaceholderr)   c                  ó   — y)Né
   r;   )Úselfs    r=   Ú__len__z2test_sendfile.<locals>.SendfilePlaceholder.__len__h  s   € Ør<   N)Ú__name__Ú
__module__Ú__qualname__rS   rÙ   r;   r<   r=   ÚSendfilePlaceholderrÕ   g  s   „ ð	˜Sô 	r<   rÝ   Úheaderr6   r)   c                 ó  •— t        t        «      }t        |dj                  |«      j	                  d«      «       g }| r|j                  | «       |j                  t        d|¬«      «       ||j                  t        ‰¬«      «      fS )NzGET / HTTP/{}
Host: a

Úasciir7   r8   r_   )
r   r    r(   ÚformatÚencoderF   rl   r   Úsend_with_data_passthroughr   )rÞ   r6   rŠ   r1   Úplaceholders       €r=   rž   ztest_sendfile.<locals>.setupm  sw   ø€ ô ”vÓˆÜØÐ1×8Ñ8¸ÓF×MÑMÈgÓVô	
ð ˆÙØN‰N˜6Ô"Ø	‰Œx C°Ô9Ô:Ø!×.Ñ.¬t¸Ô/EÓFÐFÐFr<   rZ   z1.1rD   s
   xxxxxxxxxxr<   s   a
xxxxxxxxxx
r4   )r   rG   r   r   r   Úbytesrl   r   ÚindexÚjoinro   r   )rÝ   rž   rŠ   r`   Ú_rä   s        @r=   Útest_sendfileré   f  sõ   ø€ ÷ñ ñ &Ó'€KðGÜ”cœ3h‘ðGÜ/2ðGä	Œzœ8¤D¬¡KÑ0Ð0Ñ	1õGñ Ð,¨eÓ4G€A€tØK=Ò Ñ ð ‡FFŒ<‹>ÔáÐ4°eÓ<G€A€tØ˜$ÑÑØ$-€Dˆ‰KÓ	 Ñ!Ø8‰8D‹>Ð3Ò3Ñ3áD˜%Ó G€A€tØK=Ò Ñ Ø;‰;œ)Ñ#Ñ#Ð#r<   c                  óÎ  — t         t        fD ]ô  } t        | ¬«      }|j                  d«       t	        j
                  t        «      5  |j                  «        d d d «       |j                  t        u sJ ‚|j                  t        usJ ‚t        |j                  j                  «       t	        j
                  t        «      5  |j                  «        d d d «       | t        u sŒÔ|j                  t        dg ¬«      «      dk(  rŒôJ ‚ dt         t"           dt        fd„}t         t        fD ]‰  } | t         u r t%        d	d
dg¬«      }t%        d	d
dgd¬«      }n#| t        u rt        dg ¬«      }t        dg d¬«      } || «      }|j                  «       |j                  t        usJ ‚ || «      }t	        j
                  t&        «      5  |j                  «       d d d «       |j                  t        u sJ ‚|j                  t        usJ ‚t	        j
                  t&        «      5  |j                  |«       d d d «        || «      }|j)                  «        |j                  t        u sJ ‚|j                  t        usJ ‚|j)                  «        |j                  t        u sJ ‚|j                  t        urŒŠJ ‚ y # 1 sw Y   Œ`xY w# 1 sw Y   ŒôxY w# 1 sw Y   ŒúxY w# 1 sw Y   Œ«xY w)Nr}   s   gibberish

i  r8   s$   HTTP/1.1 400 
Connection: close

Úroler)   c                 ón   — t        | ¬«      }| t        u r t        |d«       |j                  t        u sJ ‚|S )Nr}   r   )r   r    r(   ro   r   ©rë   rŠ   s     r=   ri   ztest_errors.<locals>.conn¡  s2   € Ü Ô%ˆØ”6‰>ä˜AÐ8Ô9Ø—;‘;¤-Ñ/Ñ/Øˆr<   r+   r,   rK   r.   r4   r5   r7   r:   )r   r    r   rƒ   rf   rg   r#   r„   rp   r   ro   ÚprintÚ_cstatern   rl   r   r	   r$   r   r"   Úsend_failed)rë   rŠ   ri   ÚgoodÚbads        r=   Útest_errorsró   Š  sb  € äœÐ ò ˆÜ Ô%ˆØ	‰Ð+Ô,Ü]‰]Ô.Ó/ñ 	ØL‰LŒN÷	ð }‰}¤Ñ%Ñ%Ø{‰{¤%Ñ'Ñ'Üˆai‰i×ÑÔÜ]‰]Ô.Ó/ñ 	ØL‰LŒN÷	ð ”6Š>à—‘”x¨C¸Ô<Ó=Ø@óAñðð*”4œ‘>ð ¤jó ô œÐ ó $*ˆØ”6‰>ô  %°Ð>UÐ=VÔWˆDÜØØØ0Ð1Ø"ô	‰Cð ”V‰^Ü¨°RÔ8ˆDÜ s°BÀUÔKˆCá‹JˆØ	‰ˆtŒØ{‰{¤%Ñ'Ñ'á‹JˆÜ]‰]Ô-Ó.ñ 	ØF‰F3ŒK÷	à{‰{œeÑ#Ñ#Ø}‰}¤EÑ)Ñ)ä]‰]Ô-Ó.ñ 	ØF‰F4ŒL÷	ñ ‹JˆØ	‰ŒØ{‰{œeÑ#Ñ#Ø}‰}¤EÑ)Ñ)à	‰ŒØ{‰{œeÑ#Ñ#Ø}‰}¤EÓ)Ñ)ñI$*÷5	ñ 	ú÷	ñ 	ú÷P	ð 	ú÷
	ð 	ús0   ÁJ5Â?KÇKÈKÊ5J?	ËK	ËK	ËK$	c                  ól   — t         t        fD ]%  } t        | «      }|j                  «       t        u rŒ%J ‚ y rË   )r   r    r   r„   r   rí   s     r=   Útest_idle_receive_nothingrõ   Ð  s1   € äœÐ ò +ˆÜtÓˆØ|‰|‹~¤Ò*Ñ*ñ+r<   c                  ó  — t        t        «      } | j                  d«       | j                  «       t        u sJ ‚| j                  d«       t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Ns   GET /r<   )r   r    rƒ   r„   r   rf   rg   r#   r‰   s    r=   Útest_connection_dropr÷   ×  s`   € Ü”6Ó€AØ‡NN8ÔØ<‰<‹>œYÑ&Ñ&Ø‡NN3ÔÜ	‰Ô*Ó	+ñ Ø	‰Œ÷÷ ñ ús   Á#A=Á=Bc                  ó\   — t        «       } | j                  t        t        ddg¬«      «       y )Ni˜  )s
   connections   closer8   )r&   rl   r    r   )rs   s    r=   Útest_408_request_timeoutrù   à  s%   € ô 	Ó€AØ‡FFŒ6”8¨Ð6OÐ5PÔQÕRr<   c                  óÀ   — t        t        «      } | j                  d«       t        j                  t
        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Nr‚   ©r   r    rƒ   rf   rg   r#   r„   r‰   s    r=   Útest_empty_requestrü   è  sC   € Ü”6Ó€AØ‡NN7ÔÜ	‰Ô*Ó	+ñ Ø	‰Œ÷÷ ñ úó   ºAÁAc                  óü   — t        t        «      } | j                  t        dddg¬«      «       | j	                  d«       t        j                  t        «      5  | j                  «        d d d «       y # 1 sw Y   y xY w)Nr+   r,   r®   r.   r‚   )	r   r   rl   r   rƒ   rf   rg   r#   r„   r‰   s    r=   Útest_empty_responserÿ   ð  sZ   € Ü”6Ó€AØ‡FFŒ7˜%¨°m°_ÔEÔFØ‡NN7ÔÜ	‰Ô*Ó	+ñ Ø	‰Œ÷÷ ñ ús   ÁA2Á2A;r`   )ó    ó    s    ¥c                 óÀ   — t        t        «      }|j                  | «       t        j                  t
        «      5  |j                  «        d d d «       y # 1 sw Y   y xY wrË   rû   ©r`   rŠ   s     r=   Ú'test_early_detection_of_invalid_requestr  ø  óE   € ô 	”6Ó€Aà‡NN4ÔÜ	‰Ô*Ó	+ñ Ø	‰Œ÷÷ ñ úrý   )r   r  s    1c                 óÀ   — t        t        «      }|j                  | «       t        j                  t
        «      5  |j                  «        d d d «       y # 1 sw Y   y xY wrË   )r   r   rƒ   rf   rg   r#   r„   r  s     r=   Ú(test_early_detection_of_invalid_responser    r  rý   c                  ó>  — dt         dt         dt        fd„} dD ]‚  } | |d«      }|j                  t        dg ¬«      «      d	k(  sJ ‚ | |d
«      }|j                  t        dg ¬«      «      dk(  sJ ‚ | |d«      }|j                  t        dddg¬«      «      d	k(  rŒ‚J ‚ y )Nr/   r6   r)   c                 óâ   — t        t        «      }|j                  | dz   |z   dz   dz   «       t        |j	                  «       «      t
        u sJ ‚t        |j	                  «       «      t        u sJ ‚|S )Ns    / HTTP/r‚   s   Host: example.com

)r   r    rƒ   Útyper„   r   r   )r/   r6   rŠ   s      r=   rž   z(test_HEAD_framing_headers.<locals>.setup  sc   € Ü”vÓˆØ	‰Ø[Ñ  <Ñ/°'Ñ9Ð<XÑXô	
ô A—L‘L“NÓ#¤wÑ.Ñ.ÜA—L‘L“NÓ#¤|Ñ3Ñ3Øˆr<   )rP   rO   r\   r7   r8   s-   HTTP/1.1 200 
Transfer-Encoding: chunked

s   1.0rŽ   r‘   rD   )rå   r   rl   r   )rž   r/   rŠ   s      r=   Útest_HEAD_framing_headersr    sÊ   € ð”eð ¬5ð ´Zó ð $ò 
ˆá&˜&Ó!ˆàF‰F”8¨°RÔ8Ó9ð >2ò 2ñ	
ñ &˜&Ó!ˆàF‰F”8¨°RÔ8Ó9ð >)ò )ñ	
ñ &˜&Ó!ˆàF‰FÜØ #à1Ø8ðôóð2ó
2ñ	
ñ#
r<   c                  óü  — t        t        «      } | j                  d«       t        | j	                  «       «      t
        u sJ ‚| j	                  «       t        u sJ ‚| j                  d«       | j	                  «       t        d¬«      k(  sJ ‚| j                  d«       t        j                  t        «      5 }| j	                  «        d d d «       dt        j                  «      v sJ ‚dt        |j                  «      v sJ ‚t        t        «      } | j                  d«       t        | j	                  «       «      t
        u sJ ‚| j	                  «       t        u sJ ‚| j                  d«       | j	                  «       j                  d	k(  sJ ‚| j                  d«       t        j                  t        «      5 }| j	                  «        d d d «       d
t        |j                  «      v sJ ‚y # 1 sw Y   Œ"xY w# 1 sw Y   Œ0xY w)Ns;   POST / HTTP/1.1
Host: example.com
Content-Length: 100

r^   r_   r<   zreceived 5 byteszexpected 100r~   s	   8
012345s   012345zincomplete chunked read)r   r    rƒ   r
  r„   r   r   r   rf   rg   r#   rG   Úvaluer`   )rŠ   Úexcinfos     r=   Ú;test_special_exceptions_for_lost_connection_in_message_bodyr  F  s~  € Ü”6Ó€AØ‡NNØVôô —‘“Ó¤7Ñ*Ñ*Ø<‰<‹>œYÑ&Ñ&Ø‡NN8ÔØ<‰<‹>œT xÔ0Ò0Ñ0Ø‡NN3ÔÜ	‰Ô*Ó	+ð ¨wØ	‰Œ÷à¤ W§]¡]Ó!3Ñ3Ñ3ØœS §¡Ó/Ñ/Ñ/ä”6Ó€AØ‡NNð	.ôô
 —‘“Ó¤7Ñ*Ñ*Ø<‰<‹>œYÑ&Ñ&Ø‡NN>Ô"Ø<‰<‹>×Ñ )Ò+Ñ+Ø‡NN3ÔÜ	‰Ô*Ó	+ð ¨wØ	‰Œ÷à$¬¨G¯M©MÓ(:Ñ:Ñ:Ð:÷%ñ ú÷ ð ús   Â4G%Æ2G2Ç%G/Ç2G;)r)   N)JÚtypingr   r   r   r   r   r   r	   rf   Ú_connectionr   r   r   r   r   Ú_eventsr   r   r   r   r   r   r   Ú_stater   r   r   r   r   r   r   r   r   r    r!   Ú_utilr"   r#   r$   Úhelpersr&   r'   r(   r>   rX   rt   r{   r†   r‹   r   r”   r˜   rŸ   r¬   r³   rº   rÈ   rÎ   rÐ   rÒ   ré   ró   rõ   r÷   rù   rü   rÿ   ÚmarkÚparametrizerå   r  r  r  r  r;   r<   r=   ú<module>r     sV  ðß ?× ?Ñ ?ã ç SÕ S÷÷ ñ ÷÷ ÷ ñ ÷ FÑ Eß DÑ DóVó<)=óX@;óF;ó>$/óN#ó ";óJ'7óTGó@*:óZIóXóBE óPz3óz&0óR=$óD'8óT!$óHC*óL+óóSóóð ‡×ÑØ
òóð°%ð ¸Dò óðð ‡×ÑØ
òóð°5ð ¸Tò óðó'
ôT;r<   