o
    'h                     @   s   d Z G dd dZdS )z&Serial Number Arthimetic from RFC 1982c                   @   sx   e Zd ZddedefddZdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )Serial    valuebitsc                 C   s   |d|  | _ || _d S )N   r   r   )selfr   r    r   F/var/www/html/olx_land/venv/lib/python3.10/site-packages/dns/serial.py__init__   s   
zSerial.__init__c                 C   s   d| j  d| j dS )Nzdns.serial.Serial(z, )r   )r   r   r   r	   __repr__   s   zSerial.__repr__c                 C   s>   t |trt|| j}nt |tr|j| jkrtS | j|jkS N
isinstanceintr   r   NotImplementedr   r   otherr   r   r	   __eq__   
   
zSerial.__eq__c                 C   s>   t |trt|| j}nt |tr|j| jkrtS | j|jkS r   r   r   r   r   r	   __ne__   r   zSerial.__ne__c                 C   s   t |trt|| j}nt |tr|j| jkrtS | j|jk r.|j| j d| jd  k r.dS | j|jkrC| j|j d| jd  krCdS dS Nr      TFr   r   r   r   r	   __lt__      
&zSerial.__lt__c                 C   s   | |kp| |k S r   r   r   r   r   r	   __le__*      zSerial.__le__c                 C   s   t |trt|| j}nt |tr|j| jkrtS | j|jk r.|j| j d| jd  kr.dS | j|jkrC| j|j d| jd  k rCdS dS r   r   r   r   r   r	   __gt__-   r   zSerial.__gt__c                 C   s   | |kp| |kS r   r   r   r   r   r	   __ge__;   r   zSerial.__ge__c                 C   sl   | j }t|tr|j }n
t|tr|}ntt|d| jd  d kr%t||7 }|d| j  }t|| jS Nr   r   r   r   r   r   
ValueErrorabsr   r   r   vdeltar   r   r	   __add__>      

zSerial.__add__c                 C   sj   | j }t|tr|j }n
t|tr|}ntt|d| jd  d kr%t||7 }|d| j  }|| _ | S r   r    r#   r   r   r	   __iadd__L      

zSerial.__iadd__c                 C   sl   | j }t|tr|j }n
t|tr|}ntt|d| jd  d kr%t||8 }|d| j  }t|| jS r   r    r#   r   r   r	   __sub__[   r'   zSerial.__sub__c                 C   sj   | j }t|tr|j }n
t|tr|}ntt|d| jd  d kr%t||8 }|d| j  }|| _ | S r   r    r#   r   r   r	   __isub__i   r)   zSerial.__isub__N)r   )__name__
__module____qualname__r   r
   r   r   r   r   r   r   r   r&   r(   r*   r+   r   r   r   r	   r      s    r   N)__doc__r   r   r   r   r	   <module>   s   