§
    K" h	  ã                   ó^   — d Z ddlmZmZ ddlmZmZ  G d„ d¦  «        Z G d„ d¦  «        ZdS )	zData Chunk Receiver
é    )ÚCHUNK_EXT_REÚONLY_HEXDIG_RE)Ú
BadRequestÚfind_double_newlinec                   ó4   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	dS )ÚFixedStreamReceiverFNc                 ó"   — || _         || _        d S ©N)ÚremainÚbuf)ÚselfÚclr   s      úKc:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\waitress/receiver.pyÚ__init__zFixedStreamReceiver.__init__   s   € ØˆŒØˆŒˆˆó    c                 ó4   — | j                              ¦   «         S r
   ©r   Ú__len__©r   s    r   r   zFixedStreamReceiver.__len__   ó   € ØŒx×ÒÑ!Ô!Ð!r   c                 ó  — | j         }|dk     r	d| _        dS t          |¦  «        }||k    r2| j                             |d|…         ¦  «         d| _         d| _        |S | j                             |¦  «         | xj         |z  c_         |S )zSee IStreamConsumeré   Tr   N)r   Ú	completedÚlenr   Úappend)r   ÚdataÚrmÚdatalens       r   ÚreceivedzFixedStreamReceiver.received!   sŠ   € àŒ[ˆà�Š6ˆ6Ø!ˆDŒNà�1Ý�d‘)”)ˆà�Š=ˆ=ØŒH�OŠO˜D  " œIÑ&Ô&Ð&ØˆDŒKØ!ˆDŒNàˆIàŒH�OŠO˜DÑ!Ô!Ð!ØˆKŒK˜7Ñ"ˆKŒKàˆNr   c                 ó4   — | j                              ¦   «         S r
   ©r   Úgetfiler   s    r   r"   zFixedStreamReceiver.getfile7   r   r   c                 ó   — | j         S r
   ©r   r   s    r   ÚgetbufzFixedStreamReceiver.getbuf:   ó	   € ØŒxˆr   )
Ú__name__Ú
__module__Ú__qualname__r   Úerrorr   r   r   r"   r%   © r   r   r   r      si   € € € € € à€IØ€Eðð ð ð"ð "ð "ðð ð ð,"ð "ð "ðð ð ð ð r   r   c                   óL   — e Zd ZdZdZdZdZdZdZdZ	dZ
d„ Zd„ Zd„ Zd„ Zd	„ ZdS )
ÚChunkedReceiverr   Fr   Nc                 ó   — || _         d S r
   r$   )r   r   s     r   r   zChunkedReceiver.__init__K   s   € ØˆŒˆˆr   c                 ó4   — | j                              ¦   «         S r
   r   r   s    r   r   zChunkedReceiver.__len__N   r   r   c                 óR  — | j         rdS t          |¦  «        }|�r‹| j        }|dk    ra|d |…         }| j                             |¦  «         t          |¦  «        }||d …         }| xj        |z  c_        | j        dk    rd| _        �n| j        r| j        |z   }|                     d¦  «        }|dk     rt          |¦  «        dk     r|| _        d}�nÐd| _        |dk    r|dd …         }nt          d¦  «        | _	        d| _
        d| _        �n”| j
        �s| j        |z   }|                     d¦  «        }|dk     r|| _        d}�n\|d |…         }||dz   d …         }d| _        |r¶|                     d¦  «        }|dk    rF||d …         }	t          j        |	¦  «        }
|
st          d	¦  «        | _	        d| _
        nè|d |…         }t          j        |¦  «        st          d
¦  «        | _	        d| _
        n®t          |d¦  «        }|dk    r|| _        n�d| _
        n…| j        |z   }|                     d¦  «        rd| _         |t          |¦  «        dz
  z
  S t%          |¦  «        }|dk     r
|| _        d}n+d| _         |d |…         | _        |t          |¦  «        |z
  z
  S |�°‹|S )Nr   Ts   
é   r   zChunk not properly terminatedFó   ;zInvalid chunk extensionzInvalid chunk sizeé   )r   r   Úchunk_remainderr   r   Úvalidate_chunk_endÚ	chunk_endÚfindr   r*   Úall_chunks_receivedÚcontrol_liner   Úmatchr   ÚintÚtrailerÚ
startswithr   )r   ÚsÚ	orig_sizer   Úto_writeÚwrittenÚposÚlineÚsemiÚextinfoÚvalid_ext_infoÚszr<   s                r   r   zChunkedReceiver.receivedQ   s  € ð Œ>ð 	Ø�1Ý˜‘F”Fˆ	àñ f	<ØÔ%ˆBà�AŠvˆvà˜S˜b˜Sœ6�Ø”—’ Ñ)Ô)Ð)Ý˜h™-œ-�Ø�g�h�h”K�àÐ$Ô$¨Ñ/Ð$Ô$àÔ'¨1Ò,Ð,Ø.2�DÔ+ùØÔ(ð X<Ø”N QÑ&�à—f’f˜W‘o”o�à˜’7�7�s 1™vœv¨šz˜zØ%&�D”NØ�A‘Aà%(�D”Nà˜a’x�xà˜a˜b˜bœE˜˜å%/Ð0OÑ%PÔ%P˜œ
Ø37˜Ô0ð /4�DÔ+Ñ+ØÔ-ñ D<àÔ%¨Ñ)�Ø—f’f˜W‘o”o�à˜’7�7à()�DÔ%Ø�A‘Að ˜T˜c˜Tœ7�DØ˜# ™'˜)˜)œ�AØ(+�DÔ%àð <à#Ÿyšy¨™œ˜à 1š9˜9Ø&*¨4¨5¨5¤k˜GÝ-9Ô-?ÀÑ-HÔ-H˜Nà#1ð &Ý-7Ð8QÑ-RÔ-R ¤
Ø;? Ô 8à %à#'¨¨¨¤;˜Då-Ô3°DÑ9Ô9ð "Ý)3Ð4HÑ)IÔ)I˜DœJØ7;˜DÔ4à!õ !  r™]œ]˜à š6˜6à35˜DÔ0Ð0ð 8<˜DÔ4øð œ,¨Ñ*�à×%Ò% gÑ.Ô.ð :à%)�D”Nà$­¨G©¬°qÑ(8Ñ9Ð9Ý)¨'Ñ2Ô2�à˜’7�7à#*�D”LØ�A�Að &*�D”NØ#*¨4¨C¨4¤=�D”Là$­¨G©¬°sÑ(:Ñ;Ð;ðM ñ f	<ðP Ðr   c                 ó4   — | j                              ¦   «         S r
   r!   r   s    r   r"   zChunkedReceiver.getfileÂ   r   r   c                 ó   — | j         S r
   r$   r   s    r   r%   zChunkedReceiver.getbufÅ   r&   r   )r'   r(   r)   r4   r5   r9   r6   r8   r<   r   r*   r   r   r   r"   r%   r+   r   r   r-   r-   >   s�   € € € € € Ø€OØÐØ€LØ€IØÐØ€GØ€IØ€Eð
ð ð ð"ð "ð "ðoð oð oðb"ð "ð "ðð ð ð ð r   r-   N)	Ú__doc__Úwaitress.rfc7230r   r   Úwaitress.utilitiesr   r   r   r-   r+   r   r   ú<module>rM      s¦   ððð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð&ð &ð &ð &ð &ñ &ô &ð &ðRHð Hð Hð Hð Hñ Hô Hð Hð Hð Hr   