Building Medical Digital Twins with Pulse: Open Source Simulation Tools for Developers and Researchers
×
En Route Care Scenario 1

Mild ARDS with Progressive Fall in Oxygenation

Description

A 22 year-old soldier was involved in a motor vehicle crash with rollover and ejection from the vehicle. He suffered multiple rib fractures, a right femur fracture, multiple lacerations and pulmonary contusion. He underwent internal fixation of the femur fracture, received 4 units of whole blood, had a chest tube placed for a small hemothorax and returned from the operating room on mechanical ventilation. The patient is sedated and is not currently triggering the ventilator. Intraoperatively 3 L of crystalloids were administered. The patient is 6'2'' tall, weighs 200 lbs and has no known comorbidities or allergies. Chest radiograph demonstrates bi-basilar early consolidation, presence of the chest tube and pulmonary contusion.

Figure 1. Chest radiograph demonstrates bi-basilar early consolidation, presence of the chest tube and pulmonary contusion.

Segment Validation

Segment 1

Learning Objectives:

  • Identify severity of ARDS
  • Recognize acceptable ventilator settings

Recommended Actions:

  • None


Ventilator settings are (VT Target = 6.9 mL/kg (ideal)):

Mode VT (L) PIP (cmH2O) Flow (L/min) I:E TI (s) RR (bpm) PEEP (cmH2O) FiO2
VC-CMV 0.567 NA 59 NA 0.62 24 5 0.4
Table 1. Data request validation results for Segment 1.
Property Name Validation Engine Value Percent Error Percent Change Notes
MechanicalVentilator-TidalVolume(mL) EqualTo 567 569 0.288%   VT (measured)
InspiratoryRespiratoryResistance(cmH2O_s/L) EqualTo 12 [17] 11.6 3.17%   Rinsp for mild ARDS
ExpiratoryRespiratoryResistance(cmH2O_s/L) EqualTo 12 [17] 11.6 3.17%   Rexp for mild ARDS
RespiratoryCompliance(mL/cmH2O) EqualTo 50 [305] 50.8 1.52%   C requested by SME for mild ARDS
PhysiologicDeadSpaceTidalVolumeRatio EqualTo 0.54 [230] 0.515 4.72%   VD/VT for mild ARDS
ClinicalShuntFraction [0.200,0.400] [222] 0.192 4.10%   QS/QT for mild ARDS (determined from blood gas values)
HorowitzIndex(mmHg) [200,300] [115] 197 1.39%   PaO2/FiO2 for mild ARDS


Figure 2. Vitals and ventilator monitors for Segment 1.


Table 2. Data requests for Segment 1.
Property Name Engine Value
Patient-Height(in) 74.0
Patient-IdealBodyWeight(kg) 82.2
InspiratoryRespiratoryResistance(cmH2O_s/L) 11.6
ExpiratoryRespiratoryResistance(cmH2O_s/L) 11.6
RespiratoryCompliance(mL/cmH2O) 50.8
ClinicalPhysiologicDeadSpaceTidalVolumeRatio 0.482
ClinicalShuntFraction 0.192
MechanicalVentilator-TidalVolume(L) 0.569
BloodPH 7.39
Aorta-Oxygen-PartialPressure(mmHg) 78.9
Aorta-CarbonDioxide-PartialPressure(mmHg) 42.8
Aorta-Bicarbonate-Molarity(mEq/L) 26.0
OxygenSaturation 0.961
HorowitzIndex(mmHg) 197
IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.493
MechanicalVentilator-RespirationRate(1/min) 24.0
MechanicalVentilator-MeanAirwayPressure(cmH2O) 9.30
MechanicalVentilator-PeakInspiratoryPressure(cmH2O) 27.7
MechanicalVentilator-PlateauPressure(cmH2O) 16.8
HeartRate(1/min) 71.7
SystolicArterialPressure(mmHg) 114
DiastolicArterialPressure(mmHg) 74.1
MechanicalVentilator-TotalPulmonaryVentilation(L/min) 13.6
MechanicalVentilator-InspiratoryResistance(cmH2O_s/L) 11.6
MechanicalVentilator-ExpiratoryResistance(cmH2O_s/L) 11.6
MechanicalVentilator-StaticRespiratoryCompliance(mL/cmH2O) 50.0
MechanicalVentilator-DynamicRespiratoryCompliance(mL/cmH2O) 25.0
MechanicalVentilator-EndTidalCarbonDioxidePressure(mmHg) 30.9
MechanicalVentilator-EndTidalOxygenPressure(mmHg) 270
MechanicalVentilator-ExpiratoryTidalVolume(L) 0.569
MechanicalVentilator-InspiratoryExpiratoryRatio 0.330
MechanicalVentilator-InspiratoryTidalVolume(L) 0.569
MechanicalVentilator-PeakExpiratoryFlow(L/s) 0.830
MechanicalVentilator-LeakFraction 6.52e-14
MechanicalVentilator-IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.447
MechanicalVentilator-ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 5.00
MechanicalVentilator-TotalPositiveEndExpiratoryPressure(cmH2O) 5.45
PhysiologicDeadSpaceTidalVolumeRatio 0.515
PhysiologicShuntFraction 0.194
TotalRespiratoryModelInspiratoryResistance(cmH2O_s/L) 11.6
TotalRespiratoryModelExpiratoryResistance(cmH2O_s/L) 11.6
TotalRespiratoryModelCompliance(mL/cmH2O) 58.2
ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 5.00
TotalPositiveEndExpiratoryPressure(cmH2O) 5.50
EndTidalCarbonDioxidePressure(mmHg) 33.0
PhysiologicDeadSpace(mL) 296
AlveolarArterialGradient(mmHg) 184
AlveolarDeadSpace(mL) 132
AnatomicDeadSpace(mL) 164
ChestWallCompliance(L/cmH2O) 0.150
FractionOfInspiredOxygen 0.400
LungCompliance(L/cmH2O) 0.0790
VentilationPerfusionRatio 2.38
HeartStrokeVolume(mL) 82.1
HeartEjectionFraction 0.562
BloodVolume(L) 6.50
MeanArterialPressure(mmHg) 95.4
PulsePressure(mmHg) 39.8
CardiacOutput(L/min) 5.89
CarbonDioxideSaturation 0.0428
RespiratoryExchangeRatio 0.812
SystemicVascularResistance(mmHg_s/mL) 0.923
OxygenConsumptionRate(mL/min) 289
CarbonDioxideProductionRate(mL/min) 235
Patient-AlveoliSurfaceArea(m^2) 37.3
Patient-ExpiratoryReserveVolume(L) 0.984
Patient-FunctionalResidualCapacity(L) 1.85
Patient-InspiratoryCapacity(L) 3.52
Patient-InspiratoryReserveVolume(L) 2.94
Patient-ResidualVolume(L) 0.863
Patient-TidalVolumeBaseline(L) 0.580
Patient-TotalLungCapacity(L) 5.36
Patient-VitalCapacity(L) 4.50

Segment 2

The patient is loaded in the aircraft for transport to level III care. Twenty minutes into the transport, SpO2 falls and both PIP and Pplat are increased. The patient is triggering the ventilator.
Learning Objectives:

  • Recognize worsening ARDS (moderate)
  • Adjust vent settings for safety

Recommended Actions:

  • Increase FiO2 to 0.5
  • Decrease VT to 490 mL to get acceptable DP
Table 3. Data request validation results for Segment 2.
Property Name Validation Engine Value Percent Error Percent Change Notes
MechanicalVentilator-TidalVolume(mL) EqualTo 567 575 1.46%   VT (measured)
InspiratoryRespiratoryResistance(cmH2O_s/L) EqualTo 12 [17] 12.4 3.08%   Rinsp for moderate ARDS
ExpiratoryRespiratoryResistance(cmH2O_s/L) EqualTo 12 [17] 12.4 3.08%   Rexp for moderate ARDS
RespiratoryCompliance(mL/cmH2O) EqualTo 40 [305] 39.6 1.02%   C requested by SME for moderate ARDS
PhysiologicDeadSpaceTidalVolumeRatio EqualTo 0.57 [230] 0.553 3.02%   VD/VT for moderate ARDS
ClinicalShuntFraction [0.300,0.500] [222] 0.346 0.00%   QS/QT for moderate ARDS (determined from blood gas values)
HorowitzIndex(mmHg) [100,200] [115] 138 0.00%   PaO2/FiO2 for moderate ARDS


Figure 3. Vitals and ventilator monitors for Segment 2.


Table 4. Data requests for Segment 2.
Property Name Engine Value
Patient-Height(in) 74.0
Patient-IdealBodyWeight(kg) 82.2
InspiratoryRespiratoryResistance(cmH2O_s/L) 12.4
ExpiratoryRespiratoryResistance(cmH2O_s/L) 12.4
RespiratoryCompliance(mL/cmH2O) 39.6
ClinicalPhysiologicDeadSpaceTidalVolumeRatio 0.577
ClinicalShuntFraction 0.346
MechanicalVentilator-TidalVolume(L) 0.575
BloodPH 7.38
Aorta-Oxygen-PartialPressure(mmHg) 55.3
Aorta-CarbonDioxide-PartialPressure(mmHg) 43.1
Aorta-Bicarbonate-Molarity(mEq/L) 26.0
OxygenSaturation 0.903
HorowitzIndex(mmHg) 138
IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.250
MechanicalVentilator-RespirationRate(1/min) 27.8
MechanicalVentilator-MeanAirwayPressure(cmH2O) 9.18
MechanicalVentilator-PeakInspiratoryPressure(cmH2O) 26.6
MechanicalVentilator-PlateauPressure(cmH2O) 20.4
HeartRate(1/min) 112
SystolicArterialPressure(mmHg) 110
DiastolicArterialPressure(mmHg) 81.6
MechanicalVentilator-TotalPulmonaryVentilation(L/min) 16.0
MechanicalVentilator-InspiratoryResistance(cmH2O_s/L) 12.4
MechanicalVentilator-ExpiratoryResistance(cmH2O_s/L) 12.4
MechanicalVentilator-StaticRespiratoryCompliance(mL/cmH2O) 38.8
MechanicalVentilator-DynamicRespiratoryCompliance(mL/cmH2O) 26.6
MechanicalVentilator-EndTidalCarbonDioxidePressure(mmHg) 27.0
MechanicalVentilator-EndTidalOxygenPressure(mmHg) 275
MechanicalVentilator-ExpiratoryTidalVolume(L) 0.575
MechanicalVentilator-InspiratoryExpiratoryRatio 0.403
MechanicalVentilator-InspiratoryTidalVolume(L) 0.575
MechanicalVentilator-PeakExpiratoryFlow(L/s) 0.795
MechanicalVentilator-LeakFraction 0.00
MechanicalVentilator-IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.599
MechanicalVentilator-ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 5.00
MechanicalVentilator-TotalPositiveEndExpiratoryPressure(cmH2O) 5.60
PhysiologicDeadSpaceTidalVolumeRatio 0.553
PhysiologicShuntFraction 0.347
TotalRespiratoryModelInspiratoryResistance(cmH2O_s/L) 12.4
TotalRespiratoryModelExpiratoryResistance(cmH2O_s/L) 12.4
TotalRespiratoryModelCompliance(mL/cmH2O) 46.1
ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 5.00
TotalPositiveEndExpiratoryPressure(cmH2O) 5.25
EndTidalCarbonDioxidePressure(mmHg) 29.1
PhysiologicDeadSpace(mL) 318
AlveolarArterialGradient(mmHg) 214
AlveolarDeadSpace(mL) 154
AnatomicDeadSpace(mL) 164
ChestWallCompliance(L/cmH2O) 0.137
FractionOfInspiredOxygen 0.400
LungCompliance(L/cmH2O) 0.0591
VentilationPerfusionRatio 2.57
HeartStrokeVolume(mL) 57.2
HeartEjectionFraction 0.465
BloodVolume(L) 6.52
MeanArterialPressure(mmHg) 95.9
PulsePressure(mmHg) 28.1
CardiacOutput(L/min) 6.38
CarbonDioxideSaturation 0.0636
RespiratoryExchangeRatio 0.806
SystemicVascularResistance(mmHg_s/mL) 0.857
OxygenConsumptionRate(mL/min) 277
CarbonDioxideProductionRate(mL/min) 223
Patient-AlveoliSurfaceArea(m^2) 14.9
Patient-ExpiratoryReserveVolume(L) 0.943
Patient-FunctionalResidualCapacity(L) 1.39
Patient-InspiratoryCapacity(L) 3.37
Patient-InspiratoryReserveVolume(L) 2.79
Patient-ResidualVolume(L) 0.444
Patient-TidalVolumeBaseline(L) 0.580
Patient-TotalLungCapacity(L) 4.75
Patient-VitalCapacity(L) 4.31

Segment 3

Patient transport continues.

Learning Objectives:

  • Recognize need to increase PEEP to keep on PEEP matrix

Recommended Actions:

  • Increase PEEP to 10 to keep on PEEP matrix

Ventilator settings are updated to:

  • FiO2: 0.4 -> 0.5
  • VT: 567 -> 490 mL
  • Flow: 59 -> 50 L/min
Mode VT (L) PIP (cmH2O) Flow (L/min) I:E TI (s) RR (bpm) PEEP (cmH2O) FiO2
VC-CMV 0.490 NA 50 NA 0.6 24 5 0.5
Table 5. Data request validation results for Segment 3.
Property Name Validation Engine Value Percent Error Percent Change Notes
MechanicalVentilator-TidalVolume(mL) EqualTo 490 471 3.91%   VT (measured)
Aorta-Oxygen-PartialPressure(mmHg) GreaterThan Segment2 (55.3) [305] [309] 57.6   4.10% PaO2
ClinicalShuntFraction EqualTo Segment2 (0.346) [305] [309] 0.349 1.01%   QS/QT


Figure 4. Vitals and ventilator monitors for Segment 3.


Table 6. Data requests for Segment 3.
Property Name Engine Value
Patient-Height(in) 74.0
Patient-IdealBodyWeight(kg) 82.2
InspiratoryRespiratoryResistance(cmH2O_s/L) 12.4
ExpiratoryRespiratoryResistance(cmH2O_s/L) 12.4
RespiratoryCompliance(mL/cmH2O) 39.0
ClinicalPhysiologicDeadSpaceTidalVolumeRatio 0.546
ClinicalShuntFraction 0.349
MechanicalVentilator-TidalVolume(L) 0.471
BloodPH 7.37
Aorta-Oxygen-PartialPressure(mmHg) 57.6
Aorta-CarbonDioxide-PartialPressure(mmHg) 44.1
Aorta-Bicarbonate-Molarity(mEq/L) 26.1
OxygenSaturation 0.909
HorowitzIndex(mmHg) 115
IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.0634
MechanicalVentilator-RespirationRate(1/min) 31.2
MechanicalVentilator-MeanAirwayPressure(cmH2O) 8.98
MechanicalVentilator-PeakInspiratoryPressure(cmH2O) 24.2
MechanicalVentilator-PlateauPressure(cmH2O) 18.1
HeartRate(1/min) 101
SystolicArterialPressure(mmHg) 111
DiastolicArterialPressure(mmHg) 80.2
MechanicalVentilator-TotalPulmonaryVentilation(L/min) 14.7
MechanicalVentilator-InspiratoryResistance(cmH2O_s/L) 12.4
MechanicalVentilator-ExpiratoryResistance(cmH2O_s/L) 12.4
MechanicalVentilator-StaticRespiratoryCompliance(mL/cmH2O) 38.3
MechanicalVentilator-DynamicRespiratoryCompliance(mL/cmH2O) 24.6
MechanicalVentilator-EndTidalCarbonDioxidePressure(mmHg) 28.8
MechanicalVentilator-EndTidalOxygenPressure(mmHg) 349
MechanicalVentilator-ExpiratoryTidalVolume(L) 0.471
MechanicalVentilator-InspiratoryExpiratoryRatio 0.455
MechanicalVentilator-InspiratoryTidalVolume(L) 0.471
MechanicalVentilator-PeakExpiratoryFlow(L/s) 0.733
MechanicalVentilator-LeakFraction 7.25e-07
MechanicalVentilator-IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.758
MechanicalVentilator-ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 5.00
MechanicalVentilator-TotalPositiveEndExpiratoryPressure(cmH2O) 5.76
PhysiologicDeadSpaceTidalVolumeRatio 0.553
PhysiologicShuntFraction 0.352
TotalRespiratoryModelInspiratoryResistance(cmH2O_s/L) 12.4
TotalRespiratoryModelExpiratoryResistance(cmH2O_s/L) 12.4
TotalRespiratoryModelCompliance(mL/cmH2O) 46.4
ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 5.00
TotalPositiveEndExpiratoryPressure(cmH2O) 5.06
EndTidalCarbonDioxidePressure(mmHg) 32.0
PhysiologicDeadSpace(mL) 318
AlveolarArterialGradient(mmHg) 282
AlveolarDeadSpace(mL) 154
AnatomicDeadSpace(mL) 164
ChestWallCompliance(L/cmH2O) 0.132
FractionOfInspiredOxygen 0.499
LungCompliance(L/cmH2O) 0.0591
VentilationPerfusionRatio 2.39
HeartStrokeVolume(mL) 62.8
HeartEjectionFraction 0.490
BloodVolume(L) 6.54
MeanArterialPressure(mmHg) 95.9
PulsePressure(mmHg) 30.4
CardiacOutput(L/min) 6.33
CarbonDioxideSaturation 0.121
RespiratoryExchangeRatio 0.810
SystemicVascularResistance(mmHg_s/mL) 0.864
OxygenConsumptionRate(mL/min) 282
CarbonDioxideProductionRate(mL/min) 229
Patient-AlveoliSurfaceArea(m^2) 14.9
Patient-ExpiratoryReserveVolume(L) 0.943
Patient-FunctionalResidualCapacity(L) 1.39
Patient-InspiratoryCapacity(L) 3.37
Patient-InspiratoryReserveVolume(L) 2.79
Patient-ResidualVolume(L) 0.444
Patient-TidalVolumeBaseline(L) 0.580
Patient-TotalLungCapacity(L) 4.75
Patient-VitalCapacity(L) 4.31

Segment 4

Patient transport has ended.

Learning Objectives:

  • Recognize improvement due to change in vent settings
  • Consider changing mode to address work shifting

Recommended Actions:

  • None

Ventilator settings are updated to:

  • PEEP: 5 -> 10 cmH2O
Mode VT (L) PIP (cmH2O) Flow (L/min) I:E TI (s) RR (bpm) PEEP (cmH2O) FiO2
VC-CMV 0.490 NA 50 NA 0.6 24 10 0.5
Table 7. Data request validation results for Segment 4.
Property Name Validation Engine Value Percent Error Percent Change Notes
MechanicalVentilator-TidalVolume(mL) EqualTo 490 471 3.92%   VT (measured)
RespiratoryCompliance(mL/cmH2O) GreaterThan Segment3 (39.0) [230] 41.8   7.32% C
Aorta-CarbonDioxide-PartialPressure(mmHg) EqualTo Segment3 (44.1) [255] 47.3 6.97%   PaCO2
Aorta-Oxygen-PartialPressure(mmHg) GreaterThan Segment3 (57.6) [186] 66.4   15.2% PaO2
HorowitzIndex(mmHg) GreaterThan Segment3 (115) [186] 133   15.2% PaO2/FiO2
ClinicalShuntFraction LessThan Segment3 (0.349) [186] 0.285   -18.4% QS/QT (determined from blood gas values)


Figure 5. Vitals and ventilator monitors for Segment 4.


Table 8. Data requests for Segment 4.
Property Name Engine Value
Patient-Height(in) 74.0
Patient-IdealBodyWeight(kg) 82.2
InspiratoryRespiratoryResistance(cmH2O_s/L) 12.4
ExpiratoryRespiratoryResistance(cmH2O_s/L) 12.4
RespiratoryCompliance(mL/cmH2O) 41.8
ClinicalPhysiologicDeadSpaceTidalVolumeRatio 0.549
ClinicalShuntFraction 0.285
MechanicalVentilator-TidalVolume(L) 0.471
BloodPH 7.35
Aorta-Oxygen-PartialPressure(mmHg) 66.4
Aorta-CarbonDioxide-PartialPressure(mmHg) 47.3
Aorta-Bicarbonate-Molarity(mEq/L) 26.2
OxygenSaturation 0.931
HorowitzIndex(mmHg) 133
IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.0987
MechanicalVentilator-RespirationRate(1/min) 30.0
MechanicalVentilator-MeanAirwayPressure(cmH2O) 13.4
MechanicalVentilator-PeakInspiratoryPressure(cmH2O) 26.9
MechanicalVentilator-PlateauPressure(cmH2O) 22.0
HeartRate(1/min) 75.1
SystolicArterialPressure(mmHg) 114
DiastolicArterialPressure(mmHg) 75.1
MechanicalVentilator-TotalPulmonaryVentilation(L/min) 14.1
MechanicalVentilator-InspiratoryResistance(cmH2O_s/L) 12.4
MechanicalVentilator-ExpiratoryResistance(cmH2O_s/L) 12.4
MechanicalVentilator-StaticRespiratoryCompliance(mL/cmH2O) 41.8
MechanicalVentilator-DynamicRespiratoryCompliance(mL/cmH2O) 27.9
MechanicalVentilator-EndTidalCarbonDioxidePressure(mmHg) 31.2
MechanicalVentilator-EndTidalOxygenPressure(mmHg) 348
MechanicalVentilator-ExpiratoryTidalVolume(L) 0.471
MechanicalVentilator-InspiratoryExpiratoryRatio 0.429
MechanicalVentilator-InspiratoryTidalVolume(L) 0.471
MechanicalVentilator-PeakExpiratoryFlow(L/s) 0.670
MechanicalVentilator-LeakFraction 0.00
MechanicalVentilator-IntrinsicPositiveEndExpiratoryPressure(cmH2O) 0.751
MechanicalVentilator-ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 10.0
MechanicalVentilator-TotalPositiveEndExpiratoryPressure(cmH2O) 10.8
PhysiologicDeadSpaceTidalVolumeRatio 0.553
PhysiologicShuntFraction 0.290
TotalRespiratoryModelInspiratoryResistance(cmH2O_s/L) 12.4
TotalRespiratoryModelExpiratoryResistance(cmH2O_s/L) 12.4
TotalRespiratoryModelCompliance(mL/cmH2O) 46.8
ExtrinsicPositiveEndExpiratoryPressure(cmH2O) 10.0
TotalPositiveEndExpiratoryPressure(cmH2O) 10.1
EndTidalCarbonDioxidePressure(mmHg) 34.5
PhysiologicDeadSpace(mL) 318
AlveolarArterialGradient(mmHg) 267
AlveolarDeadSpace(mL) 154
AnatomicDeadSpace(mL) 164
ChestWallCompliance(L/cmH2O) 0.158
FractionOfInspiredOxygen 0.499
LungCompliance(L/cmH2O) 0.0590
VentilationPerfusionRatio 2.41
HeartStrokeVolume(mL) 80.0
HeartEjectionFraction 0.554
BloodVolume(L) 6.59
MeanArterialPressure(mmHg) 95.6
PulsePressure(mmHg) 38.6
CardiacOutput(L/min) 6.00
CarbonDioxideSaturation 0.260
RespiratoryExchangeRatio 0.812
SystemicVascularResistance(mmHg_s/mL) 0.907
OxygenConsumptionRate(mL/min) 287
CarbonDioxideProductionRate(mL/min) 233
Patient-AlveoliSurfaceArea(m^2) 14.9
Patient-ExpiratoryReserveVolume(L) 0.943
Patient-FunctionalResidualCapacity(L) 1.39
Patient-InspiratoryCapacity(L) 3.37
Patient-InspiratoryReserveVolume(L) 2.79
Patient-ResidualVolume(L) 0.444
Patient-TidalVolumeBaseline(L) 0.580
Patient-TotalLungCapacity(L) 4.75
Patient-VitalCapacity(L) 4.31

Scenario Output Plots


Figure 6. Select outputs from the scenario.


Distributed under the Apache License, Version 2.0.

See accompanying NOTICE file for details.