class_docstr: Implementation of ZAP authentication for zmq connections.
  
  Note:
  
  - libzmq provides four levels of security: default NULL (which the Authenticator does
    not see), and authenticated NULL, PLAIN, CURVE, and GSSAPI, which the Authenticator can see.
  - until you add policies, all incoming NULL connections are allowed.
    (classic ZeroMQ behavior), and all PLAIN and CURVE connections are denied.
  - GSSAPI requires no configuration.
docstr: Allow (whitelist) IP address(es).
  
  Connections from addresses not in the whitelist will be rejected.
  
  - For NULL, all clients from this address will be accepted.
  - For real auth setups, they will be allowed to continue with authentication.
  
  whitelist is mutually exclusive with blacklist.
docstr_tok: ["Allow","(","whitelist",")","IP","address","(","es",")",".","Connections","from","addresses","not","in","the","whitelist","will","be","rejected",".","-","For","NULL",",","all","clients","from","this","address","will","be","accepted",".","-","For","real","auth","setups",",","they","will","be","allowed","to","continue","with","authentication",".","whitelist","is","mutually","exclusive","with","blacklist","."]
code: def allow(self, *addresses):
      """Allow (whitelist) IP address(es).
  
      Connections from addresses not in the whitelist will be rejected.
  
      - For NULL, all clients from this address will be accepted.
      - For real auth setups, they will be allowed to continue with authentication.
  
      whitelist is mutually exclusive with blacklist.
      """
      if self.blacklist:
          raise ValueError(
              "Only use a whitelist or a blacklist, not both"
          )
      self.log.debug("Allowing %s", ",".join(addresses))
      self.whitelist.update(addresses)
  
imports: import logging
  import zmq
  from zmq.utils import z85
  from zmq.utils.strtypes import bytes, unicode, b, u
  from zmq.error import _check_version
  from .certs import load_certificates
label_desc: Use image node_id 4 for calling the Authenticator obj's underlying member method code with example usage: obj.allow() without return types