§
     ’ÞjÍ@  ã                  óÞ   — d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZmZmZ d dlmZmZ h d£Zh d	£Zh d
£Zdej        dfdej        dfdej        dfddddœZ G d„ d¦  «        ZdS )é    )ÚannotationsN)ÚAny)Úmedia_registry)Úget_or_create_assistant_session)ÚGALLERY_SOURCESÚVIDEOÚWORLD_EXTENSIONSÚgallery_sourceÚsource_for_kind)Úget_video_infoÚhas_mesh_file_extension>
   ú.bmpú.gifú.jpgú.pngú.tifú.jfifú.jpegú.tiffú.webpú.pjpeg>   ú.mkvú.movú.mp4ú.webm>   ú.aacú.m4aú.mp3ú.oggú.wavú.wmaú.flacú.opusÚMediaÚImagesÚimageÚVideosÚvideo)ÚAudioÚaudioN)z	3D AssetsÚmeshN)ÚWorldsÚworldN)Úmediar&   r(   r*   Ú3dr-   c                  óÂ   — e Zd Zd6d„Zd7d„Zd8d„Zd9d„Zd:d„Zd;d<d„Zd=d>d„Z	d?d„Z
d@d„ZdAd„Zd;dBd!„ZdCdDd%„Zd=dEd)„Zd=dFd*„ZdGd+„ZdHd.„ZdId0„ZdGd1„ZdGd2„ZdJd4„ZdKd5„ZdS )LÚGalleryÚstateúdict[str, Any]c                óX   — || _         || _        t          |¦  «        | _        i | _        d S ©N)Ú_depsÚ_stater   Ú_sessionÚ_record_views)ÚselfÚdepsr2   s      ú<C:\Users\johnn\OneDrive\Documents\AI\shared\deepy\gallery.pyÚ__init__zGallery.__init__   s-   € ØˆŒ
ØˆŒÝ7¸Ñ>Ô>ˆŒØˆÔÐÐó    Úreturnc                ó@   — | j                              | j        ¦  «        S r5   )r6   Úget_gen_infor7   )r:   s    r<   Ú_genzGallery._gen   s   € ØŒz×&Ò& t¤{Ñ3Ô3Ð3r>   ÚpathÚstrc                ó0  — t           j                             t          |pd¦  «                             ¦   «         ¦  «        d                              ¦   «         }|t          v rdS |t          v rdS |t          v rdS t          |¦  «        rdS |t          v rdS dS )	NÚ é   r&   r(   r*   r/   r-   Úany)ÚosrC   ÚsplitextrD   ÚstripÚlowerÚ_IMAGE_EXTENSIONSÚ_VIDEO_EXTENSIONSÚ_AUDIO_EXTENSIONSr   r	   )r:   rC   Úexts      r<   Ú_detect_media_typezGallery._detect_media_type   sœ   € ÝŒg×Ò�s 4 :¨2™œ×4Ò4Ñ6Ô6Ñ7Ô7¸Ô:×@Ò@ÑBÔBˆØÕ#Ð#Ð#Ø�7ØÕ#Ð#Ð#Ø�7ØÕ#Ð#Ð#Ø�7Ý" 4Ñ(Ô(ð 	Ø�4ØÕ"Ð"Ð"Ø�7Øˆur>   Ú	source_idútuple[list[Any], list[Any]]c                ó|   — |                       ¦   «         }t          |¦  «        }||j                 ||j                 fS r5   )rB   r
   Ú	files_keyÚsettings_key)r:   rR   ÚgenÚsources       r<   Ú_resolve_listszGallery._resolve_lists*   s7   € Ø�iŠi‰kŒkˆÝ 	Ñ*Ô*ˆØ�6Ô#Ô$ c¨&Ô*=Ô&>Ð>Ð>r>   ÚindexÚintÚNonec           	     ód  — |                       ¦   «         }t          |¦  «        }|                      |¦  «        \  }}t          |¦  «        dk    rd}n;t	          dt          t          |¦  «        t          |¦  «        dz
  ¦  «        ¦  «        }|||j        <   |dz   t          |¦  «        k    ||j        <   |j	        |d<   |t          u rFd|cxk    rt          |¦  «        k     r,n n)t          ||         pd¦  «                             ¦   «         nd}|                      |¦  «        dk    rdnd |d<   d S )	Nr   éÿÿÿÿrG   Úcurrent_gallery_sourcerF   r(   ç        Úselected_video_time)rB   r
   rY   ÚlenÚmaxÚminr[   Úselected_keyÚlast_selected_keyÚidr   rD   rK   rQ   )r:   rZ   rR   rW   rX   Ú	file_listÚ_file_settings_listÚselected_paths           r<   Ú_select_indexzGallery._select_index/   s:  € Ø�iŠi‰kŒkˆÝ 	Ñ*Ô*ˆØ)-×)<Ò)<¸YÑ)GÔ)GÑ&ˆ	Ð&Ýˆy‰>Œ>˜QÒÐØˆEˆEå˜�3�s 5™zœz­3¨y©>¬>¸AÑ+=Ñ>Ô>Ñ?Ô?ˆEØ#(ˆˆFÔÑ Ø).°©µs¸9±~´~Ò(EˆˆFÔ$Ñ%Ø(.¬	ˆÐ$Ñ%Ø?EÍ¸¸ÐSTÐX]ÐSnÐSnÒSnÐSnÕ`cÐdmÑ`nÔ`nÒSnÐSnÐSnÐSnÐSn�˜I eÔ,Ð2°Ñ3Ô3×9Ò9Ñ;Ô;Ð;ÐtvˆØ,0×,CÒ,CÀMÑ,RÔ,RÐV]Ò,]Ð,] S SÐcgˆÐ!Ñ"Ð"Ð"r>   NÚsettingsúdict[str, Any] | Nonec                ó  — t          |t          ¦  «        r|nd }|€dn6t          |                     dd¦  «        pd¦  «                             ¦   «         }|                     d¦  «        rdnd}t          j        | j        ||||¬¦  «        S )NrF   Ú	client_idÚai_ÚdeepyÚwangp)rl   rX   ro   )	Ú
isinstanceÚdictrD   ÚgetrK   Ú
startswithr   Úregister_mediar8   )r:   rC   rl   ro   rX   s        r<   Ú	_registerzGallery._register=   sŒ   € Ý)¨(µDÑ9Ô9ÐC�8�8¸tˆØ"Ð*�B�Bµ°H·L²LÀÈbÑ4QÔ4QÐ4WÐUWÑ0XÔ0X×0^Ò0^Ñ0`Ô0`ˆ	Ø%×0Ò0°Ñ7Ô7ÐD��¸WˆÝÔ,¨T¬]¸DÈ8Ð\bÐnwÐxÑxÔxÐxr>   rH   Úraw_pathÚpreferred_typec                ó^  — t           j                             t           j                             t	          |pd¦  «                             ¦   «                              d¦  «        ¦  «        ¦  «        }t           j                             |¦  «        st          |¦  «        ‚|                      |¦  «        }|dk    rt          d¦  «        ‚t	          |pd¦  «                             ¦   «          
                    ¦   «         pd}|dk    r||k    rt          d|› d|› d�¦  «        ‚| j                             | j        |ddd¦  «        \  }}}|rd	nt          |¦  «        j        }|                      |¦  «        \  }	}
t           j                             |¦  «        }t%          |	¦  «        D ]…\  }}t           j                             t	          |pd¦  «        ¦  «        |k    rŒ8|                      ||¦  «         |                      ||t+          |
¦  «        k     r|
|         n|¦  «        }|dd
œc S |	                     |¦  «         |
                     t/          |t0          ¦  «        r|nd ¦  «         |                      t+          |	¦  «        dz
  |¦  «         |                      ||¦  «        }|dd
œS )NrF   ú"rH   zDUnsupported media type. Use an image, video, audio or 3D (GLB) file.zExpected a z file, got a z file.Fr*   )ÚrecordÚaddedrG   T)rI   rC   ÚabspathÚnormpathrD   rK   ÚisfileÚFileNotFoundErrorrQ   Ú
ValueErrorrL   r6   Úget_settings_from_filer7   r   rg   rY   ÚnormcaseÚ	enumeraterk   rx   rb   Úappendrs   rt   )r:   ry   rz   rC   Údetected_typeÚconfigsÚ_any_image_or_videoÚ	any_audiorR   rh   Úfile_settings_listÚnormalized_pathrZ   Úexisting_pathr}   s                  r<   Úadd_pathzGallery.add_pathC   s—  € ÝŒw�Š�rœw×/Ò/µ°H°NÀÑ0CÔ0C×0IÒ0IÑ0KÔ0K×0QÒ0QÐRUÑ0VÔ0VÑWÔWÑXÔXˆÝŒw�~Š~˜dÑ#Ô#ð 	*Ý# DÑ)Ô)Ð)Ø×/Ò/°Ñ5Ô5ˆØ˜EÒ!Ð!ÝÐcÑdÔdÐdÝ˜^Ð4¨uÑ5Ô5×;Ò;Ñ=Ô=×CÒCÑEÔEÐNÈˆØ˜UÒ"Ð" }¸Ò'FÐ'FÝÐ]¨>Ð]Ð]ÈÐ]Ð]Ð]Ñ^Ô^Ð^Ø26´*×2SÒ2SÐTXÔT_ÐaeÐglÐnsÐuzÑ2{Ô2{Ñ/ˆÐ$ iØ(ÐO�G�G­o¸mÑ.LÔ.LÔ.Oˆ	Ø(,×(;Ò(;¸IÑ(FÔ(FÑ%ˆ	Ð%Ýœ'×*Ò*¨4Ñ0Ô0ˆÝ$-¨iÑ$8Ô$8ð 	6ð 	6Ñ ˆE�=ÝŒw×Ò¥ MÐ$7°RÑ 8Ô 8Ñ9Ô9¸_ÒLÐLØØ×Ò˜u iÑ0Ô0Ð0Ø—^’^ DÀuÍsÐSeÑOfÔOfÒGfÐGfÐ*<¸UÔ*CÐ*CÐlsÑtÔtˆFØ$¨uÐ5Ð5Ð5Ð5Ð5Ø×Ò˜ÑÔÐØ×!Ò!­Z¸ÅÑ-FÔ-FÐ"P ' 'ÈDÑQÔQÐQØ×Ò�3˜y™>œ>¨AÑ-¨yÑ9Ô9Ð9Ø—’  gÑ.Ô.ˆØ ¨4Ð0Ð0Ð0r>   údict[str, int]c                óR   ‡— |                       ¦   «         Šˆfd„t          D ¦   «         S )Nc                óP   •— i | ]"}|j         t          ‰|j                 ¦  «        “Œ#S © )rg   rb   rU   )Ú.0rX   rW   s     €r<   ú
<dictcomp>z"Gallery.counts.<locals>.<dictcomp>_   s-   ø€ ÐTÐTÐT¸&�”	�3˜s 6Ô#3Ô4Ñ5Ô5ÐTÐTÐTr>   )rB   r   )r:   rW   s    @r<   ÚcountszGallery.counts]   s*   ø€ Ø�iŠi‰kŒkˆØTÐTÐTÐTÅOÐTÑTÔTÐTr>   Úbefore_countsc                óŒ  — |                       ¦   «         }t          D ]§}||j                 ||j                 }}t	          |¦  «        ||j                 k    rm||j                 r+|                      t	          |¦  «        dz
  |j        ¦  «         |                      t          |d         pd¦  «        |r|d         nd ¦  «         Œ¨d S )NrG   r^   rF   )
rB   r   rU   rV   rb   rg   rf   rk   rx   rD   )r:   r—   rW   rX   rh   rŒ   s         r<   Úsync_latest_generatedzGallery.sync_latest_generateda   sÊ   € Ø�iŠi‰kŒkˆÝ%ð 	qð 	qˆFØ,/°Ô0@Ô,AÀ3ÀvÔGZÔC[Ð)ˆIÝ�9‰~Œ~ ¨f¬iÔ 8Ò8Ð8Ø�vÔ/Ô0ð FØ×&Ò&¥s¨9¡~¤~¸Ñ'9¸6¼9ÑEÔEÐEØ—’�s 9¨R¤=Ð#6°BÑ7Ô7ÐSeÐ9oÐ9KÈBÔ9OÐ9OÐkoÑpÔpÐpøð	qð 	qr>   Úpayloadr   c                ó  — t          |t          ¦  «        sd S t          |                     dd¦  «        pd¦  «                             ¦   «         }t          |¦  «        dk    rd S |                      |¦  «        }|dk    rd S t          |¦  «        }|                      ¦   «         |j	                 }||v rO|                      ¦   «         |j
                 r2|                      |                     |¦  «        |j        ¦  «         d S d S d S )NrC   rF   r   rH   )rs   rt   rD   ru   rK   rb   rQ   r   rB   rU   rf   rk   rZ   rg   )r:   rš   rC   rˆ   rX   rh   s         r<   Úsync_refresh_pathzGallery.sync_refresh_pathj   sö   € Ý˜'¥4Ñ(Ô(ð 	ØˆFÝ�7—;’;˜v rÑ*Ô*Ð0¨bÑ1Ô1×7Ò7Ñ9Ô9ˆÝˆt‰9Œ9˜Š>ˆ>ØˆFØ×/Ò/°Ñ5Ô5ˆØ˜EÒ!Ð!ØˆFÝ  Ñ/Ô/ˆØ—I’I‘K”K Ô 0Ô1ˆ	Ø�9ÐÐ §¢¡¤¨VÔ-EÔ!FÐØ×Ò˜yŸš¨tÑ4Ô4°f´iÑ@Ô@Ð@Ð@Ð@ð ÐÐÐr>   ú
str | Noneú*list[tuple[str, int, dict[str, Any], str]]c                óÜ  ‡‡— |                       ¦   «         Šg }d„ | j        j        D ¦   «         }t          D ]ö}|�|j        |k    rŒ|                      |j        ¦  «        \  }}t          |¦  «        D ]¹\  }}||         }	| j                             |¦  «        }
|
�*|
d         |	u r t	          |
d         ¦  «        |v r	|
d         }nF|  	                    ||	¦  «        }|�.|	|f| j        |<   | 
                    t	          |¦  «        ¦  «         |�|                     |j        |||f¦  «         ŒºŒ÷|€=ˆfd„t          D ¦   «         Šˆfd„| j                             ¦   «         D ¦   «         | _        |S )Nc                ó,   — h | ]}t          |¦  «        ’ŒS r“   )rg   )r”   r}   s     r<   ú	<setcomp>z(Gallery._iter_records.<locals>.<setcomp>~   s   € ÐLÐLÐL V•b˜‘j”jÐLÐLÐLr>   r   rG   c                ó4   •— h | ]}‰|j                  D ]}|’ŒŒS r“   )rU   )r”   rX   rC   rW   s      €r<   r¡   z(Gallery._iter_records.<locals>.<setcomp>�   s.   ø€ Ð[Ð[Ð[˜vÀSÈÔIYÔEZÐ[Ð[¸T�dÐ[Ð[Ð[Ð[r>   c                ó$   •— i | ]\  }}|‰v ¯	||“ŒS r“   r“   )r”   rC   ÚvalueÚactives      €r<   r•   z)Gallery._iter_records.<locals>.<dictcomp>‘   s+   ø€ Ð!nÐ!nÐ!n±+°$¸Ð_cÐgmÐ_mÐ_m $¨Ð_mÐ_mÐ_mr>   )rB   r8   r   r   rg   rY   r†   r9   ru   rx   Úaddr‡   Úitems)r:   rR   ÚgroupsÚ
registeredrX   rh   rŒ   rZ   rC   rl   Úcachedr}   r¥   rW   s               @@r<   Ú_iter_recordszGallery._iter_recordsx   s¡  øø€ Ø�iŠi‰kŒkˆØˆð MÐL¨t¬}Ô/KÐLÑLÔLˆ
Ý%ð 	Dð 	DˆFØÐ$¨¬°iÒ)?Ð)?ØØ,0×,?Ò,?ÀÄ	Ñ,JÔ,JÑ)ˆIÐ)Ý(¨Ñ3Ô3ð Dð D‘��tØ-¨eÔ4�ØÔ+×/Ò/°Ñ5Ô5�ØÐ%¨&°¬)°xÐ*?Ð*?ÅBÀvÈaÄyÁMÄMÐU_ÐD_ÐD_Ø# AœY�F�Fà!Ÿ^š^¨D°(Ñ;Ô;�FØÐ)Ø4<¸fÐ3E˜Ô*¨4Ñ0Ø"Ÿš¥r¨&¡z¤zÑ2Ô2Ð2ØÐ%Ø—M’M 6¤9¨e°V¸TÐ"BÑCÔCÐCøðDð ÐØ[Ð[Ð[Ð[­Ð[Ñ[Ô[ˆFØ!nÐ!nÐ!nÐ!nÀÔAS×AYÒAYÑA[ÔA[Ð!nÑ!nÔ!nˆDÔØˆr>   ÚallÚmedia_scopeú	list[str]c                ó"  ‡— t          |pd¦  «                             ¦   «                              ¦   «         }|dht          £vrd}|                      ¦   «         }g }g }|dk    rdn|fD ]O}t          |         \  }}Š|                      |¦  «        }	|                     |‰€|	nˆfd„|	D ¦   «         f¦  «         ŒP|D �]½\  }}	t          |	¦  «        dk    rŒ|                     |› d�¦  «         |	D �]‡\  }}
}}|d         |k    o|t          |¦  «        j	                 |
k    }d}|rC| 
                    d¦  «        d	k    r*d
t          | 
                    dd¦  «        pd¦  «        d›d�}|rdnd}t          | 
                    dd¦  «        pt          j                             |¦  «        ¦  «                             ¦   «         }t          | 
                    dd¦  «        pd¦  «                             ¦   «         }t          |¦  «        dk    r1|                     ¦   «         |                     ¦   «         k    r|› d|› �}|                     |› d| 
                    dd¦  «        › d|
dz   › d|› |› �¦  «         �Œ‰�Œ¿t          |¦  «        dk    rdgS |S )Nr¬   )r.   r*   r/   r-   c                óR   •— g | ]#}|d                                d¦  «        ‰k    ¯!|‘Œ$S )é   Ú
media_type)ru   )r”   Úitemr²   s     €r<   ú
<listcomp>z&Gallery.list_lines.<locals>.<listcomp>ž   s^   ø€ ð  EHð  EHð  EHÈdÐ_cÐdeÔ_f×_jÒ_jÐkwÑ_xÔ_xð  }Gò  `Gð  `GÀTð  `Gð  `Gð  `Gr>   r   ú:r_   rF   r²   r(   ú @ ra   r`   ú.3fÚsÚ*ú ÚlabelÚprompt_summaryz - Úmedia_idÚ?z [rG   z] zNo media available.)rD   rK   rL   Ú_SCOPE_GROUPSrB   r«   r‡   rb   r
   re   ru   ÚfloatrI   rC   ÚbasenameÚcasefold)r:   r­   ÚscoperW   Úlinesr¨   Úgroup_scopeÚheaderrR   r§   rZ   r}   rC   Úis_selectedÚselected_suffixÚmarkerr»   Údescriptionr²   s                     @r<   Ú
list_lineszGallery.list_lines”   s  ø€ Ý�KÐ( 5Ñ)Ô)×/Ò/Ñ1Ô1×7Ò7Ñ9Ô9ˆØ˜Ð/¥Ð/Ð/Ð/ØˆEØ�iŠi‰kŒkˆØˆØˆØAFÈ%ÂÀÐ=Ð=ÐV[ÐU]ð 	Jð 	JˆKÝ,9¸+Ô,FÑ)ˆF�I˜zØ×&Ò& yÑ1Ô1ˆEØ�MŠM˜6¨JÐ,> 5 5ð  EHð  EHð  EHð  EHÐV[ð  EHñ  EHô  EHð  Iñ  Jô  Jð  Jð  JØ#ð 	oñ 	o‰MˆF�EÝ�5‰zŒz˜QŠˆØØ�LŠL˜F˜˜˜Ñ&Ô&Ð&Ø27ð 
oñ 
oÑ.�	˜5 &¨$Ø!Ð":Ô;¸yÒHð  BÈSÕQ_Ð`iÑQjÔQjÔQwÔMxð  }Bò  NB�Ø"$�Øð e 6§:¢:¨lÑ#;Ô#;¸wÒ#FÐ#FØ&d­E°#·'²'Ð:OÐQTÑ2UÔ2UÐ2\ÐY\Ñ,]Ô,]Ð&dÐ&dÐ&dÐ&d�OØ +Ð4˜˜°�Ý˜FŸJšJ w°Ñ3Ô3ÐMµr´w×7GÒ7GÈÑ7MÔ7MÑNÔN×TÒTÑVÔV�Ý! &§*¢*Ð-=¸rÑ"BÔ"BÐ"HÀbÑIÔI×OÒOÑQÔQ�Ý�{Ñ#Ô# aÒ'Ð'¨K×,@Ò,@Ñ,BÔ,BÀeÇnÂnÑFVÔFVÒ,VÐ,VØ$Ð6Ð6¨Ð6Ð6�EØ—’ ÐmÐm¨¯ª°JÀÑ)DÔ)DÐmÐmÈÐPQÉ	ÐmÐmÐUZÐmÐ\kÐmÐmÑnÔnÐnÑnñ
oõ ˆu‰:Œ:˜Š?ˆ?Ø)Ð*Ð*Øˆr>   Ú	referencer²   útuple[str, int] | Nonec                óÞ  ‡— t          |pd¦  «                             ¦   «         }t          |¦  «        dk    rd S t          j        |¦  «        Šˆfd„|                      ¦   «         D ¦   «         }|                     ¦   «         rMt          |¦  «        dz
  }d|cxk    rt          |¦  «        k     rn n||         d         ||         d         fS d S t          j        | j	        |¦  «        }|�{‰dk    s9t          | 
                    dd¦  «        ¦  «                             ¦   «         ‰k    r<|D ]9\  }}}	}
|	 
                    d¦  «        | 
                    d¦  «        k    r||fc S Œ:|                     ¦   «         }g }|D ]Ó\  }}}}d                     t          | 
                    dd¦  «        pd¦  «        t          | 
                    d	d¦  «        pd¦  «        t          | 
                    d
d¦  «        pd¦  «        t          j                             |¦  «        g¦  «                             ¦   «         }||v r|                     ||f¦  «         ŒÔt          |¦  «        dk    r|d         S d S )NrF   r   c                ó¤   •— g | ]L\  }}}}‰d k    s9t          |                     dd¦  «        ¦  «                             ¦   «         ‰k    ¯F||||f‘ŒMS )rH   r²   rF   )rD   ru   rK   )r”   rR   rZ   r}   rC   Únormalized_media_types        €r<   r´   z1Gallery._resolve_by_reference.<locals>.<listcomp>·   sl   ø€ ð 
ð 
ð 
á.�	˜5 &¨$Ø$¨Ò-Ð-µ°V·Z²ZÀÈbÑ5QÔ5QÑ1RÔ1R×1XÒ1XÑ1ZÔ1ZÐ^sÒ1sÐ1sð ˜˜v tÐ,à1sÐ1sÐ1sr>   rG   rH   r²   r½   rº   r»   r¼   )rD   rK   rb   r   Únormalize_media_typer«   Úisdigitr[   Úget_media_recordr8   ru   rL   ÚjoinrI   rC   rÁ   r‡   )r:   rÌ   r²   ÚrefÚ
candidatesÚchoicer}   rR   rZ   Ú	candidateÚ_pathÚnormalized_refÚmatchesrC   ÚhaystackrÐ   s                  @r<   Ú_resolve_by_referencezGallery._resolve_by_reference²   s›  ø€ Ý�)�/˜rÑ"Ô"×(Ò(Ñ*Ô*ˆÝˆs‰8Œ8�qŠ=ˆ=Ø�4Ý .Ô CÀJÑ OÔ OÐð
ð 
ð 
ð 
à26×2DÒ2DÑ2FÔ2Fð
ñ 
ô 
ˆ
ð
 �;Š;‰=Œ=ð 	Ý˜‘X”X ‘\ˆFØ�FÐ,Ð,Ò,Ð,�S ™_œ_Ò,Ð,Ð,Ð,Ð,Ø! &Ô)¨!Ô,¨j¸Ô.@ÀÔ.CÐCÐCØ�4ÝÔ0°´ÀÑDÔDˆØÐÐ#8¸EÒ#AÐ#AÅSÈÏÊÐT`ÐbdÑIeÔIeÑEfÔEf×ElÒElÑEnÔEnð  sHò  FHð  FHØ6@ð ,ð ,Ñ2�	˜5 )¨UØ—=’= Ñ,Ô,°·
²
¸:Ñ0FÔ0FÒFÐFØ$ eÐ+Ð+Ð+Ð+ð GàŸš™œˆØˆØ.8ð 
	3ð 
	3Ñ*ˆI�u˜f dØ—x’xå˜Ÿ
š
 :¨rÑ2Ô2Ð8°bÑ9Ô9Ý˜Ÿ
š
 7¨BÑ/Ô/Ð5°2Ñ6Ô6Ý˜Ÿ
š
Ð#3°RÑ8Ô8Ð>¸BÑ?Ô?Ý”G×$Ò$ TÑ*Ô*ð	ñô ÷ Še‰gŒgð ð  Ð)Ð)Ø—’ 	¨5Ð1Ñ2Ô2Ð2øÝˆw‰<Œ<˜1ÒÐØ˜1”:ÐØˆtr>   c                ó.  — |                       ||¬¦  «        }|€d S |\  }}|                      ||¦  «         |                      |¦  «        \  }}|t          |¦  «        k     r||         nd }|                      t          ||         pd¦  «        |¦  «        S )N)r²   rF   )rÝ   rk   rY   rb   rx   rD   )	r:   rÌ   r²   ÚresolvedrR   rZ   rh   rŒ   rl   s	            r<   ÚselectzGallery.select×   s¨   € Ø×-Ò-¨iÀJÐ-ÑOÔOˆØÐØ�4Ø#Ñˆ	�5Ø×Ò˜5 )Ñ,Ô,Ð,Ø(,×(;Ò(;¸IÑ(FÔ(FÑ%ˆ	Ð%Ø05½Ð<NÑ8OÔ8OÒ0OÐ0OÐ% eÔ,Ð,ÐUYˆØ�~Š~�c )¨EÔ"2Ð"8°bÑ9Ô9¸8ÑDÔDÐDr>   c                ó†  — |                       ¦   «         }t          |                     dt          j        ¦  «        ¦  «        }|                      |j        ¦  «        \  }}||j                 }|�|dk     s|t          |¦  «        k    rdS |                      t          ||         pd¦  «        |t          |¦  «        k     r||         nd ¦  «        }|€dS d|                     d¦  «        › d|                     dt          j                             t          ||         pd¦  «        ¦  «        ¦  «        › �}|                     d	¦  «        d
k    rt|                      ¦   «         }|dt          |                     dd¦  «        pd¦  «        d›d�z  }|                     d¦  «        r|d|t          d¦  «        d …         › d�z  }|S )Nr_   r   zNo media is currently selected.rF   z	Selected r½   z: r»   r²   r(   r¶   ra   r`   r·   r¸   úSelected frame: ú (ú))rB   r
   ru   r   rg   rY   re   rb   rx   rD   rI   rC   rÁ   Úselected_frame_summaryrÀ   rv   )	r:   rW   rX   rh   rŒ   r×   r}   ÚsummaryÚ
frame_texts	            r<   Úselected_summaryzGallery.selected_summaryá   sÍ  € Ø�iŠi‰kŒkˆÝ §¢Ð(@Å%Ä(Ñ KÔ KÑLÔLˆØ(,×(;Ò(;¸F¼IÑ(FÔ(FÑ%ˆ	Ð%Ø�VÔ(Ô)ˆØˆ>˜V ašZ˜Z¨6µS¸±^´^Ò+CÐ+CØ4Ð4Ø—’¥ I¨fÔ$5Ð$;¸Ñ <Ô <Ð\bÕehÐi{Ñe|Ôe|Ò\|Ð\|Ð>PÐQWÔ>XÐ>Xð  CGñ  Hô  HˆØˆ>Ø4Ð4Ø}˜fŸjšj¨Ñ4Ô4Ð}Ð}¸¿
º
À7ÍBÌG×L\ÒL\Õ]`ÐajÐkqÔarÐaxÐvxÑ]yÔ]yÑLzÔLzÑ8{Ô8{Ð}Ð}ˆØ�:Š:�lÑ#Ô# wÒ.Ð.Ø×4Ò4Ñ6Ô6ˆJØÐU�U 3§7¢7Ð+@À#Ñ#FÔ#FÐ#MÈ#ÑNÔNÐUÐUÐUÐUÑUˆGØ×$Ò$Ð%7Ñ8Ô8ð HØÐG 
­3Ð/AÑ+BÔ+BÐ+CÐ+CÔ DÐGÐGÐGÑG�Øˆr>   ÚsecondsrÀ   c                óš  — |                       ¦   «         }|d         }|d         }|                     dd¦  «        dk    s|�|dk     s|t          |¦  «        k    rdS t          ||         pd¦  «                             ¦   «         }|                      |¦  «        dk    rdS t          d	t          |¦  «        ¦  «        |d
<   d|d
         d›d�S )Nrh   Úselectedr_   r(   r   úNo video is currently selected.rF   ú"The selected media is not a video.r`   ra   zSelected video time set to r·   ús.)rB   ru   rb   rD   rK   rQ   rc   rÀ   )r:   ré   rW   rh   r×   rC   s         r<   Úset_selected_timezGallery.set_selected_timeó   sÞ   € Ø�iŠi‰kŒkˆØ˜Ô$ˆ	Ø�Z”ˆØ�7Š7Ð+¨WÑ5Ô5¸Ò@Ð@ÀFÀNÐV\Ð_`ÒV`ÐV`ÐdjÕnqÐr{Ñn|Ôn|Òd|Ðd|Ø4Ð4Ý�9˜VÔ$Ð*¨Ñ+Ô+×1Ò1Ñ3Ô3ˆØ×"Ò" 4Ñ(Ô(¨GÒ3Ð3Ø7Ð7Ý%(¨­e°G©n¬nÑ%=Ô%=ˆÐ!Ñ"ØO¨SÐ1FÔ-GÐOÐOÐOÐOÐOr>   ú+tuple[dict[str, Any] | None, str, int, str]c                óÊ  — |                       ¦   «         }|d         }|d         }|d         }|                     dd¦  «        dk    s|�|dk     s|t          |¦  «        k    rdS t          ||         pd¦  «                             ¦   «         }|                      |¦  «        dk    rd	S |t          |¦  «        k     r||         nd }|                      ||¦  «        }|€dS |||dfS )
Nrh   rŒ   rë   r_   r(   r   )NrF   r   rì   rF   )NrF   r   rí   )rB   ru   rb   rD   rK   rQ   rx   )r:   rW   rh   rŒ   r×   rC   rl   r}   s           r<   Ú_get_selected_video_statez!Gallery._get_selected_video_stateÿ   s  € Ø�iŠi‰kŒkˆØ˜Ô$ˆ	Ø Ð!5Ô6ÐØ�Z”ˆØ�7Š7Ð+¨WÑ5Ô5¸Ò@Ð@ÀFÀNÐV\Ð_`ÒV`ÐV`ÐdjÕnqÐr{Ñn|Ôn|Òd|Ðd|ØAÐAÝ�9˜VÔ$Ð*¨Ñ+Ô+×1Ò1Ñ3Ô3ˆØ×"Ò" 4Ñ(Ô(¨GÒ3Ð3ØDÐDØ17½#Ð>PÑ:QÔ:QÒ1QÐ1QÐ% fÔ-Ð-ÐW[ˆØ—’  hÑ/Ô/ˆØˆ>ØAÐAØ�t˜V RÐ'Ð'r>   c                ó¾   — |                       ¦   «         \  }}}}t          |¦  «        dk    r|S d|                     d¦  «        › d|                     dd¦  «        › d�S )Nr   zSelected video: r½   rã   r»   rF   rä   )rò   rb   ru   )r:   r}   rÙ   Ú_choiceÚerrors        r<   Úselected_video_summaryzGallery.selected_video_summary  sd   € Ø(,×(FÒ(FÑ(HÔ(HÑ%ˆ��w Ýˆu‰:Œ:˜Š>ˆ>ØˆLØV &§*¢*¨ZÑ"8Ô"8ÐVÐV¸F¿JºJÀwÐPRÑ<SÔ<SÐVÐVÐVÐVr>   c                ó  — |                       ¦   «         \  }}}}t          |¦  «        dk    r|S t          |¦  «        \  }}}}|dk    s|dk    rd|                     d¦  «        › d�S t	          |                      ¦   «                              dd¦  «        pd¦  «        }	t          dt          |dz
  t          t          |	|z  ¦  «        ¦  «        ¦  «        ¦  «        }
d|
› d	|                     d¦  «        › d
|	d›d|› d|› d�S )Nr   úUnable to read frame info for r½   ú.ra   r`   rG   râ   ú on r¶   r·   zs (z fps, z frames))
rò   rb   r   ru   rÀ   rB   rc   rd   r[   Úround)r:   r}   rC   rô   rõ   ÚfpsÚ_widthÚ_heightÚframe_countÚcurrent_timeÚframe_nos              r<   rå   zGallery.selected_frame_summary  s=  € Ø'+×'EÒ'EÑ'GÔ'GÑ$ˆ��g˜uÝˆu‰:Œ:˜Š>ˆ>ØˆLÝ,:¸4Ñ,@Ô,@Ñ)ˆˆV�W˜kØ�!Š8ˆ8�{ aÒ'Ð'ØM°F·J²J¸zÑ4JÔ4JÐMÐMÐMÐMÝ˜TŸYšY™[œ[Ÿ_š_Ð-BÀCÑHÔHÐOÈCÑPÔPˆÝ�q�#˜k¨A™o­sµ5¸ÈÑ9KÑ3LÔ3LÑ/MÔ/MÑNÔNÑOÔOˆð A (ð  Að  A°·
²
¸:Ñ0FÔ0Fð  Að  AÈ<ð  Að  Að  AÐ`cð  Að  AÐkvð  Að  Að  Að  	Ar>   r  c                óª  — |                       ¦   «         \  }}}}t          |¦  «        dk    r|S t          |¦  «        \  }}}}	|dk    s|	dk    rd|                     d¦  «        › d�S t	          |¦  «        }|dk     s||	k    r	d|	dz
  › d�S |t          |¦  «        z  }
|
|                      ¦   «         d<   d|› d	|                     d¦  «        › d
|
d›d�S )Nr   rø   r½   rù   zFrame must be between 0 and rG   ra   zSelected frame set to rú   r¶   r·   rî   )rò   rb   r   ru   r[   rÀ   rB   )r:   r  r}   rC   rô   rõ   rü   rý   rþ   rÿ   ré   s              r<   Úset_selected_framezGallery.set_selected_frame   sý   € Ø'+×'EÒ'EÑ'GÔ'GÑ$ˆ��g˜uÝˆu‰:Œ:˜Š>ˆ>ØˆLÝ,:¸4Ñ,@Ô,@Ñ)ˆˆV�W˜kØ�!Š8ˆ8�{ aÒ'Ð'ØM°F·J²J¸zÑ4JÔ4JÐMÐMÐMÐMÝ�x‘=”=ˆØ�aŠ<ˆ<˜8 {Ò2Ð2ØD°+À±/ÐDÐDÐDÐDØ�U 3™ZœZÑ'ˆØ-4ˆ�	Š	‰ŒÐ)Ñ*Ø`¨Ð`Ð`°f·j²jÀÑ6LÔ6LÐ`Ð`ÐQXÐ`Ð`Ð`Ð`Ð`r>   c                óÐ  — |                       ¦   «         }t          D ]T}||j                                      ¦   «          ||j                                      ¦   «          d||j        <   d||j        <   ŒUt          j        |d<   d |d<   | j	        j
                             ¦   «          | j	        j        5  | j	        j                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr^   Tr_   ra   )rB   r   rU   ÚclearrV   re   rf   r   rg   r8   r   Ú	turn_lockÚpending_chat_media)r:   rW   rX   s      r<   Úclear_mediazGallery.clear_media.  s$  € Ø�iŠi‰kŒkˆÝ%ð 	1ð 	1ˆFØ�Ô Ô!×'Ò'Ñ)Ô)Ð)Ø�Ô#Ô$×*Ò*Ñ,Ô,Ð,Ø')ˆC�Ô#Ñ$Ø,0ˆC�Ô(Ñ)Ð)Ý(-¬ˆÐ$Ñ%Ø%)ˆÐ!Ñ"ØŒÔ$×*Ò*Ñ,Ô,Ð,ØŒ]Ô$ð 	5ð 	5ØŒMÔ,×2Ò2Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5s   Â/CÃCÃ"C)r2   r3   )r?   r3   )rC   rD   r?   rD   )rR   rD   r?   rS   )rZ   r[   rR   rD   r?   r\   r5   )rC   rD   rl   rm   r?   rm   )rH   )ry   rD   rz   rD   r?   r3   )r?   r�   )r—   r�   r?   r\   )rš   r   r?   r\   )rR   r�   r?   rž   )r¬   )r­   rD   r?   r®   )rÌ   rD   r²   rD   r?   rÍ   )rÌ   rD   r²   rD   r?   rm   )r?   rD   )ré   rÀ   r?   rD   )r?   rð   )r  r[   r?   rD   )r?   r\   )Ú__name__Ú
__module__Ú__qualname__r=   rB   rQ   rY   rk   rx   r�   r–   r™   rœ   r«   rË   rÝ   rà   rè   rï   rò   rö   rå   r  r  r“   r>   r<   r1   r1      s  € € € € € ð ð  ð  ð  ð4ð 4ð 4ð 4ðð ð ð ð?ð ?ð ?ð ?ð
hð hð hð hðyð yð yð yð yð1ð 1ð 1ð 1ð 1ð4Uð Uð Uð Uðqð qð qð qðAð Að Að Aðð ð ð ð ð8ð ð ð ð ð<#ð #ð #ð #ð #ðJEð Eð Eð Eð Eðð ð ð ð$
Pð 
Pð 
Pð 
Pð(ð (ð (ð (ð Wð Wð Wð Wð	Að 	Að 	Að 	Aðað að að að5ð 5ð 5ð 5ð 5ð 5r>   r1   )Ú
__future__r   rI   Útypingr   Úshared.deepyr   Úshared.deepy.enginer   Úshared.utils.gallery_sourcesr   r   r	   r
   r   Úshared.utils.utilsr   r   rM   rN   rO   rg   r¿   r1   r“   r>   r<   ú<module>r     sJ  ðà "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rÐ rØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FàjÐjÐjÐ Ø5Ð5Ð5Ð ØVÐVÐVÐ Ø" E¤H¨dÐ3¸xÈÌÐSZÐ>[ÐgoÐqvÔqyð  |Cð  gDð  Ogð  oJð  Unð  oð  o€ðg5ð g5ð g5ð g5ð g5ñ g5ô g5ð g5ð g5ð g5r>   