ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
f,  c               @   s   d  Z  d Z d d l Z d d l Z d d l Z d d l Z e e d  sZ e d   n  d d d g Z d a	 d a
 d	 d
   Z d d   Z Gd d   d e  Z d d   Z Gd d   d  Z d d   Z d d   Z e d k r e   n  d S(   u  The Tab Nanny despises ambiguous indentation.  She knows no mercy.

tabnanny -- Detection of ambiguous indentation

For the time being this module is intended to be called as a script.
However it is possible to import it into an IDE and use the function
check() described below.

Warning: The API provided by this module is likely to change in future
releases; such changes may not be backward compatible.
u   6i    Nu   NLu4   tokenize.NL doesn't exist -- tokenize module too oldu   checku   NannyNagu   process_tokensc              G   sK   d } x. |  D]& } t  j j | t |   d } q Wt  j j d  d  S(   Nu    u    u   
(   u   sysu   stderru   writeu   str(   u   argsu   sepu   arg(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   errprint#   s
    
u   errprintc              C   s   y) t  j  t j d d   d  \ }  } Wn6 t  j k
 ra } z t |  d  SWYd  d  } ~ Xn XxF |  D]> \ } } | d k r t d a n  | d k ri t d a qi qi W| s t d t j d d  d  Sx | D] } t |  q Wd  S(   Ni   u   qvu   -qu   -vu   Usage:i    u   [-v] file_or_directory ...(   u   getoptu   sysu   argvu   erroru   errprintu   filename_onlyu   verboseu   check(   u   optsu   argsu   msgu   ou   au   arg(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   main*   s    )
u   mainc             B   sJ   |  Ee  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 S(   u   NannyNagug   
    Raised by tokeneater() if detecting an ambiguous indent.
    Captured and handled in check().
    c             C   s!   | | | |  _  |  _ |  _ d  S(   N(   u   linenou   msgu   line(   u   selfu   linenou   msgu   line(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   __init__A   s    u   NannyNag.__init__c             C   s   |  j  S(   N(   u   lineno(   u   self(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu
   get_linenoC   s    u   NannyNag.get_linenoc             C   s   |  j  S(   N(   u   msg(   u   self(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   get_msgE   s    u   NannyNag.get_msgc             C   s   |  j  S(   N(   u   line(   u   self(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   get_lineG   s    u   NannyNag.get_lineN(   u   __name__u
   __module__u   __qualname__u   __doc__u   __init__u
   get_linenou   get_msgu   get_line(   u
   __locals__(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   NannyNag<   s
   c       	   &   C   s  t  j j |   r t  j j |   r t r? t d |  f  n  t  j |   } xw | D]o } t  j j |  |  } t  j j |  r t  j j |  s t  j j | d d   d k rU t	 |  qU qU Wd Sy t
 j |   } Wn= t k
 r} z t d |  | f  d SWYd d } ~ Xn Xt d k r<t d |   n  zay t t
 j | j   Wn@t
 j k
 r} z t d |  | f  d SWYd d } ~ Xnt k
 r} z t d	 |  | f  d SWYd d } ~ Xn t k
 r} z | j   } | j   } t r?t d
 |  | f  t d | f  t | j    nF d |  k r\d |  d }  n  t rot |   n t |  | t |   d SWYd d } ~ Xn XWd | j   Xt rt d |  f  n  d S(   u~  check(file_or_dir)

    If file_or_dir is a directory and not a symbolic link, then recursively
    descend the directory tree named by file_or_dir, checking all .py files
    along the way. If file_or_dir is an ordinary Python source file, it is
    checked for whitespace related problems. The diagnostic messages are
    written to standard output using the print statement.
    u   %r: listing directoryi   Nu   .pyu   %r: I/O Error: %si   u   checking %r ...u   %r: Token Error: %su   %r: Indentation Error: %su)   %r: *** Line %d: trouble in tab city! ***u   offending line: %ru    u   "u   %r: Clean bill of health.i(   u   osu   pathu   isdiru   islinku   verboseu   printu   listdiru   joinu   normcaseu   checku   tokenizeu   openu   IOErroru   errprintu   process_tokensu   generate_tokensu   readlineu
   TokenErroru   IndentationErroru   NannyNagu
   get_linenou   get_lineu   get_msgu   filename_onlyu   repru   close(	   u   fileu   namesu   nameu   fullnameu   fu   msgu   nagu   badlineu   line(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   checkJ   sT    
%"  c             B   st   |  Ee  Z d  Z d \ Z Z d d   Z d d   Z d d   Z d d	   Z d
 d   Z	 d d   Z
 d d   Z d S(   u
   Whitespaceu    	c       	      C   s  | |  _  t j t j } } g  } d } } } x |  j  D] } | | k rc | d } | d } q: | | k r | d } | d } | t |  k r | d g | t |  d } n  | | d | | <d } q: Pq: W| |  _ | |  _ t |  | f |  _ t |  d k |  _	 d  S(   Ni    i   (
   u   rawu
   Whitespaceu   Su   Tu   lenu   nu   ntu   tupleu   normu	   is_simple(	   u   selfu   wsu   Su   Tu   countu   bu   nu   ntu   ch(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   __init__   s(    	


"			u   Whitespace.__init__c             C   s&   |  j  \ } } t t |  d |  S(   Ni   (   u   normu   maxu   len(   u   selfu   countu   trailing(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   longest_run_of_spaces   s    u    Whitespace.longest_run_of_spacesc             C   s^   |  j  \ } } d } x3 t | t |   D] } | | | | | } q+ W| | | |  j S(   Ni    (   u   normu   rangeu   lenu   nt(   u   selfu   tabsizeu   countu   trailingu   ilu   i(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   indent_level   s
    u   Whitespace.indent_levelc             C   s   |  j  | j  k S(   N(   u   norm(   u   selfu   other(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   equal   s    u   Whitespace.equalc             C   s   t  |  j   | j    d } g  } xd t d | d  D]O } |  j |  | j |  k r9 | j | |  j |  | j |  f  q9 q9 W| S(   Ni   (   u   maxu   longest_run_of_spacesu   rangeu   indent_levelu   append(   u   selfu   otheru   nu   au   ts(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   not_equal_witness   s    	u   Whitespace.not_equal_witnessc             C   s   |  j  | j  k r d S|  j r8 | j r8 |  j | j k St |  j   | j    d } x= t d | d  D]( } |  j |  | j |  k rk d Sqk Wd S(   Ni   i   FT(	   u   nu   Falseu	   is_simpleu   ntu   maxu   longest_run_of_spacesu   rangeu   indent_levelu   True(   u   selfu   otheru   nu   ts(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   less   s    u   Whitespace.lessc             C   s   t  |  j   | j    d } g  } xd t d | d  D]O } |  j |  | j |  k r9 | j | |  j |  | j |  f  q9 q9 W| S(   Ni   (   u   maxu   longest_run_of_spacesu   rangeu   indent_levelu   append(   u   selfu   otheru   nu   au   ts(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   not_less_witness  s    	u   Whitespace.not_less_witnessN(   u   __name__u
   __module__u   __qualname__u   Su   Tu   __init__u   longest_run_of_spacesu   indent_levelu   equalu   not_equal_witnessu   lessu   not_less_witness(   u
   __locals__(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu
   Whitespace   s   u
   Whitespacec             C   sM   d d   |  D } d } t  |   d k r8 | d } n  | d d j |  S(   Nc             s   s   |  ] } t  | d   Vq d S(   i    N(   u   str(   u   .0u   tup(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu	   <genexpr>  s    u#   format_witnesses.<locals>.<genexpr>u   at tab sizei   u   su    u   , (   u   lenu   join(   u   wu   firstsu   prefix(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   format_witnesses  s
    u   format_witnessesc             C   s  t  j } t  j } t  j } t  j t  j f } t d  g } d } xA|  D]9\ } } }	 }
 } | | k rs d } qI | | k r d } t |  } | d j |  s | d j |  } d t	 |  } t
 |	 d | |   n  | j |  qI | | k rd } | d =qI | rI | | k rI d } t |  } | d	 j |  s| d
 j |  } d t	 |  } t
 |	 d | |   qqI qI Wd  S(   Nu    i    i   u   indent not greater e.g. u   indent not equal e.g. iiiii(   u   tokenizeu   INDENTu   DEDENTu   NEWLINEu   COMMENTu   NLu
   Whitespaceu   lessu   not_less_witnessu   format_witnessesu   NannyNagu   appendu   equalu   not_equal_witness(   u   tokensu   INDENTu   DEDENTu   NEWLINEu   JUNKu   indentsu   check_equalu   typeu   tokenu   startu   endu   lineu   thisguyu   witnessu   msg(    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   process_tokens  s6    				

u   __main__(   u   __doc__u   __version__u   osu   sysu   getoptu   tokenizeu   hasattru
   ValueErroru   __all__u   verboseu   filename_onlyu   errprintu   mainu	   Exceptionu   NannyNagu   checku
   Whitespaceu   format_witnessesu   process_tokensu   __name__(    (    (    u-   /opt/alt/python33/lib64/python3.3/tabnanny.pyu   <module>   s&   =7