Update cloudEventExample and add QoL changes

QoL changes:
  - script in docker-compose dir to copy, rename file and replace
    placeholder of sql schema from generator to docker-compose
    sql_scripts
  - script in pgsql generator to copy yang models from teiv
  - added docker container that produces a kafka event to add
    data to TEIV

Issue-ID: SMO-???
Change-Id: Id0f94f79efbc2928a5d278bc7e0fc9f077aac5d4
Signed-off-by: JvD_Ericsson <jeff.van.dam@est.tech>
diff --git a/docker-compose/cloudEventProducer/cloudEventProducerForDockerCompose.sh b/docker-compose/cloudEventProducer/cloudEventProducerForDockerCompose.sh
new file mode 100644
index 0000000..972110e
--- /dev/null
+++ b/docker-compose/cloudEventProducer/cloudEventProducerForDockerCompose.sh
@@ -0,0 +1,44 @@
+#! /bin/bash
+#
+# ============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
+#
+# 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=========================================================
+#
+KAFKA_NAMESPACE="${1:-teiv}"
+KAFKA_TOPIC="${2:-topology-inventory-ingestion}"
+KAFKA_POD_NAME="${3:-kafka-0}"
+FILE_DUPLICATION_FACTOR="${4:-1}" # How many times to use the same CloudEvent file
+FOLDER_OF_CLOUDEVENTS="${5:-/events}" # All files in this folder are written to kafka
+# number of generated files == number of files in the $FOLDER_OF_CLOUDEVENTS * $FILE_DUPLICATION_FACTOR
+
+echo "Producing messages to Kafka topic '$KAFKA_TOPIC'..."
+
+# Loop to produce multiple messages
+for ((i=0; i<$FILE_DUPLICATION_FACTOR; i++)); do
+  for file in "$FOLDER_OF_CLOUDEVENTS"/*; do
+    if [ -f "$file" ]; then
+      # Replace the new line characters with a space and write to kafka
+      sed ':a;N;$!ba;s/\n/ /g' "$file" | \
+        kafka-console-producer --broker-list kafka:9092 --topic "$KAFKA_TOPIC" \
+        --property parse.headers=true --property headers.key.separator=::: --property headers.delimiter=,,, --property parse.key=false
+    fi
+  done
+  echo "$((i+1))/$FILE_DUPLICATION_FACTOR rounds completed"
+done
+
+echo "Message production completed."
\ No newline at end of file
diff --git a/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt b/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
index 9b69dc2..649da68 100644
--- a/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
+++ b/docker-compose/cloudEventProducer/events/cloudEventExampleMerge.txt
@@ -1,312 +1,375 @@
 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"
+  "entities": [
+    {
+      "o-ran-smo-teiv-oam:ManagedElement": [
+        {
+          "id": "urn:3gpp:dn:ManagedElement=NR01",
+          "sourceIds": [
+            "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
-                    }
-                }
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=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
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+          ]
+        },
+        {
+          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
+          "attributes": {
+            "arfcnDL": 5000,
+            "arfcnUL": 50000,
+            "frequencyDL": 5,
+            "frequencyUL": 50
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+          ]
+        },
+        {
+          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
+          "attributes": {
+            "arfcnDL": 6000,
+            "arfcnUL": 60000,
+            "frequencyDL": 6,
+            "frequencyUL": 60
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=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
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+          ]
+        },
+        {
+          "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+          "attributes": {
+            "cellLocalId": 2,
+            "nRTAC": 50,
+            "nRPCI": 500,
+            "nCI": 24578
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
+          ]
+        }
+      ],
+      "o-ran-smo-teiv-ran:AntennaCapability": [
+        {
+          "id": "urn:oran:smo:teiv:AntennaCapability=1",
+          "attributes": {
+            "eUtranFqBands": "[1,2,3]",
+            "geranFqBands": "[10,11,12]",
+            "nRFqBands": "[100,101,102]"
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=1"
+          ]
+        },
+        {
+          "id": "urn:oran:smo:teiv:AntennaCapability=2",
+          "attributes": {
+            "eUtranFqBands": "[4,5,6]",
+            "geranFqBands": "[13,14,15]",
+            "nRFqBands": "[103,104,105]"
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,NodeSupport=1,SectorEquipmentFunction=2"
+          ]
+        }
+      ],
+      "o-ran-smo-teiv-equipment:AntennaModule": [
+        {
+          "id": "urn:oran:smo:teiv:AntennaModule=1",
+          "attributes": {
+            "antennaModelNumber": "1",
+            "mechanicalAntennaBearing": 50,
+            "mechanicalAntennaTilt": 10,
+            "positionWithinSector": "Unknown",
+            "totalTilt": 14,
+            "electricalAntennaTilt": 2,
+            "antennaBeamWidth": [
+              35,
+              23,
+              21
+            ],
+            "geo-location": {
+              "latitude": 41.73297,
+              "longitude": -73.007696,
+              "height": 3000
             }
-        ],
-        "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
-                }
-            },
-            {
-                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
-                "attributes": {
-                    "arfcnDL": 5000,
-                    "arfcnUL": 50000,
-                    "frequencyDL": 5,
-                    "frequencyUL": 50
-                }
-            },
-            {
-                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
-                "attributes": {
-                    "arfcnDL": 6000,
-                    "arfcnUL": 60000,
-                    "frequencyDL": 6,
-                    "frequencyUL": 60
-                }
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1",
+            "urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1,AntennaSubunit=1",
+            "urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=1"
+          ]
+        },
+        {
+          "id": "urn:oran:smo:teiv:AntennaModule=2",
+          "attributes": {
+            "antennaModelNumber": "2",
+            "mechanicalAntennaBearing": 45,
+            "mechanicalAntennaTilt": 12,
+            "positionWithinSector": "Unknown",
+            "totalTilt": 15,
+            "electricalAntennaTilt": 1,
+            "antennaBeamWidth": [
+              45,
+              32,
+              21
+            ],
+            "geo-location": {
+              "latitude": 43.75443,
+              "longitude": -71.096454,
+              "height": 2500
             }
-        ],
-        "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
-                }
-            },
-            {
-                "id": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
-                "attributes": {
-                    "cellLocalId": 2,
-                    "nRTAC": 50,
-                    "nRPCI": 500,
-                    "nCI": 24578
-                }
+          },
+          "sourceIds": [
+            "urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1",
+            "urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaUnit=1,AntennaSubunit=2",
+            "urn:3gpp:dn:ManagedElement=NR01,Equipment=1,AntennaUnitGroup=1,AntennaNearUnit=1,RetSubUnit=2"
+          ]
+        }
+      ],
+      "o-ran-smo-teiv-equipment:Site": [
+        {
+          "id": "urn:oran:smo:teiv:Site=1",
+          "attributes": {
+            "name": "Site-1",
+            "geo-location": {
+              "latitude": 41.73297,
+              "longitude": -78.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]"
-                }
+          },
+          "sourceIds": []
+        },
+        {
+          "id": "urn:oran:smo:teiv:Site=2",
+          "attributes": {
+            "name": "Site-2",
+            "geo-location": {
+              "latitude": 46.73297,
+              "longitude": -76.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
-                }
+          },
+          "sourceIds": []
+        }
+      ],
+      "o-ran-smo-teiv-ran:Sector": [
+        {
+          "id": "urn:oran:smo:teiv:Sector=1",
+          "attributes": {
+            "sectorId": 1,
+            "azimuth": 75.345,
+            "geo-location": {
+              "latitude": 40.73297,
+              "longitude": -74.007696
             }
-        ],
-        "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
-                    }
-                }
+          }
+        },
+        {
+          "id": "urn:oran:smo:teiv:Sector=2",
+          "attributes": {
+            "sectorId": 2,
+            "azimuth": 90.8967,
+            "geo-location": {
+              "latitude": 41.73297,
+              "longitude": -73.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-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"
-            }
-        ]
+          }
+        }
+      ],
+      "o-ran-smo-teiv-cloud:CloudifiedNF": [
+        {
+          "id": "urn:oran:smo:teiv:CloudifiedNF:1",
+          "attributes": {
+            "name": "CloudifiedNF-1"
+          }
+        }
+      ],
+      "o-ran-smo-teiv-cloud:NFDeployment": [
+        {
+          "id": "urn:oran:smo:teiv:NFDeployment:1",
+          "attributes": {
+            "name": "NFDeployment-1"
+          }
+        }
+      ]
     }
+  ],
+  "relationships": [
+    {
+      "o-ran-smo-teiv-rel-oam-ran:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION": [
+        {
+          "id": "urn:oran:smo:teiv:MANAGEDELEMENT_MANAGES_GNBDUFUNCTION=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:oran:smo:teiv:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER=1",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER=2",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+        },
+        {
+          "id": "urn:oran:smo:teiv:GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER=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:oran:smo:teiv:GNBDUFUNCTION_PROVIDES_NRCELLDU=1",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:GNBDUFUNCTION_PROVIDES_NRCELLDU=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:oran:smo:teiv:NRCELLDU_USES_NRSECTORCARRIER=1",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:NRCELLDU_USES_NRSECTORCARRIER=2",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2"
+        },
+        {
+          "id": "urn:oran:smo:teiv:NRCELLDU_USES_NRSECTORCARRIER=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:oran:smo:teiv:NRSECTORCARRIER_USES_ANTENNACAPABILITY=1",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=1",
+          "bSide": "urn:oran:smo:teiv:AntennaCapability=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:NRSECTORCARRIER_USES_ANTENNACAPABILITY=2",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=2",
+          "bSide": "urn:oran:smo:teiv:AntennaCapability=2"
+        },
+        {
+          "id": "urn:oran:smo:teiv:NRSECTORCARRIER_USES_ANTENNACAPABILITY=3",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRSectorCarrier=3",
+          "bSide": "urn:oran:smo:teiv:AntennaCapability=2"
+        }
+      ],
+      "o-ran-smo-teiv-rel-equipment-ran:ANTENNAMODULE_SERVES_ANTENNACAPABILITY": [
+        {
+          "id": "urn:oran:smo:teiv:ANTENNAMODULE_SERVES_ANTENNACAPABILITY=1",
+          "aSide": "urn:oran:smo:teiv:AntennaModule=1",
+          "bSide": "urn:oran:smo:teiv:AntennaCapability=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:ANTENNAMODULE_SERVES_ANTENNACAPABILITY=2",
+          "aSide": "urn:oran:smo:teiv:AntennaModule=2",
+          "bSide": "urn:oran:smo:teiv:AntennaCapability=2"
+        }
+      ],
+      "o-ran-smo-teiv-equipment:ANTENNAMODULE_INSTALLED_AT_SITE": [
+        {
+          "id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=1",
+          "aSide": "urn:oran:smo:teiv:AntennaModule=1",
+          "bSide": "urn:oran:smo:teiv:Site=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:ANTENNAMODULE_INSTALLED_AT_SITE=2",
+          "aSide": "urn:oran:smo:teiv:AntennaModule=2",
+          "bSide": "urn:oran:smo:teiv:Site=2"
+        }
+      ],
+      "o-ran-smo-teiv-ran:SECTOR_GROUPS_NRCELLDU": [
+        {
+          "id": "urn:oran:smo:teiv:SECTOR_GROUPS_NRCELLDU=1",
+          "aSide": "urn:oran:smo:teiv:Sector=1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=1"
+        },
+        {
+          "id": "urn:oran:smo:teiv:SECTOR_GROUPS_NRCELLDU=2",
+          "aSide": "urn:oran:smo:teiv:Sector=2",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1,NRCellDU=2"
+        }
+      ],
+      "o-ran-smo-teiv-rel-oam-cloud:NFDEPLOYMENT_SERVES_MANAGEDELEMENT": [
+        {
+          "id": "urn:oran:smo:teiv:NFDEPLOYMENT_SERVES_MANAGEDELEMENT=1",
+          "aSide": "urn:oran:smo:teiv:NFDeployment:1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01"
+        }
+      ],
+      "o-ran-smo-teiv-rel-oam-cloud:MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF": [
+        {
+          "id": "urn:o-ran:smo-teiv-rel-oam-cloud:1",
+          "aSide": "urn:3gpp:dn:ManagedElement=NR01",
+          "bSide": "urn:oran:smo:teiv:CloudifiedNF:1"
+        }
+      ],
+      "o-ran-smo-teiv-cloud:CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT": [
+        {
+          "id": "urn:o-ran:smo-teiv-cloud:1",
+          "aSide": "urn:oran:smo:teiv:CloudifiedNF:1",
+          "bSide": "urn:oran:smo:teiv:NFDeployment:1"
+        }
+      ],
+      "o-ran-smo-teiv-rel-cloud-ran:NFDEPLOYMENT_SERVES_GNBDUFUNCTION": [
+        {
+          "id": "urn:o-ran:smo-teiv-rel-cloud-ran:1",
+          "aSide": "urn:oran:smo:teiv:NFDeployment:1",
+          "bSide": "urn:3gpp:dn:ManagedElement=NR01,GNBDUFunction=1"
+        }
+      ]
+    }
+  ]
 }
\ No newline at end of file
diff --git a/docker-compose/copySqlSchemaFromPgsqlGenerator.sh b/docker-compose/copySqlSchemaFromPgsqlGenerator.sh
new file mode 100644
index 0000000..9444548
--- /dev/null
+++ b/docker-compose/copySqlSchemaFromPgsqlGenerator.sh
@@ -0,0 +1,53 @@
+#! /bin/bash
+#
+# ============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
+#
+# 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=========================================================
+#
+
+set -e
+
+SOURCE_DIR="../pgsql-schema-generator/target"
+TARGET_DIR="./sql_scripts"
+PLACEHOLDER1=":pguser"
+PLACEHOLDER2=":'pguser'"
+REPLACEMENT1="topology_exposure_user"
+REPLACEMENT2="'topology_exposure_user'"
+
+declare -A FILES
+FILES=( ["00_init-oran-smo-teiv-data.sql"]="01_init-teiv-exposure-data.sql"
+        ["01_init-oran-smo-teiv-model.sql"]="00_init-teiv-exposure-model.sql"
+        ["02_init-oran-smo-teiv-consumer-data.sql"]="02_init-teiv-exposure-consumer-data.sql")
+
+mkdir -p "$TARGET_DIR"
+
+for OLD_NAME in "${!FILES[@]}"; do
+    NEW_NAME="${FILES[$OLD_NAME]}"
+    if [ -f "$SOURCE_DIR/$OLD_NAME" ]; then
+        cp "$SOURCE_DIR/$OLD_NAME" "$TARGET_DIR/$NEW_NAME" && \
+        echo "Copied and renamed $OLD_NAME to $NEW_NAME in $TARGET_DIR."
+
+        sed "s/$PLACEHOLDER1/$REPLACEMENT1/g; s/$PLACEHOLDER2/$REPLACEMENT2/g" "$TARGET_DIR/$NEW_NAME" > "${TARGET_DIR}/${NEW_NAME}.tmp" && \
+        mv "${TARGET_DIR}/${NEW_NAME}.tmp" "$TARGET_DIR/$NEW_NAME" && \
+        echo "Replaced pguser in $NEW_NAME."
+    else
+        echo "File $OLD_NAME does not exist in $SOURCE_DIR. PLease run pgsql-schema-generator first."
+    fi
+done
+
+echo "All tasks completed."
\ No newline at end of file
diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index b4763f5..3d1dcaa 100644
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -79,6 +79,21 @@
     environment:
       ZOOKEEPER_CLIENT_PORT: 2181
 
+#
+# comment out kafka-producer if you DON'T want pre-populated example data in TEIV
+#
+  kafka-producer:
+    container_name: kafka-producer
+    image: confluentinc/cp-kafka:7.6.1
+    volumes:
+      - ./cloudEventProducer/cloudEventProducerForDockerCompose.sh:/cloudEventProducer.sh
+      - ./cloudEventProducer/events:/events
+    depends_on:
+      - topology-ingestion-inventory
+      - kafka
+    restart: "no"
+    entrypoint: [ "/bin/bash", "-c", "sleep 30 && bash /cloudEventProducer.sh"]
+
   kafka:
     image: confluentinc/cp-kafka:7.6.1
     container_name: kafka
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 4012f63..f0004be 100644
--- a/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
+++ b/docker-compose/sql_scripts/00_init-teiv-exposure-model.sql
@@ -35,55 +35,47 @@
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.hash_info (
-    "name"        VARCHAR(511) PRIMARY KEY,
-    "hashedValue" VARCHAR(511) NOT NULL,
+    "name"        TEXT PRIMARY KEY,
+    "hashedValue" VARCHAR(63) 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),
+    "name"            TEXT PRIMARY KEY,
+    "namespace"       TEXT,
+    "domain"          TEXT,
     "includedModules" jsonb DEFAULT '[]'::jsonb,
-    "revision"        VARCHAR(511) NOT NULL,
-    "content"         TEXT NOT NULL,
-    "ownerAppId"      VARCHAR(511) NOT NULL,
-    "status"          VARCHAR(127) NOT NULL
+    "revision"        TEXT NOT NULL,
+    "content"         TEXT NOT NULL
 );
 
 CREATE TABLE IF NOT EXISTS ties_model.entity_info (
-    "name"                VARCHAR(511) PRIMARY KEY,
-    "moduleReferenceName" VARCHAR(511) NOT NULL,
+    "storedAt"            TEXT PRIMARY KEY,
+    "name"                TEXT 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.relationship_info (
-    "name"                     VARCHAR(511) PRIMARY KEY,
+    "name"                     TEXT NOT NULL,
     "aSideAssociationName"     TEXT NOT NULL,
     "aSideMOType"              TEXT NOT NULL,
+    "aSideModule"              TEXT NOT NULL,
     "aSideMinCardinality"      BIGINT NOT NULL,
     "aSideMaxCardinality"      BIGINT NOT NULL,
     "bSideAssociationName"     TEXT NOT NULL,
     "bSideMOType"              TEXT NOT NULL,
+    "bSideModule"              TEXT NOT NULL,
     "bSideMinCardinality"      BIGINT NOT NULL,
     "bSideMaxCardinality"      BIGINT NOT NULL,
     "associationKind"          TEXT NOT NULL,
     "relationshipDataLocation" TEXT NOT NULL,
+    "storedAt"                 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) 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) NOT NULL,
+    PRIMARY KEY ("name", "moduleReferenceName"),
+    FOREIGN KEY ("aSideModule") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE,
+    FOREIGN KEY ("bSideModule") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE,
     FOREIGN KEY ("moduleReferenceName") REFERENCES ties_model.module_reference ("name") ON DELETE CASCADE
 );
 
@@ -91,326 +83,477 @@
 INSERT INTO ties_model.execution_status("schema", "status") VALUES ('ties_model', 'success');
 
 COPY ties_model.hash_info("name", "hashedValue", "type") FROM stdin;
-PK_ENodeBFunction_id	PK_ENodeBFunction_id	CONSTRAINT
-frequencyDL	frequencyDL	COLUMN
-NRCellDU	NRCellDU	TABLE
-UNIQUE_GNBCUUPFunction_REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E	CONSTRAINT
-REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
-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_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
-REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
-CD_sourceIds	CD_sourceIds	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_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
-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
-PK_NodeCluster_id	PK_NodeCluster_id	CONSTRAINT
-FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_bSide_AntennaCapability	FK_AB3CEA707D389B107F1D10BC724542418E02ABEC	CONSTRAINT
-REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
-REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
-FK_NRCellCU_REL_FK_provided-by-gnbcucpFunction	FK_NRCellCU_REL_FK_provided-by-gnbcucpFunction	CONSTRAINT
-REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
-CD_decorators	CD_decorators	COLUMN
-PK_Sector_id	PK_Sector_id	CONSTRAINT
-GNBCUCPFunction	GNBCUCPFunction	TABLE
-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_FK_provided-by-gnbcucpFunction	REL_FK_provided-by-gnbcucpFunction	COLUMN
-ManagedElement	ManagedElement	TABLE
-PK_AntennaModule_id	PK_AntennaModule_id	CONSTRAINT
-PK_CloudNamespace_id	PK_CloudNamespace_id	CONSTRAINT
-CloudifiedNF	CloudifiedNF	TABLE
-FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule	FK_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule	CONSTRAINT
-FK_EUtranCell_REL_FK_provided-by-enodebFunction	FK_EUtranCell_REL_FK_provided-by-enodebFunction	CONSTRAINT
-FK_ENodeBFunction_REL_FK_managed-by-managedElement	FK_ENodeBFunction_REL_FK_managed-by-managedElement	CONSTRAINT
-UNIQUE_GNBDUFunction_REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D	CONSTRAINT
-PK_CloudifiedNF_id	PK_CloudifiedNF_id	CONSTRAINT
-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
-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
-eNodeBPlmnId	eNodeBPlmnId	COLUMN
-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
-nRPCI	nRPCI	COLUMN
-ENodeBFunction	ENodeBFunction	TABLE
-antennaModelNumber	antennaModelNumber	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_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
-REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
-UNIQUE_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	UNIQUE_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	CONSTRAINT
-name	name	COLUMN
-REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
-PK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id	PK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id	CONSTRAINT
-geranFqBands	geranFqBands	COLUMN
-REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
-PK_EUtranCell_id	PK_EUtranCell_id	CONSTRAINT
-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
-channelBandwidth	channelBandwidth	COLUMN
-PK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id	PK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id	CONSTRAINT
-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_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
-REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-positionWithinSector	positionWithinSector	COLUMN
-NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	TABLE
-REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
-Sector	Sector	TABLE
-REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
-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
-AntennaCapability	AntennaCapability	TABLE
-NodeCluster	NodeCluster	TABLE
-REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
-REL_ID_NRCELLDU_USES_NRSECTORCARRIER	REL_ID_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
-PK_GNBCUUPFunction_id	PK_GNBCUUPFunction_id	CONSTRAINT
-bSide_GNBDUFunction	bSide_GNBDUFunction	COLUMN
-UNIQUE_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	UNIQUE_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	CONSTRAINT
-REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
-UNIQUE_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	UNIQUE_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	CONSTRAINT
-REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
-REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-azimuth	azimuth	COLUMN
-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
-cellLocalId	cellLocalId	COLUMN
-REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
-gNBCUName	gNBCUName	COLUMN
-electricalAntennaTilt	electricalAntennaTilt	COLUMN
-FK_NRSectorCarrier_REL_FK_used-by-nrCellDu	FK_NRSectorCarrier_REL_FK_used-by-nrCellDu	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
-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
-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
-FK_AntennaModule_REL_FK_grouped-by-sector	FK_AntennaModule_REL_FK_grouped-by-sector	CONSTRAINT
-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
-PK_AntennaCapability_id	PK_AntennaCapability_id	CONSTRAINT
-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
-FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	CONSTRAINT
-id	id	COLUMN
-gNBId	gNBId	COLUMN
-PK_NRCellDU_id	PK_NRCellDU_id	CONSTRAINT
-EUtranCell	EUtranCell	TABLE
-REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
+CD_decorators	CD_decorators	COLUMN
+CD_sourceIds	CD_sourceIds	COLUMN
+FK_o-ran-smo-teiv-cloud_CloudNamespace_REL_FK_deployed-on-nodeCluster	FK_578C2E899F50A133E194733D63BBEE81D9E0D8F4	CONSTRAINT
+FK_o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_aSide_NFDeployment	FK_B747BD330BCD18563818EEBBED49D5CD29D2787B	CONSTRAINT
+FK_o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace	FK_C94E3F3ACD4ADCB4153521A6D8EC9D38CCAF7AAA	CONSTRAINT
+FK_o-ran-smo-teiv-cloud_NFDeployment_REL_FK_comprised-by-cloudifiedNF	FK_127C21CB9B8871C3BCACA05A5400BE6B8E7FCAC0	CONSTRAINT
+FK_o-ran-smo-teiv-cloud_NFDeployment_REL_FK_serviced-managedElement	FK_AC1348E208C2E64F2EB1DECE2CCA5DB10B89CBD9	CONSTRAINT
+FK_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_aSide_NodeCluster	FK_6BFD8A633C553F178F2730403371E590D669A4E4	CONSTRAINT
+FK_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_bSide_CloudSite	FK_A80C81E7F1C8CBF32326F589E7582BF533474CB8	CONSTRAINT
+FK_o-ran-smo-teiv-equipment_AntennaModule_REL_FK_grouped-by-sector	FK_078764B2F3D613D44CC6E3586F564C83164D2481	CONSTRAINT
+FK_o-ran-smo-teiv-equipment_AntennaModule_REL_FK_installed-at-site	FK_E3BAEF04443354C0FC1837CF7964E05BEF9FD6CC	CONSTRAINT
+FK_o-ran-smo-teiv-oam_ManagedElement_REL_FK_deployed-as-cloudifiedNF	FK_899B8130A861D1450FC49D3159D8B29C0628A717	CONSTRAINT
+FK_o-ran-smo-teiv-ran_ENodeBFunction_REL_FK_managed-by-managedElement	FK_6C99B14BF3C9BC6DE2D69AD55DF323ADCB174167	CONSTRAINT
+FK_o-ran-smo-teiv-ran_EUtranCell_REL_FK_grouped-by-sector	FK_o-ran-smo-teiv-ran_EUtranCell_REL_FK_grouped-by-sector	CONSTRAINT
+FK_o-ran-smo-teiv-ran_EUtranCell_REL_FK_provided-by-enodebFunction	FK_2D1FA89480BF856AB865D58FAFB6AC0B476015EB	CONSTRAINT
+FK_o-ran-smo-teiv-ran_GNBCUCPFunction_REL_FK_managed-by-managedElement	FK_F1FB8F88851067901B66D53EE1420D2ECCEC98A3	CONSTRAINT
+FK_o-ran-smo-teiv-ran_GNBCUUPFunction_REL_FK_managed-by-managedElement	FK_34D6E2537E8EE1D395CAF5BF9B2182A4696A1EAA	CONSTRAINT
+FK_o-ran-smo-teiv-ran_GNBDUFunction_REL_FK_managed-by-managedElement	FK_F67FAF9D3E82B97104E2392DA0AC8A86DF2407CC	CONSTRAINT
+FK_o-ran-smo-teiv-ran_LTESectorCarrier_REL_FK_provided-by-enodebFunction	FK_D0868FBC0BBE2754F4B765C4898C1A1700E2BEFD	CONSTRAINT
+FK_o-ran-smo-teiv-ran_LTESectorCarrier_REL_FK_used-antennaCapability	FK_3D8DF3FBD9C042A888CEB382688C1E8F39D85AFE	CONSTRAINT
+FK_o-ran-smo-teiv-ran_LTESectorCarrier_REL_FK_used-by-euTranCell	FK_96E6D4983CFFDF30FCA20423B5913DEE486E42D0	CONSTRAINT
+FK_o-ran-smo-teiv-ran_NRCellCU_REL_FK_provided-by-gnbcucpFunction	FK_F2CDD1E84C7F07BF8065F99A5F3488E91E3BB7B2	CONSTRAINT
+FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_grouped-by-sector	FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_grouped-by-sector	CONSTRAINT
+FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_provided-by-gnbduFunction	FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_provided-by-gnbduFunction	CONSTRAINT
+FK_o-ran-smo-teiv-ran_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	FK_F7978366174C82E41F0A6ABF29005FF01603858F	CONSTRAINT
+FK_o-ran-smo-teiv-ran_NRSectorCarrier_REL_FK_used-antennaCapability	FK_65D538D54EB33081C808540235FEB28823428E64	CONSTRAINT
+FK_o-ran-smo-teiv-ran_NRSectorCarrier_REL_FK_used-by-nrCellDu	FK_o-ran-smo-teiv-ran_NRSectorCarrier_REL_FK_used-by-nrCellDu	CONSTRAINT
+FK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_aSide_NFDeployment	FK_6D0E3426A51B665F58683CD51B16309A4906C069	CONSTRAINT
+FK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction	FK_D3F50F479BFE3C0EA46395541E5A8319D4C93C28	CONSTRAINT
+FK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment	FK_C73A4A2E6E78F60F4ACE8EE81F4DCA7C3E2B91DD	CONSTRAINT
+FK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction	FK_AB8702C7CF7B3B39F3946271F1808220ABC71461	CONSTRAINT
+FK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment	FK_E6A6C36D4FF5FCFF75D64D84CD124FD88252F735	CONSTRAINT
+FK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_bSide_GNBDUFunction	FK_AC409CAE557306A752577462405473B8CD3D93F0	CONSTRAINT
+FK_o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_aSide_AntennaModule	FK_D80D1E6B26DF620B4DE659C600A3B7F709A41960	CONSTRAINT
+FK_o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_bSide_AntennaCapability	FK_7148BEED02C0617DE1DEEB6639F34A9FA9251B06	CONSTRAINT
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudNamespace_CD_classifiers	IDX_BAB9B6E93250360ADF354D2A478A9AE0F0CDBA74	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudNamespace_CD_sourceIds	IDX_68E2CF0D41D96AFA209F4FB807E873F942E06160	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudNamespace_REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	IDX_0955C27501E74E6433BB2E0CA6C31CE919A96474	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudNamespace_REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	IDX_6391A575D92408DA8CBC24C7E1D57B45A1F680AA	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudSite_CD_classifiers	IDX_AB2EA49D463C5A3F9D9AD3FBCBCBF44416031BED	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudSite_CD_sourceIds	IDX_0A6F89256B698212512EF3AC971B4FFAD26C4598	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudifiedNF_CD_classifiers	IDX_BD96130868B69147B2F87B0D15F5829690DEF454	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_CloudifiedNF_CD_sourceIds	IDX_9EDB5C47201FC82A4565BFED9EF369D6C6529B19	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_CD_classifiers	IDX_947619E28616D6BC26387291E47CC65C010CE9A4	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_CD_sourceIds	IDX_CA2F2186104EA61BD13152A7BC3B56DB2903483B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDeployment_CD_classifiers	IDX_BED5B5FAA75FEE133E27581EAA611B89D20F24E1	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDeployment_CD_sourceIds	IDX_6433B9B7D69E51E828BDCFCAF59729EDCD10DA60	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDeployment_REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	IDX_31F185F0F700C0AE11C5A9B8D28DBF6E37538635	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDeployment_REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	IDX_1EE98ACCAE5537752BD51A3D5F6429585CC543F6	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDeployment_REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	IDX_072EB0C094138AB2D90F9CFBDA765B3B464EE86F	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NFDeployment_REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	IDX_4DD95BAED8503502101FEB9ECA25DDA8F371816C	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_CD_classifiers	IDX_B32012D9ED6683AA0AEDF8C0894A5CD8C44B950B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_CD_sourceIds	IDX_5040461E772F4F4E71BB2BE590930AC2971C16D1	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NodeCluster_CD_classifiers	IDX_CB29E8DDA990051B2A3DF193D8E4912F25D5FA0D	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-cloud_NodeCluster_CD_sourceIds	IDX_DC1829E4241BA7C9B3E5281AC0DF00A766F9452E	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_CD_classifiers	IDX_1C0CAFD80FDD6444044E3F76C7C0A7BDC35F9BC8	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_CD_sourceIds	IDX_905011128A2C218B5352C19ED1FE9851F43EB911	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE	IDX_17E417F7EF56809674BE1D5F5154DCCE01E00A96	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	IDX_83B6347C0C0A005D5E3D856D973D3322DFEDEA35	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	IDX_F497DEC01DA066CB09DA2AA7EDE3F4410078491B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	IDX_5ABDB19E55A6BDEF33855F14CB1B3B8CF457912C	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_AntennaModule_antennaBeamWidth	IDX_21B0F1FE632B6CB185C49BA6F00224068F443215	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_Site_CD_classifiers	IDX_EEBF1BC3344E97988232825777AB13FAB6C4F3F0	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-equipment_Site_CD_sourceIds	IDX_102A50584376DE25B6BBD7157594C607A5C957F2	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-oam_ManagedElement_CD_classifiers	IDX_98AC4232BC02323E03416954215889CEE874A1E9	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-oam_ManagedElement_CD_sourceIds	IDX_DDD73D6F4004BF3A96AA118281EE3E565A922B47	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-oam_ManagedElement_REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	IDX_634619CF7333EBC0AFDE990900B79220FC626EBA	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-oam_ManagedElement_REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	IDX_8065626F3F48D4E5A4285654739D3B26499E4C4E	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_AntennaCapability_CD_classifiers	IDX_E7FFE8F4A166AA9A382A0659762FFEC313A9EB5C	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_AntennaCapability_CD_sourceIds	IDX_CC3E208A4EE51D3B505416A599F36F3C99F466C8	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_AntennaCapability_eUtranFqBands	IDX_5FB80647AE3E5C0443A792618D65B9090EE2A3FC	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_AntennaCapability_geranFqBands	IDX_A94722FF7B95D8974B494793908B57B4E1A9743B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_AntennaCapability_nRFqBands	IDX_441B5C05448D63552C6414BD59C13641D8A4408D	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_ENodeBFunction_CD_classifiers	IDX_B598B74193845587BA03553CEDBA058D33956847	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_ENodeBFunction_CD_sourceIds	IDX_3F7D14B4CF2CA74F28BA1600606E82C6E8C447C0	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_ENodeBFunction_REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	IDX_61CDCD3F69CF67EE740358D2C76FA796CFDA19BF	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_ENodeBFunction_REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	IDX_252AF4814C67384A7B05EA116316E83AFF9EB6AE	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_EUtranCell_CD_classifiers	IDX_C9C19F8F83F50C130F2EB6502ABB7B2833F1F783	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_EUtranCell_CD_sourceIds	IDX_84E36DC53519D3E334C60B5B02C1AB27130CFA24	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_EUtranCell_REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL	IDX_4C77E3A51BFAB2FCD30425E4EB21CC7636438299	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_EUtranCell_REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	IDX_8A15E61498725DA9D8C78FC4B99053C06E88DCEC	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_EUtranCell_REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL	IDX_976F6A0F8991F64592B6F9E716EFEECBD5400FDA	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_EUtranCell_REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	IDX_173887418DD4FD6FD592F6404EA784150B1822C0	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUCPFunction_CD_classifiers	IDX_588840BAE32C7FF8CF0553F631DAAF8BB6E8E7C1	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUCPFunction_CD_sourceIds	IDX_BE4B476041D559760931630000D3F4A6DFF42707	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUCPFunction_REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	IDX_1324070754C1EBF8EA78EF40743AFC1713733BA8	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUCPFunction_REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	IDX_E01081465B87F46E1CC7A22FE406C7B41C817E8C	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUUPFunction_CD_classifiers	IDX_4C2B68358221A7FF0E68012DEDD3CBA2C4ED669F	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUUPFunction_CD_sourceIds	IDX_C6D2419F8DC299FBC98342AA00BE92308C7566A7	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUUPFunction_REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	IDX_EB07ADD66F6CF51B9330403DE4500D05CA067647	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBCUUPFunction_REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	IDX_883506CAA3E742D82EEFCEE8C8F29927983B73B1	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBDUFunction_CD_classifiers	IDX_601A4514FFACA8985471531013AFC8F760361F09	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBDUFunction_CD_sourceIds	IDX_2BEF269CED354C2454AC2B2EABB134AC267A0C62	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBDUFunction_REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	IDX_04C614FDE6A4AE2AA106A1233D1DF95803FC122D	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_GNBDUFunction_REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	IDX_3065F7FB78C5AA9FF17972F825F89AED127A6324	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_CD_classifiers	IDX_E754EB8AD825DB3111B07B9E5DA3B30C38DB406B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_CD_sourceIds	IDX_6EC539C61EA7078DBA264C9877B87FC263605D42	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	IDX_846B7740E8AA756B8C1409CD909D2DF73A47ED4C	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	IDX_B291D7EFCAD3BF06A2C11F8C0429ABABEEF8308B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	IDX_3D3EFECFB917DAC074F56334224B19F8FD6BF8A5	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	IDX_1EBC7271CEA658156DE25286404CBC4593340F8E	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER	IDX_F2D46817C2D618D8C33945F282299BF9EB49465E	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	IDX_7D01A5D21C990ACCBE65035C062C7D881A05F1EE	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellCU_CD_classifiers	IDX_E5930226819982DC0CFC1FA64FB3600647222435	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellCU_CD_sourceIds	IDX_0C443A16285D233F16966C2F0314CDC9D0F6D0B8	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellCU_REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	IDX_04BE1EB39848069422B97C28EE3C8ED18BCC6D33	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellCU_REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	IDX_36A671754CD510FFBDC2713FD142303DCA75DD65	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellDU_CD_classifiers	IDX_C437D39632DC79BAB6AC4F0880826A05425F9C32	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellDU_CD_sourceIds	IDX_FFD60DD99D80C276F402E66546F5DACB2D81EE26	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellDU_REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU	IDX_2F4C43ED084968FDAF9943DB96741885C145FE1D	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellDU_REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU	IDX_7CB4A7724F68D1CB2D12E8DE779BA9103F7DBE0A	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellDU_REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	IDX_1F6708B1E34FC908473DD7A7E5641E650B359BEF	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRCellDU_REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	IDX_6325926B4D2FDD1FBBB34250DABEA5E7229FF9F5	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_CD_classifiers	IDX_050A80BEEF775E4D3CE216F282F23DB99DA2D798	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_CD_sourceIds	IDX_8E34EC0B1DE7DDCE3B32ADD85B11E15F95C5644E	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	IDX_273D43FDDD1C4643ECF8BBE51B6B369C657F0861	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	IDX_ED50A5139F1449DBAD8DA10D45F5A5BF819EACBA	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY	IDX_B975D24291849007D4AA6686C5D3983885D5C884	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	IDX_CD293AD1111E344D150340A13BD299924D29A9DA	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	IDX_7BFD17A71AB1B7765FE6431DA4E66C2EDE88AC3B	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY	IDX_1F27C515A028616FAC422A02ABBEC402D5DBB2E5	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_Sector_CD_classifiers	IDX_19C19556F9714850389595E0A16218FA229205FE	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-ran_Sector_CD_sourceIds	IDX_E234B43A7CD7843672F08F2197AB46A2A50BECB0	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_CD_classifiers	IDX_1D6BFC1696A588F59F12697E08471B9EB8A4073D	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_CD_sourceIds	IDX_85054B275ED4BE6CD5B21D0DF728D39CD8F975C2	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_CD_classifiers	IDX_C82B7EDB24DB63FB28B03A886E88225F345FE3D8	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_CD_sourceIds	IDX_34B07874400148A5C6BEF92D4507DFD69BE31186	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_CD_classifiers	IDX_0129685EC2D748D2AD9EC0AF4FA2AB6242CD3CBF	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_CD_sourceIds	IDX_5A45CC516788E441D6D4C5CCC6A1EB50C36F0C5C	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_CD_classifiers	IDX_DD0D676834B12CA2F7E8219310998376A08D7F5F	INDEX
+IDX_GIN_TRGM_OPS_ON_LIST_AS_JSONB_o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_CD_sourceIds	IDX_E896A9EB22A3F9F96CE75A271475316A98B629C8	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_CloudNamespace_CD_decorators	IDX_GIN_o-ran-smo-teiv-cloud_CloudNamespace_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_CloudNamespace_REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	IDX_2DD943E7AA20F192D80193C9A05807EA227E4AF5	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_CloudSite_CD_decorators	IDX_GIN_o-ran-smo-teiv-cloud_CloudSite_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_CloudifiedNF_CD_decorators	IDX_GIN_o-ran-smo-teiv-cloud_CloudifiedNF_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_CD_decorators	IDX_A82FEF2ABF913EB8696131AFE99C0267C5DC3CA6	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_NFDeployment_CD_decorators	IDX_GIN_o-ran-smo-teiv-cloud_NFDeployment_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_NFDeployment_REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	IDX_46CDB369134F042EC021F7496DF721B49A9D43C0	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_NFDeployment_REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	IDX_39A292C3C42B34C2AD7C2A0FD087739C253B06FC	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_CD_decorators	IDX_7310FAE21221EDCDCC254C5CD1BE0D74F6FD9A1F	INDEX
+IDX_GIN_o-ran-smo-teiv-cloud_NodeCluster_CD_decorators	IDX_GIN_o-ran-smo-teiv-cloud_NodeCluster_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-equipment_AntennaModule_CD_decorators	IDX_GIN_o-ran-smo-teiv-equipment_AntennaModule_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-equipment_AntennaModule_REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	IDX_2321BFA482AD2700F41E2BA359F6EB00F47601B9	INDEX
+IDX_GIN_o-ran-smo-teiv-equipment_AntennaModule_REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	IDX_6C6FBD69F47F41970595A8775DC99CA0F5E894A1	INDEX
+IDX_GIN_o-ran-smo-teiv-equipment_Site_CD_decorators	IDX_GIN_o-ran-smo-teiv-equipment_Site_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-oam_ManagedElement_CD_decorators	IDX_GIN_o-ran-smo-teiv-oam_ManagedElement_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-oam_ManagedElement_REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	IDX_F15A070FC83B2E49223B4232E0BEB8931C2B7A4C	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_AntennaCapability_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_AntennaCapability_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	IDX_35C17C8A9BA3EF3AEADA72C21F8090C38F575BAF	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_eNodeBPlmnId	IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_eNodeBPlmnId	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_EUtranCell_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_EUtranCell_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_EUtranCell_REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	IDX_FC7D79187227E0BFA69149048CC10E39AE540B8A	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_EUtranCell_REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	IDX_E4EF3C904939ED4C0996EAB7CDFE1895CDF34BFB	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	IDX_13E734DE57346378DA4F21FC4EA030290A7E532F	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_pLMNId	IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_pLMNId	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBCUUPFunction_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_GNBCUUPFunction_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBCUUPFunction_REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	IDX_C3141DD7D2695EF74B13981AB378A58390D203D6	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	IDX_298FCD184347DEC995B06FED2B1AE61F12BF766A	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_dUpLMNId	IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_dUpLMNId	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_LTESectorCarrier_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_LTESectorCarrier_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	IDX_44075E1D464599B61924196C20F2B88332520CD8	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	IDX_EAE482189F45D63CD1A88B0DD5F76EEE163D9E53	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_LTESectorCarrier_REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY	IDX_4EE2AA643311DFCC13B6ED832EBE2FAB4CFDF494	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	IDX_229957181BBC9D7B4535807BB397E8AA1378ED85	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_plmnId	IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_plmnId	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRCellDU_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_NRCellDU_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRCellDU_REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU	IDX_0E63D6B76B229961CD45D998C63175B569DDECD1	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRCellDU_REL_CD_decorators_SECTOR_GROUPS_NRCELLDU	IDX_0A03C47C13AD3B5C84D3D8081493D670E9CBDCD1	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRSectorCarrier_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_NRSectorCarrier_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	IDX_EDE8B88F488F9380DB49CB2C141318FB33C2CCEC	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER	IDX_2ADB5C6DCAEE8811FB1CA8FD9EB53381F35FCB70	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_NRSectorCarrier_REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY	IDX_902B73F741160B9D4FBF62406D3D9ABBECAD8BE7	INDEX
+IDX_GIN_o-ran-smo-teiv-ran_Sector_CD_decorators	IDX_GIN_o-ran-smo-teiv-ran_Sector_CD_decorators	INDEX
+IDX_GIN_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_CD_decorators	IDX_CACDA1786832798355FA450C79FB90001A9DE725	INDEX
+IDX_GIN_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_CD_decorators	IDX_253071B9FA8525A8B2B2D3DBA1A74EBAEF27CE4A	INDEX
+IDX_GIN_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_CD_decorators	IDX_5741692EDE13E86FD8BFFAD47847257CC0925F6C	INDEX
+IDX_GIN_o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_CD_decorators	IDX_7BF09D0227840279556AD27ACECB068705893D28	INDEX
+PK_o-ran-smo-teiv-cloud_CloudNamespace_id	PK_o-ran-smo-teiv-cloud_CloudNamespace_id	CONSTRAINT
+PK_o-ran-smo-teiv-cloud_CloudSite_id	PK_o-ran-smo-teiv-cloud_CloudSite_id	CONSTRAINT
+PK_o-ran-smo-teiv-cloud_CloudifiedNF_id	PK_o-ran-smo-teiv-cloud_CloudifiedNF_id	CONSTRAINT
+PK_o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_id	PK_7D474DCD64679ECB0278511BA40418F4A8809986	CONSTRAINT
+PK_o-ran-smo-teiv-cloud_NFDeployment_id	PK_o-ran-smo-teiv-cloud_NFDeployment_id	CONSTRAINT
+PK_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_id	PK_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_id	CONSTRAINT
+PK_o-ran-smo-teiv-cloud_NodeCluster_id	PK_o-ran-smo-teiv-cloud_NodeCluster_id	CONSTRAINT
+PK_o-ran-smo-teiv-equipment_AntennaModule_id	PK_o-ran-smo-teiv-equipment_AntennaModule_id	CONSTRAINT
+PK_o-ran-smo-teiv-equipment_Site_id	PK_o-ran-smo-teiv-equipment_Site_id	CONSTRAINT
+PK_o-ran-smo-teiv-oam_ManagedElement_id	PK_o-ran-smo-teiv-oam_ManagedElement_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_AntennaCapability_id	PK_o-ran-smo-teiv-ran_AntennaCapability_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_ENodeBFunction_id	PK_o-ran-smo-teiv-ran_ENodeBFunction_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_EUtranCell_id	PK_o-ran-smo-teiv-ran_EUtranCell_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_GNBCUCPFunction_id	PK_o-ran-smo-teiv-ran_GNBCUCPFunction_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_GNBCUUPFunction_id	PK_o-ran-smo-teiv-ran_GNBCUUPFunction_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_GNBDUFunction_id	PK_o-ran-smo-teiv-ran_GNBDUFunction_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_LTESectorCarrier_id	PK_o-ran-smo-teiv-ran_LTESectorCarrier_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_NRCellCU_id	PK_o-ran-smo-teiv-ran_NRCellCU_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_NRCellDU_id	PK_o-ran-smo-teiv-ran_NRCellDU_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_NRSectorCarrier_id	PK_o-ran-smo-teiv-ran_NRSectorCarrier_id	CONSTRAINT
+PK_o-ran-smo-teiv-ran_Sector_id	PK_o-ran-smo-teiv-ran_Sector_id	CONSTRAINT
+PK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_id	PK_C2321B22B1E252C3EBABC1EBF29DEEFF787BE934	CONSTRAINT
+PK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_id	PK_05C01244A393BDC3392EDBDB231586E6E98CB7E2	CONSTRAINT
+PK_o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_id	PK_D659DD37E438F4710181BCC2756AB31D0C21CE54	CONSTRAINT
+PK_o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY_id	PK_63E61CB6802F21FE7A04A80A095F6AF8ABF067CE	CONSTRAINT
+REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
 REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
-PK_Site_id	PK_Site_id	CONSTRAINT
-REL_FK_installed-at-site	REL_FK_installed-at-site	COLUMN
-NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	TABLE
-CloudNamespace	CloudNamespace	TABLE
-nRTAC	nRTAC	COLUMN
-earfcndl	earfcndl	COLUMN
-FK_NFDeployment_REL_FK_comprised-by-cloudifiedNF	FK_NFDeployment_REL_FK_comprised-by-cloudifiedNF	CONSTRAINT
-FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment	FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_aSide_NFDeployment	CONSTRAINT
-FK_AntennaModule_REL_FK_installed-at-site	FK_AntennaModule_REL_FK_installed-at-site	CONSTRAINT
-earfcnul	earfcnul	COLUMN
-REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
-aSide_NFDeployment	aSide_NFDeployment	COLUMN
-FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	FK_NRSectorCarrier_REL_FK_provided-by-gnbduFunction	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
+REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
+REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
+REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
+REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
+REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
+REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
+REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
+REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
+REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
+REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
+REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
+REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
+REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
 REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
-PK_NFDeployment_id	PK_NFDeployment_id	CONSTRAINT
-nCI	nCI	COLUMN
-REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
-REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
-REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
-FK_NRCellDU_REL_FK_grouped-by-sector	FK_NRCellDU_REL_FK_grouped-by-sector	CONSTRAINT
+REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
+REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL	COLUMN
+REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU	REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU	COLUMN
+REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
+REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
+REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
+REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
+REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
+REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
+REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
+REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
 REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
-UNIQUE_LTESectorCarrier_REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9	CONSTRAINT
-duplexType	duplexType	COLUMN
-NODECLUSTER_LOCATED_AT_CLOUDSITE	NODECLUSTER_LOCATED_AT_CLOUDSITE	TABLE
-AntennaModule	AntennaModule	TABLE
-REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
-LTESectorCarrier	LTESectorCarrier	TABLE
-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_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	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
-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
-REL_CD_decorators_SECTOR_GROUPS_NRCELLDU	REL_CD_decorators_SECTOR_GROUPS_NRCELLDU	COLUMN
-REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
-REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU	REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU	COLUMN
-REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
-REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
-UNIQUE_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	UNIQUE_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	CONSTRAINT
-REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
-REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
-PK_NODECLUSTER_LOCATED_AT_CLOUDSITE_id	PK_NODECLUSTER_LOCATED_AT_CLOUDSITE_id	CONSTRAINT
-REL_ID_SECTOR_GROUPS_EUTRANCELL	REL_ID_SECTOR_GROUPS_EUTRANCELL	COLUMN
-REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
-FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment	FK_NFDEPLOYMENT_SERVES_GNBDUFUNCTION_aSide_NFDeployment	CONSTRAINT
-Site	Site	TABLE
-FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction	FK_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION_bSide_GNBCUCPFunction	CONSTRAINT
-arfcnUL	arfcnUL	COLUMN
-REL_ID_SECTOR_GROUPS_NRCELLDU	REL_ID_SECTOR_GROUPS_NRCELLDU	COLUMN
-UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU	UNIQUE_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU	CONSTRAINT
-FK_CloudNamespace_REL_FK_deployed-on-nodeCluster	FK_CloudNamespace_REL_FK_deployed-on-nodeCluster	CONSTRAINT
-PK_GNBDUFunction_id	PK_GNBDUFunction_id	CONSTRAINT
-NFDeployment	NFDeployment	TABLE
-REL_FK_serviced-managedElement	REL_FK_serviced-managedElement	COLUMN
-dlChannelBandwidth	dlChannelBandwidth	COLUMN
-FK_GNBCUCPFunction_REL_FK_managed-by-managedElement	FK_GNBCUCPFunction_REL_FK_managed-by-managedElement	CONSTRAINT
-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_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_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
-REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
-PK_CloudSite_id	PK_CloudSite_id	CONSTRAINT
-earfcn	earfcn	COLUMN
-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
-GNBCUUPFunction	GNBCUUPFunction	TABLE
-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_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
-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
-bSide_AntennaCapability	bSide_AntennaCapability	COLUMN
-FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction	FK_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION_bSide_GNBCUUPFunction	CONSTRAINT
-UNIQUE_GNBCUCPFunction_REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD	CONSTRAINT
-REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
+REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
 REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
-pLMNId	pLMNId	COLUMN
+REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
+REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
+REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
+REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL	COLUMN
+REL_CD_decorators_SECTOR_GROUPS_NRCELLDU	REL_CD_decorators_SECTOR_GROUPS_NRCELLDU	COLUMN
+REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
+REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
+REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
+REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
+REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
+REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER	REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
+REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
+REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
+REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
+REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
+REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
+REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
+REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
+REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
+REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
+REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
+REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
+REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL	COLUMN
+REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU	COLUMN
+REL_FK_comprised-by-cloudifiedNF	REL_FK_comprised-by-cloudifiedNF	COLUMN
+REL_FK_deployed-as-cloudifiedNF	REL_FK_deployed-as-cloudifiedNF	COLUMN
+REL_FK_deployed-on-nodeCluster	REL_FK_deployed-on-nodeCluster	COLUMN
+REL_FK_grouped-by-sector	REL_FK_grouped-by-sector	COLUMN
+REL_FK_installed-at-site	REL_FK_installed-at-site	COLUMN
+REL_FK_managed-by-managedElement	REL_FK_managed-by-managedElement	COLUMN
+REL_FK_provided-by-enodebFunction	REL_FK_provided-by-enodebFunction	COLUMN
+REL_FK_provided-by-gnbcucpFunction	REL_FK_provided-by-gnbcucpFunction	COLUMN
 REL_FK_provided-by-gnbduFunction	REL_FK_provided-by-gnbduFunction	COLUMN
-FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace	FK_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE_bSide_CloudNamespace	CONSTRAINT
-UNIQUE_LTESectorCarrier_REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	UNIQUE_5D5FEB6B4B09D5D42A589753C684994CD0B96E88	CONSTRAINT
-sectorCarrierType	sectorCarrierType	COLUMN
-GNBDUFunction	GNBDUFunction	TABLE
-mechanicalAntennaTilt	mechanicalAntennaTilt	COLUMN
-UNIQUE_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	UNIQUE_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	CONSTRAINT
-plmnId	plmnId	COLUMN
-bSide_CloudNamespace	bSide_CloudNamespace	COLUMN
-gNBDUId	gNBDUId	COLUMN
+REL_FK_serviced-managedElement	REL_FK_serviced-managedElement	COLUMN
+REL_FK_used-antennaCapability	REL_FK_used-antennaCapability	COLUMN
+REL_FK_used-by-euTranCell	REL_FK_used-by-euTranCell	COLUMN
+REL_FK_used-by-nrCellDu	REL_FK_used-by-nrCellDu	COLUMN
+REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	COLUMN
+REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
+REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	COLUMN
+REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	COLUMN
+REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	COLUMN
+REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	COLUMN
+REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	COLUMN
+REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	COLUMN
+REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	COLUMN
+REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
+REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	COLUMN
+REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	COLUMN
+REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	COLUMN
+REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	COLUMN
+REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	COLUMN
+REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	COLUMN
+REL_ID_NRCELLDU_USES_NRSECTORCARRIER	REL_ID_NRCELLDU_USES_NRSECTORCARRIER	COLUMN
+REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	COLUMN
 REL_ID_SECTOR_GROUPS_ANTENNAMODULE	REL_ID_SECTOR_GROUPS_ANTENNAMODULE	COLUMN
-REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	COLUMN
+REL_ID_SECTOR_GROUPS_EUTRANCELL	REL_ID_SECTOR_GROUPS_EUTRANCELL	COLUMN
+REL_ID_SECTOR_GROUPS_NRCELLDU	REL_ID_SECTOR_GROUPS_NRCELLDU	COLUMN
+UNIQUE_o-ran-smo-teiv-cloud_CloudNamespace_REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	UNIQUE_1DB2EA3AF6DE7BEEABF5F500FFC397AFD7C74C1C	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-cloud_NFDeployment_REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	UNIQUE_A5A8418B6BE911F281E6E2AA640D7D9F777471DC	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-cloud_NFDeployment_REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT	UNIQUE_8AD46969905BEEB89F63D3F37FD82B14F34FDCBC	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-equipment_AntennaModule_REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE	UNIQUE_9DF414C2F0CD7FA8BFCB3E9BF851784AC4BC49B1	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-equipment_AntennaModule_REL_ID_SECTOR_GROUPS_ANTENNAMODULE	UNIQUE_78B1D3DCD903AFFB1965D440D87B2D194CA028A0	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-oam_ManagedElement_REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	UNIQUE_EC9B35192A31C6491E6566602720D1C26E3CB708	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_ENodeBFunction_REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	UNIQUE_A30444B7D036FA579730F0D2853E52FD08DEDCF0	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_EUtranCell_REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL	UNIQUE_CA88C7E60C1A332FA7561FC965ED41DD4125CDED	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_EUtranCell_REL_ID_SECTOR_GROUPS_EUTRANCELL	UNIQUE_0513FE4A675A02C31E5EDD6BCB3728911FBDA2FA	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_GNBCUCPFunction_REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	UNIQUE_50E9E4A87D93AC833B1D1AC05E3B58805909E20E	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_GNBCUUPFunction_REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	UNIQUE_0CA05800AC7D277BDCB5CF0097DC35978E9311F4	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_GNBDUFunction_REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	UNIQUE_5BD09ED226520A0BE27904AEAF0557416808E7E2	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_LTESectorCarrier_REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	UNIQUE_FD943EE596337B11E0C640E1176CADF9CD69E19A	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_LTESectorCarrier_REL_ID_EUTRANCELL_USES_LTESECTORCARRIER	UNIQUE_0A76398FBBC8E01A2D3BA602AB47835794E997E5	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_LTESectorCarrier_REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY	UNIQUE_EA18F1D278EAFE834B8A80BCF8A7D8355CD013DF	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_NRCellCU_REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU	UNIQUE_EA2A6F5BA36ABB0DA357542E05AA2D07415E127A	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_NRCellDU_REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU	UNIQUE_C3D8E5331EC71D46D4B8CED29FE5F6CEB1D8E67A	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_NRCellDU_REL_ID_SECTOR_GROUPS_NRCELLDU	UNIQUE_AC1C114ABED77D6DEC3F3AE3F9EBE8231924AEF4	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_NRSectorCarrier_REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	UNIQUE_0AC16A840F6ACDC50136E71EC6D4F3D4E04B8198	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_NRSectorCarrier_REL_ID_NRCELLDU_USES_NRSECTORCARRIER	UNIQUE_1AB577E5AC207ED4C99A9A96BA1C9C35544AFD25	CONSTRAINT
+UNIQUE_o-ran-smo-teiv-ran_NRSectorCarrier_REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY	UNIQUE_A799EC9DA6624651081E1DA21B5F0C2D38F6A192	CONSTRAINT
+aSide_AntennaModule	aSide_AntennaModule	COLUMN
+aSide_NFDeployment	aSide_NFDeployment	COLUMN
+aSide_NodeCluster	aSide_NodeCluster	COLUMN
+antennaBeamWidth	antennaBeamWidth	COLUMN
+antennaModelNumber	antennaModelNumber	COLUMN
+arfcnDL	arfcnDL	COLUMN
+arfcnUL	arfcnUL	COLUMN
+azimuth	azimuth	COLUMN
+bSChannelBwDL	bSChannelBwDL	COLUMN
+bSide_AntennaCapability	bSide_AntennaCapability	COLUMN
+bSide_CloudNamespace	bSide_CloudNamespace	COLUMN
+bSide_CloudSite	bSide_CloudSite	COLUMN
+bSide_GNBCUCPFunction	bSide_GNBCUCPFunction	COLUMN
+bSide_GNBCUUPFunction	bSide_GNBCUUPFunction	COLUMN
+bSide_GNBDUFunction	bSide_GNBDUFunction	COLUMN
+cellId	cellId	COLUMN
+cellLocalId	cellLocalId	COLUMN
+channelBandwidth	channelBandwidth	COLUMN
+dUpLMNId	dUpLMNId	COLUMN
+dlChannelBandwidth	dlChannelBandwidth	COLUMN
+duplexType	duplexType	COLUMN
+eNBId	eNBId	COLUMN
+eNodeBPlmnId	eNodeBPlmnId	COLUMN
+eUtranFqBands	eUtranFqBands	COLUMN
+earfcn	earfcn	COLUMN
+earfcndl	earfcndl	COLUMN
+earfcnul	earfcnul	COLUMN
+electricalAntennaTilt	electricalAntennaTilt	COLUMN
+frequencyDL	frequencyDL	COLUMN
+frequencyUL	frequencyUL	COLUMN
+gNBCUName	gNBCUName	COLUMN
+gNBDUId	gNBDUId	COLUMN
+gNBId	gNBId	COLUMN
+gNBIdLength	gNBIdLength	COLUMN
+geo-location	geo-location	COLUMN
+geranFqBands	geranFqBands	COLUMN
+id	id	COLUMN
+mechanicalAntennaBearing	mechanicalAntennaBearing	COLUMN
+mechanicalAntennaTilt	mechanicalAntennaTilt	COLUMN
+nCI	nCI	COLUMN
+nRFqBands	nRFqBands	COLUMN
+nRPCI	nRPCI	COLUMN
+nRTAC	nRTAC	COLUMN
+name	name	COLUMN
+o-ran-smo-teiv-cloud_CloudNamespace	o-ran-smo-teiv-cloud_CloudNamespace	TABLE
+o-ran-smo-teiv-cloud_CloudSite	o-ran-smo-teiv-cloud_CloudSite	TABLE
+o-ran-smo-teiv-cloud_CloudifiedNF	o-ran-smo-teiv-cloud_CloudifiedNF	TABLE
+o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	TABLE
+o-ran-smo-teiv-cloud_NFDeployment	o-ran-smo-teiv-cloud_NFDeployment	TABLE
+o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE	o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE	TABLE
+o-ran-smo-teiv-cloud_NodeCluster	o-ran-smo-teiv-cloud_NodeCluster	TABLE
+o-ran-smo-teiv-equipment_AntennaModule	o-ran-smo-teiv-equipment_AntennaModule	TABLE
+o-ran-smo-teiv-equipment_Site	o-ran-smo-teiv-equipment_Site	TABLE
+o-ran-smo-teiv-oam_ManagedElement	o-ran-smo-teiv-oam_ManagedElement	TABLE
+o-ran-smo-teiv-ran_AntennaCapability	o-ran-smo-teiv-ran_AntennaCapability	TABLE
+o-ran-smo-teiv-ran_ENodeBFunction	o-ran-smo-teiv-ran_ENodeBFunction	TABLE
+o-ran-smo-teiv-ran_EUtranCell	o-ran-smo-teiv-ran_EUtranCell	TABLE
+o-ran-smo-teiv-ran_GNBCUCPFunction	o-ran-smo-teiv-ran_GNBCUCPFunction	TABLE
+o-ran-smo-teiv-ran_GNBCUUPFunction	o-ran-smo-teiv-ran_GNBCUUPFunction	TABLE
+o-ran-smo-teiv-ran_GNBDUFunction	o-ran-smo-teiv-ran_GNBDUFunction	TABLE
+o-ran-smo-teiv-ran_LTESectorCarrier	o-ran-smo-teiv-ran_LTESectorCarrier	TABLE
+o-ran-smo-teiv-ran_NRCellCU	o-ran-smo-teiv-ran_NRCellCU	TABLE
+o-ran-smo-teiv-ran_NRCellDU	o-ran-smo-teiv-ran_NRCellDU	TABLE
+o-ran-smo-teiv-ran_NRSectorCarrier	o-ran-smo-teiv-ran_NRSectorCarrier	TABLE
+o-ran-smo-teiv-ran_Sector	o-ran-smo-teiv-ran_Sector	TABLE
+o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	93A133BC1B3BA1FA430DFB98A4AB1141328425FD	TABLE
+o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	53983B8B2DDA2A5B8CA9EDBDA547333872024418	TABLE
+o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION	o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION	TABLE
+o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY	CFC235E0404703D1E4454647DF8AAE2C193DB402	TABLE
+pLMNId	pLMNId	COLUMN
+plmnId	plmnId	COLUMN
+positionWithinSector	positionWithinSector	COLUMN
+sectorCarrierType	sectorCarrierType	COLUMN
+sectorId	sectorId	COLUMN
+tac	tac	COLUMN
+totalTilt	totalTilt	COLUMN
 \.
 
-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-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.module_reference("name", "namespace", "domain", "includedModules", "revision", "content") FROM stdin;
+_3gpp-common-yang-extensions	urn:3gpp:sa5:_3gpp-common-yang-extensions	\N	[]	2019-06-23	bW9kdWxlIF8zZ3BwLWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgewogIHlhbmctdmVyc2lvbiAxLjE7CiAgbmFtZXNwYWNlIHVybjozZ3BwOnNhNTpfM2dwcC1jb21tb24teWFuZy1leHRlbnNpb25zIDsKICBwcmVmaXggeWV4dDNncHAgOwoKICBvcmdhbml6YXRpb24gIjNHUFAgU0E1IjsKICBkZXNjcmlwdGlvbiAiVGhlIG1vZHVsZSBkZWZpbmVzIFlBTkcgZXh0ZW5zaW9ucyBuZWVkZWQgCiAgICAzR1BQIFlBTkcgbW9kZWxpbmcuCgogICAgQ29weXJpZ2h0IChjKSAyMDE5IDNHUFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgRXh0ZW5zaW9ucyBNVVNUIGJlIGRlZmluZWQgd2l0aCB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZSBpbiB0aGUKICAgIGRlc2NyaXB0aW9uIHN0YXRlbWVudDoKICAgICAgICAtIFdoYXQgaXMgdGhpcyBzdGF0ZW1lbnQuCiAgICAgICAgLSBOZXdsaW5lLAogICAgICAgIC0gVGhpcyBzdGF0ZW1lbnQgY2FuIGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZSB4eHggc3RhdGVtZW50cyB3aXRoCiAgICAgICAgY2FyZGluYWxpdHkgeC4ueS4KICAgICAgICAtIFRoaXMgc3RhdGVtZW50IGNhbiBoYXZlIHRoZSBmb2xsb3dpbmcgc3Vic3RhdGVtZW50cyB3aXRoCiAgICAgICAgY2FyZGluYWxpdHkgeC4ueS4KICAgICAgICAtIE5ld2xpbmUKICAgICAgICAtIElzIGNoYW5naW5nIHRoaXMgc3RhdGVtZW50IGFuIGVkaXRvcmlhbCwgQkMoYmFja3dhcmRzIGNvbXBhdGlibGUpIAogICAgICAgIG9yIE5CQyhub24tQkMpIGNoYW5nZT8KICAgICAgICAtIE5ld2xpbmUuCiAgICAgICAgLSBUaGUgYXJndW1lbnQgaXRzIG1lYW5pbmcgYW5kIHR5cGUuIFByZWZlcmFibHkgdXNlIFlBTkcgdHlwZXMgYW5kCiAgICAgICAgICBjb25zdHJhaW50cyB0byBkZWZpbmUgdGhlIGFyZ3VtZW50J3MgdHlwZS4KCiAgICBBbnkgZXh0ZW5zaW9uIHN0YXRlbWVudCBjYW4gYmUgYWRkZWQgd2l0aCBhCiAgICBkZXZpYXRpb24vZGV2aWF0ZSBhZGQgc3RhdGVtZW50LiBJbiB0aGlzIGNhc2UgdGhlIHJlc3RyaWN0aW9uIGFib3V0CiAgICB0aGUgcGFyZW50IHN0YXRlbWVudCBvZiB0aGUgZXh0ZW5zaW9uIFNIQUxMIGJlIGV2YWx1YXRlZCBiYXNlZCBvbiB0aGUKICAgIHRhcmdldCBvZiB0aGUgZGV2aWF0aW9uIHN0YXRlbWVudC4KCiAgICBTdXBwb3J0IGZvciB0aGlzIG1vZHVsZSBkb2VzIG5vdCBtZWFuIHRoYXQgYSBZQU5HIHNlcnZlciBpbXBsZW1lbnRzCiAgICBzdXBwb3J0IGZvciBlYWNoIG9mIHRoZXNlIGV4dGVuc2lvbnMuCiAgICBJbXBsZW1lbnRlcnMgb2YgZWFjaCBzcGVjaWZpYyBtb2R1bGUgdXNpbmcgYW4gZXh0ZW5zaW9ucyBNVVNUIGNoZWNrCiAgICBpZiB0aGUgc2VydmVyIGltcGxlbWVudHMgc3VwcG9ydCBmb3IgdGhlIHVzZWQgZXh0ZW5zaW9uLgogICAgTm90ZTogbW9kdWxlcyB1c2UgbWFueSBleHRlbnNpb25zIHdoaWNoIGluZGl2aWR1YWwKICAgIGltcGxlbWVudGF0aW9ucyBNQVkgb3IgTUFZIE5PVCBzdXBwb3J0LgogICAgSWYgc3VwcG9ydCBmb3IgYW4gZXh0ZW5zaW9uIGlzIG1pc3NpbmcgdGhlIGV4dGVuc2lvbiBzdGF0ZW1lbnQgbmVlZHMKICAgIGluZGl2aWR1YWwgaGFuZGxpbmcgb3IgaXQgU0hPVUxEIGJlIHJlbW92ZWQgZnJvbSB0aGUgbW9kdWxlIHVzaW5nCiAgICB0aGUgZXh0ZW5zaW9uIGUuZy4gd2l0aCBhIGRldmlhdGlvbi4KICAgICAgICAgICI7CgogIHJldmlzaW9uICIyMDE5LTA2LTIzIiB7CiAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCB2ZXJzaW9uIjsKICB9CgogIGV4dGVuc2lvbiBpblZhcmlhbnQgewogICAgZGVzY3JpcHRpb24KICAgICAgIkluZGljYXRlcyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlIGRhdGEgbm9kZSBjYW4gb25seSBiZSBzZXQgd2hlbiBpdHMKICAgICAgcGFyZW50IGRhdGEgbm9kZSBpcyBiZWluZyBjcmVhdGVkLiBUbyBjaGFuZ2UgdGhlIHZhbHVlIGFmdGVyIHRoYXQsIHRoZQogICAgICBwYXJlbnQgZGF0YSBub2RlIG11c3QgYmUgZGVsZXRlZCBhbmQgcmVjcmVhdGVkIHdpdGggdGhlIGRhdGEgbm9kZQogICAgICBoYXZpbmcgdGhlIG5ldyB2YWx1ZS4KCiAgICAgIEl0IGlzIHVubmVjZXNzYXJ5IHRvIHVzZSBhbmQgTVVTVCBOT1QgYmUgdXNlZCBmb3Iga2V5IGxlYWZzLgoKICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgYSBsZWFmLCBsZWFmLWxpc3QsIGxpc3QgCiAgICAgIHN0YXRlbWVudHMgdGhhdCBpcyBjb25maWc9dHJ1ZS4KICAgICAgWmVybyBvciBvbmUgaW5WYXJpYW50IHN0YXRlbWVudCBpcyBhbGxvd2VkIHBlciBwYXJlbnQgc3RhdGVtZW50LgogICAgICBOTyBzdWJzdGF0ZW1lbnRzIGFyZSBhbGxvd2VkLgogICAgICAgICAgICAKICAgICAgQWRkaW5nIHRoaXMgc3RhdGVtZW50IGlzIGFuIE5CQyBjaGFuZ2UsIHJlbW92aW5nIGl0IGlzIEJDLiI7CiAgfQoKICBleHRlbnNpb24gaW5pdGlhbC12YWx1ZSB7CiAgICBkZXNjcmlwdGlvbiAiU3BlY2lmaWVzIGEgdmFsdWUgdGhhdCB0aGUgc3lzdGVtIHdpbGwgc2V0IGZvciBhIGxlYWYKICAgICAgbGVhZi1saXN0IGlmIGEgdmFsdWUgaXMgbm90IHNwZWNpZmllZCBmb3IgaXQgd2hlbiBpdHMgcGFyZW50IGxpc3QKICAgICAgb3IgY29udGFpbmVyIGlzIGNyZWF0ZWQuIFRoZSB2YWx1ZSBoYXMgbm8gZWZmZWN0IGluIGFueSBvdGhlcgogICAgICBtb2RpZmljYXRpb24gZS5nLiBjaGFuZ2luZyBvciByZW1vdmluZyB0aGUgdmFsdWUuCgogICAgICBUaGUgZGVzY3JpcHRpb24gc3RhdGVtZW50IG9mIHRoZSBwYXJlbnQgc3RhdGVtZW50IFNIT1VMRCBjb250YWluCiAgICAgIHRoZSBsYWJlbCAnSW5pdGlhbC12YWx1ZTogJyBmb2xsb3dlZCBieSB0aGUgdGV4dCBmcm9tIHRoZSBhcmd1bWVudC4KCiAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIGEgbGVhZiBvciBsZWFmLWxpc3QuCiAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBOT1QgYmUgcHJlc2VudCBpZiB0aGUgbGVhZiBvciB0aGUgbGVhZi1saXN0IAogICAgICBoYXMgYSBkZWZhdWx0IHN0YXRlbWVudCBvciB0aGUgdHlwZSB1c2VkIGZvciB0aGUgZGF0YSBub2RlIAogICAgICBoYXMgYSBkZWZhdWx0IHZhbHVlLgogICAgICBUaGUgc3RhdGVtZW50IE1VU1QgTk9UIGJlIHVzZWQgZm9yIGNvbmZpZz1mYWxzZSBkYXRhIG9yIGluIGFuIAogICAgICBhY3Rpb24sIHJwYyBvciBub3RpZmljYXRpb24uCiAgICAgIFplcm8gb3Igb25lIGluaXRpYWwtdmFsdWUgc3RhdGVtZW50cyBhcmUgYWxsb3dlZCBmb3IgYSBsZWFmIHBhcmVudAogICAgICBzdGF0ZW1lbnQuIFplcm8gb3IgbW9yZSBpbml0aWFsLXZhbHVlIHN0YXRlbWVudHMgYXJlIGFsbG93ZWQgZm9yIGEKICAgICAgbGVhZi1saXN0IHBhcmVudCBzdGF0ZW1lbnQuIElmIHRoZSBsZWFmLWxpc3QgaXMgb3JkZXJlZC1ieSB1c2VyLCB0aGUKICAgICAgaW5pdGlhbCB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIgaW4gdGhlIFlBTkcgZGVmaW5pdGlvbi4KICAgICAgTk8gc3Vic3RhdGVtZW50cyBhcmUgYWxsb3dlZC4KCiAgICAgIEFsd2F5cyBjb25zaWRlciB1c2luZyBhIFlBTkctZGVmYXVsdCBzdGF0ZW1lbnQgaW5zdGVhZC4KCiAgICAgIE1vZGlmaWNhdGlvbiBvZiB0aGUgaW5pdGlhbC12YWx1ZSBpcyBhIG5vbi1iYWNrd2FyZHMtY29tcGF0aWJsZSBjaGFuZ2UuCgogICAgICBUaGUgYXJndW1lbnQgc3BlY2lmaWVzIGEgc2luZ2xlIGluaXRpYWwgdmFsdWUgZm9yIGEgbGVhZiBvciBsZWFmLWxpc3QuCiAgICAgIFRoZSB2YWx1ZSBNVVNUIGJlIHBhcnQgb2YgdGhlIHZhbHVlc3BhY2Ugb2YgdGhlIGxlYWYvbGVhZi1saXN0LgogICAgICBJdCBmb2xsb3dzIHRoZSBzYW1lIHJ1bGVzIGFzIHRoZSBhcmd1bWVudCBvZiB0aGUgZGVmYXVsdCBzdGF0ZW1lbnQuIjsKCiAgICBhcmd1bWVudCAiaW5pdGlhbC12YWx1ZSI7CiAgfQp9
+_3gpp-common-yang-types	urn:3gpp:sa5:_3gpp-common-yang-types	\N	[]	2022-07-26	bW9kdWxlIF8zZ3BwLWNvbW1vbi15YW5nLXR5cGVzIHsKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOjNncHA6c2E1Ol8zZ3BwLWNvbW1vbi15YW5nLXR5cGVzIjsKICBwcmVmaXggInR5cGVzM2dwcCI7CiAgCiAgaW1wb3J0IGlldGYtaW5ldC10eXBlcyB7IHByZWZpeCBpbmV0OyB9CiAgaW1wb3J0IGlldGYteWFuZy10eXBlcyB7IHByZWZpeCB5YW5nOyB9CgogIG9yZ2FuaXphdGlvbiAiM0dQUCBTQTUiOwogIGNvbnRhY3QgImh0dHBzOi8vd3d3LjNncHAub3JnL0R5bmFSZXBvcnQvVFNHLVdHLS1TNS0tb2ZmaWNpYWxzLmh0bT9JdGVtaWQ9NDY0IjsKICBkZXNjcmlwdGlvbiAiVGhlIG1vZGVsIGRlZmluZXMgYSBZQU5HIG1hcHBpbmcgb2YgdGhlIHRvcCBsZXZlbCAKICAgIGluZm9ybWF0aW9uIGNsYXNzZXMgdXNlZCBmb3IgbWFuYWdlbWVudCBvZiA1RyBuZXR3b3JrcyBhbmQgCiAgICBuZXR3b3JrIHNsaWNpbmcuIjsKICByZWZlcmVuY2UgIjNHUFAgVFMgMjguNjIzIjsKCiAgcmV2aXNpb24gMjAyMi0wNy0yNiB7IHJlZmVyZW5jZSBDUi0wMTgwIDsgfQogIHJldmlzaW9uIDIwMjItMDItMDkgeyByZWZlcmVuY2UgIkNSLTAxNDQiOyB9CiAgcmV2aXNpb24gMjAyMS0xMS0wMSB7IHJlZmVyZW5jZSAiQ1ItMDE0MSI7IH0KICAKICByZXZpc2lvbiAyMDIxLTA5LTMwIHsKICAgIGRlc2NyaXB0aW9uICJBZGRlZCBMb25naXR1ZGUsIExhdGl0dWRlLCBUZW50aE9mRGVncmVlcywgT25PZmYuIjsKICAgIHJlZmVyZW5jZSAiQ1ItMDEzOCI7CiAgfQoKICByZXZpc2lvbiAyMDIwLTExLTA2IHsKICAgIGRlc2NyaXB0aW9uICJSZW1vdmVkIGluY29ycmVjdCBTLU5TU0FJIGRlZmluaXRpb25zLiI7CiAgICByZWZlcmVuY2UgIkNSLTAxMTgiOwogIH0KCiAgcmV2aXNpb24gMjAyMC0wMy0xMCB7CiAgICBkZXNjcmlwdGlvbiAiUmVtb3ZlZCBmYXVsdHkgd2hlbiBzdGF0ZW1lbnRzLiI7CiAgICByZWZlcmVuY2UgIlNQLTIwMDIyOSI7CiAgfQogCiAgcmV2aXNpb24gMjAxOS0xMC0yNSB7CiAgICBkZXNjcmlwdGlvbiAiQWRkZWQgTWFuYWdlZE5GUHJvZmlsZS4iOwogICAgcmVmZXJlbmNlICJTNS0xOTQ0NTciOwogIH0KCiAgcmV2aXNpb24gMjAxOS0xMC0xNiB7CiAgICBkZXNjcmlwdGlvbiAiQWRkZWQgU0FQIGFuZCB1c2FnZVN0YXRlLiI7CiAgICByZWZlcmVuY2UgIlM1LTE5MzUxOCI7CiAgfQoKICByZXZpc2lvbiAyMDE5LTA2LTIzIHsKICAgIHJlZmVyZW5jZSAgIkluaXRpYWwgdmVyc2lvbi4iOwogIH0KCiAgdHlwZWRlZiBFbmFibGVkRGlzYWJsZWQgewogICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgIGVudW0gRElTQUJMRUQgOwogICAgICBlbnVtIEVOQUJMRUQgOwogICAgfQogIH0KICAKICBncm91cGluZyBQcm9jZXNzTW9uaXRvciB7CiAgICBkZXNjcmlwdGlvbiAiUHJvdmlkZXMgYXR0cmlidXRlcyB0byBtb25pdG9yIHRoZSBwcm9ncmVzcyBvZiBwcm9jZXNzZXMgCiAgICAgIHdpdGggc3BlY2lmaWMgcHVycG9zZSBhbmQgbGltaXRlZCBsaWZldGltZSBydW5uaW5nIG9uIE1uUyBwcm9kdWNlcnMuIAogICAgICBJdCBtYXkgYmUgdXNlZCBhcyBkYXRhIHR5cGUgZm9yIGRlZGljYXRlZCBwcm9ncmVzcyBtb25pdG9yIGF0dHJpYnV0ZXMgCiAgICAgIHdoZW4gc3BlY2lmeWluZyB0aGUgbWFuYWdlbWVudCByZXByZXNlbnRhdGlvbiBvZiB0aGVzZSBwcm9jZXNzZXMuIAogICAgICBUaGUgYXR0cmlidXRlcyBpbiB0aGlzIGNsYXVzZSBhcmUgZGVmaW5lZCBpbiBhIGdlbmVyaWMgd2F5LiAKICAgICAgRm9yIHNvbWUgYXR0cmlidXRlcyBzcGVjaWFsaXNhdGlvbnMgbWF5IGJlIHByb3ZpZGVkIHdoZW4gc3BlY2lmeWluZyBhIAogICAgICBjb25jcmV0ZSBwcm9jZXNzIHJlcHJlc2VudGF0aW9uLgoKICAgICAgSWYgYSBtYW5hZ2VtZW50IG9wZXJhdGlvbiBvbiBzb21lIElPQ3MgdHJpZ2dlcnMgYW4gYXNzb2NpYXRlZCAKICAgICAgYXN5bmNocm9ub3VzIHByb2Nlc3MgKHdob3NlIHByb2dyZXNzIHNoYWxsIGJlIG1vbml0b3JlZCksIHRoaXMgc2hvdWxkIAogICAgICBhbHNvIHJlc3VsdCBpbiBjcmVhdGluZyBhbiBhdHRyaWJ1dGUgbmFtZWQgJ3Byb2Nlc3NNb25pdG9yJyAob2YgdHlwZSAKICAgICAgJ1Byb2Nlc3NNb25pdG9yJykgaW4gdGhlc2UgSU9DKHMpLiBUaGUgcHJvY2Vzc01vbml0b3IgYXR0cmlidXRlIG1heSBiZSAKICAgICAgYWNjb21wYW5pZWQgYnkgdXNlLWNhc2Ugc3BlY2lmaWMgYWRkaXRpb25hbCBkYXRhIGl0ZW1zLgoKICAgICAgVGhlIHByb2dyZXNzIG9mIHRoZSBwcm9jZXNzIGlzIGRlc2NyaWJlZCBieSB0aGUgJ3N0YXR1cycgYW5kIAogICAgICAncHJvZ3Jlc3NQZXJjZW50YWdlJyBhdHRyaWJ1dGVzLiBBZGRpdGlvbmFsIHRleHR1YWwgcXVhbGlmaWNhdGlvbnMgZm9yIAogICAgICB0aGUgJ3N0YXR1cycgYXR0cmlidXRlIG1heSBiZSBwcm92aWRlZCBieSB0aGUgJ3Byb2dyZXNzU3RhdGVJbmZvJyBhbmQgCiAgICAgICdyZXN1bHRTdGF0ZUluZm8nIGF0dHJpYnV0ZXMuCgogICAgICBXaGVuIHRoZSBwcm9jZXNzIGlzIGluc3RhbnRpYXRlZCwgdGhlICdzdGF0dXMnIGlzIHNldCB0byAnTk9UX1JVTk5JTkcnIAogICAgICBhbmQgdGhlICdwcm9ncmVzc1BlcmNlbnRhZ2UnIHRvICcwJy4gVGhlIE1uUyBwcm9kdWNlciBkZWNpZGVzIHdoZW4gdG8gCiAgICAgIHN0YXJ0IGV4ZWN1dGluZyB0aGUgcHJvY2VzcyBhbmQgdG8gdHJhbnNpdGlvbiBpbnRvIHRoZSAnUlVOTklORycgc3RhdGUuIAogICAgICBUaGlzIHRpbWUgaXMgY2FwdHVyZWQgaW4gdGhlICdzdGFydFRpbWUnIGF0dHJpYnV0ZS4gQWx0ZXJuYXRpdmVseSwgdGhlIAogICAgICBwcm9jZXNzIG1heSBzdGFydCB0byBleGVjdXRlIGRpcmVjdGx5IHVwb24gaXRzIGluc3RhbnRpYXRpb24uIE9uZSAKICAgICAgYWx0ZXJuYXRpdmUgbXVzdCBiZSBzZWxlY3RlZCB3aGVuIHVzaW5nIHRoaXMgZGF0YSB0eXBlLgoKICAgICAgRHVyaW5nIHRoZSAnUlVOTklORycgc3RhdGUgdGhlICdwcm9ncmVzc1BlcmNlbnRhZ2UnIGF0dHJpYnV0ZSBtYXkgYmUgCiAgICAgIHJlcGVhdGVkbHkgdXBkYXRlZC4gVGhlIGV4YWN0IHNlbWFudGljIG9mIHRoaXMgYXR0cmlidXRlIGlzIHN1YmplY3QgdG8gCiAgICAgIGZ1cnRoZXIgc3BlY2lhbGlzYXRpb24uIFRoZSAncHJvZ3Jlc3NJbmZvJyBhdHRyaWJ1dGUgbWF5IGJlIHVzZWQgdG8gCiAgICAgIHByb3ZpZGUgYWRkaXRpb25hbCB0ZXh0dWFsIGluZm9ybWF0aW9uIGluIHRoZSAnTk9UX1JVTk5JTkcnLCAnQ0FOQ0VMTElORycgCiAgICAgIGFuZCAnUlVOTklORycgc3RhdGVzLiBGdXJ0aGVyIHNwZWNpYWxpc2F0aW9uIG9mIAogICAgICAncHJvZ3Jlc3NTdGF0ZUluZm8nIG1heSBiZSBwcm92aWRlZCB3aGVyZSB0aGlzIGRhdGEgdHlwZSBpcyAKICAgICAgdXNlZC4KCiAgICAgIFVwb24gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9mIHRoZSBwcm9jZXNzLCB0aGUgJ3N0YXR1cycgYXR0cmlidXRlIGlzIHNldCAKICAgICAgdG8gJ0ZJTklTSEVEJywgdGhlICdwcm9ncmVzc1BlcmNlbnRhZ2UnIHRvIDEwMCUuIFRoZSB0aW1lIGlzIGNhcHR1cmVkIGluIAogICAgICB0aGUgJ2VuZFRpbWUnIGF0dHJpYnV0ZS4gQWRkaXRpb25hbCB0ZXh0dWFsIGluZm9ybWF0aW9uIG1heSBiZSBwcm92aWRlZCAKICAgICAgaW4gdGhlICdyZXN1bHRTdGF0ZUluZm8nIGF0dHJpYnV0ZS4gVGhlIHR5cGUgb2YgCiAgICAgICdyZXN1bHRTdGF0ZUluZm8nIGluIHRoaXMgZGF0YSB0eXBlIGRlZmluaXRpb24gaXMgJ1N0cmluZycuIAogICAgICBGdXJ0aGVyIHNwZWNpYWxpc2F0aW9uIG9mICdyZXN1bHRTdGF0ZUluZm8nIG1heSBiZSBwcm92aWRlZCAKICAgICAgd2hlcmUgdGhpcyBkYXRhIHR5cGUgaXMgdXNlZC4KCiAgICAgIEluIGNhc2UgdGhlIHByb2Nlc3MgZmFpbHMgdG8gY29tcGxldGUgc3VjY2Vzc2Z1bGx5LCB0aGUgJ3N0YXR1cycgCiAgICAgIGF0dHJpYnV0ZSBpcyBzZXQgdG8gJ0ZBSUxFRCcgb3IgJ1BBUlRJQUxMWV9GQUlMRUQnLCB0aGUgY3VycmVudCB2YWx1ZSBvZiAKICAgICAgJ3Byb2dyZXNzUGVyY2VudGFnZScgaXMgZnJvemVuLCBhbmQgdGhlIHRpbWUgY2FwdHVyZWQgaW4gJ2VuZFRpbWUnLiBUaGUgCiAgICAgICdyZXN1bHRTdGF0ZUluZm8nIHNwZWNpZmllcyB0aGUgcmVhc29uIGZvciB0aGUgZmFpbHVyZS4gCiAgICAgIFNwZWNpZmljIGZhaWx1cmUgcmVhc29ucyBtYXkgYmUgc3BlY2lmaWVkIHdoZXJlIHRoZSBkYXRhIHR5cGUgZGVmaW5lZCBpbiAKICAgICAgdGhpcyBjbGF1c2UgaXMgdXNlZC4gVGhlIGV4YWN0IHNlbWFudGljIG9mIGZhaWx1cmUgbWF5IGJlIHN1YmplY3QgZm9yIAogICAgICBmdXJ0aGVyIHNwZWNpYWxpc2F0aW9uIGFzIHdlbGwuCgogICAgICBJbiBjYXNlIHRoZSBwcm9jZXNzIGlzIGNhbmNlbGxlZCwgdGhlICdzdGF0dXMnIGF0dHJpYnV0ZSBpcyBmaXJzdCBzZXQgdG8gCiAgICAgICdDQU5DRUxMSU5HJyBhbmQgd2hlbiB0aGUgcHJvY2VzcyBpcyByZWFsbHkgY2FuY2VsbGVkIHRoZW4gdG8gJ0NBTkNFTExFRCcuIAogICAgICBUaGUgdHJhbnNpdGlvbiB0byAnQ0FOQ0VMTEVEJyBpcyBjYXB0dXJlZCBpbiB0aGUgJ2VuZFRpbWUnIGF0dHJpYnV0ZS4gCiAgICAgIFRoZSB2YWx1ZSBvZiAncHJvZ3Jlc3NQZXJjZW50YWdlJyBpcyBmcm96ZW4uIEFkZGl0aW9uYWwgdGV4dHVhbCAKICAgICAgaW5mb3JtYXRpb24gbWF5IGJlIHByb3ZpZGVkIGluIHRoZSAncmVzdWx0U3RhdGVJbmZvJyBhdHRyaWJ1dGUuCgogICAgICBUaGUgJ3Jlc3VsdFN0YXRlSW5mbycgYXR0cmlidXRlIGlzIHByb3ZpZGVkIG9ubHkgZm9yIGFkZGl0aW9uYWwgdGV4dHVhbCAKICAgICAgcXVhbGlmaWNhdGlvbiBvZiB0aGUgc3RhdGVzICdGSU5JU0hFRCcsICdGQUlMRUQnLCAnUEFSVElBTExZX0ZBSUxFRCcgb3IgCiAgICAgICdDQU5DRUxMRUQnLiBJdCBzaGFsbCBub3QgYmUgdXNlZCBmb3IgbWFraW5nIHRoZSBvdXRjb21lLCB0aGF0IHRoZSAKICAgICAgcHJvY2VzcyBtYXkgcHJvZHVjZSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIGF2YWlsYWJsZS4KCiAgICAgIFRoZSBwcm9jZXNzIG1heSBoYXZlIHRvIGJlIGNvbXBsZXRlZCB3aXRoaW4gYSBjZXJ0YWluIHRpbWUgYWZ0ZXIgaXRzIAogICAgICBjcmVhdGlvbiwgZm9yIGV4YW1wbGUgYmVjYXVzZSByZXF1aXJlZCBkYXRhIG1heSBub3QgYmUgYXZhaWxhYmxlIGFueSAKICAgICAgbW9yZSBhZnRlciBhIGNlcnRhaW4gdGltZSwgb3IgdGhlIHByb2Nlc3Mgb3V0Y29tZSBpcyBuZWVkZWQgdW50aWwgYSAKICAgICAgY2VydGFpbiB0aW1lIGFuZCB3aGVuIG5vdCBwcm92aWRlZCBieSB0aGlzIHRpbWUgaXMgbm90IG5lZWRlZCBhbnkgbW9yZS4gCiAgICAgIFRoZSB0aW1lIHVudGlsIHRoZSBNblMgcHJvZHVjZXIgYXV0b21hdGljYWxseSBjYW5jZWxzIHRoZSBwcm9jZXNzIGlzIAogICAgICBpbmRpY2F0ZWQgYnkgdGhlICd0aW1lcicgYXR0cmlidXRlLiI7CiAgICAgIAogICAgbGVhZiBpZCB7CiAgICAgIHR5cGUgc3RyaW5nOwogICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgZGVzY3JpcHRpb24gIklkIG9mIHRoZSBwcm9jZXNzLiBJdCBpcyB1bmlxdWUgd2l0aGluIGEgc2luZ2xlIAogICAgICAgIG11bHRpdmFsdWUgYXR0cmlidXRlIG9mIHR5cGUgUHJvY2Vzc01vbml0b3IuIjsKICAgIH0KICAgIAogICAgbGVhZiBzdGF0dXMgeyAKICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgICAgZW51bSBOT1RfU1RBUlRFRCA7CiAgICAgICAgZW51bSBSVU5OSU5HIDsKICAgICAgICBlbnVtIENBTkNFTExJTkcgOwogICAgICAgIGVudW0gRklOSVNIRUQgOwogICAgICAgIGVudW0gRkFJTEVEIDsKICAgICAgICBlbnVtIFBBUlRJQUxMWV9GQUlMRUQgOwogICAgICAgIGVudW0gQ0FOQ0VMTEVEIDsKICAgICAgfQogICAgICBjb25maWcgZmFsc2U7CiAgICAgIGRlZmF1bHQgIFJVTk5JTkc7CiAgICAgIGRlc2NyaXB0aW9uICJSZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgdGhlIGFzc29jaWF0ZWQgcHJvY2VzcywgCiAgICAgICAgd2hldGhlciBpdCBmYWlscywgc3VjY2VlZHMgZXRjLiAKICAgICAgICBJdCBkb2VzIG5vdCByZXByZXNlbnQgdGhlIHJldHVybmVkIHZhbHVlcyBvZiBhIHN1Y2Nlc3NmdWxseSBmaW5pc2hlZCAKICAgICAgICBwcm9jZXNzLiAiOwogICAgfQoKICAgIGxlYWYgcHJvZ3Jlc3NQZXJjZW50YWdlIHsKICAgICAgdHlwZSB1aW50OCB7CiAgICAgICAgcmFuZ2UgMC4uMTAwOwogICAgICB9CiAgICAgIGNvbmZpZyBmYWxzZTsKICAgICAgZGVzY3JpcHRpb24gIlByb2dyZXNzIG9mIHRoZSBhc3NvY2lhdGVkIHByb2Nlc3MgYXMgcGVyY2VudGFnZSI7CiAgICB9CgogICAgbGVhZi1saXN0IHByb2dyZXNzU3RhdGVJbmZvIHsKICAgICAgdHlwZSBzdHJpbmc7CiAgICAgIGNvbmZpZyBmYWxzZTsKICAgICAgZGVzY3JpcHRpb24gIkFkZGl0aW9uYWwgdGV4dHVhbCBxdWFsaWZpY2F0aW9uIG9mIHRoZSBzdGF0ZXMgCiAgICAgICAgJ05PVF9TVEFSVEVEJywgJ0NBTkNFTExJTkcnIGFuZCAnUlVOTklORycuCgogICAgICAgIEZvciBzcGVjaWZpYyBwcm9jZXNzZXMsIHNwZWNpZmljIHdlbGwtZGVmaW5lZCBzdHJpbmdzIChlLmcuIHN0cmluZyAKICAgICAgICBwYXR0ZXJucyBvciBlbnVtcykgbWF5IGJlIGRlZmluZWQgYXMgYSBzcGVjaWFsaXNhdGlvbi4iOwogICAgfQoKICAgIGxlYWYgcmVzdWx0U3RhdGVJbmZvIHsKICAgICAgdHlwZSBzdHJpbmc7CiAgICAgIGNvbmZpZyBmYWxzZTsKICAgICAgZGVzY3JpcHRpb24gIkFkZGl0aW9uYWwgdGV4dHVhbCBxdWFsaWZpY2F0aW9uIG9mIHRoZSBzdGF0ZXMgCiAgICAgICAgJ0ZJTklTSEVEJywgJ0ZBSUxFRCcsICdQQVJUSUFMTFlfRkFJTEVEIGFuZCAnQ0FOQ0VMTEVEJy4gCiAgICAgICAgRm9yIGV4YW1wbGUsIGluIHRoZSAnRkFJTEVEJyBvciAnUEFSVElBTExZX0ZBSUxFRCcgc3RhdGUgdGhpcyAKICAgICAgICBhdHRyaWJ1dGUgbWF5IGJlIHVzZWQgdG8gcHJvdmlkZSBlcnJvciByZWFzb25zLgoKICAgICAgICBUaGlzIGF0dHJpYnV0ZSBzaGFsbCBub3QgYmUgdXNlZCB0byBtYWtlIHRoZSBvdXRjb21lIG9mIHRoZSBwcm9jZXNzIAogICAgICAgIGF2YWlsYWJsZSBmb3IgcmV0cmlldmFsLCBpZiBhbnkuIEZvciB0aGlzIHB1cnBvc2UsIGRlZGljYXRlZCAKICAgICAgICBhdHRyaWJ1dGVzIHNoYWxsIGJlIHNwZWNpZmllZCB3aGVuIHNwZWNpZnlpbmcgdGhlIHJlcHJlc2VudGF0aW9uIG9mIAogICAgICAgIGEgc3BlY2lmaWMgcHJvY2Vzcy4KCiAgICAgICAgRm9yIHNwZWNpZmljIHByb2Nlc3Nlcywgc3BlY2lmaWMgd2VsbC1kZWZpbmVkIHN0cmluZ3MgKGUuZy4gc3RyaW5nIAogICAgICAgIHBhdHRlcm5zIG9yIGVudW1zKSBtYXkgYmUgZGVmaW5lZCBhcyBhIHNwZWNpYWxpc2F0aW9uLiI7CiAgICB9CgogICAgbGVhZiBzdGFydFRpbWUgewogICAgICB0eXBlIHlhbmc6ZGF0ZS1hbmQtdGltZTsKICAgICAgY29uZmlnIGZhbHNlOwogICAgICBkZXNjcmlwdGlvbiAiU3RhcnQgdGltZSBvZiB0aGUgYXNzb2NpYXRlZCBwcm9jZXNzLCBpLmUuIHRoZSB0aW1lIHdoZW4gdGhlIAogICAgICAgIHN0YXR1cyBjaGFuZ2VkIGZyb20gJ05PVF9TVEFSVEVEJyB0byAnUlVOTklORycuIjsKICAgIH0KCiAgICBsZWFmIGVuZFRpbWUgewogICAgICB0eXBlIHlhbmc6ZGF0ZS1hbmQtdGltZTsKICAgICAgY29uZmlnIGZhbHNlOwogICAgICBkZXNjcmlwdGlvbiAiRGF0ZSBhbmQgdGltZSB3aGVuIHN0YXR1cyBjaGFuZ2VkIHRvICdTVUNDRVNTJywgJ0NBTkNFTExFRCcsIAogICAgICAgICdGQUlMRUQnIG9yICdQQVJUSUFMTFlfRkFJTEVEJy4gCgogICAgICAgIElmIHRoZSB0aW1lIGlzIGluIHRoZSBmdXR1cmUsIGl0IGlzIHRoZSBlc3RpbWF0ZWQgdGltZSAKICAgICAgICB0aGUgcHJvY2VzcyB3aWxsIGVuZC4iOwogICAgfQoKICAgIGxlYWYgdGltZXIgewogICAgICB0eXBlIHVpbnQzMjsKICAgICAgdW5pdHMgbWludXRlczsKICAgICAgZGVzY3JpcHRpb24gIlRpbWUgdW50aWwgdGhlIGFzc29jaWF0ZWQgcHJvY2VzcyBpcyBhdXRvbWF0aWNhbGx5IGNhbmNlbGxlZC4KICAgICAgICBJZiBzZXQsIHRoZSBzeXN0ZW0gZGVjcmVhc2VzIHRoZSB0aW1lciB3aXRoIHRpbWUuIFdoZW4gaXQgcmVhY2hlcyB6ZXJvIAogICAgICAgIHRoZSBjYW5jZWxsYXRpb24gb2YgdGhlIGFzc29jaWF0ZWQgcHJvY2VzcyBpcyBpbml0aWF0ZWQgYnkgdGhlIAogICAgICAgIE1uU19Qcm9kdWNlci4gCiAgICAgICAgSWYgbm90IHNldCwgdGhlcmUgaXMgbm8gdGltZSBsaW1pdCBmb3IgdGhlIHByb2Nlc3MuCiAgICAgICAgCiAgICAgICAgT25jZSB0aGUgdGltZXIgaXMgc2V0LCB0aGUgY29uc3VtZXIgY2FuIG5vdCBjaGFuZ2UgaXQgYW55bW9yZS4gCiAgICAgICAgSWYgdGhlIGNvbnN1bWVyIGhhcyBub3Qgc2V0IHRoZSB0aW1lciB0aGUgTW5TIFByb2R1Y2VyIG1heSBzZXQgaXQuIjsKICAgIH0KICB9CiAgCiAgdHlwZWRlZiBUZW50aE9mRGVncmVlcyB7IAogICAgdHlwZSB1aW50MTYgeyAKICAgICAgcmFuZ2UgMC4uMzYwMDsgCiAgICB9CiAgICB1bml0cyAiMC4xIGRlZ3JlZXMiOwogICAgZGVzY3JpcHRpb24gIkEgc2luZ2xlIGludGVncmFsIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gYW4gYW5nbGUgaW4gZGVncmVlcyAKICAgICAgYmV0d2VlbiAwIGFuZCAzNjAgd2l0aCBhIHJlc29sdXRpb24gb2YgMC4xIGRlZ3JlZXMuIjsKICB9CgogIHR5cGVkZWYgTGF0aXR1ZGUgewogICAgdHlwZSBkZWNpbWFsNjQgewogICAgICBmcmFjdGlvbi1kaWdpdHMgNDsKICAgICAgcmFuZ2UgIi05MC4wMDAwLi4rOTAuMDAwMCI7IAogICAgfQogICAgZGVzY3JpcHRpb24gIkxhdGl0dWRlIHZhbHVlcyI7CiAgfQoKICB0eXBlZGVmIExvbmdpdHVkZSB7CiAgICB0eXBlIGRlY2ltYWw2NCB7CiAgICAgIGZyYWN0aW9uLWRpZ2l0cyA0OwogICAgICByYW5nZSAiLTE4MC4wMDAwLi4rMTgwLjAwMDAiOyAKICAgIH0KICAgIGRlc2NyaXB0aW9uICJMb25naXR1ZGUgdmFsdWVzIjsKICB9CgogIHR5cGVkZWYgT25PZmYgewogICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgIGVudW0gT047CiAgICAgIGVudW0gT0ZGOwogICAgfQogIH0KICAKICAvLyBncm91cGluZyBNYW5hZ2VkTkZQcm9maWxlIHdpbGwgYmUgcmVtb3ZlZCBhcyBpdCBpcyAKICAvLyAgYmVpbmcgbW92ZWQgdG8gXzNncHAtNWdjLW5ybS1uZnByb2ZpbGUKICBncm91cGluZyBNYW5hZ2VkTkZQcm9maWxlIHsKICAgIGRlc2NyaXB0aW9uICJEZWZpbmVzIHByb2ZpbGUgZm9yIG1hbmFnZWQgTkYiOwogICAgcmVmZXJlbmNlICIzR1BQIFRTIDIzLjUwMSI7CiAgICAKICAgIGxlYWYgaWR4IHsgdHlwZSB1aW50MzIgOyB9CiAgICAKICAgIGxlYWYgbmZJbnN0YW5jZUlEIHsKICAgICAgY29uZmlnIGZhbHNlOwogICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgdHlwZSB5YW5nOnV1aWQgOwogICAgICBkZXNjcmlwdGlvbiAiVGhpcyBwYXJhbWV0ZXIgZGVmaW5lcyBwcm9maWxlIGZvciBtYW5hZ2VkIE5GLiAKICAgICAgICBUaGUgZm9ybWF0IG9mIHRoZSBORiBJbnN0YW5jZSBJRCBzaGFsbCBiZSBhIAogICAgICAgIFVuaXZlcnNhbGx5IFVuaXF1ZSBJZGVudGlmaWVyIChVVUlEKSB2ZXJzaW9uIDQsIAogICAgICAgIGFzIGRlc2NyaWJlZCBpbiBJRVRGIFJGQyA0MTIyICIgOwogICAgfQogICAgCiAgICBsZWFmLWxpc3QgbmZUeXBlIHsKICAgICAgY29uZmlnIGZhbHNlOwogICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgdHlwZSBOZlR5cGU7CiAgICAgIGRlc2NyaXB0aW9uICJUeXBlIG9mIHRoZSBOZXR3b3JrIEZ1bmN0aW9uIiA7CiAgICB9CiAgICAKICAgIGxlYWYgaG9zdEFkZHIgewogICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgdHlwZSBpbmV0Omhvc3QgOwogICAgICBkZXNjcmlwdGlvbiAiSG9zdCBhZGRyZXNzIG9mIGEgTkYiOwogICAgfQogICAgCiAgICBsZWFmIGF1dGh6SW5mbyB7CiAgICAgIHR5cGUgc3RyaW5nIDsKICAgICAgZGVzY3JpcHRpb24gIlRoaXMgcGFyYW1ldGVyIGRlZmluZXMgTkYgU3BlY2lmaWMgU2VydmljZSBhdXRob3JpemF0aW9uIAogICAgICAgIGluZm9ybWF0aW9uLiBJdCBzaGFsbCBpbmNsdWRlIHRoZSBORiB0eXBlIChzKSBhbmQgTkYgcmVhbG1zL29yaWdpbnMgCiAgICAgICAgYWxsb3dlZCB0byBjb25zdW1lIE5GIFNlcnZpY2Uocykgb2YgTkYgU2VydmljZSBQcm9kdWNlci4iOwogICAgICByZWZlcmVuY2UgIlNlZSBUUyAyMy41MDEiIDsKICAgIH0KICAgIAogICAgbGVhZiBsb2NhdGlvbiB7CiAgICAgIHR5cGUgc3RyaW5nIDsKICAgICAgZGVzY3JpcHRpb24gIkluZm9ybWF0aW9uIGFib3V0IHRoZSBsb2NhdGlvbiBvZiB0aGUgTkYgaW5zdGFuY2UgCiAgICAgICAgKGUuZy4gZ2VvZ3JhcGhpYyBsb2NhdGlvbiwgZGF0YSBjZW50ZXIpIGRlZmluZWQgYnkgb3BlcmF0b3IiOwogICAgICByZWZlcmVuY2UgIlRTIDI5LjUxMCIgOwogICAgfQogICAgCiAgICBsZWFmIGNhcGFjaXR5IHsKICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgIHR5cGUgdWludDE2IDsKICAgICAgZGVzY3JpcHRpb24gIlRoaXMgcGFyYW1ldGVyIGRlZmluZXMgc3RhdGljIGNhcGFjaXR5IGluZm9ybWF0aW9uIAogICAgICAgIGluIHRoZSByYW5nZSBvZiAwLTY1NTM1LCBleHByZXNzZWQgYXMgYSB3ZWlnaHQgcmVsYXRpdmUgdG8gb3RoZXIgCiAgICAgICAgTkYgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIHR5cGU7IGlmIGNhcGFjaXR5IGlzIGFsc28gcHJlc2VudCBpbiB0aGUgCiAgICAgICAgbmZTZXJ2aWNlTGlzdCBwYXJhbWV0ZXJzLCB0aG9zZSB3aWxsIGhhdmUgcHJlY2VkZW5jZSBvdmVyIHRoaXMgdmFsdWUuIjsKICAgICAgcmVmZXJlbmNlICJUUyAyOS41MTAiIDsKICAgIH0KICAgICAgCiAgICBsZWFmIG5GU3J2R3JvdXBJZCB7CiAgICAgIHR5cGUgc3RyaW5nIDsKICAgICAgZGVzY3JpcHRpb24gIlRoaXMgcGFyYW1ldGVyIGRlZmluZXMgaWRlbnRpdHkgb2YgdGhlIGdyb3VwIHRoYXQgaXMgCiAgICAgICAgc2VydmVkIGJ5IHRoZSBORiBpbnN0YW5jZS4KICAgICAgICBNYXkgYmUgY29uZmlnIGZhbHNlIG9yIHRydWUgZGVwZW5kaW5nIG9uIHRoZSBNYW5hZ2VkRnVuY3Rpb24uIAogICAgICAgIENvbmZpZz10cnVlIGZvciBVZHJpbmZvLiBDb25maWc9ZmFsc2UgZm9yIFVkbUluZm8gYW5kIEF1c2ZJbmZvLiAKICAgICAgICBTaGFsbCBiZSBwcmVzZW50IGlmIC4uL25mVHlwZSA9IFVETSBvciBBVVNGIG9yIFVEUi4gIjsKICAgICAgcmVmZXJlbmNlICJUUyAyOS41MTAiIDsKICAgIH0KICAgIAogICAgbGVhZi1saXN0IHN1cHBvcnRlZERhdGFTZXRJZHMgewogICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICBlbnVtIFNVQlNDUklQVElPTjsKICAgICAgICBlbnVtIFBPTElDWTsKICAgICAgICBlbnVtIEVYUE9TVVJFOwogICAgICAgIGVudW0gQVBQTElDQVRJT047CiAgICAgIH0KICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2Ygc3VwcG9ydGVkIGRhdGEgc2V0cyBpbiB0aGUgVURSIGluc3RhbmNlLiAKICAgICAgICBNYXkgYmUgcHJlc2VudCBpZiAuLi9uZlR5cGUgPSBVRFIiOwogICAgICByZWZlcmVuY2UgIlRTIDI5LjUxMCIgOwogICAgfQogICAgCiAgICBsZWFmLWxpc3Qgc21mU2VydmluZ0FyZWFzIHsKICAgICAgdHlwZSBzdHJpbmcgOwogICAgICBkZXNjcmlwdGlvbiAiRGVmaW5lcyB0aGUgU01GIHNlcnZpY2UgYXJlYShzKSB0aGUgVVBGIGNhbiBzZXJ2ZS4gCiAgICAgICAgU2hhbGwgYmUgcHJlc2VudCBpZiAuLi9uZlR5cGUgPSBVUEYiOwogICAgICByZWZlcmVuY2UgIlRTIDI5LjUxMCIgOwogICAgfQogICAgCiAgICBsZWFmIHByaW9yaXR5IHsKICAgICAgdHlwZSB1aW50MTY7CiAgICAgIGRlc2NyaXB0aW9uICJUaGlzIHBhcmFtZXRlciBkZWZpbmVzIFByaW9yaXR5IChyZWxhdGl2ZSB0byBvdGhlciBORnMgCiAgICAgICAgb2YgdGhlIHNhbWUgdHlwZSkgaW4gdGhlIHJhbmdlIG9mIDAtNjU1MzUsIHRvIGJlIHVzZWQgZm9yIE5GIHNlbGVjdGlvbjsgCiAgICAgICAgbG93ZXIgdmFsdWVzIGluZGljYXRlIGEgaGlnaGVyIHByaW9yaXR5LiBJZiBwcmlvcml0eSBpcyBhbHNvIHByZXNlbnQgCiAgICAgICAgaW4gdGhlIG5mU2VydmljZUxpc3QgcGFyYW1ldGVycywgdGhvc2Ugd2lsbCBoYXZlIHByZWNlZGVuY2Ugb3ZlciAKICAgICAgICB0aGlzIHZhbHVlLiBTaGFsbCBiZSBwcmVzZW50IGlmIC4uL25mVHlwZSA9IEFNRiAiOwogICAgICByZWZlcmVuY2UgIlRTIDI5LjUxMCIgOwogICAgfQogIH0KICAKICB0eXBlZGVmIHVzYWdlU3RhdGUgewogICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgIGVudW0gSURMRTsKICAgICAgZW51bSBBQ1RJVkU7CiAgICAgIGVudW0gQlVTWTsKICAgIH0KICAgIGRlc2NyaXB0aW9uICJJdCBkZXNjcmliZXMgd2hldGhlciBvciBub3QgdGhlIHJlc291cmNlIGlzIGFjdGl2ZWx5IGluIAogICAgICB1c2UgYXQgYSBzcGVjaWZpYyBpbnN0YW50LCBhbmQgaWYgc28sIHdoZXRoZXIgb3Igbm90IGl0IGhhcyBzcGFyZSAKICAgICAgY2FwYWNpdHkgZm9yIGFkZGl0aW9uYWwgdXNlcnMgYXQgdGhhdCBpbnN0YW50LiBUaGUgdmFsdWUgaXMgUkVBRC1PTkxZLiI7CiAgICByZWZlcmVuY2UgIklUVSBUIFJlY29tbWVuZGF0aW9uIFguNzMxIjsKICB9CiAgCiAgZ3JvdXBpbmcgU0FQIHsKICAgIGxlYWYgaG9zdCB7CiAgICAgIHR5cGUgaW5ldDpob3N0OwogICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgIH0KICAgIGxlYWYgcG9ydCB7CiAgICAgIHR5cGUgaW5ldDpwb3J0LW51bWJlcjsKICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICB9CiAgICBkZXNjcmlwdGlvbiAiU2VydmljZSBhY2Nlc3MgcG9pbnQuIjsKICAgIHJlZmVyZW5jZSAiVFMgMjguNjIyIjsKICB9CiAgCiAgdHlwZWRlZiBNY2MgewogICAgZGVzY3JpcHRpb24gIlRoZSBtb2JpbGUgY291bnRyeSBjb2RlIGNvbnNpc3RzIG9mIHRocmVlIGRlY2ltYWwgZGlnaXRzLCAKICAgICAgVGhlIGZpcnN0IGRpZ2l0IG9mIHRoZSBtb2JpbGUgY291bnRyeSBjb2RlIGlkZW50aWZpZXMgdGhlIGdlb2dyYXBoaWMgCiAgICAgIHJlZ2lvbiAodGhlIGRpZ2l0cyAxIGFuZCA4IGFyZSBub3QgdXNlZCk6IjsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybiAnWzAyLTc5XVswLTldWzAtOV0nOwogICAgfQogICAgcmVmZXJlbmNlICIzR1BQIFRTIDIzLjAwMyBzdWJjbGF1c2UgMi4yIGFuZCAxMi4xIjsKICB9CgogIHR5cGVkZWYgTW5jIHsKICAgIGRlc2NyaXB0aW9uICJUaGUgbW9iaWxlIG5ldHdvcmsgY29kZSBjb25zaXN0cyBvZiB0d28gb3IgdGhyZWUgCiAgICAgIGRlY2ltYWwgZGlnaXRzIChmb3IgZXhhbXBsZTogTU5DIG9mIDAwMSBpcyBub3QgdGhlIHNhbWUgYXMgTU5DIG9mIDAxKSI7CiAgICB0eXBlIHN0cmluZyB7CiAgICAgIHBhdHRlcm4gJ1swLTldWzAtOV1bMC05XXxbMC05XVswLTldJzsKICAgIH0KICAgIHJlZmVyZW5jZSAiM0dQUCBUUyAyMy4wMDMgc3ViY2xhdXNlIDIuMiBhbmQgMTIuMSI7CiAgfQoKICBncm91cGluZyBQTE1OSWQgewogICAgbGVhZiBtY2MgewogICAgICBtYW5kYXRvcnkgdHJ1ZTsKICAgICAgdHlwZSBNY2M7CiAgICB9CiAgICBsZWFmIG1uYyB7CiAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICB0eXBlIE1uYzsKICAgIH0KICAgIHJlZmVyZW5jZSAiVFMgMjMuNjU4IjsKICB9CiAgCiAgdHlwZWRlZiBOY2kgewogICAgZGVzY3JpcHRpb24gIk5SIENlbGwgSWRlbnRpdHkuIFRoZSBOQ0kgc2hhbGwgYmUgb2YgZml4ZWQgbGVuZ3RoIG9mIDM2IGJpdHMgCiAgICAgIGFuZCBzaGFsbCBiZSBjb2RlZCB1c2luZyBmdWxsIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uLiAKICAgICAgVGhlIGV4YWN0IGNvZGluZyBvZiB0aGUgTkNJIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBlYWNoIFBMTU4gb3BlcmF0b3IiOwogICAgcmVmZXJlbmNlICJUUyAyMy4wMDMiOwogICAgdHlwZSB1bmlvbiB7CiAgICAgIHR5cGUgc3RyaW5nIHsKICAgICAgICBsZW5ndGggMzY7CiAgICAgICAgcGF0dGVybiAnWzAxXSsnOwogICAgICB9CiAgICAgIHR5cGUgc3RyaW5nIHsKICAgICAgICBsZW5ndGggOTsKICAgICAgICBwYXR0ZXJuICdbYS1mQS1GMC05XSonOwogICAgICB9CiAgICB9CiAgfQogICAgCiAgdHlwZWRlZiBPcGVyYXRpb25hbFN0YXRlIHsKICAgIHJlZmVyZW5jZSAiM0dQUCBUUyAyOC42MjUgYW5kIElUVS1UIFguNzMxIjsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIERJU0FCTEVEIHsKICAgICAgICB2YWx1ZSAwOwogICAgICAgIGRlc2NyaXB0aW9uICJUaGUgcmVzb3VyY2UgaXMgdG90YWxseSBpbm9wZXJhYmxlLiI7CiAgICAgIH0KCiAgICAgIGVudW0gRU5BQkxFRCB7CiAgICAgICAgdmFsdWUgMTsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIHJlc291cmNlIGlzIHBhcnRpYWxseSBvciBmdWxseSBvcGVyYWJsZS4iOwogICAgICB9CgogICAgfQogIH0KICAKICB0eXBlZGVmIEJhc2ljQWRtaW5pc3RyYXRpdmVTdGF0ZSB7CiAgICByZWZlcmVuY2UgIjNHUFAgVFMgMjguNjI1IGFuZCBJVFUtVCBYLjczMSI7CiAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgZW51bSBMT0NLRUQgewogICAgICAgIHZhbHVlIDA7CiAgICAgICAgZGVzY3JpcHRpb24gIlRoZSByZXNvdXJjZSBpcyBhZG1pbmlzdHJhdGl2ZWx5IHByb2hpYml0ZWQgZnJvbSBwZXJmb3JtaW5nCiAgICAgICAgICAgICAgICAgc2VydmljZXMgZm9yIGl0cyB1c2Vycy4iOwogICAgICB9CgogICAgICBlbnVtIFVOTE9DS0VEIHsKICAgICAgICB2YWx1ZSAxOwogICAgICAgIGRlc2NyaXB0aW9uICJUaGUgcmVzb3VyY2UgaXMgYWRtaW5pc3RyYXRpdmVseSBwZXJtaXR0ZWQgdG8gcGVyZm9ybQogICAgICAgICAgc2VydmljZXMgZm9yIGl0cyB1c2Vycy4gVGhpcyBpcyBpbmRlcGVuZGVudCBvZiBpdHMgaW5oZXJlbnQKICAgICAgICAgIG9wZXJhYmlsaXR5LiI7CiAgICAgIH0KICAgIH0KICB9CiAgCiAgdHlwZWRlZiBBZG1pbmlzdHJhdGl2ZVN0YXRlIHsKICAgIHJlZmVyZW5jZSAiM0dQUCBUUyAyOC42MjUgYW5kIElUVS1UIFguNzMxIjsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIExPQ0tFRCB7CiAgICAgICAgdmFsdWUgMDsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIHJlc291cmNlIGlzIGFkbWluaXN0cmF0aXZlbHkgcHJvaGliaXRlZCBmcm9tIHBlcmZvcm1pbmcKICAgICAgICAgICAgICAgICBzZXJ2aWNlcyBmb3IgaXRzIHVzZXJzLiI7CiAgICAgIH0KCiAgICAgIGVudW0gVU5MT0NLRUQgewogICAgICAgIHZhbHVlIDE7CiAgICAgICAgZGVzY3JpcHRpb24gIlRoZSByZXNvdXJjZSBpcyBhZG1pbmlzdHJhdGl2ZWx5IHBlcm1pdHRlZCB0byBwZXJmb3JtCiAgICAgICAgICBzZXJ2aWNlcyBmb3IgaXRzIHVzZXJzLiBUaGlzIGlzIGluZGVwZW5kZW50IG9mIGl0cyBpbmhlcmVudAogICAgICAgICAgb3BlcmFiaWxpdHkuIjsKICAgICAgfQoKICAgICAgZW51bSBTSFVUVElOR0RPV04gewogICAgICAgIHZhbHVlIDI7CiAgICAgICAgZGVzY3JpcHRpb24gIlVzZSBvZiB0aGUgcmVzb3VyY2UgaXMgYWRtaW5pc3RyYXRpdmVseSBwZXJtaXR0ZWQgdG8KICAgICAgICAgIGV4aXN0aW5nIGluc3RhbmNlcyBvZiB1c2Ugb25seS4gV2hpbGUgdGhlIHN5c3RlbSByZW1haW5zIGluCiAgICAgICAgICB0aGUgc2h1dHRpbmcgZG93biBzdGF0ZSB0aGUgbWFuYWdlciBvciB0aGUgbWFuYWdlZCBlbGVtZW50IAogICAgICAgICAgbWF5IGF0IGFueSB0aW1lIGNhdXNlIHRoZSByZXNvdXJjZSB0byB0cmFuc2l0aW9uIHRvIHRoZSAKICAgICAgICAgIGxvY2tlZCBzdGF0ZS4iOwogICAgICB9CiAgICB9CiAgfQogIAogIHR5cGVkZWYgQXZhaWxhYmlsaXR5U3RhdHVzIHsKICAgICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgICAgICBlbnVtIElOX1RFU1Q7CiAgICAgICAgICBlbnVtIEZBSUxFRDsgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgIGVudW0gUE9XRVJfT0ZGOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgZW51bSBPRkZfTElORTsgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgIGVudW0gT0ZGX0RVVFk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICBlbnVtIERFUEVOREVOQ1k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICBlbnVtIERFR1JBREVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgZW51bSBOT1RfSU5TVEFMTEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgZW51bSBMT0dfRlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgIH0KICB9CiAgCiAgdHlwZWRlZiBDZWxsU3RhdGUgewogICAgICB0eXBlIGVudW1lcmF0aW9uIHsKICAgICAgICBlbnVtIElETEU7CiAgICAgICAgZW51bSBJTkFDVElWRTsgICAgICAgICAgICAgIAogICAgICAgIGVudW0gQUNUSVZFOyAgICAgICAgICAgICAgCiAgICAgfQogIH0KCiAgdHlwZWRlZiBOcnBjaSB7CiAgICB0eXBlIHVpbnQzMjsKICAgIGRlc2NyaXB0aW9uICJQaHlzaWNhbCBDZWxsIElkZW50aXR5IChQQ0kpIG9mIHRoZSBOUiBjZWxsLiI7CiAgICByZWZlcmVuY2UgIlRTIDM2LjIxMSBzdWJjbGF1c2UgNi4xMSI7CiAgfQoKICB0eXBlZGVmIFRhYyB7CiAgICB0eXBlIGludDMyIHsKICAgICAgcmFuZ2UgMC4uMTY3NzcyMTUgOwogICAgfQogICAgZGVzY3JpcHRpb24gIlRyYWNraW5nIEFyZWEgQ29kZSI7CiAgICByZWZlcmVuY2UgIlRTIDIzLjAwMyBjbGF1c2UgMTkuNC4yLjMiOwogIH0KCiAgdHlwZWRlZiBBbWZSZWdpb25JZCB7CiAgICB0eXBlIHVuaW9uIHsgCiAgICAgIHR5cGUgdWludDggOwogICAgICB0eXBlIHN0cmluZyB7CiAgICAgICAgbGVuZ3RoIDg7CiAgICAgICAgcGF0dGVybiAnWzAxXSonOwogICAgICB9CiAgICB9CiAgICByZWZlcmVuY2UgImNsYXVzZSAyLjEwLjEgb2YgM0dQUCBUUyAyMy4wMDMiOwogIH0KCiAgdHlwZWRlZiBBbWZTZXRJZCB7CiAgICB0eXBlIHVuaW9uIHsgCiAgICAgIHR5cGUgdWludDE2IHsKICAgICAgICByYW5nZSAnMC4uMTAyMyc7CiAgICAgIH0KICAgICAgdHlwZSBzdHJpbmcgewogICAgICAgIGxlbmd0aCA4OwogICAgICAgIHBhdHRlcm4gJ1swMV0qJzsKICAgICAgfQogICAgfQogICAgcmVmZXJlbmNlICJjbGF1c2UgMi4xMC4xIG9mIDNHUFAgVFMgMjMuMDAzIjsKICB9CgogIHR5cGVkZWYgQW1mUG9pbnRlciB7CiAgICB0eXBlIHVuaW9uIHsgCiAgICAgIHR5cGUgdWludDggewogICAgICAgIHJhbmdlICcwLi42Myc7CiAgICAgIH0KICAgICAgdHlwZSBzdHJpbmcgewogICAgICAgIGxlbmd0aCA2OwogICAgICAgIHBhdHRlcm4gJ1swMV0qJzsKICAgICAgfQogICAgfQogICAgcmVmZXJlbmNlICJjbGF1c2UgMi4xMC4xIG9mIDNHUFAgVFMgMjMuMDAzIjsKICB9CiAgICAgICAgCiAgZ3JvdXBpbmcgQW1mSWRlbnRpZmllciB7ICAgICAgICAKICAgIGxlYWYgYW1mUmVnaW9uSWQgewogICAgICB0eXBlIEFtZlJlZ2lvbklkOwogICAgfQogICAgbGVhZiBhbWZTZXRJZCB7CiAgICAgIHR5cGUgQW1mU2V0SWQ7CiAgICB9CiAgICBsZWFmIGFtZlBvaW50ZXIgewogICAgICB0eXBlIEFtZlBvaW50ZXI7CiAgICB9IAogICAgZGVzY3JpcHRpb24gIlRoZSBBTUZJIGlzIGNvbnN0cnVjdGVkIGZyb20gYW4gQU1GIFJlZ2lvbiBJRCwgCiAgICAgIGFuIEFNRiBTZXQgSUQgYW5kIGFuIEFNRiBQb2ludGVyLiAKICAgICAgVGhlIEFNRiBSZWdpb24gSUQgaWRlbnRpZmllcyB0aGUgcmVnaW9uLCAKICAgICAgdGhlIEFNRiBTZXQgSUQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgQU1GIFNldCB3aXRoaW4gdGhlIEFNRiBSZWdpb24sIGFuZCAKICAgICAgdGhlIEFNRiBQb2ludGVyIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIEFNRiB3aXRoaW4gdGhlIEFNRiBTZXQuICI7IAogIH0gICAgCgovLyB0eXBlIGRlZmluaXRpb25zIGVzcGVjaWFsbHkgZm9yIGNvcmUgTkZzCgogIHR5cGVkZWYgTmZUeXBlIHsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIE5SRjsKICAgICAgZW51bSBVRE07CiAgICAgIGVudW0gQU1GOwogICAgICBlbnVtIFNNRjsKICAgICAgZW51bSBBVVNGOwogICAgICBlbnVtIE5FRjsKICAgICAgZW51bSBQQ0Y7CiAgICAgIGVudW0gU01TRjsKICAgICAgZW51bSBOU1NGOwogICAgICBlbnVtIFVEUjsKICAgICAgZW51bSBMTUY7CiAgICAgIGVudW0gR01MQzsKICAgICAgZW51bSA1R19FSVI7CiAgICAgIGVudW0gU0VQUDsKICAgICAgZW51bSBVUEY7CiAgICAgIGVudW0gTjNJV0Y7CiAgICAgIGVudW0gQUY7CiAgICAgIGVudW0gVURTRjsKICAgICAgZW51bSBCU0Y7CiAgICAgIGVudW0gQ0hGOwogICAgfSAgICAgICAgICAKICB9CiAgCiAgdHlwZWRlZiBOb3RpZmljYXRpb25UeXBlIHsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIE4xX01FU1NBR0VTOwogICAgICBlbnVtIE4yX0lORk9STUFUSU9OOwogICAgICBlbnVtIExPQ0FUSU9OX05PVElGSUNBVElPTjsKICAgIH0gICAgICAKICB9CiAgCiAgdHlwZWRlZiBMb2FkIHsKICAgIGRlc2NyaXB0aW9uICJMYXRlc3Qga25vd24gbG9hZCBpbmZvcm1hdGlvbiBvZiB0aGUgTkYsIHBlcmNlbnRhZ2UgIjsKICAgIHR5cGUgdWludDggewogICAgICByYW5nZSAwLi4xMDA7CiAgICB9CiAgfQoKICB0eXBlZGVmIE4xTWVzc2FnZUNsYXNzIHsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIDVHTU07CiAgICAgIGVudW0gU007CiAgICAgIGVudW0gTFBQOwogICAgICBlbnVtIFNNUzsgCiAgICB9ICAgICAgCiAgfQogIAogIHR5cGVkZWYgTjJJbmZvcm1hdGlvbkNsYXNzIHsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIFNNOwogICAgICBlbnVtIE5SUFBBOwogICAgICBlbnVtIFBXUzsKICAgICAgZW51bSBQV1NfQkNBTDsKICAgICAgZW51bSBQV1NfUkY7CiAgICB9ICAgICAgICAgICAgICAKICB9CiAgCiAgZ3JvdXBpbmcgRGVmYXVsdE5vdGlmaWNhdGlvblN1YnNjcmlwdGlvbiB7CiAgICAKICAgIGxlYWYgbm90aWZpY2F0aW9uVHlwZSB7CiAgICAgIHR5cGUgTm90aWZpY2F0aW9uVHlwZTsKICAgIH0KICAgIAogICAgbGVhZiBjYWxsYmFja1VyaSB7CiAgICAgIHR5cGUgaW5ldDp1cmk7CiAgICB9CiAgICAKICAgIGxlYWYgbjFNZXNzYWdlQ2xhc3MgewogICAgICB0eXBlIE4xTWVzc2FnZUNsYXNzOwogICAgfQogICAgCiAgICBsZWFmIG4ySW5mb3JtYXRpb25DbGFzcyB7CiAgICAgIHR5cGUgTjJJbmZvcm1hdGlvbkNsYXNzOwogICAgfSAgICAKICB9ICAKICAgICAgICAKICBncm91cGluZyBJcHY0QWRkcmVzc1JhbmdlIHsKICBsZWFmIHN0YXJ0IHsKICAgIHR5cGUgaW5ldDppcHY0LWFkZHJlc3M7CiAgICB9CiAgbGVhZiBlbmQgewogICAgdHlwZSBpbmV0OmlwdjQtYWRkcmVzczsKICAgIH0gICAgCiAgfQogICAgCiAgZ3JvdXBpbmcgSXB2NlByZWZpeFJhbmdlIHsKICBsZWFmIHN0YXJ0IHsKICAgIHR5cGUgaW5ldDppcHY2LXByZWZpeDsKICAgIH0KICBsZWFmIGVuZCB7CiAgICB0eXBlIGluZXQ6aXB2Ni1wcmVmaXg7CiAgICB9ICAgIAogIH0KICAgICAKICB0eXBlZGVmIE5zaUlkIHsKICAgIHR5cGUgc3RyaW5nOwogIH0KICAgIAogIHR5cGVkZWYgVWVNb2JpbGl0eUxldmVsIHsKICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICBlbnVtIFNUQVRJT05BUlk7CiAgICAgIGVudW0gTk9NQURJQzsKICAgICAgZW51bSBSRVNUUklDVEVEX01PQklMSVRZOwogICAgICBlbnVtIEZVTExZX01PQklMSVRZOwogICAgfQogIH0KICAgICAgCiAgdHlwZWRlZiBSZXNvdXJjZVNoYXJpbmdMZXZlbCB7CiAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgIGVudW0gU0hBUkVEOwogICAgICAgIGVudW0gTk9UX1NIQVJFRDsKICAgICAgfQogIH0KICAgICAgCiAgdHlwZWRlZiBUeERpcmVjdGlvbiB7CiAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgIGVudW0gREw7CiAgICAgICAgZW51bSBVTDsKICAgICAgICBlbnVtIERMX0FORF9VTDsKICAgICAgfQogIH0KICAgICAgCiAgZ3JvdXBpbmcgQWRkcmVzc1dpdGhWbGFuIHsKICAgIGxlYWYgaXBBZGRyZXNzIHsKICAgICAgdHlwZSBpbmV0OmlwLWFkZHJlc3M7ICAgCiAgICB9CiAgICBsZWFmIHZsYW5JZCB7CiAgICAgICB0eXBlIHVpbnQxNjsKICAgIH0gIAogIH0KICAKICB0eXBlZGVmIERpc3Rpbmd1aXNoZWROYW1lIHsgICAgLy8gVE9ETyBpcyB0aGlzIGVxdWl2YWxlbnQgdG8gVFMgMzIuMzAwID8KICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybiAnKFthLXpBLVpdW2EtekEtWjAtOS1dKj0oXFwoIHwjfFxcfD58PHw7fCJ8XCt8LHxbYS1mQS1GMC05XXsyfSl8W15cXD48OyIrLCMgXSknCiAgICAgICAgKyAnKChcXCggfCN8XFx8Pnw8fDt8InxcK3wsfFthLWZBLUYwLTldezJ9KXxbXlxcPjw7IissXSkqJwogICAgICAgICsgJyhcXCggfCN8XFx8Pnw8fDt8InxcK3wsfFthLWZBLUYwLTldezJ9KXxbXlxcPjw7IissIF0pKT8nCiAgICAgICAgKyAnWyxcK10pKlthLXpBLVpdW2EtekEtWjAtOS1dKj0oXFwoIHwjfFxcfD58PHw7fCJ8XCt8LHxbYS1mQS1GMC05XXsyfSl8W15cXD48OyIrLCMgXSknCiAgICAgICAgKyAnKChcXCggfCN8XFx8Pnw8fDt8InxcK3wsfFthLWZBLUYwLTldezJ9KScKICAgICAgICArICd8W15cXD48OyIrLF0pKihcXCggfCN8XFx8Pnw8fDt8InxcK3wsfFthLWZBLUYwLTldezJ9KXxbXlxcPjw7IissIF0pKT8nOyAgCiAgICB9CiAgICBkZXNjcmlwdGlvbiAiUmVwcmVzZW50cyB0aGUgaW50ZXJuYXRpb25hbCBzdGFuZGFyZCBmb3IgdGhlIHJlcHJlc2VudGF0aW9uIAogICAgICBvZiBEaXN0aW5ndWlzaGVkIE5hbWUgKFJGQyA0NTEyKS4gCiAgICAgIFRoZSBmb3JtYXQgb2YgdGhlIERpc3Rpbmd1aXNoZWROYW1lIFJFR0VYIGlzOgogICAgICB7QXR0cmlidXRlVHlwZSA9IEF0dHJpYnV0ZVZhbHVlfSAgIAoKICAgICAgQXR0cmlidXRlVHlwZSBjb25zaXN0cyBvZiBhbHBoYW51bWVyaWMgYW5kIGh5cGhlbiAoT0lEcyBub3QgYWxsb3dlZCkuIAogICAgICBBbGwgb3RoZXIgY2hhcmFjdGVycyBhcmUgcmVzdHJpY3RlZC4KICAgICAgVGhlIEF0dHJpYnV0ZSB2YWx1ZSBjYW5ub3QgY29udGFpbiBjb250cm9sIGNoYXJhY3RlcnMgb3IgdGhlIAogICAgICAgIGZvbGxvd2luZyBjaGFyYWN0ZXJzIDogXFwgPiA8IDsgXCIgKyAsIChDb21tYSkgYW5kIFdoaXRlIHNwYWNlCiAgICAgIFRoZSBBdHRyaWJ1dGUgdmFsdWUgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIGlmIHRoZXkgCiAgICAgICAgYXJlIGV4Y2FwZWQgOiBcXCA+IDwgOyBcIiArICwgKENvbW1hKSBhbmQgV2hpdGUgc3BhY2UKICAgICAgVGhlIEF0dHJpYnV0ZSB2YWx1ZSBjYW4gY29udGFpbiBjb250cm9sIGNoYXJhY3RlcnMgaWYgaXRzIGFuIGVzY2FwZWQgCiAgICAgICAgZG91YmxlIGRpZ2l0IGhleCBudW1iZXIuCiAgICAgICAgRXhhbXBsZXMgY291bGQgYmUgCiAgICAgICAgICBVSUQ9bm9ib2R5QGV4YW1wbGUuY29tLERDPWV4YW1wbGUsREM9Y29tCiAgICAgICAgICAgIENOPUpvaG4gU21pdGgsT1U9U2FsZXMsTz1BQ01FIExpbWl0ZWQsTD1Nb2FiLFNUPVV0YWgsQz1VUyI7CiAgICByZWZlcmVuY2UgICJSRkMgNDUxMiBMaWdodHdlaWdodCBEaXJlY3RvcnkgQWNjZXNzIFByb3RvY29sIChMREFQKToKICAgICAgICAgICAgICAgICAgICAgIERpcmVjdG9yeSBJbmZvcm1hdGlvbiBNb2RlbHMiOwogIH0gLy8gcmVjaGVjayByZWdleHAgaXQgZG9lc24ndCBoYW5kbGUgcG9zaXggWzpjbnRybDpdCiAKICB0eXBlZGVmIFFPZmZzZXRSYW5nZSAgewogICAgdHlwZSBpbnQ4IHsgCiAgICAgIHJhbmdlICItMjQgfCAtMjIgfCAtMjAgfCAtMTggfCAtMTYgfCAtMTQgfCAtMTIgfCAtMTAgfCAtOCB8IC02IHwgIiArCiAgICAgICAgIiAtNSB8IC00IHwgLTMgfCAtMiB8IC0xIHwgMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB8IDggfCAxMCB8ICIgKwogICAgICAgICIgMTIgfCAxNCB8IDE2IHwgMTggfCAyMCB8IDIyIHwgMjQiOyAKICAgIH0KICAgIHVuaXRzIGRCOwogIH0KfQ==
+ietf-geo-location	urn:ietf:params:xml:ns:yang:ietf-geo-location	\N	[]	2022-02-11	bW9kdWxlIGlldGYtZ2VvLWxvY2F0aW9uIHsKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOmlldGY6cGFyYW1zOnhtbDpuczp5YW5nOmlldGYtZ2VvLWxvY2F0aW9uIjsKICBwcmVmaXggZ2VvOwogIGltcG9ydCBpZXRmLXlhbmctdHlwZXMgewogICAgcHJlZml4IHlhbmc7CiAgICByZWZlcmVuY2UgIlJGQyA2OTkxOiBDb21tb24gWUFORyBEYXRhIFR5cGVzIjsKICB9CgogIG9yZ2FuaXphdGlvbgogICAgIklFVEYgTkVUTU9EIFdvcmtpbmcgR3JvdXAgKE5FVE1PRCkiOwogIGNvbnRhY3QKICAgIldHIFdlYjogICA8aHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy93Zy9uZXRtb2QvPgogICAgV0cgTGlzdDogIDxtYWlsdG86bmV0bW9kQGlldGYub3JnPgoKICAgIEVkaXRvcjogICBDaHJpc3RpYW4gSG9wcHMKICAgICAgICAgICAgICA8bWFpbHRvOmNob3Bwc0BjaG9wcHMub3JnPiI7CgogIGRlc2NyaXB0aW9uCiAgICAiVGhpcyBtb2R1bGUgZGVmaW5lcyBhIGdyb3VwaW5nIG9mIGEgY29udGFpbmVyIG9iamVjdCBmb3IKICAgICBzcGVjaWZ5aW5nIGEgbG9jYXRpb24gb24gb3IgYXJvdW5kIGFuIGFzdHJvbm9taWNhbCBvYmplY3QgKGUuZy4sCiAgICAgJ2VhcnRoJykuCgogICAgIFRoZSBrZXkgd29yZHMgJ01VU1QnLCAnTVVTVCBOT1QnLCAnUkVRVUlSRUQnLCAnU0hBTEwnLCAnU0hBTEwKICAgICBOT1QnLCAnU0hPVUxEJywgJ1NIT1VMRCBOT1QnLCAnUkVDT01NRU5ERUQnLCAnTk9UIFJFQ09NTUVOREVEJywKICAgICAnTUFZJywgYW5kICdPUFRJT05BTCcgaW4gdGhpcyBkb2N1bWVudCBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMKICAgICBkZXNjcmliZWQgaW4gQkNQIDE0IChSRkMgMjExOSkgKFJGQyA4MTc0KSB3aGVuLCBhbmQgb25seSB3aGVuLAogICAgIHRoZXkgYXBwZWFyIGluIGFsbCBjYXBpdGFscywgYXMgc2hvd24gaGVyZS4KCiAgICAgQ29weXJpZ2h0IChjKSAyMDIyIElFVEYgVHJ1c3QgYW5kIHRoZSBwZXJzb25zIGlkZW50aWZpZWQgYXMKICAgICBhdXRob3JzIG9mIHRoZSBjb2RlLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KCiAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3JtcywKICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBpcyBwZXJtaXR0ZWQgcHVyc3VhbnQgdG8sCiAgICAgYW5kIHN1YmplY3QgdG8gdGhlIGxpY2Vuc2UgdGVybXMgY29udGFpbmVkIGluLCB0aGUKICAgICBSZXZpc2VkIEJTRCBMaWNlbnNlIHNldCBmb3J0aCBpbiBTZWN0aW9uIDQuYyBvZiB0aGUKICAgICBJRVRGIFRydXN0J3MgTGVnYWwgUHJvdmlzaW9ucyBSZWxhdGluZyB0byBJRVRGIERvY3VtZW50cwogICAgIChodHRwczovL3RydXN0ZWUuaWV0Zi5vcmcvbGljZW5zZS1pbmZvKS4KCiAgICAgVGhpcyB2ZXJzaW9uIG9mIHRoaXMgWUFORyBtb2R1bGUgaXMgcGFydCBvZiBSRkMgOTE3OQogICAgIChodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9pbmZvL3JmYzkxNzkpOyBzZWUgdGhlIFJGQyBpdHNlbGYKICAgICBmb3IgZnVsbCBsZWdhbCBub3RpY2VzLiI7CgogIHJldmlzaW9uIDIwMjItMDItMTEgewogICAgZGVzY3JpcHRpb24KICAgICAgIkluaXRpYWwgUmV2aXNpb24iOwogICAgcmVmZXJlbmNlCiAgICAgICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucyI7CiAgfQoKICBmZWF0dXJlIGFsdGVybmF0ZS1zeXN0ZW1zIHsKICAgIGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIGZlYXR1cmUgbWVhbnMgdGhlIGRldmljZSBzdXBwb3J0cyBzcGVjaWZ5aW5nIGxvY2F0aW9ucwogICAgICAgdXNpbmcgYWx0ZXJuYXRlIHN5c3RlbXMgZm9yIHJlZmVyZW5jZSBmcmFtZXMuIjsKICB9CgogIGdyb3VwaW5nIGdlby1sb2NhdGlvbiB7CiAgICBkZXNjcmlwdGlvbgogICAgICAiR3JvdXBpbmcgdG8gaWRlbnRpZnkgYSBsb2NhdGlvbiBvbiBhbiBhc3Ryb25vbWljYWwgb2JqZWN0LiI7CgogICAgY29udGFpbmVyIGdlby1sb2NhdGlvbiB7CiAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgIkEgbG9jYXRpb24gb24gYW4gYXN0cm9ub21pY2FsIGJvZHkgKGUuZy4sICdlYXJ0aCcpCiAgICAgICAgIHNvbWV3aGVyZSBpbiBhIHVuaXZlcnNlLiI7CgogICAgICBjb250YWluZXIgcmVmZXJlbmNlLWZyYW1lIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgIlRoZSBGcmFtZSBvZiBSZWZlcmVuY2UgZm9yIHRoZSBsb2NhdGlvbiB2YWx1ZXMuIjsKCiAgICAgICAgbGVhZiBhbHRlcm5hdGUtc3lzdGVtIHsKICAgICAgICAgIGlmLWZlYXR1cmUgImFsdGVybmF0ZS1zeXN0ZW1zIjsKICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIlRoZSBzeXN0ZW0gaW4gd2hpY2ggdGhlIGFzdHJvbm9taWNhbCBib2R5IGFuZAogICAgICAgICAgICAgZ2VvZGV0aWMtZGF0dW0gaXMgZGVmaW5lZC4gIE5vcm1hbGx5LCB0aGlzIHZhbHVlIGlzIG5vdAogICAgICAgICAgICAgcHJlc2VudCBhbmQgdGhlIHN5c3RlbSBpcyB0aGUgbmF0dXJhbCB1bml2ZXJzZTsgaG93ZXZlciwKICAgICAgICAgICAgIHdoZW4gcHJlc2VudCwgdGhpcyB2YWx1ZSBhbGxvd3MgZm9yIHNwZWNpZnlpbmcgYWx0ZXJuYXRlCiAgICAgICAgICAgICBzeXN0ZW1zIChlLmcuLCB2aXJ0dWFsIHJlYWxpdGllcykuICBBbiBhbHRlcm5hdGUtc3lzdGVtCiAgICAgICAgICAgICBtb2RpZmllcyB0aGUgZGVmaW5pdGlvbiAoYnV0IG5vdCB0aGUgdHlwZSkgb2YgdGhlIG90aGVyCiAgICAgICAgICAgICB2YWx1ZXMgaW4gdGhlIHJlZmVyZW5jZSBmcmFtZS4iOwogICAgICAgIH0KICAgICAgICBsZWFmIGFzdHJvbm9taWNhbC1ib2R5IHsKICAgICAgICAgIHR5cGUgc3RyaW5nIHsKICAgICAgICAgICAgcGF0dGVybiAnWyAtQFxbLVxeXy1+XSonOwogICAgICAgICAgfQogICAgICAgICAgZGVmYXVsdCAiZWFydGgiOwogICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkFuIGFzdHJvbm9taWNhbCBib2R5IGFzIG5hbWVkIGJ5IHRoZSBJbnRlcm5hdGlvbmFsCiAgICAgICAgICAgICBBc3Ryb25vbWljYWwgVW5pb24gKElBVSkgb3IgYWNjb3JkaW5nIHRvIHRoZSBhbHRlcm5hdGUKICAgICAgICAgICAgIHN5c3RlbSBpZiBzcGVjaWZpZWQuICBFeGFtcGxlcyBpbmNsdWRlICdzdW4nIChvdXIgc3RhciksCiAgICAgICAgICAgICAnZWFydGgnIChvdXIgcGxhbmV0KSwgJ21vb24nIChvdXIgbW9vbiksICdlbmNlbGFkdXMnIChhCiAgICAgICAgICAgICBtb29uIG9mIFNhdHVybiksICdjZXJlcycgKGFuIGFzdGVyb2lkKSwgYW5kCiAgICAgICAgICAgICAnNjdwL2NodXJ5dW1vdi1nZXJhc2ltZW5rbyAoYSBjb21ldCkuICBUaGUgQVNDSUkgdmFsdWUKICAgICAgICAgICAgIFNIT1VMRCBoYXZlIHVwcGVyY2FzZSBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGFuZCBub3QKICAgICAgICAgICAgIGluY2x1ZGUgY29udHJvbCBjaGFyYWN0ZXJzIChpLmUuLCB2YWx1ZXMgMzIuLjY0LCBhbmQKICAgICAgICAgICAgIDkxLi4xMjYpLiAgQW55IHByZWNlZGluZyAndGhlJyBpbiB0aGUgbmFtZSBTSE9VTEQgTk9UIGJlCiAgICAgICAgICAgICBpbmNsdWRlZC4iOwogICAgICAgICAgcmVmZXJlbmNlCiAgICAgICAgICAgICJodHRwczovL3d3dy5pYXUub3JnLyI7CiAgICAgICAgfQogICAgICAgIGNvbnRhaW5lciBnZW9kZXRpYy1zeXN0ZW0gewogICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIlRoZSBnZW9kZXRpYyBzeXN0ZW0gb2YgdGhlIGxvY2F0aW9uIGRhdGEuIjsKICAgICAgICAgIGxlYWYgZ2VvZGV0aWMtZGF0dW0gewogICAgICAgICAgICB0eXBlIHN0cmluZyB7CiAgICAgICAgICAgICAgcGF0dGVybiAnWyAtQFxbLVxeXy1+XSonOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgIkEgZ2VvZGV0aWMtZGF0dW0gZGVmaW5pbmcgdGhlIG1lYW5pbmcgb2YgbGF0aXR1ZGUsCiAgICAgICAgICAgICAgIGxvbmdpdHVkZSwgYW5kIGhlaWdodC4gIFRoZSBkZWZhdWx0IHdoZW4gdGhlCiAgICAgICAgICAgICAgIGFzdHJvbm9taWNhbCBib2R5IGlzICdlYXJ0aCcgaXMgJ3dncy04NCcsIHdoaWNoIGlzCiAgICAgICAgICAgICAgIHVzZWQgYnkgdGhlIEdsb2JhbCBQb3NpdGlvbmluZyBTeXN0ZW0gKEdQUykuICBUaGUKICAgICAgICAgICAgICAgQVNDSUkgdmFsdWUgU0hPVUxEIGhhdmUgdXBwZXJjYXNlIGNvbnZlcnRlZCB0bwogICAgICAgICAgICAgICBsb3dlcmNhc2UgYW5kIG5vdCBpbmNsdWRlIGNvbnRyb2wgY2hhcmFjdGVycwogICAgICAgICAgICAgICAoaS5lLiwgdmFsdWVzIDMyLi42NCwgYW5kIDkxLi4xMjYpLiAgVGhlIElBTkEgcmVnaXN0cnkKICAgICAgICAgICAgICAgZnVydGhlciByZXN0cmljdHMgdGhlIHZhbHVlIGJ5IGNvbnZlcnRpbmcgYWxsIHNwYWNlcwogICAgICAgICAgICAgICAoJyAnKSB0byBkYXNoZXMgKCctJykuCiAgICAgICAgICAgICAgIFRoZSBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2VvZGV0aWMtZGF0dW0gaW5kaWNhdGVzCiAgICAgICAgICAgICAgIGhvdyBhY2N1cmF0ZWx5IGl0IG1vZGVscyB0aGUgYXN0cm9ub21pY2FsIGJvZHkgaW4KICAgICAgICAgICAgICAgcXVlc3Rpb24sIGJvdGggZm9yIHRoZSAnaG9yaXpvbnRhbCcKICAgICAgICAgICAgICAgbGF0aXR1ZGUvbG9uZ2l0dWRlIGNvb3JkaW5hdGVzIGFuZCBmb3IgaGVpZ2h0CiAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzLiI7CiAgICAgICAgICAgIHJlZmVyZW5jZQogICAgICAgICAgICAgICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucywKICAgICAgICAgICAgICAgU2VjdGlvbiA2LjEiOwogICAgICAgICAgfQogICAgICAgICAgbGVhZiBjb29yZC1hY2N1cmFjeSB7CiAgICAgICAgICAgIHR5cGUgZGVjaW1hbDY0IHsKICAgICAgICAgICAgICBmcmFjdGlvbi1kaWdpdHMgNjsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICJUaGUgYWNjdXJhY3kgb2YgdGhlIGxhdGl0dWRlL2xvbmdpdHVkZSBwYWlyIGZvcgogICAgICAgICAgICAgICBlbGxpcHNvaWRhbCBjb29yZGluYXRlcywgb3IgdGhlIFgsIFksIGFuZCBaIGNvbXBvbmVudHMKICAgICAgICAgICAgICAgZm9yIENhcnRlc2lhbiBjb29yZGluYXRlcy4gIFdoZW4gY29vcmQtYWNjdXJhY3kgaXMKICAgICAgICAgICAgICAgc3BlY2lmaWVkLCBpdCBpbmRpY2F0ZXMgaG93IHByZWNpc2VseSB0aGUgY29vcmRpbmF0ZXMKICAgICAgICAgICAgICAgaW4gdGhlIGFzc29jaWF0ZWQgbGlzdCBvZiBsb2NhdGlvbnMgaGF2ZSBiZWVuCiAgICAgICAgICAgICAgIGRldGVybWluZWQgd2l0aCByZXNwZWN0IHRvIHRoZSBjb29yZGluYXRlIHN5c3RlbQogICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSBnZW9kZXRpYy1kYXR1bS4gIEZvciBleGFtcGxlLCB0aGVyZQogICAgICAgICAgICAgICBtaWdodCBiZSB1bmNlcnRhaW50eSBkdWUgdG8gbWVhc3VyZW1lbnQgZXJyb3IgaWYgYW4KICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsIG1lYXN1cmVtZW50IHdhcyBtYWRlIHRvIGRldGVybWluZSBlYWNoCiAgICAgICAgICAgICAgIGxvY2F0aW9uLiI7CiAgICAgICAgICB9CiAgICAgICAgICBsZWFmIGhlaWdodC1hY2N1cmFjeSB7CiAgICAgICAgICAgIHR5cGUgZGVjaW1hbDY0IHsKICAgICAgICAgICAgICBmcmFjdGlvbi1kaWdpdHMgNjsKICAgICAgICAgICAgfQogICAgICAgICAgICB1bml0cyAibWV0ZXJzIjsKICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAiVGhlIGFjY3VyYWN5IG9mIHRoZSBoZWlnaHQgdmFsdWUgZm9yIGVsbGlwc29pZGFsCiAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzOyB0aGlzIHZhbHVlIGlzIG5vdCB1c2VkIHdpdGggQ2FydGVzaWFuCiAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzLiAgV2hlbiBoZWlnaHQtYWNjdXJhY3kgaXMgc3BlY2lmaWVkLCBpdAogICAgICAgICAgICAgICBpbmRpY2F0ZXMgaG93IHByZWNpc2VseSB0aGUgaGVpZ2h0cyBpbiB0aGUKICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBsaXN0IG9mIGxvY2F0aW9ucyBoYXZlIGJlZW4gZGV0ZXJtaW5lZAogICAgICAgICAgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGRlZmluZWQgYnkgdGhlCiAgICAgICAgICAgICAgIGdlb2RldGljLWRhdHVtLiAgRm9yIGV4YW1wbGUsIHRoZXJlIG1pZ2h0IGJlCiAgICAgICAgICAgICAgIHVuY2VydGFpbnR5IGR1ZSB0byBtZWFzdXJlbWVudCBlcnJvciBpZiBhbgogICAgICAgICAgICAgICBleHBlcmltZW50YWwgbWVhc3VyZW1lbnQgd2FzIG1hZGUgdG8gZGV0ZXJtaW5lIGVhY2gKICAgICAgICAgICAgICAgbG9jYXRpb24uIjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgY2hvaWNlIGxvY2F0aW9uIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgIlRoZSBsb2NhdGlvbiBkYXRhIGVpdGhlciBpbiBsYXRpdHVkZS9sb25naXR1ZGUgb3IKICAgICAgICAgICBDYXJ0ZXNpYW4gdmFsdWVzIjsKICAgICAgICBjYXNlIGVsbGlwc29pZCB7CiAgICAgICAgICBsZWFmIGxhdGl0dWRlIHsKICAgICAgICAgICAgdHlwZSBkZWNpbWFsNjQgewogICAgICAgICAgICAgIGZyYWN0aW9uLWRpZ2l0cyAxNjsKICAgICAgICAgICAgfQogICAgICAgICAgICB1bml0cyAiZGVjaW1hbCBkZWdyZWVzIjsKICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAiVGhlIGxhdGl0dWRlIHZhbHVlIG9uIHRoZSBhc3Ryb25vbWljYWwgYm9keS4gIFRoZQogICAgICAgICAgICAgICBkZWZpbml0aW9uIGFuZCBwcmVjaXNpb24gb2YgdGhpcyBtZWFzdXJlbWVudCBpcwogICAgICAgICAgICAgICBpbmRpY2F0ZWQgYnkgdGhlIHJlZmVyZW5jZS1mcmFtZS4iOwogICAgICAgICAgfQogICAgICAgICAgbGVhZiBsb25naXR1ZGUgewogICAgICAgICAgICB0eXBlIGRlY2ltYWw2NCB7CiAgICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDE2OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHVuaXRzICJkZWNpbWFsIGRlZ3JlZXMiOwogICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICJUaGUgbG9uZ2l0dWRlIHZhbHVlIG9uIHRoZSBhc3Ryb25vbWljYWwgYm9keS4gIFRoZQogICAgICAgICAgICAgICBkZWZpbml0aW9uIGFuZCBwcmVjaXNpb24gb2YgdGhpcyBtZWFzdXJlbWVudCBpcwogICAgICAgICAgICAgICBpbmRpY2F0ZWQgYnkgdGhlIHJlZmVyZW5jZS1mcmFtZS4iOwogICAgICAgICAgfQogICAgICAgICAgbGVhZiBoZWlnaHQgewogICAgICAgICAgICB0eXBlIGRlY2ltYWw2NCB7CiAgICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDY7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdW5pdHMgIm1ldGVycyI7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgIkhlaWdodCBmcm9tIGEgcmVmZXJlbmNlIDAgdmFsdWUuICBUaGUgcHJlY2lzaW9uIGFuZAogICAgICAgICAgICAgICAnMCcgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgcmVmZXJlbmNlLWZyYW1lLiI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhc2UgY2FydGVzaWFuIHsKICAgICAgICAgIGxlYWYgeCB7CiAgICAgICAgICAgIHR5cGUgZGVjaW1hbDY0IHsKICAgICAgICAgICAgICBmcmFjdGlvbi1kaWdpdHMgNjsKICAgICAgICAgICAgfQogICAgICAgICAgICB1bml0cyAibWV0ZXJzIjsKICAgICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgICAiVGhlIFggdmFsdWUgYXMgZGVmaW5lZCBieSB0aGUgcmVmZXJlbmNlLWZyYW1lLiI7CiAgICAgICAgICB9CiAgICAgICAgICBsZWFmIHkgewogICAgICAgICAgICB0eXBlIGRlY2ltYWw2NCB7CiAgICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDY7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdW5pdHMgIm1ldGVycyI7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgIlRoZSBZIHZhbHVlIGFzIGRlZmluZWQgYnkgdGhlIHJlZmVyZW5jZS1mcmFtZS4iOwogICAgICAgICAgfQogICAgICAgICAgbGVhZiB6IHsKICAgICAgICAgICAgdHlwZSBkZWNpbWFsNjQgewogICAgICAgICAgICAgIGZyYWN0aW9uLWRpZ2l0cyA2OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHVuaXRzICJtZXRlcnMiOwogICAgICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICJUaGUgWiB2YWx1ZSBhcyBkZWZpbmVkIGJ5IHRoZSByZWZlcmVuY2UtZnJhbWUuIjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgY29udGFpbmVyIHZlbG9jaXR5IHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgIklmIHRoZSBvYmplY3QgaXMgaW4gbW90aW9uLCB0aGUgdmVsb2NpdHkgdmVjdG9yIGRlc2NyaWJlcwogICAgICAgICAgIHRoaXMgbW90aW9uIGF0IHRoZSB0aW1lIGdpdmVuIGJ5IHRoZSB0aW1lc3RhbXAuICBGb3IgYQogICAgICAgICAgIGZvcm11bGEgdG8gY29udmVydCB0aGVzZSB2YWx1ZXMgdG8gc3BlZWQgYW5kIGhlYWRpbmcsIHNlZQogICAgICAgICAgIFJGQyA5MTc5LiI7CiAgICAgICAgcmVmZXJlbmNlCiAgICAgICAgICAiUkZDIDkxNzk6IEEgWUFORyBHcm91cGluZyBmb3IgR2VvZ3JhcGhpYyBMb2NhdGlvbnMiOwoKICAgICAgICBsZWFmIHYtbm9ydGggewogICAgICAgICAgdHlwZSBkZWNpbWFsNjQgewogICAgICAgICAgICBmcmFjdGlvbi1kaWdpdHMgMTI7CiAgICAgICAgICB9CiAgICAgICAgICB1bml0cyAibWV0ZXJzIHBlciBzZWNvbmQiOwogICAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgInYtbm9ydGggaXMgdGhlIHJhdGUgb2YgY2hhbmdlIChpLmUuLCBzcGVlZCkgdG93YXJkcwogICAgICAgICAgICAgdHJ1ZSBub3J0aCBhcyBkZWZpbmVkIGJ5IHRoZSBnZW9kZXRpYy1zeXN0ZW0uIjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdi1lYXN0IHsKICAgICAgICAgIHR5cGUgZGVjaW1hbDY0IHsKICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDEyOwogICAgICAgICAgfQogICAgICAgICAgdW5pdHMgIm1ldGVycyBwZXIgc2Vjb25kIjsKICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJ2LWVhc3QgaXMgdGhlIHJhdGUgb2YgY2hhbmdlIChpLmUuLCBzcGVlZCkgcGVycGVuZGljdWxhcgogICAgICAgICAgICAgdG8gdGhlIHJpZ2h0IG9mIHRydWUgbm9ydGggYXMgZGVmaW5lZCBieQogICAgICAgICAgICAgdGhlIGdlb2RldGljLXN5c3RlbS4iOwogICAgICAgIH0KCiAgICAgICAgbGVhZiB2LXVwIHsKICAgICAgICAgIHR5cGUgZGVjaW1hbDY0IHsKICAgICAgICAgICAgZnJhY3Rpb24tZGlnaXRzIDEyOwogICAgICAgICAgfQogICAgICAgICAgdW5pdHMgIm1ldGVycyBwZXIgc2Vjb25kIjsKICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJ2LXVwIGlzIHRoZSByYXRlIG9mIGNoYW5nZSAoaS5lLiwgc3BlZWQpIGF3YXkgZnJvbSB0aGUKICAgICAgICAgICAgIGNlbnRlciBvZiBtYXNzLiI7CiAgICAgICAgfQogICAgICB9CiAgICAgIGxlYWYgdGltZXN0YW1wIHsKICAgICAgICB0eXBlIHlhbmc6ZGF0ZS1hbmQtdGltZTsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgIlJlZmVyZW5jZSB0aW1lIHdoZW4gbG9jYXRpb24gd2FzIHJlY29yZGVkLiI7CiAgICAgIH0KICAgICAgbGVhZiB2YWxpZC11bnRpbCB7CiAgICAgICAgdHlwZSB5YW5nOmRhdGUtYW5kLXRpbWU7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICJUaGUgdGltZXN0YW1wIGZvciB3aGljaCB0aGlzIGdlby1sb2NhdGlvbiBpcyB2YWxpZCB1bnRpbC4KICAgICAgICAgICBJZiB1bnNwZWNpZmllZCwgdGhlIGdlby1sb2NhdGlvbiBoYXMgbm8gc3BlY2lmaWMKICAgICAgICAgICBleHBpcmF0aW9uIHRpbWUuIjsKICAgICAgfQogICAgfQogIH0KfQo=
+ietf-inet-types	urn:ietf:params:xml:ns:yang:ietf-inet-types	\N	[]	2013-07-15	bW9kdWxlIGlldGYtaW5ldC10eXBlcyB7CgogIG5hbWVzcGFjZSAidXJuOmlldGY6cGFyYW1zOnhtbDpuczp5YW5nOmlldGYtaW5ldC10eXBlcyI7CiAgcHJlZml4ICJpbmV0IjsKCiAgb3JnYW5pemF0aW9uCiAgICJJRVRGIE5FVE1PRCAoTkVUQ09ORiBEYXRhIE1vZGVsaW5nIExhbmd1YWdlKSBXb3JraW5nIEdyb3VwIjsKCiAgY29udGFjdAogICAiV0cgV2ViOiAgIDxodHRwOi8vdG9vbHMuaWV0Zi5vcmcvd2cvbmV0bW9kLz4KICAgIFdHIExpc3Q6ICA8bWFpbHRvOm5ldG1vZEBpZXRmLm9yZz4KCiAgICBXRyBDaGFpcjogRGF2aWQgS2Vzc2VucwogICAgICAgICAgICAgIDxtYWlsdG86ZGF2aWQua2Vzc2Vuc0Buc24uY29tPgoKICAgIFdHIENoYWlyOiBKdWVyZ2VuIFNjaG9lbndhZWxkZXIKICAgICAgICAgICAgICA8bWFpbHRvOmouc2Nob2Vud2FlbGRlckBqYWNvYnMtdW5pdmVyc2l0eS5kZT4KCiAgICBFZGl0b3I6ICAgSnVlcmdlbiBTY2hvZW53YWVsZGVyCiAgICAgICAgICAgICAgPG1haWx0bzpqLnNjaG9lbndhZWxkZXJAamFjb2JzLXVuaXZlcnNpdHkuZGU+IjsKCiAgZGVzY3JpcHRpb24KICAgIlRoaXMgbW9kdWxlIGNvbnRhaW5zIGEgY29sbGVjdGlvbiBvZiBnZW5lcmFsbHkgdXNlZnVsIGRlcml2ZWQKICAgIFlBTkcgZGF0YSB0eXBlcyBmb3IgSW50ZXJuZXQgYWRkcmVzc2VzIGFuZCByZWxhdGVkIHRoaW5ncy4KCiAgICBDb3B5cmlnaHQgKGMpIDIwMTMgSUVURiBUcnVzdCBhbmQgdGhlIHBlcnNvbnMgaWRlbnRpZmllZCBhcwogICAgYXV0aG9ycyBvZiB0aGUgY29kZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgogICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGlzIHBlcm1pdHRlZCBwdXJzdWFudCB0bywgYW5kIHN1YmplY3QKICAgIHRvIHRoZSBsaWNlbnNlIHRlcm1zIGNvbnRhaW5lZCBpbiwgdGhlIFNpbXBsaWZpZWQgQlNEIExpY2Vuc2UKICAgIHNldCBmb3J0aCBpbiBTZWN0aW9uIDQuYyBvZiB0aGUgSUVURiBUcnVzdCdzIExlZ2FsIFByb3Zpc2lvbnMKICAgIFJlbGF0aW5nIHRvIElFVEYgRG9jdW1lbnRzCiAgICAoaHR0cDovL3RydXN0ZWUuaWV0Zi5vcmcvbGljZW5zZS1pbmZvKS4KCiAgICBUaGlzIHZlcnNpb24gb2YgdGhpcyBZQU5HIG1vZHVsZSBpcyBwYXJ0IG9mIFJGQyA2OTkxOyBzZWUKICAgIHRoZSBSRkMgaXRzZWxmIGZvciBmdWxsIGxlZ2FsIG5vdGljZXMuIjsKCiAgcmV2aXNpb24gMjAxMy0wNy0xNSB7CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGlzIHJldmlzaW9uIGFkZHMgdGhlIGZvbGxvd2luZyBuZXcgZGF0YSB0eXBlczoKICAgICAgLSBpcC1hZGRyZXNzLW5vLXpvbmUKICAgICAgLSBpcHY0LWFkZHJlc3Mtbm8tem9uZQogICAgICAtIGlwdjYtYWRkcmVzcy1uby16b25lIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNjk5MTogQ29tbW9uIFlBTkcgRGF0YSBUeXBlcyI7CiAgfQoKICByZXZpc2lvbiAyMDEwLTA5LTI0IHsKICAgIGRlc2NyaXB0aW9uCiAgICAgIkluaXRpYWwgcmV2aXNpb24uIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNjAyMTogQ29tbW9uIFlBTkcgRGF0YSBUeXBlcyI7CiAgfQoKICAvKioqIGNvbGxlY3Rpb24gb2YgdHlwZXMgcmVsYXRlZCB0byBwcm90b2NvbCBmaWVsZHMgKioqLwoKICB0eXBlZGVmIGlwLXZlcnNpb24gewogICAgdHlwZSBlbnVtZXJhdGlvbiB7CiAgICAgIGVudW0gdW5rbm93biB7CiAgICAgICAgdmFsdWUgIjAiOwogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICJBbiB1bmtub3duIG9yIHVuc3BlY2lmaWVkIHZlcnNpb24gb2YgdGhlIEludGVybmV0CiAgICAgICAgICBwcm90b2NvbC4iOwogICAgICB9CiAgICAgIGVudW0gaXB2NCB7CiAgICAgICAgdmFsdWUgIjEiOwogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICJUaGUgSVB2NCBwcm90b2NvbCBhcyBkZWZpbmVkIGluIFJGQyA3OTEuIjsKICAgICAgfQogICAgICBlbnVtIGlwdjYgewogICAgICAgIHZhbHVlICIyIjsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAiVGhlIElQdjYgcHJvdG9jb2wgYXMgZGVmaW5lZCBpbiBSRkMgMjQ2MC4iOwogICAgICB9CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGlzIHZhbHVlIHJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgdGhlIElQIHByb3RvY29sLgoKICAgICAgSW4gdGhlIHZhbHVlIHNldCBhbmQgaXRzIHNlbWFudGljcywgdGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQKICAgICAgdG8gdGhlIEluZXRWZXJzaW9uIHRleHR1YWwgY29udmVudGlvbiBvZiB0aGUgU01JdjIuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgIDc5MTogSW50ZXJuZXQgUHJvdG9jb2wKICAgICAgUkZDIDI0NjA6IEludGVybmV0IFByb3RvY29sLCBWZXJzaW9uIDYgKElQdjYpIFNwZWNpZmljYXRpb24KICAgICAgUkZDIDQwMDE6IFRleHR1YWwgQ29udmVudGlvbnMgZm9yIEludGVybmV0IE5ldHdvcmsgQWRkcmVzc2VzIjsKICB9CgogIHR5cGVkZWYgZHNjcCB7CiAgICB0eXBlIHVpbnQ4IHsKICAgICAgcmFuZ2UgIjAuLjYzIjsKICAgIH0KICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBkc2NwIHR5cGUgcmVwcmVzZW50cyBhIERpZmZlcmVudGlhdGVkIFNlcnZpY2VzIENvZGUgUG9pbnQKICAgICAgdGhhdCBtYXkgYmUgdXNlZCBmb3IgbWFya2luZyBwYWNrZXRzIGluIGEgdHJhZmZpYyBzdHJlYW0uCiAgICAgIEluIHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBpcyBlcXVpdmFsZW50CiAgICAgIHRvIHRoZSBEc2NwIHRleHR1YWwgY29udmVudGlvbiBvZiB0aGUgU01JdjIuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgMzI4OTogTWFuYWdlbWVudCBJbmZvcm1hdGlvbiBCYXNlIGZvciB0aGUgRGlmZmVyZW50aWF0ZWQKICAgICAgICAgICAgICAgIFNlcnZpY2VzIEFyY2hpdGVjdHVyZQogICAgICBSRkMgMjQ3NDogRGVmaW5pdGlvbiBvZiB0aGUgRGlmZmVyZW50aWF0ZWQgU2VydmljZXMgRmllbGQKICAgICAgICAgICAgICAgIChEUyBGaWVsZCkgaW4gdGhlIElQdjQgYW5kIElQdjYgSGVhZGVycwogICAgICBSRkMgMjc4MDogSUFOQSBBbGxvY2F0aW9uIEd1aWRlbGluZXMgRm9yIFZhbHVlcyBJbgogICAgICAgICAgICAgICAgdGhlIEludGVybmV0IFByb3RvY29sIGFuZCBSZWxhdGVkIEhlYWRlcnMiOwogIH0KCiAgdHlwZWRlZiBpcHY2LWZsb3ctbGFiZWwgewogICAgdHlwZSB1aW50MzIgewogICAgICByYW5nZSAiMC4uMTA0ODU3NSI7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgaXB2Ni1mbG93LWxhYmVsIHR5cGUgcmVwcmVzZW50cyB0aGUgZmxvdyBpZGVudGlmaWVyIG9yIEZsb3cKICAgICAgTGFiZWwgaW4gYW4gSVB2NiBwYWNrZXQgaGVhZGVyIHRoYXQgbWF5IGJlIHVzZWQgdG8KICAgICAgZGlzY3JpbWluYXRlIHRyYWZmaWMgZmxvd3MuCgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgSVB2NkZsb3dMYWJlbCB0ZXh0dWFsIGNvbnZlbnRpb24gb2YgdGhlIFNNSXYyLiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDM1OTU6IFRleHR1YWwgQ29udmVudGlvbnMgZm9yIElQdjYgRmxvdyBMYWJlbAogICAgICBSRkMgMjQ2MDogSW50ZXJuZXQgUHJvdG9jb2wsIFZlcnNpb24gNiAoSVB2NikgU3BlY2lmaWNhdGlvbiI7CiAgfQoKICB0eXBlZGVmIHBvcnQtbnVtYmVyIHsKICAgIHR5cGUgdWludDE2IHsKICAgICAgcmFuZ2UgIjAuLjY1NTM1IjsKICAgIH0KICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBwb3J0LW51bWJlciB0eXBlIHJlcHJlc2VudHMgYSAxNi1iaXQgcG9ydCBudW1iZXIgb2YgYW4KICAgICAgSW50ZXJuZXQgdHJhbnNwb3J0LWxheWVyIHByb3RvY29sIHN1Y2ggYXMgVURQLCBUQ1AsIERDQ1AsIG9yCiAgICAgIFNDVFAuICBQb3J0IG51bWJlcnMgYXJlIGFzc2lnbmVkIGJ5IElBTkEuICBBIGN1cnJlbnQgbGlzdCBvZgogICAgICBhbGwgYXNzaWdubWVudHMgaXMgYXZhaWxhYmxlIGZyb20gPGh0dHA6Ly93d3cuaWFuYS5vcmcvPi4KCiAgICAgIE5vdGUgdGhhdCB0aGUgcG9ydCBudW1iZXIgdmFsdWUgemVybyBpcyByZXNlcnZlZCBieSBJQU5BLiAgSW4KICAgICAgc2l0dWF0aW9ucyB3aGVyZSB0aGUgdmFsdWUgemVybyBkb2VzIG5vdCBtYWtlIHNlbnNlLCBpdCBjYW4KICAgICAgYmUgZXhjbHVkZWQgYnkgc3VidHlwaW5nIHRoZSBwb3J0LW51bWJlciB0eXBlLgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgSW5ldFBvcnROdW1iZXIgdGV4dHVhbCBjb252ZW50aW9uIG9mIHRoZSBTTUl2Mi4iOwogICAgcmVmZXJlbmNlCiAgICAgIlJGQyAgNzY4OiBVc2VyIERhdGFncmFtIFByb3RvY29sCiAgICAgIFJGQyAgNzkzOiBUcmFuc21pc3Npb24gQ29udHJvbCBQcm90b2NvbAogICAgICBSRkMgNDk2MDogU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sCiAgICAgIFJGQyA0MzQwOiBEYXRhZ3JhbSBDb25nZXN0aW9uIENvbnRyb2wgUHJvdG9jb2wgKERDQ1ApCiAgICAgIFJGQyA0MDAxOiBUZXh0dWFsIENvbnZlbnRpb25zIGZvciBJbnRlcm5ldCBOZXR3b3JrIEFkZHJlc3NlcyI7CiAgfQoKICAvKioqIGNvbGxlY3Rpb24gb2YgdHlwZXMgcmVsYXRlZCB0byBhdXRvbm9tb3VzIHN5c3RlbXMgKioqLwoKICB0eXBlZGVmIGFzLW51bWJlciB7CiAgICB0eXBlIHVpbnQzMjsKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBhcy1udW1iZXIgdHlwZSByZXByZXNlbnRzIGF1dG9ub21vdXMgc3lzdGVtIG51bWJlcnMKICAgICAgd2hpY2ggaWRlbnRpZnkgYW4gQXV0b25vbW91cyBTeXN0ZW0gKEFTKS4gIEFuIEFTIGlzIGEgc2V0CiAgICAgIG9mIHJvdXRlcnMgdW5kZXIgYSBzaW5nbGUgdGVjaG5pY2FsIGFkbWluaXN0cmF0aW9uLCB1c2luZwogICAgICBhbiBpbnRlcmlvciBnYXRld2F5IHByb3RvY29sIGFuZCBjb21tb24gbWV0cmljcyB0byByb3V0ZQogICAgICBwYWNrZXRzIHdpdGhpbiB0aGUgQVMsIGFuZCB1c2luZyBhbiBleHRlcmlvciBnYXRld2F5CiAgICAgIHByb3RvY29sIHRvIHJvdXRlIHBhY2tldHMgdG8gb3RoZXIgQVNlcy4gIElBTkEgbWFpbnRhaW5zCiAgICAgIHRoZSBBUyBudW1iZXIgc3BhY2UgYW5kIGhhcyBkZWxlZ2F0ZWQgbGFyZ2UgcGFydHMgdG8gdGhlCiAgICAgIHJlZ2lvbmFsIHJlZ2lzdHJpZXMuCgogICAgICBBdXRvbm9tb3VzIHN5c3RlbSBudW1iZXJzIHdlcmUgb3JpZ2luYWxseSBsaW1pdGVkIHRvIDE2CiAgICAgIGJpdHMuICBCR1AgZXh0ZW5zaW9ucyBoYXZlIGVubGFyZ2VkIHRoZSBhdXRvbm9tb3VzIHN5c3RlbQogICAgICBudW1iZXIgc3BhY2UgdG8gMzIgYml0cy4gIFRoaXMgdHlwZSB0aGVyZWZvcmUgdXNlcyBhbiB1aW50MzIKICAgICAgYmFzZSB0eXBlIHdpdGhvdXQgYSByYW5nZSByZXN0cmljdGlvbiBpbiBvcmRlciB0byBzdXBwb3J0CiAgICAgIGEgbGFyZ2VyIGF1dG9ub21vdXMgc3lzdGVtIG51bWJlciBzcGFjZS4KCiAgICAgIEluIHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBpcyBlcXVpdmFsZW50CiAgICAgIHRvIHRoZSBJbmV0QXV0b25vbW91c1N5c3RlbU51bWJlciB0ZXh0dWFsIGNvbnZlbnRpb24gb2YKICAgICAgdGhlIFNNSXYyLiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDE5MzA6IEd1aWRlbGluZXMgZm9yIGNyZWF0aW9uLCBzZWxlY3Rpb24sIGFuZCByZWdpc3RyYXRpb24KICAgICAgICAgICAgICAgIG9mIGFuIEF1dG9ub21vdXMgU3lzdGVtIChBUykKICAgICAgUkZDIDQyNzE6IEEgQm9yZGVyIEdhdGV3YXkgUHJvdG9jb2wgNCAoQkdQLTQpCiAgICAgIFJGQyA0MDAxOiBUZXh0dWFsIENvbnZlbnRpb25zIGZvciBJbnRlcm5ldCBOZXR3b3JrIEFkZHJlc3NlcwogICAgICBSRkMgNjc5MzogQkdQIFN1cHBvcnQgZm9yIEZvdXItT2N0ZXQgQXV0b25vbW91cyBTeXN0ZW0gKEFTKQogICAgICAgICAgICAgICAgTnVtYmVyIFNwYWNlIjsKICB9CgogIC8qKiogY29sbGVjdGlvbiBvZiB0eXBlcyByZWxhdGVkIHRvIElQIGFkZHJlc3NlcyBhbmQgaG9zdG5hbWVzICoqKi8KCiAgdHlwZWRlZiBpcC1hZGRyZXNzIHsKICAgIHR5cGUgdW5pb24gewogICAgICB0eXBlIGluZXQ6aXB2NC1hZGRyZXNzOwogICAgICB0eXBlIGluZXQ6aXB2Ni1hZGRyZXNzOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAiVGhlIGlwLWFkZHJlc3MgdHlwZSByZXByZXNlbnRzIGFuIElQIGFkZHJlc3MgYW5kIGlzIElQCiAgICAgIHZlcnNpb24gbmV1dHJhbC4gIFRoZSBmb3JtYXQgb2YgdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24KICAgICAgaW1wbGllcyB0aGUgSVAgdmVyc2lvbi4gIFRoaXMgdHlwZSBzdXBwb3J0cyBzY29wZWQgYWRkcmVzc2VzCiAgICAgIGJ5IGFsbG93aW5nIHpvbmUgaWRlbnRpZmllcnMgaW4gdGhlIGFkZHJlc3MgZm9ybWF0LiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDQwMDc6IElQdjYgU2NvcGVkIEFkZHJlc3MgQXJjaGl0ZWN0dXJlIjsKICB9CgogIHR5cGVkZWYgaXB2NC1hZGRyZXNzIHsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybgogICAgICAgICcoKFswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSlcLil7M30nCiAgICAgICsgICcoWzAtOV18WzEtOV1bMC05XXwxWzAtOV1bMC05XXwyWzAtNF1bMC05XXwyNVswLTVdKScKICAgICAgKyAnKCVbXHB7Tn1ccHtMfV0rKT8nOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAgIlRoZSBpcHY0LWFkZHJlc3MgdHlwZSByZXByZXNlbnRzIGFuIElQdjQgYWRkcmVzcyBpbgogICAgICAgZG90dGVkLXF1YWQgbm90YXRpb24uICBUaGUgSVB2NCBhZGRyZXNzIG1heSBpbmNsdWRlIGEgem9uZQogICAgICAgaW5kZXgsIHNlcGFyYXRlZCBieSBhICUgc2lnbi4KCiAgICAgICBUaGUgem9uZSBpbmRleCBpcyB1c2VkIHRvIGRpc2FtYmlndWF0ZSBpZGVudGljYWwgYWRkcmVzcwogICAgICAgdmFsdWVzLiAgRm9yIGxpbmstbG9jYWwgYWRkcmVzc2VzLCB0aGUgem9uZSBpbmRleCB3aWxsCiAgICAgICB0eXBpY2FsbHkgYmUgdGhlIGludGVyZmFjZSBpbmRleCBudW1iZXIgb3IgdGhlIG5hbWUgb2YgYW4KICAgICAgIGludGVyZmFjZS4gIElmIHRoZSB6b25lIGluZGV4IGlzIG5vdCBwcmVzZW50LCB0aGUgZGVmYXVsdAogICAgICAgem9uZSBvZiB0aGUgZGV2aWNlIHdpbGwgYmUgdXNlZC4KCiAgICAgICBUaGUgY2Fub25pY2FsIGZvcm1hdCBmb3IgdGhlIHpvbmUgaW5kZXggaXMgdGhlIG51bWVyaWNhbAogICAgICAgZm9ybWF0IjsKICB9CgogIHR5cGVkZWYgaXB2Ni1hZGRyZXNzIHsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybiAnKCg6fFswLTlhLWZBLUZdezAsNH0pOikoWzAtOWEtZkEtRl17MCw0fTopezAsNX0nCiAgICAgICAgICAgICsgJygoKFswLTlhLWZBLUZdezAsNH06KT8oOnxbMC05YS1mQS1GXXswLDR9KSl8JwogICAgICAgICAgICArICcoKCgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV0/WzAtOV0pXC4pezN9JwogICAgICAgICAgICArICcoMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldP1swLTldKSkpJwogICAgICAgICAgICArICcoJVtccHtOfVxwe0x9XSspPyc7CiAgICAgIHBhdHRlcm4gJygoW146XSs6KXs2fSgoW146XSs6W146XSspfCguKlwuLiopKSl8JwogICAgICAgICAgICArICcoKChbXjpdKzopKlteOl0rKT86OigoW146XSs6KSpbXjpdKyk/KScKICAgICAgICAgICAgKyAnKCUuKyk/JzsKICAgIH0KICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBpcHY2LWFkZHJlc3MgdHlwZSByZXByZXNlbnRzIGFuIElQdjYgYWRkcmVzcyBpbiBmdWxsLAogICAgICBtaXhlZCwgc2hvcnRlbmVkLCBhbmQgc2hvcnRlbmVkLW1peGVkIG5vdGF0aW9uLiAgVGhlIElQdjYKICAgICAgYWRkcmVzcyBtYXkgaW5jbHVkZSBhIHpvbmUgaW5kZXgsIHNlcGFyYXRlZCBieSBhICUgc2lnbi4KCiAgICAgIFRoZSB6b25lIGluZGV4IGlzIHVzZWQgdG8gZGlzYW1iaWd1YXRlIGlkZW50aWNhbCBhZGRyZXNzCiAgICAgIHZhbHVlcy4gIEZvciBsaW5rLWxvY2FsIGFkZHJlc3NlcywgdGhlIHpvbmUgaW5kZXggd2lsbAogICAgICB0eXBpY2FsbHkgYmUgdGhlIGludGVyZmFjZSBpbmRleCBudW1iZXIgb3IgdGhlIG5hbWUgb2YgYW4KICAgICAgaW50ZXJmYWNlLiAgSWYgdGhlIHpvbmUgaW5kZXggaXMgbm90IHByZXNlbnQsIHRoZSBkZWZhdWx0CiAgICAgIHpvbmUgb2YgdGhlIGRldmljZSB3aWxsIGJlIHVzZWQuCgogICAgICBUaGUgY2Fub25pY2FsIGZvcm1hdCBvZiBJUHY2IGFkZHJlc3NlcyB1c2VzIHRoZSB0ZXh0dWFsCiAgICAgIHJlcHJlc2VudGF0aW9uIGRlZmluZWQgaW4gU2VjdGlvbiA0IG9mIFJGQyA1OTUyLiAgVGhlCiAgICAgIGNhbm9uaWNhbCBmb3JtYXQgZm9yIHRoZSB6b25lIGluZGV4IGlzIHRoZSBudW1lcmljYWwKICAgICAgZm9ybWF0IGFzIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDExLjIgb2YgUkZDIDQwMDcuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNDI5MTogSVAgVmVyc2lvbiA2IEFkZHJlc3NpbmcgQXJjaGl0ZWN0dXJlCiAgICAgIFJGQyA0MDA3OiBJUHY2IFNjb3BlZCBBZGRyZXNzIEFyY2hpdGVjdHVyZQogICAgICBSRkMgNTk1MjogQSBSZWNvbW1lbmRhdGlvbiBmb3IgSVB2NiBBZGRyZXNzIFRleHQKICAgICAgICAgICAgICAgIFJlcHJlc2VudGF0aW9uIjsKICB9CgogIHR5cGVkZWYgaXAtYWRkcmVzcy1uby16b25lIHsKICAgIHR5cGUgdW5pb24gewogICAgICB0eXBlIGluZXQ6aXB2NC1hZGRyZXNzLW5vLXpvbmU7CiAgICAgIHR5cGUgaW5ldDppcHY2LWFkZHJlc3Mtbm8tem9uZTsKICAgIH0KICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBpcC1hZGRyZXNzLW5vLXpvbmUgdHlwZSByZXByZXNlbnRzIGFuIElQIGFkZHJlc3MgYW5kIGlzCiAgICAgIElQIHZlcnNpb24gbmV1dHJhbC4gIFRoZSBmb3JtYXQgb2YgdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24KICAgICAgaW1wbGllcyB0aGUgSVAgdmVyc2lvbi4gIFRoaXMgdHlwZSBkb2VzIG5vdCBzdXBwb3J0IHNjb3BlZAogICAgICBhZGRyZXNzZXMgc2luY2UgaXQgZG9lcyBub3QgYWxsb3cgem9uZSBpZGVudGlmaWVycyBpbiB0aGUKICAgICAgYWRkcmVzcyBmb3JtYXQuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNDAwNzogSVB2NiBTY29wZWQgQWRkcmVzcyBBcmNoaXRlY3R1cmUiOwogIH0KCiAgdHlwZWRlZiBpcHY0LWFkZHJlc3Mtbm8tem9uZSB7CiAgICB0eXBlIGluZXQ6aXB2NC1hZGRyZXNzIHsKICAgICAgcGF0dGVybiAnWzAtOVwuXSonOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAgIkFuIElQdjQgYWRkcmVzcyB3aXRob3V0IGEgem9uZSBpbmRleC4gIFRoaXMgdHlwZSwgZGVyaXZlZCBmcm9tCiAgICAgICBpcHY0LWFkZHJlc3MsIG1heSBiZSB1c2VkIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHpvbmUgaXMKICAgICAgIGtub3duIGZyb20gdGhlIGNvbnRleHQgYW5kIGhlbmNlIG5vIHpvbmUgaW5kZXggaXMgbmVlZGVkLiI7CiAgfQoKICB0eXBlZGVmIGlwdjYtYWRkcmVzcy1uby16b25lIHsKICAgIHR5cGUgaW5ldDppcHY2LWFkZHJlc3MgewogICAgICBwYXR0ZXJuICdbMC05YS1mQS1GOlwuXSonOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAgIkFuIElQdjYgYWRkcmVzcyB3aXRob3V0IGEgem9uZSBpbmRleC4gIFRoaXMgdHlwZSwgZGVyaXZlZCBmcm9tCiAgICAgICBpcHY2LWFkZHJlc3MsIG1heSBiZSB1c2VkIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhlIHpvbmUgaXMKICAgICAgIGtub3duIGZyb20gdGhlIGNvbnRleHQgYW5kIGhlbmNlIG5vIHpvbmUgaW5kZXggaXMgbmVlZGVkLiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDQyOTE6IElQIFZlcnNpb24gNiBBZGRyZXNzaW5nIEFyY2hpdGVjdHVyZQogICAgICBSRkMgNDAwNzogSVB2NiBTY29wZWQgQWRkcmVzcyBBcmNoaXRlY3R1cmUKICAgICAgUkZDIDU5NTI6IEEgUmVjb21tZW5kYXRpb24gZm9yIElQdjYgQWRkcmVzcyBUZXh0CiAgICAgICAgICAgICAgICBSZXByZXNlbnRhdGlvbiI7CiAgfQoKICB0eXBlZGVmIGlwLXByZWZpeCB7CiAgICB0eXBlIHVuaW9uIHsKICAgICAgdHlwZSBpbmV0OmlwdjQtcHJlZml4OwogICAgICB0eXBlIGluZXQ6aXB2Ni1wcmVmaXg7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgaXAtcHJlZml4IHR5cGUgcmVwcmVzZW50cyBhbiBJUCBwcmVmaXggYW5kIGlzIElQCiAgICAgIHZlcnNpb24gbmV1dHJhbC4gIFRoZSBmb3JtYXQgb2YgdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb25zCiAgICAgIGltcGxpZXMgdGhlIElQIHZlcnNpb24uIjsKICB9CgogIHR5cGVkZWYgaXB2NC1wcmVmaXggewogICAgdHlwZSBzdHJpbmcgewogICAgICBwYXR0ZXJuCiAgICAgICAgICcoKFswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSlcLil7M30nCiAgICAgICArICAnKFswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSknCiAgICAgICArICcvKChbMC05XSl8KFsxLTJdWzAtOV0pfCgzWzAtMl0pKSc7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgaXB2NC1wcmVmaXggdHlwZSByZXByZXNlbnRzIGFuIElQdjQgYWRkcmVzcyBwcmVmaXguCiAgICAgIFRoZSBwcmVmaXggbGVuZ3RoIGlzIGdpdmVuIGJ5IHRoZSBudW1iZXIgZm9sbG93aW5nIHRoZQogICAgICBzbGFzaCBjaGFyYWN0ZXIgYW5kIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDMyLgoKICAgICAgQSBwcmVmaXggbGVuZ3RoIHZhbHVlIG9mIG4gY29ycmVzcG9uZHMgdG8gYW4gSVAgYWRkcmVzcwogICAgICBtYXNrIHRoYXQgaGFzIG4gY29udGlndW91cyAxLWJpdHMgZnJvbSB0aGUgbW9zdAogICAgICBzaWduaWZpY2FudCBiaXQgKE1TQikgYW5kIGFsbCBvdGhlciBiaXRzIHNldCB0byAwLgoKICAgICAgVGhlIGNhbm9uaWNhbCBmb3JtYXQgb2YgYW4gSVB2NCBwcmVmaXggaGFzIGFsbCBiaXRzIG9mCiAgICAgIHRoZSBJUHY0IGFkZHJlc3Mgc2V0IHRvIHplcm8gdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlCiAgICAgIElQdjQgcHJlZml4LiI7CiAgfQoKICB0eXBlZGVmIGlwdjYtcHJlZml4IHsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybiAnKCg6fFswLTlhLWZBLUZdezAsNH0pOikoWzAtOWEtZkEtRl17MCw0fTopezAsNX0nCiAgICAgICAgICAgICsgJygoKFswLTlhLWZBLUZdezAsNH06KT8oOnxbMC05YS1mQS1GXXswLDR9KSl8JwogICAgICAgICAgICArICcoKCgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV0/WzAtOV0pXC4pezN9JwogICAgICAgICAgICArICcoMjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldP1swLTldKSkpJwogICAgICAgICAgICArICcoLygoWzAtOV0pfChbMC05XXsyfSl8KDFbMC0xXVswLTldKXwoMTJbMC04XSkpKSc7CiAgICAgIHBhdHRlcm4gJygoW146XSs6KXs2fSgoW146XSs6W146XSspfCguKlwuLiopKSl8JwogICAgICAgICAgICArICcoKChbXjpdKzopKlteOl0rKT86OigoW146XSs6KSpbXjpdKyk/KScKICAgICAgICAgICAgKyAnKC8uKyknOwogICAgfQoKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBpcHY2LXByZWZpeCB0eXBlIHJlcHJlc2VudHMgYW4gSVB2NiBhZGRyZXNzIHByZWZpeC4KICAgICAgVGhlIHByZWZpeCBsZW5ndGggaXMgZ2l2ZW4gYnkgdGhlIG51bWJlciBmb2xsb3dpbmcgdGhlCiAgICAgIHNsYXNoIGNoYXJhY3RlciBhbmQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTI4LgoKICAgICAgQSBwcmVmaXggbGVuZ3RoIHZhbHVlIG9mIG4gY29ycmVzcG9uZHMgdG8gYW4gSVAgYWRkcmVzcwogICAgICBtYXNrIHRoYXQgaGFzIG4gY29udGlndW91cyAxLWJpdHMgZnJvbSB0aGUgbW9zdAogICAgICBzaWduaWZpY2FudCBiaXQgKE1TQikgYW5kIGFsbCBvdGhlciBiaXRzIHNldCB0byAwLgoKICAgICAgVGhlIElQdjYgYWRkcmVzcyBzaG91bGQgaGF2ZSBhbGwgYml0cyB0aGF0IGRvIG5vdCBiZWxvbmcKICAgICAgdG8gdGhlIHByZWZpeCBzZXQgdG8gemVyby4KCiAgICAgIFRoZSBjYW5vbmljYWwgZm9ybWF0IG9mIGFuIElQdjYgcHJlZml4IGhhcyBhbGwgYml0cyBvZgogICAgICB0aGUgSVB2NiBhZGRyZXNzIHNldCB0byB6ZXJvIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZQogICAgICBJUHY2IHByZWZpeC4gIEZ1cnRoZXJtb3JlLCB0aGUgSVB2NiBhZGRyZXNzIGlzIHJlcHJlc2VudGVkCiAgICAgIGFzIGRlZmluZWQgaW4gU2VjdGlvbiA0IG9mIFJGQyA1OTUyLiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDU5NTI6IEEgUmVjb21tZW5kYXRpb24gZm9yIElQdjYgQWRkcmVzcyBUZXh0CiAgICAgICAgICAgICAgICBSZXByZXNlbnRhdGlvbiI7CiAgfQoKICAvKioqIGNvbGxlY3Rpb24gb2YgZG9tYWluIG5hbWUgYW5kIFVSSSB0eXBlcyAqKiovCgogIHR5cGVkZWYgZG9tYWluLW5hbWUgewogICAgdHlwZSBzdHJpbmcgewogICAgICBwYXR0ZXJuCiAgICAgICAgJygoKFthLXpBLVowLTlfXShbYS16QS1aMC05XC1fXSl7MCw2MX0pP1thLXpBLVowLTldXC4pKicKICAgICAgKyAnKFthLXpBLVowLTlfXShbYS16QS1aMC05XC1fXSl7MCw2MX0pP1thLXpBLVowLTldXC4/KScKICAgICAgKyAnfFwuJzsKICAgICAgbGVuZ3RoICIxLi4yNTMiOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAiVGhlIGRvbWFpbi1uYW1lIHR5cGUgcmVwcmVzZW50cyBhIEROUyBkb21haW4gbmFtZS4gIFRoZQogICAgICBuYW1lIFNIT1VMRCBiZSBmdWxseSBxdWFsaWZpZWQgd2hlbmV2ZXIgcG9zc2libGUuCgogICAgICBJbnRlcm5ldCBkb21haW4gbmFtZXMgYXJlIG9ubHkgbG9vc2VseSBzcGVjaWZpZWQuICBTZWN0aW9uCiAgICAgIDMuNSBvZiBSRkMgMTAzNCByZWNvbW1lbmRzIGEgc3ludGF4IChtb2RpZmllZCBpbiBTZWN0aW9uCiAgICAgIDIuMSBvZiBSRkMgMTEyMykuICBUaGUgcGF0dGVybiBhYm92ZSBpcyBpbnRlbmRlZCB0byBhbGxvdwogICAgICBmb3IgY3VycmVudCBwcmFjdGljZSBpbiBkb21haW4gbmFtZSB1c2UsIGFuZCBzb21lIHBvc3NpYmxlCiAgICAgIGZ1dHVyZSBleHBhbnNpb24uICBJdCBpcyBkZXNpZ25lZCB0byBob2xkIHZhcmlvdXMgdHlwZXMgb2YKICAgICAgZG9tYWluIG5hbWVzLCBpbmNsdWRpbmcgbmFtZXMgdXNlZCBmb3IgQSBvciBBQUFBIHJlY29yZHMKICAgICAgKGhvc3QgbmFtZXMpIGFuZCBvdGhlciByZWNvcmRzLCBzdWNoIGFzIFNSViByZWNvcmRzLiAgTm90ZQogICAgICB0aGF0IEludGVybmV0IGhvc3QgbmFtZXMgaGF2ZSBhIHN0cmljdGVyIHN5bnRheCAoZGVzY3JpYmVkCiAgICAgIGluIFJGQyA5NTIpIHRoYW4gdGhlIEROUyByZWNvbW1lbmRhdGlvbnMgaW4gUkZDcyAxMDM0IGFuZAogICAgICAxMTIzLCBhbmQgdGhhdCBzeXN0ZW1zIHRoYXQgd2FudCB0byBzdG9yZSBob3N0IG5hbWVzIGluCiAgICAgIHNjaGVtYSBub2RlcyB1c2luZyB0aGUgZG9tYWluLW5hbWUgdHlwZSBhcmUgcmVjb21tZW5kZWQgdG8KICAgICAgYWRoZXJlIHRvIHRoaXMgc3RyaWN0ZXIgc3RhbmRhcmQgdG8gZW5zdXJlIGludGVyb3BlcmFiaWxpdHkuCgogICAgICBUaGUgZW5jb2Rpbmcgb2YgRE5TIG5hbWVzIGluIHRoZSBETlMgcHJvdG9jb2wgaXMgbGltaXRlZAogICAgICB0byAyNTUgY2hhcmFjdGVycy4gIFNpbmNlIHRoZSBlbmNvZGluZyBjb25zaXN0cyBvZiBsYWJlbHMKICAgICAgcHJlZml4ZWQgYnkgYSBsZW5ndGggYnl0ZXMgYW5kIHRoZXJlIGlzIGEgdHJhaWxpbmcgTlVMTAogICAgICBieXRlLCBvbmx5IDI1MyBjaGFyYWN0ZXJzIGNhbiBhcHBlYXIgaW4gdGhlIHRleHR1YWwgZG90dGVkCiAgICAgIG5vdGF0aW9uLgoKICAgICAgVGhlIGRlc2NyaXB0aW9uIGNsYXVzZSBvZiBzY2hlbWEgbm9kZXMgdXNpbmcgdGhlIGRvbWFpbi1uYW1lCiAgICAgIHR5cGUgTVVTVCBkZXNjcmliZSB3aGVuIGFuZCBob3cgdGhlc2UgbmFtZXMgYXJlIHJlc29sdmVkIHRvCiAgICAgIElQIGFkZHJlc3Nlcy4gIE5vdGUgdGhhdCB0aGUgcmVzb2x1dGlvbiBvZiBhIGRvbWFpbi1uYW1lIHZhbHVlCiAgICAgIG1heSByZXF1aXJlIHRvIHF1ZXJ5IG11bHRpcGxlIEROUyByZWNvcmRzIChlLmcuLCBBIGZvciBJUHY0CiAgICAgIGFuZCBBQUFBIGZvciBJUHY2KS4gIFRoZSBvcmRlciBvZiB0aGUgcmVzb2x1dGlvbiBwcm9jZXNzIGFuZAogICAgICB3aGljaCBETlMgcmVjb3JkIHRha2VzIHByZWNlZGVuY2UgY2FuIGVpdGhlciBiZSBkZWZpbmVkCiAgICAgIGV4cGxpY2l0bHkgb3IgbWF5IGRlcGVuZCBvbiB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUKICAgICAgcmVzb2x2ZXIuCgogICAgICBEb21haW4tbmFtZSB2YWx1ZXMgdXNlIHRoZSBVUy1BU0NJSSBlbmNvZGluZy4gIFRoZWlyIGNhbm9uaWNhbAogICAgICBmb3JtYXQgdXNlcyBsb3dlcmNhc2UgVVMtQVNDSUkgY2hhcmFjdGVycy4gIEludGVybmF0aW9uYWxpemVkCiAgICAgIGRvbWFpbiBuYW1lcyBNVVNUIGJlIEEtbGFiZWxzIGFzIHBlciBSRkMgNTg5MC4iOwogICAgcmVmZXJlbmNlCiAgICAgIlJGQyAgOTUyOiBEb0QgSW50ZXJuZXQgSG9zdCBUYWJsZSBTcGVjaWZpY2F0aW9uCiAgICAgIFJGQyAxMDM0OiBEb21haW4gTmFtZXMgLSBDb25jZXB0cyBhbmQgRmFjaWxpdGllcwogICAgICBSRkMgMTEyMzogUmVxdWlyZW1lbnRzIGZvciBJbnRlcm5ldCBIb3N0cyAtLSBBcHBsaWNhdGlvbgogICAgICAgICAgICAgICAgYW5kIFN1cHBvcnQKICAgICAgUkZDIDI3ODI6IEEgRE5TIFJSIGZvciBzcGVjaWZ5aW5nIHRoZSBsb2NhdGlvbiBvZiBzZXJ2aWNlcwogICAgICAgICAgICAgICAgKEROUyBTUlYpCiAgICAgIFJGQyA1ODkwOiBJbnRlcm5hdGlvbmFsaXplZCBEb21haW4gTmFtZXMgaW4gQXBwbGljYXRpb25zCiAgICAgICAgICAgICAgICAoSUROQSk6IERlZmluaXRpb25zIGFuZCBEb2N1bWVudCBGcmFtZXdvcmsiOwogIH0KCiAgdHlwZWRlZiBob3N0IHsKICAgIHR5cGUgdW5pb24gewogICAgICB0eXBlIGluZXQ6aXAtYWRkcmVzczsKICAgICAgdHlwZSBpbmV0OmRvbWFpbi1uYW1lOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAiVGhlIGhvc3QgdHlwZSByZXByZXNlbnRzIGVpdGhlciBhbiBJUCBhZGRyZXNzIG9yIGEgRE5TCiAgICAgIGRvbWFpbiBuYW1lLiI7CiAgfQoKICB0eXBlZGVmIHVyaSB7CiAgICB0eXBlIHN0cmluZzsKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSB1cmkgdHlwZSByZXByZXNlbnRzIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyCiAgICAgIChVUkkpIGFzIGRlZmluZWQgYnkgU1REIDY2LgoKICAgICAgT2JqZWN0cyB1c2luZyB0aGUgdXJpIHR5cGUgTVVTVCBiZSBpbiBVUy1BU0NJSSBlbmNvZGluZywKICAgICAgYW5kIE1VU1QgYmUgbm9ybWFsaXplZCBhcyBkZXNjcmliZWQgYnkgUkZDIDM5ODYgU2VjdGlvbnMKICAgICAgNi4yLjEsIDYuMi4yLjEsIGFuZCA2LjIuMi4yLiAgQWxsIHVubmVjZXNzYXJ5CiAgICAgIHBlcmNlbnQtZW5jb2RpbmcgaXMgcmVtb3ZlZCwgYW5kIGFsbCBjYXNlLWluc2Vuc2l0aXZlCiAgICAgIGNoYXJhY3RlcnMgYXJlIHNldCB0byBsb3dlcmNhc2UgZXhjZXB0IGZvciBoZXhhZGVjaW1hbAogICAgICBkaWdpdHMsIHdoaWNoIGFyZSBub3JtYWxpemVkIHRvIHVwcGVyY2FzZSBhcyBkZXNjcmliZWQgaW4KICAgICAgU2VjdGlvbiA2LjIuMi4xLgoKICAgICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBub3JtYWxpemF0aW9uIGlzIHRvIGhlbHAgcHJvdmlkZQogICAgICB1bmlxdWUgVVJJcy4gIE5vdGUgdGhhdCB0aGlzIG5vcm1hbGl6YXRpb24gaXMgbm90CiAgICAgIHN1ZmZpY2llbnQgdG8gcHJvdmlkZSB1bmlxdWVuZXNzLiAgVHdvIFVSSXMgdGhhdCBhcmUKICAgICAgdGV4dHVhbGx5IGRpc3RpbmN0IGFmdGVyIHRoaXMgbm9ybWFsaXphdGlvbiBtYXkgc3RpbGwgYmUKICAgICAgZXF1aXZhbGVudC4KCiAgICAgIE9iamVjdHMgdXNpbmcgdGhlIHVyaSB0eXBlIG1heSByZXN0cmljdCB0aGUgc2NoZW1lcyB0aGF0CiAgICAgIHRoZXkgcGVybWl0LiAgRm9yIGV4YW1wbGUsICdkYXRhOicgYW5kICd1cm46JyBzY2hlbWVzCiAgICAgIG1pZ2h0IG5vdCBiZSBhcHByb3ByaWF0ZS4KCiAgICAgIEEgemVyby1sZW5ndGggVVJJIGlzIG5vdCBhIHZhbGlkIFVSSS4gIFRoaXMgY2FuIGJlIHVzZWQgdG8KICAgICAgZXhwcmVzcyAnVVJJIGFic2VudCcgd2hlcmUgcmVxdWlyZWQuCgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgVXJpIFNNSXYyIHRleHR1YWwgY29udmVudGlvbiBkZWZpbmVkIGluIFJGQyA1MDE3LiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDM5ODY6IFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKTogR2VuZXJpYyBTeW50YXgKICAgICAgUkZDIDMzMDU6IFJlcG9ydCBmcm9tIHRoZSBKb2ludCBXM0MvSUVURiBVUkkgUGxhbm5pbmcgSW50ZXJlc3QKICAgICAgICAgICAgICAgIEdyb3VwOiBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXJzIChVUklzKSwgVVJMcywKICAgICAgICAgICAgICAgIGFuZCBVbmlmb3JtIFJlc291cmNlIE5hbWVzIChVUk5zKTogQ2xhcmlmaWNhdGlvbnMKICAgICAgICAgICAgICAgIGFuZCBSZWNvbW1lbmRhdGlvbnMKICAgICAgUkZDIDUwMTc6IE1JQiBUZXh0dWFsIENvbnZlbnRpb25zIGZvciBVbmlmb3JtIFJlc291cmNlCiAgICAgICAgICAgICAgICBJZGVudGlmaWVycyAoVVJJcykiOwogIH0KCn0K
+ietf-yang-types	urn:ietf:params:xml:ns:yang:ietf-yang-types	\N	[]	2013-07-15	bW9kdWxlIGlldGYteWFuZy10eXBlcyB7CgogIG5hbWVzcGFjZSAidXJuOmlldGY6cGFyYW1zOnhtbDpuczp5YW5nOmlldGYteWFuZy10eXBlcyI7CiAgcHJlZml4ICJ5YW5nIjsKCiAgb3JnYW5pemF0aW9uCiAgICJJRVRGIE5FVE1PRCAoTkVUQ09ORiBEYXRhIE1vZGVsaW5nIExhbmd1YWdlKSBXb3JraW5nIEdyb3VwIjsKCiAgY29udGFjdAogICAiV0cgV2ViOiAgIDxodHRwOi8vdG9vbHMuaWV0Zi5vcmcvd2cvbmV0bW9kLz4KICAgIFdHIExpc3Q6ICA8bWFpbHRvOm5ldG1vZEBpZXRmLm9yZz4KCiAgICBXRyBDaGFpcjogRGF2aWQgS2Vzc2VucwogICAgICAgICAgICAgIDxtYWlsdG86ZGF2aWQua2Vzc2Vuc0Buc24uY29tPgoKICAgIFdHIENoYWlyOiBKdWVyZ2VuIFNjaG9lbndhZWxkZXIKICAgICAgICAgICAgICA8bWFpbHRvOmouc2Nob2Vud2FlbGRlckBqYWNvYnMtdW5pdmVyc2l0eS5kZT4KCiAgICBFZGl0b3I6ICAgSnVlcmdlbiBTY2hvZW53YWVsZGVyCiAgICAgICAgICAgICAgPG1haWx0bzpqLnNjaG9lbndhZWxkZXJAamFjb2JzLXVuaXZlcnNpdHkuZGU+IjsKCiAgZGVzY3JpcHRpb24KICAgIlRoaXMgbW9kdWxlIGNvbnRhaW5zIGEgY29sbGVjdGlvbiBvZiBnZW5lcmFsbHkgdXNlZnVsIGRlcml2ZWQKICAgIFlBTkcgZGF0YSB0eXBlcy4KCiAgICBDb3B5cmlnaHQgKGMpIDIwMTMgSUVURiBUcnVzdCBhbmQgdGhlIHBlcnNvbnMgaWRlbnRpZmllZCBhcwogICAgYXV0aG9ycyBvZiB0aGUgY29kZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgogICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGlzIHBlcm1pdHRlZCBwdXJzdWFudCB0bywgYW5kIHN1YmplY3QKICAgIHRvIHRoZSBsaWNlbnNlIHRlcm1zIGNvbnRhaW5lZCBpbiwgdGhlIFNpbXBsaWZpZWQgQlNEIExpY2Vuc2UKICAgIHNldCBmb3J0aCBpbiBTZWN0aW9uIDQuYyBvZiB0aGUgSUVURiBUcnVzdCdzIExlZ2FsIFByb3Zpc2lvbnMKICAgIFJlbGF0aW5nIHRvIElFVEYgRG9jdW1lbnRzCiAgICAoaHR0cDovL3RydXN0ZWUuaWV0Zi5vcmcvbGljZW5zZS1pbmZvKS4KCiAgICBUaGlzIHZlcnNpb24gb2YgdGhpcyBZQU5HIG1vZHVsZSBpcyBwYXJ0IG9mIFJGQyA2OTkxOyBzZWUKICAgIHRoZSBSRkMgaXRzZWxmIGZvciBmdWxsIGxlZ2FsIG5vdGljZXMuIjsKCiAgcmV2aXNpb24gMjAxMy0wNy0xNSB7CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGlzIHJldmlzaW9uIGFkZHMgdGhlIGZvbGxvd2luZyBuZXcgZGF0YSB0eXBlczoKICAgICAgLSB5YW5nLWlkZW50aWZpZXIKICAgICAgLSBoZXgtc3RyaW5nCiAgICAgIC0gdXVpZAogICAgICAtIGRvdHRlZC1xdWFkIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNjk5MTogQ29tbW9uIFlBTkcgRGF0YSBUeXBlcyI7CiAgfQoKICByZXZpc2lvbiAyMDEwLTA5LTI0IHsKICAgIGRlc2NyaXB0aW9uCiAgICAgIkluaXRpYWwgcmV2aXNpb24uIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNjAyMTogQ29tbW9uIFlBTkcgRGF0YSBUeXBlcyI7CiAgfQoKICAvKioqIGNvbGxlY3Rpb24gb2YgY291bnRlciBhbmQgZ2F1Z2UgdHlwZXMgKioqLwoKICB0eXBlZGVmIGNvdW50ZXIzMiB7CiAgICB0eXBlIHVpbnQzMjsKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBjb3VudGVyMzIgdHlwZSByZXByZXNlbnRzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIKICAgICAgdGhhdCBtb25vdG9uaWNhbGx5IGluY3JlYXNlcyB1bnRpbCBpdCByZWFjaGVzIGEKICAgICAgbWF4aW11bSB2YWx1ZSBvZiAyXjMyLTEgKDQyOTQ5NjcyOTUgZGVjaW1hbCksIHdoZW4gaXQKICAgICAgd3JhcHMgYXJvdW5kIGFuZCBzdGFydHMgaW5jcmVhc2luZyBhZ2FpbiBmcm9tIHplcm8uCgogICAgICBDb3VudGVycyBoYXZlIG5vIGRlZmluZWQgJ2luaXRpYWwnIHZhbHVlLCBhbmQgdGh1cywgYQogICAgICBzaW5nbGUgdmFsdWUgb2YgYSBjb3VudGVyIGhhcyAoaW4gZ2VuZXJhbCkgbm8gaW5mb3JtYXRpb24KICAgICAgY29udGVudC4gIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nCiAgICAgIHZhbHVlIG5vcm1hbGx5IG9jY3VyIGF0IHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZQogICAgICBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyIHRpbWVzIGFzIHNwZWNpZmllZCBpbiB0aGUKICAgICAgZGVzY3JpcHRpb24gb2YgYSBzY2hlbWEgbm9kZSB1c2luZyB0aGlzIHR5cGUuICBJZiBzdWNoCiAgICAgIG90aGVyIHRpbWVzIGNhbiBvY2N1ciwgZm9yIGV4YW1wbGUsIHRoZSBjcmVhdGlvbiBvZgogICAgICBhIHNjaGVtYSBub2RlIG9mIHR5cGUgY291bnRlcjMyIGF0IHRpbWVzIG90aGVyIHRoYW4KICAgICAgcmUtaW5pdGlhbGl6YXRpb24sIHRoZW4gYSBjb3JyZXNwb25kaW5nIHNjaGVtYSBub2RlCiAgICAgIHNob3VsZCBiZSBkZWZpbmVkLCB3aXRoIGFuIGFwcHJvcHJpYXRlIHR5cGUsIHRvIGluZGljYXRlCiAgICAgIHRoZSBsYXN0IGRpc2NvbnRpbnVpdHkuCgogICAgICBUaGUgY291bnRlcjMyIHR5cGUgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBjb25maWd1cmF0aW9uCiAgICAgIHNjaGVtYSBub2Rlcy4gIEEgZGVmYXVsdCBzdGF0ZW1lbnQgU0hPVUxEIE5PVCBiZSB1c2VkIGluCiAgICAgIGNvbWJpbmF0aW9uIHdpdGggdGhlIHR5cGUgY291bnRlcjMyLgoKICAgICAgSW4gdGhlIHZhbHVlIHNldCBhbmQgaXRzIHNlbWFudGljcywgdGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQKICAgICAgdG8gdGhlIENvdW50ZXIzMiB0eXBlIG9mIHRoZSBTTUl2Mi4iOwogICAgcmVmZXJlbmNlCiAgICAgIlJGQyAyNTc4OiBTdHJ1Y3R1cmUgb2YgTWFuYWdlbWVudCBJbmZvcm1hdGlvbiBWZXJzaW9uIDIKICAgICAgICAgICAgICAgIChTTUl2MikiOwogIH0KCiAgdHlwZWRlZiB6ZXJvLWJhc2VkLWNvdW50ZXIzMiB7CiAgICB0eXBlIHlhbmc6Y291bnRlcjMyOwogICAgZGVmYXVsdCAiMCI7CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgemVyby1iYXNlZC1jb3VudGVyMzIgdHlwZSByZXByZXNlbnRzIGEgY291bnRlcjMyCiAgICAgIHRoYXQgaGFzIHRoZSBkZWZpbmVkICdpbml0aWFsJyB2YWx1ZSB6ZXJvLgoKICAgICAgQSBzY2hlbWEgbm9kZSBvZiB0aGlzIHR5cGUgd2lsbCBiZSBzZXQgdG8gemVybyAoMCkgb24gY3JlYXRpb24KICAgICAgYW5kIHdpbGwgdGhlcmVhZnRlciBpbmNyZWFzZSBtb25vdG9uaWNhbGx5IHVudGlsIGl0IHJlYWNoZXMKICAgICAgYSBtYXhpbXVtIHZhbHVlIG9mIDJeMzItMSAoNDI5NDk2NzI5NSBkZWNpbWFsKSwgd2hlbiBpdAogICAgICB3cmFwcyBhcm91bmQgYW5kIHN0YXJ0cyBpbmNyZWFzaW5nIGFnYWluIGZyb20gemVyby4KCiAgICAgIFByb3ZpZGVkIHRoYXQgYW4gYXBwbGljYXRpb24gZGlzY292ZXJzIGEgbmV3IHNjaGVtYSBub2RlCiAgICAgIG9mIHRoaXMgdHlwZSB3aXRoaW4gdGhlIG1pbmltdW0gdGltZSB0byB3cmFwLCBpdCBjYW4gdXNlIHRoZQogICAgICAnaW5pdGlhbCcgdmFsdWUgYXMgYSBkZWx0YS4gIEl0IGlzIGltcG9ydGFudCBmb3IgYSBtYW5hZ2VtZW50CiAgICAgIHN0YXRpb24gdG8gYmUgYXdhcmUgb2YgdGhpcyBtaW5pbXVtIHRpbWUgYW5kIHRoZSBhY3R1YWwgdGltZQogICAgICBiZXR3ZWVuIHBvbGxzLCBhbmQgdG8gZGlzY2FyZCBkYXRhIGlmIHRoZSBhY3R1YWwgdGltZSBpcyB0b28KICAgICAgbG9uZyBvciB0aGVyZSBpcyBubyBkZWZpbmVkIG1pbmltdW0gdGltZS4KCiAgICAgIEluIHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBpcyBlcXVpdmFsZW50CiAgICAgIHRvIHRoZSBaZXJvQmFzZWRDb3VudGVyMzIgdGV4dHVhbCBjb252ZW50aW9uIG9mIHRoZSBTTUl2Mi4iOwogICAgcmVmZXJlbmNlCiAgICAgICJSRkMgNDUwMjogUmVtb3RlIE5ldHdvcmsgTW9uaXRvcmluZyBNYW5hZ2VtZW50IEluZm9ybWF0aW9uCiAgICAgICAgICAgICAgICAgQmFzZSBWZXJzaW9uIDIiOwogIH0KCiAgdHlwZWRlZiBjb3VudGVyNjQgewogICAgdHlwZSB1aW50NjQ7CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgY291bnRlcjY0IHR5cGUgcmVwcmVzZW50cyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyCiAgICAgIHRoYXQgbW9ub3RvbmljYWxseSBpbmNyZWFzZXMgdW50aWwgaXQgcmVhY2hlcyBhCiAgICAgIG1heGltdW0gdmFsdWUgb2YgMl42NC0xICgxODQ0Njc0NDA3MzcwOTU1MTYxNSBkZWNpbWFsKSwKICAgICAgd2hlbiBpdCB3cmFwcyBhcm91bmQgYW5kIHN0YXJ0cyBpbmNyZWFzaW5nIGFnYWluIGZyb20gemVyby4KCiAgICAgIENvdW50ZXJzIGhhdmUgbm8gZGVmaW5lZCAnaW5pdGlhbCcgdmFsdWUsIGFuZCB0aHVzLCBhCiAgICAgIHNpbmdsZSB2YWx1ZSBvZiBhIGNvdW50ZXIgaGFzIChpbiBnZW5lcmFsKSBubyBpbmZvcm1hdGlvbgogICAgICBjb250ZW50LiAgRGlzY29udGludWl0aWVzIGluIHRoZSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcKICAgICAgdmFsdWUgbm9ybWFsbHkgb2NjdXIgYXQgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlCiAgICAgIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIgdGltZXMgYXMgc3BlY2lmaWVkIGluIHRoZQogICAgICBkZXNjcmlwdGlvbiBvZiBhIHNjaGVtYSBub2RlIHVzaW5nIHRoaXMgdHlwZS4gIElmIHN1Y2gKICAgICAgb3RoZXIgdGltZXMgY2FuIG9jY3VyLCBmb3IgZXhhbXBsZSwgdGhlIGNyZWF0aW9uIG9mCiAgICAgIGEgc2NoZW1hIG5vZGUgb2YgdHlwZSBjb3VudGVyNjQgYXQgdGltZXMgb3RoZXIgdGhhbgogICAgICByZS1pbml0aWFsaXphdGlvbiwgdGhlbiBhIGNvcnJlc3BvbmRpbmcgc2NoZW1hIG5vZGUKICAgICAgc2hvdWxkIGJlIGRlZmluZWQsIHdpdGggYW4gYXBwcm9wcmlhdGUgdHlwZSwgdG8gaW5kaWNhdGUKICAgICAgdGhlIGxhc3QgZGlzY29udGludWl0eS4KCiAgICAgIFRoZSBjb3VudGVyNjQgdHlwZSBzaG91bGQgbm90IGJlIHVzZWQgZm9yIGNvbmZpZ3VyYXRpb24KICAgICAgc2NoZW1hIG5vZGVzLiAgQSBkZWZhdWx0IHN0YXRlbWVudCBTSE9VTEQgTk9UIGJlIHVzZWQgaW4KICAgICAgY29tYmluYXRpb24gd2l0aCB0aGUgdHlwZSBjb3VudGVyNjQuCgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgQ291bnRlcjY0IHR5cGUgb2YgdGhlIFNNSXYyLiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDI1Nzg6IFN0cnVjdHVyZSBvZiBNYW5hZ2VtZW50IEluZm9ybWF0aW9uIFZlcnNpb24gMgogICAgICAgICAgICAgICAgKFNNSXYyKSI7CiAgfQoKICB0eXBlZGVmIHplcm8tYmFzZWQtY291bnRlcjY0IHsKICAgIHR5cGUgeWFuZzpjb3VudGVyNjQ7CiAgICBkZWZhdWx0ICIwIjsKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSB6ZXJvLWJhc2VkLWNvdW50ZXI2NCB0eXBlIHJlcHJlc2VudHMgYSBjb3VudGVyNjQgdGhhdAogICAgICBoYXMgdGhlIGRlZmluZWQgJ2luaXRpYWwnIHZhbHVlIHplcm8uCgogICAgICBBIHNjaGVtYSBub2RlIG9mIHRoaXMgdHlwZSB3aWxsIGJlIHNldCB0byB6ZXJvICgwKSBvbiBjcmVhdGlvbgogICAgICBhbmQgd2lsbCB0aGVyZWFmdGVyIGluY3JlYXNlIG1vbm90b25pY2FsbHkgdW50aWwgaXQgcmVhY2hlcwogICAgICBhIG1heGltdW0gdmFsdWUgb2YgMl42NC0xICgxODQ0Njc0NDA3MzcwOTU1MTYxNSBkZWNpbWFsKSwKICAgICAgd2hlbiBpdCB3cmFwcyBhcm91bmQgYW5kIHN0YXJ0cyBpbmNyZWFzaW5nIGFnYWluIGZyb20gemVyby4KCiAgICAgIFByb3ZpZGVkIHRoYXQgYW4gYXBwbGljYXRpb24gZGlzY292ZXJzIGEgbmV3IHNjaGVtYSBub2RlCiAgICAgIG9mIHRoaXMgdHlwZSB3aXRoaW4gdGhlIG1pbmltdW0gdGltZSB0byB3cmFwLCBpdCBjYW4gdXNlIHRoZQogICAgICAnaW5pdGlhbCcgdmFsdWUgYXMgYSBkZWx0YS4gIEl0IGlzIGltcG9ydGFudCBmb3IgYSBtYW5hZ2VtZW50CiAgICAgIHN0YXRpb24gdG8gYmUgYXdhcmUgb2YgdGhpcyBtaW5pbXVtIHRpbWUgYW5kIHRoZSBhY3R1YWwgdGltZQogICAgICBiZXR3ZWVuIHBvbGxzLCBhbmQgdG8gZGlzY2FyZCBkYXRhIGlmIHRoZSBhY3R1YWwgdGltZSBpcyB0b28KICAgICAgbG9uZyBvciB0aGVyZSBpcyBubyBkZWZpbmVkIG1pbmltdW0gdGltZS4KCiAgICAgIEluIHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBpcyBlcXVpdmFsZW50CiAgICAgIHRvIHRoZSBaZXJvQmFzZWRDb3VudGVyNjQgdGV4dHVhbCBjb252ZW50aW9uIG9mIHRoZSBTTUl2Mi4iOwogICAgcmVmZXJlbmNlCiAgICAgIlJGQyAyODU2OiBUZXh0dWFsIENvbnZlbnRpb25zIGZvciBBZGRpdGlvbmFsIEhpZ2ggQ2FwYWNpdHkKICAgICAgICAgICAgICAgIERhdGEgVHlwZXMiOwogIH0KCiAgdHlwZWRlZiBnYXVnZTMyIHsKICAgIHR5cGUgdWludDMyOwogICAgZGVzY3JpcHRpb24KICAgICAiVGhlIGdhdWdlMzIgdHlwZSByZXByZXNlbnRzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIsIHdoaWNoCiAgICAgIG1heSBpbmNyZWFzZSBvciBkZWNyZWFzZSwgYnV0IHNoYWxsIG5ldmVyIGV4Y2VlZCBhIG1heGltdW0KICAgICAgdmFsdWUsIG5vciBmYWxsIGJlbG93IGEgbWluaW11bSB2YWx1ZS4gIFRoZSBtYXhpbXVtIHZhbHVlCiAgICAgIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMl4zMi0xICg0Mjk0OTY3Mjk1IGRlY2ltYWwpLCBhbmQKICAgICAgdGhlIG1pbmltdW0gdmFsdWUgY2Fubm90IGJlIHNtYWxsZXIgdGhhbiAwLiAgVGhlIHZhbHVlIG9mCiAgICAgIGEgZ2F1Z2UzMiBoYXMgaXRzIG1heGltdW0gdmFsdWUgd2hlbmV2ZXIgdGhlIGluZm9ybWF0aW9uCiAgICAgIGJlaW5nIG1vZGVsZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBtYXhpbXVtCiAgICAgIHZhbHVlLCBhbmQgaGFzIGl0cyBtaW5pbXVtIHZhbHVlIHdoZW5ldmVyIHRoZSBpbmZvcm1hdGlvbgogICAgICBiZWluZyBtb2RlbGVkIGlzIHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0byBpdHMgbWluaW11bSB2YWx1ZS4KICAgICAgSWYgdGhlIGluZm9ybWF0aW9uIGJlaW5nIG1vZGVsZWQgc3Vic2VxdWVudGx5IGRlY3JlYXNlcwogICAgICBiZWxvdyAoaW5jcmVhc2VzIGFib3ZlKSB0aGUgbWF4aW11bSAobWluaW11bSkgdmFsdWUsIHRoZQogICAgICBnYXVnZTMyIGFsc28gZGVjcmVhc2VzIChpbmNyZWFzZXMpLgoKICAgICAgSW4gdGhlIHZhbHVlIHNldCBhbmQgaXRzIHNlbWFudGljcywgdGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQKICAgICAgdG8gdGhlIEdhdWdlMzIgdHlwZSBvZiB0aGUgU01JdjIuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgMjU3ODogU3RydWN0dXJlIG9mIE1hbmFnZW1lbnQgSW5mb3JtYXRpb24gVmVyc2lvbiAyCiAgICAgICAgICAgICAgICAoU01JdjIpIjsKICB9CgogIHR5cGVkZWYgZ2F1Z2U2NCB7CiAgICB0eXBlIHVpbnQ2NDsKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSBnYXVnZTY0IHR5cGUgcmVwcmVzZW50cyBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLCB3aGljaAogICAgICBtYXkgaW5jcmVhc2Ugb3IgZGVjcmVhc2UsIGJ1dCBzaGFsbCBuZXZlciBleGNlZWQgYSBtYXhpbXVtCiAgICAgIHZhbHVlLCBub3IgZmFsbCBiZWxvdyBhIG1pbmltdW0gdmFsdWUuICBUaGUgbWF4aW11bSB2YWx1ZQogICAgICBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIDJeNjQtMSAoMTg0NDY3NDQwNzM3MDk1NTE2MTUpLCBhbmQKICAgICAgdGhlIG1pbmltdW0gdmFsdWUgY2Fubm90IGJlIHNtYWxsZXIgdGhhbiAwLiAgVGhlIHZhbHVlIG9mCiAgICAgIGEgZ2F1Z2U2NCBoYXMgaXRzIG1heGltdW0gdmFsdWUgd2hlbmV2ZXIgdGhlIGluZm9ybWF0aW9uCiAgICAgIGJlaW5nIG1vZGVsZWQgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGl0cyBtYXhpbXVtCiAgICAgIHZhbHVlLCBhbmQgaGFzIGl0cyBtaW5pbXVtIHZhbHVlIHdoZW5ldmVyIHRoZSBpbmZvcm1hdGlvbgogICAgICBiZWluZyBtb2RlbGVkIGlzIHNtYWxsZXIgdGhhbiBvciBlcXVhbCB0byBpdHMgbWluaW11bSB2YWx1ZS4KICAgICAgSWYgdGhlIGluZm9ybWF0aW9uIGJlaW5nIG1vZGVsZWQgc3Vic2VxdWVudGx5IGRlY3JlYXNlcwogICAgICBiZWxvdyAoaW5jcmVhc2VzIGFib3ZlKSB0aGUgbWF4aW11bSAobWluaW11bSkgdmFsdWUsIHRoZQogICAgICBnYXVnZTY0IGFsc28gZGVjcmVhc2VzIChpbmNyZWFzZXMpLgoKICAgICAgSW4gdGhlIHZhbHVlIHNldCBhbmQgaXRzIHNlbWFudGljcywgdGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQKICAgICAgdG8gdGhlIENvdW50ZXJCYXNlZEdhdWdlNjQgU01JdjIgdGV4dHVhbCBjb252ZW50aW9uIGRlZmluZWQKICAgICAgaW4gUkZDIDI4NTYiOwogICAgcmVmZXJlbmNlCiAgICAgIlJGQyAyODU2OiBUZXh0dWFsIENvbnZlbnRpb25zIGZvciBBZGRpdGlvbmFsIEhpZ2ggQ2FwYWNpdHkKICAgICAgICAgICAgICAgIERhdGEgVHlwZXMiOwogIH0KCiAgLyoqKiBjb2xsZWN0aW9uIG9mIGlkZW50aWZpZXItcmVsYXRlZCB0eXBlcyAqKiovCgogIHR5cGVkZWYgb2JqZWN0LWlkZW50aWZpZXIgewogICAgdHlwZSBzdHJpbmcgewogICAgICBwYXR0ZXJuICcoKFswLTFdKFwuWzEtM10/WzAtOV0pKXwoMlwuKDB8KFsxLTldXGQqKSkpKScKICAgICAgICAgICAgKyAnKFwuKDB8KFsxLTldXGQqKSkpKic7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgb2JqZWN0LWlkZW50aWZpZXIgdHlwZSByZXByZXNlbnRzIGFkbWluaXN0cmF0aXZlbHkKICAgICAgYXNzaWduZWQgbmFtZXMgaW4gYSByZWdpc3RyYXRpb24taGllcmFyY2hpY2FsLW5hbWUgdHJlZS4KCiAgICAgIFZhbHVlcyBvZiB0aGlzIHR5cGUgYXJlIGRlbm90ZWQgYXMgYSBzZXF1ZW5jZSBvZiBudW1lcmljYWwKICAgICAgbm9uLW5lZ2F0aXZlIHN1Yi1pZGVudGlmaWVyIHZhbHVlcy4gIEVhY2ggc3ViLWlkZW50aWZpZXIKICAgICAgdmFsdWUgTVVTVCBOT1QgZXhjZWVkIDJeMzItMSAoNDI5NDk2NzI5NSkuICBTdWItaWRlbnRpZmllcnMKICAgICAgYXJlIHNlcGFyYXRlZCBieSBzaW5nbGUgZG90cyBhbmQgd2l0aG91dCBhbnkgaW50ZXJtZWRpYXRlCiAgICAgIHdoaXRlc3BhY2UuCgogICAgICBUaGUgQVNOLjEgc3RhbmRhcmQgcmVzdHJpY3RzIHRoZSB2YWx1ZSBzcGFjZSBvZiB0aGUgZmlyc3QKICAgICAgc3ViLWlkZW50aWZpZXIgdG8gMCwgMSwgb3IgMi4gIEZ1cnRoZXJtb3JlLCB0aGUgdmFsdWUgc3BhY2UKICAgICAgb2YgdGhlIHNlY29uZCBzdWItaWRlbnRpZmllciBpcyByZXN0cmljdGVkIHRvIHRoZSByYW5nZQogICAgICAwIHRvIDM5IGlmIHRoZSBmaXJzdCBzdWItaWRlbnRpZmllciBpcyAwIG9yIDEuICBGaW5hbGx5LAogICAgICB0aGUgQVNOLjEgc3RhbmRhcmQgcmVxdWlyZXMgdGhhdCBhbiBvYmplY3QgaWRlbnRpZmllcgogICAgICBoYXMgYWx3YXlzIGF0IGxlYXN0IHR3byBzdWItaWRlbnRpZmllcnMuICBUaGUgcGF0dGVybgogICAgICBjYXB0dXJlcyB0aGVzZSByZXN0cmljdGlvbnMuCgogICAgICBBbHRob3VnaCB0aGUgbnVtYmVyIG9mIHN1Yi1pZGVudGlmaWVycyBpcyBub3QgbGltaXRlZCwKICAgICAgbW9kdWxlIGRlc2lnbmVycyBzaG91bGQgcmVhbGl6ZSB0aGF0IHRoZXJlIG1heSBiZQogICAgICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBzdGljayB3aXRoIHRoZSBTTUl2MiBsaW1pdCBvZiAxMjgKICAgICAgc3ViLWlkZW50aWZpZXJzLgoKICAgICAgVGhpcyB0eXBlIGlzIGEgc3VwZXJzZXQgb2YgdGhlIFNNSXYyIE9CSkVDVCBJREVOVElGSUVSIHR5cGUKICAgICAgc2luY2UgaXQgaXMgbm90IHJlc3RyaWN0ZWQgdG8gMTI4IHN1Yi1pZGVudGlmaWVycy4gIEhlbmNlLAogICAgICB0aGlzIHR5cGUgU0hPVUxEIE5PVCBiZSB1c2VkIHRvIHJlcHJlc2VudCB0aGUgU01JdjIgT0JKRUNUCiAgICAgIElERU5USUZJRVIgdHlwZTsgdGhlIG9iamVjdC1pZGVudGlmaWVyLTEyOCB0eXBlIFNIT1VMRCBiZQogICAgICB1c2VkIGluc3RlYWQuIjsKICAgIHJlZmVyZW5jZQogICAgICJJU085ODM0LTE6IEluZm9ybWF0aW9uIHRlY2hub2xvZ3kgLS0gT3BlbiBTeXN0ZW1zCiAgICAgIEludGVyY29ubmVjdGlvbiAtLSBQcm9jZWR1cmVzIGZvciB0aGUgb3BlcmF0aW9uIG9mIE9TSQogICAgICBSZWdpc3RyYXRpb24gQXV0aG9yaXRpZXM6IEdlbmVyYWwgcHJvY2VkdXJlcyBhbmQgdG9wCiAgICAgIGFyY3Mgb2YgdGhlIEFTTi4xIE9iamVjdCBJZGVudGlmaWVyIHRyZWUiOwogIH0KCiAgdHlwZWRlZiBvYmplY3QtaWRlbnRpZmllci0xMjggewogICAgdHlwZSBvYmplY3QtaWRlbnRpZmllciB7CiAgICAgIHBhdHRlcm4gJ1xkKihcLlxkKil7MSwxMjd9JzsKICAgIH0KICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoaXMgdHlwZSByZXByZXNlbnRzIG9iamVjdC1pZGVudGlmaWVycyByZXN0cmljdGVkIHRvIDEyOAogICAgICBzdWItaWRlbnRpZmllcnMuCgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgT0JKRUNUIElERU5USUZJRVIgdHlwZSBvZiB0aGUgU01JdjIuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgMjU3ODogU3RydWN0dXJlIG9mIE1hbmFnZW1lbnQgSW5mb3JtYXRpb24gVmVyc2lvbiAyCiAgICAgICAgICAgICAgICAoU01JdjIpIjsKICB9CgogIHR5cGVkZWYgeWFuZy1pZGVudGlmaWVyIHsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgbGVuZ3RoICIxLi5tYXgiOwogICAgICBwYXR0ZXJuICdbYS16QS1aX11bYS16QS1aMC05XC1fLl0qJzsKICAgICAgcGF0dGVybiAnLnwuLnxbXnhYXS4qfC5bXm1NXS4qfC4uW15sTF0uKic7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICAiQSBZQU5HIGlkZW50aWZpZXIgc3RyaW5nIGFzIGRlZmluZWQgYnkgdGhlICdpZGVudGlmaWVyJwogICAgICAgcnVsZSBpbiBTZWN0aW9uIDEyIG9mIFJGQyA2MDIwLiAgQW4gaWRlbnRpZmllciBtdXN0CiAgICAgICBzdGFydCB3aXRoIGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyIG9yIGFuIHVuZGVyc2NvcmUKICAgICAgIGZvbGxvd2VkIGJ5IGFuIGFyYml0cmFyeSBzZXF1ZW5jZSBvZiBhbHBoYWJldGljIG9yCiAgICAgICBudW1lcmljIGNoYXJhY3RlcnMsIHVuZGVyc2NvcmVzLCBoeXBoZW5zLCBvciBkb3RzLgoKICAgICAgIEEgWUFORyBpZGVudGlmaWVyIE1VU1QgTk9UIHN0YXJ0IHdpdGggYW55IHBvc3NpYmxlCiAgICAgICBjb21iaW5hdGlvbiBvZiB0aGUgbG93ZXJjYXNlIG9yIHVwcGVyY2FzZSBjaGFyYWN0ZXIKICAgICAgIHNlcXVlbmNlICd4bWwnLiI7CiAgICByZWZlcmVuY2UKICAgICAgIlJGQyA2MDIwOiBZQU5HIC0gQSBEYXRhIE1vZGVsaW5nIExhbmd1YWdlIGZvciB0aGUgTmV0d29yawogICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24gUHJvdG9jb2wgKE5FVENPTkYpIjsKICB9CgogIC8qKiogY29sbGVjdGlvbiBvZiB0eXBlcyByZWxhdGVkIHRvIGRhdGUgYW5kIHRpbWUqKiovCgogIHR5cGVkZWYgZGF0ZS1hbmQtdGltZSB7CiAgICB0eXBlIHN0cmluZyB7CiAgICAgIHBhdHRlcm4gJ1xkezR9LVxkezJ9LVxkezJ9VFxkezJ9OlxkezJ9OlxkezJ9KFwuXGQrKT8nCiAgICAgICAgICAgICsgJyhafFtcK1wtXVxkezJ9OlxkezJ9KSc7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgZGF0ZS1hbmQtdGltZSB0eXBlIGlzIGEgcHJvZmlsZSBvZiB0aGUgSVNPIDg2MDEKICAgICAgc3RhbmRhcmQgZm9yIHJlcHJlc2VudGF0aW9uIG9mIGRhdGVzIGFuZCB0aW1lcyB1c2luZyB0aGUKICAgICAgR3JlZ29yaWFuIGNhbGVuZGFyLiAgVGhlIHByb2ZpbGUgaXMgZGVmaW5lZCBieSB0aGUKICAgICAgZGF0ZS10aW1lIHByb2R1Y3Rpb24gaW4gU2VjdGlvbiA1LjYgb2YgUkZDIDMzMzkuCgogICAgICBUaGUgZGF0ZS1hbmQtdGltZSB0eXBlIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgZGF0ZVRpbWUgWE1MCiAgICAgIHNjaGVtYSB0eXBlIHdpdGggdGhlIGZvbGxvd2luZyBub3RhYmxlIGV4Y2VwdGlvbnM6CgogICAgICAoYSkgVGhlIGRhdGUtYW5kLXRpbWUgdHlwZSBkb2VzIG5vdCBhbGxvdyBuZWdhdGl2ZSB5ZWFycy4KCiAgICAgIChiKSBUaGUgZGF0ZS1hbmQtdGltZSB0aW1lLW9mZnNldCAtMDA6MDAgaW5kaWNhdGVzIGFuIHVua25vd24KICAgICAgICAgIHRpbWUgem9uZSAoc2VlIFJGQyAzMzM5KSB3aGlsZSAtMDA6MDAgYW5kICswMDowMCBhbmQgWgogICAgICAgICAgYWxsIHJlcHJlc2VudCB0aGUgc2FtZSB0aW1lIHpvbmUgaW4gZGF0ZVRpbWUuCgogICAgICAoYykgVGhlIGNhbm9uaWNhbCBmb3JtYXQgKHNlZSBiZWxvdykgb2YgZGF0YS1hbmQtdGltZSB2YWx1ZXMKICAgICAgICAgIGRpZmZlcnMgZnJvbSB0aGUgY2Fub25pY2FsIGZvcm1hdCB1c2VkIGJ5IHRoZSBkYXRlVGltZSBYTUwKICAgICAgICAgIHNjaGVtYSB0eXBlLCB3aGljaCByZXF1aXJlcyBhbGwgdGltZXMgdG8gYmUgaW4gVVRDIHVzaW5nCiAgICAgICAgICB0aGUgdGltZS1vZmZzZXQgJ1onLgoKICAgICAgVGhpcyB0eXBlIGlzIG5vdCBlcXVpdmFsZW50IHRvIHRoZSBEYXRlQW5kVGltZSB0ZXh0dWFsCiAgICAgIGNvbnZlbnRpb24gb2YgdGhlIFNNSXYyIHNpbmNlIFJGQyAzMzM5IHVzZXMgYSBkaWZmZXJlbnQKICAgICAgc2VwYXJhdG9yIGJldHdlZW4gZnVsbC1kYXRlIGFuZCBmdWxsLXRpbWUgYW5kIHByb3ZpZGVzCiAgICAgIGhpZ2hlciByZXNvbHV0aW9uIG9mIHRpbWUtc2VjZnJhYy4KCiAgICAgIFRoZSBjYW5vbmljYWwgZm9ybWF0IGZvciBkYXRlLWFuZC10aW1lIHZhbHVlcyB3aXRoIGEga25vd24gdGltZQogICAgICB6b25lIHVzZXMgYSBudW1lcmljIHRpbWUgem9uZSBvZmZzZXQgdGhhdCBpcyBjYWxjdWxhdGVkIHVzaW5nCiAgICAgIHRoZSBkZXZpY2UncyBjb25maWd1cmVkIGtub3duIG9mZnNldCB0byBVVEMgdGltZS4gIEEgY2hhbmdlIG9mCiAgICAgIHRoZSBkZXZpY2UncyBvZmZzZXQgdG8gVVRDIHRpbWUgd2lsbCBjYXVzZSBkYXRlLWFuZC10aW1lIHZhbHVlcwogICAgICB0byBjaGFuZ2UgYWNjb3JkaW5nbHkuICBTdWNoIGNoYW5nZXMgbWlnaHQgaGFwcGVuIHBlcmlvZGljYWxseQogICAgICBpbiBjYXNlIGEgc2VydmVyIGZvbGxvd3MgYXV0b21hdGljYWxseSBkYXlsaWdodCBzYXZpbmcgdGltZQogICAgICAoRFNUKSB0aW1lIHpvbmUgb2Zmc2V0IGNoYW5nZXMuICBUaGUgY2Fub25pY2FsIGZvcm1hdCBmb3IKICAgICAgZGF0ZS1hbmQtdGltZSB2YWx1ZXMgd2l0aCBhbiB1bmtub3duIHRpbWUgem9uZSAodXN1YWxseQogICAgICByZWZlcnJpbmcgdG8gdGhlIG5vdGlvbiBvZiBsb2NhbCB0aW1lKSB1c2VzIHRoZSB0aW1lLW9mZnNldAogICAgICAtMDA6MDAuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgMzMzOTogRGF0ZSBhbmQgVGltZSBvbiB0aGUgSW50ZXJuZXQ6IFRpbWVzdGFtcHMKICAgICAgUkZDIDI1Nzk6IFRleHR1YWwgQ29udmVudGlvbnMgZm9yIFNNSXYyCiAgICAgIFhTRC1UWVBFUzogWE1MIFNjaGVtYSBQYXJ0IDI6IERhdGF0eXBlcyBTZWNvbmQgRWRpdGlvbiI7CiAgfQoKICB0eXBlZGVmIHRpbWV0aWNrcyB7CiAgICB0eXBlIHVpbnQzMjsKICAgIGRlc2NyaXB0aW9uCiAgICAgIlRoZSB0aW1ldGlja3MgdHlwZSByZXByZXNlbnRzIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgdGhhdAogICAgICByZXByZXNlbnRzIHRoZSB0aW1lLCBtb2R1bG8gMl4zMiAoNDI5NDk2NzI5NiBkZWNpbWFsKSwgaW4KICAgICAgaHVuZHJlZHRocyBvZiBhIHNlY29uZCBiZXR3ZWVuIHR3byBlcG9jaHMuICBXaGVuIGEgc2NoZW1hCiAgICAgIG5vZGUgaXMgZGVmaW5lZCB0aGF0IHVzZXMgdGhpcyB0eXBlLCB0aGUgZGVzY3JpcHRpb24gb2YKICAgICAgdGhlIHNjaGVtYSBub2RlIGlkZW50aWZpZXMgYm90aCBvZiB0aGUgcmVmZXJlbmNlIGVwb2Nocy4KCiAgICAgIEluIHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBpcyBlcXVpdmFsZW50CiAgICAgIHRvIHRoZSBUaW1lVGlja3MgdHlwZSBvZiB0aGUgU01JdjIuIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgMjU3ODogU3RydWN0dXJlIG9mIE1hbmFnZW1lbnQgSW5mb3JtYXRpb24gVmVyc2lvbiAyCiAgICAgICAgICAgICAgICAoU01JdjIpIjsKICB9CgogIHR5cGVkZWYgdGltZXN0YW1wIHsKICAgIHR5cGUgeWFuZzp0aW1ldGlja3M7CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgdGltZXN0YW1wIHR5cGUgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2YgYW4gYXNzb2NpYXRlZAogICAgICB0aW1ldGlja3Mgc2NoZW1hIG5vZGUgYXQgd2hpY2ggYSBzcGVjaWZpYyBvY2N1cnJlbmNlCiAgICAgIGhhcHBlbmVkLiAgVGhlIHNwZWNpZmljIG9jY3VycmVuY2UgbXVzdCBiZSBkZWZpbmVkIGluIHRoZQogICAgICBkZXNjcmlwdGlvbiBvZiBhbnkgc2NoZW1hIG5vZGUgZGVmaW5lZCB1c2luZyB0aGlzIHR5cGUuICBXaGVuCiAgICAgIHRoZSBzcGVjaWZpYyBvY2N1cnJlbmNlIG9jY3VycmVkIHByaW9yIHRvIHRoZSBsYXN0IHRpbWUgdGhlCiAgICAgIGFzc29jaWF0ZWQgdGltZXRpY2tzIGF0dHJpYnV0ZSB3YXMgemVybywgdGhlbiB0aGUgdGltZXN0YW1wCiAgICAgIHZhbHVlIGlzIHplcm8uICBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyBhbGwgdGltZXN0YW1wIHZhbHVlcwogICAgICB0byBiZSByZXNldCB0byB6ZXJvIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBhc3NvY2lhdGVkIHRpbWV0aWNrcwogICAgICBhdHRyaWJ1dGUgcmVhY2hlcyA0OTcrIGRheXMgYW5kIHdyYXBzIGFyb3VuZCB0byB6ZXJvLgoKICAgICAgVGhlIGFzc29jaWF0ZWQgdGltZXRpY2tzIHNjaGVtYSBub2RlIG11c3QgYmUgc3BlY2lmaWVkCiAgICAgIGluIHRoZSBkZXNjcmlwdGlvbiBvZiBhbnkgc2NoZW1hIG5vZGUgdXNpbmcgdGhpcyB0eXBlLgoKICAgICAgSW4gdGhlIHZhbHVlIHNldCBhbmQgaXRzIHNlbWFudGljcywgdGhpcyB0eXBlIGlzIGVxdWl2YWxlbnQKICAgICAgdG8gdGhlIFRpbWVTdGFtcCB0ZXh0dWFsIGNvbnZlbnRpb24gb2YgdGhlIFNNSXYyLiI7CiAgICByZWZlcmVuY2UKICAgICAiUkZDIDI1Nzk6IFRleHR1YWwgQ29udmVudGlvbnMgZm9yIFNNSXYyIjsKICB9CgogIC8qKiogY29sbGVjdGlvbiBvZiBnZW5lcmljIGFkZHJlc3MgdHlwZXMgKioqLwoKICB0eXBlZGVmIHBoeXMtYWRkcmVzcyB7CiAgICB0eXBlIHN0cmluZyB7CiAgICAgIHBhdHRlcm4gJyhbMC05YS1mQS1GXXsyfSg6WzAtOWEtZkEtRl17Mn0pKik/JzsKICAgIH0KCiAgICBkZXNjcmlwdGlvbgogICAgICJSZXByZXNlbnRzIG1lZGlhLSBvciBwaHlzaWNhbC1sZXZlbCBhZGRyZXNzZXMgcmVwcmVzZW50ZWQKICAgICAgYXMgYSBzZXF1ZW5jZSBvY3RldHMsIGVhY2ggb2N0ZXQgcmVwcmVzZW50ZWQgYnkgdHdvIGhleGFkZWNpbWFsCiAgICAgIG51bWJlcnMuICBPY3RldHMgYXJlIHNlcGFyYXRlZCBieSBjb2xvbnMuICBUaGUgY2Fub25pY2FsCiAgICAgIHJlcHJlc2VudGF0aW9uIHVzZXMgbG93ZXJjYXNlIGNoYXJhY3RlcnMuCgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgUGh5c0FkZHJlc3MgdGV4dHVhbCBjb252ZW50aW9uIG9mIHRoZSBTTUl2Mi4iOwogICAgcmVmZXJlbmNlCiAgICAgIlJGQyAyNTc5OiBUZXh0dWFsIENvbnZlbnRpb25zIGZvciBTTUl2MiI7CiAgfQoKICB0eXBlZGVmIG1hYy1hZGRyZXNzIHsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybiAnWzAtOWEtZkEtRl17Mn0oOlswLTlhLWZBLUZdezJ9KXs1fSc7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJUaGUgbWFjLWFkZHJlc3MgdHlwZSByZXByZXNlbnRzIGFuIElFRUUgODAyIE1BQyBhZGRyZXNzLgogICAgICBUaGUgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIHVzZXMgbG93ZXJjYXNlIGNoYXJhY3RlcnMuCgogICAgICBJbiB0aGUgdmFsdWUgc2V0IGFuZCBpdHMgc2VtYW50aWNzLCB0aGlzIHR5cGUgaXMgZXF1aXZhbGVudAogICAgICB0byB0aGUgTWFjQWRkcmVzcyB0ZXh0dWFsIGNvbnZlbnRpb24gb2YgdGhlIFNNSXYyLiI7CiAgICByZWZlcmVuY2UKICAgICAiSUVFRSA4MDI6IElFRUUgU3RhbmRhcmQgZm9yIExvY2FsIGFuZCBNZXRyb3BvbGl0YW4gQXJlYQogICAgICAgICAgICAgICAgTmV0d29ya3M6IE92ZXJ2aWV3IGFuZCBBcmNoaXRlY3R1cmUKICAgICAgUkZDIDI1Nzk6IFRleHR1YWwgQ29udmVudGlvbnMgZm9yIFNNSXYyIjsKICB9CgogIC8qKiogY29sbGVjdGlvbiBvZiBYTUwtc3BlY2lmaWMgdHlwZXMgKioqLwoKICB0eXBlZGVmIHhwYXRoMS4wIHsKICAgIHR5cGUgc3RyaW5nOwogICAgZGVzY3JpcHRpb24KICAgICAiVGhpcyB0eXBlIHJlcHJlc2VudHMgYW4gWFBBVEggMS4wIGV4cHJlc3Npb24uCgogICAgICBXaGVuIGEgc2NoZW1hIG5vZGUgaXMgZGVmaW5lZCB0aGF0IHVzZXMgdGhpcyB0eXBlLCB0aGUKICAgICAgZGVzY3JpcHRpb24gb2YgdGhlIHNjaGVtYSBub2RlIE1VU1Qgc3BlY2lmeSB0aGUgWFBhdGgKICAgICAgY29udGV4dCBpbiB3aGljaCB0aGUgWFBhdGggZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQuIjsKICAgIHJlZmVyZW5jZQogICAgICJYUEFUSDogWE1MIFBhdGggTGFuZ3VhZ2UgKFhQYXRoKSBWZXJzaW9uIDEuMCI7CiAgfQoKICAvKioqIGNvbGxlY3Rpb24gb2Ygc3RyaW5nIHR5cGVzICoqKi8KCiAgdHlwZWRlZiBoZXgtc3RyaW5nIHsKICAgIHR5cGUgc3RyaW5nIHsKICAgICAgcGF0dGVybiAnKFswLTlhLWZBLUZdezJ9KDpbMC05YS1mQS1GXXsyfSkqKT8nOwogICAgfQogICAgZGVzY3JpcHRpb24KICAgICAiQSBoZXhhZGVjaW1hbCBzdHJpbmcgd2l0aCBvY3RldHMgcmVwcmVzZW50ZWQgYXMgaGV4IGRpZ2l0cwogICAgICBzZXBhcmF0ZWQgYnkgY29sb25zLiAgVGhlIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbiB1c2VzCiAgICAgIGxvd2VyY2FzZSBjaGFyYWN0ZXJzLiI7CiAgfQoKICB0eXBlZGVmIHV1aWQgewogICAgdHlwZSBzdHJpbmcgewogICAgICBwYXR0ZXJuICdbMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS0nCiAgICAgICAgICAgICsgJ1swLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSc7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICJBIFVuaXZlcnNhbGx5IFVuaXF1ZSBJRGVudGlmaWVyIGluIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24KICAgICAgZGVmaW5lZCBpbiBSRkMgNDEyMi4gIFRoZSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gdXNlcwogICAgICBsb3dlcmNhc2UgY2hhcmFjdGVycy4KCiAgICAgIFRoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSBvZiBhIFVVSUQgaW4gc3RyaW5nIHJlcHJlc2VudGF0aW9uOgogICAgICBmODFkNGZhZS03ZGVjLTExZDAtYTc2NS0wMGEwYzkxZTZiZjYKICAgICAgIjsKICAgIHJlZmVyZW5jZQogICAgICJSRkMgNDEyMjogQSBVbml2ZXJzYWxseSBVbmlxdWUgSURlbnRpZmllciAoVVVJRCkgVVJOCiAgICAgICAgICAgICAgICBOYW1lc3BhY2UiOwogIH0KCiAgdHlwZWRlZiBkb3R0ZWQtcXVhZCB7CiAgICB0eXBlIHN0cmluZyB7CiAgICAgIHBhdHRlcm4KICAgICAgICAnKChbMC05XXxbMS05XVswLTldfDFbMC05XVswLTldfDJbMC00XVswLTldfDI1WzAtNV0pXC4pezN9JwogICAgICArICcoWzAtOV18WzEtOV1bMC05XXwxWzAtOV1bMC05XXwyWzAtNF1bMC05XXwyNVswLTVdKSc7CiAgICB9CiAgICBkZXNjcmlwdGlvbgogICAgICAiQW4gdW5zaWduZWQgMzItYml0IG51bWJlciBleHByZXNzZWQgaW4gdGhlIGRvdHRlZC1xdWFkCiAgICAgICBub3RhdGlvbiwgaS5lLiwgZm91ciBvY3RldHMgd3JpdHRlbiBhcyBkZWNpbWFsIG51bWJlcnMKICAgICAgIGFuZCBzZXBhcmF0ZWQgd2l0aCB0aGUgJy4nIChmdWxsIHN0b3ApIGNoYXJhY3Rlci4iOwogIH0KfQo=
+o-ran-smo-teiv-cloud	urn:o-ran:smo-teiv-cloud	CLOUD	[]	2024-05-02	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNsb3VkIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jbG91ZCI7CiAgICBwcmVmaXggb3ItdGVpdi1jbG91ZDsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgaWV0Zi1nZW8tbG9jYXRpb24gewogICAgICAgIHByZWZpeCBnZW87CiAgICAgICAgcmVmZXJlbmNlICJSRkMgOTE3OTogQSBZQU5HIEdyb3VwaW5nIGZvciBHZW9ncmFwaGljIExvY2F0aW9ucyI7CiAgICB9CgogICAgb3JnYW5pemF0aW9uICJPUkFOIjsKICAgIGNvbnRhY3QgIlRoZSBBdXRob3JzIjsKICAgIGRlc2NyaXB0aW9uCiAgICAiUkFOIENsb3VkIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gQ0xPVUQgZG9tYWluLCB3aGljaCBjb21wcmlzZXMgY2xvdWQgaW5mcmFzdHJ1Y3R1cmUgYW5kCiAgICBkZXBsb3ltZW50IGFzcGVjdHMgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aGUgdG9wb2xvZ3kgbW9kZWwuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMDIiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIENMT1VEOwoKICAgIGxpc3QgQ2xvdWRpZmllZE5GIHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBSQU4gTmV0d29yayBGdW5jdGlvbiBzb2Z0d2FyZSB0aGF0IGlzIGRlcGxveWVkIGluIHRoZSBPLUNsb3VkIHZpYSBvbmUgb3IgbW9yZSBORiBEZXBsb3ltZW50cy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWRpZmllZCBORiI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5GRGVwbG95bWVudCB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgc29mdHdhcmUgZGVwbG95bWVudCBvbiBPLUNsb3VkIHJlc291cmNlcyB0aGF0IHJlYWxpemVzLCBhbGwgb3IgcGFydCBvZiwgYSBDbG91ZGlmaWVkIE5GLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBORiBEZXBsb3ltZW50IjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgQ2xvdWROYW1lc3BhY2UgewogICAgICAgIGRlc2NyaXB0aW9uICJDbG91ZE5hbWVzcGFjZSBwcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpc29sYXRpbmcKICAgICAgICAgICAgICAgICAgICBncm91cHMgb2YgcmVzb3VyY2VzIHdpdGhpbiBhIHNpbmdsZSBjbHVzdGVyLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgbmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBDbG91ZCBOYW1lc3BhY2UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOb2RlQ2x1c3RlciB7CiAgICAgICAgZGVzY3JpcHRpb24gIkEgTm9kZUNsdXN0ZXIgbWFuYWdlcyBhIGNvbGxlY3Rpb24gb2YgTm9kZXMuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBuYW1lIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOYW1lIG9mIE5vZGUgQ2x1c3RlciI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IENsb3VkU2l0ZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgdGhlIGluZnJhc3RydWN0dXJlIHRoYXQKICAgICAgICAgICAgICAgICAgICBob3N0cyB0aGUgTkYgRGVwbG95bWVudC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgQ2xvdWQgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBDTE9VRElGSUVETkZfQ09NUFJJU0VTX05GREVQTE9ZTUVOVCB7IC8vIDEgdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGNvbXByaXNlZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWRpZmllZCBORiBjb21wcmlzZXMgb2YgdGhlc2UgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWRpZmllZE5GOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBjb21wcmlzZWQtYnktY2xvdWRpZmllZE5GIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5GIERlcGxveW1lbnQgcGFydCBvZiBDbG91ZGlmaWVkIE5GLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBORkRlcGxveW1lbnQ7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTkZERVBMT1lNRU5UX0RFUExPWUVEX09OX0NMT1VETkFNRVNQQUNFIHsgLy8gMS4ubiB0byAxLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtb24tY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTkYgRGVwbG95bWVudCBkZXBsb3llZCBvbiBDbG91ZCBOYW1lc3BhY2UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5GRGVwbG95bWVudDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CgogICAgICAgIGxlYWYtbGlzdCBkZXBsb3llZC1uRkRlcGxveW1lbnQgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveXMgTkYgRGVwbG95bWVudC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgQ0xPVUROQU1FU1BBQ0VfREVQTE9ZRURfT05fTk9ERUNMVVNURVIgeyAvLyAxLi5uIHRvIDEKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYgZGVwbG95ZWQtb24tbm9kZUNsdXN0ZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2xvdWQgTmFtZXNwYWNlIGRlcGxveWVkIG9uIE5vZGUgQ2x1c3Rlci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgQ2xvdWROYW1lc3BhY2U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgZGVwbG95ZWQtY2xvdWROYW1lc3BhY2UgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTm9kZSBDbHVzdGVyIGRlcGxveXMgQ2xvdWQgTmFtZXNwYWNlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBOb2RlQ2x1c3RlcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgICAgICBtaW4tZWxlbWVudHMgMTsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOT0RFQ0xVU1RFUl9MT0NBVEVEX0FUX0NMT1VEU0lURSB7IC8vIDEuLm4gdG8gMS4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IGxvY2F0ZWQtYXQtY2xvdWRTaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5vZGUgQ2x1c3RlciBsb2NhdGVkIGF0IENsb3VkIFNpdGUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5vZGVDbHVzdGVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1pbi1lbGVtZW50cyAxOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IGxvY2F0aW9uLW9mLW5vZGVDbHVzdGVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkNsb3VkIFNpdGUgaXMgbG9jYXRpb24gb2YgTm9kZSBDbHVzdGVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBDbG91ZFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWluLWVsZW1lbnRzIDE7CiAgICAgICAgfQogICAgfQp9
+o-ran-smo-teiv-common-yang-extensions	urn:o-ran:smo-teiv-common-yang-extensions	\N	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMgewoKICB5YW5nLXZlcnNpb24gMS4xOwogIG5hbWVzcGFjZSAidXJuOm8tcmFuOnNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMiOwogIHByZWZpeCBvci10ZWl2LXlleHQ7CgogIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgWUFORyBleHRlbnNpb25zIG1vZGVsCgogIFRoaXMgbW9kZWwgY29udGFpbnMgZXh0ZW5zaW9ucyB0byB0aGUgWUFORyBsYW5ndWFnZSB0aGF0IHRvcG9sb2d5IGFuZAogIGludmVudG9yeSBtb2RlbHMgd2lsbCB1c2UgdG8gZGVmaW5lIGFuZCBhbm5vdGF0ZSB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4KCiAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0yNCIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIGV4dGVuc2lvbiBiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJEZWZpbmVzIGEgYmktZGlyZWN0aW9uYWwgcmVsYXRpb25zaGlwIGluIHRoZSB0b3BvbG9neS4KCiAgICAgICAgICAgIEEgYmktZGlyZWN0aW9uYWwtYXNzb2NpYXRpb24gKEJEQSkgaXMgYSByZWxhdGlvbnNoaXAgY29tcHJpc2luZyBvZgogICAgICAgICAgICBhbiBBLXNpZGUgYW5kIGEgQi1zaWRlLiBUaGUgQS1zaWRlIGlzIGNvbnNpZGVyZWQgdGhlIG9yaWdpbmF0aW5nCiAgICAgICAgICAgIHNpZGUgb2YgdGhlIHJlbGF0aW9uc2hpcDsgdGhlIEItc2lkZSBpcyBjb25zaWRlcmVkIHRoZSB0ZXJtaW5hdGluZwogICAgICAgICAgICBzaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBvcmRlciBvZiBBLXNpZGUgYW5kIEItc2lkZSBpcyBvZgogICAgICAgICAgICBpbXBvcnRhbmNlIGFuZCBNVVNUIE5PVCBiZSBjaGFuZ2VkIG9uY2UgZGVmaW5lZC4KCiAgICAgICAgICAgIEJvdGggQS1zaWRlIGFuZCBCLXNpZGUgYXJlIGRlZmluZWQgb24gYSB0eXBlLCBhbmQgYXJlIGdpdmVuIGEgcm9sZS4KICAgICAgICAgICAgQSB0eXBlIG1heSBoYXZlIG11bHRpcGxlIG9yaWdpbmF0aW5nIGFuZC9vciB0ZXJtaW5hdGluZyBzaWRlcyBvZiBhCiAgICAgICAgICAgIHJlbGF0aW9uc2hpcCwgYWxsIGRpc3Rpbmd1aXNoZWQgYnkgcm9sZSBuYW1lLgoKICAgICAgICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlICdtb2R1bGUnIHN0YXRlbWVudC4KICAgICAgICAgICAgTXVsdGlwbGUgJ2JpLWRpcmVjdGlvbmFsLXRvcG9sb2d5LXJlbGF0aW9uc2hpcCcgc3RhdGVtZW50cyBhcmUKICAgICAgICAgICAgYWxsb3dlZCBwZXIgcGFyZW50IHN0YXRlbWVudC4KCiAgICAgICAgICAgIFN1YnN0YXRlbWVudHMgdG8gdGhlICdiaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIGRlZmluZQogICAgICAgICAgICB0aGUgQS1zaWRlIGFuZCB0aGUgQi1zaWRlLCByZXNwZWN0aXZlbHksIGFuZCBvcHRpb25hbGx5IHByb3BlcnRpZXMKICAgICAgICAgICAgb2YgdGhlIHJlbGF0aW9uc2hpcC4gRGF0YSBub2RlcyBvZiB0eXBlcyAnbGVhZicgYW5kICdsZWFmLWxpc3QnIGFyZQogICAgICAgICAgICB1c2VkIGZvciB0aGlzIHB1cnBvc2UuIE9uZSBvZiB0aGUgZGF0YSBub2RlcyBNVVNUIGJlIGFubm90YXRlZCB3aXRoCiAgICAgICAgICAgIHRoZSAnYS1zaWRlJyBleHRlbnNpb247IGFub3RoZXIgZGF0YSBub2RlIE1VU1QgYmUgYW5ub3RhdGVkIHdpdGggdGhlCiAgICAgICAgICAgICdiLXNpZGUnIGV4dGVuc2lvbi4gT3RoZXIgZGF0YSBub2RlcyBkZWZpbmUgcHJvcGVydGllcyBvZiB0aGUKICAgICAgICAgICAgcmVsYXRpb25zaGlwLgoKICAgICAgICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSByZWxhdGlvbnNoaXAgbmFtZQogICAgICAgICAgICBpcyBzY29wZWQgdG8gdGhlIG5hbWVzcGFjZSBvZiB0aGUgZGVjbGFyaW5nIG1vZHVsZSBhbmQgTVVTVCBiZQogICAgICAgICAgICB1bmlxdWUgd2l0aGluIHRoZSBzY29wZS4iOwoKICAgICAgICBhcmd1bWVudCByZWxhdGlvbnNoaXBOYW1lOwogICAgfQoKICAgIGV4dGVuc2lvbiBhU2lkZSB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkRlZmluZXMgdGhlIEEtc2lkZSBvZiBhIHJlbGF0aW9uc2hpcC4KCiAgICAgICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIGEgJ2xlYWYnIG9yICdsZWFmLWxpc3QnCiAgICAgICAgICAgIHN0YXRlbWVudCwgd2hpY2ggaXRzZWxmIG11c3QgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgdGhlCiAgICAgICAgICAgICd1bmktZGlyZWN0aW9uYWwtdG9wb2xvZ3ktcmVsYXRpb25zaGlwJyBzdGF0ZW1lbnQuCgogICAgICAgICAgICBUaGUgZGF0YSB0eXBlIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIE1VU1QgYmUKICAgICAgICAgICAgJ2luc3RhbmNlLWlkZW50aWZpZXInLiBDb25zdHJhaW50cyBNQVkgYmUgdXNlZCBhcyBwYXJ0IG9mIHRoZSBwYXJlbnQKICAgICAgICAgICAgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIHRvIGVuZm9yY2UgY2FyZGluYWxpdHkuCgogICAgICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBpcyB1c2VkIGFzIG5hbWUKICAgICAgICAgICAgb2YgdGhlIHJvbGUgb2YgdGhlIEEtc2lkZSBvZiB0aGUgcmVsYXRpb25zaGlwLiBUaGUgbmFtZSBvZiB0aGUgcm9sZQogICAgICAgICAgICBpcyBzY29wZWQgdG8gdGhlIHR5cGUgb24gd2hpY2ggdGhlIEEtc2lkZSBpcyBkZWZpbmVkIGFuZCBNVVNUIGJlCiAgICAgICAgICAgIHVuaXF1ZSB3aXRoaW4gdGhlIHNjb3BlLgoKICAgICAgICAgICAgV2hpbGUgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgZG9lcyBub3QgcmVzdWx0IGluIGEgcHJvcGVydHkKICAgICAgICAgICAgb2YgdGhlIHJlbGF0aW9uc2hpcCwgaXQgaXMgUkVDT01NRU5ERUQgdG8gYXZvaWQgdXNpbmcgdGhlIG5hbWUgb2YgYW4KICAgICAgICAgICAgZXhpc3RpbmcgdHlwZSBwcm9wZXJ0eSBhcyByb2xlIG5hbWUgdG8gYXZvaWQgcG90ZW50aWFsIGFtYmlndWl0aWVzCiAgICAgICAgICAgIGJldHdlZW4gcHJvcGVydGllcyBvZiBhIHR5cGUsIGFuZCByb2xlcyBvZiBhIHJlbGF0aW9uc2hpcCBvbiB0aGUKICAgICAgICAgICAgdHlwZS4KCiAgICAgICAgICAgIFRoZSBhcmd1bWVudCBpcyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQS1zaWRlIHJlc2lkZXMuCiAgICAgICAgICAgIElmIHRoZSB0eXBlIGlzIGRlY2xhcmVkIGluIGFub3RoZXIgbW9kdWxlLCB0aGUgdHlwZSBtdXN0IGJlCiAgICAgICAgICAgIHByZWZpeGVkLCBhbmQgYSBjb3JyZXNwb25kaW5nICdpbXBvcnQnIHN0YXRlbWVudCBiZSB1c2VkIHRvIGRlY2xhcmUKICAgICAgICAgICAgdGhlIHByZWZpeC4iOwoKICAgICAgICBhcmd1bWVudCBhU2lkZVR5cGU7CiAgICB9CgogICAgZXh0ZW5zaW9uIGJTaWRlIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAiRGVmaW5lcyB0aGUgQi1zaWRlIG9mIGEgcmVsYXRpb25zaGlwLgoKICAgICAgICAgICAgVGhlIHN0YXRlbWVudCBNVVNUIG9ubHkgYmUgYSBzdWJzdGF0ZW1lbnQgb2YgYSAnbGVhZicgb3IgJ2xlYWYtbGlzdCcKICAgICAgICAgICAgc3RhdGVtZW50LCB3aGljaCBpdHNlbGYgbXVzdCBiZSBhIHN1YnN0YXRlbWVudCBvZiB0aGUKICAgICAgICAgICAgJ3VuaS1kaXJlY3Rpb25hbC10b3BvbG9neS1yZWxhdGlvbnNoaXAnIHN0YXRlbWVudC4KCiAgICAgICAgICAgIFRoZSBkYXRhIHR5cGUgb2YgdGhlIHBhcmVudCAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgTVVTVCBiZQogICAgICAgICAgICAnaW5zdGFuY2UtaWRlbnRpZmllcicuIENvbnN0cmFpbnRzIE1BWSBiZSB1c2VkIGFzIHBhcnQgb2YgdGhlIHBhcmVudAogICAgICAgICAgICAnbGVhZicgb3IgJ2xlYWYtbGlzdCcgdG8gZW5mb3JjZSBjYXJkaW5hbGl0eS4KCiAgICAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwYXJlbnQgJ2xlYWYnIG9yICdsZWFmLWxpc3QnIGlzIHVzZWQgYXMgbmFtZQogICAgICAgICAgICBvZiB0aGUgcm9sZSBvZiB0aGUgQi1zaWRlIG9mIHRoZSByZWxhdGlvbnNoaXAuIFRoZSBuYW1lIG9mIHRoZSByb2xlCiAgICAgICAgICAgIGlzIHNjb3BlZCB0byB0aGUgdHlwZSBvbiB3aGljaCB0aGUgQi1zaWRlIGlzIGRlZmluZWQgYW5kIE1VU1QgYmUKICAgICAgICAgICAgdW5pcXVlIHdpdGhpbiB0aGUgc2NvcGUuCgogICAgICAgICAgICBXaGlsZSB0aGUgcGFyZW50ICdsZWFmJyBvciAnbGVhZi1saXN0JyBkb2VzIG5vdCByZXN1bHQgaW4gYSBwcm9wZXJ0eQogICAgICAgICAgICBvZiB0aGUgcmVsYXRpb25zaGlwLCBpdCBpcyBSRUNPTU1FTkRFRCB0byBhdm9pZCB1c2luZyB0aGUgbmFtZSBvZiBhbgogICAgICAgICAgICBleGlzdGluZyB0eXBlIHByb3BlcnR5IGFzIHJvbGUgbmFtZSB0byBhdm9pZCBwb3RlbnRpYWwgYW1iaWd1aXRpZXMKICAgICAgICAgICAgYmV0d2VlbiBwcm9wZXJ0aWVzIG9mIGEgdHlwZSwgYW5kIHJvbGVzIG9mIGEgcmVsYXRpb25zaGlwIG9uIHRoZQogICAgICAgICAgICB0eXBlLgoKICAgICAgICAgICAgVGhlIGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIG9uIHdoaWNoIHRoZSBCLXNpZGUgcmVzaWRlcy4KICAgICAgICAgICAgSWYgdGhlIHR5cGUgaXMgZGVjbGFyZWQgaW4gYW5vdGhlciBtb2R1bGUsIHRoZSB0eXBlIG11c3QgYmUKICAgICAgICAgICAgcHJlZml4ZWQsIGFuZCBhIGNvcnJlc3BvbmRpbmcgJ2ltcG9ydCcgc3RhdGVtZW50IGJlIHVzZWQgdG8gZGVjbGFyZQogICAgICAgICAgICB0aGUgcHJlZml4LiI7CgogICAgICAgIGFyZ3VtZW50IGJTaWRlVHlwZTsKICAgIH0KCiAgICBleHRlbnNpb24gZG9tYWluIHsKICAgICAgICBkZXNjcmlwdGlvbiAiS2V5d29yZCB1c2VkIHRvIGNhcnJ5IGRvbWFpbiBpbmZvcm1hdGlvbi4iOwogICAgICAgIGFyZ3VtZW50IGRvbWFpbk5hbWU7CiAgICB9CgogICAgZXh0ZW5zaW9uIGxhYmVsIHsKICAgICAgICBkZXNjcmlwdGlvbgogICAgICAgICAgICAiVGhlIGxhYmVsIGNhbiBiZSB1c2VkIHRvIGdpdmUgbW9kdWxlcyBhbmQgc3VibW9kdWxlcyBhIHNlbWFudGljCiAgICAgICAgICAgIHZlcnNpb24sIGluIGFkZGl0aW9uIHRvIHRoZWlyIHJldmlzaW9uLgoKICAgICAgICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgbGFiZWwgaXMgP3gueS56PyA/IGV4cHJlc3NlZCBhcyBwYXR0ZXJuLCBpdCBpcwogICAgICAgICAgICBbMC05XStcXC5bMC05XStcXC5bMC05XSsKCiAgICAgICAgICAgIFRoZSBzdGF0ZW1lbnQgTVVTVCBvbmx5IGJlIGEgc3Vic3RhdGVtZW50IG9mIHRoZSByZXZpc2lvbiBzdGF0ZW1lbnQuCiAgICAgICAgICAgIFplcm8gb3Igb25lIHJldmlzaW9uIGxhYmVsIHN0YXRlbWVudHMgcGVyIHBhcmVudCBzdGF0ZW1lbnQgYXJlCiAgICAgICAgICAgIGFsbG93ZWQuCgogICAgICAgICAgICBSZXZpc2lvbiBsYWJlbHMgTVVTVCBiZSB1bmlxdWUgYW1vbmdzdCBhbGwgcmV2aXNpb25zIG9mIGEgbW9kdWxlIG9yCiAgICAgICAgICAgIHN1Ym1vZHVsZS4iOwoKICAgICAgICBhcmd1bWVudCBzZW12ZXJzaW9uOwogICAgfQp9
+o-ran-smo-teiv-common-yang-types	urn:o-ran:smo-teiv-common-yang-types	\N	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLXR5cGVzIHsKICAgIHlhbmctdmVyc2lvbiAxLjE7CiAgICBuYW1lc3BhY2UgInVybjpvLXJhbjpzbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyI7CiAgICBwcmVmaXggb3ItdGVpdi10eXBlczsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7IHByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogIGRlc2NyaXB0aW9uCiAgIlRvcG9sb2d5IGFuZCBJbnZlbnRvcnkgY29tbW9uIHR5cGVzIG1vZGVsCgogIFRoaXMgbW9kZWwgY29udGFpbnMgcmUtdXNhYmxlIGRhdGEgdHlwZXMgdGhhdCB0b3BvbG9neSBhbmQgaW52ZW50b3J5IG1vZGVscwogIHdpbGwgZnJlcXVlbnRseSB1c2UgYXMgcGFydCBvZiB0eXBlcyBhbmQgcmVsYXRpb25zaGlwcy4KCiAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7CiAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIjsKCiAgICByZXZpc2lvbiAiMjAyNC0wNS0yNCIgewogICAgICAgIGRlc2NyaXB0aW9uICJJbml0aWFsIHJldmlzaW9uLiI7CiAgICAgICAgb3ItdGVpdi15ZXh0OmxhYmVsIDAuMy4wOwogICAgfQoKICAgIGdyb3VwaW5nIFRvcF9HcnBfVHlwZSB7CiAgICAgICAgZGVzY3JpcHRpb24gIkdyb3VwaW5nIGNvbnRhaW5pbmcgdGhlIGtleSBhdHRyaWJ1dGUgY29tbW9uIHRvIGFsbCB0eXBlcy4KICAgICAgICAgICAgQWxsIHR5cGVzIE1VU1QgdXNlIHRoaXMgZ3JvdXBpbmcuIjsKCiAgICAgICAgbGVhZiBpZCB7CiAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pcXVlIGlkZW50aWZpZXIgb2YgdG9wb2xvZ3kgZW50aXRpZXMuIFJlcHJlc2VudHMgdGhlCiAgICAgICAgICAgICAgICBFbnRpdHkgSW5zdGFuY2UgSWRlbnRpZmllci4iOwogICAgICAgIH0KICAgIH0KCiAgICBjb250YWluZXIgZGVjb3JhdG9ycyB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIlRoaXMgY29udGFpbmVyIHNlcnZlcyBhcyBleHRlbnNpb24gcG9pbnQgZm9yIGFwcGxpY2F0aW9ucyB3aXNoaW5nCiAgICAgICAgICAgIHRvIGRlZmluZSB0aGVpciBvd24gZGVjb3JhdG9ycy4gVGhpcyBpcyBkb25lIHZpYSBhdWdtZW50YXRpb25zLiBUaGV5CiAgICAgICAgICAgIGNhbiBvbmx5IGJlIGRlZmluZWQgaW4gbmFtZSB2YWx1ZSBwYWlyLgoKICAgICAgICAgICAgVGhpcyBpcyBhIGNvbnN1bWVyIGRhdGEgYW5kIGNhbiBiZSBhdHRhY2hlZCB0byBUb3BvbG9neSBFbnRpdHkgb3IKICAgICAgICAgICAgVG9wb2xvZ3kgUmVsYXRpb24gaW5zdGFuY2UsIG91dHNpZGUgb2YgdGhlIGRlY2xhcmVkIFRvcG9sb2d5IEVudGl0eQogICAgICAgICAgICBvciBUb3BvbG9neSBSZWxhdGlvbnNoaXAncyBhdHRyaWJ1dGVzLiBUaGlzIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQsCiAgICAgICAgICAgIGFuZCBpdCBNVVNUIE5PVCBiZSBhdWdtZW50ZWQgb3IgZGV2aWF0ZWQgaW4gYW55IHdheSwgdW5sZXNzIHN0YXRlZAogICAgICAgICAgICBvdGhlcndpc2UuIjsKICAgIH0KCiAgICBsZWFmLWxpc3QgY2xhc3NpZmllcnMgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJDb25zdW1lciBkZWZpbmVkIHRhZ3MgdG8gdG9wb2xvZ3kgZW50aXRpZXMgYW5kIHJlbGF0aW9uc2hpcHMuCgogICAgICAgICAgICBUaGlzIGlzIGEgY29uc3VtZXIgZGF0YSBhbmQgY2FuIGJlIGF0dGFjaGVkIHRvIFRvcG9sb2d5IEVudGl0eSBvcgogICAgICAgICAgICBUb3BvbG9neSBSZWxhdGlvbiBpbnN0YW5jZSwgb3V0c2lkZSBvZiB0aGUgZGVjbGFyZWQgVG9wb2xvZ3kgRW50aXR5CiAgICAgICAgICAgIG9yIFRvcG9sb2d5IFJlbGF0aW9uc2hpcCdzIGF0dHJpYnV0ZXMuIFRoaXMgY2Fubm90IGJlIGluc3RhbnRpYXRlZCwKICAgICAgICAgICAgYW5kIGl0IE1VU1QgTk9UIGJlIGF1Z21lbnRlZCBvciBkZXZpYXRlZCBpbiBhbnkgd2F5LCB1bmxlc3Mgc3RhdGVkCiAgICAgICAgICAgIG90aGVyd2lzZS4iOwoKICAgICAgICB0eXBlIGlkZW50aXR5cmVmIHsgYmFzZSBjbGFzc2lmaWVyOyB9CiAgICB9CgogICAgbGVhZi1saXN0IHNvdXJjZUlkcyB7CiAgICAgICAgZGVzY3JpcHRpb24KICAgICAgICAgICAgIkFuIG9yZGVyZWQgbGlzdCBvZiBpZGVudGl0aWVzIHRoYXQgcmVwcmVzZW50IHRoZSBzZXQgb2YgbmF0aXZlCiAgICAgICAgICAgIHNvdXJjZSBpZGVudGlmaWVycyBmb3IgcGFydGljaXBhdGluZyBlbnRpdGllcy4KCiAgICAgICAgICAgIFRoaXMgaXMgYSBjb25zdW1lciBkYXRhIGFuZCBjYW4gYmUgYXR0YWNoZWQgdG8gVG9wb2xvZ3kgRW50aXR5IG9yCiAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkKICAgICAgICAgICAgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4gVGhpcyBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLAogICAgICAgICAgICBhbmQgaXQgTVVTVCBOT1QgYmUgYXVnbWVudGVkIG9yIGRldmlhdGVkIGluIGFueSB3YXksIHVubGVzcyBzdGF0ZWQKICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CgogICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgIG9yZGVyZWQtYnkgdXNlcjsKICAgIH0KCiAgICBjb250YWluZXIgbWV0YWRhdGEgewogICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICJUaGlzIGNvbnRhaW5lciBzZXJ2ZXMgYXMgZXh0ZW5zaW9uIHBvaW50IHRvIGRlZmluZSBtZXRhZGF0YS4gVGhleQogICAgICAgICAgICBjYW4gb25seSBiZSBkZWZpbmVkIGluIG5hbWUgdmFsdWUgcGFpci4KCiAgICAgICAgICAgIFRoaXMgaXMgYSBjb25zdW1lciBkYXRhIGFuZCBjYW4gYmUgYXR0YWNoZWQgdG8gVG9wb2xvZ3kgRW50aXR5IG9yCiAgICAgICAgICAgIFRvcG9sb2d5IFJlbGF0aW9uIGluc3RhbmNlLCBvdXRzaWRlIG9mIHRoZSBkZWNsYXJlZCBUb3BvbG9neSBFbnRpdHkKICAgICAgICAgICAgb3IgVG9wb2xvZ3kgUmVsYXRpb25zaGlwJ3MgYXR0cmlidXRlcy4gVGhpcyBjYW5ub3QgYmUgaW5zdGFudGlhdGVkLAogICAgICAgICAgICBhbmQgaXQgTVVTVCBOT1QgYmUgYXVnbWVudGVkIG9yIGRldmlhdGVkIGluIGFueSB3YXksIHVubGVzcyBzdGF0ZWQKICAgICAgICAgICAgb3RoZXJ3aXNlLiI7CiAgICB9CgogICAgaWRlbnRpdHkgY2xhc3NpZmllcnsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNsYXNzaWZpZXIgaXMgdXNlZCBhcyBhIGJhc2UgdG8gcHJvdmlkZSBhbGwgY2xhc3NpZmllcnMKICAgICAgICAgICAgd2l0aCBpZGVudGl0eS4gIjsKICAgIH0KfQ==
+o-ran-smo-teiv-equipment	urn:o-ran:smo-teiv-equipment	EQUIPMENT	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LWVxdWlwbWVudCB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtZXF1aXBtZW50IjsKICAgIHByZWZpeCBvci10ZWl2LWVxdWlwOwoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy10eXBlcyB7cHJlZml4IG9yLXRlaXYtdHlwZXM7IH0KCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctZXh0ZW5zaW9ucyB7cHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIGltcG9ydCBpZXRmLWdlby1sb2NhdGlvbiB7CiAgICAgICAgcHJlZml4IGdlbzsKICAgICAgICByZWZlcmVuY2UgIlJGQyA5MTc5OiBBIFlBTkcgR3JvdXBpbmcgZm9yIEdlb2dyYXBoaWMgTG9jYXRpb25zIjsKICAgIH0KCiAgICBvcmdhbml6YXRpb24gIk9SQU4iOwogICAgY29udGFjdCAiVGhlIEF1dGhvcnMiOwogICAgZGVzY3JpcHRpb24KICAgICJSQU4gRXF1aXBtZW50IHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gRXF1aXBtZW50IGRvbWFpbiwgd2hpY2ggaXMgbW9kZWxsZWQgdG8gdW5kZXJzdGFuZCB0aGUgcGh5c2ljYWwKICAgIGxvY2F0aW9uIG9mIGVxdWlwbWVudCBzdWNoIGFzIGFudGVubmFzIGFzc29jaWF0ZWQgd2l0aCBhIGNlbGwvY2FycmllcgogICAgYW5kIHRoZWlyIHJlbGV2YW50IHByb3BlcnRpZXMgZS5nLiB0aWx0LCBtYXggcG93ZXIgZXRjLgoKICAgIENvcHlyaWdodCAoQykgMjAyNCBFcmljc3NvbgogICAgTW9kaWZpY2F0aW9ucyBDb3B5cmlnaHQgKEMpIDIwMjQgT3BlbkluZnJhIEZvdW5kYXRpb24gRXVyb3BlCgogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsKICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUywKICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIEVRVUlQTUVOVDsKCiAgICBsaXN0IEFudGVubmFNb2R1bGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBbiBBbnRlbm5hIE1vZHVsZSByZXByZXNlbnRzIHRoZSBwaHlzaWNhbCBhc3BlY3Qgb2YgYW4KICAgICAgICAgICAgYW50ZW5uYS4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGFudGVubmFNb2RlbE51bWJlciB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVmVuZG9yLXNwZWNpZmljIGFudGVubmEgbW9kZWwgaWRlbnRpZmllci4gVGhpcwogICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMgbm8KICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25hbCBpbXBhY3QuIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG1lY2hhbmljYWxBbnRlbm5hQmVhcmluZyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQW50ZW5uYSBiZWFyaW5nIG9uIGFudGVubmEgc3VidW5pdCB3aGVyZSBhbnRlbm5hCiAgICAgICAgICAgICAgICAgICAgdW5pdCBpcyBpbnN0YWxsZWQuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgbWVjaGFuaWNhbEFudGVubmFUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgZml4ZWQgYW50ZW5uYSB0aWx0IG9mIHRoZSBpbnN0YWxsYXRpb24sIGRlZmluZWQKICAgICAgICAgICAgICAgICAgICBhcyB0aGUgaW5jbGluYXRpb24gb2YgdGhlIGFudGVubmEgZWxlbWVudCByZXNwZWN0IHRvIHRoZQogICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsIHBsYW5lLiBJdCBpcyBhIHNpZ25lZCB2YWx1ZS4gUG9zaXRpdmUgaW5kaWNhdGVzCiAgICAgICAgICAgICAgICAgICAgZG93bnRpbHQsIGFuZCBuZWdhdGl2ZSBpbmRpY2F0ZXMgdXB0aWx0LiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHBvc2l0aW9uV2l0aGluU2VjdG9yIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBbnRlbm5hIHVuaXQgcG9zaXRpb24gd2l0aGluIHNlY3Rvci4gVGhpcyBhdHRyaWJ1dGUKICAgICAgICAgICAgICAgICAgICBpcyBwYXJ0IG9mIEFJU0cgdjMgQURCIFN0YW5kYXJkIGFuZCBoYXMgbm8gb3BlcmF0aW9uYWwKICAgICAgICAgICAgICAgICAgICBpbXBhY3QuIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRvdGFsVGlsdCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVG90YWwgYW50ZW5uYSBlbGV2YXRpb24gaW5jbHVkaW5nIHRoZSBpbnN0YWxsZWQKICAgICAgICAgICAgICAgICAgICB0aWx0IGFuZCB0aGUgdGlsdCBhcHBsaWVkIGJ5IHRoZSBSZW1vdGUgRWxlY3RyaWNhbAogICAgICAgICAgICAgICAgICAgIFRpbHQgKFJFVCkuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWxlY3RyaWNhbEFudGVubmFUaWx0IHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFbGVjdHJpY2FsbHktY29udHJvbGxlZCB0aWx0IG9mIG1haW4gYmVhbSBtYXhpbXVtCiAgICAgICAgICAgICAgICAgICAgd2l0aCByZXNwZWN0IHRvIGRpcmVjdGlvbiBvcnRob2dvbmFsIHRvIGFudGVubmEgZWxlbWVudAogICAgICAgICAgICAgICAgICAgIGF4aXMgKHNlZSAzR1BQIFRTIDI1LjQ2NikuIFZhbHVlIGlzIHNpZ25lZDsgdGlsdCBkb3duIGlzCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpdmUsIHRpbHQgdXAgaXMgbmVnYXRpdmUuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYtbGlzdCBhbnRlbm5hQmVhbVdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgYW5ndWxhciBzcGFuIG9mIHRoZSBtYWluIGxvYmUgb2YgdGhlIGFudGVubmEKICAgICAgICAgICAgICAgICAgICByYWRpYXRpb24gcGF0dGVybiBpbiB0aGUgaG9yaXpvbnRhbCBwbGFuZS4gTWVhc3VyZWQgaW4KICAgICAgICAgICAgICAgICAgICBkZWdyZWVzLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IFNpdGUgewogICAgICAgIGRlc2NyaXB0aW9uICJBIHNpdGUgaXMgYSBwaHlzaWNhbCBsb2NhdGlvbiB3aGVyZSBhbiBlcXVpcG1lbnQgY2FuIGJlCiAgICAgICAgICAgIGluc3RhbGxlZC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIG5hbWUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5hbWUgb2YgU2l0ZSI7CiAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBBTlRFTk5BTU9EVUxFX0lOU1RBTExFRF9BVF9TSVRFIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIGluc3RhbGxlZC1hdC1zaXRlIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgTW9kdWxlIGluc3RhbGxlZCBhdCBTaXRlLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBBbnRlbm5hTW9kdWxlOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgaW5zdGFsbGVkLWFudGVubmFNb2R1bGUgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiU2l0ZSB3aGVyZSBBbnRlbm5hIE1vZHVsZSBpcyBpbnN0YWxsZWQuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIFNpdGU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9Cn0=
+o-ran-smo-teiv-oam	urn:o-ran:smo-teiv-oam	OAM	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LW9hbSB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtb2FtIjsKICAgIHByZWZpeCBvci10ZWl2LW9hbTsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggb3ItdGVpdi10eXBlczsgfQoKICAgIGltcG9ydCBvLXJhbi1zbW8tdGVpdi1jb21tb24teWFuZy1leHRlbnNpb25zIHsgcHJlZml4IG9yLXRlaXYteWV4dDsgfQoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbiAKICAgICJSQU4gTyZNIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gTyZNIGRvbWFpbiwgd2hpY2ggYXJlIGludGVuZGVkIHRvIHJlcHJlc2VudCBtYW5hZ2VtZW50IHN5c3RlbXMKICAgIGFuZCBtYW5hZ2VtZW50IGludGVyZmFjZXMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIE9BTTsKCiAgICBsaXN0IE1hbmFnZWRFbGVtZW50IHsKICAgICAgICBkZXNjcmlwdGlvbiAiQSBNYW5hZ2VkIEVsZW1lbnQgKE1FKSBpcyBhIG5vZGUgaW50byBhIHRlbGVjb21tdW5pY2F0aW9uCiAgICAgICAgICAgIG5ldHdvcmsgcHJvdmlkaW5nIHN1cHBvcnQgYW5kL29yIHNlcnZpY2UgdG8gc3Vic2NyaWJlcnMuIEFuIE1FCiAgICAgICAgICAgIGNvbW11bmljYXRlcyB3aXRoIGEgbWFuYWdlciBhcHBsaWNhdGlvbiAoZGlyZWN0bHkgb3IgaW5kaXJlY3RseSkKICAgICAgICAgICAgb3ZlciBvbmUgb3IgbW9yZSBpbnRlcmZhY2VzIGZvciB0aGUgcHVycG9zZSBvZiBiZWluZyBtb25pdG9yZWQKICAgICAgICAgICAgYW5kL29yIGNvbnRyb2xsZWQuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CiAgICB9Cn0=
+o-ran-smo-teiv-ran	urn:o-ran:smo-teiv-ran	RAN	[]	2024-05-24	bW9kdWxlIG8tcmFuLXNtby10ZWl2LXJhbiB7CiAgICB5YW5nLXZlcnNpb24gMS4xOwogICAgbmFtZXNwYWNlICJ1cm46by1yYW46c21vLXRlaXYtcmFuIjsKICAgIHByZWZpeCBvci10ZWl2LXJhbjsKCiAgICBpbXBvcnQgby1yYW4tc21vLXRlaXYtY29tbW9uLXlhbmctdHlwZXMge3ByZWZpeCBvci10ZWl2LXR5cGVzOyB9CgogICAgaW1wb3J0IG8tcmFuLXNtby10ZWl2LWNvbW1vbi15YW5nLWV4dGVuc2lvbnMge3ByZWZpeCBvci10ZWl2LXlleHQ7IH0KCiAgICBpbXBvcnQgXzNncHAtY29tbW9uLXlhbmctdHlwZXMgeyBwcmVmaXggdHlwZXMzZ3BwOyB9CgogICAgaW1wb3J0IGlldGYtZ2VvLWxvY2F0aW9uIHsKICAgICAgICBwcmVmaXggZ2VvOwogICAgICAgIHJlZmVyZW5jZSAiUkZDIDkxNzk6IEEgWUFORyBHcm91cGluZyBmb3IgR2VvZ3JhcGhpYyBMb2NhdGlvbnMiOwogICAgfQoKICAgIG9yZ2FuaXphdGlvbiAiT1JBTiI7CiAgICBjb250YWN0ICJUaGUgQXV0aG9ycyI7CiAgICBkZXNjcmlwdGlvbgogICAgIlJBTiBMb2dpY2FsIHRvcG9sb2d5IG1vZGVsLgoKICAgIFRoaXMgbW9kZWwgY29udGFpbnMgdGhlIHRvcG9sb2d5IGVudGl0aWVzIGFuZCByZWxhdGlvbnMgaW4gdGhlCiAgICBSQU4gTG9naWNhbCBkb21haW4sIHdoaWNoIHJlcHJlc2VudHMgdGhlIGZ1bmN0aW9uYWwgY2FwYWJpbGl0eQogICAgb2YgdGhlIGRlcGxveWVkIFJBTiB0aGF0IGFyZSByZWxldmFudCB0byByQXBwcyB1c2UgY2FzZXMuCgogICAgQ29weXJpZ2h0IChDKSAyMDI0IEVyaWNzc29uCiAgICBNb2RpZmljYXRpb25zIENvcHlyaWdodCAoQykgMjAyNCBPcGVuSW5mcmEgRm91bmRhdGlvbiBFdXJvcGUKCiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOwogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLAogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCiAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCI7CgogICAgcmV2aXNpb24gIjIwMjQtMDUtMjQiIHsKICAgICAgICBkZXNjcmlwdGlvbiAiSW5pdGlhbCByZXZpc2lvbi4iOwogICAgICAgIG9yLXRlaXYteWV4dDpsYWJlbCAwLjMuMDsKICAgIH0KCiAgICBvci10ZWl2LXlleHQ6ZG9tYWluIFJBTjsKCiAgICBsaXN0IEdOQkRVRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgRGlzdHJpYnV0ZWQgVW5pdCAoZ05CLURVKS4KCiAgICAgICAgICAgIEEgZ05CIG1heSBjb25zaXN0IG9mIGEgZ05CLUNlbnRyYWxpemVkIFVuaXQgKGdOQi1DVSkgYW5kIGEgZ05CLURVLgogICAgICAgICAgICBUaGUgQ1UgcHJvY2Vzc2VzIG5vbi1yZWFsIHRpbWUgcHJvdG9jb2xzIGFuZCBzZXJ2aWNlcywgYW5kIHRoZSBEVQogICAgICAgICAgICBwcm9jZXNzZXMgUEhZIGxldmVsIHByb3RvY29sIGFuZCByZWFsIHRpbWUgc2VydmljZXMuIFRoZSBnTkItQ1UgYW5kCiAgICAgICAgICAgIHRoZSBnTkItRFUgdW5pdHMgYXJlIGNvbm5lY3RlZCB2aWEgRjEgbG9naWNhbCBpbnRlcmZhY2UuCgogICAgICAgICAgICBUaGUgZm9sbG93aW5nIGlzIHRydWUgZm9yIGEgZ05CLURVOgogICAgICAgICAgICBJcyBjb25uZWN0ZWQgdG8gdGhlIGdOQi1DVS1DUCB0aHJvdWdoIHRoZSBGMS1DIGludGVyZmFjZS4gSXMKICAgICAgICAgICAgY29ubmVjdGVkIHRvIHRoZSBnTkItQ1UtVVAgdGhyb3VnaCB0aGUgRjEtVSBpbnRlcmZhY2UuIE9uZSBnTkItRFUgaXMKICAgICAgICAgICAgY29ubmVjdGVkIHRvIG9ubHkgb25lIGdOQi1DVS1DUC4gT25lIGdOQi1EVSBjYW4gYmUgY29ubmVjdGVkIHRvCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1DVS1VUHMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlIHNhbWUgZ05CLUNVLUNQLgoKICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMgYW5kCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1EVXMuIGdOQi1EVSBpcyBhIGNvbmNyZXRlIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUgTkctUkFOCiAgICAgICAgICAgIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kIGRlbGV0ZQogICAgICAgICAgICB0aGUgZ05CLURVIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBjb250YWluZXIgZFVwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB1c2VkIGFzIHBhcnQgb2YgUE0gRXZlbnRzIGRhdGEiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGdOQkRVSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgRFUgd2l0aGluIGEgZ05vZGVCIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBHTkJDVUNQRnVuY3Rpb24gewogICAgICAgIGRlc2NyaXB0aW9uICJnTm9kZUIgQ2VudHJhbGl6ZWQgVW5pdCBDb250cm9sIFBsYW5lIChnTkItQ1UtQ1ApCgogICAgICAgICAgICBUaGlzIGlzIGEgbG9naWNhbCBub2RlIGhvc3RpbmcgdGhlIFJhZGlvIFJlc291cmNlIENvbnRyb2wgKFJSQykgYW5kCiAgICAgICAgICAgIHRoZSBjb250cm9sIHBsYW5lIHBhcnQgb2YgdGhlIFBhY2tldCBEYXRhIENvbnZlcmdlbmNlIFByb3RvY29sCiAgICAgICAgICAgIChQRENQKSBvZiB0aGUgZ05vZGVCIENlbnRyYWxpemVkIFVuaXQgKGdOQi1DVSkgZm9yIGFuIEUtVVRSQU4gZ05vZGVCCiAgICAgICAgICAgIChlbi1nTkIpIG9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLUNQIHRlcm1pbmF0ZXMgdGhlIEUxCiAgICAgICAgICAgIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLVVQIGFuZCB0aGUgRjEtQyBpbnRlcmZhY2UKICAgICAgICAgICAgY29ubmVjdGVkIHdpdGggdGhlIGdOb2RlQiBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1DUDoKICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItRFUgdGhyb3VnaCB0aGUgRjEtQyBpbnRlcmZhY2UuIElzIGNvbm5lY3RlZAogICAgICAgICAgICB0byB0aGUgZ05CLUNVLVVQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4gT25seSBvbmUgZ05CLUNVLUNQIGlzCiAgICAgICAgICAgIGNvbm5lY3RlZCB0byBvbmUgZ05CLURVLiBPbmx5IG9uZSBnTkItQ1UtQ1AgaXMgY29ubmVjdGVkIHRvIG9uZQogICAgICAgICAgICBnTkItQ1UtVVAuIE9uZSBnTkItRFUgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBnTkItQ1UtVVBzIHVuZGVyCiAgICAgICAgICAgIHRoZSBjb250cm9sIG9mIHRoZSBzYW1lIGdOQi1DVS1DUC5PbmUgZ05CLUNVLVVQIGNhbiBiZSBjb25uZWN0ZWQgdG8KICAgICAgICAgICAgbXVsdGlwbGUgRFVzIHVuZGVyIHRoZSBjb250cm9sIG9mIHRoZSBzYW1lIGdOQi1DVS1DUC4KCiAgICAgICAgICAgIE5vdGU6IEEgZ05CIG1heSBjb25zaXN0IG9mIGEgZ05CLUNVLUNQLCBtdWx0aXBsZSBnTkItQ1UtVVBzIGFuZAogICAgICAgICAgICBtdWx0aXBsZSBnTkItRFVzLiBBIGdOQi1DVS1DUCBpcyBhIGNvbmNyZXRlIGNsYXNzIHRoYXQgZXh0ZW5kcyB0aGUKICAgICAgICAgICAgTkctUkFOIG5vZGUgb2JqZWN0LiBJbiBUb3BvbG9neSwgeW91IGNhbiBjcmVhdGUsIHJlYWQsIHVwZGF0ZSwgYW5kCiAgICAgICAgICAgIGRlbGV0ZSB0aGUgZ05CLUNVLUNQIG9iamVjdC4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGdOQkNVTmFtZSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTmFtZSBvZiBnTm9kZUItQ1UiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBwTE1OSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gaWRlbnRpZmllciB0byBiZSB1c2VkIGFzIHBhcnQgb2YgZ2xvYmFsIFJBTgogICAgICAgICAgICAgICAgICAgIG5vZGUgaWRlbnRpdHkiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgR05CQ1VVUEZ1bmN0aW9uIHsKICAgICAgICBkZXNjcmlwdGlvbiAiZ05vZGVCIENlbnRyYWxpemVkIFVuaXQgVXNlciBQbGFuZSAoZ05CLUNVLVVQKQoKICAgICAgICAgICAgQSBnTkItQ1UtVVAgaXMgYSBsb2dpY2FsIG5vZGUgaG9zdGluZyB0aGUgVXNlciBQbGFuZSBwYXJ0IG9mIHRoZQogICAgICAgICAgICBQYWNrZXQgRGF0YSBDb252ZXJnZW5jZSwgUHJvdG9jb2wgKFBEQ1ApIG9mIHRoZSBnTm9kZUIgQ2VudHJhbGl6ZWQKICAgICAgICAgICAgVW5pdCAoZ05CLUNVKSBmb3IgYW4gRS1VVFJBTiBnTm9kZUIgKGVuLWdOQiksIGFuZCB0aGUgVXNlciBQbGFuZQogICAgICAgICAgICBwYXJ0IG9mIHRoZSBQRENQIHByb3RvY29sIGFuZCB0aGUgU2VydmljZSBEYXRhIEFkYXB0YXRpb24gUHJvdG9jb2wKICAgICAgICAgICAgKFNEQVApIG9mIHRoZSBnTkItQ1UgZm9yIGEgZ05vZGVCIChnTkIpLiBUaGUgZ05CLUNVLVVQIHRlcm1pbmF0ZXMKICAgICAgICAgICAgdGhlIEUxIGludGVyZmFjZSBjb25uZWN0ZWQgd2l0aCB0aGUgZ05CLUNVLUNQIGFuZCB0aGUgRjEtVSBpbnRlcmZhY2UKICAgICAgICAgICAgY29ubmVjdGVkIHdpdGggdGhlIGdOb2RlQiBEaXN0cmlidXRlZCBVbml0IChnTkItRFUpLgoKICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBpcyB0cnVlIGZvciBhIGdOQi1DVS1VUDoKICAgICAgICAgICAgSXMgY29ubmVjdGVkIHRvIHRoZSBnTkItRFUgdGhyb3VnaCB0aGUgRjEtVSBpbnRlcmZhY2UuIElzIGNvbm5lY3RlZAogICAgICAgICAgICB0byB0aGUgZ05CLUNVLUNQIHRocm91Z2ggdGhlIEUxIGludGVyZmFjZS4gT25lIGdOQi1DVS1VUCBpcwogICAgICAgICAgICBjb25uZWN0ZWQgdG8gb25seSBvbmUgZ05CLUNVLUNQLiBPbmUgZ05CLURVIGNhbiBiZSBjb25uZWN0ZWQgdG8KICAgICAgICAgICAgbXVsdGlwbGUgZ05CLUNVLVVQcyB1bmRlciB0aGUgY29udHJvbCBvZiB0aGUgc2FtZSBnTkItQ1UtQ1AuIE9uZQogICAgICAgICAgICBnTkItQ1UtVVAgY2FuIGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBEVXMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgdGhlCiAgICAgICAgICAgIHNhbWUgZ05CLUNVLUNQLgoKICAgICAgICAgICAgTm90ZTogQSBnTkIgbWF5IGNvbnNpc3Qgb2YgYSBnTkItQ1UtQ1AsIG11bHRpcGxlIGdOQi1DVS1VUHMgYW5kCiAgICAgICAgICAgIG11bHRpcGxlIGdOQi1EVXMuIEEgZ05CLUNVLVVQIGlzIGEgY29uY3JldGUgY2xhc3MgdGhhdCBleHRlbmRzIHRoZQogICAgICAgICAgICBORy1SQU4gbm9kZSBvYmplY3QuIEluIFRvcG9sb2d5LCB5b3UgY2FuIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQKICAgICAgICAgICAgZGVsZXRlIHRoZSBnTkItQ1UtVVAgb2JqZWN0LiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgZ05CSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIklkZW50aXR5IG9mIGdOb2RlQiB3aXRoaW4gYSBQTE1OIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZ05CSWRMZW5ndGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlbmd0aCBvZiBnTkJJZCBiaXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBOUkNlbGxDVSB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gTlIgQ2VsbCBpbiBnTm9kZUItQ1UuCgogICAgICAgICAgICA1RyBOUiBpcyBhIG5ldyByYWRpbyBhY2Nlc3MgdGVjaG5vbG9neSAoUkFUKSBkZXZlbG9wZWQgYnkgM0dQUCBmb3IKICAgICAgICAgICAgdGhlIDVHIChmaWZ0aCBnZW5lcmF0aW9uKSBtb2JpbGUgbmV0d29yay4gSXQgaXMgZGVzaWduZWQgdG8gYmUgdGhlCiAgICAgICAgICAgIGdsb2JhbCBzdGFuZGFyZCBmb3IgdGhlIGFpciBpbnRlcmZhY2Ugb2YgNUcgbmV0d29ya3MuCgogICAgICAgICAgICA1RyBOUiBoYXMgc3luY2hyb25pemF0aW9uIHNpZ25hbCB0aGF0IGlzIGtub3duIGFzIFByaW1hcnkKICAgICAgICAgICAgU3luY2hyb25pemF0aW9uIFNpZ25hbCAoUFNTKSBhbmQgU2Vjb25kYXJ5IFN5bmNocm9uaXphdGlvbgogICAgICAgICAgICBTaWduYWwgKFNTUykuIFRoZXNlIHNpZ25hbHMgYXJlIHNwZWNpZmljIHRvIE5SIHBoeXNpY2FsIGxheWVyIGFuZAogICAgICAgICAgICBwcm92aWRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gcmVxdWlyZWQgYnkgVUUgZm9yIGRvd25saW5rCiAgICAgICAgICAgIHN5bmNocm9uaXphdGlvbjogUFNTIHByb3ZpZGVzIFJhZGlvIEZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZiAxc3QKICAgICAgICAgICAgU3ltYm9sIGluIGEgUmFkaW8gZnJhbWUpIFNTUyBwcm92aWRlcyBTdWJmcmFtZSBCb3VuZGFyeSAoUG9zaXRpb24gb2YKICAgICAgICAgICAgMXN0IFN5bWJvbCBpbiBhIFN1YmZyYW1lKSBQaHlzaWNhbCBMYXllciBDZWxsIElEIChQQ0kpIGluZm9ybWF0aW9uCiAgICAgICAgICAgIHVzaW5nIGJvdGggUFNTIGFuZCBTU1MuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBjZWxsTG9jYWxJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVXNlZCB0b2dldGhlciB3aXRoIGdOb2RlQiBpZGVudGlmaWVyIHRvIGlkZW50aWZ5IE5SCiAgICAgICAgICAgICAgICAgICAgY2VsbCBpbiBQTE1OLiBVc2VkIHRvZ2V0aGVyIHdpdGggZ05CSWQgdG8gZm9ybSBOQ0kuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnRhaW5lciBwbG1uSWQgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlBMTU4gSUQgZm9yIE5SIENHSS4gSWYgZW1wdHksCiAgICAgICAgICAgICAgICAgICAgR05CQ1VDUEZ1bmN0aW9uOjpwTE1OSWQgaXMgdXNlZCBmb3IgUExNTiBJRCBpbiBOUiBDR0kiOwogICAgICAgICAgICAgICAgdXNlcyB0eXBlczNncHA6UExNTklkOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5DSSB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbCBJZGVudGl0eSI7CiAgICAgICAgICAgICAgICB0eXBlIGludDY0OwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IE5SQ2VsbERVIHsKICAgICAgICBkZXNjcmlwdGlvbiAiUmVwcmVzZW50cyBhbiBOUiBDZWxsIGluIGdOb2RlQi1EVS4KCiAgICAgICAgICAgIDVHIE5SIGlzIGEgbmV3IHJhZGlvIGFjY2VzcyB0ZWNobm9sb2d5IChSQVQpIGRldmVsb3BlZCBieSAzR1BQIGZvcgogICAgICAgICAgICB0aGUgNUcgKGZpZnRoIGdlbmVyYXRpb24pIG1vYmlsZSBuZXR3b3JrLiBJdCBpcyBkZXNpZ25lZCB0byBiZSB0aGUKICAgICAgICAgICAgZ2xvYmFsIHN0YW5kYXJkIGZvciB0aGUgYWlyIGludGVyZmFjZSBvZiA1RyBuZXR3b3Jrcy4KCiAgICAgICAgICAgIDVHIE5SIGhhcyBzeW5jaHJvbml6YXRpb24gc2lnbmFsIHRoYXQgaXMga25vd24gYXMgUHJpbWFyeQogICAgICAgICAgICBTeW5jaHJvbml6YXRpb24gc2lnbmFsIChQU1MpIGFuZCBTZWNvbmRhcnkgU3luY2hyb25pemF0aW9uIHNpZ25hbAogICAgICAgICAgICAoU1NTKS4gVGhlc2Ugc2lnbmFscyBhcmUgc3BlY2lmaWMgdG8gTlIgcGh5c2ljYWwgbGF5ZXIgYW5kIHByb3ZpZGUKICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSBVRSBmb3IgZG93bmxpbmsKICAgICAgICAgICAgc3luY2hyb25pemF0aW9uOiBQU1MgcHJvdmlkZXMgUmFkaW8gRnJhbWUgQm91bmRhcnkgKFBvc2l0aW9uIG9mIDFzdAogICAgICAgICAgICBTeW1ib2wgaW4gYSBSYWRpbyBmcmFtZSkgU1NTIHByb3ZpZGVzIFN1YmZyYW1lIEJvdW5kYXJ5IChQb3NpdGlvbiBvZgogICAgICAgICAgICAxc3QgU3ltYm9sIGluIGEgU3ViZnJhbWUpIFBoeXNpY2FsIExheWVyIENlbGwgSUQgKFBDSSkgaW5mb3JtYXRpb24KICAgICAgICAgICAgdXNpbmcgYm90aCBQU1MgYW5kIFNTUy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGNlbGxMb2NhbElkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJVc2VkIHRvZ2V0aGVyIHdpdGggZ05vZGVCIGlkZW50aWZpZXIgdG8gaWRlbnRpZnkgTlIKICAgICAgICAgICAgICAgICAgICBjZWxsIGluIFBMTU4uIFVzZWQgdG9nZXRoZXIgd2l0aCBnTkJJZCB0byBmb3JtIE5DSS4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBuQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwgSWRlbnRpdHkuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50NjQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgblJQQ0kgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBQaHlzaWNhbCBDZWxsIElkZW50aXR5IChQQ0kpIG9mIHRoZSBOUiBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIG5SVEFDIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBUcmFja2luZyBBcmVhIENvZGUgKFRBQykuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBFTm9kZUJGdW5jdGlvbiB7CiAgICAgICAgZGVzY3JpcHRpb24gIkFuIEV2b2x2ZWQgTm9kZSBCIChlTm9kZUIpIGlzIHRoZSBvbmx5IG1hbmRhdG9yeSBub2RlIGluCiAgICAgICAgICAgIHRoZSByYWRpbyBhY2Nlc3MgbmV0d29yayAoUkFOKSBvZiBMb25nLVRlcm0gRXZvbHV0aW9uIChMVEUpLiBUaGUKICAgICAgICAgICAgZU5vZGVCIGlzIGEgY29tcGxleCBiYXNlIHN0YXRpb24gdGhhdCBoYW5kbGVzIHJhZGlvIGNvbW11bmljYXRpb25zCiAgICAgICAgICAgIGluIHRoZSBjZWxsIGFuZCBjYXJyaWVzIG91dCByYWRpbyByZXNvdXJjZSBtYW5hZ2VtZW50IGFuZCBoYW5kb3ZlcgogICAgICAgICAgICBkZWNpc2lvbnMuIFVubGlrZSAyLzNHIHdpcmVsZXNzIFJBTiwgdGhlcmUgaXMgbm8gY2VudHJhbGl6ZWQgcmFkaW8KICAgICAgICAgICAgbmV0d29yayBjb250cm9sbGVyIGluIExURS4gSXQgaXMgdGhlIGhhcmR3YXJlIHRoYXQgaXMgY29ubmVjdGVkIHRvCiAgICAgICAgICAgIHRoZSBtb2JpbGUgcGhvbmUgbmV0d29yayB0aGF0IGNvbW11bmljYXRlcyBkaXJlY3RseSB3aXRoIG1vYmlsZQogICAgICAgICAgICBoYW5kc2V0cyAoVXNlciBFcXVpcG1lbnQpLCBsaWtlIGEgYmFzZSB0cmFuc2NlaXZlciBzdGF0aW9uIChCVFMpIGluCiAgICAgICAgICAgIEdTTSBuZXR3b3Jrcy4gVGhpcyBzaW1wbGlmaWVzIHRoZSBhcmNoaXRlY3R1cmUgYW5kIGFsbG93cyBsb3dlcgogICAgICAgICAgICByZXNwb25zZSB0aW1lcy4iOwoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgY29udGFpbmVyIGF0dHJpYnV0ZXMgewogICAgICAgICAgICBsZWFmIGVOQklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRU5vZGVCIElEIHRoYXQgZm9ybXMgcGFydCBvZiB0aGUgQ2VsbCBHbG9iYWwKICAgICAgICAgICAgICAgICAgICBJZGVudGl0eSwgYW5kIGlzIGFsc28gdXNlZCB0byBpZGVudGlmeSB0aGUgbm9kZSBvdmVyIHRoZSBTMQogICAgICAgICAgICAgICAgICAgIGludGVyZmFjZSI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBjb250YWluZXIgZU5vZGVCUGxtbklkIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRU5vZGVCIFB1YmxpYyBMYW5kIE1vYmlsZSBOZXR3b3JrIChQTE1OKSBJRAogICAgICAgICAgICAgICAgICAgIHRoYXQgZm9ybXMgcGFydCBvZiB0aGUgRU5vZGVCIEdsb2JhbCBJRCB1c2VkIHRvIGlkZW50aWZ5IHRoZQogICAgICAgICAgICAgICAgICAgIG5vZGUgb3ZlciB0aGUgUzEgaW50ZXJmYWNlLiBOb3RlOiBUaGUgdmFsdWUKICAgICAgICAgICAgICAgICAgICAoTUNDPTAwMSwgTU5DPTAxKSBpbmRpY2F0ZXMgdGhhdCB0aGUgUExNTiBpcyBub3QgaW5pdGlhdGVkLgogICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBjYW4gbm90IGJlIHVzZWQgYXMgYSB2YWxpZCBQTE1OIElkZW50aXR5LiI7CgogICAgICAgICAgICAgICAgbGVhZiBtY2MgewogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgTUNDIHBhcnQgb2YgYSBQTE1OIGlkZW50aXR5IHVzZWQgaW4gdGhlCiAgICAgICAgICAgICAgICAgICAgICAgIHJhZGlvIG5ldHdvcmsuIjsKICAgICAgICAgICAgICAgICAgICB0eXBlIGludDMyIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgMC4uOTk5OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGxlYWYgbW5jIHsKICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE1OQyBwYXJ0IG9mIGEgUExNTiBpZGVudGl0eSB1c2VkIGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDAuLjk5OTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBsZWFmIG1uY0xlbmd0aCB7CiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBsZW5ndGggb2YgdGhlIE1OQyBwYXJ0IG9mIGEgUExNTiBpZGVudGl0eQogICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIHRoZSByYWRpbyBuZXR3b3JrLiI7CiAgICAgICAgICAgICAgICAgICAgdHlwZSBpbnQzMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIDIuLjM7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgRVV0cmFuQ2VsbCB7CiAgICAgICAgZGVzY3JpcHRpb24gIlJlcHJlc2VudHMgYW4gRkREIG9yIFRERCBFVXRyYW5DZWxsIGFuZAogICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHBhcmFtZXRlcnMgbmVlZGVkIGJ5IHRoZSBjZWxsLgogICAgICAgICAgICAgICAgICAgIEl0IGFsc28gY29udGFpbnMgcGFyYW1ldGVycyBmb3IgdGhlCiAgICAgICAgICAgICAgICAgICAgbWFuZGF0b3J5IGNvbW1vbiBjaGFubmVscy4gQW4gRVVUUkFOIHN0YW5kcwogICAgICAgICAgICAgICAgICAgIGZvciBFdm9sdmVkIFVuaXZlcnNhbCBNb2JpbGUgVGVsZWNvbW11bmljYXRpb25zCiAgICAgICAgICAgICAgICAgICAgU3lzdGVtIChVTVRTKSBUZXJyZXN0cmlhbCBSYWRpbyBBY2Nlc3MgTmV0d29yawogICAgICAgICAgICAgICAgICAgIHdoaWNoIGNvbnRhaW5zIGFuIGVOb2RlQi4gVGhlIGVOb2RlQiBjb25jcmV0ZQogICAgICAgICAgICAgICAgICAgIGNsYXNzIGlzIGV4dGVuZGVkIGZyb20gdGhlIEVVVFJBTiBOb2RlIGFic3RyYWN0IGNsYXNzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgY2VsbElkewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJCUyBpbnRlcm5hbCBJRCBhdHRyaWJ1dGUgZm9yIEVVdHJhbkNlbGwuIE11c3QgYmUKICAgICAgICAgICAgICAgICAgICB1bmlxdWUgaW4gdGhlIFJCUy4gVG9nZXRoZXIgd2l0aCB0aGUgTm9kZSBJRCBhbmQgUHVibGljCiAgICAgICAgICAgICAgICAgICAgTGFuZCBNb2JpbGUgTmV0d29yayAoUExNTikgdGhpcyBpcyBhIHVuaXZlcnNhbGx5IHVuaXF1ZQogICAgICAgICAgICAgICAgICAgIGNlbGwgSUQiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY25kbCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIGNoYW5uZWwgbnVtYmVyIGZvciB0aGUgY2VudHJhbCBkb3dubGluawogICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeS4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBlYXJmY251bCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQ2hhbm5lbCBudW1iZXIgZm9yIHRoZSBjZW50cmFsIHVwbGluayBmcmVxdWVuY3kiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBkbENoYW5uZWxCYW5kd2lkdGggewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRoZSBkb3dubGluayBjaGFubmVsIGJhbmR3aWR0aCBpbiB0aGUgRkREIGNlbGwuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZWFyZmNuIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgRS1VVFJBIEFic29sdXRlIFJhZGlvIEZyZXF1ZW5jeSBDaGFubmVsIE51bWJlcgogICAgICAgICAgICAgICAgICAgIChFQVJGQ04pIGZvciB0aGUgVEREIGNlbGwiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBjaGFubmVsQmFuZHdpZHRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJUaGUgY2hhbm5lbCBiYW5kd2lkdGggaW4gdGhlIFRERCBjZWxsLiI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIHRhYyB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVHJhY2tpbmcgQXJlYSBDb2RlIGZvciB0aGUgRVV0cmFuIENlbGwiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBkdXBsZXhUeXBlIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJJbmRpY2F0b3Igb2YgRVV0cmFuQ2VsbCB0eXBlLCBGREQgb3IgVEREIjsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgIGVudW0gZmRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkZERCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gdGRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMTsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlRERCI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxpc3QgTlJTZWN0b3JDYXJyaWVyIHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhlIE5SIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgZGVmaW5pbmcgdGhlIGxvZ2ljYWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYQogICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkIHdpdGggYSBiYXNlIHN0YXRpb24KICAgICAgICAgICAgaGF2aW5nIGl0cyBvd24gYW50ZW5uYXMsIHJhZGlvIHBvcnRzLCBhbmQgY29udHJvbCBjaGFubmVscy4gVGhlCiAgICAgICAgICAgIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbCBpbnRlcmZlcmVuY2UKICAgICAgICAgICAgaW4gY2VsbHVsYXIgc3lzdGVtcywgYW5kIG1vc3Qgd2lyZWxlc3Mgc3lzdGVtcyB1c2UgdGhyZWUgc2VjdG9yCiAgICAgICAgICAgIGNlbGxzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgYXJmY25ETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQWJzb2x1dGUgUmFkaW8gRnJlcXVlbmN5IENoYW5uZWwgTnVtYmVyCiAgICAgICAgICAgICAgICAgICAgKE5SLUFSRkNOKSBmb3IgZG93bmxpbmsiOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbGVhZiBhcmZjblVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBBYnNvbHV0ZSBSYWRpbyBmcmVxdWVuY3kgQ2hhbm5lbCBOdW1iZXIKICAgICAgICAgICAgICAgICAgICAoTlItQVJGQ04pIGZvciB1cGxpbmsuIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgZnJlcXVlbmN5REwgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJGIFJlZmVyZW5jZSBGcmVxdWVuY3kgb2YgZG93bmxpbmsgY2hhbm5lbCI7CiAgICAgICAgICAgICAgICB0eXBlIGludDMyOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmIGZyZXF1ZW5jeVVMIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJSRiBSZWZlcmVuY2UgRnJlcXVlbmN5IG9mIHVwbGluayBjaGFubmVsIjsKICAgICAgICAgICAgICAgIHR5cGUgaW50MzI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYgYlNDaGFubmVsQndETCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiQlMgQ2hhbm5lbCBiYW5kd2lkdGggaW4gTUh6IGZvciBkb3dubGluay4iOwogICAgICAgICAgICAgICAgdHlwZSBpbnQzMjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IExURVNlY3RvckNhcnJpZXIgewogICAgICAgIGRlc2NyaXB0aW9uICJUaGUgTFRFIFNlY3RvciBDYXJyaWVyIG9iamVjdCBwcm92aWRlcyB0aGUgYXR0cmlidXRlcyBmb3IKICAgICAgICAgICAgZGVmaW5pbmcgdGhlIGxvZ2ljYWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgY2FycmllciAoY2VsbCkgaW4gYQogICAgICAgICAgICBzZWN0b3IuIEEgc2VjdG9yIGlzIGEgY292ZXJhZ2UgYXJlYSBhc3NvY2lhdGVkIHdpdGggYSBiYXNlIHN0YXRpb24KICAgICAgICAgICAgaGF2aW5nIGl0cyBvd24gYW50ZW5uYXMsIHJhZGlvIHBvcnRzLCBhbmQgY29udHJvbCBjaGFubmVscy4gVGhlCiAgICAgICAgICAgIGNvbmNlcHQgb2Ygc2VjdG9ycyB3YXMgZGV2ZWxvcGVkIHRvIGltcHJvdmUgY28tY2hhbm5lbCBpbnRlcmZlcmVuY2UKICAgICAgICAgICAgaW4gY2VsbHVsYXIgc3lzdGVtcywgYW5kIG1vc3Qgd2lyZWxlc3Mgc3lzdGVtcyB1c2UgdGhyZWUgc2VjdG9yCiAgICAgICAgICAgIGNlbGxzLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYgc2VjdG9yQ2FycmllclR5cGUgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCB0aGUgc2VjdG9yIGNhcnJpZXIKICAgICAgICAgICAgICAgICAgICBtb2RlbGxlZCBieSBNTyBTZWN0b3JDYXJyaWVyIGlzIGEgZGlnaXRhbCBzZWN0b3IuIjsKICAgICAgICAgICAgICAgIHR5cGUgZW51bWVyYXRpb24gewogICAgICAgICAgICAgICAgICAgIGVudW0gbm9ybWFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDA7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOb3QgYSBkaWdpdGFsIHNlY3RvciI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gbGVmdF9kaWdpdGFsX3NlY3RvciB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIDE7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMZWZ0IGRpZ2l0YWwgc2VjdG9yIGZvciAyRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIHJpZ2h0X2RpZ2l0YWxfc2VjdG9yIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMjsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJpZ2h0IGRpZ2l0YWwgc2VjdG9yIGZvciAyRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIGxlZnRfZGlnaXRhbF9zZWN0b3JfM2RzIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgMzsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxlZnQgZGlnaXRhbCBzZWN0b3IgZm9yIDNEUyI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVudW0gcmlnaHRfZGlnaXRhbF9zZWN0b3JfM2RzIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgNDsKICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIlJpZ2h0IGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbnVtIG1pZGRsZV9kaWdpdGFsX3NlY3Rvcl8zZHMgewogICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA1OwogICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiTWlkZGxlIGRpZ2l0YWwgc2VjdG9yIGZvciAzRFMiOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsaXN0IEFudGVubmFDYXBhYmlsaXR5IHsKICAgICAgICBkZXNjcmlwdGlvbiAiVGhpcyBNTyBzZXJ2ZXMgYXMgYSBtYXBwaW5nIGJldHdlZW4gdGhlIGNlbGwgYW5kIHRoZSBSQlMKICAgICAgICAgICAgZXF1aXBtZW50IHVzZWQgdG8gcHJvdmlkZSBjb3ZlcmFnZSBpbiBhIGNlcnRhaW4gZ2VvZ3JhcGhpY2FsIGFyZWEuCiAgICAgICAgICAgIFRoZSBNTyBhbHNvIGNvbnRyb2xzIHRoZSBtYXhpbXVtIG91dHB1dCBwb3dlciBvZiB0aGUgc2VjdG9yLiI7CgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBjb250YWluZXIgYXR0cmlidXRlcyB7CiAgICAgICAgICAgIGxlYWYtbGlzdCBlVXRyYW5GcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIExURSBmcmVxdWVuY3kgYmFuZHMgdGhhdCBhc3NvY2lhdGVkCiAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmUgc3VwcG9ydHMiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlYWYtbGlzdCBnZXJhbkZxQmFuZHMgewogICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxpc3Qgb2YgR0VSQU4gZnJlcXVlbmN5IGJhbmRzIHRoYXQgYXNzb2NpYXRlZAogICAgICAgICAgICAgICAgICAgIGhhcmR3YXJlIHN1cHBvcnRzIjsKICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZWFmLWxpc3QgblJGcUJhbmRzIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJMaXN0IG9mIE5SIGZyZXF1ZW5jeSBiYW5kcyBhc3NvY2lhdGVkIGhhcmR3YXJlCiAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHMiOwogICAgICAgICAgICAgICAgdHlwZSBzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGlzdCBTZWN0b3IgewogICAgICAgIGRlc2NyaXB0aW9uICJBIGdyb3VwIG9mIGNvLWxvY2F0ZWQgQ2VsbHMgdGhhdCBoYXZlIGEgc2hhcmVkCiAgICAgICAgICAgIGNvdmVyYWdlIGFyZWEuIjsKCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGNvbnRhaW5lciBhdHRyaWJ1dGVzIHsKICAgICAgICAgICAgbGVhZiBzZWN0b3JJZCB7CiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbiAiVW5pdmVyc2FsbHkgdW5pcXVlIElEIGdlbmVyYXRlZCBieSB0aGUgc2VjdG9yJ3MKICAgICAgICAgICAgICAgICAgICBkaXNjb3ZlcnkgbWVjaGFuaXNtLiI7CiAgICAgICAgICAgICAgICB0eXBlIHVpbnQ2NDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdXNlcyBnZW86Z2VvLWxvY2F0aW9uOwoKICAgICAgICAgICAgbGVhZiBhemltdXRoIHsKICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uICJBdmVyYWdlIHZhbHVlIG9mIHRoZSBhemltdXRocyBvZiB0aGUgY2VsbHMKICAgICAgICAgICAgICAgICAgICBjb21wcmlzaW5nIHRoZSBzZWN0b3IsIGRldGVybWluZWQgZHVyaW5nIHNlY3RvciBkaXNjb3ZlcnkuIjsKICAgICAgICAgICAgICAgIHR5cGUgZGVjaW1hbDY0ewogICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uLWRpZ2l0cyA2OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdW5pdHMgImRlZ3JlZXMiOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEVOT0RFQkZVTkNUSU9OX1BST1ZJREVTX0VVVFJBTkNFTEwgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBwcm92aWRlcyBFVVRSQU4gQ2VsbC4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgRU5vZGVCRnVuY3Rpb247CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgcHJvdmlkZWQtYnktZW5vZGViRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiRVVUUkFOIENlbGwgcHJvdmlkZWQgYnkgZU5vZGVCIEZ1bmN0aW9uLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBFVXRyYW5DZWxsOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEVOT0RFQkZVTkNUSU9OX1BST1ZJREVTX0xURVNFQ1RPUkNBUlJJRVIgeyAvLyAxIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBwcm92aWRlZC1sdGVTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImVOb2RlQiBGdW5jdGlvbiBwcm92aWRlcyBMVEUgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEVOb2RlQkZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWVub2RlYkZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxURSBTZWN0b3IgQ2FycmllciBwcm92aWRlZCBieSBlTm9kZUIgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIExURVNlY3RvckNhcnJpZXI7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgR05CRFVGVU5DVElPTl9QUk9WSURFU19OUkNFTExEVSB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBwcm92aWRlcyBOUiBDZWxsLURVLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBHTkJEVUZ1bmN0aW9uOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIHByb3ZpZGVkLWJ5LWduYmR1RnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1EVSBwcm92aWRlZCBieSBnTm9kZUItRFUgRnVuY3Rpb24uIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SQ2VsbERVOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEdOQkRVRlVOQ1RJT05fUFJPVklERVNfTlJTRUNUT1JDQVJSSUVSIHsgLy8gMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgcHJvdmlkZWQtbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1EVSBGdW5jdGlvbiBwcm92aWRlcyBOUiBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgR05CRFVGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1nbmJkdUZ1bmN0aW9uIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIFNlY3RvciBDYXJyaWVyIHByb3ZpZGVkIGJ5IGdOb2RlQi1EVSBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIEdOQkNVQ1BGVU5DVElPTl9QUk9WSURFU19OUkNFTExDVSB7IC8vIDEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHByb3ZpZGVkLW5yQ2VsbEN1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gImdOb2RlQi1DVUNQIEZ1bmN0aW9uIHByb3ZpZGVzIE5SIENlbGwtQ1UuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEdOQkNVQ1BGdW5jdGlvbjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBwcm92aWRlZC1ieS1nbmJjdWNwRnVuY3Rpb24gewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgQ2VsbC1DVSBwcm92aWRlZCBieSBnTm9kZUItQ1VDUCBGdW5jdGlvbi4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgTlJDZWxsQ1U7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICAgICAgbWFuZGF0b3J5IHRydWU7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgRVVUUkFOQ0VMTF9VU0VTX0xURVNFQ1RPUkNBUlJJRVIgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCB1c2VkLWx0ZVNlY3RvckNhcnJpZXIgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiRVVUUkFOIENlbGwgdXNlcyBMVEUgU2VjdG9yIENhcnJpZXIuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIEVVdHJhbkNlbGw7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdXNlZC1ieS1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkxURSBTZWN0b3IgQ2FycmllciB1c2VkIGJ5IEVVVFJBTiBDZWxsLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBMVEVTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgTFRFU0VDVE9SQ0FSUklFUl9VU0VTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHVzZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTFRFIFNlY3RvciBDYXJyaWVyIHVzZXMgQW50ZW5uYSBDYXBhYmlsaXR5LiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDphU2lkZSBMVEVTZWN0b3JDYXJyaWVyOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmLWxpc3QgdXNlZC1ieS1sdGVTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgQ2FwYWJpbGl0eSB1c2VkIGJ5IExURSBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgQW50ZW5uYUNhcGFiaWxpdHk7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CiAgICB9CgogICAgb3ItdGVpdi15ZXh0OmJpRGlyZWN0aW9uYWxUb3BvbG9neVJlbGF0aW9uc2hpcCBOUkNFTExEVV9VU0VTX05SU0VDVE9SQ0FSUklFUiB7IC8vIDAuLjEgdG8gMC4ubgoKICAgICAgICB1c2VzIG9yLXRlaXYtdHlwZXM6VG9wX0dycF9UeXBlOwogICAgICAgIGtleSBpZDsKCiAgICAgICAgbGVhZi1saXN0IHVzZWQtbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwtRFUgdXNlcyBOUiBTZWN0b3IgQ2Fycmllci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgTlJDZWxsRFU7CiAgICAgICAgICAgIHR5cGUgaW5zdGFuY2UtaWRlbnRpZmllcjsKICAgICAgICB9CgogICAgICAgIGxlYWYgdXNlZC1ieS1uckNlbGxEdSB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJOUiBTZWN0b3IgQ2FycmllciB1c2VkIGJ5IE5SIENlbGwtRFUuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIE5SU0VDVE9SQ0FSUklFUl9VU0VTX0FOVEVOTkFDQVBBQklMSVRZIHsgLy8gMC4ubiB0byAwLi4xCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmIHVzZWQtYW50ZW5uYUNhcGFiaWxpdHkgewogICAgICAgICAgICBkZXNjcmlwdGlvbiAiTlIgU2VjdG9yIENhcnJpZXIgdXNlcyBBbnRlbm5hIENhcGFiaWxpdHkuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIE5SU2VjdG9yQ2FycmllcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZi1saXN0IHVzZWQtYnktbnJTZWN0b3JDYXJyaWVyIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIkFudGVubmEgQ2FwYWJpbGl0eSB1c2VkIGJ5IE5SIFNlY3RvciBDYXJyaWVyLiI7CiAgICAgICAgICAgIG9yLXRlaXYteWV4dDpiU2lkZSBBbnRlbm5hQ2FwYWJpbGl0eTsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KCiAgICBvci10ZWl2LXlleHQ6YmlEaXJlY3Rpb25hbFRvcG9sb2d5UmVsYXRpb25zaGlwIFNFQ1RPUl9HUk9VUFNfTlJDRUxMRFUgeyAvLyAwLi4xIHRvIDAuLm4KCiAgICAgICAgdXNlcyBvci10ZWl2LXR5cGVzOlRvcF9HcnBfVHlwZTsKICAgICAgICBrZXkgaWQ7CgogICAgICAgIGxlYWYtbGlzdCBncm91cGVkLW5yQ2VsbER1IHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgTlIgQ2VsbC1EVS4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YVNpZGUgU2VjdG9yOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQoKICAgICAgICBsZWFmIGdyb3VwZWQtYnktc2VjdG9yIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIk5SIENlbGwtRFUgZ3JvdXBlZCBieSBTZWN0b3IuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmJTaWRlIE5SQ2VsbERVOwogICAgICAgICAgICB0eXBlIGluc3RhbmNlLWlkZW50aWZpZXI7CiAgICAgICAgfQogICAgfQoKICAgIG9yLXRlaXYteWV4dDpiaURpcmVjdGlvbmFsVG9wb2xvZ3lSZWxhdGlvbnNoaXAgU0VDVE9SX0dST1VQU19FVVRSQU5DRUxMIHsgLy8gMC4uMSB0byAwLi5uCgogICAgICAgIHVzZXMgb3ItdGVpdi10eXBlczpUb3BfR3JwX1R5cGU7CiAgICAgICAga2V5IGlkOwoKICAgICAgICBsZWFmLWxpc3QgZ3JvdXBlZC1ldVRyYW5DZWxsIHsKICAgICAgICAgICAgZGVzY3JpcHRpb24gIlNlY3RvciBncm91cHMgRVVUUkFOIENlbGwuIjsKICAgICAgICAgICAgb3ItdGVpdi15ZXh0OmFTaWRlIFNlY3RvcjsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KCiAgICAgICAgbGVhZiBncm91cGVkLWJ5LXNlY3RvciB7CiAgICAgICAgICAgIGRlc2NyaXB0aW9uICJFVVRSQU4gQ2VsbCBncm91cGVkIGJ5IFNlY3Rvci4iOwogICAgICAgICAgICBvci10ZWl2LXlleHQ6YlNpZGUgRVV0cmFuQ2VsbDsKICAgICAgICAgICAgdHlwZSBpbnN0YW5jZS1pZGVudGlmaWVyOwogICAgICAgIH0KICAgIH0KfQ==
+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=
+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=
+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==
+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=
 \.
 
-COPY ties_model.entity_info("name", "moduleReferenceName") FROM stdin;
-ManagedElement	o-ran-smo-teiv-oam
-GNBDUFunction	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
+COPY ties_model.entity_info("storedAt", "name", "moduleReferenceName") FROM stdin;
+o-ran-smo-teiv-cloud_CloudNamespace	CloudNamespace	o-ran-smo-teiv-cloud
+o-ran-smo-teiv-cloud_CloudSite	CloudSite	o-ran-smo-teiv-cloud
+o-ran-smo-teiv-cloud_CloudifiedNF	CloudifiedNF	o-ran-smo-teiv-cloud
+o-ran-smo-teiv-cloud_NFDeployment	NFDeployment	o-ran-smo-teiv-cloud
+o-ran-smo-teiv-cloud_NodeCluster	NodeCluster	o-ran-smo-teiv-cloud
+o-ran-smo-teiv-equipment_AntennaModule	AntennaModule	o-ran-smo-teiv-equipment
+o-ran-smo-teiv-equipment_Site	Site	o-ran-smo-teiv-equipment
+o-ran-smo-teiv-oam_ManagedElement	ManagedElement	o-ran-smo-teiv-oam
+o-ran-smo-teiv-ran_AntennaCapability	AntennaCapability	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_ENodeBFunction	ENodeBFunction	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_EUtranCell	EUtranCell	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_GNBCUCPFunction	GNBCUCPFunction	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_GNBCUUPFunction	GNBCUUPFunction	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_GNBDUFunction	GNBDUFunction	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_LTESectorCarrier	LTESectorCarrier	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_NRCellCU	NRCellCU	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_NRCellDU	NRCellDU	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_NRSectorCarrier	NRSectorCarrier	o-ran-smo-teiv-ran
+o-ran-smo-teiv-ran_Sector	Sector	o-ran-smo-teiv-ran
 \.
 
-COPY ties_model.relationship_info("name", "aSideAssociationName", "aSideMOType", "aSideMinCardinality", "aSideMaxCardinality", "bSideAssociationName", "bSideMOType", "bSideMinCardinality", "bSideMaxCardinality", "associationKind", "relationshipDataLocation", "connectSameEntity", "moduleReferenceName") FROM stdin;
-ENODEBFUNCTION_PROVIDES_EUTRANCELL	provided-euTranCell	ENodeBFunction	1	1	provided-by-enodebFunction	EUtranCell	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
-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
+COPY ties_model.relationship_info("name", "aSideAssociationName", "aSideMOType", "aSideModule", "aSideMinCardinality", "aSideMaxCardinality", "bSideAssociationName", "bSideMOType", "bSideModule", "bSideMinCardinality", "bSideMaxCardinality", "associationKind", "connectSameEntity", "relationshipDataLocation", "storedAt", "moduleReferenceName") FROM stdin;
+ANTENNAMODULE_INSTALLED_AT_SITE	installed-at-site	AntennaModule	o-ran-smo-teiv-equipment	0	9223372036854775807	installed-antennaModule	Site	o-ran-smo-teiv-equipment	0	1	BI_DIRECTIONAL	false	A_SIDE	o-ran-smo-teiv-equipment_AntennaModule	o-ran-smo-teiv-equipment
+ANTENNAMODULE_SERVES_ANTENNACAPABILITY	serviced-antennaCapability	AntennaModule	o-ran-smo-teiv-equipment	0	9223372036854775807	serving-antennaModule	AntennaCapability	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	RELATION	o-ran-smo-teiv-rel-equipment-ran_ANTENNAMODULE_SERVES_ANTENNACAPABILITY	o-ran-smo-teiv-rel-equipment-ran
+CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT	comprised-nFDeployment	CloudifiedNF	o-ran-smo-teiv-cloud	1	1	comprised-by-cloudifiedNF	NFDeployment	o-ran-smo-teiv-cloud	1	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-cloud_NFDeployment	o-ran-smo-teiv-cloud
+CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER	deployed-on-nodeCluster	CloudNamespace	o-ran-smo-teiv-cloud	1	9223372036854775807	deployed-cloudNamespace	NodeCluster	o-ran-smo-teiv-cloud	1	1	BI_DIRECTIONAL	false	A_SIDE	o-ran-smo-teiv-cloud_CloudNamespace	o-ran-smo-teiv-cloud
+ENODEBFUNCTION_PROVIDES_EUTRANCELL	provided-euTranCell	ENodeBFunction	o-ran-smo-teiv-ran	1	1	provided-by-enodebFunction	EUtranCell	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_EUtranCell	o-ran-smo-teiv-ran
+ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER	provided-lteSectorCarrier	ENodeBFunction	o-ran-smo-teiv-ran	1	1	provided-by-enodebFunction	LTESectorCarrier	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_LTESectorCarrier	o-ran-smo-teiv-ran
+EUTRANCELL_USES_LTESECTORCARRIER	used-lteSectorCarrier	EUtranCell	o-ran-smo-teiv-ran	0	1	used-by-euTranCell	LTESectorCarrier	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_LTESectorCarrier	o-ran-smo-teiv-ran
+GNBCUCPFUNCTION_PROVIDES_NRCELLCU	provided-nrCellCu	GNBCUCPFunction	o-ran-smo-teiv-ran	1	1	provided-by-gnbcucpFunction	NRCellCU	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_NRCellCU	o-ran-smo-teiv-ran
+GNBDUFUNCTION_PROVIDES_NRCELLDU	provided-nrCellDu	GNBDUFunction	o-ran-smo-teiv-ran	1	1	provided-by-gnbduFunction	NRCellDU	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_NRCellDU	o-ran-smo-teiv-ran
+GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER	provided-nrSectorCarrier	GNBDUFunction	o-ran-smo-teiv-ran	1	1	provided-by-gnbduFunction	NRSectorCarrier	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_NRSectorCarrier	o-ran-smo-teiv-ran
+LTESECTORCARRIER_USES_ANTENNACAPABILITY	used-antennaCapability	LTESectorCarrier	o-ran-smo-teiv-ran	0	9223372036854775807	used-by-lteSectorCarrier	AntennaCapability	o-ran-smo-teiv-ran	0	1	BI_DIRECTIONAL	false	A_SIDE	o-ran-smo-teiv-ran_LTESectorCarrier	o-ran-smo-teiv-ran
+MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF	deployed-as-cloudifiedNF	ManagedElement	o-ran-smo-teiv-oam	1	1	deployed-managedElement	CloudifiedNF	o-ran-smo-teiv-cloud	0	1	BI_DIRECTIONAL	false	A_SIDE	o-ran-smo-teiv-oam_ManagedElement	o-ran-smo-teiv-rel-oam-cloud
+MANAGEDELEMENT_MANAGES_ENODEBFUNCTION	managed-enodebFunction	ManagedElement	o-ran-smo-teiv-oam	1	1	managed-by-managedElement	ENodeBFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_ENodeBFunction	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION	managed-gnbcucpFunction	ManagedElement	o-ran-smo-teiv-oam	1	1	managed-by-managedElement	GNBCUCPFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_GNBCUCPFunction	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION	managed-gnbcuupFunction	ManagedElement	o-ran-smo-teiv-oam	1	1	managed-by-managedElement	GNBCUUPFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_GNBCUUPFunction	o-ran-smo-teiv-rel-oam-ran
+MANAGEDELEMENT_MANAGES_GNBDUFUNCTION	managed-gnbduFunction	ManagedElement	o-ran-smo-teiv-oam	1	1	managed-by-managedElement	GNBDUFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_GNBDUFunction	o-ran-smo-teiv-rel-oam-ran
+NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	deployed-on-cloudNamespace	NFDeployment	o-ran-smo-teiv-cloud	1	9223372036854775807	deployed-nFDeployment	CloudNamespace	o-ran-smo-teiv-cloud	1	9223372036854775807	BI_DIRECTIONAL	false	RELATION	o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE	o-ran-smo-teiv-cloud
+NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	serviced-gnbcucpFunction	NFDeployment	o-ran-smo-teiv-cloud	0	9223372036854775807	serving-nFDeployment	GNBCUCPFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	RELATION	o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	serviced-gnbcuupFunction	NFDeployment	o-ran-smo-teiv-cloud	0	9223372036854775807	serving-nFDeployment	GNBCUUPFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	RELATION	o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_GNBDUFUNCTION	serviced-gnbduFunction	NFDeployment	o-ran-smo-teiv-cloud	0	9223372036854775807	serving-nFDeployment	GNBDUFunction	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	RELATION	o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION	o-ran-smo-teiv-rel-cloud-ran
+NFDEPLOYMENT_SERVES_MANAGEDELEMENT	serviced-managedElement	NFDeployment	o-ran-smo-teiv-cloud	1	9223372036854775807	serving-nFDeployment	ManagedElement	o-ran-smo-teiv-oam	1	1	BI_DIRECTIONAL	false	A_SIDE	o-ran-smo-teiv-cloud_NFDeployment	o-ran-smo-teiv-rel-oam-cloud
+NODECLUSTER_LOCATED_AT_CLOUDSITE	located-at-cloudSite	NodeCluster	o-ran-smo-teiv-cloud	1	9223372036854775807	location-of-nodeCluster	CloudSite	o-ran-smo-teiv-cloud	1	9223372036854775807	BI_DIRECTIONAL	false	RELATION	o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE	o-ran-smo-teiv-cloud
+NRCELLDU_USES_NRSECTORCARRIER	used-nrSectorCarrier	NRCellDU	o-ran-smo-teiv-ran	0	1	used-by-nrCellDu	NRSectorCarrier	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_NRSectorCarrier	o-ran-smo-teiv-ran
+NRSECTORCARRIER_USES_ANTENNACAPABILITY	used-antennaCapability	NRSectorCarrier	o-ran-smo-teiv-ran	0	9223372036854775807	used-by-nrSectorCarrier	AntennaCapability	o-ran-smo-teiv-ran	0	1	BI_DIRECTIONAL	false	A_SIDE	o-ran-smo-teiv-ran_NRSectorCarrier	o-ran-smo-teiv-ran
+SECTOR_GROUPS_ANTENNAMODULE	grouped-antennaModule	Sector	o-ran-smo-teiv-ran	0	1	grouped-by-sector	AntennaModule	o-ran-smo-teiv-equipment	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-equipment_AntennaModule	o-ran-smo-teiv-rel-equipment-ran
+SECTOR_GROUPS_EUTRANCELL	grouped-euTranCell	Sector	o-ran-smo-teiv-ran	0	1	grouped-by-sector	EUtranCell	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_EUtranCell	o-ran-smo-teiv-ran
+SECTOR_GROUPS_NRCELLDU	grouped-nrCellDu	Sector	o-ran-smo-teiv-ran	0	1	grouped-by-sector	NRCellDU	o-ran-smo-teiv-ran	0	9223372036854775807	BI_DIRECTIONAL	false	B_SIDE	o-ran-smo-teiv-ran_NRCellDU	o-ran-smo-teiv-ran
 \.
 
 ;
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 42c1faf..3d34337 100644
--- a/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
+++ b/docker-compose/sql_scripts/01_init-teiv-exposure-data.sql
@@ -23,6 +23,7 @@
 
 CREATE EXTENSION IF NOT EXISTS postgis;
 CREATE EXTENSION IF NOT EXISTS postgis_topology;
+CREATE EXTENSION IF NOT EXISTS pg_trgm;
 
 GRANT USAGE ON SCHEMA topology to topology_exposure_user;
 GRANT SELECT ON ALL SEQUENCES IN SCHEMA topology TO topology_exposure_user;
@@ -51,23 +52,269 @@
 -- Update data schema exec status
 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),
+CREATE TABLE IF NOT EXISTS ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" (
+	"id"			TEXT,
+	"aSide_NFDeployment"			TEXT,
+	"bSide_GNBCUUPFunction"			TEXT,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb
 );
 
-ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."ANTENNAMODULE_SERVES_ANTENNACAPABILITY" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."AntennaCapability" (
-	"id"			VARCHAR(511),
+CREATE TABLE IF NOT EXISTS ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" (
+	"id"			TEXT,
+	"aSide_NFDeployment"			TEXT,
+	"bSide_GNBCUCPFunction"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" (
+	"id"			TEXT,
+	"aSide_AntennaModule"			TEXT,
+	"bSide_AntennaCapability"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_CloudNamespace" (
+	"id"			TEXT,
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_deployed-on-nodeCluster"			TEXT,
+	"REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"			TEXT,
+	"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."o-ran-smo-teiv-cloud_CloudNamespace" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ALTER COLUMN "REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ALTER COLUMN "REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ALTER COLUMN "REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_CloudSite" (
+	"id"			TEXT,
+	"geo-location"			jsonb,
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudSite" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudSite" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudSite" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" (
+	"id"			TEXT,
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" (
+	"id"			TEXT,
+	"aSide_NFDeployment"			TEXT,
+	"bSide_CloudNamespace"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_NFDeployment" (
+	"id"			TEXT,
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_comprised-by-cloudifiedNF"			TEXT,
+	"REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			TEXT,
+	"REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"			jsonb,
+	"REL_FK_serviced-managedElement"			TEXT,
+	"REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			TEXT,
+	"REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb,
+	"REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '{}';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NFDeployment" ALTER COLUMN "REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" (
+	"id"			TEXT,
+	"aSide_NodeCluster"			TEXT,
+	"bSide_CloudSite"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-cloud_NodeCluster" (
+	"id"			TEXT,
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NodeCluster" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NodeCluster" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-cloud_NodeCluster" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-equipment_AntennaModule" (
+	"id"			TEXT,
+	"antennaBeamWidth"			jsonb,
+	"antennaModelNumber"			TEXT,
+	"electricalAntennaTilt"			INTEGER,
+	"geo-location"			jsonb,
+	"mechanicalAntennaBearing"			INTEGER,
+	"mechanicalAntennaTilt"			INTEGER,
+	"positionWithinSector"			TEXT,
+	"totalTilt"			INTEGER,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_installed-at-site"			TEXT,
+	"REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE"			TEXT,
+	"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"			TEXT,
+	"REL_ID_SECTOR_GROUPS_ANTENNAMODULE"			TEXT,
+	"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."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE" SET DEFAULT '{}';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_AntennaModule" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-equipment_Site" (
+	"id"			TEXT,
+	"geo-location"			jsonb,
+	"name"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb
+);
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_Site" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_Site" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-equipment_Site" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-oam_ManagedElement" (
+	"id"			TEXT,
+	"CD_sourceIds"			jsonb,
+	"CD_classifiers"			jsonb,
+	"CD_decorators"			jsonb,
+	"REL_FK_deployed-as-cloudifiedNF"			TEXT,
+	"REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"			TEXT,
+	"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."o-ran-smo-teiv-oam_ManagedElement" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-oam_ManagedElement" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-oam_ManagedElement" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-oam_ManagedElement" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-oam_ManagedElement" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '[]';
+
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-oam_ManagedElement" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '{}';
+
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_AntennaCapability" (
+	"id"			TEXT,
 	"eUtranFqBands"			jsonb,
 	"geranFqBands"			jsonb,
 	"nRFqBands"			jsonb,
@@ -76,1078 +323,1173 @@
 	"CD_decorators"			jsonb
 );
 
-ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_AntennaCapability" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_AntennaCapability" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."AntennaCapability" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_AntennaCapability" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."AntennaModule" (
-	"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 '[]';
-
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."AntennaModule" ALTER COLUMN "CD_decorators" 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
-);
-
-ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."CloudNamespace" ALTER COLUMN "REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER" SET DEFAULT '[]';
-
-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"			jsonb,
-	"CD_sourceIds"			jsonb,
-	"CD_classifiers"			jsonb,
-	"CD_decorators"			jsonb
-);
-
-ALTER TABLE ONLY ties_data."CloudSite" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."CloudSite" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."CloudifiedNF" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-CREATE TABLE IF NOT EXISTS ties_data."ENodeBFunction" (
-	"id"			VARCHAR(511),
-	"eNBId"			BIGINT,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_ENodeBFunction" (
+	"id"			TEXT,
+	"eNBId"			INTEGER,
 	"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_FK_managed-by-managedElement"			TEXT,
+	"REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."ENodeBFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."EUtranCell" (
-	"id"			VARCHAR(511),
-	"cellId"			BIGINT,
-	"earfcndl"			BIGINT,
-	"earfcnul"			BIGINT,
-	"dlChannelBandwidth"			BIGINT,
-	"earfcn"			BIGINT,
-	"channelBandwidth"			BIGINT,
-	"tac"			BIGINT,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_EUtranCell" (
+	"id"			TEXT,
+	"cellId"			INTEGER,
+	"channelBandwidth"			INTEGER,
+	"dlChannelBandwidth"			INTEGER,
 	"duplexType"			TEXT,
+	"earfcn"			INTEGER,
+	"earfcndl"			INTEGER,
+	"earfcnul"			INTEGER,
+	"tac"			INTEGER,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb,
-	"REL_FK_provided-by-enodebFunction"			VARCHAR(511),
-	"REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			VARCHAR(511),
+	"REL_FK_provided-by-enodebFunction"			TEXT,
+	"REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL"			TEXT,
 	"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_FK_grouped-by-sector"			TEXT,
+	"REL_ID_SECTOR_GROUPS_EUTRANCELL"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."EUtranCell" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_EUtranCell" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."GNBCUCPFunction" (
-	"id"			VARCHAR(511),
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" (
+	"id"			TEXT,
 	"gNBCUName"			TEXT,
 	"gNBId"			BIGINT,
-	"gNBIdLength"			BIGINT,
+	"gNBIdLength"			INTEGER,
 	"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_FK_managed-by-managedElement"			TEXT,
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUCPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."GNBCUUPFunction" (
-	"id"			VARCHAR(511),
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" (
+	"id"			TEXT,
 	"gNBId"			BIGINT,
-	"gNBIdLength"			BIGINT,
+	"gNBIdLength"			INTEGER,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb,
-	"REL_FK_managed-by-managedElement"			VARCHAR(511),
-	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			VARCHAR(511),
+	"REL_FK_managed-by-managedElement"			TEXT,
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBCUUPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."GNBDUFunction" (
-	"id"			VARCHAR(511),
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_GNBDUFunction" (
+	"id"			TEXT,
+	"dUpLMNId"			jsonb,
 	"gNBDUId"			BIGINT,
 	"gNBId"			BIGINT,
-	"gNBIdLength"			BIGINT,
-	"dUpLMNId"			jsonb,
+	"gNBIdLength"			INTEGER,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb,
-	"REL_FK_managed-by-managedElement"			VARCHAR(511),
-	"REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			VARCHAR(511),
+	"REL_FK_managed-by-managedElement"			TEXT,
+	"REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."GNBDUFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ALTER COLUMN "REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."LTESectorCarrier" (
-	"id"			VARCHAR(511),
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" (
+	"id"			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_FK_provided-by-enodebFunction"			TEXT,
+	"REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"			TEXT,
 	"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_FK_used-by-euTranCell"			TEXT,
+	"REL_ID_EUTRANCELL_USES_LTESECTORCARRIER"			TEXT,
 	"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_FK_used-antennaCapability"			TEXT,
+	"REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."LTESectorCarrier" ALTER COLUMN "REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_LTESectorCarrier" ALTER COLUMN "REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."ManagedElement" (
-	"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 '[]';
-
-ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."ManagedElement" ALTER COLUMN "REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUCPFUNCTION" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBCUUPFUNCTION" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT" SET DEFAULT '{}';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NFDeployment" ALTER COLUMN "REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT" SET DEFAULT '[]';
-
-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
-);
-
-ALTER TABLE ONLY ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NODECLUSTER_LOCATED_AT_CLOUDSITE" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-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),
-	"cellLocalId"			BIGINT,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_NRCellCU" (
+	"id"			TEXT,
+	"cellLocalId"			INTEGER,
 	"nCI"			BIGINT,
-	"nRTAC"			BIGINT,
+	"nRTAC"			INTEGER,
 	"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_FK_provided-by-gnbcucpFunction"			TEXT,
+	"REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellCU" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellCU" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellCU" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellCU" ALTER COLUMN "REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellCU" ALTER COLUMN "REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRCellCU" ALTER COLUMN "REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellCU" ALTER COLUMN "REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."NRCellDU" (
-	"id"			VARCHAR(511),
-	"cellLocalId"			BIGINT,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_NRCellDU" (
+	"id"			TEXT,
+	"cellLocalId"			INTEGER,
 	"nCI"			BIGINT,
-	"nRPCI"			BIGINT,
-	"nRTAC"			BIGINT,
+	"nRPCI"			INTEGER,
+	"nRTAC"			INTEGER,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb,
-	"REL_FK_provided-by-gnbduFunction"			VARCHAR(511),
-	"REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU"			VARCHAR(511),
+	"REL_FK_provided-by-gnbduFunction"			TEXT,
+	"REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU"			TEXT,
 	"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_FK_grouped-by-sector"			TEXT,
+	"REL_ID_SECTOR_GROUPS_NRCELLDU"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellDU" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellDU" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRCellDU" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRCellDU" ALTER COLUMN "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_NRCellDU" ALTER COLUMN "REL_CD_decorators_SECTOR_GROUPS_NRCELLDU" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."NRSectorCarrier" (
-	"id"			VARCHAR(511),
-	"arfcnDL"			BIGINT,
-	"arfcnUL"			BIGINT,
-	"frequencyDL"			BIGINT,
-	"frequencyUL"			BIGINT,
-	"bSChannelBwDL"			BIGINT,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" (
+	"id"			TEXT,
+	"arfcnDL"			INTEGER,
+	"arfcnUL"			INTEGER,
+	"bSChannelBwDL"			INTEGER,
+	"frequencyDL"			INTEGER,
+	"frequencyUL"			INTEGER,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb,
-	"REL_FK_provided-by-gnbduFunction"			VARCHAR(511),
-	"REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			VARCHAR(511),
+	"REL_FK_provided-by-gnbduFunction"			TEXT,
+	"REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"			TEXT,
 	"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_FK_used-by-nrCellDu"			TEXT,
+	"REL_ID_NRCELLDU_USES_NRSECTORCARRIER"			TEXT,
 	"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_FK_used-antennaCapability"			TEXT,
+	"REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY"			TEXT,
 	"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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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."o-ran-smo-teiv-ran_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 '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ALTER COLUMN "REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."NRSectorCarrier" ALTER COLUMN "REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_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
-);
-
-ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
-
-ALTER TABLE ONLY ties_data."NodeCluster" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
-
-CREATE TABLE IF NOT EXISTS ties_data."Sector" (
-	"id"			VARCHAR(511),
-	"sectorId"			BIGINT,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-ran_Sector" (
+	"id"			TEXT,
 	"azimuth"			DECIMAL,
 	"geo-location"			jsonb,
+	"sectorId"			BIGINT,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb
 );
 
-ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_Sector" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_Sector" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."Sector" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-ran_Sector" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
-CREATE TABLE IF NOT EXISTS ties_data."Site" (
-	"id"			VARCHAR(511),
-	"name"			TEXT,
-	"geo-location"			jsonb,
+CREATE TABLE IF NOT EXISTS ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" (
+	"id"			TEXT,
+	"aSide_NFDeployment"			TEXT,
+	"bSide_GNBDUFunction"			TEXT,
 	"CD_sourceIds"			jsonb,
 	"CD_classifiers"			jsonb,
 	"CD_decorators"			jsonb
 );
 
-ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_sourceIds" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_classifiers" SET DEFAULT '[]';
 
-ALTER TABLE ONLY ties_data."Site" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
+ALTER TABLE ONLY ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ALTER COLUMN "CD_decorators" SET DEFAULT '{}';
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'53983B8B2DDA2A5B8CA9EDBDA547333872024418',
+ 'PK_05C01244A393BDC3392EDBDB231586E6E98CB7E2',
+ 'ALTER TABLE ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" ADD CONSTRAINT "PK_05C01244A393BDC3392EDBDB231586E6E98CB7E2" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'AntennaCapability',
- 'PK_AntennaCapability_id',
- 'ALTER TABLE ties_data."AntennaCapability" ADD CONSTRAINT "PK_AntennaCapability_id" PRIMARY KEY ("id");'
+	'93A133BC1B3BA1FA430DFB98A4AB1141328425FD',
+ 'PK_C2321B22B1E252C3EBABC1EBF29DEEFF787BE934',
+ 'ALTER TABLE ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" ADD CONSTRAINT "PK_C2321B22B1E252C3EBABC1EBF29DEEFF787BE934" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'AntennaModule',
- 'PK_AntennaModule_id',
- 'ALTER TABLE ties_data."AntennaModule" ADD CONSTRAINT "PK_AntennaModule_id" PRIMARY KEY ("id");'
+	'CFC235E0404703D1E4454647DF8AAE2C193DB402',
+ 'PK_63E61CB6802F21FE7A04A80A095F6AF8ABF067CE',
+ 'ALTER TABLE ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" ADD CONSTRAINT "PK_63E61CB6802F21FE7A04A80A095F6AF8ABF067CE" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'CloudNamespace',
- 'PK_CloudNamespace_id',
- 'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "PK_CloudNamespace_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_CloudNamespace',
+ 'PK_o-ran-smo-teiv-cloud_CloudNamespace_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ADD CONSTRAINT "PK_o-ran-smo-teiv-cloud_CloudNamespace_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'CloudSite',
- 'PK_CloudSite_id',
- 'ALTER TABLE ties_data."CloudSite" ADD CONSTRAINT "PK_CloudSite_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_CloudSite',
+ 'PK_o-ran-smo-teiv-cloud_CloudSite_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_CloudSite" ADD CONSTRAINT "PK_o-ran-smo-teiv-cloud_CloudSite_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'CloudifiedNF',
- 'PK_CloudifiedNF_id',
- 'ALTER TABLE ties_data."CloudifiedNF" ADD CONSTRAINT "PK_CloudifiedNF_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_CloudifiedNF',
+ 'PK_o-ran-smo-teiv-cloud_CloudifiedNF_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" ADD CONSTRAINT "PK_o-ran-smo-teiv-cloud_CloudifiedNF_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'ENodeBFunction',
- 'PK_ENodeBFunction_id',
- 'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "PK_ENodeBFunction_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+ 'PK_7D474DCD64679ECB0278511BA40418F4A8809986',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "PK_7D474DCD64679ECB0278511BA40418F4A8809986" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'EUtranCell',
- 'PK_EUtranCell_id',
- 'ALTER TABLE ties_data."EUtranCell" ADD CONSTRAINT "PK_EUtranCell_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_NFDeployment',
+ 'PK_o-ran-smo-teiv-cloud_NFDeployment_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDeployment" ADD CONSTRAINT "PK_o-ran-smo-teiv-cloud_NFDeployment_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'GNBCUCPFunction',
- 'PK_GNBCUCPFunction_id',
- 'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "PK_GNBCUCPFunction_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE',
+ 'PK_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "PK_o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'GNBCUUPFunction',
- 'PK_GNBCUUPFunction_id',
- 'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "PK_GNBCUUPFunction_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-cloud_NodeCluster',
+ 'PK_o-ran-smo-teiv-cloud_NodeCluster_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NodeCluster" ADD CONSTRAINT "PK_o-ran-smo-teiv-cloud_NodeCluster_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'GNBDUFunction',
- 'PK_GNBDUFunction_id',
- 'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "PK_GNBDUFunction_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-equipment_AntennaModule',
+ 'PK_o-ran-smo-teiv-equipment_AntennaModule_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-equipment_AntennaModule" ADD CONSTRAINT "PK_o-ran-smo-teiv-equipment_AntennaModule_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'LTESectorCarrier',
- 'PK_LTESectorCarrier_id',
- 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "PK_LTESectorCarrier_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-equipment_Site',
+ 'PK_o-ran-smo-teiv-equipment_Site_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-equipment_Site" ADD CONSTRAINT "PK_o-ran-smo-teiv-equipment_Site_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'ManagedElement',
- 'PK_ManagedElement_id',
- 'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "PK_ManagedElement_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-oam_ManagedElement',
+ 'PK_o-ran-smo-teiv-oam_ManagedElement_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-oam_ManagedElement" ADD CONSTRAINT "PK_o-ran-smo-teiv-oam_ManagedElement_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_AntennaCapability',
+ 'PK_o-ran-smo-teiv-ran_AntennaCapability_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_AntennaCapability" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_AntennaCapability_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_ENodeBFunction',
+ 'PK_o-ran-smo-teiv-ran_ENodeBFunction_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_ENodeBFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_EUtranCell',
+ 'PK_o-ran-smo-teiv-ran_EUtranCell_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_EUtranCell" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_EUtranCell_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_GNBCUCPFunction',
+ 'PK_o-ran-smo-teiv-ran_GNBCUCPFunction_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_GNBCUCPFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NFDeployment',
- 'PK_NFDeployment_id',
- 'ALTER TABLE ties_data."NFDeployment" ADD CONSTRAINT "PK_NFDeployment_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-ran_GNBCUUPFunction',
+ 'PK_o-ran-smo-teiv-ran_GNBCUUPFunction_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_GNBCUUPFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_GNBDUFunction',
+ 'PK_o-ran-smo-teiv-ran_GNBDUFunction_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_GNBDUFunction_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NRCellCU',
- 'PK_NRCellCU_id',
- 'ALTER TABLE ties_data."NRCellCU" ADD CONSTRAINT "PK_NRCellCU_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'PK_o-ran-smo-teiv-ran_LTESectorCarrier_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_LTESectorCarrier_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NRCellDU',
- 'PK_NRCellDU_id',
- 'ALTER TABLE ties_data."NRCellDU" ADD CONSTRAINT "PK_NRCellDU_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-ran_NRCellCU',
+ 'PK_o-ran-smo-teiv-ran_NRCellCU_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellCU" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_NRCellCU_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NRSectorCarrier',
- 'PK_NRSectorCarrier_id',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "PK_NRSectorCarrier_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-ran_NRCellDU',
+ 'PK_o-ran-smo-teiv-ran_NRCellDU_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellDU" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_NRCellDU_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NodeCluster',
- 'PK_NodeCluster_id',
- 'ALTER TABLE ties_data."NodeCluster" ADD CONSTRAINT "PK_NodeCluster_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'PK_o-ran-smo-teiv-ran_NRSectorCarrier_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_NRSectorCarrier_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'Sector',
- 'PK_Sector_id',
- 'ALTER TABLE ties_data."Sector" ADD CONSTRAINT "PK_Sector_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-ran_Sector',
+ 'PK_o-ran-smo-teiv-ran_Sector_id',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_Sector" ADD CONSTRAINT "PK_o-ran-smo-teiv-ran_Sector_id" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'Site',
- 'PK_Site_id',
- 'ALTER TABLE ties_data."Site" ADD CONSTRAINT "PK_Site_id" PRIMARY KEY ("id");'
+	'o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+ 'PK_D659DD37E438F4710181BCC2756AB31D0C21CE54',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "PK_D659DD37E438F4710181BCC2756AB31D0C21CE54" PRIMARY KEY ("id");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'53983B8B2DDA2A5B8CA9EDBDA547333872024418',
+ 'FK_C73A4A2E6E78F60F4ACE8EE81F4DCA7C3E2B91DD',
+ 'ALTER TABLE ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" ADD CONSTRAINT "FK_C73A4A2E6E78F60F4ACE8EE81F4DCA7C3E2B91DD" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."o-ran-smo-teiv-cloud_NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'53983B8B2DDA2A5B8CA9EDBDA547333872024418',
+ 'FK_AB8702C7CF7B3B39F3946271F1808220ABC71461',
+ 'ALTER TABLE ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" ADD CONSTRAINT "FK_AB8702C7CF7B3B39F3946271F1808220ABC71461" FOREIGN KEY ("bSide_GNBCUUPFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'93A133BC1B3BA1FA430DFB98A4AB1141328425FD',
+ 'FK_6D0E3426A51B665F58683CD51B16309A4906C069',
+ 'ALTER TABLE ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" ADD CONSTRAINT "FK_6D0E3426A51B665F58683CD51B16309A4906C069" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."o-ran-smo-teiv-cloud_NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'93A133BC1B3BA1FA430DFB98A4AB1141328425FD',
+ 'FK_D3F50F479BFE3C0EA46395541E5A8319D4C93C28',
+ 'ALTER TABLE ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" ADD CONSTRAINT "FK_D3F50F479BFE3C0EA46395541E5A8319D4C93C28" FOREIGN KEY ("bSide_GNBCUCPFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" (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;'
+	'CFC235E0404703D1E4454647DF8AAE2C193DB402',
+ 'FK_D80D1E6B26DF620B4DE659C600A3B7F709A41960',
+ 'ALTER TABLE ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" ADD CONSTRAINT "FK_D80D1E6B26DF620B4DE659C600A3B7F709A41960" FOREIGN KEY ("aSide_AntennaModule") REFERENCES ties_data."o-ran-smo-teiv-equipment_AntennaModule" (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");'
+	'CFC235E0404703D1E4454647DF8AAE2C193DB402',
+ 'FK_7148BEED02C0617DE1DEEB6639F34A9FA9251B06',
+ 'ALTER TABLE ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" ADD CONSTRAINT "FK_7148BEED02C0617DE1DEEB6639F34A9FA9251B06" FOREIGN KEY ("bSide_AntennaCapability") REFERENCES ties_data."o-ran-smo-teiv-ran_AntennaCapability" (id) ON DELETE CASCADE;'
 );
 
 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;'
+	'o-ran-smo-teiv-cloud_CloudNamespace',
+ 'FK_578C2E899F50A133E194733D63BBEE81D9E0D8F4',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ADD CONSTRAINT "FK_578C2E899F50A133E194733D63BBEE81D9E0D8F4" FOREIGN KEY ("REL_FK_deployed-on-nodeCluster") REFERENCES ties_data."o-ran-smo-teiv-cloud_NodeCluster" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'CloudNamespace',
- 'UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0',
- 'ALTER TABLE ties_data."CloudNamespace" ADD CONSTRAINT "UNIQUE_C72E1EF93E1AC8FA53D20808E775FF012ACB46F0" UNIQUE ("REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER");'
+	'o-ran-smo-teiv-cloud_CloudNamespace',
+ 'UNIQUE_1DB2EA3AF6DE7BEEABF5F500FFC397AFD7C74C1C',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_CloudNamespace" ADD CONSTRAINT "UNIQUE_1DB2EA3AF6DE7BEEABF5F500FFC397AFD7C74C1C" UNIQUE ("REL_ID_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+ 'FK_B747BD330BCD18563818EEBBED49D5CD29D2787B',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "FK_B747BD330BCD18563818EEBBED49D5CD29D2787B" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."o-ran-smo-teiv-cloud_NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'ENodeBFunction',
- 'UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE',
- 'ALTER TABLE ties_data."ENodeBFunction" ADD CONSTRAINT "UNIQUE_F33037EE8037D0606D15FFB45EE8A27FD6DE30EE" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION");'
+	'o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE',
+ 'FK_C94E3F3ACD4ADCB4153521A6D8EC9D38CCAF7AAA',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" ADD CONSTRAINT "FK_C94E3F3ACD4ADCB4153521A6D8EC9D38CCAF7AAA" FOREIGN KEY ("bSide_CloudNamespace") REFERENCES ties_data."o-ran-smo-teiv-cloud_CloudNamespace" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-cloud_NFDeployment',
+ 'FK_127C21CB9B8871C3BCACA05A5400BE6B8E7FCAC0',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDeployment" ADD CONSTRAINT "FK_127C21CB9B8871C3BCACA05A5400BE6B8E7FCAC0" FOREIGN KEY ("REL_FK_comprised-by-cloudifiedNF") REFERENCES ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-cloud_NFDeployment',
+ 'UNIQUE_A5A8418B6BE911F281E6E2AA640D7D9F777471DC',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDeployment" ADD CONSTRAINT "UNIQUE_A5A8418B6BE911F281E6E2AA640D7D9F777471DC" UNIQUE ("REL_ID_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-cloud_NFDeployment',
+ 'FK_AC1348E208C2E64F2EB1DECE2CCA5DB10B89CBD9',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDeployment" ADD CONSTRAINT "FK_AC1348E208C2E64F2EB1DECE2CCA5DB10B89CBD9" FOREIGN KEY ("REL_FK_serviced-managedElement") REFERENCES ties_data."o-ran-smo-teiv-oam_ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-cloud_NFDeployment',
+ 'UNIQUE_8AD46969905BEEB89F63D3F37FD82B14F34FDCBC',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NFDeployment" ADD CONSTRAINT "UNIQUE_8AD46969905BEEB89F63D3F37FD82B14F34FDCBC" UNIQUE ("REL_ID_NFDEPLOYMENT_SERVES_MANAGEDELEMENT");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE',
+ 'FK_6BFD8A633C553F178F2730403371E590D669A4E4',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "FK_6BFD8A633C553F178F2730403371E590D669A4E4" FOREIGN KEY ("aSide_NodeCluster") REFERENCES ties_data."o-ran-smo-teiv-cloud_NodeCluster" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'GNBCUCPFunction',
- 'UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD',
- 'ALTER TABLE ties_data."GNBCUCPFunction" ADD CONSTRAINT "UNIQUE_249F73FF1F4316A56DEF4424FA43C2064FFBE4DD" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION");'
+	'o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE',
+ 'FK_A80C81E7F1C8CBF32326F589E7582BF533474CB8',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" ADD CONSTRAINT "FK_A80C81E7F1C8CBF32326F589E7582BF533474CB8" FOREIGN KEY ("bSide_CloudSite") REFERENCES ties_data."o-ran-smo-teiv-cloud_CloudSite" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-equipment_AntennaModule',
+ 'FK_E3BAEF04443354C0FC1837CF7964E05BEF9FD6CC',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-equipment_AntennaModule" ADD CONSTRAINT "FK_E3BAEF04443354C0FC1837CF7964E05BEF9FD6CC" FOREIGN KEY ("REL_FK_installed-at-site") REFERENCES ties_data."o-ran-smo-teiv-equipment_Site" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'GNBCUUPFunction',
- 'UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E',
- 'ALTER TABLE ties_data."GNBCUUPFunction" ADD CONSTRAINT "UNIQUE_BDB349CDF0C4055902881ECCB71F460AE1DD323E" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION");'
+	'o-ran-smo-teiv-equipment_AntennaModule',
+ 'UNIQUE_9DF414C2F0CD7FA8BFCB3E9BF851784AC4BC49B1',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-equipment_AntennaModule" ADD CONSTRAINT "UNIQUE_9DF414C2F0CD7FA8BFCB3E9BF851784AC4BC49B1" UNIQUE ("REL_ID_ANTENNAMODULE_INSTALLED_AT_SITE");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-equipment_AntennaModule',
+ 'FK_078764B2F3D613D44CC6E3586F564C83164D2481',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-equipment_AntennaModule" ADD CONSTRAINT "FK_078764B2F3D613D44CC6E3586F564C83164D2481" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."o-ran-smo-teiv-ran_Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'GNBDUFunction',
- 'UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D',
- 'ALTER TABLE ties_data."GNBDUFunction" ADD CONSTRAINT "UNIQUE_08DFEFAF56EDDE43CBDC336F459D28C6518D3E1D" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION");'
+	'o-ran-smo-teiv-equipment_AntennaModule',
+ 'UNIQUE_78B1D3DCD903AFFB1965D440D87B2D194CA028A0',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-equipment_AntennaModule" ADD CONSTRAINT "UNIQUE_78B1D3DCD903AFFB1965D440D87B2D194CA028A0" UNIQUE ("REL_ID_SECTOR_GROUPS_ANTENNAMODULE");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-oam_ManagedElement',
+ 'FK_899B8130A861D1450FC49D3159D8B29C0628A717',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-oam_ManagedElement" ADD CONSTRAINT "FK_899B8130A861D1450FC49D3159D8B29C0628A717" FOREIGN KEY ("REL_FK_deployed-as-cloudifiedNF") REFERENCES ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'LTESectorCarrier',
- 'UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9',
- 'ALTER TABLE ties_data."LTESectorCarrier" ADD CONSTRAINT "UNIQUE_B9770D6C26DDA0173DB9690F6E3B42C111AF26E9" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER");'
+	'o-ran-smo-teiv-oam_ManagedElement',
+ 'UNIQUE_EC9B35192A31C6491E6566602720D1C26E3CB708',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-oam_ManagedElement" ADD CONSTRAINT "UNIQUE_EC9B35192A31C6491E6566602720D1C26E3CB708" UNIQUE ("REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_ENodeBFunction',
+ 'FK_6C99B14BF3C9BC6DE2D69AD55DF323ADCB174167',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ADD CONSTRAINT "FK_6C99B14BF3C9BC6DE2D69AD55DF323ADCB174167" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."o-ran-smo-teiv-oam_ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_ENodeBFunction',
+ 'UNIQUE_A30444B7D036FA579730F0D2853E52FD08DEDCF0',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_ENodeBFunction" ADD CONSTRAINT "UNIQUE_A30444B7D036FA579730F0D2853E52FD08DEDCF0" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION");'
 );
 
 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;'
+	'o-ran-smo-teiv-ran_EUtranCell',
+ 'FK_2D1FA89480BF856AB865D58FAFB6AC0B476015EB',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_EUtranCell" ADD CONSTRAINT "FK_2D1FA89480BF856AB865D58FAFB6AC0B476015EB" FOREIGN KEY ("REL_FK_provided-by-enodebFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_ENodeBFunction" (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");'
+	'o-ran-smo-teiv-ran_EUtranCell',
+ 'UNIQUE_CA88C7E60C1A332FA7561FC965ED41DD4125CDED',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_EUtranCell" ADD CONSTRAINT "UNIQUE_CA88C7E60C1A332FA7561FC965ED41DD4125CDED" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_EUTRANCELL");'
 );
 
 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;'
+	'o-ran-smo-teiv-ran_EUtranCell',
+ 'FK_o-ran-smo-teiv-ran_EUtranCell_REL_FK_grouped-by-sector',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_EUtranCell" ADD CONSTRAINT "FK_o-ran-smo-teiv-ran_EUtranCell_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."o-ran-smo-teiv-ran_Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'ManagedElement',
- 'UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C',
- 'ALTER TABLE ties_data."ManagedElement" ADD CONSTRAINT "UNIQUE_E7BC94037DB5B94B7E863A10BEA20C2D4C3C307C" UNIQUE ("REL_ID_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF");'
+	'o-ran-smo-teiv-ran_EUtranCell',
+ 'UNIQUE_0513FE4A675A02C31E5EDD6BCB3728911FBDA2FA',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_EUtranCell" ADD CONSTRAINT "UNIQUE_0513FE4A675A02C31E5EDD6BCB3728911FBDA2FA" UNIQUE ("REL_ID_SECTOR_GROUPS_EUTRANCELL");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_GNBCUCPFunction',
+ 'FK_F1FB8F88851067901B66D53EE1420D2ECCEC98A3',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ADD CONSTRAINT "FK_F1FB8F88851067901B66D53EE1420D2ECCEC98A3" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."o-ran-smo-teiv-oam_ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_GNBCUCPFunction',
+ 'UNIQUE_50E9E4A87D93AC833B1D1AC05E3B58805909E20E',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" ADD CONSTRAINT "UNIQUE_50E9E4A87D93AC833B1D1AC05E3B58805909E20E" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_GNBCUUPFunction',
+ 'FK_34D6E2537E8EE1D395CAF5BF9B2182A4696A1EAA',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ADD CONSTRAINT "FK_34D6E2537E8EE1D395CAF5BF9B2182A4696A1EAA" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."o-ran-smo-teiv-oam_ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_GNBCUUPFunction',
+ 'UNIQUE_0CA05800AC7D277BDCB5CF0097DC35978E9311F4',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" ADD CONSTRAINT "UNIQUE_0CA05800AC7D277BDCB5CF0097DC35978E9311F4" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_GNBDUFunction',
+ 'FK_F67FAF9D3E82B97104E2392DA0AC8A86DF2407CC',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ADD CONSTRAINT "FK_F67FAF9D3E82B97104E2392DA0AC8A86DF2407CC" FOREIGN KEY ("REL_FK_managed-by-managedElement") REFERENCES ties_data."o-ran-smo-teiv-oam_ManagedElement" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_GNBDUFunction',
+ 'UNIQUE_5BD09ED226520A0BE27904AEAF0557416808E7E2',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_GNBDUFunction" ADD CONSTRAINT "UNIQUE_5BD09ED226520A0BE27904AEAF0557416808E7E2" UNIQUE ("REL_ID_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'FK_D0868FBC0BBE2754F4B765C4898C1A1700E2BEFD',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "FK_D0868FBC0BBE2754F4B765C4898C1A1700E2BEFD" FOREIGN KEY ("REL_FK_provided-by-enodebFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_ENodeBFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'UNIQUE_FD943EE596337B11E0C640E1176CADF9CD69E19A',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "UNIQUE_FD943EE596337B11E0C640E1176CADF9CD69E19A" UNIQUE ("REL_ID_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'FK_96E6D4983CFFDF30FCA20423B5913DEE486E42D0',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "FK_96E6D4983CFFDF30FCA20423B5913DEE486E42D0" FOREIGN KEY ("REL_FK_used-by-euTranCell") REFERENCES ties_data."o-ran-smo-teiv-ran_EUtranCell" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'UNIQUE_0A76398FBBC8E01A2D3BA602AB47835794E997E5',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "UNIQUE_0A76398FBBC8E01A2D3BA602AB47835794E997E5" UNIQUE ("REL_ID_EUTRANCELL_USES_LTESECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'FK_3D8DF3FBD9C042A888CEB382688C1E8F39D85AFE',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "FK_3D8DF3FBD9C042A888CEB382688C1E8F39D85AFE" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."o-ran-smo-teiv-ran_AntennaCapability" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_LTESectorCarrier',
+ 'UNIQUE_EA18F1D278EAFE834B8A80BCF8A7D8355CD013DF',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" ADD CONSTRAINT "UNIQUE_EA18F1D278EAFE834B8A80BCF8A7D8355CD013DF" UNIQUE ("REL_ID_LTESECTORCARRIER_USES_ANTENNACAPABILITY");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_NRCellCU',
+ 'FK_F2CDD1E84C7F07BF8065F99A5F3488E91E3BB7B2',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellCU" ADD CONSTRAINT "FK_F2CDD1E84C7F07BF8065F99A5F3488E91E3BB7B2" FOREIGN KEY ("REL_FK_provided-by-gnbcucpFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_NRCellCU',
+ 'UNIQUE_EA2A6F5BA36ABB0DA357542E05AA2D07415E127A',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellCU" ADD CONSTRAINT "UNIQUE_EA2A6F5BA36ABB0DA357542E05AA2D07415E127A" UNIQUE ("REL_ID_GNBCUCPFUNCTION_PROVIDES_NRCELLCU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_NRCellDU',
+ 'FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_provided-by-gnbduFunction',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellDU" ADD CONSTRAINT "FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_provided-by-gnbduFunction" FOREIGN KEY ("REL_FK_provided-by-gnbduFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_NRCellDU',
+ 'UNIQUE_C3D8E5331EC71D46D4B8CED29FE5F6CEB1D8E67A',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellDU" ADD CONSTRAINT "UNIQUE_C3D8E5331EC71D46D4B8CED29FE5F6CEB1D8E67A" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRCELLDU");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_NRCellDU',
+ 'FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_grouped-by-sector',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellDU" ADD CONSTRAINT "FK_o-ran-smo-teiv-ran_NRCellDU_REL_FK_grouped-by-sector" FOREIGN KEY ("REL_FK_grouped-by-sector") REFERENCES ties_data."o-ran-smo-teiv-ran_Sector" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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");'
+	'o-ran-smo-teiv-ran_NRCellDU',
+ 'UNIQUE_AC1C114ABED77D6DEC3F3AE3F9EBE8231924AEF4',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRCellDU" ADD CONSTRAINT "UNIQUE_AC1C114ABED77D6DEC3F3AE3F9EBE8231924AEF4" UNIQUE ("REL_ID_SECTOR_GROUPS_NRCELLDU");'
 );
 
 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;'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'FK_F7978366174C82E41F0A6ABF29005FF01603858F',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "FK_F7978366174C82E41F0A6ABF29005FF01603858F" FOREIGN KEY ("REL_FK_provided-by-gnbduFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_GNBDUFunction" (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");'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'UNIQUE_0AC16A840F6ACDC50136E71EC6D4F3D4E04B8198',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "UNIQUE_0AC16A840F6ACDC50136E71EC6D4F3D4E04B8198" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER");'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'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;'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'FK_o-ran-smo-teiv-ran_NRSectorCarrier_REL_FK_used-by-nrCellDu',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "FK_o-ran-smo-teiv-ran_NRSectorCarrier_REL_FK_used-by-nrCellDu" FOREIGN KEY ("REL_FK_used-by-nrCellDu") REFERENCES ties_data."o-ran-smo-teiv-ran_NRCellDU" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NRSectorCarrier',
- 'UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_872BE05F1989443F2595D99A77BC03733B2D1E2F" UNIQUE ("REL_ID_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER");'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'UNIQUE_1AB577E5AC207ED4C99A9A96BA1C9C35544AFD25',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "UNIQUE_1AB577E5AC207ED4C99A9A96BA1C9C35544AFD25" UNIQUE ("REL_ID_NRCELLDU_USES_NRSECTORCARRIER");'
 );
 
 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;'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'FK_65D538D54EB33081C808540235FEB28823428E64',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "FK_65D538D54EB33081C808540235FEB28823428E64" FOREIGN KEY ("REL_FK_used-antennaCapability") REFERENCES ties_data."o-ran-smo-teiv-ran_AntennaCapability" (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");'
+	'o-ran-smo-teiv-ran_NRSectorCarrier',
+ 'UNIQUE_A799EC9DA6624651081E1DA21B5F0C2D38F6A192',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" ADD CONSTRAINT "UNIQUE_A799EC9DA6624651081E1DA21B5F0C2D38F6A192" UNIQUE ("REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY");'
 );
 
 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;'
+	'o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+ 'FK_E6A6C36D4FF5FCFF75D64D84CD124FD88252F735',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "FK_E6A6C36D4FF5FCFF75D64D84CD124FD88252F735" FOREIGN KEY ("aSide_NFDeployment") REFERENCES ties_data."o-ran-smo-teiv-cloud_NFDeployment" (id) ON DELETE CASCADE;'
 );
 
 SELECT ties_data.create_constraint_if_not_exists(
-	'NRSectorCarrier',
- 'UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991',
- 'ALTER TABLE ties_data."NRSectorCarrier" ADD CONSTRAINT "UNIQUE_EDF7D5C78EF6505848B1679B714D7831F5863991" UNIQUE ("REL_ID_NRSECTORCARRIER_USES_ANTENNACAPABILITY");'
+	'o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION',
+ 'FK_AC409CAE557306A752577462405473B8CD3D93F0',
+ 'ALTER TABLE ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" ADD CONSTRAINT "FK_AC409CAE557306A752577462405473B8CD3D93F0" FOREIGN KEY ("bSide_GNBDUFunction") REFERENCES ties_data."o-ran-smo-teiv-ran_GNBDUFunction" (id) ON DELETE CASCADE;'
 );
 
+CREATE INDEX IF NOT EXISTS "IDX_34B07874400148A5C6BEF92D4507DFD69BE31186" ON ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_C82B7EDB24DB63FB28B03A886E88225F345FE3D8" ON ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_253071B9FA8525A8B2B2D3DBA1A74EBAEF27CE4A" ON ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_85054B275ED4BE6CD5B21D0DF728D39CD8F975C2" ON ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_1D6BFC1696A588F59F12697E08471B9EB8A4073D" ON ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_CACDA1786832798355FA450C79FB90001A9DE725" ON ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_E896A9EB22A3F9F96CE75A271475316A98B629C8" ON ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_DD0D676834B12CA2F7E8219310998376A08D7F5F" ON ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_7BF09D0227840279556AD27ACECB068705893D28" ON ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_68E2CF0D41D96AFA209F4FB807E873F942E06160" ON ties_data."o-ran-smo-teiv-cloud_CloudNamespace" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_BAB9B6E93250360ADF354D2A478A9AE0F0CDBA74" ON ties_data."o-ran-smo-teiv-cloud_CloudNamespace" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-cloud_CloudNamespace_CD_decorators" ON ties_data."o-ran-smo-teiv-cloud_CloudNamespace" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_6391A575D92408DA8CBC24C7E1D57B45A1F680AA" ON ties_data."o-ran-smo-teiv-cloud_CloudNamespace" USING GIN (("REL_CD_sourceIds_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_0955C27501E74E6433BB2E0CA6C31CE919A96474" ON ties_data."o-ran-smo-teiv-cloud_CloudNamespace" USING GIN (("REL_CD_classifiers_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_2DD943E7AA20F192D80193C9A05807EA227E4AF5" ON ties_data."o-ran-smo-teiv-cloud_CloudNamespace" USING GIN ("REL_CD_decorators_CLOUDNAMESPACE_DEPLOYED_ON_NODECLUSTER");
+
+CREATE INDEX IF NOT EXISTS "IDX_0A6F89256B698212512EF3AC971B4FFAD26C4598" ON ties_data."o-ran-smo-teiv-cloud_CloudSite" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_AB2EA49D463C5A3F9D9AD3FBCBCBF44416031BED" ON ties_data."o-ran-smo-teiv-cloud_CloudSite" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-cloud_CloudSite_CD_decorators" ON ties_data."o-ran-smo-teiv-cloud_CloudSite" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_9EDB5C47201FC82A4565BFED9EF369D6C6529B19" ON ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_BD96130868B69147B2F87B0D15F5829690DEF454" ON ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-cloud_CloudifiedNF_CD_decorators" ON ties_data."o-ran-smo-teiv-cloud_CloudifiedNF" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_CA2F2186104EA61BD13152A7BC3B56DB2903483B" ON ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_947619E28616D6BC26387291E47CC65C010CE9A4" ON ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_A82FEF2ABF913EB8696131AFE99C0267C5DC3CA6" ON ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_6433B9B7D69E51E828BDCFCAF59729EDCD10DA60" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_BED5B5FAA75FEE133E27581EAA611B89D20F24E1" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-cloud_NFDeployment_CD_decorators" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_072EB0C094138AB2D90F9CFBDA765B3B464EE86F" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN (("REL_CD_sourceIds_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_31F185F0F700C0AE11C5A9B8D28DBF6E37538635" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN (("REL_CD_classifiers_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_46CDB369134F042EC021F7496DF721B49A9D43C0" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN ("REL_CD_decorators_CLOUDIFIEDNF_COMPRISES_NFDEPLOYMENT");
+
+CREATE INDEX IF NOT EXISTS "IDX_4DD95BAED8503502101FEB9ECA25DDA8F371816C" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN (("REL_CD_sourceIds_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_1EE98ACCAE5537752BD51A3D5F6429585CC543F6" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN (("REL_CD_classifiers_NFDEPLOYMENT_SERVES_MANAGEDELEMENT"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_39A292C3C42B34C2AD7C2A0FD087739C253B06FC" ON ties_data."o-ran-smo-teiv-cloud_NFDeployment" USING GIN ("REL_CD_decorators_NFDEPLOYMENT_SERVES_MANAGEDELEMENT");
+
+CREATE INDEX IF NOT EXISTS "IDX_5040461E772F4F4E71BB2BE590930AC2971C16D1" ON ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_B32012D9ED6683AA0AEDF8C0894A5CD8C44B950B" ON ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_7310FAE21221EDCDCC254C5CD1BE0D74F6FD9A1F" ON ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_DC1829E4241BA7C9B3E5281AC0DF00A766F9452E" ON ties_data."o-ran-smo-teiv-cloud_NodeCluster" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_CB29E8DDA990051B2A3DF193D8E4912F25D5FA0D" ON ties_data."o-ran-smo-teiv-cloud_NodeCluster" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-cloud_NodeCluster_CD_decorators" ON ties_data."o-ran-smo-teiv-cloud_NodeCluster" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_21B0F1FE632B6CB185C49BA6F00224068F443215" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("antennaBeamWidth"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_905011128A2C218B5352C19ED1FE9851F43EB911" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_1C0CAFD80FDD6444044E3F76C7C0A7BDC35F9BC8" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-equipment_AntennaModule_CD_decorators" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_F497DEC01DA066CB09DA2AA7EDE3F4410078491B" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("REL_CD_sourceIds_ANTENNAMODULE_INSTALLED_AT_SITE"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_17E417F7EF56809674BE1D5F5154DCCE01E00A96" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("REL_CD_classifiers_ANTENNAMODULE_INSTALLED_AT_SITE"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_2321BFA482AD2700F41E2BA359F6EB00F47601B9" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN ("REL_CD_decorators_ANTENNAMODULE_INSTALLED_AT_SITE");
+
+CREATE INDEX IF NOT EXISTS "IDX_5ABDB19E55A6BDEF33855F14CB1B3B8CF457912C" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("REL_CD_sourceIds_SECTOR_GROUPS_ANTENNAMODULE"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_83B6347C0C0A005D5E3D856D973D3322DFEDEA35" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN (("REL_CD_classifiers_SECTOR_GROUPS_ANTENNAMODULE"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_6C6FBD69F47F41970595A8775DC99CA0F5E894A1" ON ties_data."o-ran-smo-teiv-equipment_AntennaModule" USING GIN ("REL_CD_decorators_SECTOR_GROUPS_ANTENNAMODULE");
+
+CREATE INDEX IF NOT EXISTS "IDX_102A50584376DE25B6BBD7157594C607A5C957F2" ON ties_data."o-ran-smo-teiv-equipment_Site" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_EEBF1BC3344E97988232825777AB13FAB6C4F3F0" ON ties_data."o-ran-smo-teiv-equipment_Site" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-equipment_Site_CD_decorators" ON ties_data."o-ran-smo-teiv-equipment_Site" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_DDD73D6F4004BF3A96AA118281EE3E565A922B47" ON ties_data."o-ran-smo-teiv-oam_ManagedElement" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_98AC4232BC02323E03416954215889CEE874A1E9" ON ties_data."o-ran-smo-teiv-oam_ManagedElement" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-oam_ManagedElement_CD_decorators" ON ties_data."o-ran-smo-teiv-oam_ManagedElement" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_8065626F3F48D4E5A4285654739D3B26499E4C4E" ON ties_data."o-ran-smo-teiv-oam_ManagedElement" USING GIN (("REL_CD_sourceIds_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_634619CF7333EBC0AFDE990900B79220FC626EBA" ON ties_data."o-ran-smo-teiv-oam_ManagedElement" USING GIN (("REL_CD_classifiers_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_F15A070FC83B2E49223B4232E0BEB8931C2B7A4C" ON ties_data."o-ran-smo-teiv-oam_ManagedElement" USING GIN ("REL_CD_decorators_MANAGEDELEMENT_DEPLOYED_AS_CLOUDIFIEDNF");
+
+CREATE INDEX IF NOT EXISTS "IDX_5FB80647AE3E5C0443A792618D65B9090EE2A3FC" ON ties_data."o-ran-smo-teiv-ran_AntennaCapability" USING GIN (("eUtranFqBands"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_A94722FF7B95D8974B494793908B57B4E1A9743B" ON ties_data."o-ran-smo-teiv-ran_AntennaCapability" USING GIN (("geranFqBands"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_441B5C05448D63552C6414BD59C13641D8A4408D" ON ties_data."o-ran-smo-teiv-ran_AntennaCapability" USING GIN (("nRFqBands"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_CC3E208A4EE51D3B505416A599F36F3C99F466C8" ON ties_data."o-ran-smo-teiv-ran_AntennaCapability" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_E7FFE8F4A166AA9A382A0659762FFEC313A9EB5C" ON ties_data."o-ran-smo-teiv-ran_AntennaCapability" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_AntennaCapability_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_AntennaCapability" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_eNodeBPlmnId" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN ("eNodeBPlmnId");
+
+CREATE INDEX IF NOT EXISTS "IDX_3F7D14B4CF2CA74F28BA1600606E82C6E8C447C0" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_B598B74193845587BA03553CEDBA058D33956847" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_ENodeBFunction_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_252AF4814C67384A7B05EA116316E83AFF9EB6AE" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN (("REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_61CDCD3F69CF67EE740358D2C76FA796CFDA19BF" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN (("REL_CD_classifiers_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_35C17C8A9BA3EF3AEADA72C21F8090C38F575BAF" ON ties_data."o-ran-smo-teiv-ran_ENodeBFunction" USING GIN ("REL_CD_decorators_MANAGEDELEMENT_MANAGES_ENODEBFUNCTION");
+
+CREATE INDEX IF NOT EXISTS "IDX_84E36DC53519D3E334C60B5B02C1AB27130CFA24" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_C9C19F8F83F50C130F2EB6502ABB7B2833F1F783" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_EUtranCell_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_976F6A0F8991F64592B6F9E716EFEECBD5400FDA" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN (("REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_EUTRANCELL"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_4C77E3A51BFAB2FCD30425E4EB21CC7636438299" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN (("REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_EUTRANCELL"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_FC7D79187227E0BFA69149048CC10E39AE540B8A" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN ("REL_CD_decorators_ENODEBFUNCTION_PROVIDES_EUTRANCELL");
+
+CREATE INDEX IF NOT EXISTS "IDX_173887418DD4FD6FD592F6404EA784150B1822C0" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN (("REL_CD_sourceIds_SECTOR_GROUPS_EUTRANCELL"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_8A15E61498725DA9D8C78FC4B99053C06E88DCEC" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN (("REL_CD_classifiers_SECTOR_GROUPS_EUTRANCELL"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_E4EF3C904939ED4C0996EAB7CDFE1895CDF34BFB" ON ties_data."o-ran-smo-teiv-ran_EUtranCell" USING GIN ("REL_CD_decorators_SECTOR_GROUPS_EUTRANCELL");
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_pLMNId" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN ("pLMNId");
+
+CREATE INDEX IF NOT EXISTS "IDX_BE4B476041D559760931630000D3F4A6DFF42707" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_588840BAE32C7FF8CF0553F631DAAF8BB6E8E7C1" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_GNBCUCPFunction_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_E01081465B87F46E1CC7A22FE406C7B41C817E8C" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN (("REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_1324070754C1EBF8EA78EF40743AFC1713733BA8" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN (("REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_13E734DE57346378DA4F21FC4EA030290A7E532F" ON ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction" USING GIN ("REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUCPFUNCTION");
+
+CREATE INDEX IF NOT EXISTS "IDX_C6D2419F8DC299FBC98342AA00BE92308C7566A7" ON ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_4C2B68358221A7FF0E68012DEDD3CBA2C4ED669F" ON ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_GNBCUUPFunction_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_883506CAA3E742D82EEFCEE8C8F29927983B73B1" ON ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" USING GIN (("REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_EB07ADD66F6CF51B9330403DE4500D05CA067647" ON ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" USING GIN (("REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_C3141DD7D2695EF74B13981AB378A58390D203D6" ON ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction" USING GIN ("REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBCUUPFUNCTION");
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_dUpLMNId" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN ("dUpLMNId");
+
+CREATE INDEX IF NOT EXISTS "IDX_2BEF269CED354C2454AC2B2EABB134AC267A0C62" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_601A4514FFACA8985471531013AFC8F760361F09" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_GNBDUFunction_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_3065F7FB78C5AA9FF17972F825F89AED127A6324" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN (("REL_CD_sourceIds_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_04C614FDE6A4AE2AA106A1233D1DF95803FC122D" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN (("REL_CD_classifiers_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_298FCD184347DEC995B06FED2B1AE61F12BF766A" ON ties_data."o-ran-smo-teiv-ran_GNBDUFunction" USING GIN ("REL_CD_decorators_MANAGEDELEMENT_MANAGES_GNBDUFUNCTION");
+
+CREATE INDEX IF NOT EXISTS "IDX_6EC539C61EA7078DBA264C9877B87FC263605D42" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_E754EB8AD825DB3111B07B9E5DA3B30C38DB406B" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_LTESectorCarrier_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_1EBC7271CEA658156DE25286404CBC4593340F8E" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("REL_CD_sourceIds_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_846B7740E8AA756B8C1409CD909D2DF73A47ED4C" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("REL_CD_classifiers_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_44075E1D464599B61924196C20F2B88332520CD8" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN ("REL_CD_decorators_ENODEBFUNCTION_PROVIDES_LTESECTORCARRIER");
+
+CREATE INDEX IF NOT EXISTS "IDX_F2D46817C2D618D8C33945F282299BF9EB49465E" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("REL_CD_sourceIds_EUTRANCELL_USES_LTESECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_B291D7EFCAD3BF06A2C11F8C0429ABABEEF8308B" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("REL_CD_classifiers_EUTRANCELL_USES_LTESECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_EAE482189F45D63CD1A88B0DD5F76EEE163D9E53" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN ("REL_CD_decorators_EUTRANCELL_USES_LTESECTORCARRIER");
+
+CREATE INDEX IF NOT EXISTS "IDX_7D01A5D21C990ACCBE65035C062C7D881A05F1EE" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("REL_CD_sourceIds_LTESECTORCARRIER_USES_ANTENNACAPABILITY"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_3D3EFECFB917DAC074F56334224B19F8FD6BF8A5" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN (("REL_CD_classifiers_LTESECTORCARRIER_USES_ANTENNACAPABILITY"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_4EE2AA643311DFCC13B6ED832EBE2FAB4CFDF494" ON ties_data."o-ran-smo-teiv-ran_LTESectorCarrier" USING GIN ("REL_CD_decorators_LTESECTORCARRIER_USES_ANTENNACAPABILITY");
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_plmnId" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN ("plmnId");
+
+CREATE INDEX IF NOT EXISTS "IDX_0C443A16285D233F16966C2F0314CDC9D0F6D0B8" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_E5930226819982DC0CFC1FA64FB3600647222435" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_NRCellCU_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_36A671754CD510FFBDC2713FD142303DCA75DD65" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN (("REL_CD_sourceIds_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_04BE1EB39848069422B97C28EE3C8ED18BCC6D33" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN (("REL_CD_classifiers_GNBCUCPFUNCTION_PROVIDES_NRCELLCU"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_229957181BBC9D7B4535807BB397E8AA1378ED85" ON ties_data."o-ran-smo-teiv-ran_NRCellCU" USING GIN ("REL_CD_decorators_GNBCUCPFUNCTION_PROVIDES_NRCELLCU");
+
+CREATE INDEX IF NOT EXISTS "IDX_FFD60DD99D80C276F402E66546F5DACB2D81EE26" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_C437D39632DC79BAB6AC4F0880826A05425F9C32" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_NRCellDU_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_1F6708B1E34FC908473DD7A7E5641E650B359BEF" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN (("REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRCELLDU"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_2F4C43ED084968FDAF9943DB96741885C145FE1D" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN (("REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRCELLDU"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_0E63D6B76B229961CD45D998C63175B569DDECD1" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN ("REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRCELLDU");
+
+CREATE INDEX IF NOT EXISTS "IDX_6325926B4D2FDD1FBBB34250DABEA5E7229FF9F5" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN (("REL_CD_sourceIds_SECTOR_GROUPS_NRCELLDU"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_7CB4A7724F68D1CB2D12E8DE779BA9103F7DBE0A" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN (("REL_CD_classifiers_SECTOR_GROUPS_NRCELLDU"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_0A03C47C13AD3B5C84D3D8081493D670E9CBDCD1" ON ties_data."o-ran-smo-teiv-ran_NRCellDU" USING GIN ("REL_CD_decorators_SECTOR_GROUPS_NRCELLDU");
+
+CREATE INDEX IF NOT EXISTS "IDX_8E34EC0B1DE7DDCE3B32ADD85B11E15F95C5644E" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_050A80BEEF775E4D3CE216F282F23DB99DA2D798" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_NRSectorCarrier_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_CD293AD1111E344D150340A13BD299924D29A9DA" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("REL_CD_sourceIds_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_273D43FDDD1C4643ECF8BBE51B6B369C657F0861" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("REL_CD_classifiers_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_EDE8B88F488F9380DB49CB2C141318FB33C2CCEC" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN ("REL_CD_decorators_GNBDUFUNCTION_PROVIDES_NRSECTORCARRIER");
+
+CREATE INDEX IF NOT EXISTS "IDX_7BFD17A71AB1B7765FE6431DA4E66C2EDE88AC3B" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("REL_CD_sourceIds_NRCELLDU_USES_NRSECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_ED50A5139F1449DBAD8DA10D45F5A5BF819EACBA" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("REL_CD_classifiers_NRCELLDU_USES_NRSECTORCARRIER"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_2ADB5C6DCAEE8811FB1CA8FD9EB53381F35FCB70" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN ("REL_CD_decorators_NRCELLDU_USES_NRSECTORCARRIER");
+
+CREATE INDEX IF NOT EXISTS "IDX_1F27C515A028616FAC422A02ABBEC402D5DBB2E5" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("REL_CD_sourceIds_NRSECTORCARRIER_USES_ANTENNACAPABILITY"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_B975D24291849007D4AA6686C5D3983885D5C884" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN (("REL_CD_classifiers_NRSECTORCARRIER_USES_ANTENNACAPABILITY"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_902B73F741160B9D4FBF62406D3D9ABBECAD8BE7" ON ties_data."o-ran-smo-teiv-ran_NRSectorCarrier" USING GIN ("REL_CD_decorators_NRSECTORCARRIER_USES_ANTENNACAPABILITY");
+
+CREATE INDEX IF NOT EXISTS "IDX_E234B43A7CD7843672F08F2197AB46A2A50BECB0" ON ties_data."o-ran-smo-teiv-ran_Sector" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_19C19556F9714850389595E0A16218FA229205FE" ON ties_data."o-ran-smo-teiv-ran_Sector" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_GIN_o-ran-smo-teiv-ran_Sector_CD_decorators" ON ties_data."o-ran-smo-teiv-ran_Sector" USING GIN ("CD_decorators");
+
+CREATE INDEX IF NOT EXISTS "IDX_5A45CC516788E441D6D4C5CCC6A1EB50C36F0C5C" ON ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" USING GIN (("CD_sourceIds"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_0129685EC2D748D2AD9EC0AF4FA2AB6242CD3CBF" ON ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" USING GIN (("CD_classifiers"::TEXT) gin_trgm_ops);
+
+CREATE INDEX IF NOT EXISTS "IDX_5741692EDE13E86FD8BFFAD47847257CC0925F6C" ON ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION" USING GIN ("CD_decorators");
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_GNBDUFunction";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_GNBCUCPFunction";
+
+ANALYZE ties_data."o-ran-smo-teiv-equipment_Site";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_NodeCluster";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_NODECLUSTER_LOCATED_AT_CLOUDSITE";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_CloudNamespace";
+
+ANALYZE ties_data."o-ran-smo-teiv-oam_ManagedElement";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_NRCellDU";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_NFDEPLOYMENT_DEPLOYED_ON_CLOUDNAMESPACE";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_GNBCUUPFunction";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_CloudifiedNF";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_CloudSite";
+
+ANALYZE ties_data."o-ran-smo-teiv-cloud_NFDeployment";
+
+ANALYZE ties_data."93A133BC1B3BA1FA430DFB98A4AB1141328425FD";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_AntennaCapability";
+
+ANALYZE ties_data."53983B8B2DDA2A5B8CA9EDBDA547333872024418";
+
+ANALYZE ties_data."o-ran-smo-teiv-equipment_AntennaModule";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_EUtranCell";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_LTESectorCarrier";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_NRCellCU";
+
+ANALYZE ties_data."CFC235E0404703D1E4454647DF8AAE2C193DB402";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_NRSectorCarrier";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_ENodeBFunction";
+
+ANALYZE ties_data."o-ran-smo-teiv-ran_Sector";
+
+ANALYZE ties_data."o-ran-smo-teiv-rel-cloud-ran_NFDEPLOYMENT_SERVES_GNBDUFUNCTION";
 
 COMMIT;
diff --git a/docker-compose/sql_scripts/02_init-teiv-exposure-consumer-data.sql b/docker-compose/sql_scripts/02_init-teiv-exposure-consumer-data.sql
new file mode 100644
index 0000000..c38e1ee
--- /dev/null
+++ b/docker-compose/sql_scripts/02_init-teiv-exposure-consumer-data.sql
@@ -0,0 +1,53 @@
+--
+-- ============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
+--
+-- 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=========================================================
+--
+
+BEGIN;
+
+CREATE SCHEMA IF NOT EXISTS ties_consumer_data;
+ALTER SCHEMA ties_consumer_data OWNER TO topology_exposure_user;
+SET default_tablespace = '';
+SET default_table_access_method = heap;
+
+SET ROLE 'topology_exposure_user';
+
+CREATE TABLE IF NOT EXISTS ties_consumer_data."module_reference" (
+    "name"            TEXT PRIMARY KEY,
+    "namespace"       TEXT,
+    "revision"        TEXT NOT NULL,
+    "content"         TEXT NOT NULL,
+    "ownerAppId"      VARCHAR(511) NOT NULL,
+    "status"          VARCHAR(127) NOT NULL
+);
+
+CREATE TABLE IF NOT EXISTS ties_consumer_data."decorators" (
+    "name"                TEXT PRIMARY KEY,
+    "dataType"            VARCHAR(511) NOT NULL,
+    "moduleReferenceName" TEXT NOT NULL,
+    FOREIGN KEY ("moduleReferenceName") REFERENCES ties_consumer_data."module_reference" ("name") ON DELETE CASCADE
+);
+
+CREATE TABLE IF NOT EXISTS ties_consumer_data."classifiers" (
+    "name"                TEXT PRIMARY KEY,
+    "moduleReferenceName" TEXT NOT NULL,
+    FOREIGN KEY ("moduleReferenceName") REFERENCES ties_consumer_data."module_reference" ("name") ON DELETE CASCADE
+);
+
+COMMIT;
diff --git a/pgsql-schema-generator/README.md b/pgsql-schema-generator/README.md
index b9d211e..9fb9323 100644
--- a/pgsql-schema-generator/README.md
+++ b/pgsql-schema-generator/README.md
@@ -464,9 +464,10 @@
 
 ## Local Use
 
-Copy YANG models into the [generate-defaults](src/main/resources/generate-defaults) directory, Once done perform the 
-schema generation process by running springboot application within the pgsql-schema-generator directory using
-*mvn spring-boot:run*. The command will also run the spring boot tests and output the results.
+Copy YANG models into the [generate-defaults](src/main/resources/generate-defaults) directory, or use the copyYangFiles
+script to copy yang files from TEIV resources. Once done perform the schema generation process by running springboot
+application within the pgsql-schema-generator directory using *mvn spring-boot:run*. The command will also run the
+spring boot tests and output the results.
 
 To run testsuite:
 
diff --git a/pgsql-schema-generator/copyYangFiles.sh b/pgsql-schema-generator/copyYangFiles.sh
new file mode 100644
index 0000000..996cb7d
--- /dev/null
+++ b/pgsql-schema-generator/copyYangFiles.sh
@@ -0,0 +1,34 @@
+#! /bin/bash
+#
+# ============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
+#
+# 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=========================================================
+#
+
+set -e
+
+SOURCE_DIR="../teiv/src/main/resources/models"
+TARGET_DIR="./src/main/resources/generate-defaults"
+
+mkdir -p "$TARGET_DIR"
+
+if [ "$(ls -A "$SOURCE_DIR")" ]; then
+    cp -r "$SOURCE_DIR"/* "$TARGET_DIR"
+else
+    echo "Source directory is empty or does not exist."
+fi
\ No newline at end of file