
    e                    <   d dl mZ d dlZddlmZmZmZ ddlmZ  ej                  d      Z
d Z G d d	ej
                        Z ej                  ej                  ee        ej                  ej                  d
        ej                   ej                  d       y)    )annotationsN   )Image	ImageFileImagePalette)o8s$   "([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)c                    | d d dk(  S )N	   s	   /* XPM */ )prefixs    4/usr/lib/python3/dist-packages/PIL/XpmImagePlugin.py_acceptr      s    "1:%%    c                       e Zd ZdZdZd Zd Zy)XpmImageFileXPMzX11 Pixel Mapc                   t        | j                  j                  d            sd}t        |      	 | j                  j	                         }|sd}t        |      t
        j                  |      }|rnBt        |j                  d            t        |j                  d            f| _	        t        |j                  d            }t        |j                  d            }|dkD  s|dk7  rd	}t        |      d
gdz  }t        |      D ]  }| j                  j	                         }|dd  dk(  r|d d }n|dd  dv r|d d }|d   }|dd j                         }t        dt        |      d      D ]  }	||	   dk(  s||	dz      }
|
dk(  r|| j                  d<   nZ|
d d dk(  rEt        |
dd  d      }
t        |
dz	  dz        t        |
dz	  dz        z   t        |
dz        z   ||<   nd	}t        |        d	}t        |       d| _        t#        j$                  ddj'                  |            | _        dd| j*                  z   | j                  j-                         dfg| _        y )Nr
   znot an XPM filezbroken XPM filer               zcannot read this XPM files      s   
r      cs   Nonetransparency   #         PRGBr   raw)r   r   )r    r   r   )r   fpreadSyntaxErrorreadlinexpm_headmatchintgroup_size
ValueErrorrangesplitleninfor   _moder   r"   joinpalettesizetelltile)selfmsgsmpalbppr3   _cirgbs              r   _openzXpmImageFile._open'   sa   tww||A'#Cc""   "A'!#&&q!A  _c!''!*o5
!''!*o!''!*o9q-CS/!
 +#s 	&A  "Av crF237"crF!A!BA1c!fa( &Q44<AE(Cg~45		.1RaD!#ab'2.r	S01BqC7G4HH2cTWi=X  

 :(o-!&( 2 o%?	&B 
#''sxx/@AVdii/MN	r   c                    | j                   \  }}d g|z  }t        |      D ]4  }| j                  j                         d|dz    j	                  |      ||<   6 dj                  |      S )Nr   r   )r4   r-   r#   r&   ljustr2   )r7   bytesxsizeysizer9   r?   s         r   	load_readzXpmImageFile.load_readj   sm     yyuFUNu 	BA77##%a%!)4::5AAaD	B xx{r   N)__name__
__module____qualname__formatformat_descriptionrA   rG   r   r   r   r   r   #   s    F(AOFr   r   z.xpmz	image/xpm)
__future__r   re r   r   r   _binaryr   compiler'   r   r   register_openrK   register_extensionregister_mimer   r   r   <module>rU      s     # 	 , ,  2::=>&R9&& Rr   L''w ?   ,,f 5   L'' 5r   