
    .iA                        d dl mZ d dlZddlmZmZmZ ddlmZ	 ddlm
Z ddlmZ ddlmZ ddZ G d dej                  Z ej        ej        ee            ej        ej        ddg           dS )    )annotationsN   )Image	ImageFileImagePalette)i16le)i32leo8)DeferredErrorprefixbytesreturnboolc                p    t          |           dk    o#t          | d          dv ot          | d          dv S )N      )  i     )r      )leni16)r   s    N/var/www/html/analyses/venv/lib/python3.11/site-packages/PIL/FliImagePlugin.py_acceptr      s@    Fr 	&NN..	&OOv%    c                  B    e Zd ZdZdZdZddZddZddZddZ	ddZ
dS )FliImageFileFLIzAutodesk FLI/FLC AnimationFr   Nonec                   | j         J | j                             d          }t          |          r*|dd         dk    r|dd         dk    r|dd          d	k    sd
}t          |          t	          |d          | _        | j        dk    | _        d| _        t	          |d          t	          |d          f| _        t          |d          }t	          |d          }|dk    r|dz  dz  }|| j
        d<   d t          d          D             }| j                             d          }d| _        t	          |d          dk    rI| j                             | j        t          |          z              | j                             d          }t	          |d          dk    rt	          |d          }d }t          |          D ]}|(| j                             |dz
  t          j                   | j                             d          }t	          |d          }	|	dv r |                     ||	dk    rdnd            nt          |          }|s nt#          j        dd                    d  |D                                 | _        d!| _        | j         | _        | j                                         | _        |                     d           d S )"N         s     *   P   s&                                         X   s(                                           znot an FLI/FLC file   r   P   
   r   r   r   i  F   durationc                    g | ]}|||fS  r.   ).0as     r   
<listcomp>z&FliImageFile._open.<locals>.<listcomp>N   s    111Aq!9111r      i   i  )r      r3      r   RGBr   c              3  |   K   | ]7\  }}}t          |          t          |          z   t          |          z   V  8d S Nr
   )r/   rgbs       r   	<genexpr>z%FliImageFile._open.<locals>.<genexpr>j   sC      KKiq!QBqEEBqEEMBqEE1KKKKKKr   )fpreadr   SyntaxErrorr   n_framesis_animated_mode_sizei32inforange_FliImageFile__offsetseekosSEEK_CUR_paletter   rawjoinpalette_FliImageFile__frame_fptell_FliImageFile__rewind)
selfsmsgr,   magicrN   number_of_subchunks
chunk_size_
chunk_types
             r   _openzFliImageFile._open1   s   w"""GLLAJJ	#"R%K''"R%L(("##,&&'Cc""" Aq		=1, 
AYYAr

*
 q"::Aq		F?? 4B.H (	* 21eCjj111GLLq!99GLLQ/000R  Aq!99"%a))%)J.// 
 
)GLLa===GLLOO AYY
((MM'
b0@0@11aHHHE VV
! E $'388KK7KKKKK
 

 7		!r   rN   list[tuple[int, int, int]]shiftintc                   d}| j         J t          t          | j                             d                              D ]}| j                             d          }||d         z   }|d         }|dk    rd}| j                             |dz            }t          dt	          |          d          D ]6}||         |z  }||dz            |z  }||dz            |z  }	|||	f||<   |dz  }7d S )Nr   r4   r   r2   r   )r=   rF   r   r>   r   )
rS   rN   r]   ierT   nr8   r9   r:   s
             r   rK   zFliImageFile._palettes   s	    w"""s47<<??++,, 	 	AQAAaDA!AAvvQU##A1c!ffa((  aDEMa!eH%a!eH%AY
Q	 	r   framec                    |                      |          sd S || j        k     r|                     d           t          | j        dz   |dz             D ]}|                     |           d S )Nr   r   )_seek_checkrO   _seekrF   )rS   rc   fs      r   rH   zFliImageFile.seek   sx    && 	F4<JJqMMMt|a'33 	 	AJJqMMMM	 	r   c                   t          | j        t                    r| j        j        |dk    r.d| _        | j                            | j                   d| _        n|                                  || j        dz   k    rd| }t          |          || _        | j        | _
        | j
                            | j                   | j
                            d          }|sd}t          |          t          |          }|| _        t          j        dd	| j        z   | j                  g| _        | xj        |z  c_        d S )
Nr   r<   r!   r   zcannot seek to frame r   zmissing frame sizefli)r   r   )
isinstancerP   r   exrO   rH   rR   rG   load
ValueErrorr=   r>   EOFErrorrD   decodermaxblockr   _Tilesizetile)rS   rc   rU   rT   	framesizes        r   rf   zFliImageFile._seek   s#   dh.. 	(+A::DLHMM$-(((DMM IIKKKDL1$$$1%11CS//! (T]###GLLOO 	 &C3--FF	(_UFTY,>NNO	"r   c                    | j         S r7   )rO   )rS   s    r   rQ   zFliImageFile.tell   s
    |r   N)r   r   )rN   r\   r]   r^   r   r   )rc   r^   r   r   )r   r^   )__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr[   rK   rH   rf   rQ   r.   r   r   r   r   ,   s        F5(-%@ @ @ @D   &   # # # #@     r   r   z.fliz.flc)r   r   r   r   )
__future__r   rI    r   r   r   _binaryr   r   r	   rD   r   _utilr   r   r   register_openrx   register_extensionsr.   r   r   <module>r      s  " # " " " " " 				 , , , , , , , , , , ! ! ! ! ! ! ! ! ! ! ! !                     D D D D D9& D D DT  L'w ? ? ?  ,-/? @ @ @ @ @r   