�
�S�gA � �� � d Z ddlZddlmZ ddlmZ ddlmZ ddlZddlm Z ddl
mZ ej e
� Z G d� d ej � Z G d
� de� Z G d� d
e� Z G d� de� Zy)a0 Client annotated ACME challenges.
Please use names such as ``achall`` to distinguish from variables "of type"
:class:`acme.challenges.Challenge` (denoted by ``chall``)
and :class:`.ChallengeBody` (denoted by ``challb``)::
from acme import challenges
from acme import messages
from certbot import achallenges
chall = challenges.DNS(token='foo')
challb = messages.ChallengeBody(chall=chall)
achall = achallenges.DNS(chall=challb, domain='example.com')
Note, that all annotated challenges act as a proxy objects::
achall.token == challb.token
� N)�Any)�Tuple)�Type)�
challenges)� Challengec �: � e Zd ZU dZdZeZee e d< |