Files
sirh/venv/lib/python3.12/site-packages/PIL/__pycache__/BlpImagePlugin.cpython-312.pyc

149 lines
24 KiB
Plaintext
Raw Normal View History

2026-04-29 11:52:03 +02:00
<EFBFBD>
<00><><EFBFBD>i<EFBFBD>@<00><01><><00>dZddlmZddlZddlZddlZddlmZddlm Z ddl
m Z ddl m Z mZGd <09>d
e<07>ZGd <0B>d e<07>ZGd <0A>de<07>Zd%d<0F>Z d& d'd<10>Zd(d<11>Zd(d<12>ZGd<13>de<16>Zd)d<15>ZGd<16>dej<00>ZGd<18>dej4ej6<00>ZGd<1A>de<1C>ZGd<1C>de<1C>ZGd<1E>dej><00>Z d*d <20>Z!e jDejFee<18>e jHejFd!<21>e jJd"e<1D>e jJd#e<1E>e jLejFe!<21>e jNd$e <20>y)+a<>
Blizzard Mipmap Format (.blp)
Jerome Leclanche <jerome@leclan.ch>
The contents of this file are hereby released in the public domain (CC0)
Full text of the CC0 license:
https://creativecommons.org/publicdomain/zero/1.0/
BLP1 files, used mostly in Warcraft III, are not fully supported.
All types of BLP2 files used in World of Warcraft are supported.
The BLP file structure consists of a header, up to 16 mipmaps of the
texture
Texture sizes must be powers of two, though the two dimensions do
not have to be equal; 512x256 is valid, but 512x200 is not.
The first mipmap (mipmap #0) is the full size image; each subsequent
mipmap halves both dimensions. The final mipmap should be 1x1.
BLP files come in many different flavours:
* JPEG-compressed (type == 0) - only supported for BLP1.
* RAW images (type == 1, encoding == 1). Each mipmap is stored as an
array of 8-bit values, one per pixel, left to right, top to bottom.
Each value is an index to the palette.
* DXT-compressed (type == 1, encoding == 2):
- DXT1 compression is used if alpha_encoding == 0.
- An additional alpha bit is used if alpha_depth == 1.
- DXT3 compression is used if alpha_encoding == 1.
- DXT5 compression is used if alpha_encoding == 7.
<EFBFBD>)<01> annotationsN)<01>IntEnum)<01>BytesIO)<01>IO<49>)<02>Image<67> ImageFilec<01><00>eZdZdZy)<03>FormatrN)<04>__name__<5F>
__module__<EFBFBD> __qualname__<5F>JPEG<45><00><00>O/home/fatima/modif/sirh/venv/lib/python3.12/site-packages/PIL/BlpImagePlugin.pyr r ,s<00><00> <0C>Drr c<01><00>eZdZdZdZdZy)<05>Encodingr<00><00>N)r r r<00> UNCOMPRESSED<45>DXT<58>UNCOMPRESSED_RAW_BGRArrrrr0s<00><00><14>L<EFBFBD>
<0B>C<EFBFBD><1D>rrc<01><00>eZdZdZdZdZy)<05> AlphaEncodingrr<00>N)r r r<00>DXT1<54>DXT3<54>DXT5rrrrr6s<00><00> <0C>D<EFBFBD> <0C>D<EFBFBD> <0C>Drrc<01><<00>|dz dzdz|dz dzdz|dzdzfS)N<> <00>r<00><00>?rr)<01>is r<00>
unpack_565r&<s2<00><00> <0E>"<22>W<EFBFBD><04> <1C><11> "<22>a<EFBFBD>1<EFBFBD>f<EFBFBD><04>_<EFBFBD><11>$:<3A>Q<EFBFBD><14>X<EFBFBD>!<21>O<EFBFBD> K<>Krc <01><><00>t|<00>dz}t<00>t<00>t<00>t<00>f}t|<02>D<00>]/}|dz}tjd||<05>\}}}t |<06>\} }
} t |<07>\} } }td<03>D]<5D>}td<03>D]<5D>}|dz}|dz }d}|dk(r| |
| }}}n<>|dk(r| | |}}}nx|dk(r@||kDr"d| z| zdz}d|
z| zdz}d| z|zdz}nL| | zdz}|
| zdz}| |zdz}n3|dk(r.||kDr"d| z| zdz}d| z|
zdz}d|z| zdz}nd \}}}}|r||j |g<04><00><>||j g<03><00><><00><><00><01>2|S)
<EFBFBD>E
input: one "row" of data (i.e. will produce 4*width pixels)
<20>z<HHI<48>rr<00><>rr)rrrr<00><07>len<65> bytearray<61>range<67>struct<63> unpack_fromr&<00>extend)<16>data<74>alpha<68>blocks<6B>ret<65> block_index<65>idx<64>color0<72>color1<72>bits<74>r0<72>g0<67>b0<62>r1<72>g1<67>b1<62>jr%<00>control<6F>a<>r<>g<>bs r<00> decode_dxt1rH@s<><00><00><11><14>Y<EFBFBD>!<21>^<5E>F<EFBFBD> <14>;<3B> <09> <0B>Y<EFBFBD>[<5B>)<29>+<2B>
><3E>C<EFBFBD><1C>V<EFBFBD>}<7D>*-<2D> <0B><19>A<EFBFBD>o<EFBFBD><03>%<25>1<>1<>&<26>$<24><03>D<><1C><06><06><04><1F><06>'<27>
<EFBFBD><02>B<EFBFBD><02><1F><06>'<27>
<EFBFBD><02>B<EFBFBD><02><17>q<EFBFBD><18> -<2D>A<EFBFBD><1A>1<EFBFBD>X<EFBFBD> -<2D><01><1F><11>(<28><07><1B>q<EFBFBD>y<EFBFBD><04><18><01><1A>a<EFBFBD><<3C> <20>"<22>b<EFBFBD>!<21>q<EFBFBD>A<EFBFBD><1C><01>\<5C> <20>"<22>b<EFBFBD>!<21>q<EFBFBD>A<EFBFBD><1C><01>\<5C><1D><06><EFBFBD><1E><12>V<EFBFBD>b<EFBFBD>[<5B>Q<EFBFBD>.<2E><01><1E><12>V<EFBFBD>b<EFBFBD>[<5B>Q<EFBFBD>.<2E><01><1E><12>V<EFBFBD>b<EFBFBD>[<5B>Q<EFBFBD>.<2E><01><1F>"<22>W<EFBFBD><11>N<EFBFBD><01><1F>"<22>W<EFBFBD><11>N<EFBFBD><01><1F>"<22>W<EFBFBD><11>N<EFBFBD><01><1C><01>\<5C><1D><06><EFBFBD><1E><12>V<EFBFBD>b<EFBFBD>[<5B>Q<EFBFBD>.<2E><01><1E><12>V<EFBFBD>b<EFBFBD>[<5B>Q<EFBFBD>.<2E><01><1E><12>V<EFBFBD>b<EFBFBD>[<5B>Q<EFBFBD>.<2E><01>%/<2F>
<EFBFBD><01>1<EFBFBD>a<EFBFBD><11><18><17><01>F<EFBFBD>M<EFBFBD>M<EFBFBD>1<EFBFBD>a<EFBFBD><11>A<EFBFBD>,<2C>/<2F><17><01>F<EFBFBD>M<EFBFBD>M<EFBFBD>1<EFBFBD>a<EFBFBD><11>)<29>,<2C>? -<2D> -<2D>*-<2D>X <0F>Jrc <01>&<00>t|<00>dz}t<00>t<00>t<00>t<00>f}t|<01>D<00>]M}|dz}|||dz}tjd|<05>}tjd|d<04>\}}tjd|d<06>\} t |<07>\}
} } t |<08>\} }}td<07>D]<5D>}d}td<07>D]<5D>}d|z|zd z}||}|rd}|dz}nd
}|d z}|d z}| d d|z|zzz d z}|dk(r|
| | }}}nY|dk(r| ||}}}nM|d k(r"d |
z| zd z}d | z|zd z}d | z|zd z}n&|d k(r!d | z|
zd z}d |z| zd z}d |z| zd z}||j |g<04><00><><00><><00><01>P|S)r(<00>z<8B<38><HHr)<00><I<> r*FrT<><00>rrrr,)r3r5r6r7r8<00>blockr;r9r:<00>coder<r=r>r?r@rArB<00>highr%<00>alphacode_indexrD<00>
color_coderErFrGs r<00> decode_dxt3rUys<00><00>
<11><14>Y<EFBFBD>"<22>_<EFBFBD>F<EFBFBD> <14>;<3B> <09> <0B>Y<EFBFBD>[<5B>)<29>+<2B>
><3E>C<EFBFBD><1C>V<EFBFBD>}<7D>(,<2C> <0B><19>B<EFBFBD><1E><03><14>S<EFBFBD>3<EFBFBD><12>8<EFBFBD>$<24><05><15>!<21>!<21>%<25><15>/<2F><04><1F>+<2B>+<2B>E<EFBFBD>5<EFBFBD>!<21><<3C><0E><06><06><18>$<24>$<24>T<EFBFBD>5<EFBFBD>"<22>5<><07><14><1F><06>'<27>
<EFBFBD><02>B<EFBFBD><02><1F><06>'<27>
<EFBFBD><02>B<EFBFBD><02><16>q<EFBFBD><18> ,<2C>A<EFBFBD><18>D<EFBFBD><1A>1<EFBFBD>X<EFBFBD> ,<2C><01>#$<24>q<EFBFBD>5<EFBFBD>1<EFBFBD>9<EFBFBD><11>"2<><0F><18><1F>)<29><01><17> <20>D<EFBFBD><15>!<21>G<EFBFBD>A<EFBFBD><1F>D<EFBFBD><15><13>H<EFBFBD>A<EFBFBD><11>R<EFBFBD><07><01>"<22>a<EFBFBD>1<EFBFBD>q<EFBFBD>5<EFBFBD>1<EFBFBD>9<EFBFBD>o<EFBFBD>5<><14>=<3D>
<EFBFBD><1D><11>?<3F> <20>"<22>b<EFBFBD>!<21>q<EFBFBD>A<EFBFBD><1F>1<EFBFBD>_<EFBFBD> <20>"<22>b<EFBFBD>!<21>q<EFBFBD>A<EFBFBD><1F>1<EFBFBD>_<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1F>1<EFBFBD>_<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><13>A<EFBFBD><06> <0A> <0A>q<EFBFBD>!<21>Q<EFBFBD><01>l<EFBFBD>+<2B>5 ,<2C> ,<2C>(,<2C>T <0F>Jrc <01>z<00>t|<00>dz}t<00>t<00>t<00>t<00>f}t|<01>D<00>]<5D>}|dz}|||dz}tjd|<05>\}}tjd|d<04>}|d|ddzz|ddzz|dd zz} |d
|d dzz}
tjd |d<06>\} } tjd |d<0E>\} t | <0B>\}}}t | <0C>\}}}td<07>D<00>])}td<07>D<00>]}dd|z|zz}|dkr |
|z dz}n|dk(r|
dz | d zdzz}n | |dz
z dz}|d
k(r|}nF|d k(r|}n>||kDrd|z
|z|d z
|zzdz}n$|dk(rd
}n|dk(rd}nd|z
|z|d z
|zzdz}| dd|z|zzz dz}|d
k(r|||}}}nY|d k(r|||}}}nM|dk(r"d|z|zdz}d|z|zdz}d|z|zdz}n&|dk(r!d|z|zdz}d|z|zdz}d|z|zdz}||j |g<04><00><01><00><01>,<00><01><>|S)zG
input: one "row" of data (i.e. will produce 4 * width pixels)
rJz<BBz<6Brrr)r*r#<00>rrrKrLrMrrN<00>r+r,)r3r5r6r7r8rP<00>a0<61>a1r;<00>
alphacode1<EFBFBD>
alphacode2r9r:rQr<r=r>r?r@rArBr%rS<00> alphacoderDrTrErFrGs r<00> decode_dxt5r^<00>s<><00><00>
<11><14>Y<EFBFBD>"<22>_<EFBFBD>F<EFBFBD> <14>;<3B> <09> <0B>Y<EFBFBD>[<5B>)<29>+<2B>
><3E>C<EFBFBD><1C>V<EFBFBD>}<7D>9,<2C> <0B><19>B<EFBFBD><1E><03><14>S<EFBFBD>3<EFBFBD><12>8<EFBFBD>$<24><05><17>#<23>#<23>E<EFBFBD>5<EFBFBD>1<><06><02>B<EFBFBD><15>!<21>!<21>%<25><15><01>2<><04><19>!<21>W<EFBFBD><04>Q<EFBFBD><07>1<EFBFBD> <0C>-<2D><14>a<EFBFBD><17>B<EFBFBD><1D>?<3F>4<EFBFBD><01>7<EFBFBD>b<EFBFBD>=<3D>Q<>
<EFBFBD><19>!<21>W<EFBFBD><04>Q<EFBFBD><07>1<EFBFBD> <0C>-<2D>
<EFBFBD><1F>+<2B>+<2B>E<EFBFBD>5<EFBFBD>!<21><<3C><0E><06><06><18>$<24>$<24>T<EFBFBD>5<EFBFBD>"<22>5<><07><14><1F><06>'<27>
<EFBFBD><02>B<EFBFBD><02><1F><06>'<27>
<EFBFBD><02>B<EFBFBD><02><16>q<EFBFBD><18>( ,<2C>A<EFBFBD><1A>1<EFBFBD>X<EFBFBD>' ,<2C><01>"#<23>q<EFBFBD>1<EFBFBD>u<EFBFBD>q<EFBFBD>y<EFBFBD>/<2F><0F>"<22>b<EFBFBD>(<28>!+<2B><EFBFBD>!><3E>$<24> F<>I<EFBFBD>$<24><02>*<2A>!+<2B>r<EFBFBD>!1<>z<EFBFBD>Q<EFBFBD><EFBFBD>$<24>6N<36> O<>I<EFBFBD>!+<2B><0F>"<22>0D<30>!E<><14> M<>I<EFBFBD><1C><01>><3E><1A>A<EFBFBD><1E>!<21>^<5E><1A>A<EFBFBD><17>"<22>W<EFBFBD><1B>i<EFBFBD>-<2D>2<EFBFBD>-<2D><19>Q<EFBFBD><1D>"<22>0D<30>D<><11>J<>A<EFBFBD><1E>!<21>^<5E><19>A<EFBFBD><1E>!<21>^<5E><1B>A<EFBFBD><1B>i<EFBFBD>-<2D>2<EFBFBD>-<2D><19>Q<EFBFBD><1D>"<22>0D<30>D<><11>J<>A<EFBFBD>"<22>a<EFBFBD>1<EFBFBD>q<EFBFBD>5<EFBFBD>1<EFBFBD>9<EFBFBD>o<EFBFBD>5<><14>=<3D>
<EFBFBD><1D><11>?<3F> <20>"<22>b<EFBFBD>!<21>q<EFBFBD>A<EFBFBD><1F>1<EFBFBD>_<EFBFBD> <20>"<22>b<EFBFBD>!<21>q<EFBFBD>A<EFBFBD><1F>1<EFBFBD>_<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1F>1<EFBFBD>_<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><1A>R<EFBFBD><16>"<22><1B><11>*<2A>A<EFBFBD><13>A<EFBFBD><06> <0A> <0A>q<EFBFBD>!<21>Q<EFBFBD><01>l<EFBFBD>+<2B>O' ,<2C>( ,<2C>#9,<2C>v <0F>Jrc<01> <00>eZdZy)<02>BLPFormatErrorN)r r rrrrr`r`<00>s<00><00>rr`c<01>$<00>|jd<01>S)N)<02>BLP1<50>BLP2)<01>
startswith)<01>prefixs r<00>_acceptrf<00>s<00><00> <11> <1C> <1C>/<2F> 0<>0rc<01> <00>eZdZdZdZdZdd<04>Zy)<07> BlpImageFilez
Blizzard Mipmap Format
<20>BLPzBlizzard Mipmap Formatc<01>B<00>|j<00>J<00>|jjd<01>|_t|j<00>s#dt |j<00><00><00>}t |<01><00>t jd|jjd<01><00>d}|jdk(r6t jd|jjd<01><00>ddk7}n<>t jd|jjd<08><00>d}t jd|jjd<08><00>ddk7}t jd|jjd<08><00>d}|jjdtj<00>t jd |jjd
<EFBFBD><00>|_ |jdk(rdt jd|jjd<01><00>d}|jjdtj<00>|||f}d }n||f}d }|jj<00>}|rd nd|_ tj|d|j z||<06>g|_y)Nr*zBad BLP magic <20><irrbrL<00><br<00><IIr)<00><00><00>RGBA<42>RGB<47>rr)<12>fp<66>read<61>magicrf<00>reprr`r0<00>unpack<63>seek<65>os<6F>SEEK_CUR<55>_size<7A>decode<64>_moder <00>_Tile<6C>size<7A>tile) <09>self<6C>msg<73> compressionr4<00>encoding<6E>alpha_encoding<6E>args<67>offset<65>decoders r<00>_openzBlpImageFile._opens<><00><00><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22><19>W<EFBFBD>W<EFBFBD>\<5C>\<5C>!<21>_<EFBFBD><04>
<EFBFBD><16>t<EFBFBD>z<EFBFBD>z<EFBFBD>"<22>"<22>4<EFBFBD><04>
<EFBFBD>
<EFBFBD>#3<>"4<>5<>C<EFBFBD> <20><13>%<25> %<25><1C>m<EFBFBD>m<EFBFBD>D<EFBFBD>$<24>'<27>'<27>,<2C>,<2C>q<EFBFBD>/<2F>:<3A>1<EFBFBD>=<3D> <0B> <0F>:<3A>:<3A><17> <20><1A>M<EFBFBD>M<EFBFBD>$<24><04><07><07> <0C> <0C>Q<EFBFBD><0F>8<><11>;<3B>q<EFBFBD>@<40>E<EFBFBD><1D>}<7D>}<7D>T<EFBFBD>4<EFBFBD>7<EFBFBD>7<EFBFBD><<3C><<3C><01>?<3F>;<3B>A<EFBFBD>><3E>H<EFBFBD><1A>M<EFBFBD>M<EFBFBD>$<24><04><07><07> <0C> <0C>Q<EFBFBD><0F>8<><11>;<3B>q<EFBFBD>@<40>E<EFBFBD>#<23>]<5D>]<5D>4<EFBFBD><14><17><17><1C><1C>a<EFBFBD><1F>A<>!<21>D<>N<EFBFBD> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>B<EFBFBD>K<EFBFBD>K<EFBFBD> (<28><1B>]<5D>]<5D>5<EFBFBD>$<24>'<27>'<27>,<2C>,<2C>q<EFBFBD>/<2F>:<3A><04>
<EFBFBD> <10>:<3A>:<3A><17> <20><1D>}<7D>}<7D>T<EFBFBD>4<EFBFBD>7<EFBFBD>7<EFBFBD><<3C><<3C><01>?<3F>;<3B>A<EFBFBD>><3E>H<EFBFBD> <10>G<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD><11>B<EFBFBD>K<EFBFBD>K<EFBFBD> (<28><1F><18>5<EFBFBD>1<>D<EFBFBD><17>F<EFBFBD><1F><18>5<EFBFBD>.<2E>A<>D<EFBFBD><17>F<EFBFBD><16>*<2A>*<2A>#<23>#<23>%<25><07>$<24>V<EFBFBD>%<25><04>
<EFBFBD><1E>_<EFBFBD>_<EFBFBD>W<EFBFBD>f<EFBFBD>t<EFBFBD>y<EFBFBD>y<EFBFBD>.@<40>&<26>$<24>O<>P<><04> rN<><02>return<72>None)r r r<00>__doc__<5F>format<61>format_descriptionr<6E>rrrrhrh<00>s<00><00><08><13>F<EFBFBD>1<><16> Qrrhc<01>j<00>eZdZdZd d<02>Zej d
d<03><04>Zd
d<04>Zd d<05>Z d d<06>Z
d d<07>Z y)<0E>_BLPBaseDecoderTc<01><><00> |j<00>|j<00>y#tj$r}d}t |<03>|<02>d}~wwxYw)NzTruncated BLP file)<02><><EFBFBD><EFBFBD><EFBFBD>r)<05> _read_header<65>_loadr0<00>error<6F>OSError)r<><00>buffer<65>er<65>s rr|z_BLPBaseDecoder.decode*sH<00><00> &<26> <10> <1D> <1D> <1F> <10>J<EFBFBD>J<EFBFBD>L<EFBFBD><15><><16>|<7C>|<7C> &<26>&<26>C<EFBFBD><19>#<23>,<2C>A<EFBFBD> %<25><> &<26>s<00> #<00>A <03>A<03>A c<01><00>y<00>Nr<00>r<>s rr<>z_BLPBaseDecoder._load3s<00><00> rc<01><><00>tjd|jd<02><00>|_tjd|jd<02><00>|_y)N<><16I<36>@)r0rw<00>
_safe_read<EFBFBD>_offsets<74>_lengthsr<73>s rr<>z_BLPBaseDecoder._read_header7s8<00><00><1E> <0A> <0A>f<EFBFBD>d<EFBFBD>o<EFBFBD>o<EFBFBD>f<EFBFBD>.E<>F<><04> <0A><1E> <0A> <0A>f<EFBFBD>d<EFBFBD>o<EFBFBD>o<EFBFBD>f<EFBFBD>.E<>F<><04> rc<01>^<00>|j<00>J<00>tj|j|<01>Sr<>)<03>fdr r<>)r<><00>lengths rr<>z_BLPBaseDecoder._safe_read;s)<00><00><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22><18>#<23>#<23>D<EFBFBD>G<EFBFBD>G<EFBFBD>V<EFBFBD>4<>4rc<01><><00>g}td<01>D]B} tjd|jd<03><00>\}}}}|j ||||f<04><00>D|S#tj$rY|SwxYw)N<><00><4Br*)r/r0rwr<>r<><00>append)r<>r6r%rGrFrErDs r<00> _read_palettez_BLPBaseDecoder._read_palette?sz<00><00><10><03><16>s<EFBFBD><1A> %<25>A<EFBFBD> <16>#<23>]<5D>]<5D>5<EFBFBD>$<24>/<2F>/<2F>!<21>2D<32>E<>
<EFBFBD><01>1<EFBFBD>a<EFBFBD><11> <10>J<EFBFBD>J<EFBFBD><01>1<EFBFBD>a<EFBFBD><11>|<7C> $<24>  %<25> <13>
<EFBFBD><EFBFBD><1A><<3C><<3C> <16><15><12>
<EFBFBD> <16>s<00>*A<02>A-<05>,A-c<01><<00>t<00>}t|j|jd<00><00>} t j
d|j d<03><00>\}||\}}}} |||f}
|r|
| fz }
|j|
<EFBFBD><00>Q#tj$rY|SwxYw)Nr<00><Br) r.rr<>r<>r0rwrtr<>r2) r<><00>paletter4r3<00>_datar<61>rGrFrErD<00>ds r<00>
_read_bgraz_BLPBaseDecoder._read_bgraIs<><00><00><19>{<7B><04><17><04><0F><0F><04> <0A> <0A>a<EFBFBD>(8<>9<>:<3A><05><12> <16>"<22>M<EFBFBD>M<EFBFBD>$<24><05>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>><3E> <09><16>!<21><16><1F>J<EFBFBD>A<EFBFBD>q<EFBFBD>!<21>Q<EFBFBD>"#<23>Q<EFBFBD><01><19>A<EFBFBD><14><11>a<EFBFBD>T<EFBFBD> <09><01> <10>K<EFBFBD>K<EFBFBD><01>N<EFBFBD><13><><1A><<3C><<3C> <16><15> <14> <0B> <16>s<00>'B<00>B<03>BN)r<>z$bytes | Image.SupportsArrayInterfacer<65>ztuple[int, int]r<>)r<><00>intr<74><00>bytes)r<><00>list[tuple[int, int, int, int]])r<>r<>r4<00>boolr<6C>r.) r r r<00> _pulls_fdr|<00>abc<62>abstractmethodr<64>r<>r<>r<>r<>rrrr<>r<>'sS<00><00><14>I<EFBFBD><15> <09><17><17> <0A><18> <0A>G<01>5<><13><14>6<><14>?C<><14> <12>rr<>c<01><00>eZdZdd<01>Zdd<02>Zy)<05> BLP1Decoderc<01><><00>|j\|_|_}|jtjk(r|j <00>y|jdk(re|jdvr4|j <00>}|j||<01>}|j|<03>ydt|j<00><00><00>}t|<04><00>dt|j<00><00><00>}t|<04><00>)Nr)r*r#zUnsupported BLP encoding zUnsupported BLP compression ) r<><00> _compression<6F> _encodingr r<00>_decode_jpeg_streamr<6D>r<><00>
set_as_rawrvr`)r<>r4r<>r3r<>s rr<>zBLP1Decoder._load\s<><00><00>37<33>9<EFBFBD>9<EFBFBD>0<><04><19>4<EFBFBD>><3E>5<EFBFBD> <0F> <1C> <1C><06> <0B> <0B> +<2B> <10> $<24> $<24> &<26> <11> <1E> <1E>!<21> #<23><13>~<7E>~<7E><16>'<27><1E>,<2C>,<2C>.<2E><07><1B><EFBFBD><EFBFBD>w<EFBFBD><05>6<><04><14><0F><0F><04>%<25>1<>$<24>t<EFBFBD>~<7E>~<7E>2F<32>1G<31>H<><03>$<24>S<EFBFBD>)<29>)<29>0<><14>d<EFBFBD>n<EFBFBD>n<EFBFBD>1E<31>0F<30>G<>C<EFBFBD> <20><13>%<25> %rc<01><><00>ddlm}tjd|j d<04><00>\}|j |<02>}|j
<00>J<00>|j |j d|j
j<00>z
<00>|j |jd<00>}||z}|t|<04><00>}tj|j<00>|jdk(rU|jdj}t!|t"<00>sJ<00>|jdj%|ddf<02><07>g|_|j'|j)d<08>j+<00>d <09>y)
Nr)<01> JpegImageFilerLr*r<00>CMYK)r<>rq<00>BGR)<16>JpegImagePluginr<6E>r0rwr<>r<>r<><00>tellr<6C>rr<00>_decompression_bomb_checkr<00>moder<65>r<><00>
isinstance<EFBFBD>tuple<6C>_replacer<65><00>convert<72>tobytes)r<>r<><00>jpeg_header_size<7A> jpeg_headerr3<00>imager<65>s rr<>zBLP1Decoder._decode_jpeg_streamns<00><00>2<>$<24>m<EFBFBD>m<EFBFBD>D<EFBFBD>$<24>/<2F>/<2F>!<21>2D<32>E<><1B> <19><1A>o<EFBFBD>o<EFBFBD>&6<>7<> <0B><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22> <0C><0F><0F><04> <0A> <0A>a<EFBFBD>(<28>4<EFBFBD>7<EFBFBD>7<EFBFBD><<3C><<3C>><3E>9<>:<3A><13><EFBFBD><EFBFBD>t<EFBFBD>}<7D>}<7D>Q<EFBFBD>/<2F>0<><04><1A>T<EFBFBD>!<21><04><1D>g<EFBFBD>d<EFBFBD>m<EFBFBD>,<2C><05> <0A>'<27>'<27><05>
<EFBFBD>
<EFBFBD>3<> <10>:<3A>:<3A><16> <1F><18>:<3A>:<3A>a<EFBFBD>=<3D>%<25>%<25>D<EFBFBD><1D>d<EFBFBD>E<EFBFBD>*<2A> *<2A>*<2A><1F>*<2A>*<2A>Q<EFBFBD>-<2D>0<>0<>t<EFBFBD>A<EFBFBD>w<EFBFBD><06>6G<36>0<>H<>I<>E<EFBFBD>J<EFBFBD> <0C><0F><0F><05> <0A> <0A>e<EFBFBD>,<2C>4<>4<>6<><05>>rNr<4E>)r r rr<>r<>rrrr<>r<>[s <00><00>&<26>$?rr<>c<01><00>eZdZdd<01>Zy)<04> BLP2Decoderc<01><><00>|j\|_|_}|_|j <00>}|j
<00>J<00>|j
j |jd<00>|jdk(<00>rB|jtjk(r|j||<01>}<03>n4|jtjk(<00>r<>t<00>}|jtjk(rp|jj dzdzdz}t#|jj$dzdz<00>D]'}t'|j)|<04>|<01>D]}||z }<03> <00>)<00>n|jtj*k(rn|jj dzdzdz}t#|jj$dzdz<00>D]&}t-|j)|<04><00>D]}||z }<03> <00>(n<>|jtj.k(rn|jj dzdzdz}t#|jj$dzdz<00>D]&}t1|j)|<04><00>D]}||z }<03> <00>(nidt3|j<00><00><00>}t5|<07><00>dt3|j<00><00><00>}t5|<07><00>d t3|j<00><00><00>}t5|<07><00>|j7|<03>y)
Nrrrr*r)rJzUnsupported alpha encoding zUnknown BLP encoding zUnknown BLP compression )r<>r<>r<><00>_alpha_encodingr<67>r<>rxr<>rrr<>rr.rr<00>state<74>xsizer/<00>ysizerHr<>rrUrr^rvr`r<>)r<>r4r<>r3<00>linesize<7A>ybr<62>r<>s rr<>zBLP2Decoder._load<61>s<><00><00>IM<49><19><19>F<><04><19>4<EFBFBD>><3E>5<EFBFBD>$<24>2F<32><16>$<24>$<24>&<26><07><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22> <0C><07><07> <0C> <0C>T<EFBFBD>]<5D>]<5D>1<EFBFBD>%<25>&<26> <0F> <1C> <1C><01> !<21><14>~<7E>~<7E><18>!6<>!6<>6<><1B><EFBFBD><EFBFBD>w<EFBFBD><05>6<><04><15><1E><1E>8<EFBFBD><<3C><<3C>/<2F> <20>{<7B><04><17>'<27>'<27>=<3D>+=<3D>+=<3D>=<3D> $<24>
<EFBFBD>
<EFBFBD> 0<> 0<>1<EFBFBD> 4<><11>:<3A>Q<EFBFBD>><3E>H<EFBFBD>#<23>T<EFBFBD>Z<EFBFBD>Z<EFBFBD>%5<>%5<><01>%9<>a<EFBFBD>$?<3F>@<40>&<26><02>!,<2C>T<EFBFBD>_<EFBFBD>_<EFBFBD>X<EFBFBD>-F<><05>!N<>&<26>A<EFBFBD> <20>A<EFBFBD>I<EFBFBD>D<EFBFBD>&<26>&<26><1A>)<29>)<29>]<5D>-?<3F>-?<3F>?<3F> $<24>
<EFBFBD>
<EFBFBD> 0<> 0<>1<EFBFBD> 4<><11>:<3A>R<EFBFBD>?<3F>H<EFBFBD>#<23>T<EFBFBD>Z<EFBFBD>Z<EFBFBD>%5<>%5<><01>%9<>a<EFBFBD>$?<3F>@<40>&<26><02>!,<2C>T<EFBFBD>_<EFBFBD>_<EFBFBD>X<EFBFBD>-F<>!G<>&<26>A<EFBFBD> <20>A<EFBFBD>I<EFBFBD>D<EFBFBD>&<26>&<26><1A>)<29>)<29>]<5D>-?<3F>-?<3F>?<3F> $<24>
<EFBFBD>
<EFBFBD> 0<> 0<>1<EFBFBD> 4<><11>:<3A>R<EFBFBD>?<3F>H<EFBFBD>#<23>T<EFBFBD>Z<EFBFBD>Z<EFBFBD>%5<>%5<><01>%9<>a<EFBFBD>$?<3F>@<40>&<26><02>!,<2C>T<EFBFBD>_<EFBFBD>_<EFBFBD>X<EFBFBD>-F<>!G<>&<26>A<EFBFBD> <20>A<EFBFBD>I<EFBFBD>D<EFBFBD>&<26>&<26>8<><04>T<EFBFBD>=Q<>=Q<>8R<38>7S<37>T<>C<EFBFBD>(<28><13>-<2D>-<2D>-<2D>d<EFBFBD>4<EFBFBD>><3E>><3E>.B<>-C<>D<><03>$<24>S<EFBFBD>)<29>)<29>-<2D>T<EFBFBD>$<24>2C<32>2C<32>-D<>,E<>F<>C<EFBFBD> <20><13>%<25> %<25> <0C><0F><0F><04>rNr<4E>)r r rr<>rrrr<>r<><00>s<00><00>,rr<>c<01> <00>eZdZdZdd<02>Zdd<03>Zy)<07>
BLPEncoderTc <01>8<00>d}|j<00>J<00>|jjdd<02>}tt|<02>dz<00>D]1}||dz|dzdz\}}}}|t j
d||||<07>z }<01>3t|<01>dkr|dz }t|<01>dkr<01>|S)Nrrpr*rr<>is)<06>im<69>
getpaletter/r-r0<00>pack)r<>r3r<>r%rErFrGrDs r<00>_write_palettezBLPEncoder._write_palette<74>s<><00><00><12><04><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22><16>'<27>'<27>$<24>$<24>V<EFBFBD>V<EFBFBD>4<><07><16>s<EFBFBD>7<EFBFBD>|<7C>q<EFBFBD>(<28>)<29> 3<>A<EFBFBD> <20><11>Q<EFBFBD><15>!<21>a<EFBFBD>%<25>1<EFBFBD><1B>5<>J<EFBFBD>A<EFBFBD>q<EFBFBD>!<21>Q<EFBFBD> <10>F<EFBFBD>K<EFBFBD>K<EFBFBD><05>q<EFBFBD>!<21>Q<EFBFBD><01>2<> 2<>D<EFBFBD> 3<><12>$<24>i<EFBFBD>'<27>!<21> <10>K<EFBFBD> <1F>D<EFBFBD><12>$<24>i<EFBFBD>'<27>!<21><13> rc
<01><><00>|j<00>}dt|<02>z}tjd|gd<03><01><06>}|j<00>J<00>|jj
\}}|tjd||zgd<03><01><06>z }||z }t |<06>D]F}t |<05>D]6}|tjd|jj||f<02><00>z }<04>8<00>Ht|<04>d|fS)N<><4E>r<>)rrrrrrrrrrrrrrrr<>r)r<>r-r0r<>r<>rr/<00>getpixel) r<><00>bufsize<7A> palette_datar<61>r3<00>w<>h<>y<>xs r<00>encodezBLPEncoder.encode<64>s<><00><00><1B>*<2A>*<2A>,<2C> <0C> <20>3<EFBFBD>|<7C>#4<>4<><06><15>{<7B>{<7B>6<EFBFBD>6<EFBFBD>8<>Y<EFBFBD>8<><04><13>w<EFBFBD>w<EFBFBD>"<22>"<22>"<22><13>w<EFBFBD>w<EFBFBD>|<7C>|<7C><04><01>1<EFBFBD> <0C><06> <0B> <0B>F<EFBFBD>A<EFBFBD><01>E<EFBFBD>8<>Y<EFBFBD>8<>8<><04> <0C> <0C><1C><04><16>q<EFBFBD><18> D<01>A<EFBFBD><1A>1<EFBFBD>X<EFBFBD> D<01><01><14><06> <0B> <0B>D<EFBFBD>$<24>'<27>'<27>*:<3A>*:<3A>A<EFBFBD>q<EFBFBD>6<EFBFBD>*B<>C<>C<><04> D<01> D<01><13>4<EFBFBD>y<EFBFBD>!<21>T<EFBFBD>!<21>!rN)r<>r<>)r<>r<>r<>ztuple[int, int, bytes])r r r<00>
_pushes_fdr<EFBFBD>r<>rrrr<>r<><00>s<00><00><15>J<EFBFBD> <14>"rr<>c
<01>b<00>|jdk7r d}t|<03><00>|jjd<03>dk(rdnd}|j |<04>|j
<00>J<00>|j t jdd<08><00>|j
jd k(rdnd
}|dk(r&|j t jd |<05><00>n<>|j t jd tj<00><00>|j t jd |<05><00>|j t jd d
<EFBFBD><00>|j t jd d
<EFBFBD><00>|j t jd g|j<00><01><06><00>|dk(rJ|j t jdd<0E><00>|j t jdd
<EFBFBD><00>tj||tjdd|jzd
|j<00>g<01>y)N<>PzUnsupported BLP image mode<64> blp_version<6F>BLP1rbrcrkrrprz<Lrlrmr#rirr)r<><00>
ValueError<EFBFBD> encoderinfo<66>get<65>writer<65>r0r<>rrrr <00>_saver~)r<>rs<00>filenamer<65>ru<00> alpha_depths rr<>r<><00>s<><00><00> <09>w<EFBFBD>w<EFBFBD>#<23>~<7E>*<2A><03><18><13>o<EFBFBD><1D><19>~<7E>~<7E>)<29>)<29>-<2D>8<>F<EFBFBD>B<>G<EFBFBD><07>E<EFBFBD><06>H<EFBFBD>H<EFBFBD>U<EFBFBD>O<EFBFBD> <0A>:<3A>:<3A> !<21>!<21> !<21><06>H<EFBFBD>H<EFBFBD>V<EFBFBD>[<5B>[<5B><14>q<EFBFBD> !<21>"<22><19>z<EFBFBD>z<EFBFBD><EFBFBD><EFBFBD>&<26>0<>!<21>a<EFBFBD>K<EFBFBD> <0C><07><17>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>;<3B>/<2F>0<>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>8<EFBFBD>#8<>#8<>9<>:<3A>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>;<3B>/<2F>0<>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>1<EFBFBD>%<25>&<26>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>1<EFBFBD>%<25>&<26><06>H<EFBFBD>H<EFBFBD>V<EFBFBD>[<5B>[<5B><15> )<29><12><17><17> )<29>*<2A> <0C><07><17>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>1<EFBFBD>%<25>&<26>
<EFBFBD><08><08><16><1B><1B>T<EFBFBD>1<EFBFBD>%<25>&<26> <0A>O<EFBFBD>O<EFBFBD>B<EFBFBD><02>Y<EFBFBD>_<EFBFBD>_<EFBFBD>U<EFBFBD>F<EFBFBD>R<EFBFBD>W<EFBFBD>W<EFBFBD>4D<34>a<EFBFBD><12><17><17>Q<>R<>Srz.blpr<70><00>BLP2ri)r%r<>r<>ztuple[int, int, int])F)r3r<>r4r<>r<><00>1tuple[bytearray, bytearray, bytearray, bytearray])r3r<>r<>r<>)rer<>r<>r<>)r<>z Image.Imagersz IO[bytes]r<>z str | bytesr<73>r<>)(r<><00>
__future__rr<>ryr0<00>enumr<00>ior<00>typingr<00>rr r rrr&rHrUr^<00>NotImplementedErrorr`rfrh<00>ABC<42> PyDecoderr<72>r<>r<><00> PyEncoderr<72>r<><00> register_openr<6E><00>register_extension<6F>register_decoder<65> register_save<76>register_encoderrrr<00><module>rss<00><01><04>>#<23>
<EFBFBD> <09> <0A><18><16><15><1E> <0A>W<EFBFBD> <0A><1E>w<EFBFBD><1E>  <0A>G<EFBFBD> <0A> L<01>
%<25>6<0F>
<0F>6<0F><1C>6<0F>6<>6<0F>r2<0F>jC<0F>L <09>(<28> <09>1<>(Q<01>9<EFBFBD>&<26>&<26>(Q<01>V1<14>c<EFBFBD>g<EFBFBD>g<EFBFBD>y<EFBFBD>2<>2<>1<14>h"?<3F>/<2F>"?<3F>J-<1E>/<2F>-<1E>`"<22><19>$<24>$<24>"<22>BT<01>6<14><05><13><13>L<EFBFBD>'<27>'<27><1C>w<EFBFBD>?<3F><18><05><18><18><1C>,<2C>,<2C>f<EFBFBD>5<><16><05><16><16>v<EFBFBD>{<7B>+<2B><16><05><16><16>v<EFBFBD>{<7B>+<2B><13><05><13><13>L<EFBFBD>'<27>'<27><15>/<2F><16><05><16><16>u<EFBFBD>j<EFBFBD>)r