local lang = {
   ["icmp_v4_types"] = {
      ["type_0"] = "Echo Reply",
      ["type_1"] = "Unassigned",
      ["type_2"] = "Unassigned",
      ["type_3"] = "Destination Unreachable",
      ["type_4"] = "Source Quench (Deprecated)",
      ["type_5"] = "Redirect",
      ["type_6"] = "Alternate Host Address (Deprecated)",
      ["type_7"] = "Unassigned",
      ["type_8"] = "Echo",
      ["type_9"] = "Router Advertisement",
      ["type_10"] = "Router Solicitation",
      ["type_11"] = "Time Exceeded",
      ["type_12"] = "Parameter Problem",
      ["type_13"] = "Timestamp",
      ["type_14"] = "Timestamp Reply",
      ["type_15"] = "Information Request (Deprecated)",
      ["type_16"] = "Information Reply (Deprecated)",
      ["type_17"] = "Address Mask Request (Deprecated)",
      ["type_18"] = "Address Mask Reply (Deprecated)",
      ["type_19"] = "Reserved (for Security)",
      ["type_30"] = "Traceroute (Deprecated)",
      ["type_31"] = "Datagram Conversion Error (Deprecated)",
      ["type_32"] = "Mobile Host Redirect (Deprecated)",
      ["type_33"] = "IPv6 Where-Are-You (Deprecated)",
      ["type_34"] = "IPv6 I-Am-Here (Deprecated)",
      ["type_35"] = "Mobile Registration Request (Deprecated)",
      ["type_36"] = "Mobile Registration Reply (Deprecated)",
      ["type_37"] = "Domain Name Request (Deprecated)",
      ["type_38"] = "Domain Name Reply (Deprecated)",
      ["type_39"] = "SKIP (Deprecated)",
      ["type_40"] = "Photuris",
      ["type_41"] = "ICMP messages utilized by experimental mobility protocols such as Seamoby",
      ["type_42"] = "Extended Echo Request",
      ["type_43"] = "Extended Echo Reply",
      ["type_253"] = "RFC3692-style Experiment 1",
      ["type_254"] = "RFC3692-style Experiment 2",
      ["type_255"] = "Reserved",
   },
   ["icmp_v4_codes"] = {
      ["type_3"] = {
	 ["code_0"] = "Net Unreachable",
	 ["code_1"] = "Host Unreachable",
	 ["code_2"] = "Protocol Unreachable",
	 ["code_3"] = "Port Unreachable",
	 ["code_4"] = "Fragmentation Needed and Don't Fragment was Set",
	 ["code_5"] = "Source Route Failed",
	 ["code_6"] = "Destination Network Unknown",
	 ["code_7"] = "Destination Host Unknown",
	 ["code_8"] = "Source Host Isolated",
	 ["code_9"] = "Communication with Destination Network is Administratively Prohibited",
	 ["code_10"] = "Communication with Destination Host is Administratively Prohibited",
	 ["code_11"] = "Destination Network Unreachable for Type of Service",
	 ["code_12"] = "Destination Host Unreachable for Type of Service",
	 ["code_13"] = "Communication Administratively Prohibited",
	 ["code_14"] = "Host Precedence Violation",
	 ["code_15"] = "Precedence cutoff in effect",
      },
      ["type_5"] = {
	 ["code_0"] = "Redirect Datagram for the Network (or subnet)",
	 ["code_1"] = "Redirect Datagram for the Host",
	 ["code_2"] = "Redirect Datagram for the Type of Service and Network",
	 ["code_3"] = "Redirect Datagram for the Type of Service and Host",
      },
      ["type_6"] = {
	 ["code_0"] = "Alternate Address for Host",
      },
      ["type_9"] = {
	 ["code_0"] = "Normal router advertisement",
	 ["code_16"] = "Does not route common traffic",
      },
      ["type_11"] = {
	 ["code_0"] = "Time to Live exceeded in Transit",
	 ["code_1"] = "Fragment Reassembly Time Exceeded",
      },
      ["type_12"] = {
	 ["code_0"] = "Pointer indicates the error",
	 ["code_1"] = "Missing a Required Option",
	 ["code_2"] = "Bad Length",
      },
      ["type_40"] = {
	 ["code_0"] = "Bad SPI",
	 ["code_1"] = "Authentication Failed",
	 ["code_2"] = "Decompression Failed",
	 ["code_3"] = "Decryption Failed",
	 ["code_4"] = "Need Authentication",
	 ["code_5"] = "Need Authorization",
      },
      ["type_42"] = {
	 ["code_0"] = "No Error",
      },
      ["type_43"] = {
	 ["code_0"] = "No Error",
	 ["code_1"] = "Malformed Query",
	 ["code_2"] = "No Such Interface",
	 ["code_3"] = "No Such Table Entry",
	 ["code_4"] = "Multiple Interfaces Satisfy Query",
      },
   },
   ["icmp_v6_types"] = {
      ["type_0"] = "Reserved",
      ["type_1"] = "Destination Unreachable",
      ["type_2"] = "Packet Too Big",
      ["type_3"] = "Time Exceeded",
      ["type_4"] = "Parameter Problem",
      ["type_100"] = "Private experimentation",
      ["type_101"] = "Private experimentation",
      ["type_127"] = "Reserved for expansion of ICMPv6 error messages",
      ["type_128"] = "Echo Request",
      ["type_129"] = "Echo Reply",
      ["type_130"] = "Multicast Listener Query",
      ["type_131"] = "Multicast Listener Report",
      ["type_132"] = "Multicast Listener Done",
      ["type_133"] = "Router Solicitation",
      ["type_134"] = "Router Advertisement",
      ["type_135"] = "Neighbor Solicitation",
      ["type_136"] = "Neighbor Advertisement",
      ["type_137"] = "Redirect Message",
      ["type_138"] = "Router Renumbering",
      ["type_139"] = "ICMP Node Information Query",
      ["type_140"] = "ICMP Node Information Response",
      ["type_141"] = "Inverse Neighbor Discovery Solicitation Message",
      ["type_142"] = "Inverse Neighbor Discovery Advertisement Message",
      ["type_143"] = "Version 2 Multicast Listener Report",
      ["type_144"] = "Home Agent Address Discovery Request Message",
      ["type_145"] = "Home Agent Address Discovery Reply Message",
      ["type_146"] = "Mobile Prefix Solicitation",
      ["type_147"] = "Mobile Prefix Advertisement",
      ["type_148"] = "Certification Path Solicitation Message",
      ["type_149"] = "Certification Path Advertisement Message",
      ["type_150"] = "ICMP messages utilized by experimental mobility protocols such as Seamoby",
      ["type_151"] = "Multicast Router Advertisement",
      ["type_152"] = "Multicast Router Solicitation",
      ["type_153"] = "Multicast Router Termination",
      ["type_154"] = "FMIPv6 Messages",
      ["type_155"] = "RPL Control Message",
      ["type_156"] = "ILNPv6 Locator Update Message",
      ["type_157"] = "Duplicate Address Request",
      ["type_158"] = "Duplicate Address Confirmation",
      ["type_159"] = "MPL Control Message",
      ["type_160"] = "Extended Echo Request",
      ["type_161"] = "Extended Echo Reply",
      ["type_200"] = "Private experimentation",
      ["type_201"] = "Private experimentation",
      ["type_255"] = "Reserved for expansion of ICMPv6 informational messages",
   },
   ["icmp_v6_codes"] = {
      ["type_1"] = {
	 ["code_0"] = "No route to destination",
	 ["code_1"] = "Communication with destination administratively prohibited",
	 ["code_2"] = "Beyond scope of source address",
	 ["code_3"] = "Address unreachable",
	 ["code_4"] = "Port unreachable",
	 ["code_5"] = "Source address failed ingress/egress policy",
	 ["code_6"] = "Reject route to destination",
	 ["code_7"] = "Error in Source Routing Header",
      },
      ["type_3"] = {
	 ["code_0"] = "Hop limit exceeded in transit",
	 ["code_1"] = "Fragment reassembly time exceeded",
      },
      ["type_4 "] = {
	 ["code_0"] = "Erroneous header field encountered",
	 ["code_1"] = "Unrecognized Next Header type encountered",
	 ["code_2"] = "Unrecognized IPv6 option encountered",
	 ["code_3"] = "IPv6 First Fragment has incomplete IPv6 Header Chain",
	 ["code_4"] = "SR Upper-layer Header Error",
		    },
      ["type_138"] = {
	 ["code_0"] = "Router Renumbering Command",
	 ["code_1"] = "Router Renumbering Result",
	 ["code_255"] = "Sequence Number Reset",
      },
      ["type_139"] = {
	 ["code_0"] = "The Data field contains an IPv6 address which is the Subject of this Query.",
	 ["code_1"] = "The Data field contains a name which is the Subject of this Query, or is empty, as in the case of a NOOP.",
	 ["code_2"] = "The Data field contains an IPv4 address which is the Subject of this Query.",
      },
      ["type_140"] = {
	 ["code_0"] = "A successful reply. The Reply Data field may or may not be empty.",
	 ["code_1"] = "The Responder refuses to supply the answer. The Reply Data field will be empty.",
	 ["code_2"] = "The Qtype of the Query is unknown to the Responder. The Reply Data field will be empty.",
      },
      ["type_157"] = {
	 ["0"] = "DAR message",
	 ["1"] = "EDAR message with 64-bit ROVR field",
	 ["2"] = "EDAR message with 128-bit ROVR field",
	 ["3"] = "EDAR message with 192-bit ROVR field",
	 ["4"] = "EDAR message with 256-bit ROVR field",
      },
      ["type_158"] = {
	 ["0"] = "DAC message",
	 ["1"] = "EDAC message with 64-bit ROVR field",
	 ["2"] = "EDAC message with 128-bit ROVR field",
	 ["3"] = "EDAC message with 192-bit ROVR field",
	 ["4"] = "EDAC message with 256-bit ROVR field",
      },
      ["type_160"] = {
	 ["code_0"] = "No Error",
      },
      ["type_161"] = {
	 ["code_0"] = "No Error",
	 ["code_1"] = "Malformed Query",
	 ["code_2"] = "No Such Interface",
	 ["code_3"] = "No Such Table Entry",
	 ["code_4"] = "Multiple Interfaces Satisfy Query",
      }
   }
}

return lang
