syntax = "proto2";

option optimize_for = SPEED;

import "osi_common.proto";

package osi3;

//
// \brief Additional value associated with a traffic sign or road marking,
// its unit and its text. The interpretation of this text is left to a
// user-defined procedure
//
message TrafficSignValue
{
    // Additional value associated with a traffic sign or road marking,
    // e.g. value of a speed limit.
    //
    optional double value = 1;

    // Unit for additional value.
    //
    optional Unit value_unit = 2;

    // Unit for values on traffic sign.
    //
    enum Unit
    {
        // Unit of the sign's value is unknown (must not be used in ground
        // truth).
        //
        UNIT_UNKNOWN = 0;

        // Other (unspecified but known) unit of the sign's value.
        //
        UNIT_OTHER = 1;

        // Value without unit.
        //
        UNIT_NO_UNIT = 2;

        // Velocity.
        // Kilometers per hour.
        //
        // Unit: km/h
        //
        UNIT_KILOMETER_PER_HOUR = 3;

        // Velocity.
        // Miles per hour.
        //
        // Unit: mph
        //
        UNIT_MILE_PER_HOUR = 4;

        // Length.
        // Meter.
        //
        // Unit: m
        //
        UNIT_METER = 5;

        // Length.
        // Kilometer.
        //
        // Unit: km
        //
        UNIT_KILOMETER = 6;

        // Length.
        // Feet.
        //
        // Unit: ft
        //
        UNIT_FEET = 7;

        // Length.
        // Mile.
        //
        // Unit: mile
        //
        UNIT_MILE = 8;

        // Weight.
        // Ton.
        //
        // Unit: t
        //
        UNIT_METRIC_TON = 9;

        // Weight.
        // Long ton UK 1,016.047 kg.
        //
        // Unit: tn. l.
        //
        UNIT_LONG_TON = 10;

        // Weight.
        // Short ton USA 907.1847 kg.
        //
        // Unit: tn. sh.
        //
        UNIT_SHORT_TON = 11;
        
        // Time of day.
        // Hours since midnight. Starting with 0.
        //
        // Unit: h
        //
        UNIT_HOUR = 15;

        // Time of day.
        // Minutes since last hour. Starting with 0.
        //
        // Unit: min
        //
        UNIT_MINUTES = 12;
        
        // Day of the month.
        // Starting with 1.
        //
        UNIT_DAY_OF_MONTH = 16;

        // Day of the week.
        // Days since Monday. Monday = 0; Tuesday = 1; ...
        //
        // \note For consistency this field will be renamed to UNIT_DAY_OF_WEEK in v4.0.0 .
        //
        UNIT_DAY = 13;

        // Percentage.
        // Value.
        //
        // Unit: %
        //
        UNIT_PERCENTAGE = 14;
        
        // Duration in days.
        //
        // Unit: day
        //
        UNIT_DURATION_DAY = 17;
        
        // Duration in hours.
        //
        // Unit: h
        //
        UNIT_DURATION_HOUR = 18;
        
        // Duration in minutes.
        //
        // Unit: min
        //
        UNIT_DURATION_MINUTE = 19;
    }

    // Text associated with a sign, e.g. the name of a location whose distance
    // to the sign is indicated therein. The interpretation of this text is
    // left to a user-defined procedure.
    //
    optional string text = 3;
}

//
// \brief A traffic sign.
//
// All coordinates and orientations are relative to the global ground truth
// coordinate system.
//
message TrafficSign
{
    // The ID of the traffic sign.
    //
    // \rules
    // is_globally_unique
    // is_set
    // \endrules
    //
    optional Identifier id = 1;

    // Main sign, e.g. speed limit 30 km/h
    //
    optional MainSign main_sign = 2;

    // Additional supplementary signs, e.g. time limits, modifying the traffic
    // sign.
    //
    repeated SupplementarySign supplementary_sign = 3;


    // Optional external reference to the traffic sign source.
    //
    // The external reference point to the source of the traffic sign, if it is
    // derived from one or more objects or external references.
    //
    // For example, to reference a signal defined in an OpenDRIVE map
    // the items should be set as follows:
    // * reference = URI to map, can remain empty if identical with definition
    //               in \c GroundTruth::map_reference
    // * type = "net.asam.opendrive"
    // * identifier[0] = id of t_road_signals_signal
    //
    // \note For non-ASAM Standards, it is implementation-specific how
    //       source_reference is resolved.
    //
    // \note If an individual identification of MainSign and SupplementarySign
    //       is necessary, this should be done via multiple individual
    //       entries of this source_reference.
    //
    // \note The value has to be repeated, because one lane segment may be
    //       derived from more than one origin segment. Multiple sources
    //       may be added as reference as well, for example, a map and sensors.
    //
    repeated ExternalReference source_reference = 4;

    //
    // \brief Main sign of the traffic sign.
    //
    // \image html OSI_MainSign.svg
    //
    message MainSign
    {
        // The base parameters of the traffic sign.
        //
        // The orientation of the bounding box \c #base
        // ( \c BaseStationary::orientation ) is defined as follows:
        // The z-axis of the given \c BaseStationary::orientation is the vector
        // from the bottom to the top of the traffic sign's 2D image plate.
        // (Normally it is equal to the ground truth z-axis.)
        // The x-axis of the given \c BaseStationary::orientation is view
        // normal of the traffic sign's image.
        // This x-axis points from the traffic sign's image in the direction
        // from where a 'viewer' could see the traffic sign image.
        //
        optional BaseStationary base = 1;

        // The classification of the traffic sign.
        //
        optional Classification classification = 2;

        // Opaque reference of an associated 3D model of the traffic sign.
        //
        // \note It is implementation-specific how model_references are resolved to
        // 3d models.
        //
        optional string model_reference = 3;

        //
        // \brief \c Classification data for a traffic sign.
        //
        // \image html OSI_DirectionScope.svg
        //
        // When constructing a \c MainSign, consider the use of the following
        // members:
        // - In order to include numerical values indicated in the sign,
        // use \c TrafficSignValue::value. Accompany this value with an
        // indication of its unit of measure given by \c
        // TrafficSignValue::value_unit.
        // - In order to include strings of text indicated in the sign,
        // use \c TrafficSignValue::text. The interpretation of this text is
        // left to a user-defined procedure.
        // - Some traffic signs exist in two variants that have a similar
        // semantic meaning and the property that the one results from flipping
        // the other one around the vertical axis. The optional member \c
        // #vertically_mirrored has been provided to enable an explicit choice
        // between both variants.
        // - For signs in which an arrow symbol is included to constraint their
        // scope, the \c #direction_scope member has been provided to indicate
        // the direction of the arrow from the perspective of a viewer standing
        // right in front of the sign and looking straight towards it.
        //
        // \note The definition of the sign types is thought to be independent
        // of the country, even if the images used in this documentation are
        // based on the German Road Traffic Regulations (StVO).
        //
        message Classification
        {
            // This value indicates if a sign is static or dynamic regarding its
            // content (e.g., electronic sign bridge) and/or regarding its  
            // position on the road.
            //
            optional Variability variability = 1;

            // The type of the traffic sign.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            optional Type type = 2;

            // Additional value associated with the traffic sign, e.g. value of
            // the speed limit.
            //
            // \note Field need not be set if traffic sign type does not require
            // it.
            //
            optional TrafficSignValue value = 3;

            // Some traffic signs have an additional arrow symbol as an
            // additional constraint for their scope (e.g. no parking to the
            // right). The arrow direction is given relative to the sign's 2D
            // image plane, i.e. as a viewer standing right in front of the sign
            // and looking straight towards it would interpret the arrow.
            //
            // The definition for left and right is according to the following
            // temporarily constructed right-handed local coordinate system:
            // Set z-axis to match the z-axis of the ground truth coordinate
            // system. Set x-axis to the view normal of the traffic sign's image
            // (\c #base \c BaseStationary::orientation x-axis).
            // Right: direction of the local coordinate system's positive
            // y-axis. Left: opposite direction of the local coordinate system's
            // y-axis i.e. negative y-axis',
            //
            // \note If a traffic sign image is on the ground (there is no
            // definition for right or left). Normally, this is a road marking
            // and not a traffic sign. Actual traffic signs lying on the ground
            // might have been intentionally unmounted and, hence, not be in
            // effect.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            optional DirectionScope direction_scope = 4;

            // The IDs of the lanes that the sign is assigned to.
            // May be multiple if the sign is valid for multiple lanes.
            //
            // \note OSI uses singular instead of plural for repeated field
            // names.
            //
            // \rules
            // refers_to: Lane
            // \endrules
            //
            repeated Identifier assigned_lane_id = 5;

            // Some traffic signs exist in two variants that have
            // a similar semantic meaning but differ in that the symbol
            // of the one corresponds to the specular reflection of the
            // other with respect to the vertical axis.
            // For some scenarios it might be relevant to choose the
            // reflected version of a reference sign. This can be done
            // by setting the \c #vertically_mirrored boolean to \c true.
            // As for every boolean in the protocol buffers language, the
            // default value of \c #vertically_mirrored is \c false.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            optional bool vertically_mirrored = 6;

            // Boolean flag to indicate that a traffic sign is taken out of service.
            // This can be achieved by visibly crossing the sign or covering it completely.
            //
            optional bool is_out_of_service = 7;

            // Country specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // Country is specified using the ISO 3166-1, alpha-2 code
            // https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2, or the
            // special OpenDRIVE country for generic signs.<br>
            //
            optional string country = 8;

            // Revision specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // The year the traffic rules came into force. <br>
            // e.g. "2017"
            //
            optional string country_revision = 9;

            // Code specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // Code identifier according to country and country revision,
            // corresponds to the type field of OpenDRIVE. <br>
            // code is only unique in combination with #country and #country_revision.  <br>
            // e.g. http://www.vzkat.de/2017/VzKat.htm
            //
            optional string code = 10;

            // Sub-code specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // Sub-code identifier according to country, country revision and code,
            // corresponds to the subtype field of OpenDRIVE. <br>
            // sub_code is only unique in combination with #country, #country_revision,
            // and #code.  <br>
            // e.g. http://www.vzkat.de/2017/VzKat.htm
            //
            optional string sub_code = 11;

            // Assignment of this object to logical lanes.
            //
            // \note OSI uses singular instead of plural for repeated field
            // names.
            //
            repeated LogicalLaneAssignment logical_lane_assignment = 12;

            // Definition of traffic sign types.
            // Numbers are given according to German StVO.
            //
            // For an overview of the German StVO see:
            // \arg
            // https://www.bast.de/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html
            // (Catalog of the Federal Road Research Institute - BASt)
            // \arg
            // https://www.dvr.de/publikationen/downloads/verkehrszeichen.html
            // (Images) \arg
            // https://www.gesetze-im-internet.de/stvo_2013/anlage_1.html
            // (Allgemeine und Besondere Gefahrenzeichen) \arg
            // https://www.gesetze-im-internet.de/stvo_2013/anlage_2.html
            // (Vorschriftzeichen) \arg
            // https://www.gesetze-im-internet.de/stvo_2013/anlage_3.html
            // (Richtzeichen) \arg
            // https://www.gesetze-im-internet.de/stvo_2013/anlage_4.html
            // (Verkehrseinrichtungen) \arg https://traffic-rules.com/
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            enum Type
            {
                // Type of traffic sign is unknown (must not be used in ground
                // truth).
                //
                TYPE_UNKNOWN = 0;

                // Other (unspecified but known) type of traffic sign.
                //
                TYPE_OTHER = 1;

                // Warning: Danger sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 101.png
                // </td>
                // <td>
                // StVO 101
                // </td>
                // </table>
                //
                TYPE_DANGER_SPOT = 2;

                // Warning: Zebra crossing.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 101-11.png
                // </td>
                // <td>
                // StVO 101-11
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 101-11.png
                // </td>
                // <td>
                // StVO 101-21
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 350-10.png
                // </td>
                // <td>
                // StVO 350-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 350-20.png
                // </td>
                // <td>
                // StVO 350-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 293.png
                // </td>
                // <td>
                // StVO 293
                // </td>
                // </table>
                //
                TYPE_ZEBRA_CROSSING = 87;

                // Warning: Low-flying aircraft or sudden aircraft noise.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 101-10.png
                // </td>
                // <td>
                // StVO 101-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 101-10.png
                // </td>
                // <td>
                // StVO 101-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_FLIGHT = 110;

                // Warning: Cattles crossing.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 101-12.png
                // </td>
                // </td>
                // <td>
                // StVO 101-12
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 101-12.png
                // </td>
                // <td>
                // StVO 101-22
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CATTLE = 200;

                // Warning: Horse riders.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 101-13.png
                // </td>
                // <td>
                // StVO 101-13
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 101-13.png
                // </td>
                // <td>
                // StVO 101-23
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HORSE_RIDERS = 197;

                // Warning: Amphibian migration.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 101-14.png
                // </td>
                // <td>
                // StVO 101-14
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 101-14.png
                // </td>
                // <td>
                // StVO 101-24
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_AMPHIBIANS = 188;

                // Warning: Falling rocks.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 101-15.png
                // </td>
                // <td>
                // StVO 101-15
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 101-15.png
                // </td>
                // <td>
                // StVO 101-25
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_FALLING_ROCKS = 96;

                // Warning: Risk of snow or ice.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 101-51.png
                // </td>
                // <td>
                // StVO 101-51
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SNOW_OR_ICE = 94;

                // Warning: Crushed stones.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 101-52.png
                // </td>
                // <td>
                // StVO 101-52
                // </td>
                // </tr>
                // </table>
                //
                TYPE_LOOSE_GRAVEL = 97;

                // Warning: Waterside.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 101-53.png
                // </td>
                // <td>
                // StVO 101-53
                // </td>
                // </tr>
                // </table>
                //
                TYPE_WATERSIDE = 102;

                // Warning: Not enough clearance.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 101-54.png
                // </td>
                // <td>
                // StVO 101-54
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CLEARANCE = 210;

                // Warning: Movable bridge.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 101-55.png
                // </td>
                // <td>
                // StVO 101-55
                // </td>
                // </tr>
                // </table>
                //
                TYPE_MOVABLE_BRIDGE = 101;

                // Warning: "Right before left" rule at the next intersection.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 102.png
                // </td>
                // <td>
                // StVO 102
                // </td>
                // </tr>
                // </table>
                //
                TYPE_RIGHT_BEFORE_LEFT_NEXT_INTERSECTION = 3;

                // Warning: Sign for a left turn.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 103-10.png
                // </td>
                // <td>
                // StVO 103-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_TURN_RIGHT
                //
                TYPE_TURN_LEFT = 4;

                // Warning: Sign for a right turn.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 103-20.png
                // </td>
                // <td>
                // StVO 103-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_TURN_LEFT
                //
                TYPE_TURN_RIGHT = 5;

                // Warning: Sign for a double turn (first left turn).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 105-10.png
                // </td>
                // <td>
                // StVO 105-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_DOUBLE_TURN_RIGHT
                //
                TYPE_DOUBLE_TURN_LEFT = 6;

                // Warning: Sign for a double turn (first right turn).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 105-20.png
                // </td>
                // <td>
                // StVO 105-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_DOUBLE_TURN_LEFT
                //
                TYPE_DOUBLE_TURN_RIGHT = 7;

                // Warning: Steep hill downwards.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 108-4.png
                // </td>
                // <td>
                // StVO 108
                // </td>
                // <td>
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to indicate slope.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HILL_DOWNWARDS = 8;

                // Warning: Steep hill upwards.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 110-4.png
                // </td>
                // <td>
                // StVO 110
                // </td>
                // <td>
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to indicate slope
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HILL_UPWARDS = 9;

                // Warning: Uneven road.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 112.png
                // </td>
                // <td>
                // StVO 112
                // </td>
                // </tr>
                // </table>
                //
                TYPE_UNEVEN_ROAD = 93;

                // Warning: Road slippery when wet or dirty.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 114.png
                // </td>
                // <td>
                // StVO 114
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROAD_SLIPPERY_WET_OR_DIRTY = 95;

                // Warning: Side winds.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 117-10.png
                // </td>
                // <td>
                // StVO 117-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 117-10.png
                // </td>
                // <td>
                // StVO 117-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SIDE_WINDS = 98;

                // Warning: Road narrowing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 120.png
                // </td>
                // <td>
                // StVO 120
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROAD_NARROWING = 10;

                // Warning: Road narrowing on the right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 121-10.png
                // </td>
                // <td>
                // StVO 121-10
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROAD_NARROWING_RIGHT = 12;

                // Warning: Road narrowing on the left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 121-20.png
                // </td>
                // <td>
                // StVO 121-20
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROAD_NARROWING_LEFT = 11;

                // Warning: Road works sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 123.png
                // </td>
                // <td>
                // StVO 123
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROAD_WORKS = 13;

                // Warning: Traffic queues likely.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 124.png
                // </td>
                // <td>
                // StVO 124
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TRAFFIC_QUEUES = 100;

                // Warning: Two-way-traffic (after one-way lane).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 125.png
                // </td>
                // <td>
                // StVO 125
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TWO_WAY_TRAFFIC = 14;

                // Warning: Traffic light ahead sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 131.png
                // </td>
                // <td>
                // StVO 131
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ATTENTION_TRAFFIC_LIGHT = 15;

                // Warning: Pedestrians.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 133-10.png
                // </td>
                // <td>
                // StVO 133-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 133-10.png
                // </td>
                // <td>
                // StVO 133-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIANS = 103;

                // Warning: Children crossing.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 136-10.png
                // </td>
                // <td>
                // StVO 136-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 136-10.png
                // </td>
                // <td>
                // StVO 136-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CHILDREN_CROSSING = 106;

                // Warning: Pedal cycle route crossing or joining road sign.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 138-10.png
                // </td>
                // <td>
                // StVO 138-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 138-10.png
                // </td>
                // <td>
                // StVO 138-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CYCLE_ROUTE = 107;

                // Warning: Deer crossing.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 142-10.png
                // </td>
                // <td>
                // StVO 142-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 142-10.png
                // </td>
                // <td>
                // StVO 142-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DEER_CROSSING = 109;

                // Warning: Level crossing without barrier or gate.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 151.png
                // </td>
                // <td>
                // StVO 151
                // </td>
                // </tr>
                // </table>
                //
                TYPE_UNGATED_LEVEL_CROSSING = 144;

                // Level crossing marker.
                // (StVO 156 - Countdown marker indicating that level crossing
                // are 2 main signs \c #TYPE_UNGATED_LEVEL_CROSSING and \c
                // #TYPE_LEVEL_CROSSING_MARKER.)
                // <table border="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 157-20.png
                // </td>
                // <td style="transform:scaleX(-1)">
                // \image html 159-20.png
                // </td>
                // <td style="transform:scaleX(-1)">
                // \image html 161-20.png
                // </td>
                // <td>
                // \image html 156-10.png
                // </td>
                // <td>
                // \image html 156-11.png
                // </td>
                // </tr>
                // <tr style="font-weight:bold">
                // <td>
                // StVO 157-10
                // </td>
                // <td>
                // StVO 159-10
                // </td>
                // <td>
                // StVO 161-10
                // </td>
                // <td>
                // (StVO 156-10)
                // </td>
                // <td>
                // (StVO 156-11)
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 157-20.png
                // </td>
                // <td>
                // \image html 159-20.png
                // </td>
                // <td>
                // \image html 161-20.png
                // </td>
                // <td style="transform:scaleX(-1)">
                // \image html 156-10.png
                // </td>
                // <td>
                // \image html 156-21.png
                // </td>
                // </tr>
                // <tr style="font-weight:bold">
                // <td>
                // StVO 157-20
                // </td>
                // <td>
                // StVO 159-20
                // </td>
                // <td>
                // StVO 162-20
                // </td>
                // <td>
                // (StVO 156-20)
                // </td>
                // <td>
                // (StVO 156-21)
                // </td>
                // </tr>
                // </table>
                //
                // Variants (here X is any of 157, 159 or 162):
                // <table border="0">
                // <tr>
                // <td>
                // StVO X-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // StVO X-11
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // Additionally, use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to indicate the remaining
                // distance or the number of displayed red stripes. In
                // the second case, set \c TrafficSignValue::value_unit
                // to \c TrafficSignValue::UNIT_NO_UNIT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // StVO X-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // StVO X-21
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // Additionally, use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to indicate the remaining
                // distance or the number of displayed red stripes. In
                // the second case, set \c TrafficSignValue::value_unit
                // to \c TrafficSignValue::UNIT_NO_UNIT.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_LEVEL_CROSSING_MARKER = 112;

                // St.Andrew's cross, railway traffic has priority.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 201-50.png
                // <td>
                // StVO 201-50
                // <td>
                // </tr>
                // <tr>
                // <td>
                // \image html 201-52.png
                // </td>
                // <td>
                // StVO 201-52
                // </td>
                // <td>
                // with lightning bolt indicating voltage-carrying overhead
                // line.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_RAILWAY_TRAFFIC_PRIORITY = 135;

                // Give way.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 205.png
                // </td>
                // <td>
                // StVO 205
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking
                // \c RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 341.png
                // -->
                // </td>
                // <td>
                // StVO 341
                // </td>
                // </tr>
                // </table>
                //
                TYPE_GIVE_WAY = 16;

                // Stop sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 206.png
                // </td>
                // <td>
                // StVO 206
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking
                // \c RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 294.png
                // </td>
                // <td>
                // StVO 294
                // </td>
                // </table>
                //
                TYPE_STOP = 17;

                // Priority must be given to vehicles from the opposite
                // direction.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 208.png
                // </td>
                // <td>
                // StVO 208
                // </td>
                // </tr>
                // </table>
                //
                // See also: \c
                // #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION.
                //
                TYPE_PRIORITY_TO_OPPOSITE_DIRECTION = 18;

                // Priority must be given to vehicles from the opposite
                // direction.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:rotate(180deg)">
                // \image html 208.png
                // </td>
                // <td>
                // StVO 208, upside down
                // </td>
                // </tr>
                // </table>
                //
                // See also: \c #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION.
                //
                TYPE_PRIORITY_TO_OPPOSITE_DIRECTION_UPSIDE_DOWN = 19;

                // Prescribed left turn.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 209-10.png
                // </td>
                // <td>
                // StVO 209-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_PRESCRIBED_RIGHT_TURN
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_LEFT_TURN = 20;

                // Prescribed right turn.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 209-10.png
                // </td>
                // <td>
                // StVO 209-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_PRESCRIBED_LEFT_TURN
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_RIGHT_TURN = 21;

                // Prescribed driving straight.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 209-30.png
                // </td>
                // <td>
                // StVO 209-30
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_STRAIGHT = 22;

                // Prescribed right way.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 211.png
                // </td>
                // <td>
                // StVO 211
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_PRESCRIBED_LEFT_WAY
                //
                TYPE_PRESCRIBED_RIGHT_WAY = 24;

                // Prescribed left way.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 211-10.png
                // </td>
                // <td>
                // StVO 211-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_PRESCRIBED_RIGHT_WAY
                //
                TYPE_PRESCRIBED_LEFT_WAY = 23;

                // Prescribed right turn and driving straight.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 214.png
                // </td>
                // <td>
                // StVO 214
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_PRESCRIBED_LEFT_TURN_AND_STRAIGHT
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_RIGHT_TURN_AND_STRAIGHT = 26;

                // Prescribed left turn and driving straight .
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 214-10.png
                // </td>
                // <td>
                // StVO 214-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_PRESCRIBED_RIGHT_TURN_AND_STRAIGHT
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_LEFT_TURN_AND_STRAIGHT = 25;

                // Prescribed left and right turn.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 214-30.png
                // </td>
                // <td>
                // StVO 214-30
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_LEFT_TURN_AND_RIGHT_TURN = 27;

                // Prescribed left turn, right turn and driving straight
                // (required for logical signs as road marking).
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN
                // (StVO 297).
                //
                TYPE_PRESCRIBED_LEFT_TURN_RIGHT_TURN_AND_STRAIGHT = 28;

                // Roundabout.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 215.png
                // </td>
                // <td>
                // StVO 215
                // </td>
                // </tr>
                // </table>
                //
                // \note The direction of driving (clockwise, counterclockwise)
                // is country-specific.
                //
                TYPE_ROUNDABOUT = 29;

                // One-way road to the left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 220-10.png
                // </td>
                // <td>
                // StVO 220-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_ONEWAY_RIGHT
                //
                TYPE_ONEWAY_LEFT = 30;

                // One-way road to the right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 220-20.png
                // </td>
                // <td>
                // StVO 220-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_ONEWAY_LEFT
                //
                TYPE_ONEWAY_RIGHT = 31;

                // Drive past on the left side.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 222-10.png
                // </td>
                // <td>
                // StVO 222-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_PASS_RIGHT
                //
                TYPE_PASS_LEFT = 32;

                // Drive past on the right side.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 222.png
                // </td>
                // <td>
                // StVO 222
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_PASS_LEFT
                //
                TYPE_PASS_RIGHT = 33;

                // Drive along side lanes.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 223.1-50.png
                // </td>
                // <td>
                // StVO 223.1-50
                // </td>
                // <td>
                // Drive along side lanes, 2 lanes and side lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 223.1-51.png
                // </td>
                // <td>
                // StVO 223.1-51
                // </td>
                // <td>
                // Drive along side lanes, 3 lanes and side lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 223.1-52.png
                // </td>
                // <td>
                // StVO 223.1-52
                // </td>
                // <td>
                // Drive along side lanes, 4 lanes and side lane.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SIDE_LANE_OPEN_FOR_TRAFFIC = 128;

                // Do not drive on the side lane.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 223.2-50.png
                // </td>
                // <td>
                // StVO 223.2-50
                // </td>
                // <td>
                // Do not drive on the side lane, 2 lanes and side lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 223.2-51.png
                // </td>
                // <td>
                // StVO 223.2-51
                // </td>
                // <td>
                // Do not drive on the side lane, 3 lanes and side lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 223.2-52.png
                // </td>
                // <td>
                // StVO 223.2-52
                // </td>
                // <td>
                // Do not drive on the side lane, 4 lanes and side lane.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SIDE_LANE_CLOSED_FOR_TRAFFIC = 129;

                // Side lane closing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 223.3-50.png
                // </td>
                // <td>
                // StVO 223.3-50
                // </td>
                // <td>
                // Side lane closing, 2 lanes and side lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 223.3-51.png
                // </td>
                // <td>
                // StVO 223.3-51
                // </td>
                // <td>
                // Side lane closing, 3 lanes and side lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 223.3-52.png
                // </td>
                // <td>
                // StVO 223.3-52
                // </td>
                // <td>
                // Side lane closing, 4 lanes and side lane.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SIDE_LANE_CLOSING_FOR_TRAFFIC = 130;

                // Bus stop or tramway stop.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 224.png
                // </td>
                // <td>
                // StVO 224
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BUS_STOP = 137;

                // Taxi rank.
                // <table border="0">
                // <tr>
                // <td colspan="2">
                // \image html 229.png "StVO 229"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 229-10.png "StVO 229-10"
                // </td>
                // <td>
                // \image html 229-21.png "StVO 229-21"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 229-11.png "StVO 229-11"
                // </td>
                // <td>
                // \image html 229-20.png "StVO 229-20"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_RIGHT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 229-30.png "StVO 229-30"
                // </td>
                // <td>
                // \image html 229-31.png "StVO 229-31"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT_RIGHT
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TAXI_STAND = 138;

                // Route for bicycles only.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 237.png
                // </td>
                // <td>
                // StVO 237
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BICYCLES_ONLY = 145;

                // Route for horse riders only.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 238.png
                // </td>
                // <td>
                // StVO 238
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HORSE_RIDERS_ONLY = 146;

                // Route for pedestrians only.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 239.png
                // </td>
                // <td>
                // StVO 239
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIANS_ONLY = 147;

                // Unsegregated route for use by bicycles and pedestrians only.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 240.png
                // </td>
                // <td>
                // StVO 240
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BICYCLES_PEDESTRIANS_SHARED_ONLY = 148;

                // Segregated route for use by bicycles and pedestrians only,
                // bicycles on the left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 241-30.png
                // </td>
                // <td>
                // StVO 241-30
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_BICYCLES_PEDESTRIANS_SEPARATED_RIGHT_ONLY
                //
                TYPE_BICYCLES_PEDESTRIANS_SEPARATED_LEFT_ONLY = 149;

                // Segregated route for use by bicycles and pedestrians only,
                // bicycles on the right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 241-31.png
                // </td>
                // <td>
                // StVO 241-31
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_BICYCLES_PEDESTRIANS_SEPARATED_LEFT_ONLY
                TYPE_BICYCLES_PEDESTRIANS_SEPARATED_RIGHT_ONLY = 150;

                // Beginning of the pedestrian zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 242.1.png
                // </td>
                // <td>
                // StVO 242.1
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIAN_ZONE_BEGIN = 151;

                // End of the pedestrian zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 242.2.png
                // </td>
                // <td>
                // StVO 242.2
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIAN_ZONE_END = 152;

                // Beginning of bicycle road.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 244.1.png
                // </td>
                // <td>
                // StVO 244.1
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BICYCLE_ROAD_BEGIN = 153;

                // End of bicycle road.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 244.2.png
                // </td>
                // <td>
                // StVO 244.2
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BICYCLE_ROAD_END = 154;

                // Lane for buses.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 245.png
                // </td>
                // <td>
                // StVO 245
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BUS_LANE = 34;

                // Bus only lane begin.
                // \n
                // End: \c #TYPE_BUS_LANE_END
                //
                TYPE_BUS_LANE_BEGIN = 35;

                // Bus only lane end.
                // \n
                // Begin: \c #TYPE_BUS_LANE_BEGIN
                //
                TYPE_BUS_LANE_END = 36;

                // Entry prohibited for all types of vehicles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 250.png
                // </td>
                // <td>
                // StVO 250
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ALL_PROHIBITED = 37;

                // Entry prohibited for cars, trucks, and other motorized
                // multi-track vehicles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 251.png
                // </td>
                // <td>
                // StVO 251
                // </td>
                // </tr>
                // </table>
                //
                TYPE_MOTORIZED_MULTITRACK_PROHIBITED = 38;

                // Entry prohibited for trucks.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 253.png
                // </td>
                // <td>
                // StVO 253
                // </td>
                // </tr>
                // </table>
                //
                // \note In the German StVO, trucks are defined as motorized
                // vehicles that are heavier than 3.5 t.
                //
                TYPE_TRUCKS_PROHIBITED = 39;

                // Entry prohibited for bicycles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 254.png
                // </td>
                // <td>
                // StVO 254
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BICYCLES_PROHIBITED = 40;

                // Entry prohibited for motorcycles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 255.png
                // </td>
                // <td>
                // StVO 255
                // </td>
                // </tr>
                // </table>
                //
                TYPE_MOTORCYCLES_PROHIBITED = 41;

                // Entry prohibited for mopeds.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-50.png
                // </td>
                // <td>
                // StVO 257-50
                // </td>
                // </tr>
                // </table>
                //
                TYPE_MOPEDS_PROHIBITED = 155;

                // Entry prohibited for horse riders.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-51.png
                // </td>
                // <td>
                // StVO 257-51
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HORSE_RIDERS_PROHIBITED = 156;

                // Entry prohibited for horse carriages.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-52.png
                // </td>
                // <td>
                // StVO 257-52
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HORSE_CARRIAGES_PROHIBITED = 157;

                // Entry prohibited for cattles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-53.png
                // </td>
                // <td>
                // StVO 257-53
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CATTLE_PROHIBITED = 158;

                // Entry prohibited for buses.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-54.png
                // </td>
                // <td>
                // StVO 257-54
                // </td>
                // </tr>
                // </table>
                //
                TYPE_BUSES_PROHIBITED = 159;

                // Entry prohibited for passenger cars.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-55.png
                // </td>
                // <td>
                // StVO 257-55
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CARS_PROHIBITED = 160;

                // Entry prohibited for passenger cars with trailers.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-56.png
                // </td>
                // <td>
                // StVO 257-56
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CARS_TRAILERS_PROHIBITED = 161;

                // Entry prohibited for trucks with trailers.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-57.png
                // </td>
                // <td>
                // StVO 257-57
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TRUCKS_TRAILERS_PROHIBITED = 162;

                // Entry prohibited for tractors.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 257-58.png
                // </td>
                // <td>
                // StVO 257-58
                // </td>
                // </tr>
                // </table>
                //
                // \note In the German StVO, tractors are defined as motorized
                // vehicles that are not allowed to, or cannot, drive faster
                // than 25 km/h.
                //
                TYPE_TRACTORS_PROHIBITED = 163;

                // Entry prohibited for pedestrians.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 259.png
                // </td>
                // <td>
                // StVO 259
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIANS_PROHIBITED = 42;

                // Entry prohibited for all motor vehicles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 260.png
                // </td>
                // <td>
                // StVO 260
                // </td>
                // </tr>
                // </table>
                //
                TYPE_MOTOR_VEHICLES_PROHIBITED = 43;

                // Entry prohibited for marked vehicles transporting hazardous
                // goods.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 261.png
                // </td>
                // <td>
                // StVO 261
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HAZARDOUS_GOODS_VEHICLES_PROHIBITED = 164;

                // Weight limit (entry prohibited for vehicles over maximum
                // gross weight shown).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 262.png
                // </td>
                // <td>
                // StVO 262
                // </td>
                // </tr>
                // </table>
                //
                // Use
                // \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                TYPE_OVER_WEIGHT_VEHICLES_PROHIBITED = 165;

                // Axle weight limit (entry prohibited for vehicles over weight
                // on axle shown).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 263.png
                // </td>
                // <td>
                // StVO 263
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                TYPE_VEHICLES_AXLE_OVER_WEIGHT_PROHIBITED = 166;

                // Horizontal clearance (entry prohibited for vehicles wider
                // than the width shown).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html "264-2,3.png"
                // </td>
                // <td>
                // StVO 264
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                TYPE_VEHICLES_EXCESS_WIDTH_PROHIBITED = 167;

                // Vertical clearance (entry prohibited for vehicles higher than
                // the height shown).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 265.png
                // </td>
                // <td>
                // StVO 265
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                TYPE_VEHICLES_EXCESS_HEIGHT_PROHIBITED = 168;

                // Length restriction (entry prohibited for vehicles or
                // combinations of vehicles longer than the length shown).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 266.png
                // </td>
                // <td>
                // StVO 266
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                TYPE_VEHICLES_EXCESS_LENGTH_PROHIBITED = 169;

                // Entry not allowed. One-way road.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 267.png
                // </td>
                // <td>
                // StVO 267
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DO_NOT_ENTER = 44;

                // Snow chains required.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 268.png
                // </td>
                // <td>
                // StVO 268
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SNOW_CHAINS_REQUIRED = 170;

                // Entry prohibited for vehicles carrying water pollutants.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 269.png
                // </td>
                // <td>
                // StVO 269
                // </td>
                // </tr>
                // </table>
                //
                TYPE_WATER_POLLUTANT_VEHICLES_PROHIBITED = 171;

                // Start of area without traffic to reduce harmful air
                // pollution.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 270.1.png
                // </td>
                // <td>
                // StVO 270.1
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_ENVIRONMENTAL_ZONE_END
                //
                TYPE_ENVIRONMENTAL_ZONE_BEGIN = 45;

                // End of area without traffic to reduce harmful air pollution.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 270.2.png
                // </td>
                // <td>
                // StVO 270.2
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_ENVIRONMENTAL_ZONE_BEGIN
                //
                TYPE_ENVIRONMENTAL_ZONE_END = 46;

                // No U turn left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 272.png
                // </td>
                // <td>
                // StVO 272
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_NO_U_TURN_RIGHT
                //
                TYPE_NO_U_TURN_LEFT = 47;

                // No U turn right.
                // <!--
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html abc.png
                // </td>
                // <td>
                // </td>
                // </tr>
                // </table>
                // -->
                //
                // \note This type is to be applied in left-driving countries.
                //
                // Left: \c #TYPE_NO_U_TURN_LEFT
                //
                TYPE_NO_U_TURN_RIGHT = 48;

                // Prescribed U turn left.
                // \n
                // Right: \c #TYPE_PRESCRIBED_U_TURN_RIGHT
                //
                TYPE_PRESCRIBED_U_TURN_LEFT = 49;

                // Prescribed U turn right.
                // \n
                // \note This type is to be applied in left-driving countries.
                //
                // Left: \c #TYPE_PRESCRIBED_U_TURN_LEFT
                //
                TYPE_PRESCRIBED_U_TURN_RIGHT = 50;

                // Minimum safety distance for trucks.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 273.png
                // </td>
                // <td>
                // StVO 273
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                TYPE_MINIMUM_DISTANCE_FOR_TRUCKS = 51;

                // Start of speed limit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 274-30.png
                // </td>
                // <td>
                // StVO 274
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                // End: \c #TYPE_SPEED_LIMIT_END
                //
                TYPE_SPEED_LIMIT_BEGIN = 52;

                // Start of zone with speed limit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 274.1.png
                // </td>
                // <td>
                // StVO 274.1
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                // End: \c #TYPE_SPEED_LIMIT_ZONE_END
                //
                TYPE_SPEED_LIMIT_ZONE_BEGIN = 53;

                // End of zone with speed limit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 274.2.png
                // </td>
                // <td>
                // StVO 274.2
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the limit.
                //
                // Begin: \c #TYPE_SPEED_LIMIT_ZONE_BEGIN
                //
                TYPE_SPEED_LIMIT_ZONE_END = 54;

                // Start of mandatory minimum speed.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 275.png
                // </td>
                // <td>
                // StVO 275
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the speed.
                //
                // End: \c #TYPE_MINIMUM_SPEED_END
                //
                TYPE_MINIMUM_SPEED_BEGIN = 55;

                // Start of overtaking ban.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 276.png
                // </td>
                // <td>
                // StVO 276
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_OVERTAKING_BAN_END
                //
                TYPE_OVERTAKING_BAN_BEGIN = 56;

                // Start of overtaking ban for trucks.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 277.png
                // </td>
                // <td>
                // StVO 277
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_OVERTAKING_BAN_FOR_TRUCKS_END
                //
                TYPE_OVERTAKING_BAN_FOR_TRUCKS_BEGIN = 57;

                // End of speed limit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 278-60.png
                // </td>
                // <td>
                // StVO 278
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to refer to the limit.
                //
                // Begin: \c #TYPE_SPEED_LIMIT_BEGIN
                //
                TYPE_SPEED_LIMIT_END = 58;

                // End of mandatory minimum speed.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 279.png
                // </td>
                // <td>
                // StVO 279
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to refer to the limit.
                //
                // Begin: \c #TYPE_MINIMUM_SPEED_BEGIN
                //
                TYPE_MINIMUM_SPEED_END = 59;

                // End of overtaking ban.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 280.png
                // </td>
                // <td>
                // StVO 280
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_OVERTAKING_BAN_BEGIN
                //
                TYPE_OVERTAKING_BAN_END = 60;

                // End of overtaking ban for trucks.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 281.png
                // </td>
                // <td>
                // StVO 281
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_OVERTAKING_BAN_FOR_TRUCKS_BEGIN
                //
                TYPE_OVERTAKING_BAN_FOR_TRUCKS_END = 61;

                // End of all speed and overtaking restrictions.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 282.png
                // </td>
                // <td>
                // StVO 282
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ALL_RESTRICTIONS_END = 62;

                // No stopping sign.
                // <table border="0">
                // <tr>
                // <td colspan="2">
                // \image html 283.png "StVO 283"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 283-10.png "StVO 283-10"
                // </td>
                // <td>
                // \image html 283-11.png "StVO 283-11"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 283-20.png "StVO 283-20"
                // </td>
                // <td>
                // \image html 283-21.png "StVO 283-21"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_RIGHT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 283-30.png "StVO 283-30"
                // </td>
                // <td>
                // \image html 283-31.png "StVO 283-31"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT_RIGHT
                // </td>
                // </tr>
                // </table>
                //
                TYPE_NO_STOPPING = 63;

                // No parking sign.
                // <table border="0">
                // <tr>
                // <td colspan="2">
                // \image html 286.png "StVO 286"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 286-10.png "StVO 286-10"
                // </td>
                // <td>
                // \image html 286-11.png "StVO 286-11"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 286-20.png "StVO 286-20"
                // </td>
                // <td>
                // \image html 286-21.png "StVO 286-21"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_RIGHT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 286-30.png "StVO 286-30"
                // </td>
                // <td>
                // \image html 286-31.png "StVO 286-31"
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT_RIGHT
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 299.png
                // </td>
                // <td>
                // StVO 299
                // </td>
                // </table>
                //
                TYPE_NO_PARKING = 64;

                // Begin of no parking zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 290.1.png
                // </td>
                // <td>
                // StVO 290.1
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_NO_PARKING_ZONE_END
                //
                TYPE_NO_PARKING_ZONE_BEGIN = 65;

                // End of no parking zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 290.2.png
                // </td>
                // <td>
                // StVO 290.2
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_NO_PARKING_ZONE_BEGIN
                //
                TYPE_NO_PARKING_ZONE_END = 66;

                // Right of way at the next intersection.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 301.png
                // </td>
                // <td>
                // StVO 301
                // </td>
                // </tr>
                // </table>
                //
                TYPE_RIGHT_OF_WAY_NEXT_INTERSECTION = 67;

                // Begin of priority road with right of way.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 306.png
                // </td>
                // <td>
                // StVO 306
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_RIGHT_OF_WAY_END
                //
                TYPE_RIGHT_OF_WAY_BEGIN = 68;

                // End of priority road with right of way.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 307.png
                // </td>
                // <td>
                // StVO 307
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_RIGHT_OF_WAY_BEGIN
                //
                TYPE_RIGHT_OF_WAY_END = 69;

                // Traffic has priority over vehicles from the opposite
                // direction.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 308.png
                // </td>
                // <td>
                // StVO 308
                // </td>
                // </tr>
                // </table>
                //
                // See also: \c #TYPE_PRIORITY_TO_OPPOSITE_DIRECTION
                //
                TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION = 70;

                // Traffic has priority over vehicles from the opposite
                // direction.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:rotate(180deg)">
                // \image html 308.png
                // </td>
                // <td>
                // StVO 308, upside down
                // </td>
                // </tr>
                // </table>
                //
                // See also: \c #TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION
                //
                TYPE_PRIORITY_OVER_OPPOSITE_DIRECTION_UPSIDE_DOWN = 71;

                // Town entrance.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 310.png
                // </td>
                // <td>
                // StVO 310
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the town's name and
                // district, e.g. "Wilster, Kreis Steinburg".
                //
                // End: \c #TYPE_TOWN_END
                //
                TYPE_TOWN_BEGIN = 72;

                // Town exit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 311.png
                // </td>
                // <td>
                // StVO 311
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the town's name and
                // district, e.g. "Wilster".
                //
                // Begin: \c #TYPE_TOWN_BEGIN
                //
                TYPE_TOWN_END = 73;

                // Parking space.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 314.png
                // </td>
                // <td>
                // StVO 314
                // </td>
                // <td>
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 314-50.png
                // </td>
                // <td>
                // StVO 314-50
                // </td>
                // <td>
                // Parking house
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 316.png
                // </td>
                // <td>
                // StVO 316
                // </td>
                // <td>
                // Park and ride
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION. Set \c
                // TrafficSignValue::text to "P+R".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // </td>
                // <td>
                // </td>
                // <td>
                // Park and move
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION. Set \c
                // TrafficSignValue::text to "P+M".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 317.png
                // </td>
                // <td>
                // StVO 317
                // </td>
                // <td>
                // Hiker's parking
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 318.png
                // </td>
                // <td>
                // StVO 318
                // </td>
                // <td>
                // Parking with parking disk
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_NO_DIRECTION.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 314-10.png
                // </td>
                // <td>
                // StVO 314-10
                // </td>
                // <td>
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 314-20.png
                // </td>
                // <td>
                // StVO 314-20
                // </td>
                // <td>
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_RIGHT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 314-30.png
                // </td>
                // <td>
                // StVO 314-30
                // </td>
                // <td>
                // </td>
                // <td>
                // Set \c Classification::direction_scope to \c
                // #DIRECTION_SCOPE_LEFT_RIGHT.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CAR_PARKING = 74;

                // Begin of parking zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 314.1.png
                // </td>
                // <td>
                // StVO 314.1
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_CAR_PARKING_ZONE_END
                //
                TYPE_CAR_PARKING_ZONE_BEGIN = 75;

                // End of parking zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 314.2.png
                // </td>
                // <td>
                // StVO 314.2
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_CAR_PARKING_ZONE_BEGIN
                //
                TYPE_CAR_PARKING_ZONE_END = 76;

                // Parking on sidewalks half in the direction of travel left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-50.png
                // -->
                // </td>
                // <td>
                // StVO 315-50
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_SIDEWALK_HALF_PARKING_RIGHT
                //
                TYPE_SIDEWALK_HALF_PARKING_LEFT = 172;

                // Parking on sidewalks half in the direction of travel right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 315-55.png
                // </td>
                // <td>
                // StVO 315-55
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_SIDEWALK_HALF_PARKING_LEFT
                //
                TYPE_SIDEWALK_HALF_PARKING_RIGHT = 173;

                // Parking on sidewalks completely in the direction of
                // travel left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-60.png
                // -->
                // </td>
                // <td>
                // StVO 315-60
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_SIDEWALK_PARKING_RIGHT
                //
                TYPE_SIDEWALK_PARKING_LEFT = 174;

                // Parking on sidewalks completely in direction of travel right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-65.png
                // -->
                // </td>
                // <td>
                // StVO 315-65
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_SIDEWALK_PARKING_LEFT
                //
                TYPE_SIDEWALK_PARKING_RIGHT = 175;

                // Parking on sidewalks half, perpendicular, in the direction of
                // travel left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-70.png
                // -->
                // </td>
                // <td>
                // StVO 315-70
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_RIGHT
                //
                TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_LEFT = 176;

                // Parking on sidewalks half, perpendicular, in the direction of
                // travel right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-75.png
                // -->
                // </td>
                // <td>
                // StVO 315-75
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_LEFT
                //
                TYPE_SIDEWALK_PERPENDICULAR_HALF_PARKING_RIGHT = 177;

                // Parking on sidewalks, perpendicular, in the direction of
                // travel left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-80.png
                // -->
                // </td>
                // <td>
                // StVO 315-80
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_SIDEWALK_PERPENDICULAR_PARKING_RIGHT
                //
                TYPE_SIDEWALK_PERPENDICULAR_PARKING_LEFT = 178;

                // Parking on sidewalks, perpendicular, in the direction of
                // travel right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 315-85.png
                // -->
                // </td>
                // <td>
                // StVO 315-85
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_SIDEWALK_PERPENDICULAR_PARKING_LEFT
                //
                TYPE_SIDEWALK_PERPENDICULAR_PARKING_RIGHT = 179;

                // Start of area with calmed / reduced traffic / home zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 325.1.png
                // </td>
                // <td>
                // StVO 325.1
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_LIVING_STREET_END
                //
                TYPE_LIVING_STREET_BEGIN = 77;

                // End of area with calmed / reduced traffic / home zone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 325.2.png
                // </td>
                // <td>
                // StVO 325.2
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_LIVING_STREET_BEGIN
                //
                TYPE_LIVING_STREET_END = 78;

                // Tunnel ahead.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 327.png
                // </td>
                // <td>
                // StVO 327
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TUNNEL = 79;

                // Emergency stopping place left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 328.png
                // </td>
                // <td>
                // </td>
                // </tr>
                // </table>
                //
                // \note This type is to be applied in left-driving countries.
                //
                // Right: \c #TYPE_EMERGENCY_STOPPING_RIGHT
                //
                TYPE_EMERGENCY_STOPPING_LEFT = 80;

                // Emergency stopping place right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 328.png
                // </td>
                // <td>
                // StVO 328
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_EMERGENCY_STOPPING_LEFT
                //
                TYPE_EMERGENCY_STOPPING_RIGHT = 81;

                // Begin of highway.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 330.1.png
                // </td>
                // <td>
                // StVO 330.1
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_HIGHWAY_END
                //
                TYPE_HIGHWAY_BEGIN = 82;

                // End of highway.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 330.2.png
                // </td>
                // <td>
                // StVO 330.2
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_HIGHWAY_BEGIN
                //
                TYPE_HIGHWAY_END = 83;

                // Begin of expressway for motor vehicles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 331.1.png
                // </td>
                // <td>
                // StVO 331.1
                // </td>
                // </tr>
                // </table>
                //
                // End: \c #TYPE_EXPRESSWAY_END
                //
                TYPE_EXPRESSWAY_BEGIN = 84;

                // End of expressways for motor vehicles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 331.2.png
                // </td>
                // <td>
                // StVO 331.2
                // </td>
                // </tr>
                // </table>
                //
                // Begin: \c #TYPE_EXPRESSWAY_BEGIN
                //
                TYPE_EXPRESSWAY_END = 85;

                // Highway exit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 332.png
                // </td>
                // <td>
                // StVO 332
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign, e.g. "Mainz Wiesbaden".
                //
                TYPE_NAMED_HIGHWAY_EXIT = 183;

                // Expressway exit.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 332.1.png
                // </td>
                // <td>
                // StVO 332.1
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign, e.g. "Mainz Wiesbaden".
                //
                TYPE_NAMED_EXPRESSWAY_EXIT = 184;

                // Exit sign on other roads.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 332.1-20.png
                // </td>
                // <td>
                // StVO 332.1-20
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign, e.g. "Duisburg Endeninch".
                //
                TYPE_NAMED_ROAD_EXIT = 185;

                // Highway exit sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 333.png
                // </td>
                // <td>
                // StVO 333
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HIGHWAY_EXIT = 86;

                // Exit from expressway (arrow sign).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 333.1.png
                // </td>
                // <td>
                // StVO 333.1
                // </td>
                // </tr>
                // </table>
                //
                TYPE_EXPRESSWAY_EXIT = 186;

                // One-way street.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 353.png
                // -->
                // </td>
                // <td>
                // StVO 353  - Valid only until October 2022.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ONEWAY_STREET = 187;

                // Crossing guards.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 356.png
                // </td>
                // <td>
                // StVO 356
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CROSSING_GUARDS = 189;

                // Dead-end street.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 357.png
                // </td>
                // <td>
                // StVO 357
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DEADEND = 190;

                // Dead-end street excluding ...
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 357-50.png
                // </td>
                // <td>
                // StVO 357-50
                // </td>
                // <td>
                // excluding pedestrians and bicycles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 357-51.png
                // </td>
                // <td>
                // StVO 357-51
                // </td>
                // <td>
                // excluding pedestrians.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 357-52.png
                // </td>
                // <td>
                // StVO 357-52
                // </td>
                // <td>
                // excluding bicycles.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DEADEND_EXCLUDING_DESIGNATED_ACTORS = 191;

                // First aid station.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 358.png
                // </td>
                // <td>
                // StVO 358
                // </td>
                // </tr>
                // </table>
                //
                TYPE_FIRST_AID_STATION = 194;

                // Police station.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 363.png
                // </td>
                // <td>
                // StVO 363
                // </td>
                // </tr>
                // </table>
                //
                TYPE_POLICE_STATION = 195;

                // Telephone service.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-50.png
                // </td>
                // <td>
                // StVO 365-50
                // </td>
                // <td>
                // Telephone service
                // </td>
                // <td>
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 365-51.png
                // </td>
                // <td>
                // StVO 365-51
                // </td>
                // <td>
                // Emergency telephone service
                // </td>
                // <td>
                // Use \c TrafficSignValue::text for "SOS".
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TELEPHONE = 196;

                // Filling station.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-52.png
                // </td>
                // <td>
                // StVO 365-52
                // </td>
                // <td>
                // Filling station.
                // </td>
                // <td>
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 365-53.png
                // </td>
                // <td>
                // StVO 365-53
                // </td>
                // <td>
                // LPG filling station.
                // </td>
                // <td>
                // Use \c TrafficSignValue::text for "LPG".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 365-54.png
                // </td>
                // <td>
                // StVO 365-54
                // </td>
                // <td>
                // CNG filling station.
                // </td>
                // <td>
                // Use \c TrafficSignValue::text for "CNG".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 365-65.png
                // </td>
                // <td>
                // StVO 365-65
                // </td>
                // <td>
                // Charging station for electric vehicles.
                // </td>
                // <td>
                // Use \c TrafficSignValue::text for "E".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 365-66.png
                // </td>
                // <td>
                // StVO 365-66
                // </td>
                // <td>
                // H2 filling station.
                // </td>
                // <td>
                // Use \c TrafficSignValue::text for "H2".
                // </td>
                // </tr>
                // </table>
                //
                TYPE_FILLING_STATION = 198;

                // Highway hotel.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-55.png
                // </td>
                // <td>
                // StVO 365-55
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HOTEL = 201;

                // Highway inn.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-56.png
                // </td>
                // <td>
                // StVO 365-56
                // </td>
                // </tr>
                // </table>
                //
                TYPE_INN = 202;

                // Highway kiosk.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-57.png
                // </td>
                // <td>
                // StVO 365-57
                // </td>
                // </tr>
                // </table>
                //
                TYPE_KIOSK = 203;

                // Toilets.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-58.png
                // </td>
                // <td>
                // StVO 365-58
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TOILET = 204;

                // Highway chapel.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-59.png
                // </td>
                // <td>
                // StVO 365-59
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CHAPEL = 205;

                // Tourist information.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-61.png
                // </td>
                // <td>
                // StVO 365-61
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TOURIST_INFO = 206;

                // Roadside assistance.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-62.png
                // </td>
                // <td>
                // StVO 365-62
                // </td>
                // </tr>
                // </table>
                //
                TYPE_REPAIR_SERVICE = 207;

                // Underpass for pedestrians.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-63.png
                // </td>
                // <td>
                // StVO 365-63
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIAN_UNDERPASS = 208;

                // Pedestrian bridge.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-64.png
                // </td>
                // <td>
                // StVO 365-64
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PEDESTRIAN_BRIDGE = 209;

                // Camper place.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-67.png
                // </td>
                // <td>
                // StVO 365-67
                // </td>
                // </tr>
                // </table>
                // Camper and caravan place
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 365-68.png
                // </td>
                // <td>
                // StVO 365-68
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CAMPER_PLACE = 213;

                // Advisory speed limit beginning.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 380.png
                // -->
                // </td>
                // <td>
                // StVO 380 - Valid only until October 2022.
                // </td>
                // </tr>
                // </table>
                //
                // \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit.
                //
                TYPE_ADVISORY_SPEED_LIMIT_BEGIN = 214;

                // Advisory speed limit end.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 381.png
                // -->
                // </td>
                // <td>
                // StVO 381 - Valid only until October 2022
                // </td>
                // </tr>
                // </table>
                //
                // \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit.
                //
                TYPE_ADVISORY_SPEED_LIMIT_END = 215;

                // Road passes through the town but not its city center.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 385.png
                // </td>
                // <td>
                // StVO 385
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the town indicated in
                // the sign.
                //
                TYPE_PLACE_NAME = 216;

                // Tourist attraction.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 386.1.png
                // </td>
                // <td>
                // StVO 386.1
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the attraction
                // indicated in the sign.
                //
                TYPE_TOURIST_ATTRACTION = 217;

                // Tourist route.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 386.2.png
                // </td>
                // <td>
                // StVO 386.2
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the route indicated
                // in the sign.
                //
                TYPE_TOURIST_ROUTE = 218;

                // Geographical area containing several tourist attractions.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 386.3.png
                // </td>
                // <td>
                // StVO 386.3
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the area indicated in
                // the sign.
                //
                TYPE_TOURIST_AREA = 219;

                // Shoulder unsafe for multi-track motor vehicles.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 388.png
                // -->
                // </td>
                // <td>
                // StVO 388 - Valid only until October 2022
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SHOULDER_NOT_PASSABLE_MOTOR_VEHICLES = 220;

                // Shoulder unsafe for vehicles with a permitted gross weight
                // over 3.5 t and for tractors.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 389.png
                // -->
                // </td>
                // <td>
                // StVO 389 - Valid only until October 2022
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SHOULDER_UNSAFE_TRUCKS_TRACTORS = 221;

                // Toll highway beginning.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 390.png
                // </td>
                // <td>
                // StVO 390
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TOLL_BEGIN = 222;

                // Toll highway end.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 390.2.png
                // </td>
                // <td>
                // StVO 390.2
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TOLL_END = 223;

                // Toll road.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 391.png
                // </td>
                // <td>
                // StVO 391
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TOLL_ROAD = 224;

                // Customs post.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 392.png
                // -->
                // </td>
                // <td>
                // StVO 392
                // </td>
                // </tr>
                // </table>
                //
                TYPE_CUSTOMS = 225;

                // Information sign posted at international borders.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 393.png
                // </td>
                // <td>
                // StVO 393
                // </td>
                // </tr>
                // </table>
                //
                TYPE_INTERNATIONAL_BORDER_INFO = 226;

                // Red band on lamp posts indicate that streetlight does not
                // stay on all night.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 394.png "StVO 394"
                // <td>
                // \image html 394-50.png "StVO 394-50"
                // </tr>
                // </table>
                //
                TYPE_STREETLIGHT_RED_BAND = 227;

                // Federal Highway route number.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 401.png
                // </td>
                // <td>
                // StVO 401
                // </td>
                // </tr>
                // </table>
                //
                TYPE_FEDERAL_HIGHWAY_ROUTE_NUMBER = 228;

                // Highway route number.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 405.png
                // </td>
                // <td>
                // StVO 405
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the route number
                // indicated in the sign.
                //
                TYPE_HIGHWAY_ROUTE_NUMBER = 229;

                // Highway interchange number (exits, three and four-way
                // interchanges).
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 406-50.png "StVO 406-50"
                // <td>
                // \image html 406-51.png "StVO 406-51"
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the route number
                // indicated in the sign.
                //
                TYPE_HIGHWAY_INTERCHANGE_NUMBER = 230;

                // European route number.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 410.png
                // </td>
                // <td>
                // StVO 410
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the route number
                // indicated in the sign.
                //
                TYPE_EUROPEAN_ROUTE_NUMBER = 231;

                // Federal highway direction sign, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 415-10.png
                // </td>
                // <td>
                // StVO 415-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_FEDERAL_HIGHWAY_DIRECTION_RIGHT
                //
                TYPE_FEDERAL_HIGHWAY_DIRECTION_LEFT = 232;

                // Federal highway direction sign, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 415-20.png
                // -->
                // </td>
                // <td>
                // StVO 415-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_FEDERAL_HIGHWAY_DIRECTION_LEFT
                //
                TYPE_FEDERAL_HIGHWAY_DIRECTION_RIGHT = 233;

                // Primary road direction sign, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 418-10.png
                // </td>
                // <td>
                // StVO 418-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_PRIMARY_ROAD_DIRECTION_RIGHT
                //
                TYPE_PRIMARY_ROAD_DIRECTION_LEFT = 234;

                // Primary road direction sign, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 418-20.png
                // -->
                // </td>
                // <td>
                // StVO 418-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_PRIMARY_ROAD_DIRECTION_LEFT
                //
                TYPE_PRIMARY_ROAD_DIRECTION_RIGHT = 235;

                // Secondary road direction sign, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 419-10.png
                // </td>
                // <td>
                // StVO 419-10
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign.
                //
                // Right: \c #TYPE_SECONDARY_ROAD_DIRECTION_RIGHT
                //
                TYPE_SECONDARY_ROAD_DIRECTION_LEFT = 236;

                // Secondary road direction sign, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 419-20.png
                // </td>
                // <td>
                // StVO 419-20
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign.
                //
                // Left: \c #TYPE_SECONDARY_ROAD_DIRECTION_LEFT
                //
                TYPE_SECONDARY_ROAD_DIRECTION_RIGHT = 237;

                // Advance direction sign for designated type of vehicle, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 421-10.png "StVO 421-10"
                // <td>
                // \image html 421-11.png "StVO 421-11"
                // <td>
                // \image html 421-12.png "StVO 421-12"
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_DIRECTION_DESIGNATED_ACTORS_RIGHT
                //
                TYPE_DIRECTION_DESIGNATED_ACTORS_LEFT = 238;

                // Advance direction sign for designated type of vehicle, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 421-10.png
                // <td style="transform:scaleX(-1)">
                // \image html 421-11.png
                // <td style="transform:scaleX(-1)">
                // \image html 421-12.png
                // </tr>
                // <tr style="font-weight:bold">
                // <td>
                // StVO 421-20
                // <td>
                // StVO 421-21
                // <td>
                // StVO 421-22
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_DIRECTION_DESIGNATED_ACTORS_LEFT
                //
                TYPE_DIRECTION_DESIGNATED_ACTORS_RIGHT = 239;

                // Routing for designated type of vehicle, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 422-10.png "StVO 422-10"
                // <td>
                // \image html 422-12.png "StVO 422-12"
                // <td>
                // \image html 422-14.png "StVO 422-14"
                // <td>
                // \image html 422-16.png "StVO 422-16"
                // </tr>
                // </table>
                // Routing for designated type of vehicle, align left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 422-11.png "StVO 422-11"
                // <td>
                // \image html 422-13.png "StVO 422-13"
                // <td>
                // \image html 422-15.png "StVO 422-15"
                // <td>
                // \image html 422-17.png "StVO 422-17"
                // </tr>
                // </table>
                // Direction preannouncement sign for designated type of
                // vehicle, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 442-10.png "StVO 442-10"
                // <td>
                // \image html 442-12.png "StVO 442-12"
                // <td>
                // \image html 442-13.png "StVO 442-13"
                // </tr>
                // </table>
                //
                // Routing or designated type of vehicle, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 422-10.png
                // <td style="transform:scaleX(-1)">
                // \image html 422-12.png
                // <td style="transform:scaleX(-1)">
                // \image html 422-14.png
                // <td style="transform:scaleX(-1)">
                // \image html 422-16.png
                // </tr>
                // <tr style="font-weight:bold">
                // <td>
                // StVO 422-20
                // <td>
                // StVO 422-22
                // <td>
                // StVO 422-24
                // <td>
                // StVO 422-26
                // </tr>
                // </table>
                // Routing for designated type of vehicle, align right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 422-11.png
                // <td style="transform:scaleX(-1)">
                // \image html 422-13.png
                // <td style="transform:scaleX(-1)">
                // \image html 422-15.png
                // <td style="transform:scaleX(-1)">
                // \image html 422-17.png
                // </tr>
                // <tr style="font-weight:bold">
                // <td>
                // StVO 422-21
                // <td>
                // StVO 422-23
                // <td>
                // StVO 422-25
                // <td>
                // StVO 422-27
                // </tr>
                // </table>
                // Direction preannouncement sign for designated type of
                // vehicle, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 442-10.png
                // <td style="transform:scaleX(-1)">
                // \image html 442-12.png
                // <td style="transform:scaleX(-1)">
                // \image html 442-13.png
                // </tr>
                // <tr style="font-weight:bold">
                // <td>
                // StVO 442-20
                // <td>
                // StVO 442-22
                // <td>
                // StVO 442-23
                // </tr>
                // </table>
                // Routing for designated type of vehicle, straight.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 422-30.png "StVO 422-30"
                // <td>
                // \image html 422-32.png "StVO 422-32"
                // <td>
                // \image html 422-34.png "StVO 422-34"
                // <td>
                // \image html 422-36.png "StVO 422-36"
                // </tr>
                // </table>
                //
                // \note OSI 4.0 will describe the actors and arrows similar to
                // the supplementary signs approach.
                //
                TYPE_ROUTING_DESIGNATED_ACTORS = 240;

                // Direction to highway, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 430-10.png
                // </td>
                // <td>
                // StVO 430-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_DIRECTION_TO_HIGHWAY_RIGHT
                //
                TYPE_DIRECTION_TO_HIGHWAY_LEFT = 143;

                // Direction to highway, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 430-20.png
                // -->
                // </td>
                // <td>
                // StVO 430-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_DIRECTION_TO_HIGHWAY_LEFT
                //
                TYPE_DIRECTION_TO_HIGHWAY_RIGHT = 108;

                // Direction sign to important local destinations, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 432-10.png
                // </td>
                // <td>
                // StVO 432-10
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign.
                //
                // Right: \c #TYPE_DIRECTION_TO_LOCAL_DESTINATION_RIGHT
                //
                TYPE_DIRECTION_TO_LOCAL_DESTINATION_LEFT = 127;

                // Direction sign to important local destinations, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 432-20.png
                // -->
                // </td>
                // <td>
                // StVO 432-20
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the destination
                // indicated in the sign.
                //
                // Left: \c #TYPE_DIRECTION_TO_LOCAL_DESTINATION_LEFT
                //
                TYPE_DIRECTION_TO_LOCAL_DESTINATION_RIGHT = 136;

                // Consolidated direction sign.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 434-50.png "StVO 434-50"
                // <td>
                // \image html 434-51.png "StVO 434-51"
                // <td>
                // \image html 434-52.png "StVO 434-52"
                // <td>
                // \image html 434-53.png "StVO 434-53"
                // </tr>
                // </table>
                //
                TYPE_CONSOLIDATED_DIRECTIONS = 118;

                // Street name sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 437.png
                // </td>
                // <td>
                // StVO 437
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the street name.
                //
                TYPE_STREET_NAME = 119;

                // Direction preannouncement sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 438.png
                // </td>
                // <td>
                // StVO 438
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DIRECTION_PREANNOUNCEMENT = 120;

                // Direction preannouncement sign including lane configuration.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 439.png
                // </td>
                // <td>
                // StVO 439
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DIRECTION_PREANNOUNCEMENT_LANE_CONFIG = 121;

                // Direction preannouncement sign including highway entries.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 440.png
                // </td>
                // <td>
                // StVO 440
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DIRECTION_PREANNOUNCEMENT_HIGHWAY_ENTRIES = 122;

                // Highway announcement board.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 448.png
                // </td>
                // <td>
                // StVO 448
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the distance. Use \c
                // TrafficSignValue::text to denote the highway and the
                // direction indicated in the sign, e.g. "26 Duesseldorf -
                // Benrath".
                //
                TYPE_HIGHWAY_ANNOUNCEMENT = 123;

                // Announcement board on other roads outside of highways.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 448-50.png
                // </td>
                // <td>
                // StVO 448-50
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to set the distance. Use \c
                // TrafficSignValue::text to denote the destination indicated in
                // the sign.
                //
                TYPE_OTHER_ROAD_ANNOUNCEMENT = 124;

                // Announcement highway truck stop.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 448.1.png
                // </td>
                // <td>
                // StVO 448.1
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HIGHWAY_ANNOUNCEMENT_TRUCK_STOP = 125;

                // Highway interchange advance directional sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 449.png
                // </td>
                // <td>
                // StVO 449
                // </td>
                // </tr>
                // </table>
                //
                TYPE_HIGHWAY_PREANNOUNCEMENT_DIRECTIONS = 126;

                // Pole indicating highways exit in ... m.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 450-50.png "StVO 450-50"
                // <td>
                // \image html 450-51.png "StVO 450-51"
                // <td>
                // \image html 450-52.png "StVO 450-52"
                // <td>
                // \image html 450-53.png "StVO 450-53"
                // <td>
                // \image html 450-54.png "StVO 450-54"
                // <td>
                // \image html 450-55.png "StVO 450-55"
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit to specify the distance in m
                // or the displayed number of stripes (in that case, set \c
                // TrafficSignValue::value_unit to \c
                // TrafficSignValue::UNIT_NO_UNIT.).
                //
                TYPE_POLE_EXIT = 88;

                // Highway distance board.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 453.png "StVO 453"
                // <td>
                // \image html 453-50.png "StVO 453-50"
                // </tr>
                // </table>
                //
                TYPE_HIGHWAY_DISTANCE_BOARD = 180;

                // Detour sign, pointing left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 454-10.png
                // </td>
                // <td>
                // StVO 454-10
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_DETOUR_RIGHT
                //
                TYPE_DETOUR_LEFT = 181;

                // Detour sign, pointing right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 454-20.png
                // -->
                // </td>
                // <td>
                // StVO 454-20
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_DETOUR_LEFT
                //
                TYPE_DETOUR_RIGHT = 182;

                // Numbered detour route.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 455.1.png
                // </td>
                // <td>
                // StVO 455.1
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the alternative
                // routing name indicated in the sign.
                //
                // \note OSI 4.0 will describe the arrows similar to the
                // supplementary signs approach.
                //
                TYPE_NUMBERED_DETOUR = 131;

                // Announcement; begin of detour.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 457.1.png
                // </td>
                // <td>
                // StVO 457.1
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DETOUR_BEGIN = 132;

                // End of detour.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 457.2.png
                // </td>
                // <td>
                // StVO 457.2
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DETOUR_END = 133;

                // Diversion routing board.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 458.png
                // </td>
                // <td>
                // StVO 458
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DETOUR_ROUTING_BOARD = 134;

                // The sign indicates an alternative routing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 460-50.png
                // </td>
                // <td>
                // StVO 460-50
                // </td>
                // <td>
                // The sign indicates an alternative routing, announcement.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 460-10.png
                // </td>
                // <td>
                // StVO 460-10
                // </td>
                // <td>
                // The sign indicates an alternative routing, preannouncement
                // left.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 460-11.png
                // -->
                // </td>
                // <td>
                // StVO 460-11
                // </td>
                // <td>
                // The sign indicates an alternative routing, left.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 460-12.png
                // </td>
                // <td>
                // StVO 460-12
                // </td>
                // <td>
                // The sign indicates an alternative routing, change lane left.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 460-20.png
                // -->
                // </td>
                // <td>
                // StVO 460-20
                // </td>
                // <td>
                // The sign indicates an alternative routing, preannouncement
                // right.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 460-21.png
                // -->
                // </td>
                // <td>
                // StVO 460-21
                // </td>
                // <td>
                // The sign indicates an alternative routing, right.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 460-22.png
                // -->
                // </td>
                // <td>
                // StVO 460-22
                // </td>
                // <td>
                // The sign indicates an alternative routing, lane change
                // right.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 460-30.png
                // </td>
                // <td>
                // StVO 460-30
                // </td>
                // <td>
                // The sign indicates an alternative routing, straight.
                // </td>
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::text to denote the alternative
                // routing name indicated in the sign.
                //
                // \note OSI 4.0 will describe the arrows similar to the
                // supplementary signs approach.
                //
                TYPE_OPTIONAL_DETOUR = 111;

                // Provisional diversion route schematic.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 466.png
                // </td>
                // <td>
                // StVO 466
                // </td>
                // </tr>
                // </table>
                //
                TYPE_OPTIONAL_DETOUR_ROUTING = 199;

                // Recommended alternate route.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 467.1-10.png
                // </td>
                // <td>
                // StVO 467.1-10
                // </td>
                // <td>
                // Set \c Classification::direction_scope as \c
                // DIRECTION_SCOPE_LEFT.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 467.1-10.png
                // </td>
                // <td>
                // StVO 467.1-20
                // </td>
                // <td>
                // Set \c Classification::direction_scope as \c
                // DIRECTION_SCOPE_RIGHT.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROUTE_RECOMMENDATION = 211;

                // End of recommended alternate route.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 467.2.png
                // </td>
                // <td>
                // StVO 467.2
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROUTE_RECOMMENDATION_END = 212;

                // X lanes transition, left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 501-10.png
                // -->
                // </td>
                // <td>
                // StVO 501-10
                // </td>
                // <td>
                // One associated lane.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 501-11.png
                // </td>
                // <td>
                // StVO 501-11
                // </td>
                // <td>
                // Two associated lanes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 501-12.png
                // -->
                // </td>
                // <td>
                // StVO 501-12
                // </td>
                // <td>
                // Three associated lanes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 505-11.png
                // </td>
                // <td>
                // (StVO 505-11)
                // </td>
                // <td>
                // Two associated lanes with restriction.
                // Restriction defined as additional main sign.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 505-12.png
                // </td>
                // <td>
                // (StVO 505-12)
                // </td>
                // <td>
                // Three associated lanes with restriction.
                // Restrictions defined as additional main sign(s).
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_ANNOUNCE_LANE_TRANSITION_RIGHT
                //
                TYPE_ANNOUNCE_LANE_TRANSITION_LEFT = 192;

                // X lanes transition, right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 501-20.png
                // -->
                // </td>
                // <td>
                // StVO 501-20
                // </td>
                // <td>
                // One associated lane.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 501-11.png
                // </td>
                // <td>
                // StVO 501-21
                // </td>
                // <td>
                // Two associated lanes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 501-22.png
                // -->
                // </td>
                // <td>
                // StVO 501-22
                // </td>
                // <td>
                // Three associated lanes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 505-21.png
                // -->
                // </td>
                // <td>
                // (StVO 505-21)
                // </td>
                // <td>
                // Two associated lanes with restriction.
                // Restriction defined as additional main sign.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 505-22.png
                // -->
                // </td>
                // <td>
                // (StVO 505-22)
                // </td>
                // <td>
                // Three associated lanes with restriction.
                // Restrictions defined as additional main sign(s).
                // </td>
                // </tr>
                // </table>
                //
                // Left: \c #TYPE_ANNOUNCE_LANE_TRANSITION_LEFT
                //
                TYPE_ANNOUNCE_LANE_TRANSITION_RIGHT = 193;

                // End of X right lanes.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 531-10.png
                // </td>
                // <td>
                // StVO 531-10
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image tml 297.1-21.png
                // -->
                // </td>
                // <td>
                // StVO 297.1-21
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ANNOUNCE_RIGHT_LANE_END = 90;

                // End of X left lanes.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 531-10.png
                // </td>
                // <td>
                // StVO 531-20
                // </td>
                // </tr>
                // </table>
                //
                // As symbolic road marking \c
                // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN.
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 297.1-21.png
                // -->
                // </td>
                // <td>
                // StVO 297.1-21
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ANNOUNCE_LEFT_LANE_END = 89;

                // Begin of X right lanes.
                // <!--
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 545-11.png
                // </td>
                // <td>
                // (StVO 545-11)
                // </td>
                // <td>
                // Extension from two to three lanes with minimum speed by lane.
                // </td>
                // <td>
                // Restrictions defined as additional main sign(s).
                // </td>
                // </tr>
                // </table>-->
                //
                // Left: \c #TYPE_ANNOUNCE_LEFT_LANE_BEGIN
                //
                TYPE_ANNOUNCE_RIGHT_LANE_BEGIN = 115;

                // Begin of X left lanes.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 545-11.png
                // </td>
                // <td>
                // (StVO 545-11)
                // </td>
                // <td>
                // Extension from two to three lanes with minimum speed by lane.
                // </td>
                // <td>
                // Restrictions defined as additional main signs.
                // </td>
                // </tr>
                // </table>
                //
                // Right: \c #TYPE_ANNOUNCE_RIGHT_LANE_BEGIN
                //
                TYPE_ANNOUNCE_LEFT_LANE_BEGIN = 116;

                // Announce lane consolidation.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 551-20.png
                // -->
                // </td>
                // <td>
                // StVO 551-20
                // </td>
                // <td>
                // Consolidation of lanes from multiple roads, one continuing,
                // one opening.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 551-21.png
                // </td>
                // <td>
                // StVO 551-21
                // </td>
                // <td>
                // Consolidation of lanes from multiple roads, two continuing,
                // one opening.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 551-22.png
                // -->
                // </td>
                // <td>
                // StVO 551-22
                // </td>
                // <td>
                // Consolidation of lanes from multiple roads, two continuing,
                // two opening.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 551-23.png
                // -->
                // </td>
                // <td>
                // StVO 551-23
                // </td>
                // <td>
                // Consolidation of lanes from multiple roads, three continuing,
                // two opening.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 551-24.png
                // -->
                // </td>
                // <td>
                // StVO 551-24
                // </td>
                // <td>
                // Consolidation of lanes from multiple roads, three continuing,
                // one opening.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ANNOUNCE_LANE_CONSOLIDATION = 117;

                // Detour around city block.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 590-10.png
                // </td>
                // <td>
                // StVO 590-10
                // </td>
                // <td>
                // turn right, left, left
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 590-11.png
                // -->
                // </td>
                // <td>
                // StVO 590-11
                // </td>
                // <td>
                // turn right, right, right
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 590-10.png
                // </td>
                // <td>
                // </td>
                // <td>
                // turn left, right, right
                // </td>
                // </tr>
                // <tr>
                // <td>
                // </td>
                // <td>
                // </td>
                // <td>
                // turn left, left, left
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DETOUR_CITY_BLOCK = 142;

                // Boom gate.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 600-25.png
                // </td>
                // <td>
                // StVO 600
                // </td>
                // </tr>
                // </table>
                //
                TYPE_GATE = 141;

                // Pole for warning and guiding purposes
                // (red/white stripes - StVO 605, also StVO 628 and StVO 629).
                // <table border="0">
                // <tr>
                // <td>
                // \image html 605-10.png "StVO 605"
                // <td>
                // \image html 628-10.png "StVO 628"
                // <td>
                // \image html 629-10.png "StVO 629"
                // </tr>
                // </table>
                //
                // Variants (here X can be any of 605, 628 or 629):
                // <table border="0">
                // <tr>
                // <td>
                // StVO X-10, -12, -13 and -14
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // StVO X-11
                // </td>
                // <td>
                // Set \c Classification::direction_scope as \c
                // #DIRECTION_SCOPE_RIGHT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // StVO X-20, -22, -23 and -24
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // StVO X-21
                // </td>
                // <td>
                // Set \c Classification::direction_scope as \c
                // #DIRECTION_SCOPE_LEFT.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_POLE_WARNING = 91;

                // Traffic cone.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 610-41.png
                // </td>
                // <td>
                // StVO 610
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TRAFFIC_CONE = 140;

                // Mobile lane closure board.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 615.png
                // </td>
                // <td>
                // StVO 615
                // </td>
                // <td>
                // no arrow
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 616-30.png
                // </td>
                // <td>
                // StVO 616-30
                // </td>
                // <td>
                // with lighted arrow, large
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 616-31.png
                // -->
                // </td>
                // <td>
                // StVO 616-31
                // </td>
                // <td>
                // with lighted arrow, small
                // </td>
                // </tr>
                // </table>
                //
                // \note Additional traffic signs are modeled as separate main
                // signs.
                //
                TYPE_MOBILE_LANE_CLOSURE = 139;

                // Reflector guide posts.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 620-40.png
                // </td>
                // <td>
                // StVO 620-40
                // </td>
                // <td>
                // Reflector guide posts, rectangular reflecting.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 620-41.png
                // </td>
                // <td>
                // StVO 621-40
                // </td>
                // <td>
                // Reflector guide posts, two dots reflecting.
                // </td>
                // </tr>
                // </table>
                //
                // \note No reflecting color is specified.
                TYPE_REFLECTOR_POST = 114;

                // Directional board used for warning and guiding purposes
                // (red/white stripes - StVO 625).
                //
                // Use the optional attribute \c Classification::direction_scope
                // to specify the direction the wedge symbols are pointing at.
                //
                // Variants (here X is any of 0, 1, 2, 3):
                // <table border="0">
                // <tr>
                // <td>
                // \image html 625-11.png
                // </td>
                // <td>
                // StVO 625-1X
                // </td>
                // <td>
                // - Set \c Classification::direction_scope as \c
                // #DIRECTION_SCOPE_LEFT.
                // - Optionally, use \c TrafficSignValue::value to specify the
                // number of wedges on the board. If you do so, set \c
                // TrafficSignValue::value_unit to \c
                // TrafficSignValue::UNIT_NO_UNIT.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 625-11.png
                // </td>
                // <td>
                // StVO 625-2X
                // </td>
                // <td>
                // - Set \c Classification::direction_scope as \c
                // DIRECTION_SCOPE_RIGHT.
                // - Optionally, use \c TrafficSignValue::value to specify the
                // number of wedges on the board. If you do so, set \c
                // TrafficSignValue::value_unit to \c
                // TrafficSignValue::UNIT_NO_UNIT.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_DIRECTIONAL_BOARD_WARNING = 113;

                // Guiding plate.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 626-10.png
                // </td>
                // <td>
                // StVO 626-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 626-10.png
                // </td>
                // <td>
                // StVO 626-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_GUIDING_PLATE = 104;

                // Guiding plate, wedges.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 626-30.png
                // </td>
                // <td>
                // StVO 626-30, 626-31
                // </td>
                // </tr>
                // </table>
                //
                TYPE_GUIDING_PLATE_WEDGES = 105;

                // Parking hazard.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 630.png
                // </td>
                // <td>
                // StVO 630-10
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c false.
                // </td>
                // </tr>
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 630.png
                // </td>
                // <td>
                // StVO 630-20
                // </td>
                // <td>
                // Set \c #vertically_mirrored to \c true.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PARKING_HAZARD = 99;

                // Green arrow sign at a traffic light.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 720.png
                // </td>
                // <td>
                // StVO 720
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TRAFFIC_LIGHT_GREEN_ARROW = 92;

                // last_counter = 240
                // Please add next element with counter equal to last_counter+1.
                // After that, manually increment last_counter
            }

            // Definition of the direction of the traffic sign's scope.
            // Signs marked with additional arrows. (E.g. No parking sign (StVO
            // 286) to the left.)
            //
            enum DirectionScope
            {
                // Direction of the sign's scope is unknown (must not be used in
                // ground truth).
                //
                DIRECTION_SCOPE_UNKNOWN = 0;

                // Other (unspecified but known) direction of the sign's scope.
                //
                DIRECTION_SCOPE_OTHER = 1;

                // Direction of the sign's scope is not specified.
                //
                DIRECTION_SCOPE_NO_DIRECTION = 2;

                // Direction of the sign's scope for its viewer is left.
                //
                DIRECTION_SCOPE_LEFT = 3;

                // Direction of the sign's scope for its viewer is right.
                //
                DIRECTION_SCOPE_RIGHT = 4;

                // Direction of the sign's scope for its viewer is to both
                // sides.
                //
                DIRECTION_SCOPE_LEFT_RIGHT = 5;
            }
        }
    }

    //
    // \brief Additional supplementary sign modifying the main sign.
    //
    // \image html OSI_SupplementarySign.svg
    //
    message SupplementarySign
    {
        // The base parameters of the supplementary traffic sign.
        //
        // The orientation of the bounding box \c SupplementarySign::base
        // ( \c BaseStationary::orientation ) is defined as follows:
        // The z-axis of the given \c BaseStationary::orientation is the vector
        // from the bottom to the top of the supplementary traffic sign's 2D
        // image plate. (Normally it is equal to the ground truth z-axis.) The
        // x-axis of the given \c BaseStationary::orientation is view normal of
        // the supplementary traffic sign's image. This x-axis points from the
        // supplementary traffic sign's image in the direction from where a
        // 'viewer' could see the supplementary traffic sign image.
        //
        optional BaseStationary base = 1;

        // The classification of the supplementary traffic sign.
        //
        optional Classification classification = 2;

        // Opaque reference of an associated 3D model of the supplementary traffic sign.
        //
        // \note It is implementation-specific how model_references are resolved to
        // 3d models.
        //
        optional string model_reference = 3;

        //
        // \brief \c Classification data for a supplementary traffic sign.
        //
        // When constructing a \c SupplementarySign, consider the use of the
        // following members:
        // - In order to include numerical values indicated in the sign,
        // use \c TrafficSignValue::value. Accompany this value with an
        // indication of its unit of measure given by \c
        // TrafficSignValue::value_unit.
        // - In order to include strings of text indicated in the sign,
        // use \c TrafficSignValue::text. The interpretation of this text is
        // left to a user-defined procedure.
        //
        // \note The definition of the sign types is thought to be independent
        // of the country, even if the images used in this documentation are
        // based on the German Road Traffic Regulations (StVO).
        //
        message Classification
        {
            // Variability.
            //
            optional Variability variability = 1;

            // Definition of supplementary sign types.
            //
            // For general supplementary signs use \c #TYPE_TEXT.
            // Supplementary signs with general space restrictions use \c
            // #TYPE_SPACE. Supplementary signs with general time restrictions
            // use \c #TYPE_TIME. Supplementary signs with displayed arrow
            // directions use \c #TYPE_ARROW. Supplementary signs constraint to
            // one type of actors use \c #TYPE_CONSTRAINED_TO. Supplementary
            // signs that will exclude one type of actors use \c #TYPE_EXCEPT.
            // If supplementary signs combine contraints, restrictions, or plain
            // text, \c Type is used in descending order in the following
            // sequence: \c #TYPE_EXCEPT, \c #TYPE_CONSTRAINED_TO, \c
            // #TYPE_ARROW, \c #TYPE_TIME, \c #TYPE_SPACE, \c #TYPE_TEXT.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            enum Type
            {
                // Type of supplementary sign is unknown (must not be used in
                // ground truth).
                //
                TYPE_UNKNOWN = 0;

                // Other (unspecified but known) type of supplementary sign.
                //
                TYPE_OTHER = 1;

                // There is no supplementary sign (must not be used in ground
                // truth).
                //
                TYPE_NO_SIGN = 2;

                // Text sign.
                // \n
                // Use it as a canvas for text-only signs:
                // - Use \c TrafficSignValue::value to indicate a numerical
                // value indicated on the sign. Accompany this value with an
                // indication of its unit of measure given by \c
                // TrafficSignValue::value_unit.
                // - Use \c TrafficSignValue::text to indicate a string of text
                // indicated on the sign.
                //
                // The following table summarizes possible configurations for
                // this kind of supplementary signs:
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c TrafficSignValue::text
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-30.png
                // </td>
                // <td>
                // StVO 1007-30  (StVO 2017)
                // \anchor OIL_TEXT
                // </td>
                // <td>
                // &rdquo;&Ouml;lspur&rdquo;
                // </td>
                // <td>
                // Trail of oil hazard.
                // <br>
                // \note The identifier "StVO 1007-30" is currently used to
                // denote the hazard of oil trails. Prior to the edition of
                // 2017 of the Catalog of Street Signs of the Federal Road
                // Research Institute of Germany - BASt, it was used to denote a
                // restriction of the validity of the traffic sign to snowy /
                // icy conditions.
                // See \c #TYPE_SNOW.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-31.png
                // </td>
                // <td>
                // StVO 1007-31
                // </td>
                // <td>
                // "Rauch"
                // </td>
                // <td>
                // Smoke hazard.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-32.png
                // </td>
                // <td>
                // StVO 1007-32
                // </td>
                // <td>
                // "Rollsplitt"
                // </td>
                // <td>
                // Loose gravel hazard.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-33.png
                // </td>
                // <td>
                // StVO 1007-33
                // </td>
                // <td>
                // "Baustellenausfahrt"
                // </td>
                // <td>
                // Construction site exit.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-34.png
                // </td>
                // <td>
                // StVO 1007-34
                // </td>
                // <td>
                // &rdquo;Stra&szlig;enschaden&rdquo;
                // </td>
                // <td>
                // Damaged roadway.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-35.png
                // </td>
                // <td>
                // StVO 1007-35
                // </td>
                // <td>
                // "Verschmutzte Fahrbahn"
                // </td>
                // <td>
                // Dirty roadway.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-36.png
                // </td>
                // <td>
                // StVO 1007-36
                // </td>
                // <td>
                // "Sprengarbeiten"
                // </td>
                // <td>
                // Blasting.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-37.png
                // </td>
                // <td>
                // StVO 1007-37
                // </td>
                // <td>
                // "Ausfahrt"
                // </td>
                // <td>
                // Exit.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-38.png
                // </td>
                // <td>
                // StVO 1007-38
                // </td>
                // <td>
                // "Baustellen verkehr"
                // </td>
                // <td>
                // Construction vehicles traffic.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-39.png
                // </td>
                // <td>
                // StVO 1007-39
                // </td>
                // <td>
                // "fehlende Fahrbahnmarkierung"
                // </td>
                // <td>
                // Missing lane marking.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-50.png
                // </td>
                // <td>
                // StVO 1007-50
                // \anchor ACCIDENT_TEXT
                // </td>
                // <td>
                // "Unfall"
                // </td>
                // <td>
                // Accident hazard.
                // <br>
                // See \c #TYPE_ACCIDENT
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-51.png
                // </td>
                // <td>
                // StVO 1007-51
                // </td>
                // <td>
                // "Hochwasser"
                // </td>
                // <td>
                // Flood.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-52.png
                // </td>
                // <td>
                // StVO 1007-52
                // </td>
                // <td>
                // "neuer Fahrbahnbelag"
                // </td>
                // <td>
                // New road surface.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-53.png
                // </td>
                // <td>
                // StVO 1007-53
                // </td>
                // <td>
                // "Spurrinnen"
                // </td>
                // <td>
                // Wheel ruts.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-54.png
                // </td>
                // <td>
                // StVO 1007-54
                // </td>
                // <td>
                // "Linksabbieger"
                // </td>
                // <td>
                // Left-turning drivers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-57.png
                // </td>
                // <td>
                // StVO 1007-57
                // </td>
                // <td>
                // "Kuppe"
                // </td>
                // <td>
                // Hilltop.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-58.png
                // </td>
                // <td>
                // StVO 1007-58
                // </td>
                // <td>
                // "Polizeikontrolle"
                // </td>
                // <td>
                // Police check.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-60.png
                // </td>
                // <td>
                // StVO 1007-60
                // </td>
                // <td>
                // "Seitenstreifen nicht befahrbar"
                // </td>
                // <td>
                // Side strips not passable.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-61.png
                // </td>
                // <td>
                // StVO 1007-61
                // </td>
                // <td>
                // "NEBEL"
                // </td>
                // <td>
                // Restriction of the validity of the traffic sign to foggy.
                // </td>
                // <tr>
                // <td>
                // \image html 1007-62.png
                // </td>
                // <td>
                // StVO 1007-62
                // </td>
                // <td>
                // "Zufahrt"
                // </td>
                // <td>
                // Driveway.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1008-30.png
                // </td>
                // <td>
                // StVO 1008-30
                // </td>
                // <td>
                // &rdquo;Vorfahrt ge&auml;ndert&rdquo;
                // </td>
                // <td>
                // Priority changed.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1008-31.png
                // </td>
                // <td>
                // StVO 1008-31
                // </td>
                // <td>
                // &rdquo;Verkehrsf&uuml;hrung ge&auml;ndert&rdquo;
                // </td>
                // <td>
                // Routing changed.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1008-32.png
                // </td>
                // <td>
                // StVO 1008-32
                // </td>
                // <td>
                // "Industriegebiet Schienenfahrzeuge haben Vorweg"
                // </td>
                // <td>
                // Industrial area (rail traffic has priority).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1008-33.png
                // </td>
                // <td>
                // StVO 1008-33
                // </td>
                // <td>
                // "Hafengebiet Schienenfahrzeuge haben Vorweg"
                // </td>
                // <td>
                // Port area (rail traffic has priority).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1008-34.png
                // </td>
                // <td>
                // StVO 1008-34
                // </td>
                // <td>
                // &rdquo;keine Wendem&ouml;glichkeit&rdquo;
                // </td>
                // <td>
                // No turning possibility.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-30n.png
                // </td>
                // <td>
                // StVO 1012-30 (StVO 2017)
                // </td>
                // <td>
                // "Ladezone"
                // </td>
                // <td>
                // Loading zone.
                // \anchor LOADING_ZONE_TEXT
                // \note The identifier "StVO 1012-30" is currently used to
                // denote a loading zone. Prior to the edition of 2017 of
                // the Catalog of Street Signs of the Federal Road Research
                // Institute of Germany - BASt, it was used to denote
                // the beginning of the validity of regulation prescribed by
                // the \c MainSign.
                // See [\c Begin](\ref BEGIN_TEXT).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-30a.png
                // </td>
                // <td>
                // StVO 1012-30
                // </td>
                // <td>
                // "Anfang"
                // </td>
                // <td>
                // Begin
                // \anchor BEGIN_TEXT
                // \note The identifier "StVO 1012-30" is currently used to
                // denote a loading zone. Prior to the edition of 2017 of
                // the Catalog of Street Signs of the Federal Road Research
                // Institute of Germany - BASt, it was used to denote
                // the beginning of the validity of regulation prescribed by
                // the \c MainSign.
                // See [\c Loading zone](\ref LOADING_ZONE_TEXT).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-31.png
                // </td>
                // <td>
                // StVO 1012-31
                // </td>
                // <td>
                // "Ende"
                // </td>
                // <td>
                // End.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-34.png
                // </td>
                // <td>
                // StVO 1012-34
                // </td>
                // <td>
                // &rdquo;Gr&uuml;ne Welle bei XX km/h&rdquo;
                // </td>
                // <td>
                // All green signals ("green wave") at certain speed.
                // <br>
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. km/h) to indicate the
                // speed.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-35.png
                // </td>
                // <td>
                // StVO 1012-35
                // </td>
                // <td>
                // "bei Rot hier halten"
                // </td>
                // <td>
                // Stop at red light.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-36.png
                // </td>
                // <td>
                // StVO 1012-36
                // \anchor NOISE_PROTECTION_TEXT
                // </td>
                // <td>
                // &rdquo;L&auml;rmschutz&rdquo;
                // </td>
                // <td>
                // Noise protection.
                // <br>
                // See also:
                // [\c Noise protection with time limit](\ref NOISE_PROTECTION2)
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-37.png
                // </td>
                // <td>
                // StVO 1012-37
                // </td>
                // <td>
                // "Zuflussregelung"
                // </td>
                // <td>
                // Inflow regulation.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-38.png
                // </td>
                // <td>
                // StVO 1012-38
                // </td>
                // <td>
                // "Nebenstrecke"
                // </td>
                // <td>
                // Secondary route.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-50.png
                // </td>
                // <td>
                // StVO 1012-50
                // </td>
                // <td>
                // "Schule"
                // </td>
                // <td>
                // School.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-51.png
                // </td>
                // <td>
                // StVO 1012-51
                // </td>
                // <td>
                // "Kindergarten"
                // </td>
                // <td>
                // Kindergarten.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-52.png
                // </td>
                // <td>
                // StVO 1012-52
                // </td>
                // <td>
                // "Altenheim"
                // </td>
                // <td>
                // Retirement home.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-53.png
                // </td>
                // <td>
                // StVO 1012-53
                // </td>
                // <td>
                // "Krankenhaus"
                // </td>
                // <td>
                // Hospital.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1013-50.png
                // </td>
                // <td>
                // StVO 1013-50
                // </td>
                // <td>
                // "Seitenstreifen befahren"
                // </td>
                // <td>
                // Driving on side stripes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1013-51.png
                // </td>
                // <td>
                // StVO 1013-51
                // </td>
                // <td>
                // &rdquo;Seitenstreifen r&auml;umen&rdquo;
                // </td>
                // <td>
                // Vacate side stripes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1014-50.png
                // </td>
                // <td>
                // StVO 1014-50
                // </td>
                // <td>
                // A letter among B,C,D or E
                // </td>
                // <td>
                // Tunnel category according to ADR agreement.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1028-31.png
                // </td>
                // <td>
                // StVO 1028-31
                // </td>
                // <td>
                // "bis Baustelle frei"
                // </td>
                // <td>
                // Exception up to construction site.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-30.png
                // </td>
                // <td>
                // StVO 1053-30
                // </td>
                // <td>
                // &rdquo;Parken in gekennzeichneten Fl&auml;chen erlaubt&rdquo;
                // </td>
                // <td>
                // Parking in marked areas allowed.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-31.png
                // </td>
                // <td>
                // StVO 1053-31
                // </td>
                // <td>
                // "mit Parkschein"
                // </td>
                // <td>
                // With parking ticket.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-32.png
                // </td>
                // <td>
                // StVO 1053-32
                // </td>
                // <td>
                // &rdquo;geb&uuml;hrenpflichtig&rdquo;
                // </td>
                // <td>
                // Fees apply.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-34.png
                // </td>
                // <td>
                // StVO 1053-34
                // </td>
                // <td>
                // "auf dem Seitenstreifen"
                // </td>
                // <td>
                // On the shoulder.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-36.png
                // </td>
                // <td>
                // StVO 1053-36
                // </td>
                // <td>
                // "Durchgangsverkehr"
                // </td>
                // <td>
                // Transit traffic.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-52.png
                // </td>
                // <td>
                // StVO 1053-52
                // </td>
                // <td>
                // &rdquo;nur innerhalb gekennzeichneter Parkfl&auml;chen&rdquo;
                // </td>
                // <td>
                // Only within marked parking areas.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-53.png
                // </td>
                // <td>
                // StVO 1053-53
                // </td>
                // <td>
                // &rdquo;Parken mit Parkschein in gekennzeichneter
                // fl&auml;chen&rdquo;
                // </td>
                // <td>
                // Parking with parking permit in marked areas.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TEXT = 41;

                // Text sign with distance indication.
                // \n
                // Use it as a canvas for text signs that make reference to a
                // point or area in space:
                // - Use \c TrafficSignValue::value to include the distance
                // indicated in the sign. Accompany this value with an
                // indication of its unit of measure given by \c
                // TrafficSignValue::value_unit (e.g. m),
                // - Use \c TrafficSignValue::text to indicate the sign's
                // specific text,
                //
                // The following table summarizes possible configurations for
                // this kind of supplementary signs:
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c TrafficSignValue member(s)
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1004-32.png
                // </td>
                // <td>
                // StVO 1004-32
                // </td>
                // <td>
                // "STOP" + distance
                // </td>
                // <td>
                // Stop in e.g. ... m
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1005-30.png
                // </td>
                // <td>
                // StVO 1005-30
                // </td>
                // <td>
                // &rdquo;Rei&szlig;verschluss erst in&rdquo; + distance
                // </td>
                // <td>
                // Zipper merge in e.g. ... m
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-59.png
                // </td>
                // <td>
                // StVO 1007-59
                // </td>
                // <td>
                // "Ende Seitenstreifen in" + distance
                // </td>
                // <td>
                // End of the side strip in e.g. ... m
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1013-52.png
                // </td>
                // <td>
                // StVO 1013-52
                // </td>
                // <td>
                // "Ende in" + distance
                // </td>
                // <td>
                // End in .. m
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1028-33.png
                // </td>
                // <td>
                // StVO 1028-33
                // </td>
                // <td>
                // "Zufahrt bis frei" + distance or location
                // </td>
                // <td>
                // Except up to ...
                // <br>
                // If there is a prohibition for all vehicles, the street can
                // still be used up to a certain point. To indicate the point,
                // use one of the following alternatives:
                // - A numerical value described by \c TrafficSignValue::value
                // and \c TrafficSignValue::value_unit (e.g. m) to indicate
                // the point as a distance from the sign.
                // - A text described by \c TrafficSignValue::text in order to
                // describe the point's location verbally, e.g. "Baugebiet ...".
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SPACE = 39;

                // Text sign with time indication.
                // \n
                // Use it as a canvas for text signs that make:
                // reference to a point in time or a time range.
                // - Use one or more \c TrafficSignValue messages to include
                // the times indicated in the sign. Accompany each value with an
                // indication of its unit of measure given by \c
                // TrafficSignValue::value_unit, e.g. h.
                // - For each \c TrafficSignValue, \c TrafficSignValue::value
                // indicates the time elapsed since midnight every day.
                // - Use the \c TrafficSignValue::text member of the
                // first \c TrafficSignValue message to indicate the sign's
                // specific text.
                //
                // \note
                // - Time interval need two \c TrafficSignValue messages,
                // one to indicate their start and one to indicate their end.
                // - In case more than one time range is required, the
                // \c TrafficSignValue::value member of the first \c
                // TrafficSignValue message is interpreted as the beginning of
                // the first interval, the \c TrafficSignValue::value member of
                // the second \c TrafficSignValue message is interpreted as the
                // end of the first interval, and so on.
                //
                // The following table summarizes possible configurations for
                // this kind of supplementary signs:
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c TrafficSignValue member(s)
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-30.png
                // </td>
                // <td>
                // StVO 1040-30
                // </td>
                // <td>
                // Time range
                // </td>
                // <td>
                // Time range for validity of traffic sign.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-31.png
                // </td>
                // <td>
                // StVO 1040-31
                // \anchor StVO_1040-31
                // </td>
                // <td>
                // Two time ranges
                // </td>
                // <td>
                // Time range for validity of traffic sign - two ranges.
                // <br>
                // For each time range, include a pair of \c TrafficSignValue
                // messages according to the [\c rules above](\ref TYPE_TIME).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-34.png
                // </td>
                // <td>
                // StVO 1040-34
                // </td>
                // <td>
                // "ab" + Date + Time of the day
                // </td>
                // <td>
                // Restricted from point in time.
                // <br>
                // - Use three \c TrafficSignValue messages to indicate
                // respectively the day of the month, the month of the year,
                // and the hour of the day corresponding to the start of the
                // restriction.
                // - The first two \c TrafficSignValue::value_unit should be
                // set to \c TrafficSignValue::UNIT_NO_UNIT.
                // - For the last \c TrafficSignValue, \c
                // TrafficSignValue::value indicates the time elapsed since
                // midnight of the corresponding day, and \c
                // TrafficSignValue::value_unit indicates the unit this time is
                // expressed in, e.g. in min.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-35.png
                // </td>
                // <td>
                // StVO 1040-35
                // \anchor NOISE_PROTECTION2
                // </td>
                // <td>
                // &rdquo;L&auml;rmschutz&rdquo; + time range
                // </td>
                // <td>
                // Noise protection with time limit.
                // <br>
                // See [\c Noise protection](\ref NOISE_PROTECTION_TEXT).
                // </tt>
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-36.png
                // </td>
                // <td>
                // StVO 1040-36
                // </td>
                // <td>
                // "Schulweg" + time range
                // </td>
                // <td>
                // Way to or from school with time limit.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-30.png
                // </td>
                // <td>
                // StVO 1042-30
                // </td>
                // <td>
                // "werktags"
                // </td>
                // <td>
                // Working days.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-31.png
                // </td>
                // <td>
                // StVO 1042-31
                // \anchor StVO_1042-31
                // </td>
                // <td>
                // "werktags" + time range
                // </td>
                // <td>
                // Working days with time limit.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-32.png
                // </td>
                // <td>
                // StVO 1042-32
                // </td>
                // <td>
                // "werktags" + two time ranges
                // </td>
                // <td>
                // Restricted to working days with two time intervals.
                // <br>
                // For each time range, include a pair of \c TrafficSignValue
                // messages according to the [\c rules above](\ref TYPE_TIME).
                // <br>
                // See also: [\c Two time ranges](\ref StVO_1040-31).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-33.png
                // </td>
                // <td>
                // StVO 1042-33
                // </td>
                // <td>
                // "Mo-Fr" + time range
                // </td>
                // <td>
                // Time range for validity of traffic sign with days of the
                // week.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-34.png
                // </td>
                // <td>
                // StVO 1042-34
                // </td>
                // <td>
                // "Di,Do,Fr" + time range
                // </td>
                // <td>
                // Tuesdays, Thursdays and Fridays with time limit.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-35.png
                // </td>
                // <td>
                // StVO 1042-35
                // </td>
                // <td>
                // "an Sonn- und Feiertagen" + time range
                // </td>
                // <td>
                // Restricted times, Sundays and public holidays only.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-36.png
                // </td>
                // <td>
                // StVO 1042-36
                // </td>
                // <td>
                // &rdquo;Schulbus werktags au&szlig;er samstags&rdquo; + two
                // time ranges
                // </td>
                // <td>
                // School bus, restricted to daytimes
                // <br>
                // For each time range, include a pair of \c
                // TrafficSignValue messages according to the
                // [\c rules above](\ref TYPE_TIME).
                // <br>
                // See also: [\c Two time ranges](\ref StVO_1040-31),
                // [\c Working days except Saturdays](\ref StVO_1042-38).
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-37.png
                // </td>
                // <td>
                // StVO 1042-37
                // </td>
                // <td>
                // "Parken Sa und So erlaubt"
                // </td>
                // <td>
                // Parking on Saturdays and Sundays allowed.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-38.png
                // </td>
                // <td>
                // StVO 1042-38
                // \anchor StVO_1042-38
                // </td>
                // <td>
                // &rdquo;werktags au&szlig;er samstags&rdquo;
                // </td>
                // <td>
                // Working days except Saturdays.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-51.png
                // </td>
                // <td>
                // StVO 1042-51
                // </td>
                // <td>
                // "Sa und So"
                // </td>
                // <td>
                // Saturdays and Sundays.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1042-53.png
                // </td>
                // <td>
                // StVO 1042-53
                // </td>
                // <td>
                // "werktags Schulweg" + time range
                // </td>
                // <td>
                // Way to or from school with time limit on working days.
                // <br>
                // See also
                // [\c Working days with time limit](\ref StVO_1042-31).
                // </td>
                // </tr>
                // </table>
                //
                TYPE_TIME = 26;

                // A supplementary sign showing a direction alone.
                // \n
                // Use together with the message \c Classification::arrow. The
                // following signs can be built:
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-13.png
                // </td>
                // <td>
                // StVO 1000-13
                // </td>
                // <td>
                // Detour sign, three-quarter circle.
                // <br>
                // Set \c Classification::arrow to \c
                // Arrow::DIRECTION_CIRCLE_90_DEG_LEFT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-23.png
                // </td>
                // <td>
                // StVO 1000-23
                // </td>
                // <td>
                // Detour sign, one-quarter circle.
                // <br>
                // Set \c Classification::arrow to \c
                // Arrow::DIRECTION_CIRCLE_90_DEG_RIGHT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-30.png
                // </td>
                // <td>
                // StVO 1000-30
                // </td>
                // <td>
                // Bidirectional traffic sideways.
                // <br>
                // Use two \c Classification::arrow messages. Set one to \c
                // Arrow::DIRECTION_DIRECT_90_DEG_RIGHT and the other one to \c
                // Arrow::DIRECTION_DIRECT_90_DEG_LEFT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-31.png
                // </td>
                // <td>
                // StVO 1000-31
                // </td>
                // <td>
                // Bidirectional traffic back and forth.
                // <br>
                // Use two \c Classification::arrow messages. Set one to \c
                // Arrow::DIRECTION_DIRECT_0_DEG and the other one to \c
                // Arrow::DIRECTION_DIRECT_180_DEG.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-34.png
                // </td>
                // <td>
                // StVO 1000-34
                // </td>
                // <td>
                // Detour sign, semicircle.
                // <br>
                // Set \c Classification::arrow to \c
                // Arrow::DIRECTION_CIRCLE_0_DEG.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ARROW = 30;

                // The list of traffic actors to which the main sign's
                // regulation is constrained to.
                // \n
                // Use as many members of the \c Actor enumerator as needed to
                // denote the related traffic actors.
                //
                // The following tables summarize possible configurations for
                // this kind of supplementary signs:
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c Actor
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-12.png
                // </td>
                // <td>
                // StVO 1000-12
                // </td>
                // <td>
                // \c #ACTOR_PEDESTRIANS
                // </td>
                // <td>
                // Use sidewalk on left side of roadway.
                // <br>
                // Set \c Classification::arrow to \c
                // Arrow::DIRECTION_DIRECT_90_DEG_LEFT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // <!--
                // \image html 1000-22.png
                // -->
                // </td>
                // <td>
                // StVO 1000-22
                // </td>
                // <td>
                // \c #ACTOR_PEDESTRIANS
                // </td>
                // <td>
                // Use sidewalk on right side of roadway.
                // <br>
                // Set \c Classification::arrow to \c
                // Arrow::DIRECTION_DIRECT_90_DEG_RIGHT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-32.png
                // </td>
                // <td>
                // StVO 1000-32
                // </td>
                // <td>
                // \c #ACTOR_BICYCLES
                // </td>
                // <td>
                // Bidirectional traffic bicycles sideways.
                // <br>
                // Use two \c Classification::arrow messages. Set one to \c
                // Arrow::DIRECTION_DIRECT_90_DEG_RIGHT and the other one to \c
                // Arrow::DIRECTION_DIRECT_90_DEG_LEFT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1000-33.png
                // </td>
                // <td>
                // StVO 1000-33
                // </td>
                // <td>
                // \c #ACTOR_BICYCLES
                // </td>
                // <td>
                // Bidirectional traffic bicyclesback and forth.
                // <br>
                // Use two \c Classification::arrow messages. Set one to \c
                // Arrow::DIRECTION_DIRECT_0_DEG and the other one to \c
                // Arrow::DIRECTION_DIRECT_180_DEG.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-50.png
                // </td>
                // <td>
                // StVO 1010-50
                // </td>
                // <td>
                // \c #ACTOR_MOTORIZED_MULTITRACK_VEHICLES
                // </td>
                // <td>
                // Motorized multi-track vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-51.png
                // </td>
                // <td>
                // StVO 1010-51
                // </td>
                // <td>
                // \c #ACTOR_TRUCKS
                // </td>
                // <td>
                // Trucks.
                // \note
                // - In the German StVO, trucks are defined as motorized
                // vehicles that are heavier than 3.5 t.
                // - This supplementary sign also denotes the trucks' tractor
                // units and trailers.
                // - Cars and buses with a total weight superior to 3.5 t are
                // not denoted by this. sign.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-52.png
                // </td>
                // <td>
                // StVO 1010-52
                // </td>
                // <td>
                // \c #ACTOR_BICYCLES
                // </td>
                // <td>
                // Bicycles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-53.png
                // </td>
                // <td>
                // StVO 1010-53
                // </td>
                // <td>
                // \c #ACTOR_PEDESTRIANS
                // </td>
                // <td>
                // Pedestrians.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-54.png
                // </td>
                // <td>
                // StVO 1010-54
                // </td>
                // <td>
                // \c #ACTOR_HORSE_RIDERS
                // </td>
                // <td>
                // Horse riders.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-55.png
                // </td>
                // <td>
                // StVO 1010-55
                // </td>
                // <td>
                // \c #ACTOR_CATTLE
                // </td>
                // <td>
                // Cattles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-56.png
                // </td>
                // <td>
                // StVO 1010-56
                // </td>
                // <td>
                // \c #ACTOR_TRAMS
                // </td>
                // <td>
                // Trams.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-57.png
                // </td>
                // <td>
                // StVO 1010-57
                // </td>
                // <td>
                // \c #ACTOR_BUSES
                // </td>
                // <td>
                // Buses.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-58.png
                // </td>
                // <td>
                // StVO 1010-58
                // </td>
                // <td>
                // \c #ACTOR_CARS
                // </td>
                // <td>
                // Passenger cars.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-59.png
                // </td>
                // <td>
                // StVO 1010-59
                // </td>
                // <td>
                // \c #ACTOR_CARS_WITH_TRAILERS
                // </td>
                // <td>
                // Passenger cars with trailers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-60.png
                // </td>
                // <td>
                // StVO 1010-60
                // </td>
                // <td>
                // \c #ACTOR_TRUCKS_WITH_TRAILERS
                // </td>
                // <td>
                // Trucks with trailers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-61.png
                // </td>
                // <td>
                // StVO 1010-61
                // </td>
                // <td>
                // \c #ACTOR_TRACTORS
                // </td>
                // <td>
                // Tractors.
                // \note In the German StVO, tractors are defined as motorized
                // vehicles that are not allowed to, or cannot, drive faster
                // than 25 km/h.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-62.png
                // </td>
                // <td>
                // StVO 1010-62
                // </td>
                // <td>
                // \c #ACTOR_MOTORCYCLES
                // </td>
                // <td>
                // Motorbikes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-63.png
                // </td>
                // <td>
                // StVO 1010-63
                // </td>
                // <td>
                // \c #ACTOR_MOPEDS
                // </td>
                // <td>
                // Mopeds.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-64.png
                // </td>
                // <td>
                // StVO 1010-64
                // </td>
                // <td>
                // \c #ACTOR_HORSE_CARRIAGES
                // </td>
                // <td>
                // Horse carriages.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-65.png
                // </td>
                // <td>
                // StVO 1010-65
                // </td>
                // <td>
                // \c #ACTOR_EBIKES
                // </td>
                // <td>
                // E-bikes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-66.png
                // </td>
                // <td>
                // StVO 1010-66
                // </td>
                // <td>
                // \c #ACTOR_ELECTRIC_VEHICLES
                // </td>
                // <td>
                // Electric vehicles.
                // <br>
                // See also: [\c StVO 1050-33](\ref EV_T).
                // \anchor EV_I
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-67.png
                // </td>
                // <td>
                // StVO 1010-67
                // </td>
                // <td>
                // \c #ACTOR_CAMPERS
                // </td>
                // <td>
                // Campers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-32.png
                // </td>
                // <td>
                // StVO 1012-32
                // </td>
                // <td>
                // \c #ACTOR_BICYCLES
                // </td>
                // <td>
                // Cyclists must walk.
                // <br>
                // Set \c TrafficSignValue::text as "absteigen".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1049-11.png
                // </td>
                // <td>
                // StVO 1049-11
                // </td>
                // <td>
                // \c #ACTOR_TRACTORS
                // </td>
                // <td>
                // Overtaking of tractors allowed.
                // <br>
                // Set \c TrafficSignValue::text as
                // &rdquo;d&uuml;rfen &uuml;berholt werden&rdquo;.
                // \note In the German StVO, tractors are defined as motorized
                // vehicles that are not allowed to, or cannot, drive faster
                // than 25 km/h.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1050-30.png
                // </td>
                // <td>
                // StVO 1050-30
                // </td>
                // <td>
                // \c #ACTOR_TAXIS
                // </td>
                // <td>
                // Taxis.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1050-31.png
                // </td>
                // <td>
                // StVO 1050-31
                // </td>
                // <td>
                // \c #ACTOR_TAXIS
                // </td>
                // <td>
                // A number of taxis.
                // <br>
                // Use \c TrafficSignValue::value to indicate the number of
                // taxis. Set \c TrafficSignValue::value_unit to \c
                // TrafficSignValue::UNIT_NO_UNIT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1050-32.png
                // </td>
                // <td>
                // StVO 1050-32
                // </td>
                // <td>
                // \c #ACTOR_ELECTRIC_VEHICLES
                // </td>
                // <td>
                // Electric vehicles during the charging process.
                // <br>
                // Set \c TrafficSignValue::text as &rdquo;w&auml;hrend des
                // Ladevorgangs&rdquo;.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1050-33.png
                // </td>
                // <td>
                // StVO 1050-33
                // </td>
                // <td>
                // \c #ACTOR_ELECTRIC_VEHICLES
                // </td>
                // <td>
                // Electric vehicles.
                // <br>
                // See also: [\c StVO 1010-66](\ref EV_I).
                // \anchor EV_T
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1060-32.png
                // </td>
                // <td>
                // StVO 1060-32
                // </td>
                // <td>
                // Two actors \c #ACTOR_BUSES and \c #ACTOR_CARS_WITH_TRAILERS.
                // </td>
                // <td>
                // Buses and cars with trailers.
                // <br>
                // Set \c TrafficSignValue::text as "auch".
                // </td>
                // </tr>
                // </table>
                //
                // Also, some of the German StVO traffic signs denoting traffic
                // actors for which the main sign's regulation applies
                // exclusively can be constructed.
                //
                // \note
                // In the German StVO, these signs typically include the word
                // "Nur".
                //
                // <table cellspacing="0" ellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c
                // Actor
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1044-10.png
                // </td>
                // <td>
                // StVO 1044-10
                // </td>
                // <td>
                // \c #ACTOR_DISABLED_PERSONS
                // </td>
                // <td>
                // Only disabled persons with an exceptional walking disability
                // and blind persons.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1044-11.png
                // </td>
                // <td>
                // StVO 1044-11
                // </td>
                // <td>
                // \c #ACTOR_DISABLED_PERSONS
                // </td>
                // <td>
                // Only disabled persons with parking permit.
                // <br>
                // Set \c TrafficSignValue::text as "mit Parkausweis
                // Nr. XXXX".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1044-12.png
                // </td>
                // <td>
                // StVO 1044-12
                // </td>
                // <td>
                // \c#ACTOR_DISABLED_PERSONS
                // </td>
                // <td>
                // Only disabled persons with an exceptional walking disability
                // and blind persons, with number of parking places.
                // <br>
                // Use \c TrafficSignValue::value to indicate the number of
                // parking places. Set \c TrafficSignValue::value_unit to \c
                // TrafficSignValue::UNIT_NO_UNIT. Set \c
                // TrafficSignValue::text as &rdquo;Parkst&auml;nde&rdquo;.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1044-30.png
                // </td>
                // <td>
                // StVO 1044-30
                // </td>
                // <td>
                // \c #ACTOR_RESIDENTS
                // </td>
                // <td>
                // Only residents with parking permit.
                // <br>
                // Set \c TrafficSignValue::text as "mit Parkausweis Nr. XXXX".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1048-14.png
                // </td>
                // <td>
                // StVO 1048-14
                // </td>
                // <td>
                // \c #ACTOR_TRUCKS_WITH_SEMITRAILERS
                // </td>
                // <td>
                // Only trucks with semi-trailers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1048-15.png
                // </td>
                // <td>
                // StVO 1048-15
                // </td>
                // <td>
                // Two actors: one set to \c #ACTOR_TRUCKS_WITH_SEMITRAILERS
                // and the other one set to \c #ACTOR_TRUCKS_WITH_TRAILERS.
                // </td>
                // <td>
                // Only trucks with trailers and trucks with semi-trailers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1048-18.png
                // </td>
                // <td>
                // StVO 1048-18
                // </td>
                // <td>
                // \c #ACTOR_RAILROAD_TRAFFIC
                // </td>
                // <td>
                // Only railroad traffic.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1048-20.png
                // </td>
                // <td>
                // StVO 1048-20
                // </td>
                // <td>
                // Two actors: one set to \c #ACTOR_CARS_WITH_TRAILERS
                // and the other one set to \c #ACTOR_TRUCKS.
                // </td>
                // <td>
                // Only trucks with trailers and trucks with semi-trailers.
                // \note
                // - In the German StVO, trucks are defined as motorized
                // vehicles that are heavier than 3.5 t.
                // - This supplementary sign also denotes the trucks'
                // tractor units and trailers.
                // - This supplementary sign excludes passenger cars and
                // buses.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1049-12.png
                // </td>
                // <td>
                // StVO 1049-12
                // </td>
                // <td>
                // \c #ACTOR_MILITARY_VEHICLES
                // </td>
                // <td>
                // Only military vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1049-13.png
                // </td>
                // <td>
                // StVO 1049-13
                // </td>
                // <td>
                // Three actors, set to respectively \c #ACTOR_TRUCKS, \c
                // #ACTOR_BUSES and \c #ACTOR_CARS_WITH_TRAILERS.
                // </td>
                // <td>
                // Only trucks, buses, passenger cars with trailers.
                // <br>
                // \note
                // - In the German StVO, trucks are defined as motorized
                // vehicles that are heavier than 3.5 t.
                // - This supplementary sign also denotes the trucks' tractor
                // units and trailers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1052-30.png
                // </td>
                // <td>
                // StVO 1052-30
                // </td>
                // <td>
                // \c #ACTOR_HAZARDOUS_GOODS_VEHICLES
                // </td>
                // <td>
                // Only hazardous goods vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1052-31.png
                // </td>
                // <td>
                // StVO 1052-31
                // </td>
                // <td>
                // \c #ACTOR_WATER_POLLUTANT_VEHICLES
                // </td>
                // <td>
                // Only water pollutant vehicles.
                // </td>
                // </tr>
                // </table>
                //
                // In addition, some of the German StVO supplementary signs
                // with actors that receive an explicit allowance to use
                // the street or the shoulder can be constructed:
                // <table cellspacing="0" ellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c Actor
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-10.png
                // </td>
                // <td>
                // StVO 1010-10
                // </td>
                // <td>
                // \c #ACTOR_CHILDREN
                // </td>
                // <td>
                // Children playing on the road and shoulder allowed.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-11.png
                // </td>
                // <td>
                // StVO 1010-11
                // </td>
                // <td>
                // \c #ACTOR_WINTER_SPORTSPEOPLE
                // </td>
                // <td>
                // Winter sports allowed.
                // <br>
                // Use \c TrafficSignValue::value to indicate the number
                // of taxis.
                // Set \c TrafficSignValue::value_unit to \c
                // TrafficSignValue::UNIT_NO_UNIT.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-12.png
                // </td>
                // <td>
                // StVO 1010-12
                // </td>
                // <td>
                // \c#ACTOR_TRAILERS
                // </td>
                // <td>
                // Trailers allowed.
                // \note In the German StVO, this sign states that Trailers can
                // park here without the usual two week temporal parking
                // restriction.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1010-13.png
                // </td>
                // <td>
                // StVO 1010-13
                // </td>
                // <td>
                // \c #ACTOR_CARAVANS
                // </td>
                // <td>
                // Caravans allowed.
                // \note In the German StVO, this sign states that Caravans can
                // park here without the usual two week temporal parking
                // restriction.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-10.png
                // </td>
                // <td>
                // StVO 1040-10
                // </td>
                // <td>
                // \c #ACTOR_WINTER_SPORTSPEOPLE
                // </td>
                // <td>
                // Winter sports within time range allowed.
                // <br>
                // In order to indicate an allowance limited by a time period,
                // use one \c TrafficSignValue message to indicate its start and
                // one \c TrafficSignValue message to indicate its end. For
                // each \c TrafficSignValue, \c TrafficSignValue::value
                // indicates the time elapsed since midnight every day, and \c
                // TrafficSignValue::value_unit indicates the unit this time is
                // expressed in, e.g. in min.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-55.png
                // </td>
                // <td>
                // StVO 1007-55
                // </td>
                // <td>
                // \c #ACTOR_WINTER_SPORTSPEOPLE
                // </td>
                // <td>
                // Ski run crosses.
                // <br>
                // Set \c TrafficSignValue::text as "kreuzt".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1007-56.png
                // </td>
                // <td>
                // StVO 1007-56
                // </td>
                // <td>
                // \c #ACTOR_WINTER_SPORTSPEOPLE
                // </td>
                // <td>
                // Ski trail.
                // <br>
                // Set \c TrafficSignValue::text as "kreuzt".
                // </td>
                // </tr>
                // </table>
                //
                // Finally, the signs
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1006-30.png
                // </td>
                // <td>
                // StVO
                // 1006-30
                // </td>
                // <td>
                // \c #ACTOR_CARS_WITH_CARAVANS
                // </td>
                // <td>
                // Slide danger for car/caravan combinations under strong winds.
                // <br>
                // Set \c TrafficSignValue::text as "Schleudergefahr".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1012-33.png
                // </td>
                // <td>
                // StVO
                // 1012-33
                // </td>
                // <td>
                // \c #ACTOR_MOPEDS
                // </td>
                // <td>
                // No mopeds.
                // <br>
                // Set \c TrafficSignValue::text as "keine".
                // </td>
                // </tr>
                // </table>
                // can be incorporated.
                //
                TYPE_CONSTRAINED_TO = 46;

                // The list of traffic actors for which the main sign's
                // regulation does not apply or have a special driving
                // allowance.
                // \n
                // Use as many members of the \c Actor enumerator
                // as needed to denote the excepted traffic actors:
                //
                // \note
                // In the German StVO, these signs include the word "frei".
                //
                // The following table summarizes possible configurations for
                // this kind of supplementary signs:
                //
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <th>
                // Image
                // </th>
                // <th>
                // StVO-No.
                // </th>
                // <th>
                // \c Actor
                // </th>
                // <th>
                // Meaning and Remarks
                // </th>
                // </tr>
                // <tr>
                // <td>
                // \image html 1020-11.png
                // </td>
                // <td>
                // StVO 1020-11
                // </td>
                // <td>
                // \c #ACTOR_DISABLED_PERSONS
                // </td>
                // <td>
                // Except disabled persons with parking permit.
                // <br>
                // Set \c TrafficSignValue::text as "mit Parkausweis Nr. XXXX".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1020-12.png
                // </td>
                // <td>
                // StVO 1020-12
                // </td>
                // <td>
                // Two actors: one set to \c #ACTOR_BICYCLES and the other one
                // set to \c #ACTOR_RESIDENTS.
                // </td>
                // <td>
                // Except cyclists and residents.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1020-14.png
                // </td>
                // <td>
                // StVO 1020-14
                // </td>
                // <td>
                // \c #ACTOR_WINTER_SPORTSPEOPLE
                // </td>
                // <td>
                // Except winter sportspeople.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1020-30.png
                // </td>
                // <td>
                // StVO 1020-30
                // </td>
                // <td>
                // \c #ACTOR_RESIDENTS
                // </td>
                // <td>
                // Except residents.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1020-31.png
                // </td>
                // <td>
                // StVO 1020-31
                // </td>
                // <td>
                // \c #ACTOR_RESIDENTS
                // </td>
                // <td>
                // Except residents or free parking.
                // </td>
                // <br>
                // Set \c TrafficSignValue::text as "oder Parken".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1020-32.png
                // </td>
                // <td>
                // StVO 1020-32
                // </td>
                // <td>
                // \c #ACTOR_RESIDENTS
                // </td>
                // <td>
                // Except residents with parking permit.
                // <br>
                // Set \c TrafficSignValue::text as "mit Parkausweis Nr. XXXX".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1022-10.png
                // </td>
                // <td>
                // StVO 1022-10
                // </td>
                // <td>
                // \c #ACTOR_BICYCLES
                // </td>
                // <td>
                // Except bicycles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1022-11.png
                // </td>
                // <td>
                // StVO 1022-11
                // </td>
                // <td>
                // \c #ACTOR_MOPEDS
                // </td>
                // <td>
                // Except mopeds.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1022-12.png
                // </td>
                // <td>
                // StVO 1022-12
                // </td>
                // <td>
                // \c #ACTOR_MOTORCYCLES
                // </td>
                // <td>
                // Except motorcycles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1022-13.png
                // </td>
                // <td>
                // StVO 1022-13
                // </td>
                // <td>
                // \c #ACTOR_EBIKES
                // </td>
                // <td>
                // Except e-bikes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1022-14.png
                // </td>
                // <td>
                // StVO 1022-14
                // </td>
                // <td>
                // Two actors: one set to \c #ACTOR_BICYCLES and the other one
                // set to \c #ACTOR_MOPEDS.
                // </td>
                // <td>
                // Except bicycles and mopeds.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1022-15.png
                // </td>
                // <td>
                // StVO 1022-15
                // </td>
                // <td>
                // Two actors: one set to \c #ACTOR_EBIKES and the other one
                // set to \c #ACTOR_MOPEDS.
                // </td>
                // <td>
                // Except e-bikes and mopeds.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-10.png
                // </td>
                // <td>
                // StVO 1024-10
                // </td>
                // <td>
                // \c #ACTOR_CARS
                // </td>
                // <td>
                // Except passenger cars.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-11.png
                // </td>
                // <td>
                // StVO 1024-11
                // </td>
                // <td>
                // \c #ACTOR_CARS_WITH_TRAILERS
                // </td>
                // <td>
                // Except passenger cars with trailers.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-12.png
                // </td>
                // <td>
                // StVO 1024-12
                // </td>
                // <td>
                // \c #ACTOR_TRUCKS
                // </td>
                // <td>
                // Except trucks, their tractor unit and their trailers.
                // \note
                // - In the German StVO, trucks are defined as motorized
                // vehicles that are heavier than 3.5 t.
                // - This supplementary sign also denotes the trucks' tractor
                // units and trailers.
                // - Cars and buses with a total weight superior to 3.5 t are
                // not exempted of a rule by this sign.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-13.png
                // </td>
                // <td>
                // StVO 1024-13
                // </td>
                // <td>
                // \c #ACTOR_TRUCKS_WITH_TRAILERS
                // </td>
                // <td>
                // Except trucks with trailers.
                // \note
                // - In the German StVO, trucks are defined as motorized
                // vehicles that are heavier than 3.5 t.
                // - This supplementary sign also denotes the trucks' tractor
                // units and trailers.
                // - Cars and buses with a total weight superior to 3.5 t are
                // not exempted of a rule by this sign.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-14.png
                // </td>
                // <td>
                // StVO 1024-14
                // </td>
                // <td>
                // \c #ACTOR_BUSES
                // </td>
                // <td>
                // Except buses.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-15.png
                // </td>
                // <td>
                // StVO 1024-15
                // </td>
                // <td>
                // \c #ACTOR_RAILROAD_TRAFFIC
                // </td>
                // <td>
                // Except railroad traffic.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-16.png
                // </td>
                // <td>
                // StVO 1024-16
                // </td>
                // <td>
                // \c #ACTOR_TRAMS
                // </td>
                // <td>
                // Except trams.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-17.png
                // </td>
                // <td>
                // StVO 1024-17
                // </td>
                // <td>
                // \c #ACTOR_TRACTORS
                // </td>
                // <td>
                // Except tractors.
                // \note In the German StVO, tractors are defined as motorized
                // vehicles that are not allowed to, or cannot, drive faster
                // than 25 km/h.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-18.png
                // </td>
                // <td>
                // StVO 1024-18
                // </td>
                // <td>
                // \c #ACTOR_HORSE_CARRIAGES
                // </td>
                // <td>
                // Except horse carriages.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-19.png
                // </td>
                // <td>
                // StVO 1024-19
                // </td>
                // <td>
                // \c #ACTOR_CAMPERS
                // </td>
                // <td>
                // Except campers with a maximum allowed mass.
                // <br>
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. t) to indicate the mass.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1024-20.png
                // </td>
                // <td>
                // StVO 1024-20
                // </td>
                // <td>
                // \c #ACTOR_ELECTRIC_VEHICLES
                // </td>
                // <td>
                // Except electric vehicles.
                // <br>
                // See also: [\c StVO 1026-61](\ref EV_EXCEPT_T).
                // \anchor EV_EXCEPT_I
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-31.png
                // </td>
                // <td>
                // StVO 1026-31
                // </td>
                // <td>
                // \c #ACTOR_BUSES
                // </td>
                // <td>
                // Except buses in occasional service.
                // <br>
                // Set \c TrafficSignValue::text as "im Gelegenheitsverkehr".
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-32.png
                // </td>
                // <td>
                // StVO 1026-32
                // </td>
                // <td>
                // \c #ACTOR_PUBLIC_TRANSPORT_VEHICLES
                // </td>
                // <td>
                // Except public transport vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-33.png
                // </td>
                // <td>
                // StVO 1026-33
                // </td>
                // <td>
                // \c #ACTOR_EMERGENCY_VEHICLES
                // </td>
                // <td>
                // Except emergency vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-34.png
                // </td>
                // <td>
                // StVO 1026-34
                // </td>
                // <td>
                // \c #ACTOR_MEDICAL_VEHICLES
                // </td>
                // <td>
                // Except medical vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-35.png
                // </td>
                // <td>
                // StVO 1026-35
                // </td>
                // <td>
                // \c #ACTOR_DELIVERY_VEHICLES
                // </td>
                // <td>
                // Except delivery vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-36.png
                // </td>
                // <td>
                // StVO 1026-36
                // </td>
                // <td>
                // \c #ACTOR_AGRICULTURAL_VEHICLES
                // </td>
                // <td>
                // Except agricultural vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-37.png
                // </td>
                // <td>
                // StVO 1026-37
                // </td>
                // <td>
                // \c #ACTOR_FORESTRY_VEHICLES
                // </td>
                // <td>
                // Except forestry vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-38.png
                // </td>
                // <td>
                // StVO 1026-38
                // </td>
                // <td>
                // Two actors: one set to \c #ACTOR_FORESTRY_VEHICLES and
                // the other one set to \c #ACTOR_AGRICULTURAL_VEHICLES.
                // </td>
                // <td>
                // Except agricultural and forestry vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-39.png
                // </td>
                // <td>
                // StVO 1026-39
                // </td>
                // <td>
                // \c #ACTOR_OPERATIONAL_AND_UTILITY_VEHICLES
                // </td>
                // <td>
                // Except operational and utility vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-60.png
                // </td>
                // <td>
                // StVO 1026-60
                // </td>
                // <td>
                // \c #ACTOR_ELECTRIC_VEHICLES
                // </td>
                // <td>
                // Except electric vehicles during the charging process.
                // <br>
                // Set \c TrafficSignValue::text as
                // &rdquo;w&auml;hrend des Ladevorgangs&rdquo;
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-61.png
                // </td>
                // <td>
                // StVO 1026-61
                // </td>
                // <td>
                // \c #ACTOR_ELECTRIC_VEHICLES
                // </td>
                // <td>
                // Except electric vehicles.
                // <br>
                // See also: [\c StVO 1024-20](\ref EV_EXCEPT_I).
                // \anchor EV_EXCEPT_T
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-62.png
                // </td>
                // <td>
                // StVO 1026-62
                // </td>
                // <td>
                // \c #ACTOR_SLURRY_TRANSPORT
                // </td>
                // <td>
                // Except slurry transport.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1026-63.png
                // </td>
                // <td>
                // StVO 1026-63
                // </td>
                // <td>
                // \c #ACTOR_EBIKES
                // </td>
                // <td>
                // Except e-bikes.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1028-30.png
                // </td>
                // <td>
                // StVO 1028-30
                // </td>
                // <td>
                // \c #ACTOR_CONSTRUCTION_VEHICLES
                // </td>
                // <td>
                // Except construction vehicles.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1028-32.png
                // </td>
                // <td>
                // StVO 1028-32
                // </td>
                // <td>
                // \c #ACTOR_RESIDENTS
                // </td>
                // <td>
                // Exception for residents up to construction site.
                // <br>
                // Set \c TrafficSignValue::text as "bis Baustelle"
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1028-34.png
                // </td>
                // <td>
                // StVO 1028-34
                // </td>
                // <td>
                // \c #ACTOR_FERRY_USERS
                // </td>
                // <td>
                // Except ferry users.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1031-50.png
                // </td>
                // <td>
                // StVO 1031-50
                // </td>
                // <td>
                // Three actors, set to respectively \c
                // #ACTOR_VEHICLES_WITH_RED_BADGES,
                // \c #ACTOR_VEHICLES_WITH_YELLOW_BADGES and \c
                // #ACTOR_VEHICLES_WITH_GREEN_BADGES
                // </td>
                // <td>
                // Vehicles with red, yellow or green badges allowed
                // \note Exemption from traffic ban according to 40(1) of the
                // Federal Immission Control Act.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1031-51.png
                // </td>
                // <td>
                // StVO 1031-51
                // </td>
                // <td>
                // Two actors, set to respectively \c
                // #ACTOR_VEHICLES_WITH_YELLOW_BADGES and \c
                // #ACTOR_VEHICLES_WITH_GREEN_BADGES
                // </td>
                // <td>
                // Vehicles with yellow or green badges allowed
                // \note Exemption from traffic ban according to 40(1) of the
                // Federal Immission Control Act.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1031-52.png
                // </td>
                // <td>
                // StVO 1031-52
                // </td>
                // <td>
                // \c #ACTOR_VEHICLES_WITH_GREEN_BADGES
                // </td>
                // <td>
                // Vehicles with green badges allowed
                // \note Exemption from traffic ban according to 40(1) of the
                // Federal Immission Control Act.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_EXCEPT = 45;

                // Traffic sign is valid for a certain distance.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 1001-30.png "StVO 1001-30"
                // <td>
                // <!--
                // \image html 1001-31.png
                // -->
                // <td>
                // <B>
                // StVO 1001-31
                // </B>
                // <td>
                // \image html 1001-32.png "StVO 1001-32"
                // <td>
                // \image html 1001-33.png "StVO 1001-33"
                // <td>
                // \image html 1001-34.png "StVO 1001-34"
                // <td>
                // \image html 1001-35.png "StVO 1001-35"
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. m) to indicate the
                // distance.
                //
                TYPE_VALID_FOR_DISTANCE = 3;

                // Priority road from bottom to left in the intersection.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1002-10.png
                // </td>
                // <td>
                // StVO 1002-10
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_BOTTOM_LEFT_FOUR_WAY = 27;

                // Priority road from top to left in the intersection.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleY(-1)">
                // \image html 1002-10.png
                // </td>
                // <td>
                // StVO 1002-11
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_TOP_LEFT_FOUR_WAY = 28;

                // Priority road from bottom to left, junction from above.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1002-12.png
                // </td>
                // <td>
                // StVO 1002-12
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_BOTTOM_LEFT_THREE_WAY_STRAIGHT = 32;

                // Priority road from bottom to left, junction from the right.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1) rotate(-90deg)">
                // \image html 1002-12.png
                // </td>
                // <td>
                // StVO 1002-13
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_BOTTOM_LEFT_THREE_WAY_SIDEWAYS = 33;

                // Priority road from top to left, junction from below.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleY(-1)">
                // \image html 1002-12.png
                // </td>
                // <td>
                // StVO 1002-14
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_TOP_LEFT_THREE_WAY_STRAIGHT = 34;

                // Priority road from bottom to right in the intersection.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:rotate(270deg)">
                // \image html 1002-10.png
                // </td>
                // <td>
                // StVO 1002-20
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_BOTTOM_RIGHT_FOUR_WAY = 29;

                // Priority road from top to right in the intersection.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:rotate(180deg)">
                // \image html 1002-10.png
                // </td>
                // <td>
                // StVO 1002-21
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_TOP_RIGHT_FOUR_WAY = 31;

                // Priority road from bottom to right, junction from above.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 1002-12.png
                // </td>
                // <td>
                // StVO 1002-22
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_BOTTOM_RIGHT_THREE_WAY_STRAIGHT = 35;

                // Priority road from bottom to right, junction from the left.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:rotate(-90deg)">
                // \image html 1002-12.png
                // </td>
                // <td>
                // StVO 1002-23
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_BOTTOM_RIGHT_THREE_WAY_SIDEWAY = 36;

                // Priority road from top to right, junction from below.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:rotate(180deg)">
                // \image html 1002-12.png
                // </td>
                // <td>
                // StVO 1002-24
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PRIORITY_ROAD_TOP_RIGHT_THREE_WAY_STRAIGHT = 37;

                // Distance to the start of validity of the traffic sign.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1004-30.png "StVO 1004-30"
                // <td>
                // \image html 1004-31.png "StVO 1004-31"
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. m) to indicate the
                // distance.
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_SPACE instead.
                //
                TYPE_VALID_IN_DISTANCE = 4;

                // Stop in e.g. .. m.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1004-32.png
                // </td>
                // <td>
                // StVO 1004-32
                // </td>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. m) to indicate the
                // distance.
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_SPACE instead.
                //
                TYPE_STOP_IN = 25;

                // Direction, left-pointing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1000-10.png
                // </td>
                // <td>
                // StVO 1000-10
                // </td>
                // </tr>
                // </table>
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
                //
                TYPE_LEFT_ARROW = 11;

                // Direction of potential danger, left-pointing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1000-11.png
                // </td>
                // <td>
                // StVO 1000-11
                // </td>
                // </tr>
                // </table>
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
                //
                TYPE_LEFT_BEND_ARROW = 13;

                // Direction, right-pointing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 1000-10.png
                // </td>
                // <td>
                // StVO 1000-20
                // </td>
                // </tr>
                // </table>
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
                //
                TYPE_RIGHT_ARROW = 12;

                // Direction of potential danger, right-pointing.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td style="transform:scaleX(-1)">
                // \image html 1000-11.png
                // </td>
                // <td>
                // StVO 1000-21
                // </td>
                // </tr>
                // </table>
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_ARROW instead.
                //
                TYPE_RIGHT_BEND_ARROW = 14;

                // Accident hazard.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 1006-31.png
                // </td>
                // <td>
                // StVO 1006-31
                // </td>
                // </tr>
                // </table>
                //
                // See also: [\c TYPE_TEXT](\ref ACCIDENT_TEXT).
                //
                TYPE_ACCIDENT = 40;

                // Restriction of the validity of the traffic sign to snowy /
                // icy conditions.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // <!--
                // \image html 1007-30.png
                // -->
                // </td>
                // <td>
                // StVO 1007-30
                // </td>
                // </tr>
                // </table>
                //
                // \note The identifier "StVO 1007-30" was used to denote a
                // restriction of the validity of the traffic sign to snowy /
                // icy conditions until the edition of 2013 of the official
                // Catalog of Street Signs of the Federal Road Research
                // Institute of Germany - BASt. Since the edition corresponding
                // to 2017, "StVO 1007-30" is used to denote the hazard of oil
                // trails. See [\c TYPE_OIL](\ref OIL_TEXT).
                //
                TYPE_SNOW = 9;

                // Restriction of the validity of the traffic sign to foggy
                // conditions.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1007-61.png
                // </td>
                // <td>
                // StVO 1007-61
                // </td>
                // </tr>
                // </table>
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_TEXT instead.
                //
                TYPE_FOG = 8;

                // Information on rolling highway.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1010-14.png
                // </td>
                // <td>
                // StVO 1010-14
                // </td>
                // </tr>
                // </table>
                //
                TYPE_ROLLING_HIGHWAY_INFORMATION = 48;

                // Information about services.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1010-15.png
                // </td>
                // <td>
                // StVO 1010-15
                // </td>
                // </tr>
                // </table>
                //
                TYPE_SERVICES = 47;

                // Time range for validity of traffic sign.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 1040-30.png "StVO 1040-30"
                // <td>
                // \image html 1042-33.png "StVO 1042-33"
                // </tr>
                // </table>
                //
                // - Use one \c TrafficSignValue message to indicate the start
                // of the time range and one \c TrafficSignValue message to
                // indicate the end of the time range. For each \c
                // TrafficSignValue, \c TrafficSignValue::value indicates
                // the time elapsed since midnight each day, and \c
                // TrafficSignValue::value_unit indicates the unit this time is
                // expressed in, e.g. in min.
                // - If including start and end days of the week, include two
                // additional \c TrafficSignValue messages. For these messages,
                // use \c TrafficSignValue::value_unit as \c
                // TrafficSignValue::UNIT_NO_UNIT and \c
                // TrafficSignValue::value as an \c integer from 1 to 7,
                // where 1 denotes Monday and 7 denotes Sunday.
                //
                // \note For OSI 4.0 compatibility use \c #TYPE_TIME instead.
                //
                TYPE_TIME_RANGE = 5;

                // Parking disc restrictions.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1040-32.png
                // </td>
                // <td>
                // StVO 1040-32
                // </td>
                // <td>
                // Parking disc restriction
                // </td>
                // <td>
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. min) to indicate the
                // allowed duration of parking.
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1040-33.png
                // </td>
                // <td>
                // StVO 1040-33
                // </td>
                // <td>
                // Parking disc restriction for marked parking areas
                // </td>
                // <td>
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. min) to indicate the
                // allowed duration of parking. Set \c TrafficSignValue::text
                // to &rdquo;in gekennzeichneten Fl&auml;chen&rdquo;.
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PARKING_DISC_TIME_RESTRICTION = 43;

                // Restriction of the validity of the traffic sign depending on
                // the vehicle's weight.
                // <table border="0">
                // <tr>
                // <td>
                // \image html 1053-33.png "StVO 1053-33"
                // <td>
                // \image html 1053-37.png "StVO 1053-37"
                // <td>
                // \image html 1060-33.png "StVO 1060-33"
                // </tr>
                // </table>
                //
                // Use \c TrafficSignValue::value and \c
                // TrafficSignValue::value_unit (e.g. in t) to indicate the
                // weight.
                //
                TYPE_WEIGHT = 6;

                // If "wet surface".
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1053-35.png
                // </td>
                // <td>
                // StVO 1053-35
                // </td>
                // </tr>
                // </table>
                //
                TYPE_WET = 44;

                // Parking constraints.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1053-38.png
                // </td>
                // <td>
                // StVO 1053-38
                // </td>
                // <td>
                // pull in crosswise
                // </td>
                // </tr>
                // <tr>
                // <td>
                // \image html 1053-39.png
                // </td>
                // <td>
                // StVO 1053-39
                // </td>
                // <td>
                // pull in diagonally
                // </td>
                // </tr>
                // </table>
                //
                TYPE_PARKING_CONSTRAINT = 42;

                // No parking, also on verges/shoulder.
                // <table cellspacing="0" cellpadding="0">
                // <tr>
                // <td>
                // \image html 1060-31.png
                // </td>
                // <td>
                // StVO 1060-31
                // </td>
                // </tr>
                // </table>
                //
                TYPE_NO_WAITING_SIDE_STRIPES = 38;

                // Restriction of the validity of the traffic sign to wet /
                // rainy conditions.
                //
                // (No German StVO-Nr., Austrian StVO 1960 supplementary sign
                // g).
                //
                TYPE_RAIN = 7;

                // Combined restriction of the validity of the traffic sign to
                // rainy or snowy conditions denoted by a single supplementary
                // sign (instead of two signs of \c #TYPE_RAIN and \c #TYPE_SNOW
                // respectively).
                //
                // (StVO -, Austria)
                //
                TYPE_SNOW_RAIN = 10;

                // Valid at night.
                //
                TYPE_NIGHT = 19;

                // Stop 4 way.
                //
                TYPE_STOP_4_WAY = 21;

                // Trucks.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_TRUCK = 15;

                // Tractors may be passed.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_TRACTORS_MAY_BE_PASSED = 16;

                // Vehicles transporting hazardous goods.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_HAZARDOUS = 17;

                // Trailers.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_TRAILER = 18;

                // Zone.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_ZONE = 20;

                // Motorcycles.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_MOTORCYCLE = 22;

                // Motorcycles allowed.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_MOTORCYCLE_ALLOWED = 23;

                // Cars.
                //
                // \note For OSI 4.0 compatibility use the message \c Actor
                // instead.
                //
                TYPE_CAR = 24;

                // last_counter = 48
                // Please add next element with counter equal to last_counter+1.
                // After that, manually increment last_counter
            }

            // Type of the supplementary sign.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            optional Type type = 2;

            // Additional value(s) associated with the traffic sign, e.g.
            // length, mass or starting time in time range.
            //
            // \note Field need not be set if traffic sign type does not require
            // it.
            //
            // \note OSI uses singular instead of plural for repeated field
            // names.
            //
            repeated TrafficSignValue value = 3;

            // The IDs of the lanes that the sign is assigned to.
            // May be multiple if the sign is valid for multiple lanes.
            //
            // \note OSI uses singular instead of plural for repeated field
            // names.
            //
            // \rules
            // refers_to: Lane
            // \endrules
            //
            repeated Identifier assigned_lane_id = 4;

            // This enumerator indicates a traffic actor (e.g.
            // bikes, cars, trucks and so on), that the supplementary sign
            // makes reference to.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            repeated Actor actor = 5;

            // A direction arrow shown on the supplementary sign.
            //
            // \attention Deprecated: A revision is planned for version 4.0.0 to
            // replace the type enum with a more semantically defined enumeration,
            // with the exact sign specification being relegated to the newly
            // introduced 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            repeated Arrow arrow = 6;

            // Boolean flag to indicate that the supplementary traffic sign is taken out of service.
            // This can be achieved by visibly crossing the sign or covering it completely.
            //
            optional bool is_out_of_service = 7;

            // Country specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // Country is specified using the ISO 3166-1, alpha-2 code
            // https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2, or the
            // special OpenDRIVE country for generic signs.<br>
            //
            optional string country = 8;

            // Revision specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // The year the traffic rules came into force. <br>
            // e.g. "2017"
            //
            optional string country_revision = 9;

            // Code specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // Code identifier according to country and country revision,
            // corresponds to the type field of OpenDRIVE. <br>
            // code is only unique in combination with #country and #country_revision.  <br>
            // e.g. http://www.vzkat.de/2017/VzKat.htm
            //
            optional string code = 10;

            // Sub-code specification of the traffic sign catalog specification
            // that identifies the actual traffic sign. This is part of the
            // 4-tupel traffic sign catalog specification as used in
            // <a href="https://releases.asam.net/OpenDRIVE/1.6.0/ASAM_OpenDRIVE_BS_V1-6-0.html#_signals">OpenDRIVE</a>.
            //
            // Sub-code identifier according to country, country revision and code,
            // corresponds to the subtype field of OpenDRIVE. <br>
            // sub_code is only unique in combination with #country, #country_revision,
            // and #code.  <br>
            // e.g. http://www.vzkat.de/2017/VzKat.htm
            //
            optional string sub_code = 11;

            // Assignment of this object to logical lanes.
            //
            // \note OSI uses singular instead of plural for repeated field
            // names.
            //
            repeated LogicalLaneAssignment logical_lane_assignment = 12;

            // Definition of the traffic actors the supplementary sign makes
            // reference to. E.g. bikes, trucks, cars, etc.
            //
            enum Actor
            {
                // An unknown actor
                //
                ACTOR_UNKNOWN = 0;

                // Other actor (specified but known)
                //
                ACTOR_OTHER = 1;

                // The actor is not specified
                //
                ACTOR_NO_ACTOR = 2;

                // Agricultural vehicles
                //
                ACTOR_AGRICULTURAL_VEHICLES = 3;

                // Bicycles
                //
                ACTOR_BICYCLES = 4;

                // Buses
                //
                ACTOR_BUSES = 5;

                // Campers
                //
                ACTOR_CAMPERS = 6;

                // Caravans
                //
                ACTOR_CARAVANS = 7;

                // Cars
                //
                ACTOR_CARS = 8;

                // Cars with caravans
                //
                ACTOR_CARS_WITH_CARAVANS = 9;

                // Cars with trailers
                //
                ACTOR_CARS_WITH_TRAILERS = 10;

                // Cattles
                //
                ACTOR_CATTLE = 11;

                // Children
                //
                ACTOR_CHILDREN = 12;

                // Construction vehicles
                //
                ACTOR_CONSTRUCTION_VEHICLES = 13;

                // Delivery vehicles
                //
                ACTOR_DELIVERY_VEHICLES = 14;

                // Disabled persons
                //
                ACTOR_DISABLED_PERSONS = 15;

                // E-bikes
                //
                ACTOR_EBIKES = 16;

                // Electric vehicles
                //
                ACTOR_ELECTRIC_VEHICLES = 17;

                // Emergency vehicles
                //
                ACTOR_EMERGENCY_VEHICLES = 18;

                // Ferry users
                //
                ACTOR_FERRY_USERS = 19;

                // Forestry vehicles
                //
                ACTOR_FORESTRY_VEHICLES = 20;

                // Hazardous goods vehicles
                //
                ACTOR_HAZARDOUS_GOODS_VEHICLES = 21;

                // Horse carriages
                //
                ACTOR_HORSE_CARRIAGES = 22;

                // Horse riders
                //
                ACTOR_HORSE_RIDERS = 23;

                // Inline skaters
                //
                ACTOR_INLINE_SKATERS = 24;

                // Medical vehicles
                //
                ACTOR_MEDICAL_VEHICLES = 25;

                // Military vehicles
                //
                ACTOR_MILITARY_VEHICLES = 26;

                // Mopeds
                //
                ACTOR_MOPEDS = 27;

                // Motorcycles
                //
                ACTOR_MOTORCYCLES = 28;

                // Motorized multi-track vehicles
                //
                ACTOR_MOTORIZED_MULTITRACK_VEHICLES = 29;

                // Operational and utility vehicles
                //
                ACTOR_OPERATIONAL_AND_UTILITY_VEHICLES = 30;

                // Pedestrians
                //
                ACTOR_PEDESTRIANS = 31;

                // Public transport vehicles
                //
                ACTOR_PUBLIC_TRANSPORT_VEHICLES = 32;

                // Railroad traffic
                //
                ACTOR_RAILROAD_TRAFFIC = 33;

                // Residents
                //
                // \note In the German StVO, typically denoted with the text
                // "Anlieger" or "Bewohner"
                //
                ACTOR_RESIDENTS = 34;

                // Slurry transport
                //
                ACTOR_SLURRY_TRANSPORT = 35;

                // Taxis
                //
                ACTOR_TAXIS = 36;

                // Tractors
                //
                // \note In the German StVO, tractors are defined as
                // motorized vehicles that are not allowed to, or cannot,
                // drive faster than 25 km/h
                //
                ACTOR_TRACTORS = 37;

                // Trailers
                //
                ACTOR_TRAILERS = 38;

                // Trams
                //
                ACTOR_TRAMS = 39;

                // Trucks
                //
                // \note
                // In the German StVO, trucks are defined as
                // motorized vehicles that are heavier than 3.5 t
                //
                ACTOR_TRUCKS = 40;

                // Trucks with semi-trailers
                //
                ACTOR_TRUCKS_WITH_SEMITRAILERS = 41;

                // Trucks with trailers
                //
                ACTOR_TRUCKS_WITH_TRAILERS = 42;

                // Vehicles with green badges
                //
                ACTOR_VEHICLES_WITH_GREEN_BADGES = 43;

                // Vehicles with red badges
                //
                ACTOR_VEHICLES_WITH_RED_BADGES = 44;

                // Vehicles with yellow badges
                //
                ACTOR_VEHICLES_WITH_YELLOW_BADGES = 45;

                // Water pollutant vehicles
                //
                ACTOR_WATER_POLLUTANT_VEHICLES = 46;

                // Winter sportspeople
                //
                ACTOR_WINTER_SPORTSPEOPLE = 47;
            }

            //
            // \brief An arrow denoting a direction shown on the traffic sign.
            //
            message Arrow
            {
                // The IDs of the lanes the arrow applies to
                //
                // \rules
                // refers_to: Lane
                // \endrules
                //
                repeated Identifier lane_id = 1;

                // The direction to which the arrow points to
                //
                repeated Direction direction = 2;

                // The direction to which the arrow points to
                //
                enum Direction
                {
                    // Direction of sign is unknown (must not be used in ground
                    // truth).
                    //
                    DIRECTION_UNKNOWN = 0;

                    // Other (specified but known) direction.
                    //
                    DIRECTION_OTHER = 1;

                    // No arrow direction is specified.
                    //
                    DIRECTION_NO_DIRECTION = 2;

                    // An arrow pointing straight ahead in the direction of
                    // driving.
                    //
                    DIRECTION_DIRECT_0_DEG = 3;

                    // A straight arrow pointing 45 degrees to the right in the
                    // direction of driving.
                    //
                    DIRECTION_DIRECT_45_DEG_RIGHT = 4;

                    // A straight arrow pointing 45 degrees to the left in the
                    // direction of driving.
                    //
                    DIRECTION_DIRECT_45_DEG_LEFT = 5;

                    // A straight arrow pointing 90 degrees to the right in the
                    // direction of driving.
                    //
                    DIRECTION_DIRECT_90_DEG_RIGHT = 6;

                    // A straight arrow pointing 90 degrees to the left in the
                    // direction of driving.
                    //
                    DIRECTION_DIRECT_90_DEG_LEFT = 7;

                    // A straight arrow pointing 135 degrees to the right in the
                    // direction of driving.
                    //
                    DIRECTION_DIRECT_135_DEG_RIGHT = 8;

                    // A straight arrow pointing 135 degrees to the left in the
                    // direction of driving.
                    //
                    DIRECTION_DIRECT_135_DEG_LEFT = 9;

                    // A straight arrow pointing opposite to the direction of
                    // driving.
                    //
                    DIRECTION_DIRECT_180_DEG = 10;

                    // A curved arrow pointing 45 degrees to the right in the
                    // direction of driving.
                    //
                    DIRECTION_TURN_45_DEG_RIGHT = 11;

                    // A curved arrow pointing 45 degrees to the left in the
                    // direction of driving.
                    //
                    DIRECTION_TURN_45_DEG_LEFT = 12;

                    // A curved arrow pointing 90 degrees to the right in the
                    // direction of driving.
                    //
                    DIRECTION_TURN_90_DEG_RIGHT = 13;

                    // A curved arrow pointing 90 degrees to the left in the
                    // direction of driving.
                    //
                    DIRECTION_TURN_90_DEG_LEFT = 14;

                    // A curved arrow pointing 135 degrees to the right in the
                    // direction of driving.
                    //
                    DIRECTION_TURN_135_DEG_RIGHT = 15;

                    // A curved arrow pointing 135 degrees to the left in the
                    // direction of driving.
                    //
                    DIRECTION_TURN_135_DEG_LEFT = 16;

                    // A u-turn arrow towards the right.
                    //
                    DIRECTION_TURN_180_DEG_RIGHT = 17;

                    // A u-turn arrow towards the left.
                    //
                    DIRECTION_TURN_180_DEG_LEFT = 18;

                    // An arrow that includes a fraction of a circle and points
                    // forward in the direction of driving. Used typically for
                    // roundabouts.
                    //
                    DIRECTION_CIRCLE_0_DEG = 19;

                    // An arrow that includes a fraction of a circle and points
                    // in 45 degrees to the right in the direction of driving.
                    // Used typically for roundabouts.
                    //
                    DIRECTION_CIRCLE_45_DEG_RIGHT = 20;

                    // An arrow that includes a fraction of a circle and points
                    // in 45 degrees to the left in the direction of driving.
                    // Used typically for roundabouts.
                    //
                    DIRECTION_CIRCLE_45_DEG_LEFT = 21;

                    // An arrow that includes a fraction of a circle and points
                    // in 90 degrees to the right in the direction of driving.
                    // Used typically for roundabouts.
                    //
                    DIRECTION_CIRCLE_90_DEG_RIGHT = 22;

                    // An arrow that includes a fraction of a circle and points
                    // in 90 degrees to the left in the direction of driving.
                    // Used typically for roundabouts.
                    //
                    DIRECTION_CIRCLE_90_DEG_LEFT = 23;

                    // An arrow that includes a fraction of a circle and points
                    // in 135 degrees to the right in the direction of driving.
                    // Used typically for roundabouts.
                    //
                    DIRECTION_CIRCLE_135_DEG_RIGHT = 24;

                    // An arrow that includes a fraction of a circle and points
                    // in 135 degrees to the left in the direction of driving.
                    // Used typically for roundabouts.
                    //
                    DIRECTION_CIRCLE_135_DEG_LEFT = 25;

                    // An arrow that includes a fraction of a circle and points
                    // in the opposite to the direction of driving. Can be used
                    // in detours in roundabouts.
                    //
                    DIRECTION_CIRCLE_180_DEG = 26;

                    // An arrow that includes a fraction of a square and points
                    // forward in direction of driving. Can be used for detours
                    // where you have to use a separate left lane to drive
                    // ahead.
                    //
                    DIRECTION_KEEP_LEFT_TO_TURN_0_DEG = 27;

                    // An arrow that includes a fraction of a square and points
                    // forward in direction of driving. Can be used for detours
                    // where you have to use a separate right lane to drive
                    // ahead.
                    //
                    DIRECTION_KEEP_RIGHT_TO_TURN_0_DEG = 28;

                    // An arrow that includes a fraction of a square and points
                    // in 90 degrees to the right in direction of driving. Can
                    // be used for detours where you have to use a separate left
                    // lane to turn right.
                    //
                    DIRECTION_KEEP_LEFT_TO_TURN_90_DEG_RIGHT = 29;

                    // An arrow that includes a fraction of a square and points
                    // in 90 degrees to the right in direction of driving. Can
                    // be used for detours where you have to use a separate
                    // right lane to turn left.
                    //
                    DIRECTION_KEEP_RIGHT_TO_TURN_90_DEG_LEFT = 30;

                    // An arrow that includes a fraction of a square and points
                    // in 90 degrees to the right in direction of driving. Can
                    // be used for detours where you have to use a separate left
                    // lane and you have to drive back to turn right.
                    //
                    DIRECTION_KEEP_LEFT_DRIVE_BACK_TO_TURN_90_DEG_RIGHT = 31;

                    // An arrow that includes a fraction of a square and points
                    // in 90 degrees to the right in direction of driving. Can
                    // be used for detours where you have to use a separate
                    // right lane and you have to drive back to turn left.
                    //
                    DIRECTION_KEEP_RIGHT_DRIVE_BACK_TO_TURN_90_DEG_LEFT = 32;
                }
            }
        }
    }

    // Definition of the variability of a traffic sign.
    //
    enum Variability
    {
        // Variability type of sign is unknown (must not be used in ground
        // truth).
        //
        VARIABILITY_UNKNOWN = 0;

        // Other (unspecified but known) variability.
        //
        VARIABILITY_OTHER = 1;

        // Sign that can change neither semantically nor positionally, e.g. a
        // fixed, immutable, non-temporary traffic sign.
        //
        VARIABILITY_FIXED = 2;

        // Sign that can change semantically and/or positionally, i.e. it is
        // left unspecified in which way the sign may change.
        //
        // \note This value represents a legacy definition. If possible, please
        // use the more specific values below to indicate the exact nature of
        // variability.
        //
        VARIABILITY_VARIABLE = 3;

        // Sign that can change positionally but not semantically, e.g. a
        // temporary, immutable traffic sign at construction site.
        //
        VARIABILITY_MOVABLE = 4;

        // Sign that can change semantically but not positionally, e.g. a
        // digital traffic sign on traffic sign gantry, or an analog prism
        // sign.
        //
        VARIABILITY_MUTABLE = 5;

        // Sign that can change both semantically and positionally, e.g. a
        // temporary, digital traffic sign at a construction site, or a digital
        // traffic sign attached to a road works vehicle.
        //
        VARIABILITY_MOVABLE_AND_MUTABLE = 6;
    }
}
