K iF'ddlmZddlmZddlmZmZ ddlmZdZdZ e rddl m Z m Z d d d d Zdd ZGd dej ZddZddZddZej(ej*eeeruej,ej*eej.ej*eej0ej*dej2ej*dyy#e $rdZYwxYw)) annotations)BytesIO)Image ImageFile)_webpTF)IOAnyRGBRGBA)sVP8 sVP8XsVP8Lcj|jd}|dddk(}|ddtv}|r |r |r ts yyy) NsRIFF sWEBPzEimage file could not be identified because WEBP support not installedTF) startswith_VP8_MODES_BY_IDENTIFIER SUPPORTED)prefixis_riff_file_format is_webp_fileis_valid_vp8_modes Y/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/WebPImagePlugin.py_acceptrsP ++G4!B<7*Lr" )AA|0AW  creZdZdZdZdZdZd dZddZddZ dddZ ddZ dd Z dfd Z dd Zdd ZxZS) WebPImageFileWEBPz WebP imagerctj|jj|_|jj \|_}}}}||jd<|dz dz|dz dz|dz dz|dzf\}}}}||||f|jd<||_|jdkD|_ |dk(rd n||_ ||_ |jjd } |jjd } |jjd } | r| |jd <| r| |jd<| r| |jd<|jdy)Nlooprr backgroundrRGBXr ICCPEXIFzXMP icc_profileexifxmpF)reset)rWebPAnimDecoderfpread_decoderget_info_sizeinfon_frames is_animated_moderawmode get_chunk_reset) self loop_countbgcolor frame_countmodebg_abg_rbg_gbg_br&r'r(s r_openzWebPImageFile._open-sS--dgglln= >B]]=S=S=U: Jd& & ]d " ]d " \T ! dN " dD$ $(tT": ,# ==1,"fnU$  mm--f5 }}&&v.mm%%f- '2DIIm $  $DIIf  "DIIe  %  rc\d|jvry|jjS)Nr')r0getexif_get_merged_dictr7s r_getexifzWebPImageFile._getexifOs&  "||~..00rc6|j|sy||_yN) _seek_check_WebPImageFile__logical_framer7frames rseekzWebPImageFile.seekTs&  %rcf|r|jjd|_d|_d|_y)Nr)r-r)_WebPImageFile__physical_frame_WebPImageFile__loaded_WebPImageFile__timestamp)r7r)s rr6zWebPImageFile._reset[s,  MM   ! ! rc |jj}|xjdz c_|.|j|j dd}t ||\}}||j z }||_||z}|||fS)Nrrz(failed to decode next frame in WebP file)r-get_nextrOr6rLEOFErrorrQ)r7retmsgdata timestampdurations r _get_nextzWebPImageFile._get_nextbsmm$$& " ; KKM IIaLz_save_all..s4A1r?r<enc frame_idxrXcur_idxnfridxrKrWs' r _save_allrs=..%%'K"=>M Etm#- j!,,- z b"h(4J{" .  WW\* j# &mmoG!*q.JNa3GH1aAs^ (*j#F ~~!!*bggkk*a.HIH >>  fa (DNN&&>M >>  fd +D >>  fd +D..$$]E:KG~~!!*e4Hnn  B/GNN&&>  fb )D$ #||~ ..  UB 'C |q! |r1 zD%= 1 z?a 444J:,Wcl(D$d"*, :daiHJ        CIIggiG4-' C#z1-CSz  &s+KKM)$! hu 6)!44I)IQ )   6 GGD% "Hg}aH << T3 /D |AclHHTN s 8BP77Q c  |jjdd}|jjdd}|jjdd}|jjdxsd}|jjd d }t|tjr|j }|j d r|d d}|jjd d}|jjdd} |jjdrdnd} t|}tj|j|t|t||| | || } | d} t| |j| y)NrFrrrrr&rr'rsExifr(rrexactrrr)rrrrrrrr{r WebPEncoderfloatrr) rzr+rrrrr&r'r(rrrWrVs rrrsL~~!!*e4Hnn  B/GNN&&>  fc *D$ #||~ 'ABx ..  UB 'C ^^  ! ,F##G,A!E  B      g m    D |AclHHTNrz.webpz image/webpN)rbytesrmz bool | str)rz Image.Imagermr)rzrr+z IO[bytes]rz str | bytesrmrn) __future__riorrrrrr ImportError TYPE_CHECKINGtypingr r rrrr{rr register_openrt register_saveregister_save_allregister_extension register_mimerhrrrs"I    n$I''n$byxDM((-A E ,,e4EM00)<E]117;E ,,l;  g IsC++C54C5