ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    @ij                     @   s   d Z ddlZddlZddlZddlZddlZdddgZG dd deZddd	Z	dd
dZ
dddZdddZdd ZzddlZejejf W nB eefk
r   zddlZW n ek
r   eZY nX e
ZY nX e	ZdS )a  Utilities to get a password and/or the current user name.

getpass(prompt[, stream]) - Prompt for a password, with echo turned off.
getuser() - Get the user name from the environment or password database.

GetPassWarning - This UserWarning is issued when getpass() cannot prevent
                 echoing of the password contents while reading.

On Windows, the msvcrt module will be used.

    NgetpassgetuserGetPassWarningc                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   /usr/lib/python3.8/getpass.pyr      s    
Password: c                 C   s  d}t  }zJtdtjtjB }t|d}|| t	|}|| |sX|}W np t
k
r } zR|  ztj }W n& ttfk
r   d}t| |}Y nX tj}|stj}W 5 d}~X Y nX |dk	rzt|}|dd }	|	d  tj M  < tj}
ttdr|
tjO }
z t||
|	 t| ||d}W 5 t||
| |  X W n@ tjk
r   |dk	rz ||k	r|  t| |}Y nX |d |W  5 Q R  S Q R X dS )a  Prompt for a password, with echo turned off.

    Args:
      prompt: Written on stream to ask for the input.  Default: 'Password: '
      stream: A writable file object to display the prompt.  Defaults to
              the tty.  If no tty is available defaults to sys.stderr.
    Returns:
      The seKr3t input.
    Raises:
      EOFError: If our input tty or stdin was closed.
      GetPassWarning: When we were unable to turn echo off on the input.

    Always restores terminal settings before returning.
    Nz/dev/ttyzw+   TCSASOFT)input
)
contextlib	ExitStackosopenO_RDWRO_NOCTTYioFileIOenter_contextTextIOWrapperOSErrorclosesysstdinfilenoAttributeError
ValueErrorfallback_getpassstderrtermios	tcgetattrZECHOZ	TCSAFLUSHhasattrr   	tcsetattrflush
_raw_inputerrorwrite)promptstreamZpasswdstackfdZttyr   eoldnewZtcsetattr_flagsr   r   r	   unix_getpass   sR    








r1   c                 C   s   t jt jk	rt| |S | D ]}t| qd}t }|dkst|dkrHqt|dkrTt|dkrj|dd }q.|| }q.td td |S )z9Prompt for password with echo off, using Windows getch(). r   N)r   r   	__stdin__r    msvcrtZputwchZgetwchKeyboardInterrupt)r*   r+   cZpwr   r   r	   win_getpassa   s     



r;   c                 C   s0   t jdtdd |stj}td|d t| |S )Nz%Can not control echo on the terminal.   )
stacklevelz&Warning: Password input may be echoed.)file)warningswarnr   r   r!   printr'   )r*   r+   r   r   r	   r    x   s    r    r2   c                 C   s   |s
t j}|st j}t| } | rpz||  W n8 tk
rf   | |jd} | |j} ||  Y nX |	  |
 }|st|d dkr|d d }|S )Nreplacer6   r   )r   r!   r   strr)   UnicodeEncodeErrorencodeencodingdecoder&   readlineEOFError)r*   r+   r   liner   r   r	   r'      s&    r'   c                  C   s<   dD ]} t j| }|r|  S qddl}|t  d S )zGet the username from the environment or password database.

    First try various environment variables, then the password
    database.  This works on Windows as long as USERNAME is set.

    )ZLOGNAMEZUSERZLNAMEZUSERNAMEr   N)r   environgetpwdgetpwuidgetuid)nameuserrM   r   r   r	   r      s    
)r
   N)r
   N)r
   N)r2   NN)__doc__r   r   r   r   r?   __all__UserWarningr   r1   r;   r    r'   r   r"   r#   r%   ImportErrorr   r8   r   r   r   r   r	   <module>   s,   

D

	


