GuidesAPI Reference
Guides

LPP Specification (All Definitions)

  -- ASN.1 schema generated from https://www.3gpp.org/ftp/Specs/archive/37_series/37.355/37355-i30.zip
-- Full LPP schema including all the types from the LPP specification

-- 3GPP TS 37.355 V18.3.0 (2024-09)
-- Technical Specification
-- 3rd Generation Partnership Project;
-- Technical Specification Group Radio Access Network;
-- LTE Positioning Protocol (LPP)
-- (Release 18)
--


LPP-PDU-Definitions
DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

LPP-Message ::= SEQUENCE {
    transactionID           LPP-TransactionID   OPTIONAL,   -- Need ON
    endTransaction          BOOLEAN,
    sequenceNumber          SequenceNumber      OPTIONAL,   -- Need ON
    acknowledgement         Acknowledgement     OPTIONAL,   -- Need ON
    lpp-MessageBody         LPP-MessageBody     OPTIONAL    -- Need ON
}

SequenceNumber ::= INTEGER (0..255)

Acknowledgement ::= SEQUENCE {
    ackRequested    BOOLEAN,
    ackIndicator    SequenceNumber      OPTIONAL
}

LPP-MessageBody ::= CHOICE {
    c1                      CHOICE {
        requestCapabilities         RequestCapabilities,
        provideCapabilities         ProvideCapabilities,
        requestAssistanceData       RequestAssistanceData,
        provideAssistanceData       ProvideAssistanceData,
        requestLocationInformation  RequestLocationInformation,
        provideLocationInformation  ProvideLocationInformation,
        abort                       Abort,
        error                       Error,
        spare7 NULL, spare6 NULL, spare5 NULL, spare4 NULL,
        spare3 NULL, spare2 NULL, spare1 NULL, spare0 NULL
    },
    messageClassExtension   SEQUENCE {}
}

LPP-TransactionID ::= SEQUENCE {
    initiator               Initiator,
    transactionNumber       TransactionNumber,
    ...
}

Initiator ::= ENUMERATED {
    locationServer,
    targetDevice,
    ...
}

TransactionNumber ::= INTEGER (0..255)

RequestCapabilities ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            requestCapabilities-r9      RequestCapabilities-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

RequestCapabilities-r9-IEs ::= SEQUENCE {
    commonIEsRequestCapabilities        CommonIEsRequestCapabilities        OPTIONAL,   -- Need ON
    a-gnss-RequestCapabilities          A-GNSS-RequestCapabilities          OPTIONAL,   -- Need ON
    otdoa-RequestCapabilities           OTDOA-RequestCapabilities           OPTIONAL,   -- Need ON
    ecid-RequestCapabilities            ECID-RequestCapabilities            OPTIONAL,   -- Need ON
    epdu-RequestCapabilities            EPDU-Sequence                       OPTIONAL,   -- Need ON
    ...,
    [[  sensor-RequestCapabilities-r13  Sensor-RequestCapabilities-r13      OPTIONAL,   -- Need ON
        tbs-RequestCapabilities-r13     TBS-RequestCapabilities-r13         OPTIONAL,   -- Need ON
        wlan-RequestCapabilities-r13    WLAN-RequestCapabilities-r13        OPTIONAL,   -- Need ON
        bt-RequestCapabilities-r13      BT-RequestCapabilities-r13          OPTIONAL    -- Need ON
    ]],
    [[  nr-ECID-RequestCapabilities-r16 NR-ECID-RequestCapabilities-r16     OPTIONAL,   -- Need ON
        nr-Multi-RTT-RequestCapabilities-r16
                                        NR-Multi-RTT-RequestCapabilities-r16
                                                                            OPTIONAL,   -- Need ON
        nr-DL-AoD-RequestCapabilities-r16
                                        NR-DL-AoD-RequestCapabilities-r16   OPTIONAL,   -- Need ON
        nr-DL-TDOA-RequestCapabilities-r16
                                        NR-DL-TDOA-RequestCapabilities-r16  OPTIONAL,   -- Need ON
        nr-UL-RequestCapabilities-r16   NR-UL-RequestCapabilities-r16       OPTIONAL    -- Need ON
    ]]
}

ProvideCapabilities ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            provideCapabilities-r9      ProvideCapabilities-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

ProvideCapabilities-r9-IEs ::= SEQUENCE {
    commonIEsProvideCapabilities        CommonIEsProvideCapabilities            OPTIONAL,
    a-gnss-ProvideCapabilities          A-GNSS-ProvideCapabilities              OPTIONAL,
    otdoa-ProvideCapabilities           OTDOA-ProvideCapabilities               OPTIONAL,
    ecid-ProvideCapabilities            ECID-ProvideCapabilities                OPTIONAL,
    epdu-ProvideCapabilities            EPDU-Sequence                           OPTIONAL,
    ...,
    [[  sensor-ProvideCapabilities-r13  Sensor-ProvideCapabilities-r13          OPTIONAL,
        tbs-ProvideCapabilities-r13     TBS-ProvideCapabilities-r13             OPTIONAL,
        wlan-ProvideCapabilities-r13    WLAN-ProvideCapabilities-r13            OPTIONAL,
        bt-ProvideCapabilities-r13      BT-ProvideCapabilities-r13              OPTIONAL
    ]],
    [[  nr-ECID-ProvideCapabilities-r16 NR-ECID-ProvideCapabilities-r16         OPTIONAL,
        nr-Multi-RTT-ProvideCapabilities-r16
                                        NR-Multi-RTT-ProvideCapabilities-r16    OPTIONAL,
        nr-DL-AoD-ProvideCapabilities-r16
                                        NR-DL-AoD-ProvideCapabilities-r16       OPTIONAL,
        nr-DL-TDOA-ProvideCapabilities-r16
                                        NR-DL-TDOA-ProvideCapabilities-r16      OPTIONAL,
        nr-UL-ProvideCapabilities-r16   NR-UL-ProvideCapabilities-r16           OPTIONAL
    ]]
}

RequestAssistanceData ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            requestAssistanceData-r9    RequestAssistanceData-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

RequestAssistanceData-r9-IEs ::= SEQUENCE {
    commonIEsRequestAssistanceData      CommonIEsRequestAssistanceData      OPTIONAL,
    a-gnss-RequestAssistanceData        A-GNSS-RequestAssistanceData        OPTIONAL,
    otdoa-RequestAssistanceData         OTDOA-RequestAssistanceData         OPTIONAL,
    epdu-RequestAssistanceData          EPDU-Sequence                       OPTIONAL,
    ...,
    [[  sensor-RequestAssistanceData-r14
                                        Sensor-RequestAssistanceData-r14    OPTIONAL,
        tbs-RequestAssistanceData-r14   TBS-RequestAssistanceData-r14       OPTIONAL,
        wlan-RequestAssistanceData-r14  WLAN-RequestAssistanceData-r14      OPTIONAL
    ]],
    [[  nr-Multi-RTT-RequestAssistanceData-r16  NR-Multi-RTT-RequestAssistanceData-r16  OPTIONAL,
        nr-DL-AoD-RequestAssistanceData-r16     NR-DL-AoD-RequestAssistanceData-r16     OPTIONAL,
        nr-DL-TDOA-RequestAssistanceData-r16    NR-DL-TDOA-RequestAssistanceData-r16    OPTIONAL
    ]],
    [[
        bt-RequestAssistanceData-r18            BT-RequestAssistanceData-r18        OPTIONAL
    ]]}

ProvideAssistanceData ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            provideAssistanceData-r9    ProvideAssistanceData-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

ProvideAssistanceData-r9-IEs ::= SEQUENCE {
    commonIEsProvideAssistanceData      CommonIEsProvideAssistanceData      OPTIONAL,   -- Need ON
    a-gnss-ProvideAssistanceData        A-GNSS-ProvideAssistanceData        OPTIONAL,   -- Need ON
    otdoa-ProvideAssistanceData         OTDOA-ProvideAssistanceData         OPTIONAL,   -- Need ON
    epdu-Provide-Assistance-Data        EPDU-Sequence                       OPTIONAL,   -- Need ON
    ...,
    [[
    sensor-ProvideAssistanceData-r14    Sensor-ProvideAssistanceData-r14    OPTIONAL,   -- Need ON
    tbs-ProvideAssistanceData-r14       TBS-ProvideAssistanceData-r14       OPTIONAL,   -- Need ON
    wlan-ProvideAssistanceData-r14      WLAN-ProvideAssistanceData-r14      OPTIONAL    -- Need ON
    ]],
    [[  nr-Multi-RTT-ProvideAssistanceData-r16
                                        NR-Multi-RTT-ProvideAssistanceData-r16
                                                                            OPTIONAL,   -- Need ON
        nr-DL-AoD-ProvideAssistanceData-r16
                                        NR-DL-AoD-ProvideAssistanceData-r16 OPTIONAL,   -- Need ON
        nr-DL-TDOA-ProvideAssistanceData-r16
                                        NR-DL-TDOA-ProvideAssistanceData-r16
                                                                            OPTIONAL    -- Need ON
    ]],
    [[
        bt-ProvideAssistanceData-r18    BT-ProvideAssistanceData-r18        OPTIONAL    -- Need ON
    ]]
}

RequestLocationInformation ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            requestLocationInformation-r9   RequestLocationInformation-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

RequestLocationInformation-r9-IEs ::= SEQUENCE {
    commonIEsRequestLocationInformation
                                        CommonIEsRequestLocationInformation OPTIONAL,   -- Need ON
    a-gnss-RequestLocationInformation   A-GNSS-RequestLocationInformation   OPTIONAL,   -- Need ON
    otdoa-RequestLocationInformation    OTDOA-RequestLocationInformation    OPTIONAL,   -- Need ON
    ecid-RequestLocationInformation     ECID-RequestLocationInformation     OPTIONAL,   -- Need ON
    epdu-RequestLocationInformation     EPDU-Sequence                       OPTIONAL,   -- Need ON
    ...,
    [[
    sensor-RequestLocationInformation-r13
                                        Sensor-RequestLocationInformation-r13
                                                                            OPTIONAL,   -- Need ON
    tbs-RequestLocationInformation-r13  TBS-RequestLocationInformation-r13  OPTIONAL,   -- Need ON
    wlan-RequestLocationInformation-r13 WLAN-RequestLocationInformation-r13 OPTIONAL,   -- Need ON
    bt-RequestLocationInformation-r13   BT-RequestLocationInformation-r13   OPTIONAL    -- Need ON
    ]],
    [[  nr-ECID-RequestLocationInformation-r16
                                        NR-ECID-RequestLocationInformation-r16
                                                                            OPTIONAL,   -- Need ON
        nr-Multi-RTT-RequestLocationInformation-r16
                                        NR-Multi-RTT-RequestLocationInformation-r16
                                                                            OPTIONAL,   -- Need ON
        nr-DL-AoD-RequestLocationInformation-r16
                                        NR-DL-AoD-RequestLocationInformation-r16
                                                                            OPTIONAL,   -- Need ON
        nr-DL-TDOA-RequestLocationInformation-r16
                                        NR-DL-TDOA-RequestLocationInformation-r16
                                                                            OPTIONAL    -- Need ON
    ]]
}

ProvideLocationInformation ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            provideLocationInformation-r9   ProvideLocationInformation-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

ProvideLocationInformation-r9-IEs ::= SEQUENCE {
    commonIEsProvideLocationInformation
                                        CommonIEsProvideLocationInformation OPTIONAL,
    a-gnss-ProvideLocationInformation   A-GNSS-ProvideLocationInformation   OPTIONAL,
    otdoa-ProvideLocationInformation    OTDOA-ProvideLocationInformation    OPTIONAL,
    ecid-ProvideLocationInformation     ECID-ProvideLocationInformation     OPTIONAL,
    epdu-ProvideLocationInformation     EPDU-Sequence                       OPTIONAL,
    ...,
    [[
    sensor-ProvideLocationInformation-r13
                                        Sensor-ProvideLocationInformation-r13
                                                                            OPTIONAL,
    tbs-ProvideLocationInformation-r13  TBS-ProvideLocationInformation-r13  OPTIONAL,
    wlan-ProvideLocationInformation-r13 WLAN-ProvideLocationInformation-r13 OPTIONAL,
    bt-ProvideLocationInformation-r13   BT-ProvideLocationInformation-r13   OPTIONAL
    ]],
    [[  nr-ECID-ProvideLocationInformation-r16
                                    NR-ECID-ProvideLocationInformation-r16      OPTIONAL,
        nr-Multi-RTT-ProvideLocationInformation-r16
                                    NR-Multi-RTT-ProvideLocationInformation-r16 OPTIONAL,
        nr-DL-AoD-ProvideLocationInformation-r16
                                    NR-DL-AoD-ProvideLocationInformation-r16    OPTIONAL,
        nr-DL-TDOA-ProvideLocationInformation-r16
                                    NR-DL-TDOA-ProvideLocationInformation-r16   OPTIONAL
    ]]
}

Abort ::= SEQUENCE {
    criticalExtensions      CHOICE {
        c1                      CHOICE {
            abort-r9        Abort-r9-IEs,
            spare3 NULL, spare2 NULL, spare1 NULL
        },
        criticalExtensionsFuture    SEQUENCE {}
    }
}

Abort-r9-IEs ::= SEQUENCE {
    commonIEsAbort      CommonIEsAbort          OPTIONAL,   -- Need ON
    ...,
    epdu-Abort          EPDU-Sequence           OPTIONAL    -- Need ON
}

Error ::= CHOICE {
    error-r9                    Error-r9-IEs,
    criticalExtensionsFuture    SEQUENCE {}
}

Error-r9-IEs ::= SEQUENCE {
    commonIEsError      CommonIEsError          OPTIONAL,   -- Need ON
    ...,
    epdu-Error          EPDU-Sequence           OPTIONAL    -- Need ON
}

AccessTypes ::= SEQUENCE {
    accessTypes     BIT STRING {    eutra       (0),
                                    utra        (1),
                                    gsm         (2),
                                    nb-iot      (3),
                                    nr-v1510    (4) } (SIZE (1..8)),
    ...
}

ARFCN-ValueEUTRA ::= INTEGER (0..maxEARFCN)

ARFCN-ValueEUTRA-v9a0 ::=   INTEGER (maxEARFCN-Plus1..maxEARFCN2)

ARFCN-ValueEUTRA-r14 ::=    INTEGER (0..maxEARFCN2)

ARFCN-ValueNR-r15 ::= INTEGER (0..3279165)

ARFCN-ValueUTRA ::= INTEGER (0..16383)

CarrierFreq-NB-r14 ::=      SEQUENCE {
    carrierFreq-r14             ARFCN-ValueEUTRA-r14,
    carrierFreqOffset-r14       CarrierFreqOffsetNB-r14             OPTIONAL,
    ...
}

CarrierFreqOffsetNB-r14 ::=     ENUMERATED {
                                    v-10, v-9, v-8, v-7, v-6, v-5, v-4, v-3, v-2, v-1, v-0dot5,
                                    v0, v1, v2, v3, v4, v5, v6, v7, v8, v9
                                    }

CellGlobalIdEUTRA-AndUTRA ::= SEQUENCE {
    plmn-Identity       SEQUENCE {
                            mcc     SEQUENCE (SIZE (3)) OF INTEGER (0..9),
                            mnc     SEQUENCE (SIZE (2..3))  OF INTEGER (0..9)
                        },
    cellIdentity        CHOICE {
        eutra   BIT STRING (SIZE (28)),
        utra    BIT STRING (SIZE (32))
    },
    ...
}

CellGlobalIdGERAN ::= SEQUENCE {
    plmn-Identity       SEQUENCE {
                            mcc     SEQUENCE (SIZE (3)) OF INTEGER (0..9),
                            mnc     SEQUENCE (SIZE (2..3))  OF INTEGER (0..9)
                            },
    locationAreaCode        BIT STRING (SIZE (16)),
    cellIdentity            BIT STRING (SIZE (16)),
    ...
}

ECGI ::= SEQUENCE {
    mcc             SEQUENCE (SIZE (3)) OF INTEGER (0..9),
    mnc             SEQUENCE (SIZE (2..3))  OF INTEGER (0..9),
    cellidentity    BIT STRING (SIZE (28))
}

Ellipsoid-Point ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607)     -- 24 bit field
}

Ellipsoid-PointWithUncertaintyCircle ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
    uncertainty                 INTEGER (0..127)
}

EllipsoidPointWithUncertaintyEllipse ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
    uncertaintySemiMajor        INTEGER (0..127),
    uncertaintySemiMinor        INTEGER (0..127),
    orientationMajorAxis        INTEGER (0..179),
    confidence                  INTEGER (0..100)
}

EllipsoidPointWithAltitude ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
    altitudeDirection           ENUMERATED {height, depth},
    altitude                    INTEGER (0..32767)              -- 15 bit field
}

EllipsoidPointWithAltitudeAndUncertaintyEllipsoid ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
    altitudeDirection           ENUMERATED {height, depth},
    altitude                    INTEGER (0..32767),             -- 15 bit field
    uncertaintySemiMajor        INTEGER (0..127),
    uncertaintySemiMinor        INTEGER (0..127),
    orientationMajorAxis        INTEGER (0..179),
    uncertaintyAltitude         INTEGER (0..127),
    confidence                  INTEGER (0..100)
}

EllipsoidArc ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607),    -- 24 bit field
    innerRadius                 INTEGER (0..65535),             -- 16 bit field,
    uncertaintyRadius           INTEGER (0..127),
    offsetAngle                 INTEGER (0..179),
    includedAngle               INTEGER (0..179),
    confidence                  INTEGER (0..100)
}

EPDU-Sequence ::= SEQUENCE (SIZE (1..maxEPDU)) OF EPDU

maxEPDU INTEGER ::= 16

EPDU ::= SEQUENCE {
    ePDU-Identifier         EPDU-Identifier,
    ePDU-Body               EPDU-Body
}

EPDU-Identifier ::= SEQUENCE {
    ePDU-ID                 EPDU-ID,
    ePDU-Name               EPDU-Name       OPTIONAL,
    ...
}

EPDU-ID ::= INTEGER (1..256)

EPDU-Name ::= VisibleString (SIZE (1..32))

EPDU-Body ::= OCTET STRING

FreqBandIndicatorNR-r16 ::= INTEGER (1..1024)

HA-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16 ::= SEQUENCE {
    degreesLatitude-r16                         INTEGER(-2147483648..2147483647),
    degreesLongitude-r16                        INTEGER(-2147483648..2147483647),
    altitude-r16                                INTEGER(-64000..1280000),
    uncertaintySemiMajor-r16                    INTEGER (0..255),
    uncertaintySemiMinor-r16                    INTEGER (0..255),
    orientationMajorAxis-r16                    INTEGER (0..179),
    horizontalConfidence-r16                    INTEGER (0..100),
    uncertaintyAltitude-r16                     INTEGER (0..255),
    verticalConfidence-r16                      INTEGER (0..100),
    ha-HorizontalExtendedRangeUsed-r16          BOOLEAN,
    ha-VerticalExtendedRangeUsed-r16            BOOLEAN
}

HA-EllipsoidPointWithScalableUncertaintyEllipse-r16 ::= SEQUENCE {
    degreesLatitude-r16                         INTEGER(-2147483648..2147483647),
    degreesLongitude-r16                        INTEGER(-2147483648..2147483647),
    uncertaintySemiMajor-r16                    INTEGER (0..255),
    uncertaintySemiMinor-r16                    INTEGER (0..255),
    orientationMajorAxis-r16                    INTEGER (0..179),
    confidence-r16                              INTEGER (0..100),
    ha-ExtendedUncertaintyRangeUsed-r16         BOOLEAN
}

HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15 ::= SEQUENCE {
    degreesLatitude-r15             INTEGER(-2147483648..2147483647),
    degreesLongitude-r15            INTEGER(-2147483648..2147483647),
    uncertaintySemiMajor-r15        INTEGER (0..255),
    uncertaintySemiMinor-r15        INTEGER (0..255),
    orientationMajorAxis-r15        INTEGER (0..179),
    confidence-r15                  INTEGER (0..100)
}

HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15 ::= SEQUENCE {
    degreesLatitude-r15             INTEGER(-2147483648..2147483647),
    degreesLongitude-r15            INTEGER(-2147483648..2147483647),
    altitude-r15                    INTEGER(-64000..1280000),
    uncertaintySemiMajor-r15        INTEGER (0..255),
    uncertaintySemiMinor-r15        INTEGER (0..255),
    orientationMajorAxis-r15        INTEGER (0..179),
    horizontalConfidence-r15        INTEGER (0..100),
    uncertaintyAltitude-r15         INTEGER (0..255),
    verticalConfidence-r15          INTEGER (0..100)
}

HorizontalVelocity ::= SEQUENCE {
    bearing                     INTEGER(0..359),
    horizontalSpeed             INTEGER(0..2047)
}

HorizontalWithVerticalVelocity ::= SEQUENCE {
    bearing                     INTEGER(0..359),
    horizontalSpeed             INTEGER(0..2047),
    verticalDirection           ENUMERATED{upward, downward},
    verticalSpeed               INTEGER(0..255)
}

HorizontalVelocityWithUncertainty ::= SEQUENCE {
    bearing                     INTEGER(0..359),
    horizontalSpeed             INTEGER(0..2047),
    uncertaintySpeed            INTEGER(0..255)
}

HorizontalWithVerticalVelocityAndUncertainty ::= SEQUENCE {
    bearing                     INTEGER(0..359),
    horizontalSpeed             INTEGER(0..2047),
    verticalDirection           ENUMERATED{upward, downward},
    verticalSpeed               INTEGER(0..255),
    horizontalUncertaintySpeed  INTEGER(0..255),
    verticalUncertaintySpeed    INTEGER(0..255)
}

Local2dPointWithUncertaintyEllipse-r18 ::= SEQUENCE {
    localOrigin-r18                             ReferencePoint-r16,
    cartesianCoordinatesUnits-r18               ENUMERATED { mm, cm, dm, m, ...},
    x-value-r18                                 X-Value-r18,
    y-value-r18                                 Y-Value-r18,
    uncertaintySemiMajor-r18                    INTEGER (0..127),
    uncertaintySemiMinor-r18                    INTEGER (0..127),
    orientationMajorAxis-r18                    INTEGER (0..179),
    confidence-r18                              INTEGER (0..100)
}

Local3dPointWithUncertaintyEllipsoid-r18 ::= SEQUENCE {
    localOrigin-r18                             ReferencePoint-r16,
    cartesianCoordinatesUnits-r18               ENUMERATED { mm, cm, dm, m, ...},
    x-value-r18                                 X-Value-r18,
    y-value-r18                                 Y-Value-r18,
    z-value-r18                                 Z-Value-r18,
    uncertaintySemiMajor-r18                    INTEGER (0..127),
    uncertaintySemiMinor-r18                    INTEGER (0..127),
    orientationMajorAxis-r18                    INTEGER (0..179),
    uncertaintyAltitude-r18                     INTEGER (0..127),
    confidence-r18                              INTEGER (0..100),
    vConfidence-r18                             INTEGER (0..100)            OPTIONAL    -- Need ON
}

LocationCoordinateTypes ::= SEQUENCE {
    ellipsoidPoint                                          BOOLEAN,
    ellipsoidPointWithUncertaintyCircle                     BOOLEAN,
    ellipsoidPointWithUncertaintyEllipse                    BOOLEAN,
    polygon                                                 BOOLEAN,
    ellipsoidPointWithAltitude                              BOOLEAN,
    ellipsoidPointWithAltitudeAndUncertaintyEllipsoid       BOOLEAN,
    ellipsoidArc                                            BOOLEAN,
    ...,
    [[
        highAccuracyEllipsoidPointWithUncertaintyEllipse-r15
                                                            BOOLEAN     OPTIONAL, -- Need ON
        highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15
                                                            BOOLEAN     OPTIONAL  -- Need ON
    ]],
    [[
        ha-EllipsoidPointWithScalableUncertaintyEllipse-r16
                                                            BOOLEAN     OPTIONAL, -- Need ON
        ha-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16
                                                            BOOLEAN     OPTIONAL  -- Need ON
    ]],
    [[
        local2dPointWithUncertaintyEllipse-r18              BOOLEAN     OPTIONAL, -- Need ON
        local3dPointWithUncertaintyEllipsoid-r18            BOOLEAN     OPTIONAL  -- Need ON
    ]]
}

NCGI-r15 ::= SEQUENCE {
    mcc-r15                 SEQUENCE (SIZE (3))     OF INTEGER (0..9),
    mnc-r15                 SEQUENCE (SIZE (2..3))  OF INTEGER (0..9),
    nr-cellidentity-r15     BIT STRING (SIZE (36))
}

NR-PhysCellID-r16 ::= INTEGER (0..1007)

PeriodicAssistanceDataControlParameters-r15 ::= SEQUENCE {
    periodicSessionID-r15           PeriodicSessionID-r15,
    ...,
    [[
        updateCapabilities-r15      UpdateCapabilities-r15      OPTIONAL     -- Need ON
    ]]
}

PeriodicSessionID-r15 ::= SEQUENCE {
    periodicSessionInitiator-r15    ENUMERATED { locationServer, targetDevice, ... },
    periodicSessionNumber-r15       INTEGER (0..255),
    ...
}

UpdateCapabilities-r15 ::= BIT STRING {primaryCellID-r15    (0)} (SIZE(1..8))

PeriodicReportingIntervalMsSupport-r18 ::= SEQUENCE {
    minPeriodicReportingIntervalMs-r18  ENUMERATED {ms1, ms10, ms100,...},
    ...
}

PeriodicReportingIntervalMsSupportPerMode-r18 ::= SEQUENCE {
    minPeriodicReportingIntervalMs1-Supported-r18   PositioningModes    OPTIONAL,
    minPeriodicReportingIntervalMs10-Supported-r18  PositioningModes    OPTIONAL,
    minPeriodicReportingIntervalMs100-Supported-r18 PositioningModes    OPTIONAL,
    ...
}

Polygon ::= SEQUENCE (SIZE (3..15)) OF PolygonPoints

PolygonPoints ::= SEQUENCE {
    latitudeSign                ENUMERATED {north, south},
    degreesLatitude             INTEGER (0..8388607),           -- 23 bit field
    degreesLongitude            INTEGER (-8388608..8388607)     -- 24 bit field
}

PositioningModes ::= SEQUENCE {
    posModes        BIT STRING {    standalone  (0),
                                    ue-based    (1),
                                    ue-assisted (2)
    } (SIZE (1..8)),
    ...
}

ScheduledLocationTimeSupport-r17 ::= SEQUENCE {
    utcTime-r17         ENUMERATED { supported }            OPTIONAL,
    gnssTime-r17        GNSS-ID-Bitmap                      OPTIONAL,
    e-utraTime-r17      ENUMERATED { supported }            OPTIONAL,
    nrTime-r17          ENUMERATED { supported }            OPTIONAL,
    relativeTime-r17    ENUMERATED { supported }            OPTIONAL,
    ...
}

ScheduledLocationTimeSupportPerMode-r17 ::= SEQUENCE {
    utcTime-r17         PositioningModes                                OPTIONAL,
    gnssTime-r17        SEQUENCE {
                            posModes-r17        PositioningModes,
                            gnss-TimeIDs-r17    GNSS-ID-Bitmap
                        }                                               OPTIONAL,
    e-utraTime-r17      PositioningModes                                OPTIONAL,
    nrTime-r17          PositioningModes                                OPTIONAL,
    relativeTime-r17    PositioningModes                                OPTIONAL,
    ...
}

SegmentationInfo-r14 ::= ENUMERATED { noMoreMessages, moreMessagesOnTheWay }

VelocityTypes ::= SEQUENCE {
    horizontalVelocity                                      BOOLEAN,
    horizontalWithVerticalVelocity                          BOOLEAN,
    horizontalVelocityWithUncertainty                       BOOLEAN,
    horizontalWithVerticalVelocityAndUncertainty            BOOLEAN,
    ...
}

CommonIEsRequestCapabilities ::= SEQUENCE {
    ...,
    [[
    lpp-message-segmentation-req-r14    BIT STRING {    serverToTarget  (0),
                                                        targetToServer  (1) }   OPTIONAL -- Need ON
    ]],
    [[
    remoteUE-IndicationReq-r18      ENUMERATED { true }             OPTIONAL -- Cond NR
    ]]
}

CommonIEsProvideCapabilities ::= SEQUENCE {
    ...,
    [[
    segmentationInfo-r14            SegmentationInfo-r14            OPTIONAL,   -- Cond Segmentation
    lpp-message-segmentation-r14    BIT STRING { serverToTarget (0),
                                                targetToServer  (1) }   OPTIONAL
    ]],
    [[
    remoteUE-Indication-r18                     BOOLEAN                     OPTIONAL,   -- Cond NR
    locationEstimateAndMeasurementReporting-r18 ENUMERATED { supported }    OPTIONAL
    ]]
}

CommonIEsRequestAssistanceData ::= SEQUENCE {
    primaryCellID       ECGI        OPTIONAL,   -- Cond EUTRA
    ...,
    [[
        segmentationInfo-r14        SegmentationInfo-r14        OPTIONAL    -- Cond Segmentation
    ]],
    [[
        periodicAssistanceDataReq-r15
                                    PeriodicAssistanceDataControlParameters-r15
                                                                OPTIONAL,   -- Cond PerADreq
        primaryCellID-r15           NCGI-r15                    OPTIONAL    -- Cond NR
    ]]
}

CommonIEsProvideAssistanceData ::= SEQUENCE {
    ...,
    [[
        segmentationInfo-r14        SegmentationInfo-r14        OPTIONAL    -- Need ON
    ]],
    [[
        periodicAssistanceData-r15  PeriodicAssistanceDataControlParameters-r15
                                                                OPTIONAL    -- Cond PerAD
    ]]
}

CommonIEsRequestLocationInformation ::= SEQUENCE {
    locationInformationType     LocationInformationType,
    triggeredReporting          TriggeredReportingCriteria  OPTIONAL,   -- Cond ECID
    periodicalReporting         PeriodicalReportingCriteria OPTIONAL,   -- Need ON
    additionalInformation       AdditionalInformation       OPTIONAL,   -- Need ON
    qos                         QoS                         OPTIONAL,   -- Need ON
    environment                 Environment                 OPTIONAL,   -- Need ON
    locationCoordinateTypes     LocationCoordinateTypes     OPTIONAL,   -- Need ON
    velocityTypes               VelocityTypes               OPTIONAL,   -- Need ON
    ...,
    [[
        messageSizeLimitNB-r14  MessageSizeLimitNB-r14      OPTIONAL    -- Need ON
    ]],
    [[
        segmentationInfo-r14    SegmentationInfo-r14        OPTIONAL    -- Need ON
    ]],
    [[
        scheduledLocationTime-r17
                                ScheduledLocationTime-r17   OPTIONAL,   -- Need ON
        targetIntegrityRisk-r17
                                TargetIntegrityRisk-r17     OPTIONAL    -- Need ON
    ]],
    [[
        periodicalReportingExt-r18
                                PeriodicalReportingCriteriaExt-r18
                                                            OPTIONAL    -- Need ON
    ]]
}

LocationInformationType ::= ENUMERATED {
    locationEstimateRequired,
    locationMeasurementsRequired,
    locationEstimatePreferred,
    locationMeasurementsPreferred,
    ...,
    locationEstimateAndMeasurementsRequired-r18
}

PeriodicalReportingCriteria ::=     SEQUENCE {
    reportingAmount                     ENUMERATED {
                                            ra1, ra2, ra4, ra8, ra16, ra32,
                                            ra64, ra-Infinity
                                        } DEFAULT ra-Infinity,
    reportingInterval                   ENUMERATED {
                                            noPeriodicalReporting, ri0-25,
                                            ri0-5, ri1, ri2, ri4, ri8, ri16, ri32, ri64
                                        }
}

PeriodicalReportingCriteriaExt-r18 ::=      SEQUENCE {
    reportingAmount-r18                         ENUMERATED {
                                                    ra2, ra4, ra8, ra16, ra32,
                                                    ra64, ra-Infinity
                                                } DEFAULT ra-Infinity,
    reportingIntervalMs-r18                     INTEGER (1..999),
    ...
}

TriggeredReportingCriteria ::=      SEQUENCE {
    cellChange                          BOOLEAN,
    reportingDuration                   ReportingDuration,
    ...
}

ReportingDuration ::=               INTEGER (0..255)

AdditionalInformation ::= ENUMERATED {
    onlyReturnInformationRequested,
    mayReturnAdditionalInformation,
    ...
}

QoS ::= SEQUENCE {
    horizontalAccuracy          HorizontalAccuracy      OPTIONAL,   -- Need ON
    verticalCoordinateRequest   BOOLEAN,
    verticalAccuracy            VerticalAccuracy        OPTIONAL,   -- Need ON
    responseTime                ResponseTime            OPTIONAL,   -- Need ON
    velocityRequest             BOOLEAN,
    ...,
    [[  responseTimeNB-r14      ResponseTimeNB-r14      OPTIONAL    -- Need ON
    ]],
    [[  horizontalAccuracyExt-r15   HorizontalAccuracyExt-r15       OPTIONAL,   -- Need ON
        verticalAccuracyExt-r15     VerticalAccuracyExt-r15         OPTIONAL    -- Need ON
    ]]
}

HorizontalAccuracy ::= SEQUENCE {
    accuracy        INTEGER(0..127),
    confidence      INTEGER(0..100),
    ...
}

VerticalAccuracy ::= SEQUENCE {
    accuracy        INTEGER(0..127),
    confidence      INTEGER(0..100),
    ...
}

HorizontalAccuracyExt-r15 ::= SEQUENCE {
    accuracyExt-r15     INTEGER(0..255),
    confidence-r15      INTEGER(0..100),
    ...
}

VerticalAccuracyExt-r15 ::= SEQUENCE {
    accuracyExt-r15     INTEGER(0..255),
    confidence-r15      INTEGER(0..100),
    ...
}

ResponseTime ::= SEQUENCE {
    time                                INTEGER (1..128),
    ...,
    [[  responseTimeEarlyFix-r12        INTEGER (1..128)        OPTIONAL        -- Need ON
    ]],
    [[  unit-r15                ENUMERATED { ten-seconds, ... , ten-milli-seconds-v1700 }
                                                                OPTIONAL        -- Need ON
    ]]
}

ResponseTimeNB-r14 ::= SEQUENCE {
    timeNB-r14                          INTEGER (1..512),
    responseTimeEarlyFixNB-r14          INTEGER (1..512)        OPTIONAL,       -- Need ON
    ...,
    [[  unitNB-r15              ENUMERATED { ten-seconds, ... } OPTIONAL        -- Need ON
    ]]
}

Environment ::= ENUMERATED {
    badArea,
    notBadArea,
    mixedArea,
    ...
}

MessageSizeLimitNB-r14 ::= SEQUENCE {
    measurementLimit-r14                INTEGER (1..512)        OPTIONAL,       -- Need ON
    ...
}

ScheduledLocationTime-r17 ::= SEQUENCE {
    utcTime-r17         UTCTime                                         OPTIONAL,   -- Need ON
    gnssTime-r17        SEQUENCE {
                            gnss-TOD-msec-r17       INTEGER (0..3599999),
                            gnss-TimeID-r17         GNSS-ID
                        }                                               OPTIONAL,   -- Need ON
    networkTime-r17     CHOICE {
                            e-utraTime-r17          SEQUENCE {
                                lte-PhysCellId-r17          INTEGER (0..503),
                                lte-ArfcnEUTRA-r17          ARFCN-ValueEUTRA,
                                lte-CellGlobalId-r17        CellGlobalIdEUTRA-AndUTRA
                                                                        OPTIONAL,   -- Need ON
                                lte-SystemFrameNumber-r17   INTEGER (0..1023)
                            },
                            nrTime-r17              SEQUENCE {
                                nr-PhysCellID-r17       NR-PhysCellID-r16,
                                nr-ARFCN-r17            ARFCN-ValueNR-r15,
                                nr-CellGlobalID-r17     NCGI-r15    OPTIONAL,       -- Need ON
                                nr-SFN-r17              INTEGER (0..1023),
                                nr-Slot-r17             CHOICE {
                                    scs15-r17               INTEGER (0..9),
                                    scs30-r17               INTEGER (0..19),
                                    scs60-r17               INTEGER (0..39),
                                    scs120-r17              INTEGER (0..79)
                                }                                       OPTIONAL    -- Need ON
                            },
                            ...
                        }                                               OPTIONAL,   -- Need ON
    relativeTime-r17    INTEGER (1..1024)                               OPTIONAL    -- Need ON
}

TargetIntegrityRisk-r17 ::=     INTEGER (10..90)

CommonIEsProvideLocationInformation ::= SEQUENCE {
    locationEstimate            LocationCoordinates     OPTIONAL,
    velocityEstimate            Velocity                OPTIONAL,
    locationError               LocationError           OPTIONAL,
    ...,
    [[  earlyFixReport-r12      EarlyFixReport-r12      OPTIONAL
    ]],
    [[  locationSource-r13      LocationSource-r13      OPTIONAL,
        locationTimestamp-r13   UTCTime                 OPTIONAL
    ]],
    [[
        segmentationInfo-r14    SegmentationInfo-r14    OPTIONAL        -- Cond Segmentation
    ]],
    [[
        integrityInfo-r17       IntegrityInfo-r17       OPTIONAL
    ]]
}

LocationCoordinates ::= CHOICE {
    ellipsoidPoint                              Ellipsoid-Point,
    ellipsoidPointWithUncertaintyCircle         Ellipsoid-PointWithUncertaintyCircle,
    ellipsoidPointWithUncertaintyEllipse        EllipsoidPointWithUncertaintyEllipse,
    polygon                                     Polygon,
    ellipsoidPointWithAltitude                  EllipsoidPointWithAltitude,
    ellipsoidPointWithAltitudeAndUncertaintyEllipsoid
                                                EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
    ellipsoidArc                                EllipsoidArc,
    ...,
    highAccuracyEllipsoidPointWithUncertaintyEllipse-v1510
                                HighAccuracyEllipsoidPointWithUncertaintyEllipse-r15,
    highAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-v1510
                                HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15,
    ha-EllipsoidPointWithScalableUncertaintyEllipse-v1680                                                                           HA-EllipsoidPointWithScalableUncertaintyEllipse-r16,
    ha-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-v1680
                                HA-EllipsoidPointWithAltitudeAndScalableUncertaintyEllipsoid-r16,
    local2dPointWithUncertaintyEllipse-v1800    Local2dPointWithUncertaintyEllipse-r18,
    local3dPointWithUncertaintyEllipsoid-v1800  Local3dPointWithUncertaintyEllipsoid-r18
}

Velocity ::= CHOICE {
    horizontalVelocity                          HorizontalVelocity,
    horizontalWithVerticalVelocity              HorizontalWithVerticalVelocity,
    horizontalVelocityWithUncertainty           HorizontalVelocityWithUncertainty,
    horizontalWithVerticalVelocityAndUncertainty
                                                HorizontalWithVerticalVelocityAndUncertainty,
    ...
}

LocationError ::= SEQUENCE {
    locationfailurecause            LocationFailureCause,
    ...
}

LocationFailureCause ::= ENUMERATED {
    undefined,
    requestedMethodNotSupported,
    positionMethodFailure,
    periodicLocationMeasurementsNotAvailable,
    ...
}

EarlyFixReport-r12 ::= ENUMERATED {
    noMoreMessages,
    moreMessagesOnTheWay
}

LocationSource-r13 ::= BIT STRING { a-gnss              (0),
                                    wlan                (1),
                                    bt                  (2),
                                    tbs                 (3),
                                    sensor              (4),
                                    ha-gnss-v1510       (5),
                                    motion-sensor-v1550 (6),
                                    dl-tdoa-r16         (7),
                                    dl-aod-r16          (8) } (SIZE(1..16))

IntegrityInfo-r17 ::= SEQUENCE {
    horizontalProtectionLevel-r17       INTEGER (0..50000),
    verticalProtectionLevel-r17         INTEGER (0..50000)              OPTIONAL,
    achievableTargetIntegrityRisk-r17   INTEGER (10..90)                OPTIONAL,
    ...
}

CommonIEsAbort ::= SEQUENCE {
    abortCause          ENUMERATED {
        undefined,
        stopPeriodicReporting,
        targetDeviceAbort,
        networkAbort,
        ...,
        stopPeriodicAssistanceDataDelivery-v1510
    }
}

CommonIEsError ::= SEQUENCE {
    errorCause      ENUMERATED {
        undefined,
        lppMessageHeaderError,
        lppMessageBodyError,
        epduError,
        incorrectDataValue,
        ...,
        lppSegmentationError-v1450
    }
}

AreaID-CellList-r17 ::= SEQUENCE (SIZE(1..maxCellIDsPerArea-r17)) OF NR-Cell-IDs-r17

NR-Cell-IDs-r17 ::= SEQUENCE {
    nr-CellGlobalID-r17             NCGI-r15                    OPTIONAL,   -- Need ON
    nr-PhysCellID-r17               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
    nr-ARFCN-r17                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
    ...
}

DL-PRS-ID-Info-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-DL-PRS-ResourceID-List-r16   SEQUENCE (SIZE (1..nrMaxResourceIDs-r16)) OF
                                                    NR-DL-PRS-ResourceID-r16
                                                                            OPTIONAL, -- Need ON
    nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16
                                                                            OPTIONAL  -- Need ON
}

LCS-GCS-TranslationParameter-r16 ::= SEQUENCE {
    alpha-r16                       INTEGER (0..359),
    alpha-fine-r16                  INTEGER (0..9)                  OPTIONAL,   -- Cond AzElFine
    beta-r16                        INTEGER (0..359),
    beta-fine-r16                   INTEGER (0..9)                  OPTIONAL,   -- Cond AzElFine
    gamma-r16                       INTEGER (0..359),
    gamma-fine-r16                  INTEGER (0..9)                  OPTIONAL,   -- Cond AzElFine
    ...
}

LocalOrigin-r18 ::= SEQUENCE {
    coordinateID-r18    VisibleString (SIZE (1..256)),
    point-r18           HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15                                                                                   OPTIONAL, -- Need ON
    horizAxesOrientation-r18    INTEGER (0..3599)                       OPTIONAL,    -- Need ON
    ...
}

LOS-NLOS-Indicator-r17 ::= SEQUENCE {
    indicator-r17           CHOICE {
            soft-r17                INTEGER (0..10),
            hard-r17                BOOLEAN
            },
    ...
}

LOS-NLOS-IndicatorGranularity1-r17 ::=  ENUMERATED { trpspecific, resourcespecific }

LOS-NLOS-IndicatorGranularity2-r17 ::=  ENUMERATED { trpspecific, resourcespecific, both }

LOS-NLOS-IndicatorType1-r17 ::= ENUMERATED { hardvalue, softvalue }

LOS-NLOS-IndicatorType2-r17 ::= ENUMERATED { hardvalue, hardAndsoftvalue }

NR-AdditionalPathList-r16 ::= SEQUENCE (SIZE(1..2)) OF NR-AdditionalPath-r16

NR-AdditionalPathListExt-r17 ::= SEQUENCE (SIZE(1..8)) OF NR-AdditionalPath-r16

NR-AdditionalPath-r16 ::= SEQUENCE {
    nr-RelativeTimeDifference-r16   CHOICE {
                k0-r16                  INTEGER(0..16351),
                k1-r16                  INTEGER(0..8176),
                k2-r16                  INTEGER(0..4088),
                k3-r16                  INTEGER(0..2044),
                k4-r16                  INTEGER(0..1022),
                k5-r16                  INTEGER(0..511),
                ...,
                kMinus6-r18             INTEGER(0..1046401),
                kMinus5-r18             INTEGER(0..523201),
                kMinus4-r18             INTEGER(0..261601),
                kMinus3-r18             INTEGER(0..130801),
                kMinus2-r18             INTEGER(0..65401),
                kMinus1-r18             INTEGER(0..32701)
    },
    nr-PathQuality-r16              NR-TimingQuality-r16                    OPTIONAL,
    ...,
    [[
    nr-DL-PRS-RSRPP-r17             INTEGER (0..126)                        OPTIONAL
    ]]
}

NR-AggregatedDL-PRS-ResourceInfo-Element-r18 ::= SEQUENCE {
    aggregatedDL-PRS-ID-r18             INTEGER (0..255)                                OPTIONAL,
    nr-DL-PRS-ResourceSetID-r18         NR-DL-PRS-ResourceSetID-r16                 OPTIONAL,
    nr-DL-PRS-ResourceID-r18            NR-DL-PRS-ResourceID-r16                        OPTIONAL,
    ...
}

NR-DL-PRS-AssistanceData-r16 ::= SEQUENCE {
    nr-DL-PRS-ReferenceInfo-r16         DL-PRS-ID-Info-r16,
    nr-DL-PRS-AssistanceDataList-r16    SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                        NR-DL-PRS-AssistanceDataPerFreq-r16,
    nr-SSB-Config-r16                   SEQUENCE (SIZE (1..nrMaxTRPs-r16)) OF
                                                        NR-SSB-Config-r16   OPTIONAL,   -- Need ON
    ...,
    [[
    nr-DL-PRS-AggregationInfo-r18       NR-DL-PRS-AggregationInfo-r18       OPTIONAL    -- Need ON
    ]]
}

NR-DL-PRS-AssistanceDataPerFreq-r16 ::= SEQUENCE {
    nr-DL-PRS-PositioningFrequencyLayer-r16
                                        NR-DL-PRS-PositioningFrequencyLayer-r16,
    nr-DL-PRS-AssistanceDataPerFreq-r16 SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                        NR-DL-PRS-AssistanceDataPerTRP-r16,
    ...
}

NR-DL-PRS-AssistanceDataPerTRP-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-PhysCellID-r16               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
    nr-CellGlobalID-r16             NCGI-r15                    OPTIONAL,   -- Need ON
    nr-ARFCN-r16                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
    nr-DL-PRS-SFN0-Offset-r16       NR-DL-PRS-SFN0-Offset-r16,
    nr-DL-PRS-ExpectedRSTD-r16      INTEGER (-3841..3841),
    nr-DL-PRS-ExpectedRSTD-Uncertainty-r16
                                    INTEGER (0..246),
    nr-DL-PRS-Info-r16              NR-DL-PRS-Info-r16,
    ...,
    [[
        prs-OnlyTP-r16              ENUMERATED { true }     OPTIONAL    -- Need ON
    ]],
    [[
        nr-DL-PRS-ExpectedAoD-or-AoA-r17
                                    NR-DL-PRS-ExpectedAoD-or-AoA-r17    OPTIONAL    -- Need ON
    ]]
}

NR-DL-PRS-PositioningFrequencyLayer-r16 ::= SEQUENCE {
    dl-PRS-SubcarrierSpacing-r16    ENUMERATED {kHz15, kHz30, kHz60, kHz120, ...},
    dl-PRS-ResourceBandwidth-r16    INTEGER (1..63),
    dl-PRS-StartPRB-r16             INTEGER (0..2176),
    dl-PRS-PointA-r16               ARFCN-ValueNR-r15,
    dl-PRS-CombSizeN-r16            ENUMERATED {n2, n4, n6, n12, ...},
    dl-PRS-CyclicPrefix-r16         ENUMERATED {normal, extended, ...},
    ...
}

NR-DL-PRS-SFN0-Offset-r16 ::= SEQUENCE {
    sfn-Offset-r16                  INTEGER (0..1023),
    integerSubframeOffset-r16       INTEGER (0..9),
    ...
}

NR-DL-PRS-ExpectedAoD-or-AoA-r17 ::= CHOICE {
    expectedAoD-r17         SEQUENCE {
                                expectedDL-AzimuthAoD-r17       INTEGER (0..359),
                                expectedDL-AzimuthAoD-Unc-r17   INTEGER (0..60) OPTIONAL, -- Need OP
                                expectedDL-ZenithAoD-r17        INTEGER (0..180),
                                expectedDL-ZenithAoD-Unc-r17    INTEGER (0..30) OPTIONAL  -- Need OP
                            },
    expectedAoA-r17         SEQUENCE {
                                expectedDL-AzimuthAoA-r17       INTEGER (0..359),
                                expectedDL-AzimuthAoA-Unc-r17   INTEGER (0..60) OPTIONAL, -- Need OP
                                expectedDL-ZenithAoA-r17        INTEGER (0..180),
                                expectedDL-ZenithAoA-Unc-r17    INTEGER (0..30) OPTIONAL  -- Need OP
                            }
}

NR-DL-PRS-AggregationInfo-r18 ::= SEQUENCE (SIZE (1..nrMaxNumPRS-BandWidthAggregation-r18)) OF
                                            NR-linkedDL-PRS-ResourceSetID-PRS-AggregationList-r18

NR-linkedDL-PRS-ResourceSetID-PRS-AggregationList-r18 ::= SEQUENCE (SIZE (2..3)) OF
                                            NR-DL-PRS-AggregationElement-r18

NR-DL-PRS-AggregationElement-r18 ::= SEQUENCE {
    nr-DL-PRS-FrequencyLayerIndex-r18       INTEGER (0..nrMaxFreqLayers-1-r16),
    nr-DL-PRS-TRP-Index-r18                 INTEGER (0..nrMaxTRPsPerFreq-1-r16),
    nr-DL-PRS-ResourceSetIndex-r18          INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16)
}

NR-DL-PRS-BeamInfo-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                                NR-DL-PRS-BeamInfoPerFreqLayer-r16

NR-DL-PRS-BeamInfoPerFreqLayer-r16 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                                NR-DL-PRS-BeamInfoPerTRP-r16

NR-DL-PRS-BeamInfoPerTRP-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                       INTEGER (0..255),
    nr-PhysCellID-r16                   NR-PhysCellID-r16       OPTIONAL,   -- Need ON
    nr-CellGlobalID-r16                 NCGI-r15                OPTIONAL,   -- Need ON
    nr-ARFCN-r16                        ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
    associated-DL-PRS-ID-r16            INTEGER (0..255)        OPTIONAL,   -- Need OP
    lcs-GCS-TranslationParameter-r16    LCS-GCS-TranslationParameter-r16
                                                                OPTIONAL,   -- Need OP
    dl-PRS-BeamInfoSet-r16              DL-PRS-BeamInfoSet-r16  OPTIONAL,   -- Need OP
    ...
}

DL-PRS-BeamInfoSet-r16 ::= SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                                DL-PRS-BeamInfoResourceSet-r16

DL-PRS-BeamInfoResourceSet-r16 ::= SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
                                                                DL-PRS-BeamInfoElement-r16

DL-PRS-BeamInfoElement-r16 ::= SEQUENCE {
    dl-PRS-Azimuth-r16              INTEGER (0..359),
    dl-PRS-Azimuth-fine-r16         INTEGER (0..9)                  OPTIONAL,   -- Need ON
    dl-PRS-Elevation-r16            INTEGER (0..180)                OPTIONAL,   -- Need ON
    dl-PRS-Elevation-fine-r16       INTEGER (0..9)                  OPTIONAL,   -- Need ON
    ...,
    [[
    nr-IntegrityBeamInfoBounds-r18  NR-IntegrityBeamInfoBounds-r18  OPTIONAL    -- Need OP
    ]]
}

NR-IntegrityBeamInfoBounds-r18 ::= SEQUENCE {
    meanAzimuth-r18                 INTEGER (0..255),
    stdDevAzimuth-r18               INTEGER (0..255),
    meanElevation-r18               INTEGER (0..255),
    stdDevElevation-r18             INTEGER (0..255),
    ...
}

NR-DL-PRS-ExpectedLOS-NLOS-Assistance-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                            NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerFreqLayer-r17

NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerFreqLayer-r17 ::=
                                                SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                            NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerTRP-r17

NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerTRP-r17 ::= SEQUENCE {
    dl-PRS-ID-r17               INTEGER (0..255),
    nr-PhysCellID-r17           NR-PhysCellID-r16           OPTIONAL,   -- Need ON
    nr-CellGlobalID-r17         NCGI-r15                    OPTIONAL,   -- Need ON
    nr-ARFCN-r17                ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
    nr-los-nlos-indicator-r17   CHOICE {
                perTrp-r17          LOS-NLOS-Indicator-r17,
                perResource-r17     SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                            NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerResource-r17                },
    ...
}

NR-DL-PRS-ExpectedLOS-NLOS-AssistancePerResource-r17 ::=
                                        SEQUENCE (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                            LOS-NLOS-Indicator-r17

NR-DL-PRS-Info-r16 ::= SEQUENCE {
    nr-DL-PRS-ResourceSetList-r16       SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                                    NR-DL-PRS-ResourceSet-r16,
    ...
}

NR-DL-PRS-ResourceSet-r16 ::= SEQUENCE {
    nr-DL-PRS-ResourceSetID-r16         NR-DL-PRS-ResourceSetID-r16,
    dl-PRS-Periodicity-and-ResourceSetSlotOffset-r16
                                        NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16,
    dl-PRS-ResourceRepetitionFactor-r16 ENUMERATED {n2, n4, n6, n8, n16, n32, ...}
                                                                            OPTIONAL,   -- Need OP
    dl-PRS-ResourceTimeGap-r16          ENUMERATED {s1, s2, s4, s8, s16, s32, ...}
                                                                            OPTIONAL,   -- Cond Rep
    dl-PRS-NumSymbols-r16               ENUMERATED {n2, n4, n6, n12, ..., n1-v1800 },
    dl-PRS-MutingOption1-r16            DL-PRS-MutingOption1-r16            OPTIONAL,   -- Need OP
    dl-PRS-MutingOption2-r16            DL-PRS-MutingOption2-r16            OPTIONAL,   -- Need OP
    dl-PRS-ResourcePower-r16            INTEGER (-60..50),
    dl-PRS-ResourceList-r16             SEQUENCE (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                                                    NR-DL-PRS-Resource-r16,
    ...
}

DL-PRS-MutingOption1-r16 ::= SEQUENCE {
    dl-prs-MutingBitRepetitionFactor-r16
                                        ENUMERATED { n1, n2, n4, n8, ... }  OPTIONAL,   -- Need OP
    nr-option1-muting-r16               NR-MutingPattern-r16,
    ...
}

DL-PRS-MutingOption2-r16 ::= SEQUENCE {
    nr-option2-muting-r16               NR-MutingPattern-r16,
    ...
}

NR-MutingPattern-r16 ::= CHOICE {
    po2-r16                             BIT STRING (SIZE(2)),
    po4-r16                             BIT STRING (SIZE(4)),
    po6-r16                             BIT STRING (SIZE(6)),
    po8-r16                             BIT STRING (SIZE(8)),
    po16-r16                            BIT STRING (SIZE(16)),
    po32-r16                            BIT STRING (SIZE(32)),
    ...
}

NR-DL-PRS-Resource-r16 ::= SEQUENCE {
    nr-DL-PRS-ResourceID-r16            NR-DL-PRS-ResourceID-r16,
    dl-PRS-SequenceID-r16               INTEGER (0.. 4095),
    dl-PRS-CombSizeN-AndReOffset-r16    CHOICE {
            n2-r16                          INTEGER (0..1),
            n4-r16                          INTEGER (0..3),
            n6-r16                          INTEGER (0..5),
            n12-r16                         INTEGER (0..11),
            ...
    },
    dl-PRS-ResourceSlotOffset-r16       INTEGER (0..nrMaxResourceOffsetValue-1-r16),
    dl-PRS-ResourceSymbolOffset-r16     INTEGER (0..12),
    dl-PRS-QCL-Info-r16                 DL-PRS-QCL-Info-r16                 OPTIONAL,   --Need ON
    ...,
    [[
    dl-PRS-ResourcePrioritySubset-r17   DL-PRS-ResourcePrioritySubset-r17   OPTIONAL    -- Need ON
    ]],
    [[
    dl-PRS-ResourceSymbolOffset-v1800   INTEGER (13)                        OPTIONAL    -- Need OR
    ]]
}

DL-PRS-QCL-Info-r16 ::= CHOICE {
    ssb-r16                     SEQUENCE {
        pci-r16                         NR-PhysCellID-r16,
        ssb-Index-r16                   INTEGER (0..63),
        rs-Type-r16                     ENUMERATED {typeC, typeD, typeC-plus-typeD}
    },
    dl-PRS-r16                  SEQUENCE {
        qcl-DL-PRS-ResourceID-r16       NR-DL-PRS-ResourceID-r16,
        qcl-DL-PRS-ResourceSetID-r16    NR-DL-PRS-ResourceSetID-r16
    }
}

NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16 ::= CHOICE {
    scs15-r16       CHOICE {
                        n4-r16                  INTEGER (0..3),
                        n5-r16                  INTEGER (0..4),
                        n8-r16                  INTEGER (0..7),
                        n10-r16                 INTEGER (0..9),
                        n16-r16                 INTEGER (0..15),
                        n20-r16                 INTEGER (0..19),
                        n32-r16                 INTEGER (0..31),
                        n40-r16                 INTEGER (0..39),
                        n64-r16                 INTEGER (0..63),
                        n80-r16                 INTEGER (0..79),
                        n160-r16                INTEGER (0..159),
                        n320-r16                INTEGER (0..319),
                        n640-r16                INTEGER (0..639),
                        n1280-r16               INTEGER (0..1279),
                        n2560-r16               INTEGER (0..2559),
                        n5120-r16               INTEGER (0..5119),
                        n10240-r16              INTEGER (0..10239),
                        ...
    },
    scs30-r16       CHOICE {
                        n8-r16                  INTEGER (0..7),
                        n10-r16                 INTEGER (0..9),
                        n16-r16                 INTEGER (0..15),
                        n20-r16                 INTEGER (0..19),
                        n32-r16                 INTEGER (0..31),
                        n40-r16                 INTEGER (0..39),
                        n64-r16                 INTEGER (0..63),
                        n80-r16                 INTEGER (0..79),
                        n128-r16                INTEGER (0..127),
                        n160-r16                INTEGER (0..159),
                        n320-r16                INTEGER (0..319),
                        n640-r16                INTEGER (0..639),
                        n1280-r16               INTEGER (0..1279),
                        n2560-r16               INTEGER (0..2559),
                        n5120-r16               INTEGER (0..5119),
                        n10240-r16              INTEGER (0..10239),
                        n20480-r16              INTEGER (0..20479),
                        ...
    },
    scs60-r16       CHOICE {
                        n16-r16                 INTEGER (0..15),
                        n20-r16                 INTEGER (0..19),
                        n32-r16                 INTEGER (0..31),
                        n40-r16                 INTEGER (0..39),
                        n64-r16                 INTEGER (0..63),
                        n80-r16                 INTEGER (0..79),
                        n128-r16                INTEGER (0..127),
                        n160-r16                INTEGER (0..159),
                        n256-r16                INTEGER (0..255),
                        n320-r16                INTEGER (0..319),
                        n640-r16                INTEGER (0..639),
                        n1280-r16               INTEGER (0..1279),
                        n2560-r16               INTEGER (0..2559),
                        n5120-r16               INTEGER (0..5119),
                        n10240-r16              INTEGER (0..10239),
                        n20480-r16              INTEGER (0..20479),
                        n40960-r16              INTEGER (0..40959),
                        ...
    },
    scs120-r16      CHOICE {
                        n32-r16                 INTEGER (0..31),
                        n40-r16                 INTEGER (0..39),
                        n64-r16                 INTEGER (0..63),
                        n80-r16                 INTEGER (0..79),
                        n128-r16                INTEGER (0..127),
                        n160-r16                INTEGER (0..159),
                        n256-r16                INTEGER (0..255),
                        n320-r16                INTEGER (0..319),
                        n512-r16                INTEGER (0..511),
                        n640-r16                INTEGER (0..639),
                        n1280-r16               INTEGER (0..1279),
                        n2560-r16               INTEGER (0..2559),
                        n5120-r16               INTEGER (0..5119),
                        n10240-r16              INTEGER (0..10239),
                        n20480-r16              INTEGER (0..20479),
                        n40960-r16              INTEGER (0..40959),
                        n81920-r16              INTEGER (0..81919),
                        ...
    },
    ...
}

DL-PRS-ResourcePrioritySubset-r17 ::= SEQUENCE (SIZE (1..maxNumPrioResources-r17)) OF
                                                        NR-DL-PRSResourcePriorityItem-r17

NR-DL-PRSResourcePriorityItem-r17 ::= SEQUENCE {
    nr-DL-PRS-PrioResourceSetID-r17         NR-DL-PRS-ResourceSetID-r16 OPTIONAL,   -- Cond NotSame
    nr-DL-PRS-PrioResourceID-r17            NR-DL-PRS-ResourceID-r16,
    ...
}

NR-DL-PRS-MeasurementTimeWindowsConfig-r18 ::=
                                    SEQUENCE (SIZE(1..2)) OF
                                            NR-DL-PRS-MeasurementTimeWindowsConfigElement-r18

NR-DL-PRS-MeasurementTimeWindowsConfigElement-r18 ::= SEQUENCE {
    nr-StartSFN-TimeWindow-r18      INTEGER (0..1023),
    nr-PeriodicOrOneShotTimeWindow-r18 CHOICE {
        nr-PeriodicityAndSlotOffsetTimeWindow-r18
                                        NR-DL-PRS-Periodicity-and-ResourceSetSlotOffset-r16,
        nr-OneShotSlotOffsetTimeWindow-r18 CHOICE {
                scs15-r18                       INTEGER (0..10239),
                scs30-r18                       INTEGER (0..20479),
                scs60-r18                       INTEGER (0..40959),
                scs120-r18                      INTEGER (0..81919)
        }
    }                                                                       OPTIONAL, -- Need ON
    nr-SymbolOffsetTimeWindow-r18   INTEGER (0..13)                         OPTIONAL, -- Need ON
    nr-DurationTimeWindow-r18       ENUMERATED { n1, n2, n4, n6, n8, n12, n16, ... },
    nr-SelectedDL-PRS-FrequencyLayerIndex-r18   INTEGER (0..nrMaxFreqLayers-1-r16)
                                                                            OPTIONAL, -- Need ON
    nr-SelectedDL-PRS-IndexListPerFreq-r18
                                    SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                        NR-SelectedDL-PRS-IndexPerTRP-r18   OPTIONAL, -- Need OP
    nr-MeasurementsToPerformInTimeWindow-r18            BIT STRING { rstd (0),
                                                                ueRxTx (1),
                                                                rsrp (2),
                                                                rsrpp (3),
                                                                rscp (4),
                                                                rscpd (5)
                                                            } (SIZE(1..16)) OPTIONAL, -- Need ON
    ...
}

NR-SelectedDL-PRS-IndexPerTRP-r18 ::= SEQUENCE {
    nr-SelectedTRP-Index-r18                INTEGER (0..nrMaxTRPsPerFreq-1-r16),
    dl-SelectedPRS-ResourceSetIndexList-r18 SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                        INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16)      OPTIONAL, --Need OP
    ...
}

NR-DL-PRS-ProcessingCapability-r16 ::= SEQUENCE {
    prs-ProcessingCapabilityBandList-r16    SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                PRS-ProcessingCapabilityPerBand-r16,
    maxSupportedFreqLayers-r16              INTEGER (1..4),
    simulLTE-NR-PRS-r16                     ENUMERATED { supported }        OPTIONAL,
    ...,
    [[
    dummy                                   ENUMERATED { m1, m2, ... }      OPTIONAL
    ]]
}

PRS-ProcessingCapabilityPerBand-r16 ::= SEQUENCE {
    freqBandIndicatorNR-r16             FreqBandIndicatorNR-r16,
    supportedBandwidthPRS-r16           CHOICE {
        fr1                                     ENUMERATED {mhz5, mhz10, mhz20, mhz40,
                                                            mhz50, mhz80, mhz100},
        fr2                                     ENUMERATED {mhz50, mhz100, mhz200, mhz400},
        ...
    },
    dl-PRS-BufferType-r16               ENUMERATED {type1, type2, ...},
    durationOfPRS-Processing-r16        SEQUENCE {
        durationOfPRS-ProcessingSymbols-r16 ENUMERATED {nDot125, nDot25, nDot5, n1,
                                                             n2, n4, n6, n8, n12, n16, n20, n25,
                                                             n30, n32, n35, n40, n45, n50},
        durationOfPRS-ProcessingSymbolsInEveryTms-r16
                                                ENUMERATED {n8, n16, n20, n30, n40, n80,
                                                             n160,n320, n640, n1280},
        ...
    },
    maxNumOfDL-PRS-ResProcessedPerSlot-r16  SEQUENCE {
        scs15-r16                               ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                             n48, n64}                  OPTIONAL,
        scs30-r16                               ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                             n48, n64}                  OPTIONAL,
        scs60-r16                               ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                             n48, n64}                  OPTIONAL,
        scs120-r16                              ENUMERATED {n1, n2, n4, n8, n16, n24, n32,
                                                             n48, n64}                  OPTIONAL,
        ...,
        [[
        scs15-v1690                             ENUMERATED {n6, n12}                    OPTIONAL,
        scs30-v1690                             ENUMERATED {n6, n12}                    OPTIONAL,
        scs60-v1690                             ENUMERATED {n6, n12}                    OPTIONAL,
        scs120-v1690                            ENUMERATED {n6, n12}                    OPTIONAL
        ]]
    },
    ...,
    [[
    supportedDL-PRS-ProcessingSamples-RRC-CONNECTED-r17 ENUMERATED { supported }        OPTIONAL,
    prs-ProcessingWindowType1A-r17          ENUMERATED { option1, option2, option3}     OPTIONAL,
    prs-ProcessingWindowType1B-r17          ENUMERATED { option1, option2, option3}     OPTIONAL,
    prs-ProcessingWindowType2-r17           ENUMERATED { option1, option2, option3}     OPTIONAL,
    prs-ProcessingCapabilityOutsideMGinPPW-r17
                                            SEQUENCE (SIZE(1..3)) OF
                                                PRS-ProcessingCapabilityOutsideMGinPPWperType-r17
                                                                                        OPTIONAL,
    dl-PRS-BufferType-RRC-Inactive-r17      ENUMERATED { type1, type2, ... }            OPTIONAL,
    durationOfPRS-Processing-RRC-Inactive-r17   SEQUENCE {
        durationOfPRS-ProcessingSymbols-r17         ENUMERATED {nDot125, nDot25, nDot5, n1,
                                                                n2, n4, n6, n8, n12, n16, n20, n25,
                                                                n30, n32, n35, n40, n45, n50},
        durationOfPRS-ProcessingSymbolsInEveryTms-r17
                                                    ENUMERATED {n8, n16, n20, n30, n40, n80,
                                                                n160,n320, n640, n1280},
        ...
    }                                                                                   OPTIONAL,
    maxNumOfDL-PRS-ResProcessedPerSlot-RRC-Inactive-r17 SEQUENCE {
        scs15-r17                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs30-r17                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs60-r17                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs120-r17                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        ...
    }                                                                                   OPTIONAL,
    supportedLowerRxBeamSweepingFactor-FR2-r17  ENUMERATED { n1, n2, n4, n6 }           OPTIONAL
    ]],
    [[
    supportedDL-PRS-ProcessingSamples-RRC-Inactive-r17  ENUMERATED { supported }        OPTIONAL
    ]],
    [[
    prs-MeasurementWithoutMG-r17                ENUMERATED {cp, symbolDot25, symbolDot5,
                                                                            slotDot5}                   OPTIONAL
    ]],
    [[
    maxNumOfOneSymbolPRS-ResProcessedPerSlot-RRC-Inactive-r18   SEQUENCE {
        scs15-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs30-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs60-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs120-r18                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        ...
    }                                                                                   OPTIONAL,
    maxNumOfOneSymbolPRS-ResProcessedPerSlot-RRC-Connected-r18  SEQUENCE {
        scs15-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs30-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs60-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs120-r18                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        ...
    }                                                                                   OPTIONAL,
    ppw-maxNumOfOneSymbolPRS-ResProcessedPerSlot-r18    SEQUENCE {
        scs15-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs30-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs60-r18                               ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        scs120-r18                              ENUMERATED {n1, n2, n4, n6, n8, n12, n16, n24,
                                                            n32, n48, n64}              OPTIONAL,
        ...
    }                                                                                   OPTIONAL,
    prs-BWA-TwoContiguousIntrabandInMG-RRC-Connected-r18
                                                    PRS-BWA-TwoContiguousIntrabandInMG-r18      OPTIONAL,
            prs-BWA-ThreeContiguousIntrabandInMG-RRC-Connected-r18
                                                    PRS-BWA-ThreeContiguousIntrabandInMG-r18    OPTIONAL,
            prs-BWA-TwoContiguousIntraband-RRC-IdleAndInactive-r18
                                                    PRS-BWA-TwoContiguousIntrabandInMG-r18      OPTIONAL,
            prs-BWA-ThreeContiguousIntraband-RRC-IdleAndInactive-r18
                                                    PRS-BWA-ThreeContiguousIntrabandInMG-r18    OPTIONAL,
                    reducedNumOfSampleInMeasurementWithPRS-BWA-RRC-Connected-r18        ENUMERATED { supported }
                                                                                                        OPTIONAL,
            reducedNumOfSampleInMeasurementWithPRS-BWA-RRC-IdleAndInactive-r18
                                                    ENUMERATED { supported }                    OPTIONAL,
            dl-PRS-MeasurementWithRxFH-RRC-Inactive-r18     ENUMERATED { supported }            OPTIONAL,
            dl-PRS-MeasurementWithRxFH-RRC-Idle-r18         ENUMERATED { supported }            OPTIONAL,
            reducedNumOfSampleForMeasurementWithFH-RRC-Connected-r18    ENUMERATED { supported }
                                                                                                OPTIONAL,
            reducedNumOfSampleForMeasurementWithFH-RRC-IdleAndInactive-r18  ENUMERATED { supported }
                                                                                                OPTIONAL,
                supportOfPRS-BWA-WithTwoPFL-Combination-r18         ENUMERATED { supported }        OPTIONAL,
                dl-PRS-MeasurementWithRxFH-RRC-Connected-r18    DL-PRS-MeasurementWithRxFH-RRC-Connected-r18                                                                                        OPTIONAL
            ]]
}

PRS-ProcessingCapabilityOutsideMGinPPWperType-r17 ::= SEQUENCE {
    prsProcessingType-r17                       ENUMERATED { type1A, type1B, type2 },
    ppw-dl-PRS-BufferType-r17                   ENUMERATED { type1, type2, ... },
    ppw-durationOfPRS-Processing1-r17           SEQUENCE {
        ppw-durationOfPRS-ProcessingSymbolsN-r17
                                    ENUMERATED { msDot125, msDot25, msDot5, ms1, ms2, ms4,
                                                ms6, ms8, ms12, ms16, ms20, ms25, ms30, ms32, ms35,
                                                ms40, ms45, ms50 },
        ppw-durationOfPRS-ProcessingSymbolsT-r17
                                    ENUMERATED { ms1, ms2, ms4, ms8, ms16, ms20, ms30, ms40, ms80,
                                                ms160, ms320, ms640, ms1280 }
    }                                                                                   OPTIONAL,
    ppw-durationOfPRS-Processing2-r17           SEQUENCE {
        ppw-durationOfPRS-ProcessingSymbolsN2-r17
                                    ENUMERATED { msDot125, msDot25, msDot5, ms1, ms2, ms3, ms4, ms5,
                                                ms6, ms8, ms12 },
        ppw-durationOfPRS-ProcessingSymbolsT2-r17
                                    ENUMERATED { ms4, ms5, ms6, ms8 }
    }                                                                                   OPTIONAL,
    ppw-maxNumOfDL-PRS-ResProcessedPerSlot-r17  SEQUENCE {
        scs15-r17                                   ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                n16, n24, n32, n48, n64 }
                                                                                        OPTIONAL,
        scs30-r17                                   ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                n16, n24, n32, n48, n64 }
                                                                                        OPTIONAL,
        scs60-r17                                   ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                n16, n24, n32, n48, n64 }
                                                                                        OPTIONAL,
        scs120-r17                                  ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                n16, n24, n32, n48, n64 }
                                                                                        OPTIONAL,
        ...
    },
    ...,
    [[
    ppw-maxNumOfDL-Bandwidth-r17        CHOICE {
        fr1                                     ENUMERATED {mhz5, mhz10, mhz20, mhz40,
                                                            mhz50, mhz80, mhz100},
        fr2                                     ENUMERATED {mhz50, mhz100, mhz200, mhz400}
    }                                                                                   OPTIONAL
    ]]
}

PRS-BWA-TwoContiguousIntrabandInMG-r18 ::= SEQUENCE {
    maximumOfTwoAggregatedDL-PRS-Bandwidth-FR1-r18  ENUMERATED {mhz10, mhz20, mhz40, mhz50,
                                                                mhz80, mhz100, mhz160, mhz200}
                                                                                                    OPTIONAL,
                maximumOfTwoAggregatedDL-PRS-Bandwidth-FR2-r18  ENUMERATED {mhz100, mhz200, mhz400, mhz800}
                                                                                                    OPTIONAL,
                maximumOfDL-PRS-BandwidthPerPFL-FR1-r18         ENUMERATED {mhz5, mhz10, mhz20, mhz40,
                                                                            mhz50, mhz80, mhz100}   OPTIONAL,
                maximumOfDL-PRS-BandwidthPerPFL-FR2-r18         ENUMERATED {mhz50, mhz100, mhz200, mhz400}
                                                                                                    OPTIONAL,
                dl-PRS-BufferTypeOfBWA-r18                      ENUMERATED {type1, type2},
    prs-durationOfTwoPRS-BWA-Processing-r18         SEQUENCE {
            prs-durationOfTwoPRS-BWA-ProcessingSymbolsN-r18
                        ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
                                    ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
            prs-durationOfTwoPRS-BWA-ProcessingSymbolsT-r18
                        ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160, ms320, ms640, ms1280}
                }                                                                                   OPTIONAL,
                maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR1-r18    SEQUENCE {
                        scs15-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL,
                        scs30-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL,
                        scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL
                },
                maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR2-r18    SEQUENCE {
                        scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL,
                        scs120-r18                      ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL
                }
}

PRS-BWA-ThreeContiguousIntrabandInMG-r18 ::= SEQUENCE {
                maximumOfThreeAggregatedDL-PRS-Bandwidth-FR1-r18
                                    ENUMERATED {mhz15, mhz20, mhz30, mhz40, mhz50, mhz60, mhz80, mhz100, mhz120,
                                                mhz140, mhz150, mhz180, mhz200, mhz240, mhz300}     OPTIONAL,
                maximumOfThreeAggregatedDL-PRS-Bandwidth-FR2-r18
                                    ENUMERATED {mhz150, mhz200, mhz300, mhz400, mhz600, mhz800, mhz1000,
                                                mhz1200}                                            OPTIONAL,
                maximumOfDL-PRS-BandwidthPerPFL-FR1-r18
                                    ENUMERATED {mhz5, mhz10, mhz20, mhz40, mhz50, mhz80, mhz100}    OPTIONAL,
                maximumOfDL-PRS-BandwidthPerPFL-FR2-r18
                                    ENUMERATED {mhz50, mhz100, mhz200, mhz400}                      OPTIONAL,
                dl-PRS-BufferTypeOfBWA-r18                          ENUMERATED {type1, type2},
                prs-durationOfThreePRS-BWA-Processing-r18           SEQUENCE {
                        prs-durationOfThreePRS-BWA-ProcessingSymbolsN-r18
                                    ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2, ms4, ms6, ms8, ms12,
                                                ms16, ms20, ms25, ms30, ms32, ms35, ms40, ms45, ms50},
                        prs-durationOfThreePRS-BWA-ProcessingSymbolsT-r18
                                    ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80, ms160,
                                                ms320, ms640, ms1280}
                }                                                                                   OPTIONAL,
                maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR1-r18    SEQUENCE {
                        scs15-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL,
                        scs30-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL,
                        scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL
                },
                maxNumOfAggregatedDL-PRS-ResourcePerSlot-FR2-r18    SEQUENCE {
                        scs60-r18                       ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL,
                        scs120-r18                      ENUMERATED {n1, n2, n4, n6, n8, n12,
                                                                    n16, n24, n32, n48, n64 }       OPTIONAL
                }
}

DL-PRS-MeasurementWithRxFH-RRC-Connected-r18 ::=SEQUENCE {
    maximumPRS-BandwidthAcrossAllHopsFR1-r18    ENUMERATED {mhz40, mhz50, mhz80, mhz100}
                                                                                        OPTIONAL,
    maximumPRS-BandwidthAcrossAllHopsFR2-r18    ENUMERATED {mhz100, mhz200, mhz400}     OPTIONAL,
    maximumFH-Hops-r18                          ENUMERATED {n2, n3, n4, n5, n6}         OPTIONAL,
    processingDuration-r18  SEQUENCE {
                processingPRS-SymbolsDurationN3-r18     ENUMERATED {msDot125, msDot25, msDot5, ms1, ms2,
                                                                    ms4, ms6, ms8, ms12,ms16, ms20, ms25,
                                                                    ms30, ms32, ms35, ms40, ms45, ms50},
            processingDurationT3-r18                ENUMERATED {ms8, ms16, ms20, ms30, ms40, ms80,
                                                                ms160, ms320, ms640, ms1280}
    }                                                                                   OPTIONAL,
    rf-RxRetuneTimeFR1-r18                      ENUMERATED {n70,n140,n210}              OPTIONAL,
    rf-RxRetuneTimeFR2-r18                      ENUMERATED {n35,n70,n140}               OPTIONAL,
    numOfOverlappingPRB-r18                     ENUMERATED {n0,n1,n2,n4}                OPTIONAL,
    ...
}

NR-DL-PRS-QCL-ProcessingCapability-r16 ::= SEQUENCE {
    dl-PRS-QCL-ProcessingCapabilityBandList-r16         SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                        DL-PRS-QCL-ProcessingCapabilityPerBand-r16,
    ...
}

DL-PRS-QCL-ProcessingCapabilityPerBand-r16 ::= SEQUENCE {
    freqBandIndicatorNR-r16                     FreqBandIndicatorNR-r16,
    ssb-FromNeighCellAsQCL-r16                  ENUMERATED { supported} OPTIONAL,
    prs-FromServNeighCellAsQCL-r16              ENUMERATED { supported} OPTIONAL,
    ...
}

NR-DL-PRS-ResourceID-r16 ::= INTEGER (0..nrMaxNumDL-PRS-ResourcesPerSet-1-r16)

NR-DL-PRS-ResourcesCapability-r16 ::= SEQUENCE {
    maxNrOfDL-PRS-ResourceSetPerTrpPerFrequencyLayer-r16
                                                INTEGER (1..2),
    maxNrOfTRP-AcrossFreqs-r16                  ENUMERATED { n4, n6, n12, n16, n32,
                                                             n64, n128, n256, ..., n24-v1690},
    maxNrOfPosLayer-r16                         INTEGER (1..4),
    dl-PRS-ResourcesCapabilityBandList-r16      SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                    DL-PRS-ResourcesCapabilityPerBand-r16,
    dl-PRS-ResourcesBandCombinationList-r16     DL-PRS-ResourcesBandCombinationList-r16,
    ...
}

DL-PRS-ResourcesCapabilityPerBand-r16 ::= SEQUENCE {
    freqBandIndicatorNR-r16                     FreqBandIndicatorNR-r16,
    maxNrOfDL-PRS-ResourcesPerResourceSet-r16   ENUMERATED { n1, n2, n4, n8, n16, n32, n64, ...},
    maxNrOfDL-PRS-ResourcesPerPositioningFrequencylayer-r16
                                                ENUMERATED { n6, n24, n32, n64, n96, n128,
                                                             n256, n512, n1024, ...},
    ...
}

DL-PRS-ResourcesBandCombinationList-r16 ::= SEQUENCE (SIZE (1..maxBandComb-r16)) OF
                                                        DL-PRS-ResourcesBandCombination-r16

DL-PRS-ResourcesBandCombination-r16 ::= SEQUENCE {
    bandList-r16                            SEQUENCE (SIZE (1..maxSimultaneousBands-r16)) OF
                                                            FreqBandIndicatorNR-r16,
    maxNrOfDL-PRS-ResourcesAcrossAllFL-TRP-ResourceSet-r16
                                            CHOICE {
        fr1-Only-r16                            ENUMERATED {n6, n24, n64, n128, n192,
                                                             n256, n512, n1024, n2048},
        fr2-Only-r16                            ENUMERATED {n24, n64, n96, n128, n192,
                                                             n256, n512, n1024, n2048},
        fr1-FR2Mix-r16                          SEQUENCE {
            fr1-r16                                 ENUMERATED {n6, n24, n64, n96, n128,
                                                                 n192, n256, n512, n1024, n2048},
            fr2-r16                                 ENUMERATED {n24, n64, n96, n128, n192,
                                                                 n256, n512, n1024, n2048},
            ...
        },
        ...
    },
    ...
}

                                                                                                NR-DL-PRS-ResourceSetID-r16 ::= INTEGER (0..nrMaxNumDL-PRS-ResourceSetsPerTRP-1-r16)

NR-DL-PRS-TRP-TEG-Info-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                        NR-DL-PRS-TRP-TEG-InfoPerFreqLayer-r17

NR-DL-PRS-TRP-TEG-InfoPerFreqLayer-r17 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                        NR-DL-PRS-TRP-TEG-InfoPerTRP-r17

NR-DL-PRS-TRP-TEG-InfoPerTRP-r17 ::= SEQUENCE {
    dl-PRS-ID-r17                           INTEGER (0..255),
    nr-PhysCellID-r17                       NR-PhysCellID-r16       OPTIONAL,   -- Need ON
    nr-CellGlobalID-r17                     NCGI-r15                OPTIONAL,   -- Need ON
    nr-ARFCN-r17                            ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
    dl-PRS-TEG-InfoSet-r17                  SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                DL-PRS-TEG-InfoPerResourceSet-r17,
    ...,
    [[
    nr-TRP-TxTEG-TimingErrorMargin-r17      TEG-TimingErrorMargin-r17       OPTIONAL  -- Need ON
    ]]
}

DL-PRS-TEG-InfoPerResourceSet-r17 ::= SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
                                                                DL-PRS-TEG-InfoElement-r17

DL-PRS-TEG-InfoElement-r17 ::= SEQUENCE {
    dl-prs-trp-Tx-TEG-ID-r17        INTEGER (0..maxNumOfTRP-TxTEGs-1-r17),
    ...
}

NR-IntegrityRiskParameters-r18  ::= SEQUENCE {
    nr-ProbOnsetTRP-Fault-r18                   INTEGER (0..255),
    nr-MeanTRP-FaultDuration-r18                INTEGER (1..3600),
    ...
}

NR-IntegrityServiceAlert-r18 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                NR-TRP-IntegrityServiceAlertPerFreqLayer-r18

NR-TRP-IntegrityServiceAlertPerFreqLayer-r18 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16))
                                                    OF NR-TRP-IntegrityServiceAlertElement-r18

NR-TRP-IntegrityServiceAlertElement-r18 ::= SEQUENCE {
    dl-PRS-ID-r18                   INTEGER (0..255),
    nr-PhysCellID-r18               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
    nr-CellGlobalID-r18             NCGI-r15                    OPTIONAL,   -- Need ON
    nr-ARFCN-r18                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
    rtd-DoNotUse-r18                BOOLEAN                     OPTIONAL,   -- Need OR
    trp-LocationDoNotUse-r18        BOOLEAN                     OPTIONAL,   -- Need OR
    beamInfo-DoNotUse-r18           BOOLEAN                     OPTIONAL,   -- Need OR
    beamAntennaInfo-DoNotUse-r18    BOOLEAN                     OPTIONAL,   -- Need OR
    ...
}

NR-IntegrityServiceParameters-r18 ::= SEQUENCE {
    ir-Minimum-r18                      INTEGER (0..255),
    ir-Maximum-r18                      INTEGER (0..255),
    ...
}

NR-On-Demand-DL-PRS-Configurations-r17 ::= SEQUENCE {
    on-demand-dl-prs-configuration-list-r17     SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
                                                    On-Demand-DL-PRS-Configuration-r17,
    ...,
    [[
    onDemandDL-PRS-AggregationList-r18          SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
                                            OnDemandDL-PRS-AggregationInfo-r18  OPTIONAL-- Need OR
    ]]
}

On-Demand-DL-PRS-Configuration-r17 ::= SEQUENCE {
    dl-prs-configuration-id-r17                 DL-PRS-Configuration-ID-r17,
    nr-DL-PRS-PositioningFrequencyLayer-r17     NR-DL-PRS-PositioningFrequencyLayer-r16,
    nr-DL-PRS-Info-r17                          NR-DL-PRS-Info-r16,
    ...
}

DL-PRS-Configuration-ID-r17 ::= SEQUENCE {
    nr-dl-prs-configuration-id-r17              INTEGER (1..maxOD-DL-PRS-Configs-r17),
    ...
}

OnDemandDL-PRS-AggregationInfo-r18 ::= SEQUENCE (SIZE (2..3)) OF DL-PRS-Configuration-ID-r17

NR-On-Demand-DL-PRS-Information-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                        NR-On-Demand-DL-PRS-PerFreqLayer-r17

NR-On-Demand-DL-PRS-PerFreqLayer-r17 ::= SEQUENCE {
    dl-prs-FrequencyRangeReq-r17            ENUMERATED { fr1, fr2, ...},
    dl-prs-ResourceSetPeriodicityReq-r17    ENUMERATED { p4, p5, p8, p10, p16, p20, p32, p40,
                                                    p64, p80, p160, p320, p640, p1280, p2560,
                                                    p5120, p10240, p20480, p40960, p81920, ...,
                                                    p128-v1760, p256-v1760, p512-v1760}
                                                                                    OPTIONAL,
    dl-prs-ResourceBandwidthReq-r17         INTEGER (1..63)                         OPTIONAL,
    dl-prs-ResourceRepetitionFactorReq-r17  ENUMERATED {n2, n4, n6, n8, n16, n32, ...}
                                                                                    OPTIONAL,
    dl-prs-NumSymbolsReq-r17        ENUMERATED {n2, n4, n6, n12, ..., n1-v1800}     OPTIONAL,
    dl-prs-CombSizeN-Req-r17                ENUMERATED {n2, n4, n6, n12, ...}       OPTIONAL,
    dl-prs-QCL-InformationReqTRPlist-r17    DL-PRS-QCL-InformationReqTRPlist-r17    OPTIONAL,
    ...
}

DL-PRS-QCL-InformationReqTRPlist-r17 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                    DL-PRS-QCL-InformationReqPerTRP-r17

DL-PRS-QCL-InformationReqPerTRP-r17 ::= SEQUENCE {
    dl-PRS-ID-r17                       INTEGER (0..255),
    nr-PhysCellID-r17                   NR-PhysCellID-r16                           OPTIONAL,
    nr-CellGlobalID-r17                 NCGI-r15                                    OPTIONAL,
    nr-ARFCN-r17                        ARFCN-ValueNR-r15                           OPTIONAL,
    dl-prs-QCL-InformationReqSet-r17    SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                                    DL-PRS-QCL-InfoReq-r17,
    ...
}

DL-PRS-QCL-InfoReq-r17 ::= SEQUENCE {
    nr-DL-PRS-ResourceSetID-r17         NR-DL-PRS-ResourceSetID-r16,
    dl-prs-QCL-InformationReq-r17       CHOICE {
                    dl-prs-QCL-InfoRecPerResourceSet-r17    DL-PRS-QCL-Info-r16,
                    dl-prs-QCL-Info-requested-r17           NULL
                    },
    ...,
    [[
    dl-prs-QCL-InfoRecPerResource-r17   SEQUENCE  (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                                        DL-PRS-QCL-Info-r16         OPTIONAL
    ]]
}

NR-On-Demand-DL-PRS-Request-r17 ::= SEQUENCE {
    dl-prs-StartTime-and-Duration-r17           DL-PRS-StartTime-and-Duration-r17       OPTIONAL,
    nr-on-demand-DL-PRS-Information-r17         NR-On-Demand-DL-PRS-Information-r17     OPTIONAL,
    dl-prs-configuration-id-PrefList-r17        SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
                                                    DL-PRS-Configuration-ID-r17         OPTIONAL,
    ...,
    [[
    dl-PRS-AggregationID-PrefList-r18           SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
                                                    INTEGER (1.. maxOD-DL-PRS-Configs-r17)
                                                                                        OPTIONAL,
    nr-OnDemandDL-PRS-AggregationReqList-r18    SEQUENCE (SIZE (1.. maxOD-DL-PRS-Configs-r17)) OF
                                                    NR-OnDemandDL-PRS-AggregationReqElement-r18
                                                                                        OPTIONAL
    ]]
}

DL-PRS-StartTime-and-Duration-r17 ::= SEQUENCE {
    dl-prs-start-time-r17       INTEGER (1..1024)                       OPTIONAL,
    dl-prs-duration-r17         SEQUENCE {
                                    seconds-r17     INTEGER (0..59)     OPTIONAL,
                                    minutes-r17     INTEGER (0..59)     OPTIONAL,
                                    hours-r17       INTEGER (0..23)     OPTIONAL,
                                    ...
                                }                                       OPTIONAL,
    ...
}

NR-OnDemandDL-PRS-AggregationReqElement-r18 ::= SEQUENCE (SIZE (2..3)) OF
                                                    INTEGER (1..nrMaxFreqLayers-r16)

NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17 ::=
                                            SEQUENCE (SIZE (1..maxOD-DL-PRS-Configs-r17)) OF
                                                                    DL-PRS-Configuration-ID-r17

NR-On-Demand-DL-PRS-Support-r17 ::= SEQUENCE {
    nr-on-demand-DL-PRS-InformationSup-r17          ENUMERATED { supported }            OPTIONAL,
    nr-on-demand-DL-PRS-ConfigurationsSup-r17       ENUMERATED { supported }            OPTIONAL,
    ...
}

NR-PeriodicAssistData-r18 ::= SEQUENCE {
    nr-PeriodicPRU-DL-Info-r18      NR-PeriodicControlParam-r18     OPTIONAL,   -- Need ON
    ...
}

NR-PeriodicAssistDataReq-r18 ::= SEQUENCE {
    nr-PeriodicPRU-DL-InfoReq-r18   NR-PeriodicControlParam-r18 OPTIONAL, -- Cond pPRU
    ...
}

NR-PeriodicControlParam-r18 ::= SEQUENCE {
    deliveryAmount-r18          INTEGER (1..32),
    deliveryInterval-r18        INTEGER (4..81920),
    ...
}

NR-PositionCalculationAssistance-r16 ::= SEQUENCE {
    nr-TRP-LocationInfo-r16         NR-TRP-LocationInfo-r16             OPTIONAL,   -- Need ON
    nr-DL-PRS-BeamInfo-r16          NR-DL-PRS-BeamInfo-r16              OPTIONAL,   -- Need ON
    nr-RTD-Info-r16                 NR-RTD-Info-r16                     OPTIONAL,   -- Need ON
    ...,
    [[
    nr-TRP-BeamAntennaInfo-r17      NR-TRP-BeamAntennaInfo-r17          OPTIONAL,   -- Need ON
    nr-DL-PRS-Expected-LOS-NLOS-Assistance-r17
                                    NR-DL-PRS-ExpectedLOS-NLOS-Assistance-r17
                                                                        OPTIONAL,   -- Need ON
    nr-DL-PRS-TRP-TEG-Info-r17      NR-DL-PRS-TRP-TEG-Info-r17          OPTIONAL    -- Need ON
    ]],
    [[
    nr-IntegrityServiceParameters-r18   NR-IntegrityServiceParameters-r18   OPTIONAL,   -- Need OR
    nr-IntegrityServiceAlert-r18        NR-IntegrityServiceAlert-r18        OPTIONAL,   -- Need OR
    nr-IntegrityRiskParameters-r18      NR-IntegrityRiskParameters-r18      OPTIONAL,   -- Need OR
    nr-IntegrityParametersTRP-LocationInfo-r18                                                                                              NR-IntegrityParametersTRP-LocationInfo-r18
                                                                        OPTIONAL, -- Cond Integrity1
    nr-IntegrityParametersDL-PRS-BeamInfo-r18
                                        NR-IntegrityParametersDL-PRS-BeamInfo-r18
                                                                        OPTIONAL, -- Cond Integrity2
    nr-IntegrityParametersRTD-Info-r18                                                                                                      NR-IntegrityParametersRTD-Info-r18
                                                                        OPTIONAL, -- Cond Integrity3
    nr-IntegrityParametersTRP-BeamAntennaInfo-r18                                                                                           NR-IntegrityParametersTRP-BeamAntennaInfo-r18
                                                                        OPTIONAL, -- Cond Integrity4
    nr-PRU-DL-Info-r18                  NR-PRU-DL-Info-r18              OPTIONAL    -- Need ON
    ]]
}

NR-IntegrityParametersTRP-LocationInfo-r18 ::= SEQUENCE {
    trp-ErrorCorrelationTime-r18                    INTEGER(0..255)     OPTIONAL, -- Need ON
    dl-PRS-ResourceSetARP-ErrorCorrelationTime-r18  INTEGER(0..255)     OPTIONAL, -- Need ON
    dl-PRS-ResourceARP-ErrorCorrelationTime-r18     INTEGER(0..255)     OPTIONAL, -- Need ON
    ...
}

NR-IntegrityParametersDL-PRS-BeamInfo-r18 ::= SEQUENCE {
    dl-PRS-BeamInfoErrorCorrelationTime-r18     INTEGER (0..255),
    ...
}

NR-IntegrityParametersRTD-Info-r18 ::= SEQUENCE {
    rtd-ErrorCorrelationTime-r18        INTEGER (0..255),
    ...
}

NR-IntegrityParametersTRP-BeamAntennaInfo-r18 ::= SEQUENCE {
    trp-BeamAntennaInfoErrorCorrelationTime-r18     INTEGER (0..255),
    ...

}

NR-PRU-DL-Info-r18 ::= SEQUENCE {
            nr-PRU-LocationInfo-r18         LocationCoordinates                     OPTIONAL, -- Need ON
            nr-PRU-DL-TDOA-MeasInfo-r18     NR-DL-TDOA-SignalMeasurementInformation-r16
                                                                            OPTIONAL, -- Need ON
        nr-PRU-DL-AoD-MeasInfo-r18      NR-DL-AoD-SignalMeasurementInformation-r16
                                                                            OPTIONAL, -- Need ON
    nr-PRU-RSCP-MeasInfo-r18        NR-PRU-RSCP-MeasurementInformation-r18
                                                                                    OPTIONAL, -- Need ON
            ...
}

NR-PRU-RSCP-MeasurementInformation-r18 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF
                                    NR-PRU-RSCP-MeasElement-r18

NR-PRU-RSCP-MeasElement-r18 ::= SEQUENCE {
    dl-PRS-ID-r18                   INTEGER (0..255),
    nr-PhysCellID-r18               NR-PhysCellID-r16                       OPTIONAL, -- Need ON
    nr-CellGlobalID-r18             NCGI-r15                                OPTIONAL, -- Need ON
    nr-ARFCN-r18                    ARFCN-ValueNR-r15                       OPTIONAL, -- Need ON
    nr-DL-PRS-ResourceID-r18        NR-DL-PRS-ResourceID-r16                OPTIONAL, -- Need ON
    nr-DL-PRS-ResourceSetID-r18     NR-DL-PRS-ResourceSetID-r16             OPTIONAL, -- Need ON
    nr-TimeStamp-r18                NR-TimeStamp-r16,
    nr-los-nlos-Indicator-r18       CHOICE {
                perTRP                  LOS-NLOS-Indicator-r17,
                perResource             LOS-NLOS-Indicator-r17
    }                                                                       OPTIONAL, -- Need ON
    nr-RSCP-r18                     INTEGER (0..3599)                       OPTIONAL, -- Need ON
    nr-DL-PRS-RSRP-Result-r18           INTEGER (0..126)                    OPTIONAL, -- Need ON
    nr-DL-PRS-FirstPathRSRP-Result-r18  INTEGER (0..126)                    OPTIONAL, -- Need ON
    nr-PhaseQuality-r18             NR-PhaseQuality-r18                     OPTIONAL, -- Need ON
        nr-PRU-RSCP-AddSampleMeasurements-r18   SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
                                        NR-RSCP-AdditionalMeasurements-r18      OPTIONAL, -- Need ON
    nr-PRU-RSRP-AddSampleMeasurements-r18   SEQUENCE (SIZE (1..nrNumOfSamples-1-r18)) OF
                                    INTEGER (0..61)                         OPTIONAL, -- Need ON
    nr-PRU-FirstPathRSRP-ResultDiff-AddSampleMeasurements-r18
                                        SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF INTEGER (0..61)                                                                               OPTIONAL, -- Need ON
    nr-PRU-RSCP-AdditionalMeasurements-r18
                                    NR-PRU-RSCP-AdditionalMeasurements-r18  OPTIONAL, -- Need ON
    ...
}

NR-PRU-RSCP-AdditionalMeasurements-r18 ::= SEQUENCE (SIZE (1..3)) OF
                                    NR-PRU-RSCP-AdditionalMeasurementElement-r18

NR-PRU-RSCP-AdditionalMeasurementElement-r18 ::= SEQUENCE {
    nr-DL-PRS-ResourceID-r18            NR-DL-PRS-ResourceID-r16            OPTIONAL, -- Need ON
    nr-DL-PRS-ResourceSetID-r18         NR-DL-PRS-ResourceSetID-r16         OPTIONAL, -- Need ON
    nr-DL-PRS-RSRP-ResultDiff-r18       INTEGER (0..61)                     OPTIONAL, -- Need ON
    nr-DL-PRS-FirstPathRSRP-ResultDiff-r18  INTEGER (0..61)                 OPTIONAL, -- Need ON
    nr-PRU-RSCP-AdditionalMeasurementsList-r18  SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF
                                    NR-RSCP-AdditionalMeasurements-r18      OPTIONAL, -- Need ON
    nr-PRU-RSRPDiff-AdditionalMeasurementsList-r18  SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF                                         INTEGER (0..61)                         OPTIONAL, -- Need ON
    nr-PRU-FirstPathRSRP-ResultDiff-AdditionalMeasurementsList-r18
        SEQUENCE (SIZE (1..nrNumOfSamples-r18 )) OF INTEGER (0..61)         OPTIONAL, -- Need ON
    ...
}

NR-RTD-Info-r16 ::= SEQUENCE {
    referenceTRP-RTD-Info-r16       ReferenceTRP-RTD-Info-r16,
    rtd-InfoList-r16                RTD-InfoList-r16,
    ...
}

ReferenceTRP-RTD-Info-r16 ::= SEQUENCE {
    dl-PRS-ID-Ref-r16               INTEGER (0..255),
    nr-PhysCellID-Ref-r16           NR-PhysCellID-r16       OPTIONAL,   -- Need ON
    nr-CellGlobalID-Ref-r16         NCGI-r15                OPTIONAL,   -- Need ON
    nr-ARFCN-Ref-r16                ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
    refTime-r16                     CHOICE {
            systemFrameNumber-r16       BIT STRING (SIZE (10)),
            utc-r16                     UTCTime,
            ...
    },
    rtd-RefQuality-r16              NR-TimingQuality-r16    OPTIONAL,   -- Need ON
    ...
}

RTD-InfoList-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF RTD-InfoListPerFreqLayer-r16

RTD-InfoListPerFreqLayer-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPsPerFreq-r16)) OF RTD-InfoElement-r16

RTD-InfoElement-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-PhysCellID-r16               NR-PhysCellID-r16       OPTIONAL,   -- Need ON
    nr-CellGlobalID-r16             NCGI-r15                OPTIONAL,   -- Need ON
    nr-ARFCN-r16                    ARFCN-ValueNR-r15       OPTIONAL,   -- Need ON
    subframeOffset-r16              INTEGER (0..1966079),
    rtd-Quality-r16                 NR-TimingQuality-r16,
    ...,
    [[
    nr-IntegrityRTD-InfoBounds-r18  NR-IntegrityRTD-InfoBounds-r18      OPTIONAL -- Need OR
    ]]
}

NR-IntegrityRTD-InfoBounds-r18 ::= SEQUENCE {
    resolution-r18                  ENUMERATED {mdot1, m1, m10, m30, ...},
    meanRTD-r18                     INTEGER (0..255),
    stdDevRTD-r18                   INTEGER (0..31),
    ...
}

NR-SelectedDL-PRS-IndexList-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                        NR-SelectedDL-PRS-PerFreq-r16

NR-SelectedDL-PRS-PerFreq-r16 ::= SEQUENCE {
            nr-SelectedDL-PRS-FrequencyLayerIndex-r16   INTEGER (0..nrMaxFreqLayers-1-r16),
    nr-SelectedDL-PRS-IndexListPerFreq-r16      SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                        NR-SelectedDL-PRS-IndexPerTRP-r16
                                                                            OPTIONAL,   --Need OP
    ...
}

NR-SelectedDL-PRS-IndexPerTRP-r16 ::= SEQUENCE {
    nr-SelectedTRP-Index-r16                    INTEGER (0..nrMaxTRPsPerFreq-1-r16),
    dl-SelectedPRS-ResourceSetIndexList-r16     SEQUENCE (SIZE (1..nrMaxSetsPerTrpPerFreqLayer-r16))
                                                    OF  DL-SelectedPRS-ResourceSetIndex-r16
                                                                            OPTIONAL,   --Need OP
    ...
}

DL-SelectedPRS-ResourceSetIndex-r16 ::= SEQUENCE {
            nr-DL-SelectedPRS-ResourceSetIndex-r16      INTEGER (0..nrMaxSetsPerTrpPerFreqLayer-1-r16),
    dl-SelectedPRS-ResourceIndexList-r16        SEQUENCE (SIZE (1..nrMaxResourcesPerSet-r16)) OF
                                                        DL-SelectedPRS-ResourceIndex-r16
                                                                            OPTIONAL    --Need OP
}

DL-SelectedPRS-ResourceIndex-r16 ::= SEQUENCE {
    nr-DL-SelectedPRS-ResourceIdIndex-r16       INTEGER (0..nrMaxNumDL-PRS-ResourcesPerSet-1-r16),
    ...
}

NR-SSB-Config-r16 ::= SEQUENCE {
    nr-PhysCellID-r16                   NR-PhysCellID-r16,
    nr-ARFCN-r16                        ARFCN-ValueNR-r15,
    ss-PBCH-BlockPower-r16              INTEGER (-60..50),
    halfFrameIndex-r16                  INTEGER (0..1),
    ssb-periodicity-r16                 ENUMERATED { ms5, ms10, ms20, ms40, ms80, ms160, ...},
    ssb-PositionsInBurst-r16            CHOICE {
        shortBitmap-r16                     BIT STRING (SIZE (4)),
        mediumBitmap-r16                    BIT STRING (SIZE (8)),
        longBitmap-r16                      BIT STRING (SIZE (64))
    }                                                                           OPTIONAL, --Need OR
    ssb-SubcarrierSpacing-r16           ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240, ...},
    sfn-SSB-Offset-r16                  INTEGER (0..15),
    ...
}

NR-TimeStamp-r16 ::= SEQUENCE {
    dl-PRS-ID-r16               INTEGER (0..255),
    nr-PhysCellID-r16           NR-PhysCellID-r16           OPTIONAL,   -- Need ON
    nr-CellGlobalID-r16         NCGI-r15                    OPTIONAL,   -- Need ON
    nr-ARFCN-r16                ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
    nr-SFN-r16                  INTEGER (0..1023),
    nr-Slot-r16                 CHOICE {
            scs15-r16               INTEGER (0..9),
            scs30-r16               INTEGER (0..19),
            scs60-r16               INTEGER (0..39),
            scs120-r16              INTEGER (0..79)
    },
    ...,
    [[
    nr-Symbol-r18               INTEGER (0..13)         OPTIONAL    -- Need ON
    ]]
}

NR-TimingQuality-r16 ::= SEQUENCE {
    timingQualityValue-r16          INTEGER (0..31),
    timingQualityResolution-r16     ENUMERATED {mdot1, m1, m10, m30, ...},
    ...
}

NR-TRP-BeamAntennaInfo-r17 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                                        NR-TRP-BeamAntennaInfoPerFreqLayer-r17

NR-TRP-BeamAntennaInfoPerFreqLayer-r17 ::= SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                                        NR-TRP-BeamAntennaInfoPerTRP-r17

NR-TRP-BeamAntennaInfoPerTRP-r17 ::= SEQUENCE {
    dl-PRS-ID-r17                       INTEGER (0..255),
    nr-PhysCellID-r17                   NR-PhysCellID-r16                   OPTIONAL,   -- Need ON
    nr-CellGlobalID-r17                 NCGI-r15                            OPTIONAL,   -- Need ON
    nr-ARFCN-r17                        ARFCN-ValueNR-r15                   OPTIONAL,   -- Need ON
    associated-DL-PRS-ID-r17            INTEGER (0..255)                    OPTIONAL,   -- Need OP
    lcs-GCS-TranslationParameter-r17    LCS-GCS-TranslationParameter-r16    OPTIONAL,   -- Need OP
    nr-TRP-BeamAntennaAngles-r17        NR-TRP-BeamAntennaAngles-r17        OPTIONAL,   -- Need OP
    ...
}

NR-TRP-BeamAntennaAngles-r17 ::= SEQUENCE (SIZE(1..3600)) OF
                                        NR-TRP-BeamAntennaInfoAzimuthElevation-r17

NR-TRP-BeamAntennaInfoAzimuthElevation-r17 ::= SEQUENCE {
    azimuth-r17                 INTEGER (0..359)                        OPTIONAL,   -- Cond Az
    azimuth-fine-r17            INTEGER (0..9)                          OPTIONAL,   -- Cond AzOpt
    elevationList-r17           SEQUENCE (SIZE(1..1801)) OF ElevationElement-R17,
    ...
}

ElevationElement-R17 ::= SEQUENCE {
    elevation-r17               INTEGER (0..180)                        OPTIONAL,   -- Cond El
    elevation-fine-r17          INTEGER (0..9)                          OPTIONAL,   -- Cond ElOpt
    beamPowerList-r17           SEQUENCE (SIZE (2..maxNumResourcesPerAngle-r17)) OF
                                        BeamPowerElement-r17,
    ...
}

BeamPowerElement-r17 ::= SEQUENCE {
    nr-dl-prs-ResourceSetID-r17     NR-DL-PRS-ResourceSetID-r16         OPTIONAL,   -- Need OP
    nr-dl-prs-ResourceID-r17        NR-DL-PRS-ResourceID-r16,
    nr-dl-prs-RelativePower-r17     INTEGER (0..30),
    nr-dl-prs-RelativePowerFine-r17 INTEGER (0..9)                      OPTIONAL,   -- Need ON
    ...,
    [[
    nr-IntegrityBeamPowerBounds-r18     NR-IntegrityBeamPowerBounds-r18     OPTIONAL    -- Need OP
    ]]
}

NR-IntegrityBeamPowerBounds-r18 ::= SEQUENCE {
    meanBeamPower-r18                   INTEGER (0..127),
    stdDevBeamPower-r18                 INTEGER (0..127),
    ...
}

NR-TRP-LocationInfo-r16 ::= SEQUENCE (SIZE (1..nrMaxFreqLayers-r16)) OF
                                    NR-TRP-LocationInfoPerFreqLayer-r16

NR-TRP-LocationInfoPerFreqLayer-r16 ::= SEQUENCE {
    referencePoint-r16          ReferencePoint-r16              OPTIONAL,   -- Cond NotSameAsPrev
    trp-LocationInfoList-r16    SEQUENCE (SIZE (1..nrMaxTRPsPerFreq-r16)) OF
                                        TRP-LocationInfoElement-r16,
    ...
}

TRP-LocationInfoElement-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-PhysCellID-r16               NR-PhysCellID-r16           OPTIONAL,   -- Need ON
    nr-CellGlobalID-r16             NCGI-r15                    OPTIONAL,   -- Need ON
    nr-ARFCN-r16                    ARFCN-ValueNR-r15           OPTIONAL,   -- Need ON
    associated-DL-PRS-ID-r16        INTEGER (0..255)            OPTIONAL,   -- Need OP
    trp-Location-r16                RelativeLocation-r16                    OPTIONAL,   -- Need OP
    trp-DL-PRS-ResourceSets-r16     SEQUENCE (SIZE(1..nrMaxSetsPerTrpPerFreqLayer-r16)) OF
                                        DL-PRS-ResourceSets-TRP-Element-r16 OPTIONAL,   -- Need OP
    ...,
    [[
    trp-LocationCartesian-r18       RelativeCartesianLocation-r18           OPTIONAL,   -- Need OP
    nr-IntegrityTRP-LocationBounds-r18
                                    NR-IntegrityLocationBounds-r18          OPTIONAL    -- Need OR
    ]]
}

DL-PRS-ResourceSets-TRP-Element-r16 ::= SEQUENCE {
    dl-PRS-ResourceSetARP-r16           RelativeLocation-r16                OPTIONAL,   -- Need OP
    dl-PRS-Resource-ARP-List-r16        SEQUENCE (SIZE(1..nrMaxResourcesPerSet-r16)) OF
                                            DL-PRS-Resource-ARP-Element-r16 OPTIONAL,   -- Need OP
    ...,
    [[
    dl-PRS-ResourceSetARP-Cartesian-r18 RelativeCartesianLocation-r18       OPTIONAL,   -- Need OP
    nr-IntegrityDL-PRS-ResourceSetARP-LocationBounds-r18
                                        NR-IntegrityLocationBounds-r18      OPTIONAL    -- Need OR
    ]]
}

DL-PRS-Resource-ARP-Element-r16 ::= SEQUENCE {
    dl-PRS-Resource-ARP-location-r16    RelativeLocation-r16                OPTIONAL,   -- Need OP
    ...,
    [[
    dl-PRS-Resource-ARP-locationCartesian-r18
                                        RelativeCartesianLocation-r18       OPTIONAL,   -- Need OP
    nr-IntegrityDL-PRS-ResourceARP-LocationBounds-r18
                                        NR-IntegrityLocationBounds-r18      OPTIONAL    -- Need OR
    ]]
}

NR-IntegrityLocationBounds-r18 ::= SEQUENCE {
    units-r18                           ENUMERATED {mm, cm, m, ...},
    meanLocationErrorBound-r18          SEQUENCE {
                                            horizontal-r18  INTEGER (0..255),
                                            vertical-r18    INTEGER (0..255)
                                        },
    stdDevLocationErrorBound-r18        SEQUENCE {
                                            horizontal-r18  INTEGER (0..255),
                                            vertical-r18    INTEGER (0..255)
                                        },
    ...
}

NR-UE-TEG-Capability-r17 ::= SEQUENCE {
    nr-UE-TEG-ID-CapabilityBandList-r17     SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                NR-UE-TEG-ID-CapabilityPerBand-r17  OPTIONAL,
    ...
}

NR-UE-TEG-ID-CapabilityPerBand-r17 ::= SEQUENCE {
    freqBandIndicatorNR-r17             FreqBandIndicatorNR-r16,
    nr-UE-RxTEG-ID-MaxSupport-r17       ENUMERATED {n1, n2, n3, n4, n6, n8}         OPTIONAL,
    nr-UE-TxTEG-ID-MaxSupport-r17       ENUMERATED {n1, n2, n3, n4, n6, n8}         OPTIONAL,
    nr-UE-RxTxTEG-ID-MaxSupport-r17     ENUMERATED {n1, n2, n4, n6, n8, n12, n16,
                                                    n24, n32, n36, n48, n64}        OPTIONAL,
    measureSameDL-PRS-ResourceWithDifferentRxTEGs-r17
                                        ENUMERATED {n2, n3, n4, n6, n8}             OPTIONAL,
    measureSameDL-PRS-ResourceWithDifferentRxTEGsSimul-r17
                                        ENUMERATED {n1, n2, n3, n4, n6, n8}         OPTIONAL,
    ...
}

NR-UL-SRS-Capability-r16 ::= SEQUENCE {
    srs-CapabilityBandList-r16                  SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                    SRS-CapabilityPerBand-r16,
    srs-PosResourceConfigCA-BandList-r16        SEQUENCE (SIZE (1..nrMaxConfiguredBands-r16)) OF
                                                    SRS-PosResourcesPerBand-r16         OPTIONAL,
    maxNumberSRS-PosPathLossEstimateAllServingCells-r16
                                                ENUMERATED {n1, n4, n8, n16}            OPTIONAL,
    maxNumberSRS-PosSpatialRelationsAllServingCells-r16
                                                ENUMERATED {n0, n1, n2, n4, n8, n16}    OPTIONAL,
    ...
}

SRS-CapabilityPerBand-r16 ::= SEQUENCE {
    freqBandIndicatorNR-r16         FreqBandIndicatorNR-r16,
    olpc-SRS-Pos-r16                OLPC-SRS-Pos-r16                                    OPTIONAL,
    spatialRelationsSRS-Pos-r16     SpatialRelationsSRS-Pos-r16                         OPTIONAL,
    ...,
    [[
    posSRS-RRC-Inactive-InInitialUL-BWP-r17     PosSRS-RRC-Inactive-InInitialUL-BWP-r17 OPTIONAL,
    posSRS-RRC-Inactive-OutsideInitialUL-BWP-r17
                                                PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17
                                                                                        OPTIONAL,
    olpc-SRS-PosRRC-Inactive-r17                OLPC-SRS-Pos-r16                        OPTIONAL,
    spatialRelationsSRS-PosRRC-Inactive-r17     SpatialRelationsSRS-Pos-r16             OPTIONAL
    ]],
    [[
    posSRS-SP-RRC-Inactive-InInitialUL-BWP-r17  PosSRS-SP-RRC-Inactive-InInitialUL-BWP-r17
                                                                                        OPTIONAL
    ]],
    [[
    posSRS-Preconfigured-RRC-InactiveInitialUL-BWP-r18          ENUMERATED {supported}  OPTIONAL,
    posSRS-Preconfigured-RRC-InactiveOutsideInitialUL-BWP-r18   ENUMERATED {supported}  OPTIONAL,
                    posSRS-ValidityAreaRRC-InactiveInitialUL-BWP-r18            ENUMERATED {supported}  OPTIONAL,
                    posSRS-ValidityAreaRRC-InactiveOutsideInitialUL-BWP-r18     ENUMERATED {supported}  OPTIONAL,
    posSRS-TxFH-RRC-Connected-r18   PosSRS-TxFrequencyHoppingRRC-Connected-r18          OPTIONAL,
    posSRS-TxFH-RRC-Inactive-r18    PosSRS-TxFrequencyHoppingRRC-Inactive-r18           OPTIONAL,
    posSRS-TxFH-WithTimeWindow-r18                              ENUMERATED {supported}  OPTIONAL,
    posSRS-BWA-RRC-Inactive-r18                     PosSRS-BWA-RRC-Inactive-r18         OPTIONAL
    ]]
}

OLPC-SRS-Pos-r16 ::= SEQUENCE {
    olpc-SRS-PosBasedOnPRS-Serving-r16      ENUMERATED {supported}                      OPTIONAL,
    olpc-SRS-PosBasedOnSSB-Neigh-r16        ENUMERATED {supported}                      OPTIONAL,
    olpc-SRS-PosBasedOnPRS-Neigh-r16        ENUMERATED {supported}                      OPTIONAL,
    maxNumberPathLossEstimatePerServing-r16 ENUMERATED {n1, n4, n8, n16}                OPTIONAL,
    ...
}

SpatialRelationsSRS-Pos-r16 ::= SEQUENCE {
    spatialRelation-SRS-PosBasedOnSSB-Serving-r16       ENUMERATED {supported}          OPTIONAL,
    spatialRelation-SRS-PosBasedOnCSI-RS-Serving-r16    ENUMERATED {supported}          OPTIONAL,
    spatialRelation-SRS-PosBasedOnPRS-Serving-r16       ENUMERATED {supported}          OPTIONAL,
    spatialRelation-SRS-PosBasedOnSRS-r16               ENUMERATED {supported}          OPTIONAL,
    spatialRelation-SRS-PosBasedOnSSB-Neigh-r16         ENUMERATED {supported}          OPTIONAL,
    spatialRelation-SRS-PosBasedOnPRS-Neigh-r16         ENUMERATED {supported}          OPTIONAL,
    ...
}

SRS-PosResourcesPerBand-r16 ::= SEQUENCE {
    freqBandIndicatorNR-r16                         FreqBandIndicatorNR-r16,
    maxNumberSRS-PosResourceSetsPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n12, n16},
    maxNumberSRS-PosResourcesPerBWP-r16             ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maxNumberPeriodicSRS-PosResourcesPerBWP-r16     ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maxNumberAP-SRS-PosResourcesPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    maxNumberSP-SRS-PosResourcesPerBWP-r16          ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    ...,
    [[
    posSRS-BWA-RRC-Connected-r18                    PosSRS-BWA-RRC-Connected-r18        OPTIONAL,
    posSRS-BWA-IndependentCA-RRC-Connected-r18      PosSRS-BWA-IndependentCA-RRC-Connected-r18
                                                                                        OPTIONAL
    ]]
}

PosSRS-RRC-Inactive-InInitialUL-BWP-r17 ::= SEQUENCE {
    maxNumOfSRSposResourceSets-r17          ENUMERATED {n1, n2, n4, n8, n12, n16 }      OPTIONAL,
    maxNumOfPeriodicAndSemiPersistentSRSposResources-r17
                                            ENUMERATED {n1, n2, n4, n8, n16, n32, n64 }
                                                                                        OPTIONAL,
    maxNumOfPeriodicAndSemiPersistentSRSposResourcesPerSlot-r17
                                            ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
                                                                                        OPTIONAL,
    maxNumOfPeriodicSRSposResources-r17
                                            ENUMERATED {n1, n2, n4, n8, n16, n32, n64 }
                                                                                        OPTIONAL,
    maxNumOfPeriodicSRSposResourcesPerSlot-r17
                                            ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
                                                                                        OPTIONAL,
    dummy1                                  ENUMERATED {n1, n2, n4, n8, n16, n32, n64}  OPTIONAL,
    dummy2                                  ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10, n12, n14 }
                                                                                        OPTIONAL,
    ...
}

PosSRS-RRC-Inactive-OutsideInitialUL-BWP-r17 ::= SEQUENCE {
    maxSRSposBandwidthForEachSCS-withinCC-FR1-r17
                                            ENUMERATED { mhz5, mhz10, mhz15, mhz20, mhz25, mhz30,
                                                        mhz35, mhz40, mhz45, mhz50, mhz60, mhz70,
                                                        mhz80, mhz90, mhz100 }          OPTIONAL,
    maxSRSposBandwidthForEachSCS-withinCC-FR2-r17
                                            ENUMERATED {mhz50, mhz100, mhz200, mhz400}  OPTIONAL,
    maxNumOfSRSposResourceSets-r17          ENUMERATED { n1, n2, n4, n8, n12, n16 }     OPTIONAL,
    maxNumOfPeriodicSRSposResources-r17     ENUMERATED { n1, n2, n4, n8, n16, n32, n64 }
                                                                                        OPTIONAL,
    maxNumOfPeriodicSRSposResourcesPerSlot-r17
                                            ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10, n12, n14 }
                                                                                        OPTIONAL,
    differentNumerologyBetweenSRSposAndInitialBWP-r17
                                            ENUMERATED { supported }                    OPTIONAL,
    srsPosWithoutRestrictionOnBWP-r17
                                            ENUMERATED { supported }                    OPTIONAL,
    maxNumOfPeriodicAndSemiPersistentSRSposResources-r17
                                            ENUMERATED {n1, n2, n4, n8, n16, n32, n64}  OPTIONAL,
    maxNumOfPeriodicAndSemiPersistentSRSposResourcesPerSlot-r17
                                            ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10,
                                                        n12, n14 }                      OPTIONAL,
    differentCenterFreqBetweenSRSposAndInitialBWP-r17
                                            ENUMERATED { supported }                    OPTIONAL,
    maxNumOfSemiPersistentSRSposResources-r17
                                            ENUMERATED { n1, n2, n4, n8, n16, n32, n64 }
                                                                                        OPTIONAL,
    maxNumOfSemiPersistentSRSposResourcesPerSlot-r17
                                            ENUMERATED { n1, n2, n3, n4, n5, n6, n8, n10,
                                                        n12, n14 }                      OPTIONAL,
    switchingTimeSRS-TX-OtherTX-r17         ENUMERATED { us100, us140, us200, us300, us500 }
                                                                                        OPTIONAL,
    ...
}

PosSRS-SP-RRC-Inactive-InInitialUL-BWP-r17 ::= SEQUENCE {
    maxNumOfSemiPersistentSRSposResources-r17
                                        ENUMERATED {n1, n2, n4, n8, n16, n32, n64}      OPTIONAL,
    maxNumOfSemiPersistentSRSposResourcesPerSlot-r17
                                        ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10, n12, n14}
                                                                                        OPTIONAL,
    ...
}

PosSRS-TxFrequencyHoppingRRC-Connected-r18 ::= SEQUENCE {
    maximumSRS-BandwidthAcrossAllHopsFR1-r18    ENUMERATED {mhz40, mhz50, mhz80, mhz100}
                                                                                        OPTIONAL,
    maximumSRS-BandwidthAcrossAllHopsFR2-r18    ENUMERATED {mhz100, mhz200, mhz400}     OPTIONAL,
    maximumTxFH-Hops-r18                        ENUMERATED {n2, n3, n4, n5, n6}         OPTIONAL,
    rf-TxRetuneTimeFR1-r18                      ENUMERATED {n70, n140, n210}            OPTIONAL,
    rf-TxRetuneTimeFR2-r18                      ENUMERATED {n35, n70, n140}             OPTIONAL,
    switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140,n200,n300,n500}  OPTIONAL,
    numOfOverlappingPRB-r18                     ENUMERATED {n0, n1, n2, n4}             OPTIONAL,
    maximumSRS-ResourcePeriodic-r18             ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    maximumSRS-ResourceAperiodic-r18            ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    maximumSRS-ResourceSemipersistent-r18       ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    ...
}

PosSRS-TxFrequencyHoppingRRC-Inactive-r18 ::=SEQUENCE {
    maximumSRS-BandwidthAcrossAllHopsFR1-r18    ENUMERATED {mhz40, mhz50, mhz80, mhz100}
                                                                                        OPTIONAL,
    maximumSRS-BandwidthAcrossAllHopsFR2-r18    ENUMERATED {mhz100, mhz200, mhz400}     OPTIONAL,
    maximumTxFH-Hops-r18                        ENUMERATED {n2, n3, n4, n5, n6}         OPTIONAL,
    rf-TxRetuneTimeFR1-r18                      ENUMERATED {n70, n140, n210}            OPTIONAL,
    rf-TxRetuneTimeFR2-r18                      ENUMERATED {n35, n70, n140}             OPTIONAL,
    switchTimeBetweenActiveBWP-FrequencyHop-r18 ENUMERATED {n100, n140,n200,n300,n500}  OPTIONAL,
    numOfOverlappingPRB-r18                     ENUMERATED {n0, n1, n2, n4}             OPTIONAL,
    maximumSRS-ResourcePeriodic-r18             ENUMERATED {n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    maximumSRS-ResourceSemipersistent-r18       ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64}
                                                                                        OPTIONAL,
    ...
}

PosSRS-BWA-RRC-Connected-r18 ::=SEQUENCE {
    numOfCarriersIntraBandContiguous-r18        ENUMERATED {two, three, twoandthree},
    maximumAggregatedBW-TwoCarriersFR1-r18      ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
                                                            mhz160, mhz180, mhz190, mhz200}
                                                                                        OPTIONAL,
    maximumAggregatedBW-TwoCarriersFR2-r18      ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
                                                            mhz800}                     OPTIONAL,
    maximumAggregatedBW-ThreeCarriersFR1-r18    ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
                                                            mhz300}                     OPTIONAL,
    maximumAggregatedBW-ThreeCarriersFR2-r18    ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
                                                            mhz600, mhz800, mhz1000, mhz1200}
                                                                                        OPTIONAL,
    maximumAggregatedResourceSet-r18            ENUMERATED {n1, n2, n4, n8, n12, n16},
    maximumAggregatedResourcePeriodic-r18       ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourceAperiodic-r18      ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourceSemi-r18           ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourcePeriodicPerSlot-r18
                                                ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    maximumAggregatedResourceAperiodicPerSlot-r18
                                                ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    maximumAggregatedResourceSemiPerSlot-r18    ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    ...
    }

PosSRS-BWA-IndependentCA-RRC-Connected-r18 ::=SEQUENCE {
    numOfCarriersIntraBandContiguous-r18        ENUMERATED {two, three, twoandthree},
    maximumAggregatedBW-TwoCarriersFR1-r18      ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
                                                            mhz160, mhz180, mhz190, mhz200}
                                                                                        OPTIONAL,
    maximumAggregatedBW-TwoCarriersFR2-r18      ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
                                                            mhz800}                     OPTIONAL,
    maximumAggregatedBW-ThreeCarriersFR1-r18    ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
                                                            mhz300}                     OPTIONAL,
    maximumAggregatedBW-ThreeCarriersFR2-r18    ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
                                                            mhz600, mhz800, mhz1000, mhz1200}
                                                                                        OPTIONAL,
    maximumAggregatedResourceSet-r18            ENUMERATED {n1, n2, n4, n8, n12, n16},
    maximumAggregatedResourcePeriodic-r18       ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourceAperiodic-r18      ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourceSemi-r18           ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourcePeriodicPerSlot-r18
                                                ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    maximumAggregatedResourceAperiodicPerSlot-r18
                                                ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    maximumAggregatedResourceSemiPerSlot-r18    ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    guardPeriod-r18                             ENUMERATED {n0, n30, n100, n140, n200},
    powerClassForTwoAggregatedCarriers-r18      ENUMERATED {pc2, pc3}                   OPTIONAL,
    powerClassForThreeAggregatedCarriers-r18    ENUMERATED {pc2, pc3}                   OPTIONAL,
    ...
}

PosSRS-BWA-RRC-Inactive-r18 ::=SEQUENCE {
    numOfCarriersIntraBandContiguous-r18        ENUMERATED {two, three, twoandthree},
    maximumAggregatedBW-TwoCarriersFR1-r18      ENUMERATED {mhz20, mhz40, mhz50, mhz80, mhz100,
                                                            mhz160, mhz180, mhz190, mhz200}
                                                                                        OPTIONAL,
    maximumAggregatedBW-TwoCarriersFR2-r18      ENUMERATED {mhz50, mhz100, mhz200, mhz400, mhz600,
                                                            mhz800}                     OPTIONAL,
    maximumAggregatedBW-ThreeCarriersFR1-r18    ENUMERATED {mhz80, mhz100, mhz160, mhz200, mhz240,
                                                            mhz300}                     OPTIONAL,
    maximumAggregatedBW-ThreeCarriersFR2-r18    ENUMERATED {mhz50, mhz100, mhz200, mhz300, mhz400,
                                                            mhz600, mhz800, mhz1000, mhz1200}
                                                                                        OPTIONAL,
    maximumAggregatedResourceSet-r18            ENUMERATED {n1, n2, n4, n8, n12, n16},
    maximumAggregatedResourcePeriodic-r18       ENUMERATED {n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourceSemi-r18           ENUMERATED {n0, n1, n2, n4, n8, n16, n32, n64},
    maximumAggregatedResourcePeriodicPerSlot-r18
                                                ENUMERATED {n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    maximumAggregatedResourceSemiPerSlot-r18    ENUMERATED {n0, n1, n2, n3, n4, n5, n6, n8, n10,
                                                            n12, n14},
    guardPeriod-r18                             ENUMERATED {n0, n30, n100, n140, n200},
    powerClassForTwoAggregatedCarriers-r18      ENUMERATED {pc2, pc3}                   OPTIONAL,
    powerClassForThreeAggregatedCarriers-r18    ENUMERATED {pc2, pc3}                   OPTIONAL,
    ...
}

NR-PhaseQuality-r18 ::= SEQUENCE {
    phaseQualityIndex-r18           INTEGER (0..179),
    phaseQualityResolution-r18      ENUMERATED {mdot1, m1,...},
    ...
}

ReferencePoint-r16 ::= SEQUENCE {
    referencePointGeographicLocation-r16        CHOICE {
        location3D-r16          EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
        ha-location3D-r16       HighAccuracyEllipsoidPointWithAltitudeAndUncertaintyEllipsoid-r15,
        ...,
        localOrigin-v1800       LocalOrigin-r18
    },
    ...
}

RelativeCartesianLocation-r18 ::= SEQUENCE {
    cartesianCoordinatesUnits-r18       ENUMERATED { mm, cm, dm, m, ...},
    x-value-r18                         X-Value-r18,
    y-value-r18                         Y-Value-r18,
    z-value-r18                         Z-Value-r18,
    locationUnc-r18                     LocationUncertainty-r16         OPTIONAL,       -- Need OP
    ...
}

X-Value-r18 ::= SEQUENCE {
    delta-x-r18                         INTEGER (-1024..1023),
    coarse-delta-x-r18                  INTEGER (0..4095)               OPTIONAL,       -- Need OP
    ...
}

Y-Value-r18 ::= SEQUENCE {
    delta-y-r18                         INTEGER (-1024..1023),
    coarse-delta-y-r18                  INTEGER (0..4095)               OPTIONAL,       -- Need OP
    ...
}

Z-Value-r18 ::= SEQUENCE {
    delta-z-r18                         INTEGER (-1024..1023),
    coarse-delta-z-r18                  INTEGER (0..4095)               OPTIONAL,       -- Need OP
    ...
}

RelativeLocation-r16 ::= SEQUENCE {
    milli-arc-second-units-r16  ENUMERATED { mas0-03, mas0-3, mas3, mas30, ...},
    height-units-r16            ENUMERATED {mm, cm, m, ...},
    delta-latitude-r16          Delta-Latitude-r16,
    delta-longitude-r16         Delta-Longitude-r16,
    delta-height-r16            Delta-Height-r16,
    locationUNC-r16             LocationUncertainty-r16             OPTIONAL,       -- Need OP
    ...
}

Delta-Latitude-r16 ::= SEQUENCE {
    delta-Latitude-r16                      INTEGER (-1024..1023),
    coarse-delta-Latitude-r16               INTEGER (0..4095)       OPTIONAL,       -- Need OP
    ...
}

Delta-Longitude-r16 ::= SEQUENCE {
    delta-Longitude-r16                     INTEGER (-1024..1023),
    coarse-delta-Longitude-r16              INTEGER (0..4095)       OPTIONAL,       -- Need OP
    ...
}

Delta-Height-r16 ::= SEQUENCE {
    delta-Height-r16                        INTEGER (-1024..1023),
    coarse-delta-Height-r16                 INTEGER (0..4095)       OPTIONAL,       -- Need OP
    ...
}

LocationUncertainty-r16 ::= SEQUENCE {
    horizontalUncertainty-r16               INTEGER (0..255),
    horizontalConfidence-r16                INTEGER (0..100),
    verticalUncertainty-r16                 INTEGER (0..255),
    verticalConfidence-r16                  INTEGER (0..100)
}

TEG-TimingErrorMargin-r17 ::= ENUMERATED { tc0, tc2, tc4, tc6, tc8, tc12, tc16, tc20, tc24,
                                            tc32, tc40, tc48, tc56, tc64, tc72, tc80 }

RxTxTEG-TimingErrorMargin-r17 ::= ENUMERATED { tc0-5, tc1, tc2, tc4, tc8, tc12, tc16, tc20,
                                                tc24, tc32, tc40, tc48, tc64, tc80, tc96, tc128 }

OTDOA-ProvideAssistanceData ::= SEQUENCE {
    otdoa-ReferenceCellInfo         OTDOA-ReferenceCellInfo             OPTIONAL,   -- Need ON
    otdoa-NeighbourCellInfo         OTDOA-NeighbourCellInfoList         OPTIONAL,   -- Need ON
    otdoa-Error                     OTDOA-Error                         OPTIONAL,   -- Need ON
    ...,
    [[
    otdoa-ReferenceCellInfoNB-r14   OTDOA-ReferenceCellInfoNB-r14       OPTIONAL,   -- Need ON
    otdoa-NeighbourCellInfoNB-r14   OTDOA-NeighbourCellInfoListNB-r14   OPTIONAL    -- Need ON
    ]]
}

OTDOA-ReferenceCellInfo ::= SEQUENCE {
    physCellId                  INTEGER (0..503),
    cellGlobalId                ECGI                        OPTIONAL,       -- Need ON
    earfcnRef                   ARFCN-ValueEUTRA            OPTIONAL,       -- Cond NotSameAsServ0
    antennaPortConfig           ENUMERATED {ports1-or-2, ports4, ... }
                                                            OPTIONAL,       -- Cond NotSameAsServ1
    cpLength                    ENUMERATED { normal, extended, ... },
    prsInfo                     PRS-Info                    OPTIONAL,       -- Cond PRS
    ...,
    [[ earfcnRef-v9a0           ARFCN-ValueEUTRA-v9a0       OPTIONAL        -- Cond NotSameAsServ2
    ]],
    [[  tpId-r14                INTEGER (0..4095)           OPTIONAL,       -- Need ON
        cpLengthCRS-r14         ENUMERATED { normal, extended, ... }
                                                            OPTIONAL,       -- Cond CRS
        sameMBSFNconfigRef-r14  BOOLEAN                     OPTIONAL,       -- Need ON
        dlBandwidth-r14         ENUMERATED {n6, n15, n25, n50, n75, n100}
                                                            OPTIONAL,       -- Cond NotSameAsServ3
        addPRSconfigRef-r14     SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF PRS-Info
                                                            OPTIONAL        -- Need ON
    ]],
    [[
        nr-LTE-SFN-Offset-r15   INTEGER (0..1023)           OPTIONAL        -- Cond NR
    ]],
    [[
        tdd-config-v1520                    TDD-Config-v1520    OPTIONAL,       -- Need ON
        nr-LTE-fineTiming-Offset-r15        INTEGER (0..19)     OPTIONAL        -- Cond FineOffset
    ]]
}

maxAddPRSconfig-r14         INTEGER ::= 2

PRS-Info ::= SEQUENCE {
    prs-Bandwidth           ENUMERATED { n6, n15, n25, n50, n75, n100, ... },
    prs-ConfigurationIndex  INTEGER (0..4095),
    numDL-Frames            ENUMERATED {sf-1, sf-2, sf-4, sf-6, ..., sf-add-v1420},
    ...,
    prs-MutingInfo-r9       CHOICE {
        po2-r9                  BIT STRING (SIZE(2)),
        po4-r9                  BIT STRING (SIZE(4)),
        po8-r9                  BIT STRING (SIZE(8)),
        po16-r9                 BIT STRING (SIZE(16)),
        ...,
        po32-v1420              BIT STRING (SIZE(32)),
        po64-v1420              BIT STRING (SIZE(64)),
        po128-v1420             BIT STRING (SIZE(128)),
        po256-v1420             BIT STRING (SIZE(256)),
        po512-v1420             BIT STRING (SIZE(512)),
        po1024-v1420            BIT STRING (SIZE(1024))
    }                                                       OPTIONAL,               -- Need OP
    [[  prsID-r14               INTEGER (0..4095)           OPTIONAL,               -- Need ON
        add-numDL-Frames-r14    INTEGER (1..160)            OPTIONAL,               -- Cond sf-add
        prsOccGroupLen-r14      ENUMERATED {g2, g4, g8, g16, g32, g64, g128,... }
                                                            OPTIONAL,               -- Cond Occ-Grp
        prsHoppingInfo-r14  CHOICE {
            nb2-r14             INTEGER (0.. maxAvailNarrowBands-Minus1-r14),
            nb4-r14             SEQUENCE (SIZE (3))
                                        OF INTEGER (0.. maxAvailNarrowBands-Minus1-r14)
    }                                                       OPTIONAL                -- Cond PRS-FH
    ]]
}

maxAvailNarrowBands-Minus1-r14      INTEGER ::= 15  -- Maximum number of narrowbands minus 1

TDD-Config-v1520 ::= SEQUENCE {
    subframeAssignment-v1520            ENUMERATED { sa0, sa1, sa2, sa3, sa4, sa5, sa6 },
    ...
}

OTDOA-NeighbourCellInfoList ::= SEQUENCE (SIZE (1..maxFreqLayers)) OF OTDOA-NeighbourFreqInfo

OTDOA-NeighbourFreqInfo ::= SEQUENCE (SIZE (1..24)) OF OTDOA-NeighbourCellInfoElement

OTDOA-NeighbourCellInfoElement ::= SEQUENCE {
    physCellId                          INTEGER (0..503),
    cellGlobalId                        ECGI                OPTIONAL,       -- Need ON
    earfcn                              ARFCN-ValueEUTRA    OPTIONAL,       -- Cond NotSameAsRef0
    cpLength                            ENUMERATED {normal, extended, ...}
                                                            OPTIONAL,       -- Cond NotSameAsRef1
    prsInfo                             PRS-Info            OPTIONAL,       -- Cond NotSameAsRef2
    antennaPortConfig                   ENUMERATED {ports-1-or-2, ports-4, ...}
                                                            OPTIONAL,       -- Cond NotsameAsRef3
    slotNumberOffset                    INTEGER (0..19)     OPTIONAL,       -- Cond NotSameAsRef4
    prs-SubframeOffset                  INTEGER (0..1279)   OPTIONAL,       -- Cond InterFreq
    expectedRSTD                        INTEGER (0..16383),
    expectedRSTD-Uncertainty            INTEGER (0..1023),
    ...,
    [[ earfcn-v9a0                  ARFCN-ValueEUTRA-v9a0   OPTIONAL        -- Cond NotSameAsRef5
    ]],
    [[  tpId-r14                    INTEGER (0..4095)       OPTIONAL,       -- Need ON
        prs-only-tp-r14             ENUMERATED { true }     OPTIONAL,       -- Cond TBS
        cpLengthCRS-r14             ENUMERATED { normal, extended, ... }
                                                            OPTIONAL,       -- Cond CRS
        sameMBSFNconfigNeighbour-r14    BOOLEAN             OPTIONAL,       -- Need ON
        dlBandwidth-r14             ENUMERATED {n6, n15, n25, n50, n75, n100}
                                                            OPTIONAL,       -- Cond NotSameAsRef6
        addPRSconfigNeighbour-r14   SEQUENCE (SIZE (1..maxAddPRSconfig-r14)) OF
                                        Add-PRSconfigNeighbourElement-r14
                                                            OPTIONAL        -- Need ON
    ]],
    [[
        tdd-config-v1520            TDD-Config-v1520        OPTIONAL        -- Need ON
    ]]
}

Add-PRSconfigNeighbourElement-r14 ::= SEQUENCE {
    add-prsInfo-r14                 PRS-Info                OPTIONAL,       -- Cond NotSameAsRef7
    ...
}

maxFreqLayers   INTEGER ::= 3

OTDOA-ReferenceCellInfoNB-r14 ::= SEQUENCE {
    physCellIdNB-r14                INTEGER (0..503)            OPTIONAL,   -- Cond NoPRS-AD1
    cellGlobalIdNB-r14              ECGI                        OPTIONAL,   -- Cond NoPRS-AD2
    carrierFreqRef-r14              CarrierFreq-NB-r14          OPTIONAL,   -- Cond NotSameAsServ1
    earfcn-r14                      ARFCN-ValueEUTRA-r14        OPTIONAL,   -- Cond Inband
    eutra-NumCRS-Ports-r14          ENUMERATED {ports1-or-2, ports4}
                                                                OPTIONAL,   -- Cond NoPRS-AD3
    otdoa-SIB1-NB-repetitions-r14   ENUMERATED { r4, r8, r16 }  OPTIONAL,   -- Cond NotSameAsServ2
    nprsInfo-r14                    PRS-Info-NB-r14             OPTIONAL,   -- Cond NPRS-Type1
    ...,
    [[
    nprsInfo-Type2-v1470            PRS-Info-NB-r14             OPTIONAL    -- Cond NPRS-Type2
    ]],
    [[  tdd-config-r15              TDD-Config-v1520            OPTIONAL    -- Need ON
    ]]
}

PRS-Info-NB-r14 ::= SEQUENCE (SIZE (1..maxCarrier-r14)) OF NPRS-Info-r14

NPRS-Info-r14 ::= SEQUENCE {
    operationModeInfoNPRS-r14   ENUMERATED { inband, standalone },
    nprs-carrier-r14            CarrierFreq-NB-r14  OPTIONAL,   -- Cond Standalone/Guardband
    nprsSequenceInfo-r14        INTEGER (0..174)    OPTIONAL,   -- Cond Inband
    nprsID-r14                  INTEGER (0..4095)   OPTIONAL,   -- Cond NPRS-ID
    partA-r14                   SEQUENCE {
        nprsBitmap-r14          CHOICE {
            subframePattern10-r14   BIT STRING (SIZE (10)),
            subframePattern40-r14   BIT STRING (SIZE (40))
        },
        nprs-MutingInfoA-r14    CHOICE {
            po2-r14                 BIT STRING (SIZE(2)),
            po4-r14                 BIT STRING (SIZE(4)),
            po8-r14                 BIT STRING (SIZE(8)),
            po16-r14                BIT STRING (SIZE(16)),
            ...
        }                                                           OPTIONAL,       -- Cond MutingA
        ...
    }                                                               OPTIONAL,       -- Cond PartA
    partB-r14                   SEQUENCE {
        nprs-Period-r14         ENUMERATED { ms160, ms320, ms640, ms1280, ... , ms2560-v1510},
        nprs-startSF-r14        ENUMERATED { zero, one-eighth, two-eighths, three-eighths,
                                            four-eighths, five-eighths, six-eighths,
                                            seven-eighths, ...},
        nprs-NumSF-r14          ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320,
                                            sf640, sf1280, ... , sf2560-v1510},
        nprs-MutingInfoB-r14    CHOICE {
            po2-r14                 BIT STRING (SIZE(2)),
            po4-r14                 BIT STRING (SIZE(4)),
            po8-r14                 BIT STRING (SIZE(8)),
            po16-r14                BIT STRING (SIZE(16)),
            ...
        }                                                           OPTIONAL,       -- Cond MutingB
                                                                                                        ...,
                                                                                                    [[  sib1-SF-TDD-r15         ENUMERATED {sf0, sf4, sf0and5}      OPTIONAL        -- Cond SIB1-TDD
    ]]
    }                                                               OPTIONAL,       -- Cond PartB
    ...,
    [[
    partA-TDD-r15                   SEQUENCE {
        nprsBitmap-r15          CHOICE {
            subframePattern10-TDD-r15   BIT STRING (SIZE (8)),
            subframePattern40-TDD-r15   BIT STRING (SIZE (32)),
            ...
        },
        nprs-MutingInfoA-r15    CHOICE {
            po2-r15                 BIT STRING (SIZE(2)),
            po4-r15                 BIT STRING (SIZE(4)),
            po8-r15                 BIT STRING (SIZE(8)),
            po16-r15                BIT STRING (SIZE(16)),
            ...
        }                                                           OPTIONAL,   -- Cond MutingA
        ...
    }                                                               OPTIONAL    -- Cond PartA-TDD
    ]]
}

maxCarrier-r14  INTEGER ::= 5

OTDOA-NeighbourCellInfoListNB-r14 ::= SEQUENCE (SIZE (1..maxCells-r14)) OF
                                                        OTDOA-NeighbourCellInfoNB-r14

OTDOA-NeighbourCellInfoNB-r14 ::= SEQUENCE {
    physCellIdNB-r14                INTEGER (0..503)        OPTIONAL,       -- Cond NoPRS-AD1
    cellGlobalIdNB-r14              ECGI                    OPTIONAL,       -- Cond NoPRS-AD2
    carrierFreq-r14                 CarrierFreq-NB-r14      OPTIONAL,       -- Cond NotSameAsRef1
    earfcn-r14                      ARFCN-ValueEUTRA-r14    OPTIONAL,       -- Cond Inband
    eutra-NumCRS-Ports-r14          ENUMERATED {ports-1-or-2, ports-4, ...}
                                                            OPTIONAL,       -- Cond NotsameAsRef2
    otdoa-SIB1-NB-repetitions-r14   ENUMERATED { r4, r8, r16 }
                                                            OPTIONAL,       -- Cond NotSameAsRef3
    nprsInfo-r14                    PRS-Info-NB-r14         OPTIONAL,       -- Cond NotsameAsRef4
    nprs-slotNumberOffset-r14       INTEGER (0..19)         OPTIONAL,       -- Cond NotsameAsRef5
    nprs-SFN-Offset-r14             INTEGER (0..63)         OPTIONAL,       -- Cond NotsameAsRef6
    nprs-SubframeOffset-r14         INTEGER (0..1279)       OPTIONAL,       -- Need OP
    expectedRSTD-r14                INTEGER (0..16383)      OPTIONAL,       -- Cond NoPRS-AD3
    expectedRSTD-Uncertainty-r14    INTEGER (0..1023)       OPTIONAL,       -- Cond NoPRS-AD3
    prsNeighbourCellIndex-r14       INTEGER (1..72)         OPTIONAL,       -- Cond PRS-AD
    ...,
    [[
    nprsInfo-Type2-v1470            PRS-Info-NB-r14         OPTIONAL        -- Cond NotSameAsRef4
    ]],
    [[  tdd-config-r15              TDD-Config-v1520        OPTIONAL        -- Need ON
    ]]
}

maxCells-r14    INTEGER ::= 72

OTDOA-RequestAssistanceData ::= SEQUENCE {
    physCellId          INTEGER (0..503),
    ...,
    [[
    adType-r14          BIT STRING { prs (0), nprs (1) } (SIZE (1..8))      OPTIONAL
    ]],
    [[
        nrPhysCellId-r15    INTEGER (0..1007)                                   OPTIONAL
    ]]
}

OTDOA-ProvideLocationInformation ::= SEQUENCE {
    otdoaSignalMeasurementInformation   OTDOA-SignalMeasurementInformation  OPTIONAL,
    otdoa-Error                         OTDOA-Error                         OPTIONAL,
    ...,
    [[
        otdoaSignalMeasurementInformation-NB-r14    OTDOA-SignalMeasurementInformation-NB-r14
                                                                            OPTIONAL
    ]]
}

OTDOA-SignalMeasurementInformation ::= SEQUENCE {
    systemFrameNumber       BIT STRING (SIZE (10)),
    physCellIdRef           INTEGER (0..503),
    cellGlobalIdRef         ECGI                    OPTIONAL,
    earfcnRef               ARFCN-ValueEUTRA        OPTIONAL,       -- Cond NotSameAsRef0
    referenceQuality        OTDOA-MeasQuality       OPTIONAL,
    neighbourMeasurementList    NeighbourMeasurementList,
    ...,
    [[ earfcnRef-v9a0       ARFCN-ValueEUTRA-v9a0   OPTIONAL        -- Cond NotSameAsRef1
    ]],
    [[ tpIdRef-r14          INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer0
        prsIdRef-r14        INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer1
        additionalPathsRef-r14
                            AdditionalPathList-r14  OPTIONAL,
        nprsIdRef-r14       INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer2
        carrierFreqOffsetNB-Ref-r14
                            CarrierFreqOffsetNB-r14 OPTIONAL,       -- Cond NB-IoT
        hyperSFN-r14        BIT STRING (SIZE (10))  OPTIONAL        -- Cond H-SFN
    ]],
    [[
        motionTimeSource-r15        MotionTimeSource-r15        OPTIONAL
    ]]
}

NeighbourMeasurementList ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement

NeighbourMeasurementElement ::= SEQUENCE {
    physCellIdNeighbour     INTEGER (0..503),
    cellGlobalIdNeighbour   ECGI                    OPTIONAL,
    earfcnNeighbour         ARFCN-ValueEUTRA        OPTIONAL,       -- Cond NotSameAsRef2
    rstd                    INTEGER (0..12711),
    rstd-Quality            OTDOA-MeasQuality,
    ...,
    [[ earfcnNeighbour-v9a0 ARFCN-ValueEUTRA-v9a0   OPTIONAL        -- Cond NotSameAsRef3
    ]],
    [[ tpIdNeighbour-r14    INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer0
        prsIdNeighbour-r14  INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer1
        delta-rstd-r14      INTEGER (0..5)          OPTIONAL,
        additionalPathsNeighbour-r14
                            AdditionalPathList-r14  OPTIONAL,
        nprsIdNeighbour-r14 INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer2
        carrierFreqOffsetNB-Neighbour-r14                           CarrierFreqOffsetNB-r14 OPTIONAL        -- Cond NB-IoT
    ]],
    [[
        delta-SFN-r15           INTEGER (-8192..8191)   OPTIONAL
    ]]
}

AdditionalPathList-r14 ::= SEQUENCE (SIZE(1..maxPaths-r14)) OF AdditionalPath-r14

maxPaths-r14    INTEGER ::= 2

MotionTimeSource-r15 ::= SEQUENCE {
    timeSource-r15              ENUMERATED {servingCell, referenceCell, gnss, mixed,
                                            other, none, ...}
}

OTDOA-SignalMeasurementInformation-NB-r14 ::= SEQUENCE {
    systemFrameNumber-r14           BIT STRING (SIZE (10)),
    physCellIdRef-r14               INTEGER (0..503),
    cellGlobalIdRef-r14             ECGI                    OPTIONAL,
    earfcnRef-r14                   ARFCN-ValueEUTRA-r14    OPTIONAL,   -- Cond NotSameAsRef0
    referenceQuality-r14            OTDOA-MeasQuality       OPTIONAL,
    neighbourMeasurementList-r14    NeighbourMeasurementList-NB-r14,
    tpIdRef-r14                     INTEGER (0..4095)       OPTIONAL,   -- Cond ProvidedByServer0
    prsIdRef-r14                    INTEGER (0..4095)       OPTIONAL,   -- Cond ProvidedByServer1
    additionalPathsRef-r14          AdditionalPathList-r14  OPTIONAL,
    nprsIdRef-r14                   INTEGER (0..4095)       OPTIONAL,   -- Cond ProvidedByServer2
    carrierFreqOffsetNB-Ref-r14     CarrierFreqOffsetNB-r14 OPTIONAL,   -- Cond NB-IoT
    hyperSFN-r14                    BIT STRING (SIZE (10))  OPTIONAL,   -- Cond H-SFN
    ...
}

NeighbourMeasurementList-NB-r14 ::= SEQUENCE (SIZE(1..24)) OF NeighbourMeasurementElement-NB-r14

NeighbourMeasurementElement-NB-r14 ::= SEQUENCE {
    physCellIdNeighbour-r14     INTEGER (0..503),
    cellGlobalIdNeighbour-r14   ECGI                    OPTIONAL,
    earfcnNeighbour-r14         ARFCN-ValueEUTRA-r14    OPTIONAL,       -- Cond NotSameAsRef2
    rstd-r14                    INTEGER (0..12711),
    rstd-Quality-r14            OTDOA-MeasQuality,
    tpIdNeighbour-r14           INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer0
    prsIdNeighbour-r14          INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer1
    delta-rstd-r14              INTEGER (0..5)          OPTIONAL,
    additionalPathsNeighbour-r14
                                AdditionalPathList-r14  OPTIONAL,
    nprsIdNeighbour-r14         INTEGER (0..4095)       OPTIONAL,       -- Cond ProvidedByServer2
    carrierFreqOffsetNB-Neighbour-r14
                                CarrierFreqOffsetNB-r14 OPTIONAL,       -- Cond NB-IoT
    ...
}

OTDOA-MeasQuality ::= SEQUENCE {
    error-Resolution        BIT STRING (SIZE (2)),
    error-Value             BIT STRING (SIZE (5)),
    error-NumSamples        BIT STRING (SIZE (3))               OPTIONAL,
    ...
}

AdditionalPath-r14 ::= SEQUENCE {
    relativeTimeDifference-r14  INTEGER (-256..255),
    path-Quality-r14            OTDOA-MeasQuality               OPTIONAL,
    ...
}

OTDOA-RequestLocationInformation ::= SEQUENCE {
    assistanceAvailability      BOOLEAN,
    ...,
    [[
        multipathRSTD-r14       ENUMERATED { requested }    OPTIONAL,       -- Need ON
        maxNoOfRSTDmeas-r14     INTEGER (1..32)             OPTIONAL        -- Need ON
    ]],
    [[
        motionMeasurements-r15  ENUMERATED { requested }    OPTIONAL        -- Need ON
    ]]
}

OTDOA-ProvideCapabilities ::= SEQUENCE {
    otdoa-Mode      BIT STRING {    ue-assisted             (0),
                                    ue-assisted-NB-r14      (1),
                                    ue-assisted-NB-TDD-r15  (2) } (SIZE (1..8)),
    ...,
    supportedBandListEUTRA      SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA     OPTIONAL,
    supportedBandListEUTRA-v9a0 SEQUENCE (SIZE (1..maxBands)) OF SupportedBandEUTRA-v9a0
                                                                                        OPTIONAL,
    interFreqRSTDmeasurement-r10        ENUMERATED { supported }                        OPTIONAL,
    additionalNeighbourCellInfoList-r10 ENUMERATED { supported }                        OPTIONAL,
    prs-id-r14                          ENUMERATED { supported }                        OPTIONAL,
    tp-separation-via-muting-r14        ENUMERATED { supported }                        OPTIONAL,
    additional-prs-config-r14           ENUMERATED { supported }                        OPTIONAL,
    prs-based-tbs-r14                   ENUMERATED { supported }                        OPTIONAL,
    additionalPathsReport-r14           ENUMERATED { supported }                        OPTIONAL,
    densePrsConfig-r14                  ENUMERATED { supported }                        OPTIONAL,
    maxSupportedPrsBandwidth-r14        ENUMERATED { n6, n15, n25, n50, n75, n100, ...} OPTIONAL,
    prsOccGroup-r14                     ENUMERATED { supported }                        OPTIONAL,
    prsFrequencyHopping-r14             ENUMERATED { supported }                        OPTIONAL,
    maxSupportedPrsConfigs-r14          ENUMERATED { c2, c3 }                           OPTIONAL,
    periodicalReporting-r14             ENUMERATED { supported }                        OPTIONAL,
    multiPrbNprs-r14                    ENUMERATED { supported }                        OPTIONAL,
    idleStateForMeasurements-r14        ENUMERATED { required }                         OPTIONAL,
    numberOfRXantennas-r14              ENUMERATED { rx1, ... }                         OPTIONAL,
    motionMeasurements-r15              ENUMERATED { supported }                        OPTIONAL,
    interRAT-RSTDmeasurement-r15        ENUMERATED { supported }                        OPTIONAL,
    scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupport-r17            OPTIONAL,
    periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupport-r18      OPTIONAL
}

maxBands INTEGER ::= 64

SupportedBandEUTRA ::= SEQUENCE {
    bandEUTRA                           INTEGER (1..maxFBI)
}

SupportedBandEUTRA-v9a0 ::=     SEQUENCE {
    bandEUTRA-v9a0                      INTEGER (maxFBI-Plus1..maxFBI2)     OPTIONAL
}

maxFBI                              INTEGER ::= 64  -- Maximum value of frequency band indicator

maxFBI-Plus1                        INTEGER ::= 65  -- lowest value extended FBI range

maxFBI2                             INTEGER ::= 256 -- highest value extended FBI range

OTDOA-RequestCapabilities ::= SEQUENCE {
    ...
}

OTDOA-Error ::= CHOICE {
    locationServerErrorCauses       OTDOA-LocationServerErrorCauses,
    targetDeviceErrorCauses         OTDOA-TargetDeviceErrorCauses,
    ...
}

OTDOA-LocationServerErrorCauses ::= SEQUENCE {
    cause       ENUMERATED  {   undefined,
                                assistanceDataNotSupportedByServer,
                                assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                ...
                            },
    ...
}

OTDOA-TargetDeviceErrorCauses ::= SEQUENCE {
    cause       ENUMERATED {    undefined,
                                assistance-data-missing,
                                unableToMeasureReferenceCell,
                                unableToMeasureAnyNeighbourCell,
                                attemptedButUnableToMeasureSomeNeighbourCells,
                                ...
                            },
    ...
}

A-GNSS-ProvideAssistanceData ::= SEQUENCE {
    gnss-CommonAssistData           GNSS-CommonAssistData               OPTIONAL,   -- Need ON
    gnss-GenericAssistData          GNSS-GenericAssistData              OPTIONAL,   -- Need ON
    gnss-Error                      A-GNSS-Error                        OPTIONAL,   -- Need ON
    ...,
    [[
        gnss-PeriodicAssistData-r15 GNSS-PeriodicAssistData-r15         OPTIONAL    -- Cond CtrTrans
    ]]
}

GNSS-CommonAssistData ::= SEQUENCE {
    gnss-ReferenceTime              GNSS-ReferenceTime                  OPTIONAL,   -- Need ON
    gnss-ReferenceLocation          GNSS-ReferenceLocation              OPTIONAL,   -- Need ON
    gnss-IonosphericModel           GNSS-IonosphericModel               OPTIONAL,   -- Need ON
    gnss-EarthOrientationParameters GNSS-EarthOrientationParameters     OPTIONAL,   -- Need ON
    ...,
    [[
        gnss-RTK-ReferenceStationInfo-r15
                                    GNSS-RTK-ReferenceStationInfo-r15   OPTIONAL,   -- Need ON
        gnss-RTK-CommonObservationInfo-r15
                                    GNSS-RTK-CommonObservationInfo-r15  OPTIONAL,   -- Cond RTK
        gnss-RTK-AuxiliaryStationData-r15
                                    GNSS-RTK-AuxiliaryStationData-r15   OPTIONAL    -- Need ON
    ]],
    [[
        gnss-SSR-CorrectionPoints-r16
                                    GNSS-SSR-CorrectionPoints-r16       OPTIONAL    -- Need ON
    ]],
    [[
        gnss-Integrity-ServiceParameters-r17
                            GNSS-Integrity-ServiceParameters-r17        OPTIONAL,   -- Need ON
        gnss-Integrity-ServiceAlert-r17
                            GNSS-Integrity-ServiceAlert-r17             OPTIONAL    -- Need OR
    ]],
    [[
        gnss-los-nlos-GridPoints-r18    GNSS-LOS-NLOS-GridPoints-r18    OPTIONAL,   -- Need ON
        gnss-SSR-IOD-Update-r18         GNSS-SSR-IOD-Update-r18         OPTIONAL    -- Need OR
    ]]
}

GNSS-GenericAssistData ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataElement

GNSS-GenericAssistDataElement ::= SEQUENCE {
    gnss-ID                         GNSS-ID,
    sbas-ID                         SBAS-ID                         OPTIONAL,   -- Cond GNSS-ID-SBAS
    gnss-TimeModels                 GNSS-TimeModelList              OPTIONAL,   -- Need ON
    gnss-DifferentialCorrections    GNSS-DifferentialCorrections    OPTIONAL,   -- Need ON
    gnss-NavigationModel            GNSS-NavigationModel            OPTIONAL,   -- Need ON
    gnss-RealTimeIntegrity          GNSS-RealTimeIntegrity          OPTIONAL,   -- Need ON
    gnss-DataBitAssistance          GNSS-DataBitAssistance          OPTIONAL,   -- Need ON
    gnss-AcquisitionAssistance      GNSS-AcquisitionAssistance      OPTIONAL,   -- Need ON
    gnss-Almanac                    GNSS-Almanac                    OPTIONAL,   -- Need ON
    gnss-UTC-Model                  GNSS-UTC-Model                  OPTIONAL,   -- Need ON
    gnss-AuxiliaryInformation       GNSS-AuxiliaryInformation       OPTIONAL,   -- Need ON
    ...,
    [[
        bds-DifferentialCorrections-r12
                                    BDS-DifferentialCorrections-r12 OPTIONAL,   -- Cond GNSS-ID-BDS
        bds-GridModel-r12           BDS-GridModelParameter-r12      OPTIONAL    -- Cond GNSS-ID-BDS
    ]],
    [[
        gnss-RTK-Observations-r15   GNSS-RTK-Observations-r15       OPTIONAL,   -- Need ON
        glo-RTK-BiasInformation-r15 GLO-RTK-BiasInformation-r15     OPTIONAL,   -- Cond GNSS-ID-GLO
        gnss-RTK-MAC-CorrectionDifferences-r15
                                    GNSS-RTK-MAC-CorrectionDifferences-r15
                                                                    OPTIONAL,   -- Need ON
        gnss-RTK-Residuals-r15      GNSS-RTK-Residuals-r15          OPTIONAL,   -- Need ON
        gnss-RTK-FKP-Gradients-r15  GNSS-RTK-FKP-Gradients-r15      OPTIONAL,   -- Need ON
        gnss-SSR-OrbitCorrections-r15
                                    GNSS-SSR-OrbitCorrections-r15   OPTIONAL,   -- Need ON
        gnss-SSR-ClockCorrections-r15
                                    GNSS-SSR-ClockCorrections-r15   OPTIONAL,   -- Need ON
        gnss-SSR-CodeBias-r15       GNSS-SSR-CodeBias-r15           OPTIONAL    -- Need ON
    ]],
    [[
        gnss-SSR-URA-r16                    GNSS-SSR-URA-r16        OPTIONAL,   -- Need ON
        gnss-SSR-PhaseBias-r16              GNSS-SSR-PhaseBias-r16  OPTIONAL,   -- Need ON
        gnss-SSR-STEC-Correction-r16        GNSS-SSR-STEC-Correction-r16
                                                                    OPTIONAL,   -- Need ON
        gnss-SSR-GriddedCorrection-r16      GNSS-SSR-GriddedCorrection-r16
                                                                    OPTIONAL,   -- Need ON
        navic-DifferentialCorrections-r16   NavIC-DifferentialCorrections-r16
                                                                OPTIONAL,   -- Cond GNSS-ID-NavIC
        navic-GridModel-r16                 NavIC-GridModelParameter-r16
                                                                OPTIONAL    -- Cond GNSS-ID-NavIC
    ]],
    [[
        gnss-SSR-OrbitCorrectionsSet2-r17   GNSS-SSR-OrbitCorrectionsSet2-r17
                                                                            OPTIONAL,   -- Need ON
        gnss-SSR-ClockCorrectionsSet2-r17   GNSS-SSR-ClockCorrectionsSet2-r17
                                                                            OPTIONAL,   -- Need ON
        gnss-SSR-URA-Set2-r17               GNSS-SSR-URA-Set2-r17           OPTIONAL    -- Need ON
    ]],
    [[
        gnss-LOS-NLOS-GriddedIndications-r18    GNSS-LOS-NLOS-GriddedIndications-r18
                                                                            OPTIONAL,   -- Need ON
        gnss-SSR-SatellitePCVResiduals-r18  GNSS-SSR-SatellitePCVResiduals-r18
                                                                            OPTIONAL    -- Need ON
    ]]
}

GNSS-PeriodicAssistData-r15 ::= SEQUENCE {
    gnss-RTK-PeriodicObservations-r15       GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    glo-RTK-PeriodicBiasInformation-r15     GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-RTK-MAC-PeriodicCorrectionDifferences-r15
                                            GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-RTK-PeriodicResiduals-r15          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-RTK-FKP-PeriodicGradients-r15      GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicOrbitCorrections-r15
                                            GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicClockCorrections-r15
                                            GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicCodeBias-r15           GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    ...,
    [[
    gnss-SSR-PeriodicURA-r16                GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicPhaseBias-r16          GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicSTEC-Correction-r16    GNSS-PeriodicControlParam-r15   OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicGriddedCorrection-r16  GNSS-PeriodicControlParam-r15   OPTIONAL    -- Need ON
    ]],
    [[
    gnss-Integrity-PeriodicServiceAlert-r17 GNSS-PeriodicControlParam-r15   OPTIONAL    -- Need ON
    ]],
    [[
    gnss-SSR-PeriodicOrbitCorrectionsSet2-r17
                                        GNSS-PeriodicControlParam-r15       OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicClockCorrectionsSet2-r17
                                        GNSS-PeriodicControlParam-r15       OPTIONAL,   -- Need ON
    gnss-SSR-PeriodicURA-Set2-r17       GNSS-PeriodicControlParam-r15       OPTIONAL    -- Need ON
    ]],
    [[
    gnss-SSR-PeriodicIOD-Update-r18     GNSS-PeriodicControlParam-r15       OPTIONAL    -- Need OR
    ]]
}

GNSS-ReferenceTime ::= SEQUENCE {
    gnss-SystemTime             GNSS-SystemTime,
    referenceTimeUnc            INTEGER (0..127)                    OPTIONAL,   -- Cond noFTA
    gnss-ReferenceTimeForCells  SEQUENCE (SIZE (1..16)) OF
                                    GNSS-ReferenceTimeForOneCell    OPTIONAL,   -- Need ON
    ...
}

GNSS-ReferenceTimeForOneCell ::= SEQUENCE {
    networkTime             NetworkTime,
    referenceTimeUnc            INTEGER (0..127),
    bsAlign                     ENUMERATED {true}   OPTIONAL,
    ...
}

GNSS-SystemTime ::= SEQUENCE {
    gnss-TimeID                     GNSS-ID,
    gnss-DayNumber                  INTEGER (0..32767),
    gnss-TimeOfDay                  INTEGER (0..86399),
    gnss-TimeOfDayFrac-msec         INTEGER (0..999)        OPTIONAL,   -- Need ON
    notificationOfLeapSecond        BIT STRING (SIZE(2))    OPTIONAL,   -- Cond gnss-TimeID-glonass
    gps-TOW-Assist                  GPS-TOW-Assist          OPTIONAL,   -- Cond gnss-TimeID-gps
    ...
}

GPS-TOW-Assist ::= SEQUENCE (SIZE(1..64)) OF GPS-TOW-AssistElement

GPS-TOW-AssistElement ::= SEQUENCE {
    satelliteID     INTEGER (1..64),
    tlmWord         INTEGER (0..16383),
    antiSpoof       INTEGER (0..1),
    alert           INTEGER (0..1),
    tlmRsvdBits     INTEGER (0..3),
    ...
}

NetworkTime ::= SEQUENCE {
    secondsFromFrameStructureStart              INTEGER(0..12533),
    fractionalSecondsFromFrameStructureStart    INTEGER(0..3999999),
    frameDrift                                  INTEGER (-64..63)   OPTIONAL,   -- Cond GNSSsynch
    cellID      CHOICE {
                eUTRA       SEQUENCE {
                            physCellId          INTEGER (0..503),
                            cellGlobalIdEUTRA   CellGlobalIdEUTRA-AndUTRA   OPTIONAL,   -- Need ON
                            earfcn              ARFCN-ValueEUTRA,
                            ...,
                            [[ earfcn-v9a0      ARFCN-ValueEUTRA-v9a0 OPTIONAL  -- Cond EARFCN-max
                            ]]
                            },
                uTRA        SEQUENCE {
                            mode    CHOICE {
                                    fdd     SEQUENCE {
                                            primary-CPICH-Info  INTEGER (0..511),
                                            ...
                                            },
                                    tdd     SEQUENCE {
                                            cellParameters      INTEGER (0..127),
                                            ...
                                            }
                                    },
                            cellGlobalIdUTRA    CellGlobalIdEUTRA-AndUTRA   OPTIONAL,   -- Need ON
                            uarfcn              ARFCN-ValueUTRA,
                            ...
                            },
                gSM         SEQUENCE {
                            bcchCarrier         INTEGER (0..1023),
                            bsic                INTEGER (0..63),
                            cellGlobalIdGERAN   CellGlobalIdGERAN           OPTIONAL,   -- Need ON
                            ...
                            },
                ...,
                nBIoT-r14   SEQUENCE {
                            nbPhysCellId-r14    INTEGER (0..503),
                            nbCellGlobalId-r14  ECGI                        OPTIONAL,   -- Need ON
                            nbCarrierFreq-r14   CarrierFreq-NB-r14,
                            ...
                            },
                nr-r15      SEQUENCE {
                            nrPhysCellId-r15    INTEGER (0..1007),
                            nrCellGlobalID-r15  NCGI-r15                    OPTIONAL,   -- Need ON
                            nrARFCN-r15         ARFCN-ValueNR-r15,
                            ...
                            }
                },
    ...
}

GNSS-ReferenceLocation ::= SEQUENCE {
        threeDlocation          EllipsoidPointWithAltitudeAndUncertaintyEllipsoid,
        ...
}

GNSS-IonosphericModel ::= SEQUENCE {
    klobucharModel          KlobucharModelParameter     OPTIONAL,   -- Need ON
    neQuickModel            NeQuickModelParameter       OPTIONAL,   -- Need ON
    ...,
    [[  klobucharModel2-r16     KlobucharModel2Parameter-r16    OPTIONAL    -- Need ON
    ]]

}

KlobucharModelParameter ::= SEQUENCE {
    dataID          BIT STRING (SIZE (2)),
    alfa0           INTEGER (-128..127),
    alfa1           INTEGER (-128..127),
    alfa2           INTEGER (-128..127),
    alfa3           INTEGER (-128..127),
    beta0           INTEGER (-128..127),
    beta1           INTEGER (-128..127),
    beta2           INTEGER (-128..127),
    beta3           INTEGER (-128..127),
    ...
}

KlobucharModel2Parameter-r16 ::= SEQUENCE {
    alfa1-r16           INTEGER (0..1023),
    alfa2-r16           INTEGER (-128..127),
    alfa3-r16           INTEGER (0..255),
    alfa4-r16           INTEGER (0..255),
    alfa5-r16           INTEGER (0..255),
    alfa6-r16           INTEGER (-128..127),
    alfa7-r16           INTEGER (-128..127),
    alfa8-r16           INTEGER (-128..127),
    alfa9-r16           INTEGER (-128..127),
    ...
}

NeQuickModelParameter ::= SEQUENCE {
    ai0         INTEGER (0..2047),
    ai1         INTEGER (-1024..1023),
    ai2         INTEGER (-8192..8191),
    ionoStormFlag1  INTEGER (0..1)      OPTIONAL,   -- Need OP
    ionoStormFlag2  INTEGER (0..1)      OPTIONAL,   -- Need OP
    ionoStormFlag3  INTEGER (0..1)      OPTIONAL,   -- Need OP
    ionoStormFlag4  INTEGER (0..1)      OPTIONAL,   -- Need OP
    ionoStormFlag5  INTEGER (0..1)      OPTIONAL,   -- Need OP
    ...
}

GNSS-EarthOrientationParameters ::= SEQUENCE {
    teop                INTEGER (0..65535),
    pmX                 INTEGER (-1048576..1048575),
    pmXdot              INTEGER (-16384..16383),
    pmY                 INTEGER (-1048576..1048575),
    pmYdot              INTEGER (-16384..16383),
    deltaUT1            INTEGER (-1073741824..1073741823),
    deltaUT1dot         INTEGER (-262144..262143),
    ...
}

GNSS-RTK-ReferenceStationInfo-r15 ::= SEQUENCE {
    referenceStationID-r15                  GNSS-ReferenceStationID-r15,
    referenceStationIndicator-r15           ENUMERATED {physical, non-physical},
    antenna-reference-point-ECEF-X-r15      INTEGER (-137438953472..137438953471),
    antenna-reference-point-ECEF-Y-r15      INTEGER (-137438953472..137438953471),
    antenna-reference-point-ECEF-Z-r15      INTEGER (-137438953472..137438953471),
    antennaHeight-r15                       INTEGER (0..65535)                  OPTIONAL, -- Need ON
    antennaDescription-r15                  AntennaDescription-r15              OPTIONAL, -- Need ON
    antenna-reference-point-unc-r15         AntennaReferencePointUnc-r15        OPTIONAL, -- Need ON
    physical-reference-station-info-r15     PhysicalReferenceStationInfo-r15    OPTIONAL, -- Cond NP
    ...,
    [[
    equalIntegerAmbiguityLevel-r16          EqualIntegerAmbiguityLevel-r16      OPTIONAL -- Need ON
    ]]
}

AntennaDescription-r15 ::= SEQUENCE {
    antennaDescriptor-r15                   VisibleString (SIZE (1..256)),
    antennaSetUpID-r15                      ENUMERATED { non-zero }             OPTIONAL, -- Need OP
    ...
}

AntennaReferencePointUnc-r15 ::= SEQUENCE {
    uncertainty-X-r15                       INTEGER (0..255),
    confidence-X-r15                        INTEGER (0..100),
    uncertainty-Y-r15                       INTEGER (0..255),
    confidence-Y-r15                        INTEGER (0..100),
    uncertainty-Z-r15                       INTEGER (0..255),
    confidence-Z-r15                        INTEGER (0..100),
    ...
}

PhysicalReferenceStationInfo-r15 ::= SEQUENCE {
    physicalReferenceStationID-r15          GNSS-ReferenceStationID-r15,
    physical-ARP-ECEF-X-r15                 INTEGER (-137438953472..137438953471),
    physical-ARP-ECEF-Y-r15                 INTEGER (-137438953472..137438953471),
    physical-ARP-ECEF-Z-r15                 INTEGER (-137438953472..137438953471),
    physical-ARP-unc-r15                    AntennaReferencePointUnc-r15        OPTIONAL, -- Need ON
    ...
}

EqualIntegerAmbiguityLevel-r16 ::= CHOICE {
    allReferenceStations-r16                NULL,
    referenceStationList-r16                ReferenceStationList-r16
}

ReferenceStationList-r16 ::= SEQUENCE (SIZE(1..16)) OF GNSS-ReferenceStationID-r15

GNSS-RTK-CommonObservationInfo-r15 ::= SEQUENCE {
    referenceStationID-r15              GNSS-ReferenceStationID-r15,
    clockSteeringIndicator-r15          INTEGER (0..3),
    externalClockIndicator-r15          INTEGER (0..3),
    smoothingIndicator-r15              BIT STRING (SIZE(1)),
    smoothingInterval-r15               BIT STRING (SIZE(3)),
    ...
}

GNSS-RTK-AuxiliaryStationData-r15 ::= SEQUENCE {
    networkID-r15                   GNSS-NetworkID-r15,
    subNetworkID-r15                GNSS-SubNetworkID-r15                   OPTIONAL,   -- Need ON
    master-referenceStationID-r15   GNSS-ReferenceStationID-r15,
    auxiliaryStationList-r15        AuxiliaryStationList-r15,
    ...
}

AuxiliaryStationList-r15 ::= SEQUENCE (SIZE (1..32)) OF AuxiliaryStationElement-r15

AuxiliaryStationElement-r15 ::= SEQUENCE {
    aux-referenceStationID-r15              GNSS-ReferenceStationID-r15,
    aux-master-delta-latitude-r15           INTEGER (-524288..524287),
    aux-master-delta-longitude-r15          INTEGER (-1048576..1048575),
    aux-master-delta-height-r15             INTEGER (-4194304..4194303),
    aux-ARP-unc-r15                         Aux-ARP-Unc-r15                 OPTIONAL,   -- Need ON
    ...
}

Aux-ARP-Unc-r15 ::= SEQUENCE {
    horizontalUncertainty-r15               INTEGER (0..255),
    horizontalConfidence-r15                INTEGER (0..100),
    verticalUncertainty-r15                 INTEGER (0..255)                OPTIONAL,   -- Need ON
    verticalConfidence-r15                  INTEGER (0..100)                OPTIONAL,   -- Need ON
    ...
}

GNSS-SSR-CorrectionPoints-r16 ::= SEQUENCE {
    correctionPointSetID-r16            INTEGER (0..16383),
    correctionPoints-r16                CHOICE {
        listOfCorrectionPoints-r16          GNSS-SSR-ListOfCorrectionPoints-r16,
        arrayOfCorrectionPoints-r16         GNSS-SSR-ArrayOfCorrectionPoints-r16
    },
    ...
}

GNSS-SSR-ListOfCorrectionPoints-r16 ::= SEQUENCE {
    referencePointLatitude-r16      INTEGER (-16384..16383),
    referencePointLongitude-r16     INTEGER (-32768..32767),
    relativeLocationsList-r16       SEQUENCE (SIZE (0..63)) OF RelativeLocationElement-r16,
    ...
}

RelativeLocationElement-r16 ::= SEQUENCE {
    deltaLatitude-r16               INTEGER (-512..511),
    deltaLongitude-r16              INTEGER (-1024..1023),
    ...
}

GNSS-SSR-ArrayOfCorrectionPoints-r16 ::=SEQUENCE {
    referencePointLatitude-r16          INTEGER (-16384..16383),
    referencePointLongitude-r16         INTEGER (-32768..32767),
    numberOfStepsLatitude-r16           INTEGER (0..63),
    numberOfStepsLongitude-r16          INTEGER (0..63),
    stepOfLatitude-r16                  INTEGER (1..511),
    stepOfLongitude-r16                 INTEGER (1..1023),
    bitmaskOfGrids-r16                  BIT STRING (SIZE(64))               OPTIONAL,   -- Need OP
    ...
}

GNSS-Integrity-ServiceParameters-r17 ::= SEQUENCE {
    irMinimum-r17                       INTEGER (0..255),
    irMaximum-r17                       INTEGER (0..255),
    ...
}

GNSS-Integrity-ServiceAlert-r17 ::= SEQUENCE {
    ionosphereDoNotUse-r17              BOOLEAN,
    troposphereDoNotUse-r17             BOOLEAN,
    ...
}

GNSS-LOS-NLOS-GridPoints-r18 ::= SEQUENCE {
    gridPointsSetID-r18             INTEGER (0..16383),
    horizontalGridPoints-r18        ArrayOfGridPoints-r18,
    referenceAltitudeFine-r18       INTEGER (0..9)                  OPTIONAL, -- Need OP
    verticalGridPoints-r18          VerticalGridPoints-r18          OPTIONAL, -- Cond 3D
    ...
}

ArrayOfGridPoints-r18 ::= SEQUENCE {
    referencePointLatitude-r18      INTEGER (-16777216.. 16777215),
    referencePointLongitude-r18     INTEGER (-33554432.. 33554431),
    numberOfStepsSouth-r18          INTEGER (0.. 255),
    numberOfStepsEast-r18           INTEGER (0.. 255),
    stepSouth-r18                   SpatialDelta-r18,
    stepEast-r18                    SpatialDelta-r18,
    bitmaskOfGrids-r18              CHOICE {
        bog16-r18                       BIT STRING (SIZE(16)),
        bog64-r18                       BIT STRING (SIZE(64)),
        bog256-r18                      BIT STRING (SIZE(256)),
        ...
    }                                                               OPTIONAL, -- Need OP
    ...
}

VerticalGridPoints-r18 ::=SEQUENCE {
    referenceAltitudeCoarse-r18     INTEGER (-50..900),
    numberOfStepsDown-r18           INTEGER (1..3),
    stepDown-r18                    SpatialDelta-r18,
    upperValidityDeltaAltitude-r18  SpatialDelta-r18                OPTIONAL, -- Need OP
    lowerValidityDeltaAltitude-r18  SpatialDelta-r18                OPTIONAL, -- Need OP
    ...
}

SpatialDelta-r18 ::= ENUMERATED {n1, n2, n3, n4, n5, n10, n20, n50, n100}

GNSS-SSR-IOD-Update-r18 ::= SEQUENCE {
    epochTime-r18                       GNSS-SystemTime,
    ssrUpdateInterval-r18               INTEGER (0..15),
    iod-ssr-r18                         INTEGER (0..15),
    iod-ssr-PCVResiduals-r18            INTEGER (0..64),
    ...
}

GNSS-TimeModelList ::= SEQUENCE (SIZE (1..15)) OF GNSS-TimeModelElement

GNSS-TimeModelElement ::= SEQUENCE {
    gnss-TimeModelRefTime       INTEGER (0..65535),
    tA0                         INTEGER (-67108864..67108863),
    tA1                         INTEGER (-4096..4095)                   OPTIONAL,   -- Need ON
    tA2                         INTEGER (-64..63)                       OPTIONAL,   -- Need ON
    gnss-TO-ID                  INTEGER (1..15),
    weekNumber                  INTEGER (0..8191)                       OPTIONAL,   -- Need ON
    deltaT                      INTEGER (-128..127)                     OPTIONAL,   -- Need ON
    ...
}

GNSS-DifferentialCorrections ::= SEQUENCE {
    dgnss-RefTime       INTEGER (0..3599),
    dgnss-SgnTypeList   DGNSS-SgnTypeList,
    ...
}

DGNSS-SgnTypeList ::= SEQUENCE (SIZE (1..3)) OF DGNSS-SgnTypeElement

DGNSS-SgnTypeElement ::= SEQUENCE {
    gnss-SignalID       GNSS-SignalID,
    gnss-StatusHealth   INTEGER (0..7),
    dgnss-SatList       DGNSS-SatList,
    ...
}

DGNSS-SatList ::= SEQUENCE (SIZE (1..64)) OF DGNSS-CorrectionsElement

DGNSS-CorrectionsElement ::= SEQUENCE {
    svID                SV-ID,
    iod                 BIT STRING (SIZE(11)),
    udre                INTEGER (0..3),
    pseudoRangeCor      INTEGER (-2047..2047),
    rangeRateCor        INTEGER (-127..127),
    udreGrowthRate      INTEGER (0..7)          OPTIONAL,   -- Need ON
    udreValidityTime    INTEGER (0..7)          OPTIONAL,   -- Need ON
    ...
}

GNSS-NavigationModel ::= SEQUENCE {
    nonBroadcastIndFlag     INTEGER (0..1),
    gnss-SatelliteList      GNSS-NavModelSatelliteList,
    ...
}

GNSS-NavModelSatelliteList ::= SEQUENCE (SIZE(1..64)) OF GNSS-NavModelSatelliteElement

GNSS-NavModelSatelliteElement ::= SEQUENCE {
    svID                SV-ID,
    svHealth            BIT STRING (SIZE(8)),
    iod                 BIT STRING (SIZE(11)),
    gnss-ClockModel     GNSS-ClockModel,
    gnss-OrbitModel     GNSS-OrbitModel,
    ...,
    [[  svHealthExt-v1240 BIT STRING (SIZE(4))          OPTIONAL        -- Need ON
    ]]
}

GNSS-ClockModel ::= CHOICE {
    standardClockModelList  StandardClockModelList,         -- Model-1
    nav-ClockModel          NAV-ClockModel,                 -- Model-2
    cnav-ClockModel         CNAV-ClockModel,                -- Model-3
    glonass-ClockModel      GLONASS-ClockModel,             -- Model-4
    sbas-ClockModel         SBAS-ClockModel,                -- Model-5
    ...,
    bds-ClockModel-r12      BDS-ClockModel-r12,             -- Model-6
            bds-ClockModel2-r16     BDS-ClockModel2-r16,            -- Model-7
    navic-ClockModel-r16    NavIC-ClockModel-r16            -- Model-8
}

GNSS-OrbitModel ::= CHOICE {
    keplerianSet            NavModelKeplerianSet,           -- Model-1
    nav-KeplerianSet        NavModelNAV-KeplerianSet,       -- Model-2
    cnav-KeplerianSet       NavModelCNAV-KeplerianSet,      -- Model-3
    glonass-ECEF            NavModel-GLONASS-ECEF,          -- Model-4
    sbas-ECEF               NavModel-SBAS-ECEF,             -- Model-5
    ...,
    bds-KeplerianSet-r12    NavModel-BDS-KeplerianSet-r12,  -- Model-6
    bds-KeplerianSet2-r16   NavModel-BDS-KeplerianSet2-r16, -- Model-7
    navic-KeplerianSet-r16  NavModel-NavIC-KeplerianSet-r16 -- Model-8
}

StandardClockModelList ::= SEQUENCE (SIZE(1..2)) OF StandardClockModelElement

StandardClockModelElement ::= SEQUENCE {
    stanClockToc            INTEGER (0..16383),
    stanClockAF2            INTEGER (-32..31),
    stanClockAF1            INTEGER (-1048576..1048575),
    stanClockAF0            INTEGER (-1073741824..1073741823),
    stanClockTgd            INTEGER (-512..511)             OPTIONAL,   -- Need ON
    sisa                    INTEGER (0..255),
    stanModelID             INTEGER (0..1)                  OPTIONAL,   -- Need ON
    ...
}

NAV-ClockModel ::= SEQUENCE {
    navToc          INTEGER (0..37799),
    navaf2          INTEGER (-128..127),
    navaf1          INTEGER (-32768..32767),
    navaf0          INTEGER (-2097152..2097151),
    navTgd          INTEGER (-128..127),
    ...
}

CNAV-ClockModel ::= SEQUENCE {
    cnavToc         INTEGER (0..2015),
    cnavTop         INTEGER (0..2015),
    cnavURA0        INTEGER (-16..15),
    cnavURA1        INTEGER (0..7),
    cnavURA2        INTEGER (0..7),
    cnavAf2         INTEGER (-512..511),
    cnavAf1         INTEGER (-524288..524287),
    cnavAf0         INTEGER (-33554432..33554431),
    cnavTgd         INTEGER (-4096..4095),
    cnavISCl1cp     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
    cnavISCl1cd     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
    cnavISCl1ca     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
    cnavISCl2c      INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
    cnavISCl5i5     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
    cnavISCl5q5     INTEGER (-4096..4095)           OPTIONAL,   -- Need ON
    ...
}

GLONASS-ClockModel ::= SEQUENCE {
    gloTau          INTEGER (-2097152..2097151),
    gloGamma        INTEGER (-1024..1023),
    gloDeltaTau     INTEGER (-16..15)               OPTIONAL,   -- Need ON
    ...
}

SBAS-ClockModel ::= SEQUENCE {
    sbasTo          INTEGER (0..5399),
    sbasAgfo        INTEGER (-2048..2047),
    sbasAgf1        INTEGER (-128..127),
    ...
}

BDS-ClockModel-r12 ::= SEQUENCE {
    bdsAODC-r12         INTEGER (0..31),
    bdsToc-r12          INTEGER (0..131071),
    bdsA0-r12           INTEGER (-8388608..8388607),
    bdsA1-r12           INTEGER (-2097152..2097151),
    bdsA2-r12           INTEGER (-1024..1023),
    bdsTgd1-r12         INTEGER (-512..511),
    ...,
    [[ bdsTgd2-r16      INTEGER (-512..511)         OPTIONAL        -- Need ON
    ]]
}

BDS-ClockModel2-r16 ::= SEQUENCE {
    bdsToc-r16      INTEGER (0..2047),
    bdsA0-r16       INTEGER (-16777216..16777215),
    bdsA1-r16       INTEGER (-2097152..2097151),
    bdsA2-r16       INTEGER (-1024..1023),
    bdsTgdB1Cp-r16  INTEGER (-2048..2047),
    bdsIscB1Cd-r16  INTEGER (-2048..2047),
    ...,
    [[  bdsTgdB2ap-r17  INTEGER (-2048..2047)               OPTIONAL,  -- Need ON
        bdsIscB2ad-r17  INTEGER (-2048..2047)               OPTIONAL   -- Need ON
    ]]
}

NavIC-ClockModel-r16 ::= SEQUENCE {
    navic-Toc-r16           INTEGER (0..65535),
    navic-af2-r16           INTEGER (-128..127),
    navic-af1-r16           INTEGER (-32768..32767),
    navic-af0-r16           INTEGER (-2097152..2097151),
    navic-Tgd-r16           INTEGER (-128..127),
    ...
}

NavModelKeplerianSet ::= SEQUENCE {
    keplerToe       INTEGER (0 .. 16383),
    keplerW         INTEGER (-2147483648..2147483647),
    keplerDeltaN    INTEGER (-32768..32767),
    keplerM0        INTEGER (-2147483648..2147483647),
    keplerOmegaDot  INTEGER (-8388608.. 8388607),
    keplerE     INTEGER (0..4294967295),
    keplerIDot      INTEGER (-8192..8191),
    keplerAPowerHalf INTEGER (0.. 4294967295),
    keplerI0        INTEGER (-2147483648..2147483647),
    keplerOmega0    INTEGER (-2147483648..2147483647),
    keplerCrs       INTEGER (-32768..32767),
    keplerCis       INTEGER (-32768..32767),
    keplerCus       INTEGER (-32768..32767),
    keplerCrc       INTEGER (-32768..32767),
    keplerCic       INTEGER (-32768..32767),
    keplerCuc       INTEGER (-32768..32767),
    ...
}

NavModelNAV-KeplerianSet ::= SEQUENCE {
    navURA          INTEGER (0..15),
    navFitFlag      INTEGER (0..1),
    navToe          INTEGER (0..37799),
    navOmega        INTEGER (-2147483648..2147483647),
    navDeltaN       INTEGER (-32768..32767),
    navM0           INTEGER (-2147483648..2147483647),
    navOmegaADot    INTEGER (-8388608..8388607),
    navE            INTEGER (0..4294967295),
    navIDot         INTEGER (-8192..8191),
    navAPowerHalf   INTEGER (0..4294967295),
    navI0           INTEGER (-2147483648..2147483647),
    navOmegaA0      INTEGER (-2147483648..2147483647),
    navCrs          INTEGER (-32768..32767),
    navCis          INTEGER (-32768..32767),
    navCus          INTEGER (-32768..32767),
    navCrc          INTEGER (-32768..32767),
    navCic          INTEGER (-32768..32767),
    navCuc          INTEGER (-32768..32767),
    addNAVparam     SEQUENCE {
        ephemCodeOnL2   INTEGER (0..3),
        ephemL2Pflag    INTEGER (0..1),
        ephemSF1Rsvd    SEQUENCE {
            reserved1       INTEGER (0..8388607),   -- 23-bit field
            reserved2       INTEGER (0..16777215),  -- 24-bit field
            reserved3       INTEGER (0..16777215),  -- 24-bit field
            reserved4       INTEGER (0..65535)      -- 16-bit field
        },
        ephemAODA       INTEGER (0..31)
    }   OPTIONAL,   -- Need ON
    ...
}

NavModelCNAV-KeplerianSet ::= SEQUENCE {
    cnavTop             INTEGER (0..2015),
    cnavURAindex        INTEGER (-16..15),
    cnavDeltaA          INTEGER (-33554432..33554431),
    cnavAdot            INTEGER (-16777216..16777215),
    cnavDeltaNo         INTEGER (-65536..65535),
    cnavDeltaNoDot      INTEGER (-4194304..4194303),
    cnavMo              INTEGER (-4294967296..4294967295),
    cnavE               INTEGER (0..8589934591),
    cnavOmega           INTEGER (-4294967296..4294967295),
    cnavOMEGA0          INTEGER (-4294967296..4294967295),
    cnavDeltaOmegaDot   INTEGER (-65536..65535),
    cnavIo              INTEGER (-4294967296..4294967295),
    cnavIoDot           INTEGER (-16384..16383),
    cnavCis             INTEGER (-32768..32767),
    cnavCic             INTEGER (-32768..32767),
    cnavCrs             INTEGER (-8388608..8388607),
    cnavCrc             INTEGER (-8388608..8388607),
    cnavCus             INTEGER (-1048576..1048575),
    cnavCuc             INTEGER (-1048576..1048575),
    ...
}

NavModel-GLONASS-ECEF ::= SEQUENCE {
    gloEn               INTEGER (0..31),
    gloP1               BIT STRING (SIZE(2)),
    gloP2               BOOLEAN,
    gloM                INTEGER (0..3),
    gloX                INTEGER (-67108864..67108863),
    gloXdot             INTEGER (-8388608..8388607),
    gloXdotdot          INTEGER (-16..15),
    gloY                INTEGER (-67108864..67108863),
    gloYdot             INTEGER (-8388608..8388607),
    gloYdotdot          INTEGER (-16..15),
    gloZ                INTEGER (-67108864..67108863),
    gloZdot             INTEGER (-8388608..8388607),
    gloZdotdot          INTEGER (-16..15),
    ...
}

NavModel-SBAS-ECEF ::= SEQUENCE {
    sbasTo              INTEGER (0..5399)                   OPTIONAL,   -- Cond ClockModel
    sbasAccuracy        BIT STRING (SIZE(4)),
    sbasXg              INTEGER (-536870912..536870911),
    sbasYg              INTEGER (-536870912..536870911),
    sbasZg              INTEGER (-16777216..16777215),
    sbasXgDot           INTEGER (-65536..65535),
    sbasYgDot           INTEGER (-65536..65535),
    sbasZgDot           INTEGER (-131072..131071),
    sbasXgDotDot        INTEGER (-512..511),
    sbagYgDotDot        INTEGER (-512..511),
    sbasZgDotDot        INTEGER (-512..511),
    ...
}

NavModel-BDS-KeplerianSet-r12 ::= SEQUENCE {
            bdsAODE-r12             INTEGER (0..31),
            bdsURAI-r12             INTEGER (0..15),
            bdsToe-r12              INTEGER (0..131071),
    bdsAPowerHalf-r12       INTEGER (0..4294967295),
    bdsE-r12                INTEGER (0..4294967295),
    bdsW-r12                INTEGER (-2147483648..2147483647),
    bdsDeltaN-r12           INTEGER (-32768..32767),
    bdsM0-r12               INTEGER (-2147483648..2147483647),
    bdsOmega0-r12           INTEGER (-2147483648..2147483647),
    bdsOmegaDot-r12         INTEGER (-8388608..8388607),
    bdsI0-r12               INTEGER (-2147483648..2147483647),
    bdsIDot-r12             INTEGER (-8192..8191),
    bdsCuc-r12              INTEGER (-131072..131071),
    bdsCus-r12              INTEGER (-131072..131071),
    bdsCrc-r12              INTEGER (-131072..131071),
    bdsCrs-r12              INTEGER (-131072..131071),
    bdsCic-r12              INTEGER (-131072..131071),
    bdsCis-r12              INTEGER (-131072..131071),
    ...
}

NavModel-BDS-KeplerianSet2-r16 ::= SEQUENCE {
        bdsIODE-r16         INTEGER (0..255),
        bdsToe-r16                  INTEGER (0..2047),
        bdsDeltaA-r16           INTEGER (-33554432..33554431),
        bdsAdot-r16                 INTEGER (-16777216..16777216),
        bdsDeltaN0-r16          INTEGER (-65536..65535),
        bdsDeltaN0dot-r16       INTEGER (-4194304..4194303),
        bdsM0-r16                   INTEGER (-4294967296..4294967295),
        bdsE-r16                    INTEGER (0..8589934591),
        bdsOmega-r16            INTEGER (-4294967296..4294967295),
        bdsOmega0-r16           INTEGER (-4294967296..4294967295),
        bdsI0-r16                   INTEGER (-4294967296..4294967295),
        bdsOmegaDot-r16     INTEGER (-262144..262143),
            bdsI0Dot-r16            INTEGER (-16384..16383),
    bdsCuc-r16              INTEGER (-1048576..1048575),
    bdsCus-r16              INTEGER (-1048576..1048575),
        bdsCrc-r16              INTEGER (-8388608..8388607),
        bdsCrs-r16              INTEGER (-8388608..8388607),
    bdsCic-r16              INTEGER (-32768..32767),
    bdsCis-r16              INTEGER (-32768..32767),
    ...
}

NavModel-NavIC-KeplerianSet-r16  ::= SEQUENCE {
    navic-Toe-r16           INTEGER (0..65536),
    navic-URAI-r16          INTEGER (0..15),
    navic-W-r16             INTEGER (-2147483648..2147483647),
    navic-DeltaN-r16        INTEGER (-2097152..2097151),
    navic-M0-r16            INTEGER (-2147483648..2147483647),
    navic-OmegaDot-r16      INTEGER (-2147483648..2147483647),
    navic-E-r16             INTEGER (0..4294967295),
    navic-IDot-r16          INTEGER (-8192..8191),
    navic-APowerHalf-r16    INTEGER (0.. 4294967295),
    navic-I0-r16            INTEGER (-2147483648..2147483647),
    navic-Omega0-r16        INTEGER (-2147483648..2147483647),
    navic-Crs-r16           INTEGER (-32768..32767),
    navic-Cis-r16           INTEGER (-32768..32767),
    navic-Cus-r16           INTEGER (-32768..32767),
    navic-Crc-r16           INTEGER (-32768..32767),
    navic-Cic-r16           INTEGER (-32768..32767),
    navic-Cuc-r16           INTEGER (-32768..32767),
    ...
}

GNSS-RealTimeIntegrity ::= SEQUENCE {
    gnss-BadSignalList  GNSS-BadSignalList,
    ...
}

GNSS-BadSignalList ::= SEQUENCE (SIZE(1..64)) OF BadSignalElement

BadSignalElement ::= SEQUENCE {
    badSVID         SV-ID,
    badSignalID     GNSS-SignalIDs  OPTIONAL,   -- Need OP
    ...
}

GNSS-DataBitAssistance ::= SEQUENCE {
    gnss-TOD                INTEGER (0..3599),
    gnss-TODfrac            INTEGER (0..999)        OPTIONAL,   -- Need ON
    gnss-DataBitsSatList    GNSS-DataBitsSatList,
    ...
}

GNSS-DataBitsSatList ::= SEQUENCE (SIZE(1..64))OF GNSS-DataBitsSatElement

GNSS-DataBitsSatElement ::= SEQUENCE {
    svID                    SV-ID,
    gnss-DataBitsSgnList    GNSS-DataBitsSgnList,
    ...
}

GNSS-DataBitsSgnList ::= SEQUENCE (SIZE(1..8)) OF GNSS-DataBitsSgnElement

GNSS-DataBitsSgnElement ::= SEQUENCE {
    gnss-SignalType         GNSS-SignalID,
    gnss-DataBits           BIT STRING (SIZE (1..1024)),
    ...
}

GNSS-AcquisitionAssistance ::= SEQUENCE {
    gnss-SignalID               GNSS-SignalID,
    gnss-AcquisitionAssistList  GNSS-AcquisitionAssistList,
    ...,
    confidence-r10              INTEGER (0..100)    OPTIONAL    -- Need ON
}

GNSS-AcquisitionAssistList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AcquisitionAssistElement

GNSS-AcquisitionAssistElement ::= SEQUENCE {
    svID                        SV-ID,
    doppler0                    INTEGER (-2048..2047),
    doppler1                    INTEGER (0..63),
    dopplerUncertainty          INTEGER (0..4),
    codePhase                   INTEGER (0..1022),
    intCodePhase                INTEGER (0..127),
    codePhaseSearchWindow       INTEGER (0..31),
    azimuth                     INTEGER (0..511),
    elevation                   INTEGER (0..127),
    ...,
    codePhase1023               BOOLEAN             OPTIONAL,   -- Need OP
    dopplerUncertaintyExt-r10   ENUMERATED {    d60,
                                                d80,
                                                d100,
                                                d120,
                                                noInformation, ... }    OPTIONAL    -- Need ON
}

GNSS-Almanac ::= SEQUENCE {
    weekNumber                  INTEGER (0..255)    OPTIONAL,   -- Need ON
    toa                         INTEGER (0..255)    OPTIONAL,   -- Need ON
    ioda                        INTEGER (0..3)      OPTIONAL,   -- Need ON
    completeAlmanacProvided     BOOLEAN,
    gnss-AlmanacList            GNSS-AlmanacList,
    ...,
    [[  toa-ext-v1240           INTEGER (256..1023) OPTIONAL,   -- Need ON
        ioda-ext-v1240          INTEGER (4..15)     OPTIONAL    -- Need ON
    ]],
    [[
        weekNumber-ext-r16      INTEGER (256..8191)         OPTIONAL,   -- Need ON
        toa-ext2-r16            INTEGER (256..65535)        OPTIONAL    -- Need ON
    ]]
}

GNSS-AlmanacList ::= SEQUENCE (SIZE(1..64)) OF GNSS-AlmanacElement

GNSS-AlmanacElement ::= CHOICE {
    keplerianAlmanacSet             AlmanacKeplerianSet,        -- Model-1
    keplerianNAV-Almanac            AlmanacNAV-KeplerianSet,    -- Model-2
    keplerianReducedAlmanac         AlmanacReducedKeplerianSet, -- Model-3
    keplerianMidiAlmanac            AlmanacMidiAlmanacSet,      -- Model-4
    keplerianGLONASS                AlmanacGLONASS-AlmanacSet,  -- Model-5
    ecef-SBAS-Almanac               AlmanacECEF-SBAS-AlmanacSet,-- Model-6
    ...,
    keplerianBDS-Almanac-r12        AlmanacBDS-AlmanacSet-r12,  -- Model-7
    keplerianNavIC-Almanac-r16      AlmanacNavIC-AlmanacSet-r16 -- Model-8
}

AlmanacKeplerianSet ::= SEQUENCE {
    svID                    SV-ID,
    kepAlmanacE             INTEGER (0..2047),
    kepAlmanacDeltaI        INTEGER (-1024..1023),
    kepAlmanacOmegaDot      INTEGER (-1024..1023),
    kepSV-StatusINAV        BIT STRING (SIZE (4)),
    kepSV-StatusFNAV        BIT STRING (SIZE (2))           OPTIONAL,   -- Need ON
    kepAlmanacAPowerHalf    INTEGER (-4096..4095),
    kepAlmanacOmega0        INTEGER (-32768..32767),
    kepAlmanacW             INTEGER (-32768..32767),
    kepAlmanacM0            INTEGER (-32768..32767),
    kepAlmanacAF0           INTEGER (-32768..32767),
    kepAlmanacAF1           INTEGER (-4096..4095),
    ...
}

AlmanacNAV-KeplerianSet ::= SEQUENCE {
    svID                    SV-ID,
    navAlmE                 INTEGER (0..65535),
    navAlmDeltaI            INTEGER (-32768..32767),
    navAlmOMEGADOT          INTEGER (-32768..32767),
    navAlmSVHealth          INTEGER (0..255),
    navAlmSqrtA             INTEGER (0..16777215),
    navAlmOMEGAo            INTEGER (-8388608..8388607),
    navAlmOmega             INTEGER (-8388608..8388607),
    navAlmMo                INTEGER (-8388608..8388607),
    navAlmaf0               INTEGER (-1024..1023),
    navAlmaf1               INTEGER (-1024..1023),
    ...
}

AlmanacReducedKeplerianSet ::= SEQUENCE {
    svID                    SV-ID,
    redAlmDeltaA            INTEGER (-128..127),
    redAlmOmega0            INTEGER (-64..63),
    redAlmPhi0              INTEGER (-64..63),
    redAlmL1Health          BOOLEAN,
    redAlmL2Health          BOOLEAN,
    redAlmL5Health          BOOLEAN,
    ...
}

AlmanacMidiAlmanacSet ::= SEQUENCE {
    svID                    SV-ID,
    midiAlmE                INTEGER (0..2047),
    midiAlmDeltaI           INTEGER (-1024..1023),
    midiAlmOmegaDot         INTEGER (-1024..1023),
    midiAlmSqrtA            INTEGER (0..131071),
    midiAlmOmega0           INTEGER (-32768..32767),
    midiAlmOmega            INTEGER (-32768..32767),
    midiAlmMo               INTEGER (-32768..32767),
    midiAlmaf0              INTEGER (-1024..1023),
    midiAlmaf1              INTEGER (-512..511),
    midiAlmL1Health         BOOLEAN,
    midiAlmL2Health         BOOLEAN,
    midiAlmL5Health         BOOLEAN,
    ...
}

AlmanacGLONASS-AlmanacSet ::= SEQUENCE {
    gloAlm-NA               INTEGER (1..1461),
    gloAlmnA                INTEGER (1..24),
    gloAlmHA                INTEGER (0..31),
    gloAlmLambdaA           INTEGER (-1048576..1048575),
    gloAlmtlambdaA          INTEGER (0..2097151),
    gloAlmDeltaIa           INTEGER (-131072..131071),
    gloAlmDeltaTA           INTEGER (-2097152..2097151),
    gloAlmDeltaTdotA        INTEGER (-64..63),
    gloAlmEpsilonA          INTEGER (0..32767),
    gloAlmOmegaA            INTEGER (-32768..32767),
    gloAlmTauA              INTEGER (-512..511),
    gloAlmCA                INTEGER (0..1),
    gloAlmMA                BIT STRING (SIZE(2))            OPTIONAL,   -- Need ON
    ...
}

AlmanacECEF-SBAS-AlmanacSet ::= SEQUENCE {
    sbasAlmDataID           INTEGER (0..3),
    svID                    SV-ID,
    sbasAlmHealth           BIT STRING (SIZE(8)),
    sbasAlmXg               INTEGER (-16384..16383),
    sbasAlmYg               INTEGER (-16384..16383),
    sbasAlmZg               INTEGER (-256..255),
    sbasAlmXgdot            INTEGER (-4..3),
    sbasAlmYgDot            INTEGER (-4..3),
    sbasAlmZgDot            INTEGER (-8..7),
    sbasAlmTo               INTEGER (0..2047),
    ...
}

AlmanacBDS-AlmanacSet-r12 ::= SEQUENCE {
    svID                    SV-ID,
    bdsAlmToa-r12           INTEGER (0..255)                    OPTIONAL,   -- Cond NotSameForAllSV
        bdsAlmSqrtA-r12         INTEGER (0..16777215),
    bdsAlmE-r12             INTEGER (0..131071),
    bdsAlmW-r12             INTEGER (-8388608..8388607),
    bdsAlmM0-r12            INTEGER (-8388608..8388607),
    bdsAlmOmega0-r12        INTEGER (-8388608..8388607),
    bdsAlmOmegaDot-r12      INTEGER (-65536..65535),
    bdsAlmDeltaI-r12        INTEGER (-32768..32767),
    bdsAlmA0-r12            INTEGER (-1024..1023),
    bdsAlmA1-r12            INTEGER (-1024..1023),
    bdsSvHealth-r12         BIT STRING (SIZE(9))                OPTIONAL,   -- Cond SV-ID
    ...
}

AlmanacNavIC-AlmanacSet-r16  ::= SEQUENCE {
    svID-r16                    SV-ID,
    navic-AlmToa-r16            INTEGER (0..65535)          OPTIONAL,   -- Cond NotSameForAllSV
    navic-AlmE-r16              INTEGER (0..65535),
    navic-AlmOMEGADOT-r16       INTEGER (-32768..32767),
    navic-AlmSqrtA-r16          INTEGER (0..16777215),
    navic-AlmOMEGAo-r16         INTEGER (-8388608..8388607),
    navic-AlmOmega-r16          INTEGER (-8388608..8388607),
    navic-AlmMo-r16             INTEGER (-8388608..8388607),
    navic-Almaf0-r16            INTEGER (-1024..1023),
    navic-Almaf1-r16            INTEGER (-1024..1023),
    ...
}

GNSS-UTC-Model ::= CHOICE {
    utcModel1           UTC-ModelSet1,          -- Model-1
    utcModel2           UTC-ModelSet2,          -- Model-2
    utcModel3           UTC-ModelSet3,          -- Model-3
    utcModel4           UTC-ModelSet4,          -- Model-4
    ...,
    utcModel5-r12       UTC-ModelSet5-r12       -- Model-5
}

UTC-ModelSet1 ::= SEQUENCE {
    gnss-Utc-A1         INTEGER (-8388608..8388607),
    gnss-Utc-A0         INTEGER (-2147483648..2147483647),
    gnss-Utc-Tot        INTEGER (0..255),
    gnss-Utc-WNt        INTEGER (0..255),
    gnss-Utc-DeltaTls   INTEGER (-128..127),
    gnss-Utc-WNlsf      INTEGER (0..255),
    gnss-Utc-DN         INTEGER (-128..127),
    gnss-Utc-DeltaTlsf  INTEGER (-128..127),
    ...
}

UTC-ModelSet2 ::= SEQUENCE {
    utcA0               INTEGER (-32768..32767),
    utcA1               INTEGER (-4096..4095),
    utcA2               INTEGER (-64..63),
    utcDeltaTls         INTEGER (-128..127),
    utcTot              INTEGER (0..65535),
    utcWNot             INTEGER (0..8191),
    utcWNlsf            INTEGER (0..255),
    utcDN               BIT STRING (SIZE(4)),
    utcDeltaTlsf        INTEGER (-128..127),
    ...,
    [[
        utcWNlsf-ext-r16    INTEGER (256..8191) OPTIONAL    -- Need ON
    ]]
}

UTC-ModelSet3 ::= SEQUENCE {
    nA                  INTEGER (1..1461),
    tauC                INTEGER (-2147483648..2147483647),
    b1                  INTEGER (-1024..1023)                   OPTIONAL,   -- Cond GLONASS-M
    b2                  INTEGER (-512..511)                     OPTIONAL,   -- Cond GLONASS-M
    kp                  BIT STRING (SIZE(2))                    OPTIONAL,   -- Cond GLONASS-M
    ...
}

UTC-ModelSet4 ::= SEQUENCE {
    utcA1wnt            INTEGER (-8388608..8388607),
    utcA0wnt            INTEGER (-2147483648..2147483647),
    utcTot              INTEGER (0..255),
    utcWNt              INTEGER (0..255),
    utcDeltaTls         INTEGER (-128..127),
    utcWNlsf            INTEGER (0..255),
    utcDN               INTEGER (-128..127),
    utcDeltaTlsf        INTEGER (-128..127),
    utcStandardID       INTEGER (0..7),
    ...
}

UTC-ModelSet5-r12 ::= SEQUENCE {
    utcA0-r12           INTEGER (-2147483648..2147483647),
    utcA1-r12           INTEGER (-8388608..8388607),
    utcDeltaTls-r12     INTEGER (-128..127),
    utcWNlsf-r12        INTEGER (0..255),
    utcDN-r12           INTEGER (0..255),
    utcDeltaTlsf-r12    INTEGER (-128..127),
    ...
}

GNSS-AuxiliaryInformation ::= CHOICE {
    gnss-ID-GPS     GNSS-ID-GPS,
    gnss-ID-GLONASS GNSS-ID-GLONASS,
    ...,
    [[  gnss-ID-BDS-r16     GNSS-ID-BDS-r16
    ]]
}

GNSS-ID-GPS ::= SEQUENCE    (SIZE(1..64)) OF GNSS-ID-GPS-SatElement

GNSS-ID-GPS-SatElement ::= SEQUENCE {
    svID                SV-ID,
    signalsAvailable    GNSS-SignalIDs,
    ...
}

GNSS-ID-GLONASS ::= SEQUENCE (SIZE(1..64)) OF GNSS-ID-GLONASS-SatElement

GNSS-ID-GLONASS-SatElement ::= SEQUENCE {
    svID                SV-ID,
    signalsAvailable    GNSS-SignalIDs,
    channelNumber       INTEGER (-7..13)        OPTIONAL,       -- Cond FDMA
    ...
}

GNSS-ID-BDS-r16 ::= SEQUENCE    (SIZE(1..64)) OF GNSS-ID-BDS-SatElement-r16

GNSS-ID-BDS-SatElement-r16 ::= SEQUENCE {
    svID-r16            SV-ID,
            satType-r16             INTEGER (0..3),
    ...
}

BDS-DifferentialCorrections-r12 ::= SEQUENCE {
    dbds-RefTime-r12            INTEGER (0..3599),
    bds-SgnTypeList-r12         BDS-SgnTypeList-r12,
    ...
}

BDS-SgnTypeList-r12 ::= SEQUENCE (SIZE (1..3)) OF BDS-SgnTypeElement-r12

BDS-SgnTypeElement-r12 ::= SEQUENCE {
    gnss-SignalID               GNSS-SignalID               OPTIONAL,   -- Need ON
    dbds-CorrectionList-r12     DBDS-CorrectionList-r12,
    ...
}

DBDS-CorrectionList-r12 ::= SEQUENCE (SIZE (1..64)) OF DBDS-CorrectionElement-r12

DBDS-CorrectionElement-r12 ::= SEQUENCE {
    svID                        SV-ID,
    bds-UDREI-r12               INTEGER (0..15),
    bds-RURAI-r12               INTEGER (0..15),
    bds-ECC-DeltaT-r12          INTEGER (-4096..4095),
    ...
}

BDS-GridModelParameter-r12 ::= SEQUENCE {
    bds-RefTime-r12         INTEGER (0..3599),
        gridIonList-r12         GridIonList-r12,
    ...
}

GridIonList-r12 ::= SEQUENCE (SIZE (1..320)) OF GridIonElement-r12

GridIonElement-r12 ::= SEQUENCE {
    igp-ID-r12              INTEGER (1..320),
    dt-r12                  INTEGER (0..511),
    givei-r12               INTEGER (0..15) ,
    ...
}

GNSS-RTK-Observations-r15 ::= SEQUENCE {
                                                                                                    epochTime-r15                           GNSS-SystemTime,
                                                                                                    gnss-ObservationList-r15                GNSS-ObservationList-r15,
                                                                                                    ...
                                                                                                }

GNSS-ObservationList-r15 ::= SEQUENCE (SIZE(1..64)) OF GNSS-RTK-SatelliteDataElement-r15

GNSS-RTK-SatelliteDataElement-r15 ::= SEQUENCE{
    svID-r15                                SV-ID,
    integer-ms-r15                          INTEGER (0..254)                OPTIONAL,   -- Need ON
    rough-range-r15                         INTEGER (0..1023),
    rough-phase-range-rate-r15              INTEGER (-8192..8191)           OPTIONAL,   -- Need ON
    gnss-rtk-SatelliteSignalDataList-r15    GNSS-RTK-SatelliteSignalDataList-r15,
    ...
}

GNSS-RTK-SatelliteSignalDataList-r15 ::= SEQUENCE (SIZE(1..24)) OF
                                                        GNSS-RTK-SatelliteSignalDataElement-r15

GNSS-RTK-SatelliteSignalDataElement-r15 ::= SEQUENCE {
    gnss-SignalID-r15                   GNSS-SignalID,
    fine-PseudoRange-r15                INTEGER (-524288..524287),
    fine-PhaseRange-r15                 INTEGER (-8388608..8388607),
    lockTimeIndicator-r15               INTEGER (0..1023),
    halfCycleAmbiguityIndicator-r15     BIT STRING (SIZE (1)),
    carrier-to-noise-ratio-r15          INTEGER (0..1023)                   OPTIONAL,   -- Need ON
    fine-PhaseRangeRate-r15             INTEGER (-16384..16383)             OPTIONAL,   -- Need ON
    ...
}

GLO-RTK-BiasInformation-r15 ::= SEQUENCE{
    referenceStationID-r15      GNSS-ReferenceStationID-r15,
    cpbIndicator-r15            BIT STRING (SIZE(1)),
    l1-ca-cpBias-r15            INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
    l1-p-cpBias-r15             INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
    l2-ca-cpBias-r15            INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
    l2-p-cpBias-r15             INTEGER (-32768..32767)         OPTIONAL,       -- Need ON
    ...
}

GNSS-RTK-MAC-CorrectionDifferences-r15 ::= SEQUENCE {
    networkID-r15                       GNSS-NetworkID-r15,
    subNetworkID-r15                    GNSS-SubNetworkID-r15               OPTIONAL,   -- Need ON
    master-ReferenceStationID-r15       GNSS-ReferenceStationID-r15,
    l1-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
    l2-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
    rtkCorrectionDifferencesList-r15    RTK-CorrectionDifferencesList-r15,
    ...
}

RTK-CorrectionDifferencesList-r15 ::= SEQUENCE (SIZE (1..32)) OF
                                            RTK-CorrectionDifferencesElement-r15

RTK-CorrectionDifferencesElement-r15 ::= SEQUENCE {
    epochTime-r15                           GNSS-SystemTime,
    auxiliary-referenceStationID-r15        GNSS-ReferenceStationID-r15,
    geometric-ionospheric-corrections-differences-r15
                                            Geometric-Ionospheric-Corrections-Differences-r15,
    ...
}

Geometric-Ionospheric-Corrections-Differences-r15 ::= SEQUENCE (SIZE(1..64)) OF
                                    Geometric-Ionospheric-Corrections-Differences-Element-r15

Geometric-Ionospheric-Corrections-Differences-Element-r15 ::= SEQUENCE {
    svID-r15                                        SV-ID,
    ambiguityStatusFlag-r15                         INTEGER (0..3),
    non-synch-count-r15                             INTEGER (0..7),
    geometricCarrierPhaseCorrectionDifference-r15   INTEGER (-65536..65535),
    iod-r15                                         BIT STRING (SIZE(11)),
    ionosphericCarrierPhaseCorrectionDifference-r15 INTEGER (-65536..65535),
    ...
}

GNSS-RTK-Residuals-r15 ::= SEQUENCE {
    epochTime-r15                       GNSS-SystemTime,
    referenceStationID-r15              GNSS-ReferenceStationID-r15,
    n-Refs-r15                          INTEGER (0..127),
    l1-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
    l2-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
    rtk-residuals-list-r15              RTK-Residuals-List-r15,
    ...
}

RTK-Residuals-List-r15 ::= SEQUENCE (SIZE(1..64)) OF RTK-Residuals-Element-r15

RTK-Residuals-Element-r15 ::= SEQUENCE {
    svID-r15            SV-ID,
    s-oc-r15            INTEGER (0..255),
    s-od-r15            INTEGER (0..511),
    s-oh-r15            INTEGER (0..63),
    s-lc-r15            INTEGER (0..1023),
    s-ld-r15            INTEGER (0..1023),
    ...
}

GNSS-RTK-FKP-Gradients-r15 ::= SEQUENCE {
    referenceStationID-r15              GNSS-ReferenceStationID-r15,
    epochTime-r15                       GNSS-SystemTime,
    l1-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
    l2-r15                              GNSS-FrequencyID-r15                OPTIONAL,   -- Need OP
    fkp-gradients-list-r15              FKP-Gradients-List-r15,
    ...
}

FKP-Gradients-List-r15 ::= SEQUENCE (SIZE(1..64)) OF FKP-Gradients-Element-r15

FKP-Gradients-Element-r15 ::= SEQUENCE {
    svID-r15                            SV-ID,
    iod-r15                             BIT STRING (SIZE(11)),
    north-geometric-gradient-r15        INTEGER (-2048..2047),
    east-geometric-gradient-r15         INTEGER (-2048..2047),
    north-ionospheric-gradient-r15      INTEGER (-8192..8191),
    east-ionospheric-gradient-r15       INTEGER (-8192..8191),
    ...
}

GNSS-SSR-OrbitCorrections-r15 ::= SEQUENCE {
    epochTime-r15                       GNSS-SystemTime,
    ssrUpdateInterval-r15               INTEGER (0..15),
    satelliteReferenceDatum-r15         ENUMERATED { itrf, regional, ... },
    iod-ssr-r15                         INTEGER (0..15),
    ssr-OrbitCorrectionList-r15         SSR-OrbitCorrectionList-r15,
    ...,
    [[
        orbit-IntegrityParameters-r17   ORBIT-IntegrityParameters-r17   OPTIONAL -- Need OR
    ]]
}

SSR-OrbitCorrectionList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-OrbitCorrectionSatelliteElement-r15

SSR-OrbitCorrectionSatelliteElement-r15 ::= SEQUENCE {
    svID-r15                            SV-ID,
    iod-r15                             BIT STRING (SIZE(11)),
    delta-radial-r15                    INTEGER (-2097152..2097151),
    delta-AlongTrack-r15                INTEGER (-524288..524287),
    delta-CrossTrack-r15                INTEGER (-524288..524287),
    dot-delta-radial-r15                INTEGER (-1048576..1048575)     OPTIONAL, -- Need ON
    dot-delta-AlongTrack-r15            INTEGER (-262144..262143)       OPTIONAL, -- Need ON
    dot-delta-CrossTrack-r15            INTEGER (-262144..262143)       OPTIONAL, -- Need ON
    ...,
    [[
        ssr-IntegrityOrbitBounds-r17    SSR-IntegrityOrbitBounds-r17    OPTIONAL  -- Cond Integrity1
    ]]
}

ORBIT-IntegrityParameters-r17 ::= SEQUENCE {
    probOnsetConstFault-r17                 INTEGER (0..255),
    meanConstFaultDuration-r17              INTEGER (1..3600),
    probOnsetSatFault-r17                   INTEGER (0..255),
    meanSatFaultDuration-r17                INTEGER (1..3600),
    orbitRangeErrorCorrelationTime-r17      INTEGER (0..255)            OPTIONAL, -- Need OR
    orbitRangeRateErrorCorrelationTime-r17  INTEGER (0..255)            OPTIONAL, -- Cond Integrity2
    ...
}

SSR-IntegrityOrbitBounds-r17 ::= SEQUENCE {
    meanOrbitError-r17              RAC-OrbitalErrorComponents-r17,
    stdDevOrbitError-r17            RAC-OrbitalErrorComponents-r17,
    meanOrbitRateError-r17          RAC-OrbitalErrorComponents-r17,
    stdDevOrbitRateError-r17        RAC-OrbitalErrorComponents-r17,
    ...
}

RAC-OrbitalErrorComponents-r17  ::= SEQUENCE {
    radial-r17          INTEGER (0..255),
    alongTrack-r17      INTEGER (0..255),
    crossTrack-r17      INTEGER (0..255)
}

GNSS-SSR-ClockCorrections-r15 ::= SEQUENCE {
    epochTime-r15                       GNSS-SystemTime,
    ssrUpdateInterval-r15               INTEGER (0..15),
    iod-ssr-r15                         INTEGER (0..15),
    ssr-ClockCorrectionList-r15         SSR-ClockCorrectionList-r15,
    ...,
    [[
        clock-IntegrityParameters-r17   CLOCK-IntegrityParameters-r17       OPTIONAL   -- Need OR
    ]]
}

SSR-ClockCorrectionList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-ClockCorrectionSatelliteElement-r15

SSR-ClockCorrectionSatelliteElement-r15 ::= SEQUENCE {
    svID-r15                            SV-ID,
    delta-Clock-C0-r15                  INTEGER (-2097152..2097151),
    delta-Clock-C1-r15                  INTEGER (-1048576..1048575)         OPTIONAL, -- Need ON
    delta-Clock-C2-r15                  INTEGER (-67108864..67108863)       OPTIONAL, -- Need ON
    ...,
    [[
        ssr-IntegrityClockBounds-r17    SSR-IntegrityClockBounds-r17        OPTIONAL  -- Need OR
    ]]
}

CLOCK-IntegrityParameters-r17 ::= SEQUENCE {
    clockRangeErrorCorrelationTime-r17      INTEGER (0..255),
    clockRangeRateErrorCorrelationTime-r17  INTEGER (0..255),
    ...
}

SSR-IntegrityClockBounds-r17 ::= SEQUENCE {
    meanClock-r17                           INTEGER (0..255),
    stdDevClock-r17                         INTEGER (0..255),
    meanClockRate-r17                       INTEGER (0..255),
    stdDevClockRate-r17                     INTEGER (0..255),
    ...
}

GNSS-SSR-CodeBias-r15 ::= SEQUENCE {
    epochTime-r15                       GNSS-SystemTime,
    ssrUpdateInterval-r15               INTEGER (0..15),
    iod-ssr-r15                         INTEGER (0..15),
    ssr-CodeBiasSatList-r15             SSR-CodeBiasSatList-r15,
    ...
}

SSR-CodeBiasSatList-r15 ::= SEQUENCE (SIZE(1..64)) OF SSR-CodeBiasSatElement-r15

SSR-CodeBiasSatElement-r15 ::= SEQUENCE {
    svID-r15                            SV-ID,
    ssr-CodeBiasSignalList-r15          SSR-CodeBiasSignalList-r15,
    ...
}

SSR-CodeBiasSignalList-r15 ::= SEQUENCE (SIZE(1..16)) OF SSR-CodeBiasSignalElement-r15

SSR-CodeBiasSignalElement-r15 ::= SEQUENCE {
    signal-and-tracking-mode-ID-r15     GNSS-SignalID,
    codeBias-r15                        INTEGER (-8192..8191),
    ...,
    [[
    ssr-IntegrityCodeBiasBounds-r17     SSR-IntegrityCodeBiasBounds-r17     OPTIONAL    -- Need OR
    ]]
}

SSR-IntegrityCodeBiasBounds-r17 ::= SEQUENCE {
    meanCodeBias-r17                    INTEGER (0..255),
    stdDevCodeBias-r17                  INTEGER (0..255),
    meanCodeBiasRate-r17                INTEGER (0..255),
    stdDevCodeBiasRate-r17              INTEGER (0..255),
    ...
}

GNSS-SSR-URA-r16 ::= SEQUENCE {
    epochTime-r16                       GNSS-SystemTime,
    ssrUpdateInterval-r16               INTEGER (0..15),
    iod-ssr-r16                         INTEGER (0..15),
    ssr-URA-SatList-r16                 SSR-URA-SatList-r16,
    ...
}

SSR-URA-SatList-r16 ::= SEQUENCE (SIZE(1..64)) OF SSR-URA-SatElement-r16

SSR-URA-SatElement-r16 ::= SEQUENCE {
    svID-r16                            SV-ID,
    ssr-URA-r16                         BIT STRING (SIZE (6)),
    ...
}

GNSS-SSR-PhaseBias-r16 ::= SEQUENCE {
    epochTime-r16                       GNSS-SystemTime,
    ssrUpdateInterval-r16               INTEGER (0..15),
    iod-ssr-r16                         INTEGER (0..15),
    ssr-PhaseBiasSatList-r16            SSR-PhaseBiasSatList-r16,
    ...
}

SSR-PhaseBiasSatList-r16 ::= SEQUENCE (SIZE(1..64)) OF SSR-PhaseBiasSatElement-r16

SSR-PhaseBiasSatElement-r16 ::= SEQUENCE {
    svID-r16                            SV-ID,
    ssr-PhaseBiasSignalList-r16         SSR-PhaseBiasSignalList-r16,
    ...
}

SSR-PhaseBiasSignalList-r16 ::= SEQUENCE (SIZE(1..16)) OF SSR-PhaseBiasSignalElement-r16

SSR-PhaseBiasSignalElement-r16 ::= SEQUENCE {
    signal-and-tracking-mode-ID-r16     GNSS-SignalID,
    phaseBias-r16                       INTEGER (-16384..16383),
    phaseDiscontinuityIndicator-r16     INTEGER (0..3),
    phaseBiasIntegerIndicator-r16       INTEGER (0..3)                  OPTIONAL,   -- Need OP
    ...,
    [[
    ssr-IntegrityPhaseBiasBounds-r17    SSR-IntegrityPhaseBiasBounds-r17    OPTIONAL    -- Need OR
    ]]
}

SSR-IntegrityPhaseBiasBounds-r17 ::= SEQUENCE {
    meanPhaseBias-r17                   INTEGER (0..255),
    stdDevPhaseBias-r17                 INTEGER (0..255),
    meanPhaseBiasRate-r17               INTEGER (0..255),
    stdDevPhaseBiasRate-r17             INTEGER (0..255),
    ...
}

GNSS-SSR-STEC-Correction-r16 ::= SEQUENCE {
    epochTime-r16                       GNSS-SystemTime,
    ssrUpdateInterval-r16               INTEGER (0..15),
    iod-ssr-r16                         INTEGER (0..15),
    correctionPointSetID-r16            INTEGER (0..16383),
    stec-SatList-r16                    STEC-SatList-r16,
    ...,
    [[
        stec-IntegrityParameters-r17    STEC-IntegrityParameters-r17        OPTIONAL    -- Need OR
    ]]
}

STEC-SatList-r16 ::= SEQUENCE (SIZE(1..64)) OF STEC-SatElement-r16

STEC-SatElement-r16 ::= SEQUENCE {
    svID-r16                            SV-ID,
    stecQualityIndicator-r16            BIT STRING (SIZE(6)),
    stec-C00-r16                        INTEGER (-8192..8191),
    stec-C01-r16                        INTEGER (-2048..2047)               OPTIONAL, -- Need ON
    stec-C10-r16                        INTEGER (-2048..2047)               OPTIONAL, -- Need ON
    stec-C11-r16                        INTEGER (-512..511)                 OPTIONAL, -- Need ON
    ...,
    [[
        stec-IntegrityErrorBounds-r17   STEC-IntegrityErrorBounds-r17   OPTIONAL  -- Cond Integrity1
    ]]
}

STEC-IntegrityParameters-r17 ::= SEQUENCE {
    probOnsetIonoFault-r17                      INTEGER (0..255),
    meanIonoFaultDuration-r17                   INTEGER (1..256),
    ionoRangeErrorCorrelationTime-r17           INTEGER (1..255)        OPTIONAL, -- Need OR
    ionoRangeRateErrorCorrelationTime-r17       INTEGER (1..255)        OPTIONAL, -- Cond Integrity2
    ...
}

STEC-IntegrityErrorBounds-r17 ::= SEQUENCE {
    meanIonosphere-r17                          INTEGER (0..255),
    stdDevIonosphere-r17                        INTEGER (0..255),
    meanIonosphereRate-r17                      INTEGER (0..255),
    stdDevIonosphereRate-r17                    INTEGER (0..255),
    ...
}

GNSS-SSR-GriddedCorrection-r16 ::= SEQUENCE {
    epochTime-r16                               GNSS-SystemTime,
    ssrUpdateInterval-r16                       INTEGER (0..15),
    iod-ssr-r16                                 INTEGER (0..15),
    troposphericDelayQualityIndicator-r16       BIT STRING (SIZE(6))        OPTIONAL, -- Cond Tropo
    correctionPointSetID-r16                    INTEGER (0..16383),
    gridList-r16                                GridList-r16,
    ...,
    [[
    ssr-GriddedCorrectionIntegrityParameters-r17
                                                SSR-GriddedCorrectionIntegrityParameters-r17
                                                                            OPTIONAL  -- Need OR
    ]]
}

GridList-r16 ::= SEQUENCE (SIZE(1..64)) OF GridElement-r16

GridElement-r16 ::= SEQUENCE {
    tropospericDelayCorrection-r16  TropospericDelayCorrection-r16  OPTIONAL, -- Need ON
    stec-ResidualSatList-r16        STEC-ResidualSatList-r16        OPTIONAL, -- Need ON
    ...
}

TropospericDelayCorrection-r16 ::= SEQUENCE {
    tropoHydroStaticVerticalDelay-r16       INTEGER (-256..255),
    tropoWetVerticalDelay-r16               INTEGER (-128..127),
    ...,
    [[
    tropoDelayIntegrityErrorBounds-r17      TropoDelayIntegrityErrorBounds-r17
                                                                    OPTIONAL -- Cond Integrity1
    ]]
}

STEC-ResidualSatList-r16 ::= SEQUENCE (SIZE(1..64)) OF STEC-ResidualSatElement-r16

STEC-ResidualSatElement-r16 ::= SEQUENCE {
    svID-r16                            SV-ID,
    stecResidualCorrection-r16          CHOICE {
                    b7-r16                  INTEGER (-64..63),
                    b16-r16                 INTEGER (-32768..32767)
    },
    ...
}

SSR-GriddedCorrectionIntegrityParameters-r17 ::= SEQUENCE {
    probOnsetTroposphereFault-r17                   INTEGER (0..255),
    meanTroposphereFaultDuration-r17                INTEGER (1..256),
    troposphereRangeErrorCorrelationTime-r17        INTEGER (1..255)    OPTIONAL, -- Need OR
    troposphereRangeRateErrorCorrelationTime-r17    INTEGER (1..255)    OPTIONAL, -- Cond Integrity2
    ...
}

TropoDelayIntegrityErrorBounds-r17 ::= SEQUENCE {
    meanTroposphereVerticalHydroStaticDelay-r17         INTEGER (0..255),
    stdDevTroposphereVerticalHydroStaticDelay-r17       INTEGER (0..255),
    meanTroposphereVerticalWetDelay-r17                 INTEGER (0..255),
    stdDevTroposphereVerticalWetDelay-r17               INTEGER (0..255),
    meanTroposphereVerticalHydroStaticDelayRate-r17     INTEGER (0..255),
    stdDevTroposphereVerticalHydroStaticDelayRate-r17   INTEGER (0..255),
    meanTroposphereVerticalWetDelayRate-r17             INTEGER (0..255),
    stdDevTroposphereVerticalWetDelayRate-r17           INTEGER (0..255),
    ...
}

NavIC-DifferentialCorrections-r16 ::= SEQUENCE {
    navic-RefTOWC-r16               INTEGER (0..50400),
    navic-CorrectionListAutoNav-r16 NavIC-CorrectionListAutoNav-r16,
    ...
}

NavIC-CorrectionListAutoNav-r16 ::= SEQUENCE (SIZE (1..64)) OF NavIC-CorrectionElementAutoNav-r16

NavIC-CorrectionElementAutoNav-r16 ::= SEQUENCE {
    svID                        SV-ID,
    navic-Tod-r16               INTEGER (0..65535),
    navic-iodec-r16             INTEGER (0..255),
    navic-UDRAI-r16             INTEGER (-16..15),
    navic-UDRArateI-r16         INTEGER (-16..15),
    navic-EDC-r16               NavIC-EDC-r16,
    navic-CDC-r16               NavIC-CDC-r16,
    ...
}

NavIC-EDC-r16 ::= SEQUENCE {
    navic-AlphaEDC-r16              INTEGER (-8192..8191),
    navic-BetaEDC-r16               INTEGER (-8192..8191),
    navic-GammaEDC-r16              INTEGER (-16384..16383),
    navic-AoIcorrection-r16         INTEGER (-2048..2047),
    navic-AoRAcorrection-r16        INTEGER (-2048..2047),
    navic-SemiMajorcorrection-r16   INTEGER (-2048..2047),
    ...
}

NavIC-CDC-r16 ::= SEQUENCE {
    navic-ClockBiasCorrection-r16   INTEGER (-4096..4095),
    navic-ClockDriftCorrection-r16  INTEGER (-128..127),
    ...
}

        NavIC-GridModelParameter-r16 ::= SEQUENCE {
            navic-RefTOWC-r16   INTEGER (0..50400),
            regionMasked-r16    INTEGER (0..1023),
            regionIgpList-r16   RegionIgpList-r16,
            ...
        }

        RegionIgpList-r16 ::= SEQUENCE (SIZE (1..16)) OF RegionIgpElement-r16

        RegionIgpElement-r16 ::= SEQUENCE {
            regionID-r16    INTEGER (0..15),
            givei1-r16      INTEGER (0..15),
            givd1-r16       INTEGER (0..511),
            givei2-r16      INTEGER (0..15),
            givd2-r16       INTEGER (0..511),
            givei3-r16      INTEGER (0..15),
            givd3-r16       INTEGER (0..511),
            givei4-r16      INTEGER (0..15),
            givd4-r16       INTEGER (0..511),
            givei5-r16      INTEGER (0..15),
            givd5-r16       INTEGER (0..511),
            givei6-r16      INTEGER (0..15),
            givd6-r16       INTEGER (0..511),
            givei7-r16      INTEGER (0..15),
            givd7-r16       INTEGER (0..511),
            givei8-r16      INTEGER (0..15),
            givd8-r16       INTEGER (0..511),
            givei9-r16      INTEGER (0..15),
            givd9-r16       INTEGER (0..511),
            givei10-r16     INTEGER (0..15),
            givd10-r16      INTEGER (0..511),
            givei11-r16     INTEGER (0..15),
            givd11-r16      INTEGER (0..511),
            givei12-r16     INTEGER (0..15),
            givd12-r16      INTEGER (0..511),
            givei13-r16     INTEGER (0..15),
            givd13-r16      INTEGER (0..511),
            givei14-r16     INTEGER (0..15),
            givd14-r16      INTEGER (0..511),
            givei15-r16     INTEGER (0..15),
            givd15-r16      INTEGER (0..511),
            ...
        }

GNSS-SSR-OrbitCorrectionsSet2-r17 ::= SEQUENCE {
    refEph-r17                                  ENUMERATED { b1c,...},
    gnss-SSR-OrbitCorrections-r17               GNSS-SSR-OrbitCorrections-r15,
    ...
}

GNSS-SSR-ClockCorrectionsSet2-r17 ::= SEQUENCE {
    refEph-r17                              ENUMERATED { b1c,...},
    gnss-SSR-ClockCorrections-r17           GNSS-SSR-ClockCorrections-r15,
    ...
}

GNSS-SSR-URA-Set2-r17 ::= SEQUENCE {
    refEph-r17                          ENUMERATED { b1c,...},
    gnss-SSR-URA-r17                    GNSS-SSR-URA-r16,
    ...
}

GNSS-LOS-NLOS-GriddedIndications-r18 ::= SEQUENCE {
    gridPointsSetID-r18                         INTEGER (0..16383),
    expirationTime-r18                          UTCTime             OPTIONAL, -- Need ON
    gridList-r18                                GridList-r18,
    ...
}

GridList-r18 ::= SEQUENCE (SIZE(1..1024)) OF GridElement-r18

GridElement-r18 ::= SEQUENCE {
    gnss-LOS-InfoList-r18               GNSS-LOS-InfoList-r18       OPTIONAL, -- Need ON
    ...
}

GNSS-LOS-InfoList-r18 ::= SEQUENCE (SIZE(1..64)) OF GNSS-LOS-InfoElement-r18

GNSS-LOS-InfoElement-r18 ::= SEQUENCE {
    svID-r18                        SV-ID,
    los-r18                         ENUMERATED{true, false, uncertain},
    ...
}

GNSS-SSR-SatellitePCVResiduals-r18 ::= SEQUENCE {
    iod-ssr-PCVResiduals-r18            INTEGER (0..64),
    ssr-SatellitePCV-List-r18           SSR-SatellitePCV-List-r18,
    ...
}

SSR-SatellitePCV-List-r18 ::= SEQUENCE (SIZE(1..64)) OF SSR-SatellitePCV-Element-r18

SSR-SatellitePCV-Element-r18 ::= SEQUENCE {
    svID-r18                            SV-ID,
    ssr-SatellitePCV-FrequencyList-r18  SSR-SatellitePCV-FrequencyList-r18,
    ...
}

SSR-SatellitePCV-FrequencyList-r18 ::= SEQUENCE (SIZE(1..8)) OF
                                                        SSR-SatellitePCV-FrequencyElement-r18

SSR-SatellitePCV-FrequencyElement-r18 ::= SEQUENCE {
    frequencyID-r18                         GNSS-FrequencyID-r15,
    phaseCenterVariations-r18               SSR-PhaseCenterVariationList-r18,
    ...
}

SSR-PhaseCenterVariationList-r18 ::= SEQUENCE (SIZE(1..32)) OF INTEGER(-1024..1023)

A-GNSS-RequestAssistanceData ::= SEQUENCE {
    gnss-CommonAssistDataReq        GNSS-CommonAssistDataReq        OPTIONAL, -- Cond CommonADReq
    gnss-GenericAssistDataReq       GNSS-GenericAssistDataReq       OPTIONAL, -- Cond GenADReq
    ...,
    [[
        gnss-PeriodicAssistDataReq-r15
                                    GNSS-PeriodicAssistDataReq-r15  OPTIONAL -- Cond PerADReq
    ]]
}

GNSS-CommonAssistDataReq ::= SEQUENCE {
    gnss-ReferenceTimeReq               GNSS-ReferenceTimeReq
                                                                OPTIONAL, -- Cond RefTimeReq
    gnss-ReferenceLocationReq           GNSS-ReferenceLocationReq
                                                                OPTIONAL, -- Cond RefLocReq
    gnss-IonosphericModelReq            GNSS-IonosphericModelReq
                                                                OPTIONAL, -- Cond IonoModReq
    gnss-EarthOrientationParametersReq  GNSS-EarthOrientationParametersReq
                                                                OPTIONAL, -- Cond EOPReq
    ...,
    [[
        gnss-RTK-ReferenceStationInfoReq-r15
                                        GNSS-RTK-ReferenceStationInfoReq-r15
                                                                OPTIONAL, -- Cond ARPReq
        gnss-RTK-AuxiliaryStationDataReq-r15
                                        GNSS-RTK-AuxiliaryStationDataReq-r15
                                                                OPTIONAL -- Cond AuxARPReq
    ]],
    [[
        gnss-SSR-CorrectionPointsReq-r16
                                        GNSS-SSR-CorrectionPointsReq-r16
                                                                OPTIONAL -- Cond PointsReq
    ]],
    [[
        gnss-Integrity-ServiceParametersReq-r17
                            GNSS-Integrity-ServiceParametersReq-r17
                                                                OPTIONAL,   -- Cond IntServiceReq
        gnss-Integrity-ServiceAlertReq-r17
                            GNSS-Integrity-ServiceAlertReq-r17
                                                                OPTIONAL    -- Cond IntAlertReq
    ]],
    [[
        gnss-SSR-IOD-UpdateReq-r18      GNSS-SSR-IOD-UpdateReq-r18
                                                                OPTIONAL    -- Cond IODUpdateReq
    ]]
}

GNSS-GenericAssistDataReq ::= SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataReqElement

GNSS-GenericAssistDataReqElement ::= SEQUENCE {
    gnss-ID                         GNSS-ID,
    sbas-ID                         SBAS-ID                         OPTIONAL, -- Cond GNSS-ID-SBAS
    gnss-TimeModelsReq              GNSS-TimeModelListReq           OPTIONAL, -- Cond TimeModReq
    gnss-DifferentialCorrectionsReq GNSS-DifferentialCorrectionsReq OPTIONAL, -- Cond DGNSS-Req
    gnss-NavigationModelReq         GNSS-NavigationModelReq         OPTIONAL, -- Cond NavModReq
    gnss-RealTimeIntegrityReq       GNSS-RealTimeIntegrityReq       OPTIONAL, -- Cond RTIReq
    gnss-DataBitAssistanceReq       GNSS-DataBitAssistanceReq       OPTIONAL, -- Cond DataBitsReq
    gnss-AcquisitionAssistanceReq   GNSS-AcquisitionAssistanceReq   OPTIONAL, -- Cond AcquAssistReq
    gnss-AlmanacReq                 GNSS-AlmanacReq                 OPTIONAL, -- Cond AlmanacReq
    gnss-UTCModelReq                GNSS-UTC-ModelReq               OPTIONAL, -- Cond UTCModReq
    gnss-AuxiliaryInformationReq    GNSS-AuxiliaryInformationReq    OPTIONAL, -- Cond AuxInfoReq
    ...,
    [[
        bds-DifferentialCorrectionsReq-r12
                                        BDS-DifferentialCorrectionsReq-r12
                                                                            OPTIONAL,   -- Cond DBDS-Req
                bds-GridModelReq-r12        BDS-GridModelReq-r12            OPTIONAL    -- Cond BDS-GridModReq
    ]],
    [[
        gnss-RTK-ObservationsReq-r15
                                    GNSS-RTK-ObservationsReq-r15    OPTIONAL,   -- Cond RTK-OSR-Req
        glo-RTK-BiasInformationReq-r15
                                    GLO-RTK-BiasInformationReq-r15  OPTIONAL,   -- Cond GLO-CPB-Req
        gnss-RTK-MAC-CorrectionDifferencesReq-r15
                                    GNSS-RTK-MAC-CorrectionDifferencesReq-r15
                                                                    OPTIONAL,   -- Cond MAC-Req
        gnss-RTK-ResidualsReq-r15   GNSS-RTK-ResidualsReq-r15       OPTIONAL,   -- Cond Res-Req
        gnss-RTK-FKP-GradientsReq-r15
                                    GNSS-RTK-FKP-GradientsReq-r15   OPTIONAL,   -- Cond FKP-Req
        gnss-SSR-OrbitCorrectionsReq-r15
                                    GNSS-SSR-OrbitCorrectionsReq-r15
                                                                        OPTIONAL,   -- Cond OC-Req
        gnss-SSR-ClockCorrectionsReq-r15
                                    GNSS-SSR-ClockCorrectionsReq-r15
                                                                    OPTIONAL,   -- Cond CC-Req
        gnss-SSR-CodeBiasReq-r15    GNSS-SSR-CodeBiasReq-r15        OPTIONAL    -- Cond CB-Req
    ]],
    [[
        gnss-SSR-URA-Req-r16        GNSS-SSR-URA-Req-r16            OPTIONAL,   -- Cond URA-Req
        gnss-SSR-PhaseBiasReq-r16   GNSS-SSR-PhaseBiasReq-r16       OPTIONAL,   -- Cond PB-Req
        gnss-SSR-STEC-CorrectionReq-r16
                                    GNSS-SSR-STEC-CorrectionReq-r16 OPTIONAL,   -- Cond STEC-Req
        gnss-SSR-GriddedCorrectionReq-r16   GNSS-SSR-GriddedCorrectionReq-r16
                                                                    OPTIONAL,   -- Cond Grid-Req
        navic-DifferentialCorrectionsReq-r16
                                        NavIC-DifferentialCorrectionsReq-r16
                                                                        OPTIONAL,   -- Cond DNavIC-Req
                navic-GridModelReq-r16      NavIC-GridModelReq-r16      OPTIONAL    -- Cond NavIC-GridModReq
    ]],
    [[
        gnss-SSR-OrbitCorrectionsSet2Req-r17
                                    GNSS-SSR-OrbitCorrectionsSet2Req-r17
                                                                    OPTIONAL,   -- Cond OC2-Req
        gnss-SSR-ClockCorrectionsSet2Req-r17
                                    GNSS-SSR-ClockCorrectionsSet2Req-r17
                                                                    OPTIONAL,   -- Cond CC2-Req
        gnss-SSR-URA-Set2Req-r17    GNSS-SSR-URA-Set2Req-r17        OPTIONAL    -- Cond URA2-Req
    ]],
    [[
        gnss-LOS-NLOS-GriddedIndicationsReq-r18 GNSS-LOS-NLOS-GriddedIndicationsReq-r18
                                                                    OPTIONAL,   -- Cond LOS-GridReq
        gnss-SSR-SatellitePCVResidualsReq-r18
                                    GNSS-SSR-SatellitePCVResidualsReq-r18
                                                                    OPTIONAL    -- Cond SatPCV-Req
    ]]
}

GNSS-PeriodicAssistDataReq-r15 ::= SEQUENCE {
    gnss-RTK-PeriodicObservationsReq-r15    GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pOSR
    glo-RTK-PeriodicBiasInformationReq-r15  GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pCPB
    gnss-RTK-MAC-PeriodicCorrectionDifferencesReq-r15
                                            GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pMAC
    gnss-RTK-PeriodicResidualsReq-r15       GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pRes
    gnss-RTK-FKP-PeriodicGradientsReq-r15   GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pFKP
    gnss-SSR-PeriodicOrbitCorrectionsReq-r15
                                            GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pOC
    gnss-SSR-PeriodicClockCorrectionsReq-r15
                                            GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pCC
    gnss-SSR-PeriodicCodeBiasReq-r15        GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pCB
    ...,
    [[
    gnss-SSR-PeriodicURA-Req-r16            GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pURA
    gnss-SSR-PeriodicPhaseBiasReq-r16       GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pPB
    gnss-SSR-PeriodicSTEC-CorrectionReq-r16 GNSS-PeriodicControlParam-r15   OPTIONAL, -- Cond pSTEC
    gnss-SSR-PeriodicGriddedCorrectionReq-r16
                                            GNSS-PeriodicControlParam-r15   OPTIONAL  -- Cond pGrid
    ]],
    [[
    gnss-Integrity-PeriodicServiceAlertReq-r17
                                            GNSS-PeriodicControlParam-r15   OPTIONAL  -- Cond pDNU
    ]],
    [[
    gnss-SSR-PeriodicOrbitCorrectionsSet2Req-r17
                                    GNSS-PeriodicControlParam-r15   OPTIONAL,       -- Cond pOC2
    gnss-SSR-PeriodicClockCorrectionsSet2Req-r17
                                    GNSS-PeriodicControlParam-r15   OPTIONAL,       -- Cond pCC2
    gnss-SSR-PeriodicURA-Set2Req-r17
                                    GNSS-PeriodicControlParam-r15   OPTIONAL        -- Cond pURA2
    ]],
    [[
    gnss-SSR-PeriodicIOD-UpdateReq-r18
                                    GNSS-PeriodicControlParam-r15   OPTIONAL        -- Cond pPCV
    ]]
}

GNSS-ReferenceTimeReq ::= SEQUENCE {
    gnss-TimeReqPrefList    SEQUENCE (SIZE (1..8)) OF GNSS-ID,
    gps-TOW-assistReq       BOOLEAN                             OPTIONAL, -- Cond gps
    notOfLeapSecReq         BOOLEAN                             OPTIONAL, -- Cond glonass
    ...
}

GNSS-ReferenceLocationReq ::=   SEQUENCE {
    ...
}

GNSS-IonosphericModelReq ::=    SEQUENCE {
    klobucharModelReq       BIT STRING (SIZE(2))    OPTIONAL,   -- Cond klobuchar
    neQuickModelReq         NULL                    OPTIONAL,   -- Cond nequick
    ...,
    [[  klobucharModel2Req-r16  NULL                OPTIONAL    -- Cond klobuchar2
    ]]

}

GNSS-EarthOrientationParametersReq ::=  SEQUENCE {
    ...
}

GNSS-RTK-ReferenceStationInfoReq-r15 ::= SEQUENCE {
    antennaDescriptionReq-r15           BOOLEAN,
    antennaHeightReq-r15                BOOLEAN,
    physicalReferenceStationReq-r15     BOOLEAN,
    stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
    ...
}

GNSS-RTK-AuxiliaryStationDataReq-r15 ::= SEQUENCE {
    master-referenceStationID-r15       GNSS-ReferenceStationID-r15     OPTIONAL,
    ...
}

GNSS-SSR-CorrectionPointsReq-r16 ::=    SEQUENCE {
    correctionPointSetID-Req-r16            INTEGER (0..16383)          OPTIONAL,
    ...
}

GNSS-Integrity-ServiceParametersReq-r17 ::= SEQUENCE {
    ...
}

GNSS-Integrity-ServiceAlertReq-r17 ::=  SEQUENCE {
    ...
}

GNSS-SSR-IOD-UpdateReq-r18 ::=  SEQUENCE {
    ...
}

GNSS-TimeModelListReq ::= SEQUENCE (SIZE(1..15)) OF GNSS-TimeModelElementReq

GNSS-TimeModelElementReq ::= SEQUENCE {
    gnss-TO-IDsReq  INTEGER (1..15),
    deltaTreq       BOOLEAN,
    ...
}

GNSS-DifferentialCorrectionsReq ::= SEQUENCE {
    dgnss-SignalsReq            GNSS-SignalIDs,
    dgnss-ValidityTimeReq       BOOLEAN,
    ...
}

GNSS-NavigationModelReq ::= CHOICE {
    storedNavList       StoredNavListInfo,
    reqNavList          ReqNavListInfo,
    ...
}

StoredNavListInfo ::= SEQUENCE {
    gnss-WeekOrDay          INTEGER (0..4095),
    gnss-Toe                INTEGER (0..255),
    t-toeLimit              INTEGER (0..15),
    satListRelatedDataList  SatListRelatedDataList  OPTIONAL,
    ...
}

SatListRelatedDataList ::= SEQUENCE (SIZE (1..64)) OF SatListRelatedDataElement

SatListRelatedDataElement ::= SEQUENCE {
    svID                SV-ID,
    iod             BIT STRING (SIZE(11)),
    clockModelID        INTEGER (1..8)          OPTIONAL,
orbitModelID        INTEGER (1..8)          OPTIONAL,
    ...
}

ReqNavListInfo ::=  SEQUENCE {
    svReqList               BIT STRING (SIZE (64)),
    clockModelID-PrefList   SEQUENCE (SIZE (1..8)) OF   INTEGER (1..8)      OPTIONAL,
    orbitModelID-PrefList   SEQUENCE (SIZE (1..8)) OF   INTEGER (1..8)      OPTIONAL,
    addNavparamReq          BOOLEAN             OPTIONAL,   -- Cond orbitModelID-2
    ...
}

GNSS-RealTimeIntegrityReq ::=   SEQUENCE {
    ...
}

GNSS-DataBitAssistanceReq ::=   SEQUENCE {
    gnss-TOD-Req        INTEGER (0..3599),
    gnss-TOD-FracReq    INTEGER (0..999)        OPTIONAL,
    dataBitInterval     INTEGER (0..15),
    gnss-SignalType     GNSS-SignalIDs,
    gnss-DataBitsReq    GNSS-DataBitsReqSatList OPTIONAL,
    ...
}

GNSS-DataBitsReqSatList ::= SEQUENCE (SIZE(1..64)) OF GNSS-DataBitsReqSatElement

GNSS-DataBitsReqSatElement ::= SEQUENCE {
    svID                SV-ID,
    ...
}

GNSS-AcquisitionAssistanceReq ::=   SEQUENCE {
    gnss-SignalID-Req       GNSS-SignalID,
    ...
}

GNSS-AlmanacReq ::= SEQUENCE {
    modelID             INTEGER(1..8)   OPTIONAL,
    ...
}

GNSS-UTC-ModelReq ::=   SEQUENCE {
    modelID             INTEGER(1..8)   OPTIONAL,
    ...
}

GNSS-AuxiliaryInformationReq ::=    SEQUENCE {
    ...
}

BDS-DifferentialCorrectionsReq-r12 ::=  SEQUENCE {
    dgnss-SignalsReq            GNSS-SignalIDs,
    ...
}

BDS-GridModelReq-r12 ::=    SEQUENCE {
    ...
}

GNSS-RTK-ObservationsReq-r15::=     SEQUENCE {
    gnss-RTK-SignalsReq-r15             GNSS-SignalIDs,
    gnss-RTK-Integer-ms-Req-r15         BOOLEAN,
    gnss-RTK-PhaseRangeRateReq-r15      BOOLEAN,
    gnss-RTK-CNR-Req-r15                BOOLEAN,
    stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
    ...
}

GLO-RTK-BiasInformationReq-r15 ::=  SEQUENCE {
    stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
    ...
}

GNSS-RTK-MAC-CorrectionDifferencesReq-r15 ::=   SEQUENCE {
    master-ReferenceStationID-r15       GNSS-ReferenceStationID-r15             OPTIONAL,
    aux-ReferenceStationList-r15        AUX-ReferenceStationList-r15            OPTIONAL,
    linkCombinations-PrefList-r15       GNSS-Link-CombinationsList-r15          OPTIONAL,
    ...
}

AUX-ReferenceStationList-r15 ::= SEQUENCE (SIZE (1..32)) OF AUX-ReferenceStationID-Element-r15

AUX-ReferenceStationID-Element-r15 ::= SEQUENCE {
    aux-stationID-r15       GNSS-ReferenceStationID-r15,
    ...
}

GNSS-RTK-ResidualsReq-r15 ::=   SEQUENCE {
    stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
    linkCombinations-PrefList-r15       GNSS-Link-CombinationsList-r15  OPTIONAL,
    ...
}

GNSS-RTK-FKP-GradientsReq-r15 ::=   SEQUENCE {
    stationID-r15                       GNSS-ReferenceStationID-r15     OPTIONAL,
    linkCombinations-PrefList-r15       GNSS-Link-CombinationsList-r15  OPTIONAL,
    ...
}

GNSS-SSR-OrbitCorrectionsReq-r15 ::= SEQUENCE {
    storedNavList-r15               GNSS-NavListInfo-r15                OPTIONAL,
    ...,
    [[
    orbit-IntegrityReq-r17  BIT STRING {    correlationTimeReq      (0)
                                        } (SIZE(1..8))                  OPTIONAL
    ]]
}

GNSS-SSR-ClockCorrectionsReq-r15 ::= SEQUENCE {
    storedNavList-r15               GNSS-NavListInfo-r15                OPTIONAL,
    ...,
    [[
        clock-IntegrityParametersReq-r17    ENUMERATED { true }         OPTIONAL,
        ssr-IntegrityClockBoundsReq-r17     ENUMERATED { true }         OPTIONAL
    ]]
}

GNSS-SSR-CodeBiasReq-r15 ::= SEQUENCE {
    signal-and-tracking-mode-ID-Map-r15     GNSS-SignalIDs,
    storedNavList-r15                       GNSS-NavListInfo-r15                OPTIONAL,
    ...,
    [[
    ssr-IntegrityCodeBiasBoundsReq-r17      ENUMERATED { requested }            OPTIONAL
    ]]
}

GNSS-SSR-URA-Req-r16 ::= SEQUENCE {
    ...
}

GNSS-SSR-PhaseBiasReq-r16 ::= SEQUENCE {
    signal-and-tracking-mode-ID-Map-r16     GNSS-SignalIDs,
    storedNavList-r16                       GNSS-NavListInfo-r15                OPTIONAL,
    ...,
    [[
    ssr-IntegrityPhaseBiasBoundsReq-r17     ENUMERATED { requested }            OPTIONAL
    ]]
}

GNSS-SSR-STEC-CorrectionReq-r16 ::= SEQUENCE {
    ...,
    [[
    stec-IntegrityReq-r17   BIT STRING {    correlationTimeReq      (0)
                                        } (SIZE(1..8))                                  OPTIONAL
    ]]
}

GNSS-SSR-GriddedCorrectionReq-r16 ::= SEQUENCE {
    ...,
    [[
    griddedCorrectionIntegrityReq-r17       ENUMERATED { requested }                    OPTIONAL
    ]]
}

NavIC-DifferentialCorrectionsReq-r16 ::=    SEQUENCE {
    dgnss-SignalsReq-r16            GNSS-SignalIDs,
    ...
}

NavIC-GridModelReq-r16 ::=  SEQUENCE {
    ...
}

GNSS-SSR-OrbitCorrectionsSet2Req-r17 ::= SEQUENCE {
    refEphReq-r17                   ENUMERATED { b1c,...},
    gnss-SSR-OrbitCorrectionsSet2Req-r17
                                    GNSS-SSR-OrbitCorrectionsReq-r15    OPTIONAL,   -- Cond OC2-Req
    ...
}

GNSS-SSR-ClockCorrectionsSet2Req-r17 ::= SEQUENCE {
    refEphReq-r17                   ENUMERATED { b1c,...},
    gnss-SSR-ClockCorrectionsSet2Req-r17
                                    GNSS-SSR-ClockCorrectionsReq-r15    OPTIONAL,   -- Cond CC2-Req
    ...
}

GNSS-SSR-URA-Set2Req-r17 ::= SEQUENCE {
    refEphReq-r17                   ENUMERATED { b1c,...},
    ...
}

GNSS-LOS-NLOS-GriddedIndicationsReq-r18 ::= SEQUENCE {
    gridPointsSetID-Req-r18         INTEGER (0..16383)              OPTIONAL,
    relativeLocationInfo-r18        CHOICE {
        inside-r18      ENUMERATED {upper-left, upper-right, lower-left, lower-right, ...},
        outside-r18     ENUMERATED {north, west, south, east, above, below, ...}
    }                                                               OPTIONAL, -- Cond Relative
    verticalGridType-r18            ENUMERATED {ground-level, threeD},
    referenceAltitudeFine-r18       INTEGER (0..9)                  OPTIONAL,
    referenceAltitudeCoarse-r18     INTEGER (-50..900)              OPTIONAL,
    ...
}

GNSS-SSR-SatellitePCVResidualsReq-r18 ::= SEQUENCE {
    ...
}

A-GNSS-ProvideLocationInformation ::= SEQUENCE {
    gnss-SignalMeasurementInformation   GNSS-SignalMeasurementInformation       OPTIONAL,
    gnss-LocationInformation            GNSS-LocationInformation                OPTIONAL,
    gnss-Error                          A-GNSS-Error                            OPTIONAL,
    ...
}

GNSS-SignalMeasurementInformation ::= SEQUENCE {
    measurementReferenceTime        MeasurementReferenceTime,
    gnss-MeasurementList            GNSS-MeasurementList,
    ...
}

MeasurementReferenceTime ::= SEQUENCE {
    gnss-TOD-msec       INTEGER (0..3599999),
    gnss-TOD-frac       INTEGER (0..3999)           OPTIONAL,
    gnss-TOD-unc        INTEGER (0..127)            OPTIONAL,
    gnss-TimeID         GNSS-ID,
    networkTime         CHOICE {
        eUTRA   SEQUENCE {
                physCellId          INTEGER (0..503),
                cellGlobalId        CellGlobalIdEUTRA-AndUTRA       OPTIONAL,
                systemFrameNumber   BIT STRING (SIZE (10)),
                ...
                },
        uTRA    SEQUENCE {
                mode                    CHOICE {
                                        fdd         SEQUENCE {
                                                    primary-CPICH-Info  INTEGER (0..511),
                                                    ...
                                                    },
                                        tdd         SEQUENCE {
                                                    cellParameters      INTEGER (0..127),
                                                    ...
                                                    }
                                        },
                cellGlobalId            CellGlobalIdEUTRA-AndUTRA       OPTIONAL,
                referenceSystemFrameNumber
                                        INTEGER (0..4095),
                ...
                },
        gSM     SEQUENCE {
                bcchCarrier         INTEGER (0..1023),
                bsic                INTEGER (0..63),
                cellGlobalId        CellGlobalIdGERAN                   OPTIONAL,
                referenceFrame      SEQUENCE {
                                    referenceFN     INTEGER (0..65535),
                                    referenceFNMSB      INTEGER (0..63)     OPTIONAL,
                                    ...
                                    },
                deltaGNSS-TOD       INTEGER (0 .. 127)      OPTIONAL,
                ...
                },
        ...,
        nbIoT-r14
                SEQUENCE {
                nbPhysCellId-r14    INTEGER (0..503),
                nbCellGlobalId-r14  ECGI                        OPTIONAL,
                sfn-r14             BIT STRING (SIZE (10)),
                hyperSFN-r14        BIT STRING (SIZE (10))      OPTIONAL,
                ...
                },
        nr-r15  SEQUENCE {
                nrPhysCellId-r15    INTEGER (0..1007),
                nrCellGlobalID-r15  NCGI-r15                    OPTIONAL,
                nr-sfn-r15          BIT STRING (SIZE (10)),
                ...
                }
        }       OPTIONAL,
    ...
}

GNSS-MeasurementList ::= SEQUENCE (SIZE(1..16)) OF GNSS-MeasurementForOneGNSS

GNSS-MeasurementForOneGNSS ::= SEQUENCE {
    gnss-ID                 GNSS-ID,
    gnss-SgnMeasList        GNSS-SgnMeasList,
    ...
}

GNSS-SgnMeasList ::= SEQUENCE (SIZE(1..8)) OF GNSS-SgnMeasElement

GNSS-SgnMeasElement ::= SEQUENCE {
    gnss-SignalID           GNSS-SignalID,
    gnss-CodePhaseAmbiguity INTEGER (0..127)        OPTIONAL,
    gnss-SatMeasList        GNSS-SatMeasList,
    ...
}

GNSS-SatMeasList ::= SEQUENCE (SIZE(1..64)) OF GNSS-SatMeasElement

GNSS-SatMeasElement ::= SEQUENCE {
    svID                SV-ID,
    cNo                 INTEGER (0..63),
    mpathDet            ENUMERATED {notMeasured (0), low (1), medium (2), high (3), ...},
    carrierQualityInd   INTEGER (0..3)              OPTIONAL,
    codePhase           INTEGER (0..2097151),
    integerCodePhase    INTEGER (0..127)            OPTIONAL,
    codePhaseRMSError   INTEGER (0..63),
    doppler             INTEGER (-32768..32767) OPTIONAL,
    adr                 INTEGER (0..33554431)       OPTIONAL,
    ...,
    [[
        adrMSB-r15          INTEGER (0..15)                     OPTIONAL,
        adrSign-r15         ENUMERATED {positive, negative}     OPTIONAL,
        adrRMSerror-r15     INTEGER (0..127)                    OPTIONAL,
        delta-codePhase-r15 INTEGER (0..7)                      OPTIONAL
    ]]
}

GNSS-LocationInformation ::= SEQUENCE {
    measurementReferenceTime        MeasurementReferenceTime,
    agnss-List                      GNSS-ID-Bitmap,
    ...,
    [[
        ha-GNSS-Metrics-r17         HA-GNSS-Metrics-r17     OPTIONAL
    ]]
}

HA-GNSS-Metrics-r17 ::= SEQUENCE {
    nrOfUsedSatellites-r17  INTEGER (0..64),
    hdopi-r17                   INTEGER (1..256)                        OPTIONAL,
    pdopi-r17                   INTEGER (1..256)                        OPTIONAL,
    age-r17                     INTEGER (0..99)                         OPTIONAL,
    fixType-r17                 ENUMERATED {carrier-phase-float,
                                            carrier-phase-fix, ...}     OPTIONAL,
    ...
}

A-GNSS-RequestLocationInformation ::= SEQUENCE {
    gnss-PositioningInstructions        GNSS-PositioningInstructions,
    ...
}

GNSS-PositioningInstructions ::= SEQUENCE {
    gnss-Methods                GNSS-ID-Bitmap,
    fineTimeAssistanceMeasReq   BOOLEAN,
    adrMeasReq                  BOOLEAN,
    multiFreqMeasReq            BOOLEAN,
    assistanceAvailability      BOOLEAN,
    ...,
    [[
        ha-GNSS-Req-r15         ENUMERATED { true }     OPTIONAL    -- Cond UEB
    ]],
    [[
        ha-GNSS-MetricsReq-r17  ENUMERATED { true }     OPTIONAL    -- Cond UEB
    ]]
}

A-GNSS-ProvideCapabilities ::= SEQUENCE {
    gnss-SupportList            GNSS-SupportList                OPTIONAL,
    assistanceDataSupportList   AssistanceDataSupportList       OPTIONAL,
    locationCoordinateTypes     LocationCoordinateTypes         OPTIONAL,
    velocityTypes               VelocityTypes                   OPTIONAL,
    ...,
    [[ periodicalReportingNotSupported-r14
                                PositioningModes                OPTIONAL,
        idleStateForMeasurements-r14
                                ENUMERATED { required }         OPTIONAL
    ]],
    [[ periodicAssistanceData-r15
                                BIT STRING { solicited   (0),
                                             unsolicited (1)    } (SIZE (1..8))     OPTIONAL
    ]],
    [[ scheduledLocationRequestSupported-r17
                                ScheduledLocationTimeSupportPerMode-r17             OPTIONAL
    ]],
    [[ periodicReportingIntervalMsSupport-r18
                                PeriodicReportingIntervalMsSupportPerMode-r18       OPTIONAL
    ]]
}

GNSS-SupportList ::= SEQUENCE (SIZE(1..16)) OF GNSS-SupportElement

GNSS-SupportElement ::= SEQUENCE {
    gnss-ID                         GNSS-ID,
    sbas-IDs                        SBAS-IDs                    OPTIONAL,   -- Cond GNSS-ID-SBAS
    agnss-Modes                     PositioningModes,
    gnss-Signals                    GNSS-SignalIDs,
    fta-MeasSupport                 SEQUENCE {
                                        cellTime    AccessTypes,
                                        mode        PositioningModes,
                                        ...
                                    }                           OPTIONAL,   -- Cond fta
    adr-Support                     BOOLEAN,
    velocityMeasurementSupport      BOOLEAN,
    ...,
    [[
        adrEnhancementsSupport-r15  ENUMERATED { true }         OPTIONAL,
        ha-gnss-Modes-r15           PositioningModes            OPTIONAL
    ]],
    [[
        ha-gnss-MetricsSupport-r17  ENUMERATED { true }         OPTIONAL
    ]]
}

AssistanceDataSupportList ::= SEQUENCE {
    gnss-CommonAssistanceDataSupport    GNSS-CommonAssistanceDataSupport,
    gnss-GenericAssistanceDataSupport   GNSS-GenericAssistanceDataSupport,
    ...
}

GNSS-CommonAssistanceDataSupport ::= SEQUENCE {
    gnss-ReferenceTimeSupport               GNSS-ReferenceTimeSupport
                                                                OPTIONAL, -- Cond RefTimeSup
    gnss-ReferenceLocationSupport           GNSS-ReferenceLocationSupport
                                                                OPTIONAL, -- Cond RefLocSup
    gnss-IonosphericModelSupport            GNSS-IonosphericModelSupport
                                                                OPTIONAL, -- Cond IonoModSup
    gnss-EarthOrientationParametersSupport  GNSS-EarthOrientationParametersSupport
                                                                OPTIONAL, -- Cond EOPSup
    ...,
    [[
        gnss-RTK-ReferenceStationInfoSupport-r15
                                            GNSS-RTK-ReferenceStationInfoSupport-r15
                                                                OPTIONAL, -- Cond ARPSup
        gnss-RTK-AuxiliaryStationDataSupport-r15
                                            GNSS-RTK-AuxiliaryStationDataSupport-r15
                                                                OPTIONAL -- Cond AuxARPSup
    ]],
    [[
        gnss-Integrity-ServiceParametersSupport-r17
                            GNSS-Integrity-ServiceParametersSupport-r17
                                                                OPTIONAL,   -- Cond IntServiceSup
        gnss-Integrity-ServiceAlertSupport-r17
                            GNSS-Integrity-ServiceAlertSupport-r17
                                                                OPTIONAL    -- Cond IntAlertSup
    ]],
    [[
        gnss-SSR-IOD-UpdateSupport-r18      GNSS-SSR-IOD-UpdateSupport-r18
                                                                OPTIONAL    -- Cond IODUpdateSup
    ]]
}

GNSS-ReferenceTimeSupport ::=   SEQUENCE {
    gnss-SystemTime     GNSS-ID-Bitmap,
    fta-Support         AccessTypes                                     OPTIONAL, -- Cond fta
    ...
}

GNSS-ReferenceLocationSupport ::=   SEQUENCE {
    ...
}

GNSS-IonosphericModelSupport ::=    SEQUENCE {
    ionoModel       BIT STRING {    klobuchar   (0),
                                    neQuick     (1),
                                    klobuchar2-r16  (2) } (SIZE (1..8)),
    ...
}

GNSS-EarthOrientationParametersSupport ::=  SEQUENCE {
    ...
}

GNSS-RTK-ReferenceStationInfoSupport-r15 ::=    SEQUENCE {
    ...
}

GNSS-RTK-AuxiliaryStationDataSupport-r15 ::=    SEQUENCE {
    ...
}

GNSS-Integrity-ServiceParametersSupport-r17 ::= SEQUENCE {
    ...
}

GNSS-Integrity-ServiceAlertSupport-r17 ::=  SEQUENCE {
    ...
}

GNSS-SSR-IOD-UpdateSupport-r18 ::=  SEQUENCE {
    ...
}

GNSS-GenericAssistanceDataSupport ::=
                                SEQUENCE (SIZE (1..16)) OF GNSS-GenericAssistDataSupportElement

GNSS-GenericAssistDataSupportElement ::= SEQUENCE {
    gnss-ID                             GNSS-ID,
    sbas-ID                             SBAS-ID                     OPTIONAL, -- Cond GNSSIDSBAS
    gnss-TimeModelsSupport              GNSS-TimeModelListSupport
                                                                    OPTIONAL, -- Cond TimeModSup
    gnss-DifferentialCorrectionsSupport GNSS-DifferentialCorrectionsSupport
                                                                    OPTIONAL, -- Cond DGNSS-Sup
    gnss-NavigationModelSupport         GNSS-NavigationModelSupport
                                                                    OPTIONAL, -- Cond NavModSup
    gnss-RealTimeIntegritySupport       GNSS-RealTimeIntegritySupport
                                                                    OPTIONAL, -- Cond RTISup
    gnss-DataBitAssistanceSupport       GNSS-DataBitAssistanceSupport
                                                                    OPTIONAL, -- Cond DataBitsSup
    gnss-AcquisitionAssistanceSupport   GNSS-AcquisitionAssistanceSupport
                                                                    OPTIONAL, -- Cond AcquAssistSup
    gnss-AlmanacSupport                 GNSS-AlmanacSupport
                                                                    OPTIONAL, -- Cond AlmanacSup
    gnss-UTC-ModelSupport               GNSS-UTC-ModelSupport
                                                                    OPTIONAL, -- Cond UTCModSup
    gnss-AuxiliaryInformationSupport    GNSS-AuxiliaryInformationSupport
                                                                    OPTIONAL, -- Cond AuxInfoSup
    ...,
        [[
            bds-DifferentialCorrectionsSupport-r12
                                        BDS-DifferentialCorrectionsSupport-r12
                                                                    OPTIONAL, -- Cond DBDS-Sup
        bds-GridModelSupport-r12        BDS-GridModelSupport-r12
                                                                            OPTIONAL    -- Cond BDS-GridModSup
    ]],
    [[
        gnss-RTK-ObservationsSupport-r15
                                        GNSS-RTK-ObservationsSupport-r15
                                                                    OPTIONAL,   -- Cond RTK-OSR-Sup
        glo-RTK-BiasInformationSupport-r15
                                        GLO-RTK-BiasInformationSupport-r15
                                                                    OPTIONAL,   -- Cond GLO-CPB-Sup
        gnss-RTK-MAC-CorrectionDifferencesSupport-r15
                                        GNSS-RTK-MAC-CorrectionDifferencesSupport-r15
                                                                    OPTIONAL,   -- Cond MAC-Sup
        gnss-RTK-ResidualsSupport-r15   GNSS-RTK-ResidualsSupport-r15
                                                                    OPTIONAL,   -- Cond Res-Sup
        gnss-RTK-FKP-GradientsSupport-r15
                                        GNSS-RTK-FKP-GradientsSupport-r15
                                                                    OPTIONAL,   -- Cond FKP-Sup
        gnss-SSR-OrbitCorrectionsSupport-r15
                                        GNSS-SSR-OrbitCorrectionsSupport-r15
                                                                    OPTIONAL,   -- Cond OC-Sup
        gnss-SSR-ClockCorrectionsSupport-r15
                                        GNSS-SSR-ClockCorrectionsSupport-r15
                                                                    OPTIONAL,   -- Cond CC-Sup
        gnss-SSR-CodeBiasSupport-r15    GNSS-SSR-CodeBiasSupport-r15
                                                                    OPTIONAL    -- Cond CB-Sup
    ]],
        [[
        gnss-SSR-URA-Support-r16        GNSS-SSR-URA-Support-r16    OPTIONAL,   -- Cond URA-Sup
        gnss-SSR-PhaseBiasSupport-r16   GNSS-SSR-PhaseBiasSupport-r16
                                                                    OPTIONAL,   -- Cond PB-Sup
        gnss-SSR-STEC-CorrectionSupport-r16
                                        GNSS-SSR-STEC-CorrectionSupport-r16
                                                                    OPTIONAL,   -- Cond STEC-Sup
        gnss-SSR-GriddedCorrectionSupport-r16
                                        GNSS-SSR-GriddedCorrectionSupport-r16
                                                                    OPTIONAL,   -- Cond Grid-Sup
            navic-DifferentialCorrectionsSupport-r16
                                        NavIC-DifferentialCorrectionsSupport-r16
                                                                OPTIONAL,   -- Cond DNavIC-Sup
        navic-GridModelSupport-r16      NavIC-GridModelSupport-r16
                                                                        OPTIONAL    -- Cond NavIC-GridModSup
    ]],
    [[
        gnss-SSR-OrbitCorrectionsSet2Support-r17
                                            GNSS-SSR-OrbitCorrectionsSet2Support-r17
                                                                    OPTIONAL,   -- Cond OC2-Sup
        gnss-SSR-ClockCorrectionsSet2Support-r17
                                            GNSS-SSR-ClockCorrectionsSet2Support-r17
                                                                    OPTIONAL,   -- Cond CC2-Sup
        gnss-SSR-URA-Set2Support-r17        GNSS-SSR-URA-Set2Support-r17
                                                                    OPTIONAL    -- Cond URA2-Sup
    ]],
    [[
        gnss-LOS-NLOS-GriddedIndicationsSupport-r18
                                            GNSS-LOS-NLOS-GriddedIndicationsSupport-r18
                                                            OPTIONAL,   -- Cond LOS-NLOS-Grid-Sup
        gnss-SSR-SatellitePCVResidualsSupport-r18
                                            GNSS-SSR-SatellitePCVResidualsSupport-r18
                                                                    OPTIONAL    -- Cond SatPCV-Sup
    ]]
}

GNSS-TimeModelListSupport ::=   SEQUENCE {
    ...
}

GNSS-DifferentialCorrectionsSupport ::= SEQUENCE {
    gnssSignalIDs           GNSS-SignalIDs,
    dgnss-ValidityTimeSup   BOOLEAN,
    ...
}

GNSS-NavigationModelSupport ::= SEQUENCE {
    clockModel      BIT STRING {    model-1     (0),
                                    model-2     (1),
                                    model-3     (2),
                                    model-4     (3),
                                    model-5     (4),
                                    model-6     (5),
                                    model-7-r16 (6),
                                    model-8-r16 (7) } (SIZE (1..8))     OPTIONAL,
    orbitModel      BIT STRING {    model-1     (0),
                                    model-2     (1),
                                    model-3     (2),
                                    model-4     (3),
                                    model-5     (4),
                                    model-6     (5),
                                    model-7-r16 (6),
                                    model-8-r16 (7) } (SIZE (1..8))     OPTIONAL,
    ...
}

GNSS-RealTimeIntegritySupport ::=   SEQUENCE {
    ...
}

GNSS-DataBitAssistanceSupport ::=   SEQUENCE {
    ...
}

GNSS-AcquisitionAssistanceSupport ::=   SEQUENCE {
    ...,
    confidenceSupport-r10                   ENUMERATED { true }     OPTIONAL,
    dopplerUncertaintyExtSupport-r10        ENUMERATED { true }     OPTIONAL
}

GNSS-AlmanacSupport ::= SEQUENCE {
    almanacModel        BIT STRING {    model-1     (0),
                                        model-2     (1),
                                        model-3     (2),
                                        model-4     (3),
                                        model-5     (4),
                                        model-6     (5),
                                        model-7     (6) } (SIZE (1..8))     OPTIONAL,
    ...
}

GNSS-UTC-ModelSupport ::=   SEQUENCE {
    utc-Model       BIT STRING {    model-1     (0),
                                    model-2     (1),
                                    model-3     (2),
                                    model-4     (3),
                                    model-5     (4) } (SIZE (1..8))     OPTIONAL,
    ...
}

GNSS-AuxiliaryInformationSupport ::=    SEQUENCE {
    ...
}

BDS-DifferentialCorrectionsSupport-r12 ::=  SEQUENCE {
    gnssSignalIDs           GNSS-SignalIDs,
    ...
}

BDS-GridModelSupport-r12 ::=    SEQUENCE {
    ...
}

GNSS-RTK-ObservationsSupport-r15 ::=    SEQUENCE {
    gnssSignalIDs-r15           GNSS-SignalIDs,
    ...
}

GLO-RTK-BiasInformationSupport-r15 ::=  SEQUENCE {
    ...
}

GNSS-RTK-MAC-CorrectionDifferencesSupport-r15 ::=   SEQUENCE {
    link-combinations-support-r15       GNSS-Link-CombinationsList-r15,
    ...
}

GNSS-RTK-ResidualsSupport-r15 ::=   SEQUENCE {
    link-combinations-support-r15       GNSS-Link-CombinationsList-r15,
    ...
}

GNSS-RTK-FKP-GradientsSupport-r15 ::=   SEQUENCE {
    link-combinations-support-r15       GNSS-Link-CombinationsList-r15,
    ...
}

GNSS-SSR-OrbitCorrectionsSupport-r15 ::=    SEQUENCE {
    ...,
    [[
    orbit-IntegritySup-r17  BIT STRING {    correlationTimeSup      (0)
                                        } (SIZE(1..8))                                  OPTIONAL
    ]]
}

GNSS-SSR-ClockCorrectionsSupport-r15 ::=    SEQUENCE {
    ...,
    [[
    clock-IntegrityParameterSupport-r17     ENUMERATED { supported }            OPTIONAL,
    ssr-IntegrityClockBoundsSupport-r17     ENUMERATED { supported }            OPTIONAL
    ]]
}

GNSS-SSR-CodeBiasSupport-r15 ::= SEQUENCE {
    signal-and-tracking-mode-ID-Sup-r15     GNSS-SignalIDs,
    ...,
    [[
    ssr-IntegrityCodeBiasBoundsSup-r17      ENUMERATED { supported }            OPTIONAL
    ]]
}

GNSS-SSR-URA-Support-r16 ::= SEQUENCE {
    ...
}

GNSS-SSR-PhaseBiasSupport-r16 ::= SEQUENCE {
    signal-and-tracking-mode-ID-Sup-r16     GNSS-SignalIDs,
    ...,
    [[
    ssr-IntegrityPhaseBiasBoundsSup-r17     ENUMERATED { supported }            OPTIONAL
    ]]
}

GNSS-SSR-STEC-CorrectionSupport-r16 ::=     SEQUENCE {
    ...,
    [[
    stec-IntegritySup-r17   BIT STRING {    correlationTimeSup      (0)
                                        } (SIZE(1..8))                                  OPTIONAL
    ]]
}

GNSS-SSR-GriddedCorrectionSupport-r16 ::=   SEQUENCE {
    ...,
    [[
    griddedCorrectionIntegritySup-r17       ENUMERATED { supported }                    OPTIONAL
    ]]
}

NavIC-DifferentialCorrectionsSupport-r16 ::=    SEQUENCE {
    gnssSignalIDs-r16           GNSS-SignalIDs,
    ...
}

NavIC-GridModelSupport-r16 ::=  SEQUENCE {
    ...
}

GNSS-SSR-OrbitCorrectionsSet2Support-r17 ::=    SEQUENCE {
    ...
}

GNSS-SSR-ClockCorrectionsSet2Support-r17 ::=    SEQUENCE {
    ...
}

GNSS-SSR-URA-Set2Support-r17 ::= SEQUENCE {
    ...
}

GNSS-LOS-NLOS-GriddedIndicationsSupport-r18 ::= SEQUENCE {
    ...
}

GNSS-SSR-SatellitePCVResidualsSupport-r18 ::= SEQUENCE {
    ...
}

A-GNSS-RequestCapabilities ::= SEQUENCE {
    gnss-SupportListReq             BOOLEAN,
    assistanceDataSupportListReq    BOOLEAN,
    locationVelocityTypesReq        BOOLEAN,
    ...
}

A-GNSS-Error ::= CHOICE {
    locationServerErrorCauses       GNSS-LocationServerErrorCauses,
    targetDeviceErrorCauses         GNSS-TargetDeviceErrorCauses,
    ...
}

GNSS-LocationServerErrorCauses ::= SEQUENCE {
    cause       ENUMERATED  {
                    undefined,
                    undeliveredAssistanceDataIsNotSupportedByServer,
                    undeliveredAssistanceDataIsSupportedButCurrentlyNotAvailableByServer,                               undeliveredAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailableByServer,
                    ...,
                unconfirmedPeriodicAssistanceDataIsNotSupported-v1510,
                unconfirmedPeriodicAssistanceDataIsSupportedButCurrentlyNotAvailable-v1510,
                unconfirmedPeriodicAssistanceDataIsPartlyNotSupportedAndPartlyNotAvailable-v1510,
                undeliveredPeriodicAssistanceDataIsCurrentlyNotAvailable-v1510
                    },
    ...
}

GNSS-TargetDeviceErrorCauses ::= SEQUENCE {
    cause       ENUMERATED {    undefined,
                                thereWereNotEnoughSatellitesReceived,
                                assistanceDataMissing,
                                notAllRequestedMeasurementsPossible,
                                ...
                            },
    fineTimeAssistanceMeasurementsNotPossible       NULL        OPTIONAL,
    adrMeasurementsNotPossible                      NULL        OPTIONAL,
    multiFrequencyMeasurementsNotPossible           NULL        OPTIONAL,
    ...,
    [[
    remoteUE-Indication-r18             ENUMERATED {true}       OPTIONAL    -- Cond NR
    ]]
}

GNSS-FrequencyID-r15    ::= SEQUENCE {
    gnss-FrequencyID-r15        INTEGER (0 .. 7),
    ...
}

GNSS-ID ::= SEQUENCE {
    gnss-id             ENUMERATED{ gps, sbas, qzss, galileo, glonass, ..., bds, navic-v1610 },
    ...
}

GNSS-ID-Bitmap ::= SEQUENCE {
    gnss-ids            BIT STRING {    gps         (0),
                                        sbas        (1),
                                        qzss        (2),
                                        galileo     (3),
                                        glonass     (4),
                                        bds         (5),
                                        navic-v1610 (6) } (SIZE (1..16)),
    ...
}

GNSS-Link-CombinationsList-r15 ::= SEQUENCE (SIZE(1..8)) OF GNSS-Link-Combinations-r15

GNSS-Link-Combinations-r15 ::= SEQUENCE {
    l1-r15      GNSS-FrequencyID-r15,
    l2-r15      GNSS-FrequencyID-r15,
    ...
}

GNSS-NavListInfo-r15 ::= SEQUENCE (SIZE (1..64)) OF SatListElement-r15

SatListElement-r15 ::= SEQUENCE {
    svID-r15        SV-ID,
    iod-r15         BIT STRING (SIZE(11)),
    ...
}

GNSS-NetworkID-r15 ::= SEQUENCE {
    networkID-r15                   INTEGER (0..255),
    ...
}

GNSS-PeriodicControlParam-r15 ::= SEQUENCE {
    deliveryAmount-r15          INTEGER (1..32),
    deliveryInterval-r15        INTEGER (1..64),
    ...
}

GNSS-ReferenceStationID-r15 ::= SEQUENCE {
    referenceStationID-r15          INTEGER (0..65535),
    providerName-r15                VisibleString (SIZE (1..32))        OPTIONAL, -- Need ON
    ...
}

GNSS-SignalID   ::= SEQUENCE {
    gnss-SignalID       INTEGER (0 .. 7),
    ...,
    [[
        gnss-SignalID-Ext-r15   INTEGER (8..23)         OPTIONAL    -- Need ON
    ]]
}

GNSS-SignalIDs  ::= SEQUENCE {
    gnss-SignalIDs      BIT STRING (SIZE(8)),
    ...,
    [[
        gnss-SignalIDs-Ext-r15  BIT STRING (SIZE(16))           OPTIONAL    -- Need ON
    ]]
}

GNSS-SubNetworkID-r15 ::= SEQUENCE {
    subNetworkID-r15                INTEGER (0..15),
    ...
}

SBAS-ID ::= SEQUENCE {
    sbas-id             ENUMERATED { waas, egnos, msas, gagan, ...},
    ...
}

SBAS-IDs ::= SEQUENCE {
    sbas-IDs        BIT STRING {    waas        (0),
                                    egnos       (1),
                                    msas        (2),
                                    gagan       (3) } (SIZE (1..8)),
    ...
}

SV-ID ::= SEQUENCE {
    satellite-id        INTEGER(0..63),
    ...
}

ECID-ProvideLocationInformation ::= SEQUENCE {
    ecid-SignalMeasurementInformation   ECID-SignalMeasurementInformation       OPTIONAL,
    ecid-Error                          ECID-Error                              OPTIONAL,
    ...
}

ECID-SignalMeasurementInformation ::= SEQUENCE {
    primaryCellMeasuredResults  MeasuredResultsElement  OPTIONAL,
    measuredResultsList         MeasuredResultsList,
    ...
}

MeasuredResultsList ::= SEQUENCE (SIZE(1..32)) OF MeasuredResultsElement

MeasuredResultsElement ::= SEQUENCE {
    physCellId                      INTEGER (0..503),
    cellGlobalId                    CellGlobalIdEUTRA-AndUTRA   OPTIONAL,
    arfcnEUTRA                      ARFCN-ValueEUTRA,
    systemFrameNumber               BIT STRING (SIZE (10))      OPTIONAL,
    rsrp-Result                     INTEGER (0..97)             OPTIONAL,
    rsrq-Result                     INTEGER (0..34)             OPTIONAL,
    ue-RxTxTimeDiff                 INTEGER (0..4095)           OPTIONAL,
    ...,
    [[  arfcnEUTRA-v9a0             ARFCN-ValueEUTRA-v9a0       OPTIONAL        -- Cond EARFCN-max
    ]],
    [[  nrsrp-Result-r14            INTEGER (0..113)            OPTIONAL,
        nrsrq-Result-r14            INTEGER (0..74)             OPTIONAL,
        carrierFreqOffsetNB-r14     CarrierFreqOffsetNB-r14     OPTIONAL,       -- Cond NB-IoT
                                                                                                        hyperSFN-r14                BIT STRING (SIZE (10))      OPTIONAL
    ]],
    [[
        rsrp-Result-v1470           INTEGER (-17..-1)           OPTIONAL,
        rsrq-Result-v1470           INTEGER (-30..46)           OPTIONAL
    ]]
}

ECID-RequestLocationInformation ::= SEQUENCE {
    requestedMeasurements       BIT STRING {    rsrpReq     (0),
                                                rsrqReq     (1),
                                                ueRxTxReq   (2),
                                                nrsrpReq-r14    (3),
                                                nrsrqReq-r14    (4)} (SIZE(1..8)),
    ...
}

ECID-ProvideCapabilities ::= SEQUENCE {
    ecid-MeasSupported  BIT STRING {    rsrpSup     (0),
                                        rsrqSup     (1),
                                        ueRxTxSup   (2),
                                        nrsrpSup-r14    (3),
                                        nrsrqSup-r14    (4)} (SIZE(1..8)),
    ...,
    [[  ueRxTxSupTDD-r13                    ENUMERATED { true }             OPTIONAL
    ]],
    [[  periodicalReporting-r14             ENUMERATED { supported }        OPTIONAL,
        triggeredReporting-r14              ENUMERATED { supported }        OPTIONAL,
        idleStateForMeasurements-r14        ENUMERATED { required }         OPTIONAL
    ]],
    [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupport-r17    OPTIONAL
    ]],
    [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupport-r18      OPTIONAL
    ]]
}

ECID-RequestCapabilities ::= SEQUENCE {
    ...
}

ECID-Error ::= CHOICE {
    locationServerErrorCauses       ECID-LocationServerErrorCauses,
    targetDeviceErrorCauses         ECID-TargetDeviceErrorCauses,
    ...
}

ECID-LocationServerErrorCauses ::= SEQUENCE {
    cause       ENUMERATED  {   undefined,
                                ...
                            },
    ...
}

ECID-TargetDeviceErrorCauses ::= SEQUENCE {
    cause       ENUMERATED {    undefined,
                                requestedMeasurementNotAvailable,
                                notAllrequestedMeasurementsPossible,
                                ...
                            },
    rsrpMeasurementNotPossible              NULL        OPTIONAL,
    rsrqMeasurementNotPossible              NULL        OPTIONAL,
    ueRxTxMeasurementNotPossible            NULL        OPTIONAL,
    ...,
    [[
    nrsrpMeasurementNotPossible-r14     NULL        OPTIONAL,
    nrsrqMeasurementNotPossible-r14     NULL        OPTIONAL
    ]]
}

TBS-ProvideLocationInformation-r13 ::= SEQUENCE {
    tbs-MeasurementInformation-r13          TBS-MeasurementInformation-r13      OPTIONAL,
    tbs-Error-r13                           TBS-Error-r13                       OPTIONAL,
    ...
}

TBS-MeasurementInformation-r13 ::= SEQUENCE {
    measurementReferenceTime-r13    UTCTime                     OPTIONAL,
    mbs-SgnMeasList-r13             MBS-BeaconMeasList-r13      OPTIONAL,   -- Cond MBS
    ...
}

MBS-BeaconMeasList-r13 ::= SEQUENCE (SIZE(1..64)) OF MBS-BeaconMeasElement-r13

MBS-BeaconMeasElement-r13 ::= SEQUENCE {
    transmitterID-r13               INTEGER (0..32767),
    codePhase-r13                   INTEGER (0..2097151),
    codePhaseRMSError-r13           INTEGER (0..63),
    ...,
    [[ rssi-r14                     INTEGER (-130..-30)     OPTIONAL
    ]]
}

TBS-RequestLocationInformation-r13 ::= SEQUENCE {
    mbsSgnMeasListReq-r13               BOOLEAN,
    ...,
    [[  mbsAssistanceAvailability-r14   BOOLEAN                         OPTIONAL,   -- Need ON
        mbsRequestedMeasurements-r14    BIT STRING {
                                        rssi        (0)} (SIZE(1..8))   OPTIONAL    -- Need ON
    ]]
}

TBS-ProvideCapabilities-r13 ::= SEQUENCE {
    tbs-Modes-r13           BIT STRING {    standalone      (0),
                                            ue-assisted     (1),
                                            ue-based        (2)} (SIZE (1..8)),
    ...,
    [[  mbs-AssistanceDataSupportList-r14   MBS-AssistanceDataSupportList-r14       OPTIONAL,
        periodicalReportingSupported-r14    PositioningModes                        OPTIONAL,
        mbs-ConfigSupport-r14   BIT STRING {    tb1     (0),
                                                tb2     (1),
                                                tb3     (2),
                                                tb4     (3)} (SIZE (1..8))          OPTIONAL,
        mbs-IdleStateForMeasurements-r14        ENUMERATED { required }             OPTIONAL
    ]],
    [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
    ]],
    [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                        OPTIONAL
    ]]
}

MBS-AssistanceDataSupportList-r14 ::= SEQUENCE {
    mbs-AcquisitionAssistanceDataSupport-r14    BOOLEAN,
    mbs-AlmanacAssistanceDataSupport-r14        BOOLEAN,
    ...
}

TBS-RequestCapabilities-r13 ::= SEQUENCE {
    ...
}

TBS-Error-r13 ::= CHOICE {
    locationServerErrorCauses-r13       TBS-LocationServerErrorCauses-r13,
    targetDeviceErrorCauses-r13         TBS-TargetDeviceErrorCauses-r13,
    ...
}

TBS-LocationServerErrorCauses-r13 ::= SEQUENCE {
    cause-r13       ENUMERATED  {   undefined,
                                    ...,
                                    assistanceDataNotSupportedByServer-v1420,
                                    assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420
                                },
    ...
}

TBS-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
    cause-r13       ENUMERATED {    undefined,
                                    thereWereNotEnoughMBSBeaconsReceived,
                                    ...,
                                    assistanceDataMissing-v1420
                                },
    ...
}

TBS-ProvideAssistanceData-r14 ::= SEQUENCE {
    tbs-AssistanceDataList-r14  TBS-AssistanceDataList-r14  OPTIONAL,   -- Need ON
    tbs-Error-r14               TBS-Error-r13               OPTIONAL,   -- Need ON
    ...
}

TBS-AssistanceDataList-r14 ::= SEQUENCE {
    mbs-AssistanceDataList-r14      MBS-AssistanceDataList-r14      OPTIONAL,   -- Need ON
    ...
}

MBS-AssistanceDataList-r14 ::= SEQUENCE (SIZE (1..maxMBS-r14)) OF MBS-AssistanceDataElement-r14

MBS-AssistanceDataElement-r14 ::= SEQUENCE {
    mbs-AlmanacAssistance-r14       MBS-AlmanacAssistance-r14           OPTIONAL,   -- Need ON
    mbs-AcquisitionAssistance-r14   MBS-AcquisitionAssistance-r14       OPTIONAL,   -- Need ON
    ...
}

MBS-AlmanacAssistance-r14 ::= SEQUENCE {
    transmitterID-r14           INTEGER (0..32767),
    transmitterLatitude-r14     BIT STRING (SIZE (26)),
    transmitterLongitude-r14    BIT STRING (SIZE (27)),
    transmitterAltitude-r14     BIT STRING (SIZE (15)),
    timeCorrection-r14          INTEGER (0..25)     OPTIONAL,   -- Need ON
    ...
}

MBS-AcquisitionAssistance-r14 ::= SEQUENCE {
    transmitterID-r14               INTEGER (0..32767)                      OPTIONAL,   -- Need ON
                                                                                                    mbsConfiguration-r14            ENUMERATED {tb1, tb2, tb3, tb4, ...}    OPTIONAL,   -- Need ON
                                                                                                    pnCodeIndex-r14                 INTEGER (1..128)                        OPTIONAL,   -- Need ON
                                                                                                    freq-r14                        INTEGER (919750000..927250000)          OPTIONAL,   -- Need ON
                                                                                                    ...
}

TBS-RequestAssistanceData-r14 ::= SEQUENCE {
    mbs-AlmanacAssistanceDataReq-r14        BOOLEAN,
    mbs-AcquisitionAssistanceDataReq-r14    BOOLEAN,
    ...
}

Sensor-ProvideLocationInformation-r13 ::= SEQUENCE {
    sensor-MeasurementInformation-r13       Sensor-MeasurementInformation-r13       OPTIONAL,
    sensor-Error-r13                        Sensor-Error-r13                        OPTIONAL,
    ...,
    [[
    sensor-MotionInformation-r15            Sensor-MotionInformation-r15            OPTIONAL
    ]]
}

Sensor-MeasurementInformation-r13 ::= SEQUENCE {
    measurementReferenceTime-r13        UTCTime                     OPTIONAL,
    uncompensatedBarometricPressure-r13 INTEGER (30000..115000)     OPTIONAL, -- Cond Barometer
    ...,
    [[
    uncertainty-r14                 SEQUENCE {
                                    range-r14       INTEGER (0..1000),
                                    confidence-r14  INTEGER (1..100)
                                    }                                   OPTIONAL
    ]],
    [[  adjustment-r16              INTEGER (-5000..5000)               OPTIONAL
    ]]
}

Sensor-MotionInformation-r15 ::= SEQUENCE {
    refTime-r15                 DisplacementTimeStamp-r15,
    displacementInfoList-r15    DisplacementInfoList-r15,
    ...
}

DisplacementInfoList-r15 ::= SEQUENCE (SIZE (1..128)) OF DisplacementInfoListElement-r15

DisplacementInfoListElement-r15 ::= SEQUENCE {
    deltaTimeStamp-r15          DeltaTime-r15,
    displacement-r15            Displacement-r15            OPTIONAL,
    ...
}

DisplacementTimeStamp-r15 ::= CHOICE {
    utcTime-r15                 UTC-Time-r15,
    gnssTime-r15                MeasurementReferenceTime,
    systemFrameNumber-r15       SFN-r15,
    measurementSFN-r15          INTEGER(-8192..9214),
    ...
}

DeltaTime-r15 ::= CHOICE {
    deltaTimeSec-r15            INTEGER (1..16384),
    deltaTimeSFN-r15            INTEGER (1..4096),
    ...
}

SFN-r15 ::= SEQUENCE {
    sfn-r15                     BIT STRING (SIZE (10)),
    hyperSFN-r15                BIT STRING (SIZE (10))      OPTIONAL,
    ...
}

Displacement-r15 ::= SEQUENCE {
    bearing-r15                 INTEGER (0..3599),
    bearingUncConfidence-r15    INTEGER (0..100)                OPTIONAL,
    bearingRef-r15              ENUMERATED { geographicNorth, magneticNorth, local },
    horizontalDistance-r15      INTEGER (0..8191),
    horizontalDistanceUnc-r15   INTEGER (0..255)                OPTIONAL,
    horizontalUncConfidence-r15 INTEGER (0..100)                OPTIONAL,
                                                                                                    verticalDirection-r15       ENUMERATED{upward, downward}    OPTIONAL,
                                                                                                    verticalDistance-r15        INTEGER(0..8191)                OPTIONAL,
    verticalDistanceUnc-r15     INTEGER (0..255)                OPTIONAL,
    verticalUncConfidence-r15   INTEGER (0..100)                OPTIONAL,
    ...
}

UTC-Time-r15 ::= SEQUENCE {
    utcTime-r15                 UTCTime,
    utcTime-ms-r15              INTEGER (0..999),
    ...
}

Sensor-RequestLocationInformation-r13 ::= SEQUENCE {
    uncompensatedBarometricPressureReq-r13      BOOLEAN,
    ...,
    [[  assistanceAvailability-r14              BOOLEAN     OPTIONAL    -- Need ON
    ]],
    [[  sensor-MotionInformationReq-r15         BOOLEAN     OPTIONAL    -- Need ON
    ]],
    [[  adjustmentReq-r16                       BOOLEAN     OPTIONAL    -- Need ON
    ]]
}

Sensor-ProvideCapabilities-r13 ::= SEQUENCE {
    sensor-Modes-r13            BIT STRING {    standalone  (0),
                                                ue-assisted (1),
                                                ue-based    (2)} (SIZE (1..8)),
    ...,
    [[  sensor-AssistanceDataSupportList-r14    Sensor-AssistanceDataSupportList-r14    OPTIONAL,
        periodicalReportingSupported-r14        PositioningModes                        OPTIONAL,
        idleStateForMeasurements-r14            ENUMERATED { required }                 OPTIONAL
    ]],
    [[  sensor-MotionInformationSup-r15         ENUMERATED { true }                     OPTIONAL
    ]],
    [[  adjustmentSupported-r16                 ENUMERATED  { true }                    OPTIONAL
    ]],
    [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
    ]],
    [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                        OPTIONAL
    ]]
}

Sensor-AssistanceDataSupportList-r14 ::= SEQUENCE {
    ...,
    [[  validityPeriodSupported-v1520           ENUMERATED { true }     OPTIONAL,
        validityAreaSupported-v1520             ENUMERATED { true }     OPTIONAL
    ]]
}

Sensor-RequestCapabilities-r13 ::= SEQUENCE {
    ...
}

Sensor-Error-r13 ::= CHOICE {
    locationServerErrorCauses-r13       Sensor-LocationServerErrorCauses-r13,
    targetDeviceErrorCauses-r13         Sensor-TargetDeviceErrorCauses-r13,
    ...
}

Sensor-LocationServerErrorCauses-r13 ::= SEQUENCE {
    cause-r13       ENUMERATED  {   undefined,
                                    ...,
                                    assistanceDataNotSupportedByServer-v1420,
                                    assistanceDataSupportedButCurrentlyNotAvailableByServer-v1420
                                    },
    ...
}

Sensor-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
    cause-r13           ENUMERATED      {   undefined,
                                            ...,
                                            assistanceDataMissing-v1420
                                        },
    ...
}

Sensor-ProvideAssistanceData-r14 ::= SEQUENCE {
    sensor-AssistanceDataList-r14       Sensor-AssistanceDataList-r14       OPTIONAL,   -- Need ON
    sensor-Error-r14                    Sensor-Error-r13                    OPTIONAL,   -- Need ON
    ...
}

Sensor-AssistanceDataList-r14::= SEQUENCE {
    refPressure-r14     INTEGER (-20000..10000),
    refPosition-r14     EllipsoidPointWithAltitudeAndUncertaintyEllipsoid   OPTIONAL,   -- Need ON
    refTemperature-r14  INTEGER (-64..63)                                   OPTIONAL,   -- Need ON
    ...,
    [[
    period-v1520        SEQUENCE {
        pressureValidityPeriod-v1520    PressureValidityPeriod-v1520,
        referencePressureRate-v1520     INTEGER (-128..127)                 OPTIONAL,   -- Need ON
        ...
    }                                                                       OPTIONAL,   -- Need ON
    area-v1520          SEQUENCE {
        pressureValidityArea-v1520      PressureValidityArea-v1520,
        gN-pressure-v1520               INTEGER (-1024..1023)               OPTIONAL,   -- Need ON
        gE-pressure-v1520               INTEGER (-1024..1023)               OPTIONAL,   -- Need ON
        ...
    }                                                                       OPTIONAL    -- Need ON
    ]]
}

PressureValidityArea-v1520 ::= SEQUENCE {
    centerPoint-v1520               Ellipsoid-Point,
    validityAreaWidth-v1520         INTEGER (1..128),
    validityAreaHeight-v1520        INTEGER (1..128),
    ...
}

PressureValidityPeriod-v1520 ::= SEQUENCE {
    beginTime-v1520                 GNSS-SystemTime,
    beginTimeAlt-v1520              INTEGER (0..2881)                       OPTIONAL,   -- Need ON
    duration-v1520                  INTEGER (1..2881),
    ...
}

Sensor-RequestAssistanceData-r14 ::= SEQUENCE {
    ...
}

WLAN-ProvideLocationInformation-r13 ::= SEQUENCE {
    wlan-MeasurementInformation-r13     WLAN-MeasurementInformation-r13     OPTIONAL,
    wlan-Error-r13                      WLAN-Error-r13                      OPTIONAL,
    ...
}

WLAN-MeasurementInformation-r13 ::= SEQUENCE {
    measurementReferenceTime-r13        UTCTime                     OPTIONAL,
    wlan-MeasurementList-r13            WLAN-MeasurementList-r13    OPTIONAL,
    ...
}

WLAN-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxWLAN-AP-r13)) OF WLAN-MeasurementElement-r13

WLAN-MeasurementElement-r13 ::= SEQUENCE {
    wlan-AP-Identifier-r13      WLAN-AP-Identifier-r13,
    rssi-r13                    INTEGER (-127..128)                 OPTIONAL,
    rtt-r13                     WLAN-RTT-r13                        OPTIONAL,
    apChannelFrequency-r13      INTEGER (0..256)                    OPTIONAL,
    servingFlag-r13             BOOLEAN                             OPTIONAL,
    ...
}

WLAN-AP-Identifier-r13 ::= SEQUENCE {
    bssid-r13                   OCTET STRING (SIZE (6)),
    ssid-r13                    OCTET STRING (SIZE (1..32))         OPTIONAL,
    ...
}

WLAN-RTT-r13 ::= SEQUENCE {
    rttValue-r13    INTEGER (0..16777215),
    rttUnits-r13    ENUMERATED {    microseconds,
                                    hundredsofnanoseconds,
                                    tensofnanoseconds,
                                    nanoseconds,
                                    tenthsofnanoseconds,
                                    ... },
    rttAccuracy-r13 INTEGER (0..255)                                OPTIONAL,
    ...
}

WLAN-RequestLocationInformation-r13 ::= SEQUENCE {
    requestedMeasurements-r13   BIT STRING {
                                            rssi        (0),
                                            rtt         (1)} (SIZE(1..8)),
    ...,
    [[  assistanceAvailability-r14  BOOLEAN         OPTIONAL    -- Need ON
    ]]
}

WLAN-ProvideCapabilities-r13 ::= SEQUENCE {
    wlan-Modes-r13          BIT STRING  {   standalone      (0),
                                            ue-assisted     (1),
                                            ue-based        (2)}    (SIZE (1..8)),
    wlan-MeasSupported-r13  BIT STRING  {
                                            rssi-r13        (0),
                                            rtt-r13         (1)}    (SIZE(1..8)),
    ... ,
    [[  wlan-AP-AD-Supported-r14
                            BIT STRING {    ap-identifier   (0),
                                            ap-location     (1)}    (SIZE (1..8))
                                                                                    OPTIONAL,
        periodicalReportingSupported-r14    PositioningModes                        OPTIONAL,
        idleStateForMeasurements-r14
                            ENUMERATED {    required    }                           OPTIONAL
    ]],
    [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17 OPTIONAL
    ]],
    [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                        OPTIONAL
    ]]
}

WLAN-RequestCapabilities-r13 ::= SEQUENCE {
    ...
}

WLAN-Error-r13 ::= CHOICE {
    locationServerErrorCauses-r13       WLAN-LocationServerErrorCauses-r13,
    targetDeviceErrorCauses-r13         WLAN-TargetDeviceErrorCauses-r13,
    ...
}

WLAN-LocationServerErrorCauses-r13 ::= SEQUENCE {
    cause-r13                               ENUMERATED  {undefined,
                                                        ...,
                                                        requestedADNotAvailable-v1420,
                                                        notAllrequestedADAvailable-v1420
                                                        },
    ...,
    [[  apLocationDataUnavailable-r14       NULL    OPTIONAL        -- Need ON
    ]]
}

WLAN-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
    cause-r13                               ENUMERATED {undefined,
                                                        requestedMeasurementsNotAvailable,
                                                        notAllrequestedMeasurementsPossible,
                                                        ...
                                                        },
    wlan-AP-RSSI-MeasurementNotPossible-r13             NULL        OPTIONAL,
    wlan-AP-RTT-MeasurementNotPossible-r13              NULL        OPTIONAL,
    ...
}

WLAN-ProvideAssistanceData-r14 ::= SEQUENCE {
    wlan-DataSet-r14    SEQUENCE (SIZE (1..maxWLAN-DataSets-r14)) OF WLAN-DataSet-r14
                                                                            OPTIONAL,   -- Need ON
    wlan-Error-r14      WLAN-Error-r13                                      OPTIONAL,   -- Need ON
    ...
}

WLAN-DataSet-r14 ::= SEQUENCE {
    wlan-AP-List-r14                SEQUENCE (SIZE (1..maxWLAN-AP-r14)) OF WLAN-AP-Data-r14,
    supportedChannels-11a-r14       SupportedChannels-11a-r14       OPTIONAL,   -- Need ON
    supportedChannels-11bg-r14      SupportedChannels-11bg-r14      OPTIONAL,   -- Need ON
    ...
}

SupportedChannels-11a-r14 ::= SEQUENCE {
    ch34-r14        BOOLEAN,
    ch36-r14        BOOLEAN,
    ch38-r14        BOOLEAN,
    ch40-r14        BOOLEAN,
    ch42-r14        BOOLEAN,
    ch44-r14        BOOLEAN,
    ch46-r14        BOOLEAN,
    ch48-r14        BOOLEAN,
    ch52-r14        BOOLEAN,
    ch56-r14        BOOLEAN,
    ch60-r14        BOOLEAN,
    ch64-r14        BOOLEAN,
    ch149-r14       BOOLEAN,
    ch153-r14       BOOLEAN,
    ch157-r14       BOOLEAN,
    ch161-r14       BOOLEAN
}

SupportedChannels-11bg-r14 ::= SEQUENCE {
    ch1-r14         BOOLEAN,
    ch2-r14         BOOLEAN,
    ch3-r14         BOOLEAN,
    ch4-r14         BOOLEAN,
    ch5-r14         BOOLEAN,
    ch6-r14         BOOLEAN,
    ch7-r14         BOOLEAN,
    ch8-r14         BOOLEAN,
    ch9-r14         BOOLEAN,
    ch10-r14        BOOLEAN,
    ch11-r14        BOOLEAN,
    ch12-r14        BOOLEAN,
    ch13-r14        BOOLEAN,
    ch14-r14        BOOLEAN
}

WLAN-AP-Data-r14 ::= SEQUENCE {
    wlan-AP-Identifier-r14              WLAN-AP-Identifier-r13,
    wlan-AP-Location-r14                WLAN-AP-Location-r14        OPTIONAL,   -- Need ON
    ...
}

WLAN-AP-Location-r14 ::= SEQUENCE {
    locationDataLCI-r14                 LocationDataLCI-r14,
    ...
}

LocationDataLCI-r14 ::= SEQUENCE {
    latitudeUncertainty-r14             BIT STRING (SIZE (6)),
    latitude-r14                        BIT STRING (SIZE (34)),
    longitudeUncertainty-r14            BIT STRING (SIZE (6)),
    longitude-r14                       BIT STRING (SIZE (34)),
    altitudeUncertainty-r14             BIT STRING (SIZE (6))       OPTIONAL,   -- Need ON
    altitude-r14                        BIT STRING (SIZE (30))      OPTIONAL,   -- Need ON
    datum-r14                           BIT STRING (SIZE (8)),
    ...
}

WLAN-RequestAssistanceData-r14 ::= SEQUENCE {
    requestedAD-r14         BIT STRING {    ap-identifier       (0),
                                            ap-location         (1)}    (SIZE (1..8)),
    visibleAPs-r14          SEQUENCE (SIZE (1..maxVisibleAPs-r14)) OF WLAN-AP-Identifier-r13    OPTIONAL,
    wlan-AP-StoredData-r14  SEQUENCE (SIZE (1..maxKnownAPs-r14)) OF WLAN-AP-Identifier-r13  OPTIONAL,
    ...
}

BT-ProvideLocationInformation-r13 ::= SEQUENCE {
    bt-MeasurementInformation-r13       BT-MeasurementInformation-r13   OPTIONAL,
    bt-Error-r13                        BT-Error-r13                    OPTIONAL,
    ...,
    [[
    bt-AoA-Config-r18                   BT-AoA-Config-r18               OPTIONAL
    ]]
}

BT-AoA-Config-r18 ::= SEQUENCE {
    bt-Addr-r18             BIT STRING (SIZE (48)),
    cte-Status-r18          ENUMERATED { enabled }          OPTIONAL,
    primaryAdvInterval-r18  INTEGER (32..16777)             OPTIONAL,
    secondAdvInterval-r18   INTEGER (6..65535)              OPTIONAL,
    tx-Power-r18            INTEGER (-127..20)              OPTIONAL,
    cte-Length-r18          INTEGER (2..20)                 OPTIONAL,
    cte-Count-r18           INTEGER (1..16)                 OPTIONAL,
    tx-PHY-M2-r18           ENUMERATED { m2 }               OPTIONAL,
    ...
}

BT-MeasurementInformation-r13 ::= SEQUENCE {
    measurementReferenceTime-r13        UTCTime                     OPTIONAL,
    bt-MeasurementList-r13              BT-MeasurementList-r13      OPTIONAL,
    ...,
    [[
    bt-MeasurementList-r18              BT-MeasurementList-r18      OPTIONAL
    ]]
}

BT-MeasurementList-r13 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r13

BT-MeasurementElement-r13 ::= SEQUENCE {
    btAddr-r13                      BIT STRING (SIZE (48)),
    rssi-r13                        INTEGER (-128..127)             OPTIONAL,
    ...
}

BT-MeasurementList-r18 ::= SEQUENCE (SIZE(1..maxBT-Beacon-r13)) OF BT-MeasurementElement-r18

BT-MeasurementElement-r18 ::= SEQUENCE {
    btAddr-r18                      BIT STRING (SIZE (48)),
    bt-azimuth-r18                  INTEGER (0..359),
    bt-elevation-r18                INTEGER (0..180)                OPTIONAL,
    rssi-r18                        INTEGER (-128..127)             OPTIONAL,
    ...
}

BT-RequestLocationInformation-r13 ::= SEQUENCE {
    requestedMeasurements-r13   BIT STRING {
                                            rssi        (0),
                                            aod-v1800   (1)} (SIZE(1..8)),
    ...,
    [[
    bt-requestedAoA-Config-r18      BIT STRING {
                                            aoa-advConfig (0),
                                            aoa-cteConfig (1)} (SIZE(1..8)) OPTIONAL,   -- Need ON
    bt-suggestedAoA-Config-r18      BT-SuggestedAoA-Config-r18              OPTIONAL    -- Need ON
    ]]
}

BT-SuggestedAoA-Config-r18 ::= SEQUENCE {
    cte-Status-r18                  ENUMERATED {enabled, disabled}  OPTIONAL,   -- Need ON
    primaryAdvInterval-r18          INTEGER (32..16777)             OPTIONAL,   -- Need ON
    secondAdvInterval-r18           INTEGER (6..65535)              OPTIONAL,   -- Need ON
    tx-Power-r18                    INTEGER (-127..20)              OPTIONAL,   -- Need ON
    cte-Length-r18                  INTEGER (2..20)                 OPTIONAL,   -- Need ON
    cte-Count-r18                   INTEGER (1..16)                 OPTIONAL,   -- Need ON
    tx-PHY-M2-r18                   ENUMERATED { m2 }               OPTIONAL,   -- Need OP
    ...
}

BT-ProvideCapabilities-r13 ::= SEQUENCE {
    bt-Modes-r13            BIT STRING {    standalone      (0),
                                            ue-assisted     (1),
                                            ue-based-v1810  (2)}    (SIZE (1..8)),
    bt-MeasSupported-r13    BIT STRING {    rssi-r13        (0),
                                            aod-v1800       (1)}    (SIZE (1..8)),
    ...,
    [[
    idleStateForMeasurements-r14
                            ENUMERATED {    required    }                           OPTIONAL,
    periodicalReportingSupported-r14
                            PositioningModes                                        OPTIONAL
    ]],
    [[  scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17     OPTIONAL
    ]],
    [[  bt-AoA-r18                              ENUMERATED { request-only, suggestion } OPTIONAL,
        periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                            OPTIONAL
    ]]
}

BT-RequestCapabilities-r13 ::= SEQUENCE {
    ...
}

BT-Error-r13 ::= CHOICE {
    locationServerErrorCauses-r13       BT-LocationServerErrorCauses-r13,
    targetDeviceErrorCauses-r13         BT-TargetDeviceErrorCauses-r13,
    ...
}

BT-LocationServerErrorCauses-r13 ::= SEQUENCE {
    cause-r13       ENUMERATED  {undefined, ...,
                                assistanceDataNotSupportedByServer-v1810,
                                assistanceDataSupportedButCurrentlyNotAvailableByServer-v1810,
                                notAllrequestedAssistanceDataAvailableByServer-v1810
                                },
    ...
}

BT-TargetDeviceErrorCauses-r13 ::= SEQUENCE {
    cause-r13                               ENUMERATED {undefined,
                                                        requestedMeasurementsNotAvailable,
                                                        notAllrequestedMeasurementsPossible,
                                                        ...,
                                                        assistanceDataMissing-v1810
                                                        },
    bt-Beacon-rssiMeasurementNotPossible-r13    NULL        OPTIONAL,
    ...
}

BT-ProvideAssistanceData-r18 ::= SEQUENCE {
    bt-BeaconInfo-r18                   BT-BeaconInfo-r18,
    bt-Error-r18                        BT-Error-r13                    OPTIONAL,   -- Need ON
    ...
}

BT-BeaconInfo-r18 ::= SEQUENCE {
    referencePoint-r18                  ReferencePoint-r16,
    bt-BeaconInfoList-r18               SEQUENCE (SIZE (1..maxBT-BeaconAD-r18)) OF
                                                                        BT-BeaconInfoElement-r18,
    ...
}

BT-BeaconInfoElement-r18 ::= SEQUENCE {
    bt-Addr-r18                         BIT STRING (SIZE (48)),
    bt-BeaconLocation-r18               RelativeLocation-r16    OPTIONAL,   -- Need OP
    bt-LCS-GCS-TranslationParameter-r18 LCS-GCS-TranslationParameter-r16
                                                                OPTIONAL,   -- Cond NotSameAsPrev1
    bt-antArrayConfig-r18               BT-AntArrayConfig-r18   OPTIONAL,   -- Cond NotSameAsPrev2
    bt-antElementList-r18       SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF
                                        BT-AntElement-r18       OPTIONAL,   -- Cond NotSameAsPrev3
    bt-antSwitchingPattern-r18  SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF
                                        BT-AntSwitchElement-r18 OPTIONAL,   -- Cond NotSameAsPrev4
    bt-AoD-TransmConfig-r18             BT-AoD-TransmConfig-r18 OPTIONAL,   -- Cond NotSameAsPrev5
    ...
}

BT-AntArrayConfig-r18 ::= CHOICE {
    bt-UniformLinearArray-r18           BT-UniformLinearArray-r18,
    bt-UniformRectangularArray-r18      BT-UniformRectangularArray-r18,
    bt-UniformCircularArray-r18         BT-UniformCircularArray-r18,
    bt-GenericArray-r18                 BT-GenericArray-r18
}

BT-AntElement-r18 ::= SEQUENCE {
    polarization-r18                ENUMERATED {m45, zero, p45, p90, circ},
    ...
}

BT-AntSwitchElement-r18 ::= SEQUENCE {
    antElementIndexShort-r18        INTEGER (1..16),
    antElementIndexOffset-r18       ENUMERATED {o16, o32, o48, o64}     OPTIONAL,   -- Need OP
    ...
}

BT-AoD-TransmConfig-r18 ::= SEQUENCE {
    primaryAdvInterval-r18      INTEGER (32..16777),
    secondAdvInterval-r18       INTEGER (6..65535),
    cte-Length-r18              INTEGER (2..20),
    cte-Count-r18               INTEGER (1..16),
    cte-Type2us-r18             ENUMERATED { true }                 OPTIONAL,   -- Need OP
    tx-PHY-M2-r18               ENUMERATED { true }                 OPTIONAL,   -- Need OP
    ...
}

BT-UniformLinearArray-r18 ::= SEQUENCE {
    bt-NoElements-r18               INTEGER (2..maxBT-BeaconAntElt-r18),
    bt-InterElementDist-r18         INTEGER (30..130)
}

BT-UniformRectangularArray-r18 ::= SEQUENCE {
    bt-NoElementsY-r18              INTEGER (1..maxBT-BeaconAntElt-r18),
    bt-NoElementsZ-r18              INTEGER (1..maxBT-BeaconAntElt-r18),
    bt-InterElementDistY-r18        INTEGER (30..135),
    bt-InterElementDistZ-r18        INTEGER (30..135)
}

BT-UniformCircularArray-r18 ::= SEQUENCE {
    bt-NoElements-r18               INTEGER (2..maxBT-BeaconAntElt-r18),
    bt-InterElementDist-r18         INTEGER (30..130)
}

BT-GenericArray-r18 ::= SEQUENCE (SIZE (2..maxBT-BeaconAntElt-r18)) OF BT-ULA-GenericAntElement-r18

BT-ULA-GenericAntElement-r18 ::= SEQUENCE {
    deltaY-r18                      INTEGER (-135..135)         OPTIONAL,   -- Need OP
    deltaX-r18                      INTEGER (-135..135)         OPTIONAL,   -- Need OP
    deltaZ-r18                      INTEGER (-135..135)         OPTIONAL    -- Need OP
}

BT-RequestAssistanceData-r18 ::= SEQUENCE {
    requestedAD-r18         BIT STRING {
                                        beacon-location     (0),
                                        beacon-antConfig    (1),
                                        beacon-transmConfig (2) }   (SIZE (1..8)),
    ...
}

NR-UL-ProvideCapabilities-r16 ::= SEQUENCE {
    nr-UL-SRS-Capability-r16        NR-UL-SRS-Capability-r16,
    ...,
    [[
    nr-UE-TEG-Capability-r17        NR-UE-TEG-Capability-r17                    OPTIONAL
    ]]
}

NR-UL-RequestCapabilities-r16 ::= SEQUENCE {
    ...
}

NR-ECID-ProvideLocationInformation-r16 ::= SEQUENCE {
    nr-ECID-SignalMeasurementInformation-r16    NR-ECID-SignalMeasurementInformation-r16 OPTIONAL,
    nr-ECID-Error-r16                           NR-ECID-Error-r16                       OPTIONAL,
    ...
}

NR-ECID-SignalMeasurementInformation-r16 ::= SEQUENCE {
    nr-PrimaryCellMeasuredResults-r16   NR-MeasuredResultsElement-r16,
    nr-MeasuredResultsList-r16          NR-MeasuredResultsList-r16              OPTIONAL,
    ...
}

NR-MeasuredResultsList-r16 ::= SEQUENCE (SIZE(1..32)) OF NR-MeasuredResultsElement-r16

NR-MeasuredResultsElement-r16 ::= SEQUENCE {
    nr-PhysCellID-r16               NR-PhysCellID-r16,
    nr-ARFCN-r16                    CHOICE {
        ssb-ARFCN-r16                   ARFCN-ValueNR-r15,
        csi-RS-pointA-r16               ARFCN-ValueNR-r15
    },
    nr-CellGlobalID-r16             NCGI-r15                                    OPTIONAL,
    systemFrameNumber-r16           BIT STRING (SIZE (10))                      OPTIONAL,   resultsSSB-Cell-r16             MeasQuantityResults-r16                     OPTIONAL,
    resultsCSI-RS-Cell-r16          MeasQuantityResults-r16                     OPTIONAL,
    resultsSSB-Indexes-r16          ResultsPerSSB-IndexList-r16                 OPTIONAL,
    resultsCSI-RS-Indexes-r16       ResultsPerCSI-RS-IndexList-r16              OPTIONAL,
    ...
}

MeasQuantityResults-r16 ::= SEQUENCE {
    nr-RSRP-r16                     INTEGER (0..127)                            OPTIONAL,
    nr-RSRQ-r16                     INTEGER (0..127)                            OPTIONAL
}

ResultsPerSSB-IndexList-r16::= SEQUENCE (SIZE (1..64)) OF ResultsPerSSB-Index-r16

ResultsPerSSB-Index-r16 ::= SEQUENCE {
    ssb-Index-r16                   INTEGER (0..63),
    ssb-Results-r16                 MeasQuantityResults-r16
}

ResultsPerCSI-RS-IndexList-r16::= SEQUENCE (SIZE (1..64)) OF ResultsPerCSI-RS-Index-r16

ResultsPerCSI-RS-Index-r16 ::= SEQUENCE {
    csi-RS-Index-r16                INTEGER (0..95),
    csi-RS-Results-r16              MeasQuantityResults-r16
}

NR-ECID-RequestLocationInformation-r16 ::= SEQUENCE {
    requestedMeasurements-r16       BIT STRING {    ssrsrpReq       (0),
                                                    ssrsrqReq       (1),
                                                    csirsrpReq      (2),
                                                    csirsrqReq      (3)} (SIZE(1..8)),
    ...
}

NR-ECID-ProvideCapabilities-r16 ::= SEQUENCE {
    nr-ECID-MeasSupported-r16       BIT STRING {    ssrsrpSup       (0),
                                                    ssrsrqSup       (1),
                                                    csirsrpSup      (2),
                                                    csirsrqSup      (3)} (SIZE(1..8)),
    periodicalReporting-r16     ENUMERATED { supported }                            OPTIONAL,
    triggeredReporting-r16      ENUMERATED { supported }                            OPTIONAL,
    ...,
    [[
        ten-ms-unit-ResponseTime-r17        ENUMERATED { supported }                OPTIONAL,
        scheduledLocationRequestSupported-r17
                                            ScheduledLocationTimeSupport-r17        OPTIONAL
    ]],
    [[ periodicReportingIntervalMsSupport-r18   PeriodicReportingIntervalMsSupport-r18      OPTIONAL
    ]]
}

NR-ECID-RequestCapabilities-r16 ::= SEQUENCE {
    ...
}

NR-ECID-Error-r16 ::= CHOICE {
    locationServerErrorCauses-r16       NR-ECID-LocationServerErrorCauses-r16,
    targetDeviceErrorCauses-r16         NR-ECID-TargetDeviceErrorCauses-r16,
    ...
}

NR-ECID-LocationServerErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED  {   undefined,
                                    ...
                                },
    ...
}

NR-ECID-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED {    undefined,
                                    requestedMeasurementNotAvailable,
                                    notAllrequestedMeasurementsPossible,
                                    ...
                                },
    ss-RSRPMeasurementNotPossible-r16               NULL        OPTIONAL,
    ss-RSRQMeasurementNotPossible-r16               NULL        OPTIONAL,
    csi-RSRPMeasurementNotPossible-r16              NULL        OPTIONAL,
    csi-RSRQMeasurementNotPossible-r16              NULL        OPTIONAL,
    ...,
    [[
    remoteUE-Indication-r18         ENUMERATED {true}           OPTIONAL    -- Cond NR
    ]]
}

NR-DL-TDOA-ProvideAssistanceData-r16 ::= SEQUENCE {
    nr-DL-PRS-AssistanceData-r16        NR-DL-PRS-AssistanceData-r16        OPTIONAL,   -- Need ON
    nr-SelectedDL-PRS-IndexList-r16     NR-SelectedDL-PRS-IndexList-r16     OPTIONAL,   -- Need ON
    nr-PositionCalculationAssistance-r16
                                        NR-PositionCalculationAssistance-r16
                                                                            OPTIONAL,   -- Cond UEB
    nr-DL-TDOA-Error-r16                NR-DL-TDOA-Error-r16                OPTIONAL,   -- Need ON
    ...,
    [[
        nr-On-Demand-DL-PRS-Configurations-r17
                                        NR-On-Demand-DL-PRS-Configurations-r17
                                                                            OPTIONAL,   -- Need ON
        nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                        NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17                                                                               OPTIONAL,   -- Need ON
        assistanceDataValidityArea-r17  AreaID-CellList-r17                 OPTIONAL    -- Need ON
    ]],
    [[
        nr-PeriodicAssistData-r18       NR-PeriodicAssistData-r18       OPTIONAL    -- Cond CtrTrans
    ]]
}

NR-DL-TDOA-RequestAssistanceData-r16 ::= SEQUENCE {
    nr-PhysCellID-r16               NR-PhysCellID-r16                           OPTIONAL,
    nr-AdType-r16                   BIT STRING {    dl-prs  (0),
                                                    posCalc (1) } (SIZE (1..8)),
    ...,
    [[
    nr-PosCalcAssistanceRequest-r17 BIT STRING {    trpLoc      (0),
                                                    beamInfo    (1),
                                                    rtdInfo     (2),
                                                    losNlosInfo (3),
                                                    trpTEG-Info (4),
                                                    nr-IntegrityBounds-r18 (5),
                                                    pruInfo-r18 (6)
                                                }   (SIZE (1..8))               OPTIONAL,
    nr-on-demand-DL-PRS-Request-r17 NR-On-Demand-DL-PRS-Request-r17             OPTIONAL,
    nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17
                                    ENUMERATED { eAoD, eAoA }                   OPTIONAL,
    pre-configured-AssistanceDataRequest-r17
                                    ENUMERATED { true }                         OPTIONAL
    ]],
    [[
    nr-PeriodicAssistDataReq-r18            NR-PeriodicAssistDataReq-r18    OPTIONAL, -- Cond PerADReq
    nr-IntegrityAssistanceRequest-r18   BIT STRING {
                                                    serviceParameters       (0),
                                                    serviceAlert            (1),
                                                    riskParameters          (2),
                                                    integrityParaTRP-Loc    (3),
                                                    integrityParaBeamInfo   (4),
                                                    integrityParaRTD-Info   (5)
                                                    } (SIZE (1..8))             OPTIONAL
    ]]
}

NR-DL-TDOA-ProvideLocationInformation-r16 ::= SEQUENCE {
    nr-DL-TDOA-SignalMeasurementInformation-r16
                                            NR-DL-TDOA-SignalMeasurementInformation-r16
                                                                            OPTIONAL,
    nr-dl-tdoa-LocationInformation-r16      NR-DL-TDOA-LocationInformation-r16
                                                                            OPTIONAL,
    nr-DL-TDOA-Error-r16                    NR-DL-TDOA-Error-r16            OPTIONAL,
    ...,
    [[
    nr-DL-TDOA-SignalMeasurementInstances-r17
                                            SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                                                NR-DL-TDOA-SignalMeasurementInformation-r16
                                                                    OPTIONAL,   -- Cond batchUEA
    nr-DL-TDOA-LocationInformationInstances-r17
                                            SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                                                NR-DL-TDOA-LocationInformation-r16
                                                                    OPTIONAL    -- Cond batchUEB
    ]]
}

NR-DL-TDOA-SignalMeasurementInformation-r16 ::= SEQUENCE {
    dl-PRS-ReferenceInfo-r16        DL-PRS-ID-Info-r16,
    nr-DL-TDOA-MeasList-r16         NR-DL-TDOA-MeasList-r16,
    ...,
    [[
    nr-UE-RxTEG-TimingErrorMargin-r17   TEG-TimingErrorMargin-r17       OPTIONAL    -- Cond UERxTEG
    ]]
}

NR-DL-TDOA-MeasList-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF NR-DL-TDOA-MeasElement-r16

NR-DL-TDOA-MeasElement-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-PhysCellID-r16               NR-PhysCellID-r16                               OPTIONAL,
    nr-CellGlobalID-r16             NCGI-r15                                        OPTIONAL,
    nr-ARFCN-r16                    ARFCN-ValueNR-r15                               OPTIONAL,
    nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                        OPTIONAL,
    nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16                     OPTIONAL,
    nr-TimeStamp-r16                NR-TimeStamp-r16,
    nr-RSTD-r16                     CHOICE {
            k0-r16                      INTEGER (0..1970049),
            k1-r16                      INTEGER (0..985025),
            k2-r16                      INTEGER (0..492513),
            k3-r16                      INTEGER (0..246257),
            k4-r16                      INTEGER (0..123129),
            k5-r16                      INTEGER (0..61565),
            ...,
            kMinus6-r18                 INTEGER (0..126083073),
            kMinus5-r18                 INTEGER (0..63041537),
            kMinus4-r18                 INTEGER (0..31520769),
            kMinus3-r18                 INTEGER (0..15760385),
            kMinus2-r18                 INTEGER (0..7880193),
            kMinus1-r18                 INTEGER (0..3940097)
    },
    nr-AdditionalPathList-r16       NR-AdditionalPathList-r16                       OPTIONAL,
    nr-TimingQuality-r16            NR-TimingQuality-r16,
    nr-DL-PRS-RSRP-Result-r16       INTEGER (0..126)                                OPTIONAL,
    nr-DL-TDOA-AdditionalMeasurements-r16
                                    NR-DL-TDOA-AdditionalMeasurements-r16           OPTIONAL,
    ...,
    [[
    nr-UE-Rx-TEG-ID-r17                 INTEGER (0..maxNumOfRxTEGs-1-r17)           OPTIONAL,
    nr-DL-PRS-FirstPathRSRP-Result-r17  INTEGER (0..126)                            OPTIONAL,
    nr-los-nlos-Indicator-r17           CHOICE {
            perTRP-r17                      LOS-NLOS-Indicator-r17,
            perResource-r17                 LOS-NLOS-Indicator-r17
    }                                                                               OPTIONAL,
    nr-AdditionalPathListExt-r17        NR-AdditionalPathListExt-r17                OPTIONAL,
    nr-DL-TDOA-AdditionalMeasurementsExt-r17
                                        NR-DL-TDOA-AdditionalMeasurementsExt-r17    OPTIONAL
    ]],
    [[
    nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
    nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2.. 3)) OF
                                NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
    nr-RSCPD-r18                                INTEGER (0..3599)                   OPTIONAL,
    nr-PhaseQuality-r18                         NR-PhaseQuality-r18                 OPTIONAL,
    nr-RSCPD-AddMeasurementSamples-r18      SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
                        NR-RSCPD-AdditionalMeasurementSamplesElement-r18            OPTIONAL,
    nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                            ENUMERATED { singleHop, multipleHop }   OPTIONAL
    ]]
}

NR-DL-TDOA-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..3)) OF
                                                    NR-DL-TDOA-AdditionalMeasurementElement-r16

NR-DL-TDOA-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasTDOA-r17)) OF
                                                    NR-DL-TDOA-AdditionalMeasurementElement-r16

NR-DL-TDOA-AdditionalMeasurementElement-r16 ::= SEQUENCE {
    nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                        OPTIONAL,
    nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16                     OPTIONAL,
    nr-TimeStamp-r16                NR-TimeStamp-r16,
    nr-RSTD-ResultDiff-r16          CHOICE {
            k0-r16                      INTEGER (0..8191),
            k1-r16                      INTEGER (0..4095),
            k2-r16                      INTEGER (0..2047),
            k3-r16                      INTEGER (0..1023),
            k4-r16                      INTEGER (0..511),
            k5-r16                      INTEGER (0..255),
            ...,
            kMinus6-r18                 INTEGER (0..524224),
            kMinus5-r18                 INTEGER (0..262112),
            kMinus4-r18                 INTEGER (0..131056),
            kMinus3-r18                 INTEGER (0..65528),
            kMinus2-r18                 INTEGER (0..32764),
            kMinus1-r18                 INTEGER (0..16382)
    },
    nr-TimingQuality-r16            NR-TimingQuality-r16,
    nr-DL-PRS-RSRP-ResultDiff-r16   INTEGER (0..61)                                 OPTIONAL,
    nr-AdditionalPathList-r16       NR-AdditionalPathList-r16                       OPTIONAL,
    ...,
    [[
    nr-UE-Rx-TEG-ID-r17             INTEGER (0..maxNumOfRxTEGs-1-r17)               OPTIONAL,
    nr-DL-PRS-FirstPathRSRP-ResultDiff-r17
                                    INTEGER (0..61)                                 OPTIONAL,
    nr-los-nlos-IndicatorPerResource-r17
                                    LOS-NLOS-Indicator-r17                          OPTIONAL,
    nr-AdditionalPathListExt-r17    NR-AdditionalPathListExt-r17                    OPTIONAL
    ]],
    [[
    nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
    nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2.. 3)) OF
                                NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
    nr-RSCPD-r18                                INTEGER (0..3599)                   OPTIONAL,
    nr-PhaseQuality-r18                         NR-PhaseQuality-r18                 OPTIONAL,
    nr-RSCPD-AdditionalMeasurementsAddSamples-r18
                                                SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF
                                NR-RSCPD-AdditionalMeasurementSamplesElement-r18    OPTIONAL,
    nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                ENUMERATED { singleHop, multipleHop }               OPTIONAL
    ]]
}

NR-RSCPD-AdditionalMeasurementSamplesElement-r18 ::= SEQUENCE {
    nr-RSCPD-r18                        INTEGER (0..3599)                           OPTIONAL,
    nr-PhaseQuality-r18                 NR-PhaseQuality-r18                         OPTIONAL,
    nr-TimeStamp-r18                    NR-TimeStamp-r16                            OPTIONAL,
    ...
}

NR-DL-TDOA-LocationInformation-r16 ::= SEQUENCE {
    measurementReferenceTime-r16    CHOICE {
            systemFrameNumber-r16           NR-TimeStamp-r16,
            utc-time-r16                    UTCTime,
            ...
            }                                                           OPTIONAL,
    ...,
    [[
    locationCoordinates-r17                 LocationCoordinates         OPTIONAL,   -- Cond batch1
    locationSource-r17                      LocationSource-r13          OPTIONAL    -- Cond batch2
    ]]
}

NR-DL-TDOA-RequestLocationInformation-r16 ::= SEQUENCE {
    nr-DL-PRS-RstdMeasurementInfoRequest-r16    ENUMERATED { true }             OPTIONAL,-- Need ON
    nr-RequestedMeasurements-r16                BIT STRING { prsrsrpReq (0),
                                                            firstPathRsrpReq-r17 (1),
                                                            dl-PRS-RSCPD-Request-r18 (2)
                                                             } (SIZE(1..8)),
    nr-AssistanceAvailability-r16               BOOLEAN,
    nr-DL-TDOA-ReportConfig-r16                 NR-DL-TDOA-ReportConfig-r16     OPTIONAL, -- Need ON
    additionalPaths-r16                         ENUMERATED { requested }        OPTIONAL, -- Need ON
    ...,
    [[
    nr-UE-RxTEG-Request-r17                     ENUMERATED { requested }        OPTIONAL, -- Need ON
    nr-los-nlos-IndicatorRequest-r17    SEQUENCE {
                                            type-r17            LOS-NLOS-IndicatorType1-r17,
                                            granularity-r17 LOS-NLOS-IndicatorGranularity1-r17,
                                            ...
                                        }                                       OPTIONAL, -- Need ON
    additionalPathsExt-r17                      ENUMERATED { requested }        OPTIONAL, -- Need ON
    additionalPathsDL-PRS-RSRP-Request-r17      ENUMERATED { requested }        OPTIONAL, -- Need ON
    multiMeasInSameReport-r17                   ENUMERATED { requested }        OPTIONAL  -- Need ON
    ]],
    [[
    nr-DL-PRS-JointMeasurementRequest-r18   SEQUENCE {
        nr-DL-PRS-JointMeasurementRequestedPFL-List-r18     SEQUENCE (SIZE (2..3)) OF
                                            INTEGER (0..nrMaxFreqLayers-1-r16)  OPTIONAL  -- Need ON
    }                                                                           OPTIONAL, -- Need ON
    nr-DL-PRS-RxHoppingRequest-r18          SEQUENCE {
        nr-DL-PRS-RxHoppingTotalBandwidth-r18       CHOICE {
            fr1                                         ENUMERATED {mhz40, mhz50, mhz80, mhz100},
            fr2                                         ENUMERATED {mhz100, mhz200, mhz400}
        }                                                                       OPTIONAL -- Need ON
    }                                                                           OPTIONAL -- Need ON
    ]]
}

NR-DL-TDOA-ReportConfig-r16 ::= SEQUENCE {
    maxDL-PRS-RSTD-MeasurementsPerTRP-Pair-r16  INTEGER (1..4)                  OPTIONAL, -- Need ON
    timingReportingGranularityFactor-r16        INTEGER (0..5)                  OPTIONAL, -- Need ON
    ...,
    [[
    measureSameDL-PRS-ResourceWithDifferentRxTEGs-r17
                                                ENUMERATED { n0, n2, n3, n4, n6, n8, ... }
                                                                                OPTIONAL, -- Need ON
    reducedDL-PRS-ProcessingSamples-r17         ENUMERATED { requested, ... }   OPTIONAL, -- Need ON
    lowerRxBeamSweepingFactor-FR2-r17           ENUMERATED { requested }        OPTIONAL  -- Need ON
    ]],
    [[
    timingReportingGranularityFactorExt-r18     INTEGER (-6..-1)                OPTIONAL, -- Need ON
    nr-DL-PRS-MeasurementTimeWindowsConfig-r18
                            NR-DL-PRS-MeasurementTimeWindowsConfig-r18          OPTIONAL  -- Need ON
    ]]
}

NR-DL-TDOA-ProvideCapabilities-r16 ::= SEQUENCE {
    nr-DL-TDOA-Mode-r16                     PositioningModes,
    nr-DL-TDOA-PRS-Capability-r16           NR-DL-PRS-ResourcesCapability-r16,
    nr-DL-TDOA-MeasurementCapability-r16    NR-DL-TDOA-MeasurementCapability-r16,
    nr-DL-PRS-QCL-ProcessingCapability-r16  NR-DL-PRS-QCL-ProcessingCapability-r16,
    nr-DL-PRS-ProcessingCapability-r16      NR-DL-PRS-ProcessingCapability-r16,
    additionalPathsReport-r16               ENUMERATED { supported }                    OPTIONAL,
    periodicalReporting-r16                 PositioningModes                            OPTIONAL,
    ...,
    [[
    ten-ms-unit-ResponseTime-r17            PositioningModes                            OPTIONAL,
    nr-PosCalcAssistanceSupport-r17         BIT STRING {    trpLocSup       (0),
                                                            beamInfoSup     (1),
                                                            rtdInfoSup      (2),
                                                            trpTEG-InfoSup  (3),
                                                            nr-IntegritySup-r18 (4),
                                                            pruInfoSup-r18  (5)
                                                        }   (SIZE (1..8))               OPTIONAL,
    nr-los-nlos-AssistanceDataSupport-r17   SEQUENCE {
                                                type-r17        LOS-NLOS-IndicatorType2-r17,
                                                granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                                ...
                                            }                                           OPTIONAL,
    nr-DL-PRS-ExpectedAoD-or-AoA-Sup-r17    BIT STRING {    eAoD        (0),
                                                            eAoA        (1)
                                                        }   (SIZE (1..8))               OPTIONAL,
    nr-DL-TDOA-On-Demand-DL-PRS-Support-r17 NR-On-Demand-DL-PRS-Support-r17             OPTIONAL,
    nr-los-nlos-IndicatorSupport-r17        SEQUENCE {
                                                type-r17        LOS-NLOS-IndicatorType2-r17,
                                                granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                                ...
                                            }                                           OPTIONAL,
    additionalPathsExtSupport-r17           ENUMERATED { n4, n6, n8 }                   OPTIONAL,
    scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17     OPTIONAL,
    nr-dl-prs-AssistanceDataValidity-r17    SEQUENCE {
                            area-validity-r17   INTEGER (1..maxNrOfAreas-r17)           OPTIONAL,                               ...
                            }                                                           OPTIONAL,
    multiMeasInSameMeasReport-r17           ENUMERATED { supported }                    OPTIONAL,
    mg-ActivationRequest-r17                ENUMERATED { supported }                    OPTIONAL
    ]],
    [[
    posMeasGapSupport-r17                   ENUMERATED { supported }                    OPTIONAL
    ]],
    [[
    multiLocationEstimateInSameMeasReport-r17   ENUMERATED { supported }                OPTIONAL
    ]],
    [[
    locationCoordinateTypes-r18             LocationCoordinateTypes                     OPTIONAL,
    periodicAssistanceData-r18              BIT STRING { solicited   (0),
                                                         unsolicited (1)} (SIZE (1..8)) OPTIONAL,
    nr-IntegrityAssistanceSupport-r18       BIT STRING {
                                                    serviceParametersSup        (0),
                                                    serviceAlertSup             (1),
                                                    riskParametersSup           (2),
                                                    integrityParaTRP-LocSup     (3),
                                                    integrityParaBeamInfoSup    (4),
                                                    integrityParaRTD-InfoSup    (5)
                                                    } (SIZE (1..8))                 OPTIONAL,
    nr-DL-TDOA-OnDemandPRS-ForBWA-Support-r18
                                            ENUMERATED { supported }                    OPTIONAL,
    periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                        OPTIONAL
    ]]
}

NR-DL-TDOA-MeasurementCapability-r16 ::= SEQUENCE {
    dl-RSTD-MeasurementPerPairOfTRP-FR1-r16         INTEGER (1..4),
    dl-RSTD-MeasurementPerPairOfTRP-FR2-r16         INTEGER (1..4),
    supportOfDL-PRS-RSRP-MeasFR1-r16                ENUMERATED { supported} OPTIONAL,
    supportOfDL-PRS-RSRP-MeasFR2-r16                ENUMERATED { supported} OPTIONAL,
    ...,
    [[
    nr-UE-TEG-Capability-r17                        NR-UE-TEG-Capability-r17            OPTIONAL,
    dl-tdoa-MeasCapabilityBandList-r17              SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                    DL-TDOA-MeasCapabilityPerBand-r17   OPTIONAL
    ]]
}

DL-TDOA-MeasCapabilityPerBand-r17 ::= SEQUENCE {
    freqBandIndicatorNR-r17             FreqBandIndicatorNR-r16,
    supportOfDL-PRS-FirstPathRSRP-r17   ENUMERATED { supported }            OPTIONAL,
    dl-PRS-MeasRRC-Inactive-r17         ENUMERATED { supported }            OPTIONAL,
    ...,
    [[
    supportOfDL-PRS-BWA-RRC-Connected-r18           ENUMERATED { supported }        OPTIONAL,
    supportOfDL-PRS-BWA-RRC-Inactive-r18            ENUMERATED { supported }        OPTIONAL,
    supportOfDL-PRS-BWA-RRC-Idle-r18                ENUMERATED { supported }        OPTIONAL,
    nr-DL-PRS-RSCPD-ReportingRRC-Connected-r18      ENUMERATED { supported }        OPTIONAL,
    assocSingleRSTD-WithUpToNsampleRSCPD-r18        ENUMERATED { supported }        OPTIONAL,
    nr-DL-PRS-RSCPD-MeasurementRRC-Idle-r18         ENUMERATED { supported }        OPTIONAL,
    supportOfUE-basedCarrierPhasePositioning-r18    ENUMERATED { supported }        OPTIONAL,
    supportOfSymbolTimeStampForRSCPD-r18            ENUMERATED { supported }        OPTIONAL,
    supportOfFinerTimingReportGranularityForPRS-Meas-r18    ENUMERATED { minus1, minus2,
                                                                    minus3, minus4, minus5, minus6}
                                                                                        OPTIONAL,
    supportOfMeasurementsInTimeWindow-r18           BIT STRING {    rstd    (0),
                                                                    rsrp    (1),
                                                                            rsrpp   (2),
                                                                            rscpd   (3)
                                                                }   (SIZE (1..8))   OPTIONAL,
    supportOfPRS-MeasurementRRC-Idle-r18            ENUMERATED { supported }        OPTIONAL
    ]]
}

NR-DL-TDOA-RequestCapabilities-r16 ::= SEQUENCE {
    ...
}

NR-DL-TDOA-Error-r16 ::= CHOICE {
    locationServerErrorCauses-r16       NR-DL-TDOA-LocationServerErrorCauses-r16,
    targetDeviceErrorCauses-r16         NR-DL-TDOA-TargetDeviceErrorCauses-r16,
    ...
}

NR-DL-TDOA-LocationServerErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED  {   undefined,
                                    assistanceDataNotSupportedByServer,
                                    assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                    notProvidedAssistanceDataNotSupportedByServer,
                                    ...,
                                    on-demand-dl-prs-NotSupportedByServer-v1700,
                                    on-demand-dl-prs-SupportedButCurrentlyNotAvailableByServer-v1700
                                },
    ...
}

NR-DL-TDOA-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED {    undefined,
                                    assistance-data-missing,
                                    unableToMeasureAnyTRP,
                                    attemptedButUnableToMeasureSomeNeighbourTRPs,
                                    thereWereNotEnoughSignalsReceivedForUeBasedDL-TDOA,
                                    locationCalculationAssistanceDataMissing,
                                    ...
                                },
    ...,
    [[
    remoteUE-Indication-r18         ENUMERATED {true}       OPTIONAL        -- Cond NR
    ]]
}

NR-DL-AoD-ProvideAssistanceData-r16 ::= SEQUENCE {
    nr-DL-PRS-AssistanceData-r16        NR-DL-PRS-AssistanceData-r16        OPTIONAL,   -- Need ON
    nr-SelectedDL-PRS-IndexList-r16     NR-SelectedDL-PRS-IndexList-r16     OPTIONAL,   -- Need ON
    nr-PositionCalculationAssistance-r16
                                        NR-PositionCalculationAssistance-r16
                                                                            OPTIONAL,   -- Cond UEB
    nr-DL-AoD-Error-r16                 NR-DL-AoD-Error-r16                 OPTIONAL,   -- Need ON
    ...,
    [[
    nr-DL-PRS-BeamInfo-r17              NR-DL-PRS-BeamInfo-r16              OPTIONAL,   -- Cond UEA
    nr-On-Demand-DL-PRS-Configurations-r17
                                        NR-On-Demand-DL-PRS-Configurations-r17
                                                                            OPTIONAL,   -- Need ON
    nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                        NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                                                            OPTIONAL,   -- Need ON
    assistanceDataValidityArea-r17      AreaID-CellList-r17                 OPTIONAL    -- Need ON
    ]]
}

NR-DL-AoD-RequestAssistanceData-r16 ::= SEQUENCE {
    nr-PhysCellID-r16               NR-PhysCellID-r16                       OPTIONAL,
    nr-AdType-r16                   BIT STRING {    dl-prs  (0),
                                                    posCalc (1) } (SIZE (1..8)),
    ...,
    [[
    nr-PosCalcAssistanceRequest-r17             BIT STRING {    trpLoc      (0),
                                                                beamInfo    (1),
                                                                rtdInfo     (2),
                                                                beamAntInfo (3),
                                                                losNlosInfo (4),
                                                                nr-IntegrityBounds-r18 (5)
                                                            }   (SIZE (1..8))   OPTIONAL,
    nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17    ENUMERATED { eAoD, eAoA }       OPTIONAL,
    nr-DL-PRS-BeamInfoRequest-r17               ENUMERATED { requested }        OPTIONAL,
    nr-on-demand-DL-PRS-Request-r17             NR-On-Demand-DL-PRS-Request-r17 OPTIONAL,
    pre-configured-AssistanceDataRequest-r17    ENUMERATED { true }             OPTIONAL,
    nr-IntegrityAssistanceRequest-r18           BIT STRING {
                                                    serviceParameters       (0),
                                                    serviceAlert            (1),
                                                    riskParameters          (2),
                                                    integrityParaTRP-Loc    (3),
                                                    integrityParaBeamInfo   (4),
                                                    integrityParaRTD-Info   (5),
                                                    integrityBeamAntInfo    (6)
                                                    } (SIZE (1..8))         OPTIONAL
    ]]
}

NR-DL-AoD-ProvideLocationInformation-r16 ::= SEQUENCE {
    nr-DL-AoD-SignalMeasurementInformation-r16
                                            NR-DL-AoD-SignalMeasurementInformation-r16
                                                                            OPTIONAL,
    nr-dl-AoD-LocationInformation-r16       NR-DL-AoD-LocationInformation-r16
                                                                            OPTIONAL,
    nr-DL-AoD-Error-r16                     NR-DL-AoD-Error-r16             OPTIONAL,
    ...,
    [[
    nr-DL-AoD-SignalMeasurementInstances-r17    SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                    NR-DL-AoD-SignalMeasurementInformation-r16  OPTIONAL,   -- Cond batchUEA
    nr-DL-AoD-LocationInformationInstances-r17  SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                    NR-DL-AoD-LocationInformation-r16           OPTIONAL    -- Cond batchUEB
    ]]
}

NR-DL-AoD-SignalMeasurementInformation-r16 ::= SEQUENCE {
    nr-DL-AoD-MeasList-r16          NR-DL-AoD-MeasList-r16,
    ...
}

NR-DL-AoD-MeasList-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF NR-DL-AoD-MeasElement-r16

NR-DL-AoD-MeasElement-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-PhysCellID-r16               NR-PhysCellID-r16                       OPTIONAL,
    nr-CellGlobalID-r16             NCGI-r15                                OPTIONAL,
    nr-ARFCN-r16                    ARFCN-ValueNR-r15                       OPTIONAL,
    nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                OPTIONAL,
    nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16             OPTIONAL,
    nr-TimeStamp-r16                NR-TimeStamp-r16,
    nr-DL-PRS-RSRP-Result-r16       INTEGER (0..126),
    nr-DL-PRS-RxBeamIndex-r16       INTEGER (1..8)                          OPTIONAL,
    nr-DL-AoD-AdditionalMeasurements-r16
                                    NR-DL-AoD-AdditionalMeasurements-r16    OPTIONAL,
    ...,
    [[
    nr-DL-PRS-FirstPathRSRP-Result-r17
                                    INTEGER (0..126)                        OPTIONAL,
    nr-los-nlos-Indicator-r17       CHOICE {
            perTRP-r17                  LOS-NLOS-Indicator-r17,
            perResource-r17             LOS-NLOS-Indicator-r17
    }                                                                       OPTIONAL,
    nr-DL-AoD-AdditionalMeasurementsExt-r17
                                    NR-DL-AoD-AdditionalMeasurementsExt-r17 OPTIONAL
    ]],
    [[
    nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                            ENUMERATED { singleHop, multipleHop }   OPTIONAL
    ]]

}

NR-DL-AoD-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..7)) OF
                                                    NR-DL-AoD-AdditionalMeasurementElement-r16

NR-DL-AoD-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasAoD-r17)) OF
                                                    NR-DL-AoD-AdditionalMeasurementElement-r17

NR-DL-AoD-AdditionalMeasurementElement-r16 ::= SEQUENCE {
    nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                OPTIONAL,
    nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16             OPTIONAL,
    nr-TimeStamp-r16                NR-TimeStamp-r16,
    nr-DL-PRS-RSRP-ResultDiff-r16   INTEGER (0..30),
    nr-DL-PRS-RxBeamIndex-r16       INTEGER (1..8)                          OPTIONAL,
    ...
}

NR-DL-AoD-AdditionalMeasurementElement-r17 ::= SEQUENCE {
    nr-DL-PRS-ResourceID-r17                NR-DL-PRS-ResourceID-r16        OPTIONAL,
    nr-DL-PRS-ResourceSetID-r17             NR-DL-PRS-ResourceSetID-r16     OPTIONAL,
    nr-TimeStamp-r17                        NR-TimeStamp-r16,
    nr-DL-PRS-RSRP-ResultDiff-r17           INTEGER (0..30)                 OPTIONAL, -- Cond rsrp
    nr-DL-PRS-RxBeamIndex-r17               INTEGER (1..8)                  OPTIONAL,
    nr-DL-PRS-FirstPathRSRP-ResultDiff-r17  INTEGER (0..61)                 OPTIONAL, -- Cond rsrpp
    nr-los-nlos-IndicatorPerResource-r17    LOS-NLOS-Indicator-r17          OPTIONAL,
    ...,
    [[
    nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                ENUMERATED { singleHop, multipleHop }               OPTIONAL
    ]]
}

NR-DL-AoD-LocationInformation-r16 ::= SEQUENCE {
    measurementReferenceTime-r16        CHOICE {
            sfn-time-r16                    NR-TimeStamp-r16,
            utc-time-r16                    UTCTime,
            ...
            }                                                           OPTIONAL,
    ...,
    [[
    locationCoordinates-r17             LocationCoordinates             OPTIONAL,   -- Cond batch1
    locationSource-r17                  LocationSource-r13              OPTIONAL    -- Cond batch2
    ]]
}

NR-DL-AoD-RequestLocationInformation-r16 ::= SEQUENCE {
    nr-AssistanceAvailability-r16               BOOLEAN,
    nr-DL-AoD-ReportConfig-r16                  NR-DL-AoD-ReportConfig-r16,
    ...,
    [[
    multiMeasInSameReport-r17                   ENUMERATED { requested }    OPTIONAL  -- Need ON
    ]],
    [[
    nr-DL-PRS-RxHoppingRequest-r18          SEQUENCE {
        nr-DL-PRS-RxHoppingTotalBandwidth-r18       CHOICE {
            fr1                                         ENUMERATED {mhz40, mhz50, mhz80, mhz100},
            fr2                                         ENUMERATED {mhz100, mhz200, mhz400}
        }                                                                       OPTIONAL -- Need ON
    }                                                                           OPTIONAL -- Need ON
    ]]
}

NR-DL-AoD-ReportConfig-r16 ::= SEQUENCE {
    maxDL-PRS-RSRP-MeasurementsPerTRP-r16       INTEGER (1..8)              OPTIONAL, -- Need ON
    ...,
    [[
    maxDL-PRS-RSRP-MeasurementsPerTRP-r17       INTEGER (9..24)             OPTIONAL, -- Need ON
    maxDL-PRS-RSRPP-MeasurementsPerTRP-r17      INTEGER (1..24)             OPTIONAL, -- Need ON
    nr-los-nlos-IndicatorRequest-r17            SEQUENCE {
                                                    type-r17    LOS-NLOS-IndicatorType1-r17,
                                                    granularity-r17
                                                                LOS-NLOS-IndicatorGranularity1-r17,
                                                    ...
                                                }                           OPTIONAL, -- Need ON
    reducedDL-PRS-ProcessingSamples-r17         ENUMERATED { requested, ... }
                                                                            OPTIONAL, -- Need ON
    lowerRxBeamSweepingFactor-FR2-r17           ENUMERATED { requested }    OPTIONAL  -- Need ON
    ]],
    [[
    nr-DL-PRS-MeasurementTimeWindowsConfig-r18
                                NR-DL-PRS-MeasurementTimeWindowsConfig-r18  OPTIONAL  -- Need ON
    ]]
}

NR-DL-AoD-ProvideCapabilities-r16 ::= SEQUENCE {
    nr-DL-AoD-Mode-r16                      PositioningModes,
    nr-DL-AoD-PRS-Capability-r16            NR-DL-PRS-ResourcesCapability-r16,
    nr-DL-AoD-MeasurementCapability-r16     NR-DL-AoD-MeasurementCapability-r16,
    nr-DL-PRS-QCL-ProcessingCapability-r16  NR-DL-PRS-QCL-ProcessingCapability-r16,
    nr-DL-PRS-ProcessingCapability-r16      NR-DL-PRS-ProcessingCapability-r16,
    periodicalReporting-r16                 PositioningModes                            OPTIONAL,
    ...,
    [[
    ten-ms-unit-ResponseTime-r17            PositioningModes                            OPTIONAL,
    nr-PosCalcAssistanceSupport-r17         BIT STRING {    trpLocSup       (0),
                                                            beamInfoSup     (1),
                                                            rtdInfoSup      (2),
                                                            beamAntInfoSup  (3),
                                                            nr-IntegrityBoundsSup-r18   (4)
                                                        }   (SIZE (1..8))               OPTIONAL,
    nr-los-nlos-AssistanceDataSupport-r17   SEQUENCE {
                                                type-r17        LOS-NLOS-IndicatorType2-r17,
                                                granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                                ...
                                            }                                           OPTIONAL,
    nr-DL-PRS-ExpectedAoD-or-AoA-Sup-r17    BIT STRING {    eAoD        (0),
                                                            eAoA        (1)
                                                        }   (SIZE (1..8))               OPTIONAL,
    dl-PRS-ResourcePrioritySubset-Sup-r17   ENUMERATED { sameSet, differentSet, sameOrDifferentSet }
                                                                                        OPTIONAL,
    nr-DL-PRS-BeamInfoSup-r17               ENUMERATED { supported }                    OPTIONAL,
    nr-DL-AoD-On-Demand-DL-PRS-Support-r17  NR-On-Demand-DL-PRS-Support-r17             OPTIONAL,
    nr-los-nlos-IndicatorSupport-r17        SEQUENCE {
                                                type-r17        LOS-NLOS-IndicatorType2-r17,
                                                granularity-r17 LOS-NLOS-IndicatorGranularity2-r17,
                                                ...
                                            }                                           OPTIONAL,
    scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupportPerMode-r17
                                                                                        OPTIONAL,
    nr-dl-prs-AssistanceDataValidity-r17    SEQUENCE {
                            area-validity-r17   INTEGER (1..maxNrOfAreas-r17)           OPTIONAL,
                            ...
                            }                                                           OPTIONAL,
    multiMeasInSameMeasReport-r17           ENUMERATED { supported }                    OPTIONAL,
    mg-ActivationRequest-r17                ENUMERATED { supported }                    OPTIONAL
    ]],
    [[
    posMeasGapSupport-r17                   ENUMERATED { supported }                    OPTIONAL
    ]],
    [[
    multiLocationEstimateInSameMeasReport-r17   ENUMERATED { supported }                OPTIONAL
    ]],
    [[
    locationCoordinateTypes-r18             LocationCoordinateTypes                     OPTIONAL,
    nr-IntegrityAssistanceSupport-r18       BIT STRING {
                                                    serviceParametersSup        (0),
                                                    serviceAlertSup             (1),
                                                    riskParametersSup           (2),
                                                    integrityParaTRP-LocSup     (3),
                                                    integrityParaBeamInfoSup    (4),
                                                    integrityParaRTD-InfoSup    (5),
                                                    integrityBeamAntInfoSup     (6)
                                                    } (SIZE (1..8))                 OPTIONAL,
    periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupportPerMode-r18
                                                                                        OPTIONAL
    ]]
}

NR-DL-AoD-MeasurementCapability-r16 ::= SEQUENCE {
    maxDL-PRS-RSRP-MeasurementFR1-r16       INTEGER (1..8),
    maxDL-PRS-RSRP-MeasurementFR2-r16       INTEGER (1..8),
    dl-AoD-MeasCapabilityBandList-r16       SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                    DL-AoD-MeasCapabilityPerBand-r16,
    ...,
    [[
    maxDL-PRS-RSRP-MeasurementFR1-v1730     ENUMERATED { n16, n24 }                 OPTIONAL,
    maxDL-PRS-RSRP-MeasurementFR2-v1730     ENUMERATED { n16, n24 }                 OPTIONAL
    ]]
}

DL-AoD-MeasCapabilityPerBand-r16 ::= SEQUENCE {
    freqBandIndicatorNR-r16                 FreqBandIndicatorNR-r16,
    simul-NR-DL-AoD-DL-TDOA-r16             ENUMERATED { supported}                 OPTIONAL,
    simul-NR-DL-AoD-Multi-RTT-r16           ENUMERATED { supported}                 OPTIONAL,
    ...,
    [[
    maxDL-PRS-FirstPathRSRP-MeasPerTRP-r17  ENUMERATED { n1, n2, n4, n8, n16, n24 } OPTIONAL,
    dl-PRS-MeasRRC-Inactive-r17             ENUMERATED { supported }                OPTIONAL
    ]],
    [[
    supportOfMeasurementsInTimeWindow-r18   BIT STRING {
                                                                            rsrp        (0),
                                                                            rsrpp       (1)
                                                                }   (SIZE (1..8))       OPTIONAL,
    supportOfPRS-MeasurementRRC-Idle-r18    ENUMERATED { supported }                OPTIONAL
    ]]
}

NR-DL-AoD-RequestCapabilities-r16 ::= SEQUENCE {
    ...
}

NR-DL-AoD-Error-r16 ::= CHOICE {
    locationServerErrorCauses-r16       NR-DL-AoD-LocationServerErrorCauses-r16,
    targetDeviceErrorCauses-r16         NR-DL-AoD-TargetDeviceErrorCauses-r16,
    ...
}

NR-DL-AoD-LocationServerErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED  {   undefined,
                                    assistanceDataNotSupportedByServer,
                                    assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                    notProvidedAssistanceDataNotSupportedByServer,
                                    ...,
                                    on-demand-dl-prs-NotSupportedByServer-v1700,
                                    on-demand-dl-prs-SupportedButCurrentlyNotAvailableByServer-v1700
                                },
    ...
}

NR-DL-AoD-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED {    undefined,
                                    assistance-data-missing,
                                    unableToMeasureAnyTRP,
                                    attemptedButUnableToMeasureSomeNeighbourTRPs,
                                    thereWereNotEnoughSignalsReceivedForUeBasedDL-AoD,
                                    locationCalculationAssistanceDataMissing,
                                    ...
                                },
    ...,
    [[
    remoteUE-Indication-r18     ENUMERATED {true}       OPTIONAL        -- Cond NR
    ]]
}

NR-Multi-RTT-ProvideAssistanceData-r16 ::= SEQUENCE {
    nr-DL-PRS-AssistanceData-r16        NR-DL-PRS-AssistanceData-r16        OPTIONAL,   -- Need ON
    nr-SelectedDL-PRS-IndexList-r16     NR-SelectedDL-PRS-IndexList-r16     OPTIONAL,   -- Need ON
    nr-Multi-RTT-Error-r16              NR-Multi-RTT-Error-r16              OPTIONAL,   -- Need ON
    ...,
    [[
    nr-On-Demand-DL-PRS-Configurations-r17  NR-On-Demand-DL-PRS-Configurations-r17
                                                                            OPTIONAL,   -- Need ON
    nr-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                        NR-On-Demand-DL-PRS-Configurations-Selected-IndexList-r17
                                                                            OPTIONAL,   -- Need ON
    assistanceDataValidityArea-r17  AreaID-CellList-r17                     OPTIONAL    -- Need ON
    ]]
}

NR-Multi-RTT-RequestAssistanceData-r16 ::= SEQUENCE {
    nr-PhysCellID-r16               NR-PhysCellID-r16                       OPTIONAL,
    nr-AdType-r16                   BIT STRING {    dl-prs (0),
                                                    ul-srs (1) } (SIZE (1..8)),
    ...,
    [[
    nr-on-demand-DL-PRS-Request-r17             NR-On-Demand-DL-PRS-Request-r17         OPTIONAL,
    nr-DL-PRS-ExpectedAoD-or-AoA-Request-r17    ENUMERATED { eAoD, eAoA }               OPTIONAL,
    pre-configured-AssistanceDataRequest-r17    ENUMERATED { true }                     OPTIONAL
    ]]
}

NR-Multi-RTT-ProvideLocationInformation-r16 ::= SEQUENCE {
    nr-Multi-RTT-SignalMeasurementInformation-r16
                                            NR-Multi-RTT-SignalMeasurementInformation-r16
                                                                                    OPTIONAL,
    nr-Multi-RTT-Error-r16                  NR-Multi-RTT-Error-r16                  OPTIONAL,
    ...,
    [[
    nr-Multi-RTT-SignalMeasurementInstances-r17
                                            SEQUENCE (SIZE (1..maxMeasInstances-r17)) OF
                                                NR-Multi-RTT-SignalMeasurementInformation-r16
                                                                    OPTIONAL    --Cond batchUEA
    ]]
}

NR-Multi-RTT-SignalMeasurementInformation-r16 ::= SEQUENCE {
    nr-Multi-RTT-MeasList-r16       NR-Multi-RTT-MeasList-r16,
    nr-NTA-Offset-r16               ENUMERATED { nTA1, nTA2, nTA3, nTA4, ... }      OPTIONAL,
    ...,
    [[
    nr-SRS-TxTEG-Set-r17            SEQUENCE (SIZE(1..maxTxTEG-Sets-r17)) OF
                                        NR-SRS-TxTEG-Element-r17                    OPTIONAL
                                                                             -- Cond Case2-3
    ]],
    [[
    nr-UE-RxTEG-TimingErrorMargin-r17   TEG-TimingErrorMargin-r17       OPTIONAL,-- Cond TEGCase3
    nr-UE-TxTEG-TimingErrorMargin-r17   TEG-TimingErrorMargin-r17       OPTIONAL,-- Cond TEGCase2-3
    nr-UE-RxTxTEG-TimingErrorMargin-r17 RxTxTEG-TimingErrorMargin-r17   OPTIONAL -- Cond TEGCase1-2
    ]]
}

NR-Multi-RTT-MeasList-r16 ::= SEQUENCE (SIZE(1..nrMaxTRPs-r16)) OF NR-Multi-RTT-MeasElement-r16

NR-Multi-RTT-MeasElement-r16 ::= SEQUENCE {
    dl-PRS-ID-r16                   INTEGER (0..255),
    nr-PhysCellID-r16               NR-PhysCellID-r16                               OPTIONAL,
    nr-CellGlobalID-r16             NCGI-r15                                        OPTIONAL,
    nr-ARFCN-r16                    ARFCN-ValueNR-r15                               OPTIONAL,
    nr-DL-PRS-ResourceID-r16        NR-DL-PRS-ResourceID-r16                        OPTIONAL,
    nr-DL-PRS-ResourceSetID-r16     NR-DL-PRS-ResourceSetID-r16                     OPTIONAL,
    nr-UE-RxTxTimeDiff-r16          CHOICE {
            k0-r16                      INTEGER (0..1970049),
            k1-r16                      INTEGER (0..985025),
            k2-r16                      INTEGER (0..492513),
            k3-r16                      INTEGER (0..246257),
            k4-r16                      INTEGER (0..123129),
            k5-r16                      INTEGER (0..61565),
            ...,
            kMinus6-r18                 INTEGER (0..126083073),
            kMinus5-r18                 INTEGER (0..63041537),
            kMinus4-r18                 INTEGER (0..31520769),
            kMinus3-r18                 INTEGER (0..15760385),
            kMinus2-r18                 INTEGER (0..7880193),
            kMinus1-r18                 INTEGER (0..3940097)
    },
    nr-AdditionalPathList-r16       NR-AdditionalPathList-r16                       OPTIONAL,
    nr-TimeStamp-r16                NR-TimeStamp-r16,
    nr-TimingQuality-r16            NR-TimingQuality-r16,
    nr-DL-PRS-RSRP-Result-r16       INTEGER (0..126)                                OPTIONAL,
    nr-Multi-RTT-AdditionalMeasurements-r16
                                    NR-Multi-RTT-AdditionalMeasurements-r16         OPTIONAL,
    ...,
    [[
    nr-UE-RxTx-TEG-Info-r17             NR-UE-RxTx-TEG-Info-r17                     OPTIONAL,
    nr-DL-PRS-FirstPathRSRP-Result-r17  INTEGER (0..126)                            OPTIONAL,
    nr-los-nlos-Indicator-r17           CHOICE {
                perTRP-r17                  LOS-NLOS-Indicator-r17,
                perResource-r17             LOS-NLOS-Indicator-r17
    }                                                                               OPTIONAL,
    nr-AdditionalPathListExt-r17        NR-AdditionalPathListExt-r17                OPTIONAL,
    nr-Multi-RTT-AdditionalMeasurementsExt-r17
                                        NR-Multi-RTT-AdditionalMeasurementsExt-r17  OPTIONAL
    ]],
    [[
    nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
    nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2..3)) OF
                                NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
    nr-RSCP-r18                                         INTEGER (0..3599)           OPTIONAL,
    nr-PhaseQuality-r18                                 NR-PhaseQuality-r18         OPTIONAL,
    nr-RSCP-AddSampleMeasurements-r18
                SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF NR-RSCP-AdditionalMeasurements-r18
                                                                                            OPTIONAL,
            nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                                ENUMERATED { singleHop, multipleHop }       OPTIONAL,
    nr-NTN-UE-RxTxMeasurements-r18      NR-NTN-UE-RxTxMeasurements-r18              OPTIONAL
    ]]
}

NR-Multi-RTT-AdditionalMeasurements-r16 ::= SEQUENCE (SIZE (1..3)) OF
                                    NR-Multi-RTT-AdditionalMeasurementElement-r16

NR-Multi-RTT-AdditionalMeasurementsExt-r17 ::= SEQUENCE (SIZE (1..maxAddMeasRTT-r17)) OF
                                    NR-Multi-RTT-AdditionalMeasurementElement-r16

NR-Multi-RTT-AdditionalMeasurementElement-r16 ::= SEQUENCE {
    nr-DL-PRS-ResourceID-r16            NR-DL-PRS-ResourceID-r16                    OPTIONAL,
    nr-DL-PRS-ResourceSetID-r16         NR-DL-PRS-ResourceSetID-r16                 OPTIONAL,
    nr-DL-PRS-RSRP-ResultDiff-r16       INTEGER (0..61)                             OPTIONAL,
    nr-UE-RxTxTimeDiffAdditional-r16    CHOICE {
            k0-r16                          INTEGER (0..8191),
            k1-r16                          INTEGER (0..4095),
            k2-r16                          INTEGER (0..2047),
            k3-r16                          INTEGER (0..1023),
            k4-r16                          INTEGER (0..511),
            k5-r16                          INTEGER (0..255),
            ...,
            kMinus6-r18                     INTEGER (0..524224),
            kMinus5-r18                     INTEGER (0..262112),
            kMinus4-r18                     INTEGER (0..131056),
            kMinus3-r18                     INTEGER (0..65528),
            kMinus2-r18                     INTEGER (0..32764),
            kMinus1-r18                     INTEGER (0..16382)
    },
    nr-TimingQuality-r16                NR-TimingQuality-r16,
    nr-AdditionalPathList-r16           NR-AdditionalPathList-r16                   OPTIONAL,
    nr-TimeStamp-r16                    NR-TimeStamp-r16,
    ...,
    [[
    nr-UE-RxTx-TEG-Info-r17                 NR-UE-RxTx-TEG-Info-r17         OPTIONAL,
    nr-DL-PRS-FirstPathRSRP-ResultDiff-r17  INTEGER (0..61)                 OPTIONAL,
    nr-los-nlos-IndicatorPerResource-r17    LOS-NLOS-Indicator-r17          OPTIONAL,
    nr-AdditionalPathListExt-r17            NR-AdditionalPathListExt-r17    OPTIONAL
    ]],
    [[
    nr-MeasBasedOnAggregatedResources-r18       ENUMERATED {true}                   OPTIONAL,
    nr-AggregatedDL-PRS-ResourceInfo-List-r18   SEQUENCE (SIZE (2..3)) OF
                                NR-AggregatedDL-PRS-ResourceInfo-Element-r18        OPTIONAL,
    nr-RSCP-r18                                         INTEGER (0..3599)           OPTIONAL,
    nr-PhaseQuality-r18                                 NR-PhaseQuality-r18         OPTIONAL,
    nr-RSCP-AdditionalMeasurementsAddSample-r18
                SEQUENCE (SIZE (1..nrNumOfSamples-1-r18 )) OF NR-RSCP-AdditionalMeasurements-r18
                                                                                    OPTIONAL,
    nr-ReportDL-PRS-MeasBasedOnSingleOrMultiHopRx-r18
                                        ENUMERATED { singleHop, multipleHop }       OPTIONAL,
    nr-NTN-UE-RxTxMeasurements-r18      NR-NTN-UE-RxTxMeasurements-r18              OPTIONAL
    ]]
}

NR-SRS-TxTEG-Element-r17 ::= SEQUENCE {
    nr-TimeStamp-r17            NR-TimeStamp-r16                            OPTIONAL,   -- Need OP
    nr-UE-Tx-TEG-ID-r17         INTEGER (0..maxNumOfTxTEGs-1-r17),
    carrierFreq-r17             SEQUENCE {
                                        absoluteFrequencyPointA-r17     ARFCN-ValueNR-r15,
                                        offsetToPointA-r17              INTEGER (0..2199)
                                }                                           OPTIONAL,
    srs-PosResourceList-r17     SEQUENCE (SIZE (1..maxNumOfSRS-PosResources-r17)) OF
                                            INTEGER (0..maxNumOfSRS-PosResources-1-r17),
    ...
}

NR-UE-RxTx-TEG-Info-r17 ::= CHOICE {
    case1-r17               SEQUENCE {
                                    nr-UE-RxTx-TEG-ID-r17   INTEGER (0..maxNumOfRxTxTEGs-1-r17)
                                    },
    case2-r17               SEQUENCE {
                                    nr-UE-RxTx-TEG-ID-r17   INTEGER (0..maxNumOfRxTxTEGs-1-r17),
                                    nr-UE-Tx-TEG-Index-r17  INTEGER (1..maxTxTEG-Sets-r17)
                                    },
    case3-r17               SEQUENCE {
                                    nr-UE-Rx-TEG-ID-r17     INTEGER (0..maxNumOfRxTEGs-1-r17),
                                    nr-UE-Tx-TEG-Index-r17  INTEGER (1..maxTxTEG-Sets-r17)
                                    },
    ...
}

NR-RSCP-AdditionalMeasurements-r18 ::= SEQUENCE {
    nr-RSCP-r18                             INTEGER (0..3599)               OPTIONAL,
    nr-PhaseQuality-r18                     NR-PhaseQuality-r18             OPTIONAL,
    nr-TimeStamp-r18                        NR-TimeStamp-r16                OPTIONAL,
    ...
}

NR-NTN-UE-RxTxMeasurements-r18 ::= SEQUENCE {
    nr-NTN-UE-RxTxTimeDiffSubframeOffset-r18    INTEGER (0..542),
    nr-NTN-DL-TimingDrift-r18                   INTEGER (-265..265)
}

NR-Multi-RTT-RequestLocationInformation-r16 ::= SEQUENCE {
    nr-UE-RxTxTimeDiffMeasurementInfoRequest-r16
                                        ENUMERATED { true }                 OPTIONAL, -- Need ON
    nr-RequestedMeasurements-r16        BIT STRING { prsrsrpReq (0),
                                                    firstPathRsrpReq-r17 (1),
                                                    dl-PRS-RSCP-Request-r18 (2)}
                                                     (SIZE(1..8)),
    nr-AssistanceAvailability-r16       BOOLEAN,
    nr-Multi-RTT-ReportConfig-r16       NR-Multi-RTT-ReportConfig-r16,
    additionalPaths-r16                 ENUMERATED { requested }            OPTIONAL, -- Need ON
    ...,
    [[
    nr-UE-RxTxTEG-Request-r17           ENUMERATED { case1, case2, case3, ... }
                                                                            OPTIONAL, -- Need ON
    measureSameDL-PRS-ResourceWithDifferentRxTxTEGs-r17
                                        ENUMERATED { n0, n2, n3, n4, n6, n8, ... }
                                                                            OPTIONAL, -- Need ON
    measureSameDL-PRS-ResourceWithDifferentRxTEGs-r17
                                        ENUMERATED { n0, n2, n3, n4, n6, n8, ... }
                                                                            OPTIONAL, -- Need ON
    reducedDL-PRS-ProcessingSamples-r17
                                        ENUMERATED { requested, ... }       OPTIONAL, -- Need ON
    nr-los-nlos-IndicatorRequest-r17    SEQUENCE {
                                            type-r17        LOS-NLOS-IndicatorType1-r17,
                                            granularity-r17 LOS-NLOS-IndicatorGranularity1-r17,
                                            ...
                                        }                                   OPTIONAL, -- Need ON
    additionalPathsExt-r17              ENUMERATED { requested }            OPTIONAL, -- Need ON
    additionalPathsDL-PRS-RSRP-Request-r17
                                        ENUMERATED { requested }            OPTIONAL, -- Need ON
    multiMeasInSameReport-r17           ENUMERATED { requested }            OPTIONAL, -- Need ON
    lowerRxBeamSweepingFactor-FR2-r17   ENUMERATED { requested }            OPTIONAL  -- Need ON
    ]],
    [[
    nr-DL-PRS-RxHoppingRequest-r18      SEQUENCE {
        nr-DL-PRS-RxHoppingTotalBandwidth-r18       CHOICE {
            fr1             ENUMERATED {mhz40, mhz50, mhz80, mhz100},
            fr2             ENUMERATED {mhz100, mhz200, mhz400}
        }                                                                   OPTIONAL    -- Need ON
    }                                                                       OPTIONAL,   -- Need ON
    timingReportingGranularityFactorExt-r18             INTEGER (-6..-1)    OPTIONAL,   -- Need ON
    nr-DL-PRS-JointMeasurementRequest-r18       SEQUENCE {
        nr-DL-PRS-JointMeasurementRequestedPFL-List-r18     SEQUENCE (SIZE (2..3)) OF
                                        INTEGER (0..nrMaxFreqLayers-1-r16)  OPTIONAL    -- Need ON
    }                                                                       OPTIONAL,   -- Need ON
    nr-DL-PRS-MeasurementTimeWindowsConfig-r18
                                NR-DL-PRS-MeasurementTimeWindowsConfig-r18  OPTIONAL    -- Need ON
    ]],
    [[
    nr-NTN-UE-RxTxMeasurementsRequest-r18   ENUMERATED { requested }        OPTIONAL    -- Need ON
    ]]
}

NR-Multi-RTT-ReportConfig-r16 ::= SEQUENCE {
    maxDL-PRS-RxTxTimeDiffMeasPerTRP-r16    INTEGER (1..4)                  OPTIONAL, -- Need ON
    timingReportingGranularityFactor-r16    INTEGER (0..5)                  OPTIONAL  -- Need ON
}

NR-Multi-RTT-ProvideCapabilities-r16 ::= SEQUENCE {
    nr-Multi-RTT-PRS-Capability-r16         NR-DL-PRS-ResourcesCapability-r16,
    nr-Multi-RTT-MeasurementCapability-r16  NR-Multi-RTT-MeasurementCapability-r16,
    nr-DL-PRS-QCL-ProcessingCapability-r16  NR-DL-PRS-QCL-ProcessingCapability-r16,
    nr-DL-PRS-ProcessingCapability-r16      NR-DL-PRS-ProcessingCapability-r16,
    nr-UL-SRS-Capability-r16                NR-UL-SRS-Capability-r16,
    additionalPathsReport-r16               ENUMERATED { supported }                    OPTIONAL,
    periodicalReporting-r16                 ENUMERATED { supported }                    OPTIONAL,
    ...,
    [[
    ten-ms-unit-ResponseTime-r17            ENUMERATED { supported }                    OPTIONAL,
    nr-DL-PRS-ExpectedAoD-or-AoA-Sup-r17    BIT STRING {    eAoD        (0),
                                                            eAoA        (1)
                                                        }   (SIZE (1..8))               OPTIONAL,   nr-Multi-RTT-On-Demand-DL-PRS-Support-r17
                                            NR-On-Demand-DL-PRS-Support-r17             OPTIONAL,
    nr-UE-RxTx-TEG-ID-ReportingSupport-r17  BIT STRING {    case1   (0),
                                                            case2   (1),
                                                            case3   (2)
                                                        }   (SIZE (1..8))               OPTIONAL,
    nr-los-nlos-IndicatorSupport-r17    SEQUENCE {
                                            type-r17            LOS-NLOS-IndicatorType2-r17,
                                            granularity-r17     LOS-NLOS-IndicatorGranularity2-r17,
                                            ...
                                        }                                               OPTIONAL,
    additionalPathsExtSupport-r17           ENUMERATED { n4, n6, n8 }                   OPTIONAL,
    scheduledLocationRequestSupported-r17   ScheduledLocationTimeSupport-r17            OPTIONAL,
    nr-dl-prs-AssistanceDataValidity-r17    SEQUENCE {
                                area-validity-r17   INTEGER (1..maxNrOfAreas-r17)       OPTIONAL,
                                ...
                            }                                                           OPTIONAL,
    multiMeasInSameMeasReport-r17           ENUMERATED { supported }                    OPTIONAL,
    mg-ActivationRequest-r17                ENUMERATED { supported }                    OPTIONAL
    ]],
    [[
    posMeasGapSupport-r17                   ENUMERATED { supported }                    OPTIONAL
    ]],
    [[
    nr-MultiRTT-OnDemandPRS-ForBWA-Support-r18  ENUMERATED { supported }                OPTIONAL,
    periodicReportingIntervalMsSupport-r18  PeriodicReportingIntervalMsSupport-r18      OPTIONAL
    ]]
}

NR-Multi-RTT-MeasurementCapability-r16 ::= SEQUENCE {
    maxNrOfRx-TX-MeasFR1-r16                    INTEGER (1..4)                      OPTIONAL,
    maxNrOfRx-TX-MeasFR2-r16                    INTEGER (1..4)                      OPTIONAL,
    supportOfRSRP-MeasFR1-r16                   ENUMERATED { supported }            OPTIONAL,
    supportOfRSRP-MeasFR2-r16                   ENUMERATED { supported }            OPTIONAL,
    srs-AssocPRS-MultiLayersFR1-r16             ENUMERATED { supported }            OPTIONAL,
    srs-AssocPRS-MultiLayersFR2-r16             ENUMERATED { supported }            OPTIONAL,
    ...,
    [[
    nr-UE-TEG-Capability-r17                    NR-UE-TEG-Capability-r17            OPTIONAL,
    multi-RTT-MeasCapabilityBandList-r17        SEQUENCE (SIZE (1..nrMaxBands-r16)) OF
                                                    Multi-RTT-MeasCapabilityPerBand-r17
                                                                                    OPTIONAL
    ]]
}

Multi-RTT-MeasCapabilityPerBand-r17 ::= SEQUENCE {
    freqBandIndicatorNR-r17                 FreqBandIndicatorNR-r16,
    supportOfDL-PRS-FirstPathRSRP-r17       ENUMERATED { supported }            OPTIONAL,
    dl-PRS-MeasRRC-Inactive-r17             ENUMERATED { supported }            OPTIONAL,
    ...,
    [[
    supportOfDL-PRS-BWA-RRC-Connected-r18       ENUMERATED { supported }                OPTIONAL,
    supportOfDL-PRS-BWA-RRC-Inactive-r18        ENUMERATED { supported }                OPTIONAL,
    nr-NTN-MeasAndReport-r18                    ENUMERATED { supported }                OPTIONAL,
    nr-DL-PRS-RSCP-ReportingRRC-Connected-r18   ENUMERATED { supported }                OPTIONAL,
    nr-DL-PRS-RSCP-ReportingRRC-Inactive-r18    ENUMERATED { supported }                OPTIONAL,
    assocSingleRx-Tx-WithUpToNsampleRSCP-r18    ENUMERATED { supported }                OPTIONAL,
    supportOfSymbolTimeStampForRSCP-r18         ENUMERATED { supported }                OPTIONAL,
    supportOfFinerTimingReportGranularityForPRS-Meas-r18    ENUMERATED { minus1, minus2,
                                                    minus3, minus4, minus5, minus6}     OPTIONAL,
    supportOfMeasurementsInTimeWindow-r18       BIT STRING {    rx-tx   (0),
                                                                                    rsrp    (1),
                                                                                    rsrpp   (2),
                                                                                            rscp    (3)
                                                                }   (SIZE (1..8))       OPTIONAL
    ]]
}

NR-Multi-RTT-RequestCapabilities-r16 ::= SEQUENCE {
    ...
}

NR-Multi-RTT-Error-r16 ::= CHOICE {
    locationServerErrorCauses-r16       NR-Multi-RTT-LocationServerErrorCauses-r16,
    targetDeviceErrorCauses-r16         NR-Multi-RTT-TargetDeviceErrorCauses-r16,
    ...
}

NR-Multi-RTT-LocationServerErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED  {   undefined,
                                    assistanceDataNotSupportedByServer,
                                    assistanceDataSupportedButCurrentlyNotAvailableByServer,
                                    ...,
                                    on-demand-dl-prs-NotSupportedByServer-v1700,
                                    on-demand-dl-prs-SupportedButCurrentlyNotAvailableByServer-v1700
                                },
    ...
}

NR-Multi-RTT-TargetDeviceErrorCauses-r16 ::= SEQUENCE {
    cause-r16       ENUMERATED {    undefined,
                                    dl-assistance-data-missing,
                                    unableToMeasureAnyTRP,
                                    attemptedButUnableToMeasureSomeNeighbourTRPs,
                                    ul-srs-configuration-missing,
                                    unableToTransmit-ul-srs,
                                    ...
                                },
    ...,
    [[
    remoteUE-Indication-r18     ENUMERATED {true}       OPTIONAL        -- Cond NR
    ]]
}

maxEARFCN                   INTEGER ::= 65535   -- Maximum value of EUTRA carrier frequency

maxEARFCN-Plus1             INTEGER ::= 65536   -- Lowest value extended EARFCN range

maxEARFCN2                  INTEGER ::= 262143  -- Highest value extended EARFCN range

maxMBS-r14                  INTEGER ::= 64

maxWLAN-AP-r13              INTEGER ::= 64

maxKnownAPs-r14             INTEGER ::= 2048

maxVisibleAPs-r14           INTEGER ::= 32

maxWLAN-AP-r14              INTEGER ::= 128

maxWLAN-DataSets-r14        INTEGER ::= 8

maxBT-Beacon-r13            INTEGER ::= 32

maxBT-BeaconAntElt-r18      INTEGER ::= 74

maxBT-BeaconAD-r18          INTEGER ::= 64

nrMaxBands-r16                          INTEGER ::= 1024    -- Maximum number of supported bands in
                                                            -- UE capability.
        nrMaxFreqLayers-r16                     INTEGER ::= 4       -- Max freq layers

nrMaxFreqLayers-1-r16                   INTEGER ::= 3

nrMaxNumDL-PRS-ResourcesPerSet-1-r16    INTEGER ::= 63

nrMaxNumDL-PRS-ResourceSetsPerTRP-1-r16 INTEGER ::= 7

nrMaxResourceIDs-r16                    INTEGER ::= 64      -- Max Resource IDs

nrMaxResourceOffsetValue-1-r16          INTEGER ::= 511

nrMaxResourcesPerSet-r16                INTEGER ::= 64      -- Maximum resources for one set

nrMaxSetsPerTrpPerFreqLayer-r16         INTEGER ::= 2       -- Maximum resource sets for one TRP
        nrMaxSetsPerTrpPerFreqLayer-1-r16       INTEGER ::= 1

nrMaxTRPs-r16                           INTEGER ::= 256     -- Max TRPs per UE

nrMaxTRPsPerFreq-r16                    INTEGER ::= 64      -- Max TRPs per freq layers

nrMaxTRPsPerFreq-1-r16                  INTEGER ::= 63

maxSimultaneousBands-r16                INTEGER ::= 4       -- Maximum number of simultaneously
                                                            -- measured bands

maxBandComb-r16                         INTEGER ::= 1024

nrMaxConfiguredBands-r16                INTEGER ::= 16

maxNumOfRxTEGs-r17                      INTEGER ::= 32

maxNumOfRxTEGs-1-r17                    INTEGER ::= 31

maxNumOfTxTEGs-1-r17                    INTEGER ::= 7

maxTxTEG-Sets-r17                       INTEGER ::= 256     -- Maximum applicable number is 64

maxNumOfRxTxTEGs-1-r17                  INTEGER ::= 255

maxNumOfTRP-TxTEGs-1-r17                INTEGER ::= 7

maxNumOfSRS-PosResources-r17            INTEGER ::= 64

maxNumOfSRS-PosResources-1-r17          INTEGER ::= 63

maxNumResourcesPerAngle-r17             INTEGER ::= 24

maxNumPrioResources-r17                 INTEGER ::= 24

maxAddMeasTDOA-r17                      INTEGER ::= 31

maxAddMeasAoD-r17                       INTEGER ::= 23

maxAddMeasRTT-r17                       INTEGER ::= 31

maxOD-DL-PRS-Configs-r17                INTEGER ::= 8

maxCellIDsPerArea-r17                   INTEGER ::= 256

maxNrOfAreas-r17                        INTEGER ::= 16

maxMeasInstances-r17                    INTEGER ::= 32

nrMaxNumPRS-BandWidthAggregation-r18    INTEGER ::= 256     -- Max number of DL-PRS bandwidth
                                                            -- aggregation configurations that a
                                                            -- location server can provide to a UE

nrNumOfSamples-r18                      INTEGER ::= 4       -- NSample of RSCP/RSCPD

nrNumOfSamples-1-r18                    INTEGER ::= 3

END

</Accordion>

<br />