3 i5M C @ s d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ ddlmZ de ekrhej e_eje_ dZdZd Zd d ZG dd d eZdd Zdd ZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG d d! d!ZG d"d# d#ZG d$d% d%Zeej eej!eej"eej#eej$eej%eej&eej'eej(e eej)eej*eej+e eej,e eej-eej.eej/eej0eej1eej2eej3eej4eej5eej6eej7eej8eej9eej:eej;eej<eej=eej>eej?eej@eejAeejBeejCeejDeejEeejFeejGeejHeejIeejJeejKeejLeejMeejNeejOe eejOe eejPe eejQe eejRe eejSe eejTeejUeejVeejWeejXeejYeejZeej[eej\eej]e eej^d&BZ_d'd( Z`d4d*d+Zad,d- Zbd5d.d/Zcd0d1 Zdd2d3 ZedS )6 N )magic)pb)pb2dictencodebytes c C s | d |d B d S )Nr )xyr r /usr/lib/python3.6/images.pyround_up> s r c @ s e Zd Zdd ZdS )MagicExceptionc C s || _ d S )N)r )selfr r r r __init__C s zMagicException.__init__N)__name__ __module____qualname__r r r r r r B s r c C s t jtj| S )z(A helper function to decode base64 data.)base64decodebytesstrencode)datar r r decode_base64_dataG s r c C s | j tjtj| dS )z9A helper function to write base64 encoded data to a file.N)writer r r r )fr r r r write_base64_dataL s r c @ sF e Zd ZdZdddZdddZddd Zd d Zdd Zdd Z dS ) entry_handlerzp Generic class to handle loading/dumping criu images entries from/to bin format to/from dict(json). Nc C s || _ || _dS )z= Sets payload class and extra handler class. N)payload extra_handler)r r r r r r r Y s zentry_handler.__init__Fc C s g }xi }| j }|jd}t|dkr*P tjd|\}|j|j| tj||}| jr|rdd } | jj||} d| | |d<