3
=ÕÇh	  ã               @   s2   d dl Z dd„ Zeƒ Zdd„ Zdd„ Zdd	„ ZdS )
é    Nc              C   s\   d} g }xNt dƒD ]B}|}x.t dƒD ]"}|d@ r>|d? | A }q$|dL }q$W |j|ƒ qW |S )Nl   x;ì é   é   é   )ÚrangeÚappend)ZpolyÚtableÚiÚcrcÚ_© r   ú7/root/work/ibd2sql-ibd2sql-v2.x/ibd2sql/utils/crc32c.pyÚcreate_crc32c_table   s    r   c             C   s2   d}x$| D ]}t ||A d@  |d? A }q
W |dA S )Nl   ÿÿ éÿ   r   )Úcrc32_slice_table)Údatar	   Zbyter   r   r   Úcalculate_crc32c   s    
r   c             C   sœ   | d d… dkr$| dd… dkr$dS t jd| d d… ƒd }t jd| dd… ƒd }t| dd… ƒ}t| d
d… ƒ}||  koŽ||A d@ kn  r˜dS dS )Né   s       é   é   s     Tz>Lr   r   é&   é   é    r   Fiøÿÿÿéüÿÿÿiøÿÿÿl        l   ÿÿ )ÚstructÚunpackr   )r   Zchecksum_field1Zchecksum_field2Úc1Úc2r   r   r   Ú
CHECK_PAGE   s     r   c             C   sT   t | dd… ƒ}t | dd	… ƒ}tjd||A d@ ƒ}|| dd…  | | dd …  S )Nr   r   r   r   z>Lr   r   r   iøÿÿÿl        l   ÿÿ iøÿÿÿr   )r   r   Úpack)r   r   r   Zc3r   r   r   ÚREPACK_PAGE   s    r   )r   r   r   r   r   r   r   r   r   r   Ú<module>   s
   	