
                             d dl Z d dlZd dlmZ e j                  d    dk(  Ze j                  d    dk(  ZereZeZ	neZe	Z	ere
ZeZe
fZeZd Zd Zd Zd Zd ZyeZe
ZefZeZd	 Zd
 Zd Zd Zd Zy)    N)Context      c                 "    | j                         S N)decodexs    lib/third_party/dns/_compat.pymaybe_decoder          xxz    c                 "    | j                         S r   )encoder	   s    r   maybe_encoder      r   r   c                     | S r    r	   s    r   	maybe_chrr          r   c                     | S r   r   r	   s    r   	maybe_ordr      r   r   c                     | S r   r   r	   s    r   r   r   %   r   r   c                     | S r   r   r	   s    r   r   r   '   r   r   c                     t        |       S r   )chrr	   s    r   r   r   )       1vr   c                     t        |       S r   )ordr	   s    r   r   r   +   r   r   c           	          t        t        t        t        |                   t        j
                        j                  t        |             }t        |      S )z
    Python 2 and Python 3 use different rounding strategies in round(). This
    function ensures that results are python2/3 compatible and backward
    compatible with previous py2 releases
    :param what: float
    :return: rounded long
    )precrounding)r   lenstrlongdecimalROUND_HALF_UPcreate_decimal)whatds     r   round_py2_compatr*   /   sE     	T$Z!&&	 nSY  7Nr   )sysr%   r   version_infoPY3PY2intr$   rangexranger#   	text_typebytesbinary_typestring_typesr   unichrr   r   r   r   unicode
basestringr*   r   r   r   <module>r9      s    
  	qQ	qQ DFDF IK6LF&! IKL Fr   