§
   é@Š#â`ã                   óH   — d Z ddlZddlZddlZdZdZd„ Zd„ Zd„ Zd„ Z	d	„ Z
dS )
ah  Which providers are configured, as non-secret flags.

The skin service derives the flags from the settings (the only code that reads API keys) and stores them in a tiny
file, so the Home rows can put them into their cache identity at the very first fetch after a start, before the
service published its Window properties, and without ever reading credentials.
é    N)Úopenai_api_keyÚanthropic_api_keyÚgoogle_api_keyÚmistral_api_keyÚgroq_api_keyzprovider_flags.jsonc                  ó:   — t          j        dt          z   ¦  «        S )Nz3special://profile/addon_data/plugin.video.milionar/)ÚxbmcvfsÚtranslatePathÚ_FILE© ó    ú_/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/provider_keys.pyÚ_pathr      s   € ÝÔ Ð!VÕY^Ñ!^Ñ_Ô_Ð_r   c                 óD   ‡ — t          ˆ fd„t          D ¦   «         ¦  «        S )zService side: reads the keys.c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S ©N)Ú
getSetting)Ú.0ÚkeyÚaddons     €r   ú	<genexpr>zai_available.<locals>.<genexpr>   s1   øè è € Ð8Ð8¨ˆu×Ò Ñ$Ô$Ð8Ð8Ð8Ð8Ð8Ð8r   )ÚanyÚAI_KEYS)r   s   `r   Úai_availabler      s&   ø€ åÐ8Ð8Ð8Ð8µÐ8Ñ8Ô8Ñ8Ô8Ð8r   c                 ó¶  — 	 t          ¦   «         | k    rdS t          j        t          j                             t          ¦   «         ¦  «        d¬¦  «         t          ¦   «         dz   }t          |dd¬¦  «        5 }t          j        | |d¬	¦  «         ddd¦  «         n# 1 swxY w Y   t          j	        |t          ¦   «         ¦  «         dS # t          $ r Y dS w xY w)
z2Service side: persist the flags when they changed.NT)Úexist_okz.tmpÚwúutf-8©Úencoding)ú,ú:)Ú
separators)Ú
read_flagsÚosÚmakedirsÚpathÚdirnamer   ÚopenÚjsonÚdumpÚreplaceÚOSError)ÚflagsÚ	temporaryÚhandles      r   Úwrite_flagsr1      s  € ð	Ý‰<Œ<˜5Ò Ð ØˆFÝ
Œ•B”G—O’O¥E¡G¤GÑ,Ô,°tÐ<Ñ<Ô<Ð<Ý‘G”G˜fÑ$ˆ	Ý�)˜S¨7Ð3Ñ3Ô3ð 	<°vÝŒI�e˜V°
Ð;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<å
Œ
�9�e™gœgÑ&Ô&Ð&Ð&Ð&øÝð ð ð Øˆˆðøøøs;   ‚C
 –A"C
 Á8BÂC
 ÂB Â C
 Â#B Â$$C
 Ã

CÃCc                  óú   — 	 t          t          ¦   «         d¬¦  «        5 } t          j        | ¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          |t
          ¦  «        r|ni S # t          t          f$ r i cY S w xY w)Nr   r   )r)   r   r*   ÚloadÚ
isinstanceÚdictr-   Ú
ValueError)r0   Úvalues     r   r$   r$   (   sÁ   € ðÝ•%‘'”' GÐ,Ñ,Ô,ð 	&°Ý”I˜fÑ%Ô%ˆEð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&å" 5­$Ñ/Ô/Ð7ˆuˆu°RÐ7øÝ•ZÐ ð ð ð Øˆ	ˆ	ˆ	ðøøøs3   ‚A$ ŸA ´A$ Á AÁA$ ÁAÁA$ Á$A:Á9A:c                 ó^   — t          t          ¦   «                              | ¦  «        ¦  «        S r   )Úboolr$   Úget)Únames    r   Úflagr<   1   s"   € Ý•
‘”× Ò  Ñ&Ô&Ñ'Ô'Ð'r   )Ú__doc__r*   r%   r	   r   r   r   r   r1   r$   r<   r   r   r   ú<module>r>      sŽ   ððð ð €€€Ø 	€	€	€	à €€€à
f€Ø€ð`ð `ð `ð9ð 9ð 9ð
ð ð ðð ð ð(ð (ð (ð (ð (r   