__noinference__{
#ifndef _NETINET_IN_H_
#define _NETINET_IN_H_
#ifndef _uint8_t_def_
#define _uint8_t_def_
typedef unsigned char uint8_t;
#endif
#ifndef _uint16_t_def_
#define _uint16_t_def_
typedef unsigned short uint16_t;
#endif
#ifndef _uint32_t_def_
#define _uint32_t_def_
typedef unsigned long uint32_t;
#endif
#ifndef _sa_family_t_def_
#define _sa_family_t_def_
typedef uint16_t sa_family_t;
#endif
#ifndef _in_port_t_def_
#define _in_port_t_def_
typedef uint16_t in_port_t;
#endif
#ifndef _in_addr_t_def_
#define _in_addr_t_def_
typedef uint32_t in_addr_t;
#endif
#ifndef ___anonymous_enum_14___def_
#define ___anonymous_enum_14___def_
enum __anonymous_enum_14__{
  IPPROTO_IP = 0,
  IPPROTO_ICMP = 1,
  IPPROTO_IGMP = 2,
  IPPROTO_IPIP = 4,
  IPPROTO_TCP = 6,
  IPPROTO_EGP = 8,
  IPPROTO_PUP = 12,
  IPPROTO_UDP = 17,
  IPPROTO_IDP = 22,
  IPPROTO_RAW = 255,
  IPPROTO_MAX = 256U
};
#endif
#ifndef _in_addr_def_
#define _in_addr_def_
struct in_addr{
  in_addr_t s_addr;
};
#endif
#ifndef _sockaddr_in_def_
#define _sockaddr_in_def_
struct sockaddr_in{
  sa_family_t sin_family;
  in_port_t sin_port;
  struct in_addr sin_addr;
  unsigned char __pad[((16U - sizeof(short)) - sizeof(unsigned short)) - sizeof(struct in_addr)];
};
#endif
#ifndef IPPROTO_TCP
#define IPPROTO_TCP IPPROTO_TCP
#endif
#ifndef IPPROTO_RAW
#define IPPROTO_RAW IPPROTO_RAW
#endif
#ifndef INET_ADDRSTRLEN
#define INET_ADDRSTRLEN 16
#endif
#ifndef INADDR_ANY
#define INADDR_ANY ((unsigned long int) 0x00000000)
#endif
#ifndef IPPROTO_UDP
#define IPPROTO_UDP IPPROTO_UDP
#endif
#ifndef IPPROTO_IP
#define IPPROTO_IP IPPROTO_IP
#endif
#ifndef IPPROTO_ICMP
#define IPPROTO_ICMP IPPROTO_ICMP
#endif
#ifndef INADDR_NONE
#define INADDR_NONE 0xffffffff
#endif
#ifndef INADDR_LOOPBACK
#define INADDR_LOOPBACK 0x7f000001
#endif
#ifndef INADDR_BROADCAST
#define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
#endif

  /* We'd like to do
     include {
     IN6_IS_ADDR_LINKLOCAL
     IN6_IS_ADDR_LOOPBACK
     IN6_IS_ADDR_SITELOCAL
     IN6_IS_ADDR_V4COMPAT
     IN6_IS_ADDR_V4MAPPED
     }
     but these bring in declarations for htonl and ntohl, which
     conflict with the declarations below.
  */

  /* These aren't defined in OS X or Cygwin so we guess :-( */
  #ifndef _in_port_t_def_
  #define _in_port_t_def_
  typedef unsigned short in_port_t;
  #endif
  #ifndef _in_addr_t_def_
  #define _in_addr_t_def_
  typedef unsigned int in_addr_t;
  #endif
  /* Not defined in OS X */
  #ifndef _sa_family_t_def_
  #define _sa_family_t_def_
  typedef unsigned char sa_family_t;
  #endif

  extern uint32_t htonl(uint32_t x);

  extern uint16_t htons(uint16_t x);

  extern uint32_t ntohl(uint32_t x);

  extern uint16_t ntohs(uint16_t x);
#endif
}
