PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Notice: ob_end_clean(): Failed to delete buffer. No buffer to delete in /home/mazaqgee/jamerehmat.com/xcr.php on line 8
$#$#$#

Dir : /lib/python3.6/site-packages/pycriu/images/__pycache__/
Server: Linux premium155.web-hosting.com 4.18.0-553.89.1.lve.el8.x86_64 #1 SMP Wed Dec 10 13:58:50 UTC 2025 x86_64
IP: 162.0.235.198
Choose File :

Url:
Dir : //lib/python3.6/site-packages/pycriu/images/__pycache__/images.cpython-36.pyc

3


i5M�C@s�ddlZddlZddlZddlZddlZddlmZddlmZddlmZde	e�krhej
e_eje_
dZdZd	Zd
d�ZGdd
�d
e�Zdd�Zdd�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGd d!�d!�ZGd"d#�d#�ZGd$d%�d%�Zeej �eej!�eej"�eej#�eej$�eej%�eej&�eej'�eej(�e�eej)�eej*�eej+e��eej,�e�eej-�eej.�eej/�eej0�eej1�eej2�eej3�eej4�eej5�eej6�eej7�eej8�eej9�eej:�eej;�eej<�eej=�eej>�eej?�eej@�eejA�eejB�eejC�eejD�eejE�eejF�eejG�eejH�eejI�eejJ�eejK�eejL�eejM�eejN�eejOe��eejOe��eejPe��eejQe��eejRe��eejSe��eejT�eejU�eejV�eejW�eejX�eejY�eejZ�eej[�eej\�eej]e��eej^�d&�BZ_d'd(�Z`d4d*d+�Zad,d-�Zbd5d.d/�Zcd0d1�Zdd2d3�ZedS)6�N�)�magic)�pb)�pb2dict�encodebytes���cCs|d|dBdS)Nr�)�x�yr
r
�/usr/lib/python3.6/images.py�round_up>src@seZdZdd�ZdS)�MagicExceptioncCs
||_dS)N)r)�selfrr
r
r
�__init__CszMagicException.__init__N)�__name__�
__module__�__qualname__rr
r
r
r
rBsrcCstjtj|��S)z(A helper function to decode base64 data.)�base64�decodebytes�str�encode)�datar
r
r
�decode_base64_dataGsrcCs|jtjtj|���dS)z9A helper function to write base64 encoded data to a file.N)�writerrrr)�frr
r
r
�write_base64_dataLsrc@sFeZdZdZddd�Zddd�Zddd	�Zd
d�Zdd
�Zdd�Z	dS)�
entry_handlerzp
    Generic class to handle loading/dumping criu images
    entries from/to bin format to/from dict(json).
    NcCs||_||_dS)z=
        Sets payload class and extra handler class.
        N)�payload�
extra_handler)rrr r
r
r
rYszentry_handler.__init__FcCs�g}x�i}|j�}|jd�}t|�dkr*Ptjd|�\}|j|j|��tj||�}|jr�|r�dd�}	|jj||�}
d|	|
�|d<n|jj	||�|d<|j
|�qW|S)z�
        Convert criu image entries from binary format to dict(json).
        Takes a file-like object and returns a list with entries in
        dict(json) format.
        rr�icSsJx@d
D]8}|d	kr6t|�|kr*d
||fSd||fS|d	}qWd|S)N��K�M�G�T�P�E�Zg�@z%d%sBz%.1f%sBz%.1fYB)r"r#r$r%r&r'r(r))�int)ZnumZunitr
r
r
�human_readablexs
z*entry_handler.load.<locals>.human_readablez... <%s>�extra)r�read�len�struct�unpack�ParseFromStringrr �skip�load�append)rr�pretty�
no_payload�entries�entry�pbuff�buf�sizer+Zpl_sizer
r
r
r3`s$

zentry_handler.loadcCstj|�}|j||�S)zD
        Same as load(), but takes a string as an argument.
        )�io�BytesIOr3)r�sr5rr
r
r
�loads�s
zentry_handler.loadscCsxxr|D]j}|jdd�}|j�}tj||�|j�}t|�}|jtjd|��|j|�|j	r|r|j	j
|||�qWdS)z�
        Convert criu image entries from dict(json) format to binary.
        Takes a list of entries and a file-like object to write entries
        in binary format to.
        r,Nr!)�poprr�dict2pb�SerializeToStringr.rr/�packr �dump)rr7rr8r,r9�pb_strr;r
r
r
rD�s


zentry_handler.dumpcCstjd�}|j||�|j�S)zf
        Same as dump(), but doesn't take file-like object and just
        returns a string.
        r")r<r=rDr-)rr7rr
r
r
�dumps�s
zentry_handler.dumpscCsHd}x>|jd�}t|�dkrPtjd|�\}|j|d�|d7}qW|S)zI
        Counts the number of top-level object in the image file
        rrr!r)r-r.r/r0�seek)rrr7r:r;r
r
r
�count�s
zentry_handler.count)N)FF)F)
rrr�__doc__rr3r?rDrFrHr
r
r
r
rSs

+
	rc@s<eZdZdZddd�Zddd�Zdd�Zd	d
�Zdd�Zd
S)�pagemap_handlerz�
    Special entry handler for pagemap.img, which is unique in a way
    that it has a header of pagemap_head type followed by entries
    of pagemap_entry type.
    FcCsfg}tj�}xT|jd�}t|�dkr&Ptjd|�\}|j|j|��|jtj||��tj	�}qW|S)Nrrr!)
r�pagemap_headr-r.r/r0r1r4r�
pagemap_entry)rrr5r6r7r9r:r;r
r
r
r3�s
zpagemap_handler.loadcCstj|�}|j||�S)N)r<r=r3)rr>r5rr
r
r
r?�s
zpagemap_handler.loadscCsZtj�}xL|D]D}tj||�|j�}t|�}|jtjd|��|j|�tj	�}qWdS)Nr!)
rrKrrArBr.rr/rCrL)rr7rr9�itemrEr;r
r
r
rD�s

zpagemap_handler.dumpcCstjd�}|j||�|j�S)Nr")r<r=rDr-)rr7rr
r
r
rF�s
zpagemap_handler.dumpscCstd�j|�dS)Nr)rrH)rrr
r
r
rH�szpagemap_handler.countN)FF)F)	rrrrIr3r?rDrFrHr
r
r
r
rJ�s

rJc@s0eZdZddd�Zddd�Zdd�Zdd	�Zd
S)
�ghost_file_handlerFcCsg}tj�}|jd�}tjd|�\}|j|j|��tj||�}|jr�|j|�x�tj	�}	|jd�}t
|�dkrrPtjd|�\}|	j|j|��tj|	|�}
|r�|j|	j
tj
�ntj|j|	j
��jd�|
d<|j|
�qRWn6|r�|jdtj�ntj|j��jd�|d<|j|�|S)Nrr!rzutf-8r,)r�ghost_file_entryr-r/r0r1r�chunksr4�ghost_chunk_entryr.rG�os�SEEK_CURrr�decode�SEEK_END)rrr5r6r7Zgfr:r;Zg_entry�gcr8r
r
r
r3�s2



zghost_file_handler.loadcCstj|�}|j||�S)N)r<r=r3)rr>r5rr
r
r
r?s
zghost_file_handler.loadscCs�tj�}|jd�}tj||�|j�}t|�}|jtj	d|��|j|�|j
r�xj|D]R}tj�}tj||�|j�}t|�}|jtj	d|��|j|�t||d�qVWnt||d�dS)Nrr!r,)
rrOr@rrArBr.rr/rCrPrQr)rr7rr9rMrEr;r
r
r
rDs"



zghost_file_handler.dumpcCstjd�}|j||�|j�S)Nr")r<r=rDr-)rr7rr
r
r
rF-s
zghost_file_handler.dumpsN)FF)F)rrrr3r?rDrFr
r
r
r
rN�s
!
rNc@s$eZdZdd�Zdd�Zdd�ZdS)�pipes_data_extra_handlercCs |j}|j|�}tj|�jd�S)Nzutf-8)�bytesr-rrrT)rr�ploadr;rr
r
r
r3:s
zpipes_data_extra_handler.loadcCst|�}|j|�dS)N)rr)rr,rrYrr
r
r
rD?szpipes_data_extra_handler.dumpcCs|j|jtj�|jS)N)rGrXrRrS)rrrYr
r
r
r2Cszpipes_data_extra_handler.skipN)rrrr3rDr2r
r
r
r
rW9srWc@s$eZdZdd�Zdd�Zdd�ZdS)�sk_queues_extra_handlercCs |j}|j|�}tj|�jd�S)Nzutf-8)�lengthr-rrrT)rrrYr;rr
r
r
r3Is
zsk_queues_extra_handler.loadcCst|�}|j|�dS)N)rr)rr,r�_unusedrr
r
r
rDNszsk_queues_extra_handler.dumpcCs|j|jtj�|jS)N)rGr[rRrS)rrrYr
r
r
r2Rszsk_queues_extra_handler.skipN)rrrr3rDr2r
r
r
r
rZHsrZc@s$eZdZdd�Zdd�Zdd�ZdS)�tcp_stream_extra_handlercCsHi}|j|j�}|j|j�}tj|�jd�|d<tj|�jd�|d<|S)Nzutf-8�inq�outq)r-�inq_len�outq_lenrrrT)rrr9�dr^r_r
r
r
r3Xsztcp_stream_extra_handler.loadcCs0t|d�}t|d�}|j|�|j|�dS)Nr^r_)rr)rr,rr\r^r_r
r
r
rDcs
ztcp_stream_extra_handler.dumpcCs|jdtj�|j|jS)Nr)rGrRrUr`ra)rrr9r
r
r
r2jsztcp_stream_extra_handler.skipN)rrrr3rDr2r
r
r
r
r]Wsr]c@s$eZdZdd�Zdd�Zdd�ZdS)�bpfmap_data_extra_handlercCs&|j|j}|j|�}tj|�jd�S)Nzutf-8)Z
keys_bytesZvalues_bytesr-rrrT)rrrYr;rr
r
r
r3ps
zbpfmap_data_extra_handler.loadcCstj|�}|j|�dS)N)rrr)rr,rrYrr
r
r
rDus
zbpfmap_data_extra_handler.dumpcCs|j|jtj�|jS)N)rGrXrRrS)rrrYr
r
r
r2yszbpfmap_data_extra_handler.skipN)rrrr3rDr2r
r
r
r
rcosrcc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�ipc_sem_set_handlercCsPtj|�}t|d}t|t�}|j�}|j|j|��|j||d�|j�S)N�nsemsr)	r�
sizeof_u16r�
sizeof_u64�_get_sem_arrayZ	frombytesr-rG�tolist)rrr9r8r;�roundedr>r
r
r
r3s

zipc_sem_set_handler.loadcCsntj|�}t|d}t|t�}|j�}|j|�t|�|dkrJtd��|j|j	��|jd||�dS)NrezNumber of semaphores mismatch�)
rrfrrgrh�fromlistr.�	Exceptionr�tobytes)rr,rr9r8r;rjr>r
r
r
rD�s


zipc_sem_set_handler.dumpcCs.tj|�}t|d}|jt|t�tj�|S)Nre)rrfrGrrgrRrS)rrr9r8r;r
r
r
r2�s
zipc_sem_set_handler.skipcCs tjd�}|jtkrtd��|S)N�HzArray size mismatch)�array�itemsizerfrm)rr>r
r
r
rh�s

z"ipc_sem_set_handler._get_sem_arrayN)rrrr3rDr2rhr
r
r
r
rd~s	rdc@s.eZdZdd�Zdd�Zdd�Zddd	�Zd
S)�ipc_msg_queue_handlercCs|j||�\}}|S)N)�_read_messages)rrr9�messages�_r
r
r
r3�szipc_msg_queue_handler.loadc
Cs�x�tdt|�d�D]�}tj�}tj|||�|j�}t|�}|jtj	d|��|j|�t
|jt�}t
||d�}	|j|	d|j��|jd||j�qWdS)Nrrr!rrk)�ranger.r�ipc_msgrrArBrr/rCr�msizergr)
rr,rr9r!�msgZmsg_strr;rjrr
r
r
rD�s
zipc_msg_queue_handler.dumpcCs|j||dd�\}}|S)NT)�	skip_data)rs)rrr9ru�pl_lenr
r
r
r2�szipc_msg_queue_handler.skipFc
Cs�tj|�}g}d}x�td|d�D]�}|jd�}t|�dkr>Ptjd|�\}	tj�}
|
j|j|	��t	|
j
t�}||	|
j
7}|r�|j|t
j�q"|j|
j
�}|j||
j
d�|jtj|
��|jtj|�jd��q"W||fS)NrZqnumrr!rzutf-8)rrvr-r.r/r0rrwr1rrxrgrGrRrSr4rrrT)
rrr9rzr8rtr{rr:r;ryrjrr
r
r
rs�s&

z$ipc_msg_queue_handler._read_messagesN)F)rrrr3rDr2rsr
r
r
r
rr�s
rrc@s$eZdZdd�Zdd�Zdd�ZdS)�ipc_shm_handlercCsFtj|�}|d}|j|�}t|t�}|j||d�tj|�jd�S)Nr;rzutf-8)rr-r�
sizeof_u32rGrrrT)rrr9r8r;rrjr
r
r
r3�s


zipc_shm_handler.loadcCsNtj|�}|d}tj|�}t|t�}|j|d|��|jd||�dS)Nr;rk)rrrrr}r)rr,rr9r8r;rrjr
r
r
rD�s


zipc_shm_handler.dumpcCs.tj|�}|d}t|t�}|j|tj�|S)Nr;)rrr}rGrRrS)rrr9r8r;rjr
r
r
r2�s


zipc_shm_handler.skipN)rrrr3rDr2r
r
r
r
r|�sr|)B�	INVENTORYZCOREZIDSZCREDSZUTSNSZTIMENSZPIDNSZIPC_VARZFSZ
GHOST_FILEZMMZCGROUPZ
TCP_STREAM�STATSZPAGEMAPZPSTREEZ	REG_FILESZNS_FILESZEVENTFD_FILEZEVENTPOLL_FILEZ
EVENTPOLL_TFDZSIGNALFDZTIMERFDZINOTIFY_FILEZ
INOTIFY_WDZ
FANOTIFY_FILEZ
FANOTIFY_MARKZVMASZPIPESZFIFOZSIGACTZ
NETLINK_SKZREMAP_FPATHZMNTSZ	TTY_FILESZTTY_INFOZTTY_DATAZRLIMITZTUNFILEZ	EXT_FILES�IRMAP_CACHEZ
FILE_LOCKSZFDINFOZUNIXSKZINETSKZPACKETSKZITIMERSZPOSIX_TIMERSZNETDEVZ
PIPES_DATAZ	FIFO_DATAZ	SK_QUEUESZ	IPCNS_SHMZ	IPCNS_SEMZ	IPCNS_MSGZNETNSZUSERNSZSECCOMPZAUTOFSZFILESZCPUINFOZ
MEMFD_FILEZMEMFD_INODEZBPFMAP_FILEZBPFMAP_DATAZAPPARMORcCs�tjd|jd��\}|tjdtjdfkr@tjd|jd��\}ytj|}Wntk
rjt|��YnXyt|}Wn tk
r�td|��YnX||fS)Nr!r�
IMG_COMMON�IMG_SERVICEz&No handler found for image with magic )	r/r0r-r�by_nameZby_valrmr�handlers)rZ	img_magic�m�handlerr
r
r
�
__rhandler1s
r�FcCs.i}t|�\}}||d<|j|||�|d<|S)z�
    Convert criu image from binary format to dict(json).
    Takes a file-like object to read criu image from.
    Returns criu image in dict(json) format.
    rr7)r�r3)rr5r6Zimager�r�r
r
r
r3Es
r3cCs*i}t|�\}}||d<|j|�|d<|S)NrrH)r�rH)r�resr�r�r
r
r
�infoUs
r�cCstj|�}t||�S)z-
    Same as load(), but takes a string.
    )r<r=r3)r>r5rr
r
r
r?`s
r?cCs�|d}tj|d}|dkrX|dkr@|jtjdtjd��n|jtjdtjd��|jtjd|��yt|}Wntk
r�td��YnX|j|d	|�d
S)z�
    Convert criu image from dict(json) format to binary.
    Takes an image in dict(json) format and file-like
    object to write to.
    rr~rr�r!r�r�z*No handler found for image with such magicr7N)rr�)rr�rr/rCr�rmrD)�imgrr�Z	magic_valr�r
r
r
rDhsrDcCstjd�}t||�|j�S)zK
    Same as dump(), but takes only an image and returns
    a string.
    �)r<r=rD�getvalue)r�rr
r
r
rF�s

rF)FF)F)fr<rr/rRrpr"rrr�dirZencodestringrZdecodestringrrfr}rgrrmrrrrrJrNrWrZr]rcrdrrr|Zinventory_entryZ
core_entryZtask_kobj_ids_entryZcreds_entryZutsns_entryZtimens_entryZpidns_entryZ
ipc_var_entryZfs_entryZmm_entryZcgroup_entryZtcp_stream_entryZstats_entryZpstree_entryZreg_file_entryZ
ns_file_entryZeventfd_file_entryZeventpoll_file_entryZeventpoll_tfd_entryZsignalfd_entryZ
timerfd_entryZinotify_file_entryZinotify_wd_entryZfanotify_file_entryZfanotify_mark_entryZ	vma_entryZ
pipe_entryZ
fifo_entryZsa_entryZnetlink_sk_entryZremap_file_path_entryZ	mnt_entryZtty_file_entryZtty_info_entryZtty_data_entryZrlimit_entryZ
tunfile_entryZext_file_entryZirmap_cache_entryZfile_lock_entryZfdinfo_entryZ
unix_sk_entryZ
inet_sk_entryZpacket_sock_entryZitimer_entryZposix_timer_entryZnet_device_entryZpipe_data_entryZsk_packet_entryZ
ipc_shm_entryZ
ipc_sem_entryZ
ipc_msg_entryZnetns_entryZuserns_entryZ
seccomp_entryZautofs_entryZ
file_entryZ
cpuinfo_entryZmemfd_file_entryZmemfd_inode_entryZbpfmap_file_entryZbpfmap_data_entryZapparmor_entryr�r�r3r�r?rDrFr
r
r
r
�<module>(s�o0G"/