/* -*- C++ -*- */
/*************************************************************************
 * Copyright(c) 1995~2005  Masaharu Goto (cint@pcroot.cern.ch)
 *
 * For the licensing terms see the file COPYING
 *
 ************************************************************************/
// lib/prec_stl/vector

#pragma ifndef PREC_STL_VECTOR
#pragma define PREC_STL_VECTOR
#pragma link off global PREC_STL_VECTOR;
#pragma link C++ nestedtypedef;
#pragma link C++ nestedclass;
#if defined(G__HP_aCC) || defined(G__SUNPRO_CC)
#pragma mask_newdelete 0x1c;
#else
#pragma mask_newdelete 0x10;
#endif

// Imported from ANSI/ISO C++ 1997/Nov draft 
// Got some ideas from Scott Snyder, Fermi-lab
// Modified by Masaharu Goto
// SGI KCC porting by Philippe Canal, Fermi-lab

#include <_iterator>
#include <_memory>
#include <_utility>

#if defined(G__AIX)
template<class _Ty, class _D, class _Pt, class _Rt,
        class _Pt2, class _Rt2>
        class _Ptrit;
#endif

#if defined(G__ANSIISOLIB) || (G__GNUC>=3)
template<class T,class Allocator=std::allocator<T> >
#elif defined(G__GNUC) && !defined(G__KCC)
#if (G__GNUC_VER>=2095)
template<class T,class Allocator=allocator<T> >
#else
template<class T,class Allocator=alloc>
#endif
#elif defined(G__HPUX)
template<class T,class Allocator=allocator>
#else
template<class T,class Allocator=std::allocator<T> >
#endif
class vector {
 public:
  typedef T value_type;

#if ((defined(G__GNUC) || defined(G__SGI)) && !defined(G__KCC)) || defined(G__HPUX) || defined(G__STLPORT_VERSION)
  typedef value_type* pointer;
  typedef const value_type* const_pointer;
  typedef value_type& reference;
  typedef const value_type& const_reference;
  typedef size_t size_type;
  typedef ptrdiff_t difference_type;
#else
  typedef typename Allocator::pointer pointer;
  typedef typename Allocator::const_pointer const_pointer;
  typedef typename Allocator::reference reference;
  typedef typename Allocator::const_reference const_reference;
  typedef typename Allocator::size_type size_type;
  typedef typename Allocator::difference_type difference_type;
#endif

#if defined(G__KCC) 
  typedef typename Allocator::pointer		   iterator;
  typedef typename Allocator::const_pointer	const_iterator;
  typedef Allocator				               allocator_type;
  typedef reverse_iterator<iterator>	      reverse_iterator;
  typedef reverse_iterator<const_iterator>   const_reverse_iterator;

#elif defined(G__AIX)

   typedef Allocator allocator_type;
   typedef _Ptrit<value_type, difference_type, pointer,
                  reference, pointer, reference> iterator;
   typedef _Ptrit<value_type, difference_type, const_pointer,
                  const_reference, pointer, reference> const_iterator;
   //class iterator;
   //class const_iterator;
   typedef typename std::reverse_iterator<iterator>       reverse_iterator;
   typedef typename std::reverse_iterator<const_iterator> const_reverse_iterator;

#elif defined(G__SUN) && !defined(G__GNUC)
  typedef T* iterator;
  typedef const T* const_iterator;
#if defined(G__STLPORT_VERSION)
  typedef reverse_iterator<const T*> const_reverse_iterator;
  typedef reverse_iterator<T*> reverse_iterator;
#else
    typedef reverse_iterator<const_iterator, 
      random_access_iterator_tag, value_type, 
      const_reference, const_pointer, difference_type>
      const_reverse_iterator;
    typedef reverse_iterator<iterator, 
      random_access_iterator_tag, value_type,
      reference, pointer, difference_type>
      reverse_iterator;
#endif // defined(G__STLPORT_VERSION)
#elif defined(G__VISUAL) && (G__MSC_VER>=1300)

   #define G__VECTOR_HAS_CLASS_ITERATOR
   
        // CLASS const_iterator
	class const_iterator;
	friend class const_iterator;

	class const_iterator
#if (G__MSC_VER<1600)
		: public _Ranit<T, difference_type, const_pointer, const_reference>
#endif
	{	// iterator for nonmutable vector
	public:
		typedef random_access_iterator_tag iterator_category;
		typedef T value_type;
		typedef Allocator::difference_type difference_type;
		//typedef const_pointer pointer;
		//typedef T* pointer;
		typedef Allocator::pointer pointer;
		typedef const pointer const_pointer;
		typedef const_reference reference;

		const_iterator();
#if (G__MSC_VER>=1310 && G__MSC_VER<1600) && \
	!_HAS_ITERATOR_DEBUGGING && !G__HAS_ITERATOR_DEBUGGING &&\
	!_SECURE_SCL && !G__SECURE_SCL
		//const_iterator(pointer _Ptr);
		const_iterator(T *const  _Ptr);
#elif G__MSC_VER>=1600 || _HAS_ITERATOR_DEBUGGING || _SECURE_SCL || G__HAS_ITERATOR_DEBUGGING || G__SECURE_SCL
		const_iterator(T *const  _Ptr, const vector<T>* _Pvector );
#endif

		const_reference operator*() const;


		const_pointer operator->() const;
		const_iterator& operator++();
		const_iterator operator++(int);
		const_iterator& operator--();
		const_iterator operator--(int);
		const_iterator& operator+=(difference_type _Off);
		const_iterator operator+(difference_type _Off) const;
		const_iterator& operator-=(difference_type _Off);
		const_iterator operator-(difference_type _Off) const;
		difference_type operator-(const const_iterator& _Right) const;
		const_reference operator[](difference_type _Off) const;
		bool operator==(const const_iterator& _Right) const;
		bool operator!=(const const_iterator& _Right) const;
		bool operator<(const const_iterator& _Right) const;
		bool operator>(const const_iterator& _Right) const;
		bool operator<=(const const_iterator& _Right) const;
		bool operator>=(const const_iterator& _Right) const;
		//friend const_iterator operator+(difference_type _Off,
			//const const_iterator& _Right);
#if (G__MSC_VER>=1310)
	private:
		pointer _Myptr;	// offset of element in vector
#endif
        };

	// CLASS iterator
	class iterator;
	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend class  c = T());       

	friend c