'Modifies Nginx config to include challenge server blocks.
:param list ll_addrs: list of lists of
:class:`certbot_nginx.obj.Addr` to apply
:raises .MisconfigurationError:
Unable to find a suitable HTTP block in which to include
authenticator hosts.'

def _mod_config(self, ll_addrs):

    included = False
    include_directive = ['\n', 'include', '    ', self.challenge_conf]
    root = self.configurator.parser.config_root
    bucket_directive = ['\n', 'server_names_hash_bucket_size', '    ', '128']
    main = self.configurator.parser.parsed[root]
    for line in main:
        if (line[0] == ['http']):
            body = line[1]
            found_bucket = False
            posn = 0
            for inner_line in body:
                if (inner_line[0] == bucket_directive[1]):
                    if (int(inner_line[1]) < int(bucket_directive[3])):
                        body[posn] = bucket_directive
                    found_bucket = True
                posn += 1
            if (not found_bucket):
                body.insert(0, bucket_directive)
            if (include_directive not in body):
                body.insert(0, include_directive)
            included = True
            break
    if (not included):
        raise errors.MisconfigurationError(('LetsEncrypt    could    not    find    an    HTTP    block    to    include    TLS-SNI-01    challenges    in    %s.' % root))
    config = [self._make_server_block(pair[0], pair[1]) for pair in six.moves.zip(self.achalls, ll_addrs)]
    config = nginxparser.UnspacedList(config)
    self.configurator.reverter.register_file_creation(True, self.challenge_conf)
    with open(self.challenge_conf, 'w') as new_conf:
        nginxparser.dump(config, new_conf)
