Vulnerabilities > CVE-2010-0576 - Denial of Service vulnerability in Cisco IOS Multiprotocol Label Switching (MPLS) Malformed Packet

047910
CVSS 7.8 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
NONE
Availability impact
COMPLETE
network
low complexity
cisco
nessus

Summary

Unspecified vulnerability in Cisco IOS 12.0 through 12.4, IOS XE 2.1.x through 2.3.x before 2.3.2, and IOS XR 3.2.x through 3.4.3, when Multiprotocol Label Switching (MPLS) and Label Distribution Protocol (LDP) are enabled, allows remote attackers to cause a denial of service (device reload or process restart) via a crafted LDP packet, aka Bug IDs CSCsz45567 and CSCsj25893. Per: http://www.cisco.com/en/US/products/products_security_advisory09186a0080b20ee2.shtml 'Affected Products Cisco IOS Software, Cisco IOS XE Software, and Cisco IOS XR Software devices are vulnerable if they are configured to listen for either targeted LDP hello messages or link LDP hello messages. All versions of Cisco IOS Software and Cisco IOS XE Software that support MPLS are affected. Cisco IOS XR Software is affected in releases prior to 3.5.2.'

Vulnerable Configurations

Part Description Count
OS
Cisco
186

Nessus

  • NASL familyCISCO
    NASL idCISCO-SA-20100324-LDPHTTP.NASL
    descriptionA device running Cisco IOS Software, Cisco IOS XE Software, or Cisco IOS XR Software is vulnerable to a remote denial of service (DoS) condition if it is configured for Multiprotocol Label Switching (MPLS) and has support for Label Distribution Protocol (LDP). A crafted LDP UDP packet can cause an affected device running Cisco IOS Software or Cisco IOS XE Software to reload. On devices running affected versions of Cisco IOS XR Software, such packets can cause the device to restart the mpls_ldp process. A system is vulnerable if configured with either LDP or Tag Distribution Protocol (TDP). Cisco has released free software updates that address this vulnerability. Workarounds that mitigate this vulnerability are available.
    last seen2019-10-28
    modified2010-09-01
    plugin id49052
    published2010-09-01
    reporterThis script is Copyright (C) 2010-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/49052
    titleCisco IOS Software Multiprotocol Label Switching Packet Vulnerability (cisco-sa-20100324-ldp)
    code
    #TRUSTED 72a8602e2da6fd236a6b795ff46ccf66950f39f52f18cc83d69cdb5e4c724ec96b9b1fdb5369ad58c787b708a23eed1b660697f8e1ba86045322a412c0086e9fa0ab1030e4bb65a19b18e04c4bcac05bbdfa46eabfc96b76720ff2809c4d840f311ac47049f4579fb0cb01b58d9dc170dc75b5e46cb2e15489ca25e7a3b259a39825b9d83e963156268f82f98957414f295e7c23ebfb8fb21afbc6da2bef950442ebb490d68ed56730d7ccbfa61df3f04715aada5451cb8974c9b350f13e81c67db80ae45bd261d2820061fc896dba59ec01beba2057aa9f538c3be570c1cbaa382bfce6125fddb9c3ddfcb7434b85cc5b63b4aecf756bf09e95fd7f38720094f9badd14574b8e1ef87864ae82a9ec474e17a68e399cf8312b1b463ca611c38eed88cd95c1d56e69e1413afcc1acdc1782252835cd6866b41d16e046c7d58cb1dfc28e46a7666acf2fb259176884a44c462f8250991bbd10196672eb34b880311d9327f0effd02f2d1e03c4913636546cc57315bc06a5941184de9e3a88a81a198266465b62a032c812950251c5ef4d296655cafd9622eb436e38ace82f870b48d0a2648859831d903198c5972313b270ae00871aec65181581a167a25646e9747bd49527610cdc22568e16dd32659efb8144c81eb12df881816bf73fc629611bec780f40e367a8958f2d29a6526cedd5d03e8779db93027469fff9d3e572124
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Cisco Security Advisory cisco-sa-20100324-ldp.
    # The text itself is copyright (C) Cisco
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(49052);
      script_version("1.21");
      script_set_attribute(attribute:"plugin_modification_date", value:"2018/11/15");
    
      script_cve_id("CVE-2010-0576");
      script_xref(name:"CISCO-BUG-ID", value:"CSCsz45567");
      script_xref(name:"CISCO-SA", value:"cisco-sa-20100324-ldp");
    
      script_name(english:"Cisco IOS Software Multiprotocol Label Switching Packet Vulnerability (cisco-sa-20100324-ldp)");
      script_summary(english:"Checks the IOS version.");
    
      script_set_attribute(
        attribute:"synopsis",
        value:"The remote device is missing a vendor-supplied security patch."
      );
      script_set_attribute(
        attribute:"description",
        value:
    "A device running Cisco IOS Software, Cisco IOS XE Software, or Cisco
    IOS XR Software is vulnerable to a remote denial of service (DoS)
    condition if it is configured for Multiprotocol Label Switching (MPLS)
    and has support for Label Distribution Protocol (LDP). A crafted LDP
    UDP packet can cause an affected device running Cisco IOS Software or
    Cisco IOS XE Software to reload. On devices running affected versions
    of Cisco IOS XR Software, such packets can cause the device to restart
    the mpls_ldp process. A system is vulnerable if configured with either
    LDP or Tag Distribution Protocol (TDP). Cisco has released free
    software updates that address this vulnerability. Workarounds that
    mitigate this vulnerability are available."
      );
      # https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20100324-ldp
      script_set_attribute(
        attribute:"see_also",
        value:"http://www.nessus.org/u?1d8fad9b"
      );
      script_set_attribute(
        attribute:"solution",
        value:
    "Apply the relevant patch referenced in Cisco Security Advisory
    cisco-sa-20100324-ldp."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C");
    
      script_set_attribute(attribute:"plugin_type", value:"combined");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:cisco:ios");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2010/03/24");
      script_set_attribute(attribute:"patch_publication_date", value:"2012/09/21");
      script_set_attribute(attribute:"plugin_publication_date", value:"2010/09/01");
    
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2010-2018 Tenable Network Security, Inc.");
      script_family(english:"CISCO");
    
      script_dependencies("cisco_ios_version.nasl");
      script_require_keys("Host/Cisco/IOS/Version");
    
      exit(0);
    }
    
    
    
    include("audit.inc");
    include("cisco_func.inc");
    include("cisco_kb_cmd_func.inc");
    
    flag = 0;
    override = 0;
    
    version = get_kb_item_or_exit("Host/Cisco/IOS/Version");
    if ( version == '12.0(10)ST' ) flag++;
    if ( version == '12.0(10)ST1' ) flag++;
    if ( version == '12.0(10)ST2' ) flag++;
    if ( version == '12.0(10)SX' ) flag++;
    if ( version == '12.0(11)ST' ) flag++;
    if ( version == '12.0(11)ST1' ) flag++;
    if ( version == '12.0(11)ST2' ) flag++;
    if ( version == '12.0(11)ST3' ) flag++;
    if ( version == '12.0(11)ST4' ) flag++;
    if ( version == '12.0(14)ST' ) flag++;
    if ( version == '12.0(14)ST1' ) flag++;
    if ( version == '12.0(14)ST2' ) flag++;
    if ( version == '12.0(14)ST3' ) flag++;
    if ( version == '12.0(15)SL' ) flag++;
    if ( version == '12.0(16)ST' ) flag++;
    if ( version == '12.0(16)ST1' ) flag++;
    if ( version == '12.0(17)SL' ) flag++;
    if ( version == '12.0(17)SL1' ) flag++;
    if ( version == '12.0(17)SL2' ) flag++;
    if ( version == '12.0(17)SL3' ) flag++;
    if ( version == '12.0(17)SL4' ) flag++;
    if ( version == '12.0(17)SL5' ) flag++;
    if ( version == '12.0(17)SL6' ) flag++;
    if ( version == '12.0(17)SL7' ) flag++;
    if ( version == '12.0(17)SL8' ) flag++;
    if ( version == '12.0(17)SL9' ) flag++;
    if ( version == '12.0(17)ST' ) flag++;
    if ( version == '12.0(17)ST1' ) flag++;
    if ( version == '12.0(17)ST10' ) flag++;
    if ( version == '12.0(17)ST2' ) flag++;
    if ( version == '12.0(17)ST3' ) flag++;
    if ( version == '12.0(17)ST4' ) flag++;
    if ( version == '12.0(17)ST5' ) flag++;
    if ( version == '12.0(17)ST6' ) flag++;
    if ( version == '12.0(17)ST7' ) flag++;
    if ( version == '12.0(17)ST8' ) flag++;
    if ( version == '12.0(17)ST9' ) flag++;
    if ( version == '12.0(18)ST' ) flag++;
    if ( version == '12.0(18)ST1' ) flag++;
    if ( version == '12.0(19)SL' ) flag++;
    if ( version == '12.0(19)SL1' ) flag++;
    if ( version == '12.0(19)SL2' ) flag++;
    if ( version == '12.0(19)SL3' ) flag++;
    if ( version == '12.0(19)SL4' ) flag++;
    if ( version == '12.0(19)ST' ) flag++;
    if ( version == '12.0(19)ST1' ) flag++;
    if ( version == '12.0(19)ST2' ) flag++;
    if ( version == '12.0(19)ST3' ) flag++;
    if ( version == '12.0(19)ST4' ) flag++;
    if ( version == '12.0(19)ST5' ) flag++;
    if ( version == '12.0(19)ST6' ) flag++;
    if ( version == '12.0(20)ST' ) flag++;
    if ( version == '12.0(20)ST1' ) flag++;
    if ( version == '12.0(20)ST2' ) flag++;
    if ( version == '12.0(20)ST3' ) flag++;
    if ( version == '12.0(20)ST4' ) flag++;
    if ( version == '12.0(20)ST5' ) flag++;
    if ( version == '12.0(20)ST6' ) flag++;
    if ( version == '12.0(21)ST' ) flag++;
    if ( version == '12.0(21)ST1' ) flag++;
    if ( version == '12.0(21)ST2' ) flag++;
    if ( version == '12.0(21)ST2a' ) flag++;
    if ( version == '12.0(21)ST2b' ) flag++;
    if ( version == '12.0(21)ST3' ) flag++;
    if ( version == '12.0(21)ST3a' ) flag++;
    if ( version == '12.0(21)ST4' ) flag++;
    if ( version == '12.0(21)ST5' ) flag++;
    if ( version == '12.0(21)ST6' ) flag++;
    if ( version == '12.0(21)ST6a' ) flag++;
    if ( version == '12.0(21)ST7' ) flag++;
    if ( version == '12.0(21)SX' ) flag++;
    if ( version == '12.0(21)SX1' ) flag++;
    if ( version == '12.0(21)SZ' ) flag++;
    if ( version == '12.0(22)S' ) flag++;
    if ( version == '12.0(22)S1' ) flag++;
    if ( version == '12.0(22)S2' ) flag++;
    if ( version == '12.0(22)S2a' ) flag++;
    if ( version == '12.0(22)S2b' ) flag++;
    if ( version == '12.0(22)S2c' ) flag++;
    if ( version == '12.0(22)S2d' ) flag++;
    if ( version == '12.0(22)S2e' ) flag++;
    if ( version == '12.0(22)S3' ) flag++;
    if ( version == '12.0(22)S3a' ) flag++;
    if ( version == '12.0(22)S3b' ) flag++;
    if ( version == '12.0(22)S3c' ) flag++;
    if ( version == '12.0(22)S4' ) flag++;
    if ( version == '12.0(22)S4a' ) flag++;
    if ( version == '12.0(22)S5' ) flag++;
    if ( version == '12.0(22)S5a' ) flag++;
    if ( version == '12.0(22)S6' ) flag++;
    if ( version == '12.0(22)SY' ) flag++;
    if ( version == '12.0(23)S' ) flag++;
    if ( version == '12.0(23)S1' ) flag++;
    if ( version == '12.0(23)S2' ) flag++;
    if ( version == '12.0(23)S2a' ) flag++;
    if ( version == '12.0(23)S3' ) flag++;
    if ( version == '12.0(23)S3a' ) flag++;
    if ( version == '12.0(23)S3b' ) flag++;
    if ( version == '12.0(23)S3c' ) flag++;
    if ( version == '12.0(23)S4' ) flag++;
    if ( version == '12.0(23)S5' ) flag++;
    if ( version == '12.0(23)S6' ) flag++;
    if ( version == '12.0(23)S6a' ) flag++;
    if ( version == '12.0(23)SX' ) flag++;
    if ( version == '12.0(23)SX1' ) flag++;
    if ( version == '12.0(23)SX2' ) flag++;
    if ( version == '12.0(23)SX3' ) flag++;
    if ( version == '12.0(23)SX4' ) flag++;
    if ( version == '12.0(23)SX5' ) flag++;
    if ( version == '12.0(23)SZ' ) flag++;
    if ( version == '12.0(23)SZ2' ) flag++;
    if ( version == '12.0(23)SZ3' ) flag++;
    if ( version == '12.0(24)S' ) flag++;
    if ( version == '12.0(24)S1' ) flag++;
    if ( version == '12.0(24)S2' ) flag++;
    if ( version == '12.0(24)S2a' ) flag++;
    if ( version == '12.0(24)S2b' ) flag++;
    if ( version == '12.0(24)S2c' ) flag++;
    if ( version == '12.0(24)S3' ) flag++;
    if ( version == '12.0(24)S4' ) flag++;
    if ( version == '12.0(24)S4a' ) flag++;
    if ( version == '12.0(24)S4b' ) flag++;
    if ( version == '12.0(24)S5' ) flag++;
    if ( version == '12.0(24)S5a' ) flag++;
    if ( version == '12.0(24)S6' ) flag++;
    if ( version == '12.0(24)S6a' ) flag++;
    if ( version == '12.0(24)SX' ) flag++;
    if ( version == '12.0(25)S' ) flag++;
    if ( version == '12.0(25)S1' ) flag++;
    if ( version == '12.0(25)S1a' ) flag++;
    if ( version == '12.0(25)S1b' ) flag++;
    if ( version == '12.0(25)S1c' ) flag++;
    if ( version == '12.0(25)S1d' ) flag++;
    if ( version == '12.0(25)S2' ) flag++;
    if ( version == '12.0(25)S3' ) flag++;
    if ( version == '12.0(25)S4' ) flag++;
    if ( version == '12.0(25)S4a' ) flag++;
    if ( version == '12.0(25)S4b' ) flag++;
    if ( version == '12.0(25)S4c' ) flag++;
    if ( version == '12.0(25)S4d' ) flag++;
    if ( version == '12.0(25)S5' ) flag++;
    if ( version == '12.0(25)S6' ) flag++;
    if ( version == '12.0(25)S6a' ) flag++;
    if ( version == '12.0(25)SX' ) flag++;
    if ( version == '12.0(25)SX1' ) flag++;
    if ( version == '12.0(25)SX10' ) flag++;
    if ( version == '12.0(25)SX11' ) flag++;
    if ( version == '12.0(25)SX12' ) flag++;
    if ( version == '12.0(25)SX2' ) flag++;
    if ( version == '12.0(25)SX3' ) flag++;
    if ( version == '12.0(25)SX4' ) flag++;
    if ( version == '12.0(25)SX5' ) flag++;
    if ( version == '12.0(25)SX6' ) flag++;
    if ( version == '12.0(25)SX6a' ) flag++;
    if ( version == '12.0(25)SX6b' ) flag++;
    if ( version == '12.0(25)SX6c' ) flag++;
    if ( version == '12.0(25)SX6d' ) flag++;
    if ( version == '12.0(25)SX6e' ) flag++;
    if ( version == '12.0(25)SX6f' ) flag++;
    if ( version == '12.0(25)SX6g' ) flag++;
    if ( version == '12.0(25)SX7' ) flag++;
    if ( version == '12.0(25)SX8' ) flag++;
    if ( version == '12.0(25)SX9' ) flag++;
    if ( version == '12.0(26)S' ) flag++;
    if ( version == '12.0(26)S1' ) flag++;
    if ( version == '12.0(26)S2' ) flag++;
    if ( version == '12.0(26)S2a' ) flag++;
    if ( version == '12.0(26)S2b' ) flag++;
    if ( version == '12.0(26)S3' ) flag++;
    if ( version == '12.0(26)S3a' ) flag++;
    if ( version == '12.0(26)S4' ) flag++;
    if ( version == '12.0(26)S4a' ) flag++;
    if ( version == '12.0(26)S4b' ) flag++;
    if ( version == '12.0(26)S4c' ) flag++;
    if ( version == '12.0(26)S5' ) flag++;
    if ( version == '12.0(26)S5a' ) flag++;
    if ( version == '12.0(26)S5b' ) flag++;
    if ( version == '12.0(26)S6' ) flag++;
    if ( version == '12.0(26)S6b' ) flag++;
    if ( version == '12.0(26)S6c' ) flag++;
    if ( version == '12.0(26)SZ' ) flag++;
    if ( version == '12.0(27)S' ) flag++;
    if ( version == '12.0(27)S1' ) flag++;
    if ( version == '12.0(27)S2' ) flag++;
    if ( version == '12.0(27)S2a' ) flag++;
    if ( version == '12.0(27)S2b' ) flag++;
    if ( version == '12.0(27)S2c' ) flag++;
    if ( version == '12.0(27)S2d' ) flag++;
    if ( version == '12.0(27)S3' ) flag++;
    if ( version == '12.0(27)S3a' ) flag++;
    if ( version == '12.0(27)S3b' ) flag++;
    if ( version == '12.0(27)S3c' ) flag++;
    if ( version == '12.0(27)S3d' ) flag++;
    if ( version == '12.0(27)S4' ) flag++;
    if ( version == '12.0(27)S4a' ) flag++;
    if ( version == '12.0(27)S4b' ) flag++;
    if ( version == '12.0(27)S4c' ) flag++;
    if ( version == '12.0(27)S4d' ) flag++;
    if ( version == '12.0(27)S4e' ) flag++;
    if ( version == '12.0(27)S5' ) flag++;
    if ( version == '12.0(27)S5a' ) flag++;
    if ( version == '12.0(27)S5b' ) flag++;
    if ( version == '12.0(27)S5c' ) flag++;
    if ( version == '12.0(27)S5d' ) flag++;
    if ( version == '12.0(27)S5e' ) flag++;
    if ( version == '12.0(27)SV' ) flag++;
    if ( version == '12.0(27)SV1' ) flag++;
    if ( version == '12.0(27)SV2' ) flag++;
    if ( version == '12.0(27)SV3' ) flag++;
    if ( version == '12.0(27)SV4' ) flag++;
    if ( version == '12.0(27)SY' ) flag++;
    if ( version == '12.0(27)SZ' ) flag++;
    if ( version == '12.0(28)S' ) flag++;
    if ( version == '12.0(28)S1' ) flag++;
    if ( version == '12.0(28)S1a' ) flag++;
    if ( version == '12.0(28)S1b' ) flag++;
    if ( version == '12.0(28)S2' ) flag++;
    if ( version == '12.0(28)S2a' ) flag++;
    if ( version == '12.0(28)S3' ) flag++;
    if ( version == '12.0(28)S4' ) flag++;
    if ( version == '12.0(28)S4a' ) flag++;
    if ( version == '12.0(28)S4b' ) flag++;
    if ( version == '12.0(28)S4c' ) flag++;
    if ( version == '12.0(28)S4d' ) flag++;
    if ( version == '12.0(28)S4e' ) flag++;
    if ( version == '12.0(28)S4f' ) flag++;
    if ( version == '12.0(28)S4g' ) flag++;
    if ( version == '12.0(28)S5' ) flag++;
    if ( version == '12.0(28)S5a' ) flag++;
    if ( version == '12.0(28)S5b' ) flag++;
    if ( version == '12.0(28)S5c' ) flag++;
    if ( version == '12.0(28)S5d' ) flag++;
    if ( version == '12.0(28)S5e' ) flag++;
    if ( version == '12.0(28)S6' ) flag++;
    if ( version == '12.0(28)S6a' ) flag++;
    if ( version == '12.0(28)S6b' ) flag++;
    if ( version == '12.0(28)SV' ) flag++;
    if ( version == '12.0(28)SW' ) flag++;
    if ( version == '12.0(28)SW1' ) flag++;
    if ( version == '12.0(29)S' ) flag++;
    if ( version == '12.0(29)S1' ) flag++;
    if ( version == '12.0(30)S' ) flag++;
    if ( version == '12.0(30)S1' ) flag++;
    if ( version == '12.0(30)S2' ) flag++;
    if ( version == '12.0(30)S2a' ) flag++;
    if ( version == '12.0(30)S2m' ) flag++;
    if ( version == '12.0(30)S2n' ) flag++;
    if ( version == '12.0(30)S3' ) flag++;
    if ( version == '12.0(30)S3a' ) flag++;
    if ( version == '12.0(30)S3b' ) flag++;
    if ( version == '12.0(30)S3c' ) flag++;
    if ( version == '12.0(30)S3d' ) flag++;
    if ( version == '12.0(30)S3s' ) flag++;
    if ( version == '12.0(30)S3t' ) flag++;
    if ( version == '12.0(30)S4' ) flag++;
    if ( version == '12.0(30)S4a' ) flag++;
    if ( version == '12.0(30)S4b' ) flag++;
    if ( version == '12.0(30)S5' ) flag++;
    if ( version == '12.0(30)S5a' ) flag++;
    if ( version == '12.0(30)SV1' ) flag++;
    if ( version == '12.0(30)SW' ) flag++;
    if ( version == '12.0(30)SX' ) flag++;
    if ( version == '12.0(30)SZ' ) flag++;
    if ( version == '12.0(30)SZ1' ) flag++;
    if ( version == '12.0(30)SZ10' ) flag++;
    if ( version == '12.0(30)SZ2' ) flag++;
    if ( version == '12.0(30)SZ3' ) flag++;
    if ( version == '12.0(30)SZ4' ) flag++;
    if ( version == '12.0(30)SZ5' ) flag++;
    if ( version == '12.0(30)SZ6' ) flag++;
    if ( version == '12.0(30)SZ7' ) flag++;
    if ( version == '12.0(30)SZ8' ) flag++;
    if ( version == '12.0(30)SZ9' ) flag++;
    if ( version == '12.0(31)S' ) flag++;
    if ( version == '12.0(31)S0a' ) flag++;
    if ( version == '12.0(31)S0b' ) flag++;
    if ( version == '12.0(31)S1' ) flag++;
    if ( version == '12.0(31)S1a' ) flag++;
    if ( version == '12.0(31)S1b' ) flag++;
    if ( version == '12.0(31)S1c' ) flag++;
    if ( version == '12.0(31)S1d' ) flag++;
    if ( version == '12.0(31)S1e' ) flag++;
    if ( version == '12.0(31)S2' ) flag++;
    if ( version == '12.0(31)S2a' ) flag++;
    if ( version == '12.0(31)S2b' ) flag++;
    if ( version == '12.0(31)S2c' ) flag++;
    if ( version == '12.0(31)S2d' ) flag++;
    if ( version == '12.0(31)S2s' ) flag++;
    if ( version == '12.0(31)S2t' ) flag++;
    if ( version == '12.0(31)S2u' ) flag++;
    if ( version == '12.0(31)S2v' ) flag++;
    if ( version == '12.0(31)S2w' ) flag++;
    if ( version == '12.0(31)S2x' ) flag++;
    if ( version == '12.0(31)S2y' ) flag++;
    if ( version == '12.0(31)S2z' ) flag++;
    if ( version == '12.0(31)S3' ) flag++;
    if ( version == '12.0(31)S3a' ) flag++;
    if ( version == '12.0(31)S3b' ) flag++;
    if ( version == '12.0(31)S3c' ) flag++;
    if ( version == '12.0(31)S3d' ) flag++;
    if ( version == '12.0(31)S3e' ) flag++;
    if ( version == '12.0(31)S4' ) flag++;
    if ( version == '12.0(31)S4a' ) flag++;
    if ( version == '12.0(31)S4b' ) flag++;
    if ( version == '12.0(31)S4c' ) flag++;
    if ( version == '12.0(31)S5' ) flag++;
    if ( version == '12.0(31)S5a' ) flag++;
    if ( version == '12.0(31)S5b' ) flag++;
    if ( version == '12.0(31)S5c' ) flag++;
    if ( version == '12.0(31)S5d' ) flag++;
    if ( version == '12.0(31)S5e' ) flag++;
    if ( version == '12.0(31)S6' ) flag++;
    if ( version == '12.0(31)S6a' ) flag++;
    if ( version == '12.0(31)S6b' ) flag++;
    if ( version == '12.0(31)S6c' ) flag++;
    if ( version == '12.0(31)S6d' ) flag++;
    if ( version == '12.0(31)S6e' ) flag++;
    if ( version == '12.0(31)SV' ) flag++;
    if ( version == '12.0(31)SV1' ) flag++;
    if ( version == '12.0(31)SV2' ) flag++;
    if ( version == '12.0(31)SZ2' ) flag++;
    if ( version == '12.0(31a)S2a' ) flag++;
    if ( version == '12.0(31a)S2b' ) flag++;
    if ( version == '12.0(32)S' ) flag++;
    if ( version == '12.0(32)S1' ) flag++;
    if ( version == '12.0(32)S10' ) flag++;
    if ( version == '12.0(32)S11' ) flag++;
    if ( version == '12.0(32)S11n' ) flag++;
    if ( version == '12.0(32)S11o' ) flag++;
    if ( version == '12.0(32)S11p' ) flag++;
    if ( version == '12.0(32)S11q' ) flag++;
    if ( version == '12.0(32)S12' ) flag++;
    if ( version == '12.0(32)S13' ) flag++;
    if ( version == '12.0(32)S14' ) flag++;
    if ( version == '12.0(32)S1a' ) flag++;
    if ( version == '12.0(32)S1b' ) flag++;
    if ( version == '12.0(32)S2' ) flag++;
    if ( version == '12.0(32)S3' ) flag++;
    if ( version == '12.0(32)S3a' ) flag++;
    if ( version == '12.0(32)S3b' ) flag++;
    if ( version == '12.0(32)S3c' ) flag++;
    if ( version == '12.0(32)S3d' ) flag++;
    if ( version == '12.0(32)S3e' ) flag++;
    if ( version == '12.0(32)S3f' ) flag++;
    if ( version == '12.0(32)S4' ) flag++;
    if ( version == '12.0(32)S4a' ) flag++;
    if ( version == '12.0(32)S4b' ) flag++;
    if ( version == '12.0(32)S5' ) flag++;
    if ( version == '12.0(32)S5a' ) flag++;
    if ( version == '12.0(32)S5b' ) flag++;
    if ( version == '12.0(32)S6' ) flag++;
    if ( version == '12.0(32)S6a' ) flag++;
    if ( version == '12.0(32)S6b' ) flag++;
    if ( version == '12.0(32)S6c' ) flag++;
    if ( version == '12.0(32)S6ca' ) flag++;
    if ( version == '12.0(32)S6d' ) flag++;
    if ( version == '12.0(32)S6m' ) flag++;
    if ( version == '12.0(32)S6n' ) flag++;
    if ( version == '12.0(32)S6o' ) flag++;
    if ( version == '12.0(32)S6p' ) flag++;
    if ( version == '12.0(32)S6q' ) flag++;
    if ( version == '12.0(32)S6r' ) flag++;
    if ( version == '12.0(32)S7' ) flag++;
    if ( version == '12.0(32)S8' ) flag++;
    if ( version == '12.0(32)S9' ) flag++;
    if ( version == '12.0(32)SY' ) flag++;
    if ( version == '12.0(32)SY0a' ) flag++;
    if ( version == '12.0(32)SY0b' ) flag++;
    if ( version == '12.0(32)SY0c' ) flag++;
    if ( version == '12.0(32)SY0d' ) flag++;
    if ( version == '12.0(32)SY0e' ) flag++;
    if ( version == '12.0(32)SY0f' ) flag++;
    if ( version == '12.0(32)SY0g' ) flag++;
    if ( version == '12.0(32)SY0h' ) flag++;
    if ( version == '12.0(32)SY0i' ) flag++;
    if ( version == '12.0(32)SY0j' ) flag++;
    if ( version == '12.0(32)SY1' ) flag++;
    if ( version == '12.0(32)SY10' ) flag++;
    if ( version == '12.0(32)SY1a' ) flag++;
    if ( version == '12.0(32)SY1b' ) flag++;
    if ( version == '12.0(32)SY1c' ) flag++;
    if ( version == '12.0(32)SY2' ) flag++;
    if ( version == '12.0(32)SY2a' ) flag++;
    if ( version == '12.0(32)SY2b' ) flag++;
    if ( version == '12.0(32)SY2c' ) flag++;
    if ( version == '12.0(32)SY2d' ) flag++;
    if ( version == '12.0(32)SY2e' ) flag++;
    if ( version == '12.0(32)SY2f' ) flag++;
    if ( version == '12.0(32)SY2g' ) flag++;
    if ( version == '12.0(32)SY2h' ) flag++;
    if ( version == '12.0(32)SY2i' ) flag++;
    if ( version == '12.0(32)SY3' ) flag++;
    if ( version == '12.0(32)SY3a' ) flag++;
    if ( version == '12.0(32)SY3b' ) flag++;
    if ( version == '12.0(32)SY3c' ) flag++;
    if ( version == '12.0(32)SY4' ) flag++;
    if ( version == '12.0(32)SY4a' ) flag++;
    if ( version == '12.0(32)SY4b' ) flag++;
    if ( version == '12.0(32)SY4c' ) flag++;
    if ( version == '12.0(32)SY4d' ) flag++;
    if ( version == '12.0(32)SY5' ) flag++;
    if ( version == '12.0(32)SY5a' ) flag++;
    if ( version == '12.0(32)SY6' ) flag++;
    if ( version == '12.0(32)SY6a' ) flag++;
    if ( version == '12.0(32)SY6b' ) flag++;
    if ( version == '12.0(32)SY6c' ) flag++;
    if ( version == '12.0(32)SY6d' ) flag++;
    if ( version == '12.0(32)SY6e' ) flag++;
    if ( version == '12.0(32)SY6f' ) flag++;
    if ( version == '12.0(32)SY7' ) flag++;
    if ( version == '12.0(32)SY8' ) flag++;
    if ( version == '12.0(32)SY8a' ) flag++;
    if ( version == '12.0(32)SY9' ) flag++;
    if ( version == '12.0(32)SY9a' ) flag++;
    if ( version == '12.0(32)SYA' ) flag++;
    if ( version == '12.0(32c)S6b' ) flag++;
    if ( version == '12.0(33)S' ) flag++;
    if ( version == '12.0(33)S1' ) flag++;
    if ( version == '12.0(33)S2' ) flag++;
    if ( version == '12.0(33)S3' ) flag++;
    if ( version == '12.0(33)S5' ) flag++;
    if ( version == '12.1(10)E' ) flag++;
    if ( version == '12.1(10)E1' ) flag++;
    if ( version == '12.1(10)E2' ) flag++;
    if ( version == '12.1(10)E3' ) flag++;
    if ( version == '12.1(10)E4' ) flag++;
    if ( version == '12.1(10)E5' ) flag++;
    if ( version == '12.1(10)E6' ) flag++;
    if ( version == '12.1(10)E6a' ) flag++;
    if ( version == '12.1(10)E7' ) flag++;
    if ( version == '12.1(10)E8' ) flag++;
    if ( version == '12.1(10)EC' ) flag++;
    if ( version == '12.1(10)EC1' ) flag++;
    if ( version == '12.1(10)EX' ) flag++;
    if ( version == '12.1(10)EX1' ) flag++;
    if ( version == '12.1(10)EX2' ) flag++;
    if ( version == '12.1(10)EY' ) flag++;
    if ( version == '12.1(11b)E' ) flag++;
    if ( version == '12.1(11b)E0a' ) flag++;
    if ( version == '12.1(11b)E1' ) flag++;
    if ( version == '12.1(11b)E10' ) flag++;
    if ( version == '12.1(11b)E11' ) flag++;
    if ( version == '12.1(11b)E12' ) flag++;
    if ( version == '12.1(11b)E14' ) flag++;
    if ( version == '12.1(11b)E2' ) flag++;
    if ( version == '12.1(11b)E3' ) flag++;
    if ( version == '12.1(11b)E4' ) flag++;
    if ( version == '12.1(11b)E5' ) flag++;
    if ( version == '12.1(11b)E6' ) flag++;
    if ( version == '12.1(11b)E7' ) flag++;
    if ( version == '12.1(11b)E8' ) flag++;
    if ( version == '12.1(11b)E9' ) flag++;
    if ( version == '12.1(11b)EC' ) flag++;
    if ( version == '12.1(11b)EC1' ) flag++;
    if ( version == '12.1(11b)EX' ) flag++;
    if ( version == '12.1(11b)EX1' ) flag++;
    if ( version == '12.1(12c)E' ) flag++;
    if ( version == '12.1(12c)E1' ) flag++;
    if ( version == '12.1(12c)E2' ) flag++;
    if ( version == '12.1(12c)E4' ) flag++;
    if ( version == '12.1(12c)E5' ) flag++;
    if ( version == '12.1(12c)E6' ) flag++;
    if ( version == '12.1(12c)E7' ) flag++;
    if ( version == '12.1(12c)EC' ) flag++;
    if ( version == '12.1(12c)EC1' ) flag++;
    if ( version == '12.1(12c)EX' ) flag++;
    if ( version == '12.1(12c)EX1' ) flag++;
    if ( version == '12.1(12c)EY' ) flag++;
    if ( version == '12.1(13)E' ) flag++;
    if ( version == '12.1(13)E1' ) flag++;
    if ( version == '12.1(13)E10' ) flag++;
    if ( version == '12.1(13)E11' ) flag++;
    if ( version == '12.1(13)E12' ) flag++;
    if ( version == '12.1(13)E13' ) flag++;
    if ( version == '12.1(13)E14' ) flag++;
    if ( version == '12.1(13)E15' ) flag++;
    if ( version == '12.1(13)E16' ) flag++;
    if ( version == '12.1(13)E17' ) flag++;
    if ( version == '12.1(13)E3' ) flag++;
    if ( version == '12.1(13)E4' ) flag++;
    if ( version == '12.1(13)E5' ) flag++;
    if ( version == '12.1(13)E6' ) flag++;
    if ( version == '12.1(13)E7' ) flag++;
    if ( version == '12.1(13)E8' ) flag++;
    if ( version == '12.1(13)E9' ) flag++;
    if ( version == '12.1(13)EB' ) flag++;
    if ( version == '12.1(13)EB1' ) flag++;
    if ( version == '12.1(13)EC' ) flag++;
    if ( version == '12.1(13)EC1' ) flag++;
    if ( version == '12.1(13)EC2' ) flag++;
    if ( version == '12.1(13)EC3' ) flag++;
    if ( version == '12.1(13)EC4' ) flag++;
    if ( version == '12.1(13)EX' ) flag++;
    if ( version == '12.1(13)EX1' ) flag++;
    if ( version == '12.1(13)EX2' ) flag++;
    if ( version == '12.1(13)EX3' ) flag++;
    if ( version == '12.1(14)AX' ) flag++;
    if ( version == '12.1(14)AX1' ) flag++;
    if ( version == '12.1(14)AX2' ) flag++;
    if ( version == '12.1(14)AX3' ) flag++;
    if ( version == '12.1(14)AX4' ) flag++;
    if ( version == '12.1(14)E' ) flag++;
    if ( version == '12.1(14)E1' ) flag++;
    if ( version == '12.1(14)E10' ) flag++;
    if ( version == '12.1(14)E2' ) flag++;
    if ( version == '12.1(14)E3' ) flag++;
    if ( version == '12.1(14)E4' ) flag++;
    if ( version == '12.1(14)E5' ) flag++;
    if ( version == '12.1(14)E6' ) flag++;
    if ( version == '12.1(14)E7' ) flag++;
    if ( version == '12.1(14)E8' ) flag++;
    if ( version == '12.1(14)EB' ) flag++;
    if ( version == '12.1(14)EB1' ) flag++;
    if ( version == '12.1(19)E' ) flag++;
    if ( version == '12.1(19)E1' ) flag++;
    if ( version == '12.1(19)E1a' ) flag++;
    if ( version == '12.1(19)E2' ) flag++;
    if ( version == '12.1(19)E3' ) flag++;
    if ( version == '12.1(19)E4' ) flag++;
    if ( version == '12.1(19)E6' ) flag++;
    if ( version == '12.1(19)E7' ) flag++;
    if ( version == '12.1(19)EB' ) flag++;
    if ( version == '12.1(19)EC' ) flag++;
    if ( version == '12.1(19)EC1' ) flag++;
    if ( version == '12.1(20)E' ) flag++;
    if ( version == '12.1(20)E1' ) flag++;
    if ( version == '12.1(20)E2' ) flag++;
    if ( version == '12.1(20)E3' ) flag++;
    if ( version == '12.1(20)E4' ) flag++;
    if ( version == '12.1(20)E5' ) flag++;
    if ( version == '12.1(20)E6' ) flag++;
    if ( version == '12.1(20)EB' ) flag++;
    if ( version == '12.1(20)EC' ) flag++;
    if ( version == '12.1(20)EC1' ) flag++;
    if ( version == '12.1(20)EC2' ) flag++;
    if ( version == '12.1(20)EC3' ) flag++;
    if ( version == '12.1(20)EO' ) flag++;
    if ( version == '12.1(20)EO1' ) flag++;
    if ( version == '12.1(20)EO2' ) flag++;
    if ( version == '12.1(20)EO3' ) flag++;
    if ( version == '12.1(22)E' ) flag++;
    if ( version == '12.1(22)E1' ) flag++;
    if ( version == '12.1(22)E2' ) flag++;
    if ( version == '12.1(22)E3' ) flag++;
    if ( version == '12.1(22)E4' ) flag++;
    if ( version == '12.1(22)E5' ) flag++;
    if ( version == '12.1(22)E6' ) flag++;
    if ( version == '12.1(22)EB' ) flag++;
    if ( version == '12.1(22)EC' ) flag++;
    if ( version == '12.1(22)EC1' ) flag++;
    if ( version == '12.1(23)E' ) flag++;
    if ( version == '12.1(23)E1' ) flag++;
    if ( version == '12.1(23)E2' ) flag++;
    if ( version == '12.1(23)E3' ) flag++;
    if ( version == '12.1(23)E4' ) flag++;
    if ( version == '12.1(23)EB' ) flag++;
    if ( version == '12.1(26)E' ) flag++;
    if ( version == '12.1(26)E1' ) flag++;
    if ( version == '12.1(26)E2' ) flag++;
    if ( version == '12.1(26)E3' ) flag++;
    if ( version == '12.1(26)E4' ) flag++;
    if ( version == '12.1(26)E5' ) flag++;
    if ( version == '12.1(26)E6' ) flag++;
    if ( version == '12.1(26)E7' ) flag++;
    if ( version == '12.1(26)E8' ) flag++;
    if ( version == '12.1(26)E9' ) flag++;
    if ( version == '12.1(26)EB' ) flag++;
    if ( version == '12.1(26)EB1' ) flag++;
    if ( version == '12.1(26)EB2' ) flag++;
    if ( version == '12.1(27b)E' ) flag++;
    if ( version == '12.1(27b)E1' ) flag++;
    if ( version == '12.1(27b)E2' ) flag++;
    if ( version == '12.1(27b)E3' ) flag++;
    if ( version == '12.1(27b)E4' ) flag++;
    if ( version == '12.1(5)XV' ) flag++;
    if ( version == '12.1(5)YB' ) flag++;
    if ( version == '12.1(5)YB4' ) flag++;
    if ( version == '12.1(5)YB5' ) flag++;
    if ( version == '12.1(5)YD' ) flag++;
    if ( version == '12.1(5)YD1' ) flag++;
    if ( version == '12.1(5)YD2' ) flag++;
    if ( version == '12.1(5)YD3' ) flag++;
    if ( version == '12.1(5)YD4' ) flag++;
    if ( version == '12.1(5)YD5' ) flag++;
    if ( version == '12.1(5)YD6' ) flag++;
    if ( version == '12.1(8)EC' ) flag++;
    if ( version == '12.1(8)EC1' ) flag++;
    if ( version == '12.1(8a)E' ) flag++;
    if ( version == '12.1(8a)E1' ) flag++;
    if ( version == '12.1(8a)E2' ) flag++;
    if ( version == '12.1(8a)E3' ) flag++;
    if ( version == '12.1(8a)E4' ) flag++;
    if ( version == '12.1(8a)E5' ) flag++;
    if ( version == '12.1(8a)EX' ) flag++;
    if ( version == '12.1(8a)EX1' ) flag++;
    if ( version == '12.1(8b)E10' ) flag++;
    if ( version == '12.1(8b)E11' ) flag++;
    if ( version == '12.1(8b)E12' ) flag++;
    if ( version == '12.1(8b)E13' ) flag++;
    if ( version == '12.1(8b)E14' ) flag++;
    if ( version == '12.1(8b)E15' ) flag++;
    if ( version == '12.1(8b)E16' ) flag++;
    if ( version == '12.1(8b)E18' ) flag++;
    if ( version == '12.1(8b)E19' ) flag++;
    if ( version == '12.1(8b)E20' ) flag++;
    if ( version == '12.1(8b)E6' ) flag++;
    if ( version == '12.1(8b)E7' ) flag++;
    if ( version == '12.1(8b)E8' ) flag++;
    if ( version == '12.1(8b)E9' ) flag++;
    if ( version == '12.1(8b)EX2' ) flag++;
    if ( version == '12.1(8b)EX3' ) flag++;
    if ( version == '12.1(8b)EX5' ) flag++;
    if ( version == '12.1(9)E' ) flag++;
    if ( version == '12.1(9)E1' ) flag++;
    if ( version == '12.1(9)E2' ) flag++;
    if ( version == '12.1(9)E3' ) flag++;
    if ( version == '12.1(9)EC1' ) flag++;
    if ( version == '12.1(9)EX' ) flag++;
    if ( version == '12.1(9)EX1' ) flag++;
    if ( version == '12.1(9)EX2' ) flag++;
    if ( version == '12.1(9)EX3' ) flag++;
    if ( version == '12.2(1)DX' ) flag++;
    if ( version == '12.2(1)DX1' ) flag++;
    if ( version == '12.2(1)XF' ) flag++;
    if ( version == '12.2(1)XF1' ) flag++;
    if ( version == '12.2(11)BC1' ) flag++;
    if ( version == '12.2(11)BC1a' ) flag++;
    if ( version == '12.2(11)BC1b' ) flag++;
    if ( version == '12.2(11)BC2' ) flag++;
    if ( version == '12.2(11)BC2a' ) flag++;
    if ( version == '12.2(11)BC3' ) flag++;
    if ( version == '12.2(11)BC3a' ) flag++;
    if ( version == '12.2(11)BC3b' ) flag++;
    if ( version == '12.2(11)BC3c' ) flag++;
    if ( version == '12.2(11)BC3d' ) flag++;
    if ( version == '12.2(11)CX' ) flag++;
    if ( version == '12.2(11)CY' ) flag++;
    if ( version == '12.2(11)S' ) flag++;
    if ( version == '12.2(11)S1' ) flag++;
    if ( version == '12.2(11)S2' ) flag++;
    if ( version == '12.2(11)S3' ) flag++;
    if ( version == '12.2(11)T' ) flag++;
    if ( version == '12.2(11)T1' ) flag++;
    if ( version == '12.2(11)T10' ) flag++;
    if ( version == '12.2(11)T11' ) flag++;
    if ( version == '12.2(11)T2' ) flag++;
    if ( version == '12.2(11)T3' ) flag++;
    if ( version == '12.2(11)T5' ) flag++;
    if ( version == '12.2(11)T6' ) flag++;
    if ( version == '12.2(11)T7' ) flag++;
    if ( version == '12.2(11)T8' ) flag++;
    if ( version == '12.2(11)T9' ) flag++;
    if ( version == '12.2(11)YP1' ) flag++;
    if ( version == '12.2(11)YP2' ) flag++;
    if ( version == '12.2(11)YP3' ) flag++;
    if ( version == '12.2(11)YP4' ) flag++;
    if ( version == '12.2(11)YP5' ) flag++;
    if ( version == '12.2(11)YT' ) flag++;
    if ( version == '12.2(11)YT1' ) flag++;
    if ( version == '12.2(11)YT2' ) flag++;
    if ( version == '12.2(11)YX' ) flag++;
    if ( version == '12.2(11)YX1' ) flag++;
    if ( version == '12.2(11)YZ' ) flag++;
    if ( version == '12.2(11)YZ1' ) flag++;
    if ( version == '12.2(11)YZ2' ) flag++;
    if ( version == '12.2(11)YZ3' ) flag++;
    if ( version == '12.2(13)T' ) flag++;
    if ( version == '12.2(13)T1' ) flag++;
    if ( version == '12.2(13)T10' ) flag++;
    if ( version == '12.2(13)T11' ) flag++;
    if ( version == '12.2(13)T12' ) flag++;
    if ( version == '12.2(13)T13' ) flag++;
    if ( version == '12.2(13)T14' ) flag++;
    if ( version == '12.2(13)T15' ) flag++;
    if ( version == '12.2(13)T16' ) flag++;
    if ( version == '12.2(13)T17' ) flag++;
    if ( version == '12.2(13)T1a' ) flag++;
    if ( version == '12.2(13)T2' ) flag++;
    if ( version == '12.2(13)T3' ) flag++;
    if ( version == '12.2(13)T4' ) flag++;
    if ( version == '12.2(13)T5' ) flag++;
    if ( version == '12.2(13)T6' ) flag++;
    if ( version == '12.2(13)T7' ) flag++;
    if ( version == '12.2(13)T8' ) flag++;
    if ( version == '12.2(13)T9' ) flag++;
    if ( version == '12.2(13)ZD' ) flag++;
    if ( version == '12.2(13)ZD1' ) flag++;
    if ( version == '12.2(13)ZD2' ) flag++;
    if ( version == '12.2(13)ZD3' ) flag++;
    if ( version == '12.2(13)ZD4' ) flag++;
    if ( version == '12.2(13)ZE' ) flag++;
    if ( version == '12.2(13)ZT' ) flag++;
    if ( version == '12.2(14)S' ) flag++;
    if ( version == '12.2(14)S1' ) flag++;
    if ( version == '12.2(14)S10' ) flag++;
    if ( version == '12.2(14)S11' ) flag++;
    if ( version == '12.2(14)S11a' ) flag++;
    if ( version == '12.2(14)S11b' ) flag++;
    if ( version == '12.2(14)S12' ) flag++;
    if ( version == '12.2(14)S13' ) flag++;
    if ( version == '12.2(14)S13a' ) flag++;
    if ( version == '12.2(14)S13b' ) flag++;
    if ( version == '12.2(14)S14' ) flag++;
    if ( version == '12.2(14)S15' ) flag++;
    if ( version == '12.2(14)S16' ) flag++;
    if ( version == '12.2(14)S17' ) flag++;
    if ( version == '12.2(14)S18' ) flag++;
    if ( version == '12.2(14)S19' ) flag++;
    if ( version == '12.2(14)S2' ) flag++;
    if ( version == '12.2(14)S3' ) flag++;
    if ( version == '12.2(14)S4' ) flag++;
    if ( version == '12.2(14)S5' ) flag++;
    if ( version == '12.2(14)S6' ) flag++;
    if ( version == '12.2(14)S7' ) flag++;
    if ( version == '12.2(14)S8' ) flag++;
    if ( version == '12.2(14)S9' ) flag++;
    if ( version == '12.2(14)S9a' ) flag++;
    if ( version == '12.2(14)S9b' ) flag++;
    if ( version == '12.2(14)S9c' ) flag++;
    if ( version == '12.2(14)SU' ) flag++;
    if ( version == '12.2(14)SU1' ) flag++;
    if ( version == '12.2(14)SU2' ) flag++;
    if ( version == '12.2(14)SX' ) flag++;
    if ( version == '12.2(14)SX1' ) flag++;
    if ( version == '12.2(14)SX1a' ) flag++;
    if ( version == '12.2(14)SY' ) flag++;
    if ( version == '12.2(14)SY1' ) flag++;
    if ( version == '12.2(14)SY2' ) flag++;
    if ( version == '12.2(14)SY3' ) flag++;
    if ( version == '12.2(14)SY4' ) flag++;
    if ( version == '12.2(14)SY5' ) flag++;
    if ( version == '12.2(14)SZ' ) flag++;
    if ( version == '12.2(14)SZ1' ) flag++;
    if ( version == '12.2(14)SZ2' ) flag++;
    if ( version == '12.2(14)SZ3' ) flag++;
    if ( version == '12.2(14)SZ4' ) flag++;
    if ( version == '12.2(14)SZ5' ) flag++;
    if ( version == '12.2(14)SZ6' ) flag++;
    if ( version == '12.2(14)ZA' ) flag++;
    if ( version == '12.2(14)ZA1' ) flag++;
    if ( version == '12.2(14)ZA2' ) flag++;
    if ( version == '12.2(14)ZA3' ) flag++;
    if ( version == '12.2(14)ZA4' ) flag++;
    if ( version == '12.2(14)ZA5' ) flag++;
    if ( version == '12.2(14)ZA6' ) flag++;
    if ( version == '12.2(14)ZA7' ) flag++;
    if ( version == '12.2(15)B' ) flag++;
    if ( version == '12.2(15)B1' ) flag++;
    if ( version == '12.2(15)BC1' ) flag++;
    if ( version == '12.2(15)BC1a' ) flag++;
    if ( version == '12.2(15)BC1b' ) flag++;
    if ( version == '12.2(15)BC1c' ) flag++;
    if ( version == '12.2(15)BC1d' ) flag++;
    if ( version == '12.2(15)BC1e' ) flag++;
    if ( version == '12.2(15)BC1f' ) flag++;
    if ( version == '12.2(15)BC1g' ) flag++;
    if ( version == '12.2(15)BC2' ) flag++;
    if ( version == '12.2(15)BC2a' ) flag++;
    if ( version == '12.2(15)BC2b' ) flag++;
    if ( version == '12.2(15)BC2c' ) flag++;
    if ( version == '12.2(15)BC2d' ) flag++;
    if ( version == '12.2(15)BC2e' ) flag++;
    if ( version == '12.2(15)BC2f' ) flag++;
    if ( version == '12.2(15)BC2g' ) flag++;
    if ( version == '12.2(15)BC2h' ) flag++;
    if ( version == '12.2(15)BC2i' ) flag++;
    if ( version == '12.2(15)BX' ) flag++;
    if ( version == '12.2(15)BZ' ) flag++;
    if ( version == '12.2(15)BZ1' ) flag++;
    if ( version == '12.2(15)BZ2' ) flag++;
    if ( version == '12.2(15)CX' ) flag++;
    if ( version == '12.2(15)CX1' ) flag++;
    if ( version == '12.2(15)MC1' ) flag++;
    if ( version == '12.2(15)MC2a' ) flag++;
    if ( version == '12.2(15)MC2b' ) flag++;
    if ( version == '12.2(15)MC2c' ) flag++;
    if ( version == '12.2(15)MC2e' ) flag++;
    if ( version == '12.2(15)MC2f' ) flag++;
    if ( version == '12.2(15)MC2g' ) flag++;
    if ( version == '12.2(15)MC2h' ) flag++;
    if ( version == '12.2(15)MC2i' ) flag++;
    if ( version == '12.2(15)MC2j' ) flag++;
    if ( version == '12.2(15)MC2k' ) flag++;
    if ( version == '12.2(15)MC2l' ) flag++;
    if ( version == '12.2(15)MC2m' ) flag++;
    if ( version == '12.2(15)T' ) flag++;
    if ( version == '12.2(15)T1' ) flag++;
    if ( version == '12.2(15)T10' ) flag++;
    if ( version == '12.2(15)T11' ) flag++;
    if ( version == '12.2(15)T12' ) flag++;
    if ( version == '12.2(15)T12a' ) flag++;
    if ( version == '12.2(15)T13' ) flag++;
    if ( version == '12.2(15)T14' ) flag++;
    if ( version == '12.2(15)T15' ) flag++;
    if ( version == '12.2(15)T16' ) flag++;
    if ( version == '12.2(15)T17' ) flag++;
    if ( version == '12.2(15)T1a' ) flag++;
    if ( version == '12.2(15)T2' ) flag++;
    if ( version == '12.2(15)T3' ) flag++;
    if ( version == '12.2(15)T4' ) flag++;
    if ( version == '12.2(15)T4a' ) flag++;
    if ( version == '12.2(15)T4c' ) flag++;
    if ( version == '12.2(15)T4d' ) flag++;
    if ( version == '12.2(15)T4e' ) flag++;
    if ( version == '12.2(15)T5' ) flag++;
    if ( version == '12.2(15)T5a' ) flag++;
    if ( version == '12.2(15)T6' ) flag++;
    if ( version == '12.2(15)T7' ) flag++;
    if ( version == '12.2(15)T8' ) flag++;
    if ( version == '12.2(15)T9' ) flag++;
    if ( version == '12.2(15)T9a' ) flag++;
    if ( version == '12.2(15)T9b' ) flag++;
    if ( version == '12.2(15)ZJ' ) flag++;
    if ( version == '12.2(15)ZJ1' ) flag++;
    if ( version == '12.2(15)ZJ2' ) flag++;
    if ( version == '12.2(15)ZJ3' ) flag++;
    if ( version == '12.2(15)ZJ4' ) flag++;
    if ( version == '12.2(15)ZJ5' ) flag++;
    if ( version == '12.2(15)ZK' ) flag++;
    if ( version == '12.2(15)ZK1' ) flag++;
    if ( version == '12.2(15)ZK2' ) flag++;
    if ( version == '12.2(15)ZK3' ) flag++;
    if ( version == '12.2(15)ZK4' ) flag++;
    if ( version == '12.2(15)ZK5' ) flag++;
    if ( version == '12.2(15)ZK6' ) flag++;
    if ( version == '12.2(15)ZO' ) flag++;
    if ( version == '12.2(15)ZR' ) flag++;
    if ( version == '12.2(15)ZS1' ) flag++;
    if ( version == '12.2(15)ZS2' ) flag++;
    if ( version == '12.2(15)ZS3' ) flag++;
    if ( version == '12.2(15)ZS4' ) flag++;
    if ( version == '12.2(15)ZS5' ) flag++;
    if ( version == '12.2(16)B' ) flag++;
    if ( version == '12.2(16)B1' ) flag++;
    if ( version == '12.2(16)B2' ) flag++;
    if ( version == '12.2(16)B3' ) flag++;
    if ( version == '12.2(16)BX' ) flag++;
    if ( version == '12.2(16)BX1' ) flag++;
    if ( version == '12.2(16)BX2' ) flag++;
    if ( version == '12.2(16)BX3' ) flag++;
    if ( version == '12.2(17a)SX' ) flag++;
    if ( version == '12.2(17a)SX1' ) flag++;
    if ( version == '12.2(17a)SX2' ) flag++;
    if ( version == '12.2(17a)SX3' ) flag++;
    if ( version == '12.2(17a)SX4' ) flag++;
    if ( version == '12.2(17b)SXA' ) flag++;
    if ( version == '12.2(17b)SXA1' ) flag++;
    if ( version == '12.2(17b)SXA2' ) flag++;
    if ( version == '12.2(17d)SXB' ) flag++;
    if ( version == '12.2(17d)SXB1' ) flag++;
    if ( version == '12.2(17d)SXB10' ) flag++;
    if ( version == '12.2(17d)SXB11' ) flag++;
    if ( version == '12.2(17d)SXB11a' ) flag++;
    if ( version == '12.2(17d)SXB2' ) flag++;
    if ( version == '12.2(17d)SXB3' ) flag++;
    if ( version == '12.2(17d)SXB4' ) flag++;
    if ( version == '12.2(17d)SXB5' ) flag++;
    if ( version == '12.2(17d)SXB6' ) flag++;
    if ( version == '12.2(17d)SXB7' ) flag++;
    if ( version == '12.2(17d)SXB8' ) flag++;
    if ( version == '12.2(17d)SXB9' ) flag++;
    if ( version == '12.2(18)IXA' ) flag++;
    if ( version == '12.2(18)IXB' ) flag++;
    if ( version == '12.2(18)IXB1' ) flag++;
    if ( version == '12.2(18)IXB2' ) flag++;
    if ( version == '12.2(18)IXC' ) flag++;
    if ( version == '12.2(18)IXD' ) flag++;
    if ( version == '12.2(18)IXD1' ) flag++;
    if ( version == '12.2(18)IXE' ) flag++;
    if ( version == '12.2(18)IXF' ) flag++;
    if ( version == '12.2(18)IXF1' ) flag++;
    if ( version == '12.2(18)IXG' ) flag++;
    if ( version == '12.2(18)IXH' ) flag++;
    if ( version == '12.2(18)IXH1' ) flag++;
    if ( version == '12.2(18)S' ) flag++;
    if ( version == '12.2(18)S0a' ) flag++;
    if ( version == '12.2(18)S1' ) flag++;
    if ( version == '12.2(18)S10' ) flag++;
    if ( version == '12.2(18)S11' ) flag++;
    if ( version == '12.2(18)S12' ) flag++;
    if ( version == '12.2(18)S13' ) flag++;
    if ( version == '12.2(18)S2' ) flag++;
    if ( version == '12.2(18)S3' ) flag++;
    if ( version == '12.2(18)S4' ) flag++;
    if ( version == '12.2(18)S5' ) flag++;
    if ( version == '12.2(18)S6' ) flag++;
    if ( version == '12.2(18)S7' ) flag++;
    if ( version == '12.2(18)S8' ) flag++;
    if ( version == '12.2(18)S9' ) flag++;
    if ( version == '12.2(18)SO' ) flag++;
    if ( version == '12.2(18)SO1' ) flag++;
    if ( version == '12.2(18)SO2' ) flag++;
    if ( version == '12.2(18)SO3' ) flag++;
    if ( version == '12.2(18)SO4' ) flag++;
    if ( version == '12.2(18)SO5' ) flag++;
    if ( version == '12.2(18)SO6' ) flag++;
    if ( version == '12.2(18)SO7' ) flag++;
    if ( version == '12.2(18)SV3' ) flag++;
    if ( version == '12.2(18)SXD' ) flag++;
    if ( version == '12.2(18)SXD1' ) flag++;
    if ( version == '12.2(18)SXD2' ) flag++;
    if ( version == '12.2(18)SXD3' ) flag++;
    if ( version == '12.2(18)SXD4' ) flag++;
    if ( version == '12.2(18)SXD5' ) flag++;
    if ( version == '12.2(18)SXD6' ) flag++;
    if ( version == '12.2(18)SXD7' ) flag++;
    if ( version == '12.2(18)SXD7a' ) flag++;
    if ( version == '12.2(18)SXD7b' ) flag++;
    if ( version == '12.2(18)SXE' ) flag++;
    if ( version == '12.2(18)SXE1' ) flag++;
    if ( version == '12.2(18)SXE2' ) flag++;
    if ( version == '12.2(18)SXE3' ) flag++;
    if ( version == '12.2(18)SXE4' ) flag++;
    if ( version == '12.2(18)SXE5' ) flag++;
    if ( version == '12.2(18)SXE6' ) flag++;
    if ( version == '12.2(18)SXE6a' ) flag++;
    if ( version == '12.2(18)SXE6b' ) flag++;
    if ( version == '12.2(18)SXF' ) flag++;
    if ( version == '12.2(18)SXF1' ) flag++;
    if ( version == '12.2(18)SXF10' ) flag++;
    if ( version == '12.2(18)SXF10a' ) flag++;
    if ( version == '12.2(18)SXF11' ) flag++;
    if ( version == '12.2(18)SXF12' ) flag++;
    if ( version == '12.2(18)SXF12a' ) flag++;
    if ( version == '12.2(18)SXF13' ) flag++;
    if ( version == '12.2(18)SXF13a' ) flag++;
    if ( version == '12.2(18)SXF13b' ) flag++;
    if ( version == '12.2(18)SXF14' ) flag++;
    if ( version == '12.2(18)SXF15' ) flag++;
    if ( version == '12.2(18)SXF15a' ) flag++;
    if ( version == '12.2(18)SXF16' ) flag++;
    if ( version == '12.2(18)SXF17' ) flag++;
    if ( version == '12.2(18)SXF2' ) flag++;
    if ( version == '12.2(18)SXF3' ) flag++;
    if ( version == '12.2(18)SXF4' ) flag++;
    if ( version == '12.2(18)SXF5' ) flag++;
    if ( version == '12.2(18)SXF6' ) flag++;
    if ( version == '12.2(18)SXF7' ) flag++;
    if ( version == '12.2(18)SXF8' ) flag++;
    if ( version == '12.2(18)SXF9' ) flag++;
    if ( version == '12.2(18)ZU' ) flag++;
    if ( version == '12.2(18)ZU1' ) flag++;
    if ( version == '12.2(18)ZU2' ) flag++;
    if ( version == '12.2(18)ZY' ) flag++;
    if ( version == '12.2(18)ZY1' ) flag++;
    if ( version == '12.2(18)ZY2' ) flag++;
    if ( version == '12.2(18)ZYA' ) flag++;
    if ( version == '12.2(18)ZYA1' ) flag++;
    if ( version == '12.2(18)ZYA2' ) flag++;
    if ( version == '12.2(18)ZYA3' ) flag++;
    if ( version == '12.2(2)B' ) flag++;
    if ( version == '12.2(2)B1' ) flag++;
    if ( version == '12.2(2)B2' ) flag++;
    if ( version == '12.2(2)B3' ) flag++;
    if ( version == '12.2(2)B4' ) flag++;
    if ( version == '12.2(2)B5' ) flag++;
    if ( version == '12.2(2)B6' ) flag++;
    if ( version == '12.2(2)B7' ) flag++;
    if ( version == '12.2(2)BX' ) flag++;
    if ( version == '12.2(2)BX1' ) flag++;
    if ( version == '12.2(2)BX2' ) flag++;
    if ( version == '12.2(2)BY' ) flag++;
    if ( version == '12.2(2)BY1' ) flag++;
    if ( version == '12.2(2)BY2' ) flag++;
    if ( version == '12.2(2)BY3' ) flag++;
    if ( version == '12.2(2)DD' ) flag++;
    if ( version == '12.2(2)DD1' ) flag++;
    if ( version == '12.2(2)DD2' ) flag++;
    if ( version == '12.2(2)DD3' ) flag++;
    if ( version == '12.2(2)DD4' ) flag++;
    if ( version == '12.2(2)DX' ) flag++;
    if ( version == '12.2(2)DX1' ) flag++;
    if ( version == '12.2(2)DX2' ) flag++;
    if ( version == '12.2(2)DX3' ) flag++;
    if ( version == '12.2(2)T' ) flag++;
    if ( version == '12.2(2)T1' ) flag++;
    if ( version == '12.2(2)T2' ) flag++;
    if ( version == '12.2(2)T3' ) flag++;
    if ( version == '12.2(2)T4' ) flag++;
    if ( version == '12.2(2)XA' ) flag++;
    if ( version == '12.2(2)XA1' ) flag++;
    if ( version == '12.2(2)XA2' ) flag++;
    if ( version == '12.2(2)XA3' ) flag++;
    if ( version == '12.2(2)XA4' ) flag++;
    if ( version == '12.2(2)XA5' ) flag++;
    if ( version == '12.2(2)XB1' ) flag++;
    if ( version == '12.2(2)XB10' ) flag++;
    if ( version == '12.2(2)XB11' ) flag++;
    if ( version == '12.2(2)XB12' ) flag++;
    if ( version == '12.2(2)XB14' ) flag++;
    if ( version == '12.2(2)XB15' ) flag++;
    if ( version == '12.2(2)XB16' ) flag++;
    if ( version == '12.2(2)XB2' ) flag++;
    if ( version == '12.2(2)XB3' ) flag++;
    if ( version == '12.2(2)XB4' ) flag++;
    if ( version == '12.2(2)XB5' ) flag++;
    if ( version == '12.2(2)XB6' ) flag++;
    if ( version == '12.2(2)XB7' ) flag++;
    if ( version == '12.2(2)XB8' ) flag++;
    if ( version == '12.2(2)XB9' ) flag++;
    if ( version == '12.2(2)XF' ) flag++;
    if ( version == '12.2(2)XF1' ) flag++;
    if ( version == '12.2(2)XF2' ) flag++;
    if ( version == '12.2(2)XG' ) flag++;
    if ( version == '12.2(2)XG1' ) flag++;
    if ( version == '12.2(2)XK' ) flag++;
    if ( version == '12.2(2)XK2' ) flag++;
    if ( version == '12.2(2)XK3' ) flag++;
    if ( version == '12.2(2)XN' ) flag++;
    if ( version == '12.2(2)XT' ) flag++;
    if ( version == '12.2(2)XT2' ) flag++;
    if ( version == '12.2(2)XT3' ) flag++;
    if ( version == '12.2(2)XU' ) flag++;
    if ( version == '12.2(2)XU2' ) flag++;
    if ( version == '12.2(2)XU3' ) flag++;
    if ( version == '12.2(2)XU4' ) flag++;
    if ( version == '12.2(20)S' ) flag++;
    if ( version == '12.2(20)S1' ) flag++;
    if ( version == '12.2(20)S10' ) flag++;
    if ( version == '12.2(20)S11' ) flag++;
    if ( version == '12.2(20)S12' ) flag++;
    if ( version == '12.2(20)S13' ) flag++;
    if ( version == '12.2(20)S14' ) flag++;
    if ( version == '12.2(20)S2' ) flag++;
    if ( version == '12.2(20)S2a' ) flag++;
    if ( version == '12.2(20)S3' ) flag++;
    if ( version == '12.2(20)S4' ) flag++;
    if ( version == '12.2(20)S4a' ) flag++;
    if ( version == '12.2(20)S5' ) flag++;
    if ( version == '12.2(20)S6' ) flag++;
    if ( version == '12.2(20)S6a' ) flag++;
    if ( version == '12.2(20)S7' ) flag++;
    if ( version == '12.2(20)S8' ) flag++;
    if ( version == '12.2(20)S9' ) flag++;
    if ( version == '12.2(20)S9a' ) flag++;
    if ( version == '12.2(20)S9b' ) flag++;
    if ( version == '12.2(22)S' ) flag++;
    if ( version == '12.2(22)S1' ) flag++;
    if ( version == '12.2(22)S2' ) flag++;
    if ( version == '12.2(22)SV1' ) flag++;
    if ( version == '12.2(23)SV1' ) flag++;
    if ( version == '12.2(24)SV1' ) flag++;
    if ( version == '12.2(25)EY' ) flag++;
    if ( version == '12.2(25)EY1' ) flag++;
    if ( version == '12.2(25)EY2' ) flag++;
    if ( version == '12.2(25)EY3' ) flag++;
    if ( version == '12.2(25)EY4' ) flag++;
    if ( version == '12.2(25)S' ) flag++;
    if ( version == '12.2(25)S1' ) flag++;
    if ( version == '12.2(25)S10' ) flag++;
    if ( version == '12.2(25)S11' ) flag++;
    if ( version == '12.2(25)S12' ) flag++;
    if ( version == '12.2(25)S13' ) flag++;
    if ( version == '12.2(25)S14' ) flag++;
    if ( version == '12.2(25)S15' ) flag++;
    if ( version == '12.2(25)S2' ) flag++;
    if ( version == '12.2(25)S3' ) flag++;
    if ( version == '12.2(25)S4' ) flag++;
    if ( version == '12.2(25)S5' ) flag++;
    if ( version == '12.2(25)S6' ) flag++;
    if ( version == '12.2(25)S7' ) flag++;
    if ( version == '12.2(25)S8' ) flag++;
    if ( version == '12.2(25)S9' ) flag++;
    if ( version == '12.2(25)SED' ) flag++;
    if ( version == '12.2(25)SED1' ) flag++;
    if ( version == '12.2(25)SEE' ) flag++;
    if ( version == '12.2(25)SEE4' ) flag++;
    if ( version == '12.2(25)SEG' ) flag++;
    if ( version == '12.2(25)SEG1' ) flag++;
    if ( version == '12.2(25)SEG3' ) flag++;
    if ( version == '12.2(25)SV2' ) flag++;
    if ( version == '12.2(25)SW11' ) flag++;
    if ( version == '12.2(25)SW3a' ) flag++;
    if ( version == '12.2(27)SBA' ) flag++;
    if ( version == '12.2(27)SBA1' ) flag++;
    if ( version == '12.2(27)SBA2' ) flag++;
    if ( version == '12.2(27)SBA4' ) flag++;
    if ( version == '12.2(27)SBA5' ) flag++;
    if ( version == '12.2(27)SBA6' ) flag++;
    if ( version == '12.2(27)SBB' ) flag++;
    if ( version == '12.2(27)SBB1' ) flag++;
    if ( version == '12.2(27)SBB2' ) flag++;
    if ( version == '12.2(27)SBB2a' ) flag++;
    if ( version == '12.2(27)SBB3' ) flag++;
    if ( version == '12.2(27)SBB4' ) flag++;
    if ( version == '12.2(27)SBB4a' ) flag++;
    if ( version == '12.2(27)SBB4b' ) flag++;
    if ( version == '12.2(27)SBB4c' ) flag++;
    if ( version == '12.2(27)SBB4d' ) flag++;
    if ( version == '12.2(27)SBB4e' ) flag++;
    if ( version == '12.2(27)SBB5' ) flag++;
    if ( version == '12.2(27)SBB6' ) flag++;
    if ( version == '12.2(27)SBB6a' ) flag++;
    if ( version == '12.2(27)SBB7' ) flag++;
    if ( version == '12.2(27)SBB8' ) flag++;
    if ( version == '12.2(27)SBB9' ) flag++;
    if ( version == '12.2(27)SBC' ) flag++;
    if ( version == '12.2(27)SBC1' ) flag++;
    if ( version == '12.2(27)SBC2' ) flag++;
    if ( version == '12.2(27)SBC3' ) flag++;
    if ( version == '12.2(27)SBC4' ) flag++;
    if ( version == '12.2(27)SBC5' ) flag++;
    if ( version == '12.2(27)SV' ) flag++;
    if ( version == '12.2(27)SV1' ) flag++;
    if ( version == '12.2(27)SV2' ) flag++;
    if ( version == '12.2(27)SV3' ) flag++;
    if ( version == '12.2(27)SV4' ) flag++;
    if ( version == '12.2(27)SV5' ) flag++;
    if ( version == '12.2(27)UZ' ) flag++;
    if ( version == '12.2(27)UZ1' ) flag++;
    if ( version == '12.2(28)SB' ) flag++;
    if ( version == '12.2(28)SB1' ) flag++;
    if ( version == '12.2(28)SB10' ) flag++;
    if ( version == '12.2(28)SB11' ) flag++;
    if ( version == '12.2(28)SB12' ) flag++;
    if ( version == '12.2(28)SB13' ) flag++;
    if ( version == '12.2(28)SB2' ) flag++;
    if ( version == '12.2(28)SB3' ) flag++;
    if ( version == '12.2(28)SB4' ) flag++;
    if ( version == '12.2(28)SB4a' ) flag++;
    if ( version == '12.2(28)SB4b' ) flag++;
    if ( version == '12.2(28)SB4c' ) flag++;
    if ( version == '12.2(28)SB4d' ) flag++;
    if ( version == '12.2(28)SB5' ) flag++;
    if ( version == '12.2(28)SB5a' ) flag++;
    if ( version == '12.2(28)SB5b' ) flag++;
    if ( version == '12.2(28)SB5c' ) flag++;
    if ( version == '12.2(28)SB6' ) flag++;
    if ( version == '12.2(28)SB7' ) flag++;
    if ( version == '12.2(28)SB8' ) flag++;
    if ( version == '12.2(28)SB9' ) flag++;
    if ( version == '12.2(28)SV' ) flag++;
    if ( version == '12.2(28)SV1' ) flag++;
    if ( version == '12.2(28)SV2' ) flag++;
    if ( version == '12.2(28)ZV' ) flag++;
    if ( version == '12.2(28)ZV1' ) flag++;
    if ( version == '12.2(28)ZX' ) flag++;
    if ( version == '12.2(28a)ZV1' ) flag++;
    if ( version == '12.2(29)SV3' ) flag++;
    if ( version == '12.2(29)SVA2' ) flag++;
    if ( version == '12.2(29)SVC' ) flag++;
    if ( version == '12.2(29)SVD' ) flag++;
    if ( version == '12.2(29)SVD0' ) flag++;
    if ( version == '12.2(29)SVD1' ) flag++;
    if ( version == '12.2(29)SVE0' ) flag++;
    if ( version == '12.2(29a)SV' ) flag++;
    if ( version == '12.2(29a)SV1' ) flag++;
    if ( version == '12.2(29b)SV' ) flag++;
    if ( version == '12.2(29b)SV1' ) flag++;
    if ( version == '12.2(31)SB' ) flag++;
    if ( version == '12.2(31)SB1' ) flag++;
    if ( version == '12.2(31)SB10' ) flag++;
    if ( version == '12.2(31)SB10a' ) flag++;
    if ( version == '12.2(31)SB10b' ) flag++;
    if ( version == '12.2(31)SB10c' ) flag++;
    if ( version == '12.2(31)SB10d' ) flag++;
    if ( version == '12.2(31)SB10e' ) flag++;
    if ( version == '12.2(31)SB11' ) flag++;
    if ( version == '12.2(31)SB11a' ) flag++;
    if ( version == '12.2(31)SB11b' ) flag++;
    if ( version == '12.2(31)SB12' ) flag++;
    if ( version == '12.2(31)SB12a' ) flag++;
    if ( version == '12.2(31)SB13' ) flag++;
    if ( version == '12.2(31)SB14' ) flag++;
    if ( version == '12.2(31)SB15' ) flag++;
    if ( version == '12.2(31)SB16' ) flag++;
    if ( version == '12.2(31)SB17' ) flag++;
    if ( version == '12.2(31)SB1a' ) flag++;
    if ( version == '12.2(31)SB1b' ) flag++;
    if ( version == '12.2(31)SB1c' ) flag++;
    if ( version == '12.2(31)SB1d' ) flag++;
    if ( version == '12.2(31)SB1e' ) flag++;
    if ( version == '12.2(31)SB1f' ) flag++;
    if ( version == '12.2(31)SB1g' ) flag++;
    if ( version == '12.2(31)SB2' ) flag++;
    if ( version == '12.2(31)SB2a' ) flag++;
    if ( version == '12.2(31)SB3' ) flag++;
    if ( version == '12.2(31)SB3a' ) flag++;
    if ( version == '12.2(31)SB3b' ) flag++;
    if ( version == '12.2(31)SB3c' ) flag++;
    if ( version == '12.2(31)SB3x' ) flag++;
    if ( version == '12.2(31)SB4' ) flag++;
    if ( version == '12.2(31)SB4a' ) flag++;
    if ( version == '12.2(31)SB5' ) flag++;
    if ( version == '12.2(31)SB5a' ) flag++;
    if ( version == '12.2(31)SB6' ) flag++;
    if ( version == '12.2(31)SB7' ) flag++;
    if ( version == '12.2(31)SB8' ) flag++;
    if ( version == '12.2(31)SB8a' ) flag++;
    if ( version == '12.2(31)SB9' ) flag++;
    if ( version == '12.2(31)SB9a' ) flag++;
    if ( version == '12.2(31)SB9b' ) flag++;
    if ( version == '12.2(31)SG2' ) flag++;
    if ( version == '12.2(31)XN' ) flag++;
    if ( version == '12.2(31)XN1' ) flag++;
    if ( version == '12.2(31)XN2' ) flag++;
    if ( version == '12.2(31)XN3' ) flag++;
    if ( version == '12.2(31)ZV' ) flag++;
    if ( version == '12.2(31)ZV0a' ) flag++;
    if ( version == '12.2(31)ZV0b' ) flag++;
    if ( version == '12.2(31)ZV0c' ) flag++;
    if ( version == '12.2(31)ZV0d' ) flag++;
    if ( version == '12.2(31)ZV0e' ) flag++;
    if ( version == '12.2(31)ZV0f' ) flag++;
    if ( version == '12.2(31)ZV0g' ) flag++;
    if ( version == '12.2(31)ZV0h' ) flag++;
    if ( version == '12.2(31)ZV0i' ) flag++;
    if ( version == '12.2(31)ZV0j' ) flag++;
    if ( version == '12.2(31)ZV1a' ) flag++;
    if ( version == '12.2(31)ZV1b' ) flag++;
    if ( version == '12.2(31)ZV1c' ) flag++;
    if ( version == '12.2(31)ZV2' ) flag++;
    if ( version == '12.2(31)ZV2a' ) flag++;
    if ( version == '12.2(31)ZV2c' ) flag++;
    if ( version == '12.2(31)ZV2d' ) flag++;
    if ( version == '12.2(31a)XN2' ) flag++;
    if ( version == '12.2(31a)XN3' ) flag++;
    if ( version == '12.2(31b)XN2' ) flag++;
    if ( version == '12.2(31b)XN3' ) flag++;
    if ( version == '12.2(31c)XN2' ) flag++;
    if ( version == '12.2(31c)XN3' ) flag++;
    if ( version == '12.2(33)IRA' ) flag++;
    if ( version == '12.2(33)IRB' ) flag++;
    if ( version == '12.2(33)IRC' ) flag++;
    if ( version == '12.2(33)IRD' ) flag++;
    if ( version == '12.2(33)SB' ) flag++;
    if ( version == '12.2(33)SB1' ) flag++;
    if ( version == '12.2(33)SB1a' ) flag++;
    if ( version == '12.2(33)SB1b' ) flag++;
    if ( version == '12.2(33)SB2' ) flag++;
    if ( version == '12.2(33)SB3' ) flag++;
    if ( version == '12.2(33)SB4' ) flag++;
    if ( version == '12.2(33)SB5' ) flag++;
    if ( version == '12.2(33)SB6' ) flag++;
    if ( version == '12.2(33)SB6a' ) flag++;
    if ( version == '12.2(33)SB7' ) flag++;
    if ( version == '12.2(33)SCA' ) flag++;
    if ( version == '12.2(33)SCA1' ) flag++;
    if ( version == '12.2(33)SCA2' ) flag++;
    if ( version == '12.2(33)SCB' ) flag++;
    if ( version == '12.2(33)SCB1' ) flag++;
    if ( version == '12.2(33)SCB2' ) flag++;
    if ( version == '12.2(33)SCB3' ) flag++;
    if ( version == '12.2(33)SCB4' ) flag++;
    if ( version == '12.2(33)SCB5' ) flag++;
    if ( version == '12.2(33)SCC' ) flag++;
    if ( version == '12.2(33)SRA' ) flag++;
    if ( version == '12.2(33)SRA1' ) flag++;
    if ( version == '12.2(33)SRA2' ) flag++;
    if ( version == '12.2(33)SRA3' ) flag++;
    if ( version == '12.2(33)SRA4' ) flag++;
    if ( version == '12.2(33)SRA5' ) flag++;
    if ( version == '12.2(33)SRA6' ) flag++;
    if ( version == '12.2(33)SRA7' ) flag++;
    if ( version == '12.2(33)SRB' ) flag++;
    if ( version == '12.2(33)SRB1' ) flag++;
    if ( version == '12.2(33)SRB2' ) flag++;
    if ( version == '12.2(33)SRB3' ) flag++;
    if ( version == '12.2(33)SRB4' ) flag++;
    if ( version == '12.2(33)SRB5' ) flag++;
    if ( version == '12.2(33)SRB5a' ) flag++;
    if ( version == '12.2(33)SRB6' ) flag++;
    if ( version == '12.2(33)SRB7' ) flag++;
    if ( version == '12.2(33)SRC' ) flag++;
    if ( version == '12.2(33)SRC1' ) flag++;
    if ( version == '12.2(33)SRC2' ) flag++;
    if ( version == '12.2(33)SRC3' ) flag++;
    if ( version == '12.2(33)SRC4' ) flag++;
    if ( version == '12.2(33)SRD' ) flag++;
    if ( version == '12.2(33)SRD1' ) flag++;
    if ( version == '12.2(33)SRD2' ) flag++;
    if ( version == '12.2(33)SRD2a' ) flag++;
    if ( version == '12.2(33)SXH' ) flag++;
    if ( version == '12.2(33)SXH0a' ) flag++;
    if ( version == '12.2(33)SXH1' ) flag++;
    if ( version == '12.2(33)SXH2' ) flag++;
    if ( version == '12.2(33)SXH2a' ) flag++;
    if ( version == '12.2(33)SXH3' ) flag++;
    if ( version == '12.2(33)SXH3a' ) flag++;
    if ( version == '12.2(33)SXH4' ) flag++;
    if ( version == '12.2(33)SXH5' ) flag++;
    if ( version == '12.2(33)SXI' ) flag++;
    if ( version == '12.2(33)SXI1' ) flag++;
    if ( version == '12.2(33)XN' ) flag++;
    if ( version == '12.2(33)XN1' ) flag++;
    if ( version == '12.2(33)XNA' ) flag++;
    if ( version == '12.2(33)XNA1' ) flag++;
    if ( version == '12.2(33)XNA2' ) flag++;
    if ( version == '12.2(33)XNB' ) flag++;
    if ( version == '12.2(33)XNB1' ) flag++;
    if ( version == '12.2(33)XNB2' ) flag++;
    if ( version == '12.2(33)XNB3' ) flag++;
    if ( version == '12.2(33)ZW' ) flag++;
    if ( version == '12.2(33)ZZ' ) flag++;
    if ( version == '12.2(34)SB1' ) flag++;
    if ( version == '12.2(34)SB2' ) flag++;
    if ( version == '12.2(34)SB3' ) flag++;
    if ( version == '12.2(34)SB4' ) flag++;
    if ( version == '12.2(34)SB4a' ) flag++;
    if ( version == '12.2(35)SE1' ) flag++;
    if ( version == '12.2(35)SE2' ) flag++;
    if ( version == '12.2(35)SE5' ) flag++;
    if ( version == '12.2(37)SE' ) flag++;
    if ( version == '12.2(37)SE1' ) flag++;
    if ( version == '12.2(37)SG1' ) flag++;
    if ( version == '12.2(4)B' ) flag++;
    if ( version == '12.2(4)B1' ) flag++;
    if ( version == '12.2(4)B2' ) flag++;
    if ( version == '12.2(4)B3' ) flag++;
    if ( version == '12.2(4)B4' ) flag++;
    if ( version == '12.2(4)B5' ) flag++;
    if ( version == '12.2(4)B6' ) flag++;
    if ( version == '12.2(4)B7' ) flag++;
    if ( version == '12.2(4)B7a' ) flag++;
    if ( version == '12.2(4)B8' ) flag++;
    if ( version == '12.2(4)BC1' ) flag++;
    if ( version == '12.2(4)BC1a' ) flag++;
    if ( version == '12.2(4)BC1b' ) flag++;
    if ( version == '12.2(4)BW' ) flag++;
    if ( version == '12.2(4)BW1' ) flag++;
    if ( version == '12.2(4)BW1a' ) flag++;
    if ( version == '12.2(4)BW2' ) flag++;
    if ( version == '12.2(4)BX' ) flag++;
    if ( version == '12.2(4)BX1' ) flag++;
    if ( version == '12.2(4)BX1a' ) flag++;
    if ( version == '12.2(4)BX1b' ) flag++;
    if ( version == '12.2(4)BX1c' ) flag++;
    if ( version == '12.2(4)BX1d' ) flag++;
    if ( version == '12.2(4)BX2' ) flag++;
    if ( version == '12.2(4)BY' ) flag++;
    if ( version == '12.2(4)BY1' ) flag++;
    if ( version == '12.2(4)BZ' ) flag++;
    if ( version == '12.2(4)BZ1' ) flag++;
    if ( version == '12.2(4)BZ2' ) flag++;
    if ( version == '12.2(4)MX' ) flag++;
    if ( version == '12.2(4)MX1' ) flag++;
    if ( version == '12.2(4)MX2' ) flag++;
    if ( version == '12.2(4)T' ) flag++;
    if ( version == '12.2(4)T1' ) flag++;
    if ( version == '12.2(4)T2' ) flag++;
    if ( version == '12.2(4)T3' ) flag++;
    if ( version == '12.2(4)T4' ) flag++;
    if ( version == '12.2(4)T5' ) flag++;
    if ( version == '12.2(4)T6' ) flag++;
    if ( version == '12.2(4)T7' ) flag++;
    if ( version == '12.2(4)XF' ) flag++;
    if ( version == '12.2(4)XF1' ) flag++;
    if ( version == '12.2(4)XL' ) flag++;
    if ( version == '12.2(4)XL3' ) flag++;
    if ( version == '12.2(4)XL4' ) flag++;
    if ( version == '12.2(4)XL5' ) flag++;
    if ( version == '12.2(4)XL6' ) flag++;
    if ( version == '12.2(4)XV' ) flag++;
    if ( version == '12.2(4)XV1' ) flag++;
    if ( version == '12.2(4)XV2' ) flag++;
    if ( version == '12.2(4)XV3' ) flag++;
    if ( version == '12.2(4)XV4' ) flag++;
    if ( version == '12.2(4)XV4a' ) flag++;
    if ( version == '12.2(4)XV5' ) flag++;
    if ( version == '12.2(4)XZ' ) flag++;
    if ( version == '12.2(4)XZ1' ) flag++;
    if ( version == '12.2(4)XZ2' ) flag++;
    if ( version == '12.2(4)XZ3' ) flag++;
    if ( version == '12.2(4)XZ4' ) flag++;
    if ( version == '12.2(4)XZ5' ) flag++;
    if ( version == '12.2(4)XZ6' ) flag++;
    if ( version == '12.2(4)XZ7' ) flag++;
    if ( version == '12.2(40)SE' ) flag++;
    if ( version == '12.2(44)SE' ) flag++;
    if ( version == '12.2(44)SE1' ) flag++;
    if ( version == '12.2(44)SE2' ) flag++;
    if ( version == '12.2(44)SE3' ) flag++;
    if ( version == '12.2(44)SE5' ) flag++;
    if ( version == '12.2(44)SE6' ) flag++;
    if ( version == '12.2(46)SE' ) flag++;
    if ( version == '12.2(50)SE' ) flag++;
    if ( version == '12.2(50)SE1' ) flag++;
    if ( version == '12.2(50)SE3' ) flag++;
    if ( version == '12.2(52)SE' ) flag++;
    if ( version == '12.2(8)B' ) flag++;
    if ( version == '12.2(8)B1' ) flag++;
    if ( version == '12.2(8)B2' ) flag++;
    if ( version == '12.2(8)BC1' ) flag++;
    if ( version == '12.2(8)BC2' ) flag++;
    if ( version == '12.2(8)BC2a' ) flag++;
    if ( version == '12.2(8)BZ' ) flag++;
    if ( version == '12.2(8)MC1' ) flag++;
    if ( version == '12.2(8)MC2' ) flag++;
    if ( version == '12.2(8)MC2b' ) flag++;
    if ( version == '12.2(8)MC2c' ) flag++;
    if ( version == '12.2(8)MC2d' ) flag++;
    if ( version == '12.2(8)T' ) flag++;
    if ( version == '12.2(8)T0a' ) flag++;
    if ( version == '12.2(8)T0b' ) flag++;
    if ( version == '12.2(8)T0c' ) flag++;
    if ( version == '12.2(8)T0d' ) flag++;
    if ( version == '12.2(8)T0e' ) flag++;
    if ( version == '12.2(8)T1' ) flag++;
    if ( version == '12.2(8)T10' ) flag++;
    if ( version == '12.2(8)T2' ) flag++;
    if ( version == '12.2(8)T3' ) flag++;
    if ( version == '12.2(8)T4' ) flag++;
    if ( version == '12.2(8)T4a' ) flag++;
    if ( version == '12.2(8)T5' ) flag++;
    if ( version == '12.2(8)T6' ) flag++;
    if ( version == '12.2(8)T8' ) flag++;
    if ( version == '12.2(8)TPC10b' ) flag++;
    if ( version == '12.2(8)TPC10c' ) flag++;
    if ( version == '12.2(8)YD' ) flag++;
    if ( version == '12.2(8)YD1' ) flag++;
    if ( version == '12.2(8)YD2' ) flag++;
    if ( version == '12.2(8)YD3' ) flag++;
    if ( version == '12.2(8)YJ' ) flag++;
    if ( version == '12.2(8)YN' ) flag++;
    if ( version == '12.2(8)YY' ) flag++;
    if ( version == '12.2(8)YY1' ) flag++;
    if ( version == '12.2(8)YY2' ) flag++;
    if ( version == '12.2(8)YY3' ) flag++;
    if ( version == '12.2(8)YY4' ) flag++;
    if ( version == '12.2(9)S' ) flag++;
    if ( version == '12.2(9)ZA' ) flag++;
    if ( version == '12.2(99)SX1003' ) flag++;
    if ( version == '12.2(99)SX1006' ) flag++;
    if ( version == '12.2(99)SX1010' ) flag++;
    if ( version == '12.2(99)SX1012' ) flag++;
    if ( version == '12.2(99)SX1017' ) flag++;
    if ( version == '12.3(1)' ) flag++;
    if ( version == '12.3(10)' ) flag++;
    if ( version == '12.3(10a)' ) flag++;
    if ( version == '12.3(10a)M0' ) flag++;
    if ( version == '12.3(10b)' ) flag++;
    if ( version == '12.3(10c)' ) flag++;
    if ( version == '12.3(10d)' ) flag++;
    if ( version == '12.3(10e)' ) flag++;
    if ( version == '12.3(10f)' ) flag++;
    if ( version == '12.3(11)T' ) flag++;
    if ( version == '12.3(11)T1' ) flag++;
    if ( version == '12.3(11)T10' ) flag++;
    if ( version == '12.3(11)T11' ) flag++;
    if ( version == '12.3(11)T12' ) flag++;
    if ( version == '12.3(11)T2' ) flag++;
    if ( version == '12.3(11)T2a' ) flag++;
    if ( version == '12.3(11)T3' ) flag++;
    if ( version == '12.3(11)T4' ) flag++;
    if ( version == '12.3(11)T5' ) flag++;
    if ( version == '12.3(11)T6' ) flag++;
    if ( version == '12.3(11)T7' ) flag++;
    if ( version == '12.3(11)T8' ) flag++;
    if ( version == '12.3(11)T9' ) flag++;
    if ( version == '12.3(11)XL' ) flag++;
    if ( version == '12.3(11)XL1' ) flag++;
    if ( version == '12.3(11)XL2' ) flag++;
    if ( version == '12.3(11)XL3' ) flag++;
    if ( version == '12.3(11)YF' ) flag++;
    if ( version == '12.3(11)YK' ) flag++;
    if ( version == '12.3(11)YN' ) flag++;
    if ( version == '12.3(11)YS2' ) flag++;
    if ( version == '12.3(11)YW' ) flag++;
    if ( version == '12.3(11)YW1' ) flag++;
    if ( version == '12.3(11)YW2' ) flag++;
    if ( version == '12.3(11)YW3' ) flag++;
    if ( version == '12.3(11)YZ' ) flag++;
    if ( version == '12.3(11)YZ1' ) flag++;
    if ( version == '12.3(11)YZ2' ) flag++;
    if ( version == '12.3(11)ZB' ) flag++;
    if ( version == '12.3(11)ZB1' ) flag++;
    if ( version == '12.3(11)ZB2' ) flag++;
    if ( version == '12.3(12)' ) flag++;
    if ( version == '12.3(12a)' ) flag++;
    if ( version == '12.3(12b)' ) flag++;
    if ( version == '12.3(12c)' ) flag++;
    if ( version == '12.3(12d)' ) flag++;
    if ( version == '12.3(12e)' ) flag++;
    if ( version == '12.3(13)' ) flag++;
    if ( version == '12.3(13a)' ) flag++;
    if ( version == '12.3(13a)BC' ) flag++;
    if ( version == '12.3(13a)BC1' ) flag++;
    if ( version == '12.3(13a)BC2' ) flag++;
    if ( version == '12.3(13a)BC3' ) flag++;
    if ( version == '12.3(13a)BC4' ) flag++;
    if ( version == '12.3(13a)BC5' ) flag++;
    if ( version == '12.3(13a)BC6' ) flag++;
    if ( version == '12.3(13b)' ) flag++;
    if ( version == '12.3(14)T' ) flag++;
    if ( version == '12.3(14)T1' ) flag++;
    if ( version == '12.3(14)T2' ) flag++;
    if ( version == '12.3(14)T3' ) flag++;
    if ( version == '12.3(14)T4' ) flag++;
    if ( version == '12.3(14)T5' ) flag++;
    if ( version == '12.3(14)T6' ) flag++;
    if ( version == '12.3(14)T7' ) flag++;
    if ( version == '12.3(14)YT' ) flag++;
    if ( version == '12.3(14)YT1' ) flag++;
    if ( version == '12.3(14)YU1' ) flag++;
    if ( version == '12.3(14)YX4' ) flag++;
    if ( version == '12.3(14)YX9' ) flag++;
    if ( version == '12.3(15)' ) flag++;
    if ( version == '12.3(15a)' ) flag++;
    if ( version == '12.3(15b)' ) flag++;
    if ( version == '12.3(16)' ) flag++;
    if ( version == '12.3(16a)' ) flag++;
    if ( version == '12.3(17)' ) flag++;
    if ( version == '12.3(17a)' ) flag++;
    if ( version == '12.3(17a)BC' ) flag++;
    if ( version == '12.3(17a)BC1' ) flag++;
    if ( version == '12.3(17a)BC2' ) flag++;
    if ( version == '12.3(17b)' ) flag++;
    if ( version == '12.3(17b)BC3' ) flag++;
    if ( version == '12.3(17b)BC4' ) flag++;
    if ( version == '12.3(17b)BC5' ) flag++;
    if ( version == '12.3(17b)BC6' ) flag++;
    if ( version == '12.3(17b)BC7' ) flag++;
    if ( version == '12.3(17b)BC8' ) flag++;
    if ( version == '12.3(17b)BC9' ) flag++;
    if ( version == '12.3(17c)' ) flag++;
    if ( version == '12.3(18)' ) flag++;
    if ( version == '12.3(18a)' ) flag++;
    if ( version == '12.3(19)' ) flag++;
    if ( version == '12.3(19a)' ) flag++;
    if ( version == '12.3(1a)' ) flag++;
    if ( version == '12.3(1a)B' ) flag++;
    if ( version == '12.3(1a)BW' ) flag++;
    if ( version == '12.3(2)T' ) flag++;
    if ( version == '12.3(2)T1' ) flag++;
    if ( version == '12.3(2)T2' ) flag++;
    if ( version == '12.3(2)T3' ) flag++;
    if ( version == '12.3(2)T4' ) flag++;
    if ( version == '12.3(2)T5' ) flag++;
    if ( version == '12.3(2)T6' ) flag++;
    if ( version == '12.3(2)T7' ) flag++;
    if ( version == '12.3(2)T8' ) flag++;
    if ( version == '12.3(2)T9' ) flag++;
    if ( version == '12.3(2)XA4' ) flag++;
    if ( version == '12.3(2)XA6' ) flag++;
    if ( version == '12.3(2)XC5' ) flag++;
    if ( version == '12.3(2)XE5' ) flag++;
    if ( version == '12.3(2)XF' ) flag++;
    if ( version == '12.3(2)XZ1' ) flag++;
    if ( version == '12.3(2)XZ2' ) flag++;
    if ( version == '12.3(20)' ) flag++;
    if ( version == '12.3(20a)' ) flag++;
    if ( version == '12.3(21)' ) flag++;
    if ( version == '12.3(21)BC' ) flag++;
    if ( version == '12.3(21a)' ) flag++;
    if ( version == '12.3(21a)BC1' ) flag++;
    if ( version == '12.3(21a)BC2' ) flag++;
    if ( version == '12.3(21a)BC3' ) flag++;
    if ( version == '12.3(21a)BC4' ) flag++;
    if ( version == '12.3(21a)BC5' ) flag++;
    if ( version == '12.3(21a)BC6' ) flag++;
    if ( version == '12.3(21a)BC7' ) flag++;
    if ( version == '12.3(21a)BC8' ) flag++;
    if ( version == '12.3(21a)BC9' ) flag++;
    if ( version == '12.3(21b)' ) flag++;
    if ( version == '12.3(22)' ) flag++;
    if ( version == '12.3(22a)' ) flag++;
    if ( version == '12.3(23)' ) flag++;
    if ( version == '12.3(23)BC' ) flag++;
    if ( version == '12.3(23)BC1' ) flag++;
    if ( version == '12.3(23)BC2' ) flag++;
    if ( version == '12.3(23)BC3' ) flag++;
    if ( version == '12.3(23)BC4' ) flag++;
    if ( version == '12.3(23)BC5' ) flag++;
    if ( version == '12.3(23)BC6' ) flag++;
    if ( version == '12.3(23)BC7' ) flag++;
    if ( version == '12.3(23)BC8' ) flag++;
    if ( version == '12.3(23)BC9' ) flag++;
    if ( version == '12.3(24)' ) flag++;
    if ( version == '12.3(24a)' ) flag++;
    if ( version == '12.3(25)' ) flag++;
    if ( version == '12.3(26)' ) flag++;
    if ( version == '12.3(3)' ) flag++;
    if ( version == '12.3(3)B' ) flag++;
    if ( version == '12.3(3)B1' ) flag++;
    if ( version == '12.3(3a)' ) flag++;
    if ( version == '12.3(3b)' ) flag++;
    if ( version == '12.3(3c)' ) flag++;
    if ( version == '12.3(3d)' ) flag++;
    if ( version == '12.3(3e)' ) flag++;
    if ( version == '12.3(3f)' ) flag++;
    if ( version == '12.3(3g)' ) flag++;
    if ( version == '12.3(3h)' ) flag++;
    if ( version == '12.3(3i)' ) flag++;
    if ( version == '12.3(4)T' ) flag++;
    if ( version == '12.3(4)T1' ) flag++;
    if ( version == '12.3(4)T10' ) flag++;
    if ( version == '12.3(4)T11' ) flag++;
    if ( version == '12.3(4)T12' ) flag++;
    if ( version == '12.3(4)T2' ) flag++;
    if ( version == '12.3(4)T2a' ) flag++;
    if ( version == '12.3(4)T3' ) flag++;
    if ( version == '12.3(4)T4' ) flag++;
    if ( version == '12.3(4)T5' ) flag++;
    if ( version == '12.3(4)T6' ) flag++;
    if ( version == '12.3(4)T7' ) flag++;
    if ( version == '12.3(4)T8' ) flag++;
    if ( version == '12.3(4)T9' ) flag++;
    if ( version == '12.3(4)TPC11b' ) flag++;
    if ( version == '12.3(4)XD' ) flag++;
    if ( version == '12.3(4)XD1' ) flag++;
    if ( version == '12.3(4)XD2' ) flag++;
    if ( version == '12.3(4)XD3' ) flag++;
    if ( version == '12.3(4)XD4' ) flag++;
    if ( version == '12.3(4)XH' ) flag++;
    if ( version == '12.3(4)XH1' ) flag++;
    if ( version == '12.3(4)YE' ) flag++;
    if ( version == '12.3(4)YE1' ) flag++;
    if ( version == '12.3(5)' ) flag++;
    if ( version == '12.3(5a)' ) flag++;
    if ( version == '12.3(5a)B' ) flag++;
    if ( version == '12.3(5a)B0a' ) flag++;
    if ( version == '12.3(5a)B1' ) flag++;
    if ( version == '12.3(5a)B2' ) flag++;
    if ( version == '12.3(5a)B3' ) flag++;
    if ( version == '12.3(5a)B4' ) flag++;
    if ( version == '12.3(5a)B5' ) flag++;
    if ( version == '12.3(5b)' ) flag++;
    if ( version == '12.3(5c)' ) flag++;
    if ( version == '12.3(5d)' ) flag++;
    if ( version == '12.3(5e)' ) flag++;
    if ( version == '12.3(5f)' ) flag++;
    if ( version == '12.3(6)' ) flag++;
    if ( version == '12.3(6a)' ) flag++;
    if ( version == '12.3(6b)' ) flag++;
    if ( version == '12.3(6c)' ) flag++;
    if ( version == '12.3(6d)' ) flag++;
    if ( version == '12.3(6e)' ) flag++;
    if ( version == '12.3(6f)' ) flag++;
    if ( version == '12.3(7)T' ) flag++;
    if ( version == '12.3(7)T1' ) flag++;
    if ( version == '12.3(7)T10' ) flag++;
    if ( version == '12.3(7)T11' ) flag++;
    if ( version == '12.3(7)T12' ) flag++;
    if ( version == '12.3(7)T2' ) flag++;
    if ( version == '12.3(7)T3' ) flag++;
    if ( version == '12.3(7)T4' ) flag++;
    if ( version == '12.3(7)T6' ) flag++;
    if ( version == '12.3(7)T7' ) flag++;
    if ( version == '12.3(7)T8' ) flag++;
    if ( version == '12.3(7)T9' ) flag++;
    if ( version == '12.3(7)XI' ) flag++;
    if ( version == '12.3(7)XI1' ) flag++;
    if ( version == '12.3(7)XI10' ) flag++;
    if ( version == '12.3(7)XI10a' ) flag++;
    if ( version == '12.3(7)XI10b' ) flag++;
    if ( version == '12.3(7)XI1a' ) flag++;
    if ( version == '12.3(7)XI1b' ) flag++;
    if ( version == '12.3(7)XI1c' ) flag++;
    if ( version == '12.3(7)XI2' ) flag++;
    if ( version == '12.3(7)XI2a' ) flag++;
    if ( version == '12.3(7)XI2b' ) flag++;
    if ( version == '12.3(7)XI2c' ) flag++;
    if ( version == '12.3(7)XI3' ) flag++;
    if ( version == '12.3(7)XI3a' ) flag++;
    if ( version == '12.3(7)XI3b' ) flag++;
    if ( version == '12.3(7)XI3d' ) flag++;
    if ( version == '12.3(7)XI3e' ) flag++;
    if ( version == '12.3(7)XI4' ) flag++;
    if ( version == '12.3(7)XI5' ) flag++;
    if ( version == '12.3(7)XI6' ) flag++;
    if ( version == '12.3(7)XI7' ) flag++;
    if ( version == '12.3(7)XI7a' ) flag++;
    if ( version == '12.3(7)XI7b' ) flag++;
    if ( version == '12.3(7)XI8' ) flag++;
    if ( version == '12.3(7)XI8a' ) flag++;
    if ( version == '12.3(7)XI8bb' ) flag++;
    if ( version == '12.3(7)XI8bc' ) flag++;
    if ( version == '12.3(7)XI8c' ) flag++;
    if ( version == '12.3(7)XI8d' ) flag++;
    if ( version == '12.3(7)XI8e' ) flag++;
    if ( version == '12.3(7)XI8f' ) flag++;
    if ( version == '12.3(7)XI8g' ) flag++;
    if ( version == '12.3(7)XI9' ) flag++;
    if ( version == '12.3(7)XJ1' ) flag++;
    if ( version == '12.3(7)XL' ) flag++;
    if ( version == '12.3(7)XM' ) flag++;
    if ( version == '12.3(7)XR7' ) flag++;
    if ( version == '12.3(7)YB' ) flag++;
    if ( version == '12.3(7)YB1' ) flag++;
    if ( version == '12.3(8)T' ) flag++;
    if ( version == '12.3(8)T1' ) flag++;
    if ( version == '12.3(8)T10' ) flag++;
    if ( version == '12.3(8)T11' ) flag++;
    if ( version == '12.3(8)T2' ) flag++;
    if ( version == '12.3(8)T3' ) flag++;
    if ( version == '12.3(8)T4' ) flag++;
    if ( version == '12.3(8)T5' ) flag++;
    if ( version == '12.3(8)T6' ) flag++;
    if ( version == '12.3(8)T7' ) flag++;
    if ( version == '12.3(8)T8' ) flag++;
    if ( version == '12.3(8)T9' ) flag++;
    if ( version == '12.3(8)XW' ) flag++;
    if ( version == '12.3(8)XW1' ) flag++;
    if ( version == '12.3(8)XW1a' ) flag++;
    if ( version == '12.3(8)XW2' ) flag++;
    if ( version == '12.3(8)XW3' ) flag++;
    if ( version == '12.3(8)XX2d' ) flag++;
    if ( version == '12.3(8)XX2e' ) flag++;
    if ( version == '12.3(8)YC' ) flag++;
    if ( version == '12.3(8)YC1' ) flag++;
    if ( version == '12.3(8)YC2' ) flag++;
    if ( version == '12.3(8)YC3' ) flag++;
    if ( version == '12.3(8)YG6' ) flag++;
    if ( version == '12.3(8)YH' ) flag++;
    if ( version == '12.3(8)YI' ) flag++;
    if ( version == '12.3(8)YI1' ) flag++;
    if ( version == '12.3(8)YI2' ) flag++;
    if ( version == '12.3(8)YI3' ) flag++;
    if ( version == '12.3(8)ZA' ) flag++;
    if ( version == '12.3(8)ZA1' ) flag++;
    if ( version == '12.3(9)' ) flag++;
    if ( version == '12.3(9)M0' ) flag++;
    if ( version == '12.3(9)M1' ) flag++;
    if ( version == '12.3(9a)' ) flag++;
    if ( version == '12.3(9a)BC' ) flag++;
    if ( version == '12.3(9a)BC1' ) flag++;
    if ( version == '12.3(9a)BC2' ) flag++;
    if ( version == '12.3(9a)BC3' ) flag++;
    if ( version == '12.3(9a)BC4' ) flag++;
    if ( version == '12.3(9a)BC5' ) flag++;
    if ( version == '12.3(9a)BC6' ) flag++;
    if ( version == '12.3(9a)BC7' ) flag++;
    if ( version == '12.3(9a)BC8' ) flag++;
    if ( version == '12.3(9a)BC9' ) flag++;
    if ( version == '12.3(9b)' ) flag++;
    if ( version == '12.3(9c)' ) flag++;
    if ( version == '12.3(9d)' ) flag++;
    if ( version == '12.3(9e)' ) flag++;
    if ( version == '12.4(1)' ) flag++;
    if ( version == '12.4(10)' ) flag++;
    if ( version == '12.4(10a)' ) flag++;
    if ( version == '12.4(10b)' ) flag++;
    if ( version == '12.4(10c)' ) flag++;
    if ( version == '12.4(11)MR' ) flag++;
    if ( version == '12.4(11)T' ) flag++;
    if ( version == '12.4(11)T1' ) flag++;
    if ( version == '12.4(11)T2' ) flag++;
    if ( version == '12.4(11)T3' ) flag++;
    if ( version == '12.4(11)T4' ) flag++;
    if ( version == '12.4(11)XJ' ) flag++;
    if ( version == '12.4(11)XJ1' ) flag++;
    if ( version == '12.4(11)XJ2' ) flag++;
    if ( version == '12.4(11)XJ3' ) flag++;
    if ( version == '12.4(11)XJ4' ) flag++;
    if ( version == '12.4(11)XJ5' ) flag++;
    if ( version == '12.4(11)XJ6' ) flag++;
    if ( version == '12.4(11)XV' ) flag++;
    if ( version == '12.4(11)XV1' ) flag++;
    if ( version == '12.4(11)XW' ) flag++;
    if ( version == '12.4(11)XW1' ) flag++;
    if ( version == '12.4(11)XW10' ) flag++;
    if ( version == '12.4(11)XW2' ) flag++;
    if ( version == '12.4(11)XW3' ) flag++;
    if ( version == '12.4(11)XW4' ) flag++;
    if ( version == '12.4(11)XW5' ) flag++;
    if ( version == '12.4(11)XW6' ) flag++;
    if ( version == '12.4(11)XW7' ) flag++;
    if ( version == '12.4(11)XW8' ) flag++;
    if ( version == '12.4(11)XW9' ) flag++;
    if ( version == '12.4(12)' ) flag++;
    if ( version == '12.4(12)MR' ) flag++;
    if ( version == '12.4(12)MR1' ) flag++;
    if ( version == '12.4(12)MR2' ) flag++;
    if ( version == '12.4(12a)' ) flag++;
    if ( version == '12.4(12b)' ) flag++;
    if ( version == '12.4(12c)' ) flag++;
    if ( version == '12.4(13)' ) flag++;
    if ( version == '12.4(13a)' ) flag++;
    if ( version == '12.4(13b)' ) flag++;
    if ( version == '12.4(13c)' ) flag++;
    if ( version == '12.4(13d)' ) flag++;
    if ( version == '12.4(13e)' ) flag++;
    if ( version == '12.4(13f)' ) flag++;
    if ( version == '12.4(14)XK' ) flag++;
    if ( version == '12.4(15)T' ) flag++;
    if ( version == '12.4(15)T1' ) flag++;
    if ( version == '12.4(15)T2' ) flag++;
    if ( version == '12.4(15)T3' ) flag++;
    if ( version == '12.4(15)T4' ) flag++;
    if ( version == '12.4(15)T5' ) flag++;
    if ( version == '12.4(15)T6' ) flag++;
    if ( version == '12.4(15)T6a' ) flag++;
    if ( version == '12.4(15)T7' ) flag++;
    if ( version == '12.4(15)T8' ) flag++;
    if ( version == '12.4(15)T9' ) flag++;
    if ( version == '12.4(15)XQ' ) flag++;
    if ( version == '12.4(15)XQ1' ) flag++;
    if ( version == '12.4(15)XQ2' ) flag++;
    if ( version == '12.4(15)XQ2a' ) flag++;
    if ( version == '12.4(15)XQ2b' ) flag++;
    if ( version == '12.4(15)XQ2c' ) flag++;
    if ( version == '12.4(15)XQ3' ) flag++;
    if ( version == '12.4(15)XQ4' ) flag++;
    if ( version == '12.4(15)XR' ) flag++;
    if ( version == '12.4(15)XR1' ) flag++;
    if ( version == '12.4(15)XR2' ) flag++;
    if ( version == '12.4(15)XR3' ) flag++;
    if ( version == '12.4(15)XR4' ) flag++;
    if ( version == '12.4(15)XR5' ) flag++;
    if ( version == '12.4(15)XR6' ) flag++;
    if ( version == '12.4(15)XR7' ) flag++;
    if ( version == '12.4(15)XR8' ) flag++;
    if ( version == '12.4(15)XY' ) flag++;
    if ( version == '12.4(15)XY1' ) flag++;
    if ( version == '12.4(15)XY2' ) flag++;
    if ( version == '12.4(15)XY3' ) flag++;
    if ( version == '12.4(15)XY4' ) flag++;
    if ( version == '12.4(15)XY5' ) flag++;
    if ( version == '12.4(15)XZ' ) flag++;
    if ( version == '12.4(15)XZ1' ) flag++;
    if ( version == '12.4(15)XZ2' ) flag++;
    if ( version == '12.4(16)' ) flag++;
    if ( version == '12.4(16)MR' ) flag++;
    if ( version == '12.4(16)MR1' ) flag++;
    if ( version == '12.4(16)MR2' ) flag++;
    if ( version == '12.4(16a)' ) flag++;
    if ( version == '12.4(16b)' ) flag++;
    if ( version == '12.4(17)' ) flag++;
    if ( version == '12.4(17a)' ) flag++;
    if ( version == '12.4(17b)' ) flag++;
    if ( version == '12.4(18)' ) flag++;
    if ( version == '12.4(18a)' ) flag++;
    if ( version == '12.4(18b)' ) flag++;
    if ( version == '12.4(18c)' ) flag++;
    if ( version == '12.4(18d)' ) flag++;
    if ( version == '12.4(18e)' ) flag++;
    if ( version == '12.4(19)' ) flag++;
    if ( version == '12.4(19)MR' ) flag++;
    if ( version == '12.4(19)MR1' ) flag++;
    if ( version == '12.4(19)MR2' ) flag++;
    if ( version == '12.4(19a)' ) flag++;
    if ( version == '12.4(19b)' ) flag++;
    if ( version == '12.4(1a)' ) flag++;
    if ( version == '12.4(1b)' ) flag++;
    if ( version == '12.4(1c)' ) flag++;
    if ( version == '12.4(2)T' ) flag++;
    if ( version == '12.4(2)T1' ) flag++;
    if ( version == '12.4(2)T2' ) flag++;
    if ( version == '12.4(2)T3' ) flag++;
    if ( version == '12.4(2)T4' ) flag++;
    if ( version == '12.4(2)T5' ) flag++;
    if ( version == '12.4(2)T6' ) flag++;
    if ( version == '12.4(2)XA' ) flag++;
    if ( version == '12.4(2)XA1' ) flag++;
    if ( version == '12.4(2)XA2' ) flag++;
    if ( version == '12.4(20)MR' ) flag++;
    if ( version == '12.4(20)T' ) flag++;
    if ( version == '12.4(20)T1' ) flag++;
    if ( version == '12.4(20)T2' ) flag++;
    if ( version == '12.4(20)T3' ) flag++;
    if ( version == '12.4(20)YA' ) flag++;
    if ( version == '12.4(20)YA1' ) flag++;
    if ( version == '12.4(20)YA2' ) flag++;
    if ( version == '12.4(20)YA3' ) flag++;
    if ( version == '12.4(21)' ) flag++;
    if ( version == '12.4(21a)' ) flag++;
    if ( version == '12.4(21a)M1' ) flag++;
    if ( version == '12.4(22)GC1' ) flag++;
    if ( version == '12.4(22)T' ) flag++;
    if ( version == '12.4(22)T1' ) flag++;
    if ( version == '12.4(22)T2' ) flag++;
    if ( version == '12.4(22)XR' ) flag++;
    if ( version == '12.4(22)XR1' ) flag++;
    if ( version == '12.4(22)XR2' ) flag++;
    if ( version == '12.4(22)YB' ) flag++;
    if ( version == '12.4(22)YB1' ) flag++;
    if ( version == '12.4(22)YB4' ) flag++;
    if ( version == '12.4(22)YB5' ) flag++;
    if ( version == '12.4(22)YD' ) flag++;
    if ( version == '12.4(22)YD1' ) flag++;
    if ( version == '12.4(22)YD2' ) flag++;
    if ( version == '12.4(22)YE' ) flag++;
    if ( version == '12.4(22)YE1' ) flag++;
    if ( version == '12.4(23)' ) flag++;
    if ( version == '12.4(23a)' ) flag++;
    if ( version == '12.4(23b)' ) flag++;
    if ( version == '12.4(23b)M1' ) flag++;
    if ( version == '12.4(23c)' ) flag++;
    if ( version == '12.4(24)GC1' ) flag++;
    if ( version == '12.4(24)T' ) flag++;
    if ( version == '12.4(24)T1' ) flag++;
    if ( version == '12.4(25)' ) flag++;
    if ( version == '12.4(25a)' ) flag++;
    if ( version == '12.4(25b)' ) flag++;
    if ( version == '12.4(3)' ) flag++;
    if ( version == '12.4(3a)' ) flag++;
    if ( version == '12.4(3b)' ) flag++;
    if ( version == '12.4(3c)' ) flag++;
    if ( version == '12.4(3d)' ) flag++;
    if ( version == '12.4(3e)' ) flag++;
    if ( version == '12.4(3f)' ) flag++;
    if ( version == '12.4(3g)' ) flag++;
    if ( version == '12.4(3h)' ) flag++;
    if ( version == '12.4(3i)' ) flag++;
    if ( version == '12.4(3j)' ) flag++;
    if ( version == '12.4(4)T' ) flag++;
    if ( version == '12.4(4)T1' ) flag++;
    if ( version == '12.4(4)T2' ) flag++;
    if ( version == '12.4(4)T3' ) flag++;
    if ( version == '12.4(4)T4' ) flag++;
    if ( version == '12.4(4)T5' ) flag++;
    if ( version == '12.4(4)T6' ) flag++;
    if ( version == '12.4(4)T7' ) flag++;
    if ( version == '12.4(4)T8' ) flag++;
    if ( version == '12.4(4)XC' ) flag++;
    if ( version == '12.4(4)XC1' ) flag++;
    if ( version == '12.4(4)XC2' ) flag++;
    if ( version == '12.4(4)XC3' ) flag++;
    if ( version == '12.4(4)XC4' ) flag++;
    if ( version == '12.4(4)XC5' ) flag++;
    if ( version == '12.4(4)XC6' ) flag++;
    if ( version == '12.4(4)XC7' ) flag++;
    if ( version == '12.4(4)XD' ) flag++;
    if ( version == '12.4(4)XD1' ) flag++;
    if ( version == '12.4(4)XD10' ) flag++;
    if ( version == '12.4(4)XD11' ) flag++;
    if ( version == '12.4(4)XD12' ) flag++;
    if ( version == '12.4(4)XD2' ) flag++;
    if ( version == '12.4(4)XD3' ) flag++;
    if ( version == '12.4(4)XD4' ) flag++;
    if ( version == '12.4(4)XD5' ) flag++;
    if ( version == '12.4(4)XD6' ) flag++;
    if ( version == '12.4(4)XD7' ) flag++;
    if ( version == '12.4(4)XD8' ) flag++;
    if ( version == '12.4(4)XD9' ) flag++;
    if ( version == '12.4(5)' ) flag++;
    if ( version == '12.4(5a)' ) flag++;
    if ( version == '12.4(5a)M0' ) flag++;
    if ( version == '12.4(5b)' ) flag++;
    if ( version == '12.4(5c)' ) flag++;
    if ( version == '12.4(6)T' ) flag++;
    if ( version == '12.4(6)T1' ) flag++;
    if ( version == '12.4(6)T10' ) flag++;
    if ( version == '12.4(6)T11' ) flag++;
    if ( version == '12.4(6)T12' ) flag++;
    if ( version == '12.4(6)T2' ) flag++;
    if ( version == '12.4(6)T3' ) flag++;
    if ( version == '12.4(6)T4' ) flag++;
    if ( version == '12.4(6)T5' ) flag++;
    if ( version == '12.4(6)T5a' ) flag++;
    if ( version == '12.4(6)T5b' ) flag++;
    if ( version == '12.4(6)T5c' ) flag++;
    if ( version == '12.4(6)T5d' ) flag++;
    if ( version == '12.4(6)T5e' ) flag++;
    if ( version == '12.4(6)T6' ) flag++;
    if ( version == '12.4(6)T7' ) flag++;
    if ( version == '12.4(6)T8' ) flag++;
    if ( version == '12.4(6)T9' ) flag++;
    if ( version == '12.4(6)XE' ) flag++;
    if ( version == '12.4(6)XE1' ) flag++;
    if ( version == '12.4(6)XE2' ) flag++;
    if ( version == '12.4(6)XE3' ) flag++;
    if ( version == '12.4(6)XT' ) flag++;
    if ( version == '12.4(6)XT1' ) flag++;
    if ( version == '12.4(6)XT2' ) flag++;
    if ( version == '12.4(7)' ) flag++;
    if ( version == '12.4(7a)' ) flag++;
    if ( version == '12.4(7b)' ) flag++;
    if ( version == '12.4(7c)' ) flag++;
    if ( version == '12.4(7d)' ) flag++;
    if ( version == '12.4(7e)' ) flag++;
    if ( version == '12.4(7f)' ) flag++;
    if ( version == '12.4(7g)' ) flag++;
    if ( version == '12.4(7h)' ) flag++;
    if ( version == '12.4(8)' ) flag++;
    if ( version == '12.4(8a)' ) flag++;
    if ( version == '12.4(8b)' ) flag++;
    if ( version == '12.4(8c)' ) flag++;
    if ( version == '12.4(8d)' ) flag++;
    if ( version == '12.4(9)MR' ) flag++;
    if ( version == '12.4(9)T' ) flag++;
    if ( version == '12.4(9)T0a' ) flag++;
    if ( version == '12.4(9)T1' ) flag++;
    if ( version == '12.4(9)T2' ) flag++;
    if ( version == '12.4(9)T3' ) flag++;
    if ( version == '12.4(9)T4' ) flag++;
    if ( version == '12.4(9)T5' ) flag++;
    if ( version == '12.4(9)T6' ) flag++;
    if ( version == '12.4(9)T7' ) flag++;
    if (get_kb_item("Host/local_checks_enabled"))
    {
      if (flag)
      {
        flag = 0;
    
        # Cisco IOS
        buf = cisco_command_kb_item("Host/Cisco/Config/show_mpls_interface", "show mpls interface");
        if (check_cisco_result(buf))
        {
          if (!preg(pattern:"disabled", multiline:TRUE, string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
    
        # Cisco IOS XE
        buf = cisco_command_kb_item("Host/Cisco/Config/show_running-config", "show running-config");
        if (check_cisco_result(buf))
        {
          if (!preg(pattern:"no mpls ip", multiline:TRUE, string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
    
        # Cisco IOS XR
        buf = cisco_command_kb_item("Host/Cisco/Config/show_running-config_mpls", "show running-config mpls");
        if (check_cisco_result(buf))
        {
          if (preg(pattern:" mpls ldp", multiline:TRUE, string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
    
      }
    
      if (flag)
      {
        flag = 0;
    
        # Cisco IOS and Cisco XE
        buf = cisco_command_kb_item("Host/Cisco/Config/show_udp", "show udp");
        if (check_cisco_result(buf))
        {
          if (preg(pattern:"\s646\s", multiline:TRUE, string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
    
        # Cisco IOS XR
        buf = cisco_command_kb_item("Host/Cisco/Config/show_udp_brief", "show udp brief");
        if (check_cisco_result(buf))
        {
          if (preg(pattern:":646\s", multiline:TRUE, string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
      }
    }
    
    
    if (flag)
    {
      security_hole(port:0, extra:cisco_caveat(override));
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");
    
  • NASL familyCISCO
    NASL idCISCO-SA-20100324-LDP-IOSXR.NASL
    descriptionA device running Cisco IOS XR Software is vulnerable to a remote denial of service (DoS) condition if it is configured for Multiprotocol Label Switching (MPLS) and has support for Label Distribution Protocol (LDP). A crafted LDP UDP packet can cause an affected device running Cisco IOS XR Software to restart the mpls_ldp process. A system is vulnerable if configured with either LDP or Tag Distribution Protocol (TDP). Cisco has released free software updates that address this vulnerability. Workarounds that mitigate this vulnerability are available.
    last seen2019-10-28
    modified2013-12-14
    plugin id71434
    published2013-12-14
    reporterThis script is Copyright (C) 2013-2018 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/71434
    titleCisco IOS XR Software Multiprotocol Label Switching Packet Vulnerability (cisco-sa-20100324-ldp)
    code
    #TRUSTED 074442398547fc69de9942132ea727eb34ef9630c7d5195280608442b769cd4e3eec0cea06e1c502e2be85a49881e64c591458840765ce2106bb49356a8413b0262f9772b9f2e38fb81998cee16483a33f8cd82c0860bf624693d67c645a32ce74c42486d24faf8198cfbdd7a646e247caef9a70324381408f54a9a48b31b2fc73ac6f565486733cc256eb2717048da034b40da502c9a34f54d9e6a7293333c3e0d25cc69f684b4750e45aa6122f71b9ac688764a74eebe018446b6c0581aefe2295bd79bd026c2762d74c43afdf7504280893d26589d03618f7764838ca5db892d28fd638e6f5484ee8f4a4d8ee8c48324323d70e2af86aa6ccf8528d0703cdbb04f8751cd4fa998f095a41e9e63e6eda6b1a3f51d91d5fc2545627300d68289c72f3439ad7a12edf41ef6db8c56b7f5022688866188004999903823e0eb4ece5442932914b10f4e5262e12c76abae9a32e38fcc835e7caab55f43de49b894931344d033fb62957274c1fdd14d67b89fd7c328242e4d4717c70491d86646b9c8197016a70a640b6979a50f85df685cc8893a6683d40adbb1499d07a1c681feae2c9976cdd6f158103c6d92bb43356337bbf304c93508d52ca579bc9596e8ff725e265a63c8ee62e2035e9fd62d445c11c96b6b9bcb9623c27e5fe499fd0b8d16c1df995bba796886f0c0806f1a5b576737d3c9e7bad2121eb4e4dacd888a8e1
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were
    # extracted from Cisco Security Advisory cisco-sa-20100324-ldp.
    # The text itself is copyright (C) Cisco
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(71434);
      script_version("1.5");
      script_set_attribute(attribute:"plugin_modification_date", value:"2018/11/15");
    
      script_cve_id("CVE-2010-0576");
      script_bugtraq_id(38938);
      script_xref(name:"CISCO-BUG-ID", value:"CSCsj25893");
      script_xref(name:"CISCO-SA", value:"cisco-sa-20100324-ldp");
    
      script_name(english:"Cisco IOS XR Software Multiprotocol Label Switching Packet Vulnerability (cisco-sa-20100324-ldp)");
      script_summary(english:"Checks the IOS XR version");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote device is missing a vendor-supplied security patch."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "A device running Cisco IOS XR Software is vulnerable to a remote denial
    of service (DoS) condition if it is configured for Multiprotocol Label
    Switching (MPLS) and has support for Label Distribution Protocol (LDP). 
    A crafted LDP UDP packet can cause an affected device running Cisco IOS
    XR Software to restart the mpls_ldp process.  A system is vulnerable if
    configured with either LDP or Tag Distribution Protocol (TDP).  Cisco
    has released free software updates that address this vulnerability. 
    Workarounds that mitigate this vulnerability are available."
      );
      # https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20100324-ldp
      script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?1d8fad9b");
      script_set_attribute(
        attribute:"solution", 
        value:
    "Apply the relevant patch referenced in Cisco Security Advisory
    cisco-sa-20100324-ldp."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C");
      script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
      script_set_attribute(attribute:"exploit_available", value:"false");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2010/03/24");
      script_set_attribute(attribute:"patch_publication_date", value:"2010/03/24");
      script_set_attribute(attribute:"plugin_publication_date", value:"2013/12/14");
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:cisco:ios_xr");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2013-2018 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"CISCO");
    
      script_dependencies("cisco_ios_xr_version.nasl");
      script_require_keys("Host/Cisco/IOS-XR/Version");
    
      exit(0);
    }
    
    include("audit.inc");
    include("cisco_func.inc");
    include("cisco_kb_cmd_func.inc");
    
    flag = 0;
    report = "";
    override = 0;
    
    fixed_ver = "";
    cbi = "CSCsj25893";
    
    version = get_kb_item_or_exit("Host/Cisco/IOS-XR/Version");
    if (
         (cisco_gen_ver_compare(a:"3.5.0", b:version) >= 0) &&
         (cisco_gen_ver_compare(a:"3.5.2", b:version) < 0)
       ) flag ++;
    fixed_ver = "3.5.2.6";
    
    if (get_kb_item("Host/local_checks_enabled"))
    {
      if (flag)
      {
        flag = 0;
        buf = cisco_command_kb_item("Host/Cisco/Config/show_running-config_mpls", "show running-config mpls");
        if (check_cisco_result(buf))
        {
          if (preg(multiline:TRUE, pattern:"mpls ldp", string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
      }
    
      if (flag)
      {
        flag = 0;
        # Cisco IOS XR
        buf = cisco_command_kb_item("Host/Cisco/Config/show_udp_brief", "show udp brief");
        if (check_cisco_result(buf))
        {
          if (preg(multiline:TRUE, pattern:":646\s", string:buf)) { flag = 1; }
        } else if (cisco_needs_enable(buf)) { flag = 1; override = 1; }
      }
    }
    
    if (flag)
    {
      report =
        '\n  Cisco Bug ID        : ' + cbi +
        '\n    Installed Release : ' + version +
        '\n    Fixed Release     : ' + fixed_ver + '\n';
    
      security_hole(port:0, extra:report + cisco_caveat(override));
      exit(0);
    
    }
    else audit(AUDIT_HOST_NOT, "affected");