Ñò
Å	ÿTc           @   s   d  d k  Z  d  d k Z d  d k Z d  d k Td  d k l Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d S(   iÿÿÿÿN(   t   *(   t	   randrangec         c   s5   |  i  } x% | d j o | d @V| d L} q Wd  S(   Ni    Iÿÿÿÿ    i    (   t   int(   t   uuidt   uuidInt(    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt   chunkInt   s
    	 	c         C   s   |  | >|  d | ?Bd @S(   Ni    Iÿÿÿÿ    (    (   t   origt   count(    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt   rotl   s    c         C   s   |  | ?|  d | >Bd @S(   Ni    Iÿÿÿÿ    (    (   R   R   (    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt   rotr   s    c         C   s.   x' t  | ƒ D] } t |  t d ƒ ƒ q Wd  S(   NIÿÿÿÿ    (   t   ranget	   writelineR   (   t   fR   t   i(    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt	   writerand   s     c         C   s   |  i  d i | ƒ ƒ d  S(   Ns	   {0:010d}
(   t   writet   format(   R   t   num(    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyR      s    c      	   C   s®  t  d ƒ } t  d ƒ } | d } t i |  ƒ } t | ƒ } | i ƒ  } | i ƒ  } | i ƒ  }	 | i ƒ  }
 t | d ƒ i i ƒ  } zÝ | ~ } t | d ƒ t	 | t
 |	 | A| ƒ ƒ t	 | | ƒ t | d ƒ t	 | t
 | | A| ƒ ƒ t | d ƒ t	 | t
 | | A| ƒ ƒ t | d ƒ t	 | t
 |
 | A| ƒ ƒ t | d ƒ t	 | | ƒ t | d ƒ Wd  QXt i | ƒ } | t d } | t d } t i | | | f ƒ d  S(	   NIÿÿÿÿ    i    t   wbi   i   i   i   i ^ (   R   R   t   UUIDR   t   nextt   opent   __exit__t	   __enter__R   R   R	   t   ost   statt   ST_ATIMEt   ST_MTIMEt   utime(   t   uuidstrt   filenamet   maskt	   shiftlinet   shiftt   origuuidt   chunkIntGent   chunkonet   chunktwot
   chunkthreet	   chunkfourt   _[1]R   t   stt	   new_atimet	   new_mtime(    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt	   writefile   s4    
&c      
   C   sÒ  d } t  i i |  ƒ oµt |  d ƒ i i ƒ  } zà | ~ } d } xÊ | D]Â } | d j o t | ƒ } n– | d j o t | ƒ } ny | d j o t | ƒ } n\ | d j o t | ƒ }	 n? | d j o t | ƒ }
 n" | d	 j o t | ƒ d
 } n | d 7} qL WWd  QXd i d i t	 |
 | ƒ | Aƒ ƒ } d i d i t	 | | ƒ | Aƒ ƒ } d i d i t	 |	 | ƒ | Aƒ ƒ } d i d i t	 | | ƒ | Aƒ ƒ } t
 i | | | | ƒ i } n | S(   Nt    t   ri   i   i   i   i
   i   i   i    s   {0:08X}(   R   t   patht   isfileR   R   R   t   longt   joinR   R   R   R   t   hex(   t   fileR   R(   R   R   t   linet
   chunkThreeR   t   chunkOnet   chunkTwot	   chunkFourR!   t   hex4t   hex3t   hex2t   hex1(    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt   getUuid?   s2    & %%%%"(   R   R   t   timeR   t   randomR   R   R   R	   R   R   R,   R>   (    (    (    s8   /opt/tandbergtv/cms/conf/workflow/license/lib/obfuuid.pyt   <module>   s   
						%