
    h                       S SK Jr  S SKrS SKrS SKJr  SSKJrJr  SSK	J
r  SSK	Jr  SS jr " S	 S
\R                  5      r " S S\R                   5      r\R$                  " S\5        SS jr\R(                  " \R*                  \\5        \R,                  " \R*                  \5        \R.                  " \R*                  S5        g)    )annotationsN)IO   )Image	ImageFile)i16le)o16lec                $    U R                  S5      $ )N)   DanMs   LinS)
startswith)prefixs    D/var/www/html/env/lib/python3.13/site-packages/PIL/MspImagePlugin.py_acceptr   '   s    /00    c                  &    \ rS rSrSrSrSS jrSrg)MspImageFile0   MSPzWindows Paintc                $   U R                   c   eU R                   R                  S5      n[        U5      (       d  Sn[        U5      eSn[	        SSS5       H  nU[        X5      -  nM     US:w  a  Sn[        U5      eSU l        [        US5      [        US5      4U l        UR                  S	5      (       a-  [        R                  " S
SU R                  -   SS5      /U l        g [        R                  " SSU R                  -   S5      /U l        g )N    znot an MSP filer      zbad MSP checksum1      r   rawr   r   r   )fpreadr   SyntaxErrorrangei16_mode_sizer   r   _Tilesizetile)selfsmsgchecksumis        r   _openMspImageFile._open4   s    ww"""GGLLqzz#Cc"" q"aA#a)+H !q=$Cc""
AYAq	)
<<  "0BBLMDI"0BBGHDIr   )r"   r#   r&   N)returnNone)__name__
__module____qualname____firstlineno__formatformat_descriptionr,   __static_attributes__ r   r   r   r   0   s    F(Ir   r   c                  "    \ rS rSrSrSS jrSrg)
MspDecoderN   Tc                .   U R                   c   e[        R                  " 5       n[        SU R                  R
                  S-   S-  -  5      n U R                   R                  S5        [        R                  " SU R                  R                   S3U R                   R                  U R                  R                  S-  5      5      n[        U5       H  u  px US	:X  a  UR                  U5        M  U R                   R                  U5      n	[        U	5      U:w  a  S
U SU 3n[        U5      eS	n
X:  ae  X   nU
S-  n
US	:X  a2  [        R                  " SX5      u  pUR                  X-  5        U
S-  n
OUnUR                  XX-    5        X-  n
X:  a  Mc  M  M     U R!                  UR#                  5       S5        g! [        R                   a  nSn[        U5      UeS nAff = f! [        R                   a  nSU 3n[        U5      UeS nAff = f)N)         r   <Hr   zTruncated MSP file in row mapr   zTruncated MSP file, expected z bytes on row r   BczCorrupted MSP file in row r   )r   )fdioBytesIO	bytearraystatexsizeseekstructunpack_fromysizer   errorOSError	enumeratewritelen
set_as_rawgetvalue)r'   bufferimg
blank_linerowmaper)   xrowlenrowidxruntyperuncountrunvals                 r   decodeMspDecoder.decodes   s   ww"""jjlw4::+;+;a+?A*EFG
	&GGLL''DJJ$$%Q'djj6F6F6J)KF #6*IA*Q;IIj)ggll6*s8v%9&PQsSC!#,&l!hG1HC!|-3-?-?c-O*		&"34q#*		#CN";< ll +4 	,A || 	&1C#,A%	&4 << *21#6cl)*s8   A:G  G*2B%G* G'G""G'*H>HHr7   N)rT   z$bytes | Image.SupportsArrayInterfacer.   ztuple[int, int])r0   r1   r2   r3   	_pulls_fdr`   r6   r7   r   r   r9   r9   N   s    F I*r   r9   r   c           
        U R                   S:w  a  SU R                    S3n[        U5      eS/S-  n[        S5      [        S5      sUS'   US'   U R                  u  US	'   US
'   Su  US'   US'   Su  US'   US'   U R                  u  US'   US'   SnU H  nXV-  nM	     XTS'   U H  nUR	                  [        U5      5        M     [        R                  " X[        R                  " SSU R                  -   SS5      /5        g )Nr   zcannot write mode z as MSPr      s   Das   nMr   r      )r   r   r      r   r=   r>   	      r   r   r   )	moderN   r!   r%   rP   o16r   _saver$   )imr   filenamer)   headerr*   hs          r   rk   rk      s   	ww#~"277)73cl S2XFu:s5zF1Ivay77F1IvayF1IvayF1Ivay77F1IvayH< 2J 
Q  OOBY__UFRWW4Db#NOPr   z.msp)r   bytesr.   bool)rl   zImage.Imager   z	IO[bytes]rm   zstr | bytesr.   r/   )
__future__r   rD   rJ   typingr    r   r   _binaryr   r!   r	   rj   r   r   	PyDecoderr9   register_decoderrk   register_openr4   register_saveregister_extensionr7   r   r   <module>r{      s   2 # 	    ! !1I9&& I<O$$ Od   uj )Q<   L''w ?   L'' /   ,,f 5r   