ó
    T=Œj¶=  ã                  ó  • % S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	  SSK
Jr  \(       a  SSKJr  S	rS
\S'    " S S\5      rS"S jrS#S jrS"S jrSSSSSSSSSSSS.rS\S'   S"S jrS$S  jr\" 5       rS"S! jrS/rg)%zWindows.é    )ÚannotationsN)ÚPath)ÚTYPE_CHECKINGÚFinalé   )ÚPlatformDirsABC)ÚCallablei @  z
Final[int]Ú_KF_FLAG_DONT_VERIFYc                  óF  • \ rS rSrSr\S"S j5       rSS.S#S jjr\S"S j5       r\S"S j5       r	\S"S	 j5       r
\S"S
 j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r\S"S j5       r \S"S  j5       r!S!r"g)$ÚWindowsé   a×  `MSDN on where to store app data files <https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid>`_.

Makes use of the `appname <platformdirs.api.PlatformDirsABC.appname>`, `appauthor
<platformdirs.api.PlatformDirsABC.appauthor>`, `version <platformdirs.api.PlatformDirsABC.version>`, `roaming
<platformdirs.api.PlatformDirsABC.roaming>`, `opinion <platformdirs.api.PlatformDirsABC.opinion>`, `ensure_exists
<platformdirs.api.PlatformDirsABC.ensure_exists>`.

c                óž   • U R                   (       a  SOSn[        R                  R                  [	        U5      5      nU R                  U5      $ )z´:returns: data directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname`` (not roaming) or ``%USERPROFILE%\AppData\Roaming\$appauthor\$appname`` (roaming)ÚCSIDL_APPDATAÚCSIDL_LOCAL_APPDATA)ÚroamingÚosÚpathÚnormpathÚget_win_folderÚ_append_parts)ÚselfÚconstr   s      Úd/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_vendor/platformdirs/windows.pyÚuser_data_dirÚWindows.user_data_dir   s<   € ð $(§<§<‘Ð5JˆÜ�w‰w×Ñ¤¨uÓ 5Ó6ˆØ×!Ñ! $Ó'Ð'ó    N©Úopinion_valuec               óæ  • / nU R                   (       a«  U R                  SLa0  U R                  =(       d    U R                   nUR                  U5        UR                  U R                   5        Ub"  U R                  (       a  UR                  U5        U R                  (       a  UR                  U R                  5        [
        R                  R                  " U/UQ76 nU R                  U5        U$ )NF)	ÚappnameÚ	appauthorÚappendÚopinionÚversionr   r   ÚjoinÚ_optionally_create_directory)r   r   r   ÚparamsÚauthors        r   r   ÚWindows._append_parts$   s¡   € ØˆØ�<�<Ø�~‰~ UÒ*ØŸ™×7¨4¯<©<�Ø—‘˜fÔ%Ø�M‰M˜$Ÿ,™,Ô'ØÑ(¨T¯\¯\Ø—‘˜mÔ,Ø�|�|Ø—‘˜dŸl™lÔ+Ü�w‰w�|Š|˜DÐ* 6Ò*ˆØ×)Ñ)¨$Ô/Øˆr   c                ót   • [         R                  R                  [        S5      5      nU R	                  U5      $ )zU:returns: data directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname``ÚCSIDL_COMMON_APPDATA©r   r   r   r   r   ©r   r   s     r   Úsite_data_dirÚWindows.site_data_dir3   s/   € ô �w‰w×Ñ¤Ð/EÓ FÓGˆØ×!Ñ! $Ó'Ð'r   c                ó   • U R                   $ )zD:returns: config directory tied to the user, same as `user_data_dir`©r   ©r   s    r   Úuser_config_dirÚWindows.user_config_dir9   ó   € ð ×!Ñ!Ð!r   c                ó   • U R                   $ )zC:returns: config directory shared by users, same as `site_data_dir`©r.   r2   s    r   Úsite_config_dirÚWindows.site_config_dir>   r5   r   c                ór   • [         R                  R                  [        S5      5      nU R	                  USS9$ )z­:returns: cache directory tied to the user (if opinionated with ``Cache`` folder within ``$appname``) e.g. ``%USERPROFILE%\AppData\Local\$appauthor\$appname\Cache\$version``r   ÚCacher   r,   r-   s     r   Úuser_cache_dirÚWindows.user_cache_dirC   s4   € ô �w‰w×Ñ¤Ð/DÓ EÓFˆØ×!Ñ! $°gÐ!Ð>Ð>r   c                ór   • [         R                  R                  [        S5      5      nU R	                  USS9$ )ze:returns: cache directory shared by users, e.g. ``C:\ProgramData\$appauthor\$appname\Cache\$version``r+   r;   r   r,   r-   s     r   Úsite_cache_dirÚWindows.site_cache_dirI   s4   € ô �w‰w×Ñ¤Ð/EÓ FÓGˆØ×!Ñ! $°gÐ!Ð>Ð>r   c                ó   • U R                   $ )zC:returns: state directory tied to the user, same as `user_data_dir`r1   r2   s    r   Úuser_state_dirÚWindows.user_state_dirO   r5   r   c                ó   • U R                   $ )zB:returns: state directory shared by users, same as `site_data_dir`r7   r2   s    r   Úsite_state_dirÚWindows.site_state_dirT   r5   r   c                ó¢   • U R                   nU R                  (       a1  [        R                  R	                  US5      nU R                  U5        U$ )zh:returns: log directory tied to the user, same as `user_data_dir` if not opinionated else ``Logs`` in itÚLogs)r   r#   r   r   r%   r&   r-   s     r   Úuser_log_dirÚWindows.user_log_dirY   ó=   € ð ×!Ñ!ˆØ�<�<Ü—7‘7—<‘<  fÓ-ˆDØ×-Ñ-¨dÔ3Øˆr   c                ó¢   • U R                   nU R                  (       a1  [        R                  R	                  US5      nU R                  U5        U$ )zg:returns: log directory shared by users, same as `site_data_dir` if not opinionated else ``Logs`` in itrH   )r.   r#   r   r   r%   r&   r-   s     r   Úsite_log_dirÚWindows.site_log_dirb   rK   r   c                óR   • [         R                  R                  [        S5      5      $ )zO:returns: documents directory tied to the user e.g. ``%USERPROFILE%\Documents``ÚCSIDL_PERSONAL©r   r   r   r   r2   s    r   Úuser_documents_dirÚWindows.user_documents_dirk   ó   € ô �w‰w×Ñ¤Ð/?Ó @ÓAÐAr   c                óR   • [         R                  R                  [        S5      5      $ )zO:returns: downloads directory tied to the user e.g. ``%USERPROFILE%\Downloads``ÚCSIDL_DOWNLOADSrQ   r2   s    r   Úuser_downloads_dirÚWindows.user_downloads_dirp   s   € ô �w‰w×Ñ¤Ð/@Ó AÓBÐBr   c                óR   • [         R                  R                  [        S5      5      $ )zM:returns: pictures directory tied to the user e.g. ``%USERPROFILE%\Pictures``ÚCSIDL_MYPICTURESrQ   r2   s    r   Úuser_pictures_dirÚWindows.user_pictures_diru   s   € ô �w‰w×Ñ¤Ð/AÓ BÓCÐCr   c                óR   • [         R                  R                  [        S5      5      $ )zI:returns: videos directory tied to the user e.g. ``%USERPROFILE%\Videos``ÚCSIDL_MYVIDEOrQ   r2   s    r   Úuser_videos_dirÚWindows.user_videos_dirz   ó   € ô �w‰w×Ñ¤¨Ó ?Ó@Ð@r   c                óR   • [         R                  R                  [        S5      5      $ )zG:returns: music directory tied to the user e.g. ``%USERPROFILE%\Music``ÚCSIDL_MYMUSICrQ   r2   s    r   Úuser_music_dirÚWindows.user_music_dir   ra   r   c                óR   • [         R                  R                  [        S5      5      $ )zL:returns: desktop directory tied to the user, e.g. ``%USERPROFILE%\Desktop``ÚCSIDL_DESKTOPDIRECTORYrQ   r2   s    r   Úuser_desktop_dirÚWindows.user_desktop_dir„   s   € ô �w‰w×Ñ¤Ð/GÓ HÓIÐIr   c                óz   • [         R                  R                  [         R                  R                  S5      5      $ )zN:returns: projects directory tied to the user, e.g. ``%USERPROFILE%\Projects``z
~/Projects)r   r   r   Ú
expanduserr2   s    r   Úuser_projects_dirÚWindows.user_projects_dir‰   s(   € ô �w‰w×Ñ¤§¡× 2Ñ 2°<Ó @ÓAÐAr   c           
     óÖ   • [         R                  R                  [         R                  R	                  S[        [        S5      R                  5       R                  S-  5      5      5      $ )z9:returns: public share directory e.g. ``C:\Users\Public``ÚPUBLICÚ~ÚPublic)	r   r   r   ÚenvironÚgetÚstrr   rk   Úparentr2   s    r   Úuser_publicshare_dirÚWindows.user_publicshare_dirŽ   sF   € ô �w‰w×Ñ¤§
¡
§¡¨x¼¼TÀ#»Y×=QÑ=QÓ=S×=ZÑ=ZÐ]eÑ=eÓ9fÓ gÓhÐhr   c           	     óˆ   • [         R                  R                  [        [	        [        S5      5      S-  S-  S-  5      5      $ )z]:returns: templates directory tied to the user e.g. ``%APPDATA%\Microsoft\Windows\Templates``r   Ú	Microsoftr   Ú	Templates©r   r   r   rt   r   r   r2   s    r   Úuser_templates_dirÚWindows.user_templates_dir“   s9   € ô �w‰w×Ñ¤¤D¬¸Ó)HÓ$IÈKÑ$WÐZcÑ$cÐfqÑ$qÓ rÓsÐsr   c           	     óˆ   • [         R                  R                  [        [	        [        S5      5      S-  S-  S-  5      5      $ )zZ:returns: fonts directory tied to the user e.g. ``%LOCALAPPDATA%\Microsoft\Windows\Fonts``r   ry   r   ÚFontsr{   r2   s    r   Úuser_fonts_dirÚWindows.user_fonts_dir˜   s;   € ô �w‰w×Ñ¤¤D¬Ð8MÓ)NÓ$OÐR]Ñ$]Ð`iÑ$iÐlsÑ$sÓ tÓuÐur   c                ó   • U R                   $ )zL:returns: preference directory tied to the user, same as ``user_config_dir``)r3   r2   s    r   Úuser_preference_dirÚWindows.user_preference_dir�   s   € ð ×#Ñ#Ð#r   c                óŽ   • [         R                  R                  [         R                  R                  [	        S5      S5      5      $ )zJ:returns: bin directory tied to the user, e.g. ``%LOCALAPPDATA%\Programs``r   ÚPrograms©r   r   r   r%   r   r2   s    r   Úuser_bin_dirÚWindows.user_bin_dir¢   s/   € ô �w‰w×Ñ¤§¡§¡¬^Ð<QÓ-RÐT^Ó _Ó`Ð`r   c                óŽ   • [         R                  R                  [         R                  R                  [	        S5      S5      5      $ )zC:returns: bin directory shared by users, e.g. ``C:\ProgramDatain``r+   Úbinr‡   r2   s    r   Úsite_bin_dirÚWindows.site_bin_dir§   s/   € ô �w‰w×Ñ¤§¡§¡¬^Ð<RÓ-SÐUZÓ [Ó\Ð\r   c                óR   • [         R                  R                  [        S5      5      $ )zO:returns: applications directory tied to the user, e.g. ``Start Menu\Programs``ÚCSIDL_PROGRAMSrQ   r2   s    r   Úuser_applications_dirÚWindows.user_applications_dir¬   rT   r   c                óR   • [         R                  R                  [        S5      5      $ )zo:returns: applications directory shared by users, e.g. ``C:\ProgramData\Microsoft\Windows\Start Menu\Programs``ÚCSIDL_COMMON_PROGRAMSrQ   r2   s    r   Úsite_applications_dirÚWindows.site_applications_dir±   s   € ô �w‰w×Ñ¤Ð/FÓ GÓHÐHr   c                ó°   • [         R                  R                  [         R                  R                  [	        S5      S5      5      nU R                  U5      $ )zk:returns: runtime directory tied to the user, e.g. ``%USERPROFILE%\AppData\Local\Temp\$appauthor\$appname``r   ÚTemp)r   r   r   r%   r   r   r-   s     r   Úuser_runtime_dirÚWindows.user_runtime_dir¶   s?   € ô �w‰w×Ñ¤§¡§¡¬^Ð<QÓ-RÐTZÓ [Ó\ˆØ×!Ñ! $Ó'Ð'r   c                ó   • U R                   $ )zG:returns: runtime directory shared by users, same as `user_runtime_dir`)r˜   r2   s    r   Úsite_runtime_dirÚWindows.site_runtime_dir¼   s   € ð ×$Ñ$Ð$r   © )Úreturnrt   )r   rt   r   ú
str | Nonerž   rt   )#Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úpropertyr   r   r.   r3   r8   r<   r?   rB   rE   rI   rM   rR   rW   r[   r_   rd   rh   rl   rv   r|   r€   rƒ   rˆ   rŒ   r�   r”   r˜   r›   Ú__static_attributes__r�   r   r   r   r      sK  † ñð ó(ó ð(ð GK÷ ð ó(ó ð(ð
 ó"ó ð"ð ó"ó ð"ð ó?ó ð?ð
 ó?ó ð?ð
 ó"ó ð"ð ó"ó ð"ð óó ðð óó ðð óBó ðBð óCó ðCð óDó ðDð óAó ðAð óAó ðAð óJó ðJð óBó ðBð óió ðið ótó ðtð óvó ðvð ó$ó ð$ð óaó ðað ó]ó ð]ð óBó ðBð óIó ðIð ó(ó ð(ð
 ó%ó ó%r   r   c                óÚ   • [        U 5      nUb  U$ SSSS.R                  U 5      nUc  SU  3n[        U5      e[        R                  R                  U5      nUc  SU 3n[        U5      eU$ )z&Get folder from environment variables.ÚAPPDATAÚALLUSERSPROFILEÚLOCALAPPDATA)r   r+   r   úUnknown CSIDL name: zUnset environment variable: )Ú(get_win_folder_if_csidl_name_not_env_varrs   Ú
ValueErrorr   rr   )Ú
csidl_nameÚresultÚenv_var_nameÚmsgs       r   Úget_win_folder_from_env_varsr²   Â   s‡   € ä5°jÓA€FØÑØˆð #Ø 1Ø-ñ÷ 
�cˆ*ƒoð	 ð
 ÑØ$ Z LÐ1ˆÜ˜‹oÐÜ�Z‰Z�^‰^˜LÓ)€FØ�~Ø,¨\¨NÐ;ˆÜ˜‹oÐØ€Mr   c                óþ  • U S:X  aN  [         R                  R                  [         R                  R                  [         R                  S   5      S5      $ U S:X  aN  [         R                  R                  [         R                  R                  [         R                  S   5      S5      $ U S:X  aN  [         R                  R                  [         R                  R                  [         R                  S   5      S5      $ U S:X  aN  [         R                  R                  [         R                  R                  [         R                  S   5      S	5      $ U S
:X  aN  [         R                  R                  [         R                  R                  [         R                  S   5      S5      $ U S:X  aQ  [         R                  R                  [         R                  R                  [         R                  S   5      SSSS5      $ U S:X  a|  [         R                  R                  [         R                  R                  [         R                  R                  S[         R                  R                  SS5      5      5      SSSS5      $ g)zMGet a folder for a CSIDL name that does not exist as an environment variable.rP   ÚUSERPROFILEÚ	DocumentsrV   Ú	DownloadsrZ   ÚPicturesr^   ÚVideosrc   ÚMusicr�   r¨   ry   r   z
Start Menur†   r“   ÚPROGRAMDATAr©   zC:\ProgramDataN)r   r   r%   r   rr   rs   )r®   s    r   r¬   r¬   ×   s¶  € àÐ%Ó%Ü�w‰w�|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸Ñ-FÓGÈÓUÐUàÐ&Ó&Ü�w‰w�|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸Ñ-FÓGÈÓUÐUàÐ'Ó'Ü�w‰w�|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸Ñ-FÓGÈÓTÐTà�_Ó$Ü�w‰w�|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸Ñ-FÓGÈÓRÐRà�_Ó$Ü�w‰w�|‰|œBŸG™G×,Ñ,¬R¯Z©Z¸Ñ-FÓGÈÓQÐQàÐ%Ó%Ü�w‰w�|‰|Ü�G‰G×ÑœRŸZ™Z¨	Ñ2Ó3ØØØØó
ð 	
ð Ð,Ó,Ü�w‰w�|‰|Ü�G‰G×ÑœRŸZ™ZŸ^™^¨M¼2¿:¹:¿>¹>ÐJ[Ð]nÓ;oÓpÓqØØØØó
ð 	
ð r   c                ó>  • SS1nSSSSSSS	S
SSS.
R                  U 5      nUc  SU  3n[        U5      e[        R                  S:w  a  [        eSSKnX;   a  UR                  OUR                  nUR                  US5      nUR                  Xb5      u  px[        U5      $ )z«Get folder from the registry.

This is a fallback technique at best. I'm not sure if using the registry for these guarantees us the correct answer
for all CSIDL_* names.

r+   r“   ÚAppDatazCommon AppDatazLocal AppDataÚPersonalú&{374DE290-123F-4565-9164-39C4925E467B}zMy PictureszMy VideozMy Musicr†   zCommon Programs)
r   r+   r   rP   rV   rZ   r^   rc   r�   r“   Nr«   Úwin32r   z@Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders)rs   r­   ÚsysÚplatformÚNotImplementedErrorÚwinregÚHKEY_LOCAL_MACHINEÚHKEY_CURRENT_USERÚOpenKeyÚQueryValueExrt   )	r®   Úmachine_namesÚshell_folder_namer±   rÃ   ÚhkeyÚkeyÚ	directoryÚ_s	            r   Úget_win_folder_from_registryrÎ   ü   sÀ   € ð 	Øð€Mð
 #Ø 0Ø.Ø$ØCØ)Ø#Ø#Ø$Ø!2ñ÷ 
�cˆ*ƒoð ð Ñ Ø$ Z LÐ1ˆÜ˜‹oÐÜ
‡|�|�wÓÜ!Ð!Ûð )3Ó(Cˆ6×$Ò$È×IaÑIa€Dà
�.‰.˜ÐbÓ
c€CØ×&Ñ& sÓ>�L€IÜˆy‹>Ðr   z&{3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}z&{62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}z&{F1B32785-6FBA-4FCF-9D55-7B8E7F157091}z&{FDD39AD0-238F-46AF-ADB4-6C85480369C7}z&{33E28130-4E1E-4676-835A-98395C3BC3BB}z&{18989B1D-99B5-455B-841C-AB7C74E4DDFC}z&{4BD8D571-6D19-48D3-BE97-422220080E43}r¾   z&{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}z&{A77F5D77-2E2B-44C3-A6A2-ABA601054A51}z&{0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8})r   r+   r   rP   rZ   r^   rc   rV   rg   r�   r“   zdict[str, str]Ú_KNOWN_FOLDER_GUIDSc                ó~  ^• [         R                  S:w  a  [        eSSKJnJnJnJnJnJ	nJ
m   " U4S jSU5      nU" S5      nXR                  l        TR                  U" U5      /UR                  l        SUR                  l        TR                   /UR                  l        U" S5      n	XR"                  l        U" U5      TR$                  TR&                  U" TR(                  5      /U	R"                  l        U" S	5      n
TR$                  U
R*                  l        TR(                  TR(                  TR$                  /U
R*                  l        [,        R/                  U 5      nUc  S
U  3n[1        U5      eU" 5       nUR                  Xµ" U5      5        TR)                  5       nU	R#                  U" U5      [2        SU" U5      5        UR4                  nUR                  U5        Uc  SU  3n[1        U5      e[7        S U 5       5      (       a,  U" S5      nU
R+                  UUS5      (       a  UR4                  nU$ )z˜Get folder via :func:`SHGetKnownFolderPath`.

See https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath.

r¿   r   )ÚHRESULTÚPOINTERÚ	StructureÚWinDLLÚbyrefÚcreate_unicode_bufferÚwintypesc                  ó�   >• \ rS rSrS Y R                  4S Y R
                  4S Y R
                  4S Y R                  S-  4/rSrg)	Ú(get_win_folder_via_ctypes.<locals>._GUIDi;  ÚData1ÚData2ÚData3ÚData4é   r�   N)	r    r¡   r¢   r£   ÚDWORDÚWORDÚBYTEÚ_fields_r¦   )r×   s   €r   Ú_GUIDrÙ   ;  s?   ø† à‘h—n‘nÐ%Ø‘h—m‘mÐ$Ø‘h—m‘mÐ$Ø‘h—m‘m aÑ'Ð(ð	
‹r   rã   Úole32NÚshell32Úkernel32r«   z'SHGetKnownFolderPath returned NULL for c              3  ó>   #   • U  H  n[        U5      S :„  v •  M     g7f)éÿ   N)Úord)Ú.0Úcs     r   Ú	<genexpr>Ú,get_win_folder_via_ctypes.<locals>.<genexpr>b  s   é € Ð
(¢˜AŒ3ˆq‹6�CŽ<¢ùs   ‚i   )rÀ   rÁ   rÂ   ÚctypesrÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   ÚCLSIDFromStringÚrestypeÚ	LPCOLESTRÚargtypesÚCoTaskMemFreeÚLPVOIDÚSHGetKnownFolderPathrß   ÚHANDLEÚLPWSTRÚGetShortPathNameWrÏ   rs   r­   r
   ÚvalueÚany)r®   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   rã   rä   rå   ræ   Úfolder_guidr±   ÚguidÚpath_ptrr¯   Úbufr×   s                    @r   Úget_win_folder_via_ctypesrÿ   1  sç  ø€ ô ‡|�|�wÓÜ!Ð!ßb×bÑb÷
�	ô 
ñ �7‹O€EØ$+×ÑÔ!Ø&.×&8Ñ&8¹'À%».Ð%I€E×ÑÔ"Ø"&€E×ÑÔØ$,§O¡OÐ#4€E×ÑÔ á�YÓ€GØ+2× Ñ Ô(Ù-4°U«^¸X¿^¹^ÈXÏ_É_Ñ^eÐfn×fuÑfuÓ^vÐ,w€G× Ñ Ô)á�jÓ!€HØ)1¯©€H×ÑÔ&Ø+3¯?©?¸H¿O¹OÈXÏ^É^Ð*\€H×ÑÔ'ä%×)Ñ)¨*Ó5€KØÑØ$ Z LÐ1ˆÜ˜‹oÐá‹7€DØ	×Ñ˜+ u¨T£{Ô3à�‰Ó €HØ× Ñ ¡ t£Ô.BÀDÉ%ÐPXË/ÔZØ�^‰^€FØ	×Ñ˜Ô!à�~Ø7¸
°|ÐDˆÜ˜‹oÐä
Ñ
(¡Ó
(×(Ñ(Ù# DÓ)ˆØ×%Ñ% f¨c°4×8Ñ8Ø—Y‘YˆFà€Mr   c                 óz   •  SSK n [        $ ! [         a     Of = f SSKn[        $ ! [         a	    [
        s $ f = f)zjSelect the best method to resolve Windows folder paths: ctypes, then registry, then environment variables.r   N)rî   rÿ   ÚImportErrorrÃ   rÎ   r²   )rî   rÃ   s     r   Ú_pick_get_win_folderr  j  sM   € ð)Ûô )Ð(øô ó Ùðúð,Ûô ,Ð+øô ó ,Ü+Ò+ð,ús   ‚ Œ
˜�' §:¹:c                ó®   • SU R                  S5       3n[        R                  R                  US5      R	                  5       =n(       a  U$ [        U 5      $ )zËGet a Windows folder path, checking for ``WIN_PD_OVERRIDE_*`` environment variable overrides first.

For example, ``CSIDL_LOCAL_APPDATA`` can be overridden by setting ``WIN_PD_OVERRIDE_LOCAL_APPDATA``.

ÚWIN_PD_OVERRIDE_ÚCSIDL_Ú )Úremoveprefixr   rr   rs   ÚstripÚ_resolve_win_folder)r®   Úenv_varÚoverrides      r   r   r   }  sO   € ð ! ×!8Ñ!8¸Ó!BÐ CÐD€GÜ—:‘:—>‘> '¨2Ó.×4Ñ4Ó6Ð6€xÕ6ØˆÜ˜zÓ*Ð*r   )r®   rt   rž   rt   )r®   rt   rž   rŸ   )rž   zCallable[[str], str])r¤   Ú
__future__r   r   rÀ   Úpathlibr   Útypingr   r   Úapir   Úcollections.abcr	   r
   Ú__annotations__r   r²   r¬   rÎ   rÏ   rÿ   r  r	  r   Ú__all__r�   r   r   Ú<module>r     s¦   ðÚ å "ã 	Û 
Ý ß 'å  æÝ(ð $.Ð �jÓ -ôl%ˆoô l%ô^ô*"ôJ#ðN >ØDØCØ>Ø@Ø=Ø=Ø?ØFØ>ØEñ'Ð �^ó ô6ôr,ñ  +Ó,Ð ô	+ð ð�r   