Update models

- update docker compose to use new generated sql script
- update cloud event example

Issue-ID: SMO-160
Change-Id: I02d508c86ead1e1991e4b1dc2e13593890b67c7a
Signed-off-by: JvD_Ericsson <jeff.van.dam@est.tech>
diff --git a/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt b/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
index b50acad..9b69dc2 100644
--- a/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
+++ b/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
@@ -1,382 +1,312 @@
 ce_specversion:::1.0,ce_id:::a30e63c9-d29e-46ff-b99a-b63ed83fd237,ce_source:::dmi-plugin:nm-1,ce_type:::ran-logical-topology.merge,content-type:::application/yang-data+json,ce_time:::2023-11-30T09:05:00Z,ce_dataschema:::https://ties:8080/schemas/v1/r1-topology,,,{
     "entities": {
-      "o-ran-smo-teiv-oam:ManagedElement": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01",
-          "attributes": {
-            "fdn": "ManagedElement=NR01",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]"
+        "o-ran-smo-teiv-oam:ManagedElement": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01"
             }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:GNBDUFunction": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "attributes": {
-            "gNBDUId": 1,
-            "gNBId": 1,
-            "gNBIdLength": 23,
-            "dUpLMNId": {
-              "mcc": 353,
-              "mnc": 87
+        ],
+        "o-ran-smo-teiv-ran:GNBDUFunction": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "attributes": {
+                    "gNBDUId": 1,
+                    "gNBId": 1,
+                    "gNBIdLength": 23,
+                    "dUpLMNId": {
+                        "mcc": 353,
+                        "mnc": 87
+                    }
+                }
+            }
+        ],
+        "o-ran-smo-teiv-ran:NRSectorCarrier": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
+                "attributes": {
+                    "arfcnDL": 4000,
+                    "arfcnUL": 40000,
+                    "frequencyDL": 4,
+                    "frequencyUL": 40
+                }
             },
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRSectorCarrier": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
-          "attributes": {
-            "arfcnDL": 4000,
-            "arfcnUL": 40000,
-            "frequencyDL": 4,
-            "frequencyUL": 40,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=1]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-          "attributes": {
-            "arfcnDL": 5000,
-            "arfcnUL": 50000,
-            "frequencyDL": 5,
-            "frequencyUL": 50,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=2]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-          "attributes": {
-            "arfcnDL": 6000,
-            "arfcnUL": 60000,
-            "frequencyDL": 6,
-            "frequencyUL": 60,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRSectorCarrier[@id=3]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRCellDU": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
-          "attributes": {
-            "cellLocalId": 1,
-            "nRTAC": 40,
-            "nRPCI": 400,
-            "nCI": 24577,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=1]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-          "attributes": {
-            "cellLocalId": 2,
-            "nRTAC": 50,
-            "nRPCI": 500,
-            "nCI": 24578,
-            "fdn": "ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-GNBDU:GNBDUFunction[@id=1]/o-ran-smo-GNBDU:NRCellDU[@id=2]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:AntennaCapability": [
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
-          "attributes": {
-            "eUtranFqBands": "[1,2,3]",
-            "geranFqBands": "[10,11,12]",
-            "nRFqBands": "[100,101,102]",
-            "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=1]"
-            }
-          }
-        },
-        {
-          "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
-          "attributes": {
-            "eUtranFqBands": "[4,5,6]",
-            "geranFqBands": "[13,14,15]",
-            "nRFqBands": "[103,104,105]",
-            "fdn": "ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "/o-ran-smo-ComTop:ManagedElement[@id=NR01]/o-ran-smo-ComTop:NodeSupport[@id=1]/o-ran-smo-RmeSectorEquipmentFunction:SectorEquipmentFunction[@id=2]"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-equipment:AntennaModule": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:1",
-          "attributes": {
-            "antennaModelNumber": "1",
-            "mechanicalAntennaBearing": 50,
-            "mechanicalAntennaTilt": 10,
-            "positionWithinSector": "Unknown",
-            "totalTilt": 14,
-            "electricalAntennaTilt": 2,
-            "fdn": "Unknown",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
-            }
-          }
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:2",
-          "attributes": {
-            "antennaModelNumber": "2",
-            "mechanicalAntennaBearing": 45,
-            "mechanicalAntennaTilt": 12,
-            "positionWithinSector": "Unknown",
-            "totalTilt": 15,
-            "electricalAntennaTilt": 1,
-            "fdn": "Unknown",
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
-            }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-equipment:Site": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:1",
-          "attributes": {
-            "name": "Site-1",
-            "geo-location": {
-              "latitude": 41.73297,
-              "longitude": -78.007696
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
+                "attributes": {
+                    "arfcnDL": 5000,
+                    "arfcnUL": 50000,
+                    "frequencyDL": 5,
+                    "frequencyUL": 50
+                }
             },
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
+                "attributes": {
+                    "arfcnDL": 6000,
+                    "arfcnUL": 60000,
+                    "frequencyDL": 6,
+                    "frequencyUL": 60
+                }
             }
-          }
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:2",
-          "attributes": {
-            "name": "Site-2",
-            "geo-location": {
-              "latitude": 46.73297,
-              "longitude": -76.007696
+        ],
+        "o-ran-smo-teiv-ran:NRCellDU": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
+                "attributes": {
+                    "cellLocalId": 1,
+                    "nRTAC": 40,
+                    "nRPCI": 400,
+                    "nCI": 24577
+                }
             },
-            "cmId": {
-              "cmHandle": "9D2C7AA8AECF0B5FDE21FDBD2B93EEAG",
-              "resourceIdentifier": "Unknown"
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+                "attributes": {
+                    "cellLocalId": 2,
+                    "nRTAC": 50,
+                    "nRPCI": 500,
+                    "nCI": 24578
+                }
             }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-ran:Sector": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "attributes": {
-            "sectorId": 1,
-            "azimuth": 75.345,
-            "geo-location": {
-              "latitude": 40.73297,
-              "longitude": -74.007696
+        ],
+        "o-ran-smo-teiv-ran:AntennaCapability": [
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1",
+                "attributes": {
+                    "eUtranFqBands": "[1,2,3]",
+                    "geranFqBands": "[10,11,12]",
+                    "nRFqBands": "[100,101,102]"
+                }
+            },
+            {
+                "id": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2",
+                "attributes": {
+                    "eUtranFqBands": "[4,5,6]",
+                    "geranFqBands": "[13,14,15]",
+                    "nRFqBands": "[103,104,105]"
+                }
             }
-          }
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "attributes": {
-            "sectorId": 2,
-            "azimuth": 90.8967,
-            "geo-location": {
-              "latitude": 41.73297,
-              "longitude": -73.007696
+        ],
+        "o-ran-smo-teiv-equipment:AntennaModule": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:1",
+                "attributes": {
+                    "antennaModelNumber": "1",
+                    "mechanicalAntennaBearing": 50,
+                    "mechanicalAntennaTilt": 10,
+                    "positionWithinSector": "Unknown",
+                    "totalTilt": 14,
+                    "electricalAntennaTilt": 2
+                }
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:2",
+                "attributes": {
+                    "antennaModelNumber": "2",
+                    "mechanicalAntennaBearing": 45,
+                    "mechanicalAntennaTilt": 12,
+                    "positionWithinSector": "Unknown",
+                    "totalTilt": 15,
+                    "electricalAntennaTilt": 1
+                }
             }
-          }
-        }
-      ],
-      "o-ran-smo-teiv-cloud:CloudifiedNF": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud:1",
-          "attributes": {
-            "name": "CloudifiedNF-1"
-          }
-        }
-      ],
-      "o-ran-smo-teiv-cloud:NFDeployment": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud:1",
-          "attributes": {
-            "name": "NFDeployment-1"
-          }
-        }
-      ]
+        ],
+        "o-ran-smo-teiv-equipment:Site": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:1",
+                "attributes": {
+                    "name": "Site-1",
+                    "geo-location": {
+                        "latitude": 41.73297,
+                        "longitude": -78.007696
+                    }
+                }
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:2",
+                "attributes": {
+                    "name": "Site-2",
+                    "geo-location": {
+                        "latitude": 46.73297,
+                        "longitude": -76.007696
+                    }
+                }
+            }
+        ],
+        "o-ran-smo-teiv-ran:Sector": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "attributes": {
+                    "sectorId": 1,
+                    "azimuth": 75.345,
+                    "geo-location": {
+                        "latitude": 40.73297,
+                        "longitude": -74.007696
+                    }
+                }
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "attributes": {
+                    "sectorId": 2,
+                    "azimuth": 90.8967,
+                    "geo-location": {
+                        "latitude": 41.73297,
+                        "longitude": -73.007696
+                    }
+                }
+            }
+        ],
+        "o-ran-smo-teiv-cloud:CloudifiedNF": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud:1",
+                "attributes": {
+                    "name": "CloudifiedNF-1"
+                }
+            }
+        ],
+        "o-ran-smo-teiv-cloud:NFDeployment": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud:1",
+                "attributes": {
+                    "name": "NFDeployment-1"
+                }
+            }
+        ]
     },
     "relationships": {
-      "o-ran-smo-teiv-oam-to-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [
-        {
-          "id": "urn:o-ran:smo-teiv-oam-to-logical:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
-        }
-      ],
-      "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:3",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
-        }
-      ],
-      "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRCELLDU": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:3",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
-        }
-      ],
-      "o-ran-smo-teiv-ran:NRSECTORCARRIER_USES_ANTENNACAPABILITY": [
-        {
-          "id": "urn:o-ran:smo-teiv-ran:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:2",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-ran:3",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
-        }
-      ],
-      "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
-          "aSide": "urn:o-ran:smo-teiv-equipment:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
-          "aSide": "urn:o-ran:smo-teiv-equipment:2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
-        }
-      ],
-      "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:1",
-          "aSide": "urn:o-ran:smo-teiv-equipment:1",
-          "bSide": "urn:o-ran:smo-teiv-equipment:1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment:2",
-          "aSide": "urn:o-ran:smo-teiv-equipment:2",
-          "bSide": "urn:o-ran:smo-teiv-equipment:2"
-        }
-      ],
-      "o-ran-smo-teiv-equipment-to-ran:SECTOR_GROUPS_NRCELLDU": [
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
-          "aSide": "urn:o-ran:smo-teiv-ran:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
-          "aSide": "urn:o-ran:smo-teiv-ran:2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
-        },
-        {
-          "id": "urn:o-ran:smo-teiv-equipment-to-ran:3",
-          "aSide": "urn:o-ran:smo-teiv-ran:2",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=3"
-        }
-      ],
-      "o-ran-smo-teiv-oam-to-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
-        {
-          "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
-          "aSide": "urn:o-ran:smo-teiv-cloud:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01"
-        }
-      ],
-      "o-ran-smo-teiv-oam-to-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
-        {
-          "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
-          "aSide": "urn:3gpp:dn:ManagedElement=NR01",
-          "bSide": "urn:o-ran:smo-teiv-cloud:1"
-        }
-      ],
-      "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud:1",
-          "aSide": "urn:o-ran:smo-teiv-cloud:1",
-          "bSide": "urn:o-ran:smo-teiv-cloud:1"
-        }
-      ],
-      "o-ran-smo-teiv-cloud-to-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [
-        {
-          "id": "urn:o-ran:smo-teiv-cloud-to-ran:1",
-          "aSide": "urn:o-ran:smo-teiv-cloud:1",
-          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
-        }
-      ]
+        "o-ran-smo-teiv-oam-to-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [
+            {
+                "id": "urn:o-ran:smo-teiv-oam-to-logical:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
+            }
+        ],
+        "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:3",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
+            }
+        ],
+        "o-ran-smo-teiv-ran:GNBDUFUNCTION_PROVIDES_NRCELLDU": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
+            }
+        ],
+        "o-ran-smo-teiv-ran:NRCELLDU_USES_NRSECTORCARRIER": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:3",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3"
+            }
+        ],
+        "o-ran-smo-teiv-ran:NRSECTORCARRIER_USES_ANTENNACAPABILITY": [
+            {
+                "id": "urn:o-ran:smo-teiv-ran:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:2",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-ran:3",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+            }
+        ],
+        "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
+                "aSide": "urn:o-ran:smo-teiv-equipment:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
+                "aSide": "urn:o-ran:smo-teiv-equipment:2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+            }
+        ],
+        "o-ran-smo-teiv-equipment-to-ran:ANTENNAMODULE_INSTALLED_AT_SITE": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:1",
+                "aSide": "urn:o-ran:smo-teiv-equipment:1",
+                "bSide": "urn:o-ran:smo-teiv-equipment:1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment:2",
+                "aSide": "urn:o-ran:smo-teiv-equipment:2",
+                "bSide": "urn:o-ran:smo-teiv-equipment:2"
+            }
+        ],
+        "o-ran-smo-teiv-equipment-to-ran:SECTOR_GROUPS_NRCELLDU": [
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:1",
+                "aSide": "urn:o-ran:smo-teiv-ran:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+            },
+            {
+                "id": "urn:o-ran:smo-teiv-equipment-to-ran:2",
+                "aSide": "urn:o-ran:smo-teiv-ran:2",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
+            }
+        ],
+        "o-ran-smo-teiv-oam-to-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
+            {
+                "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
+                "aSide": "urn:o-ran:smo-teiv-cloud:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01"
+            }
+        ],
+        "o-ran-smo-teiv-oam-to-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
+            {
+                "id": "urn:o-ran:smo-teiv-oam-to-cloud:1",
+                "aSide": "urn:3gpp:dn:ManagedElement=NR01",
+                "bSide": "urn:o-ran:smo-teiv-cloud:1"
+            }
+        ],
+        "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud:1",
+                "aSide": "urn:o-ran:smo-teiv-cloud:1",
+                "bSide": "urn:o-ran:smo-teiv-cloud:1"
+            }
+        ],
+        "o-ran-smo-teiv-cloud-to-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [
+            {
+                "id": "urn:o-ran:smo-teiv-cloud-to-ran:1",
+                "aSide": "urn:o-ran:smo-teiv-cloud:1",
+                "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
+            }
+        ]
     }
 }
\ No newline at end of file
diff --git a/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql b/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
index ad443da..4012f63 100644
--- a/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
+++ b/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
@@ -1,22 +1,22 @@
 --
---  ============LICENSE_START=======================================================
---  Copyright (C) 2024 Ericsson
---  Modifications Copyright (C) 2024 OpenInfra Foundation Europe
---  ================================================================================
---  Licensed under the Apache License, Version 2.0 (the "License");
---  you may not use this file except in compliance with the License.
---  You may obtain a copy of the License at
+-- ============LICENSE_START=======================================================
+-- Copyright (C) 2024 Ericsson
+-- Modifications Copyright (C) 2024 OpenInfra Foundation Europe
+-- ================================================================================
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
 --
---        http://www.apache.org/licenses/LICENSE-2.0
+--       http://www.apache.org/licenses/LICENSE-2.0
 --
---  Unless required by applicable law or agreed to in writing, software
---  distributed under the License is distributed on an "AS IS" BASIS,
---  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
---  See the License for the specific language governing permissions and
---  limitations under the License.
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
 --
---  SPDX-License-Identifier: Apache-2.0
---  ============LICENSE_END=========================================================
+-- SPDX-License-Identifier: Apache-2.0
+-- ============LICENSE_END=========================================================
 --
 
 BEGIN;
@@ -30,60 +30,60 @@
 SET ROLE 'topology_exposure_user';
 
 CREATE TABLE IF NOT EXISTS ties_model.execution_status (
-    "schema"                 VARCHAR(127) PRIMARY KEY,
-    "status"          VARCHAR(127)
+    "schema" VARCHAR(127) PRIMARY KEY,
+    "status" VARCHAR(127)
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.hash_info (
-    "name"                 VARCHAR(511) PRIMARY KEY,
-    "hashedValue"          VARCHAR(511),
-    "type"                 VARCHAR(511)
+    "name"        VARCHAR(511) PRIMARY KEY,
+    "hashedValue" VARCHAR(511) NOT NULL,
+    "type"        VARCHAR(511)
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.module_reference (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "namespace"              VARCHAR(511),
-    "domain"             VARCHAR(511),
-    "includedModules"        jsonb,
-    "revision"       VARCHAR(511),
-    "content"               TEXT,
-    "ownerAppId"       VARCHAR(511),
-    "status"       VARCHAR(127)
+    "name"            VARCHAR(511) PRIMARY KEY,
+    "namespace"       VARCHAR(511),
+    "domain"          VARCHAR(511),
+    "includedModules" jsonb DEFAULT '[]'::jsonb,
+    "revision"        VARCHAR(511) NOT NULL,
+    "content"         TEXT NOT NULL,
+    "ownerAppId"      VARCHAR(511) NOT NULL,
+    "status"          VARCHAR(127) NOT NULL
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.entity_info (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "moduleReferenceName"    VARCHAR(511),
+    "name"                VARCHAR(511) PRIMARY KEY,
+    "moduleReferenceName" VARCHAR(511) NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.relationship_info (
-    "name"      VARCHAR(511) PRIMARY KEY,
-    "aSideAssociationName"    TEXT,
-    "aSideMOType"             TEXT,
-    "aSideMinCardinality"     BIGINT,
-    "aSideMaxCardinality"     BIGINT,
-    "bSideAssociationName"    TEXT,
-    "bSideMOType"             TEXT,
-    "bSideMinCardinality"     BIGINT,
-    "bSideMaxCardinality"     BIGINT,
-    "associationKind"    TEXT,
-    "relationshipDataLocation"          TEXT,
-    "connectSameEntity"       BOOLEAN,
-    "moduleReferenceName"     TEXT,
+    "name"                     VARCHAR(511) PRIMARY KEY,
+    "aSideAssociationName"     TEXT NOT NULL,
+    "aSideMOType"              TEXT NOT NULL,
+    "aSideMinCardinality"      BIGINT NOT NULL,
+    "aSideMaxCardinality"      BIGINT NOT NULL,
+    "bSideAssociationName"     TEXT NOT NULL,
+    "bSideMOType"              TEXT NOT NULL,
+    "bSideMinCardinality"      BIGINT NOT NULL,
+    "bSideMaxCardinality"      BIGINT NOT NULL,
+    "associationKind"          TEXT NOT NULL,
+    "relationshipDataLocation" TEXT NOT NULL,
+    "connectSameEntity"        BOOLEAN NOT NULL,
+    "moduleReferenceName"      TEXT NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.decorators (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "dataType"                   VARCHAR(511),
-    "moduleReferenceName"    VARCHAR(511),
+    "name"                VARCHAR(511) PRIMARY KEY,
+    "dataType"            VARCHAR(511) NOT NULL,
+    "moduleReferenceName" VARCHAR(511) NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.classifiers (
-    "name"                   VARCHAR(511) PRIMARY KEY,
-    "moduleReferenceName"    VARCHAR(511),
+    "name"                VARCHAR(511) PRIMARY KEY,
+    "moduleReferenceName" VARCHAR(511) NOT NULL,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
@@ -99,27 +99,21 @@
 NRSectorCarrier	NRSectorCarrier	TABLE
 REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
 FK_LTESectorCarrier_REL_FK_used-by-euTranCell	FK_LTESectorCarrier_REL_FK_used-by-euTranCell	CONSTRAINT
-REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
 REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
+REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
 frequencyUL	frequencyUL	COLUMN
 bSChannelBwDL	bSChannelBwDL	COLUMN
-UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	CONSTRAINT
 REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
 CD_sourceIds	CD_sourceIds	COLUMN
-REL_FK_serving-physicalNF	REL_FK_serving-physicalNF	COLUMN
-REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
-REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
-REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
 NRCellCU	NRCellCU	TABLE
 REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
 REL_FK_used-by-euTranCell	REL_FK_used-by-euTranCell	COLUMN
 UNIQUE_NRSectorCarrier_REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991	CONSTRAINT
-REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
+REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
 NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	TABLE
-REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction	FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction	CONSTRAINT
 REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
 eNBId	eNBId	COLUMN
@@ -135,10 +129,7 @@
 REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 PK_ManagedElement_id	PK_ManagedElement_id	CONSTRAINT
 UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	CONSTRAINT
-REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 REL_FK_provided-by-gnbcucpFunction	REL_FK_provided-by-gnbcucpFunction	COLUMN
-FK_ENodeBFunction_REL_FK_serving-physicalNF	FK_ENodeBFunction_REL_FK_serving-physicalNF	CONSTRAINT
-REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 ManagedElement	ManagedElement	TABLE
 PK_AntennaModule_id	PK_AntennaModule_id	CONSTRAINT
 PK_CloudNamespace_id	PK_CloudNamespace_id	CONSTRAINT
@@ -151,8 +142,6 @@
 REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
 FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction	FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction	CONSTRAINT
 UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	CONSTRAINT
-REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE	REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
-UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	CONSTRAINT
 FK_GNBCUUPFunction_REL_FK_managed-by-managedElement	FK_GNBCUUPFunction_REL_FK_managed-by-managedElement	CONSTRAINT
 PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id	PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id	CONSTRAINT
 ANTENNAMODULE_SERVES_ANTENNACAPABILITY	ANTENNAMODULE_SERVES_ANTENNACAPABILITY	TABLE
@@ -160,17 +149,15 @@
 PK_NRSectorCarrier_id	PK_NRSectorCarrier_id	CONSTRAINT
 mechanicalAntennaBearing	mechanicalAntennaBearing	COLUMN
 REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
-ENodeBFunction	ENodeBFunction	TABLE
 nRPCI	nRPCI	COLUMN
+ENodeBFunction	ENodeBFunction	TABLE
 antennaModelNumber	antennaModelNumber	COLUMN
-REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
 REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
 PK_NRCellCU_id	PK_NRCellCU_id	CONSTRAINT
 REL_FK_used-antennaCapability	REL_FK_used-antennaCapability	COLUMN
 REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
 cellId	cellId	COLUMN
 UNIQUE_NRSectorCarrier_REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F	CONSTRAINT
-REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
 UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL	UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL	CONSTRAINT
 REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	COLUMN
@@ -182,7 +169,6 @@
 geranFqBands	geranFqBands	COLUMN
 REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
 PK_EUtranCell_id	PK_EUtranCell_id	CONSTRAINT
-REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
 FK_NRSectorCarrier_REL_FK_used-antennaCapability	FK_NRSectorCarrier_REL_FK_used-antennaCapability	CONSTRAINT
 bSide_GNBCUCPFunction	bSide_GNBCUCPFunction	COLUMN
@@ -191,10 +177,8 @@
 bSide_CloudSite	bSide_CloudSite	COLUMN
 FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment	FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment	CONSTRAINT
 REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
-REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE	REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
 REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
 REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE	REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
 positionWithinSector	positionWithinSector	COLUMN
 NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	TABLE
 REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
@@ -204,7 +188,6 @@
 PK_GNBCUCPFunction_id	PK_GNBCUCPFunction_id	CONSTRAINT
 REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
 REL_FK_deployed-on-nodeCluster	REL_FK_deployed-on-nodeCluster	COLUMN
-REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION	COLUMN
 AntennaCapability	AntennaCapability	TABLE
 NodeCluster	NodeCluster	TABLE
 REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
@@ -221,29 +204,24 @@
 antennaBeamWidth	antennaBeamWidth	COLUMN
 NFDEPLOYMENT_SERVES_GNBDUFUNCTION	NFDEPLOYMENT_SERVES_GNBDUFUNCTION	TABLE
 FK_EUtranCell_REL_FK_grouped-by-sector	FK_EUtranCell_REL_FK_grouped-by-sector	CONSTRAINT
-REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 cellLocalId	cellLocalId	COLUMN
 REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
 gNBCUName	gNBCUName	COLUMN
 electricalAntennaTilt	electricalAntennaTilt	COLUMN
-REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
 FK_NRSectorCarrier_REL_FK_used-by-nrCellDu	FK_NRSectorCarrier_REL_FK_used-by-nrCellDu	CONSTRAINT
-FK_GNBDUFunction_REL_FK_serving-physicalNF	FK_GNBDUFunction_REL_FK_serving-physicalNF	CONSTRAINT
+REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
 REL_FK_provided-by-enodebFunction	REL_FK_provided-by-enodebFunction	COLUMN
 eUtranFqBands	eUtranFqBands	COLUMN
 REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 CD_classifiers	CD_classifiers	COLUMN
 aSide_NodeCluster	aSide_NodeCluster	COLUMN
-REL_FK_comprised-by-cloudifiedNF	REL_FK_comprised-by-cloudifiedNF	COLUMN
 UNIQUE_ManagedElement_REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C	CONSTRAINT
+REL_FK_comprised-by-cloudifiedNF	REL_FK_comprised-by-cloudifiedNF	COLUMN
 UNIQUE_CloudNamespace_REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0	CONSTRAINT
-FK_GNBCUCPFunction_REL_FK_serving-physicalNF	FK_GNBCUCPFunction_REL_FK_serving-physicalNF	CONSTRAINT
 REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
 REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
 CloudSite	CloudSite	TABLE
-REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 FK_AntennaModule_REL_FK_grouped-by-sector	FK_AntennaModule_REL_FK_grouped-by-sector	CONSTRAINT
-REL_ID_PHYSICALNF_INSTALLED_AT_SITE	REL_ID_PHYSICALNF_INSTALLED_AT_SITE	COLUMN
 REL_FK_used-by-nrCellDu	REL_FK_used-by-nrCellDu	COLUMN
 FK_GNBDUFunction_REL_FK_managed-by-managedElement	FK_GNBDUFunction_REL_FK_managed-by-managedElement	CONSTRAINT
 PK_LTESectorCarrier_id	PK_LTESectorCarrier_id	CONSTRAINT
@@ -251,17 +229,14 @@
 geo-location	geo-location	COLUMN
 REL_FK_grouped-by-sector	REL_FK_grouped-by-sector	COLUMN
 REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	COLUMN
-UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION	CONSTRAINT
 FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	CONSTRAINT
-gNBId	gNBId	COLUMN
 id	id	COLUMN
+gNBId	gNBId	COLUMN
 PK_NRCellDU_id	PK_NRCellDU_id	CONSTRAINT
 EUtranCell	EUtranCell	TABLE
-REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
-UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE	UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE	CONSTRAINT
+REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
 PK_Site_id	PK_Site_id	CONSTRAINT
-PK_PhysicalNF_id	PK_PhysicalNF_id	CONSTRAINT
 REL_FK_installed-at-site	REL_FK_installed-at-site	COLUMN
 NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	TABLE
 CloudNamespace	CloudNamespace	TABLE
@@ -273,15 +248,11 @@
 earfcnul	earfcnul	COLUMN
 REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
 aSide_NFDeployment	aSide_NFDeployment	COLUMN
-REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	CONSTRAINT
-FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	CONSTRAINT
 REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
+FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	CONSTRAINT
 bSide_GNBCUUPFunction	bSide_GNBCUUPFunction	COLUMN
-PhysicalNF	PhysicalNF	TABLE
-cmId	cmId	COLUMN
 REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
-type	type	COLUMN
 PK_NFDeployment_id	PK_NFDeployment_id	CONSTRAINT
 nCI	nCI	COLUMN
 REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
@@ -295,14 +266,12 @@
 AntennaModule	AntennaModule	TABLE
 REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
 LTESectorCarrier	LTESectorCarrier	TABLE
-REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION	COLUMN
 REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
 FK_LTESectorCarrier_REL_FK_used-antennaCapability	FK_LTESectorCarrier_REL_FK_used-antennaCapability	CONSTRAINT
 REL_FK_managed-by-managedElement	REL_FK_managed-by-managedElement	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
 aSide_AntennaModule	aSide_AntennaModule	COLUMN
-fdn	fdn	COLUMN
 REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 dUpLMNId	dUpLMNId	COLUMN
 REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
@@ -332,11 +301,11 @@
 REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
 REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
 REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
-REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	COLUMN
 REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
+REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	COLUMN
 nRFqBands	nRFqBands	COLUMN
-FK_NFDeployment_REL_FK_serviced-managedElement	FK_NFDeployment_REL_FK_serviced-managedElement	CONSTRAINT
 FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF	FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF	CONSTRAINT
+FK_NFDeployment_REL_FK_serviced-managedElement	FK_NFDeployment_REL_FK_serviced-managedElement	CONSTRAINT
 tac	tac	COLUMN
 arfcnDL	arfcnDL	COLUMN
 REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
@@ -346,21 +315,16 @@
 sectorId	sectorId	COLUMN
 REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	COLUMN
 PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id	PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id	CONSTRAINT
-UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION	CONSTRAINT
-FK_PhysicalNF_REL_FK_installed-at-site	FK_PhysicalNF_REL_FK_installed-at-site	CONSTRAINT
 GNBCUUPFunction	GNBCUUPFunction	TABLE
-FK_GNBCUUPFunction_REL_FK_serving-physicalNF	FK_GNBCUUPFunction_REL_FK_serving-physicalNF	CONSTRAINT
 FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite	FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite	CONSTRAINT
 UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE	UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE	CONSTRAINT
 UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER	UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER	CONSTRAINT
 REL_FK_deployed-as-cloudifiedNF	REL_FK_deployed-as-cloudifiedNF	COLUMN
 PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id	PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id	CONSTRAINT
-REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
 totalTilt	totalTilt	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
 REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
-REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION	REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION	COLUMN
 gNBIdLength	gNBIdLength	COLUMN
 UNIQUE_ENodeBFunction_REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE	CONSTRAINT
 FK_NRCellDU_REL_FK_provided-by-gnbduFunction	FK_NRCellDU_REL_FK_provided-by-gnbduFunction	CONSTRAINT
@@ -385,76 +349,70 @@
 \.
 
 COPY ties_model.module_reference("name", "namespace", "domain", "includedModules", "revision", "content", "ownerAppId", "status") FROM stdin;
-o-ran-smo-teiv-common-yang-extensions	urn:o-ran:smo-teiv-common-yang-extensions	\N	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgewoKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMiOwogIHByZWZpeCBvci10ZWl2LXlleHQ7CgogIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogIGNvbnRhY3QgIkVyaWNzc29uIGZpcnN0IGxpbmUgc3VwcG9ydCB2aWEgZW1haWwiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgWUFORyBleHRlbnNpb25zIG1vZGVsLgoKICBDb3B5cmlnaHQgKGMpIDIwMjMgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogIFRoaXMgbW9kZWwgY29udGFpbnMgZXh0ZW5zaW9ucyB0byB0aGUgWUFORyBsYW5ndWFnZSB0aGF0IHRvcG9sb2d5IGFuZAogIGludmVudG9yeSBtb2RlbHMgd2lsbCB1c2UgdG8gZGVmaW5lIGFuZCBhbm5vdGF0ZSB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4iOwoKICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgZGVzY3JpcHRpb24gIkluaXRpYWwgcmV2aXNpb24uIjsKICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICB9CgogIGV4dGVuc2lvbiBiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgewoKICAgIGRlc2NyaXB0aW9uCiAgICAgICJEZWZpbmVzIGEgYmktZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwIGluIHRoZSB0b3BvbG9neS4KCiAgICAgICBBIGJpLWRpcmVjdGlvbmFsLWFzc29jaWF0aW9uIChCREEpIGlzIGEgcmVsYXRpb25zaGlwIGNvbXByaXNpbmcgb2YgYW4KICAgICAgIEEtc2lkZSBhbmQgYSBCLXNpZGUuIFRoZSBBLXNpZGUgaXMgY29uc2lkZXJlZCB0aGUgb3JpZ2luYXRpbmcgc2lkZSBvZgogICAgICAgdGhlIHJlbGF0aW9uc2hpcDsgdGhlIEItc2lkZSBpcyBjb25zaWRlcmVkIHRoZSB0ZXJtaW5hdGluZyBzaWRlIG9mIHRoZQogICAgICAgcmVsYXRpb25zaGlwLiBUaGUgb3JkZXIgb2YgQS1zaWRlIGFuZCBCLXNpZGUgaXMgb2YgaW1wb3J0YW5jZSBhbmQgTVVTVAogICAgICAgTk9UIGJlIGNoYW5nZWQgb25jZSBkZWZpbmVkLgoKICAgICAgIEJvdGggQS1zaWRlIGFuZCBCLXNpZGUgYXJlIGRlZmluZWQgb24gYSB0eXBlLCBhbmQgYXJlIGdpdmVuIGEgcm9sZS4gQQogICAgICAgdHlwZSBtYXkgaGF2ZSBtdWx0aXBsZSBvcmlnaW5hdGluZyBhbmQvb3IgdGVybWluYXRpbmcgc2lkZXMgb2YgYQogICAgICAgcmVsYXRpb25zaGlwLCBhbGwgZGlzdGluZ3Vpc2hlZCBieSByb2xlIG5hbWUuCgogICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlICdtb2R1bGUnIHN0YXRlbWVudC4KICAgICAgIE11bHRpcGxlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudHMgYXJlIGFsbG93ZWQKICAgICAgIHBlciBwYXJlbnQgc3RhdGVtZW50LgoKICAgICAgIFN1YnN0YXRlbWVudHMgdG8gdGhlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIGRlZmluZSB0aGUKICAgICAgIEEtc2lkZSBhbmQgdGhlIEItc2lkZSwgcmVzcGVjdGl2ZWx5LCBhbmQgb3B0aW9uYWxseSBwcm9wZXJ0aWVzIG9mIHRoZQogICAgICAgcmVsYXRpb25zaGlwLiBEYXRhIG5vZGVzIG9mIHR5cGVzICdsZWFmJyBhbmQgJ2xlYWYtbGlzdCcgYXJlIHVzZWQgZm9yCiAgICAgICB0aGlzIHB1cnBvc2UuIE9uZSBvZiB0aGUgZGF0YSBub2RlcyBNVVNUIGJlIGFubm90YXRlZCB3aXRoIHRoZSAnYS1zaWRlJwogICAgICAgZXh0ZW5zaW9uOyBhbm90aGVyIGRhdGEgbm9kZSBNVVNUIGJlIGFubm90YXRlZCB3aXRoIHRoZSAnYi1zaWRlJwogICAgICAgZXh0ZW5zaW9uLiBPdGhlciBkYXRhIG5vZGVzIGRlZmluZSBwcm9wZXJ0aWVzIG9mIHRoZSByZWxhdGlvbnNoaXAuCgogICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgbmFtZSBpcwogICAgICAgc2NvcGVkIHRvIHRoZSBuYW1lc3BhY2Ugb2YgdGhlIGRlY2xhcmluZyBtb2R1bGUgYW5kIE1VU1QgYmUgdW5pcXVlCiAgICAgICB3aXRoaW4gdGhlIHNjb3BlLiI7CgogICAgYXJndW1lbnQgcmVsYXRpb25zaGlwTmFtZTsKICB9CgogIGV4dGVuc2lvbiBhU2lkZSB7CiAgICBkZXNjcmlwdGlvbgogICAgICAiRGVmaW5lcyB0aGUgQS1zaWRlIG9mIGEgcmVsYXRpb25zaGlwLgoKICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIGEgJ2xlYWYnIG9yICdsZWFmLWxpc3QnCiAgICAgICBzdGF0ZW1lbnQsIHdoaWNoIGl0c2VsZiBtdXN0IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZQogICAgICAgJ3VuaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudC4KCiAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIE1VU1QgYmUKICAgICAgICdpbnN0YW5jZS1pZGVudGlmaWVyJy4gQ29uc3RyYWludHMgTUFZIGJlIHVzZWQgYXMgcGFydCBvZiB0aGUgcGFyZW50CiAgICAgICAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgdG8gZW5mb3JjZSBjYXJkaW5hbGl0eS4KCiAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBpcyB1c2VkIGFzIG5hbWUgb2YKICAgICAgIHRoZSByb2xlIG9mIHRoZSBBLXNpZGUgb2YgdGhlIHJlbGF0aW9uc2hpcC4gVGhlIG5hbWUgb2YgdGhlIHJvbGUgaXMKICAgICAgIHNjb3BlZCB0byB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQS1zaWRlIGlzIGRlZmluZWQgYW5kIE1VU1QgYmUgdW5pcXVlCiAgICAgICB3aXRoaW4gdGhlIHNjb3BlLgoKICAgICAgIFdoaWxlIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIGRvZXMgbm90IHJlc3VsdCBpbiBhIHByb3BlcnR5IG9mCiAgICAgICB0aGUgcmVsYXRpb25zaGlwLCBpdCBpcyBSRUNPTU1FTkRFRCB0byBhdm9pZCB1c2luZyB0aGUgbmFtZSBvZiBhbgogICAgICAgZXhpc3RpbmcgdHlwZSBwcm9wZXJ0eSBhcyByb2xlIG5hbWUgdG8gYXZvaWQgcG90ZW50aWFsIGFtYmlndWl0aWVzCiAgICAgICBiZXR3ZWVuIHByb3BlcnRpZXMgb2YgYSB0eXBlLCBhbmQgcm9sZXMgb2YgYSByZWxhdGlvbnNoaXAgb24gdGhlIHR5cGUuCgogICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIG9uIHdoaWNoIHRoZSBBLXNpZGUgcmVzaWRlcy4gSWYgdGhlCiAgICAgICB0eXBlIGlzIGRlY2xhcmVkIGluIGFub3RoZXIgbW9kdWxlLCB0aGUgdHlwZSBtdXN0IGJlIHByZWZpeGVkLCBhbmQgYQogICAgICAgY29ycmVzcG9uZGluZyAnaW1wb3J0JyBzdGF0ZW1lbnQgYmUgdXNlZCB0byBkZWNsYXJlIHRoZSBwcmVmaXguIjsKCiAgICBhcmd1bWVudCBhU2lkZVR5cGU7CiAgfQoKICBleHRlbnNpb24gYlNpZGUgewogICAgZGVzY3JpcHRpb24gIkRlZmluZXMgdGhlIEItc2lkZSBvZiBhIHJlbGF0aW9uc2hpcC4KCiAgICAgICBUaGUgc3RhdGVtZW50IE1VU1Qgb25seSBiZSBhIHN1YnN0YXRlbWVudCBvZiBhICdsZWFmJyBvciAnbGVhZi1saXN0JwogICAgICAgc3RhdGVtZW50LCB3aGljaCBpdHNlbGYgbXVzdCBiZSBhIHN1YnN0YXRlbWVudCBvZiB0aGUKICAgICAgICd1bmktZGlyZWN0aW9uYWwtdG9wb2xvZ3ktcmVsYXRpb25zaGlwJyBzdGF0ZW1lbnQuCgogICAgICAgVGhlIGRhdGEgdHlwZSBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBNVVNUIGJlCiAgICAgICAnaW5zdGFuY2UtaWRlbnRpZmllcicuIENvbnN0cmFpbnRzIE1BWSBiZSB1c2VkIGFzIHBhcnQgb2YgdGhlIHBhcmVudAogICAgICAgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIHRvIGVuZm9yY2UgY2FyZGluYWxpdHkuCgogICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgaXMgdXNlZCBhcyBuYW1lIG9mCiAgICAgICB0aGUgcm9sZSBvZiB0aGUgQi1zaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBuYW1lIG9mIHRoZSByb2xlIGlzCiAgICAgICBzY29wZWQgdG8gdGhlIHR5cGUgb24gd2hpY2ggdGhlIEItc2lkZSBpcyBkZWZpbmVkIGFuZCBNVVNUIGJlIHVuaXF1ZQogICAgICAgd2l0aGluIHRoZSBzY29wZS4KCiAgICAgICBXaGlsZSB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBkb2VzIG5vdCByZXN1bHQgaW4gYSBwcm9wZXJ0eSBvZgogICAgICAgdGhlIHJlbGF0aW9uc2hpcCwgaXQgaXMgUkVDT01NRU5ERUQgdG8gYXZvaWQgdXNpbmcgdGhlIG5hbWUgb2YgYW4KICAgICAgIGV4aXN0aW5nIHR5cGUgcHJvcGVydHkgYXMgcm9sZSBuYW1lIHRvIGF2b2lkIHBvdGVudGlhbCBhbWJpZ3VpdGllcwogICAgICAgYmV0d2VlbiBwcm9wZXJ0aWVzIG9mIGEgdHlwZSwgYW5kIHJvbGVzIG9mIGEgcmVsYXRpb25zaGlwIG9uIHRoZSB0eXBlLgoKICAgICAgIFRoZSBhcmd1bWVudCBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQi1zaWRlIHJlc2lkZXMuIElmIHRoZQogICAgICAgdHlwZSBpcyBkZWNsYXJlZCBpbiBhbm90aGVyIG1vZHVsZSwgdGhlIHR5cGUgbXVzdCBiZSBwcmVmaXhlZCwgYW5kIGEKICAgICAgIGNvcnJlc3BvbmRpbmcgJ2ltcG9ydCcgc3RhdGVtZW50IGJlIHVzZWQgdG8gZGVjbGFyZSB0aGUgcHJlZml4LiI7CgogICAgYXJndW1lbnQgYlNpZGVUeXBlOwogIH0KCiAgZXh0ZW5zaW9uIGRvbWFpbiB7CiAgICBkZXNjcmlwdGlvbiAiS2V5d29yZCB1c2VkIHRvIGNhcnJ5IGRvbWFpbiBpbmZvcm1hdGlvbi4iOwogICAgYXJndW1lbnQgZG9tYWluTmFtZTsKICB9CgogIGV4dGVuc2lvbiBsYWJlbCB7CiAgICBkZXNjcmlwdGlvbiAiVGhlIGxhYmVsIGNhbiBiZSB1c2VkIHRvIGdpdmUgbW9kdWxlcyBhbmQgc3VibW9kdWxlcyBhIHNlbWFudGljIHZlcnNpb24sIGluIGFkZGl0aW9uIHRvIHRoZWlyIHJldmlzaW9uLgoKICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgbGFiZWwgaXMg4oCYeC55LnrigJkg4oCTIGV4cHJlc3NlZCBhcyBwYXR0ZXJuLCBpdCBpcyBbMC05XStcXC5bMC05XStcXC5bMC05XSsKCiAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZSByZXZpc2lvbiBzdGF0ZW1lbnQuICBaZXJvIG9yIG9uZSByZXZpc2lvbiBsYWJlbCBzdGF0ZW1lbnRzCiAgICAgIHBlciBwYXJlbnQgc3RhdGVtZW50IGFyZSBhbGxvd2VkLgoKICAgICAgUmV2aXNpb24gbGFiZWxzIE1VU1QgYmUgdW5pcXVlIGFtb25nc3QgYWxsIHJldmlzaW9ucyBvZiBhIG1vZHVsZSBvciBzdWJtb2R1bGUuIjsKICAgICAgYXJndW1lbnQgc2VtdmVyc2lvbjsKICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-oam-to-cloud	urn:o-ran:smo-teiv-oam-to-cloud	OAM_TO_CLOUD	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-cloud"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbS10by1jbG91ZCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtLXRvLWNsb3VkIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbXRvY2xvdWQ7CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHtwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LW9hbSB7cHJlZml4IG9yLXRlaXYtb2FtOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNsb3VkIHtwcmVmaXggb3ItdGVpdi1jbG91ZDsgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBPJk0gdG8gQ2xvdWQgdG9wb2xvZ3kgbW9kZWwuCgogICAgQ29weXJpZ2h0IChjKSAyMDIzIEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIFJBTiBPJk0gdG8gQ2xvdWQgdG9wb2xvZ3kgcmVsYXRpb25zIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIG9yLXRlaXYteWV4dDpkb21haW4gT0FNX1RPX0NMT1VEOwoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfREVQTE9ZRURfQVNfQ0xPVURJRklFRE5GIHsgIC8vIDAuLjEgdG8gMQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZiBkZXBsb3llZC1hcy1jbG91ZGlmaWVkTkYgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IGRlcGxveWVkIGFzIENsb3VkaWZpZWQgTkYuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGRlcGxveWVkLW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkaWZpZWQgTkYgZGVwbG95cyBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtY2xvdWQ6Q2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfTUFOQUdFREVMRU1FTlQgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgc2VydmljZWQtbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IHNlcnZpY2VkIGJ5IHRoaXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1jbG91ZDpORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCB0aGF0IHNlcnZlcyB0aGlzIE1hbmFnZWQgRWxlbWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-common-yang-types	urn:o-ran:smo-teiv-common-yang-types	\N	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsKCiAgeWFuZy12ZXJzaW9uIDEuMTsKICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyI7CiAgcHJlZml4IG9yLXRlaXYtdHlwZXM7CgogIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogIGltcG9ydCBfM2dwcC1jb21tb24teWFuZy10eXBlcyB7IHByZWZpeCB0eXBlczNncHA7IH0KCiAgb3JnYW5pemF0aW9uICJFcmljc3NvbiBBQiI7CiAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgZGVzY3JpcHRpb24KICAiVG9wb2xvZ3kgYW5kIEludmVudG9yeSBjb21tb24gdHlwZXMgbW9kZWwuCgogIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgVGhpcyBtb2RlbCBjb250YWlucyByZS11c2FibGUgZGF0YSB0eXBlcyB0aGF0IHRvcG9sb2d5IGFuZCBpbnZlbnRvcnkgbW9kZWxzCiAgd2lsbCBmcmVxdWVudGx5IHVzZSBhcyBwYXJ0IG9mIHR5cGVzIGFuZCByZWxhdGlvbnNoaXBzLiI7CgogIHJldmlzaW9uICIyMDI0LTA1LTAyIiB7CiAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogIH0KCiAgZ3JvdXBpbmcgVG9wX0dycF9UeXBlIHsKCiAgICBkZXNjcmlwdGlvbiAiR3JvdXBpbmcgY29udGFpbmluZyB0aGUga2V5IGF0dHJpYnV0ZSBjb21tb24gdG8gYWxsIHR5cGVzLiBBbGwgdHlwZXMKICAgICAgICAgICAgICAgIE1VU1QgdXNlIHRoaXMgZ3JvdXBpbmcuIjsKCiAgICBsZWFmIGlkIHsKICAgICAgdHlwZSBzdHJpbmc7CiAgICAgIGRlc2NyaXB0aW9uICJVbmlxdWUgaWRlbnRpZmllciBvZiB0b3BvbG9neSBlbnRpdGllcy4gUmVwcmVzZW50cyB0aGUgRW50aXR5IEluc3RhbmNlIElkZW50aWZpZXIuIjsKICAgIH0KICB9CgogIGdyb3VwaW5nIENNX0lEIHsKCiAgICBkZXNjcmlwdGlvbiAiR3JvdXBpbmcgY29udGFpbmluZyB0aGUga2V5IGF0dHJpYnV0ZXMgdG8gbWFrZQogICAgICAgICAgICAgICAgdXNlIG9mIENvbmZpZ3VyYXRpb24gTWFuYWdlbWVudCAoQ00pLiI7CgogICAgbGVhZiBjbUhhbmRsZSB7CiAgICAgIHR5cGUgc3RyaW5nOwogICAgICBkZXNjcmlwdGlvbiAiVW5pcXVlIGlkZW50aWZpZXIgZm9yIG5ldHdvcmsgZW50aXRpZXMgaW4gQ00uIjsKICAgIH0KCiAgICBsZWFmIHJlc291cmNlSWRlbnRpZmllciB7CiAgICAgIHR5cGUgc3RyaW5nOwogICAgICBkZXNjcmlwdGlvbiAiVGhlIHhwYXRoIGV4cHJlc3Npb24gaWRlbnRpZnlpbmcgdGhlIHJlc291cmNlIGluIHRoZSBOb2RlIG1vZGVsIHlhbmcgdHJlZS4iOwogICAgfQogIH0KCiAgdHlwZWRlZiBfM0dQUF9GRE5fVHlwZSB7CiAgICB0eXBlIHR5cGVzM2dwcDpEaXN0aW5ndWlzaGVkTmFtZTsKICB9CgogIGNvbnRhaW5lciBjb25zdW1lci1kYXRhIHsKICAgIGRlc2NyaXB0aW9uICJUaGlzIGNvbnRhaW5lciBkZWZpbmVzIHRoZSBjb25zdW1lci1kYXRhLiBDb25zdW1lci1kYXRhIG1heSBiZSBhdHRhY2hlZCB0byBUb3BvbG9neSBFbnRpdHkgb3IKICAgICAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4KICAgICAgICAgICAgICAgIFRoaXMgY29udGFpbmVyIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQsIGFuZCBpdCBNVVNUIE5PVCBiZSBhdWdtZW50ZWQgb3IgZGV2aWF0ZWQgaW4gYW55IHdheSwgdW5sZXNzIHN0YXRlZAogICAgICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CgogICAgY29udGFpbmVyIGRlY29yYXRvcnMgewogICAgICBkZXNjcmlwdGlvbiAiVGhpcyBjb250YWluZXIgc2VydmVzIGFzIGV4dGVuc2lvbiBwb2ludCBmb3IgYXBwbGljYXRpb25zIHdpc2hpbmcgdG8gZGVmaW5lIHRoZWlyIG93biBkZWNvcmF0b3JzLgogICAgICAgICAgICAgICAgICBUaGlzIGlzIGRvbmUgdmlhIGF1Z21lbnRhdGlvbnMuIFRoZXkgY2FuIG9ubHkgYmUgZGVmaW5lZCBpbiBuYW1lIHZhbHVlIHBhaXIuIjsKICAgIH0KCiAgICBsZWFmLWxpc3QgY2xhc3NpZmllcnMgewogICAgICBkZXNjcmlwdGlvbiAiQ29uc3VtZXIgZGVmaW5lZCB0YWdzIHRvIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnNoaXBzLiI7CiAgICAgIHR5cGUgaWRlbnRpdHlyZWYgeyBiYXNlIGNsYXNzaWZpZXI7IH0KICAgIH0KCiAgICBsZWFmLWxpc3Qgc291cmNlSWRzIHsKICAgICAgZGVzY3JpcHRpb24gIkFuIG9yZGVyZWQgbGlzdCBvZiBpZGVudGl0aWVzIHRoYXQgcmVwcmVzZW50IHRoZSBzZXQgb2YgbmF0aXZlIHNvdXJjZSBpZGVudGlmaWVycyBmb3IgcGFydGljaXBhdGluZwogICAgICAgICAgICAgICAgICBlbnRpdGllcy4iOwogICAgICB0eXBlIHN0cmluZzsKICAgICAgb3JkZXJlZC1ieSB1c2VyOwogICAgfQoKICAgIGNvbnRhaW5lciBtZXRhZGF0YSB7CiAgICAgIGRlc2NyaXB0aW9uICJUaGlzIGNvbnRhaW5lciBzZXJ2ZXMgYXMgZXh0ZW5zaW9uIHBvaW50IHRvIGRlZmluZSBtZXRhZGF0YS4gVGhleSBjYW4gb25seSBiZSBkZWZpbmVkIGluIG5hbWUgdmFsdWUKICAgICAgICAgICAgICAgICAgcGFpci4iOwogICAgfQogIH0KCiAgaWRlbnRpdHkgY2xhc3NpZmllcnsKICAgIGRlc2NyaXB0aW9uICAiVGhlIGNsYXNzaWZpZXIgaXMgdXNlZCBhcyBhIGJhc2UgdG8gcHJvdmlkZSBhbGwgY2xhc3NpZmllcnMgd2l0aCBpZGVudGl0eS4gIjsKICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-oam	urn:o-ran:smo-teiv-oam	OAM	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbSB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbTsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBvcmdhbml6YXRpb24gIkVyaWNzc29uIEFCIjsKICAgIGNvbnRhY3QgIkVyaWNzc29uIGZpcnN0IGxpbmUgc3VwcG9ydCB2aWEgZW1haWwiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gTyZNIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIE8mTSBkb21haW4sIHdoaWNoIGFyZSBpbnRlbmRlZCB0byByZXByZXNlbnQgbWFuYWdlbWVudCBzeXN0ZW1zCiAgICBhbmQgbWFuYWdlbWVudCBpbnRlcmZhY2VzLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIE9BTTsKCiAgICBsaXN0IE1hbmFnZWRFbGVtZW50IHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBNYW5hZ2VkIEVsZW1lbnQgKE1FKSBpcyBhIG5vZGUgaW50byBhIHRlbGVjb21tdW5pY2F0aW9uIG5ldHdvcmsKICAgICAgICAgICAgICAgICAgICBwcm92aWRpbmcgc3VwcG9ydCBhbmQvb3Igc2VydmljZSB0byBzdWJzY3JpYmVycy4gQW4gTUUgY29tbXVuaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgd2l0aCBhIG1hbmFnZXIgYXBwbGljYXRpb24gKGRpcmVjdGx5IG9yIGluZGlyZWN0bHkpIG92ZXIgb25lIG9yIG1vcmUKICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VzIGZvciB0aGUgcHVycG9zZSBvZiBiZWluZyBtb25pdG9yZWQgYW5kL29yIGNvbnRyb2xsZWQuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBmZG4gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoaXMgRnVsbCBEaXN0aW5ndWlzaGVkIE5hbWUgKEZETikgaWRlbnRpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5zdGFuY2Ugb2YgdGhlIE1hbmFnZWRFbGVtZW50IE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFuYWdlZEVsZW1lbnQuIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-oam-to-ran	urn:o-ran:smo-teiv-oam-to-ran	OAM_TO_RAN	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbS10by1yYW4gewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LW9hbS10by1yYW4iOwogICAgcHJlZml4IG9yLXRlaXYtb2FtdG9yYW47CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHtwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LW9hbSB7cHJlZml4IG9yLXRlaXYtb2FtOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LXJhbiB7cHJlZml4IG9yLXRlaXYtcmFuOyB9CgogICAgb3JnYW5pemF0aW9uICJFcmljc3NvbiBBQiI7CiAgICBjb250YWN0ICJFcmljc3NvbiBmaXJzdCBsaW5lIHN1cHBvcnQgdmlhIGVtYWlsIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIE8mTSB0byBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSBSQU4gTyZNIHRvIExvZ2ljYWwgdG9wb2xvZ3kgcmVsYXRpb25zIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIG9yLXRlaXYteWV4dDpkb21haW4gT0FNX1RPX1JBTjsKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE1BTkFHRURFTEVNRU5UX01BTkFHRVNfRU5PREVCRlVOQ1RJT04geyAgIC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IG1hbmFnZWQtZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IG1hbmFnZXMgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LW9hbTpNYW5hZ2VkRWxlbWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBtYW5hZ2VkLWJ5LW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBtYW5hZ2VkIGJ5IE1hbmFnZWQgRWxlbWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46RU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19HTkJEVUZVTkNUSU9OIHsgICAgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgbWFuYWdlZC1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBtYW5hZ2VzIGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgbWFuYWdlZC1ieS1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItRFUgRnVuY3Rpb24gbWFuYWdlZCBieSBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19HTkJDVUNQRlVOQ1RJT04geyAgICAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBtYW5hZ2VkLWduYmN1Y3BGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYW5hZ2VkIEVsZW1lbnQgbWFuYWdlcyBnTm9kZUItQ1UtQ1AgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIG1hbmFnZWQtYnktbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVLUNQIEZ1bmN0aW9uIG1hbmFnZWQgYnkgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVUNQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19HTkJDVVVQRlVOQ1RJT04geyAgICAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBtYW5hZ2VkLWduYmN1dXBGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYW5hZ2VkIEVsZW1lbnQgbWFuYWdlcyBnTm9kZUItQ1UtVVAgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIG1hbmFnZWQtYnktbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVLVVQIEZ1bmN0aW9uIG1hbmFnZWQgYnkgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVVVQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-ran	urn:o-ran:smo-teiv-ran	RAN	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LXJhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogICAgaW1wb3J0IGlldGYtZ2VvLWxvY2F0aW9uIHsKICAgICAgICBwcmVmaXggZ2VvOwogICAgICAgIHJlZmVyZW5jZSAiUkZDIDkxNzk6IEEgWUFORyBHcm91cGluZyBmb3IgR2VvZ3JhcGhpYyBMb2NhdGlvbnMiOwogICAgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIExvZ2ljYWwgZG9tYWluLCB3aGljaCByZXByZXNlbnRzIHRoZSBmdW5jdGlvbmFsIGNhcGFiaWxpdHkKICAgIG9mIHRoZSBkZXBsb3llZCBSQU4gdGhhdCBhcmUgcmVsZXZhbnQgdG8gckFwcHMgdXNlIGNhc2VzLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJBTjsKCiAgICBsaXN0IEdOQkRVRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgICAgICAgICAgQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ2VudHJhbGl6ZWQgVW5pdAogICAgICAgICAgICAgICAgICAgIChnTkItQ1UpIGFuZCBhIGdOQi1EVS4gVGhlIENVIHByb2Nlc3NlcyBub24tcmVhbAogICAgICAgICAgICAgICAgICAgIHRpbWUgcHJvdG9jb2xzIGFuZCBzZXJ2aWNlcywgYW5kIHRoZSBEVSBwcm9jZXNzZXMKICAgICAgICAgICAgICAgICAgICBQSFkgbGV2ZWwgcHJvdG9jb2wgYW5kIHJlYWwgdGltZSBzZXJ2aWNlcy4gVGhlCiAgICAgICAgICAgICAgICAgICAgZ05CLUNVIGFuZCB0aGUgZ05CLURVIHVuaXRzIGFyZSBjb25uZWN0ZWQgdmlhCiAgICAgICAgICAgICAgICAgICAgRjEgbG9naWNhbCBpbnRlcmZhY2UuCgogICAgICAgICAgICAgICAgICAgIFRoZSBmb2xsb3dpbmcgaXMgdHJ1ZSBmb3IgYSBnTkItRFU6CiAgICAgICAgICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItQ1UtQ1AgdGhyb3VnaCB0aGUgRjEtQwogICAgICAgICAgICAgICAgICAgIGludGVyZmFjZS5JcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1VUCB0aHJvdWdoCiAgICAgICAgICAgICAgICAgICAgdGhlIEYxLVUgaW50ZXJmYWNlLiBPbmUgZ05CLURVIGlzIGNvbm5lY3RlZCB0byBvbmx5CiAgICAgICAgICAgICAgICAgICAgb25lIGdOQi1DVS1DUC4gT25lIGdOQi1EVSBjYW4gYmUgY29ubmVjdGVkIHRvCiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgZ05CLUNVLVVQcyB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc2FtZQogICAgICAgICAgICAgICAgICAgIGdOQi1DVS1DUC4KICAgICAgICAgICAgICAgICAgICBOb3RlOiBBIGdOQiBtYXkgY29uc2lzdCBvZiBhIGdOQi1DVS1DUCwgbXVsdGlwbGUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtVVBzIGFuZCBtdWx0aXBsZSBnTkItRFVzLiBnTkItRFUgaXMgYSBjb25jcmV0ZQogICAgICAgICAgICAgICAgICAgIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91CiAgICAgICAgICAgICAgICAgICAgY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIHRoZSBnTkItRFUgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBHTkJEVUZ1bmN0aW9uIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgR05CRFVGdW5jdGlvbi4iOwogICAgICAgICAgICAgICAgdHlwZSBvci10ZWl2LXR5cGVzOl8zR1BQX0ZETl9UeXBlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgZFVwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB1c2VkIGFzIHBhcnQgb2YgUE0gRXZlbnRzIGRhdGEiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQkRVSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgRFUgd2l0aGluIGEgZ05vZGVCIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJJZGVudGl0eSBvZiBnTm9kZUIgd2l0aGluIGEgUExNTiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBnTkJJZExlbmd0aCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTGVuZ3RoIG9mIGdOQklkIGJpdCBzdHJpbmcgcmVwcmVzZW50YXRpb24iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEdOQkNVQ1BGdW5jdGlvbiB7CiAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQiBDZW50cmFsaXplZCBVbml0IENvbnRyb2wgUGxhbmUgKGdOQi1DVS1DUCkKCiAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBhIGxvZ2ljYWwgbm9kZSBob3N0aW5nIHRoZSBSYWRpbyBSZXNvdXJjZQogICAgICAgICAgICAgICAgICAgIENvbnRyb2wgKFJSQykgYW5kIHRoZSBjb250cm9sIHBsYW5lIHBhcnQgb2YgdGhlCiAgICAgICAgICAgICAgICAgICAgUGFja2V0IERhdGEgQ29udmVyZ2VuY2UgUHJvdG9jb2wgKFBEQ1ApIG9mIHRoZQogICAgICAgICAgICAgICAgICAgIGdOb2RlQiBDZW50cmFsaXplZCBVbml0IChnTkItQ1UpIGZvciBhbiBFLVVUUkFOIGdOb2RlQgogICAgICAgICAgICAgICAgICAgIChlbi1nTkIpIG9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLUNQIHRlcm1pbmF0ZXMKICAgICAgICAgICAgICAgICAgICB0aGUgRTEgaW50ZXJmYWNlIGNvbm5lY3RlZCB3aXRoIHRoZSBnTkItQ1UtVVAgYW5kIHRoZQogICAgICAgICAgICAgICAgICAgIEYxLUMgaW50ZXJmYWNlIGNvbm5lY3RlZCB3aXRoIHRoZSBnTm9kZUIKICAgICAgICAgICAgICAgICAgICBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGlzIHRydWUgZm9yIGEgZ05CLUNVLUNQOgogICAgICAgICAgICAgICAgICAgIElzIGNvbm5lY3RlZCB0byB0aGUgZ05CLURVIHRocm91Z2ggdGhlIEYxLUMgaW50ZXJmYWNlLgogICAgICAgICAgICAgICAgICAgIElzIGNvbm5lY3RlZCB0byB0aGUgZ05CLUNVLVVQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4KICAgICAgICAgICAgICAgICAgICBPbmx5IG9uZSBnTkItQ1UtQ1AgaXMgY29ubmVjdGVkIHRvIG9uZSBnTkItRFUuCiAgICAgICAgICAgICAgICAgICAgT25seSBvbmUgZ05CLUNVLUNQIGlzIGNvbm5lY3RlZCB0byBvbmUgZ05CLUNVLVVQLgogICAgICAgICAgICAgICAgICAgIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBnTkItQ1UtVVBzCiAgICAgICAgICAgICAgICAgICAgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLk9uZSBnTkItQ1UtVVAKICAgICAgICAgICAgICAgICAgICBjYW4gYmUgY29ubmVjdGVkIHRvIG11bHRpcGxlIERVcyB1bmRlciB0aGUgY29udHJvbCBvZgogICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGdOQi1DVS1DUC4KICAgICAgICAgICAgICAgICAgICBOb3RlOiBBIGdOQiBtYXkgY29uc2lzdCBvZiBhIGdOQi1DVS1DUCwgbXVsdGlwbGUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtVVBzIGFuZCBtdWx0aXBsZSBnTkItRFVzLiBBIGdOQi1DVS1DUCBpcyBhCiAgICAgICAgICAgICAgICAgICAgY29uY3JldGUgY2xhc3MgdGhhdCBleHRlbmRzIHRoZSBORy1SQU4gbm9kZSBvYmplY3QuCiAgICAgICAgICAgICAgICAgICAgSW4gVG9wb2xvZ3ksIHlvdSBjYW4gY3JlYXRlLCByZWFkLCB1cGRhdGUsIGFuZCBkZWxldGUKICAgICAgICAgICAgICAgICAgICB0aGUgZ05CLUNVLUNQIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgR05CQ1VDUEZ1bmN0aW9uIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgR05CQ1VDUEZ1bmN0aW9uLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CQ1VOYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIGdOb2RlQi1DVSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBnTkJJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSWRlbnRpdHkgb2YgZ05vZGVCIHdpdGhpbiBhIFBMTU4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgcExNTklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQTE1OIGlkZW50aWZpZXIgdG8gYmUgdXNlZCBhcyBwYXJ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBnbG9iYWwgUkFOIG5vZGUgaWRlbnRpdHkiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgY21JZCB7CiAgICAgICAgICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6Q01fSUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBHTkJDVVVQRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgQ2VudHJhbGl6ZWQgVW5pdCBVc2VyIFBsYW5lIChnTkItQ1UtVVApCgogICAgICAgICAgICAgICAgICAgIEEgZ05CLUNVLVVQIGlzIGEgbG9naWNhbCBub2RlIGhvc3RpbmcgdGhlIFVzZXIKICAgICAgICAgICAgICAgICAgICBQbGFuZSBwYXJ0IG9mIHRoZSBQYWNrZXQgRGF0YSBDb252ZXJnZW5jZSwKICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCAoUERDUCkgb2YgdGhlIGdOb2RlQiBDZW50cmFsaXplZCBVbml0CiAgICAgICAgICAgICAgICAgICAgKGdOQi1DVSkgZm9yIGFuIEUtVVRSQU4gZ05vZGVCIChlbi1nTkIpLCBhbmQgdGhlCiAgICAgICAgICAgICAgICAgICAgVXNlciBQbGFuZSBwYXJ0IG9mIHRoZSBQRENQIHByb3RvY29sIGFuZCB0aGUKICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlIERhdGEgQWRhcHRhdGlvbiBQcm90b2NvbCAoU0RBUCkgb2YgdGhlCiAgICAgICAgICAgICAgICAgICAgZ05CLUNVIGZvciBhIGdOb2RlQiAoZ05CKS4gVGhlIGdOQi1DVS1VUCB0ZXJtaW5hdGVzCiAgICAgICAgICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLUNQIGFuZAogICAgICAgICAgICAgICAgICAgIHRoZSBGMS1VIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05vZGVCCiAgICAgICAgICAgICAgICAgICAgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1VUDoKICAgICAgICAgICAgICAgICAgICBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1EVSB0aHJvdWdoIHRoZQogICAgICAgICAgICAgICAgICAgIEYxLVUgaW50ZXJmYWNlLiBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1DUCB0aHJvdWdoCiAgICAgICAgICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZS4gT25lIGdOQi1DVS1VUCBpcyBjb25uZWN0ZWQgdG8gb25seSBvbmUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtQ1AuIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZQogICAgICAgICAgICAgICAgICAgIGdOQi1DVS1VUHMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLiBPbmUKICAgICAgICAgICAgICAgICAgICBnTkItQ1UtVVAgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBEVXMgdW5kZXIgdGhlCiAgICAgICAgICAgICAgICAgICAgY29udHJvbCBvZiB0aGUgc2FtZSBnTkItQ1UtQ1AuCiAgICAgICAgICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMKICAgICAgICAgICAgICAgICAgICBhbmQgbXVsdGlwbGUgZ05CLURVcy4gQSBnTkItQ1UtVVAgaXMgYSBjb25jcmV0ZSBjbGFzcyB0aGF0CiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kcyB0aGUgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbgogICAgICAgICAgICAgICAgICAgIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIHRoZSBnTkItQ1UtVVAgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBHTkJDVVVQRnVuY3Rpb24gTU8uIEl0IGNvbnRhaW5zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZnVsbCBwYXRoIGZyb20gdGhlIFN1Ym5ldHdvcmsgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTkJDVVVQRnVuY3Rpb24uIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBnTkJJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSWRlbnRpdHkgb2YgZ05vZGVCIHdpdGhpbiBhIFBMTU4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgY21JZCB7CiAgICAgICAgICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6Q01fSUQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOUkNlbGxDVSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gTlIgQ2VsbCBpbiBnTm9kZUItQ1UuCgogICAgICAgICAgICAgICAgICAgIDVHIE5SIGlzIGEgbmV3IHJhZGlvIGFjY2VzcyB0ZWNobm9sb2d5IChSQVQpCiAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcGVkIGJ5IDNHUFAgZm9yIHRoZSA1RyAoZmlmdGggZ2VuZXJhdGlvbikKICAgICAgICAgICAgICAgICAgICBtb2JpbGUgbmV0d29yay4gSXQgaXMgZGVzaWduZWQgdG8gYmUgdGhlIGdsb2JhbAogICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIGZvciB0aGUgYWlyIGludGVyZmFjZSBvZiA1RyBuZXR3b3Jrcy4KCiAgICAgICAgICAgICAgICAgICAgNUcgTlIgaGFzIHN5bmNocm9uaXphdGlvbiBzaWduYWwgdGhhdCBpcyBrbm93biBhcwogICAgICAgICAgICAgICAgICAgIFByaW1hcnkgU3luY2hyb25pemF0aW9uIHNpZ25hbCAoUFNTKSBhbmQgU2Vjb25kYXJ5CiAgICAgICAgICAgICAgICAgICAgU3luY2hyb25pemF0aW9uIHNpZ25hbCAoU1NTKS4gVGhlc2Ugc2lnbmFscyBhcmUKICAgICAgICAgICAgICAgICAgICBzcGVjaWZpYyB0byBOUiBwaHlzaWNhbCBsYXllciBhbmQgcHJvdmlkZSB0aGUKICAgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgVUUgZm9yIGRvd25saW5rCiAgICAgICAgICAgICAgICAgICAgc3luY2hyb25pemF0aW9uOiBQU1MgcHJvdmlkZXMgUmFkaW8gRnJhbWUgQm91bmRhcnkKICAgICAgICAgICAgICAgICAgICAoUG9zaXRpb24gb2YgMXN0IFN5bWJvbCBpbiBhIFJhZGlvIGZyYW1lKSBTU1MgcHJvdmlkZXMKICAgICAgICAgICAgICAgICAgICBTdWJmcmFtZSBCb3VuZGFyeSAoUG9zaXRpb24gb2YgMXN0IFN5bWJvbCBpbiBhIFN1YmZyYW1lKQogICAgICAgICAgICAgICAgICAgIFBoeXNpY2FsIExheWVyIENlbGwgSUQgKFBDSSkgaW5mb3JtYXRpb24gdXNpbmcgYm90aAogICAgICAgICAgICAgICAgICAgIFBTUyBhbmQgU1NTLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBOUkNlbGxDVSBNTy4gSXQgY29udGFpbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgU3VibmV0d29yayB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5SQ2VsbENVLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgY2VsbExvY2FsSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVzZWQgdG9nZXRoZXIgd2l0aCBnTm9kZUIgaWRlbnRpZmllciB0bwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZnkgTlIgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGdOQklkIHRvIGZvcm0gTkNJLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIHBsbW5JZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiUExNTiBJRCBmb3IgTlIgQ0dJLiBJZiBlbXB0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOQkNVQ1BGdW5jdGlvbjo6cExNTklkIGlzIHVzZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBQTE1OIElEIGluIE5SIENHSSI7CiAgICAgICAgICAgICAgICB1c2VzIHR5cGVzM2dwcDpQTE1OSWQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbkNJIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBDZWxsIElkZW50aXR5IjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5SQ2VsbERVIHsKICAgICAgICBkZXNjcmlwdGlvbiAiUmVwcmVzZW50cyBhbiBOUiBDZWxsIGluIGdOb2RlQi1EVS4KCiAgICAgICAgICAgICAgICAgICAgNUcgTlIgaXMgYSBuZXcgcmFkaW8gYWNjZXNzIHRlY2hub2xvZ3kgKFJBVCkKICAgICAgICAgICAgICAgICAgICBkZXZlbG9wZWQgYnkgM0dQUCBmb3IgdGhlIDVHIChmaWZ0aCBnZW5lcmF0aW9uKQogICAgICAgICAgICAgICAgICAgIG1vYmlsZSBuZXR3b3JrLiBJdCBpcyBkZXNpZ25lZCB0byBiZSB0aGUgZ2xvYmFsCiAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgZm9yIHRoZSBhaXIgaW50ZXJmYWNlIG9mIDVHIG5ldHdvcmtzLgoKICAgICAgICAgICAgICAgICAgICA1RyBOUiBoYXMgc3luY2hyb25pemF0aW9uIHNpZ25hbCB0aGF0IGlzIGtub3duIGFzCiAgICAgICAgICAgICAgICAgICAgUHJpbWFyeSBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChQU1MpIGFuZCBTZWNvbmRhcnkKICAgICAgICAgICAgICAgICAgICBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChTU1MpLiBUaGVzZSBzaWduYWxzIGFyZQogICAgICAgICAgICAgICAgICAgIHNwZWNpZmljIHRvIE5SIHBoeXNpY2FsIGxheWVyIGFuZCBwcm92aWRlIHRoZQogICAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSBVRSBmb3IgZG93bmxpbmsKICAgICAgICAgICAgICAgICAgICBzeW5jaHJvbml6YXRpb246IFBTUyBwcm92aWRlcyBSYWRpbyBGcmFtZSBCb3VuZGFyeQogICAgICAgICAgICAgICAgICAgIChQb3NpdGlvbiBvZiAxc3QgU3ltYm9sIGluIGEgUmFkaW8gZnJhbWUpIFNTUyBwcm92aWRlcwogICAgICAgICAgICAgICAgICAgIFN1YmZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZiAxc3QgU3ltYm9sIGluIGEgU3ViZnJhbWUpCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWwgTGF5ZXIgQ2VsbCBJRCAoUENJKSBpbmZvcm1hdGlvbiB1c2luZyBib3RoCiAgICAgICAgICAgICAgICAgICAgUFNTIGFuZCBTU1MuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBmZG4gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoaXMgRnVsbCBEaXN0aW5ndWlzaGVkIE5hbWUgKEZETikgaWRlbnRpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5zdGFuY2Ugb2YgdGhlIE5SQ2VsbERVIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTlJDZWxsRFUuIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBjZWxsTG9jYWxJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVXNlZCB0b2dldGhlciB3aXRoIGdOb2RlQiBpZGVudGlmaWVyIHRvIGlkZW50aWZ5IE5SCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyIHdpdGggZ05CSWQgdG8gZm9ybSBOQ0kuIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5DSSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbCBJZGVudGl0eS4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgblJQQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBQaHlzaWNhbCBDZWxsIElkZW50aXR5IChQQ0kpIG9mIHRoZSBOUiBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBuUlRBQyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgVHJhY2tpbmcgQXJlYSBDb2RlIChUQUMpLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgRU5vZGVCRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJBbiBFdm9sdmVkIE5vZGUgQiAoZU5vZGVCKSBpcyB0aGUgb25seSBtYW5kYXRvcnkKICAgICAgICAgICAgICAgICAgICBub2RlIGluIHRoZSByYWRpbyBhY2Nlc3MgbmV0d29yayAoUkFOKSBvZiBMb25nLVRlcm0KICAgICAgICAgICAgICAgICAgICBFdm9sdXRpb24gKExURSkuIFRoZSBlTm9kZUIgaXMgYSBjb21wbGV4IGJhc2UKICAgICAgICAgICAgICAgICAgICBzdGF0aW9uIHRoYXQgaGFuZGxlcyByYWRpbyBjb21tdW5pY2F0aW9ucwogICAgICAgICAgICAgICAgICAgIGluIHRoZSBjZWxsIGFuZCBjYXJyaWVzIG91dCByYWRpbyByZXNvdXJjZQogICAgICAgICAgICAgICAgICAgIG1hbmFnZW1lbnQgYW5kIGhhbmRvdmVyIGRlY2lzaW9ucy4gVW5saWtlIDIvM0cKICAgICAgICAgICAgICAgICAgICB3aXJlbGVzcyBSQU4sIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHJhZGlvIG5ldHdvcmsKICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyIGluIExURS4gSXQgaXMgdGhlIGhhcmR3YXJlIHRoYXQgaXMgY29ubmVjdGVkCiAgICAgICAgICAgICAgICAgICAgdG8gdGhlIG1vYmlsZSBwaG9uZSBuZXR3b3JrIHRoYXQgY29tbXVuaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgZGlyZWN0bHkgd2l0aCBtb2JpbGUgaGFuZHNldHMgKFVzZXIgRXF1aXBtZW50KSwgbGlrZSBhIGJhc2UKICAgICAgICAgICAgICAgICAgICB0cmFuc2NlaXZlciBzdGF0aW9uIChCVFMpIGluIEdTTSBuZXR3b3Jrcy4gVGhpcyBzaW1wbGlmaWVzCiAgICAgICAgICAgICAgICAgICAgdGhlIGFyY2hpdGVjdHVyZSBhbmQgYWxsb3dzIGxvd2VyIHJlc3BvbnNlIHRpbWVzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZmRuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIEZ1bGwgRGlzdGluZ3Vpc2hlZCBOYW1lIChGRE4pIGlkZW50aWZpZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuIGluc3RhbmNlIG9mIHRoZSBFTm9kZUJGdW5jdGlvbiBNTy4gSXQgY29udGFpbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgU3VibmV0d29yayB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVOb2RlQkZ1bmN0aW9uLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZU5CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBFTm9kZUIgSUQgdGhhdCBmb3JtcyBwYXJ0IG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgQ2VsbCBHbG9iYWwgSWRlbnRpdHksIGFuZCBpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxzbyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBub2RlIG92ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBTMSBpbnRlcmZhY2UiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBlTm9kZUJQbG1uSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBFTm9kZUIgUHVibGljIExhbmQgTW9iaWxlIE5ldHdvcmsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQTE1OKSBJRCB0aGF0IGZvcm1zIHBhcnQgb2YgdGhlIEVOb2RlQgogICAgICAgICAgICAgICAgICAgICAgICAgICAgR2xvYmFsIElEIHVzZWQgdG8gaWRlbnRpZnkgdGhlIG5vZGUgb3ZlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFMxIGludGVyZmFjZS4gTm90ZTogVGhlIHZhbHVlIChNQ0M9MDAxLCBNTkM9MDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgUExNTiBpcyBub3QgaW5pdGlhdGVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIGNhbiBub3QgYmUgdXNlZCBhcyBhIHZhbGlkIFBMTU4gSWRlbnRpdHkuIjsKCiAgICAgICAgICAgICAgICBsZWFmIG1jYyB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBNQ0MgcGFydCBvZiBhIFBMTU4gaWRlbnRpdHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uYyB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBNTkMgcGFydCBvZiBhIFBMTU4gaWRlbnRpdHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uY0xlbmd0aCB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBsZW5ndGggb2YgdGhlIE1OQyBwYXJ0IG9mIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTE1OIGlkZW50aXR5IHVzZWQgaW4gdGhlIHJhZGlvIG5ldHdvcmsuIjsKICAgICAgICAgICAgICAgICAgICB0eXBlIGludDMyIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgMi4uMzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEVVdHJhbkNlbGwgewogICAgICAgIGRlc2NyaXB0aW9uICJSZXByZXNlbnRzIGFuIEZERCBvciBUREQgRVV0cmFuQ2VsbCBhbmQKICAgICAgICAgICAgICAgICAgICBjb250YWlucyBwYXJhbWV0ZXJzIG5lZWRlZCBieSB0aGUgY2VsbC4KICAgICAgICAgICAgICAgICAgICBJdCBhbHNvIGNvbnRhaW5zIHBhcmFtZXRlcnMgZm9yIHRoZQogICAgICAgICAgICAgICAgICAgIG1hbmRhdG9yeSBjb21tb24gY2hhbm5lbHMuIEFuIEVVVFJBTiBzdGFuZHMKICAgICAgICAgICAgICAgICAgICBmb3IgRXZvbHZlZCBVbml2ZXJzYWwgTW9iaWxlIFRlbGVjb21tdW5pY2F0aW9ucwogICAgICAgICAgICAgICAgICAgIFN5c3RlbSAoVU1UUykgVGVycmVzdHJpYWwgUmFkaW8gQWNjZXNzIE5ldHdvcmsKICAgICAgICAgICAgICAgICAgICB3aGljaCBjb250YWlucyBhbiBlTm9kZUIuIFRoZSBlTm9kZUIgY29uY3JldGUKICAgICAgICAgICAgICAgICAgICBjbGFzcyBpcyBleHRlbmRlZCBmcm9tIHRoZSBFVVRSQU4gTm9kZSBhYnN0cmFjdCBjbGFzcy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiBlaXRoZXIgdGhlIEVVdHJhbkNlbGxGREQgTU8gb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBFVXRyYW5DZWxsVEREIE1PLiBJdCBjb250YWlucyB0aGUgZnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZSBFVXRyYW5DZWxsRkREIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVXRyYW5DZWxsVERELiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgY2VsbElkewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJCUyBpbnRlcm5hbCBJRCBhdHRyaWJ1dGUgZm9yIEVVdHJhbkNlbGwuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNdXN0IGJlIHVuaXF1ZSBpbiB0aGUgUkJTLiBUb2dldGhlciB3aXRoIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSBJRCBhbmQgUHVibGljIExhbmQgTW9iaWxlIE5ldHdvcmsgKFBMTU4pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGlzIGEgdW5pdmVyc2FsbHkgdW5pcXVlIGNlbGwgSUQiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWFyZmNuZGwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjaGFubmVsIG51bWJlciBmb3IgdGhlIGNlbnRyYWwgZG93bmxpbmsgZnJlcXVlbmN5LiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY251bCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2hhbm5lbCBudW1iZXIgZm9yIHRoZSBjZW50cmFsIHVwbGluayBmcmVxdWVuY3kiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZGxDaGFubmVsQmFuZHdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgZG93bmxpbmsgY2hhbm5lbCBiYW5kd2lkdGggaW4gdGhlIEZERCBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY24gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBFLVVUUkEgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciAoRUFSRkNOKSBmb3IgdGhlIFRERCBjZWxsIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGNoYW5uZWxCYW5kd2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBjaGFubmVsIGJhbmR3aWR0aCBpbiB0aGUgVEREIGNlbGwuIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRhYyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVHJhY2tpbmcgQXJlYSBDb2RlIGZvciB0aGUgRVV0cmFuIENlbGwiOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZHVwbGV4VHlwZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSW5kaWNhdG9yIG9mIEVVdHJhbkNlbGwgdHlwZSwgRkREIG9yIFRERCI7CiAgICAgICAgICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICBlbnVtIGZkZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJGREQiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHRkZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUREQiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTlJTZWN0b3JDYXJyaWVyIHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE5SIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcwogICAgICAgICAgICAgICAgICAgIHRoZSBhdHRyaWJ1dGVzIGZvciBkZWZpbmluZyB0aGUgbG9naWNhbAogICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljcyBvZiBhIGNhcnJpZXIgKGNlbGwpIGluIGEKICAgICAgICAgICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkCiAgICAgICAgICAgICAgICAgICAgd2l0aCBhIGJhc2Ugc3RhdGlvbiBoYXZpbmcgaXRzIG93biBhbnRlbm5hcywKICAgICAgICAgICAgICAgICAgICByYWRpbyBwb3J0cywgYW5kIGNvbnRyb2wgY2hhbm5lbHMuIFRoZSBjb25jZXB0CiAgICAgICAgICAgICAgICAgICAgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbAogICAgICAgICAgICAgICAgICAgIGludGVyZmVyZW5jZSBpbiBjZWxsdWxhciBzeXN0ZW1zLCBhbmQgbW9zdCB3aXJlbGVzcwogICAgICAgICAgICAgICAgICAgIHN5c3RlbXMgdXNlIHRocmVlIHNlY3RvciBjZWxscy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgTlJTZWN0b3JDYXJyaWVyIE1PLiBJdCBjb250YWlucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrIHRvIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTlJTZWN0b3JDYXJyaWVyLiI7CiAgICAgICAgICAgICAgICB0eXBlIG9yLXRlaXYtdHlwZXM6XzNHUFBfRkROX1R5cGU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgYXJmY25ETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlciAoTlItQVJGQ04pIGZvciBkb3dubGluayI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBhcmZjblVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBBYnNvbHV0ZSBSYWRpbyBmcmVxdWVuY3kgQ2hhbm5lbCBOdW1iZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOUi1BUkZDTikgZm9yIHVwbGluay4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZnJlcXVlbmN5REwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJGIFJlZmVyZW5jZSBGcmVxdWVuY3kgb2YgZG93bmxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBmcmVxdWVuY3lVTCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiUkYgUmVmZXJlbmNlIEZyZXF1ZW5jeSBvZiB1cGxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBiU0NoYW5uZWxCd0RMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJCUyBDaGFubmVsIGJhbmR3aWR0aCBpbiBNSHogZm9yIGRvd25saW5rLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTFRFU2VjdG9yQ2FycmllciB7CiAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBMVEUgU2VjdG9yIENhcnJpZXIgb2JqZWN0IHByb3ZpZGVzIHRoZQogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgZm9yIGRlZmluaW5nIHRoZSBsb2dpY2FsIGNoYXJhY3RlcmlzdGljcwogICAgICAgICAgICAgICAgICAgIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYSBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UKICAgICAgICAgICAgICAgICAgICBhcmVhIGFzc29jaWF0ZWQgd2l0aCBhIGJhc2Ugc3RhdGlvbiBoYXZpbmcKICAgICAgICAgICAgICAgICAgICBpdHMgb3duIGFudGVubmFzLCByYWRpbyBwb3J0cywgYW5kIGNvbnRyb2wgY2hhbm5lbHMuCiAgICAgICAgICAgICAgICAgICAgVGhlIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbAogICAgICAgICAgICAgICAgICAgIGludGVyZmVyZW5jZSBpbiBjZWxsdWxhciBzeXN0ZW1zLCBhbmQgbW9zdCB3aXJlbGVzcyBzeXN0ZW1zCiAgICAgICAgICAgICAgICAgICAgdXNlIHRocmVlIHNlY3RvciBjZWxscy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgU2VjdG9yQ2FycmllciBNTy4gSXQgY29udGFpbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBmdWxsIHBhdGggZnJvbSB0aGUgU3VibmV0d29yayB0byB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlY3RvckNhcnJpZXIuIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBzZWN0b3JDYXJyaWVyVHlwZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBzZWN0b3IgY2FycmllcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxsZWQgYnkgTU8gU2VjdG9yQ2FycmllciBpcyBhIGRpZ2l0YWwgc2VjdG9yLiI7CiAgICAgICAgICAgICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICAgICAgICAgICAgICBlbnVtIG5vcm1hbF9zZWN0b3IgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAwOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm90IGEgZGlnaXRhbCBzZWN0b3IiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZnRfZGlnaXRhbF9zZWN0b3IgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAxOwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTGVmdCBkaWdpdGFsIHNlY3RvciBmb3IgMkRTIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSByaWdodF9kaWdpdGFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDI7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSaWdodCBkaWdpdGFsIHNlY3RvciBmb3IgMkRTIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSBsZWZ0X2RpZ2l0YWxfc2VjdG9yXzNkcyB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDM7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMZWZ0IGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHJpZ2h0X2RpZ2l0YWxfc2VjdG9yXzNkcyB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSaWdodCBkaWdpdGFsIHNlY3RvciBmb3IgM0RTIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZW51bSBtaWRkbGVfZGlnaXRhbF9zZWN0b3IgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA1OwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWlkZGxlIGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgIGRlc2NyaXB0aW9uICJUaGlzIE1PIHNlcnZlcyBhcyBhIG1hcHBpbmcgYmV0d2VlbiB0aGUgY2VsbAogICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgUkJTIGVxdWlwbWVudCB1c2VkIHRvIHByb3ZpZGUgY292ZXJhZ2UKICAgICAgICAgICAgICAgICAgICBpbiBhIGNlcnRhaW4gZ2VvZ3JhcGhpY2FsIGFyZWEuIFRoZSBNTyBhbHNvCiAgICAgICAgICAgICAgICAgICAgY29udHJvbHMgdGhlIG1heGltdW0gb3V0cHV0IHBvd2VyIG9mIHRoZSBzZWN0b3IuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBmZG4gewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoaXMgRnVsbCBEaXN0aW5ndWlzaGVkIE5hbWUgKEZETikgaWRlbnRpZmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5zdGFuY2Ugb2YgdGhlIFNlY3RvckVxdWlwbWVudEZ1bmN0aW9uIE1PLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgY29udGFpbnMgdGhlIGZ1bGwgcGF0aCBmcm9tIHRoZSBTdWJuZXR3b3JrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgU2VjdG9yRXF1aXBtZW50RnVuY3Rpb24uIjsKICAgICAgICAgICAgICAgIHR5cGUgb3ItdGVpdi10eXBlczpfM0dQUF9GRE5fVHlwZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZi1saXN0IGVVdHJhbkZxQmFuZHMgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2YgTFRFIGZyZXF1ZW5jeSBiYW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhc3NvY2lhdGVkIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgZ2VyYW5GcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIEdFUkFOIGZyZXF1ZW5jeSBiYW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhc3NvY2lhdGVkIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgblJGcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIE5SIGZyZXF1ZW5jeSBiYW5kcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBoYXJkd2FyZSBzdXBwb3J0cyI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgU2VjdG9yIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBncm91cCBvZiBjby1sb2NhdGVkIENlbGxzIHRoYXQKICAgICAgICAgICAgICAgICAgICBoYXZlIGEgc2hhcmVkIGNvdmVyYWdlIGFyZWEuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBzZWN0b3JJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pdmVyc2FsbHkgdW5pcXVlIElEIGdlbmVyYXRlZCBieSB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3RvcidzIGRpc2NvdmVyeSBtZWNoYW5pc20uIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDY0OwogICAgICAgICAgICB9CgogICAgICAgICAgICB1c2VzIGdlbzpnZW8tbG9jYXRpb247CgogICAgICAgICAgICBsZWFmIGF6aW11dGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkF2ZXJhZ2UgdmFsdWUgb2YgdGhlIGF6aW11dGhzIG9mIHRoZSBjZWxscwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHJpc2luZyB0aGUgc2VjdG9yLCBkZXRlcm1pbmVkIGR1cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdG9yIGRpc2NvdmVyeS4iOwogICAgICAgICAgICAgICAgdHlwZSBkZWNpbWFsNjR7CiAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDY7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1bml0cyAiZGVncmVlcyI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRU5PREVCRlVOQ1RJT05fUFJPVklERVNfRVVUUkFOQ0VMTCB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLWV1VHJhbkNlbGwgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIHByb3ZpZGVzIEVVVFJBTiBDZWxsLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBFTm9kZUJGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1lbm9kZWJGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCBwcm92aWRlZCBieSBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIEVVdHJhbkNlbGw7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRU5PREVCRlVOQ1RJT05fUFJPVklERVNfTFRFU0VDVE9SQ0FSUklFUiB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIHByb3ZpZGVzIExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHByb3ZpZGVkIGJ5IGVOb2RlQiBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTFRFU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBHTkJEVUZVTkNUSU9OX1BST1ZJREVTX05SQ0VMTERVIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJDZWxsRHUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLURVIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIENlbGwtRFUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZ25iZHVGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBDZWxsLURVIHByb3ZpZGVkIGJ5IGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CRFVGVU5DVElPTl9QUk9WSURFU19OUlNFQ1RPUkNBUlJJRVIgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1uclNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLURVIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBHTkJEVUZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgU2VjdG9yIENhcnJpZXIgcHJvdmlkZWQgYnkgZ05vZGVCLURVIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOUlNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CQ1VDUEZVTkNUSU9OX1BST1ZJREVTX05SQ0VMTENVIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJDZWxsQ3UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVQ1AgRnVuY3Rpb24gcHJvdmlkZXMgTlIgQ2VsbC1DVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgR05CQ1VDUEZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmN1Y3BGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBDZWxsLUNVIHByb3ZpZGVkIGJ5IGdOb2RlQi1DVUNQIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOUkNlbGxDVTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBFVVRSQU5DRUxMX1VTRVNfTFRFU0VDVE9SQ0FSUklFUiB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHVzZWQtbHRlU2VjdG9yQ2FycmllciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCB1c2VzIExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRVV0cmFuQ2VsbDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiB1c2VkLWJ5LWV1VHJhbkNlbGwgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHVzZWQgYnkgRVVUUkFOIENlbGwuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBMVEVTRUNUT1JDQVJSSUVSX1VTRVNfQU5URU5OQUNBUEFCSUxJVFkgeyAvLyAwLi5uIHRvIDAuLjEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgdXNlZC1hbnRlbm5hQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMVEUgU2VjdG9yIENhcnJpZXIgdXNlcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCB1c2VkLWJ5LWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBDYXBhYmlsaXR5IHVzZWQgYnkgTFRFIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBBbnRlbm5hQ2FwYWJpbGl0eTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5SQ0VMTERVX1VTRVNfTlJTRUNUT1JDQVJSSUVSIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1uclNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSB1c2VzIE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBOUkNlbGxEVTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiB1c2VkLWJ5LW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIFNlY3RvciBDYXJyaWVyIHVzZWQgYnkgTlIgQ2VsbC1EVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTlJTRUNUT1JDQVJSSUVSX1VTRVNfQU5URU5OQUNBUEFCSUxJVFkgeyAvLyAwLi5uIHRvIDAuLjEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgdXNlZC1hbnRlbm5hQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBTZWN0b3IgQ2FycmllciB1c2VzIEFudGVubmEgQ2FwYWJpbGl0eS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1ieS1uclNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBDYXBhYmlsaXR5IHVzZWQgYnkgTlIgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIEFudGVubmFDYXBhYmlsaXR5OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19OUkNFTExEVSB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGdyb3VwZWQtbnJDZWxsRHUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VjdG9yIGdyb3VwcyBOUiBDZWxsLURVLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBTZWN0b3I7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgZ3JvdXBlZC1ieS1zZWN0b3IgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBTRUNUT1JfR1JPVVBTX0VVVFJBTkNFTEwgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLWV1VHJhbkNlbGwgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VjdG9yIGdyb3VwcyBFVVRSQU4gQ2VsbC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgU2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkVVVFJBTiBDZWxsIGdyb3VwZWQgYnkgU2VjdG9yLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBFVXRyYW5DZWxsOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-equipment	urn:o-ran:smo-teiv-equipment	EQUIPMENT	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtZXF1aXBtZW50IjsKICAgIHByZWZpeCBvci10ZWl2LWVxdWlwOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7cHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7cHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIGltcG9ydCBpZXRmLWdlby1sb2NhdGlvbiB7CiAgICAgICAgcHJlZml4IGdlbzsKICAgICAgICByZWZlcmVuY2UgIlJGQyA5MTc5OiBBIFlBTkcgR3JvdXBpbmcgZm9yIEdlb2dyYXBoaWMgTG9jYXRpb25zIjsKICAgIH0KCiAgICBvcmdhbml6YXRpb24gIkVyaWNzc29uIEFCIjsKICAgIGNvbnRhY3QgIkVyaWNzc29uIGZpcnN0IGxpbmUgc3VwcG9ydCB2aWEgZW1haWwiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gRXF1aXBtZW50IHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIEVxdWlwbWVudCBkb21haW4sIHdoaWNoIGlzIG1vZGVsbGVkIHRvIHVuZGVyc3RhbmQgdGhlIHBoeXNpY2FsCiAgICBsb2NhdGlvbiBvZiBlcXVpcG1lbnQgc3VjaCBhcyBhbnRlbm5hcyBhc3NvY2lhdGVkIHdpdGggYSBjZWxsL2NhcnJpZXIKICAgIGFuZCB0aGVpciByZWxldmFudCBwcm9wZXJ0aWVzIGUuZy4gdGlsdCwgbWF4IHBvd2VyIGV0Yy4iOwoKICAgIHJldmlzaW9uICIyMDI0LTA1LTAyIiB7CiAgICAgICAgZGVzY3JpcHRpb24gIkluaXRpYWwgcmV2aXNpb24uIjsKICAgICAgICBvci10ZWl2LXlleHQ6bGFiZWwgMC4zLjA7CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmRvbWFpbiBFUVVJUE1FTlQ7CgogICAgbGlzdCBBbnRlbm5hTW9kdWxlIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQW4gQW50ZW5uYSBNb2R1bGUgcmVwcmVzZW50cyB0aGUKICAgICAgICAgICAgICAgICAgICBwaHlzaWNhbCBhc3BlY3Qgb2YgYW4gYW50ZW5uYS4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGZkbiB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBGdWxsIERpc3Rpbmd1aXNoZWQgTmFtZSAoRkROKSBpZGVudGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnN0YW5jZSBvZiB0aGUgQW50ZW5uYVN1YlVuaXQgTU8uIEl0IGNvbnRhaW5zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZnVsbCBwYXRoIGZyb20gdGhlIFN1Ym5ldHdvcmsgdG8gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnRlbm5hU3ViVW5pdC4iOwogICAgICAgICAgICAgICAgdHlwZSBvci10ZWl2LXR5cGVzOl8zR1BQX0ZETl9UeXBlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGFudGVubmFNb2RlbE51bWJlciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVmVuZG9yLXNwZWNpZmljIGFudGVubmEgbW9kZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXIuIFRoaXMgYXR0cmlidXRlIGlzIHBhcnQgb2YKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vIG9wZXJhdGlvbmFsIGltcGFjdC4iOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbWVjaGFuaWNhbEFudGVubmFCZWFyaW5nIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIGJlYXJpbmcgb24gYW50ZW5uYSBzdWJ1bml0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVyZSBhbnRlbm5hIHVuaXQgaXMgaW5zdGFsbGVkLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBtZWNoYW5pY2FsQW50ZW5uYVRpbHQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBmaXhlZCBhbnRlbm5hIHRpbHQgb2YgdGhlIGluc3RhbGxhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZWQgYXMgdGhlIGluY2xpbmF0aW9uIG9mIHRoZSBhbnRlbm5hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50IHJlc3BlY3QgdG8gdGhlIHZlcnRpY2FsIHBsYW5lLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgSXQgaXMgYSBzaWduZWQgdmFsdWUuIFBvc2l0aXZlIGluZGljYXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bnRpbHQsIGFuZCBuZWdhdGl2ZSBpbmRpY2F0ZXMgdXB0aWx0LiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBwb3NpdGlvbldpdGhpblNlY3RvciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSB1bml0IHBvc2l0aW9uIHdpdGhpbiBzZWN0b3IuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGF0dHJpYnV0ZSBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZCBhbmQgaGFzIG5vIG9wZXJhdGlvbmFsIGltcGFjdC4iOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgdG90YWxUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUb3RhbCBhbnRlbm5hIGVsZXZhdGlvbiBpbmNsdWRpbmcgdGhlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxsZWQgdGlsdCBhbmQgdGhlIHRpbHQgYXBwbGllZCBieQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIFJlbW90ZSBFbGVjdHJpY2FsIFRpbHQgKFJFVCkuIjsKICAgICAgICAgICAgICAgIHR5cGUgdWludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGVsZWN0cmljYWxBbnRlbm5hVGlsdCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiRWxlY3RyaWNhbGx5LWNvbnRyb2xsZWQgdGlsdCBvZiBtYWluIGJlYW0gbWF4aW11bQogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCByZXNwZWN0IHRvIGRpcmVjdGlvbiBvcnRob2dvbmFsIHRvIGFudGVubmEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgYXhpcyAoc2VlIDNHUFAgVFMgMjUuNDY2KS4gVmFsdWUgaXMgc2lnbmVkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsdCBkb3duIGlzIHBvc2l0aXZlLCB0aWx0IHVwIGlzIG5lZ2F0aXZlLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZi1saXN0IGFudGVubmFCZWFtV2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBhbmd1bGFyIHNwYW4gb2YgdGhlIG1haW4gbG9iZSBvZiB0aGUgYW50ZW5uYSByYWRpYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybiBpbiB0aGUgaG9yaXpvbnRhbCBwbGFuZS4gTWVhc3VyZWQgaW4gZGVncmVlcy4iOwogICAgICAgICAgICAgICAgdHlwZSB1aW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHVzZXMgZ2VvOmdlby1sb2NhdGlvbjsKCiAgICAgICAgICAgIGNvbnRhaW5lciBjbUlkIHsKICAgICAgICAgICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpDTV9JRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IFNpdGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBIHNpdGUgaXMgYSBwaHlzaWNhbCBsb2NhdGlvbiB3aGVyZSBhbiBBbnRlbm5hIG9yCiAgICAgICAgICAgICAgICAgICAgUGh5c2ljYWwgTkYgY2FuIGJlIGluc3RhbGxlZC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgUGh5c2ljYWxORiB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYSBQaHlzaWNhbCBORiwKICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyB1c2VkIHRvIHJlYWxpc2UgTmV0d29yayBGdW5jdGlvbnMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIFBoeXNpY2FsIE5GLiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiB0eXBlIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUeXBlIG9mIFBoeXNpY2FsIE5GLiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgY29udGFpbmVyIGNtSWQgewogICAgICAgICAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOkNNX0lEOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQU5URU5OQU1PRFVMRV9JTlNUQUxMRURfQVRfU0lURSB7IC8vIDAuLm4gdG8gMC4uMQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZiBpbnN0YWxsZWQtYXQtc2l0ZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIE1vZHVsZSBpbnN0YWxsZWQgYXQgU2l0ZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQW50ZW5uYU1vZHVsZTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGluc3RhbGxlZC1hbnRlbm5hTW9kdWxlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNpdGUgd2hlcmUgQW50ZW5uYSBNb2R1bGUgaXMgaW5zdGFsbGVkLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBTaXRlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgUEhZU0lDQUxORl9JTlNUQUxMRURfQVRfU0lURSB7IC8vIDEuLm4gdG8gMC4uMQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZiBpbnN0YWxsZWQtYXQtc2l0ZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBORiBpbnN0YWxsZWQgYXQgU2l0ZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgUGh5c2ljYWxORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGluc3RhbGxlZC1waHlzaWNhbE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNpdGUgd2hlcmUgUGh5c2ljYWwgTkYgaXMgaW5zdGFsbGVkLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBTaXRlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-cloud-to-ran	urn:o-ran:smo-teiv-cloud-to-ran	CLOUD_TO_RAN	["o-ran-smo-teiv-cloud", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkLXRvLXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtY2xvdWQtdG8tcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LWNsb3VkdG9yYW47CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHtwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHtwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNsb3VkIHtwcmVmaXggb3ItdGVpdi1jbG91ZDsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1yYW4ge3ByZWZpeCBvci10ZWl2LXJhbjsgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBDbG91ZCB0byBSQU4gTG9naWNhbCB0b3BvbG9neSBtb2RlbC4KCiAgICBDb3B5cmlnaHQgKGMpIDIwMjMgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIENsb3VkIHRvIFJBTiBMb2dpY2FsIHRvcG9sb2d5IHJlbGF0aW9ucyI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEX1RPX1JBTjsKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfR05CRFVGVU5DVElPTiB7IC8vIDAuLm4gdG8gMC4ubQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHNlcnZpY2VkLWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCRFUgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBORiBEZXBsb3ltZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LWNsb3VkOk5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBnTm9kZUJEVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46R05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfR05CQ1VDUEZVTkNUSU9OIHsgLy8gMC4ubiB0byAwLi5tCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iY3VjcEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVS1DUCBGdW5jdGlvbiBzZXJ2aWNlZCBieSB0aGlzIE5GIERlcGxveW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtY2xvdWQ6TkZEZXBsb3ltZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCB0aGF0IHNlcnZlcyB0aGlzIGdOb2RlQkNVQ1AgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5GREVQTE9ZTUVOVF9TRVJWRVNfR05CQ1VVUEZVTkNUSU9OIHsgLy8gMC4ubiB0byAwLi5tCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iY3V1cEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVS1VUCBGdW5jdGlvbiBzZXJ2aWNlZCBieSB0aGlzIE5GIERlcGxveW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtY2xvdWQ6TkZEZXBsb3ltZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCB0aGF0IHNlcnZlcyB0aGlzIGdOb2RlQkNVVVAgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVVVBGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-cloud	urn:o-ran:smo-teiv-cloud	CLOUD	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jbG91ZCI7CiAgICBwcmVmaXggb3ItdGVpdi1jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgaWV0Zi1nZW8tbG9jYXRpb24gewogICAgICAgIHByZWZpeCBnZW87CiAgICAgICAgcmVmZXJlbmNlICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucyI7CiAgICB9CgogICAgb3JnYW5pemF0aW9uICJFcmljc3NvbiBBQiI7CiAgICBjb250YWN0ICJFcmljc3NvbiBmaXJzdCBsaW5lIHN1cHBvcnQgdmlhIGVtYWlsIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvcG9sb2d5IG1vZGVsLgoKICAgIENvcHlyaWdodCAoYykgMjAyMyBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICBUaGlzIG1vZGVsIGNvbnRhaW5zIHRoZSB0b3BvbG9neSBlbnRpdGllcyBhbmQgcmVsYXRpb25zIGluIHRoZQogICAgUkFOIENMT1VEIGRvbWFpbiwgd2hpY2ggY29tcHJpc2VzIGNsb3VkIGluZnJhc3RydWN0dXJlIGFuZAogICAgZGVwbG95bWVudCBhc3BlY3RzIHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIHRvcG9sb2d5IG1vZGVsLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEOwoKICAgIGxpc3QgQ2xvdWRpZmllZE5GIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBSQU4gTmV0d29yayBGdW5jdGlvbiBzb2Z0d2FyZSB0aGF0IGlzIGRlcGxveWVkIGluIHRoZSBPLUNsb3VkIHZpYSBvbmUgb3IgbW9yZSBORiBEZXBsb3ltZW50cy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWRpZmllZCBORiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5GRGVwbG95bWVudCB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgc29mdHdhcmUgZGVwbG95bWVudCBvbiBPLUNsb3VkIHJlc291cmNlcyB0aGF0IHJlYWxpemVzLCBhbGwgb3IgcGFydCBvZiwgYSBDbG91ZGlmaWVkIE5GLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBORiBEZXBsb3ltZW50IjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQ2xvdWROYW1lc3BhY2UgewogICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZE5hbWVzcGFjZSBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpc29sYXRpbmcKICAgICAgICAgICAgICAgICAgICBncm91cHMgb2YgcmVzb3VyY2VzIHdpdGhpbiBhIHNpbmdsZSBjbHVzdGVyLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBDbG91ZCBOYW1lc3BhY2UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOb2RlQ2x1c3RlciB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgTm9kZUNsdXN0ZXIgbWFuYWdlcyBhIGNvbGxlY3Rpb24gb2YgTm9kZXMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIE5vZGUgQ2x1c3RlciI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IENsb3VkU2l0ZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQKICAgICAgICAgICAgICAgICAgICBob3N0cyB0aGUgTkYgRGVwbG95bWVudC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWQgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBDTE9VRElGSUVETkZfQ09NUFJJU0VTX05GREVQTE9ZTUVOVCB7IC8vIDEgdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGNvbXByaXNlZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWRpZmllZCBORiBjb21wcmlzZXMgb2YgdGhlc2UgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBjb21wcmlzZWQtYnktY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgcGFydCBvZiBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTkZERVBMT1lNRU5UX0RFUExPWUVEX09OX0NMT1VETkFNRVNQQUNFIHsgLy8gMS4ubiB0byAxLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtb24tY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCBkZXBsb3llZCBvbiBDbG91ZCBOYW1lc3BhY2UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBkZXBsb3llZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQ0xPVUROQU1FU1BBQ0VfREVQTE9ZRURfT05fTk9ERUNMVVNURVIgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtb24tbm9kZUNsdXN0ZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveWVkIG9uIE5vZGUgQ2x1c3Rlci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm9kZSBDbHVzdGVyIGRlcGxveXMgQ2xvdWQgTmFtZXNwYWNlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOb2RlQ2x1c3RlcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOT0RFQ0xVU1RFUl9MT0NBVEVEX0FUX0NMT1VEU0lURSB7IC8vIDEuLm4gdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGxvY2F0ZWQtYXQtY2xvdWRTaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5vZGUgQ2x1c3RlciBsb2NhdGVkIGF0IENsb3VkIFNpdGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5vZGVDbHVzdGVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGxvY2F0aW9uLW9mLW5vZGVDbHVzdGVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkIFNpdGUgaXMgbG9jYXRpb24gb2YgTm9kZSBDbHVzdGVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBDbG91ZFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
-o-ran-smo-teiv-equipment-to-ran	urn:o-ran:smo-teiv-equipment-to-ran	EQUIPMENT_TO_RAN	["o-ran-smo-teiv-equipment", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudC10by1yYW4gewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWVxdWlwbWVudC10by1yYW4iOwogICAgcHJlZml4IG9yLXRlaXYtZXF1aXB0b3JhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtZXF1aXBtZW50IHtwcmVmaXggb3ItdGVpdi1lcXVpcDsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1yYW4ge3ByZWZpeCBvci10ZWl2LXJhbjsgfQoKICAgIG9yZ2FuaXphdGlvbiAiRXJpY3Nzb24gQUIiOwogICAgY29udGFjdCAiRXJpY3Nzb24gZmlyc3QgbGluZSBzdXBwb3J0IHZpYSBlbWFpbCI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBFcXVpcG1lbnQgdG8gTG9naWNhbCB0b3BvbG9neSBtb2RlbC4KCiAgICBDb3B5cmlnaHQgKGMpIDIwMjMgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIEVxdWlwbWVudCB0byBMb2dpY2FsIHRvcG9sb2d5CiAgICBlbnRpdGllcyBhbmQgcmVsYXRpb25zLiI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIEVRVUlQTUVOVF9UT19SQU47CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBQSFlTSUNBTE5GX1NFUlZFU19HTkJEVUZVTkNUSU9OIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iZHVGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItRFUgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBQaHlzaWNhbCBORi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1lcXVpcDpQaHlzaWNhbE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHNlcnZpbmctcGh5c2ljYWxORiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBORiBzZXJ2ZXMgdGhpcyBnTm9kZUItRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBQSFlTSUNBTE5GX1NFUlZFU19HTkJDVUNQRlVOQ1RJT04geyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aWNlZC1nbmJjdWNwRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCLUNVQ1AgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBQaHlzaWNhbCBORi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1lcXVpcDpQaHlzaWNhbE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHNlcnZpbmctcGh5c2ljYWxORiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBORiBzZXJ2ZXMgdGhpcyBnTm9kZUItQ1VDUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46R05CQ1VDUEZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgUEhZU0lDQUxORl9TRVJWRVNfR05CQ1VVUEZVTkNUSU9OIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZ25iY3V1cEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVVVQIEZ1bmN0aW9uIHNlcnZpY2VkIGJ5IHRoaXMgUGh5c2ljYWwgTkYuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtZXF1aXA6UGh5c2ljYWxORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBzZXJ2aW5nLXBoeXNpY2FsTkYgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiUGh5c2ljYWwgTkYgc2VydmVzIHRoaXMgZ05vZGVCLUNVVVAgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVVVBGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIFBIWVNJQ0FMTkZfU0VSVkVTX0VOT0RFQkZVTkNUSU9OIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIHNlcnZpY2VkIGJ5IHRoaXMgUGh5c2ljYWwgTkYuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtZXF1aXA6UGh5c2ljYWxORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBzZXJ2aW5nLXBoeXNpY2FsTkYgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiUGh5c2ljYWwgTkYgc2VydmVzIHRoaXMgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpFTm9kZUJGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEFOVEVOTkFNT0RVTEVfU0VSVkVTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi5tCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3Qgc2VydmljZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBDYXBhYmlsaXR5IHNlcnZpY2VkIGJ5IHRoaXMgQW50ZW5uYSBNb2R1bGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtZXF1aXA6QW50ZW5uYU1vZHVsZTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctYW50ZW5uYU1vZHVsZSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIE1vZHVsZSBzZXJ2ZXMgdGhpcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkFudGVubmFDYXBhYmlsaXR5OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19BTlRFTk5BTU9EVUxFIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZ3JvdXBlZC1hbnRlbm5hTW9kdWxlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgQW50ZW5uYSBNb2R1bGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtcmFuOlNlY3RvcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBncm91cGVkLWJ5LXNlY3RvciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIE1vZHVsZSBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1lcXVpcDpBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-common-yang-extensions	urn:o-ran:smo-teiv-common-yang-extensions	\N	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgewoKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMiOwogIHByZWZpeCBvci10ZWl2LXlleHQ7CgogIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgWUFORyBleHRlbnNpb25zIG1vZGVsCgogIFRoaXMgbW9kZWwgY29udGFpbnMgZXh0ZW5zaW9ucyB0byB0aGUgWUFORyBsYW5ndWFnZSB0aGF0IHRvcG9sb2d5IGFuZAogIGludmVudG9yeSBtb2RlbHMgd2lsbCB1c2UgdG8gZGVmaW5lIGFuZCBhbm5vdGF0ZSB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4KCiAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0yNCIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIGV4dGVuc2lvbiBiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJEZWZpbmVzIGEgYmktZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwIGluIHRoZSB0b3BvbG9neS4KCiAgICAgICAgICAgIEEgYmktZGlyZWN0aW9uYWwtYXNzb2NpYXRpb24gKEJEQSkgaXMgYSByZWxhdGlvbnNoaXAgY29tcHJpc2luZyBvZgogICAgICAgICAgICBhbiBBLXNpZGUgYW5kIGEgQi1zaWRlLiBUaGUgQS1zaWRlIGlzIGNvbnNpZGVyZWQgdGhlIG9yaWdpbmF0aW5nCiAgICAgICAgICAgIHNpZGUgb2YgdGhlIHJlbGF0aW9uc2hpcDsgdGhlIEItc2lkZSBpcyBjb25zaWRlcmVkIHRoZSB0ZXJtaW5hdGluZwogICAgICAgICAgICBzaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBvcmRlciBvZiBBLXNpZGUgYW5kIEItc2lkZSBpcyBvZgogICAgICAgICAgICBpbXBvcnRhbmNlIGFuZCBNVVNUIE5PVCBiZSBjaGFuZ2VkIG9uY2UgZGVmaW5lZC4KCiAgICAgICAgICAgIEJvdGggQS1zaWRlIGFuZCBCLXNpZGUgYXJlIGRlZmluZWQgb24gYSB0eXBlLCBhbmQgYXJlIGdpdmVuIGEgcm9sZS4KICAgICAgICAgICAgQSB0eXBlIG1heSBoYXZlIG11bHRpcGxlIG9yaWdpbmF0aW5nIGFuZC9vciB0ZXJtaW5hdGluZyBzaWRlcyBvZiBhCiAgICAgICAgICAgIHJlbGF0aW9uc2hpcCwgYWxsIGRpc3Rpbmd1aXNoZWQgYnkgcm9sZSBuYW1lLgoKICAgICAgICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlICdtb2R1bGUnIHN0YXRlbWVudC4KICAgICAgICAgICAgTXVsdGlwbGUgJ2JpLWRpcmVjdGlvbmFsLXRvcG9sb2d5LXJlbGF0aW9uc2hpcCcgc3RhdGVtZW50cyBhcmUKICAgICAgICAgICAgYWxsb3dlZCBwZXIgcGFyZW50IHN0YXRlbWVudC4KCiAgICAgICAgICAgIFN1YnN0YXRlbWVudHMgdG8gdGhlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIGRlZmluZQogICAgICAgICAgICB0aGUgQS1zaWRlIGFuZCB0aGUgQi1zaWRlLCByZXNwZWN0aXZlbHksIGFuZCBvcHRpb25hbGx5IHByb3BlcnRpZXMKICAgICAgICAgICAgb2YgdGhlIHJlbGF0aW9uc2hpcC4gRGF0YSBub2RlcyBvZiB0eXBlcyAnbGVhZicgYW5kICdsZWFmLWxpc3QnIGFyZQogICAgICAgICAgICB1c2VkIGZvciB0aGlzIHB1cnBvc2UuIE9uZSBvZiB0aGUgZGF0YSBub2RlcyBNVVNUIGJlIGFubm90YXRlZCB3aXRoCiAgICAgICAgICAgIHRoZSAnYS1zaWRlJyBleHRlbnNpb247IGFub3RoZXIgZGF0YSBub2RlIE1VU1QgYmUgYW5ub3RhdGVkIHdpdGggdGhlCiAgICAgICAgICAgICdiLXNpZGUnIGV4dGVuc2lvbi4gT3RoZXIgZGF0YSBub2RlcyBkZWZpbmUgcHJvcGVydGllcyBvZiB0aGUKICAgICAgICAgICAgcmVsYXRpb25zaGlwLgoKICAgICAgICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgbmFtZQogICAgICAgICAgICBpcyBzY29wZWQgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgZGVjbGFyaW5nIG1vZHVsZSBhbmQgTVVTVCBiZQogICAgICAgICAgICB1bmlxdWUgd2l0aGluIHRoZSBzY29wZS4iOwoKICAgICAgICBhcmd1bWVudCByZWxhdGlvbnNoaXBOYW1lOwogICAgfQoKICAgIGV4dGVuc2lvbiBhU2lkZSB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkRlZmluZXMgdGhlIEEtc2lkZSBvZiBhIHJlbGF0aW9uc2hpcC4KCiAgICAgICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIGEgJ2xlYWYnIG9yICdsZWFmLWxpc3QnCiAgICAgICAgICAgIHN0YXRlbWVudCwgd2hpY2ggaXRzZWxmIG11c3QgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlCiAgICAgICAgICAgICd1bmktZGlyZWN0aW9uYWwtdG9wb2xvZ3ktcmVsYXRpb25zaGlwJyBzdGF0ZW1lbnQuCgogICAgICAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIE1VU1QgYmUKICAgICAgICAgICAgJ2luc3RhbmNlLWlkZW50aWZpZXInLiBDb25zdHJhaW50cyBNQVkgYmUgdXNlZCBhcyBwYXJ0IG9mIHRoZSBwYXJlbnQKICAgICAgICAgICAgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIHRvIGVuZm9yY2UgY2FyZGluYWxpdHkuCgogICAgICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBpcyB1c2VkIGFzIG5hbWUKICAgICAgICAgICAgb2YgdGhlIHJvbGUgb2YgdGhlIEEtc2lkZSBvZiB0aGUgcmVsYXRpb25zaGlwLiBUaGUgbmFtZSBvZiB0aGUgcm9sZQogICAgICAgICAgICBpcyBzY29wZWQgdG8gdGhlIHR5cGUgb24gd2hpY2ggdGhlIEEtc2lkZSBpcyBkZWZpbmVkIGFuZCBNVVNUIGJlCiAgICAgICAgICAgIHVuaXF1ZSB3aXRoaW4gdGhlIHNjb3BlLgoKICAgICAgICAgICAgV2hpbGUgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgZG9lcyBub3QgcmVzdWx0IGluIGEgcHJvcGVydHkKICAgICAgICAgICAgb2YgdGhlIHJlbGF0aW9uc2hpcCwgaXQgaXMgUkVDT01NRU5ERUQgdG8gYXZvaWQgdXNpbmcgdGhlIG5hbWUgb2YgYW4KICAgICAgICAgICAgZXhpc3RpbmcgdHlwZSBwcm9wZXJ0eSBhcyByb2xlIG5hbWUgdG8gYXZvaWQgcG90ZW50aWFsIGFtYmlndWl0aWVzCiAgICAgICAgICAgIGJldHdlZW4gcHJvcGVydGllcyBvZiBhIHR5cGUsIGFuZCByb2xlcyBvZiBhIHJlbGF0aW9uc2hpcCBvbiB0aGUKICAgICAgICAgICAgdHlwZS4KCiAgICAgICAgICAgIFRoZSBhcmd1bWVudCBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQS1zaWRlIHJlc2lkZXMuCiAgICAgICAgICAgIElmIHRoZSB0eXBlIGlzIGRlY2xhcmVkIGluIGFub3RoZXIgbW9kdWxlLCB0aGUgdHlwZSBtdXN0IGJlCiAgICAgICAgICAgIHByZWZpeGVkLCBhbmQgYSBjb3JyZXNwb25kaW5nICdpbXBvcnQnIHN0YXRlbWVudCBiZSB1c2VkIHRvIGRlY2xhcmUKICAgICAgICAgICAgdGhlIHByZWZpeC4iOwoKICAgICAgICBhcmd1bWVudCBhU2lkZVR5cGU7CiAgICB9CgogICAgZXh0ZW5zaW9uIGJTaWRlIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAiRGVmaW5lcyB0aGUgQi1zaWRlIG9mIGEgcmVsYXRpb25zaGlwLgoKICAgICAgICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgYSAnbGVhZicgb3IgJ2xlYWYtbGlzdCcKICAgICAgICAgICAgc3RhdGVtZW50LCB3aGljaCBpdHNlbGYgbXVzdCBiZSBhIHN1YnN0YXRlbWVudCBvZiB0aGUKICAgICAgICAgICAgJ3VuaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudC4KCiAgICAgICAgICAgIFRoZSBkYXRhIHR5cGUgb2YgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgTVVTVCBiZQogICAgICAgICAgICAnaW5zdGFuY2UtaWRlbnRpZmllcicuIENvbnN0cmFpbnRzIE1BWSBiZSB1c2VkIGFzIHBhcnQgb2YgdGhlIHBhcmVudAogICAgICAgICAgICAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgdG8gZW5mb3JjZSBjYXJkaW5hbGl0eS4KCiAgICAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIGlzIHVzZWQgYXMgbmFtZQogICAgICAgICAgICBvZiB0aGUgcm9sZSBvZiB0aGUgQi1zaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBuYW1lIG9mIHRoZSByb2xlCiAgICAgICAgICAgIGlzIHNjb3BlZCB0byB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQi1zaWRlIGlzIGRlZmluZWQgYW5kIE1VU1QgYmUKICAgICAgICAgICAgdW5pcXVlIHdpdGhpbiB0aGUgc2NvcGUuCgogICAgICAgICAgICBXaGlsZSB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBkb2VzIG5vdCByZXN1bHQgaW4gYSBwcm9wZXJ0eQogICAgICAgICAgICBvZiB0aGUgcmVsYXRpb25zaGlwLCBpdCBpcyBSRUNPTU1FTkRFRCB0byBhdm9pZCB1c2luZyB0aGUgbmFtZSBvZiBhbgogICAgICAgICAgICBleGlzdGluZyB0eXBlIHByb3BlcnR5IGFzIHJvbGUgbmFtZSB0byBhdm9pZCBwb3RlbnRpYWwgYW1iaWd1aXRpZXMKICAgICAgICAgICAgYmV0d2VlbiBwcm9wZXJ0aWVzIG9mIGEgdHlwZSwgYW5kIHJvbGVzIG9mIGEgcmVsYXRpb25zaGlwIG9uIHRoZQogICAgICAgICAgICB0eXBlLgoKICAgICAgICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIG9uIHdoaWNoIHRoZSBCLXNpZGUgcmVzaWRlcy4KICAgICAgICAgICAgSWYgdGhlIHR5cGUgaXMgZGVjbGFyZWQgaW4gYW5vdGhlciBtb2R1bGUsIHRoZSB0eXBlIG11c3QgYmUKICAgICAgICAgICAgcHJlZml4ZWQsIGFuZCBhIGNvcnJlc3BvbmRpbmcgJ2ltcG9ydCcgc3RhdGVtZW50IGJlIHVzZWQgdG8gZGVjbGFyZQogICAgICAgICAgICB0aGUgcHJlZml4LiI7CgogICAgICAgIGFyZ3VtZW50IGJTaWRlVHlwZTsKICAgIH0KCiAgICBleHRlbnNpb24gZG9tYWluIHsKICAgICAgICBkZXNjcmlwdGlvbiAiS2V5d29yZCB1c2VkIHRvIGNhcnJ5IGRvbWFpbiBpbmZvcm1hdGlvbi4iOwogICAgICAgIGFyZ3VtZW50IGRvbWFpbk5hbWU7CiAgICB9CgogICAgZXh0ZW5zaW9uIGxhYmVsIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAiVGhlIGxhYmVsIGNhbiBiZSB1c2VkIHRvIGdpdmUgbW9kdWxlcyBhbmQgc3VibW9kdWxlcyBhIHNlbWFudGljCiAgICAgICAgICAgIHZlcnNpb24sIGluIGFkZGl0aW9uIHRvIHRoZWlyIHJldmlzaW9uLgoKICAgICAgICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgbGFiZWwgaXMgP3gueS56PyA/IGV4cHJlc3NlZCBhcyBwYXR0ZXJuLCBpdCBpcwogICAgICAgICAgICBbMC05XStcXC5bMC05XStcXC5bMC05XSsKCiAgICAgICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZSByZXZpc2lvbiBzdGF0ZW1lbnQuCiAgICAgICAgICAgIFplcm8gb3Igb25lIHJldmlzaW9uIGxhYmVsIHN0YXRlbWVudHMgcGVyIHBhcmVudCBzdGF0ZW1lbnQgYXJlCiAgICAgICAgICAgIGFsbG93ZWQuCgogICAgICAgICAgICBSZXZpc2lvbiBsYWJlbHMgTVVTVCBiZSB1bmlxdWUgYW1vbmdzdCBhbGwgcmV2aXNpb25zIG9mIGEgbW9kdWxlIG9yCiAgICAgICAgICAgIHN1Ym1vZHVsZS4iOwoKICAgICAgICBhcmd1bWVudCBzZW12ZXJzaW9uOwogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-oam-ran	urn:o-ran:smo-teiv-rel-oam-ran	REL_OAM_RAN	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-ran"]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1vYW0tcmFuIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1yZWwtb2FtLXJhbiI7CiAgICBwcmVmaXggb3ItdGVpdi1yZWwtb2FtcmFuOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7IHByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgeyBwcmVmaXggb3ItdGVpdi15ZXh0OyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LW9hbSB7IHByZWZpeCBvci10ZWl2LW9hbTsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1yYW4geyBwcmVmaXggb3ItdGVpdi1yYW47IH0KCiAgICBvcmdhbml6YXRpb24gIk9SQU4iOwogICAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gTyZNIHRvIExvZ2ljYWwgdG9wb2xvZ3kgbW9kZWwuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIE8mTSB0byBMb2dpY2FsIHRvcG9sb2d5IHJlbGF0aW9ucwoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJFTF9PQU1fUkFOOwoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTUFOQUdFREVMRU1FTlRfTUFOQUdFU19FTk9ERUJGVU5DVElPTiB7ICAgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgbWFuYWdlZC1lbm9kZWJGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJNYW5hZ2VkIEVsZW1lbnQgbWFuYWdlcyBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIG1hbmFnZWQtYnktbWFuYWdlZEVsZW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiZU5vZGVCIEZ1bmN0aW9uIG1hbmFnZWQgYnkgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpFTm9kZUJGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBNQU5BR0VERUxFTUVOVF9NQU5BR0VTX0dOQkRVRlVOQ1RJT04geyAgICAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBtYW5hZ2VkLWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWFuYWdlZCBFbGVtZW50IG1hbmFnZXMgZ05vZGVCLURVIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LW9hbTpNYW5hZ2VkRWxlbWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBtYW5hZ2VkLWJ5LW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBtYW5hZ2VkIGJ5IE1hbmFnZWQgRWxlbWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46R05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBNQU5BR0VERUxFTUVOVF9NQU5BR0VTX0dOQkNVQ1BGVU5DVElPTiB7ICAgIC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IG1hbmFnZWQtZ25iY3VjcEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBtYW5hZ2VzIGdOb2RlQi1DVS1DUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgbWFuYWdlZC1ieS1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtQ1AgRnVuY3Rpb24gbWFuYWdlZCBieSBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBNQU5BR0VERUxFTUVOVF9NQU5BR0VTX0dOQkNVVVBGVU5DVElPTiB7ICAgIC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IG1hbmFnZWQtZ25iY3V1cEZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBtYW5hZ2VzIGdOb2RlQi1DVS1VUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1vYW06TWFuYWdlZEVsZW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgbWFuYWdlZC1ieS1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtVVAgRnVuY3Rpb24gbWFuYWdlZCBieSBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkNVVVBGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-common-yang-types	urn:o-ran:smo-teiv-common-yang-types	\N	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyI7CiAgICBwcmVmaXggb3ItdGVpdi10eXBlczsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7IHByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgY29tbW9uIHR5cGVzIG1vZGVsCgogIFRoaXMgbW9kZWwgY29udGFpbnMgcmUtdXNhYmxlIGRhdGEgdHlwZXMgdGhhdCB0b3BvbG9neSBhbmQgaW52ZW50b3J5IG1vZGVscwogIHdpbGwgZnJlcXVlbnRseSB1c2UgYXMgcGFydCBvZiB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4KCiAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0yNCIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIGdyb3VwaW5nIFRvcF9HcnBfVHlwZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIkdyb3VwaW5nIGNvbnRhaW5pbmcgdGhlIGtleSBhdHRyaWJ1dGUgY29tbW9uIHRvIGFsbCB0eXBlcy4KICAgICAgICAgICAgQWxsIHR5cGVzIE1VU1QgdXNlIHRoaXMgZ3JvdXBpbmcuIjsKCiAgICAgICAgbGVhZiBpZCB7CiAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pcXVlIGlkZW50aWZpZXIgb2YgdG9wb2xvZ3kgZW50aXRpZXMuIFJlcHJlc2VudHMgdGhlCiAgICAgICAgICAgICAgICBFbnRpdHkgSW5zdGFuY2UgSWRlbnRpZmllci4iOwogICAgICAgIH0KICAgIH0KCiAgICBjb250YWluZXIgZGVjb3JhdG9ycyB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIlRoaXMgY29udGFpbmVyIHNlcnZlcyBhcyBleHRlbnNpb24gcG9pbnQgZm9yIGFwcGxpY2F0aW9ucyB3aXNoaW5nCiAgICAgICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gZGVjb3JhdG9ycy4gVGhpcyBpcyBkb25lIHZpYSBhdWdtZW50YXRpb25zLiBUaGV5CiAgICAgICAgICAgIGNhbiBvbmx5IGJlIGRlZmluZWQgaW4gbmFtZSB2YWx1ZSBwYWlyLgoKICAgICAgICAgICAgVGhpcyBpcyBhIGNvbnN1bWVyIGRhdGEgYW5kIGNhbiBiZSBhdHRhY2hlZCB0byBUb3BvbG9neSBFbnRpdHkgb3IKICAgICAgICAgICAgVG9wb2xvZ3kgUmVsYXRpb24gaW5zdGFuY2UsIG91dHNpZGUgb2YgdGhlIGRlY2xhcmVkIFRvcG9sb2d5IEVudGl0eQogICAgICAgICAgICBvciBUb3BvbG9neSBSZWxhdGlvbnNoaXAncyBhdHRyaWJ1dGVzLiBUaGlzIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQsCiAgICAgICAgICAgIGFuZCBpdCBNVVNUIE5PVCBiZSBhdWdtZW50ZWQgb3IgZGV2aWF0ZWQgaW4gYW55IHdheSwgdW5sZXNzIHN0YXRlZAogICAgICAgICAgICBvdGhlcndpc2UuIjsKICAgIH0KCiAgICBsZWFmLWxpc3QgY2xhc3NpZmllcnMgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJDb25zdW1lciBkZWZpbmVkIHRhZ3MgdG8gdG9wb2xvZ3kgZW50aXRpZXMgYW5kIHJlbGF0aW9uc2hpcHMuCgogICAgICAgICAgICBUaGlzIGlzIGEgY29uc3VtZXIgZGF0YSBhbmQgY2FuIGJlIGF0dGFjaGVkIHRvIFRvcG9sb2d5IEVudGl0eSBvcgogICAgICAgICAgICBUb3BvbG9neSBSZWxhdGlvbiBpbnN0YW5jZSwgb3V0c2lkZSBvZiB0aGUgZGVjbGFyZWQgVG9wb2xvZ3kgRW50aXR5CiAgICAgICAgICAgIG9yIFRvcG9sb2d5IFJlbGF0aW9uc2hpcCdzIGF0dHJpYnV0ZXMuIFRoaXMgY2Fubm90IGJlIGluc3RhbnRpYXRlZCwKICAgICAgICAgICAgYW5kIGl0IE1VU1QgTk9UIGJlIGF1Z21lbnRlZCBvciBkZXZpYXRlZCBpbiBhbnkgd2F5LCB1bmxlc3Mgc3RhdGVkCiAgICAgICAgICAgIG90aGVyd2lzZS4iOwoKICAgICAgICB0eXBlIGlkZW50aXR5cmVmIHsgYmFzZSBjbGFzc2lmaWVyOyB9CiAgICB9CgogICAgbGVhZi1saXN0IHNvdXJjZUlkcyB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkFuIG9yZGVyZWQgbGlzdCBvZiBpZGVudGl0aWVzIHRoYXQgcmVwcmVzZW50IHRoZSBzZXQgb2YgbmF0aXZlCiAgICAgICAgICAgIHNvdXJjZSBpZGVudGlmaWVycyBmb3IgcGFydGljaXBhdGluZyBlbnRpdGllcy4KCiAgICAgICAgICAgIFRoaXMgaXMgYSBjb25zdW1lciBkYXRhIGFuZCBjYW4gYmUgYXR0YWNoZWQgdG8gVG9wb2xvZ3kgRW50aXR5IG9yCiAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkKICAgICAgICAgICAgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4gVGhpcyBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLAogICAgICAgICAgICBhbmQgaXQgTVVTVCBOT1QgYmUgYXVnbWVudGVkIG9yIGRldmlhdGVkIGluIGFueSB3YXksIHVubGVzcyBzdGF0ZWQKICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CgogICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgIG9yZGVyZWQtYnkgdXNlcjsKICAgIH0KCiAgICBjb250YWluZXIgbWV0YWRhdGEgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJUaGlzIGNvbnRhaW5lciBzZXJ2ZXMgYXMgZXh0ZW5zaW9uIHBvaW50IHRvIGRlZmluZSBtZXRhZGF0YS4gVGhleQogICAgICAgICAgICBjYW4gb25seSBiZSBkZWZpbmVkIGluIG5hbWUgdmFsdWUgcGFpci4KCiAgICAgICAgICAgIFRoaXMgaXMgYSBjb25zdW1lciBkYXRhIGFuZCBjYW4gYmUgYXR0YWNoZWQgdG8gVG9wb2xvZ3kgRW50aXR5IG9yCiAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkKICAgICAgICAgICAgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4gVGhpcyBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLAogICAgICAgICAgICBhbmQgaXQgTVVTVCBOT1QgYmUgYXVnbWVudGVkIG9yIGRldmlhdGVkIGluIGFueSB3YXksIHVubGVzcyBzdGF0ZWQKICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CiAgICB9CgogICAgaWRlbnRpdHkgY2xhc3NpZmllcnsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNsYXNzaWZpZXIgaXMgdXNlZCBhcyBhIGJhc2UgdG8gcHJvdmlkZSBhbGwgY2xhc3NpZmllcnMKICAgICAgICAgICAgd2l0aCBpZGVudGl0eS4gIjsKICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-oam	urn:o-ran:smo-teiv-oam	OAM	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbSB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbTsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHsgcHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbiAKICAgICJSQU4gTyZNIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gTyZNIGRvbWFpbiwgd2hpY2ggYXJlIGludGVuZGVkIHRvIHJlcHJlc2VudCBtYW5hZ2VtZW50IHN5c3RlbXMKICAgIGFuZCBtYW5hZ2VtZW50IGludGVyZmFjZXMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIE9BTTsKCiAgICBsaXN0IE1hbmFnZWRFbGVtZW50IHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBNYW5hZ2VkIEVsZW1lbnQgKE1FKSBpcyBhIG5vZGUgaW50byBhIHRlbGVjb21tdW5pY2F0aW9uCiAgICAgICAgICAgIG5ldHdvcmsgcHJvdmlkaW5nIHN1cHBvcnQgYW5kL29yIHNlcnZpY2UgdG8gc3Vic2NyaWJlcnMuIEFuIE1FCiAgICAgICAgICAgIGNvbW11bmljYXRlcyB3aXRoIGEgbWFuYWdlciBhcHBsaWNhdGlvbiAoZGlyZWN0bHkgb3IgaW5kaXJlY3RseSkKICAgICAgICAgICAgb3ZlciBvbmUgb3IgbW9yZSBpbnRlcmZhY2VzIGZvciB0aGUgcHVycG9zZSBvZiBiZWluZyBtb25pdG9yZWQKICAgICAgICAgICAgYW5kL29yIGNvbnRyb2xsZWQuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-ran	urn:o-ran:smo-teiv-ran	RAN	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LXJhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogICAgaW1wb3J0IGlldGYtZ2VvLWxvY2F0aW9uIHsKICAgICAgICBwcmVmaXggZ2VvOwogICAgICAgIHJlZmVyZW5jZSAiUkZDIDkxNzk6IEEgWUFORyBHcm91cGluZyBmb3IgR2VvZ3JhcGhpYyBMb2NhdGlvbnMiOwogICAgfQoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gTG9naWNhbCBkb21haW4sIHdoaWNoIHJlcHJlc2VudHMgdGhlIGZ1bmN0aW9uYWwgY2FwYWJpbGl0eQogICAgb2YgdGhlIGRlcGxveWVkIFJBTiB0aGF0IGFyZSByZWxldmFudCB0byByQXBwcyB1c2UgY2FzZXMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJBTjsKCiAgICBsaXN0IEdOQkRVRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgIEEgZ05CIG1heSBjb25zaXN0IG9mIGEgZ05CLUNlbnRyYWxpemVkIFVuaXQgKGdOQi1DVSkgYW5kIGEgZ05CLURVLgogICAgICAgICAgICBUaGUgQ1UgcHJvY2Vzc2VzIG5vbi1yZWFsIHRpbWUgcHJvdG9jb2xzIGFuZCBzZXJ2aWNlcywgYW5kIHRoZSBEVQogICAgICAgICAgICBwcm9jZXNzZXMgUEhZIGxldmVsIHByb3RvY29sIGFuZCByZWFsIHRpbWUgc2VydmljZXMuIFRoZSBnTkItQ1UgYW5kCiAgICAgICAgICAgIHRoZSBnTkItRFUgdW5pdHMgYXJlIGNvbm5lY3RlZCB2aWEgRjEgbG9naWNhbCBpbnRlcmZhY2UuCgogICAgICAgICAgICBUaGUgZm9sbG93aW5nIGlzIHRydWUgZm9yIGEgZ05CLURVOgogICAgICAgICAgICBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1DUCB0aHJvdWdoIHRoZSBGMS1DIGludGVyZmFjZS4gSXMKICAgICAgICAgICAgY29ubmVjdGVkIHRvIHRoZSBnTkItQ1UtVVAgdGhyb3VnaCB0aGUgRjEtVSBpbnRlcmZhY2UuIE9uZSBnTkItRFUgaXMKICAgICAgICAgICAgY29ubmVjdGVkIHRvIG9ubHkgb25lIGdOQi1DVS1DUC4gT25lIGdOQi1EVSBjYW4gYmUgY29ubmVjdGVkIHRvCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1DVS1VUHMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLgoKICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMgYW5kCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1EVXMuIGdOQi1EVSBpcyBhIGNvbmNyZXRlIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUgTkctUkFOCiAgICAgICAgICAgIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZQogICAgICAgICAgICB0aGUgZ05CLURVIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBjb250YWluZXIgZFVwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB1c2VkIGFzIHBhcnQgb2YgUE0gRXZlbnRzIGRhdGEiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQkRVSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgRFUgd2l0aGluIGEgZ05vZGVCIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBHTkJDVUNQRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgQ2VudHJhbGl6ZWQgVW5pdCBDb250cm9sIFBsYW5lIChnTkItQ1UtQ1ApCgogICAgICAgICAgICBUaGlzIGlzIGEgbG9naWNhbCBub2RlIGhvc3RpbmcgdGhlIFJhZGlvIFJlc291cmNlIENvbnRyb2wgKFJSQykgYW5kCiAgICAgICAgICAgIHRoZSBjb250cm9sIHBsYW5lIHBhcnQgb2YgdGhlIFBhY2tldCBEYXRhIENvbnZlcmdlbmNlIFByb3RvY29sCiAgICAgICAgICAgIChQRENQKSBvZiB0aGUgZ05vZGVCIENlbnRyYWxpemVkIFVuaXQgKGdOQi1DVSkgZm9yIGFuIEUtVVRSQU4gZ05vZGVCCiAgICAgICAgICAgIChlbi1nTkIpIG9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLUNQIHRlcm1pbmF0ZXMgdGhlIEUxCiAgICAgICAgICAgIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLVVQIGFuZCB0aGUgRjEtQyBpbnRlcmZhY2UKICAgICAgICAgICAgY29ubmVjdGVkIHdpdGggdGhlIGdOb2RlQiBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1DUDoKICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItRFUgdGhyb3VnaCB0aGUgRjEtQyBpbnRlcmZhY2UuIElzIGNvbm5lY3RlZAogICAgICAgICAgICB0byB0aGUgZ05CLUNVLVVQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4gT25seSBvbmUgZ05CLUNVLUNQIGlzCiAgICAgICAgICAgIGNvbm5lY3RlZCB0byBvbmUgZ05CLURVLiBPbmx5IG9uZSBnTkItQ1UtQ1AgaXMgY29ubmVjdGVkIHRvIG9uZQogICAgICAgICAgICBnTkItQ1UtVVAuIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBnTkItQ1UtVVBzIHVuZGVyCiAgICAgICAgICAgIHRoZSBjb250cm9sIG9mIHRoZSBzYW1lIGdOQi1DVS1DUC5PbmUgZ05CLUNVLVVQIGNhbiBiZSBjb25uZWN0ZWQgdG8KICAgICAgICAgICAgbXVsdGlwbGUgRFVzIHVuZGVyIHRoZSBjb250cm9sIG9mIHRoZSBzYW1lIGdOQi1DVS1DUC4KCiAgICAgICAgICAgIE5vdGU6IEEgZ05CIG1heSBjb25zaXN0IG9mIGEgZ05CLUNVLUNQLCBtdWx0aXBsZSBnTkItQ1UtVVBzIGFuZAogICAgICAgICAgICBtdWx0aXBsZSBnTkItRFVzLiBBIGdOQi1DVS1DUCBpcyBhIGNvbmNyZXRlIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUKICAgICAgICAgICAgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kCiAgICAgICAgICAgIGRlbGV0ZSB0aGUgZ05CLUNVLUNQIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGdOQkNVTmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBnTm9kZUItQ1UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB0byBiZSB1c2VkIGFzIHBhcnQgb2YgZ2xvYmFsIFJBTgogICAgICAgICAgICAgICAgICAgIG5vZGUgaWRlbnRpdHkiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgR05CQ1VVUEZ1bmN0aW9uIHsKICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCIENlbnRyYWxpemVkIFVuaXQgVXNlciBQbGFuZSAoZ05CLUNVLVVQKQoKICAgICAgICAgICAgQSBnTkItQ1UtVVAgaXMgYSBsb2dpY2FsIG5vZGUgaG9zdGluZyB0aGUgVXNlciBQbGFuZSBwYXJ0IG9mIHRoZQogICAgICAgICAgICBQYWNrZXQgRGF0YSBDb252ZXJnZW5jZSwgUHJvdG9jb2wgKFBEQ1ApIG9mIHRoZSBnTm9kZUIgQ2VudHJhbGl6ZWQKICAgICAgICAgICAgVW5pdCAoZ05CLUNVKSBmb3IgYW4gRS1VVFJBTiBnTm9kZUIgKGVuLWdOQiksIGFuZCB0aGUgVXNlciBQbGFuZQogICAgICAgICAgICBwYXJ0IG9mIHRoZSBQRENQIHByb3RvY29sIGFuZCB0aGUgU2VydmljZSBEYXRhIEFkYXB0YXRpb24gUHJvdG9jb2wKICAgICAgICAgICAgKFNEQVApIG9mIHRoZSBnTkItQ1UgZm9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLVVQIHRlcm1pbmF0ZXMKICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLUNQIGFuZCB0aGUgRjEtVSBpbnRlcmZhY2UKICAgICAgICAgICAgY29ubmVjdGVkIHdpdGggdGhlIGdOb2RlQiBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1VUDoKICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItRFUgdGhyb3VnaCB0aGUgRjEtVSBpbnRlcmZhY2UuIElzIGNvbm5lY3RlZAogICAgICAgICAgICB0byB0aGUgZ05CLUNVLUNQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4gT25lIGdOQi1DVS1VUCBpcwogICAgICAgICAgICBjb25uZWN0ZWQgdG8gb25seSBvbmUgZ05CLUNVLUNQLiBPbmUgZ05CLURVIGNhbiBiZSBjb25uZWN0ZWQgdG8KICAgICAgICAgICAgbXVsdGlwbGUgZ05CLUNVLVVQcyB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc2FtZSBnTkItQ1UtQ1AuIE9uZQogICAgICAgICAgICBnTkItQ1UtVVAgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBEVXMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlCiAgICAgICAgICAgIHNhbWUgZ05CLUNVLUNQLgoKICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMgYW5kCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1EVXMuIEEgZ05CLUNVLVVQIGlzIGEgY29uY3JldGUgY2xhc3MgdGhhdCBleHRlbmRzIHRoZQogICAgICAgICAgICBORy1SQU4gbm9kZSBvYmplY3QuIEluIFRvcG9sb2d5LCB5b3UgY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQKICAgICAgICAgICAgZGVsZXRlIHRoZSBnTkItQ1UtVVAgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOUkNlbGxDVSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gTlIgQ2VsbCBpbiBnTm9kZUItQ1UuCgogICAgICAgICAgICA1RyBOUiBpcyBhIG5ldyByYWRpbyBhY2Nlc3MgdGVjaG5vbG9neSAoUkFUKSBkZXZlbG9wZWQgYnkgM0dQUCBmb3IKICAgICAgICAgICAgdGhlIDVHIChmaWZ0aCBnZW5lcmF0aW9uKSBtb2JpbGUgbmV0d29yay4gSXQgaXMgZGVzaWduZWQgdG8gYmUgdGhlCiAgICAgICAgICAgIGdsb2JhbCBzdGFuZGFyZCBmb3IgdGhlIGFpciBpbnRlcmZhY2Ugb2YgNUcgbmV0d29ya3MuCgogICAgICAgICAgICA1RyBOUiBoYXMgc3luY2hyb25pemF0aW9uIHNpZ25hbCB0aGF0IGlzIGtub3duIGFzIFByaW1hcnkKICAgICAgICAgICAgU3luY2hyb25pemF0aW9uIFNpZ25hbCAoUFNTKSBhbmQgU2Vjb25kYXJ5IFN5bmNocm9uaXphdGlvbgogICAgICAgICAgICBTaWduYWwgKFNTUykuIFRoZXNlIHNpZ25hbHMgYXJlIHNwZWNpZmljIHRvIE5SIHBoeXNpY2FsIGxheWVyIGFuZAogICAgICAgICAgICBwcm92aWRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgVUUgZm9yIGRvd25saW5rCiAgICAgICAgICAgIHN5bmNocm9uaXphdGlvbjogUFNTIHByb3ZpZGVzIFJhZGlvIEZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZiAxc3QKICAgICAgICAgICAgU3ltYm9sIGluIGEgUmFkaW8gZnJhbWUpIFNTUyBwcm92aWRlcyBTdWJmcmFtZSBCb3VuZGFyeSAoUG9zaXRpb24gb2YKICAgICAgICAgICAgMXN0IFN5bWJvbCBpbiBhIFN1YmZyYW1lKSBQaHlzaWNhbCBMYXllciBDZWxsIElEIChQQ0kpIGluZm9ybWF0aW9uCiAgICAgICAgICAgIHVzaW5nIGJvdGggUFNTIGFuZCBTU1MuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBjZWxsTG9jYWxJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVXNlZCB0b2dldGhlciB3aXRoIGdOb2RlQiBpZGVudGlmaWVyIHRvIGlkZW50aWZ5IE5SCiAgICAgICAgICAgICAgICAgICAgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyIHdpdGggZ05CSWQgdG8gZm9ybSBOQ0kuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBwbG1uSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gSUQgZm9yIE5SIENHSS4gSWYgZW1wdHksCiAgICAgICAgICAgICAgICAgICAgR05CQ1VDUEZ1bmN0aW9uOjpwTE1OSWQgaXMgdXNlZCBmb3IgUExNTiBJRCBpbiBOUiBDR0kiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5DSSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbCBJZGVudGl0eSI7CiAgICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5SQ2VsbERVIHsKICAgICAgICBkZXNjcmlwdGlvbiAiUmVwcmVzZW50cyBhbiBOUiBDZWxsIGluIGdOb2RlQi1EVS4KCiAgICAgICAgICAgIDVHIE5SIGlzIGEgbmV3IHJhZGlvIGFjY2VzcyB0ZWNobm9sb2d5IChSQVQpIGRldmVsb3BlZCBieSAzR1BQIGZvcgogICAgICAgICAgICB0aGUgNUcgKGZpZnRoIGdlbmVyYXRpb24pIG1vYmlsZSBuZXR3b3JrLiBJdCBpcyBkZXNpZ25lZCB0byBiZSB0aGUKICAgICAgICAgICAgZ2xvYmFsIHN0YW5kYXJkIGZvciB0aGUgYWlyIGludGVyZmFjZSBvZiA1RyBuZXR3b3Jrcy4KCiAgICAgICAgICAgIDVHIE5SIGhhcyBzeW5jaHJvbml6YXRpb24gc2lnbmFsIHRoYXQgaXMga25vd24gYXMgUHJpbWFyeQogICAgICAgICAgICBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChQU1MpIGFuZCBTZWNvbmRhcnkgU3luY2hyb25pemF0aW9uIHNpZ25hbAogICAgICAgICAgICAoU1NTKS4gVGhlc2Ugc2lnbmFscyBhcmUgc3BlY2lmaWMgdG8gTlIgcGh5c2ljYWwgbGF5ZXIgYW5kIHByb3ZpZGUKICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSBVRSBmb3IgZG93bmxpbmsKICAgICAgICAgICAgc3luY2hyb25pemF0aW9uOiBQU1MgcHJvdmlkZXMgUmFkaW8gRnJhbWUgQm91bmRhcnkgKFBvc2l0aW9uIG9mIDFzdAogICAgICAgICAgICBTeW1ib2wgaW4gYSBSYWRpbyBmcmFtZSkgU1NTIHByb3ZpZGVzIFN1YmZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZgogICAgICAgICAgICAxc3QgU3ltYm9sIGluIGEgU3ViZnJhbWUpIFBoeXNpY2FsIExheWVyIENlbGwgSUQgKFBDSSkgaW5mb3JtYXRpb24KICAgICAgICAgICAgdXNpbmcgYm90aCBQU1MgYW5kIFNTUy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGNlbGxMb2NhbElkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJVc2VkIHRvZ2V0aGVyIHdpdGggZ05vZGVCIGlkZW50aWZpZXIgdG8gaWRlbnRpZnkgTlIKICAgICAgICAgICAgICAgICAgICBjZWxsIGluIFBMTU4uIFVzZWQgdG9nZXRoZXIgd2l0aCBnTkJJZCB0byBmb3JtIE5DSS4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBuQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwgSWRlbnRpdHkuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgblJQQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBQaHlzaWNhbCBDZWxsIElkZW50aXR5IChQQ0kpIG9mIHRoZSBOUiBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBFTm9kZUJGdW5jdGlvbiB7CiAgICAgICAgZGVzY3JpcHRpb24gIkFuIEV2b2x2ZWQgTm9kZSBCIChlTm9kZUIpIGlzIHRoZSBvbmx5IG1hbmRhdG9yeSBub2RlIGluCiAgICAgICAgICAgIHRoZSByYWRpbyBhY2Nlc3MgbmV0d29yayAoUkFOKSBvZiBMb25nLVRlcm0gRXZvbHV0aW9uIChMVEUpLiBUaGUKICAgICAgICAgICAgZU5vZGVCIGlzIGEgY29tcGxleCBiYXNlIHN0YXRpb24gdGhhdCBoYW5kbGVzIHJhZGlvIGNvbW11bmljYXRpb25zCiAgICAgICAgICAgIGluIHRoZSBjZWxsIGFuZCBjYXJyaWVzIG91dCByYWRpbyByZXNvdXJjZSBtYW5hZ2VtZW50IGFuZCBoYW5kb3ZlcgogICAgICAgICAgICBkZWNpc2lvbnMuIFVubGlrZSAyLzNHIHdpcmVsZXNzIFJBTiwgdGhlcmUgaXMgbm8gY2VudHJhbGl6ZWQgcmFkaW8KICAgICAgICAgICAgbmV0d29yayBjb250cm9sbGVyIGluIExURS4gSXQgaXMgdGhlIGhhcmR3YXJlIHRoYXQgaXMgY29ubmVjdGVkIHRvCiAgICAgICAgICAgIHRoZSBtb2JpbGUgcGhvbmUgbmV0d29yayB0aGF0IGNvbW11bmljYXRlcyBkaXJlY3RseSB3aXRoIG1vYmlsZQogICAgICAgICAgICBoYW5kc2V0cyAoVXNlciBFcXVpcG1lbnQpLCBsaWtlIGEgYmFzZSB0cmFuc2NlaXZlciBzdGF0aW9uIChCVFMpIGluCiAgICAgICAgICAgIEdTTSBuZXR3b3Jrcy4gVGhpcyBzaW1wbGlmaWVzIHRoZSBhcmNoaXRlY3R1cmUgYW5kIGFsbG93cyBsb3dlcgogICAgICAgICAgICByZXNwb25zZSB0aW1lcy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGVOQklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRU5vZGVCIElEIHRoYXQgZm9ybXMgcGFydCBvZiB0aGUgQ2VsbCBHbG9iYWwKICAgICAgICAgICAgICAgICAgICBJZGVudGl0eSwgYW5kIGlzIGFsc28gdXNlZCB0byBpZGVudGlmeSB0aGUgbm9kZSBvdmVyIHRoZSBTMQogICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgZU5vZGVCUGxtbklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRU5vZGVCIFB1YmxpYyBMYW5kIE1vYmlsZSBOZXR3b3JrIChQTE1OKSBJRAogICAgICAgICAgICAgICAgICAgIHRoYXQgZm9ybXMgcGFydCBvZiB0aGUgRU5vZGVCIEdsb2JhbCBJRCB1c2VkIHRvIGlkZW50aWZ5IHRoZQogICAgICAgICAgICAgICAgICAgIG5vZGUgb3ZlciB0aGUgUzEgaW50ZXJmYWNlLiBOb3RlOiBUaGUgdmFsdWUKICAgICAgICAgICAgICAgICAgICAoTUNDPTAwMSwgTU5DPTAxKSBpbmRpY2F0ZXMgdGhhdCB0aGUgUExNTiBpcyBub3QgaW5pdGlhdGVkLgogICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBjYW4gbm90IGJlIHVzZWQgYXMgYSB2YWxpZCBQTE1OIElkZW50aXR5LiI7CgogICAgICAgICAgICAgICAgbGVhZiBtY2MgewogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgTUNDIHBhcnQgb2YgYSBQTE1OIGlkZW50aXR5IHVzZWQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvIG5ldHdvcmsuIjsKICAgICAgICAgICAgICAgICAgICB0eXBlIGludDMyIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgMC4uOTk5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxlYWYgbW5jIHsKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE1OQyBwYXJ0IG9mIGEgUExNTiBpZGVudGl0eSB1c2VkIGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uY0xlbmd0aCB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBsZW5ndGggb2YgdGhlIE1OQyBwYXJ0IG9mIGEgUExNTiBpZGVudGl0eQogICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDIuLjM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgRVV0cmFuQ2VsbCB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gRkREIG9yIFRERCBFVXRyYW5DZWxsIGFuZAogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHBhcmFtZXRlcnMgbmVlZGVkIGJ5IHRoZSBjZWxsLgogICAgICAgICAgICAgICAgICAgIEl0IGFsc28gY29udGFpbnMgcGFyYW1ldGVycyBmb3IgdGhlCiAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IGNvbW1vbiBjaGFubmVscy4gQW4gRVVUUkFOIHN0YW5kcwogICAgICAgICAgICAgICAgICAgIGZvciBFdm9sdmVkIFVuaXZlcnNhbCBNb2JpbGUgVGVsZWNvbW11bmljYXRpb25zCiAgICAgICAgICAgICAgICAgICAgU3lzdGVtIChVTVRTKSBUZXJyZXN0cmlhbCBSYWRpbyBBY2Nlc3MgTmV0d29yawogICAgICAgICAgICAgICAgICAgIHdoaWNoIGNvbnRhaW5zIGFuIGVOb2RlQi4gVGhlIGVOb2RlQiBjb25jcmV0ZQogICAgICAgICAgICAgICAgICAgIGNsYXNzIGlzIGV4dGVuZGVkIGZyb20gdGhlIEVVVFJBTiBOb2RlIGFic3RyYWN0IGNsYXNzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgY2VsbElkewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJCUyBpbnRlcm5hbCBJRCBhdHRyaWJ1dGUgZm9yIEVVdHJhbkNlbGwuIE11c3QgYmUKICAgICAgICAgICAgICAgICAgICB1bmlxdWUgaW4gdGhlIFJCUy4gVG9nZXRoZXIgd2l0aCB0aGUgTm9kZSBJRCBhbmQgUHVibGljCiAgICAgICAgICAgICAgICAgICAgTGFuZCBNb2JpbGUgTmV0d29yayAoUExNTikgdGhpcyBpcyBhIHVuaXZlcnNhbGx5IHVuaXF1ZQogICAgICAgICAgICAgICAgICAgIGNlbGwgSUQiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY25kbCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNoYW5uZWwgbnVtYmVyIGZvciB0aGUgY2VudHJhbCBkb3dubGluawogICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeS4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY251bCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2hhbm5lbCBudW1iZXIgZm9yIHRoZSBjZW50cmFsIHVwbGluayBmcmVxdWVuY3kiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBkbENoYW5uZWxCYW5kd2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBkb3dubGluayBjaGFubmVsIGJhbmR3aWR0aCBpbiB0aGUgRkREIGNlbGwuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWFyZmNuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRS1VVFJBIEFic29sdXRlIFJhZGlvIEZyZXF1ZW5jeSBDaGFubmVsIE51bWJlcgogICAgICAgICAgICAgICAgICAgIChFQVJGQ04pIGZvciB0aGUgVEREIGNlbGwiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBjaGFubmVsQmFuZHdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY2hhbm5lbCBiYW5kd2lkdGggaW4gdGhlIFRERCBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRhYyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVHJhY2tpbmcgQXJlYSBDb2RlIGZvciB0aGUgRVV0cmFuIENlbGwiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBkdXBsZXhUeXBlIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJJbmRpY2F0b3Igb2YgRVV0cmFuQ2VsbCB0eXBlLCBGREQgb3IgVEREIjsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgIGVudW0gZmRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkZERCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gdGRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRERCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTlJTZWN0b3JDYXJyaWVyIHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE5SIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgZGVmaW5pbmcgdGhlIGxvZ2ljYWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYQogICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkIHdpdGggYSBiYXNlIHN0YXRpb24KICAgICAgICAgICAgaGF2aW5nIGl0cyBvd24gYW50ZW5uYXMsIHJhZGlvIHBvcnRzLCBhbmQgY29udHJvbCBjaGFubmVscy4gVGhlCiAgICAgICAgICAgIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbCBpbnRlcmZlcmVuY2UKICAgICAgICAgICAgaW4gY2VsbHVsYXIgc3lzdGVtcywgYW5kIG1vc3Qgd2lyZWxlc3Mgc3lzdGVtcyB1c2UgdGhyZWUgc2VjdG9yCiAgICAgICAgICAgIGNlbGxzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgYXJmY25ETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwgTnVtYmVyCiAgICAgICAgICAgICAgICAgICAgKE5SLUFSRkNOKSBmb3IgZG93bmxpbmsiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBhcmZjblVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBBYnNvbHV0ZSBSYWRpbyBmcmVxdWVuY3kgQ2hhbm5lbCBOdW1iZXIKICAgICAgICAgICAgICAgICAgICAoTlItQVJGQ04pIGZvciB1cGxpbmsuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZnJlcXVlbmN5REwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJGIFJlZmVyZW5jZSBGcmVxdWVuY3kgb2YgZG93bmxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGZyZXF1ZW5jeVVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSRiBSZWZlcmVuY2UgRnJlcXVlbmN5IG9mIHVwbGluayBjaGFubmVsIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgYlNDaGFubmVsQndETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQlMgQ2hhbm5lbCBiYW5kd2lkdGggaW4gTUh6IGZvciBkb3dubGluay4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IExURVNlY3RvckNhcnJpZXIgewogICAgICAgIGRlc2NyaXB0aW9uICJUaGUgTFRFIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgZGVmaW5pbmcgdGhlIGxvZ2ljYWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYQogICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkIHdpdGggYSBiYXNlIHN0YXRpb24KICAgICAgICAgICAgaGF2aW5nIGl0cyBvd24gYW50ZW5uYXMsIHJhZGlvIHBvcnRzLCBhbmQgY29udHJvbCBjaGFubmVscy4gVGhlCiAgICAgICAgICAgIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbCBpbnRlcmZlcmVuY2UKICAgICAgICAgICAgaW4gY2VsbHVsYXIgc3lzdGVtcywgYW5kIG1vc3Qgd2lyZWxlc3Mgc3lzdGVtcyB1c2UgdGhyZWUgc2VjdG9yCiAgICAgICAgICAgIGNlbGxzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgc2VjdG9yQ2FycmllclR5cGUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgc2VjdG9yIGNhcnJpZXIKICAgICAgICAgICAgICAgICAgICBtb2RlbGxlZCBieSBNTyBTZWN0b3JDYXJyaWVyIGlzIGEgZGlnaXRhbCBzZWN0b3IuIjsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgIGVudW0gbm9ybWFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOb3QgYSBkaWdpdGFsIHNlY3RvciI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gbGVmdF9kaWdpdGFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMZWZ0IGRpZ2l0YWwgc2VjdG9yIGZvciAyRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHJpZ2h0X2RpZ2l0YWxfc2VjdG9yIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMjsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJpZ2h0IGRpZ2l0YWwgc2VjdG9yIGZvciAyRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZnRfZGlnaXRhbF9zZWN0b3JfM2RzIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMzsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlZnQgZGlnaXRhbCBzZWN0b3IgZm9yIDNEUyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gcmlnaHRfZGlnaXRhbF9zZWN0b3JfM2RzIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgNDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJpZ2h0IGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIG1pZGRsZV9kaWdpdGFsX3NlY3Rvcl8zZHMgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA1OwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWlkZGxlIGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEFudGVubmFDYXBhYmlsaXR5IHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBNTyBzZXJ2ZXMgYXMgYSBtYXBwaW5nIGJldHdlZW4gdGhlIGNlbGwgYW5kIHRoZSBSQlMKICAgICAgICAgICAgZXF1aXBtZW50IHVzZWQgdG8gcHJvdmlkZSBjb3ZlcmFnZSBpbiBhIGNlcnRhaW4gZ2VvZ3JhcGhpY2FsIGFyZWEuCiAgICAgICAgICAgIFRoZSBNTyBhbHNvIGNvbnRyb2xzIHRoZSBtYXhpbXVtIG91dHB1dCBwb3dlciBvZiB0aGUgc2VjdG9yLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYtbGlzdCBlVXRyYW5GcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIExURSBmcmVxdWVuY3kgYmFuZHMgdGhhdCBhc3NvY2lhdGVkCiAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgc3VwcG9ydHMiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYtbGlzdCBnZXJhbkZxQmFuZHMgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2YgR0VSQU4gZnJlcXVlbmN5IGJhbmRzIHRoYXQgYXNzb2NpYXRlZAogICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgblJGcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIE5SIGZyZXF1ZW5jeSBiYW5kcyBhc3NvY2lhdGVkIGhhcmR3YXJlCiAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHMiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBTZWN0b3IgewogICAgICAgIGRlc2NyaXB0aW9uICJBIGdyb3VwIG9mIGNvLWxvY2F0ZWQgQ2VsbHMgdGhhdCBoYXZlIGEgc2hhcmVkCiAgICAgICAgICAgIGNvdmVyYWdlIGFyZWEuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBzZWN0b3JJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pdmVyc2FsbHkgdW5pcXVlIElEIGdlbmVyYXRlZCBieSB0aGUgc2VjdG9yJ3MKICAgICAgICAgICAgICAgICAgICBkaXNjb3ZlcnkgbWVjaGFuaXNtLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQ2NDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgbGVhZiBhemltdXRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBdmVyYWdlIHZhbHVlIG9mIHRoZSBhemltdXRocyBvZiB0aGUgY2VsbHMKICAgICAgICAgICAgICAgICAgICBjb21wcmlzaW5nIHRoZSBzZWN0b3IsIGRldGVybWluZWQgZHVyaW5nIHNlY3RvciBkaXNjb3ZlcnkuIjsKICAgICAgICAgICAgICAgIHR5cGUgZGVjaW1hbDY0ewogICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uLWRpZ2l0cyA2OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdW5pdHMgImRlZ3JlZXMiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEVOT0RFQkZVTkNUSU9OX1BST1ZJREVTX0VVVFJBTkNFTEwgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBwcm92aWRlcyBFVVRSQU4gQ2VsbC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiRVVUUkFOIENlbGwgcHJvdmlkZWQgYnkgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBFVXRyYW5DZWxsOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEVOT0RFQkZVTkNUSU9OX1BST1ZJREVTX0xURVNFQ1RPUkNBUlJJRVIgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1sdGVTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBwcm92aWRlcyBMVEUgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEVOb2RlQkZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWVub2RlYkZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxURSBTZWN0b3IgQ2FycmllciBwcm92aWRlZCBieSBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CRFVGVU5DVElPTl9QUk9WSURFU19OUkNFTExEVSB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBwcm92aWRlcyBOUiBDZWxsLURVLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBHTkJEVUZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSBwcm92aWRlZCBieSBnTm9kZUItRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SQ2VsbERVOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEdOQkRVRlVOQ1RJT05fUFJPVklERVNfTlJTRUNUT1JDQVJSSUVSIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBwcm92aWRlcyBOUiBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgR05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIFNlY3RvciBDYXJyaWVyIHByb3ZpZGVkIGJ5IGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEdOQkNVQ1BGVU5DVElPTl9QUk9WSURFU19OUkNFTExDVSB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLW5yQ2VsbEN1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVUNQIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIENlbGwtQ1UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1nbmJjdWNwRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1DVSBwcm92aWRlZCBieSBnTm9kZUItQ1VDUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsQ1U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRVVUUkFOQ0VMTF9VU0VTX0xURVNFQ1RPUkNBUlJJRVIgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCB1c2VkLWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiRVVUUkFOIENlbGwgdXNlcyBMVEUgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEVVdHJhbkNlbGw7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdXNlZC1ieS1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxURSBTZWN0b3IgQ2FycmllciB1c2VkIGJ5IEVVVFJBTiBDZWxsLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBMVEVTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTFRFU0VDVE9SQ0FSUklFUl9VU0VTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHVzZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHVzZXMgQW50ZW5uYSBDYXBhYmlsaXR5LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBMVEVTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1ieS1sdGVTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgQ2FwYWJpbGl0eSB1c2VkIGJ5IExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQW50ZW5uYUNhcGFiaWxpdHk7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOUkNFTExEVV9VU0VTX05SU0VDVE9SQ0FSUklFUiB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHVzZWQtbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwtRFUgdXNlcyBOUiBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdXNlZC1ieS1uckNlbGxEdSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBTZWN0b3IgQ2FycmllciB1c2VkIGJ5IE5SIENlbGwtRFUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5SU0VDVE9SQ0FSUklFUl9VU0VTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHVzZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgU2VjdG9yIENhcnJpZXIgdXNlcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5SU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHVzZWQtYnktbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgQ2FwYWJpbGl0eSB1c2VkIGJ5IE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBBbnRlbm5hQ2FwYWJpbGl0eTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIFNFQ1RPUl9HUk9VUFNfTlJDRUxMRFUgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgTlIgQ2VsbC1EVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgU2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwtRFUgZ3JvdXBlZCBieSBTZWN0b3IuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SQ2VsbERVOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19FVVRSQU5DRUxMIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZ3JvdXBlZC1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgRVVUUkFOIENlbGwuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIFNlY3RvcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBncm91cGVkLWJ5LXNlY3RvciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgRVV0cmFuQ2VsbDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-equipment-ran	urn:o-ran:smo-teiv-rel-equipment-ran	REL_EQUIPMENT_RAN	["o-ran-smo-teiv-equipment", "o-ran-smo-teiv-ran"]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1lcXVpcG1lbnQtcmFuIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1yZWwtZXF1aXBtZW50LXJhbiI7CiAgICBwcmVmaXggb3ItdGVpdi1yZWwtZXF1aXByYW47CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsgcHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7IHByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtZXF1aXBtZW50IHsgcHJlZml4IG9yLXRlaXYtZXF1aXA7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtcmFuIHsgcHJlZml4IG9yLXRlaXYtcmFuOyB9CgoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbiAKICAgICJSQU4gRXF1aXBtZW50IHRvIExvZ2ljYWwgdG9wb2xvZ3kgbW9kZWwuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIEVxdWlwbWVudCB0byBMb2dpY2FsIHRvcG9sb2d5CiAgICBlbnRpdGllcyBhbmQgcmVsYXRpb25zLgoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJFTF9FUVVJUE1FTlRfUkFOOwoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQU5URU5OQU1PRFVMRV9TRVJWRVNfQU5URU5OQUNBUEFCSUxJVFkgeyAvLyAwLi5uIHRvIDAuLm0KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aWNlZC1hbnRlbm5hQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIENhcGFiaWxpdHkgc2VydmljZWQgYnkgdGhpcyBBbnRlbm5hIE1vZHVsZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1lcXVpcDpBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3Qgc2VydmluZy1hbnRlbm5hTW9kdWxlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIHNlcnZlcyB0aGlzIEFudGVubmEgQ2FwYWJpbGl0eS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgb3ItdGVpdi1yYW46QW50ZW5uYUNhcGFiaWxpdHk7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBTRUNUT1JfR1JPVVBTX0FOVEVOTkFNT0RVTEUgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLWFudGVubmFNb2R1bGUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2VjdG9yIGdyb3VwcyBBbnRlbm5hIE1vZHVsZS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1yYW46U2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIGdyb3VwZWQgYnkgU2VjdG9yLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LWVxdWlwOkFudGVubmFNb2R1bGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-equipment	urn:o-ran:smo-teiv-equipment	EQUIPMENT	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtZXF1aXBtZW50IjsKICAgIHByZWZpeCBvci10ZWl2LWVxdWlwOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7cHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7cHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIGltcG9ydCBpZXRmLWdlby1sb2NhdGlvbiB7CiAgICAgICAgcHJlZml4IGdlbzsKICAgICAgICByZWZlcmVuY2UgIlJGQyA5MTc5OiBBIFlBTkcgR3JvdXBpbmcgZm9yIEdlb2dyYXBoaWMgTG9jYXRpb25zIjsKICAgIH0KCiAgICBvcmdhbml6YXRpb24gIk9SQU4iOwogICAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gRXF1aXBtZW50IHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gRXF1aXBtZW50IGRvbWFpbiwgd2hpY2ggaXMgbW9kZWxsZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGh5c2ljYWwKICAgIGxvY2F0aW9uIG9mIGVxdWlwbWVudCBzdWNoIGFzIGFudGVubmFzIGFzc29jaWF0ZWQgd2l0aCBhIGNlbGwvY2FycmllcgogICAgYW5kIHRoZWlyIHJlbGV2YW50IHByb3BlcnRpZXMgZS5nLiB0aWx0LCBtYXggcG93ZXIgZXRjLgoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIEVRVUlQTUVOVDsKCiAgICBsaXN0IEFudGVubmFNb2R1bGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBbiBBbnRlbm5hIE1vZHVsZSByZXByZXNlbnRzIHRoZSBwaHlzaWNhbCBhc3BlY3Qgb2YgYW4KICAgICAgICAgICAgYW50ZW5uYS4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGFudGVubmFNb2RlbE51bWJlciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVmVuZG9yLXNwZWNpZmljIGFudGVubmEgbW9kZWwgaWRlbnRpZmllci4gVGhpcwogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMgbm8KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25hbCBpbXBhY3QuIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG1lY2hhbmljYWxBbnRlbm5hQmVhcmluZyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBiZWFyaW5nIG9uIGFudGVubmEgc3VidW5pdCB3aGVyZSBhbnRlbm5hCiAgICAgICAgICAgICAgICAgICAgdW5pdCBpcyBpbnN0YWxsZWQuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbWVjaGFuaWNhbEFudGVubmFUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgZml4ZWQgYW50ZW5uYSB0aWx0IG9mIHRoZSBpbnN0YWxsYXRpb24sIGRlZmluZWQKICAgICAgICAgICAgICAgICAgICBhcyB0aGUgaW5jbGluYXRpb24gb2YgdGhlIGFudGVubmEgZWxlbWVudCByZXNwZWN0IHRvIHRoZQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsIHBsYW5lLiBJdCBpcyBhIHNpZ25lZCB2YWx1ZS4gUG9zaXRpdmUgaW5kaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgZG93bnRpbHQsIGFuZCBuZWdhdGl2ZSBpbmRpY2F0ZXMgdXB0aWx0LiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHBvc2l0aW9uV2l0aGluU2VjdG9yIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIHVuaXQgcG9zaXRpb24gd2l0aGluIHNlY3Rvci4gVGhpcyBhdHRyaWJ1dGUKICAgICAgICAgICAgICAgICAgICBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMgbm8gb3BlcmF0aW9uYWwKICAgICAgICAgICAgICAgICAgICBpbXBhY3QuIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRvdGFsVGlsdCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVG90YWwgYW50ZW5uYSBlbGV2YXRpb24gaW5jbHVkaW5nIHRoZSBpbnN0YWxsZWQKICAgICAgICAgICAgICAgICAgICB0aWx0IGFuZCB0aGUgdGlsdCBhcHBsaWVkIGJ5IHRoZSBSZW1vdGUgRWxlY3RyaWNhbAogICAgICAgICAgICAgICAgICAgIFRpbHQgKFJFVCkuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWxlY3RyaWNhbEFudGVubmFUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFbGVjdHJpY2FsbHktY29udHJvbGxlZCB0aWx0IG9mIG1haW4gYmVhbSBtYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgd2l0aCByZXNwZWN0IHRvIGRpcmVjdGlvbiBvcnRob2dvbmFsIHRvIGFudGVubmEgZWxlbWVudAogICAgICAgICAgICAgICAgICAgIGF4aXMgKHNlZSAzR1BQIFRTIDI1LjQ2NikuIFZhbHVlIGlzIHNpZ25lZDsgdGlsdCBkb3duIGlzCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmUsIHRpbHQgdXAgaXMgbmVnYXRpdmUuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYtbGlzdCBhbnRlbm5hQmVhbVdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgYW5ndWxhciBzcGFuIG9mIHRoZSBtYWluIGxvYmUgb2YgdGhlIGFudGVubmEKICAgICAgICAgICAgICAgICAgICByYWRpYXRpb24gcGF0dGVybiBpbiB0aGUgaG9yaXpvbnRhbCBwbGFuZS4gTWVhc3VyZWQgaW4KICAgICAgICAgICAgICAgICAgICBkZWdyZWVzLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IFNpdGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBIHNpdGUgaXMgYSBwaHlzaWNhbCBsb2NhdGlvbiB3aGVyZSBhbiBlcXVpcG1lbnQgY2FuIGJlCiAgICAgICAgICAgIGluc3RhbGxlZC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBBTlRFTk5BTU9EVUxFX0lOU1RBTExFRF9BVF9TSVRFIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIGluc3RhbGxlZC1hdC1zaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIGluc3RhbGxlZCBhdCBTaXRlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgaW5zdGFsbGVkLWFudGVubmFNb2R1bGUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2l0ZSB3aGVyZSBBbnRlbm5hIE1vZHVsZSBpcyBpbnN0YWxsZWQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-oam-cloud	urn:o-ran:smo-teiv-rel-oam-cloud	REL_OAM_CLOUD	["o-ran-smo-teiv-oam", "o-ran-smo-teiv-cloud"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1vYW0tY2xvdWQgewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LXJlbC1vYW0tY2xvdWQiOwogICAgcHJlZml4IG9yLXRlaXYtb2FtdG9jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtb2FtIHtwcmVmaXggb3ItdGVpdi1vYW07IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY2xvdWQge3ByZWZpeCBvci10ZWl2LWNsb3VkOyB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uIAogICAgIlJBTiBPJk0gdG8gQ2xvdWQgdG9wb2xvZ3kgbW9kZWwuCgogICAgVGhpcyBtb2RlbCBjb250YWlucyB0aGUgUkFOIE8mTSB0byBDbG91ZCB0b3BvbG9neSByZWxhdGlvbnMKCiAgICBDb3B5cmlnaHQgKEMpIDIwMjQgRXJpY3Nzb24KICAgIE1vZGlmaWNhdGlvbnMgQ29weXJpZ2h0IChDKSAyMDI0IE9wZW5JbmZyYSBGb3VuZGF0aW9uIEV1cm9wZQoKICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsCiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0wMiIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIG9yLXRlaXYteWV4dDpkb21haW4gUkVMX09BTV9DTE9VRDsKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE1BTkFHRURFTEVNRU5UX0RFUExPWUVEX0FTX0NMT1VESUZJRURORiB7ICAvLyAwLi4xIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtYXMtY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBkZXBsb3llZCBhcyBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LW9hbTpNYW5hZ2VkRWxlbWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBkZXBsb3llZC1tYW5hZ2VkRWxlbWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZGlmaWVkIE5GIGRlcGxveXMgTWFuYWdlZCBFbGVtZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LWNsb3VkOkNsb3VkaWZpZWRORjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX01BTkFHRURFTEVNRU5UIHsgLy8gMS4ubiB0byAxCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHNlcnZpY2VkLW1hbmFnZWRFbGVtZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk1hbmFnZWQgRWxlbWVudCBzZXJ2aWNlZCBieSB0aGlzIE5GIERlcGxveW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIG9yLXRlaXYtY2xvdWQ6TkZEZXBsb3ltZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBNYW5hZ2VkIEVsZW1lbnQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtb2FtOk1hbmFnZWRFbGVtZW50OwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KICAgIH0KfQ==	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-cloud	urn:o-ran:smo-teiv-cloud	CLOUD	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jbG91ZCI7CiAgICBwcmVmaXggb3ItdGVpdi1jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgaWV0Zi1nZW8tbG9jYXRpb24gewogICAgICAgIHByZWZpeCBnZW87CiAgICAgICAgcmVmZXJlbmNlICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucyI7CiAgICB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gQ0xPVUQgZG9tYWluLCB3aGljaCBjb21wcmlzZXMgY2xvdWQgaW5mcmFzdHJ1Y3R1cmUgYW5kCiAgICBkZXBsb3ltZW50IGFzcGVjdHMgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgdG9wb2xvZ3kgbW9kZWwuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEOwoKICAgIGxpc3QgQ2xvdWRpZmllZE5GIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBSQU4gTmV0d29yayBGdW5jdGlvbiBzb2Z0d2FyZSB0aGF0IGlzIGRlcGxveWVkIGluIHRoZSBPLUNsb3VkIHZpYSBvbmUgb3IgbW9yZSBORiBEZXBsb3ltZW50cy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWRpZmllZCBORiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5GRGVwbG95bWVudCB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgc29mdHdhcmUgZGVwbG95bWVudCBvbiBPLUNsb3VkIHJlc291cmNlcyB0aGF0IHJlYWxpemVzLCBhbGwgb3IgcGFydCBvZiwgYSBDbG91ZGlmaWVkIE5GLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBORiBEZXBsb3ltZW50IjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQ2xvdWROYW1lc3BhY2UgewogICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZE5hbWVzcGFjZSBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpc29sYXRpbmcKICAgICAgICAgICAgICAgICAgICBncm91cHMgb2YgcmVzb3VyY2VzIHdpdGhpbiBhIHNpbmdsZSBjbHVzdGVyLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBDbG91ZCBOYW1lc3BhY2UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOb2RlQ2x1c3RlciB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgTm9kZUNsdXN0ZXIgbWFuYWdlcyBhIGNvbGxlY3Rpb24gb2YgTm9kZXMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIE5vZGUgQ2x1c3RlciI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IENsb3VkU2l0ZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQKICAgICAgICAgICAgICAgICAgICBob3N0cyB0aGUgTkYgRGVwbG95bWVudC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWQgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBDTE9VRElGSUVETkZfQ09NUFJJU0VTX05GREVQTE9ZTUVOVCB7IC8vIDEgdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGNvbXByaXNlZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWRpZmllZCBORiBjb21wcmlzZXMgb2YgdGhlc2UgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBjb21wcmlzZWQtYnktY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgcGFydCBvZiBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTkZERVBMT1lNRU5UX0RFUExPWUVEX09OX0NMT1VETkFNRVNQQUNFIHsgLy8gMS4ubiB0byAxLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtb24tY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCBkZXBsb3llZCBvbiBDbG91ZCBOYW1lc3BhY2UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBkZXBsb3llZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQ0xPVUROQU1FU1BBQ0VfREVQTE9ZRURfT05fTk9ERUNMVVNURVIgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtb24tbm9kZUNsdXN0ZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveWVkIG9uIE5vZGUgQ2x1c3Rlci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm9kZSBDbHVzdGVyIGRlcGxveXMgQ2xvdWQgTmFtZXNwYWNlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOb2RlQ2x1c3RlcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOT0RFQ0xVU1RFUl9MT0NBVEVEX0FUX0NMT1VEU0lURSB7IC8vIDEuLm4gdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGxvY2F0ZWQtYXQtY2xvdWRTaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5vZGUgQ2x1c3RlciBsb2NhdGVkIGF0IENsb3VkIFNpdGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5vZGVDbHVzdGVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGxvY2F0aW9uLW9mLW5vZGVDbHVzdGVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkIFNpdGUgaXMgbG9jYXRpb24gb2YgTm9kZSBDbHVzdGVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBDbG91ZFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9	BUILT_IN_MODULE	IN_USAGE
+o-ran-smo-teiv-rel-cloud-ran	urn:o-ran:smo-teiv-rel-cloud-ran	REL_CLOUD_RAN	["o-ran-smo-teiv-cloud", "o-ran-smo-teiv-ran"]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJlbC1jbG91ZC1yYW4gewogICAgeWFuZy12ZXJzaW9uIDEuMTsKICAgIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LXJlbC1jbG91ZC1yYW4iOwogICAgcHJlZml4IG9yLXRlaXYtY2xvdWR0b3JhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY2xvdWQge3ByZWZpeCBvci10ZWl2LWNsb3VkOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LXJhbiB7cHJlZml4IG9yLXRlaXYtcmFuOyB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvIFJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIFJBTiBDbG91ZCB0byBSQU4gTG9naWNhbCB0b3BvbG9neSByZWxhdGlvbnMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJFTF9DTE9VRF9SQU47CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX0dOQkRVRlVOQ1RJT04geyAvLyAwLi5uIHRvIDAuLm0KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aWNlZC1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQkRVIEZ1bmN0aW9uIHNlcnZpY2VkIGJ5IHRoaXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgb3ItdGVpdi1jbG91ZDpORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBzZXJ2aW5nLW5GRGVwbG95bWVudCB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJORiBEZXBsb3ltZW50IHRoYXQgc2VydmVzIHRoaXMgZ05vZGVCRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIG9yLXRlaXYtcmFuOkdOQkRVRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX0dOQkNVQ1BGVU5DVElPTiB7IC8vIDAuLm4gdG8gMC4ubQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHNlcnZpY2VkLWduYmN1Y3BGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtQ1AgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBORiBEZXBsb3ltZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LWNsb3VkOk5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBnTm9kZUJDVUNQIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVUNQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBORkRFUExPWU1FTlRfU0VSVkVTX0dOQkNVVVBGVU5DVElPTiB7IC8vIDAuLm4gdG8gMC4ubQoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHNlcnZpY2VkLWduYmN1dXBGdW5jdGlvbiB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUItQ1UtVVAgRnVuY3Rpb24gc2VydmljZWQgYnkgdGhpcyBORiBEZXBsb3ltZW50LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBvci10ZWl2LWNsb3VkOk5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHNlcnZpbmctbkZEZXBsb3ltZW50IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgdGhhdCBzZXJ2ZXMgdGhpcyBnTm9kZUJDVVVQIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBvci10ZWl2LXJhbjpHTkJDVVVQRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=	BUILT_IN_MODULE	IN_USAGE
 \.
 
 COPY ties_model.entity_info("name", "moduleReferenceName") FROM stdin;
-GNBCUUPFunction	o-ran-smo-teiv-ran
-ENodeBFunction	o-ran-smo-teiv-ran
-Sector	o-ran-smo-teiv-ran
-LTESectorCarrier	o-ran-smo-teiv-ran
-NRCellDU	o-ran-smo-teiv-ran
+ManagedElement	o-ran-smo-teiv-oam
 GNBDUFunction	o-ran-smo-teiv-ran
-NRCellCU	o-ran-smo-teiv-ran
-EUtranCell	o-ran-smo-teiv-ran
 GNBCUCPFunction	o-ran-smo-teiv-ran
+GNBCUUPFunction	o-ran-smo-teiv-ran
+NRCellCU	o-ran-smo-teiv-ran
+NRCellDU	o-ran-smo-teiv-ran
+ENodeBFunction	o-ran-smo-teiv-ran
+EUtranCell	o-ran-smo-teiv-ran
 NRSectorCarrier	o-ran-smo-teiv-ran
+LTESectorCarrier	o-ran-smo-teiv-ran
 AntennaCapability	o-ran-smo-teiv-ran
+Sector	o-ran-smo-teiv-ran
+AntennaModule	o-ran-smo-teiv-equipment
+Site	o-ran-smo-teiv-equipment
+CloudifiedNF	o-ran-smo-teiv-cloud
+NFDeployment	o-ran-smo-teiv-cloud
 CloudNamespace	o-ran-smo-teiv-cloud
 NodeCluster	o-ran-smo-teiv-cloud
 CloudSite	o-ran-smo-teiv-cloud
-NFDeployment	o-ran-smo-teiv-cloud
-CloudifiedNF	o-ran-smo-teiv-cloud
-ManagedElement	o-ran-smo-teiv-oam
-Site	o-ran-smo-teiv-equipment
-AntennaModule	o-ran-smo-teiv-equipment
-PhysicalNF	o-ran-smo-teiv-equipment
 \.
 
 COPY ties_model.relationship_info("name", "aSideAssociationName", "aSideMOType", "aSideMinCardinality", "aSideMaxCardinality", "bSideAssociationName", "bSideMOType", "bSideMinCardinality", "bSideMaxCardinality", "associationKind", "relationshipDataLocation", "connectSameEntity", "moduleReferenceName") FROM stdin;
-ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	provided-lteSectorCarrier	ENodeBFunction	1	1	provided-by-enodebFunction	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
 ENODEBFUNCTION_PROVIDES_EUTRANCELL	provided-euTranCell	ENodeBFunction	1	1	provided-by-enodebFunction	EUtranCell	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-SECTOR_GROUPS_EUTRANCELL	grouped-euTranCell	Sector	0	1	grouped-by-sector	EUtranCell	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-SECTOR_GROUPS_ANTENNAMODULE	grouped-antennaModule	Sector	0	1	grouped-by-sector	AntennaModule	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-SECTOR_GROUPS_NRCELLDU	grouped-nrCellDu	Sector	0	1	grouped-by-sector	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	provided-lteSectorCarrier	ENodeBFunction	1	1	provided-by-enodebFunction	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+GNBDUFUNCTION_PROVIDES_NRCELLDU	provided-nrCellDu	GNBDUFunction	1	1	provided-by-gnbduFunction	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	provided-nrSectorCarrier	GNBDUFunction	1	1	provided-by-gnbduFunction	NRSectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+GNBCUCPFUNCTION_PROVIDES_NRCELLCU	provided-nrCellCu	GNBCUCPFunction	1	1	provided-by-gnbcucpFunction	NRCellCU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+EUTRANCELL_USES_LTESECTORCARRIER	used-lteSectorCarrier	EUtranCell	0	1	used-by-euTranCell	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
 LTESECTORCARRIER_USES_ANTENNACAPABILITY	used-antennaCapability	LTESectorCarrier	0	9223372036854775807	used-by-lteSectorCarrier	AntennaCapability	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-ran
 NRCELLDU_USES_NRSECTORCARRIER	used-nrSectorCarrier	NRCellDU	0	1	used-by-nrCellDu	NRSectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	provided-nrSectorCarrier	GNBDUFunction	1	1	provided-by-gnbduFunction	NRSectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-GNBDUFUNCTION_PROVIDES_NRCELLDU	provided-nrCellDu	GNBDUFunction	1	1	provided-by-gnbduFunction	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-EUTRANCELL_USES_LTESECTORCARRIER	used-lteSectorCarrier	EUtranCell	0	1	used-by-euTranCell	LTESectorCarrier	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
-GNBCUCPFUNCTION_PROVIDES_NRCELLCU	provided-nrCellCu	GNBCUCPFunction	1	1	provided-by-gnbcucpFunction	NRCellCU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
 NRSECTORCARRIER_USES_ANTENNACAPABILITY	used-antennaCapability	NRSectorCarrier	0	9223372036854775807	used-by-nrSectorCarrier	AntennaCapability	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-ran
+SECTOR_GROUPS_NRCELLDU	grouped-nrCellDu	Sector	0	1	grouped-by-sector	NRCellDU	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+SECTOR_GROUPS_EUTRANCELL	grouped-euTranCell	Sector	0	1	grouped-by-sector	EUtranCell	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-ran
+ANTENNAMODULE_INSTALLED_AT_SITE	installed-at-site	AntennaModule	0	9223372036854775807	installed-antennaModule	Site	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-equipment
+MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	deployed-as-cloudifiedNF	ManagedElement	1	1	deployed-managedElement	CloudifiedNF	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-rel-oam-cloud
+NFDEPLOYMENT_SERVES_MANAGEDELEMENT	serviced-managedElement	NFDeployment	1	9223372036854775807	serving-nFDeployment	ManagedElement	1	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-rel-oam-cloud
+MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	managed-enodebFunction	ManagedElement	1	1	managed-by-managedElement	ENodeBFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	managed-gnbduFunction	ManagedElement	1	1	managed-by-managedElement	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	managed-gnbcucpFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	managed-gnbcuupFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-oam-ran
+ANTENNAMODULE_SERVES_ANTENNACAPABILITY	serviced-antennaCapability	AntennaModule	0	9223372036854775807	serving-antennaModule	AntennaCapability	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-equipment-ran
+SECTOR_GROUPS_ANTENNAMODULE	grouped-antennaModule	Sector	0	1	grouped-by-sector	AntennaModule	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-rel-equipment-ran
+NFDEPLOYMENT_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-rel-cloud-ran
+CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	comprised-nFDeployment	CloudifiedNF	1	1	comprised-by-cloudifiedNF	NFDeployment	1	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-cloud
+NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	deployed-on-cloudNamespace	NFDeployment	1	9223372036854775807	deployed-nFDeployment	CloudNamespace	1	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud
 CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	deployed-on-nodeCluster	CloudNamespace	1	9223372036854775807	deployed-cloudNamespace	NodeCluster	1	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-cloud
 NODECLUSTER_LOCATED_AT_CLOUDSITE	located-at-cloudSite	NodeCluster	1	9223372036854775807	location-of-nodeCluster	CloudSite	1	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud
-NFDEPLOYMENT_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud-to-ran
-NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	deployed-on-cloudNamespace	NFDeployment	1	9223372036854775807	deployed-nFDeployment	CloudNamespace	1	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud
-NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud-to-ran
-NFDEPLOYMENT_SERVES_MANAGEDELEMENT	serviced-managedElement	NFDeployment	1	9223372036854775807	serving-nFDeployment	ManagedElement	1	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-oam-to-cloud
-NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	NFDeployment	0	9223372036854775807	serving-nFDeployment	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-cloud-to-ran
-CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	comprised-nFDeployment	CloudifiedNF	1	1	comprised-by-cloudifiedNF	NFDeployment	1	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-cloud
-MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	managed-enodebFunction	ManagedElement	1	1	managed-by-managedElement	ENodeBFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	deployed-as-cloudifiedNF	ManagedElement	1	1	deployed-managedElement	CloudifiedNF	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-oam-to-cloud
-MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	managed-gnbcucpFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	managed-gnbcuupFunction	ManagedElement	1	1	managed-by-managedElement	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	managed-gnbduFunction	ManagedElement	1	1	managed-by-managedElement	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-oam-to-ran
-ANTENNAMODULE_INSTALLED_AT_SITE	installed-at-site	AntennaModule	0	9223372036854775807	installed-antennaModule	Site	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-equipment
-ANTENNAMODULE_SERVES_ANTENNACAPABILITY	serviced-antennaCapability	AntennaModule	0	9223372036854775807	serving-antennaModule	AntennaCapability	0	9223372036854775807	BI_DIRECTIONAL	RELATION	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_INSTALLED_AT_SITE	installed-at-site	PhysicalNF	1	9223372036854775807	installed-physicalNF	Site	0	1	BI_DIRECTIONAL	A_SIDE	false	o-ran-smo-teiv-equipment
-PHYSICALNF_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	PhysicalNF	0	1	serving-physicalNF	GNBDUFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_SERVES_ENODEBFUNCTION	serviced-enodebFunction	PhysicalNF	0	1	serving-physicalNF	ENodeBFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	PhysicalNF	0	1	serving-physicalNF	GNBCUUPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
-PHYSICALNF_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	PhysicalNF	0	1	serving-physicalNF	GNBCUCPFunction	0	9223372036854775807	BI_DIRECTIONAL	B_SIDE	false	o-ran-smo-teiv-equipment-to-ran
 \.
 
 ;
 
-COMMIT;
+COMMIT;
\ No newline at end of file
diff --git a/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql b/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
index 554c48e..42c1faf 100644
--- a/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
+++ b/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
@@ -1,22 +1,22 @@
 --
---  ============LICENSE_START=======================================================
---  Copyright (C) 2024 Ericsson
---  Modifications Copyright (C) 2024 OpenInfra Foundation Europe
---  ================================================================================
---  Licensed under the Apache License, Version 2.0 (the "License");
---  you may not use this file except in compliance with the License.
---  You may obtain a copy of the License at
+-- ============LICENSE_START=======================================================
+-- Copyright (C) 2024 Ericsson
+-- Modifications Copyright (C) 2024 OpenInfra Foundation Europe
+-- ================================================================================
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
 --
---        http://www.apache.org/licenses/LICENSE-2.0
+--       http://www.apache.org/licenses/LICENSE-2.0
 --
---  Unless required by applicable law or agreed to in writing, software
---  distributed under the License is distributed on an "AS IS" BASIS,
---  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
---  See the License for the specific language governing permissions and
---  limitations under the License.
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
 --
---  SPDX-License-Identifier: Apache-2.0
---  ============LICENSE_END=========================================================
+-- SPDX-License-Identifier: Apache-2.0
+-- ============LICENSE_END=========================================================
 --
 
 BEGIN;
@@ -24,7 +24,7 @@
 CREATE EXTENSION IF NOT EXISTS postgis;
 CREATE EXTENSION IF NOT EXISTS postgis_topology;
 
-GRANT USAGE ON SCHEMA topology TO topology_exposure_user;
+GRANT USAGE ON SCHEMA topology to topology_exposure_user;
 GRANT SELECT ON ALL SEQUENCES IN SCHEMA topology TO topology_exposure_user;
 GRANT SELECT ON ALL TABLES IN SCHEMA topology TO topology_exposure_user;
 
@@ -37,14 +37,14 @@
 
 -- Function to create CONSTRAINT only if it does not exists
 CREATE OR REPLACE FUNCTION ties_data.create_constraint_if_not_exists (
-    t_name TEXT, c_name TEXT, constraint_sql TEXT
+	t_name TEXT, c_name TEXT, constraint_sql TEXT
 )
 RETURNS void AS
 $$
 BEGIN
-    IF NOT EXISTS (SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = t_name AND constraint_name = c_name) THEN
-        EXECUTE constraint_sql;
-    END IF;
+	IF NOT EXISTS (SELECT constraint_name FROM information_schema.table_constraints WHERE table_name = t_name AND constraint_name = c_name) THEN
+		EXECUTE constraint_sql;
+	END IF;
 END;
 $$ language 'plpgsql';
 
@@ -52,12 +52,12 @@
 INSERT INTO ties_model.execution_status("schema", "status") VALUES ('ties_data', 'success');
 
 CREATE TABLE IF NOT EXISTS ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" (
-    "id"            VARCHAR(511),
-    "aSide_AntennaModule"            VARCHAR(511),
-    "bSide_AntennaCapability"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_AntennaModule"			VARCHAR(511),
+	"bSide_AntennaCapability"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -67,15 +67,13 @@
 ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."AntennaCapability" (
-    "id"            VARCHAR(511),
-    "nRFqBands"            jsonb,
-    "cmId"            jsonb,
-    "geranFqBands"            jsonb,
-    "fdn"            TEXT,
-    "eUtranFqBands"            jsonb,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"eUtranFqBands"			jsonb,
+	"geranFqBands"			jsonb,
+	"nRFqBands"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -85,30 +83,28 @@
 ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."AntennaModule" (
-    "id"            VARCHAR(511),
-    "totalTilt"            BIGINT,
-    "cmId"            jsonb,
-    "antennaBeamWidth"            jsonb,
-    "positionWithinSector"            TEXT,
-    "geo-location"            geography,
-    "mechanicalAntennaBearing"            BIGINT,
-    "fdn"            TEXT,
-    "electricalAntennaTilt"            BIGINT,
-    "mechanicalAntennaTilt"            BIGINT,
-    "antennaModelNumber"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_grouped-by-sector"            VARCHAR(511),
-    "REL_ID_SECTOR_GROUPS_ANTENNAMODULE"            VARCHAR(511),
-    "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE"            jsonb,
-    "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE"            jsonb,
-    "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE"            jsonb,
-    "REL_FK_installed-at-site"            VARCHAR(511),
-    "REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE"            VARCHAR(511),
-    "REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE"            jsonb
+	"id"			VARCHAR(511),
+	"antennaModelNumber"			TEXT,
+	"mechanicalAntennaBearing"			BIGINT,
+	"mechanicalAntennaTilt"			BIGINT,
+	"positionWithinSector"			TEXT,
+	"totalTilt"			BIGINT,
+	"electricalAntennaTilt"			BIGINT,
+	"antennaBeamWidth"			jsonb,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_installed-at-site"			VARCHAR(511),
+	"REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE"			VARCHAR(511),
+	"REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE"			jsonb,
+	"REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE"			jsonb,
+	"REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE"			jsonb,
+	"REL_FK_grouped-by-sector"			VARCHAR(511),
+	"REL_ID_SECTOR_GROUPS_ANTENNAMODULE"			VARCHAR(511),
+	"REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE"			jsonb,
+	"REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE"			jsonb,
+	"REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -117,29 +113,29 @@
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '{}';
+
 CREATE TABLE IF NOT EXISTS ties_data."CloudNamespace" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_deployed-on-nodeCluster"            VARCHAR(511),
-    "REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            VARCHAR(511),
-    "REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            jsonb,
-    "REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            jsonb,
-    "REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_deployed-on-nodeCluster"			VARCHAR(511),
+	"REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			VARCHAR(511),
+	"REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			jsonb,
+	"REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			jsonb,
+	"REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -155,12 +151,12 @@
 ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."CloudSite" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "geo-location"            geography,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."CloudSite" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -170,11 +166,11 @@
 ALTER TABLE ONLY ties_data."CloudSite" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."CloudifiedNF" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -184,24 +180,17 @@
 ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."ENodeBFunction" (
-    "id"            VARCHAR(511),
-    "fdn"            TEXT,
-    "cmId"            jsonb,
-    "eNodeBPlmnId"            jsonb,
-    "eNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"eNBId"			BIGINT,
+	"eNodeBPlmnId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -216,37 +205,29 @@
 
 ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_ENODEBFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_ENODEBFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_ENODEBFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."EUtranCell" (
-    "id"            VARCHAR(511),
-    "earfcndl"            BIGINT,
-    "earfcnul"            BIGINT,
-    "cmId"            jsonb,
-    "tac"            BIGINT,
-    "dlChannelBandwidth"            BIGINT,
-    "fdn"            TEXT,
-    "cellId"            BIGINT,
-    "duplexType"            TEXT,
-    "channelBandwidth"            BIGINT,
-    "earfcn"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_provided-by-enodebFunction"            VARCHAR(511),
-    "REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            VARCHAR(511),
-    "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            jsonb,
-    "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            jsonb,
-    "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL"            jsonb,
-    "REL_FK_grouped-by-sector"            VARCHAR(511),
-    "REL_ID_SECTOR_GROUPS_EUTRANCELL"            VARCHAR(511),
-    "REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL"            jsonb,
-    "REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL"            jsonb,
-    "REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL"            jsonb
+	"id"			VARCHAR(511),
+	"cellId"			BIGINT,
+	"earfcndl"			BIGINT,
+	"earfcnul"			BIGINT,
+	"dlChannelBandwidth"			BIGINT,
+	"earfcn"			BIGINT,
+	"channelBandwidth"			BIGINT,
+	"tac"			BIGINT,
+	"duplexType"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-enodebFunction"			VARCHAR(511),
+	"REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			VARCHAR(511),
+	"REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			jsonb,
+	"REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			jsonb,
+	"REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			jsonb,
+	"REL_FK_grouped-by-sector"			VARCHAR(511),
+	"REL_ID_SECTOR_GROUPS_EUTRANCELL"			VARCHAR(511),
+	"REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL"			jsonb,
+	"REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL"			jsonb,
+	"REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -268,26 +249,19 @@
 ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."GNBCUCPFunction" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "pLMNId"            jsonb,
-    "gNBIdLength"            BIGINT,
-    "fdn"            TEXT,
-    "gNBCUName"            TEXT,
-    "gNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"gNBCUName"			TEXT,
+	"gNBId"			BIGINT,
+	"gNBIdLength"			BIGINT,
+	"pLMNId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -302,31 +276,18 @@
 
 ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUCPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUCPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUCPFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."GNBCUUPFunction" (
-    "id"            VARCHAR(511),
-    "fdn"            TEXT,
-    "cmId"            jsonb,
-    "gNBIdLength"            BIGINT,
-    "gNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"gNBId"			BIGINT,
+	"gNBIdLength"			BIGINT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -341,33 +302,20 @@
 
 ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBCUUPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_GNBCUUPFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_GNBCUUPFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."GNBDUFunction" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "gNBIdLength"            BIGINT,
-    "dUpLMNId"            jsonb,
-    "fdn"            TEXT,
-    "gNBDUId"            BIGINT,
-    "gNBId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_managed-by-managedElement"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"            jsonb,
-    "REL_FK_serving-physicalNF"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION"            jsonb
+	"id"			VARCHAR(511),
+	"gNBDUId"			BIGINT,
+	"gNBId"			BIGINT,
+	"gNBIdLength"			BIGINT,
+	"dUpLMNId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_managed-by-managedElement"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -382,35 +330,27 @@
 
 ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_SERVES_GNBDUFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_SERVES_GNBDUFUNCTION" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_SERVES_GNBDUFUNCTION" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."LTESectorCarrier" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "fdn"            TEXT,
-    "sectorCarrierType"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_provided-by-enodebFunction"            VARCHAR(511),
-    "REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"            jsonb,
-    "REL_FK_used-antennaCapability"            VARCHAR(511),
-    "REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            VARCHAR(511),
-    "REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_FK_used-by-euTranCell"            VARCHAR(511),
-    "REL_ID_EUTRANCELL_USES_LTESECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER"            jsonb,
-    "REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER"            jsonb
+	"id"			VARCHAR(511),
+	"sectorCarrierType"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-enodebFunction"			VARCHAR(511),
+	"REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			jsonb,
+	"REL_FK_used-by-euTranCell"			VARCHAR(511),
+	"REL_ID_EUTRANCELL_USES_LTESECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER"			jsonb,
+	"REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER"			jsonb,
+	"REL_FK_used-antennaCapability"			VARCHAR(511),
+	"REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			VARCHAR(511),
+	"REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -425,30 +365,28 @@
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
+
 CREATE TABLE IF NOT EXISTS ties_data."ManagedElement" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "fdn"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_deployed-as-cloudifiedNF"            VARCHAR(511),
-    "REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            VARCHAR(511),
-    "REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            jsonb,
-    "REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            jsonb,
-    "REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"            jsonb
+	"id"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_deployed-as-cloudifiedNF"			VARCHAR(511),
+	"REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			VARCHAR(511),
+	"REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			jsonb,
+	"REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			jsonb,
+	"REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -464,12 +402,12 @@
 ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_CloudNamespace"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_CloudNamespace"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -479,12 +417,12 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_GNBCUCPFunction"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_GNBCUCPFunction"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -494,12 +432,12 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_GNBCUUPFunction"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_GNBCUUPFunction"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -509,12 +447,12 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" (
-    "id"            VARCHAR(511),
-    "aSide_NFDeployment"            VARCHAR(511),
-    "bSide_GNBDUFunction"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NFDeployment"			VARCHAR(511),
+	"bSide_GNBDUFunction"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -524,21 +462,21 @@
 ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NFDeployment" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_serviced-managedElement"            VARCHAR(511),
-    "REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            VARCHAR(511),
-    "REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            jsonb,
-    "REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            jsonb,
-    "REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"            jsonb,
-    "REL_FK_comprised-by-cloudifiedNF"            VARCHAR(511),
-    "REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            VARCHAR(511),
-    "REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            jsonb,
-    "REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            jsonb,
-    "REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_serviced-managedElement"			VARCHAR(511),
+	"REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			VARCHAR(511),
+	"REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_FK_comprised-by-cloudifiedNF"			VARCHAR(511),
+	"REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			VARCHAR(511),
+	"REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -560,12 +498,12 @@
 ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" (
-    "id"            VARCHAR(511),
-    "aSide_NodeCluster"            VARCHAR(511),
-    "bSide_CloudSite"            VARCHAR(511),
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"aSide_NodeCluster"			VARCHAR(511),
+	"bSide_CloudSite"			VARCHAR(511),
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -575,21 +513,19 @@
 ALTER TABLE ONLY ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NRCellCU" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "fdn"            TEXT,
-    "nCI"            BIGINT,
-    "nRTAC"            BIGINT,
-    "plmnId"            jsonb,
-    "cellLocalId"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_provided-by-gnbcucpFunction"            VARCHAR(511),
-    "REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            VARCHAR(511),
-    "REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            jsonb,
-    "REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            jsonb,
-    "REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"            jsonb
+	"id"			VARCHAR(511),
+	"cellLocalId"			BIGINT,
+	"nCI"			BIGINT,
+	"nRTAC"			BIGINT,
+	"plmnId"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-gnbcucpFunction"			VARCHAR(511),
+	"REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			VARCHAR(511),
+	"REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			jsonb,
+	"REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			jsonb,
+	"REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -605,26 +541,24 @@
 ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NRCellDU" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "nCI"            BIGINT,
-    "nRPCI"            BIGINT,
-    "fdn"            TEXT,
-    "cellLocalId"            BIGINT,
-    "nRTAC"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_grouped-by-sector"            VARCHAR(511),
-    "REL_ID_SECTOR_GROUPS_NRCELLDU"            VARCHAR(511),
-    "REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU"            jsonb,
-    "REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU"            jsonb,
-    "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU"            jsonb,
-    "REL_FK_provided-by-gnbduFunction"            VARCHAR(511),
-    "REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU"            VARCHAR(511),
-    "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU"            jsonb,
-    "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU"            jsonb,
-    "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU"            jsonb
+	"id"			VARCHAR(511),
+	"cellLocalId"			BIGINT,
+	"nCI"			BIGINT,
+	"nRPCI"			BIGINT,
+	"nRTAC"			BIGINT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-gnbduFunction"			VARCHAR(511),
+	"REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU"			VARCHAR(511),
+	"REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU"			jsonb,
+	"REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU"			jsonb,
+	"REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU"			jsonb,
+	"REL_FK_grouped-by-sector"			VARCHAR(511),
+	"REL_ID_SECTOR_GROUPS_NRCELLDU"			VARCHAR(511),
+	"REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU"			jsonb,
+	"REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU"			jsonb,
+	"REL_CD_decorators_SECTOR_GROUPS_NRCELLDU"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -633,45 +567,43 @@
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '{}';
+
 CREATE TABLE IF NOT EXISTS ties_data."NRSectorCarrier" (
-    "id"            VARCHAR(511),
-    "bSChannelBwDL"            BIGINT,
-    "cmId"            jsonb,
-    "arfcnDL"            BIGINT,
-    "frequencyUL"            BIGINT,
-    "fdn"            TEXT,
-    "arfcnUL"            BIGINT,
-    "frequencyDL"            BIGINT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_used-by-nrCellDu"            VARCHAR(511),
-    "REL_ID_NRCELLDU_USES_NRSECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER"            jsonb,
-    "REL_FK_provided-by-gnbduFunction"            VARCHAR(511),
-    "REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            VARCHAR(511),
-    "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            jsonb,
-    "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"            jsonb,
-    "REL_FK_used-antennaCapability"            VARCHAR(511),
-    "REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            VARCHAR(511),
-    "REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb,
-    "REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY"            jsonb
+	"id"			VARCHAR(511),
+	"arfcnDL"			BIGINT,
+	"arfcnUL"			BIGINT,
+	"frequencyDL"			BIGINT,
+	"frequencyUL"			BIGINT,
+	"bSChannelBwDL"			BIGINT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_provided-by-gnbduFunction"			VARCHAR(511),
+	"REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			jsonb,
+	"REL_FK_used-by-nrCellDu"			VARCHAR(511),
+	"REL_ID_NRCELLDU_USES_NRSECTORCARRIER"			VARCHAR(511),
+	"REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER"			jsonb,
+	"REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER"			jsonb,
+	"REL_FK_used-antennaCapability"			VARCHAR(511),
+	"REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			VARCHAR(511),
+	"REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb,
+	"REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -680,18 +612,18 @@
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '{}';
-
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '{}';
 
+ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER" SET DEFAULT '{}';
+
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
 
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
@@ -699,11 +631,11 @@
 ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."NodeCluster" (
-    "id"            VARCHAR(511),
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -712,42 +644,14 @@
 
 ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."PhysicalNF" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "geo-location"            geography,
-    "name"            TEXT,
-    "type"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb,
-    "REL_FK_installed-at-site"            VARCHAR(511),
-    "REL_ID_PHYSICALNF_INSTALLED_AT_SITE"            VARCHAR(511),
-    "REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE"            jsonb,
-    "REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE"            jsonb
-);
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "REL_CD_sourceIds_PHYSICALNF_INSTALLED_AT_SITE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "REL_CD_classifiers_PHYSICALNF_INSTALLED_AT_SITE" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."PhysicalNF" ALTER COLUMN "REL_CD_decorators_PHYSICALNF_INSTALLED_AT_SITE" SET DEFAULT '{}';
-
 CREATE TABLE IF NOT EXISTS ties_data."Sector" (
-    "id"            VARCHAR(511),
-    "geo-location"            geography,
-    "sectorId"            BIGINT,
-    "azimuth"            DECIMAL,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"sectorId"			BIGINT,
+	"azimuth"			DECIMAL,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -757,13 +661,12 @@
 ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 CREATE TABLE IF NOT EXISTS ties_data."Site" (
-    "id"            VARCHAR(511),
-    "cmId"            jsonb,
-    "geo-location"            geography,
-    "name"            TEXT,
-    "CD_sourceIds"            jsonb,
-    "CD_classifiers"            jsonb,
-    "CD_decorators"            jsonb
+	"id"			VARCHAR(511),
+	"name"			TEXT,
+	"geo-location"			jsonb,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
 );
 
 ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
@@ -773,548 +676,478 @@
 ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
+	'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
  'PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id',
  'ALTER TABLE ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ADD CONSTRAINT "PK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaCapability',
+	'AntennaCapability',
  'PK_AntennaCapability_id',
  'ALTER TABLE ties_data."AntennaCapability" ADD CONSTRAINT "PK_AntennaCapability_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
+	'AntennaModule',
  'PK_AntennaModule_id',
  'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "PK_AntennaModule_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudNamespace',
+	'CloudNamespace',
  'PK_CloudNamespace_id',
  'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "PK_CloudNamespace_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudSite',
+	'CloudSite',
  'PK_CloudSite_id',
  'ALTER TABLE ties_data."CloudSite" ADD CONSTRAINT "PK_CloudSite_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudifiedNF',
+	'CloudifiedNF',
  'PK_CloudifiedNF_id',
  'ALTER TABLE ties_data."CloudifiedNF" ADD CONSTRAINT "PK_CloudifiedNF_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
+	'ENodeBFunction',
  'PK_ENodeBFunction_id',
  'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "PK_ENodeBFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'PK_EUtranCell_id',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "PK_EUtranCell_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
+	'GNBCUCPFunction',
  'PK_GNBCUCPFunction_id',
  'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "PK_GNBCUCPFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
+	'GNBCUUPFunction',
  'PK_GNBCUUPFunction_id',
  'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "PK_GNBCUUPFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
+	'GNBDUFunction',
  'PK_GNBDUFunction_id',
  'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "PK_GNBDUFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'PK_LTESectorCarrier_id',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "PK_LTESectorCarrier_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ManagedElement',
+	'ManagedElement',
  'PK_ManagedElement_id',
  'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "PK_ManagedElement_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+	'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
  'PK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "PK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
  'PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ADD CONSTRAINT "PK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
  'PK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ADD CONSTRAINT "PK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
  'PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "PK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'PK_NFDeployment_id',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "PK_NFDeployment_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NODECLUSTER_LOCATED_AT_CLOUDSITE',
+	'NODECLUSTER_LOCATED_AT_CLOUDSITE',
  'PK_NODECLUSTER_LOCATED_AT_CLOUDSITE_id',
  'ALTER TABLE ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "PK_NODECLUSTER_LOCATED_AT_CLOUDSITE_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellCU',
+	'NRCellCU',
  'PK_NRCellCU_id',
  'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "PK_NRCellCU_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
+	'NRCellDU',
  'PK_NRCellDU_id',
  'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "PK_NRCellDU_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'PK_NRSectorCarrier_id',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "PK_NRSectorCarrier_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NodeCluster',
+	'NodeCluster',
  'PK_NodeCluster_id',
  'ALTER TABLE ties_data."NodeCluster" ADD CONSTRAINT "PK_NodeCluster_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'PhysicalNF',
- 'PK_PhysicalNF_id',
- 'ALTER TABLE ties_data."PhysicalNF" ADD CONSTRAINT "PK_PhysicalNF_id" PRIMARY KEY ("id");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'Sector',
+	'Sector',
  'PK_Sector_id',
  'ALTER TABLE ties_data."Sector" ADD CONSTRAINT "PK_Sector_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'Site',
+	'Site',
  'PK_Site_id',
  'ALTER TABLE ties_data."Site" ADD CONSTRAINT "PK_Site_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
+	'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
  'FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule',
  'ALTER TABLE ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ADD CONSTRAINT "FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule" FOREIGN KEY ("aSide_AntennaModule") REFERENCES ties_data."AntennaModule" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
+	'ANTENNAMODULE_SERVES_ANTENNACAPABILITY',
  'FK_AB3CEA707D389B107F1D10BC724542418E02ABEC',
  'ALTER TABLE ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ADD CONSTRAINT "FK_AB3CEA707D389B107F1D10BC724542418E02ABEC" FOREIGN KEY ("bSide_AntennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
- 'FK_AntennaModule_REL_FK_grouped-by-sector',
- 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "FK_AntennaModule_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
- 'UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE',
- 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE" UNIQUE ("REL_ID_SECTOR_GROUPS_ANTENNAMODULE");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
+	'AntennaModule',
  'FK_AntennaModule_REL_FK_installed-at-site',
  'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "FK_AntennaModule_REL_FK_installed-at-site" FOREIGN KEY ("REL_FK_installed-at-site") REFERENCES ties_data."Site" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'AntennaModule',
+	'AntennaModule',
  'UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE',
  'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "UNIQUE_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE" UNIQUE ("REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudNamespace',
+	'AntennaModule',
+ 'FK_AntennaModule_REL_FK_grouped-by-sector',
+ 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "FK_AntennaModule_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'AntennaModule',
+ 'UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE',
+ 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "UNIQUE_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE" UNIQUE ("REL_ID_SECTOR_GROUPS_ANTENNAMODULE");'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'CloudNamespace',
  'FK_CloudNamespace_REL_FK_deployed-on-nodeCluster',
  'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "FK_CloudNamespace_REL_FK_deployed-on-nodeCluster" FOREIGN KEY ("REL_FK_deployed-on-nodeCluster") REFERENCES ties_data."NodeCluster" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'CloudNamespace',
+	'CloudNamespace',
  'UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0',
  'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0" UNIQUE ("REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
+	'ENodeBFunction',
  'FK_ENodeBFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "FK_ENodeBFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
+	'ENodeBFunction',
  'UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE',
  'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
- 'FK_ENodeBFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "FK_ENodeBFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'ENodeBFunction',
- 'UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION',
- 'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "UNIQUE_ENodeBFunction_REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_ENODEBFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'FK_EUtranCell_REL_FK_provided-by-enodebFunction',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "FK_EUtranCell_REL_FK_provided-by-enodebFunction" FOREIGN KEY ("REL_FK_provided-by-enodebFunction") REFERENCES ties_data."ENodeBFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'UNIQUE_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "UNIQUE_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'FK_EUtranCell_REL_FK_grouped-by-sector',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "FK_EUtranCell_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'EUtranCell',
+	'EUtranCell',
  'UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL',
  'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "UNIQUE_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL" UNIQUE ("REL_ID_SECTOR_GROUPS_EUTRANCELL");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
+	'GNBCUCPFunction',
  'FK_GNBCUCPFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "FK_GNBCUCPFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
+	'GNBCUCPFunction',
  'UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD',
  'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
- 'FK_GNBCUCPFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "FK_GNBCUCPFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUCPFunction',
- 'UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION',
- 'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "UNIQUE_GNBCUCPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_GNBCUCPFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
+	'GNBCUUPFunction',
  'FK_GNBCUUPFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "FK_GNBCUUPFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
+	'GNBCUUPFunction',
  'UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E',
  'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
- 'FK_GNBCUUPFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "FK_GNBCUUPFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBCUUPFunction',
- 'UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION',
- 'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "UNIQUE_GNBCUUPFunction_REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_GNBCUUPFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
+	'GNBDUFunction',
  'FK_GNBDUFunction_REL_FK_managed-by-managedElement',
  'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "FK_GNBDUFunction_REL_FK_managed-by-managedElement" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
+	'GNBDUFunction',
  'UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D',
  'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
- 'FK_GNBDUFunction_REL_FK_serving-physicalNF',
- 'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "FK_GNBDUFunction_REL_FK_serving-physicalNF" FOREIGN KEY ("REL_FK_serving-physicalNF") REFERENCES ties_data."PhysicalNF" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'GNBDUFunction',
- 'UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION',
- 'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "UNIQUE_GNBDUFunction_REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION" UNIQUE ("REL_ID_PHYSICALNF_SERVES_GNBDUFUNCTION");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_provided-by-enodebFunction" FOREIGN KEY ("REL_FK_provided-by-enodebFunction") REFERENCES ties_data."ENodeBFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
- 'FK_LTESectorCarrier_REL_FK_used-antennaCapability',
- 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_used-antennaCapability" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
- 'UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88',
- 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88" UNIQUE ("REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'FK_LTESectorCarrier_REL_FK_used-by-euTranCell',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_used-by-euTranCell" FOREIGN KEY ("REL_FK_used-by-euTranCell") REFERENCES ties_data."EUtranCell" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'LTESectorCarrier',
+	'LTESectorCarrier',
  'UNIQUE_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER',
  'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER" UNIQUE ("REL_ID_EUTRANCELL_USES_LTESECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ManagedElement',
+	'LTESectorCarrier',
+ 'FK_LTESectorCarrier_REL_FK_used-antennaCapability',
+ 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "FK_LTESectorCarrier_REL_FK_used-antennaCapability" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'LTESectorCarrier',
+ 'UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88',
+ 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88" UNIQUE ("REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY");'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'ManagedElement',
  'FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF',
  'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "FK_ManagedElement_REL_FK_deployed-as-cloudifiedNF" FOREIGN KEY ("REL_FK_deployed-as-cloudifiedNF") REFERENCES ties_data."CloudifiedNF" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'ManagedElement',
+	'ManagedElement',
  'UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C',
  'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C" UNIQUE ("REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+	'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
  'FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+	'NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
  'FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace',
  'ALTER TABLE ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace" FOREIGN KEY ("bSide_CloudNamespace") REFERENCES ties_data."CloudNamespace" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction" FOREIGN KEY ("bSide_GNBCUCPFunction") REFERENCES ties_data."GNBCUCPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction" FOREIGN KEY ("bSide_GNBCUUPFunction") REFERENCES ties_data."GNBCUUPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+	'NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
  'FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction',
  'ALTER TABLE ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction" FOREIGN KEY ("bSide_GNBDUFunction") REFERENCES ties_data."GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'FK_NFDeployment_REL_FK_serviced-managedElement',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "FK_NFDeployment_REL_FK_serviced-managedElement" FOREIGN KEY ("REL_FK_serviced-managedElement") REFERENCES ties_data."ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'UNIQUE_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "UNIQUE_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" UNIQUE ("REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'FK_NFDeployment_REL_FK_comprised-by-cloudifiedNF',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "FK_NFDeployment_REL_FK_comprised-by-cloudifiedNF" FOREIGN KEY ("REL_FK_comprised-by-cloudifiedNF") REFERENCES ties_data."CloudifiedNF" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NFDeployment',
+	'NFDeployment',
  'UNIQUE_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT',
  'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "UNIQUE_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" UNIQUE ("REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NODECLUSTER_LOCATED_AT_CLOUDSITE',
+	'NODECLUSTER_LOCATED_AT_CLOUDSITE',
  'FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster',
  'ALTER TABLE ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster" FOREIGN KEY ("aSide_NodeCluster") REFERENCES ties_data."NodeCluster" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NODECLUSTER_LOCATED_AT_CLOUDSITE',
+	'NODECLUSTER_LOCATED_AT_CLOUDSITE',
  'FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite',
  'ALTER TABLE ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "FK_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite" FOREIGN KEY ("bSide_CloudSite") REFERENCES ties_data."CloudSite" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellCU',
+	'NRCellCU',
  'FK_NRCellCU_REL_FK_provided-by-gnbcucpFunction',
  'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "FK_NRCellCU_REL_FK_provided-by-gnbcucpFunction" FOREIGN KEY ("REL_FK_provided-by-gnbcucpFunction") REFERENCES ties_data."GNBCUCPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellCU',
+	'NRCellCU',
  'UNIQUE_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU',
  'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "UNIQUE_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" UNIQUE ("REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
- 'FK_NRCellDU_REL_FK_grouped-by-sector',
- 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "FK_NRCellDU_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
- 'UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU',
- 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU" UNIQUE ("REL_ID_SECTOR_GROUPS_NRCELLDU");'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
+	'NRCellDU',
  'FK_NRCellDU_REL_FK_provided-by-gnbduFunction',
  'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "FK_NRCellDU_REL_FK_provided-by-gnbduFunction" FOREIGN KEY ("REL_FK_provided-by-gnbduFunction") REFERENCES ties_data."GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRCellDU',
+	'NRCellDU',
  'UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU',
  'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "UNIQUE_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
- 'FK_NRSectorCarrier_REL_FK_used-by-nrCellDu',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_used-by-nrCellDu" FOREIGN KEY ("REL_FK_used-by-nrCellDu") REFERENCES ties_data."NRCellDU" (id) ON DELETE CASCADE;'
+	'NRCellDU',
+ 'FK_NRCellDU_REL_FK_grouped-by-sector',
+ 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "FK_NRCellDU_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
- 'UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER" UNIQUE ("REL_ID_NRCELLDU_USES_NRSECTORCARRIER");'
+	'NRCellDU',
+ 'UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU',
+ 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU" UNIQUE ("REL_ID_SECTOR_GROUPS_NRCELLDU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction" FOREIGN KEY ("REL_FK_provided-by-gnbduFunction") REFERENCES ties_data."GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
+ 'FK_NRSectorCarrier_REL_FK_used-by-nrCellDu',
+ 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_used-by-nrCellDu" FOREIGN KEY ("REL_FK_used-by-nrCellDu") REFERENCES ties_data."NRCellDU" (id) ON DELETE CASCADE;'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'NRSectorCarrier',
+ 'UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER',
+ 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER" UNIQUE ("REL_ID_NRCELLDU_USES_NRSECTORCARRIER");'
+);
+
+SELECT ties_data.create_constraint_if_not_exists(
+	'NRSectorCarrier',
  'FK_NRSectorCarrier_REL_FK_used-antennaCapability',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "FK_NRSectorCarrier_REL_FK_used-antennaCapability" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."AntennaCapability" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-    'NRSectorCarrier',
+	'NRSectorCarrier',
  'UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991',
  'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991" UNIQUE ("REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY");'
 );
 
-SELECT ties_data.create_constraint_if_not_exists(
-    'PhysicalNF',
- 'FK_PhysicalNF_REL_FK_installed-at-site',
- 'ALTER TABLE ties_data."PhysicalNF" ADD CONSTRAINT "FK_PhysicalNF_REL_FK_installed-at-site" FOREIGN KEY ("REL_FK_installed-at-site") REFERENCES ties_data."Site" (id) ON DELETE CASCADE;'
-);
-
-SELECT ties_data.create_constraint_if_not_exists(
-    'PhysicalNF',
- 'UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE',
- 'ALTER TABLE ties_data."PhysicalNF" ADD CONSTRAINT "UNIQUE_PhysicalNF_REL_ID_PHYSICALNF_INSTALLED_AT_SITE" UNIQUE ("REL_ID_PHYSICALNF_INSTALLED_AT_SITE");'
-);
-
-
-
-
-
 
 COMMIT;
diff --git a/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java b/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java
index b2efcf8..87caa91 100644
--- a/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java
+++ b/pgsql-schema-generator/src/main/java/org/oran/smo/teiv/pgsqlgenerator/YangModelProcessor.java
@@ -92,6 +92,7 @@
             {
                 put("string", TEXT);
                 put("uint32", BIGINT);
+                put("int32", BIGINT);
                 put("or-teiv-types:_3GPP_FDN_Type", TEXT);
                 put("enumeration", TEXT);
                 put("types3gpp:PLMNId", JSONB);
@@ -100,6 +101,7 @@
                 put("[uses types3gpp:PLMNId]", JSONB);
                 put("geo:geo-location", "geography");
                 put("uint64", BIGINT);
+                put("int64", BIGINT);
                 put("decimal64", DECIMAL);
                 put("[uses or-teiv-types:CM_ID]", JSONB);
             }
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang
index 1b66c59..276e2a5 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-extensions.yang
@@ -29,115 +29,126 @@
 
   SPDX-License-Identifier: Apache-2.0";
 
-  revision "2024-05-02" {
-    description "Initial revision.";
-    or-teiv-yext:label 0.3.0;
-  }
+    revision "2024-05-24" {
+        description "Initial revision.";
+        or-teiv-yext:label 0.3.0;
+    }
 
-  extension biDirectionalTopologyRelationship {
+    extension biDirectionalTopologyRelationship {
+        description
+            "Defines a bi-directional relationship in the topology.
 
-    description
-      "Defines a bi-directional relationship in the topology.
+            A bi-directional-association (BDA) is a relationship comprising of
+            an A-side and a B-side. The A-side is considered the originating
+            side of the relationship; the B-side is considered the terminating
+            side of the relationship. The order of A-side and B-side is of
+            importance and MUST NOT be changed once defined.
 
-       A bi-directional-association (BDA) is a relationship comprising of an
-       A-side and a B-side. The A-side is considered the originating side of
-       the relationship; the B-side is considered the terminating side of the
-       relationship. The order of A-side and B-side is of importance and MUST
-       NOT be changed once defined.
+            Both A-side and B-side are defined on a type, and are given a role.
+            A type may have multiple originating and/or terminating sides of a
+            relationship, all distinguished by role name.
 
-       Both A-side and B-side are defined on a type, and are given a role. A
-       type may have multiple originating and/or terminating sides of a
-       relationship, all distinguished by role name.
+            The statement MUST only be a substatement of the 'module' statement.
+            Multiple 'bi-directional-topology-relationship' statements are
+            allowed per parent statement.
 
-       The statement MUST only be a substatement of the 'module' statement.
-       Multiple 'bi-directional-topology-relationship' statements are allowed
-       per parent statement.
+            Substatements to the 'bi-directional-topology-relationship' define
+            the A-side and the B-side, respectively, and optionally properties
+            of the relationship. Data nodes of types 'leaf' and 'leaf-list' are
+            used for this purpose. One of the data nodes MUST be annotated with
+            the 'a-side' extension; another data node MUST be annotated with the
+            'b-side' extension. Other data nodes define properties of the
+            relationship.
 
-       Substatements to the 'bi-directional-topology-relationship' define the
-       A-side and the B-side, respectively, and optionally properties of the
-       relationship. Data nodes of types 'leaf' and 'leaf-list' are used for
-       this purpose. One of the data nodes MUST be annotated with the 'a-side'
-       extension; another data node MUST be annotated with the 'b-side'
-       extension. Other data nodes define properties of the relationship.
+            The argument is the name of the relationship. The relationship name
+            is scoped to the namespace of the declaring module and MUST be
+            unique within the scope.";
 
-       The argument is the name of the relationship. The relationship name is
-       scoped to the namespace of the declaring module and MUST be unique
-       within the scope.";
+        argument relationshipName;
+    }
 
-    argument relationshipName;
-  }
+    extension aSide {
+        description
+            "Defines the A-side of a relationship.
 
-  extension aSide {
-    description
-      "Defines the A-side of a relationship.
+            The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
+            statement, which itself must be a substatement of the
+            'uni-directional-topology-relationship' statement.
 
-       The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
-       statement, which itself must be a substatement of the
-       'uni-directional-topology-relationship' statement.
+            The data type of the parent 'leaf' or 'leaf-list' MUST be
+            'instance-identifier'. Constraints MAY be used as part of the parent
+            'leaf' or 'leaf-list' to enforce cardinality.
 
-       The data type of the parent 'leaf' or 'leaf-list' MUST be
-       'instance-identifier'. Constraints MAY be used as part of the parent
-       'leaf' or 'leaf-list' to enforce cardinality.
+            The identifier of the parent 'leaf' or 'leaf-list' is used as name
+            of the role of the A-side of the relationship. The name of the role
+            is scoped to the type on which the A-side is defined and MUST be
+            unique within the scope.
 
-       The identifier of the parent 'leaf' or 'leaf-list' is used as name of
-       the role of the A-side of the relationship. The name of the role is
-       scoped to the type on which the A-side is defined and MUST be unique
-       within the scope.
+            While the parent 'leaf' or 'leaf-list' does not result in a property
+            of the relationship, it is RECOMMENDED to avoid using the name of an
+            existing type property as role name to avoid potential ambiguities
+            between properties of a type, and roles of a relationship on the
+            type.
 
-       While the parent 'leaf' or 'leaf-list' does not result in a property of
-       the relationship, it is RECOMMENDED to avoid using the name of an
-       existing type property as role name to avoid potential ambiguities
-       between properties of a type, and roles of a relationship on the type.
+            The argument is the name of the type on which the A-side resides.
+            If the type is declared in another module, the type must be
+            prefixed, and a corresponding 'import' statement be used to declare
+            the prefix.";
 
-       The argument is the name of the type on which the A-side resides. If the
-       type is declared in another module, the type must be prefixed, and a
-       corresponding 'import' statement be used to declare the prefix.";
+        argument aSideType;
+    }
 
-    argument aSideType;
-  }
+    extension bSide {
+        description
+            "Defines the B-side of a relationship.
 
-  extension bSide {
-    description "Defines the B-side of a relationship.
+            The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
+            statement, which itself must be a substatement of the
+            'uni-directional-topology-relationship' statement.
 
-       The statement MUST only be a substatement of a 'leaf' or 'leaf-list'
-       statement, which itself must be a substatement of the
-       'uni-directional-topology-relationship' statement.
+            The data type of the parent 'leaf' or 'leaf-list' MUST be
+            'instance-identifier'. Constraints MAY be used as part of the parent
+            'leaf' or 'leaf-list' to enforce cardinality.
 
-       The data type of the parent 'leaf' or 'leaf-list' MUST be
-       'instance-identifier'. Constraints MAY be used as part of the parent
-       'leaf' or 'leaf-list' to enforce cardinality.
+            The identifier of the parent 'leaf' or 'leaf-list' is used as name
+            of the role of the B-side of the relationship. The name of the role
+            is scoped to the type on which the B-side is defined and MUST be
+            unique within the scope.
 
-       The identifier of the parent 'leaf' or 'leaf-list' is used as name of
-       the role of the B-side of the relationship. The name of the role is
-       scoped to the type on which the B-side is defined and MUST be unique
-       within the scope.
+            While the parent 'leaf' or 'leaf-list' does not result in a property
+            of the relationship, it is RECOMMENDED to avoid using the name of an
+            existing type property as role name to avoid potential ambiguities
+            between properties of a type, and roles of a relationship on the
+            type.
 
-       While the parent 'leaf' or 'leaf-list' does not result in a property of
-       the relationship, it is RECOMMENDED to avoid using the name of an
-       existing type property as role name to avoid potential ambiguities
-       between properties of a type, and roles of a relationship on the type.
+            The argument is the name of the type on which the B-side resides.
+            If the type is declared in another module, the type must be
+            prefixed, and a corresponding 'import' statement be used to declare
+            the prefix.";
 
-       The argument is the name of the type on which the B-side resides. If the
-       type is declared in another module, the type must be prefixed, and a
-       corresponding 'import' statement be used to declare the prefix.";
+        argument bSideType;
+    }
 
-    argument bSideType;
-  }
+    extension domain {
+        description "Keyword used to carry domain information.";
+        argument domainName;
+    }
 
-  extension domain {
-    description "Keyword used to carry domain information.";
-    argument domainName;
-  }
+    extension label {
+        description
+            "The label can be used to give modules and submodules a semantic
+            version, in addition to their revision.
 
-  extension label {
-    description "The label can be used to give modules and submodules a semantic version, in addition to their revision.
+            The format of the label is 'x.y.z' - expressed as pattern, it is
+            [0-9]+\\.[0-9]+\\.[0-9]+
 
-      The format of the label is 'x.y.z' - expressed as pattern, it is [0-9]+\\.[0-9]+\\.[0-9]+
+            The statement MUST only be a substatement of the revision statement.
+            Zero or one revision label statements per parent statement are
+            allowed.
 
-      The statement MUST only be a substatement of the revision statement.  Zero or one revision label statements
-      per parent statement are allowed.
+            Revision labels MUST be unique amongst all revisions of a module or
+            submodule.";
 
-      Revision labels MUST be unique amongst all revisions of a module or submodule.";
-      argument semversion;
-  }
+        argument semversion;
+    }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang
index 7aeef7e..ba20e1a 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-common-yang-types.yang
@@ -1,12 +1,11 @@
 module o-ran-smo-teiv-common-yang-types {
+    yang-version 1.1;
+    namespace "urn:o-ran:smo-teiv-common-yang-types";
+    prefix or-teiv-types;
 
-  yang-version 1.1;
-  namespace "urn:o-ran:smo-teiv-common-yang-types";
-  prefix or-teiv-types;
+    import o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
 
-  import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }
-
-  import _3gpp-common-yang-types { prefix types3gpp; }
+    import _3gpp-common-yang-types { prefix types3gpp; }
 
   organization "ORAN";
   contact "The Authors";
@@ -33,72 +32,77 @@
 
   SPDX-License-Identifier: Apache-2.0";
 
-  revision "2024-05-02" {
-    description "Initial revision.";
-    or-teiv-yext:label 0.3.0;
-  }
-
-  grouping Top_Grp_Type {
-
-    description "Grouping containing the key attribute common to all types. All types
-                MUST use this grouping.";
-
-    leaf id {
-      type string;
-      description "Unique identifier of topology entities. Represents the Entity Instance Identifier.";
-    }
-  }
-
-  grouping CM_ID {
-
-    description "Grouping containing the key attributes to make
-                use of Configuration Management (CM).";
-
-    leaf cmHandle {
-      type string;
-      description "Unique identifier for network entities in CM.";
+    revision "2024-05-24" {
+        description "Initial revision.";
+        or-teiv-yext:label 0.3.0;
     }
 
-    leaf resourceIdentifier {
-      type string;
-      description "The xpath expression identifying the resource in the Node model yang tree.";
+    grouping Top_Grp_Type {
+        description "Grouping containing the key attribute common to all types.
+            All types MUST use this grouping.";
+
+        leaf id {
+            type string;
+            description "Unique identifier of topology entities. Represents the
+                Entity Instance Identifier.";
+        }
     }
-  }
-
-  typedef _3GPP_FDN_Type {
-    type types3gpp:DistinguishedName;
-  }
-
-  container consumer-data {
-    description "This container defines the consumer-data. Consumer-data may be attached to Topology Entity or
-                Topology Relation instance, outside of the declared Topology Entity or Topology Relationship's attributes.
-                This container cannot be instantiated, and it MUST NOT be augmented or deviated in any way, unless stated
-                otherwise.";
 
     container decorators {
-      description "This container serves as extension point for applications wishing to define their own decorators.
-                  This is done via augmentations. They can only be defined in name value pair.";
+        description
+            "This container serves as extension point for applications wishing
+            to define their own decorators. This is done via augmentations. They
+            can only be defined in name value pair.
+
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
     }
 
     leaf-list classifiers {
-      description "Consumer defined tags to topology entities and relationships.";
-      type identityref { base classifier; }
+        description
+            "Consumer defined tags to topology entities and relationships.
+
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
+
+        type identityref { base classifier; }
     }
 
     leaf-list sourceIds {
-      description "An ordered list of identities that represent the set of native source identifiers for participating
-                  entities.";
-      type string;
-      ordered-by user;
+        description
+            "An ordered list of identities that represent the set of native
+            source identifiers for participating entities.
+
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
+
+        type string;
+        ordered-by user;
     }
 
     container metadata {
-      description "This container serves as extension point to define metadata. They can only be defined in name value
-                  pair.";
-    }
-  }
+        description
+            "This container serves as extension point to define metadata. They
+            can only be defined in name value pair.
 
-  identity classifier{
-    description  "The classifier is used as a base to provide all classifiers with identity. ";
-  }
+            This is a consumer data and can be attached to Topology Entity or
+            Topology Relation instance, outside of the declared Topology Entity
+            or Topology Relationship's attributes. This cannot be instantiated,
+            and it MUST NOT be augmented or deviated in any way, unless stated
+            otherwise.";
+    }
+
+    identity classifier{
+        description "The classifier is used as a base to provide all classifiers
+            with identity. ";
+    }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang
deleted file mode 100644
index a676f50..0000000
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment-to-ran.yang
+++ /dev/null
@@ -1,154 +0,0 @@
-module o-ran-smo-teiv-equipment-to-ran {
-    yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-equipment-to-ran";
-    prefix or-teiv-equiptoran;
-
-    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
-
-    import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }
-
-    import o-ran-smo-teiv-equipment {prefix or-teiv-equip; }
-
-    import o-ran-smo-teiv-ran {prefix or-teiv-ran; }
-
-
-    organization "ORAN";
-    contact "The Authors";
-    description 
-    "RAN Equipment to Logical topology model.
-
-    This model contains the RAN Equipment to Logical topology
-    entities and relations.
-
-    Copyright (C) 2024 Ericsson
-    Modifications Copyright (C) 2024 OpenInfra Foundation Europe
-
-    Licensed under the Apache License, Version 2.0 (the \"License\");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an \"AS IS\" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
-    SPDX-License-Identifier: Apache-2.0";
-
-    revision "2024-05-02" {
-        description "Initial revision.";
-        or-teiv-yext:label 0.3.0;
-    }
-
-    or-teiv-yext:domain EQUIPMENT_TO_RAN;
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_GNBDUFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-gnbduFunction {
-            description "gNodeB-DU Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this gNodeB-DU Function.";
-            or-teiv-yext:bSide or-teiv-ran:GNBDUFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_GNBCUCPFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-gnbcucpFunction {
-            description "gNodeB-CUCP Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this gNodeB-CUCP Function.";
-            or-teiv-yext:bSide or-teiv-ran:GNBCUCPFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_GNBCUUPFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-gnbcuupFunction {
-            description "gNodeB-CUUP Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this gNodeB-CUUP Function.";
-            or-teiv-yext:bSide or-teiv-ran:GNBCUUPFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_SERVES_ENODEBFUNCTION { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-enodebFunction {
-            description "eNodeB Function serviced by this Physical NF.";
-            or-teiv-yext:aSide or-teiv-equip:PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf serving-physicalNF {
-            description "Physical NF serves this eNodeB Function.";
-            or-teiv-yext:bSide or-teiv-ran:ENodeBFunction;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship ANTENNAMODULE_SERVES_ANTENNACAPABILITY { // 0..n to 0..m
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list serviced-antennaCapability {
-            description "Antenna Capability serviced by this Antenna Module.";
-            or-teiv-yext:aSide or-teiv-equip:AntennaModule;
-            type instance-identifier;
-        }
-
-        leaf-list serving-antennaModule {
-            description "Antenna Module serves this Antenna Capability.";
-            or-teiv-yext:bSide or-teiv-ran:AntennaCapability;
-            type instance-identifier;
-        }
-    }
-
-    or-teiv-yext:biDirectionalTopologyRelationship SECTOR_GROUPS_ANTENNAMODULE { // 0..1 to 0..n
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf-list grouped-antennaModule {
-            description "Sector groups Antenna Module.";
-            or-teiv-yext:aSide or-teiv-ran:Sector;
-            type instance-identifier;
-        }
-
-        leaf grouped-by-sector {
-            description "Antenna Module grouped by Sector.";
-            or-teiv-yext:bSide or-teiv-equip:AntennaModule;
-            type instance-identifier;
-        }
-    }
-}
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang
index d231491..21fd623 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-equipment.yang
@@ -34,12 +34,9 @@
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an \"AS IS\" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
+    See the License for the specific language governing permissions and";
 
-    SPDX-License-Identifier: Apache-2.0";
-
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
@@ -47,83 +44,70 @@
     or-teiv-yext:domain EQUIPMENT;
 
     list AntennaModule {
-        description "An Antenna Module represents the
-                    physical aspect of an antenna.";
+        description "An Antenna Module represents the physical aspect of an
+            antenna.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the AntennaSubUnit MO. It contains
-                            the full path from the Subnetwork to the
-                            AntennaSubUnit.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf antennaModelNumber {
-                description "Vendor-specific antenna model
-                            identifier. This attribute is part of
-                            AISG v3 ADB Standard and has
-                            no operational impact.";
+                description "Vendor-specific antenna model identifier. This
+                    attribute is part of AISG v3 ADB Standard and has no
+                    operational impact.";
                 type string;
             }
 
             leaf mechanicalAntennaBearing {
-                description "Antenna bearing on antenna subunit
-                            where antenna unit is installed.";
-                type uint32;
+                description "Antenna bearing on antenna subunit where antenna
+                    unit is installed.";
+                type int32;
             }
 
             leaf mechanicalAntennaTilt {
-                description "The fixed antenna tilt of the installation,
-                            defined as the inclination of the antenna
-                            element respect to the vertical plane.
-                            It is a signed value. Positive indicates
-                            downtilt, and negative indicates uptilt.";
-                type uint32;
+                description "The fixed antenna tilt of the installation, defined
+                    as the inclination of the antenna element respect to the
+                    vertical plane. It is a signed value. Positive indicates
+                    downtilt, and negative indicates uptilt.";
+                type int32;
             }
 
             leaf positionWithinSector {
-                description "Antenna unit position within sector.
-                            This attribute is part of AISG v3 ADB
-                            Standard and has no operational impact.";
+                description "Antenna unit position within sector. This attribute
+                    is part of AISG v3 ADB Standard and has no operational
+                    impact.";
                 type string;
             }
 
             leaf totalTilt {
-                description "Total antenna elevation including the
-                            installed tilt and the tilt applied by
-                            the Remote Electrical Tilt (RET).";
-                type uint32;
+                description "Total antenna elevation including the installed
+                    tilt and the tilt applied by the Remote Electrical
+                    Tilt (RET).";
+                type int32;
             }
 
             leaf electricalAntennaTilt {
                 description "Electrically-controlled tilt of main beam maximum
-                            with respect to direction orthogonal to antenna
-                            element axis (see 3GPP TS 25.466). Value is signed;
-                            tilt down is positive, tilt up is negative.";
-                type uint32;
+                    with respect to direction orthogonal to antenna element
+                    axis (see 3GPP TS 25.466). Value is signed; tilt down is
+                    positive, tilt up is negative.";
+                type int32;
             }
 
             leaf-list antennaBeamWidth {
-                description "The angular span of the main lobe of the antenna radiation
-                              pattern in the horizontal plane. Measured in degrees.";
+                description "The angular span of the main lobe of the antenna
+                    radiation pattern in the horizontal plane. Measured in
+                    degrees.";
                 type uint32;
             }
 
             uses geo:geo-location;
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list Site {
-        description "A site is a physical location where an Antenna or
-                    Physical NF can be installed.";
+        description "A site is a physical location where an equipment can be
+            installed.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
@@ -136,35 +120,6 @@
 
             uses geo:geo-location;
 
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
-        }
-    }
-
-    list PhysicalNF {
-        description "Represents a Physical NF,
-                    which is used to realise Network Functions.";
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        container attributes {
-            leaf name {
-                description "Name of Physical NF.";
-                type string;
-            }
-
-            leaf type {
-                description "Type of Physical NF.";
-                type string;
-            }
-
-            uses geo:geo-location;
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
@@ -185,23 +140,4 @@
             type instance-identifier;
         }
     }
-
-    or-teiv-yext:biDirectionalTopologyRelationship PHYSICALNF_INSTALLED_AT_SITE { // 1..n to 0..1
-
-        uses or-teiv-types:Top_Grp_Type;
-        key id;
-
-        leaf installed-at-site {
-            description "Physical NF installed at Site.";
-            or-teiv-yext:aSide PhysicalNF;
-            type instance-identifier;
-        }
-
-        leaf-list installed-physicalNF {
-            description "Site where Physical NF is installed.";
-            or-teiv-yext:bSide Site;
-            type instance-identifier;
-            min-elements 1;
-        }
-    }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang
index b439513..25a0902 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-oam.yang
@@ -3,9 +3,9 @@
     namespace "urn:o-ran:smo-teiv-oam";
     prefix or-teiv-oam;
 
-    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
+    import o-ran-smo-teiv-common-yang-types { prefix or-teiv-types; }
 
-    import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }
+    import o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
 
     organization "ORAN";
     contact "The Authors";
@@ -33,7 +33,7 @@
 
     SPDX-License-Identifier: Apache-2.0";
 
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
@@ -41,26 +41,13 @@
     or-teiv-yext:domain OAM;
 
     list ManagedElement {
-        description "A Managed Element (ME) is a node into a telecommunication network
-                    providing support and/or service to subscribers. An ME communicates
-                    with a manager application (directly or indirectly) over one or more
-                    interfaces for the purpose of being monitored and/or controlled.";
+        description "A Managed Element (ME) is a node into a telecommunication
+            network providing support and/or service to subscribers. An ME
+            communicates with a manager application (directly or indirectly)
+            over one or more interfaces for the purpose of being monitored
+            and/or controlled.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
-
-        container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the ManagedElement MO. It contains
-                            the full path from the Subnetwork to the
-                            ManagedElement.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
-        }
     }
 }
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang
index 3b3eeba..7f5c4df 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-ran.yang
@@ -40,7 +40,7 @@
 
     SPDX-License-Identifier: Apache-2.0";
 
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
@@ -50,37 +50,26 @@
     list GNBDUFunction {
         description "gNodeB Distributed Unit (gNB-DU).
 
-                    A gNB may consist of a gNB-Centralized Unit
-                    (gNB-CU) and a gNB-DU. The CU processes non-real
-                    time protocols and services, and the DU processes
-                    PHY level protocol and real time services. The
-                    gNB-CU and the gNB-DU units are connected via
-                    F1 logical interface.
+            A gNB may consist of a gNB-Centralized Unit (gNB-CU) and a gNB-DU.
+            The CU processes non-real time protocols and services, and the DU
+            processes PHY level protocol and real time services. The gNB-CU and
+            the gNB-DU units are connected via F1 logical interface.
 
-                    The following is true for a gNB-DU:
-                    Is connected to the gNB-CU-CP through the F1-C
-                    interface.Is connected to the gNB-CU-UP through
-                    the F1-U interface. One gNB-DU is connected to only
-                    one gNB-CU-CP. One gNB-DU can be connected to
-                    multiple gNB-CU-UPs under the control of the same
-                    gNB-CU-CP.
-                    Note: A gNB may consist of a gNB-CU-CP, multiple
-                    gNB-CU-UPs and multiple gNB-DUs. gNB-DU is a concrete
-                    class that extends the NG-RAN node object. In Topology, you
-                    can create, read, update, and delete the gNB-DU object.";
+            The following is true for a gNB-DU:
+            Is connected to the gNB-CU-CP through the F1-C interface. Is
+            connected to the gNB-CU-UP through the F1-U interface. One gNB-DU is
+            connected to only one gNB-CU-CP. One gNB-DU can be connected to
+            multiple gNB-CU-UPs under the control of the same gNB-CU-CP.
+
+            Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs and
+            multiple gNB-DUs. gNB-DU is a concrete class that extends the NG-RAN
+            node object. In Topology, you can create, read, update, and delete
+            the gNB-DU object.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the GNBDUFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            GNBDUFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             container dUpLMNId {
                 description "PLMN identifier used as part of PM Events data";
                 uses types3gpp:PLMNId;
@@ -88,21 +77,17 @@
 
             leaf gNBDUId {
                 description "Unique identifier for the DU within a gNodeB";
-                type uint32;
+                type int64;
             }
 
             leaf gNBId {
                 description "Identity of gNodeB within a PLMN";
-                type uint32;
+                type int64;
             }
 
             leaf gNBIdLength {
                 description "Length of gNBId bit string representation";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
@@ -110,42 +95,30 @@
     list GNBCUCPFunction {
         description "gNodeB Centralized Unit Control Plane (gNB-CU-CP)
 
-                    This is a logical node hosting the Radio Resource
-                    Control (RRC) and the control plane part of the
-                    Packet Data Convergence Protocol (PDCP) of the
-                    gNodeB Centralized Unit (gNB-CU) for an E-UTRAN gNodeB
-                    (en-gNB) or a gNodeB (gNB). The gNB-CU-CP terminates
-                    the E1 interface connected with the gNB-CU-UP and the
-                    F1-C interface connected with the gNodeB
-                    Distributed Unit (gNB-DU).
+            This is a logical node hosting the Radio Resource Control (RRC) and
+            the control plane part of the Packet Data Convergence Protocol
+            (PDCP) of the gNodeB Centralized Unit (gNB-CU) for an E-UTRAN gNodeB
+            (en-gNB) or a gNodeB (gNB). The gNB-CU-CP terminates the E1
+            interface connected with the gNB-CU-UP and the F1-C interface
+            connected with the gNodeB Distributed Unit (gNB-DU).
 
-                    The following is true for a gNB-CU-CP:
-                    Is connected to the gNB-DU through the F1-C interface.
-                    Is connected to the gNB-CU-UP through the E1 interface.
-                    Only one gNB-CU-CP is connected to one gNB-DU.
-                    Only one gNB-CU-CP is connected to one gNB-CU-UP.
-                    One gNB-DU can be connected to multiple gNB-CU-UPs
-                    under the control of the same gNB-CU-CP.One gNB-CU-UP
-                    can be connected to multiple DUs under the control of
-                    the same gNB-CU-CP.
-                    Note: A gNB may consist of a gNB-CU-CP, multiple
-                    gNB-CU-UPs and multiple gNB-DUs. A gNB-CU-CP is a
-                    concrete class that extends the NG-RAN node object.
-                    In Topology, you can create, read, update, and delete
-                    the gNB-CU-CP object.";
+            The following is true for a gNB-CU-CP:
+            Is connected to the gNB-DU through the F1-C interface. Is connected
+            to the gNB-CU-UP through the E1 interface. Only one gNB-CU-CP is
+            connected to one gNB-DU. Only one gNB-CU-CP is connected to one
+            gNB-CU-UP. One gNB-DU can be connected to multiple gNB-CU-UPs under
+            the control of the same gNB-CU-CP.One gNB-CU-UP can be connected to
+            multiple DUs under the control of the same gNB-CU-CP.
+
+            Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs and
+            multiple gNB-DUs. A gNB-CU-CP is a concrete class that extends the
+            NG-RAN node object. In Topology, you can create, read, update, and
+            delete the gNB-CU-CP object.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the GNBCUCPFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            GNBCUCPFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf gNBCUName {
                 description "Name of gNodeB-CU";
                 type string;
@@ -153,77 +126,58 @@
 
             leaf gNBId {
                 description "Identity of gNodeB within a PLMN";
-                type uint32;
+                type int64;
             }
 
             leaf gNBIdLength {
                 description "Length of gNBId bit string representation";
-                type uint32;
+                type int32;
             }
 
             container pLMNId {
-                description "PLMN identifier to be used as part
-                            of global RAN node identity";
+                description "PLMN identifier to be used as part of global RAN
+                    node identity";
                 uses types3gpp:PLMNId;
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list GNBCUUPFunction {
         description "gNodeB Centralized Unit User Plane (gNB-CU-UP)
 
-                    A gNB-CU-UP is a logical node hosting the User
-                    Plane part of the Packet Data Convergence,
-                    Protocol (PDCP) of the gNodeB Centralized Unit
-                    (gNB-CU) for an E-UTRAN gNodeB (en-gNB), and the
-                    User Plane part of the PDCP protocol and the
-                    Service Data Adaptation Protocol (SDAP) of the
-                    gNB-CU for a gNodeB (gNB). The gNB-CU-UP terminates
-                    the E1 interface connected with the gNB-CU-CP and
-                    the F1-U interface connected with the gNodeB
-                    Distributed Unit (gNB-DU).
+            A gNB-CU-UP is a logical node hosting the User Plane part of the
+            Packet Data Convergence, Protocol (PDCP) of the gNodeB Centralized
+            Unit (gNB-CU) for an E-UTRAN gNodeB (en-gNB), and the User Plane
+            part of the PDCP protocol and the Service Data Adaptation Protocol
+            (SDAP) of the gNB-CU for a gNodeB (gNB). The gNB-CU-UP terminates
+            the E1 interface connected with the gNB-CU-CP and the F1-U interface
+            connected with the gNodeB Distributed Unit (gNB-DU).
 
-                    The following is true for a gNB-CU-UP:
-                    Is connected to the gNB-DU through the
-                    F1-U interface. Is connected to the gNB-CU-CP through
-                    the E1 interface. One gNB-CU-UP is connected to only one
-                    gNB-CU-CP. One gNB-DU can be connected to multiple
-                    gNB-CU-UPs under the control of the same gNB-CU-CP. One
-                    gNB-CU-UP can be connected to multiple DUs under the
-                    control of the same gNB-CU-CP.
-                    Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs
-                    and multiple gNB-DUs. A gNB-CU-UP is a concrete class that
-                    extends the NG-RAN node object. In Topology, you can
-                    create, read, update, and delete the gNB-CU-UP object.";
+            The following is true for a gNB-CU-UP:
+            Is connected to the gNB-DU through the F1-U interface. Is connected
+            to the gNB-CU-CP through the E1 interface. One gNB-CU-UP is
+            connected to only one gNB-CU-CP. One gNB-DU can be connected to
+            multiple gNB-CU-UPs under the control of the same gNB-CU-CP. One
+            gNB-CU-UP can be connected to multiple DUs under the control of the
+            same gNB-CU-CP.
+
+            Note: A gNB may consist of a gNB-CU-CP, multiple gNB-CU-UPs and
+            multiple gNB-DUs. A gNB-CU-UP is a concrete class that extends the
+            NG-RAN node object. In Topology, you can create, read, update, and
+            delete the gNB-CU-UP object.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the GNBCUUPFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            GNBCUUPFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf gNBId {
                 description "Identity of gNodeB within a PLMN";
-                type uint32;
+                type int64;
             }
 
             leaf gNBIdLength {
                 description "Length of gNBId bit string representation";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
@@ -231,60 +185,43 @@
     list NRCellCU {
         description "Represents an NR Cell in gNodeB-CU.
 
-                    5G NR is a new radio access technology (RAT)
-                    developed by 3GPP for the 5G (fifth generation)
-                    mobile network. It is designed to be the global
-                    standard for the air interface of 5G networks.
+            5G NR is a new radio access technology (RAT) developed by 3GPP for
+            the 5G (fifth generation) mobile network. It is designed to be the
+            global standard for the air interface of 5G networks.
 
-                    5G NR has synchronization signal that is known as
-                    Primary Synchronization signal (PSS) and Secondary
-                    Synchronization signal (SSS). These signals are
-                    specific to NR physical layer and provide the
-                    following information required by UE for downlink
-                    synchronization: PSS provides Radio Frame Boundary
-                    (Position of 1st Symbol in a Radio frame) SSS provides
-                    Subframe Boundary (Position of 1st Symbol in a Subframe)
-                    Physical Layer Cell ID (PCI) information using both
-                    PSS and SSS.";
+            5G NR has synchronization signal that is known as Primary
+            Synchronization Signal (PSS) and Secondary Synchronization
+            Signal (SSS). These signals are specific to NR physical layer and
+            provide the following information required by UE for downlink
+            synchronization: PSS provides Radio Frame Boundary (Position of 1st
+            Symbol in a Radio frame) SSS provides Subframe Boundary (Position of
+            1st Symbol in a Subframe) Physical Layer Cell ID (PCI) information
+            using both PSS and SSS.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the NRCellCU MO. It contains
-                            the full path from the Subnetwork to the
-                            NRCellCU.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf cellLocalId {
-                description "Used together with gNodeB identifier to
-                            identify NR cell in PLMN. Used together
-                            with gNBId to form NCI.";
-                type uint32;
+                description "Used together with gNodeB identifier to identify NR
+                    cell in PLMN. Used together with gNBId to form NCI.";
+                type int32;
             }
 
             container plmnId {
                 description "PLMN ID for NR CGI. If empty,
-                            GNBCUCPFunction::pLMNId is used
-                            for PLMN ID in NR CGI";
+                    GNBCUCPFunction::pLMNId is used for PLMN ID in NR CGI";
                 uses types3gpp:PLMNId;
             }
 
             leaf nCI {
                 description "NR Cell Identity";
-                type uint32;
+                type int64;
             }
 
             leaf nRTAC {
                 description "NR Tracking Area Code (TAC)";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
@@ -292,129 +229,98 @@
     list NRCellDU {
         description "Represents an NR Cell in gNodeB-DU.
 
-                    5G NR is a new radio access technology (RAT)
-                    developed by 3GPP for the 5G (fifth generation)
-                    mobile network. It is designed to be the global
-                    standard for the air interface of 5G networks.
+            5G NR is a new radio access technology (RAT) developed by 3GPP for
+            the 5G (fifth generation) mobile network. It is designed to be the
+            global standard for the air interface of 5G networks.
 
-                    5G NR has synchronization signal that is known as
-                    Primary Synchronization signal (PSS) and Secondary
-                    Synchronization signal (SSS). These signals are
-                    specific to NR physical layer and provide the
-                    following information required by UE for downlink
-                    synchronization: PSS provides Radio Frame Boundary
-                    (Position of 1st Symbol in a Radio frame) SSS provides
-                    Subframe Boundary (Position of 1st Symbol in a Subframe)
-                    Physical Layer Cell ID (PCI) information using both
-                    PSS and SSS.";
+            5G NR has synchronization signal that is known as Primary
+            Synchronization signal (PSS) and Secondary Synchronization signal
+            (SSS). These signals are specific to NR physical layer and provide
+            the following information required by UE for downlink
+            synchronization: PSS provides Radio Frame Boundary (Position of 1st
+            Symbol in a Radio frame) SSS provides Subframe Boundary (Position of
+            1st Symbol in a Subframe) Physical Layer Cell ID (PCI) information
+            using both PSS and SSS.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the NRCellDU MO. It contains
-                            the full path from the Subnetwork to the
-                            NRCellDU.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf cellLocalId {
                 description "Used together with gNodeB identifier to identify NR
-                             cell in PLMN. Used together with gNBId to form NCI.";
-                type uint32;
+                    cell in PLMN. Used together with gNBId to form NCI.";
+                type int32;
             }
 
             leaf nCI {
                 description "NR Cell Identity.";
-                type uint32;
+                type int64;
             }
 
             leaf nRPCI {
                 description "The Physical Cell Identity (PCI) of the NR cell.";
-                type uint32;
+                type int32;
             }
 
             leaf nRTAC {
                 description "NR Tracking Area Code (TAC).";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
 
     list ENodeBFunction {
-        description "An Evolved Node B (eNodeB) is the only mandatory
-                    node in the radio access network (RAN) of Long-Term
-                    Evolution (LTE). The eNodeB is a complex base
-                    station that handles radio communications
-                    in the cell and carries out radio resource
-                    management and handover decisions. Unlike 2/3G
-                    wireless RAN, there is no centralized radio network
-                    controller in LTE. It is the hardware that is connected
-                    to the mobile phone network that communicates
-                    directly with mobile handsets (User Equipment), like a base
-                    transceiver station (BTS) in GSM networks. This simplifies
-                    the architecture and allows lower response times.";
+        description "An Evolved Node B (eNodeB) is the only mandatory node in
+            the radio access network (RAN) of Long-Term Evolution (LTE). The
+            eNodeB is a complex base station that handles radio communications
+            in the cell and carries out radio resource management and handover
+            decisions. Unlike 2/3G wireless RAN, there is no centralized radio
+            network controller in LTE. It is the hardware that is connected to
+            the mobile phone network that communicates directly with mobile
+            handsets (User Equipment), like a base transceiver station (BTS) in
+            GSM networks. This simplifies the architecture and allows lower
+            response times.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the ENodeBFunction MO. It contains
-                            the full path from the Subnetwork to the
-                            ENodeBFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf eNBId {
-                description "The ENodeB ID that forms part of
-                            the Cell Global Identity, and is
-                            also used to identify the node over
-                            the S1 interface";
-                type uint32;
+                description "The ENodeB ID that forms part of the Cell Global
+                    Identity, and is also used to identify the node over the S1
+                    interface";
+                type int32;
             }
 
             container eNodeBPlmnId {
-                description "The ENodeB Public Land Mobile Network
-                            (PLMN) ID that forms part of the ENodeB
-                            Global ID used to identify the node over
-                            the S1 interface. Note: The value (MCC=001, MNC=01)
-                            indicates that the PLMN is not initiated.
-                            The value can not be used as a valid PLMN Identity.";
+                description "The ENodeB Public Land Mobile Network (PLMN) ID
+                    that forms part of the ENodeB Global ID used to identify the
+                    node over the S1 interface. Note: The value
+                    (MCC=001, MNC=01) indicates that the PLMN is not initiated.
+                    The value can not be used as a valid PLMN Identity.";
 
                 leaf mcc {
-                    description "The MCC part of a PLMN identity
-                                used in the radio network.";
+                    description "The MCC part of a PLMN identity used in the
+                        radio network.";
                     type int32 {
                         range 0..999;
                     }
                 }
                 leaf mnc {
-                    description "The MNC part of a PLMN identity
-                                used in the radio network.";
+                    description "The MNC part of a PLMN identity used in the
+                        radio network.";
                     type int32 {
                         range 0..999;
                     }
                 }
                 leaf mncLength {
-                    description "The length of the MNC part of a
-                                PLMN identity used in the radio network.";
+                    description "The length of the MNC part of a PLMN identity
+                        used in the radio network.";
                     type int32 {
                         range 2..3;
                     }
                 }
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
@@ -432,52 +338,44 @@
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of either the EUtranCellFDD MO or
-                            the EUtranCellTDD MO. It contains the full
-                            path from the Subnetwork to the EUtranCellFDD or
-                            EUtranCellTDD.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf cellId{
-                description "RBS internal ID attribute for EUtranCell.
-                            Must be unique in the RBS. Together with the
-                            Node ID and Public Land Mobile Network (PLMN)
-                            this is a universally unique cell ID";
-                type uint32;
+                description "RBS internal ID attribute for EUtranCell. Must be
+                    unique in the RBS. Together with the Node ID and Public
+                    Land Mobile Network (PLMN) this is a universally unique
+                    cell ID";
+                type int32;
             }
 
             leaf earfcndl {
-                description "The channel number for the central downlink frequency.";
-                type uint32;
+                description "The channel number for the central downlink
+                    frequency.";
+                type int32;
             }
 
             leaf earfcnul {
                 description "Channel number for the central uplink frequency";
-                type uint32;
+                type int32;
             }
 
             leaf dlChannelBandwidth {
                 description "The downlink channel bandwidth in the FDD cell.";
-                type uint32;
+                type int32;
             }
 
             leaf earfcn {
-                description "The E-UTRA Absolute Radio Frequency Channel
-                            Number (EARFCN) for the TDD cell";
-                type uint32;
+                description "The E-UTRA Absolute Radio Frequency Channel Number
+                    (EARFCN) for the TDD cell";
+                type int32;
             }
 
             leaf channelBandwidth {
                 description "The channel bandwidth in the TDD cell.";
-                type uint32;
+                type int32;
             }
 
             leaf tac {
                 description "Tracking Area Code for the EUtran Cell";
-                type uint32;
+                type int32;
             }
 
             leaf duplexType {
@@ -493,94 +391,67 @@
                     }
                 }
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list NRSectorCarrier {
-        description "The NR Sector Carrier object provides
-                    the attributes for defining the logical
-                    characteristics of a carrier (cell) in a
-                    sector. A sector is a coverage area associated
-                    with a base station having its own antennas,
-                    radio ports, and control channels. The concept
-                    of sectors was developed to improve co-channel
-                    interference in cellular systems, and most wireless
-                    systems use three sector cells.";
+        description "The NR Sector Carrier object provides the attributes for
+            defining the logical characteristics of a carrier (cell) in a
+            sector. A sector is a coverage area associated with a base station
+            having its own antennas, radio ports, and control channels. The
+            concept of sectors was developed to improve co-channel interference
+            in cellular systems, and most wireless systems use three sector
+            cells.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the NRSectorCarrier MO. It contains
-                            the full path from the Subnetwork to the
-                            NRSectorCarrier.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf arfcnDL {
-                description "NR Absolute Radio Frequency Channel
-                            Number (NR-ARFCN) for downlink";
-                type uint32;
+                description "NR Absolute Radio Frequency Channel Number
+                    (NR-ARFCN) for downlink";
+                type int32;
             }
 
             leaf arfcnUL {
                 description "NR Absolute Radio frequency Channel Number
-                            (NR-ARFCN) for uplink.";
-                type uint32;
+                    (NR-ARFCN) for uplink.";
+                type int32;
             }
 
             leaf frequencyDL {
                 description "RF Reference Frequency of downlink channel";
-                type uint32;
+                type int32;
             }
 
             leaf frequencyUL {
                 description "RF Reference Frequency of uplink channel";
-                type uint32;
+                type int32;
             }
 
             leaf bSChannelBwDL {
                 description "BS Channel bandwidth in MHz for downlink.";
-                type uint32;
-            }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
+                type int32;
             }
         }
     }
 
     list LTESectorCarrier {
-        description "The LTE Sector Carrier object provides the
-                    attributes for defining the logical characteristics
-                    of a carrier (cell) in a sector. A sector is a coverage
-                    area associated with a base station having
-                    its own antennas, radio ports, and control channels.
-                    The concept of sectors was developed to improve co-channel
-                    interference in cellular systems, and most wireless systems
-                    use three sector cells.";
+        description "The LTE Sector Carrier object provides the attributes for
+            defining the logical characteristics of a carrier (cell) in a
+            sector. A sector is a coverage area associated with a base station
+            having its own antennas, radio ports, and control channels. The
+            concept of sectors was developed to improve co-channel interference
+            in cellular systems, and most wireless systems use three sector
+            cells.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the SectorCarrier MO. It contains
-                            the full path from the Subnetwork to the
-                            SectorCarrier.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf sectorCarrierType {
                 description "Indicates whether or not the sector carrier
-                            modelled by MO SectorCarrier is a digital sector.";
+                    modelled by MO SectorCarrier is a digital sector.";
                 type enumeration {
                     enum normal_sector {
                         value 0;
@@ -602,72 +473,55 @@
                         value 4;
                         description "Right digital sector for 3DS";
                     }
-                    enum middle_digital_sector {
+                    enum middle_digital_sector_3ds {
                         value 5;
                         description "Middle digital sector for 3DS";
                     }
                 }
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list AntennaCapability {
-        description "This MO serves as a mapping between the cell
-                    and the RBS equipment used to provide coverage
-                    in a certain geographical area. The MO also
-                    controls the maximum output power of the sector.";
+        description "This MO serves as a mapping between the cell and the RBS
+            equipment used to provide coverage in a certain geographical area.
+            The MO also controls the maximum output power of the sector.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
-            leaf fdn {
-                description "This Full Distinguished Name (FDN) identifies
-                            an instance of the SectorEquipmentFunction MO.
-                            It contains the full path from the Subnetwork
-                            to the SectorEquipmentFunction.";
-                type or-teiv-types:_3GPP_FDN_Type;
-            }
-
             leaf-list eUtranFqBands {
-                description "List of LTE frequency bands
-                            that associated hardware supports";
+                description "List of LTE frequency bands that associated
+                    hardware supports";
                 type string;
             }
 
             leaf-list geranFqBands {
-                description "List of GERAN frequency bands
-                            that associated hardware supports";
+                description "List of GERAN frequency bands that associated
+                    hardware supports";
                 type string;
             }
 
             leaf-list nRFqBands {
-                description "List of NR frequency bands
-                            associated hardware supports";
+                description "List of NR frequency bands associated hardware
+                    supports";
                 type string;
             }
-
-            container cmId {
-                uses or-teiv-types:CM_ID;
-            }
         }
     }
 
     list Sector {
-        description "A group of co-located Cells that
-                    have a shared coverage area.";
+        description "A group of co-located Cells that have a shared
+            coverage area.";
 
         uses or-teiv-types:Top_Grp_Type;
         key id;
 
         container attributes {
             leaf sectorId {
-                description "Universally unique ID generated by the
-                            sector's discovery mechanism.";
+                description "Universally unique ID generated by the sector's
+                    discovery mechanism.";
                 type uint64;
             }
 
@@ -675,8 +529,7 @@
 
             leaf azimuth {
                 description "Average value of the azimuths of the cells
-                            comprising the sector, determined during
-                            sector discovery.";
+                    comprising the sector, determined during sector discovery.";
                 type decimal64{
                     fraction-digits 6;
                 }
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang
similarity index 95%
rename from teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang
rename to teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang
index da05846..c8719a0 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-cloud-to-ran.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-cloud-ran.yang
@@ -1,6 +1,6 @@
-module o-ran-smo-teiv-cloud-to-ran {
+module o-ran-smo-teiv-rel-cloud-ran {
     yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-cloud-to-ran";
+    namespace "urn:o-ran:smo-teiv-rel-cloud-ran";
     prefix or-teiv-cloudtoran;
 
     import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
@@ -40,7 +40,7 @@
         or-teiv-yext:label 0.3.0;
     }
 
-    or-teiv-yext:domain CLOUD_TO_RAN;
+    or-teiv-yext:domain REL_CLOUD_RAN;
 
     or-teiv-yext:biDirectionalTopologyRelationship NFDEPLOYMENT_SERVES_GNBDUFUNCTION { // 0..n to 0..m
 
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang
new file mode 100644
index 0000000..1ad570e
--- /dev/null
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-equipment-ran.yang
@@ -0,0 +1,82 @@
+module o-ran-smo-teiv-rel-equipment-ran {
+    yang-version 1.1;
+    namespace "urn:o-ran:smo-teiv-rel-equipment-ran";
+    prefix or-teiv-rel-equipran;
+
+    import o-ran-smo-teiv-common-yang-types { prefix or-teiv-types; }
+
+    import o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
+
+    import o-ran-smo-teiv-equipment { prefix or-teiv-equip; }
+
+    import o-ran-smo-teiv-ran { prefix or-teiv-ran; }
+
+
+    organization "ORAN";
+    contact "The Authors";
+    description 
+    "RAN Equipment to Logical topology model.
+
+    This model contains the RAN Equipment to Logical topology
+    entities and relations.
+
+    Copyright (C) 2024 Ericsson
+    Modifications Copyright (C) 2024 OpenInfra Foundation Europe
+
+    Licensed under the Apache License, Version 2.0 (the \"License\");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an \"AS IS\" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+    SPDX-License-Identifier: Apache-2.0";
+
+    revision "2024-05-24" {
+        description "Initial revision.";
+        or-teiv-yext:label 0.3.0;
+    }
+
+    or-teiv-yext:domain REL_EQUIPMENT_RAN;
+
+    or-teiv-yext:biDirectionalTopologyRelationship ANTENNAMODULE_SERVES_ANTENNACAPABILITY { // 0..n to 0..m
+
+        uses or-teiv-types:Top_Grp_Type;
+        key id;
+
+        leaf-list serviced-antennaCapability {
+            description "Antenna Capability serviced by this Antenna Module.";
+            or-teiv-yext:aSide or-teiv-equip:AntennaModule;
+            type instance-identifier;
+        }
+
+        leaf-list serving-antennaModule {
+            description "Antenna Module serves this Antenna Capability.";
+            or-teiv-yext:bSide or-teiv-ran:AntennaCapability;
+            type instance-identifier;
+        }
+    }
+
+    or-teiv-yext:biDirectionalTopologyRelationship SECTOR_GROUPS_ANTENNAMODULE { // 0..1 to 0..n
+
+        uses or-teiv-types:Top_Grp_Type;
+        key id;
+
+        leaf-list grouped-antennaModule {
+            description "Sector groups Antenna Module.";
+            or-teiv-yext:aSide or-teiv-ran:Sector;
+            type instance-identifier;
+        }
+
+        leaf grouped-by-sector {
+            description "Antenna Module grouped by Sector.";
+            or-teiv-yext:bSide or-teiv-equip:AntennaModule;
+            type instance-identifier;
+        }
+    }
+}
\ No newline at end of file
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang
similarity index 95%
rename from teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang
rename to teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang
index 8b318c7..42c885a 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-cloud.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-cloud.yang
@@ -1,6 +1,6 @@
-module o-ran-smo-teiv-oam-to-cloud {
+module o-ran-smo-teiv-rel-oam-cloud {
     yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-oam-to-cloud";
+    namespace "urn:o-ran:smo-teiv-rel-oam-cloud";
     prefix or-teiv-oamtocloud;
 
     import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
@@ -40,7 +40,7 @@
         or-teiv-yext:label 0.3.0;
     }
 
-    or-teiv-yext:domain OAM_TO_CLOUD;
+    or-teiv-yext:domain REL_OAM_CLOUD;
 
     or-teiv-yext:biDirectionalTopologyRelationship MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF {  // 0..1 to 1
 
diff --git a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang
similarity index 88%
rename from teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang
rename to teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang
index 4a03cdc..8d26cd0 100644
--- a/teiv/src/main/resources/models/o-ran-smo-teiv-oam-to-ran.yang
+++ b/teiv/src/main/resources/models/o-ran-smo-teiv-rel-oam-ran.yang
@@ -1,15 +1,15 @@
-module o-ran-smo-teiv-oam-to-ran {
+module o-ran-smo-teiv-rel-oam-ran {
     yang-version 1.1;
-    namespace "urn:o-ran:smo-teiv-oam-to-ran";
-    prefix or-teiv-oamtoran;
+    namespace "urn:o-ran:smo-teiv-rel-oam-ran";
+    prefix or-teiv-rel-oamran;
 
-    import o-ran-smo-teiv-common-yang-types {prefix or-teiv-types; }
+    import o-ran-smo-teiv-common-yang-types { prefix or-teiv-types; }
 
-    import o-ran-smo-teiv-common-yang-extensions {prefix or-teiv-yext; }
+    import o-ran-smo-teiv-common-yang-extensions { prefix or-teiv-yext; }
 
-    import o-ran-smo-teiv-oam {prefix or-teiv-oam; }
+    import o-ran-smo-teiv-oam { prefix or-teiv-oam; }
 
-    import o-ran-smo-teiv-ran {prefix or-teiv-ran; }
+    import o-ran-smo-teiv-ran { prefix or-teiv-ran; }
 
     organization "ORAN";
     contact "The Authors";
@@ -35,12 +35,12 @@
 
     SPDX-License-Identifier: Apache-2.0";
 
-    revision "2024-05-02" {
+    revision "2024-05-24" {
         description "Initial revision.";
         or-teiv-yext:label 0.3.0;
     }
 
-    or-teiv-yext:domain OAM_TO_RAN;
+    or-teiv-yext:domain REL_OAM_RAN;
 
     or-teiv-yext:biDirectionalTopologyRelationship MANAGEDELEMENT_MANAGES_ENODEBFUNCTION {   // 1 to 0..n