Teleconsultation

All operations connected to a teleconsultation appointment can be automated through the flows exchanged between the facility and Rofim. The diagram below shows the possible exchanges and how they are sequenced.

Appointment Lifecycle

Data

Value

Supported format

HL7 2.5 to HL7 2.7

Supported inbound messages

  • SIU 12 to create appointments and patients in Rofim.
  • SIU 13 to update the appointment time.
  • SIU 14 to update the patient's IPP/Patient ID and Venue ID/IEPO for the appointment.
  • SIU 15 to cancel the appointment.

Message type

POST

API endpoint

base_url/tc/siu

This interface injects appointments and patients into Rofim. You can also reschedule or cancel an appointment.

📘

When an SIU 12 message is received for an unknown patient, the patient record is created automatically. There is therefore no need to implement an ims flow to handle TC appointments and patient creation.

📘

You cannot change the physician for an already scheduled appointment. Cancel the appointment and create a new one instead.

Patient demographics data

Fields not described in this section must follow the definitions provided in the Patient data / ims flow.

❗️

For teleconsultation appointments, the patient's phone number is required at minimum. To reduce the no-show rate, we recommend also sending the email address.

Visit data

Fields not described in this section must follow the definitions provided in the Visit data flow.

Appointment data

The table below lists the key data needed when booking the appointment:

DataFieldFormatRequiredNotes
API keyMSH 4.1StringConditionalRequired when messages are collected via SFTP.
Physician identifier (RPPS)AIP.3.1StringConditionalPhysician performing the teleconsultation. Use the value in AIP.3.1 when AIP.3.13='RPPS'. This field is required if AIL.3.9 is missing.
Department or serviceAIL.3.9StringConditionalDepartment in charge of teleconsultations. Required if the physician identifier is missing.
Appointment IDSCH.2.1or SCH.1.1StringYesHospital-side unique appointment identifier. Use this value in subsequent calls to refer to the appointment. Use the value in SCH.2.1 when SCH.1.1is empty, else use SCH.1.1
Appointment start dateSCH.11.4Date/TimeYesAppointment date and time in HL7 Time Stamp format. If no timezone is provided, the timezone defaults to UTC. The appointment date must be in the future.
Appointment reasonAIS.3.1StringNo
Venue ID/IEPOPV1.19.1StringNoThe venue number (stay number) can be updated later via an SIU 13 or SIU 14 message. Useful for billing.
📘

When AIL.3.9 is provided, the appointment is created for the corresponding department (not for a specific physician). Any physician in that department can then conduct the teleconsultation.

Message examples

MSH|^~\&|Dx Care^1.2.250.1.38.3.1.101^ISO||||20250327111205||SIU^S12|86009336|P|2.5|||||FRA|8859/1
SCH||5107514^DXPLANNING||||APT|||||1^MIN^20^202503281900||||7040^^^00001^^N|||||||||35334499^DXPLANNING
PID|||110307050^^^HOPITAL SAINT-JOSEPH&750000523&M^PI~1440494052032^^^^NNFRA~DXP0476146^^^DX_TEMPORY&DX_TEMPORY&PI^PI||TESTOC^PRENOM^^^^^D~TESTOC^PRENOM^^^^^L||19440201|M|||185 RUE R LOSSERAND^^PARIS 14^^75014^FRA||01 44 12 72 72^PRN^PH^^^^^^^^^01 44 12 72 72~0661761731^PRN^CP^^^^^^^^^0661761731~^NET^Internet^[email protected]^^^^^^^^[email protected]||||||||||Non renseigne|||||||||VALI
RGS|1
AIS|1|A|TELEANEPROCTO^TC ANESTHESIE TELECONSULTATION PROCTO^1|202503281900|202503281900||20|MIN|||1^I^L
AIL|1|A|ANEST^^^00001^^D^^^660294d13d888514c58d2b64|E
AIP|1|A|^ANESTH^PROCTO1^^^^^^ASIP-SANTE-PS&1.2.250.1.71.4.2.1&ISO^D^^^RPPS|M
ZDX|||E^Externe
TODO
TODO
MSH|^~\&|590780193|CLE_API_SI_SFTP|ROFIM|ROFIM|||SIU^S15|23297190|P|2.4||||||8859/1
SCH||19496254|1|||^Suppression de RDV|||||1^^001500^20250527113500^20250527115000^^^2~~~~~||||^|05000000000^ROFIMTEST^Le Docteur Helène ROFIM Test|||TEST|01689236^TEST Thomas|||||^BOOKED|23297190
PID|||500352170^MCK^^^PI||TEST^ROFIM^^^^^L||20000501|F|||1 RUE DU TEST ROFIM  ^^LILLE^^59000^FRA||~~^NET^Internet^[email protected]|||U||700010548^MCK
PV1||O|||||||||||||VA||||700010548^MCK
RGS|1
AIS|1||CTL_SUIVI^une teleconsultation test ROFIM
AIL|1||TEST^^^^^^^^UF DE TEST|D^DEPARTMENT
AIP|1||05000000000^ROFIMTEST^Le Docteur Helène ROFIM test^^^^^^^^^^RPPS

Sending prescriptions to Rofim

DataValue
Supported formatHL7 2.5 to HL7 2.7
Supported inbound messagesMDM or ORU
Message typePOST
API endpointbase_url/tc/prescription

When the full workflow is driven from the hospital EHR (DPI), you can automate the addition of a prescription to the teleconsultation.
The document is then attached to the teleconsultation, and the patient is notified that a new document is available.

Documents are added to the appointment whose appointment ID matches the PV1.50.1 field.

Key data

Data

Field

Format

Required

Notes

Appointment ID

PV1.50.1

String

Yes

Teleconsultation appointment identifier. Must match the SCH.2.1 value used in previous SIU flows.

Patient IPP/Patient ID

PID.3.1

String

Yes

Use PID.3.1 when PID.3.5='PI'. Must match the patient's IPP/Patient ID for the appointment.

File

OBX.5.5

String

Yes

OBX.5.5 when OBX.2.1 is one of the following values:

  • ED
  • RP
  • FIC
  • The file must be a PDF encoded in base 64.

N/A

OBX.5.1

String

Yes

Not used.

N/A

OBX.5.2

String

Yes

Must be set to Application.

N/A

OBX.5.3

String

Yes

Must be set to PDF.

N/A

OBX.5.4

String

Yes

Must be set to Base64.

Unique document identifier

TXA.12

String

No

Uniquely identifies the document and lets you overwrite an earlier version.

Message example

MSH|^~\&|T703^703^FINEJ|T703^703^FINEJ|Dx Care^1.2.250.1.38.3.1.101^ISO|HUS^670000025^FINEJ|20250324155531||MDM^T02^MDM_T02|109613093|P|2.7|||||FRA|8859/15|FRA
EVN||20250324155502
PID|1||111302354^^^HOPITAL&750000111&M^PI~DXP2172125^^^DX_TEMPORY&DX_TEMPORY&PI^PI~258049935106652^^^NIRC&NIRC&NIRC^NIRC||CO^DEE^^^^^L~EZS^EDE^^^^^D||456759|F|||1-3 RUE ^^PARIS 19^^75019^FRA^H^^75119~^^^^^TUN^BDL^^|||||||725178046^^^HOPITAL&750000111&M||||||||||||||VALI
PV1|1|U||||||||||||||||||||||||||||||||||||||||||||||||6157953725178046^^^HOPITAL&750000111&M
TXA|1|COURR|AP|||202503241554||202503241555|dupond^Name^Surname^^^^^^^^^^EI||dupond^Name^Surname^^^^^^^^^^EI|25/3456/^Dx Care^1.2.250.1.38.3.1.101^ISO|||||AU||AV|||24712|||Prescription
OBX|1|RP|COURR^Prescription||^Application^PDF^Base64^JVBERi0xLjQNCiXIycrLDQo2IDAgb2JqDQo8PC9UeXBlIC9QYWdlL1BhcmVudCAzIDAgUi9Db250ZW50cyA3IDAgUi9NZWRpYUJveCBbMCAwIDU5NS4yOTk5ODc3OSA4NDEuOTAwMDI0NDFdL1Jlc291cmNlczw8L0ZvbnQ8PC9GQUFBQUogOSAwIFIvRkF......DBFMDc2ND48RTMyNUEyNjU5MkJGQ0Q0MEJGRUUzNjg4RUQwRTA3NjQ+XT4+DQpzdGFydHhyZWYNCjEyMDAxNw0KJSVFT0YNCg==~file:///C:\E\test_0.pdf||||||F|||202503241554||dupond^Name^Surname^^^^^^^^^^EI|||||||CX PNEUMO^^^^^&750000111&M^UF^^^7014

Retrieving patient questionnaires

DataValue
Supported formatHL7 2.7
Supported outbound messagesMDM or ORU
Message typeGET
API endpointbase_url/tc/form/retreive

This connector retrieves the questionnaires completed by the patient before the teleconsultation. Only questionnaires that are completed and sealed by the patient are sent.

Reports are delivered as an XML file containing all HL7 messages encoded in base 64. The XML format is shown below:

<message>
  <content>HL7 ORU or MDM #1 encoded in B64</content>
  <content>HL7 ORU or MDM #2 encoded in B64</content>
  <content>HL7 ORU or MDM #3 encoded in B64</content>
  ...
</message>

The MDM or ORU message contains the questionnaire PDF encoded in base 64, together with business metadata that simplifies processing on the EHR side. The key fields are described below.

⚠️

Localization
Examples include French-specific phone numbers, addresses, and identifiers; adjust them to your local conventions if required.

Key data

Data

Field

Format

Required

Notes

Patient IPP/Patient ID

PID.3.1

String

Yes

Functional unit

PV1.3.1

String

Conditional

Not required to create the patient, but may be needed for report and billing flows. Can be updated later when acts (MDM, Referral, TC, TCA...) are created.

Venue ID/IEPO

PV1.19.1

String

Conditional

Patient stay number. Not required for patient creation but may be needed for reports and billing. Can be updated later when acts (MDM, Referral, TC, TCA...) are created.

Appointment ID

PV1.50.1

String

Yes

Teleconsultation appointment identifier. Must match the SCH.2.1 value used in previous SIU flows.

Unique document identifier

TXA.12

Structure

Yes

Questionnaires can be resent and updated for the facility. The TXA.12 field identifies the document that is being updated. Format:

  • TXA.12.1: String "FORM_ID"
  • TXA.12.2: String "ROFIM"
  • TXA.12.3: Rofim unique questionnaire ID
  • TXA.12.4: String "UUID"

Message example

🚧

TODO

Retrieving documents uploaded by patients

DataValue
Supported formatHL7 2.7
Supported outbound messagesMDM or ORU
Message typeGET
API endpointbase_url/tc/doc/retreive

This connector retrieves documents uploaded by the patient. MDM and ORU messages include a signed link that remains valid for 15 minutes so the facility can download the uploaded file.

Upon reception, the facility must fetch the file via an HTTP GET before the link expires.

The responses are returned as an XML file containing all HL7 messages encoded in base 64. The XML format is shown below:

<message>
  <content>HL7 ORU or MDM #1 encoded in B64</content>
  <content>HL7 ORU or MDM #2 encoded in B64</content>
  <content>HL7 ORU or MDM #3 encoded in B64</content>
  ...
</message>

Key data

Data

Field

Format

Required

Notes

Patient IPP/Patient ID

PID.3.1

String

Yes

Functional unit

PV1.3.1

String

Conditional

Not required to create the patient, but may be needed for report and billing flows. Can be updated later when acts (MDM, Referral, TC, TCA...) are created.

Venue ID/IEPO

PV1.19.1

String

Conditional

Patient stay number. Not required for patient creation but may be needed for reports and billing. Can be updated later when acts (MDM, Referral, TC, TCA...) are created.

Appointment ID

PV1.50.1

String

Yes

Teleconsultation appointment identifier. Must match the SCH.2.1 value used in previous SIU flows.

Unique document identifier

TXA.12

Structure

Yes

Documents can be resent and updated for the facility. The TXA.12 field identifies the document that is being updated. Format:

  • TXA.12.1: String "FORM_ID"
  • TXA.12.2: String "ROFIM"
  • TXA.12.3: Rofim unique questionnaire ID
  • TXA.12.4: String "UUID"

Observation type

OBX.2

String

Yes

Set to RP.

File link

OBX.5

String

Yes

Signed link to the file.

Message example

🚧

TODO

Accepted file types

Patients can upload files in the following formats:

video/mp4
video/quicktime
video/x-msvideo
video/x-ms-wmv

The maximum file size is 128 MB.

File sandboxing and security

❗️

Every file is scanned by Rofim's antivirus. However, the facility must protect itself against documents uploaded by patients by:

  • Scanning files with an antivirus before storing them.
  • Sandboxing how healthcare professionals open the file (to prevent code/script execution on their workstations).

Retrieving teleconsultation reports

DataValue
Supported formatHL7 2.7
Supported outbound messagesMDM or ORU
Message typeGET
API endpointbase_url/tc/report/retreive

This connector retrieves the reports completed by the physician at the end of the teleconsultation.

Reports are delivered as an XML file containing all HL7 messages encoded in base 64. The XML format is shown below:

<message>
  <content>HL7 ORU or MDM #1 encoded in B64</content>
  <content>HL7 ORU or MDM #2 encoded in B64</content>
  <content>HL7 ORU or MDM #3 encoded in B64</content>
  ...
</message>

The MDM or ORU message contains the report PDF encoded in base 64, together with business metadata that simplifies processing on the EHR side. The key fields are described below.

Key data

Data

Field

Format

Required

Notes

Patient IPP/Patient ID

PID.3.1

String

Yes

Functional unit

PV1.3.1

String

Conditional

Not required to create the patient, but may be needed for report and billing flows. Can be updated later when acts (MDM, Referral, TC, TCA...) are created.

Venue ID/IEPO

PV1.19.1

String

Conditional

Patient stay number. Not required for patient creation but may be needed for reports and billing. Can be updated later when acts (MDM, Referral, TC, TCA...) are created.

Appointment ID

PV1.50.1

String

Yes

Teleconsultation appointment identifier. Must match the SCH.2.1 value used in previous SIU flows.

Unique document identifier

TXA.12

Structure

Yes

Reports can be resent and updated for the facility. The TXA.12 field identifies the document that is being updated. Format:

  • TXA.12.1: String "FORM_ID"
  • TXA.12.2: String "ROFIM"
  • TXA.12.3: Rofim unique questionnaire ID
  • TXA.12.4: String "UUID"

Message example

TODO

Billing

This interface retrieves acts that have been performed and are ready for billing. Every new act completed since the previous call is returned.

DataValue
Supported formatHPRIM XML 1.04 or 2.1
Supported outbound messagesHPRIM XML
Message typeGET
API endpointbase_url/tc/billing/retreive

Reports are delivered as an XML file containing all HPRIM XML messages encoded in base 64. The XML format is shown below:

<message>
  <content>HPRIMXML #1 encoded in B64</content>
  <content>HPRIMXML #2 encoded in B64</content>
  <content>HPRIMXML #3 encoded in B64</content>
  ...
</message>

Key data

🚧

TODO

Message example

<?xml version="1.0" encoding="UTF-8"?>
<message>
   <content>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGV2ZW5lbWVudHNTZXJ2ZXVyQWN0ZXMgeG1sbnM9Imh0dHA6Ly93d3cuaHByaW0ub3JnL2hwcmltWE1MIgogICAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgogICAgICAgICAgICAgICAgICAgICAgICB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiCiAgICAgICAgICAgICAgICAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5ocHJpbS5vcmcvaHByaW1YTUwiCiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249IjEuMDQiCiAgICAgICAgICAgICAgICAgICAgICAgIGFjcXVpdHRlbWVudEF0dGVuZHU9Im5vbiI+CiAgIDxlbnRldGVNZXNzYWdlIG1vZGVUcmFpdGVtZW50PSJyw6llbCI+CiAgICAgIDxpZGVudGlmaWFudE1lc3NhZ2U+NjZlOTU4ZjkwN2MxYzkxOTVhNDI1NWNhPC9pZGVudGlmaWFudE1lc3NhZ2U+CiAgICAgIDxkYXRlSGV1cmVQcm9kdWN0aW9uPjIwMjUwNDE4VDExNDkxNjwvZGF0ZUhldXJlUHJvZHVjdGlvbj4KICAgICAgPGVtZXR0ZXVyPgogICAgICAgICA8YWdlbnRzPgogICAgICAgICAgICA8YWdlbnQgY2F0ZWdvcmllPSJhcHBsaWNhdGlvbiI+CiAgICAgICAgICAgICAgIDxjb2RlPlJPRklNPC9jb2RlPgogICAgICAgICAgICA8L2FnZW50PgogICAgICAgICA8L2FnZW50cz4KICAgICAgPC9lbWV0dGV1cj4KICAgICAgPGRlc3RpbmF0YWlyZT4KICAgICAgICAgPGFnZW50cz4KICAgICAgICAgICAgPGFnZW50IGNhdGVnb3JpZT0iYXBwbGljYXRpb24iPgogICAgICAgICAgICAgICA8Y29kZT5ITTwvY29kZT4KICAgICAgICAgICAgPC9hZ2VudD4KICAgICAgICAgPC9hZ2VudHM+CiAgICAgIDwvZGVzdGluYXRhaXJlPgogICA8L2VudGV0ZU1lc3NhZ2U+CiAgIDxldmVuZW1lbnRTZXJ2ZXVyQWN0ZT4KICAgICAgPHBhdGllbnQgY29uZmlkZW50aWVsPSJub24iPgogICAgICAgICA8aWRlbnRpZmlhbnQ+CiAgICAgICAgICAgIDxlbWV0dGV1ciBldGF0PSJwZXJtYW5lbnQiIHBvcnRlZT0ibG9jYWwiIHJlZmVyZW50PSJub24iPgogICAgICAgICAgICAgICA8dmFsZXVyLz4KICAgICAgICAgICAgPC9lbWV0dGV1cj4KICAgICAgICAgICAgPHJlY2VwdGV1cj4KICAgICAgICAgICAgICAgPHZhbGV1ci8+CiAgICAgICAgICAgIDwvcmVjZXB0ZXVyPgogICAgICAgICA8L2lkZW50aWZpYW50PgogICAgICAgICA8bm9tTmFpc3NhbmNlPkFTU0FCQU48L25vbU5haXNzYW5jZT4KICAgICAgICAgPG5vbVVzdWVsPkFTU0FCQU48L25vbVVzdWVsPgogICAgICAgICA8cHJlbm9tcz4KICAgICAgICAgICAgPHByZW5vbT5Nb3NoZTwvcHJlbm9tPgogICAgICAgICA8L3ByZW5vbXM+CiAgICAgICAgIDxkYXRlTmFpc3NhbmNlIGRhdGVJbmNlcnRhaW5lPSJub24iPgogICAgICAgICAgICA8ZGF0ZT4xOTkyMDYyMTwvZGF0ZT4KICAgICAgICAgPC9kYXRlTmFpc3NhbmNlPgogICAgICA8L3BhdGllbnQ+CiAgICAgIDx2ZW51ZSBjb25maWRlbnRpZWw9Im5vbiI+CiAgICAgICAgIDxpZGVudGlmaWFudD4KICAgICAgICAgICAgPGVtZXR0ZXVyIGV0YXQ9InBlcm1hbmVudCIgcG9ydGVlPSJsb2NhbCIgcmVmZXJlbnQ9Im5vbiI+CiAgICAgICAgICAgICAgIDx2YWxldXIvPgogICAgICAgICAgICA8L2VtZXR0ZXVyPgogICAgICAgICAgICA8cmVjZXB0ZXVyPgogICAgICAgICAgICAgICA8dmFsZXVyLz4KICAgICAgICAgICAgPC9yZWNlcHRldXI+CiAgICAgICAgPC9pZGVudGlmaWFudD4KICAgICAgICAgPG5vbU5haXNzYW5jZT5BU1NBQkFOPC9ub21OYWlzc2FuY2U+CiAgICAgICAgIDxub21Vc3VlbD5BU1NBQkFOPC9ub21Vc3VlbD4KICAgICAgICAgPHByZW5vbXM+CiAgICAgICAgICAgIDxwcmVub20+TW9zaGU8L3ByZW5vbT4KICAgICAgICAgPC9wcmVub21zPgogICAgICAgICA8ZGF0ZU5haXNzYW5jZSBkYXRlSW5jZXJ0YWluZT0ibm9uIj4KICAgICAgICAgICAgPGRhdGU+MTk5MjA2MjE8L2RhdGU+CiAgICAgICAgIDwvZGF0ZU5haXNzYW5jZT4KICAgICAgPC9wYXRpZW50PgogICAgICA8dmVudWUgY29uZmlkZW50aWVsPSJub24iPgogICAgICAgICA8aWRlbnRpZmlhbnQ+CiAgICAgICAgICAgIDxlbWV0dGV1ciBldGF0PSJwZXJtYW5lbnQiIHBvcnRlZT0ibG9jYWwiIHJlZmVyZW50PSJub24iPgogICAgICAgICAgICAgICA8dmFsZXVyLz4KICAgICAgICAgICAgPC9lbWV0dGV1cj4KICAgICAgICAgICAgPHJlY2VwdGV1cj4KICAgICAgICAgICAgICAgPHZhbGV1ci8+CiAgICAgICAgICAgIDwvcmVjZXB0ZXVyPgogICAgICAgICA8L2lkZW50aWZpYW50PgogICAgICAgICA8bm9tTmFpc3NhbmNlPkFTU0FCQU48L25vbU5haXNzYW5jZT4KICAgICAgICAgPG5vbVVzdWVsPkFTU0FCQU48L25vbVVzdWVsPgogICAgICAgICA8cHJlbm9tcz4KICAgICAgICAgICAgPHByZW5vbT5Nb3NoZTwvcHJlbm9tPgogICAgICAgICA8L3ByZW5vbXM+CiAgICAgICAgIDxkYXRlTmFpc3NhbmNlIGRhdGVJbmNlcnRhaW5lPSJub24iPgogICAgICAgICAgICA8ZGF0ZT4xOTkyMDYyMTwvZGF0ZT4KICAgICAgICAgPC9kYXRlTmFpc3NhbmNlPgogICAgICA8L3ZlbnVlPgogICAgICA8aW50ZXJ2ZW50aW9uPgogICAgICAgICA8aWRlbnRpZmlhbnQ+CiAgICAgICAgICAgIDxlbWV0dGV1cj42Nzc2Nzk3OTk5Y2YzODRmNjkwMTEzNGM8L2VtZXR0ZXVyPgogICAgICAgICA8L2lkZW50aWZpYW50PgogICAgICAgICA8ZGVidXQ+CiAgICAgICAgICAgIDxkYXRlPjIwMjUtMDMtMjU8L2RhdGU+CiAgICAgICAgICAgIDxoZXVyZT4wOTowMDowMDwvaGV1cmU+CiAgICAgICAgIDwvZGVidXQ+CiAgICAgICAgIDx1bml0ZUZvbmN0aW9ubmVsbGU+CiAgICAgICAgICAgIDxjb2RlPjkwMTM8L2NvZGU+CiAgICAgICAgICAgIDxsaWJlbGU+OTAxMzwvbGliZWxlPgogICAgICAgICA8L3VuaXRlRm9uY3Rpb25uZWxsZT4KICAgICAgICAgPHBhcnRpY2lwYW50cz4KICAgICAgICAgICAgPHBhcnRpY2lwYW50PgogICAgICAgICAgICAgICA8bWVkZWNpbj4KICAgICAgICAgICAgICAgICA8bm9SUFBTPjIxMzQ1Njc1NDwvbm9SUFBTPgogICAgICAgICAgICAgICAgICA8aWRlbnRpZmljYXRpb24+CiAgICAgICAgICAgICAgICAgICAgPGNvZGUvPgogICAgICAgICAgICAgICAgICA8L2lkZW50aWZpY2F0aW9uPgogICAgICAgICAgICAgICAgICA8cGVyc29ubmU+CiAgICAgICAgICAgICAgICAgICAgPG5vbVVzdWVsPk5vbTwvbm9tVXN1ZWw+CiAgICAgICAgICAgICAgICAgICAgPHByZW5vbXM+CiAgICAgICAgICAgICAgICAgICAgICA8cHJlbm9tPlByZW5vbTwvcHJlbm9tPgogICAgICAgICAgICAgICAgICAgIDwvcHJlbm9tcz4KICAgICAgICAgICAgICAgICA8L3BlcnNvbm5lPgogICAgICAgICAgICAgICA8L21lZGVjaW4+CiAgICAgICAgICAgIDwvcGFydGljaXBhbnQ+CiAgICAgICAgIDwvcGFydGljaXBhbnRzPgogICAgICAgICA8L2ludGVydmVudGlvbj4KICAgICAgICA8ZGVtYW5kZT4KICAgICAgICAgPG1lZGVjaW4+CiAgICAgICAgICAgIDxub1JQUFM+MjEzNDU2NzU0PC9ub1JQUFM+CiAgICAgICAgICA8L21lZGVjaW4+CiAgICAgICAgICA8ZGF0ZVByZXNjcmlwdGlvbj4KICAgICAgICAgICAgPGRhdGU+MjAyNS0wMy0yNTwvZGF0ZT4KICAgICAgICAgICAgPGhldXJlPjA5OjAwPC9oZXVyZT4KICAgICAgICAgPC9kYXRlUHJlc2NyaXB0aW9uPgogICAgICAgICA8dW5pdGVGb25jdGlvbm5lbGU+CiAgICAgICAgICAgIDxjb2RlPjkwMTM8L2NvZGU+CiAgICAgICAgICAgIDxsaWJlbGU+OTAxMzwvbGliZWxlPgogICAgICAgICA8L3VuaXRlRm9uY3Rpb25uZWxsZT4KICAgICAgICA8L2RlbWFuZGU+CiAgICAgICAgPGFjdGVzTkdBUD4KICAgICAgICAgPGFjdGFOR0FQIGFjdGlvbj0iY3LDqWF0aW9uIj4KICAgICAgICAgICAgPGlkZW50aWZpYW50PgogICAgICAgICAgICAgICA8ZW1ldHRldXI+Njc3Njc5Nzk5OWNmMzg0ZjY5MDExMzRjPC9lbWV0dGV1cj4KICAgICAgICAgICAgPC9pZGVudGlmaWFudD4KICAgICAgICAgICAgPGxldHRyZUNsZT5UQzwvbGV0dHJlQ2xlPgogICAgICAgICAgICA8Y29lZmZpY2llbnQ+MTwvY29lZmZpY2llbnQ+CiAgICAgICAgICAgIDxxdWFudGl0ZT4xPC9xdWFudGl0ZT4KICAgICAgICAgICAgPGV4ZWN1dGU+CiAgICAgICAgICAgICAgPGRhdGU+MjAyNS0wMy0yNTwvZGF0ZT4KICAgICAgICAgICAgICA8aGV1cmU+MDk6MDA6MDA8L2hldXJlPgogICAgICAgICAgICA8L2V4ZWN1dGU+CiAgICAgICAgICAgIDxwcmVzdGF0YWlyZT4KICAgICAgICAgICAgICA8bWVkZWNpbnM+CiAgICAgICAgICAgICAgICA8bWVkZWNpbj4KICAgICAgICAgICAgICAgICAgPG5vUlBQUz4yMTM0NTY3NTQ8L25vUlBQUz4KICAgICAgICAgICAgICAgICAgPHBlcnNvbm5lPgogICAgICAgICAgICAgICAgICAgIDxub21Vc3VlbD5Ob208L25vbVVzdWVsPgogICAgICAgICAgICAgICAgICAgIDxwcmVub21zPgogICAgICAgICAgICAgICAgICAgICAgPHByZW5vbT5QcmVub208L3ByZW5vbT4KICAgICAgICAgICAgICAgICAgICA8L3ByZW5vbXM+CiAgICAgICAgICAgICAgICAgIDwvcGVyc29ubmU+CiAgICAgICAgICAgICAgICA8L21lZGVjaW4+CiAgICAgICAgICAgICAgICA8dW5pdGVGb25jdGlvbm5lbGU+CiAgICAgICAgICAgICAgICA8Y29kZT45MDEzPC9jb2RlPgogICAgICAgICAgICAgICAgPC91bml0ZUZvbmN0aW9ubmVsbGU+CiAgICAgICAgICAgIDwvcHJlc3RhdGFpcmU+CiAgICAgICAgIDwvYWN0ZUdpTkc+CiAgICAgICAgPC9hY3Rlc05HQVA+CiAgIDwvZXZlbmVtZW50U2VydmVyQWN0ZT4KPC9ldmVuZW1lbnRzU2VydmVyQWN0ZXM+
   </content>
</message>
TODO