
    i)                     Z    S SK rS SKrSrSrSrS rSrS rS r	SS jr
S	 rSS
 jrS rS rg)    N         sz  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></supportedOS>
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></supportedOS>
    </application>
  </compatibility>
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
    </windowsSettings>
  </application>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
</assembly>
c                     U R                    Vs/ s HJ  o"R                  [        R                  R                  R
                  :X  d  M6  UR                  U:X  d  MH  UPML     sn$ s  snf )z@
Find all elements with given tag under the given root element.
)
childNodesnodeTypexmldomNodeELEMENT_NODEtagName)roottagnodes      PC:\des-py\RoboSAPF\venv\Lib\site-packages\PyInstaller\utils\win32\winmanifest.py_find_elements_by_tagr   >   sH     "__s_TAZAZ0ZD_c_k_kor_rD_ssss   5A#A#A#c                     [        X5      n[        U5      S:  a  [        SU< S[        U5       S35      eU(       d  gUS   $ )z
Attempt to find a single element with given tag under the given root element, and return None if no such element
is found. Raises an error if multiple elements are found.
r   zExpected a single z element, found z element(s)!Nr   )r   len
ValueError)r   r   elementss      r   _find_element_by_tagr   E   sK    
 %T/H
8}q-cW4DS]OS_`aaA;    c                 F   [        US5      nU(       d4  U R                  S5      nUR                  SS5        UR                  U5        [        US5      nU(       d"  U R                  S5      nUR                  U5        [        US5      nU(       d"  U R                  S5      nUR                  U5        [        US5      nU(       d"  U R                  S5      nUR                  U5        UR                  SU(       a  SOS	5        UR                  S
U(       a  S5        gS5        g)z
Find <security> -> <requestedPrivileges> -> <requestedExecutionLevel> element, and set its `level` and `uiAccess`
attributes based on supplied arguments. Create the XML elements if necessary, as they are optional.
	trustInfoxmlnsz urn:schemas-microsoft-com:asm.v3securityrequestedPrivilegesrequestedExecutionLevellevelrequireAdministrator	asInvokeruiAccesstruefalseN)r   createElementsetAttributeappendChild)manifest_domroot_element	uac_adminuac_uiaccesstrust_info_elementsecurity_elementrequested_privileges_element!requested_execution_level_elements           r   _set_execution_levelr0   U   s    .lKH)77D''1ST  !34 ,,>
K'55jA&&'78 $88HJ_#` ''3'A'ABW'X$$$%AB )==Y[t(u%,,8,F,FG`,a)$001RS%227V_<Repq%22:vc[bcr   c                 D   [        US5      nU H<  n[        US5      n[        US5      nUR                  S   R                  S:X  d  M:  Un  Oh   U R	                  S5      nUR                  U5        U R	                  S5      nUR                  U5        U R	                  S5      nUR                  U5        UR                  SS5        UR                  SS5        UR                  SS	5        UR                  S
S5        UR                  SS5        UR                  SS5        g)a  
Scan <dependency> elements for the one whose <<dependentAssembly> -> <assemblyIdentity> corresponds to the
`Microsoft.Windows.Common-Controls`. If found, overwrite its properties. If not, create new <dependency>
element with corresponding sub-elements and attributes.

dependencydependentAssemblyassemblyIdentitynamez!Microsoft.Windows.Common-Controlstypewin32versionz6.0.0.0processorArchitecture*publicKeyToken6595b64144ccf1dflanguageN)r   r   
attributesvaluer%   r'   r&   )r(   r)   dependency_elementsdependency_elementdependent_assembly_elementassembly_identity_elementcommon_controls_elements          r   "_ensure_common_controls_dependencyrE   x   s%    0lK1%9:LNa%b"$89SUg$h!$//7==Add&?# 2 *77E  !34%1%?%?@S%T"&&'AB"."<"<=O"P"../FG((9((1TU((I>(()@#F(()9;MN((S9r   c                 ,   U c  [         n [        R                  R                  R	                  U 5       nUR
                  nUR                  S:X  d   eUR                  S:X  d   eUR                  S   R                  S:X  d   e[        X4X5        [        X45        UR                  SSS9nSSS5        WR                  5        Vs/ s H  ofR                  5       (       d  M  UPM     nnS	US
'   SR                  U5      nU$ ! , (       d  f       N\= fs  snf )a  
Create application manifest, from built-in or custom manifest XML template. If provided, `manifest_xml` must be
a string or byte string containing XML source. The returned manifest is a byte string, encoded in UTF-8.

This function sets the attributes of `requestedExecutionLevel` based on provided `uac_admin` and `auc_uiacces`
arguments (creating the parent elements in the XML, if necessary). It also scans `dependency` elements for the
entry corresponding to `Microsoft.Windows.Common-Controls` and creates or modifies it as necessary.
Nassemblyz urn:schemas-microsoft-com:asm.v1manifestVersionz1.0z  zUTF-8)indentencodings7   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>r      
)_DEFAULT_MANIFEST_XMLr	   r
   minidomparseStringdocumentElementr   namespaceURIr>   r?   r0   rE   toprettyxml
splitlinesstripjoin)manifest_xmlr*   r+   r(   r)   outputlines          r   create_application_manifestrX      s    ,		$	$\	2l#33 ##z111((,NNNN&&'89??5HHH 	\Q*<F )))H 
3   &002C2tjjld2FC OF1IZZFM1 
3	2  Ds   A7D D D 
Dc                 \    SSK Jn  [        /n[        S/nUR	                  X[
        X45        g)zN
Write the given manifest XML to the given executable's RT_MANIFEST resource.
r   winresourcer:   N)PyInstaller.utils.win32r[   "CREATEPROCESS_MANIFEST_RESOURCE_IDLANG_NEUTRALadd_or_update_resourceRT_MANIFEST)filenamerU   r[   names	languagess        r   write_manifest_to_executablerd      s/     4 00E s#I&&x{E]r   c                 B   SSK Jn  UR                  U [        /5      n[        U;  a  [	        SU < S35      eU[           n[
        U;  a  [	        SU < S35      eU[
           n[        U;   a  U[           nUnU$ [        [        UR                  5       5      5      nUnU$ )z+
Read manifest from the given executable."
r   rZ   z"No RT_MANIFEST resources found in .zJNo RT_MANIFEST resource named CREATEPROCESS_MANIFEST_RESOURCE_ID found in )
r\   r[   get_resourcesr`   r   r]   r^   nextiteritems)ra   r[   	resourcesrU   s       r   read_manifest_from_executablerl      s     4))([MBI )#=h\KLL+&I *:efneqqrstt<=I y l+	 L ioo/01	Lr   )FF)NFF)xml.domr	   xml.dom.minidomr`   r]   #ISOLATIONAWARE_MANIFEST_RESOURCE_IDr^   rL   r   r   r0   rE   rX   rd   rl    r   r   <module>rq      s[       &' "&' #
 Ft
  dF":J%P^ r   