§
    ø(g  ã                   ó$   — d Z 	 	 	 	 	 	 	 	 	 dd„ZdS ))Ú
load_imageÚ FTNc
                 ó6  ‡‡‡‡‡‡	‡‡‡‡— ddl ŠddlŠˆˆfd„Šˆˆˆˆ	ˆˆˆˆfd„}
ˆfd„}‰j                             | ¦  «        } ‰r#t	          d                     | |¦  «        ¦  «         ‰j                             | ¦  «        r |
| ¦  «        S | g}|rQ|‰j                             || ¦  «        ‰j                             |‰j                             | ¦  «        ¦  «        gz  }|D ]R}|r|‰j         	                    |¦  «        f}n|f}|D ]+}‰j                             |¦  «        r |
|¦  «        c c S Œ,ŒS|rÑg }‰j         
                    | ¦  «        |fD ]1}‰j                             |¦  «        r|                     |¦  «         Œ2‰j                             |¦  «        |dd…<   ‰j                             | ¦  «        Š|r‰                     ¦   «         Šˆfd„}nˆfd„}t           |||¦  «        d¦  «        }|� |
|¦  «        S ‰r ‰| ¦  «        S dS )	aÙ  
    Return an image from the file path with options to search multiple paths
    and return a placeholder if its not found.

    :arg filepath: The image filename
       If a path precedes it, this will be searched as well.
    :type filepath: str
    :arg dirname: is the directory where the image may be located - any file at
       the end will be ignored.
    :type dirname: str
    :arg place_holder: if True a new place holder image will be created.
       this is useful so later you can relink the image to its original data.
    :type place_holder: bool
    :arg recursive: If True, directories will be recursively searched.
       Be careful with this if you have files in your root directory because
       it may take a long time.
    :type recursive: bool
    :arg ncase_cmp: on non windows systems, find the correct case for the file.
    :type ncase_cmp: bool
    :arg convert_callback: a function that takes an existing path and returns
       a new one. Use this when loading image formats blender may not support,
       the CONVERT_CALLBACK can take the path for a GIF (for example),
       convert it to a PNG and return the PNG's path.
       For formats blender can read, simply return the path that is given.
    :type convert_callback: function
    :arg relpath: If not None, make the file relative to this path.
    :type relpath: str | None
    :arg check_existing: If true,
       returns already loaded image datablock if possible
       (based on file path).
    :type check_existing: bool
    :arg force_reload: If true,
       force reloading of image (only useful when ``check_existing``
       is also enabled).
    :type force_reload: bool
    :return: an image or None
    :rtype: :class:`bpy.types.Image` | None
    é    Nc                 ó"  •— | }t          | ¦  «        t          u r|                     dd¦  «        }|                     dd¦  «        }‰j                             |¦  «        }‰j        j                             |dd¦  «        }| |_	        d|_
        |S )Nzutf-8Úreplaceé€   ÚFILE)ÚtypeÚstrÚencodeÚdecodeÚpathÚbasenameÚdataÚimagesÚnewÚfilepathÚsource)r   ÚnameÚimageÚbpyÚoss      €€ú\/home/blender/git/blender-v430/install_release/4.3/scripts/modules/bpy_extras/image_utils.pyÚ_image_load_placeholderz+load_image.<locals>._image_load_placeholderC   s‚   ø€ ØˆÝ�‰:Œ:�ÐÐØ—;’;˜w¨	Ñ2Ô2ˆDØ�{Š{˜7 IÑ.Ô.ˆØŒw×Ò Ñ%Ô%ˆà””×#Ò# D¨#¨sÑ3Ô3ˆàˆŒØˆŒØˆó    c                 ó@  •— dd l }‰r ‰| ¦  «        } ‰	j                             | ¦  «        s‰	j                             | ¦  «        } 	 |j        j                             | ‰¬¦  «        }n# t          $ r d }Y nw xY w‰rG|r#t          d 	                    | ¦  «        ¦  «         n"t          d 	                    | ¦  «        ¦  «         ‰
r|€ ‰| ¦  «        }|rH‰r| 
                    ¦   «          ‰�0ddlm} 	  || ‰¬¦  «        }n# t          $ r d }Y nw xY w|�||_        |S )Nr   )Úcheck_existingz    image loaded '{:s}'z    image load failed '{:s}')Úrelpath)Ústart)r   r   ÚisabsÚabspathr   r   ÚloadÚRuntimeErrorÚprintÚformatÚreloadÚbpy.pathr   Ú
ValueErrorÚfilepath_raw)r   r   r   Ú
relpath_fnÚfilepath_relr   r   Úconvert_callbackÚforce_reloadr   Úplace_holderr   Úverboses        €€€€€€€€r   Ú_image_loadzload_image.<locals>._image_loadP   sŽ  ø€ Øˆ
ˆ
ˆ
àð 	*Ø#Ð# DÑ)Ô)ˆDð Œw�}Š}˜TÑ"Ô"ð 	)Ø”7—?’? 4Ñ(Ô(ˆDð	Ø”H”O×(Ò(¨¸nÐ(ÑMÔMˆEˆEøÝð 	ð 	ð 	ØˆEˆEˆEð	øøøð ð 	CØð CÝÐ/×6Ò6°tÑ<Ô<Ñ=Ô=Ð=Ð=åÐ4×;Ò;¸DÑAÔAÑBÔBÐBð ð 	2˜E˜MØ+Ð+¨DÑ1Ô1ˆEàð 	6Øð Ø—’‘”�ØÐ"à:Ð:Ð:Ð:Ð:Ð:ð(Ø#- :¨d¸'Ð#BÑ#BÔ#B�L�LøÝ!ð (ð (ð (Ø#'�L�L�Lð(øøøð  Ð+Ø)5�EÔ&àˆs$   Á!A* Á*A9Á8A9Ã5D ÄDÄDc              3   ó¾   •K  — | D ]V}‰                      |¦  «        D ]>\  }}}|d         dv rŒ|D ]*} ||¦  «        r‰j                             ||¦  «        V — Œ+Œ?ŒWd S )Nr   >   ó   .ú.)Úwalkr   Újoin)ÚpathsÚfilename_checkr   ÚdirpathÚ	_dirnamesÚ	filenamesÚfilenamer   s          €r   Ú_recursive_searchz%load_image.<locals>._recursive_search|   sœ   øè è € Øð 		>ð 		>ˆDØ13·²¸±´ð >ð >Ñ-�˜ Ið ˜1”: Ð,Ð,Øà )ð >ð >�HØ%�~ hÑ/Ô/ð >Ø œgŸlšl¨7°HÑ=Ô=Ð=Ð=Ð=øð>ð>ð		>ð 		>r   zload_image('{:s}', '{:s}', ...)c                 ó4   •— ‰|                       ¦   «         k    S ©N)Úlower©ÚfnÚimagepath_bases    €r   Úimage_filterz load_image.<locals>.image_filter³   s   ø€ Ø&¨"¯(ª(©*¬*Ò4Ð5r   c                 ó   •— ‰| k    S r>   © r@   s    €r   rC   z load_image.<locals>.image_filter¶   s   ø€ Ø&¨"Ò,Ð-r   )r   r   r   Únative_pathsepr$   r%   Úexistsr5   r   Úresolve_ncaseÚdirnameÚappendÚreduce_dirsr?   Únext)Ú	imagepathrI   r.   Ú	recursiveÚ	ncase_cmpr,   r/   r   r   r-   r0   r<   ÚvariantsÚfilepath_testÚncase_variantsÚ	nfilepathÚsearch_pathsÚdirpath_testrC   r   r   rB   r   s     `  `````         @@@@r   r   r      s  øøøøøøøøøø€ ðd €I€I€IØ€J€J€Jð
ð ð ð ð ð ð*ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ðX
>ð 
>ð 
>ð 
>ð 
>ð ”×'Ò'¨	Ñ2Ô2€Iàð LÝÐ/×6Ò6°yÀ'ÑJÔJÑKÔKÐKà	„w‡~‚~�iÑ Ô ð &Øˆ{˜9Ñ%Ô%Ð%àˆ{€Hàð 
ØØŒG�LŠL˜ )Ñ,Ô,ØŒG�LŠL˜ #¤(×"3Ò"3°IÑ">Ô">Ñ?Ô?ð
ñ 	
ˆð
 "ð .ð .ˆØð 	/àØ”×&Ò& }Ñ5Ô5ðˆNˆNð
 ,Ð.ˆNà'ð 	.ð 	.ˆIØŒw�~Š~˜iÑ(Ô(ð .Ø"�{ 9Ñ-Ô-Ð-Ð-Ð-Ð-Ð-ð.ð	.ð ð *ØˆàœWŸ_š_¨YÑ7Ô7¸ÐAð 	2ð 	2ˆLØŒw�~Š~˜lÑ+Ô+ð 2Ø×#Ò# LÑ1Ô1Ð1øØœ(×.Ò.¨|Ñ<Ô<ˆ�Q�Q�Q‰àœ×*Ò*¨9Ñ5Ô5ˆØð 	.Ø+×1Ò1Ñ3Ô3ˆNð6ð 6ð 6ð 6ð 6ð 6ð.ð .ð .ð .ð .õ Ð*Ð*¨<¸ÑFÔFÈÑMÔMˆ	ØÐ Ø�;˜yÑ)Ô)Ð)ð ð 2Ø&Ð& yÑ1Ô1Ð1ð ˆ4r   )	r   FFTNFNFF)Ú__all__r   rE   r   r   ú<module>rW      sM   ðð
€ð ØØØØØØØØðwð wð wð wð wð wr   