
    i&                     \   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	J
r
JrJrJr  SSK	Jr  SSKJrJrJrJr  SSKJrJrJrJrJrJrJr  SSKJr  SSKJ r   SS	K!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)J*r*  SS
K+J,r,J-r-J.r.J/r/  SSK0J1r1  SSK2J3r3J4r4  SSK5J6r6  SSK	J7r7  SSK8J9r9J:r:J;r;  SSK<J=r=  SSK>J?r?  \.(       a  SSK@JArB  \R                  " \D5      rE\F" S5      rG\F" S5      rH0 rI\R                  R                  \SS5      rL/ SQrMSrN\7R                  S 5       rPS rQ " S S\R                  5      rS\SR(                  \SR                  \SR                  \SR(                  \SR                  -  \SR(                  \SR                  -  S.rVS'S jrW " S  S!\5      rX " S" S#5      rYS$ rZS% r[S\
\SS4S& jr\g)(zx
Build packages using spec files.

NOTE: All global variables, classes and imported modules create API for .spec files.
    N)DEFAULT_DISTPATHDEFAULT_WORKPATHHOMEPATHcompat)log)COLLECTEXEMERGEPYZ)TOCTargetTree_check_guts_eqnormalize_tocnormalize_pyz_toctoc_process_symbolic_links)BUNDLE)Splash)	_check_guts_toc_check_guts_toc_mtime_should_include_system_binaryformat_binaries_and_datascompile_pymoduledestination_name_for_extension postprocess_binaries_toc_pywin32)postprocess_binaries_toc_pywin32_anacondacreate_base_library_zip)is_winis_conda	is_darwinis_linux)	bindepend)initialize_modgraphHOOK_PRIORITY_USER_HOOKS)scan_code_for_ctypes)isolated)absnormpathget_path_to_toplevel_modulesmtime)get_package_paths)compile_glib_schema_files)osx NPyInstallerloader)z	top-levelconditionaldelayedzdelayed, conditionaloptionalzconditional, optionalzdelayed, optionalzdelayed, conditional, optionala  
This file lists modules PyInstaller was not able to find. This does not
necessarily mean this module is required for running your program. Python and
Python 3rd-party packages include a lot of conditional or optional modules. For
example the module 'ntpath' only exists on Windows, whereas the module
'posixpath' only exists on Posix systems.

Types if import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement

IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
            tracking down the missing module yourself. Thanks!

c            	          SSK Jn   SSKJn  SSKJn  SSKJnJn  UR                  SSS9n[        US	 S
9n/ nU H`  n UR                  5       " 5       nUR"                  R%                  S5      (       a  UOUnUR'                  U Vs/ s H  nX4PM     sn5        Mb     UR)                  SU5        U$ ! [         aL  n	SR                  U " [        U	5      U	5      5      R                  5       n
UR!                  SXz5         Sn	A	M  Sn	A	ff = fs  snf )z
Discover hook directories via pyinstaller40 entry points. Perform the discovery in an isolated subprocess
to avoid importing the package(s) in the main process.

:return: list of discovered hook directories.
r   )format_exception_only)logger)importlib_metadata)HOOK_PRIORITY_CONTRIBUTED_HOOKSHOOK_PRIORITY_UPSTREAM_HOOKSpyinstaller40z	hook-dirs)groupnamec                 8    U R                   R                  S5      $ )N_pyinstaller_hooks_contrib)module
startswith)xs    LC:\des-py\RoboSAPF\venv\Lib\site-packages\PyInstaller\building\build_main.py<lambda>+discover_hook_directories.<locals>.<lambda>k   s    ahh6I6IJf6g    )keyr-   zFdiscover_hook_directories: Failed to process hook entry point '%s': %sNr>   z/discover_hook_directories: Hook directories: %s)	tracebackr5   PyInstaller.logr6   PyInstaller.compatr7   PyInstaller.depend.analysisr8   r9   entry_pointssortedload	Exceptionjointypestripwarningr?   r@   extenddebug)r5   r6   r7   r8   r9   rK   hook_directoriesentry_pointhook_directory_entriesemsglocation_priorityhook_directory_entrys                rB   discover_hook_directoriesr\   V   s    0&5i &22{2[L
 ,,ghL#	%0%5%5%7%9" !!,,-IJJ ,Pl 	 	=S!U=S%9 #7!J=S!U 	V! $& LLBDTU#  	''/Q;<BBDCNNcepv	!Us   B2D
2
D<ADDc           	         / n[         R                  (       Ga  UR                  [         R                  5        UR                  [        R
                  R                  [        [        S[        R                  5      5      5        Sn [        S5      u  pTU(       a  [        R
                  R                  U5      nUU[        R
                  R                  US5      [        R
                  R                  USS5      [        R
                  R                  US5      /-  n[         R                  (       Ga'  S nS nS	 n	S
n
/ n/ nU H=  nUR                  U
5      (       a  UR                  U5        M,  UR                  U5        M?     X-   nU
 Vs/ s H  oU;  d  M
  UPM     nnSU;   a  US/-  nSU;   a  US/-  nUS/-  nUS/-  n[        R                  " 5        nUR!                  X~5        U H  n UR!                  X5        M     UR!                  U	5      u  nnSSS5        [$        R'                  SW5        UU-  n[$        R'                  SW5        UU-  n[)        [*        R-                  U5      R/                  5       5      n[0        R2                  " U UUS9$ ! [         a     GNf = fs  snf ! [        R"                   a$  n[        R"                  " SU< SU< 35      UeSnAff = f! , (       d  f       N= f)a3  
Find dynamic dependencies (linked shared libraries) for the provided list of binaries.

On Windows, this function performs additional pre-processing in an isolated environment in an attempt to handle
dynamic library search path modifications made by packages during their import. The packages from the given list
of collected packages are imported one by one, while keeping track of modifications made by `os.add_dll_directory`
calls and additions to the `PATH`  environment variable. The recorded additional search paths are then passed to
the binary dependency analysis step.

binaries
        List of binaries to scan for dynamic dependencies.
import_packages
        List of packages to import prior to scanning binaries.
symlink_suppression_patterns
        Set of paths and/or path patterns for which binary dependency analysis should not create symbolic links
        to the top-level application directory (when the discovered shared library's parent directory structure
        is preserved). When binary dependency analysis discovers a shared library, it matches its *source path*
        against all symlink suppression patterns (using `pathlib.PurePath.match`) to determine whether to create
        a symbolic link to top-level application directory or not.

:return: expanded list of binaries and then dependencies.
_base_executableNpywin32_system32win32lib	Pythonwinc                    ^^ SSK mSSKn/ Tl        TR                  R	                  SS5      Tl        TR                  mUU4S jnUTl        U  H  nSUR                  U'   M     g)z)
Prepare environment for change tracking
r   NPATHr-   c                 J   > TR                   R                  U 5        T" U 5      $ r.   )_added_dll_directoriesappend)path_original_add_dll_directoryoss    rB   _pyi_add_dll_directoryGfind_binary_dependencies.<locals>.setup.<locals>._pyi_add_dll_directory   s"    ))0062488rE   )rj   sysrf   environget_original_path_envadd_dll_directorymodules)suppressed_importsrm   rk   r<   ri   rj   s       @@rB   setup'find_binary_dependencies.<locals>.setup   s_     (*B%$&JJNN62$>B!*,*>*>'9 $:B  +$(D! +rE   c                 <     [        U 5        g! [         a     gf = f)z1
Import collected package to set up environment.
N)
__import__rN   )packages    rB   import_library0find_binary_dependencies.<locals>.import_library   s!    7# s    
c                  v   SSK n U R                   Vs/ s H  n[        U5      PM     nn[        U R                  R                  U R                  5      5      nU R                  R                  SS5      R                  U R                  5      nU Vs/ s H  o(       d  M  X;  d  M  UPM     nnX%4$ s  snf s  snf )z%
Obtain lists of added search paths.
r   Nrd   r-   )	rj   rf   strsetrp   splitpathseprn   ro   )rj   rh   dll_directories	orig_pathmodified_pathpath_additionss         rB   process_search_paths6find_binary_dependencies.<locals>.process_search_paths   s      685N5NO5NTs4y5NOOB1177

CDIJJNN626<<RZZHM/<_}tdI^d}N_"22 P `s   B1
B6B6&B6)PySide2PyQt5PySide6PyQt6r   	shiboken2r   	shiboken6zpyqtgraph.canvasPySimpleGUIz4Isolated subprocess crashed while importing package z! Package import list: z2Extra DLL search directories (AddDllDirectory): %rz'Extra DLL search directories (PATH): %r)search_pathssymlink_suppression_patterns)r   r   rg   base_prefixrj   rh   dirnamegetattrrm   
executabler*   rN   rO   r@   r&   PythoncallSubprocessDiedErrorr6   infolistdictfromkeyskeysr"   binary_dependency_analysis)binariesimport_packagesr   extra_libdirspywin32_system32_dir_pywin32_base_dirrt   ry   r   _QT_BINDINGSqt_packagesother_packagesrx   rs   childrX   added_dll_directoriesadded_path_directoriess                      rB   find_binary_dependenciesr      s   2 M}}} 	V//0 	RWW__WS:Lcnn-]^_  $	&78J&K#A  !ww/CD$-w7-w>-{; M }}}	),		3( @&G!!,//""7+%%g.	 '
 &6
 6B`\'T_E_g\` **;-/**;-/ 	122
 	}o- __%JJu1*JJ~7 + =BJJG[<\9!#9  	HJ_`..=?UV//
 }5::<=M //"%A A  		f a.  33  #66Nwk Z00?/BD  sN   J 	J-J-K-3J2K-
J*)J*2K*K%%K**K--
K;c                   ~    \ rS rSrSr\R                  " 5       r\R                  " 5       r\R                  " 5       r	Sr
g)_ModuleCollectionModei=  z
Module collection mode flags.
 N)__name__
__module____qualname____firstlineno____doc__enumautor   PYCPY__static_attributes__r   rE   rB   r   r   =  s*     ))+C
))+C	BrE   r   )pyzpycpyzpyz+pyzpy+pyzFc                    U(       a  [         R                  O[         R                  nU (       d  U$ SnUR                  S5      n[	        [        U5      5       H3  nSR                  USUS-    5      nU R                  US5      nUc  M1  UnM5      [        U   nU(       a:  [         R                  U;   a&  U[         R                  -  nU[         R                  -  nU$ ! [         a    [        SU< SU< S35      ef = f)z
Determine the module/package collection mode for the given module name, based on the provided collection
mode settings dictionary.
r   .N   z#Unknown module collection mode for z: !)r   r   r   r~   rangelenrO   ro   _MODULE_COLLECTION_MODESKeyError
ValueError)		mode_dictr<   	noarchive
mode_flagsmode
name_partsimodlevelmodlevel_modes	            rB   _get_module_collection_moder   O  s     /8&**=R=V=VJ 
 DCJ3z?#88JvA./!h5$ D	 $T-d3

 *..*<+///
+///
  T>thbPQRSSTs   	C C;c                   D  ^  \ rS rSrSr\" \R                  R                  \	SS5      5      \" \R                  R                  \	SS5      5      \" \R                  R                  \	SS5      5      \" \R                  R                  \	SS5      5      \" \R                  R                  \	SS5      5      1r
              S%U 4S	 jjrS
\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4S\4SS\4S\44rS rS rS  rS! rS" rS&S# jrS$rU =r$ )'Analysisiu  a  
Class that performs analysis of the user's main Python scripts.

An Analysis contains multiple TOC (Table of Contents) lists, accessed as attributes of the analysis object.

scripts
        The scripts you gave Analysis as input, with any runtime hook scripts prepended.
pure
        The pure Python modules.
binaries
        The extension modules and their dependencies.
datas
        Data files collected from packages.
zipfiles
        Deprecated - always empty.
zipped_data
        Deprecated - always empty.
supportz_mountzlib.pyzuseUnicode.pyzuseTK.pyzunpackTK.pyzremoveTK.pyc                   > U
b  SSK Jn  U" S5      eU(       a  SSK Jn  U" S5      eU(       a  SSK Jn  U" S5      e[        TU ]  5         SSKJn  / U l        [        R                  R                  US	   5      nU H  n[        R                  R                  U5      (       d   [        R                  R                  UU5      n[        U5      U R                  ;   a  [        R!                  S
U5        Mx  [        R                  R#                  U5      n[        R                  R%                  U5      (       d  ['        SU-  5      eU R                  R)                  U5        M     U R                  S   US'   / nU=(       d    /  HC  n[*        R,                  " U5      R.                  S:X  d  M)  UR)                  [1        U5      5        ME     U(       a9  [        R3                  [4        R6                  S[8        R:                  " U5      5        U R=                  X R                  5      U l        U R>                  US'   [@        R                  RC                  U R>                  5        [        RE                  S[8        R:                  " [@        R                  5      -   5        U=(       d    / U l#        U RF                  RC                  URI                  S/ 5      5        U RF                   H.  n[J        RL                  " SU5      (       d  M!  ['        SU S35      e   / U l'        U(       aO  U RN                  RC                  U Vs/ s H(  n[        R                  RQ                  U5      [R        4PM*     sn5        U =RN                  [U        5       -  sl'        0 U l+        U(       a  U RV                  RY                  U5        U	=(       d    / U l-        / U l.        / U l/        U=(       d    / U l0        / U l1        / U l2        / U l3        / U l4        / U l5        / U l6        / U l7        [@        Rp                  U l9        Xl:        U=(       d    0 U l;        US;   a  [@        Rx                  Rz                  OUU l=        / U l>        U Rz                  S;  a  [        SU Rz                  < 35      eU(       a`  [        RE                  S5        [        UUS9 VVs/ s H  u  nnUUS4PM     snnU l.        [        [        U R\                  5      5      U l.        U(       a`  [        RE                  S5        [        UUS9 VVs/ s H  u  nnUUS4PM     snnU l/        [        [        U R^                  5      5      U l/        U R                  5         gs  snf s  snnf s  snnf )a  
scripts
        A list of scripts specified as file names.
pathex
        An optional list of paths to be searched before sys.path.
binaries
        An optional list of additional binaries (dlls, etc.) to include.
datas
        An optional list of additional data files to include.
hiddenimport
        An optional list of additional (hidden) modules to include.
hookspath
        An optional list of additional paths to search for hooks. (hook-modules).
hooksconfig
        An optional dict of config settings for hooks. (hook-modules).
excludes
        An optional list of module or package names (their Python names, not path names) that will be
        ignored (as though they were not found).
runtime_hooks
        An optional list of scripts to use as users' runtime hooks. Specified as file names.
cipher
        Deprecated. Raises an error if not None.
win_no_prefer_redirects
        Deprecated. Raises an error if not False.
win_private_assemblies
        Deprecated. Raises an error if not False.
noarchive
        If True, do not place source files in a archive, but keep them as individual files.
module_collection_mode
        An optional dict of package/module names and collection mode strings. Valid collection mode strings:
        'pyz' (default), 'pyc', 'py', 'pyz+py' (or 'py+pyz')
optimize
        Optimization level for collected bytecode. If not specified or set to -1, it is set to the value of
        `sys.flags.optimize` of the running build process.
Nr   )RemovedCipherFeatureErrorzOPlease remove the 'cipher' arguments to PYZ() and Analysis() in your spec file.) RemovedWinSideBySideSupportErrorzUPlease remove the 'win_no_prefer_redirects' argument to Analysis() in your spec file.zTPlease remove the 'win_private_assemblies' argument to Analysis() in your spec file.CONFspecz&Ignoring obsolete auto-added script %szERROR: script '%s' not foundmain_scriptzsite-packagesa  Foreign Python environment's site-packages paths added to --paths/pathex:
%s
This is ALWAYS the wrong thing to do. If your environment's site-packages is not in PyInstaller's module search path then you are running PyInstaller from a different environment to the one your packages are in. Run print(sys.prefix) without PyInstaller to get the environment you should be using then install and run PyInstaller from that environment instead of this one. This warning will become an error in PyInstaller 7.0.pathexz"Module search paths (PYTHONPATH):
hiddenimportsz[\\/]zERROR: Invalid hiddenimport 'u   '. Hidden imports should be importable module names – not file paths. i.e. use --hiddenimport=foo.bar instead of --hiddenimport=.../site-packages/foo/bar.py>   N>   r   r      z)Unsupported bytecode optimization level: zAppending 'binaries' from .spec)
workingdirBINARYzAppending 'datas' from .specDATA)DPyInstaller.exceptionsr   r   super__init__PyInstaller.configr   inputsrj   rh   r   isabsrO   r'   _old_scriptsr6   rR   normpathexists
SystemExitrg   pathlibPathr<   r|   r   loggingDEPRECATIONpprintpformat_extend_pathexr   rm   rS   r   r   ro   research	hookspath
expanduserr$   r\   hooksconfigupdatecustom_runtime_hooks_input_binaries_input_datasexcludesscriptspurer   zipfileszipped_datadatasdependenciesversion_python_versionr   module_collection_modeflagsoptimize_modules_outside_pyzr   r   rL   r   __postinit__)selfr   r   r   r   r   r   r   r   runtime_hookscipherwin_no_prefer_redirectswin_private_assembliesr   r   r  _kwargsr   r   r   spec_dirscriptsite_packages_pathexrh   modnm	dest_namesrc_name	__class__s                              rB   r   Analysis.__init__  s   l H+a  #O2g  "O2f  	+77??4<0F77==((h76"d&7&77GPWW%%f-F77>>&)) !?&!HIIKKv&  #kk!n]!\r\D||D!&&/9$++CI6 "  JJ## &/
 17?S0T ))&++> X$9FNN388<TTU*0b 	!!$((?B"?@''Eyy5)) 3E7 ;y y  ( 
 NN!!dm"ndm\`BGG$6$6t$<>V#Wdm"no 	355##K0 %2$7R!! B	
"{{"&<&B#.6*.D		**($&! ==	)HHYZ[[ KK9:?XYanv?w$y?w(;	8 &/($C?w$yD #)-8L8L*M#ND KK67<UV[hp<q!s<q%8Y #,Xv!><q!sD &}T5F5F'G HDm #oX$y!ss   </U8U=)Vr   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   )r   Nr   r  c                     / nU H@  n[         R                  SU-  5        [        U5      nU(       d  M/  UR                  U5        MB     Ub  UR	                  U5        U Vs/ s H  n[        U5      PM     sn$ s  snf )a  
Normalize additional paths where PyInstaller will look for modules and add paths with scripts to the list of
paths.

:param spec_pathex: Additional paths defined defined in .spec file.
:param scripts: Scripts to create executable from.
:return: list of updated paths
z
script: %s)r6   rT   r(   rg   rS   r'   )r  spec_pathexr   r   r  script_toplevel_dirps          rB   r   Analysis._extend_pathexf  sr     FLL./">v"F""12	  "MM+&(./1A///s   !A9c                 *   [         R                  " XU5      (       a  gU R                   H*  n[        U5      U:  d  M  [        R                  SU5          g   US   U l        US   U l        US   U l        US   U l	        US   U l
        US   U l        g	)
NTzBuilding because %s changedr   r   r   r   r   r   F)r   _check_gutsr   r)   r6   r   r   r   r   r   r   r   )r  data
last_buildfilenames       rB   r  Analysis._check_guts  s    d*55HX+98D $ IL	Z(Z(.']
rE   c                 "   SSK Jn  [        R                  S5        [        R
                  " 5       n[        R                  SU5        [        R                  SU R                  5        [        R                  SU R                  5        U R                   H  n[        R                  SU-  5        M     [        U R                  U R                  S9U l        U R                   Vs/ s H  oDPM     snU l        U R                   Vs/ s H  oDPM     snU l        U R"                  U R                  R$                  -   U R                  l        U R                  R'                  5         [(        (       a  [*        R,                  " U5      (       a  [.        R0                  " U5      n[.        R0                  " UR3                  UR4                  R4                  R4                  R4                  5      5      nU R                   R7                  [9        U5      [9        U5      S	45        U R                   R7                  [:        R$                  R=                  U5      [9        U5      S
45        O;U R                   R7                  [:        R$                  R=                  U5      US	45        / nU R>                   HC  n[        R                  SU5        UR7                  U R                  RA                  U5      5        ME     U R                  RC                  U RD                  5        U R                  RG                  U 5        U =R                   U R                  RI                  5       -  sl        U =R                  U R                  RK                  5       -  sl        / U l&        / U l'        [Q        U R                  U R                   -   5      n	[        R                  S[S        U	5      5        / U l        / U l        U	 H  u  pn[        RT                  " U5      nUb  X:w  a  [        R                  SXU5        UnUS;   a  U R                   R7                  XU45        Mb  U R                  R7                  XU45        M     [        R                  S5        U R                  RW                  S5      nURY                  5        H  u  nn[        R                  SU5         [[        U5      n[]        U5       HU  u  pn[        RT                  " U5      S;  a  [        R_                  SU5        M8  U R                   R7                  XU45        MW     M     U R                  Re                  S [g        U R                  Ri                  5       5       5       5        U R                  Rk                  U Rl                  5      nU R                  Ro                  U5      nU R                  Ro                  U5      nSSSS.U R                     nU VVVs/ s H
  u  poUU4PM     nnnnUU-   U l8        [Q        U Rp                  5      U l8        U =R                   U R                  Rs                  5       -  sl        [u        U R                   5       H1  u  nu  nnnUS:w  a  M  [w        UUU5      nUUU4U R                   U'   M3     [Q        U R                  5      U l        [Q        U R                   5      U l        [y        U R                  [:        R$                  R{                  US   S5      5      U l        [Q        U R                  5      U l        [S        U R|                  5      S:X  d   eU R                  R                  5       nU R                  R                  R                  U R                  5        [        R                  SU R                  R                  5        U R                  [        R                  R                  :X  aT  [        R                  S U R                  [        R                  R                  5        U R                  R                  5       nO;[        R                  S!U R                  [        R                  R                  5        Sn[]        S" U R                  R                   5       5      n/ n[:        R$                  R{                  US   S#5      nU R                  nU GH  u  pnUS$:X  d   e[        U R                  R                  XR                  5      n S%n![        R                  U ;   aB  S$S&S'S.U   nXU4n"UU;   a  UR7                  U"5        OU R|                  R7                  U"5        S(n!U!(       d  U R                  R7                  XU45        US);   a  M  [        R                  U ;   a  [:        R$                  R                  [:        R$                  R=                  U5      5      u  n#n$U$R                  5       S*:X  a  [        R_                  S+UU5        GM>  UR                  S,[:        R                  5      n%U#S-:X  a  U%[:        R                  S--   U$-   -  n%OU%U$-  n%U R                  R7                  U%US.45        [        R                  U ;   d  GM  [:        R$                  R                  [:        R$                  R=                  U5      5      u  n#n$UR                  S,[:        R                  5      n%U#S-:X  a  U%[:        R                  S--   -  n%U%S*-  n%[        UU[:        R$                  R{                  U[9        U5      5      UUS/9n&U R                  R7                  U%U&S.45        GM     [:        R$                  R{                  US   S05      n'[:        R$                  R                  U'5      (       a  [:        R                  " U'5        U(       a{  [        R                  S1[:        R$                  R=                  U'5      5        [        U'UU5        U R                  R7                  [:        R$                  R=                  U'5      U'S.45        [        U R|                  5      U l>        SSK Jn  US2   n(UU([        U R|                  5      '   [        R                  S35        U R                  R                  5       n)U R                   Re                  [        U R                   U)U R                  R                  5      5        [        (       a?  [        U R                   5      U l        [        (       a  [        U R                   5      U l        [        (       Ga  U R                    GH  u  pnUS;  a  M  [.        R                  " U5      n*U*R                  S,U*R                   S435      n+U+R                  5       (       a_  [.        R0                  " U
5      R                  U+R                  5      n,U R                  R7                  [9        U,5      [9        U+5      S.45        U*R4                  S5-  U*R                   S43-  n+U+R                  5       (       aS  [.        R0                  " S55      U+R                  -  n,U R                  R7                  [9        U,5      [9        U+5      S.45        U*R                  S65      n-U-R                  5       (       d  GMh  [.        R0                  " U
5      R                  U-R                  5      n.U R                  R7                  [9        U.5      [9        U-5      S.45        GM     [Q        U R                  U R                   -   5      n	[        U	5      n	[(        (       a  U	[*        R                  " U	5      -  n	/ U l        / U l        U	 HF  nUu  pnUS;   a  U R                   R7                  U5        M+  U R                  R7                  U5        MH     [(        (       aP  U R                   V
VVs/ s H/  u  pn[:        R$                  R=                  U5      S7:w  d  M+  XU4PM1     snnn
U l        U R                  5         U R                  5         [(        (       a  / n/U R                    H8  u  pn [*        R                  " U5      n0U0S;:  d  M%  U/R7                  XU045        M:     U/(       aN  [        R_                  S<5        U/ H  u  pn0[        R_                  S=XU05        M     [        R_                  S>5        gggs  snf s  snf ! [`         a  n[c        SU S35      UeSnAff = fs  snnnf s  snnn
f ! [`         a-    [        R_                  S8US(S99  U/R7                  XS:45         GM  f = f)?zO
This method is the MAIN method for finding all necessary files to be bundled.
r   r   z$Looking for Python shared library...zUsing Python shared library: %szRunning Analysis %sz&Target bytecode optimization level: %dzExcluding module '%s')r   user_hook_dirsr   SYMLINKzAnalyzing %sz8Performing binary vs. data reclassification (%d entries)Nz0Reclassifying collected file %r from %s to %s...>   r   	EXTENSIONzLooking for ctypes DLLsctypesz;Scanning %s for ctypes-based references to shared libraries)Nr   z2Ignoring %s found via ctypes - not a valid binary!zFailed to scan the module 'z#'. This is a bug. Please report it.c              3   .   #    U  H  u  pXS 4v   M     g7f)r   Nr   ).0destsources      rB   	<genexpr>$Analysis.assemble.<locals>.<genexpr>  s      k0int  00is   PYSOURCEz
PYSOURCE-1z
PYSOURCE-2)r   r   r   r   workpath_pyi_gschema_compilationzModule collection settings: %rzlTarget optimization level %d matches run-time optimization level %d - using modulegraph's code-object cache.ztTarget optimization level %d differs from run-time optimization level %d - ignoring modulegraph's code-object cache.c              3   8   #    U  H  oR                   v   M     g 7fr.   )
identifier)r#  nodes     rB   r&  r'  ^  s     P7Ot??7Os   	localpycsPYMODULEFz
PYMODULE-1z
PYMODULE-2T)N-z.pyczSCannot collect source .py file for module %r - module is available only as .pyc: %rr   r   r   )r)  r  
code_cachezbase_library.zipzCreating %s...r1  zLooking for dynamic librariesz.hmac	fipscheckz.chkz	.DS_Storez(Failed to query macOS SDK version of %r!)exc_infounavailable)
   	   r   zJFound one or more binaries with invalid or incompatible macOS SDK version:z# * %r, collected as %r; version: %rzOThese binaries will likely cause issues with code-signing and hardened runtime!)jr   r   r6   r   r"   get_python_library_pathtocbasenamer  r   rT   r#   r   graphr   r   r   r   r   rh   scan_legacy_namespace_packagesr    osxutilsis_framework_bundle_libr   PurePathrelative_toparentrg   r|   rj   basenamer   
add_scriptadd_hiddenimportsr   process_post_graph_hooksmake_hook_binaries_tocmake_hook_datas_tocr   r   r   r   classify_binary_vs_dataget_code_usingitemsr%   r}   rR   rN   RuntimeErrorrS   r   metadata_requiredanalyze_runtime_hooksr   nodes_to_tocr   make_binaries_toc	enumerater   r+   rO   r   make_pure_toc_module_collection_moder   r   rm   r   get_code_objects_base_modulesr   r   r   r   r  r   splitextlowerreplacesepr   r   r   remover   r   idget_collected_packagesr   _bindepend_symlink_suppressionr   r   r   r   r!   r   	with_namer<   is_filewith_suffixr   $collect_files_from_framework_bundles_write_warnings_write_graph_debugget_macos_sdk_version)1r  r   
python_libmentrysrc_pathdst_pathprogram_scriptsr  combined_tocr  r  typecodedetected_typecodectypes_code_objsr<   coctypes_binariesexrhtook_scripts
rthook_tocprogram_tocoptim_typecodeidxr$  r%  pure_pymodules_tocr1  base_modulesbase_modules_tocpycs_diroptim_levelcollect_modein_pyz	toc_entryr@  ext	dest_pathobj_pathbase_library_zipglobal_code_cache_mapcollected_packagessrc_lib_pathsrc_hmac_pathdest_hmac_pathsrc_chk_pathdest_chk_pathbinaries_with_invalid_sdksdk_versions1                                                    rB   assembleAnalysis.assemble  s    	, 	:;668
5zB)4+;+;<<dmmLALL0145 ($--PTP^P^_
 *.):):;):e):;
,0,@,@A,@5,@A ++

7

 	

113 999*EE ''
3H''(<(<X__=S=S=Z=Z=a=a(bcHMM  #h-X!IJMM  "''"2"2:">Hy!YZMM  "''"2"2:">
H!UV  kkFKK/""4::#8#8#@A "
 	

$$T%7%78 	

++D1 	::<<

djj4466
  %TZZ$--%?@NPST`Pab
-9)I ) A A( K ,$0LLJH`q - 22$$i8%DE

!!9"AB .:$ 	-.::44X>(..0HD"LLVX\]t"6r": 695I1I 88BJZZ'[]ef MM(()x)HI 6J 1  	

 k0I$**JfJfJh0ik 	k 99$:S:ST ZZ,,^<
 jj--o>'L\J4==YXcdXc<TDHh7Xcd!K/$T\\2 	5577 .7t}}-E)C)$;&1$ID"&!9DMM#	 .F #4::.
%dmm4 /tzz277<<ZHXZt;uv
"4::.
 499~"""!ZZ557 	

**11$2M2MN5tzz7Y7YZ ==CII...LL		""	 446JLL%		""	 J Ptzz7O7OPP77<<Z 0+>mm(:$DHz)))6tzz7Y7Y[_aoaopL F$((L8%/L\!RS^!_!^<	<'$++I6II$$Y/!F
 ))00$(1KL ;& %''<7 " 0 01A1A(1K L#99;&(NNm 
  LLbff5	z)*!4s!::I$I

!!9h"?@ %((L8 " 0 01A1A(1K L# LLbff5	z)*!44I V#	 ,WW\\(C4DE() 

!!9h"?@ );F 77<<Z(8:LM77>>*++II&'KK("''*:*:;K*LM#$46F
SJJrww//0@ACSU[\] &dii0	 	, $\ 2/9bm, 	34!ZZ>>@$T]]4F

HqHqr	

 6<T]]KDMx I$-- X
 815-	X#::&||H5 !- 6 6<;L;L:MU7S T ((**%,%5%5i%@%J%J=K]K]%^NJJ%%s>':C<NPV&WX !- 3 3k A|GXGXFYY^D_ _ ((**%,%5%5k%B]EWEW%WNJJ%%s>':C<NPV&WX  ,77?''))$+$4$4Y$?$I$I,J[J[$\MJJ%%s='93|;Lf&UV- 2?8 %TZZ$--%?@1,? 9HII,WWL
!E,1)I22$$U+

!!%( " 9_c_i_i H_i>[iS[WW--h7;F :99_i HDJ 	! 9(*%15-	X"*"@"@"JK +-44i;5WX 2? )kl8Q4INN#H(_jk 9Rpq	 ) W <AT  t"%@Fi#jkqsst( e@H" ! NN#MxbfNg-44i=5YZs\   #AC*AC/
A/AC44AD*AD@ADAAD$C4
ADC>ADDADD$2AEEAEc                   ^ S mSSK Jn  U R                  R                  5       n[	        US   SSS9 nUR                  [        5        U HH  u  pEnU R                  R                  U5      n[        USUS	S
R                  U4S jU 5       5      US9  MJ     SSS5        [        R                  SUS   5        g! , (       d  f       N(= f)zy
Write warnings about missing modules. Get them from the graph and use the graph to figure out who tried to
import them.
c                     U(       a  US:X  a  SnO,UR                   SUR                  -  -   SUR                  -  -   nU < S[        U   < S3$ )Ndirectr   r      z ())r1   function	tryexceptIMPORT_TYPES)r<   dep_infoimptypes      rB   dependency_description8Analysis._write_warnings.<locals>.dependency_description*  sL    x83#//!h6G6G2GG!hN`N`J`` $l7&;<<rE   r   r   warnfilewutf-8encodingzmodule namedz- imported byz, c              3   8   >#    U  H  u  pT" X5      v   M     g 7fr.   r   )r#  r<   r  r  s      rB   r&  +Analysis._write_warnings.<locals>.<genexpr><  s     ]S\ZT4T@@S\s   )fileNzWarnings written to %s)r   r   r9  make_missing_tocopenwriteWARNFILE_HEADERget_importersprintrO   r6   r   )	r  r   miss_tocwfnr  status	importersr  s	           @rB   r_  Analysis._write_warnings%  s    
	= 	,::..0$z"C':bHH_%"*v JJ44Q7	"#II]S\]] #+ ; 	,d:.>? ;:s   A$B99
Cc                    SSK Jn  [        US   SSS9 nU R                  R	                  U5        [
        R                  SUS   5        SSS5        [
        R                  5       [        R                  :  a  g[        US	   SSS9 nU R                  R                  U5        [
        R                  S
US	   5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)zQ
Write a xref (in html) and with `--log-level DEBUG` a dot-drawing of the graph.
r   r   	xref-filer  r  r  z#Graph cross-reference written to %sNdot-filezGraph drawing written to %s)r   r   r  r9  create_xrefr6   r   getEffectiveLevelr   DEBUGgraphreport)r  r   fhs      rB   r`  Analysis._write_graph_debugA  s     	,${#S7;rJJ""2&KK=tK?PQ < ##%5 $z"C':bJJ""2&KK5tJ7GH ;: <; ;:s   5C5C
C
C$c                     U R                    Vs/ s H   n[        X!=(       d    / 5      (       d  M  UPM"     snU l         gs  snf )a1  
This method may be optionally called from the spec file to exclude any system libraries from the list of
binaries other than those containing the shell-style wildcards in list_of_exceptions. Those that match
'*python*' or are stored under 'lib-dynload' are always treated as exceptions and not excluded.
N)r   r   )r  list_of_exceptionsrd  s      rB   exclude_system_libraries!Analysis.exclude_system_librariesQ  s6      $}}
,e0MeUmkm0nE}
 
s   ??)r   r   r  r   r   r   r   r   r   r9  r   r   r   r   r   r   r  r   r   r   r   r   )NNNNNNNNNFFFNr   r.   )r   r   r   r   r   r'   rj   rh   rO   r   r   r   r   r   r   _GUTSr   r  r  r_  r`  r  r   __classcell__)r  s   @rB   r   r   u  s   & 	BGGLL9oFGBGGLL9oFGBGGLL9jABBGGLL9mDEBGGLL9mDEL  %$#!xv 
>"	>"	.)	n%	'	^$	0	n%	!>2	^$	O,	) 
N+	)*	&'	*+	*+	'( 
 !673E804&Prd@8I 	
 	
rE   r   c                       \ rS rSrSrSrg)ExecutableBuilderi]  z'
Class that constructs the executable.
r   N)r   r   r   r   r   r   r   rE   rB   r  r  ]  s    rE   r  c                    SSK Jn  [        R                  R	                  [        R                  R                  U5      5      n[        R                  R	                  [        R                  R                  U5      5      n[        R                  R	                  U 5      US'   [        R                  R                  US   5      u  US'   US'   [        R                  R                  US   5      S   US'   [        R                  R                  U5      [        :X  aE  [        R                  R                  [        US   [        R                  R                  U5      5      nXS'   [        R                  R                  U5      [        :X  aJ  [        R                  R                  [        US   [        R                  R                  U5      US   5      nO"[        R                  R                  X$S   5      nX$S'   [        R                  R                  USUS   -  5      US	'   [        R                  R                  US
US   -  5      US'   [        R                  R                  USUS   -  5      US'   [        5       US'   U(       a  [        R                  SUS   5        US   U4 H  n[        R                  R                  U5      (       d  M)  [         R                   " US-   5       HU  n[        R                  R#                  U5      (       a  [$        R&                  " U5        M?  [        R(                  " U5        MW     M     US   US   4 H  n[        R*                  " USS9  M     0 SUS   _S[        _SUS   _SUS   _SUS   _SUS	   _SUS   _S[,        _S[.        _S[0        _S[2        _S[4        _S[6        _S[8        _S [:        _S![<        _S"[        _n [?        U S#5       n[A        URC                  5       U S$5      nS%S%S%5        [I        WU5        [        R                  S(US   5        g%! , (       d  f       N4= f! [D         a    [G        S&U  S'35      ef = f))z:
Build the executable according to the created SPEC file.
r   r   r   specpathspecnmdistpathr)  zwarn-%s.txtr  zgraph-%s.dotr  zxref-%s.htmlr  r1  z1Removing temporary files and cleaning cache in %scachedirz/*T)exist_okDISTPATHr   SPECSPECPATHWARNFILEr   r   r   r   r	   r
   r   r   r   rj   rbexecNzERROR: Spec file "z" not found!z0Build complete! The results are available in: %s)%r   r   rj   rh   abspathr   r~   rS  r   r   rO   r@  r   r6   r   r   globisdirshutilrmtreerW  makedirsr   r   r   r   r	   r
   r   r   r   r  compilereadFileNotFoundErrorr   r  )	r   r  r)  clean_buildr   pthfspec_namespacecodes	            rB   buildr  d  s    (
 wwrww11(;<Hwwrww11(;<H77??4(DL')ww}}T&\'B$Dd8nWW%%d8n5a8DN 
wwx H,77<<$x."'':J:J8:TU	wwx H,77<<$x."'':J:J8:TVZ[cVde77<<x.9ww||Hmd8n.LMDww||HntH~.MNDX~X/NODD GjIYZ$h/Cww~~c""3:.Aww}}Q''a(		! / 0 Z $z"23
C$' 4 	D$ 	H	
 	V 	$x. 	D$ 	D$ 	D$ 	s 	H 	& 	7 	s  	!" 	s#$ 	%& 	&'* 	b+N2B$1668T62D 
 	~
KKBDDTU   B-dV<@AABs*   #Q
 /P9Q
 9
QQ
 Q
 
Q$c                    U R                  SS[        SS9  U R                  S[        SS9  U R                  SS	S
SS[        R                  R                  SSS5      -  S9  U R                  SS SS9  U R                  SSS
SSS9  g )Nz
--distpathDIRz.Where to put the bundled app (default: ./dist))metavardefaulthelpz
--workpathzQWhere to put all the temporary work files, .log, .pyz and etc. (default: ./build))r  r  z-yz--noconfirm
store_trueFzFReplace output directory (default: %s) without asking for confirmationr  distSPECNAME)actionr  r  z	--upx-dirz8Path to UPX utility (default: search the execution path)z--cleanr  zCClean PyInstaller cache and remove temporary files before building.)r$  r  r  r  )add_argumentr   r   rj   rh   rO   )parsers    rB   __add_optionsr    s    
 =	    `  
 U
Z45   G  
 R  rE   c                     SSK Jn  X(S'   U c%  SS KJn	  UR	                  U	R                  US95        OUR	                  U 5        UR                  SS5      US'   UR                  SS5      US'   [        XXF5        g )	Nr   r   	noconfirm)upx_dirui_adminFui_uiaccess	ui_access)r   r   PyInstaller.configure	configurer   
get_configro   r  )

pyi_configspecfiler  r  r)  r  r  kwr   r  s
             rB   mainr    st     (! 1I(((9:Jvvj%0D}e4D	(h4rE   )F)]r   r  rj   r   r   r  r   r   rm   r/   r   r   r   r   r   r   PyInstaller.building.apir   r	   r
   r   PyInstaller.building.datastructr   r   r   r   r   r   r   PyInstaller.building.osxr   PyInstaller.building.splashr   PyInstaller.building.utilsr   r   r   r   r   r   r   r   r   rI   r   r   r    r!   PyInstaller.dependr"   rJ   r#   r$   PyInstaller.depend.utilsr%   r&   PyInstaller.utils.miscr'   r(   r)   PyInstaller.utils.hooksr*   PyInstaller.utils.hooks.gir+   PyInstaller.utilsr,   r;  	getLoggerr   r6   rP   
STRINGTYPE	TUPLETYPErthooksrh   rO   _init_code_pathr  r  decorater\   r   IntFlagr   r   r   r   r   r   r  r  r  r  r   rE   rB   <module>r     s    	     	 
 L L & = =   , .  
 E D ( U 9   S S 5 @1			8	$"X
M	
 '',,xA
( 
, ,^tnDLL  !$$ $$

"
"#''*?*B*BB#''*?*B*BB #Le
v e
P XVvJ 5rE   