ó
    USh¶  ã                   ó‚   • S SK r S SKrS SKJr  S SKJr  S SKrS SKJrJ	r	J
r
  Sr0 qS rS rSS jrS	 r\" 5       4S
 jrg)é    N)ÚThreadPoolExecutor)Ú	cpu_count)Úsha256ÚHASH_SHA256_LENGTHÚget_file_from_folder_listzhash_cache.txtc                 ó¤   • U [         ;  a>  [        SU  35        [        U 5      n[        SU  SU 35        U[         U '   [        X5        [         U    $ )Nz[Cache] Calculating sha256 for z[Cache] sha256 for z: )Ú
hash_cacheÚprintr   Úsave_cache_to_file)ÚfilepathÚ
hash_values     Ú6/home/gothic/public_html/Fooocus/modules/hash_cache.pyÚsha256_from_cacher      sW   € à”zÓ!ÜÐ/°¨zÐ:Ô;Ü˜HÓ%ˆ
ÜÐ# H :¨R°
¨|Ð<Ô=Ø)Œ
�8ÑÜ˜8Ô0ä�hÑÐó    c                  ó.  •  [         R                  R                  [        5      (       a¶  [	        [        SSS9 n U  H—  n[
        R                  " U5      nUR                  5        Hj  u  p4[         R                  R                  U5      (       a(  [        U[        5      (       d#  [        U5      [        :w  a  [        SU 35        Ma  U[        U'   Ml     M™     S S S 5        g g ! , (       d  f       g = f! [         a  n[        SU 35         S nAg S nAff = f)NÚrtúutf-8©Úencodingz&[Cache] Skipping invalid cache entry: z[Cache] Loading failed: )ÚosÚpathÚexistsÚhash_cache_filenameÚopenÚjsonÚloadsÚitemsÚ
isinstanceÚstrÚlenr   r
   r	   Ú	Exception)ÚfpÚlineÚentryr   r   Úes         r   Úload_cache_from_filer&      sâ   € ð.Ü�7‰7�>‰>Ô-×.Ñ.ÜÔ)¨4¸'ÒBÀbÛ�DÜ ŸJšJ tÓ,�EØ05·±¶Ñ,˜Ü!Ÿw™wŸ~™~¨h×7Ñ7¼zÈ*ÔVY×?ZÑ?ZÔ_bÐcmÓ_nô  sEó  `EÜ!Ð$JÈ8È*Ð"UÔVÙ$Ø/9œ
 8Ó,ó	 1>ñ ÷ CÐBð /ßBÕBûô ó .ÜÐ(¨¨Ð,×-Ñ-ûð.ús5   ‚7C2 ¹BC!ÃC2 Ã!
C/Ã+C2 Ã/C2 Ã2
DÃ<DÄDc                 ób  • U b
  Ub  X4/nSnO[        [        R                  5       5      nSn [        [        USS9 nU H.  u  pQ[
        R                  " XQ0U5        UR                  S5        M0     S S S 5        g ! , (       d  f       g = f! [         a  n[        SU 35         S nAg S nAff = f)NÚatÚwtr   r   Ú
z[Cache] Saving failed: )
Úsortedr	   r   r   r   r   ÚdumpÚwriter!   r
   )Úfilenamer   r   Úmoder"   r   r%   s          r   r   r   *   s¤   € ð Ñ 
Ñ 6ØÐ'Ð(ˆØ‰ä”z×'Ñ'Ó)Ó*ˆØˆð-ÜÔ% t°gÒ>À"Û(-Ñ$�Ü—	’	˜8Ð0°"Ô5Ø—‘˜–ñ ).÷ ?×>Ö>ûô ó -ÜÐ'¨ sÐ+×,Ñ,ûð-ús4   ®B ½5A;Á2B Á;
B	ÂB Â	B Â
B.ÂB)Â)B.c                 ó  • [        5         [        R                  R                  (       aO  [        R                  R                  S:”  a  [        R                  R                  O	[	        5       n[        X XU5        [        5         g )Nr   )r&   Úargs_managerÚargsÚrebuild_hash_cacher   Úrebuild_cacher   )Úmodel_filenamesÚpaths_checkpointsÚlora_filenamesÚpaths_lorasÚmax_workerss        r   Ú
init_cacher:   =   sX   € ÜÔä×Ñ×+×+Ü>J×>OÑ>O×>bÑ>bÐefÓ>f”l×'Ñ'×:Ò:ÔluÓlwˆÜ�nÐ7HÐWbÔcô Õr   c                 óè   • S n[        S5        [        US9 nU H  nUR                  XWU5        M     U  H  nUR                  XXU5        M     S S S 5        [        S5        g ! , (       d  f       N= f)Nc                 ó0   • [        X5      n[        U5        g )N)r   r   )r.   Úpathsr   s      r   ÚthreadÚrebuild_cache.<locals>.threadI   s   € Ü,¨XÓ=ˆÜ˜(Õ#r   z[Cache] Rebuilding hash cache)r9   z[Cache] Done)r
   r   Úsubmit)	r7   r5   r6   r8   r9   r>   ÚexecutorÚmodel_filenameÚlora_filenames	            r   r4   r4   H   se   € ò$ô 
Ð
)Ô*Ü	¨Ò	4¸Û-ˆNØ�O‰O˜FÐ4EÖFñ .ã+ˆMØ�O‰O˜F°;Ö?ñ ,÷ 
5ô
 
ˆ.Õ÷ 
5Õ	4ús   ˜7A#Á#
A1)NN)r   r   Úconcurrent.futuresr   Úmultiprocessingr   r1   Úmodules.utilr   r   r   r   r	   r   r&   r   r:   r4   © r   r   Ú<module>rH      sH   ðÛ Û 	Ý 1Ý %ã ß NÑ Nà&Ð Ø€
ò	 ò.ô"-ò&ñ `iÓ_jõ r   