
    Xfq	                     Z    d dl Z d dlZd dlmZ d dlmZmZ  G d dej                        Zy)    N)Union)objects
interfacesc                       e Zd Z	 	 ddej                  j
                  deeej                  j                  f   de
de
de
f
dZy)	GenericIntelProcessNcontextdtbconfig_prefixpreferred_namereturnc                    |Ddj                  d t        d      D              }t        j                  j	                  dd|z         }|4|j
                  j                  | j                  j                  dz         }n*||j
                  v r|j
                  j                  |      }|j
                  | j                  j                     }|j                         }|j                  d   |d<   ||d	<   t        j                  j	                  ||      }|j                  j                  ||       |j                  |||
      }	|j
                  j                  |	       |S )zAConstructs a new layer based on the process's DirectoryTableBase. c              3      K   | ]F  }t        j                         j                  t        j                  t        j
                  z          H y w)N)randomSystemRandomchoicestringascii_uppercasedigits).0_s     `/home/panchajanya/Development/work/volatility3/volatility3/framework/symbols/generic/__init__.py	<genexpr>z9GenericIntelProcess._add_process_layer.<locals>.<genexpr>   s;      $ ##%,,V-C-Cfmm-ST$s   AA   	temporaryr   _Process)prefixmemory_layerpage_map_offset)config_pathname)joinranger   configuration	path_joinlayersfree_layer_namevol
layer_namebuild_configurationconfigsplice	__class__	add_layer)
selfr   r	   r
   r   random_prefixparent_layerparent_configr    	new_layers
             r   _add_process_layerz&GenericIntelProcess._add_process_layer   sQ     GG $q$ M '44>>S=0M
 !$^^;;xx**Z7 < N /!(!?!?~!?!V ~~dhh&9&9:$88: )5(;(;N(Kn%+.'( !..88Wk=9 **> + 
	
 	  +    )NN)__name__
__module____qualname__r   r   ContextInterfacer   intr   ObjectInterfacestrr4    r5   r   r   r      sa    
 ""-##44- 3
**:::;- 	-
 - 
-r5   r   )	r   r   typingr   volatility3.frameworkr   r   
StructTyper   r=   r5   r   <module>rA      s%   
    5.',, .r5   