Internet-Draft JSON vCon October 2022
Petrie & McCarthy-Howe Expires 23 April 2023 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-petrie-vcon-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
D. G. Petrie
SIPez LLC
T. McCarthy-Howe
Strolid

The JSON format for vCon - Conversation Data Container

Abstract

A vCon is the container for data and information relating to a real-time, human conversation. It is analogous to a [vCard] which enables the definition, interchange and storage of an individual's various points of contact. The data contained in a vCon may be derived from any multimedia session, traditional phone call, video conference, SMS or MMS message exchange, webchat or email thread. The data in the container relating to the conversation may include Call Detail Records (CDR), call meta data, participant identity information (e.g. STIR PASSporT), the actual conversational data exchanged (e.g. audio, video, text), realtime or post conversational analysis and attachments of files exchanged during the conversation. A standardized conversation container enables many applications, establishes a common method of storage and interchange, and supports identity, privacy and security efforts (see [vCon-white-paper])

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://dgpetrie.github.io/draft-petrie-vcon/draft-petrie-vcon.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-petrie-vcon/.

Source for this draft and an issue tracker can be found at https://github.com/dgpetrie/draft-petrie-vcon.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 23 April 2023.

Table of Contents

1. Introduction

The generation of conversational data, contained in transcripts and multi-media files, is common in business, especially in customer facing organizations. However, the storage, analysis and sharing of the data they contain is not currently a standard. Standardizing a container for conversation data (vCon) has numerous advantages, and enables the management of the conversation's content. For instance, a standard allows for tools to determine the contents of the conversation, such that privacy guarantees and duties can be accurately performed. As a storage mechanism, vCons can help normalize data lakes and allow for interchange between organizations and networks. The use of vCons can ease service integration by using a common container and format for enterprise communications. A vCon becomes the standardized input to communication analysis tools and machine learning and categorization. For a sales lead organization, a vCon can be the container of assets sold to sales teams. For conversations of record, the vCon can be a legal instrument. For machine learning efforts, vCons can track what information was used in the training of models, so that as the result of a customer requested deletion of their data, the affected models can be identified.

1.1. What's in a vCon?

A vCon contains four major categories of data: metadata , dialog , analysis and attachments. The metadata portion allows for an expanded set of data from a typical call detail record ([CDR]), with identifications of the participants or parties to the conversation, references to related or earlier versions of the vCon. The dialog portion contains a set of multimedia and mime elements, each representing the actual, physical conversation in it's original media form: text, audio or video. The analysis portion contains data derived from the metadata and dialog portions, intended to carry items like transcripts, translations, summaries, text to speech, sentiment analysis and other semantic tagging. Finally, the attachment portion contains any other documents, such as slide deck or sales lead information, which provides context and support for the conversation itself. The vCon may also container integrity checking information such as the issuer of the vCon and tamperproof features such as signatures.

A vCon acts as the definition of the conversation, and are created by systems during and after the conversation itself. Some communication modes, like SMS texting, lack natural session boundaries and require explicit definition. vCons may have two or more parties involved, but at least one should be a human. For instance, an interaction between a bot and a human is an appropriate scope for vCons, but a conversation between two bots would not.

Due to the size and complexity of some portions of a vCon, both inline and externally referenced dialog, analysis, attachments and other vCon reference assets are supported. For instance, vCons may reference a videoconference media recording as an external URL with an accompanying signature of the contents to detect tampering. Alternatively, vCons may directly contain the media of the entire dialog internally, keeping the conversation in one place, and optionally encrypted.

vCons are designed to be a digital asset, versioned and signed. For instance, different versions of vCon may arise due to redaction (e.g. for PII or other reasons), added analysis or the addition of other content. In the metadata, vCons contain the unique ID of the parent vCon, such that they may be traversed while maintaining their data integrity and provenance.

1.2. Use Cases and Requirements

In large enterprises, different products may be served by different call centers (inhouse or out sourced). The call centers may have different communications infrastructure and even different platform vendors (e.g. IP PBX, email servers). Consequently, the CDR and meta data as well as the conversation recordings may be stored in different formats and locations. This creates artificial silos of storage and analysis. Using vCon as a standard exchange, storage, analysis input and output format, would ease integration efforts and cross enterprise analysis of products and call center metrics. This would also ease customer analysis across product lines which may currently be difficult due to separated, heterogeneous communications silos. Having conversation data in the vCon format would lower the cost and speed deployment of both inhouse and outsourced analysis tools for import into ML and AI based tools, transcription, translation and sentiment analysis. Having conversation data in a standard vCon container would ease the export of conversation data from hosted services. This would enable more analysis capabilities.

In some locations, regulations make it mandatory for enterprises to delete private information upon request of the individual. Large enterprises with siloed communications systems have difficulty locating or identifying all of the private data for an individual due to the disparate communications systems. Using the vCon as the standard container for all communications system, storing the conversation data centrally and removing it from the siloed communications systems, allows for easier management, correlation, tracking and deletion of individual's private data. Without centralizing the storage of the conversations in a standardized container, deleting an individuals private data is untenable and the enterprise cannot assert that they have fulfilled their requirement to locate and delete all of the private data.

Large call centers may have tens of thousands of call agents making hundreds of thousands of calls a day. Supervising the agents and calls in a large call center is a huge efort. Using vCons to capture all of the conversations for all of the agents, enables more automation of evaluation, training and coaching of call center agents. DEVOPS tools such as checking for conversation with too low a volume or agents with faulty headsets becomes easier and less costly using vCons. Call centers often have to provide service level proof and reports to their customers. These service level evaluations, monitoring and reporting can be more easily provided and at a lower cost via third party solutions with vCons as a standard conversation container.

Conversations can have legal and regulatory significance. Regulations may require conversation of record to be stored for compliance. A conversation can become a verbal contract, making the conversation data a legal instrument. Having a standard container for the conversation data and asserting the integrity of the data make it easier to distribute the conversation data to the parties involved.

The initial set of use cases for vCons are expected to be in the interchange between front end and back end application and lower layers of the network stack, critical for enablement of analysis of conversations. It is expected that JavaScript handling of vCons in the front end and RESTful interfaces and back end platforms will be used for operations and manipulation of vCons. Many media analysis services which will be used with vCons, such as transcription, already use JSON based interfaces. For this reason, JSON has been chosen for the initial format binding of vCons and the scope of this document. Other bindings (e.g. [CBOR] or [ISOBMFF]) may be consider for vCon in the future in other documents.

Requirements:

  • Standardize container for conversational data exchange
  • Consolidation of data and information for a conversation
  • Multiple modes of communication, changing over time
  • Snapshots of conversation during or once completed along with analysis
  • Ease of integration of services and analysis
  • Better organize conversational data so that it can be handled in a consistent, privacy safer means
  • Immutable
  • Hiding of PII or entire conversation
  • Amendable with additional information and data elements

Define a standard for exchange of conversational data in a sea of modes, platforms and service offerings for conversations.

Example conversational modes and protocols:

  • SMS
  • MMS
  • JABBER
  • SIMPLE
  • Proprietary web chat
  • SMTP
  • PSTN
  • SIP
  • WEBRTC
  • Proprietary video conferencing

The following are considered not in scope or non-requirements:

  • Real-time streaming or updating of conversational data
  • Transport mechanisms
  • Storage or databases specifications
  • Methods of redaction of text, audio or video media
  • Validation of redactions or appended data beyond the signature of the domain making the changes to the conversational data (e.g. Merkle tree like redactions)
  • Standardization of analysis data formats or file media types

2. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2.1. Terminology

  • analysis - analysis, transformations, summary, sentiment, or translation typically of the dialog data
  • conversation - an exchange of communication using text, audio or video medium between at least one human and one or more bots or humans
  • de-identification - removal of all information that could identify a party in a conversation. This includes PII as well as audio and video recordings. Voice recordings might be re-vocalized with a different speaker.
  • dialog - the captured conversation in its original form (e.g. text, audio or video)
  • encrypted form - encrypted JWE document with the JWS signed vCon form contained in the ciphertext
  • file - a data block either included or referenced in a vCon
  • object - JSON object containing key and value pairs
  • parameter - JSON key and value pair
  • party - an observer or participant to the conversation, either passive or active
  • payload - the contents or bytes that make up a file
  • PII - Personal Identifiable Information
  • PII masked - may include voice recordings, but PII is removed from transcripts and recordings (audio and video).
  • vCon - container for conversational information
  • vCon instance - a vCon populated with data for a specific conversation
  • vCon instance version - a single version of an instance of a conversation, which may be modified to redact or append additional information forming a subsequent vCon instance version
  • vCon syntax version - the version for the data syntax used for form a vCon
  • signed form - JWS signed document with the unsigned vCon form contained in the payload

2.2. JSON Notation

The convention for [JSON] notation used in this document is copied from sections 1.1-1.5 of [JMAP].

Date - A string that MUST have the form of an [RFC3339] date string as defined for the Date type in section 1.4 of [JMAP].

"String" - a JSON string type

"UnsignedInt" - a positive JSON integer as defined in section 1.3 of [JMAP].

"UnsignedFloat" - a positive JSON floating point number containing a decimal point as defined in section 6 of [JSON].

"Mime" - A "String" value that MUST be of the following form as defined in section 5.1 of [MIME]: type "/" subtype

"A[]" and array of values of type A.

All parameters are assumed to be mandatory unless other wise noted.

Objects or arrays with no or null values MAY be excluded from the vCon.

2.3. Inline Files

Objects that contain a file or data inline (i.e. within the vCon) MUST have the parameters: body and encoding. JSON does not support binary data values. For this reason inline files MUST be base64url (see Section 2 [JWS]) encoded to be included as a valid JSON string value if they are not already valid JSON strings.

2.3.1. body

The body parameter contains the payload of the file to be included inline. Depending upon the data in the file, it may require encoding to be used as a valid JSON string value.

  • body: "String"

2.3.2. encoding

The encoding parameter describes the type of encoding that was performed on the string value of the body parameter.

  • encoding: "String"

    This MUST be one of the following strings:

    • "base64url": The payload of the file has been base64url encoded and provided as the string value of the body parameter.
    • "json": The value of the body string is a JSON object.
    • "none": The payload of the file is a valid JSON string and can be included without modification as the string value to the body parameter.

2.4. Externally Referenced Files

Files and data stored externally from the vCon MUST be "signed" to ensure that they have not been modified. Objects that refer to a file which is externally stored from the vCon MUST have the parameters: url, alg and signature. These parameters are defined in the following subsections. The use of [SHA-512] hash for ensuring that the externally referenced data or file has not been modified, is defined in this document. Other methods of ensuring integrity may be added in the future. The following subsections define how the specific algorithm used and how that signature information is included in a vCon so that the content can be verified.

2.4.1. url

The url value contains the [HTTPS] URL where the externally referenced file is stored. HTTPS MUST be used for retrieval to protect the privacy of the contents of the file.

  • url: "String"

2.4.2. alg

The alg parameter describes the method used for signing the file payload at the given url. Only one method of signing of externally referenced files is defined in this document. So only one value is defined for the alg parameter.

  • alg: "String"

    This SHOULD be the following string:

    • "SHA-512": The algorithm used for signing the externally referenced file is defined in section 6.3 and 6.4 of [SHA-512].

2.4.3. signature

The [SHA-512] hash on the externally referenced file is included in the signature string value.

  • signature: "String"

    The string value of the signature parameter is the Base64Url Encoded value of the SHA-512 hash (as defined in section 6.3 and 6.4 [SHA-512]) of the body of the content at the given url.

3. vCon JSON Object

The JSON form of a vCon is contained in a JSON object in one of three forms:

The unsigned form of the vCon has a single top level object. This top level vCon object is also contained as described in the signed (Section 5.2) and encrypted (Section 5.3) forms of the vCon. The selection of the JSON format enables interchange between application and lower layers of the network stack, critical for enablement of analysis of conversations.

4. Unsigned Form of vCon Object

The unsigned form of the top level vCon object is necessary as in many cases, a vCon will be partially constructed and in process as conversation data is collected. This may change while the conversation is in progress or on-going. The vCon may start with only meta data and party information, then progress to contain dialog information. It may then get analysis added or it could be passed to another security domain for analysis.

A vCon may be constructed across several security domains. When a vCon is to be exported from one security domain to another, it SHOULD be signed or encyrpted by the domain that constructed it. The subsequent domain may have need to redact or append data to the vCon. Alternatively the originating domain may want to redact the vCon before providing it to an other domain. The second or subsequent domain, MAY modify the prior vCon instance version and when complete or exporting to another security domain, it SHOULD sign or encrypt the new vCon instance version. The new vCon instance version SHOULD refer to the prior vCon instance version via the redacted (Section 4.1.5) or appended (Section 4.1.6) parameters.

4.1. vCon JSON Object Keys and Values

The keys and values for the top level vCon JSON object are defined in the following subsections.

4.1.1. vcon

The the value of vcon parameter contains the syntactic version of the JSON format used in the vCon.

  • vcon: "String"

    For syntax defined in this document, the string MUST have the value: "0.0.1"

4.1.2. uuid

The [UUID] for the vCon is used to refer to it when privacy or security may not allow for inclusion or URL reference to a vCon. The UUID MUST be globally unique.

  • uuid: "String"

    The value of the string SHOULD be generated using the version 8 UUID defined in [UUID] which is generated identically to a version 7 UUID with the exception that:

    • rand_b/custom_c is generated from the high 62 bits of the SHA-1 hash of the FQHN string
    • the variant and version fields are set as described for version 8 UUID

    The DNS name string used in generating the uuid value SHOULD be the same FQHN, or a subdomain to allow for more distributed generation of UUIDs, as would used in the signing certificate as they are the same domains of uniqueness.

4.1.3. iat or created_at

TODO: Do we need a creation or signing date (e.g. [JWT] iat)?

4.1.4. subject

The subject or the topic of the conversation is provided in the subject parameter. This parameter is optional as not all conversations have a defined subject. Email threads and prescheduled calls and video conferences typically have a subject which can be captured here. The subject may also be derived from analysis of the dialog.

  • subject: "String" (optional)

    The string value of the subject parameter is a free formed JSON string with no constrained syntax.

4.1.5. redacted

A redacted vCon SHOULD provide a reference to the unredacted or prior, less redacted, vCon instance version of itself. The purpose of the Redacted Object is to provide the reference to the unredacted or less redacted version of the vCon from which this vCon was derived. For privacy reasons, it may be necessary to redact a vCon to construct another vCon without the PII. This allows the non-PII portion of the vCon to still be analyzed or used in a broader scope. The Redacted Object SHOULD contain the uuid parameter and MAY include the vCon inline via the body and encoding parameters or alternatively the url, alg and signature parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)). If the unredacted vCon is included in the body, the unredacted vCon MUST be in the encrypted form. If a reference to the unredacted vCon is provided in the url parameter, the access to that URL MUST be restricted to only those who should be allowed to see the identity or PII for the redacted vCon.

The method(s) for redaction of text, audio and video can be done with existing post processing of media. The method of redaction is out of scope of this document. The assurance of the accuracy of the redaction is made by the entity that creates the redaction which SHOULD sign the redacted version of the vCon.

All data and parameters in the prior, less redacted, vCon instance version are either:

  • Removed entirely in the redacted version
  • Copied and partially redacted
  • Copied as is

Data which is to be completely removed from the redacted version, that is contained in a JSON array in the unredacted vCon, SHOULD create an empty placeholder such that object array indices do not change for the rest of the elements of the array.

TODO: Do we need different levels or rational for redaction? If so, we need a parameter for the levels or reason of redaction.

  • redacted: "Redacted" (optional, mutually exclusive with appended and group parameters)

A Redacted Object contains the following parameters:

As defined in Inline Files (Section 2.3) body and encoding MAY be included:

  • body: "String"
  • encoding: "String"

Alternatively, as defined in Externally Referenced Files (Section 2.4) url, alg and signature MAY be included:

  • url: "String"
  • alg: "String"
  • signature: "String"

The following diagram illustrates an example partial JSON object tree for a redacted vCon. The top level object is a JWS signed vCon which contains a vCon in the unsigned form in the payload parameter. The second level object is the redacted vcon which refers to the encrypted unredacted vCon in it's redacted parameter. Note that the redacted vCon references the JWE encrypted vCon by UUID and may reference it by URL or direct inclusion. The JWE encrypted unredacted vCon contains the signed version of the unredacted vCon in the ciphertext parameter. The signed unredacted vCon contains the unredacted vCon in the unsigned form in it's payload parameter.

                --------------
Signed          | JWS        |
redacted vCon:  |            | payload parameter
                |    payload-|-- contains unsigned
                -------------- / redacted vCon
                              /
            -------------    /
vCon which  |vCon       |<---
has been    |           | redacted parameter contains
redacted:   |  redacted-|-- or refers to JWE
            ------------- / encrypted unredacted vCon
                         /
                        /
                       /
                      /
                     /
                    / ---------------
                    ->| JWE         | cyphertext
Encrypted signed      |             | parameter
unredacted vCon:      |  cyphertext-|--- contains
                      ---------------  / JWS signed
                                      / unredacted
                  -------------      / vCon
Signed            |JWS        |<-----
unredacted vcon:  |           | payload contains
                  |   payload-|-- unsigned
                  -------------  \ unredacted vCon
                                  \   ----------
                                   -->| vCon   |
Unsigned unredacted vCon:             |        |
                                      ----------
Figure 1: redacted vCon object tree

4.1.6. appended

A signed or encrypted vCon cannot be modified without invalidating it. In these cases, to allow for adding of additional information a new vCon instance version MUST be created. The prior vCon instance version is referenced by the Appended Object. Then the appended information is added to the new vCon instance version (i.e. top level vCon object).

The prior vCon instance version SHOULD be referenced via the uuid of the prior vCon instance version, and MAY include the body and encoding parameters or alternatively the url, alg and signature parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)).

  • appended: "Appended" (optional, mutually exclusive with redacted and group parameters)

The Appended Object contains the following parameters:

  • uuid: "String" (optional if inline or external reference provided)

    The value contains the uuid string value (Section 4.1.2) of the unredacted/original vCon instance version.

Alternatively, as defined in Inline Files (Section 2.3) body and encoding MAY be included:

  • body: "String"
  • encoding: "String"

Alternatively, as defined in Externally Referenced Files (Section 2.4) url, alg and signature MAY be included:

  • url: "String"
  • alg: "String"
  • signature: "String"

The following figure illustrates an example partial JSON object tree for an appended vCon. The top level object is the JWS signed appended vCon which contains the unsigned form of the vCon in it's payload parameter. The second level object is the appended vCon with additional conversational data (e.g. analysis data). It refers to its original parent (or prior vCon instance version) of the vCon in its appended parameter. Note: the appended parameter may include the original in the body parameter or refer to it via URL. The appended vCon in this figure refers to the JWS signed version of the vCon, which in turn contains the original vCon in unsigned form in its payload parameter.

                --------------
Signed          | JWS        |
appended vCon:  |            | payload parameter
                |    payload-|-- contains unsigned
                -------------- / appended vCon
                              /
            -------------    /
vCon with   |vCon       |<---
appended    |           | appended parameter contains
data:       |  appended-|--- or refers to JWS
            |  analysis |  / signed original vCon
            ------------- / along with additional
                         / converstational data
                        / (e.g. analysis)
                       /
                      /
                     /
                    / ------------
                    ->| JWS      | payload
Encrypted signed      |          | parameter
original vCon:        |  payload-|--- contains
                      ------------  / unsigned
                                   / original
                  -------------   / vCon
Original vCon:    |vCon       |<--
                  |           |
                  |   parties |
                  |   dialog  |
                  -------------
Figure 2: appended vCon object tree

4.1.7. group Objects Array

The scope of a conversation is defined by the observer. It may be any of the following in this non-exhaustive list:

  • a quick text exchange
  • a simple 2-way call
  • an evolving group chat
  • a class lecture and question and answer session
  • a web chat, evolving to a 2 way call, progressing to a transferred 3-way call transitioning to a video conference
  • a series of weekly status calls

In support of these constructs, it may be desirable to aggregate a group of vCons as opposed to including all of the dialog in a single vCon. The conversations may be over heterogeneous or homogeneous medium. A vCon MAY aggregated a group of vCon instances in the group array, using a Group Object for each vCon instance.

  • group: "Group[]" (optional, mutually exclusive with redacted and appended parameters)

    The group array contains a Group Object (Section 4.6) for each vCon.

4.1.8. parties Objects Array

The name, identity or contact information of all of the parties involved with the conversation are included in the parties object array. Whether the parties were observers, passive or active participants in the conversation, they each are included as a Party Object in the parties array.

TODO: Should this be a object not an array to make it easier to append parties (i.e. indices of append vCons change when appended)?

4.1.9. dialog Objects Array

The actual conversation which occurred over text, audio or video that was captured, is contained in the dialog Objects Array.

4.1.10. analysis Objects Array

Analysis, which is performed on the conversational data, is stored in the analysis Objects array.

4.1.11. attachments Objects Array

Ancillary documents, discussed, presented, referenced or related to the conversation may be stored in the attachments array.

4.2. Party Object

4.2.1. tel

If the tel URL for the party is known, it can be included in the tel parameter.

  • tel: "String" (optional)

    The value of the tel parameter SHOULD be a valid [TEL] URL. The URL scheme prefix (i.e. "tel:") is optional.

4.2.2. stir

If the STIR [PASSporT] was provided to identify the party, the PASSporT can be included in the stir parameter for the party.

  • stir: "String" (optional)

    The string value of the stir parameter contains the [PASSporT] in the JWS Compact Serialization form.

4.2.3. mailto

If the mailto URL is known for the party, it can be included in the mailto parameter.

  • mailto: "String" (optional)

    The value of the mailto parameter is a string of the format of a valid [MAILTO] URL. The URL scheme prefix (i.e. "mailto:") is optional.

4.2.4. name

If the party's name is known, it can be included in the name parameter.

  • name: "String" (optional)

    The string value of the name parameter is a free form JSON string in which part or all of the parity's name can be included.

4.2.5. validation

Proof of authorization of the communication channel through STIR, login or possession of a device, is often not sufficient proof of the identity of the person at the other end of the communications channel. It is common in call centers to validate the identity of the person on the communication channel through verification of some sort of personal identification information. The methods used, often varies with the situation and is business practices specific. The purpose of the validation parameter, is to allow the validator to save a label or token which identifies the method of identity validation used to identify the person at the other end of the communication channel. For security reasons, it SHOULD NOT contain the data used to validate the name. However it MAY name the data used to validate the name (e.g. "SSN", "DOB", "user ID and password"). It is up to the domain creating the vCon to define the set of tokens or values to be used for the validation parameter.

  • validation: "String" (SHOULD be provided if name parameter is provided)

    The value of the validation string MAY be "none" or enterprise or domain defined token or string values.

4.2.6. jCard

TODO: Do we want to support including a jCard for the party?

4.2.7. gmlpos

If the geolocation of the party is known, it can be added in the gmlpos parameter. The gmlpos parameter contains the latitude and longitude of the location of the party at the time of the conversation start.

  • gmlpos: "String" (optional)

    The gmlpos parameter value contains a string of the same format as the gml:pos element defined in section 3.2 of the [PIDF-LO] PIDF.

4.2.8. civicaddress

The the civicaddress parameter value contains a Civicaddress Object which is optional and contains civic address information about the location for the party.

  • civicaddress: "Civicaddress" (optional)

The Civicaddress Object MAY contain any or all of the following parameters: country, a1, a2, a3, a4, a5, a6, prd, pod, sts, hno, hns, lmk, loc, flr, nam, pc as defined in section 2.2.1 of [GEOPRIV]. The values of all of these parameters are of type String. Note that the parameter names MUST be in lower case when contained in the Civicaddress Object even though they are in upper case in [GEOPRIV].

  • country: "String" (optional)
  • a1: "String" (optional)
  • a2: "String" (optional)
  • a3: "String" (optional)
  • a4: "String" (optional)
  • a5: "String" (optional)
  • a6: "String" (optional)
  • prd: "String" (optional)
  • pod: "String" (optional)
  • sts: "String" (optional)
  • hno: "String" (optional)
  • hns: "String" (optional)
  • lmk: "String" (optional)
  • loc: "String" (optional)
  • flr: "String" (optional)
  • nam: "String" (optional)
  • pc: "String" (optional)

TODO: Do we need RFC6848 civic address extensions?

TODO: Is there a need for any temporal location?

TODO: Do we just specify for the start of the conversation?

4.2.9. timezone

TODO: timezone?

4.3. Dialog Object

The Dialog object references or contains text, audio or video captured from the conversation. Currently two types of dialog objects are defined in this document. One for text media and the other for audio or video recording files.

TODO: Is there other signalling data that we want to capture other than start and duration and the media (e.g. from jabber, sms, mms, email, SIP, etc.)?

4.3.1. type

  • type: "String"

    The sting MUST have the value of either "recording" or "text"

4.3.2. start

The start parameter contains the date and time for the beginning of the captured piece of dialog. For text it is the time that the party started typing or if not available, then it is the time the text was sent. For audio and video recordings, it is the time which corresponds to the beginning of the recording.

  • start: "Date"

4.3.3. duration

The duration parameter contains the duration in seconds of the referenced or included piece of dialog. For text, if known, it is the time duration from when the party started typing to when they completed typing and the text was sent. For recordings, it is the duration of the recording.

  • duration: "UnsignedInt" | "UnsignedFloat" (optional)

    The value MUST be the dialog duration in seconds.

4.3.4. parties

The party(s) which generated the text or recording for this piece of dialog are indicated in the parties parameter.

  • parties: "UnsignedInt" | "UnsignedInt[]" | ("UnsignedInt" | "UnsignedInt[]")[]

    Single channel recordings should have a parties value of the form: "UnisignedInt" or "UnsignedInt[]" where the integer value or array of integer values are the indices to the Party Object(s) in the parties array that contributed to the mix for the single channel recording. The index for the Party Object SHOULD be included even if the indicated party was silent the entire piece of dialog.

    Multi-channel recordings MUST have a parties value that is an array of the same size as the number of channels in the recording. The values in that array are either an integer or an array of integers which are the indices to the parties that contributed to the mix for the associated channel of the recording. The index for Party Objects SHOULD be included even if the party was silent the entire conversation.

TODO: For an email thread, To and Cc parties are all passive. Do we just put the sender as the party or do we want to list all of the recipients and by convention the sender is the first party? Note that each dialog/email could have a difference set of recipients.

4.3.5. mimetype

The media type for the piece of dialog included or referenced is provided in the mimetype parameter. The mimetype parameter MUST be provided for inline dialog files and MUST be provided if the Content-Type header in the [HTTPS] response for the externally referenced URL is not provided.

  • mimetype: "Mime" (optional for externally referenced files)

    The media types SHOULD be one of the following strings:

    • "text/plain"
    • "audio/x-wav"
    • "audio/x-mp3"
    • "audio/x-mp4"
    • "audio/ogg"
    • "video/x-mp4"
    • "video/ogg"
    • "multipart/mixed"

    Note: multi-part will also likely include the boundary parameter

4.3.6. filename

It is sometimes useful to preserve the name of the file which originally contained this piece of dialog. This can be done in the filename parameter.

  • filename: "String" (optional)

4.3.7. Dialog Content

The Dialog Object SHOULD contain the body and encoding parameters or the url, alg and signature parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)).

For inline included dialog:

  • body: "String"
  • encoding: "String"

Alternatively, for externally referenced dialog:

  • url: "String"
  • alg: "String"
  • signature: "String"

4.4. Analysis Object

Analysis is a broad and in some cases developing field. This document does not attempt to suggest a SHOULD support list of types. Nor are formats for analysis data defined in this document. That is for research and specification outside the scope of this document. For this reason the Analysis Object provides multiple ways to define the media type of the analysis file. If a well known media or mime type is defined, it SHOULD be used. For analysis data or files types for which a media type is not defined, the vendor and schema parameters SHOULD be used.

4.4.1. type

The type parameter is used to label the semantic type of analysis data.

  • type: "String"

    The string value SHOULD be one of the following:

    • "summary"
    • "transcript"
    • "translation"
    • "sentiment"
    • "tts"

4.4.2. dialog

Analysis typically pertains to one or more of the Dialog Objects in the dialog array. The dialog parameter is used to indicate which Dialog Objects this analysis was based upon.

  • dialog: "UnsignedInt" | "UnsignedInt[]" (optional only if the analysis was not derived from any of the dialog)

    The value of the dialog parameter is the index to the dialog or array of indices to dialogs in the dialog array to which this analysis object corresponds.

4.4.3. mimetype

The media type for the included or referenced analysis file is provided in the mimetype parameter.

  • mimetype: "Mime" (optional for externally referenced files, if it this is provided in the [HTTPS] Content-Type header)

    The mimetype string contains the media type or [MIME] type of the analysis file.

4.4.4. filename

It is sometimes useful to preserve the name of the file which originally contained this analysis data. This can be done in the filename parameter.

  • filename: "String" (optional)

    The file name string contains an optional name for the analysis data file referenced in this Analysis Object.

4.4.5. vendor

There may not be a IANA registered media type for the file format containing the analysis data. Even if a media type is defined, it is often useful to keep a record of the vendor that produced the software that produced the analysis. Different implementations perform differently and knowing the implementation can be useful in interpreting the analysis. For this reason, the vendor or product name is provided in the vendor parameter.

  • vendor: "String"

    The vendor string value contains the vendor or product name of the software which generated this analysis.

4.4.6. schema

The same vendor or software product may produce different formats or data for the same analysis. The schema parameter allows the data format, schema or configuration used to generate the analysis to be saved with the included or referenced analysis data.

  • schema: "String" (optional)

    The schema string contains a token or label for the data format or schema for the analysis data. As the vendor name may not be specific enough to identify the format of the analysis, the schema value is provide to differentiate from potentially multiple data formats for analysis provided by the same vendor or software.

4.4.7. Analysis Content

The Analysis Object SHOULD contain the body and encoding parameters or the url, alg and signature parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)).

For inline included analysis:

  • body: "String"
  • encoding: "String"

Alternatively, for externally referenced analysis:

  • url: "String"
  • alg: "String"
  • signature: "String"

4.5. Attachment Object

Ancillary documents to the conversation are included or referenced in the Attachment Object. There is no constraint on the types files which can be included or referenced. As most modes of communication, that allow the exchange of files, do not constrain the file type, any file type may be included here.

4.5.1. type or purpose

TODO: Do we want a semantic type like: contract or presentation? Or a subject or title.

4.5.2. party

In most conversations, ancillary documents originate from one of the parties to the conversation. This is not necessarily the author, but the person who distributed the document. This party is identified by the party parameter in the Attachment Object.

  • party: "UnsignedInt"

    The value of the party parameter is the index into the Parties Object array to the party that contributed the attachment.

4.5.3. mimetype

The media type for the included or referenced attachment file is provided in the mimetype parameter.

  • mimetype: "Mime" (optional for externally referenced files, if it this is provided in the [HTTPS] Content-Type header)

    The mimetype string contains the media type or [MIME] type of the attached file.

4.5.4. filename

It is sometimes useful to preserve the name of the file which originally contained this attachment file. This can be done in the filename parameter.

  • filename: "String" (optional)

    The file name string contains an optional name for the attachment file referenced in this Attachment Object.

4.5.5. Attachment Content

The Attachment Object SHOULD contain the body and encoding parameters or the url, alg and signature parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)).

For inline included attachments:

  • body: "String"
  • encoding: "String"

Alternatively, for externally referenced attachments:

  • url: "String"
  • alg: "String"
  • signature: "String"

4.6. Group Object

A conversation may have take place using different modes (e.g. web chat which evolves to email, which evolves to phone call, which evolves to video conference). A conversation could take place over several calls (e.g. multiple calls regarding a support incident or problem). Each of these examples might be considered a single conversation event though there are multiple sets of dialog in each. What is considered the boundary of a conversation is a business decision. There are situations in the above example, where it is desired to treat these as a single conversation, but each set of dialog is created in a single vCon (e.g. each dialog occurred in a separate communication silo or security domain) which gets signed. For this reason, it may be necessary to aggregate the separate vCon into a single vCon which is considered the whole of a conversation. The Group Object includes or refers to a vCon to be aggregated into the whole of a single vCon conversation.

The Group Object SHOULD contain the uuid and either the body and encoding parameters or the url, alg and signature parameters (see Inline Files (Section 2.3) and Externally Referenced Files (Section 2.4)). The vCon MAY be referenced via UUID:

The vCon MAY be included in line as the value of the body parameter. The encoding parameter MUST be included with the body parameter, if provided, to describe the encoding of the vCon body.

  • body: "vCon"

    The JSON unsigned form of the vCon, the JWS signed form of the vCon or the JWE encrypted form of the vCon.

  • encoding: "String"

    The encoding string MUST have the value: "json".

Alternatively, the vCon can be externally referenced. The url, alg and signature parameters and values are defined in Externally Referenced Files (Section 2.4).

  • url: "String"
  • alg: "String"
  • signature: "String"

5. Security Considerations

The security concerns for vCons can put into two categories: making the conversation immutable through integrity verification and protecting the confidentiality of privacy of the parties to the conversation and/or their PII. These requirements along with need to evolve a vCon (e.g. adding analysis, translations and transcriptions) conflict in some ways. To enable this, multiple versions of a vCon may be created. Versions of a vCon may add information (e.g. analysis added to a prior vCon referenced by the appended (Section 4.1.6)) and versions that remove information (e.g. redactions of privacy information removed from the vCon referenced in the redacted (Section 4.1.5)). Redactions may be at different levels for example:

Different parts and versions of a vCon may be created in different security domains over a period of time. In addition, some conversation data may be referenced externally through an HTTPS URL as opposed to completely contained within the vCon. Typically a conversation of one mode, will be hosted or observed in a single domain. This will likely fall into one of the following hosting situations:

The distinction among these has gotten clouded over recent years. The import consideration is that each is a different security domain. Information about a conversation captured in an enterprise communications system (e.g. meta data and Dialog Object(s) recorded in an IP PBX) is a different security domain from a SaaS transcription service (i.e. an Analysis Object). Before a vCon leaves a security domain, it SHOULD be signed to prevent it from being altered. If the new security domain needs to alter it, a new vCon is created with the removed or added data and the prior version is referenced (i.e. via the redacted (Section 4.1.5) or appended (Section 4.1.6)). See the redacted vCon object tree figure-1 and appended vCon object tree figure-2. If information is redacted for privacy reasons, the vCon referenced in the redacted (Section 4.1.5), if inline, SHOULD be encrypted to protect the privacy information in the unredacted version of the vCon.

The secure storage and access of externally referenced conversation data is considered out of scope from this document. Secure mechanisms for HTTPS access and storage of files are well defined. Identity and credentials for accessing externally stored data will be exchanged out of band from the vCon. The one requirement for externally referenced data from the perspective of this document, is proof of integrity of that data.

Using the above described approach for redaction and appending of data, we can reduce the security operations on a vCon to signing and encryption. Two approaches to signing are needed as we have data, in JSON format, that is contained within the vCon and may have data (typically media and file formats, often binary) not contained, inline in the vCon, that is externally referenced.

Externally referenced data will be "signed" using [SHA-512] hash which along with the URL of the externally referenced data is included in the vCon. [SHA-512] was chosen due to the relatively low cost to generate and verify the signature for what could be very large externally referenced media files. As the hash for each externally referenced file is contained in the vCon which will be signed, the chain of authentication is provided via the signature on the vCon itself.

This document specifies the JSON format for vCons. So it seemed the logical solution for signing vCons, is JOSE [JWS] JSON Serialization and likewise for encrypting vCons is JOSE [JWE] JSON Serialization. The solutions are well documents, implementations are readily available and tested.

Methods of redaction exist for text, audio and video using post processing of the media. The method of redaction used is out of the scope of this document. A redacted vCon SHOULD reference it's non-redacted version. The non-redacted version of the vCon referenced from the redacted vCon MUST be encrypted such that only those with permission to view the non-redacted content can decrypt it.

Any time a vCon is shared outside its original security domain, it SHOULD be signed and optionally encrypted. Files externally referenced by a vCon SHOULD always be signed with the verification information included in the vCon that references the external file as defined in Externally Referenced Files (Section 2.4) and Signing Externally Referenced Files (Section 5.1). Externally referenced files SHOULD only be transported over [HTTPS] and SHOULD be access controlled to those who are permitted to read the contents of that non-redacted vCon. vCons transported over non-secure channels such as email MUST be in the encrypted form.

5.1. Signing Externally Referenced Files

In some deployments, it is not practical to include all of the file contents of a vCon inline. In support of that, a file may be externally referenced. When external files are referenced, the signature on the vCon does not secure the file contents from modification. For this reason any externally referenced files SHOULD also have a signature. vCons use the [SHA-512] hash method for integrity checking of externally referenced file content and include its url, alg and signature in the vCon which are included in the integrity signature for the whole vCon.

After retrieving externally referenced files, before using its content, the payload of the HTTPS request should be verified using the signature parameter value for the hash for the url body using the procedure defined in section 6.3 and 6.4 of [SHA-512].

5.2. Signed Form of vCon Object

A signed vCon uses [JWS] and takes the General JWS JSON Serialization Syntax form as defined in section 7.2.1 of [JWS]. The vCon General JWS JSON Serialization MUST include x5c or x5u in the unprotected header.

  • payload: "String"

    The value of the payload is the Base64Url Encoded string containing the unsigned form of the JSON vCon. The general construction of the payload string value is described in section 7.2.1 of [JWK]

  • signatures "Signature[]"

    The value of signatures is an array of Signature Objects (Section 5.2.1)

5.2.1. Signature Object

The Signature Object MUST contain a header, protected and signature parameter as defined in section 7.2.1 of [JWS].

5.2.2. Header Object

The Header Object and its contents are defined in section 4 of [JWS]. The Header Object for a signed vCon MUST include the alg and either the x5c or x5u arrays. The x5c or x5u requirement makes the management and use of vCons easier, allowing the certificate chain to be found as the vCon is moved.

  • alg: "String"

    The string value of alg is defined in section 4.1.1 of [JWS]. For a signed vCon this value SHOULD be "RS256" to maximize interoperability.

  • x5c: "String[]" (MUST provide x5c or x5u)

    The array of string values for x5c are defined in section 4.1.6 of [JWS].

  • x5u: "String" (MUST provide x5c or x5u)

    The string value of x5u MUST contain an [HTTPS] URL as defined in section 4.1.5 of [JWS].

TODO: How to deal with expired signatures?

5.3. Encrypted Form of vCon Object

TODO: Check this terminology:

A vCon MUST be signed first using JWS as defined in Signed Form of vCon Object (Section 5.2), then encrypted using JWE as opposed to just encrypted with integrity protection. The rationale is that meta data and dialog will typically be collected in one security domain, then may be stored or exported to another. The signing is likely for the lifetime of the vCon, where the encryption may be shorter term or domain specific. vCons may be stored in unencrypted form, but the signed form MUST be maintained to ensure its integrity.

A encrypted vCon uses [JWE] and takes the General JWE JSON Serialization Syntax form as defined in section 7.2.1 of [JWE].

  • unprotected: "Unprotected"
  • recipients: "Recipient[]"
  • iv: "String"

    The string value of iv is the Initialization Vector as constructed as defined in section 7.2.1 of [JWE].

  • ciphertext: "String"

    The string value of ciphertext is constructed as defined in section 7.2.1 of [JWE] using the signed form of the vCon as the plaintext input for encryption.

  • tag: "String"

    The string value of tag is the the Authentication Tag as defined in section 7.2.1 of [JWE].

5.3.1. Unprotected Object

  • cty: "String"

    The string value of cty SHOULD be "application/vcon"

  • enc: "String"

    The string value of enc SHOULD be "A256CBC-HS512"

TODO: do we want to put the vCon UUID in the Unprotected Object so that we can use it as a key?

5.3.2. Recipient Object

  • header: "Header"
  • encrypted_key: "String"

    The string value of encrypted_key is defined in section 7.2.1 of [JWE].

5.3.3. Header Object

  • alg: "String"

    The string value of alg SHOULD be "RSA-OAEP".

6. IANA Considerations

IANA registration of new media subtype: vcon for media type application:

application/vcon

7. References

7.1. Normative References

[GEOPRIV]
Peterson, J., "A Presence-based GEOPRIV Location Object Format", RFC 4119, DOI 10.17487/RFC4119, , <https://www.rfc-editor.org/rfc/rfc4119>.
[HTTPS]
Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, Ed., "HTTP Semantics", STD 97, RFC 9110, DOI 10.17487/RFC9110, , <https://www.rfc-editor.org/rfc/rfc9110>.
[JSON]
Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, , <https://www.rfc-editor.org/rfc/rfc8259>.
[JWE]
Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", RFC 7516, DOI 10.17487/RFC7516, , <https://www.rfc-editor.org/rfc/rfc7516>.
[JWK]
Jones, M., "JSON Web Key (JWK)", RFC 7517, DOI 10.17487/RFC7517, , <https://www.rfc-editor.org/rfc/rfc7517>.
[JWS]
Jones, M., Bradley, J., and N. Sakimura, "JSON Web Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, , <https://www.rfc-editor.org/rfc/rfc7515>.
[MAILTO]
Duerst, M., Masinter, L., and J. Zawinski, "The 'mailto' URI Scheme", RFC 6068, DOI 10.17487/RFC6068, , <https://www.rfc-editor.org/rfc/rfc6068>.
[MIME]
Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, DOI 10.17487/RFC2045, , <https://www.rfc-editor.org/rfc/rfc2045>.
[PASSporT]
Wendt, C. and J. Peterson, "PASSporT: Personal Assertion Token", RFC 8225, DOI 10.17487/RFC8225, , <https://www.rfc-editor.org/rfc/rfc8225>.
[PIDF-LO]
Winterbottom, J., Thomson, M., and H. Tschofenig, "GEOPRIV Presence Information Data Format Location Object (PIDF-LO) Usage Clarification, Considerations, and Recommendations", RFC 5491, DOI 10.17487/RFC5491, , <https://www.rfc-editor.org/rfc/rfc5491>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC3339]
Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, , <https://www.rfc-editor.org/rfc/rfc3339>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[TEL]
Schulzrinne, H., "The tel URI for Telephone Numbers", RFC 3966, DOI 10.17487/RFC3966, , <https://www.rfc-editor.org/rfc/rfc3966>.
[UUID]
Peabody, B. and K. R. Davis, "New UUID Formats", Work in Progress, Internet-Draft, draft-peabody-dispatch-new-uuid-format-04, , <https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04>.

7.2. Informative References

[CBOR]
Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", RFC 7049, DOI 10.17487/RFC7049, , <https://www.rfc-editor.org/rfc/rfc7049>.
[CDR]
ITU, "Recommendation Q.825: Specification of TMN applications at the Q3 interface: Call detail recording", n.d., <https://www.itu.int/rec/T-REC-Q.825>.
[ISOBMFF]
"Information technology -- Coding of audio-visual objects -- Part 12: ISO base media file format", ISO/IEC 14496-12:2022, , <https://www.iso.org/standard/83102.html>.
[JMAP]
Jenkins, N. and C. Newman, "The JSON Meta Application Protocol (JMAP)", RFC 8620, DOI 10.17487/RFC8620, , <https://www.rfc-editor.org/rfc/rfc8620>.
[JWT]
Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token (JWT)", RFC 7519, DOI 10.17487/RFC7519, , <https://www.rfc-editor.org/rfc/rfc7519>.
[SHA-512]
Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)", RFC 6234, DOI 10.17487/RFC6234, , <https://www.rfc-editor.org/rfc/rfc6234>.
[vCard]
Kewisch, P., "jCard: The JSON Format for vCard", RFC 7095, DOI 10.17487/RFC7095, , <https://www.rfc-editor.org/rfc/rfc7095>.
[vCon-white-paper]
Howe, T., Petrie, D., Lieberman, M., and A. Quayle, "vCon: an Open Standard for Conversation Data", n.d., <https://github.com/vcon-dev/vcon/blob/main/docs/vCons_%20an%20Open%20Standard%20for%20Conversation%20Data.pdf>.

Appendix A. Example vCons

This appendix contains example vCons in the unsigned, signed and encrypted form. The JSON has been indented for readability. Long text lines have been wrapped with a left hand white space indent for readability purposes.

A.1. Two Party Call vCon With Inline Recording

This example vCon is for a simple 2 party PSTN call. It has a single Dialog Object which contains a single channel wav format recording with the two parties audio mixed into the single channel.

{
  "vcon": "0.0.1",
  "parties": [
    {
      "tel": "+12345678901",
      "name": "Alice"
    },
    {
      "tel": "+19876543210",
      "name": "Bob"
    }
  ],
  "dialog": [
    {
      "type": "recording",
      "start": "2022-06-21T17:53:26.000+00:00",
      "duration": 4.72,
      "parties": [
        0,
        1
      ],
      "mimetype": "audio/x-wav",
      "filename": "ab_call.wav",
      "encoding": "base64url",
      "body": "UklGRioeAABXQVZFZm10IBQAAAAxAAEAQB8AAFkGAABBAAAAAg
        gBAAWZhY3QEAAAAgJMAAGRhdGH2HQAAoxjXHYXCRekuye4gK4Tsiv4wZe
        htuvu3RMkgyPXme4NeahQLG0yeLayx5HCIiRWK7psbQrQTFm57NwQJvIb
        1aNxk6VpMYAXSm5Bb1rgStIStvEzmCaOIabxs2gjReJ02Rk0BQtOxHkhU
        IZd4VGKoq1KuoCGhrZTx1vRZICuZEcgkGjdH2jiCU1a0NMW6BE8lVHN-O
        FPHcZspr0CSl1aeo2hOWUx3CbovpGqKsApWteunk8gMPMOdynRVFWR5o0
        2BvaQDcWugGRHrQa9NcEbG1LWQq_AWLpsXKdMQefGrZu4ZE2ZSDIRGJLT
        pIzDybqSyZishQmjuVGztMKNlcyt2vW546JsutgllyppQWroAtHbkyrrG
        x3bIiX81g1sR-oVaBbtkobA08fpJYscQSlHHcGm7hDriuWTRm8A6GKQ1F
        cn10M30DcHctnEchwaAI7dxI2knYCQ5biNHB2Djxm3bFmyU5TA3ALZt3D
        SeABIkiRJcm0AxpEkSZI7AEiSJEmSwUYZ1mQLYNu2bdumPWDbtm3b9gOA
        EmSJFkFgCRJkiQZbHRhTccDtm3btm0qAEaOJEmSPABIkiRJkjAASJIkSZ
        BRhfW9CKAJEmS49gCgCRJkiQ5P2Dbtm3bZgSAJEmSJClkcmVNLgBIkiRJ
        m8ASJIkSZIvAkiSJEmOswM2btu2bcMVmd3kIoDkyJEkySOAJEmS3AgGgC
        JkhypC2DjuG3j9mxOWQiyEUQ1DAtyvQJS9aTWWc4KuFqLO9F4CCJX4yeF
        MaSUWSLYMkYinzGa4HzyrEi6-pgHVdXe6mugKzW7VqHYOzcDDsXWnJkeV
        HFKpuLDZSrAroZOQohtASpE4dyZSRxozJQC6hJE2OLGiNYLM1ruIWzsCc
        hEW6c3AJhq6bmp9cZ0IvAy2a5xJVcUMNE8Qq3G0CEJy30SNxwrUqUy5Nc
        WkI3S7UCk4iyrBM3AzCvJqkisQPQkcekWjYDoJk4DpWiPmUzXCtKFMkuy
        g7MtWnrqLwMSqpjR8vXDipSKzk1D-bOjdLzgNQollapqqCUmjChmctA6j
        mYPOLYJtHbatocTAZCfAQ3LHs6O2zDuCC_LyStAgkklFHZesUspXsSr0S
        lCRYg-hXc2tKqMsgeqYkNzSVmLc9mk08zbhzUKO3fhkzJQsvBTCcNk2s-
        UxO5zpatkETyFn-xtrxRaTR0hZk3WDo5ELiFWOq7hmMxgKjdcY0SO4Fk7
        ijHC6EYNXEZI6oDUQz2EeJMMh1orxSOup04uUUjOtyjwVQ3HdhpuSRyJv
        WzpRTo-so7pMpdgKWUk0jlEwjiqBJAwcuw5lca39VznGdMLAg6o-EEenb
        EQxgkeS0xxEteISQcQUNPm8KxaV1xKKIq-BFEpsm_bjIFPLiJwpRoEoSZ
        uqWuBJLuu1oxZC8ksQB0Wkt_IqrwaSMq8p4mzEPrFksdx9i9KZVv36AvG
        MmyKsHI864U2eThk-iNKRsvgRsqL1vMTUHbPK2ZqVwNHW3oEIay3EaN7x
        GgV4mmK8Q1k0O4jHPCFpRzHYxBtbOEZFMQeMoOVQ2F8GTOXvh9-qARmvO
        H9MYaOpdTIFaS-ZJO4OGmZOvo3fEig5M8lQvwxinfXKhc4QrPGM0pIJth
        KkixBYjvlZJlNwXTljSW8VWFex6tshg7BUiVuU8VoDtlMwRBEkqXknPYW
        NFMRtW_FMhsVIpV4RDESZlqtFXHVI3GSmHZyNFMV24h48qsHAdLYeumkS
        hTYG1Qp0LpWhr1UitEmaJ1DxuXwgGEe62VbkIUKKbdkv2CFhIZMdnkebS
        RKzoCG7Uc32ywDkqkauEsuAzOqK1vnNoKFOtloMaa5YBWwbZI_aPtKzFM
        yqx7WNBXEqt43TasSiiaAKW8U2NSFxMuA6htzZ8ougZAbtgLVamHcwpHZ
        q6B40DSETuvriVpKyFIUpxogTQvwrBFaY5MScRRE6GFMFGqYp5L26r4Eo
        kooM941UsSSRC6NVuXVFmol1pueTN7sLdPY-uiHbuECmzJFAvywh-KivW
        RRtmK4u4p1Va666LNhrFMtF3tZKlTDvgdOFlqN-zUGbWLWajishIrY5DT
        LYovSDJJ2co6MCCwrxmmd6u0wU-CtiptRtUQohlesWT1X0I4kR-NrCEmI
        FRGelq51TpDpN2jnuxFrUWfaop44QqkpsixOkeSsFwpyiIoHV4IN-NAtF
        boRbtIqoILbeS0SJe1i2_tl8Xi4xizaGMTbVg3w4C6biZ8LrTot8bmqK5
        WIKQWqUWloIyQhHJaAMTQaq4SQWNzTeTaoc5MHEkWrWHEY8moxcmLeQkQ
        toV9lsiM7S6HlKE6nLKfAJK3GVq0WQeK8fmKNcascCXElWJJd9iwvNSi9
        NvGsRwsvvxyHsw0OqqptnxsWafZojyKIykTLXobrtrgcAoryw9tNE7TVs
        KaCBBmEJ2LMUsXJKCCBk1kWpsul1ZnZRgWoSnleyJ9njK9VrZXCrYFojg
        ofqqAam-jOFbEvQIIcLJF9f-quNDsQiS9ac_ljMEE30OjQXKrmVeCxG7i
        3UmIcLO4g0zVPFXAN5biakMaMydRuQRlJ2NuaTOEqKabgJg8hc8KNG6PL
        Dxn1fDGZAzRLOsMhnEGF6--CEZJU6ly4hJmqiXpha4Wumlis26U5hAVtM
        gmpVUIzPOoFgpsVVLLOHiSOrKysoBq0Zx4xZZTVFJOwqozvXM7WEQtpmk
        7GqF-ZKnqo2YBGysVvsSJPm0I1kDMHOdHEkN09hm8NtJWnmgA1HDhVoL2
        NW6odeXkN2SjJCmjxotduUws-l3OyDu8KtGUMMc7ICrJu6XpMSsdQkSTu
        EC3ddtk1sBUQyktmMqA8Ti6G-crYSsVVlmFXE5VLeQOtC5kuFCrCEaqTe
        JWQu662W5sr4KQGcrRVjLFlHVdK1AV8Wt23ivgJmLsuU8TcEjG_ZdREvB
        iiaHKhcz1xJMxPOah1FhvcK8lOaK1nSFjSPk8iRxghUySuliw230olEzw
        fOKfzWq1gbFMH82iPYAk3rlNhzICdTIYblWwvYSnWDliN3TRvLwcmQhMc
        lYJ2G0NuYpJD0KtVEqpSuaU1fJLgdp0aRyn1kAzM6_jW-6Ab1vxovqtwJ
        ZzmZ3YM0gTVgRVm-zNm61DvaQaqVr1A4IUsQ8LLkMJpXarHRIxlLSNK3A
        qhuGv2uQA6pcuSkrmCpllETvY4g4sgt3IZgbhUtSQ3orOouknUJ1taUPX
        IDbq5EVeuvgzEsQQ5jgvmTk10zaCg2G2Tm9ZAzCJO3ZSLwN3M9XWerUD9
        motaWDvHEm_DMyQrMou9w7OsB05t1MLNLZrvBlRCyiKjkSNicYUzuazIJ
        zclQ3ziAtZVVs5a6Azhg6GYPKYGHFPaTKYO5ULdIIuIVksabFDJrRRdw9
        AxEiUvZpcIOmrAj69TTtpaJsMpgneyUu9ZtweRYk6l2zKDS5JJsq0xhJB
        ulMtcL5kscBlAcSNHUsIK9qirs87yELpvrLnOzBCklpo5lYvGlJFUjIBT
        TkkcU2BGheP1KqrgF1TrSljrYDcpm5KK2RSYU1nAERu3LaNXQDIceRIjm
        ASHIjSZI0AkiS5EiSgUcX1gQDgCRJkiR5B2Akx5EkqQOAJEmSJJkFgOQ4
        iQZcJQhMbwENm7bxnHnBLZx3MaRbwBIkiTJcTcAOHIkSZLBNhvWxiSAJE
        S5DgFYBxJkiRpB4AkSZIkeTxg27Zt28ZoLB1FqA84qpop2DMPxB3yyHWx
        Eq-fmsS1w4YUjo9rZTHlFH0q2AdUZIptdIgy0RuGddqgdyotUKb6kDbE4
        kV4FunQyxDEpOHKgiUSHekezIka8Kys0TR3PlCFqPHrR10teOkYSnQKOl
        pQdzQALJTqbhIqAomiNxIiNQFTXZWWneXHhSPESVm4lyc1OEahpnMKFsB
        ojionS9MISIq9u9dX59iNgu2gpbd5mlatoGmpjpyqjmBt5mp0Za5gpVZz
        UR17lgp0gqgLVIIdvMIpMbktErBDJqS65hy7ApUjiOjsZjXVtnitEDxJq
        aG66ApGvxHWmugByp0ds4LmGdNmmEymntVCmzCtSY5M1qUBO8kizbWc8N
        Lsw9nW0Gs7tY1vtFaiWTVDsoGVNdfvy7EFD0zJMJMuhI8etAzstQSK9Tq
        pdEzdBMUeNm5USi3YDuxszZiSWgyyWeoovtoMyHWWq2ZV91RVoMpgpZpQ
        zgMgaS7rZxLzEDtpK2trKygm6OGJjhtTtkkxQyorhvXclcNUm6s1VLtDl
        q1joy3Qo2RpWU-ZK3zs1CNSH1RJqjWGsho6Zx2oSsgGJIcZs6ziDMOLLq
        o20XU34CDxWFAlOzAwIclQXst8MptWj3tLfCOz17dx5VMYMkhLXgCU1Tg
        GjMAbNW7bZkNg47Zt2-bugBtDMS63bTCdKbESGk7cNHK5EMBNJbmW4hLK
        q0pfkQL4lCtJpZcZ5lRYExhk0XS7spt4ROnLeTaHEJbJykFmkoBhLVwfG
        lDRkpRBIW0aM6dXgKONwlc6IpD-5YTcW9ySC6cTwpkhfWUFbUi2AfdLNo
        AyhFTuqiuqzQF43RreH1EHc2G2famXv3GQzEbaFWyWKvA54ay1HF-0WaJ
        jq906C-JtlpSGDtaOkSItYVtKktMmrGCT1qEbaSxh1DZOJObUoCBLiW2d
        TBZSboKOn4bOVnLCsim9Vyu6wioklaqLMwMRpELrXJT15RJUHWB4zRiZb
        WgFzGEW1m7GCjCpoi6w7ArGdeWR1xUdVE4AhQkiPNbtYLqG2e6JS1CkRf
        tqZwgo4U6xWhpT3lokwzIBRsy3tVIsgWTSNDUusYBTn6eN4rWCcrBCVxG
        NVEXBCm6R5sZ2KBO2buNHk98WyK7DXHWwCsQ1pNVVy-YUSnKsYVypCiTX
        kDsqC4TR61A2aJ02vjOIJ2ujquiZO-cSL4MSpGOSs3HCiZxVDdx8hbGiZ
        5qekUStXiHI5P1o5N0sqA6vpMc_utIDWYcuJI7GB2uf5jpa2A1k7O2hJ1
        50MvwjebFu4sckMmFXwNDJdC2gPGbeqYB24bSA5bg7XWI0ky2DTiDPkIu
        A4WapZRrtoJu8rhnJy4CktZkdm2QuWUj0CnjWs1anShG4kiTXnKkQFngg
        42-DhS-8spVTOYSjjIvgZtOSiQV7IC9NHYYg8yAy-Sq4mduYeU4rsSaXE
        dSdsI1MmiVVS8ErZp3kBO5wjEUZ4litUKhlYLm5QIFtPFgkxBVCWnInXN
        IVYldbH66DrRk768I6gWceUHbhsbZ1MuBLKqaPWZtUSumrm0pKsEkSW8b
        x9gzKVdvYjBkIn41UzoBFK3LyJsuA6kZz3MUuQeU0DhvnbYEcW5bdqWAN
        UQrDbibYg2RxwykcQtFxuoKIuEcw871DDhunD4tzhWRiZKuwORIrt6cHW
        atkIUN7RA5GRSnbytgA2mUh5lce5QSPAOVI1y5IjtErKQGbd1vwxM0p1F
        tcMZJIdtTLS1s6NgKxAtkKwi3lMgWQ3umtJ7EAdaSMlRayAXbdarDp5Lx
        pxAgMd4zJkKwMhp4iuTKzDKaQSkOh3w7Gkde4udP2zowSzGDUzMPuSMvA
        UlVLASPgOSocix9s4DzYFbqOmlN2Si5CDBPTUeN3AyiSASTj_gKQrGctq
        xE0QupVatDbeMTdKKQCOVhgu562BiGc8kqZSgbmtJFpWswNs2N6N8cTEd
        cAIqLKKN2nHDKayFL-VSAtmrgY5caoKppCbxnRPxkzJ4IxAzLamG0dPwe
        2jp0WzCAUF4lmuGuB5PqpZGWxi-Tdu83IkRu58bvpIpTjyo49xVau11BO
        q_Mb1I30pTKhuLbE-qCppVr1bMoG5MWofRNaO9FTtUULKkcxK1se60u4P
        CSpYeriVaxorWtSTbT3ZK-p8kPe3OUiL2Y0mSV6vGnamuo-xkacV8jGIs
        dadKA_ipsBKXQamggPJeduCoXCctcQSaILpxDhsIvSya1mXrwzUEtw0g9
        KyjCDNMmYFxWa1G6BBUWGlK_WoJooLVmiBGHikq3TOO9AEUt8yriBEt1F
        gjCrW17llgN6E7bRoi2FDau7PaxcRMsVt5Wr9go19VEzaBf2C4UUY5gmj
        1SF2MQJU7ZWVKrUDpFujiln1R4UivHsaQmzSNxgpGtiM9t9kSpn4bzbHv
        naKZmWq2AfTjebrYBCpdao7zaCoRVZr8-pgwzgwjVDtAJ0mjdKkiRBhRb
        KSrXlNKtbD-aKFDROcw1Ehiq5jtAIKHooV3bV9lCVdKsge8N14oiuIJm0
        cukraAjR32iF89grKzNdamJcSEltQ7aTZpjxc0KIillx5XHCHysPSmv5g
        4W2O7Nxf4EFLybMEchVUcy81g-kryZoEsoRzLTe5Iz2DuuJGTo4TWsS7E
        qZqZPWVzwm8cSfnTlMNZnTdRBWqLFRO0FhyCwrNsgWL4WWmlaQNfAKyp7
        _oiJiLDOWg3KsAU5ZdmQWsYhsm3Ua6JUbian3EvyU9yIn9BBIfVv4gU81
        FF9pZFK-RRuGcuho3tJyUIEIdS4jUsJZ2ElNbAWKI9ApOJ10yWFL91xwh
        ia6MmSbQUVIm9V4avEEx1c5up0g7a8M1AJlYnF9pUb4H7NrZay2vBJrc2
        2XXIB0rbxGVbEHSTPLkdHVP3SiyFkrSfMuqxxSoUywTl7IK1nkqWR3qFN
        gHFmJWfeOTZKu4OsYU5RWNWLaxG3QKsxAH0Xr5MYsgRRlrRxdeTFZKPQO
        KXeYsHHFFSVOiuy4xLmktxOiccSTLEdt06UeF2KVM1gajRx2oivgNSoT9
        o1WEamTIm9CohXLeNQMbUdBiaxp2WflvGlTgayFeymZpJEhaXJbvJbhY-
        rEiNo1q35r2NWEeGLEiFZUh7qBmzS6rAtsoEfP2qgIqN07jV62KJL5mJ8
        vQMXyuSqOmKTZmr0gILnRjZnWLNy3E6apVcqEmXur4e1Ezc0MhkFCmGVj
        ezBbFiQqsRKoZqj4hX5pCtSP8sQhnUaqW1RJSqSNgF3q6VIkts6gbI6Ov
        3h4nQmlz1ozQkau0juIS0Qiw7auE3tEEvYXRsZuaB2jJr6uOYLyWaxR4Y
        iR7T2sS6u4Z3ULmGNjN21tO7hS4nJs8rxUoT9HUi6Ds6-5mxy1BJLdNZm
        Pgc7IbpV61UCqx7FkV4FwUSi1CpI5kpRt8Agwbx1liMIIYgvVuNbBCKTs
        sSQmQeVyYQ0IV2XedKKrSAvabkyS-5gMV0WNe3twGuVgdykiZNZTb8MQk
        FX_GvDiqZ7Jqx6Qy4kc0YieoUxlCMptKYB1WRQO_AZunS7XqsYBZOkdyU
        uCy6A2gRc6A21apH0mB9Slu2wbkbbohLvQWuEnhBE2qFqZQlXpJsBRaRZ
        qzkyZ5SIjVEHMJknKsq1BI7RtG_eKABbHbKrC7kCkWIdGQ4GyoUnzCjIt
        BipvAq8yFbt7WcMKI5j6s3iDkRSmwxGV-cOlub0oNvY0poFzYBrV5kx60
        hYpm17IgtARLGrKsJfdFYkcIUJrr1mHrzCMLzKzV9xgy6Vh1Hpe0SuDYd
        25Nm9hzUw-hHjlS3JiNQJ1Ijdu2fWbj2CcZ14pk8msp48awbTU3Vhr-Tr
        vKFIcJPojF333KkjyGUaSZTV6aQ3L1U5roOuwHEeaE3BkySIiTaBS7LYs
        ZnfdoSZBqHdpK1LJ6nQXJpwFchNZ-vv8xp4cqvLqa0cGpWl9XayEpCRW4
        NE_pKXYuXQZRLUfXLKmFox06kAmxhaUUlY2rPQBndZc5KgVBZVccIYtqq
        a31CDpUHcdw6hTWRcLIlSsKUoKsXoqS1xKRsq3AEDV1YXdNQVsLcavky2
        UuV3TLK2A5BI-god9seFE9A6yU9tW2-oKUqZ0RZLgCjw5p0l25BC4kZnY
        dDW1I1grKALt9LbprSAbMalGvUuQSahbhPJagGlRHEktWixXCXhDOQRDB
        SVh0mU7LYCU0RTgM_Q7Y6EtCuUUuyS_aOldRNYTI30c12jsDe9orzdy2B
        1qyYl1X4TtVsuuqWM4YTasUyMbarHYtEbyJ3Bo12BWYivAUrq0sGlIcSa
        NGBOaV83iXSaO2orMgR1LTvvmbqIkV1bqhycBO6edpup4cqVNsBKorPfK
        -kQVj4uOb2vFDR71CiSzRK2yQu9bRk2U5GA74Bmmc-a3Duh2wt71OqKId
        YaORWTKF70pIrx4lS3SjKDFAtoq5NRBOoUKRmaXYWRJGeyNbGFNphZDhQ
        OeQyWBtYUOViaKmq4Ds5tTbOi1hVD-ObJWqoF3EMeuQZM0kSbIUxka8to
        uDEI22iqLLA1GVqU1kdkKUm7juLHMxtBJwoygoxXHHceqgNI0coPGksAk
        kX7kCphGrtuXkWBENVIzxI-MSUnUrAIukf69lHJDDYvE0teUQ1Y1V9IUo
        mzkVUz6AUtQccy8pgLSQ5BXnLIBYzmirr7WBhyUVr9WjuHE0rCwhyWueN
        w5IbfpWqrgUNnoiaXLDCiy50lvsjtdQkWKLAKNekZZirKCnaDVvVu3gHN
        VYX3MQLIoSq6KgTCdRPIO0I2jusa2CmbG5uautQ5Ipl3WT64IOLVbW9PQ
        NcZZ8-A7Dp3pswbQdQ6PYGNK6HaxUDiVs2AZRnOzRaRUJ1Z6RRI0iTHyf
        KRI4cOjrxEqgqospuKyO4VZK_1lMokw2JQ2EolrXkqIzAI9wynWjn4FHv
        qacrIC0RnZac4WPmUzNECZOpSgqWw2qbCREedIMNFu0NS7rDCQRm5iOle
        UzULLgCLLkIOJzyDaI66hO--g3DQi01zLYCJHtJ2biVHhKPYMtKkxqW7h
        Ep1K9Uh1g6aTE04qTYAYJ3fXApcCBWS5MWA3OSpIoePwJXFTVo2rGAVRl
        st8tgbmeSpDZxUJUksA6kcd4lkuUIso2UtZG9ClrW79RZ6QpmbuLiclb3
        E2k7CAqw45ki60A46rW27Yq4D2fkhOizUDkok4SxYkyWSmyCFauWgc2xg
        6dKJu7dAIqpENKQbnCDROpEfX1vfUiXK1YHY3fvRXzGD8yJUhCY0A3TJt
        4XvgNpMip1KbQ-VLPQMwoxUJ1rIDDQuKyN5qg5Ek_28smIPSHotx9XY9l
        F5MxAqi4uJffqQLS4qSZr12BVG3lb7q1gmRdtnJiNcF0kyAqGNkw5KuoO
        G3XXJbpCMxxZzuZ9A7IjBzXzRQHk4Xi66Ciak0sa9ZAk7uQJJmtIBrDQh
        ZDCCisukrYW2QWUj1CrhUGrmp9grYb-oYUuwMOGlkzJLUCMht7lzQHpub
        DSzYJ1ftv4KrIGVNW4YtUphGyv65IpeYkaXigzfwRxbJK4eULOsuofVTe
        hI0V7rVx6syVN58RFipMWLcXb7HWa0ool1tVSbRerw1U13_R970Yst2rT
        DSHiqJEkdDB3u8tLXXEZRi3iLuKOJJsq89gTZ4TTUs9wXJSZIUvXR-7sZ
        Ye8uDt1KkJhPJMc6uUfVsadMGMupEzmqFtXHdstEeH4X3qL6u60iO3kZO
        fwyo_KeppGj8RXzk2zV00dWW80n0QTMxLbTfSB8jmdFp02aKlNlK1l97X
        eSYTXkOLGwR4faduDnqHCOE2_ZLbx6rq35oJe0p26lepuXOWTt7Ie_DmL
        i4IDSZom4YzSEtD47tmVUra4GERBpUJACE0Uua5njuKvpK2ddy599W22r
        k_U2rbBguUz2dY6tWrvTZuZr9sdZE7-olvZu1lUrIGj9QIfauaCtaeXRZ
        4kfW5Hlxb0fr3U2lWqt6sOSaYEyZJEIdkWdSu89fZvqdnrVNRmum_xp2j
        nh2ISAYJiKwN0oNFtnSyD5Eiyw3dPBAY5diql0b9ecXVDBo2Rs63nWNr6
        fuyXTmu8nIabShdNojSNGobq52IxMKBgybmG60GIeX0pUNWh0AA9KxbRY
        BJnluZH2Jc4hI2iigbuXGkTgINqqeKLVUDKTR2dQt6gpWMhzXTRd4B2BU
        CDiSHXDgy8AnTuMqiROgCsJsYs4tGAjt1WcVdE2SATnCLSKbNhtyAJQci
        HaL0Eyo0bWcX0DiZu29hwFntXxIIy4KuVckrtDCD4tGYSHctAFDmNzVbP
        CvDauJGqTgafrcINDGcNGnZR7Zt3PoALxSCUqY0wbyrSHmTIZc"
    }
  ],
  "analysis": [],
  "attachments": [],
  "uuid": "01838789-7142-8aff-973a-91e26eb8001b"
}

A.2. Text Chat vCon

TODO: text vCon example

A.3. Email Thread Multipart vCon

The following is an unsigned form of an vCon for a 2 message email thread between 2 parties. The email messages are multipart MIME message bodies.

{
  "vcon": "0.0.1",
  "parties": [
    {
      "mailto": "b@example.com",
      "name": "Bob"
    },
    {
      "mailto": "a@example.com",
      "name": "Alice"
    }
  ],
  "dialog": [
    {
      "type": "text",
      "start": "2022-09-23T21:44:25.000+00:00",
      "duration": 0,
      "parties": [
        0,
        1
      ],
      "mimetype": "multipart/mixed; \n\tboundary=\"----=_Part_388
        8314_1108189513.1663969465698\"",
      "encoding": "None",
      "body": "------=_Part_388314_1108189513.1663969465698\n\rCo
        ontent-Type: multipart/alternative;\n\r\tboundary=\"----=
        Part_388313_805631480.1663969465697\"\n\r\n\r------=_Part
        388313_805631480.1663969465697\n\rContent-Type: text/plai
        ; charset=UTF-8\n\rContent-Transfer-Encoding: 7bit\n\r\n\
        Alice:Please find the image attached.\n\r\n\rRegards,Bob\
        \r\n\r------=_Part_388313_805631480.1663969465697\n\rCont
        nt-Type: text/html; charset=UTF-8\n\rContent-Transfer-Enc
        ding: 7bit\n\r\n\r<html><head></head><body><div class=\"y
        hoo-style-wrap\" style=\"font-family:Helvetica Neue, Helv
        tica, Arial, sans-serif;font-size:16px;\"><div dir=\"ltr\
         data-setdir=\"false\"><div><div dir=\"ltr\" style=\"font
        family: &quot;Helvetica Neue&quot;, Helvetica, Arial, san
        -serif; font-size: 16px;\">Alice:</div><div dir=\"ltr\" s
        yle=\"font-family: &quot;Helvetica Neue&quot;, Helvetica,
        Arial, sans-serif; font-size: 16px;\">Please find the ima
        e attached.<br></div><div dir=\"ltr\" style=\"font-family
         &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif
         font-size: 16px;\"><br></div><div dir=\"ltr\" style=\"fo
        t-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, s
        ns-serif; font-size: 16px;\">Regards,</div><div dir=\"ltr
        " style=\"font-family: &quot;Helvetica Neue&quot;, Helvet
        ca, Arial, sans-serif; font-size: 16px;\">Bob</div></div>
        br></div></div></body></html>\n\r------=_Part_388313_8056
        1480.1663969465697--\n\r\n\r------=_Part_388314_110818951
        .1663969465698\n\rContent-Type: image/png\n\rContent-Tran
        fer-Encoding: base64\n\rContent-Disposition: attachment;
        ilename=\"=?UTF-8?b?c2NyZWVuc2hvdC5wbmc=?=\"\n\rContent-I
        : <c4c28087-6fa1-395e-e50f-dcefd3d6bf96@yahoo.com>\n\r\n\
        iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAIAAADPdvs5AAAAA3NCSVQIC
        jb4U/gAAAAGXRFWHRT\n\rb2Z0d2FyZQBnbm9tZS1zY3JlZW5zaG907wO
        PgAAALpJREFUSInl1t0NgzAMBOC7qPvP1gW6Qjdo\n\rj4f0J4qAJI6NR
        vniE8+mwCvtzv6imTnyf1K/UclHUFWjIvaIL3CHCABSPKKtJckWfY6zw+
        j5dq\n\rISdVIzmj2klzTZG2Rme7NKgOwY6qPrMcUs+2PqchL14P+oyz+
        Hx77K5Sv8xyxAyZ0uBaxn/SpcU\n\r8NxcosAut1Y3NtjVX7UjZlmpgWT
        FyvVQPKB16tSqW53bFnKtyyZvYT3rSsAWADWAlOjseYFfwAA\n\rAABJR
        5ErkJggg==\n\r\n\r------=_Part_388314_1108189513.16639694
        5698--\n\r"
    },
    {
      "type": "text",
      "start": "2022-09-23T21:44:59.000+00:00",
      "duration": 0,
      "parties": [
        1,
        0
      ],
      "mimetype": "multipart/alternative; \n\tboundary=\"----=_Pa
        art_390234_811845464.1663969499935\"",
      "encoding": "None",
      "body": "------=_Part_390234_811845464.1663969499935\n\rCon
        ntent-Type: text/plain; charset=UTF-8\n\rContent-Transfer
        Encoding: 7bit\n\r\n\r Hi Bob:Got it. Thanks.\n\r\n\r
        n Friday, September 23, 2022, 9:44:40 PM UTC, Bob <b@exam
        le.com> wrote:  \n\r \n\r Alice:Please find the image att
        ched.\n\r\n\rRegards,Bob\n\r  \n\r------=_Part_390234_811
        45464.1663969499935\n\rContent-Type: text/html; charset=U
        F-8\n\rContent-Transfer-Encoding: 7bit\n\r\n\r<html><head
        </head><body><div class=\"ydp89e479a0yahoo-style-wrap\" s
        yle=\"font-family:Helvetica Neue, Helvetica, Arial, sans-
        erif;font-size:16px;\"><div></div>\n\r        <div><div><
        iv dir=\"ltr\" style=\"font-family: Helvetica Neue, Helve
        ica, Arial, sans-serif; font-size: 16px;\">Hi Bob:</div><
        iv dir=\"ltr\" style=\"font-family: Helvetica Neue, Helve
        ica, Arial, sans-serif; font-size: 16px;\">Got it. Thanks
        </div></div><br></div><div><br></div>\n\r        \n\r
           </div><div id=\"ydpdc5150a3yahoo_quoted_4829810715\" c
        ass=\"ydpdc5150a3yahoo_quoted\">\n\r            <div styl
        =\"font-family:'Helvetica Neue', Helvetica, Arial, sans-s
        rif;font-size:13px;color:#26282a;\">\n\r                \
        \r                <div>\n\r                    On Friday,
        September 23, 2022, 9:44:40 PM UTC, Bob &lt;b@example.com
        gt; wrote:\n\r                </div>\n\r                <
        iv><br></div>\n\r                <div><br></div>\n\r
                  <div><div id=\"ydpdc5150a3yiv4578005613\"><div>
        div style=\"font-family:Helvetica Neue, Helvetica, Arial,
        sans-serif;font-size:16px;\" class=\"ydpdc5150a3yiv457800
        613yahoo-style-wrap\"><div dir=\"ltr\"><div><div dir=\"lt
        \" style=\"font-family:Helvetica, Arial, sans-serif;font-
        ize:16px;\">Alice:</div><div dir=\"ltr\" style=\"font-fam
        ly:Helvetica, Arial, sans-serif;font-size:16px;\">Please
        ind the image attached.<br></div><div dir=\"ltr\" style=\
        font-family:Helvetica, Arial, sans-serif;font-size:16px;\
        ><br></div><div dir=\"ltr\" style=\"font-family:Helvetica
         Arial, sans-serif;font-size:16px;\">Regards,</div><div d
        r=\"ltr\" style=\"font-family:Helvetica, Arial, sans-seri
        ;font-size:16px;\">Bob</div></div><br></div></div></div><
        div></div>\n\r            </div>\n\r        </div></body>
        /html>\n\r------=_Part_390234_811845464.1663969499935--\n
        r"
    }
  ],
  "analysis": [],
  "attachments": [],
  "subject": "Account problem",
  "uuid": "0183806b-f18f-8c84-973a-91e26eb8001b"
}

A.4. Email Thread Text vCon

The following is an unsigned form of an vCon for a 3 message email thread between 2 parties. The email messages are plain text message bodies.

{
  "vcon": "0.0.1",
  "parties": [
    {
      "mailto": "a@example.com",
      "name": "Alice"
    },
    {
      "mailto": "b@example.com",
      "name": "Bob"
    }
  ],
  "dialog": [
    {
      "type": "text",
      "start": "2022-09-23T23:24:59.000+00:00",
      "duration": 0,
      "parties": [
        0,
        1
      ],
      "mimetype": "text/plain",
      "encoding": "None",
      "body": "Hi Bob:\nI just wanted to follow up to see that yo
        our account is ok now.\n\nRegards,\nAlice\n\n"
    },
    {
      "type": "text",
      "start": "2022-09-23T23:34:32.000+00:00",
      "duration": 0,
      "parties": [
        1,
        0
      ],
      "mimetype": "text/plain; charset=UTF-8",
      "encoding": "None",
      "body": "Hi Alice:\nAll is fine. Thanks.\n\n    On Friday,
         September 23, 2022, 23:24:59 PM UTC, Alice <a@example.co
        > wrote:  \n \n  Hi Bob:\n  I just wanted to follow up to
        see that your account is ok now.\n  \n  Regards,\n  Alice
        n"
    },
    {
      "type": "text",
      "start": "2022-09-23T23:38:12.000+00:00",
      "duration": 0,
      "parties": [
        0,
        1
      ],
      "mimetype": "text/plain",
      "encoding": "None",
      "body": "Awesome!\n\n    On Friday, September 23, 2022, 23:
        :34: PM UTC, Bob <b@example.com> wrote:  \n\n  Hi Alice:\
          All is fine. Thanks.\n  \n      On Friday, September 23
         2022, 23:24:59 PM UTC, Alice <a@example.com> wrote:  \n
         \n    Hi Bob:\n    I just wanted to follow up to see tha
         your account is ok now.\n    \n    Regards,\n    Alice\n
    }
  ],
  "analysis": [],
  "attachments": [],
  "subject": "Account issue followup",
  "uuid": "018380f8-60db-8464-973a-91e26eb8001b"
}

A.5. Two Party Call vCon With Externally Referenced Recording

This example vCon is for a simple 2 party PSTN call. It has a single Dialog Object which reference a single channel wav format recording with the two parties audio mixed into the single channel.

{
  "vcon": "0.0.1",
  "parties": [
    {
      "tel": "+12345678901",
      "name": "Alice"
    },
    {
      "tel": "+19876543210",
      "name": "Bob"
    }
  ],
  "dialog": [
    {
      "type": "recording",
      "start": "2022-06-21T17:53:26.000+00:00",
      "duration": 4.72,
      "parties": [
        0,
        1
      ],
      "url": "https://raw.githubusercontent.com/dgpetrie/draft-pe
        etrie-vcon/main/examples/ab_call.wav",
      "mimetype": "audio/x-wav",
      "filename": "ab_call.wav",
      "signature": "Re9R7UWKaD7yN9kxoYLbFFNSKU8XfH18NFbTc3AgT4_aB
        BubMtvGUEtRmP6XUxSS3Nl4LU-1mOCtezoTHQ67cVQ",
      "alg": "SHA-512"
    }
  ],
  "analysis": [],
  "attachments": [],
  "uuid": "0183878b-dacf-8e27-973a-91e26eb8001b"
}

A.6. Signed vCon

This example vCon is the signed form of the Two Party Call vCon With Externally Referenced Recording (Appendix A.5) example. The private key used to sign this can be found at:

https://raw.githubusercontent.com/vcon-dev/vcon/main/certs/fake_grp.key

The certificate chain is included in the x5c parameter of the header Object.

{
  "payload": "eyJ2Y29uIjoiMC4wLjEiLCJwYXJ0aWVzIjpbeyJ0ZWwiOiIrMTI
    IzNDU2Nzg5MDEiLCJuYW1lIjoiQWxpY2UifSx7InRlbCI6IisxOTg3NjU0MzI
    MCIsIm5hbWUiOiJCb2IifV0sImRpYWxvZyI6W3sidHlwZSI6InJlY29yZGluZ
    IsInN0YXJ0IjoiMjAyMi0wNi0yMVQxNzo1MzoyNi4wMDArMDA6MDAiLCJkdXJ
    dGlvbiI6NC43MiwicGFydGllcyI6WzAsMV0sInVybCI6Imh0dHBzOi8vcmF3L
    dpdGh1YnVzZXJjb250ZW50LmNvbS9kZ3BldHJpZS9kcmFmdC1wZXRyaWUtdmN
    bi9tYWluL2V4YW1wbGVzL2FiX2NhbGwud2F2IiwibWltZXR5cGUiOiJhdWRpb
    94LXdhdiIsImZpbGVuYW1lIjoiYWJfY2FsbC53YXYiLCJzaWduYXR1cmUiOiJ
    ZTlSN1VXS2FEN3lOOWt4b1lMYkZGTlNLVThYZkgxOE5GYlRjM0FnVDRfYUJ1Y
    10dkdVRXRSbVA2WFV4U1MzTmw0TFUtMW1PQ3Rlem9USFE2N2NWUSIsImFsZyI
    IlNIQS01MTIifV0sImFuYWx5c2lzIjpbXSwiYXR0YWNobWVudHMiOltdLCJ1d
    lkIjoiMDE4Mzg3OGItZGFjZi04ZTI3LTk3M2EtOTFlMjZlYjgwMDFiIn0",
  "signatures": [
    {
      "header": {
        "x5c": [
          "MIID0TCCArkCAQEwDQYJKoZIhvcNAQELBQAwgasxCzAJBgNVBAYTAl
            lVTMQswCQYDVQQIDAJNQTERMA8GA1UEBwwIRmFrZXRvd24xETAPBg
            VBAoMCEZha2VWY29uMREwDwYDVQQLDAhEaXZpc2lvbjEYMBYGA1UE
            wwPZGl2LmZha2V2Y29uLmlvMSEwHwYJKoZIhvcNAQkBFhJhZG1pbk
            mYWtldmNvbi5vcmcxGTAXBgNVHREMEGRpdi5mYWtldmNvbi5vcmcw
            hcNMjIwNjA0MDE0MzI1WhcNMzIwNjAxMDE0MzI1WjCBsDELMAkGA1
            EBhMCVVMxCzAJBgNVBAgMAk1BMREwDwYDVQQHDAhGYWtldG93bjER
            A8GA1UECgwIRmFrZVZjb24xDjAMBgNVBAsMBUdyb3VwMRwwGgYDVQ
            DDBNncnAuZGl2LmZha2V2Y29uLmlvMSEwHwYJKoZIhvcNAQkBFhJh
            G1pbkBmYWtldmNvbi5vcmcxHTAbBgNVHREMFGdycC5kaXYuZmFrZX
            jb24ub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
            MtTCxeIROb1FmWIexe7Op95qYIVNEqn+fDghxWqoYm6T75BGsl4rB
            txFQeef3Q5SJIzeqffJDssXDsyREuwQ2iTcOrZaZxs8h1NX9NjVD6
            MAwx7tw0Cgmu8rj6+/Kjs0KI8OzCuDXZGTGf/bH6EQW85qYh9IF0P
            ijf3uq+HCke6WApusx76LpUp36IzvYEuTbWBFeoLo+dyUdWmXpj0g
            HiWZtT5zxJn9VrUhJX5KlaI0palWd0fOnr7mkdq79sFsKjEOcr1la
            ceAicCpD3/zRW+7AS8atGKAMfe2CcXEABucI7DttLMXcDIJM6EOky
            7n4due1RXGuNgnjeQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAQLj
            KomSx1OqThhcO+aK0rzX6RjKh0eM0X7O7pPC81HxZKCDLhDvnUO9+
            17U6ba0bTnznKYKKG7HnDcB4dKBbH8XP2u3EnDskyoMrKpYRsRKww
            a8+RwOS7JEg+OtXYCRbWZvPjAC/z6o6OZK+QPTyK5Grw2Px2mTr6B
            dBQv7XsYWBRwOZyvSGnKyK60jcPlYUnu6Qt0fYXiYp6qF5l956fuT
            d2UyDkM7S/Z7K+OC9+aIBNKH32B3nfXqZPuP8WuiTOxcMwnefPwjx
            qndFUkyk2Y+i6nXU8oN/DGUOTfY4xbm3s3q7Dq5QPtq5kljB9yYkv
            OULCSAmWBZl+G",
          "MIIEyTCCArECAQEwDQYJKoZIhvcNAQELBQAwgagxCzAJBgNVBAYTAl
            lVTMQswCQYDVQQIDAJNQTERMA8GA1UEBwwIRmFrZXRvd24xFTATBg
            VBAoMDEZha2VWY29uIEluYzESMBAGA1UECwwJQ29ycG9yYXRlMRQw
            gYDVQQDDAtmYWtldmNvbi5pbzEhMB8GCSqGSIb3DQEJARYSYWRtaW
            AZmFrZXZjb24ub3JnMRUwEwYDVR0RDAxmYWtldmNvbi5vcmcwHhcN
            jIwNTI5MjEzOTMxWhcNMzIwNTI2MjEzOTMxWjCBqzELMAkGA1UEBh
            CVVMxCzAJBgNVBAgMAk1BMREwDwYDVQQHDAhGYWtldG93bjERMA8G
            1UECgwIRmFrZVZjb24xETAPBgNVBAsMCERpdmlzaW9uMRgwFgYDVQ
            DDA9kaXYuZmFrZXZjb24uaW8xITAfBgkqhkiG9w0BCQEWEmFkbWlu
            GZha2V2Y29uLm9yZzEZMBcGA1UdEQwQZGl2LmZha2V2Y29uLm9yZz
            CASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM81SKie1S78
            AOBDc3LflYNSL9phecmjQs/9P+iqDXSVm3xpoqszGoLn7w21aUAxl
            +F9Z80Tc70URn2qqUcVTYcx3SmgHuYgspEmJsMRor/mn3HpHr2ajh
            26RKgDGPBrtebeH1si8mX15a/ICzHxrUaE2Y/6DZ/2wGTXrAE4bYA
            UaYft5GGSZl6yP6dXg3EJy2bK2cUTdMIZG/Y7Ny1D3N4V7MBirDd5
            U7k6pMbyr3d/xoi8VL8F1mRCf6zxfFOjaMFT0atEiTp3M0rw6iS08
            y0cDFsPJzIcPgXEitUgGPo/NLgeb8ZmL1kg9B2vMgaanbuZB6il79
            4GgDIUCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAWOJJlvSQDsDROQ
            NdX3kMkAH3HYyAlE7LHNtIYHVhyt7I7WuqS6ZGvSoxSfkT0GdAN7c
            +jchdZpAnpCXGX+yHuSvrw4oSqigdSLeSUMx2zaSv4wLAvydC/zDk
            IRObyuDEKyy/pa4Na0aunPU3E1Bg0V+JqQ3RUJIy1v6AGLrliwaEI
            P3Clzi/u640dWBHabOEjxFj9bX73+FRWhit4EzOJYKvti1EXlmRjM
            j3SmsrcbGMrpu4WipEG5S05VlMhXXSyQq9IScFho5CFtamDgI3jL4
            lyrx0+CcjDkw0nW9fXdAtB3BhSYEXdLuJAvLRQixUQFwH23doumPi
            uW8euEhHTRo1pEFWQ5U59NOTUA5Ghuupo0aM2CnDD5Re8uO3ChilC
            b0FlwgMD/7ABSd1LChU8iluhKy9CEBR2zc8uTqW43Gcv/psBaejgO
            JlxZuusGVvuV1nTHRa4hmFYxxPel7ogeZzGQqFjBlb35CE+BcGYY0
            iaHefy+fmi/fN6NrrN6pBOPjVZbpCFn+wFTUyrMU5Vq/FaPe0us7i
            paQcwIz9wyide5OztpxebY8UnXmy22X+6PkHB0jnL35Qe8xl7Z0nM
            Ndy4xkzGgaa6talRDPhKkY1lIdw+KdCXJuUc7rkLKa5po9SPdvVLh
            Pu26SHkI0I+d5hz+gMp8=",
          "MIIGMzCCBBugAwIBAgIUHk/6QbzjDZ9AONAFvwYJqB/jbvowDQYJKo
            oZIhvcNAQELBQAwgagxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNQT
            RMA8GA1UEBwwIRmFrZXRvd24xFTATBgNVBAoMDEZha2VWY29uIElu
            zESMBAGA1UECwwJQ29ycG9yYXRlMRQwEgYDVQQDDAtmYWtldmNvbi
            pbzEhMB8GCSqGSIb3DQEJARYSYWRtaW5AZmFrZXZjb24ub3JnMRUw
            wYDVR0RDAxmYWtldmNvbi5vcmcwHhcNMjIwNTI5MjEzOTMxWhcNMz
            wNTI2MjEzOTMxWjCBqDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1B
            REwDwYDVQQHDAhGYWtldG93bjEVMBMGA1UECgwMRmFrZVZjb24gSW
            jMRIwEAYDVQQLDAlDb3Jwb3JhdGUxFDASBgNVBAMMC2Zha2V2Y29u
            mlvMSEwHwYJKoZIhvcNAQkBFhJhZG1pbkBmYWtldmNvbi5vcmcxFT
            TBgNVHREMDGZha2V2Y29uLm9yZzCCAiIwDQYJKoZIhvcNAQEBBQAD
            gIPADCCAgoCggIBAMIeaqkm8pn6mwUzWBgnQiY9Jr3VyVamxBc9/d
            T8eCN9mmANGzX5zGj86KtGjlDcoAzANrtsr2Dpz4zra29HWbwbOa1
            TOOaR93QgifkS802zp+zHGGRaKlq3euDqDVzyXinhsvXOVlEwkOrA
            V6kUcTIzcxVibrFfHttzv/hXUNxjCouAE7MIG6wO8y+E2bBkg7R5y
            feU4Q9npBefwtiQ8oWf0C46mDYFQ8l31goae17VpiyS3t4h5HL+1y
            dYJSWms5Qh0vp9req5AjwuHIDBxNLpO2gY1SQmSdO03oLcZwBglGK
            pQSwYgr9J5uo2B+NV9aYKEO51bySinSF8T4D/o4cq6oyJLXBwmSsL
            jjVIQBoSdRBmWh8zE2ZzFNaaBlYO9ikIaWXwbtkbsE+4QpOaOj/kU
            HLFI9iOhOidsInaOfgYzw12FtGE1Wq5x5XszwWpPWU8NQw8gzTzFz
            ObxrfcsXrs0s6feuTCDMt5Zht2HCWFr9TmYDFAfOB05kFWTi5sE5K
            aP54iJvjAFmuTDjlif7Z8ZWVal9XB+g3sMyQ8DVEj/0dXS+nRVuJQ
            UH4ql9SUIwK63RKdedALYC6X1j2lgK9aTuL+cyNJ5SbuNA95CxNgv
            tBrcO6HxlbmIDxKrAAo5aj4hnlQcY4RRbNwppCAjK+zcASlpyvRAg
            BAAGjUzBRMB0GA1UdDgQWBBSSDtfqU6+DEyYPCar08yVnnZSFzTAf
            gNVHSMEGDAWgBSSDtfqU6+DEyYPCar08yVnnZSFzTAPBgNVHRMBAf
            EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQC8JDxTdmc86YFdKElW
            nWxoPMsPeRyDYQoVTC2wydZsdJ5dGbkAhYlPPxK+zypP18fGry5PH
            Hl9mZYz+FdGjNTwllcfN9/G0Sdoy4kU9eN9KfC9OUIkBIq8D0r7AN
            3l3XmGbnIxWJEtb0SyTcqk3dwWcNTqGguhQ03jUKW5yUpVoQjN4Tt
            HyweoYTNi+HKsCUvEXGdA9wdh4jVOqYeepmsax5eTUJsKuCKqQ3+x
            7JONw85imfVotySCXsoMe7luSRYuldn8SBIpKYUGJlpWIi6Gr0mLw
            arrYoi9bwtcKAxRNXZiGQghiUw2Zsw+jmgBrEtI4Iarg8wWqJ5Mov
            MsTVpnoZ5Xywr0GznDlgcNtyqMibOULeM8yLPQrHn/tQjSiP3eUPz
            +Zb9FqzQJCCi2UiauD4mOgzBSCCbew9PDYb2QeMZqNZmN3eVNMV4h
            7t9jTc0zqPF5jluddVmpdHxLx/T9XZuSV21p8clNprJNQxprtHpxD
            jhNMIrcV39rzi9tNikwmzRMf0r40f/JWnaV668sekDXtvIj8pZwyE
            FNuaiJwojkQxDfjqk67Qs5NUQsFcaIwMes8It74ASHm8DUKEhDT2A
            gMtUDwKWrOBefrSPqjY7+EMh2yVZnQhMwpx4s7CH0za32Yq+KC8Go
            HdI6jisDEom7aHglg=="
        ],
        "alg": "RS256"
      },
      "signature": "E-KCNMrVu-ekUI2iC3QwGtYCUgQ-UKBPa2SnSOOyB7Mrm
        meS11W4auTh2G1tNvrvIUBZHfiy7WYyOZ4fTP_m0hZM21gNSatV916uAe
        27MAjBz8McTjg4jKN3YYQcNfaGygAU-QEiOPF_YL_Aj4La4UAU9zerYTJ
        WlSSDkMRITP3CBklOyrcBaqgYjQC38MCSbgNcXITNVbHX-_BPhrjxldjb
        mN6ncaYZecoVtr4ZRsm0kkEbUjWL0OPHWrCdFVGhUd6fWVyev2W2A7xv7
        i1CcVucF5CCZqcP8O7WaXspDU_LP_eThSDYRt4SLSnVlZZ8ktruckCSeB
        Fx5hiVig",
      "protected": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsIng1YyI6W
        WyJNSUlEMFRDQ0Fya0NBUUV3RFFZSktvWklodmNOQVFFTEJRQXdnYXN4Q
        pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSURBSk5RVEVSTUE4R0ExVUV
        d3dJUm1GclpYUnZkMjR4RVRBUEJnTlZCQW9NQ0VaaGEyVldZMjl1TVJFd
        R3WURWUVFMREFoRWFYWnBjMmx2YmpFWU1CWUdBMVVFQXd3UFpHbDJMbVp
        YTJWMlkyOXVMbWx2TVNFd0h3WUpLb1pJaHZjTkFRa0JGaEpoWkcxcGJrQ
        1ZV3RsZG1OdmJpNXZjbWN4R1RBWEJnTlZIUkVNRUdScGRpNW1ZV3RsZG1
        dmJpNXZjbWN3SGhjTk1qSXdOakEwTURFME16STFXaGNOTXpJd05qQXhNR
        UwTXpJMVdqQ0JzREVMTUFrR0ExVUVCaE1DVlZNeEN6QUpCZ05WQkFnTUF
        MUJNUkV3RHdZRFZRUUhEQWhHWVd0bGRHOTNiakVSTUE4R0ExVUVDZ3dJU
        1GclpWWmpiMjR4RGpBTUJnTlZCQXNNQlVkeWIzVndNUnd3R2dZRFZRUUR
        Qk5uY25BdVpHbDJMbVpoYTJWMlkyOXVMbWx2TVNFd0h3WUpLb1pJaHZjT
        FRa0JGaEpoWkcxcGJrQm1ZV3RsZG1OdmJpNXZjbWN4SFRBYkJnTlZIUkV
        RkdkeWNDNWthWFl1Wm1GclpYWmpiMjR1YjNKbk1JSUJJakFOQmdrcWhra
        c5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBdE10VEN4ZUlST2IxRm1
        SWV4ZTdPcDk1cVlJVk5FcW4rZkRnaHhXcW9ZbTZUNzVCR3NsNHJCOXR4R
        FlZWYzUTVTSkl6ZXFmZkpEc3NYRHN5UkV1d1EyaVRjT3JaYVp4czhoMU5
        OU5qVkQ2TU1Bd3g3dHcwQ2dtdThyajYrL0tqczBLSThPekN1RFhaR1RHZ
        9iSDZFUVc4NXFZaDlJRjBQdmlqZjN1cStIQ2tlNldBcHVzeDc2THBVcDM
        SXp2WUV1VGJXQkZlb0xvK2R5VWRXbVhwajBnaEhpV1p0VDV6eEpuOVZyV
        hKWDVLbGFJMHBhbFdkMGZPbnI3bWtkcTc5c0ZzS2pFT2NyMWxhbmNlQWl
        Q3BEMy96UlcrN0FTOGF0R0tBTWZlMkNjWEVBQnVjSTdEdHRMTVhjRElKT
        ZFT2t5VzduNGR1ZTFSWEd1TmduamVRSURBUUFCTUEwR0NTcUdTSWIzRFF
        QkN3VUFBNElCQVFBUUxqaEtvbVN4MU9xVGhoY08rYUswcnpYNlJqS2gwZ
        0wWDdPN3BQQzgxSHhaS0NETGhEdm5VTzkrKzE3VTZiYTBiVG56bktZS0t
        N0huRGNCNGRLQmJIOFhQMnUzRW5Ec2t5b01yS3BZUnNSS3d3SmE4K1J3T
        M3SkVnK090WFlDUmJXWnZQakFDL3o2bzZPWksrUVBUeUs1R3J3MlB4Mm1
        cjZCQWRCUXY3WHNZV0JSd09aeXZTR25LeUs2MGpjUGxZVW51NlF0MGZZW
        lZcDZxRjVsOTU2ZnVUMGQyVXlEa003Uy9aN0srT0M5K2FJQk5LSDMyQjN
        ZlhxWlB1UDhXdWlUT3hjTXduZWZQd2p4YXFuZEZVa3lrMlkraTZuWFU4b
        4vREdVT1RmWTR4Ym0zczNxN0RxNVFQdHE1a2xqQjl5WWt2Y09VTENTQW1
        QlpsK0ciLCJNSUlFeVRDQ0FyRUNBUUV3RFFZSktvWklodmNOQVFFTEJRQ
        dnYWd4Q3pBSkJnTlZCQVlUQWxWVE1Rc3dDUVlEVlFRSURBSk5RVEVSTUE
        R0ExVUVCd3dJUm1GclpYUnZkMjR4RlRBVEJnTlZCQW9NREVaaGEyVldZM
        l1SUVsdVl6RVNNQkFHQTFVRUN3d0pRMjl5Y0c5eVlYUmxNUlF3RWdZRFZ
        UUREQXRtWVd0bGRtTnZiaTVwYnpFaE1COEdDU3FHU0liM0RRRUpBUllTW
        dSdGFXNUFabUZyWlhaamIyNHViM0puTVJVd0V3WURWUjBSREF4bVlXdGx
        bU52Ymk1dmNtY3dIaGNOTWpJd05USTVNakV6T1RNeFdoY05Nekl3TlRJM
        1qRXpPVE14V2pDQnF6RUxNQWtHQTFVRUJoTUNWVk14Q3pBSkJnTlZCQWd
        QWsxQk1SRXdEd1lEVlFRSERBaEdZV3RsZEc5M2JqRVJNQThHQTFVRUNnd
        lSbUZyWlZaamIyNHhFVEFQQmdOVkJBc01DRVJwZG1semFXOXVNUmd3Rmd
        RFZRUUREQTlrYVhZdVptRnJaWFpqYjI0dWFXOHhJVEFmQmdrcWhraUc5d
        BCQ1FFV0VtRmtiV2x1UUdaaGEyVjJZMjl1TG05eVp6RVpNQmNHQTFVZEV
        d1FaR2wyTG1aaGEyVjJZMjl1TG05eVp6Q0NBU0l3RFFZSktvWklodmNOQ
        FFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU04MVNLaWUxUzc4VkFPQkRjM0x
        bFlOU0w5cGhlY21qUXMvOVAraXFEWFNWbTN4cG9xc3pHb0xuN3cyMWFVQ
        hsKytGOVo4MFRjNzBVUm4ycXFVY1ZUWWN4M1NtZ0h1WWdzcEVtSnNNUm9
        L21uM0hwSHIyYWpoKzI2UktnREdQQnJ0ZWJlSDFzaThtWDE1YS9JQ3pIe
        JVYUUyWS82RFovMndHVFhyQUU0YllBT1VhWWZ0NUdHU1psNnlQNmRYZzN
        SnkyYksyY1VUZE1JWkcvWTdOeTFEM040VjdNQmlyRGQ1RlU3azZwTWJ5c
        NkL3hvaThWTDhGMW1SQ2Y2enhmRk9qYU1GVDBhdEVpVHAzTTBydzZpUzA
        aHkwY0RGc1BKekljUGdYRWl0VWdHUG8vTkxnZWI4Wm1MMWtnOUIydk1nY
        FuYnVaQjZpbDc5QTRHZ0RJVUNBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0Z
        QU9DQWdFQVdPSkpsdlNRRHNEUk9RWk5kWDNrTWtBSDNIWXlBbEU3TEhOd
        lZSFZoeXQ3STdXdXFTNlpHdlNveFNma1QwR2RBTjdjVitqY2hkWnBBbnB
        WEdYK3lIdVN2cnc0b1NxaWdkU0xlU1VNeDJ6YVN2NHdMQXZ5ZEMvekRrS
        lST2J5dURFS3l5L3BhNE5hMGF1blBVM0UxQmcwVitKcVEzUlVKSXkxdjZ
        R0xybGl3YUVJZ1AzQ2x6aS91NjQwZFdCSGFiT0VqeEZqOWJYNzMrRlJXa
        l0NEV6T0pZS3Z0aTFFWGxtUmpNYmozU21zcmNiR01ycHU0V2lwRUc1UzA
        VmxNaFhYU3lRcTlJU2NGaG81Q0Z0YW1EZ0kzakw0OWx5cngwK0NjakRrd
        BuVzlmWGRBdEIzQmhTWUVYZEx1SkF2TFJRaXhVUUZ3SDIzZG91bVBpMXV
        OGV1RWhIVFJvMXBFRldRNVU1OU5PVFVBNUdodXVwbzBhTTJDbkRENVJlO
        VPM0NoaWxDVWIwRmx3Z01ELzdBQlNkMUxDaFU4aWx1aEt5OUNFQlIyemM
        dVRxVzQzR2N2L3BzQmFlamdPS0pseFp1dXNHVnZ1VjFuVEhSYTRobUZZe
        hQZWw3b2dlWnpHUXFGakJsYjM1Q0UrQmNHWVkwVmlhSGVmeStmbWkvZk4
        TnJyTjZwQk9QalZaYnBDRm4rd0ZUVXlyTVU1VnEvRmFQZTB1czdpM3BhU
        N3SXo5d3lpZGU1T3p0cHhlYlk4VW5YbXkyMlgrNlBrSEIwam5MMzVRZTh
        bDdaMG5NWk5keTR4a3pHZ2FhNnRhbFJEUGhLa1kxbElkdytLZENYSnVVY
        dya0xLYTVwbzlTUGR2VkxoRVB1MjZTSGtJMEkrZDVoeitnTXA4PSIsIk1
        SUdNekNDQkJ1Z0F3SUJBZ0lVSGsvNlFiempEWjlBT05BRnZ3WUpxQi9qY
        Zvd0RRWUpLb1pJaHZjTkFRRUxCUUF3Z2FneEN6QUpCZ05WQkFZVEFsVlR
        UXN3Q1FZRFZRUUlEQUpOUVRFUk1BOEdBMVVFQnd3SVJtRnJaWFJ2ZDI0e
        ZUQVRCZ05WQkFvTURFWmhhMlZXWTI5dUlFbHVZekVTTUJBR0ExVUVDd3d
        UTI5eWNHOXlZWFJsTVJRd0VnWURWUVFEREF0bVlXdGxkbU52Ymk1cGJ6R
        hNQjhHQ1NxR1NJYjNEUUVKQVJZU1lXUnRhVzVBWm1GclpYWmpiMjR1YjN
        bk1SVXdFd1lEVlIwUkRBeG1ZV3RsZG1OdmJpNXZjbWN3SGhjTk1qSXdOV
        k1TWpFek9UTXhXaGNOTXpJd05USTJNakV6T1RNeFdqQ0JxREVMTUFrR0E
        VUVCaE1DVlZNeEN6QUpCZ05WQkFnTUFrMUJNUkV3RHdZRFZRUUhEQWhHW
        d0bGRHOTNiakVWTUJNR0ExVUVDZ3dNUm1GclpWWmpiMjRnU1c1ak1SSXd
        QVlEVlFRTERBbERiM0p3YjNKaGRHVXhGREFTQmdOVkJBTU1DMlpoYTJWM
        kyOXVMbWx2TVNFd0h3WUpLb1pJaHZjTkFRa0JGaEpoWkcxcGJrQm1ZV3R
        ZG1OdmJpNXZjbWN4RlRBVEJnTlZIUkVNREdaaGEyVjJZMjl1TG05eVp6Q
        NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0NnZ0lCQU1
        ZWFxa204cG42bXdVeldCZ25RaVk5SnIzVnlWYW14QmM5L2R1VDhlQ045b
        1BTkd6WDV6R2o4Nkt0R2psRGNvQXpBTnJ0c3IyRHB6NHpyYTI5SFdid2J
        YTFaVE9PYVI5M1FnaWZrUzgwMnpwK3pIR0dSYUtscTNldURxRFZ6eVhpb
        hzdlhPVmxFd2tPckF2VjZrVWNUSXpjeFZpYnJGZkh0dHp2L2hYVU54akN
        dUFFN01JRzZ3Tzh5K0UyYkJrZzdSNXlkZmVVNFE5bnBCZWZ3dGlROG9XZ
        BDNDZtRFlGUThsMzFnb2FlMTdWcGl5UzN0NGg1SEwrMXlxZFlKU1dtczV
        aDB2cDlyZXE1QWp3dUhJREJ4TkxwTzJnWTFTUW1TZE8wM29MY1p3QmdsR
        tscFFTd1lncjlKNXVvMkIrTlY5YVlLRU81MWJ5U2luU0Y4VDREL280Y3E
        b3lKTFhCd21Tc0xiampWSVFCb1NkUkJtV2g4ekUyWnpGTmFhQmxZTzlpa
        lhV1h3YnRrYnNFKzRRcE9hT2ova1VJSExGSTlpT2hPaWRzSW5hT2ZnWXp
        MTJGdEdFMVdxNXg1WHN6d1dwUFdVOE5RdzhnelR6RnpWT2J4cmZjc1hyc
        BzNmZldVRDRE10NVpodDJIQ1dGcjlUbVlERkFmT0IwNWtGV1RpNXNFNUt
        YVA1NGlKdmpBRm11VERqbGlmN1o4WldWYWw5WEIrZzNzTXlROERWRWovM
        RYUytuUlZ1SlFsVUg0cWw5U1VJd0s2M1JLZGVkQUxZQzZYMWoybGdLOWF
        dUwrY3lOSjVTYnVOQTk1Q3hOZ3ZXdEJyY082SHhsYm1JRHhLckFBbzVha
        RobmxRY1k0UlJiTndwcENBaksremNBU2xweXZSQWdNQkFBR2pVekJSTUI
        R0ExVWREZ1FXQkJTU0R0ZnFVNitERXlZUENhcjA4eVZublpTRnpUQWZCZ
        5WSFNNRUdEQVdnQlNTRHRmcVU2K0RFeVlQQ2FyMDh5Vm5uWlNGelRBUEJ
        TlZIUk1CQWY4RUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQ
        FDOEpEeFRkbWM4NllGZEtFbFdRbld4b1BNc1BlUnlEWVFvVlRDMnd5ZFp
        ZEo1ZEdia0FoWWxQUHhLK3p5cFAxOGZHcnk1UEhBSGw5bVpZeitGZEdqT
        R3bGxjZk45L0cwU2RveTRrVTllTjlLZkM5T1VJa0JJcThEMHI3QU5UM2w
        WG1HYm5JeFdKRXRiMFN5VGNxazNkd1djTlRxR2d1aFEwM2pVS1c1eVVwV
        9Rak40VHRtSHl3ZW9ZVE5pK0hLc0NVdkVYR2RBOXdkaDRqVk9xWWVlcG1
        YXg1ZVRVSnNLdUNLcVEzK3hCN0pPTnc4NWltZlZvdHlTQ1hzb01lN2x1U
        JZdWxkbjhTQklwS1lVR0pscFdJaTZHcjBtTHdIYXJyWW9pOWJ3dGNLQXh
        TlhaaUdRZ2hpVXcyWnN3K2ptZ0JyRXRJNElhcmc4d1dxSjVNb3Y3TXNUV
        Bub1o1WHl3cjBHem5EbGdjTnR5cU1pYk9VTGVNOHlMUFFySG4vdFFqU2l
        M2VVUHo2K1piOUZxelFKQ0NpMlVpYXVENG1PZ3pCU0NDYmV3OVBEWWIyU
        VNWnFOWm1OM2VWTk1WNGhoN3Q5alRjMHpxUEY1amx1ZGRWbXBkSHhMeC9
        OVhadVNWMjFwOGNsTnBySk5ReHBydEhweER4amhOTUlyY1YzOXJ6aTl0T
        lrd216Uk1mMHI0MGYvSlduYVY2NjhzZWtEWHR2SWo4cFp3eUU0Rk51YWl
        d29qa1F4RGZqcWs2N1FzNU5VUXNGY2FJd01lczhJdDc0QVNIbThEVUtFa
        RUMkFTZ010VUR3S1dyT0JlZnJTUHFqWTcrRU1oMnlWWm5RaE13cHg0czd
        SDB6YTMyWXErS0M4R290SGRJNmppc0RFb203YUhnbGc9PSJdfQ"
    }
  ]
}

A.7. Encrypted vCon

This example vCon is the encrypted form of the Signed vCon (Appendix A.6) example. The private key to decrypt it can be found at:

https://raw.githubusercontent.com/vcon-dev/vcon/main/certs/fake_grp.key
{
  "protected": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1M
    MTIifQ",
  "iv": "g5zT1cKUqeGr5FRCjYZR-g",
  "cyphertext": "1CpaFE1zxtYynguDqkFfXKLlvRA6-UixwKd8ezBtX8389tpx
    x0yTH2cgZ21DC4YS85sGlo3A3aVeGJtp1E5CemfEU0COP8GItxlexQo-_AeU_
    RyBXPgSiO2digdpJPmKxh2Dej83CT6h0cW49jy87o1SmJ7bOKpv2zIe0HuNTe
    X9dpOkst26MLudEuEpmnoWHE7dG57HPHZhtGff926fkDfpseka3A4utvpSy4c
    gqEGDA2ynXQkXyJkHVtMDKlaYmNIl9zJx_VrhfJqFo-K03Ibl6af_es994SXh
    iHr7ZmYVsoDvpB5UiHRItgpSMehWDw_51nynMsFzalUKOh5ymyFYHMEf-0iCq
    a20lYHVipBab-iPiDpdYx9Xi7GHq9ExqJPAXhgN6hfZyWpO8yIh0l8patpGF_
    Eyz8qnNijViaoQQLreHU4vo67W3IGGH9KZlXWb12uqrCCboz2CNtn8prUM89D
    d1m-ocz3fELh5MBOyjeuoGP9pr-PSn1iUlrSiIL-PQC1Yi-TuclAfOnAM8k4i
    tn3GEHe2rFdC2ZZ3V331U6UGXyUYkUXjB87kBOSO_DsMcS1IjDIf0agK9YT8C
    1iCLif6tctLrUumV1Wy70ilEh_Hn5aQT5OKxW4PvPuj5o5tpydVvFI0RxNmyM
    tF-V15keziPyKgjuFBc9_KN_E10yS1SnYHne01OFQl5pn7GWQnlLFgxgG4cGf
    gNtvSTR5ZKUlysPkw6AyA0TFk84leqTd7Hjn06aSUQs2oI1U_CPrTsRMXcORy
    OaRl3nmMz8YqHO5o8tJGWEJsGeL-czDL__ZZjIm6eaPcTwC5MxPyHCYybaHJ3
    daHplPjTEQ-3Ip4fcqCtYtTaOH-PllzuxERT0c3_hS8wKpmK-D_wNyjDiPiUb
    g7BdhcJJ6ir5Lr1paXSHQoNdtyBM25d9Z1V0AbYkbggAI4y0ZWDwz_ByXCpiB
    jjyXYaaJFetXxhOBhQbXD5GGquo6MwnCMlddLLQmrhGZ9StY3uQPJQPaY0IX8
    G_RNh5mAWUWV-RvTGNXYx6RTHbuEtA903b5jJgD9ZVBrAuSlvz-nxMFFlywIC
    JFoN5ktT0iKv94zs8MgmN9CASliGAO6I7l9AWzvaQJE9yP1BggbB5zvQm2kCJ
    _HIQCecrH4spo2pZ1wGHaPTPtnNyvHTqI0Fz5BF_oo3SNQEMWBCGKyauyeyj_
    vCiXPeKNrY8EadLY9m_js_KYqb31Al5lP0W_gXjSLkBDtgZ4wTJ0T3sipEDVN
    xkXq7k7cI9AsDgbh0mfeFHpm2oKLUQYblYP7SLI30dkjm8R2A7WQrvAgsqUhl
    HiyRpseIyi2SP0UiZLFQlBV-p5WIwcMEtLrCT02_St-jwJRBiNtRYgyFLLlJo
    u2lqriyYB5R4h_w79YEkUxkohnVK1au43_6Wo_RWzVOulM6GzSm3_qSNwDSLm
    0wiB_q2M8ofqKquqyYL1AYhxx8BeFQJpbVdd4CkGGD06gPpYtxxyJoxtzFBgB
    vvGT9dER5iS9JaYPPks-Mt79JFHBBBpb7gYIT0ntD1psV7JdxQGhnND2PMkVi
    r18d5q9tZkVZSute9vb1Th7ykxUaPv8ufBCJ1EzNiyM8yx2h6y_SJDquTTTSv
    iC8HbNsgnZn06s9fT-GkJIN_cVsLWwnJE1FgkUaiJXBkkKLtsoCvubM-BW2hg
    YiZB9tfrSq_XfWBKKylm89dirPnUqvT7Cy-T-7HR7TaJ1XXUO4LreaMM-ZjG4
    FKz3qXI5H7eMGiyfHZ9rAYt6r3TFaA0XJAtR0lVF4amSfW4Ysujd2ks04R1-V
    DU0Xde3hYMtRfmRwpMqlw3tX226ixCY1gTJLVwU3G2eUwUrDsG58JKSLATT4O
    XtiXgLthAOEaZ48Zrsy_H-j3Qe4P4lrrZAQ1gNOqo93HGNtTUBshmKTxdoBql
    A-I0t4XoXKeqMVS3CvnvoZEnqnh5eBqa1lvof1747ACjrxFR41gUQaNt0eJtI
    DIrOQRnXk1e5UwVEf8pw9DcaIJ66zi-yHbVypnhIUBA_17j-JqnFld9ZUPFdE
    C-7V-OR21AxUoLAI1g1HWGtS--QlNskhTt6XM8dDwVMtNwOcpzISCq3gi93FI
    1T4-er9XbD7tmccXQzDi8r9FfYujeeOUtGLRV-hYksBAOgmG7uC3pH8rYrE8p
    7ip6oXz865CkHR_10Qp2_KGF9_WCl20C1IfhE7a_AeeeW6ysD72s5FkKzabc0
    z1sjiDiWwsN5inu_hqJZWJrUJdzitFB91mI4jV-hHcfDmrR3Z3N_QVAf1LIH3
    R-ZD0YGr55ukP4xCE-Ogtd91uv3q9ilRutpileMtAnlneiGFyzJuzHp3GQADG
    8EWkYAJe6KA9XkkP8Gnv4PLpIeo6GAGJhUXW9pTQ-tl0ksToVzyX5mtAGjx9q
    2Jzw8AJxwMovHJv3vdKErCFk9_zLpFIBADk5DDOPhCxD4w0yicfKWlTJZj4Hf
    koLJdXQ2TkB8CqgWuJC6n1EF7sQz-y0Pf3MUKJ37_-cVHB0CvU4SptwA6cskk
    o3UoF1o4tdgJtVXeGyUR0pBRim2SqrLAuHXElh1_jAb1edCWalAQVXKXzLhJL
    W88VhirkNnrYp_QrOtfcbCrXUC4z1tvlgNbOMhku7bEK-AMY-X3Z1SX7xmGbt
    yQdZ5wcMyHfVCsYS64J6apo4mapiUo6lUPBREQlQRmssQ4H2COyUYazJtLfJY
    L0HtBPyHWSL6zaBz7b_Z4pR79iq9XpyXhsxlgsDJZ_fcCyBwYdlHnXsFtd9B1
    c7jCYc9Kubmz4BD-N8FdXMgSeH1FSJPpUfrYqWP3FDLF4Lq0M-o33mSuG8nhW
    OWI83y-UHK-ZLIXmOnrNbZN0d-_2yTFOqMne1G97s67hTyr24_-AiBO3SIE6G
    B_0f7sgVSfnEPpO_F1oKTJKgiM1gKwU3c20KaaWdA2U9czvJ5-3tyETLHJDea
    S0yxpK35JUEEnikxhX1MdiebDJEbK2n4iBP6YcHVA7nr5fWIXjaH1hUuaBDDS
    yT9gy1mU096yajEEpTtti9TL7Enm02cXSd9Zo0ZsKqj5AeItwDNhJxL7_UDlH
    PeNHwww8AhsOgmisUJKzC_J7xHpFDVvy3FTObN3-lcTtaD7yazIkd5vywzqZX
    HOakBd1H-swuVA14OxPiYxS7Kt8WOtj1kF5EX6bTnbUOoM02vVwtIU9shHGtB
    RR_E-Kp0MxumnXBtqN4eDM5FjHltlbadVvi72x8gQ8Ogx59OJU-2PfvJ1JhPH
    JCJTVjQqXBubC-vFXpSQAkIQg-BXoVX2fMAv1hhLkcuK4Dssx7-ggDhWe8_1Q
    hut-b-EyT9oIw1ivvRaN1WKUKhMngc3mdszk7OmPR8yIgx5DkQ4liGzzfjr18
    hF2R-nVWb0OUBv55Ub49Pun-yRrNalmEZfSC-IOJ_Itg7rEylK_124Filbr7f
    FDHYoSgwXG2LWoj_IV8ggyuMWlYfAw8a0YNPruK0ZwLJaVFEPEgbS5mA-Yocc
    _1NqZKRY_J2MQRYAsqOaE70Uek0q5n7tdGO9S9WtlZAIl8AtSOOIjQAC_Didw
    OVMtZVmRM0NnAdfsaGT03yW4yhEw9leKlk1fb8oIX8o4lh6VBQ4DcQtma5qTH
    tOWxLMjWfb2Q96tDDPv5CpacQ1KfN6eG-BK00i6WW-2Ij6u9SrND92Lt0_4DA
    keK2EVHn1t58U2mhwH86wsJvALkS3TMnv1pKMogs1q-zo_t573Yh8tMMQ5ord
    3-ObHxaQdevGI64XsOi3UiUh36E40atxRAHy2dLHpOpkdUCFeWx3FNkwpTt9o
    Ko9-7wuYtrr4fOv4N8wslcy4D5iVpogY6qgue1vERI5GI4hqziyBIiFWM4MrE
    oIDe0oJlPKvX6CX248Ntn7l8k8Xmloxs2CnfhflnuBxReUTp5ClhmEzWFAdA8
    rgPrGtei_32X8lq67uON6lBMWdMGzKTVCT8kXufPjs9YC9DxKq65Ctay1R_jk
    GUdLmaYI0-L2o6hZTbAWXMnXypZYMDBRkcmKofZWG-cANxY6rw74UmIjTGic4
    2_OTx0blhMkt8XhmspgIq05lrMhvjFkfF26zwyP_H-qPjmBpvk2uJcbJ5c_Yr
    D-GJl90cdvHgbteu2e65h5wjJPeQzmRWCTH8a2STVhdYlkLZ8oHTzKlHfKbqp
    OsJrbfk85ssZW2oJREzc3vs9d8IW-MN-YEHvx_6zuQZQmpM7or70jbLgGArr2
    0tevfrf9qbLGdLqXUmen9xB3-kBlngzwQz90-6Vi7ZeYOrThGDzhhCCUbdj6Z
    rE1riq6DY06Ag5djftFe8KIKD5kXqSjyeVwyHwnaUNUzB36umG77UW_idCKsT
    _qMci7wGLF26-vw2Qvlgjgamy3nzTpF3HPPzYGE3G4QRbhBq3eTA0auCzurUr
    ZSkviRTAtsdJKRRIzS6Vq2tyNFMSrR0tICJaB2BwZZhHeTGKIUley8UQQbc-4
    W4R2pZbQ8v0sbQ4GLtPQj8jTC807NDvRCQC6j-2NUtnxqMUIsQdqd-8aW2L21
    4j3tKzjsvUn_pCSD-yYUpGqz2IXSZS7DxTMzIhwmi6G1tzUOjC1Sq7cmFdyXZ
    Ncz2O6liySNqOzjNxsjwrAr_oPSSpqunrmAtYeiPQAlZbrTWqJVwaGwWNJoVb
    -IWH45woIzJZYP0F0zJRvQLbHycS3nTi4DbvY3YyePu97SwIBBBoD7R5PIv0t
    zrgkdpx16WKRMsK6sUrU_jm9A99gOlx9cKIUiUrQo64Q9XxB3kRv4mMsNy3D-
    Ll1PhAQkKD_3Xmb-qVghwSkceXXZOIjWzlg1ncdtx1pEsIEM4LnXzf5cIx5HV
    63DvtT2hvtNCeUwfoAiwUfrxFcLgOlx_0qSuzTcTEl99e2NgLXzVuGz9knOLl
    RRFVvrDjXjkGu8XlTaPQJH2Ijqwx174vx4Xp7WGP_W6DvRwE2gF8VCxqbLv7W
    ronQd6ck1fHPtCxibJekmIEhCkD1slShw4H-X3ajgVADXos1AV2QPJWEBdGvd
    ILWBsGin5sykgIjk2X7dc3MfIV4z1Bs1zq15HBeoMtV5sMYzLyv5Ne97Ico5X
    dizFhoNMJJza2SHeZC_Chr0CM0kXjod_Z15rLEEDZxSO0iOhxspZ0mjtuOYnd
    Wgg9VTM4JbHmum2kmN7Vav22epVfDFmC7OdUSXQmyt0iTRKaScXC3utxzfsnr
    S3eGvIyYj-2ykxOfsKYwGIH0zu3IuCdS70PatjJqmDzjPzwbt_epmpXyLOaw7
    1ZUvolDia14YDATB_kNtRWsdCvlvtb7DtcLdyw5a-ZbhZFhQihA7vSCl-5eB0
    8VlJ-NQq8H6eJjRjHAHDAvgUG2K4vR-_-VFYdvIc3s9u66QPUdfn1aQXEkY4K
    b4CoVpiwBvn0mx-drpfaoCQf7SIrcsrqYtqS23IOR2ogjChmaXp2X2KCZddNs
    VVOzMQWHa-MEvgB1jGVJe8cOl6UPMRz0Otaa463fbmvFKq7O_VTWWgd5mxVVS
    kTmjm1XopYTUS20qgmkl0nnEal74t62A_25sTvhUKJPjA8PAjo34RQpaEdZY-
    ZkcsnyCDajx7iUpjigaCLpAXYmvAZNcF9UMt83LqFVLZ1_QOKP9riAJ3MCwv0
    1xfIePk6L3sACEOED_BWSvixlpu5zaf8CSPaQdRrc6zFXWN29p1w1ajiK2iIx
    yiNf_QxrGQD_qaGzYk7ZGdEuaa-eL2W7VHAVynkQ06RbkFpsDIsbu7nHgKGb2
    rVmr-pp2EBHPrZwRZOglW9--FefJCwHBiFA27wRHohuaIAApG7jkmVdXfnXiM
    0EoNq_BGmq-WK5iKeyyqmsp2Z2nER07IJQIb65tarI7PNdpstQLD7Vn27BeqH
    ENYMe_99id0fASn33LyUz3KCAsqFmoRoI_6I_c04-DfGssLBWp6NpVI_rDpN6
    WwPsbBVT5o7EdIXj043SE4WbmwuG0nw7O4tmuMddH47YO7gQ5oGHng-a2QBG8
    PCv1cB5MSkQxBDDpOLJpqW4JD1pSfFPrDa3VvyylAx2L11hGWF4XQDIulO_E3
    fkXhMMH92ClSluxKIQcZFdWzPcy3rzNrQUphFmagHVntJVIDJ2Z-EjkFSSCee
    hZ7xJV50Id4EYZht5fM8Ke35AxPE7ToIFYdBt7iaituYKoIs4DiU0r5TXdieS
    OGTneXMqMOW4bkwktn98zc_ColykaFql26wAwgi3AuwoPsERR_kwNP2N3Qj_O
    sNXJdh1hXCoggqZQpAWVynZB8GeuW1SbCvdlBtJhX0ryokus9OdpyB0v4p-pF
    AMRJ1a3LyucQLZUsBWK-GjL07RL-picifWEteZR0Cg1UVPUElsfrWR9gKDz82
    R3e4y5lFwM5KyDwkyDc8Bl2iVLrBJVEIwQnL9OV8bAie-TQlU76dtJes60YHD
    qRZaT4G2r2EdWWx7dWG1Ire1OexbybQw7wDCSA1GfhiJMZwqsaci9SX3FT9ie
    ILWNndolse3BE1lXYa4N0wt4BjTyFsGEhNp3ABX7n8HJgDXfrQ94lFpajzHz4
    WB9h4IGiBI5It52pCb6W__3C2ZaNAmPzr4DF3WZq2yYWD3HSmhAd0B4JaOqfj
    R9nxOk_4R2q5J_OPoXul0sAf0Z8mI1d0BIseMC5zWWgQpymIda8Th1T7HlpGP
    x2mVHdreZqxNJIxLtfuqaVrBVgmmgdGwZOnpiALxtkJcyHpA4dCPEscGMmI1Z
    zp7oY7GO7mjcdWlZMmWTP-m9WxtF7KY0eQkEhq4KRhvXg3IIC5tcJr_ctlFay
    yNQ_hZoKMq9qLnkVzPLXfqYUWRlCtnl1Kn0r99FX4CyT9wJ8feSYj-gkpiAZn
    7AWbl-ubiKDnhQOXgWHQ2JcPpCZAKCaxRCYirwhmP7WHkz8-flIg4Za1hO9X_
    7hHjPGkENImlzwvF38UxAiwigkgGcHuMTe-56Z5-ivSfMA5ItifawkksXu3PL
    IhA8oQqDtGaG4I8EjzW0sS3H4ARvlkKhPuHsugBTTutNtmxhACCScRO77Somn
    cMlVGN_Ay1DeebuPQYxwYHh-TwrgP7cmQ8sxoQRZNtJIOkVmN14emCN_zphGI
    vJlyhT0_Qct4cdxOasI7gjHzKznnx5BAysHnW8O66x2kOryyRBMdWlLWoy66r
    VFKcbrIJOldiaCc9tucGUI-AZYRSCglWb6U3Jnndo-wFHHlEee35SE9e100wy
    7QnGpq-ImaK_VEY2xd-Ac4r2vnyskHsYK5VwvfVwbPEQ5JLlhtjBPaiK90c7t
    sJ1_myLF6TGrTSPhHZgkOrbOIjJ7qvu293giuhVlpqktZrs2R4FjFZIKDBiUY
    IIOFuKmS9bHM08gmAtnunlPfWACmrF5AJGYm1SWtxDbjRv1zL5kfa_wSJxzsm
    V6vXlLjBBfpODNdKfs2XW4rf1MR2zwBXSlytjAZdA_vFO9rq7-dSE-NYt-f4H
    IhwzbhSxy_7JSimu7I5tS61mNgNTS27Xbz98EpL3Y8gWmwplnggJAj005qPNs
    1GlSpwAnEm56BqJpU_KLElegm5381Vo_H7y2KF94-WMiOeov_cKBpCcrwx6so
    HE1oxknl9k9A3hd6JNzTRX3OTghotvV_NJy3GN6Fl2fpgCwZjbOjt4oYuHAC6
    PRPELkU4zonSlzv7l9Xmb_GpRCF-uDlDbFBG4nJnNTqgb_9Za0cdlmmWFrYY7
    aBb24QCPuk8vD5SOLUAuI7IwmyoNznmg3w7v3eiMqtdFTU2Khwhr_7EUiTMkR
    27_uT1bU_kmw00bi2yoo5y_eCJ5sfe9p78ZbvbCZdUNpo7inlw5vWQGngwkZ2
    jv-jHaXhpaXk75YtjPdvQ7Z5Zs5ukz71kel0iEAx7bmQrXviK8vNL1JaDySJx
    4VuQEwqW6opxKa1_TtZL2GHsVaBf5rmNlidhdQUtYJWkj5A7GsqJ3i_Y18H5j
    ge_2uMDfvX8oqnECQ7ErzuDC7ObTh0FNGFhKeVpG4aVpJARicHfWsz37HmtfZ
    Y65jOxbrgUJ4Q45GmyerpdDoVZypNORSd8DiGhceCCqawX8q0bOc9tEvavWlm
    xnOvGW0TudC-KEYTDLxoHtPcRbAw1KxDnUGdfgSNfSwNgkmCBgKDxmMg2KykQ
    n86zJkBuZwpCofqHASM9ChNfpG6IUyN8kdDpyyyG5-rMQuPkHkgTDU1n0wIzV
    YGhi5W0vIDBsCbH7XeHLdoNtMRcfAgbnJqHo77Jc1jasu9CPZCGxwlWzFA7bv
    xy4dyD43DYRV4xNX_7O1TulTleae1rGbhohSGF6qkdvHFKZIYcJ_2QPctYGhA
    WwjfQmkLaXJsPdukIZD8XW7T5qrNE6BrH9LgR8dY8PZNe4sqAPaT_gMBdQJxW
    wdi4XrWAZu48EhBtCkjbPryXV9jI2cmuLe65a2-2BeCcr85OSAJO_nCbDHVfI
    FLYe6MD9yODqZS8HnviBR39RUHWbNxa26I8Dtn6fhi_vxHGrS9djIwUN-zbSy
    rD1Kmtb5MG0vi5hmFhJpayIhf-dmCXvqQwenNHJEwfA5XQEjoTC8H023uZca1
    y9npgIe3GFh4zTnVtVK9YzfQowPUBeq9SzIWpeXUjBksYBu1feTu3q1epDpIN
    zJFlV6s4ST28Fz5sffAHK2O6UurSwysJRVdrSVoHMtFE2_W1PSTxPlYy41LcW
    kx7W2cGN3qsSiGiS__uT5VsFUzyz93wcb8lZiXNjxNnhX1oj4_OXnwXt8fVce
    uhy6pp66rsRKA59RnwQ2kAU-_mZ7z2I5sRU5M4qi0qZfPxZdgAxZjazz_aF-F
    vD4qWxp5Sx195EG9tvUKKkXxry3ZXdHoI6naQ809lNrc_PnttxUS7Ok4JaSKG
    F5fzSvqKKYUoyurz3sBi8G3ihn-sL1OS8BxDD0tBffotYBBbkKa4qCSK0snVb
    Kq_RVIdLz_SfQhYvdEkTx3WKlU9S3cVG6ko2z6wbCl3zqeaW_fAhSiVCL-cwe
    DxQOUmUF1xemHDDya5piIASHfFzfkPrzLknLOS5yKR2ernS5EuGdRTXKMHhMj
    gclkFrWCAvE2xXAuFByD21WNLq1KxFQDGauej8kioElBy6WZ1SYepdONOz46p
    Whk-hqnkOBUks3WYi2kQOfd_87H4Ky2ivpthaZe3s6R0c1QYwySfbEkwWw2EN
    zNA6Svyqci161eL9I05Wo5nDhjCN0pEIx0qcmlS5XCz3fWdhu30dmEqp-4BVX
    qqJ5q9C_0cA0Z5-NSlBP50vwe1nVOUSp73AQoUS6dcv__Rbzgm5pDlPryouVY
    Mb_vhOzOqHSau9oSjqmw4mFfMDMemlO17MS2QyrVOt9tVdx7j4I5D9GLp5H_k
    FNzZ4HM0R_41sd78MNT5y_Ctt9ng1g9EbFw_1iRy7y7w1v0d1fR-DTkQ5NdHZ
    GWrMRW8eiztmqCYg6o7biaiwGmSK4MdV-XhGL-Bft6CBQTBVrzLNHV5hHXB1J
    uHk1Do2qJfFh6ifxDHqy0ozBHocFlkIkYW-WhFgWX6lMElbSGxMVG8kFczTQC
    K2x3Nx2CmFR3AKxi_Fm9y1wKatH54uAN0FK3sbDo6OoHBoH3_JfskkBeQfwVb
    O30ZiR9H1YEoOQUzXX1bBUrziVrbtfRTgklzLBTE-m24GLZqxtb8x0osCKr-5
    psChY-w4wvxEeVYmSUqjre6pxyRa9-DOY31Y9-wVWirxtQ_3nhCOBQKLrULRR
    9-_j06FysooBJ1-GAIAosIhxYAC_tO3Y02aJ0n3ME-PMMeGkr-xMPfIEkKu98
    vX1v2K6MZl235uQ-kgZaR3vt1XvtVmdMjEJJn_XCbAKvJoqAax2q5VHy93BII
    nUhay-yv_zYblJu-7iRmp19wtqL0m_pUNveunR7IYIXPIMVKaGfzbu56l3KvW
    H-HD_BrDvzA3lEd-eRiHr7XmbR9gkzTrW9wBXHScM8EXhMOZlwcY9-5n0BeW_
    tJl3k-nLxoWfulvlXS3kBc-DcV49PiPqdUUFzMrhUzBjhSeBBxAEXlJv13CWC
    P0Fj8ExBlXvXbX13JT0zBpp15vx-IlK6J5l24y7YIx6CUqI2knvQgTyhkB4YR
    TGJB8i6JfFh4VWT0Gm58T34_aVi2kZd6vUkTqtKAscg6wVfEC_0G2Pvtgptlz
    f2aSUnpY_Y5wVwfTnoo5PLi_B2ozpS3Jo-tJ5A-C3Xj1TQwxm3dkDpvMPPobM
    t8Jmf1AjhwLb11Yd_8cV9hAjMbYy-h5jw4g6nrRKqvIFGVOMtPXMA5okXK5L-
    oJZQOT_Cbq4W5tuF2rlHruHPeKsWV2TqgcvI0hatW3SUuZPJY7LYCmNfLrU-c
    ytYynrvkXFxKwiYoW7S_one1Pp-_zbVYQ6jXKr7-TPKNj4e3pQkyaBJJ1Tcey
    Rhyx2hzWC5MC7YnT78JwAgD_EhBE_6g3UQN_HJ9hxFf3HW_jfj_PXVJwYsnSc
    gOPopJZZnjWnGYX-eA8XABLKJIODB5sNgKOjZbN00eLsGLyp_0I9yMXMtiap_
    H3F8PdMmyjCqv6lOYkHLw_dFIdJ3ZcpAvsJih1Z5HW2WnM1Wvtd-WmRbMq8ES
    RsViB0IP7VdhP4Dm8T8-nVSIYdZOkUE5v0eufg0VjklhBGnxU4CjXDLe7OxNj
    lMr55S1T-p6xKxKdsUh8F0auEppy9awqXK5wDmY3OYV2UjP4c-LfiwLL9qAdV
    yRk-YzMBHWzqG0woh1wQwMePha71BuY37EQBdamw6GDhaWkcPpPwGn_JWWrTc
    i-bLve4SaZW6Xev58CcM3GGoEFbcIY0hjtOFlLnuYLWuN5yWf8vPTu781EmbV
    aT6uTPPLQibHFDEqDsbW2f9T98RgvhU5g-mkF0vU2DQYh9aAAGYVbUGzyIi5G
    WFxrFSoYvSNKGempoK4wb46kVqP-0R0LtNQkuSzK3wUc05ARmcIL-Hg0JKOr2
    8N5HPU0zQGXG3aipq-3pS6Kmp2eobYGbBg0GKd0h0z3W6vLoHUNH_o77Zcu8d
    mRymE_j22RWJdiSvVQA99-2_E5WV96MxYB9feDh-51zjtH2EHEVQLWwpH5hqk
    Qb2p3NYMEWH6GvdEpFuotO-LD_OVN5rItgExMlivm_yf8ghpkMZRspp-2zS3y
    XQijW5S22uIG1c7FGDnaLyKW8eihB03Vvtct3uoWaq1ZgILOGBANYJPtPDvdB
    UegO7knIohJ52cy2wIjK1AuTTjCDBnhJmNlcEVjlh4J9t6jqCnWbuMJlQUmt4
    93AWV1dq_b5qd9_5zdRkl6qFou1qsnwVO46VzlMHEphaKQypQ9w4MGLNFdvMc
    5pfxy2SYz43-MOEGEHNoiLSlAMbIDRYESmWE_4GIobwywA3j63oYsLNGqtFA0
    AlhktZPh3UfLWFEChDwPwWz7EmbiUk6zUJcQqdHVf4eUMpq6FKNzVWJ7KLpQB
    XEyaQoQMpggThzcdr6iuKlyBNoRcgIaOZBQRDZ6QQFIgj_Jg6A2rl7Ucj1JFC
    u4mAJQtvtrZPi4wSGHMj2g-SHKawfbvmDocU-dHy5AYxaridrRjkH1iEBjdFj
    5eH2pOHycRMBTKIgAqqzyWlDKv2CkbmgQ5ww-m4N7QkFIZtAKnOfeL2AA-K6K
    0TGfGqJRpqXFms5SLJIERnCeFqTsG3r4_Ss2WqVwItHNtfOWJSazfqa0vCiBy
    Is0bW1_73R6yrqK2XxlmCaELK7HKyyDWVA9krnSWcVJntXoSiu1crWSNWIHWU
    d4gNTjd3bhRCM9P2WX_OhQgj2UT8RfdQonD7YZ0bMsl7wcVWCg3Jv-k_7g5ho
    jgLXQHImqVvc6lboGis6vvukZo6dCbX6lLZqLD2nYe3RmGJ-bQrwyp4mvHqmF
    7BVR7XVDwe2MSDbXC5x19lA-xtX6ijUjMBSagELRtsO6vnNk6QL5e6KNo71J_
    LQ3Cu8EatnsOchcp2bAX4KdEzKNdJWxzZtCEghirho61qQ4l1U5J_xM8phvRe
    4ytMo-y97-IoG9HkF3YJueKdXcWXR0pFNy63TllUMadQe5s3PMYVHJi60lSEL
    7hYK-nlO9yO7dqsZMVveKX3dnvc6GA5qniMw4zckmZ_3YXEEbIXz4NmNaHEjB
    _S8JjInXnrt5vAEc3chdkJHWymTvulSXpEuUYRm5hsLKtxxqIsfm27vRtmNuf
    2Pu47m_C3K8WMYLcc2-ByuXp5zCuSfs0Mi2dQsJskVAWx9OsX3PaisOvC9cdR
    61u9VyYSLjxMQ6Sk0fB77TqJ8aH637-qiOxaucoXKTkaGzBCUfoaQ5f4_3Y4J
    TEB-oVZdFsduF3XnnCH6PQi30XoO-ldOscB8FU1hLh_l7L_A0kL90N3O-24yO
    pC4t5FGMC6hnPwcXm4lzR3eOUPZJJB68dyTfvfNAUf8LEgjTcwSAEDrG3LZKD
    UKvMCHuwnjwYXjWfdYZd0wGs8wU_4k8MXEpw-FH8HFFJWgq7cRdrpuvMdETlf
    ZlczSpsNknNfRc3tyUoJR7QMiwlSIjSrIzNP9g8QeeQyyCne5mnAwVZXpDetY
    Xk2ZVcDgIXs6QilA0eiVYVslctFiLjibsqnXq4ChX0RSIljf77wc-Jow83yW8
    fTMdwx6VL7M6mjau8C0GGATCLahPTQnX10zqyO54kgrBTqKt4qo9C27JDwDj-
    MQ1I_9UJY0mOxZKmoLxkp1AKRWXGaoJCsv4MD7XVvwjZbVEAajKSqDXsfWHnl
    HzNKtIpZB_5sPgNN0rLJrYBfJ0nNMyVTQ6cA3dZVFacR8cpLVbVYMA1LFQVB8
    U4qvIci9hOEhbG-faGtFWVty2YWXqhMwiC6nS5vK2fiMhtDZkkTCeeLGe-uBK
    LBv09-sq63wIe3ZrYYOwdOtw_ImcHIImXA-nA8gcRXxMgpeXVpgeKLBMsEKew
    folAHy3wlP4New8XzKqm_qUT1yyogjWZK07BNsMj0254bg_77n7gInAseKB7S
    eNosCPcAQpmKR7E3uKdMBsXPWOBn-GnQA9hJrDkXEdFaOZdb7Ej0Rc_769sBd
    cxaIo1Ak_PxELN0kzBuHxm5duRiujO5gLEAjT8VbdtRVFFeiMwb7z-ti2o4VX
    uJhvBfUxN9iaNRzqnd9CP5fuvTrPWhsX6-TmohDaGfsQvV_WU1XoMswcFZnDM
    1AzjvlyJAWgE0v28DkPQNNpUsvu7-c_d1zicdwodoTLxB9C9C0zgQYhpuuKLv
    5my3V6oZK4QY97wqxx_INOJnbpmRRiQOuUA3d0dDYL38hqEmlPTDxjICfhFr3
    UdW322nI7btoZcaHWAlBZW5djxc_vH9cChOBoacWRMcdpqD835OPcc41yVN21
    6lYmUVnqd90juEKbPjYyVg8w2SaDACpBq5rJHT3mHNS0iZHfIpwdJKJjxm94d
    P5viTS2Hn_j1CnW39tVEM53oyVmddl2Q1FP66UvoP73-mhE3iIU1CjMQkeosh
    t58wFbtOq8-hFvwKI0bMcLeZCKUP32_arAAbmMbzOO9ElG6JFoKGKxTwxOsn4
    SHx3Vowx0hgCuQAuRj-Dg31Y_6CpIJhJnSqyD9yegnpGbbkA0EKJBtUoHRw_X
    hUBTldbeR7e4i4rIpmbszx8zwljmhSMFjt-6UArIrUAvSUiksbE9cHE8Y7g9f
    OhAv-dNZpUz4ban7rBBQmKESPasmB9pAI9NGryJGbHDUDkN7ScA5mZVsp-d-Z
    3O6ApaAHDidVLHVsUmbVep1vrHp4C0MPammmVQGPdAmavmtDDhln_diGW4PBe
    looOPQq2gnNQUmz6VkjLuy_eLWCfbmAgM5xOfy7a6jycWSQhyAOK_MYxL8o_7
    dEhOK57kHdC2MboICqyQKTvibmqXC6Y5A6JVP_DAU4Ia9VgktrobNJVYTkX0L
    6OsBXeH6fQEcNAcTALLD1M-egqh6a3x0yxWv5jfGRabBd5KbxGI950Mxm99VW
    F40T2MRxmHLJ3ltWck41ac2L64hhiLl30gR6GP_YkcL0uyGxhjRhDuN4Sz8da
    KnhqztiemPLT9DHBaSBdCU69-DNdQIxs7GGuhWozJv9CBbZm-ByG_c0Uggmoz
    XtYO3qk0-coRPRUdlfi64JIOcmsOpN1yn-ZJ8Of5bctkMbQM_wM_mMO4QTpfW
    6JNKq2jvlZPKCOhFpJ1bLo1wzbp3tAcrnJtmuhdBYMFMi8RaLTaLyAY5jFNas
    U5fKNfopt3lSbplEN3E9NBX9XIMiKzu4hVYAmQ4rg9zh7i3d8Nh_V3x13XcrX
    N026WNE7F9oh37Mmn2pb2M5ud7LfvQm_2Dj6f73ONzv9nvGooNNsQs5THarwN
    41-CxDXEqVGYZCbEl1JP3907S2WugMQcd-d9_r4UL4ZXb9vh0aU4fPwoe2-ME
    LtKFCFk5wGd8VmxQ1ClCNS8isClJtiNiaLEfeZeQGapzGQ8IVFTBsDpUs2Pnl
    7eL-TEstNt8loUmToD7B2wf2HojcLQ0qHCi2W61AOHpv4h2wRF4q5iRwZ2kG7
    1WCpUSxDL04Xa9gOtZI_8M4kTVGi8oO8o1HPCD7gfLgFZ2Anvqy8POgqr1iHv
    9OL2CCNGycg8vSuTadhjHGIcBcniaRdeg0MhFaY00TFB6FpqbVNG0fPiPwMhe
    yue9nGQlmGeQLj45pQDRgQr26TnEcJPkarO1NV_O7WzrqgZ3Fd5LJ7flqgVqf
    mER30a3Iwd-AMsAZutZBF9KEgmpUP8fqixw_CRMcnFEUsoxyQk8Y150bQimH3
    obPmhuN58_1x-0X6I5xkDDOixXDU8H0pXrXPA0TTyvrlqNK8oApzVkGkJZcFE
    R3rcfAbjqHcdO91pqJN8bdqumEhNpofhFVxxFVJQ_T0pEknW1dUfHAqPU6smP
    y2jRUcmbMmwsuQFo_sKc24oApAsdqupp-t_b-fBp3SvaFU51MEJUpA6xgDqhS
    R43oVa8aL12mXTCIfH2-KQFMl2omz9nLvX8EprO_su0p3FR0sKtLwSEdXSWnn
    cZUbJA3rSoEjVz5cNujbz3a7dxQ_DJeglbfppW805AbKuEmhuREfgE_5NIKdZ
    Cna4tIwIGCuAlodQph20yJhrCNkChb3AMbbWuBhUixbID__tX9fvgSLKZKYkT
    AZf0J_0-ZsEGvUAGAfYVo_Rp435YTk1MqB7qfNLSyOhjkC8mRDipsJ7i6SObG
    fxPOjCq4q22nA9H2Wa-pa3lOu3L_YUliu5Cty_-68qk1yA80JyiJyHDBHo4ri
    KwNYej0UPmUAEUWaV289d-NoNeZAT5LuokQmn19k7RG2IRBklK8l-VsYhDbVM
    rhlEihLkc0HGOAlpUBFQo3A_sFwOEHTCYoh5c9q9Mhjynp54J3WXCl1DMzola
    OQb8sCBv28jce7CMxOuy1EBvbPd88vd88fje-LsfdqM_KBqb0c8tIotDLr-MV
    xFm9Gi3saRQ4sH027rkUWif--2NaTLNLrC9Hj2--uZMAjvidklf7mtSR5MO5k
    UywvglSFDbEc6GPC1AhcofqzSSGlf6yTugYos5r9Eld1CLNutoq2AgSipGPKA
    aZPnckL7bULv5-Gj7dNVDE6Iv4Urt4iMTKM2r9AUpi_c2M-MRgPIZeFkyor3j
    WYODNdtcfPZzCa0D1DZz1WDWIpdzSQyE8p-oHFfxl3jIwez1i7U2da3a-ob6h
    wP4z3lLP3Me0pZxk_3VVwz-nK2hToRUAtTqBcHbp4Vn5w0d68LxUZ7StbPwcR
    DHh6ApS2glM9VJh7fRkTTNPF3ru7b6rAbw-p1ZwngW5H_QDvRgp5-wm6U8Qty
    2ZBYeFPsLBfdA6VJuy-lEYjJmY9utvYBLaubsivg9JTsWS5PeDHSEzt44b4Ke
    Nb8oU9miOfMLJnUbgTKDiWRbi7MtU9zPscm6duw-QxkXjmPxwjbiV4QLHsZOx
    VcV1ECtwjnWgThZyp9otEudPxzbC7iiad4untAGQkqBSKCRooF8FB1nxLvTQZ
    vrhUFo9WqC7CIvrQschWH7V4RvdHPkh5QC-I3pjHRice_PCmUO5yhgibjpjaz
    jp5d4nSq6yWWgvUEC7xgzJY9i7p22a2l6b3HT1ehUn0wL1aCqz3_DbnZ-wxum
    w0Ti2781_s-dcPgbTFhTf1_p9Q7yAaCfMiCbCzy5TMYsWmy1qiEjWFso71P-6
    PlQiiuZERKzfjvdS2Xj9vfi38Y4XMqVZ4mVFwLjZbFhwLZXe4FYsvgilXdbV7
    0-UMrzD2WC1PktbYKxiOpKg0TMwBqrKgHBHWFMhsWsODvPLZrn5wIG5x-B81X
    glj1EbYcTVPlbPK1lRgJOn4c7TEv3ZNkXVPKpab69uQh-JU3KCPPSW7x96C2g
    Xhagx5H4BGRr1mlDliFJEqECTgjlGXYLB2vVYOyiEjD5Aj-bWBZEIYDjuFOTg
    Yy4xyxZwqRug0v1TX_1aOdLH5ux2camkoxXM3csnz0_fIQ9jCvV6NZRYA79ld
    3wIsod56X5AB4E3P4TOxNW5qHeqD32nTDVOB6r2Qm20A3zCqHOc6sEH7QGYgx
    jyAv4r3ozlKPAIVbRZ0npJZHJKuM4SvgJz2AGrfKEsfF5d6WhPLOHOrUp0LUJ
    vAz_-LYAfECi5CMwO3DV6uGnBKyiJce9K4HQVwkoyT-Zb49isrRF-dqwkrqHa
    wjd8S4i6RXDRQiJMHarqpAmFxxNtciOj3UgnJyuWCYeu35qAebw_7mFftLM2c
    X4ip-UaVB4OvVm0KNl4F0VHExJMwadz0vSRXof33QRSIapSNuhkZliIV3TT25
    jbXhvBfTnT5LjJHDslwJe0j1aRMCPX5J62Ok3yO1tHUjr3qeWNXAIVMwtboIt
    IiL3yC5hspMQ71i8etw90RPx8M51dA12mUfDhDb1Eex31S5T_tU3reHVk2Puo
    cAqsUUtGLhL31MfMcnFZ2_mtLhZIYoIvuu2Jct3-K5kVGidsIVKu1oGtOTqg-
    O7Hh14LhpkgF_K9YyOq6SGGH4yU_nooKNESe5NKcaiHL3mnYOnYIU2fI6Fz1e
    qnrd6SF7cJ5GdTMfcniP12poSmm1O8HOCfyMRNSwN4SwQpvslGtTut3F2OZJn
    ZXLDU1BhAENwoc9Rt9p7kTwRKAxpKctSwyO3-l6Vz8SmAO4eEwXSWKV2z4OOV
    Gc4QXI33juCvsaiiXoMzpdhDwig6y-L52VVoFhSnt3HE",
  "tag": "FkzX05M7YMEpxDSzSWWvPLWqGbIFSpHrOc05bXAvXcw",
  "recipients": [
    {
      "header": {
        "enc": "A256CBC-HS512"
      },
      "encrypted_key": "KQA9phPSLhov5qPZ5zJUIb1jTV2BEW3wYihG2-bc_
        _2UGMDEwwHeybvgYCRBqMhpRwk_wt9Fv7krPt36GK7NCJTM1GNmLHwrGz
        SJHeE2lquRs_oP2s36dSjGzGhqe30qdm6IHF5LYumOi-jZFdL9GfmhSFA
        h-PtY2ZC4JexnmGjgd8AiCvggWSC9986AFlukbtaQg3_sz4_SWFIiXh3-
        IvUc4dMgTUwNAmKv4hPhqKQoD9p3k78Io1O4uqUPEzaKDlbMXsvFfmrgO
        0OR516KcDpCCKQyaXfS3omy3utHjCRtff_nCbHHSV1q2loLh22YTkc19l
        Y6BRzOAe0uNg"
    }
  ]
}

A.8. Redacted Signed vCon

TODO: redacted vCon example

A.9. Appended Signed vCon

TODO: appended vCon example

A.10. vCon Group

TODO: group vCon example

Acknowledgments

TODO: acknowledgements

Authors' Addresses

Daniel G Petrie
SIPez LLC
Thomas McCarthy-Howe
Strolid