#include <QtCore/qmap.h>
#ifndef QMAP_H
#if !defined(QT_NO_DATASTREAM)
template < typename Key, typename T > class QMap{
   private: struct Node{
      public: Key key;
      public: T value;
      public: struct QMapData::Node* backward;
      public: struct QMapData::Node* forward[1];
   };
   private: union /*anonymous*/{
      struct QMapData* d;
      struct QMapData::Node* e;
   };
   private: struct PayloadNode{
      public: Key key;
      public: T value;
      public: struct QMapData::Node* backward;
   };
   private: static inline int payload();
   private: static inline struct QMap::Node* concrete(struct QMapData::Node* node);
   public: inline QMap();
   public: inline QMap(class QMap const & other);
   public: inline ~QMap();
   public: inline bool operator !=(class QMap const & other) const
   public: inline int size() const
   public: inline bool isEmpty() const
   public: inline void detach();
   public: inline bool isDetached() const
   public: inline void setSharable(bool sharable);
   public: class iterator{
      private: struct QMapData::Node* i;
      public: typedef struct std::bidirectional_iterator_tag iterator_category;
      public: typedef ptrdiff_t difference_type;
      public: typedef T value_type;
      public: typedef T* pointer;
      public: typedef T& reference;
      public: inline operator struct QMapData::Node* () const
      public: inline iterator();
      public: inline iterator(struct QMapData::Node* node);
      public: inline Key const & key() const
      public: inline T& value() const
      public: inline T& operator *() const
      public: inline T* operator ->() const
      public: inline bool operator ==(class QMap::iterator const & o) const
      public: inline bool operator !=(class QMap::iterator const & o) const
      public: inline class QMap::iterator& operator ++();
      public: inline class QMap::iterator operator ++(int);
      public: inline class QMap::iterator& operator --();
      public: inline class QMap::iterator operator --(int);
      public: inline class QMap::iterator operator +(int j) const
      public: inline class QMap::iterator operator -(int j) const
      public: inline class QMap::iterator& operator +=(int j);
      public: inline class QMap::iterator& operator -=(int j);
      public: inline bool operator ==(class QMap::const_iterator const & o) const
      public: inline bool operator !=(class QMap::const_iterator const & o) const
      private: inline operator bool () const
   };
   public: class const_iterator{
      private: struct QMapData::Node* i;
      public: typedef struct std::bidirectional_iterator_tag iterator_category;
      public: typedef ptrdiff_t difference_type;
      public: typedef T value_type;
      public: typedef T const * pointer;
      public: typedef T& reference;
      public: inline operator struct QMapData::Node* () const
      public: inline const_iterator();
      public: inline const_iterator(struct QMapData::Node* node);
#ifdef QT_STRICT_ITERATORS
#else
      public: inline const_iterator(class QMap::iterator const & o);
#endif
      public: inline Key const & key() const
      public: inline T& value() const
      public: inline T& operator *() const
      public: inline T const * operator ->() const
      public: inline bool operator ==(class QMap::const_iterator const & o) const
      public: inline bool operator !=(class QMap::const_iterator const & o) const
      public: inline class QMap::const_iterator& operator ++();
      public: inline class QMap::const_iterator operator ++(int);
      public: inline class QMap::const_iterator& operator --();
      public: inline class QMap::const_iterator operator --(int);
      public: inline class QMap::const_iterator operator +(int j) const
      public: inline class QMap::const_iterator operator -(int j) const
      public: inline class QMap::const_iterator& operator +=(int j);
      public: inline class QMap::const_iterator& operator -=(int j);
      private: inline operator bool () const
   };
   public: inline class QMap::iterator begin();
   public: inline class QMap::const_iterator begin() const
   public: inline class QMap::const_iterator constBegin() const
   public: inline class QMap::iterator end();
   public: inline class QMap::const_iterator end() const
   public: inline class QMap::const_iterator constEnd() const
   public: typedef class QMap::iterator Iterator;
   public: typedef class QMap::const_iterator ConstIterator;
   public: inline int count() const
   public: typedef Key key_type;
   public: typedef T mapped_type;
   public: typedef ptrdiff_t difference_type;
   public: typedef int size_type;
   public: inline bool empty() const
   public: inline class QMap < aKey, aT >& operator =(class QMap const & other);
   public: inline void clear();
   private: inline struct QMapData::Node* node_create(struct QMapData* adt, struct QMapData::Node* * aupdate, Key const & akey, T const & avalue);
   private: inline struct QMapData::Node* findNode(Key const & akey) const
   public: inline T const value(Key const & akey) const
   public: inline T const value(Key const & akey, T& adefaultValue) const
   public: inline T const operator [](Key const & akey) const
   public: inline T& operator [](Key const & akey);
   public: inline int count(Key const & akey) const
   public: inline bool contains(Key const & akey) const
   public: inline typename QMap::iterator insert(Key const & akey, T const & avalue);
   public: inline typename QMap::iterator insertMulti(Key const & akey, T const & avalue);
   public: inline typename QMap::const_iterator find(Key const & akey) const
   public: inline typename QMap::const_iterator constFind(Key const & akey) const
   public: inline typename QMap::iterator find(Key const & akey);
   public: inline class QMap < aKey, aT >& unite(class QMap const & other);
   private: void freeData(struct QMapData* x);
   public: int remove(Key const & akey);
   public: T take(Key const & akey);
   public: typename QMap::iterator erase(class QMap::iterator it);
   private: void detach_helper();
   private: struct QMapData::Node* mutableFindNode(struct QMapData::Node* * aupdate, Key const & akey) const
   public: class QList < T > uniqueKeys() const
   public: class QList < T > keys() const
   public: class QList < T > keys(T const & avalue) const
   public: Key const key(T const & avalue) const
   public: class QList < T > values() const
   public: class QList < T > values(Key const & akey) const
   public: inline typename QMap::const_iterator lowerBound(Key const & akey) const
   public: inline typename QMap::iterator lowerBound(Key const & akey);
   public: inline typename QMap::const_iterator upperBound(Key const & akey) const
   public: inline typename QMap::iterator upperBound(Key const & akey);
   public: bool operator ==(class QMap const & other) const
#ifndef QT_NO_STL
   public: explicit QMap(class std::map < Key, T, class std::less < _Key >, class std::allocator < class std::pair < _Key const , _Tp > > > const & other);
   public: class std::map < Key, T, class std::less < _Key >, class std::allocator < class std::pair < _Key const , _Tp > > > toStdMap() const
#endif
#if !defined(QT_NO_DATASTREAM)
   friend class iterator;
   friend class const_iterator;
   friend public: operator struct QDataStream& (struct QDataStream&, class QMap < aKey, aT >&);
#endif
};
#endif // QMAP_H
#endif