3 i5M ã C @ sŽ d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ ddlmZ de eƒkrhej e_eje_ dZdZd Zd d„ ZG dd „ d eƒZdd„ Zdd„ ZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG 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/ƒ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é é é c C s | d |d B d S )Nr © )ÚxÚyr r ú/usr/lib/python3.6/images.pyÚround_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.)Úbase64ÚdecodebytesÚstrÚencode)Ú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 ZdZddd„Zddd„Zddd „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 }x i }| j ƒ }|jdƒ}t|ƒdkr*P tjd|ƒ\}|j|j|ƒƒ tj||ƒ}| jr˜|r†dd„ } | jj||ƒ} d| | ƒ |d<