human
Here the given the following:
Complete the below
def dump_crypto_meta(crypto_meta):

    ''''Serialize crypto meta to a form suitable for including in a header value.
    The crypto-meta is serialized as a json object. The iv and key values are
    random bytes and as a result need to be base64 encoded before sending over
    the wire. Base64 encoding returns a bytes object in py3, to future proof
    the code, decode this data to produce a string, which is what the
    json.dumps function expects.
    :param crypto_meta: a dict containing crypto meta items
    :returns: a string serialization of a crypto meta dict'
    '''
assistant
#Here the
.
    def b64_encode_meta(crypto_meta):
        return {name: (base64.b64encode(value).decode() if (name in ('iv', 'key')) else (b64_encode_meta(value) if isinstance(value, dict) else value)) for (name, value) in crypto_meta.items()}
    return urlparse.quote_plus(json.dumps(b64_encode_meta(crypto_meta), sort_keys=True))