K i0ddlmZddlZddlmZmZmZddlmZejdZ ddZ Gdd ej Z Gd d ejZeje j e e ej"d eej$e j d ej&e j dy)) annotationsN)Image ImageFile ImagePalette)o8s$"([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)c$|jdS)Ns /* XPM */) startswith)prefixs X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/XpmImagePlugin.py_acceptr s   \ **c$eZdZdZdZddZddZy) XpmImageFileXPMz X11 Pixel MapcP|jJt|jjds d}t| |jj }|s d}t|t j |}|rnBt|jdt|jdf|_ t|jd}t|jd}i}t|D]}|jj j}|d|dz}||dzdj} td t| dD]} | | d k(s | | dz} | d k(r||jd <nc| jd rEt| ddd} t!| dz dzt!| dz dzzt!| dzz||<n d}t#|d}t#||dkDr d|_||f} nZd|_t'j(ddj+|j-|_|t1|j3f} t5j6dd|j8z|jj;| g|_y)N znot an XPM filezbroken XPM filerrcsNone transparency#zcannot read this XPM fileRGBPrxpm)rr)fpr read SyntaxErrorreadlinexpm_headmatchintgroup_sizerangerstripsplitleninfor r ValueError_moderrawjoinvaluespalettetuplekeysr_Tilesizetelltile)selfmsglinempalette_lengthbppr5_csirgbrgb_intargss r _openzXpmImageFile._open'stww"""tww||A'#Cc" "77##%D'!#&&t$A_c!''!*o5 QWWQZ!''!*o ~& &A77##%,,.DQq!AS1Wr"((*A1c!fa( &Q44<AE(Cg~45 .1-"%c!"gr"22 45 'Q,#!567 3/0  :(o-# &*2 o%9 &> C DJ>DDJ'++E388GNN PTUV rc|j\}}|jJt|Dcgc]1}|jjd|dzj |3}}dj |Scc}w)Nrr)r9r"r+r%ljustr3)r< read_bytesxsizeysizerErDs r load_readzXpmImageFile.load_readjsoyy uww"""EJ5\ RTWW   EAI . 4 4U ; R Rxx{ Ss6A4N)returnNone)rLr(rPbytes)__name__ __module__ __qualname__formatformat_descriptionrIrOrr rr#s F(AWF rrceZdZdZddZy) XpmDecoderTc|jJt}|j\}}|jj|jj z}|j dk(r|dz}d}t||kr|jj}|sn|jdk(r|sd}Cdj|jddd}td t||D]?}||||z} |j dk(r ||| z }#|t|j| z }At||kr|jt!|y ) NrrFs /* pixels */T"rr)r]r)fd bytearrayrHstaterMrNmoder.r%r,r3r-r+rindex set_as_rawrR) r<bufferdatarAr5 dest_length pixel_headerr>rEkeys r decodezXpmDecoder.decodeys:ww"""{yy Wjj&&)9)99 99  1 K $i+%77##%D{{}/ # 99TZZ-a34D1c$i- 31q3w'99%GCL(DBw}}S122D  3$i+% d $rN)rdz$bytes | Image.SupportsArrayInterfacerPztuple[int, int])rSrTrU _pulls_fdrirXrr rZrZvs IrrZr!z.xpmz image/xpm)r rRrPbool) __future__rrerrr_binaryrcompiler&r r PyDecoderrZ register_openrVregister_decoderregister_extension register_mimerXrr rvs # ,, 2::= >+P9&&Pf$$DL''w?uj),,f5L''5r