�
E��cw � � � d Z ddlmZ ddlmZ ddlZddlZddlZddlZddl m
Z
ddl mZ ddl mZ ddl m
Z
dd l mZ ddlZddlZddlZddlZddlZddlZddlZd
Zn
# e$ r dZY nw xY w G d� d
� � Z e� � Zdededdfd�Zdedefd�Zedede
d fd�� � Zdedededededdfd�Z dAdededededdf
d�Z!dededefd�Z"dedefd�Z#dededefd�Z$dBded ededefd!�Z%dBdededdfd"�Z&dBdededdfd#�Z'dededdfd$�Z(dedefd%�Z)d&edefd'�Z*d(edefd)�Z+d(edefd*�Z,d+ed,edefd-�Z-d.ed/edefd0�Z.d(ed1edefd2�Z/d(edefd3�Z0dededdfd4�Z1dCd5e
dedee de
fd6�Z2dedeeeeef f fd7�Z3dededdfd8�Z4dededdfd9�Z5d:eeef defd;�Z6dededefd<�Z7d=e
d>e
defd?�Z8de
fd@�Z9dS )Dz;Compat module to handle files security on Windows and Linux� )�absolute_import)�contextmanagerN)�Any)�Dict)�List)� Generator)�OptionalFTc � � e Zd ZdZdd�ZdS )�
_WindowsUmaskz+Store the current umask to apply on Windows�returnNc � � d| _ d S )N� )�mask)�selfs �;/usr/lib/python3/dist-packages/certbot/compat/filesystem.py�__init__z_WindowsUmask.__init__$ s
� ��� � � � )r N)�__name__�
__module__�__qualname__�__doc__r � r r r r " |