Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 97168 Details for
Bug 147834
g++ internal compiler error: munmap_chunk(): invalid pointer
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Preprocessed output for problem file.
panelfront_display.preprocess (text/plain), 858.25 KB, created by
Stephen Torri
on 2006-09-16 10:50:27 UTC
(
hide
)
Description:
Preprocessed output for problem file.
Filename:
MIME Type:
Creator:
Stephen Torri
Created:
2006-09-16 10:50:27 UTC
Size:
858.25 KB
patch
obsolete
># 1 "panelfront_display.cc" ># 1 "<built-in>" ># 1 "<command line>" ># 1 "panelfront_display.cc" ># 19 "panelfront_display.cc" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 20 "panelfront_display.cc" 2 > ># 1 "/usr/include/math.h" 1 3 4 ># 28 "/usr/include/math.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 323 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 313 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 314 "/usr/include/sys/cdefs.h" 2 3 4 ># 324 "/usr/include/features.h" 2 3 4 ># 346 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > ># 1 "/usr/include/gnu/stubs-32.h" 1 3 4 ># 8 "/usr/include/gnu/stubs.h" 2 3 4 ># 347 "/usr/include/features.h" 2 3 4 ># 29 "/usr/include/math.h" 2 3 4 > >extern "C" { > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 35 "/usr/include/math.h" 2 3 4 > ># 1 "/usr/include/bits/huge_valf.h" 1 3 4 ># 37 "/usr/include/math.h" 2 3 4 ># 1 "/usr/include/bits/huge_vall.h" 1 3 4 ># 38 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/inf.h" 1 3 4 ># 41 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/nan.h" 1 3 4 ># 44 "/usr/include/math.h" 2 3 4 > > > ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 36 "/usr/include/bits/mathdef.h" 3 4 >typedef long double float_t; > >typedef long double double_t; ># 48 "/usr/include/math.h" 2 3 4 ># 71 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acos (double __x) throw (); extern double __acos (double __x) throw (); > >extern double asin (double __x) throw (); extern double __asin (double __x) throw (); > >extern double atan (double __x) throw (); extern double __atan (double __x) throw (); > >extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw (); > > >extern double cos (double __x) throw (); extern double __cos (double __x) throw (); > >extern double sin (double __x) throw (); extern double __sin (double __x) throw (); > >extern double tan (double __x) throw (); extern double __tan (double __x) throw (); > > > > >extern double cosh (double __x) throw (); extern double __cosh (double __x) throw (); > >extern double sinh (double __x) throw (); extern double __sinh (double __x) throw (); > >extern double tanh (double __x) throw (); extern double __tanh (double __x) throw (); > > > > >extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw (); > > > > > > >extern double acosh (double __x) throw (); extern double __acosh (double __x) throw (); > >extern double asinh (double __x) throw (); extern double __asinh (double __x) throw (); > >extern double atanh (double __x) throw (); extern double __atanh (double __x) throw (); > > > > > > > >extern double exp (double __x) throw (); extern double __exp (double __x) throw (); > > >extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw (); > > >extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw (); > > >extern double log (double __x) throw (); extern double __log (double __x) throw (); > > >extern double log10 (double __x) throw (); extern double __log10 (double __x) throw (); > > >extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw (); > > > > >extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw (); > >extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw (); > > > > > >extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw (); > > >extern double log1p (double __x) throw (); extern double __log1p (double __x) throw (); > > >extern double logb (double __x) throw (); extern double __logb (double __x) throw (); > > > > > > >extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw (); > > >extern double log2 (double __x) throw (); extern double __log2 (double __x) throw (); > > > > > > > > >extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw (); > > >extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw (); > > > > > >extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw (); > > > > > > >extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw (); > > > > > > > > >extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__)); > > >extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__)); > > >extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__)); > > >extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw (); > > > > >extern int __isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int __finite (double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinf (double __value) throw () __attribute__ ((__const__)); > > >extern int finite (double __value) throw () __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw (); > > > >extern double significand (double __x) throw (); extern double __significand (double __x) throw (); > > > > > >extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__)); > > > > > > >extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnan (double __value) throw () __attribute__ ((__const__)); > > > >extern int isnan (double __value) throw () __attribute__ ((__const__)); > > >extern double j0 (double) throw (); extern double __j0 (double) throw (); >extern double j1 (double) throw (); extern double __j1 (double) throw (); >extern double jn (int, double) throw (); extern double __jn (int, double) throw (); >extern double y0 (double) throw (); extern double __y0 (double) throw (); >extern double y1 (double) throw (); extern double __y1 (double) throw (); >extern double yn (int, double) throw (); extern double __yn (int, double) throw (); > > > > > > >extern double erf (double) throw (); extern double __erf (double) throw (); >extern double erfc (double) throw (); extern double __erfc (double) throw (); >extern double lgamma (double) throw (); extern double __lgamma (double) throw (); > > > > > > >extern double tgamma (double) throw (); extern double __tgamma (double) throw (); > > > > > >extern double gamma (double) throw (); extern double __gamma (double) throw (); > > > > > > >extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw (); > > > > > > > >extern double rint (double __x) throw (); extern double __rint (double __x) throw (); > > >extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__)); > >extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw (); > > > >extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw (); > > > >extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw (); > > > > >extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw (); > > > >extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw (); > > > >extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__)); > > > >extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__)); > > > > >extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw (); > > > > > > >extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw (); >extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw (); > > > >extern long int lround (double __x) throw (); extern long int __lround (double __x) throw (); >extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw (); > > > >extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw (); > > >extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw (); > > >extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw (); > > > >extern int __fpclassify (double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbit (double __value) throw () > __attribute__ ((__const__)); > > > >extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw (); > > > > > > > > >extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw (); ># 72 "/usr/include/math.h" 2 3 4 ># 94 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acosf (float __x) throw (); extern float __acosf (float __x) throw (); > >extern float asinf (float __x) throw (); extern float __asinf (float __x) throw (); > >extern float atanf (float __x) throw (); extern float __atanf (float __x) throw (); > >extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw (); > > >extern float cosf (float __x) throw (); extern float __cosf (float __x) throw (); > >extern float sinf (float __x) throw (); extern float __sinf (float __x) throw (); > >extern float tanf (float __x) throw (); extern float __tanf (float __x) throw (); > > > > >extern float coshf (float __x) throw (); extern float __coshf (float __x) throw (); > >extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw (); > >extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw (); > > > > >extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw (); > > > > > > >extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw (); > >extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw (); > >extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw (); > > > > > > > >extern float expf (float __x) throw (); extern float __expf (float __x) throw (); > > >extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw (); > > >extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw (); > > >extern float logf (float __x) throw (); extern float __logf (float __x) throw (); > > >extern float log10f (float __x) throw (); extern float __log10f (float __x) throw (); > > >extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw (); > > > > >extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw (); > >extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw (); > > > > > >extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw (); > > >extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw (); > > >extern float logbf (float __x) throw (); extern float __logbf (float __x) throw (); > > > > > > >extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw (); > > >extern float log2f (float __x) throw (); extern float __log2f (float __x) throw (); > > > > > > > > >extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw (); > > >extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw (); > > > > > >extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw (); > > > > > > >extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw (); > > > > > > > > >extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__)); > > >extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__)); > > >extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__)); > > >extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw (); > > > > >extern int __isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int __finitef (float __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinff (float __value) throw () __attribute__ ((__const__)); > > >extern int finitef (float __value) throw () __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw (); > > > >extern float significandf (float __x) throw (); extern float __significandf (float __x) throw (); > > > > > >extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__)); > > > > > > >extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanf (float __value) throw () __attribute__ ((__const__)); > > > >extern int isnanf (float __value) throw () __attribute__ ((__const__)); > > >extern float j0f (float) throw (); extern float __j0f (float) throw (); >extern float j1f (float) throw (); extern float __j1f (float) throw (); >extern float jnf (int, float) throw (); extern float __jnf (int, float) throw (); >extern float y0f (float) throw (); extern float __y0f (float) throw (); >extern float y1f (float) throw (); extern float __y1f (float) throw (); >extern float ynf (int, float) throw (); extern float __ynf (int, float) throw (); > > > > > > >extern float erff (float) throw (); extern float __erff (float) throw (); >extern float erfcf (float) throw (); extern float __erfcf (float) throw (); >extern float lgammaf (float) throw (); extern float __lgammaf (float) throw (); > > > > > > >extern float tgammaf (float) throw (); extern float __tgammaf (float) throw (); > > > > > >extern float gammaf (float) throw (); extern float __gammaf (float) throw (); > > > > > > >extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw (); > > > > > > > >extern float rintf (float __x) throw (); extern float __rintf (float __x) throw (); > > >extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); > >extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw (); > > > >extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw (); > > > >extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw (); > > > > >extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw (); > > > >extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw (); > > > >extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__)); > > > >extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__)); > > > > >extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw (); > > > > > > >extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw (); >extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw (); > > > >extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw (); >extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw (); > > > >extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw (); > > >extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw (); > > >extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw (); > > > >extern int __fpclassifyf (float __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitf (float __value) throw () > __attribute__ ((__const__)); > > > >extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw (); > > > > > > > > >extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw (); ># 95 "/usr/include/math.h" 2 3 4 ># 141 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw (); > >extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw (); > >extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw (); > >extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw (); > > >extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw (); > >extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw (); > >extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw (); > > > > >extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw (); > >extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw (); > >extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw (); > > > > >extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); > > > > > > >extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw (); > >extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw (); > >extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw (); > > > > > > > >extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw (); > > >extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw (); > > >extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw (); > > >extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw (); > > >extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw (); > > >extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw (); > > > > >extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw (); > >extern long double pow10l (long double __x) throw (); extern long double __pow10l (long double __x) throw (); > > > > > >extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw (); > > >extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw (); > > >extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw (); > > > > > > >extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw (); > > >extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw (); > > > > > > > > >extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw (); > > >extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw (); > > > > > >extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw (); > > > > > > >extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw (); > > > > > > > > >extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__)); > > >extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw (); > > > > >extern int __isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int __finitel (long double __value) throw () __attribute__ ((__const__)); > > > > > >extern int isinfl (long double __value) throw () __attribute__ ((__const__)); > > >extern int finitel (long double __value) throw () __attribute__ ((__const__)); > > >extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw (); > > > >extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw (); > > > > > >extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > > > > >extern long double nanl (__const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __attribute__ ((__const__)); > > > > > >extern int __isnanl (long double __value) throw () __attribute__ ((__const__)); > > > >extern int isnanl (long double __value) throw () __attribute__ ((__const__)); > > >extern long double j0l (long double) throw (); extern long double __j0l (long double) throw (); >extern long double j1l (long double) throw (); extern long double __j1l (long double) throw (); >extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw (); >extern long double y0l (long double) throw (); extern long double __y0l (long double) throw (); >extern long double y1l (long double) throw (); extern long double __y1l (long double) throw (); >extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw (); > > > > > > >extern long double erfl (long double) throw (); extern long double __erfl (long double) throw (); >extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw (); >extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw (); > > > > > > >extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw (); > > > > > >extern long double gammal (long double) throw (); extern long double __gammal (long double) throw (); > > > > > > >extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw (); > > > > > > > >extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw (); > > >extern long double nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __attribute__ ((__const__)); > >extern long double nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __attribute__ ((__const__)); > > > >extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw (); > > > >extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw (); > > > >extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw (); > > > > >extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw (); > > > >extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw (); > > > >extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__)); > > > >extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__)); > > > > >extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw (); > > > > > > >extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw (); >extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw (); > > > >extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw (); >extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw (); > > > >extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw (); > > >extern long double fmaxl (long double __x, long double __y) throw (); extern long double __fmaxl (long double __x, long double __y) throw (); > > >extern long double fminl (long double __x, long double __y) throw (); extern long double __fminl (long double __x, long double __y) throw (); > > > >extern int __fpclassifyl (long double __value) throw () > __attribute__ ((__const__)); > > >extern int __signbitl (long double __value) throw () > __attribute__ ((__const__)); > > > >extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw (); > > > > > > > > >extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw (); ># 142 "/usr/include/math.h" 2 3 4 ># 157 "/usr/include/math.h" 3 4 >extern int signgam; ># 198 "/usr/include/math.h" 3 4 >enum > { > FP_NAN, > > FP_INFINITE, > > FP_ZERO, > > FP_SUBNORMAL, > > FP_NORMAL > > }; ># 284 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 307 "/usr/include/math.h" 3 4 >struct __exception > > > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > >extern int matherr (struct __exception *__exc) throw (); ># 409 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathinline.h" 1 3 4 ># 127 "/usr/include/bits/mathinline.h" 3 4 >__inline int >__signbitf (float __x) throw () >{ > __extension__ union { float __f; int __i; } __u = { __f: __x }; > return __u.__i < 0; >} >__inline int >__signbit (double __x) throw () >{ > __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; > return __u.__i[1] < 0; >} >__inline int >__signbitl (long double __x) throw () >{ > __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; > return (__u.__i[2] & 0x8000) != 0; >} ># 291 "/usr/include/bits/mathinline.h" 3 4 >__inline double __sgn (double) throw (); __inline double __sgn (double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } __inline float __sgnf (float) throw (); __inline float __sgnf (float __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } __inline long double __sgnl (long double) throw (); __inline long double __sgnl (long double __x) throw () { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } ># 433 "/usr/include/bits/mathinline.h" 3 4 >__inline long double __atan2l (long double __y, long double __x) throw () { return __builtin_atan2l (__y, __x); } ># 473 "/usr/include/bits/mathinline.h" 3 4 >__inline double fabs (double __x) throw () { return __builtin_fabs (__x); } > >__inline float fabsf (float __x) throw () { return __builtin_fabsf (__x); } >__inline long double fabsl (long double __x) throw () { return __builtin_fabsl (__x); } > >__inline long double __fabsl (long double __x) throw () { return __builtin_fabsl (__x); } ># 506 "/usr/include/bits/mathinline.h" 3 4 >__inline long double __sgn1l (long double) throw (); __inline long double __sgn1l (long double __x) throw () { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; } ># 530 "/usr/include/bits/mathinline.h" 3 4 >__inline double floor (double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline float floorf (float __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline long double floorl (long double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } ># 541 "/usr/include/bits/mathinline.h" 3 4 >__inline double ceil (double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline float ceilf (float __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } __inline long double ceill (long double __x) throw () { register long double __value; __volatile unsigned short int __cw; __volatile unsigned short int __cwtmp; __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } ># 653 "/usr/include/bits/mathinline.h" 3 4 >__inline long int >lrintf (float __x) throw () >{ > long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; >} >__inline long int >lrint (double __x) throw () >{ > long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; >} >__inline long int >lrintl (long double __x) throw () >{ > long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; >} ># 676 "/usr/include/bits/mathinline.h" 3 4 >__inline long long int >llrintf (float __x) throw () >{ > long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; >} >__inline long long int >llrint (double __x) throw () >{ > long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; >} >__inline long long int >llrintl (long double __x) throw () >{ > long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; >} ># 713 "/usr/include/bits/mathinline.h" 3 4 >__inline int >__finite (double __x) throw () >{ > return (__extension__ > (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] > | 0x800fffffu) + 1) >> 31)); >} ># 410 "/usr/include/math.h" 2 3 4 ># 465 "/usr/include/math.h" 3 4 >} ># 22 "panelfront_display.cc" 2 > ># 1 "panelfront.h" 1 ># 22 "panelfront.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "panelfront.h" 2 > > > > > > > ># 1 "/usr/include/ncurses.h" 1 3 4 ># 66 "/usr/include/ncurses.h" 3 4 ># 1 "/usr/include/ncurses_dll.h" 1 3 4 ># 67 "/usr/include/ncurses.h" 2 3 4 ># 118 "/usr/include/ncurses.h" 3 4 >typedef unsigned long chtype; >typedef unsigned long mmask_t; > > ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 >extern "C" { > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 214 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 3 4 >typedef unsigned int size_t; ># 35 "/usr/include/stdio.h" 2 3 4 > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 32 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > > > > >__extension__ typedef signed long long int __int64_t; >__extension__ typedef unsigned long long int __uint64_t; > > > > > > > >__extension__ typedef long long int __quad_t; >__extension__ typedef unsigned long long int __u_quad_t; ># 134 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 135 "/usr/include/bits/types.h" 2 3 4 > > >__extension__ typedef __u_quad_t __dev_t; >__extension__ typedef unsigned int __uid_t; >__extension__ typedef unsigned int __gid_t; >__extension__ typedef unsigned long int __ino_t; >__extension__ typedef __u_quad_t __ino64_t; >__extension__ typedef unsigned int __mode_t; >__extension__ typedef unsigned int __nlink_t; >__extension__ typedef long int __off_t; >__extension__ typedef __quad_t __off64_t; >__extension__ typedef int __pid_t; >__extension__ typedef struct { int __val[2]; } __fsid_t; >__extension__ typedef long int __clock_t; >__extension__ typedef unsigned long int __rlim_t; >__extension__ typedef __u_quad_t __rlim64_t; >__extension__ typedef unsigned int __id_t; >__extension__ typedef long int __time_t; >__extension__ typedef unsigned int __useconds_t; >__extension__ typedef long int __suseconds_t; > >__extension__ typedef int __daddr_t; >__extension__ typedef long int __swblk_t; >__extension__ typedef int __key_t; > > >__extension__ typedef int __clockid_t; > > >__extension__ typedef void * __timer_t; > > >__extension__ typedef long int __blksize_t; > > > > >__extension__ typedef long int __blkcnt_t; >__extension__ typedef __quad_t __blkcnt64_t; > > >__extension__ typedef unsigned long int __fsblkcnt_t; >__extension__ typedef __u_quad_t __fsblkcnt64_t; > > >__extension__ typedef unsigned long int __fsfilcnt_t; >__extension__ typedef __u_quad_t __fsfilcnt64_t; > >__extension__ typedef int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >__extension__ typedef int __intptr_t; > > >__extension__ typedef unsigned int __socklen_t; ># 37 "/usr/include/stdio.h" 2 3 4 > > > > > > > > > >typedef struct _IO_FILE FILE; > > > > > ># 62 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 72 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 14 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 355 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 3 4 >typedef unsigned int wint_t; ># 15 "/usr/include/_G_config.h" 2 3 4 ># 24 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 > ># 1 "/usr/include/bits/wchar.h" 1 3 4 ># 51 "/usr/include/wchar.h" 2 3 4 ># 76 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > wint_t __wch; > char __wchb[4]; > } __value; >} __mbstate_t; ># 25 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 44 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/include/gconv.h" 1 3 4 ># 28 "/usr/include/gconv.h" 3 4 ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 ># 29 "/usr/include/gconv.h" 2 3 4 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 32 "/usr/include/gconv.h" 2 3 4 > > > > > >enum >{ > __GCONV_OK = 0, > __GCONV_NOCONV, > __GCONV_NODB, > __GCONV_NOMEM, > > __GCONV_EMPTY_INPUT, > __GCONV_FULL_OUTPUT, > __GCONV_ILLEGAL_INPUT, > __GCONV_INCOMPLETE_INPUT, > > __GCONV_ILLEGAL_DESCRIPTOR, > __GCONV_INTERNAL_ERROR >}; > > > >enum >{ > __GCONV_IS_LAST = 0x0001, > __GCONV_IGNORE_ERRORS = 0x0002 >}; > > > >struct __gconv_step; >struct __gconv_step_data; >struct __gconv_loaded_object; >struct __gconv_trans_data; > > > >typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, > __const unsigned char **, __const unsigned char *, > unsigned char **, size_t *, int, int); > > >typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); > > >typedef int (*__gconv_init_fct) (struct __gconv_step *); >typedef void (*__gconv_end_fct) (struct __gconv_step *); > > > >typedef int (*__gconv_trans_fct) (struct __gconv_step *, > struct __gconv_step_data *, void *, > __const unsigned char *, > __const unsigned char **, > __const unsigned char *, unsigned char **, > size_t *); > > >typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, > __const unsigned char *, > unsigned char *, unsigned char *); > > >typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, > size_t *); > > >typedef int (*__gconv_trans_init_fct) (void **, const char *); >typedef void (*__gconv_trans_end_fct) (void *); > >struct __gconv_trans_data >{ > > __gconv_trans_fct __trans_fct; > __gconv_trans_context_fct __trans_context_fct; > __gconv_trans_end_fct __trans_end_fct; > void *__data; > struct __gconv_trans_data *__next; >}; > > > >struct __gconv_step >{ > struct __gconv_loaded_object *__shlib_handle; > __const char *__modname; > > int __counter; > > char *__from_name; > char *__to_name; > > __gconv_fct __fct; > __gconv_btowc_fct __btowc_fct; > __gconv_init_fct __init_fct; > __gconv_end_fct __end_fct; > > > > int __min_needed_from; > int __max_needed_from; > int __min_needed_to; > int __max_needed_to; > > > int __stateful; > > void *__data; >}; > > > >struct __gconv_step_data >{ > unsigned char *__outbuf; > unsigned char *__outbufend; > > > > int __flags; > > > > int __invocation_counter; > > > > int __internal_use; > > __mbstate_t *__statep; > __mbstate_t __state; > > > > struct __gconv_trans_data *__trans; >}; > > > >typedef struct __gconv_info >{ > size_t __nsteps; > struct __gconv_step *__steps; > __extension__ struct __gconv_step_data __data []; >} *__gconv_t; ># 45 "/usr/include/_G_config.h" 2 3 4 >typedef union >{ > struct __gconv_info __cd; > struct > { > struct __gconv_info __cd; > struct __gconv_step_data __data; > } __combined; >} _G_iconv_t; > >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 53 "/usr/include/libio.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 ># 166 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 176 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 199 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 267 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 315 "/usr/include/libio.h" 3 4 > __off64_t _offset; ># 324 "/usr/include/libio.h" 3 4 > void *__pad1; > void *__pad2; > void *__pad3; > void *__pad4; > size_t __pad5; > > int _mode; > > char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; > >}; > > > > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 360 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > >extern "C" { > > >extern int __underflow (_IO_FILE *) throw (); >extern int __uflow (_IO_FILE *) throw (); >extern int __overflow (_IO_FILE *, int) throw (); >extern wint_t __wunderflow (_IO_FILE *) throw (); >extern wint_t __wuflow (_IO_FILE *) throw (); >extern wint_t __woverflow (_IO_FILE *, wint_t) throw (); ># 450 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp) throw (); >extern int _IO_putc (int __c, _IO_FILE *__fp) throw (); >extern int _IO_feof (_IO_FILE *__fp) throw (); >extern int _IO_ferror (_IO_FILE *__fp) throw (); > >extern int _IO_peekc_locked (_IO_FILE *__fp) throw (); > > > > > >extern void _IO_flockfile (_IO_FILE *) throw (); >extern void _IO_funlockfile (_IO_FILE *) throw (); >extern int _IO_ftrylockfile (_IO_FILE *) throw (); ># 480 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) throw (); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) throw (); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) throw (); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) throw (); > >extern void _IO_free_backup_area (_IO_FILE *) throw (); ># 542 "/usr/include/libio.h" 3 4 >} ># 73 "/usr/include/stdio.h" 2 3 4 > > > > >typedef __gnuc_va_list va_list; ># 86 "/usr/include/stdio.h" 3 4 > > > > >typedef _G_fpos64_t fpos_t; > > > >typedef _G_fpos64_t fpos64_t; ># 138 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 139 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) throw (); > >extern int rename (__const char *__old, __const char *__new) throw (); > > > > >extern int renameat (int __oldfd, __const char *__old, int __newfd, > __const char *__new) throw (); > > > ># 172 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile (void) __asm__ ("" "tmpfile64"); > > > > > > >extern FILE *tmpfile64 (void); > > > >extern char *tmpnam (char *__s) throw (); > > > > > >extern char *tmpnam_r (char *__s) throw (); ># 201 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > throw () __attribute__ ((__malloc__)); > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 226 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 236 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > ># 257 "/usr/include/stdio.h" 3 4 >extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64"); > >extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64"); > > > > > > > > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes); >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream); > > > > >extern FILE *fdopen (int __fd, __const char *__modes) throw (); > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) throw (); > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) throw (); > > > > >extern FILE *open_memstream (char **__restrict __bufloc, > size_t *__restrict __sizeloc) throw (); > > > >extern FILE *open_wmemstream (wchar_t **__restrict __bufloc, > size_t *__restrict __sizeloc) throw (); > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw (); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) throw (); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) throw (); > > >extern void setlinebuf (FILE *__stream) throw (); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) throw (); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...) ; > > > > >extern int scanf (__const char *__restrict __format, ...) ; > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) throw (); > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))) ; > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))) ; > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > throw () __attribute__ ((__format__ (__scanf__, 2, 0))); > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 464 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 475 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 508 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > ; > > > > > > >extern char *gets (char *__s) ; > ># 554 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream) ; ># 570 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) ; >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) ; > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream) ; > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s) ; > ># 631 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 642 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) ; > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream) ; > > > > >extern void rewind (FILE *__stream); > ># 686 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64"); > > >extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); > > > > > > > > ># 711 "/usr/include/stdio.h" 3 4 >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64"); > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64"); > > > > > > > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream) ; >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) throw (); > >extern int feof (FILE *__stream) throw () ; > >extern int ferror (FILE *__stream) throw () ; > > > > >extern void clearerr_unlocked (FILE *__stream) throw (); >extern int feof_unlocked (FILE *__stream) throw () ; >extern int ferror_unlocked (FILE *__stream) throw () ; > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 759 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) throw () ; > > > > >extern int fileno_unlocked (FILE *__stream) throw () ; ># 778 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes) ; > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) throw (); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > throw () __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > throw () __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) throw (); > > > >extern int ftrylockfile (FILE *__stream) throw () ; > > >extern void funlockfile (FILE *__stream) throw (); ># 839 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 33 "/usr/include/bits/stdio.h" 3 4 >inline int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) >{ > return vfprintf (stdout, __fmt, __arg); >} > > >inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >inline int >getchar_unlocked (void) >{ > return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >inline int >feof_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >inline int >ferror_unlocked (FILE *__stream) throw () >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 840 "/usr/include/stdio.h" 2 3 4 ># 848 "/usr/include/stdio.h" 3 4 >} ># 123 "/usr/include/ncurses.h" 2 3 4 ># 1 "/usr/include/unctrl.h" 1 3 4 ># 51 "/usr/include/unctrl.h" 3 4 >extern "C" { > > ># 1 "/usr/include/curses.h" 1 3 4 ># 55 "/usr/include/unctrl.h" 2 3 4 > > > const char * unctrl (chtype); > > >} ># 124 "/usr/include/ncurses.h" 2 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stdarg.h" 1 3 4 ># 125 "/usr/include/ncurses.h" 2 3 4 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 152 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 3 4 >typedef int ptrdiff_t; ># 127 "/usr/include/ncurses.h" 2 3 4 ># 147 "/usr/include/ncurses.h" 3 4 >typedef unsigned char NCURSES_BOOL; ># 169 "/usr/include/ncurses.h" 3 4 >extern "C" { ># 198 "/usr/include/ncurses.h" 3 4 >extern int COLORS; >extern int COLOR_PAIRS; ># 216 "/usr/include/ncurses.h" 3 4 >extern chtype acs_map[]; ># 306 "/usr/include/ncurses.h" 3 4 >typedef struct screen SCREEN; >typedef struct _win_st WINDOW; > >typedef chtype attr_t; ># 333 "/usr/include/ncurses.h" 3 4 >typedef struct >{ > attr_t attr; > wchar_t chars[5]; > > > >} >cchar_t; > > > >struct ldat; > >struct _win_st >{ > short _cury, _curx; > > > short _maxy, _maxx; > short _begy, _begx; > > short _flags; > > > attr_t _attrs; > chtype _bkgd; > > > bool _notimeout; > bool _clear; > bool _leaveok; > bool _scroll; > bool _idlok; > bool _idcok; > bool _immed; > bool _sync; > bool _use_keypad; > int _delay; > > struct ldat *_line; > > > short _regtop; > short _regbottom; > > > int _parx; > int _pary; > WINDOW *_parent; > > > struct pdat > { > short _pad_y, _pad_x; > short _pad_top, _pad_left; > short _pad_bottom, _pad_right; > } _pad; > > short _yoffset; > > > cchar_t _bkgrnd; > > > > >}; > >extern WINDOW * stdscr; >extern WINDOW * curscr; >extern WINDOW * newscr; > >extern int LINES; >extern int COLS; >extern int TABSIZE; > > > > >extern int ESCDELAY; > >extern char ttytype[]; > > > > > >extern bool is_term_resized (int, int); >extern char * keybound (int, int); >extern const char * curses_version (void); >extern int assume_default_colors (int, int); >extern int define_key (const char *, int); >extern int key_defined (const char *); >extern int keyok (int, bool); >extern int resize_term (int, int); >extern int resizeterm (int, int); >extern int use_default_colors (void); >extern int use_extended_names (bool); >extern int wresize (WINDOW *, int, int); ># 531 "/usr/include/ncurses.h" 3 4 >extern int addch (const chtype); >extern int addchnstr (const chtype *, int); >extern int addchstr (const chtype *); >extern int addnstr (const char *, int); >extern int addstr (const char *); >extern int attroff (attr_t); >extern int attron (attr_t); >extern int attrset (attr_t); >extern int attr_get (attr_t *, short *, void *); >extern int attr_off (attr_t, void *); >extern int attr_on (attr_t, void *); >extern int attr_set (attr_t, short, void *); >extern int baudrate (void); >extern int beep (void); >extern int bkgd (chtype); >extern void bkgdset (chtype); >extern int border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); >extern int box (WINDOW *, chtype, chtype); >extern bool can_change_color (void); >extern int cbreak (void); >extern int chgat (int, attr_t, short, const void *); >extern int clear (void); >extern int clearok (WINDOW *,bool); >extern int clrtobot (void); >extern int clrtoeol (void); >extern int color_content (short,short*,short*,short*); >extern int color_set (short,void*); >extern int COLOR_PAIR (int); >extern int copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); >extern int curs_set (int); >extern int def_prog_mode (void); >extern int def_shell_mode (void); >extern int delay_output (int); >extern int delch (void); >extern void delscreen (SCREEN *); >extern int delwin (WINDOW *); >extern int deleteln (void); >extern WINDOW * derwin (WINDOW *,int,int,int,int); >extern int doupdate (void); >extern WINDOW * dupwin (WINDOW *); >extern int echo (void); >extern int echochar (const chtype); >extern int erase (void); >extern int endwin (void); >extern char erasechar (void); >extern void filter (void); >extern int flash (void); >extern int flushinp (void); >extern chtype getbkgd (WINDOW *); >extern int getch (void); >extern int getnstr (char *, int); >extern int getstr (char *); >extern WINDOW * getwin (FILE *); >extern int halfdelay (int); >extern bool has_colors (void); >extern bool has_ic (void); >extern bool has_il (void); >extern int hline (chtype, int); >extern void idcok (WINDOW *, bool); >extern int idlok (WINDOW *, bool); >extern void immedok (WINDOW *, bool); >extern chtype inch (void); >extern int inchnstr (chtype *, int); >extern int inchstr (chtype *); >extern WINDOW * initscr (void); >extern int init_color (short,short,short,short); >extern int init_pair (short,short,short); >extern int innstr (char *, int); >extern int insch (chtype); >extern int insdelln (int); >extern int insertln (void); >extern int insnstr (const char *, int); >extern int insstr (const char *); >extern int instr (char *); >extern int intrflush (WINDOW *,bool); >extern bool isendwin (void); >extern bool is_linetouched (WINDOW *,int); >extern bool is_wintouched (WINDOW *); >extern const char * keyname (int); >extern int keypad (WINDOW *,bool); >extern char killchar (void); >extern int leaveok (WINDOW *,bool); >extern char * longname (void); >extern int meta (WINDOW *,bool); >extern int move (int, int); >extern int mvaddch (int, int, const chtype); >extern int mvaddchnstr (int, int, const chtype *, int); >extern int mvaddchstr (int, int, const chtype *); >extern int mvaddnstr (int, int, const char *, int); >extern int mvaddstr (int, int, const char *); >extern int mvchgat (int, int, int, attr_t, short, const void *); >extern int mvcur (int,int,int,int); >extern int mvdelch (int, int); >extern int mvderwin (WINDOW *, int, int); >extern int mvgetch (int, int); >extern int mvgetnstr (int, int, char *, int); >extern int mvgetstr (int, int, char *); >extern int mvhline (int, int, chtype, int); >extern chtype mvinch (int, int); >extern int mvinchnstr (int, int, chtype *, int); >extern int mvinchstr (int, int, chtype *); >extern int mvinnstr (int, int, char *, int); >extern int mvinsch (int, int, chtype); >extern int mvinsnstr (int, int, const char *, int); >extern int mvinsstr (int, int, const char *); >extern int mvinstr (int, int, char *); >extern int mvprintw (int,int, const char *,...) > ; >extern int mvscanw (int,int, const char *,...) > ; >extern int mvvline (int, int, chtype, int); >extern int mvwaddch (WINDOW *, int, int, const chtype); >extern int mvwaddchnstr (WINDOW *, int, int, const chtype *, int); >extern int mvwaddchstr (WINDOW *, int, int, const chtype *); >extern int mvwaddnstr (WINDOW *, int, int, const char *, int); >extern int mvwaddstr (WINDOW *, int, int, const char *); >extern int mvwchgat (WINDOW *, int, int, int, attr_t, short, const void *); >extern int mvwdelch (WINDOW *, int, int); >extern int mvwgetch (WINDOW *, int, int); >extern int mvwgetnstr (WINDOW *, int, int, char *, int); >extern int mvwgetstr (WINDOW *, int, int, char *); >extern int mvwhline (WINDOW *, int, int, chtype, int); >extern int mvwin (WINDOW *,int,int); >extern chtype mvwinch (WINDOW *, int, int); >extern int mvwinchnstr (WINDOW *, int, int, chtype *, int); >extern int mvwinchstr (WINDOW *, int, int, chtype *); >extern int mvwinnstr (WINDOW *, int, int, char *, int); >extern int mvwinsch (WINDOW *, int, int, chtype); >extern int mvwinsnstr (WINDOW *, int, int, const char *, int); >extern int mvwinsstr (WINDOW *, int, int, const char *); >extern int mvwinstr (WINDOW *, int, int, char *); >extern int mvwprintw (WINDOW*,int,int, const char *,...) > ; >extern int mvwscanw (WINDOW *,int,int, const char *,...) > ; >extern int mvwvline (WINDOW *,int, int, chtype, int); >extern int napms (int); >extern WINDOW * newpad (int,int); >extern SCREEN * newterm (const char *,FILE *,FILE *); >extern WINDOW * newwin (int,int,int,int); >extern int nl (void); >extern int nocbreak (void); >extern int nodelay (WINDOW *,bool); >extern int noecho (void); >extern int nonl (void); >extern void noqiflush (void); >extern int noraw (void); >extern int notimeout (WINDOW *,bool); >extern int overlay (const WINDOW*,WINDOW *); >extern int overwrite (const WINDOW*,WINDOW *); >extern int pair_content (short,short*,short*); >extern int PAIR_NUMBER (int); >extern int pechochar (WINDOW *, const chtype); >extern int pnoutrefresh (WINDOW*,int,int,int,int,int,int); >extern int prefresh (WINDOW *,int,int,int,int,int,int); >extern int printw (const char *,...) > ; >extern int putp (const char *); >extern int putwin (WINDOW *, FILE *); >extern void qiflush (void); >extern int raw (void); >extern int redrawwin (WINDOW *); >extern int refresh (void); >extern int resetty (void); >extern int reset_prog_mode (void); >extern int reset_shell_mode (void); >extern int ripoffline (int, int (*)(WINDOW *, int)); >extern int savetty (void); >extern int scanw (const char *,...) > ; >extern int scr_dump (const char *); >extern int scr_init (const char *); >extern int scrl (int); >extern int scroll (WINDOW *); >extern int scrollok (WINDOW *,bool); >extern int scr_restore (const char *); >extern int scr_set (const char *); >extern int setscrreg (int,int); >extern SCREEN * set_term (SCREEN *); >extern int slk_attroff (const chtype); >extern int slk_attr_off (const attr_t, void *); >extern int slk_attron (const chtype); >extern int slk_attr_on (attr_t,void*); >extern int slk_attrset (const chtype); >extern attr_t slk_attr (void); >extern int slk_attr_set (const attr_t,short,void*); >extern int slk_clear (void); >extern int slk_color (short); >extern int slk_init (int); >extern char * slk_label (int); >extern int slk_noutrefresh (void); >extern int slk_refresh (void); >extern int slk_restore (void); >extern int slk_set (int,const char *,int); >extern int slk_touch (void); >extern int standout (void); >extern int standend (void); >extern int start_color (void); >extern WINDOW * subpad (WINDOW *, int, int, int, int); >extern WINDOW * subwin (WINDOW *,int,int,int,int); >extern int syncok (WINDOW *, bool); >extern chtype termattrs (void); >extern char * termname (void); >extern int tigetflag (const char *); >extern int tigetnum (const char *); >extern char * tigetstr (const char *); >extern void timeout (int); >extern int touchline (WINDOW *, int, int); >extern int touchwin (WINDOW *); >extern char * tparm (const char *, ...); >extern int typeahead (int); >extern int ungetch (int); >extern int untouchwin (WINDOW *); >extern void use_env (bool); >extern int vidattr (chtype); >extern int vidputs (chtype, int (*)(int)); >extern int vline (chtype, int); >extern int vwprintw (WINDOW *, const char *,va_list); >extern int vw_printw (WINDOW *, const char *,va_list); >extern int vwscanw (WINDOW *, const char *,va_list); >extern int vw_scanw (WINDOW *, const char *,va_list); >extern int waddch (WINDOW *, const chtype); >extern int waddchnstr (WINDOW *,const chtype *,int); >extern int waddchstr (WINDOW *,const chtype *); >extern int waddnstr (WINDOW *,const char *,int); >extern int waddstr (WINDOW *,const char *); >extern int wattron (WINDOW *, int); >extern int wattroff (WINDOW *, int); >extern int wattrset (WINDOW *, int); >extern int wattr_get (WINDOW *, attr_t *, short *, void *); >extern int wattr_on (WINDOW *, attr_t, void *); >extern int wattr_off (WINDOW *, attr_t, void *); >extern int wattr_set (WINDOW *, attr_t, short, void *); >extern int wbkgd (WINDOW *, chtype); >extern void wbkgdset (WINDOW *,chtype); >extern int wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); >extern int wchgat (WINDOW *, int, attr_t, short, const void *); >extern int wclear (WINDOW *); >extern int wclrtobot (WINDOW *); >extern int wclrtoeol (WINDOW *); >extern int wcolor_set (WINDOW*,short,void*); >extern void wcursyncup (WINDOW *); >extern int wdelch (WINDOW *); >extern int wdeleteln (WINDOW *); >extern int wechochar (WINDOW *, const chtype); >extern int werase (WINDOW *); >extern int wgetch (WINDOW *); >extern int wgetnstr (WINDOW *,char *,int); >extern int wgetstr (WINDOW *, char *); >extern int whline (WINDOW *, chtype, int); >extern chtype winch (WINDOW *); >extern int winchnstr (WINDOW *, chtype *, int); >extern int winchstr (WINDOW *, chtype *); >extern int winnstr (WINDOW *, char *, int); >extern int winsch (WINDOW *, chtype); >extern int winsdelln (WINDOW *,int); >extern int winsertln (WINDOW *); >extern int winsnstr (WINDOW *, const char *,int); >extern int winsstr (WINDOW *, const char *); >extern int winstr (WINDOW *, char *); >extern int wmove (WINDOW *,int,int); >extern int wnoutrefresh (WINDOW *); >extern int wprintw (WINDOW *, const char *,...) > ; >extern int wredrawln (WINDOW *,int,int); >extern int wrefresh (WINDOW *); >extern int wscanw (WINDOW *, const char *,...) > ; >extern int wscrl (WINDOW *,int); >extern int wsetscrreg (WINDOW *,int,int); >extern int wstandout (WINDOW *); >extern int wstandend (WINDOW *); >extern void wsyncdown (WINDOW *); >extern void wsyncup (WINDOW *); >extern void wtimeout (WINDOW *,int); >extern int wtouchln (WINDOW *,int,int,int); >extern int wvline (WINDOW *,chtype,int); ># 1246 "/usr/include/ncurses.h" 3 4 >typedef struct >{ > short id; > int x, y, z; > mmask_t bstate; >} >MEVENT; > >extern int getmouse (MEVENT *); >extern int ungetmouse (MEVENT *); >extern mmask_t mousemask (mmask_t, mmask_t *); >extern bool wenclose (const WINDOW *, int, int); >extern int mouseinterval (int); >extern bool wmouse_trafo (const WINDOW*, int*, int*, bool); >extern bool mouse_trafo (int*, int*, bool); > > > > > >extern int mcprint (char *, int); >extern int has_key (int); > > > >extern void _tracef (const char *, ...) ; >extern void _tracedump (const char *, WINDOW *); >extern char * _traceattr (attr_t); >extern char * _traceattr2 (int, chtype); >extern char * _nc_tracebits (void); >extern char * _tracechar (int); >extern char * _tracechtype (chtype); >extern char * _tracechtype2 (int, chtype); > > >extern char * _tracecchar_t (const cchar_t *); > >extern char * _tracecchar_t2 (int, const cchar_t *); > > > > >extern char * _tracemouse (const MEVENT *); >extern void trace (const unsigned int); ># 1333 "/usr/include/ncurses.h" 3 4 >} ># 31 "panelfront.h" 2 ># 1 "/usr/include/panel.h" 1 3 4 ># 41 "/usr/include/panel.h" 3 4 >typedef struct panel >{ > WINDOW *win; > struct panel *below; > struct panel *above; > const void *user; >} PANEL; > > >extern "C" { > > >extern WINDOW* panel_window (const PANEL *); >extern void update_panels (void); >extern int hide_panel (PANEL *); >extern int show_panel (PANEL *); >extern int del_panel (PANEL *); >extern int top_panel (PANEL *); >extern int bottom_panel (PANEL *); >extern PANEL* new_panel (WINDOW *); >extern PANEL* panel_above (const PANEL *); >extern PANEL* panel_below (const PANEL *); >extern int set_panel_userptr (PANEL *, const void *); >extern const void* panel_userptr (const PANEL *); >extern int move_panel (PANEL *, int, int); >extern int replace_panel (PANEL *,WINDOW *); >extern int panel_hidden (const PANEL *); > > >} ># 32 "panelfront.h" 2 > > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 31 "/usr/include/time.h" 3 4 >extern "C" { > > > > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 40 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 44 "/usr/include/time.h" 2 3 4 ># 59 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 75 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 93 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 105 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 121 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; > > > > > > > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > __const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; > > > > > >typedef __pid_t pid_t; > > > > > > > > >extern clock_t clock (void) throw (); > > >extern time_t time (time_t *__timer) throw (); > > >extern double difftime (time_t __time1, time_t __time0) > throw () __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) throw (); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > >extern char *strptime (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp) > throw (); > > > > > ># 1 "/usr/include/xlocale.h" 1 3 4 ># 28 "/usr/include/xlocale.h" 3 4 >typedef struct __locale_struct >{ > > struct locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; ># 217 "/usr/include/time.h" 2 3 4 > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); > >extern char *strptime_l (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) throw (); > > > > > > >extern struct tm *gmtime (__const time_t *__timer) throw (); > > > >extern struct tm *localtime (__const time_t *__timer) throw (); > > > > > >extern struct tm *gmtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > >extern struct tm *localtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) throw (); > > > > > >extern char *asctime (__const struct tm *__tp) throw (); > > >extern char *ctime (__const time_t *__timer) throw (); > > > > > > > >extern char *asctime_r (__const struct tm *__restrict __tp, > char *__restrict __buf) throw (); > > >extern char *ctime_r (__const time_t *__restrict __timer, > char *__restrict __buf) throw (); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) throw (); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (__const time_t *__when) throw (); ># 312 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) throw (); > > >extern time_t timelocal (struct tm *__tp) throw (); > > >extern int dysize (int __year) throw () __attribute__ ((__const__)); ># 327 "/usr/include/time.h" 3 4 >extern int nanosleep (__const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw (); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw (); > > >extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) > throw (); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > __const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw (); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) throw (); > > >extern int timer_delete (timer_t __timerid) throw (); > > >extern int timer_settime (timer_t __timerid, int __flags, > __const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) throw (); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > throw (); > > >extern int timer_getoverrun (timer_t __timerid) throw (); ># 389 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 398 "/usr/include/time.h" 3 4 >extern struct tm *getdate (__const char *__string); ># 412 "/usr/include/time.h" 3 4 >extern int getdate_r (__const char *__restrict __string, > struct tm *__restrict __resbufp); > > >} ># 39 "panelfront.h" 2 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 1 3 ># 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 3 > ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h" 1 3 ># 41 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception_defines.h" 1 3 ># 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/functexcept.h" 2 3 > >namespace std >{ > > void > __throw_bad_exception(void) __attribute__((__noreturn__)); > > > void > __throw_bad_alloc(void) __attribute__((__noreturn__)); > > > void > __throw_bad_cast(void) __attribute__((__noreturn__)); > > void > __throw_bad_typeid(void) __attribute__((__noreturn__)); > > > void > __throw_logic_error(const char*) __attribute__((__noreturn__)); > > void > __throw_domain_error(const char*) __attribute__((__noreturn__)); > > void > __throw_invalid_argument(const char*) __attribute__((__noreturn__)); > > void > __throw_length_error(const char*) __attribute__((__noreturn__)); > > void > __throw_out_of_range(const char*) __attribute__((__noreturn__)); > > void > __throw_runtime_error(const char*) __attribute__((__noreturn__)); > > void > __throw_range_error(const char*) __attribute__((__noreturn__)); > > void > __throw_overflow_error(const char*) __attribute__((__noreturn__)); > > void > __throw_underflow_error(const char*) __attribute__((__noreturn__)); > > > void > __throw_ios_failure(const char*) __attribute__((__noreturn__)); >} ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 1 3 ># 35 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/os_defines.h" 1 3 ># 36 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 2 3 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/cpu_defines.h" 1 3 ># 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++config.h" 2 3 > > > > >namespace __gnu_debug_def { } > >namespace __gnu_debug >{ > using namespace __gnu_debug_def; >} ># 65 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstddef" 2 3 > >namespace std >{ > using ::ptrdiff_t; > using ::size_t; >} > >#pragma GCC visibility pop ># 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 2 3 > ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 >extern "C" { > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void *rawmemchr (__const void *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memrchr (__const void *__s, int __c, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (2))); > ># 121 "/usr/include/string.h" 3 4 >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strchrnul (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > throw () __attribute__ ((__nonnull__ (2, 3))); > > > > >extern char *strcasestr (__const char *__haystack, __const char *__needle) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) throw (); > ># 281 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > > > > >extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) throw () __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) throw () __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > throw () __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strsignal (int __sig) throw (); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1))); ># 426 "/usr/include/string.h" 3 4 >} ># 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 2 3 ># 79 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstring" 3 >namespace std >{ > using ::memcpy; > using ::memmove; > using ::strcpy; > using ::strncpy; > using ::strcat; > using ::strncat; > using ::memcmp; > using ::strcmp; > using ::strcoll; > using ::strncmp; > using ::strxfrm; > using ::strcspn; > using ::strspn; > using ::strtok; > using ::memset; > using ::strerror; > using ::strlen; > > using ::memchr; > > inline void* > memchr(void* __p, int __c, size_t __n) > { return memchr(const_cast<const void*>(__p), __c, __n); } > > using ::strchr; > > inline char* > strchr(char* __s1, int __n) > { return __builtin_strchr(const_cast<const char*>(__s1), __n); } > > using ::strpbrk; > > inline char* > strpbrk(char* __s1, const char* __s2) > { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); } > > using ::strrchr; > > inline char* > strrchr(char* __s1, int __n) > { return __builtin_strrchr(const_cast<const char*>(__s1), __n); } > > using ::strstr; > > inline char* > strstr(char* __s1, const char* __s2) > { return __builtin_strstr(const_cast<const char*>(__s1), __s2); } >} > >#pragma GCC visibility pop ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 1 3 4 ># 11 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 1 3 4 ># 122 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 145 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 153 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 36 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/src/linux/include/linux/limits.h" 1 3 4 ># 37 "/usr/include/bits/local_lim.h" 2 3 4 ># 154 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 146 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 150 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 154 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 2 3 4 ># 8 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 2 3 4 ># 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/climits" 2 3 > >#pragma GCC visibility pop ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3 >#pragma GCC visibility push(default) ># 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3 ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 34 "/usr/include/stdlib.h" 2 3 4 > >extern "C" { > > > > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 43 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 65 "/usr/include/bits/waitstatus.h" 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 66 "/usr/include/bits/waitstatus.h" 2 3 4 > >union wait > { > int w_status; > struct > { > > unsigned int __w_termsig:7; > unsigned int __w_coredump:1; > unsigned int __w_retcode:8; > unsigned int:16; > > > > > > > > } __wait_terminated; > struct > { > > unsigned int __w_stopval:8; > unsigned int __w_stopsig:8; > unsigned int:16; > > > > > > > } __wait_stopped; > }; ># 44 "/usr/include/stdlib.h" 2 3 4 ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) throw () ; > > > > >extern double atof (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern int atoi (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > >extern long int atol (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > >extern float strtof (__const char *__restrict __nptr, > char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ; > >extern long double strtold (__const char *__restrict __nptr, > char **__restrict __endptr) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) ; > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) ; > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) ; > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > throw () __attribute__ ((__nonnull__ (1))) ; > ># 240 "/usr/include/stdlib.h" 3 4 >extern long int strtol_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ; > >extern unsigned long int strtoul_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))) ; > >__extension__ >extern long long int strtoll_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))) ; > >__extension__ >extern unsigned long long int strtoull_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 4))) ; > >extern double strtod_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))) ; > >extern float strtof_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))) ; > >extern long double strtold_l (__const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) > throw () __attribute__ ((__nonnull__ (1, 3))) ; > > > > > > >extern double __strtod_internal (__const char *__restrict __nptr, > char **__restrict __endptr, int __group) > throw () __attribute__ ((__nonnull__ (1))) ; >extern float __strtof_internal (__const char *__restrict __nptr, > char **__restrict __endptr, int __group) > throw () __attribute__ ((__nonnull__ (1))) ; >extern long double __strtold_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __group) > throw () __attribute__ ((__nonnull__ (1))) ; > >extern long int __strtol_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))) ; > > > >extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > >__extension__ >extern long long int __strtoll_internal (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))) ; > > > >__extension__ >extern unsigned long long int __strtoull_internal (__const char * > __restrict __nptr, > char **__restrict __endptr, > int __base, int __group) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > > > > >extern __inline double >strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtod_internal (__nptr, __endptr, 0); >} >extern __inline long int >strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtol_internal (__nptr, __endptr, __base, 0); >} >extern __inline unsigned long int >strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoul_internal (__nptr, __endptr, __base, 0); >} > > > > >extern __inline float >strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtof_internal (__nptr, __endptr, 0); >} > >extern __inline long double >strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw () >{ > return __strtold_internal (__nptr, __endptr, 0); >} > > > > > >__extension__ extern __inline long long int >strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoll_internal (__nptr, __endptr, __base, 0); >} >__extension__ extern __inline unsigned long long int >strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoull_internal (__nptr, __endptr, __base, 0); >} > > > > >__extension__ extern __inline long long int >strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoll_internal (__nptr, __endptr, __base, 0); >} >__extension__ extern __inline unsigned long long int >strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw () > >{ > return __strtoull_internal (__nptr, __endptr, __base, 0); >} > > > > >extern __inline double >atof (__const char *__nptr) throw () >{ > return strtod (__nptr, (char **) __null); >} >extern __inline int >atoi (__const char *__nptr) throw () >{ > return (int) strtol (__nptr, (char **) __null, 10); >} >extern __inline long int >atol (__const char *__nptr) throw () >{ > return strtol (__nptr, (char **) __null, 10); >} > > > > >__extension__ extern __inline long long int >atoll (__const char *__nptr) throw () >{ > return strtoll (__nptr, (char **) __null, 10); >} > ># 429 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) throw () ; > > >extern long int a64l (__const char *__s) > throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ; > > > > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 29 "/usr/include/sys/types.h" 3 4 >extern "C" { > > > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > > > >typedef __ino64_t ino_t; > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > > > >typedef __off64_t off_t; > > > > >typedef __off64_t off64_t; ># 105 "/usr/include/sys/types.h" 3 4 >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 137 "/usr/include/sys/types.h" 3 4 >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 195 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 220 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 23 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 35 "/usr/include/sys/select.h" 2 3 4 > > > >typedef __sigset_t sigset_t; > > > > > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 >extern "C" { ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > >} ># 221 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 29 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) > throw (); >__extension__ >extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) > throw (); >__extension__ >extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > throw (); > > >__extension__ extern __inline unsigned int >gnu_dev_major (unsigned long long int __dev) throw () >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline unsigned int >gnu_dev_minor (unsigned long long int __dev) throw () >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline unsigned long long int >gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw () >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 224 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; ># 248 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt_t; > > > >typedef __fsblkcnt64_t fsblkcnt_t; > > > >typedef __fsfilcnt64_t fsfilcnt_t; > > > > > >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 36 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[36]; > long int __align; >} pthread_attr_t; > > >typedef struct __pthread_internal_slist >{ > struct __pthread_internal_slist *__next; >} __pthread_slist_t; > > > > >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > > int __kind; > unsigned int __nusers; > __extension__ union > { > int __spins; > __pthread_slist_t __list; > }; > } __data; > char __size[24]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > long int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > long int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > > > unsigned int __flags; > int __writer; > } __data; > char __size[32]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[20]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 271 "/usr/include/sys/types.h" 2 3 4 > > >} ># 439 "/usr/include/stdlib.h" 2 3 4 > > > > > > >extern long int random (void) throw (); > > >extern void srandom (unsigned int __seed) throw (); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) throw () __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > throw () __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) throw (); > >extern void srand (unsigned int __seed) throw (); > > > > >extern int rand_r (unsigned int *__seed) throw (); > > > > > > > >extern double drand48 (void) throw (); >extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) throw (); >extern long int nrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) throw (); >extern long int jrand48 (unsigned short int __xsubi[3]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) throw (); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > throw () __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > throw () __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ; > >extern void *calloc (size_t __nmemb, size_t __size) > throw () __attribute__ ((__malloc__)) ; > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) throw (); > > > > >extern void cfree (void *__ptr) throw (); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > >extern "C" { > > > > > >extern void *alloca (size_t __size) throw (); > > > > > >} ># 613 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ; > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > >extern void abort (void) throw () __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern void _Exit (int __status) throw () __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ; > > > > >extern char *__secure_getenv (__const char *__name) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) throw (); > > > > > > >extern int clearenv (void) throw (); ># 698 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; ># 712 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") > __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ; ># 729 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ; > > > > > > > > >extern int system (__const char *__command) ; > > > > > > > >extern char *canonicalize_file_name (__const char *__name) > throw () __attribute__ ((__nonnull__ (1))) ; ># 757 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) throw () ; > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > > > > >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))) ; > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > > > >extern int abs (int __x) throw () __attribute__ ((__const__)) ; >extern long int labs (long int __x) throw () __attribute__ ((__const__)) ; > > > >__extension__ extern long long int llabs (long long int __x) > throw () __attribute__ ((__const__)) ; > > > > > > > >extern div_t div (int __numer, int __denom) > throw () __attribute__ ((__const__)) ; >extern ldiv_t ldiv (long int __numer, long int __denom) > throw () __attribute__ ((__const__)) ; > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > throw () __attribute__ ((__const__)) ; > ># 822 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ; > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))) ; > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > throw () __attribute__ ((__nonnull__ (3, 4))) ; >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > throw () __attribute__ ((__nonnull__ (3))) ; > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) throw () ; > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) throw () ; > > >extern int wctomb (char *__s, wchar_t __wchar) throw () ; > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) throw (); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > throw (); > > > > > > > > >extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ; ># 910 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *__const *__restrict __tokens, > char **__restrict __valuep) > throw () __attribute__ ((__nonnull__ (1, 2, 3))) ; > > > > > >extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag) ; > > > > > > > >extern int grantpt (int __fd) throw (); > > > >extern int unlockpt (int __fd) throw (); > > > > >extern char *ptsname (int __fd) throw () ; > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > throw () __attribute__ ((__nonnull__ (1))); ># 978 "/usr/include/stdlib.h" 3 4 >} ># 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 2 3 ># 104 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3 >namespace std >{ > using ::div_t; > using ::ldiv_t; > > using ::abort; > using ::abs; > using ::atexit; > using ::atof; > using ::atoi; > using ::atol; > using ::bsearch; > using ::calloc; > using ::div; > using ::exit; > using ::free; > using ::getenv; > using ::labs; > using ::ldiv; > using ::malloc; > > using ::mblen; > using ::mbstowcs; > using ::mbtowc; > > using ::qsort; > using ::rand; > using ::realloc; > using ::srand; > using ::strtod; > using ::strtol; > using ::strtoul; > using ::system; > > using ::wcstombs; > using ::wctomb; > > > inline long > abs(long __i) { return labs(__i); } > > inline ldiv_t > div(long __i, long __j) { return ldiv(__i, __j); } >} ># 160 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3 >namespace __gnu_cxx >{ > > using ::lldiv_t; > > > > > > using ::_Exit; > > > inline long long > abs(long long __x) { return __x >= 0 ? __x : -__x; } > > > using ::llabs; > > inline lldiv_t > div(long long __n, long long __d) > { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; } > > using ::lldiv; ># 193 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdlib" 3 > using ::atoll; > using ::strtoll; > using ::strtoull; > > using ::strtof; > using ::strtold; >} > >namespace std >{ > > using ::__gnu_cxx::lldiv_t; > > using ::__gnu_cxx::_Exit; > using ::__gnu_cxx::abs; > > using ::__gnu_cxx::llabs; > using ::__gnu_cxx::div; > using ::__gnu_cxx::lldiv; > > using ::__gnu_cxx::atoll; > using ::__gnu_cxx::strtof; > using ::__gnu_cxx::strtoll; > using ::__gnu_cxx::strtoull; > using ::__gnu_cxx::strtold; >} > > > > > >#pragma GCC visibility pop ># 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 1 3 ># 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 3 > ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 3 >#pragma GCC visibility push(default) > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 1 3 ># 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 3 > ># 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 3 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3 >#pragma GCC visibility push(default) ># 99 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3 >namespace std >{ > using ::FILE; > using ::fpos_t; > > using ::clearerr; > using ::fclose; > using ::feof; > using ::ferror; > using ::fflush; > using ::fgetc; > using ::fgetpos; > using ::fgets; > using ::fopen; > using ::fprintf; > using ::fputc; > using ::fputs; > using ::fread; > using ::freopen; > using ::fscanf; > using ::fseek; > using ::fsetpos; > using ::ftell; > using ::fwrite; > using ::getc; > using ::getchar; > using ::gets; > using ::perror; > using ::printf; > using ::putc; > using ::putchar; > using ::puts; > using ::remove; > using ::rename; > using ::rewind; > using ::scanf; > using ::setbuf; > using ::setvbuf; > using ::sprintf; > using ::sscanf; > using ::tmpfile; > using ::tmpnam; > using ::ungetc; > using ::vfprintf; > using ::vprintf; > using ::vsprintf; >} ># 155 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3 >namespace __gnu_cxx >{ ># 170 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cstdio" 3 > using ::snprintf; > using ::vfscanf; > using ::vscanf; > using ::vsnprintf; > using ::vsscanf; > >} > >namespace std >{ > using __gnu_cxx::snprintf; > using __gnu_cxx::vfscanf; > using __gnu_cxx::vscanf; > using __gnu_cxx::vsnprintf; > using __gnu_cxx::vsscanf; >} > > >#pragma GCC visibility pop ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/include/locale.h" 1 3 4 ># 29 "/usr/include/locale.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 30 "/usr/include/locale.h" 2 3 4 ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/bits/locale.h" 3 4 >enum >{ > __LC_CTYPE = 0, > __LC_NUMERIC = 1, > __LC_TIME = 2, > __LC_COLLATE = 3, > __LC_MONETARY = 4, > __LC_MESSAGES = 5, > __LC_ALL = 6, > __LC_PAPER = 7, > __LC_NAME = 8, > __LC_ADDRESS = 9, > __LC_TELEPHONE = 10, > __LC_MEASUREMENT = 11, > __LC_IDENTIFICATION = 12 >}; ># 31 "/usr/include/locale.h" 2 3 4 > >extern "C" { ># 52 "/usr/include/locale.h" 3 4 >struct lconv >{ > > > char *decimal_point; > char *thousands_sep; > > > > > > char *grouping; > > > > > > char *int_curr_symbol; > char *currency_symbol; > char *mon_decimal_point; > char *mon_thousands_sep; > char *mon_grouping; > char *positive_sign; > char *negative_sign; > char int_frac_digits; > char frac_digits; > > char p_cs_precedes; > > char p_sep_by_space; > > char n_cs_precedes; > > char n_sep_by_space; > > > > > > > char p_sign_posn; > char n_sign_posn; > > > char int_p_cs_precedes; > > char int_p_sep_by_space; > > char int_n_cs_precedes; > > char int_n_sep_by_space; > > > > > > > char int_p_sign_posn; > char int_n_sign_posn; ># 119 "/usr/include/locale.h" 3 4 >}; > > > > > >extern char *setlocale (int __category, __const char *__locale) throw (); > > >extern struct lconv *localeconv (void) throw (); > > ># 148 "/usr/include/locale.h" 3 4 >typedef __locale_t locale_t; > > > > > >extern __locale_t newlocale (int __category_mask, __const char *__locale, > __locale_t __base) throw (); ># 189 "/usr/include/locale.h" 3 4 >extern __locale_t duplocale (__locale_t __dataset) throw (); > > > >extern void freelocale (__locale_t __dataset) throw (); > > > > > > >extern __locale_t uselocale (__locale_t __dataset) throw (); > > > > > > > >} ># 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/clocale" 2 3 > > > > > >namespace std >{ > using ::lconv; > using ::setlocale; > using ::localeconv; >} > >#pragma GCC visibility pop ># 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/langinfo.h" 1 3 4 ># 24 "/usr/include/langinfo.h" 3 4 ># 1 "/usr/include/nl_types.h" 1 3 4 ># 31 "/usr/include/nl_types.h" 3 4 >extern "C" { > > >typedef void *nl_catd; > > >typedef int nl_item; > > > > > >extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1))); > > > >extern char *catgets (nl_catd __catalog, int __set, int __number, > __const char *__string) throw () __attribute__ ((__nonnull__ (1))); > > >extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1))); > >} ># 25 "/usr/include/langinfo.h" 2 3 4 > ># 1 "/usr/include/bits/locale.h" 1 3 4 ># 27 "/usr/include/langinfo.h" 2 3 4 > > >extern "C" { ># 42 "/usr/include/langinfo.h" 3 4 >enum >{ > > > > ABDAY_1 = (((__LC_TIME) << 16) | (0)), > > ABDAY_2, > > ABDAY_3, > > ABDAY_4, > > ABDAY_5, > > ABDAY_6, > > ABDAY_7, > > > > DAY_1, > > DAY_2, > > DAY_3, > > DAY_4, > > DAY_5, > > DAY_6, > > DAY_7, > > > > ABMON_1, > > ABMON_2, > > ABMON_3, > > ABMON_4, > > ABMON_5, > > ABMON_6, > > ABMON_7, > > ABMON_8, > > ABMON_9, > > ABMON_10, > > ABMON_11, > > ABMON_12, > > > > MON_1, > > MON_2, > > MON_3, > > MON_4, > > MON_5, > > MON_6, > > MON_7, > > MON_8, > > MON_9, > > MON_10, > > MON_11, > > MON_12, > > > AM_STR, > > PM_STR, > > > D_T_FMT, > > D_FMT, > > T_FMT, > > T_FMT_AMPM, > > > ERA, > > __ERA_YEAR, > > > > ERA_D_FMT, > > ALT_DIGITS, > > ERA_D_T_FMT, > > ERA_T_FMT, > > > _NL_TIME_ERA_NUM_ENTRIES, > _NL_TIME_ERA_ENTRIES, > > _NL_WABDAY_1, > _NL_WABDAY_2, > _NL_WABDAY_3, > _NL_WABDAY_4, > _NL_WABDAY_5, > _NL_WABDAY_6, > _NL_WABDAY_7, > > > _NL_WDAY_1, > _NL_WDAY_2, > _NL_WDAY_3, > _NL_WDAY_4, > _NL_WDAY_5, > _NL_WDAY_6, > _NL_WDAY_7, > > > _NL_WABMON_1, > _NL_WABMON_2, > _NL_WABMON_3, > _NL_WABMON_4, > _NL_WABMON_5, > _NL_WABMON_6, > _NL_WABMON_7, > _NL_WABMON_8, > _NL_WABMON_9, > _NL_WABMON_10, > _NL_WABMON_11, > _NL_WABMON_12, > > > _NL_WMON_1, > _NL_WMON_2, > _NL_WMON_3, > _NL_WMON_4, > _NL_WMON_5, > _NL_WMON_6, > _NL_WMON_7, > _NL_WMON_8, > _NL_WMON_9, > _NL_WMON_10, > _NL_WMON_11, > _NL_WMON_12, > > _NL_WAM_STR, > _NL_WPM_STR, > > _NL_WD_T_FMT, > _NL_WD_FMT, > _NL_WT_FMT, > _NL_WT_FMT_AMPM, > > _NL_WERA_YEAR, > _NL_WERA_D_FMT, > _NL_WALT_DIGITS, > _NL_WERA_D_T_FMT, > _NL_WERA_T_FMT, > > _NL_TIME_WEEK_NDAYS, > _NL_TIME_WEEK_1STDAY, > _NL_TIME_WEEK_1STWEEK, > _NL_TIME_FIRST_WEEKDAY, > _NL_TIME_FIRST_WORKDAY, > _NL_TIME_CAL_DIRECTION, > _NL_TIME_TIMEZONE, > > _DATE_FMT, > > _NL_W_DATE_FMT, > > _NL_TIME_CODESET, > > _NL_NUM_LC_TIME, > > > > > _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)), > _NL_COLLATE_RULESETS, > _NL_COLLATE_TABLEMB, > _NL_COLLATE_WEIGHTMB, > _NL_COLLATE_EXTRAMB, > _NL_COLLATE_INDIRECTMB, > _NL_COLLATE_GAP1, > _NL_COLLATE_GAP2, > _NL_COLLATE_GAP3, > _NL_COLLATE_TABLEWC, > _NL_COLLATE_WEIGHTWC, > _NL_COLLATE_EXTRAWC, > _NL_COLLATE_INDIRECTWC, > _NL_COLLATE_SYMB_HASH_SIZEMB, > _NL_COLLATE_SYMB_TABLEMB, > _NL_COLLATE_SYMB_EXTRAMB, > _NL_COLLATE_COLLSEQMB, > _NL_COLLATE_COLLSEQWC, > _NL_COLLATE_CODESET, > _NL_NUM_LC_COLLATE, > > > > > _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)), > _NL_CTYPE_TOUPPER, > _NL_CTYPE_GAP1, > _NL_CTYPE_TOLOWER, > _NL_CTYPE_GAP2, > _NL_CTYPE_CLASS32, > _NL_CTYPE_GAP3, > _NL_CTYPE_GAP4, > _NL_CTYPE_GAP5, > _NL_CTYPE_GAP6, > _NL_CTYPE_CLASS_NAMES, > _NL_CTYPE_MAP_NAMES, > _NL_CTYPE_WIDTH, > _NL_CTYPE_MB_CUR_MAX, > _NL_CTYPE_CODESET_NAME, > CODESET = _NL_CTYPE_CODESET_NAME, > > _NL_CTYPE_TOUPPER32, > _NL_CTYPE_TOLOWER32, > _NL_CTYPE_CLASS_OFFSET, > _NL_CTYPE_MAP_OFFSET, > _NL_CTYPE_INDIGITS_MB_LEN, > _NL_CTYPE_INDIGITS0_MB, > _NL_CTYPE_INDIGITS1_MB, > _NL_CTYPE_INDIGITS2_MB, > _NL_CTYPE_INDIGITS3_MB, > _NL_CTYPE_INDIGITS4_MB, > _NL_CTYPE_INDIGITS5_MB, > _NL_CTYPE_INDIGITS6_MB, > _NL_CTYPE_INDIGITS7_MB, > _NL_CTYPE_INDIGITS8_MB, > _NL_CTYPE_INDIGITS9_MB, > _NL_CTYPE_INDIGITS_WC_LEN, > _NL_CTYPE_INDIGITS0_WC, > _NL_CTYPE_INDIGITS1_WC, > _NL_CTYPE_INDIGITS2_WC, > _NL_CTYPE_INDIGITS3_WC, > _NL_CTYPE_INDIGITS4_WC, > _NL_CTYPE_INDIGITS5_WC, > _NL_CTYPE_INDIGITS6_WC, > _NL_CTYPE_INDIGITS7_WC, > _NL_CTYPE_INDIGITS8_WC, > _NL_CTYPE_INDIGITS9_WC, > _NL_CTYPE_OUTDIGIT0_MB, > _NL_CTYPE_OUTDIGIT1_MB, > _NL_CTYPE_OUTDIGIT2_MB, > _NL_CTYPE_OUTDIGIT3_MB, > _NL_CTYPE_OUTDIGIT4_MB, > _NL_CTYPE_OUTDIGIT5_MB, > _NL_CTYPE_OUTDIGIT6_MB, > _NL_CTYPE_OUTDIGIT7_MB, > _NL_CTYPE_OUTDIGIT8_MB, > _NL_CTYPE_OUTDIGIT9_MB, > _NL_CTYPE_OUTDIGIT0_WC, > _NL_CTYPE_OUTDIGIT1_WC, > _NL_CTYPE_OUTDIGIT2_WC, > _NL_CTYPE_OUTDIGIT3_WC, > _NL_CTYPE_OUTDIGIT4_WC, > _NL_CTYPE_OUTDIGIT5_WC, > _NL_CTYPE_OUTDIGIT6_WC, > _NL_CTYPE_OUTDIGIT7_WC, > _NL_CTYPE_OUTDIGIT8_WC, > _NL_CTYPE_OUTDIGIT9_WC, > _NL_CTYPE_TRANSLIT_TAB_SIZE, > _NL_CTYPE_TRANSLIT_FROM_IDX, > _NL_CTYPE_TRANSLIT_FROM_TBL, > _NL_CTYPE_TRANSLIT_TO_IDX, > _NL_CTYPE_TRANSLIT_TO_TBL, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN, > _NL_CTYPE_TRANSLIT_DEFAULT_MISSING, > _NL_CTYPE_TRANSLIT_IGNORE_LEN, > _NL_CTYPE_TRANSLIT_IGNORE, > _NL_CTYPE_MAP_TO_NONASCII, > _NL_CTYPE_EXTRA_MAP_1, > _NL_CTYPE_EXTRA_MAP_2, > _NL_CTYPE_EXTRA_MAP_3, > _NL_CTYPE_EXTRA_MAP_4, > _NL_CTYPE_EXTRA_MAP_5, > _NL_CTYPE_EXTRA_MAP_6, > _NL_CTYPE_EXTRA_MAP_7, > _NL_CTYPE_EXTRA_MAP_8, > _NL_CTYPE_EXTRA_MAP_9, > _NL_CTYPE_EXTRA_MAP_10, > _NL_CTYPE_EXTRA_MAP_11, > _NL_CTYPE_EXTRA_MAP_12, > _NL_CTYPE_EXTRA_MAP_13, > _NL_CTYPE_EXTRA_MAP_14, > _NL_NUM_LC_CTYPE, > > > > > __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)), > > > > __CURRENCY_SYMBOL, > > > > __MON_DECIMAL_POINT, > > > > __MON_THOUSANDS_SEP, > > > > __MON_GROUPING, > > > > __POSITIVE_SIGN, > > > > __NEGATIVE_SIGN, > > > > __INT_FRAC_DIGITS, > > > > __FRAC_DIGITS, > > > > __P_CS_PRECEDES, > > > > __P_SEP_BY_SPACE, > > > > __N_CS_PRECEDES, > > > > __N_SEP_BY_SPACE, > > > > __P_SIGN_POSN, > > > > __N_SIGN_POSN, > > > > _NL_MONETARY_CRNCYSTR, > > __INT_P_CS_PRECEDES, > > > > __INT_P_SEP_BY_SPACE, > > > > __INT_N_CS_PRECEDES, > > > > __INT_N_SEP_BY_SPACE, > > > > __INT_P_SIGN_POSN, > > > > __INT_N_SIGN_POSN, > > > > _NL_MONETARY_DUO_INT_CURR_SYMBOL, > _NL_MONETARY_DUO_CURRENCY_SYMBOL, > _NL_MONETARY_DUO_INT_FRAC_DIGITS, > _NL_MONETARY_DUO_FRAC_DIGITS, > _NL_MONETARY_DUO_P_CS_PRECEDES, > _NL_MONETARY_DUO_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_N_CS_PRECEDES, > _NL_MONETARY_DUO_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_P_CS_PRECEDES, > _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, > _NL_MONETARY_DUO_INT_N_CS_PRECEDES, > _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, > _NL_MONETARY_DUO_P_SIGN_POSN, > _NL_MONETARY_DUO_N_SIGN_POSN, > _NL_MONETARY_DUO_INT_P_SIGN_POSN, > _NL_MONETARY_DUO_INT_N_SIGN_POSN, > _NL_MONETARY_UNO_VALID_FROM, > _NL_MONETARY_UNO_VALID_TO, > _NL_MONETARY_DUO_VALID_FROM, > _NL_MONETARY_DUO_VALID_TO, > _NL_MONETARY_CONVERSION_RATE, > _NL_MONETARY_DECIMAL_POINT_WC, > _NL_MONETARY_THOUSANDS_SEP_WC, > _NL_MONETARY_CODESET, > _NL_NUM_LC_MONETARY, > > > > __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)), > > > > RADIXCHAR = __DECIMAL_POINT, > > __THOUSANDS_SEP, > > > > THOUSEP = __THOUSANDS_SEP, > > __GROUPING, > > > > _NL_NUMERIC_DECIMAL_POINT_WC, > _NL_NUMERIC_THOUSANDS_SEP_WC, > _NL_NUMERIC_CODESET, > _NL_NUM_LC_NUMERIC, > > __YESEXPR = (((__LC_MESSAGES) << 16) | (0)), > > __NOEXPR, > > __YESSTR, > > > > __NOSTR, > > > > _NL_MESSAGES_CODESET, > _NL_NUM_LC_MESSAGES, > > _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)), > _NL_PAPER_WIDTH, > _NL_PAPER_CODESET, > _NL_NUM_LC_PAPER, > > _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)), > _NL_NAME_NAME_GEN, > _NL_NAME_NAME_MR, > _NL_NAME_NAME_MRS, > _NL_NAME_NAME_MISS, > _NL_NAME_NAME_MS, > _NL_NAME_CODESET, > _NL_NUM_LC_NAME, > > _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)), > _NL_ADDRESS_COUNTRY_NAME, > _NL_ADDRESS_COUNTRY_POST, > _NL_ADDRESS_COUNTRY_AB2, > _NL_ADDRESS_COUNTRY_AB3, > _NL_ADDRESS_COUNTRY_CAR, > _NL_ADDRESS_COUNTRY_NUM, > _NL_ADDRESS_COUNTRY_ISBN, > _NL_ADDRESS_LANG_NAME, > _NL_ADDRESS_LANG_AB, > _NL_ADDRESS_LANG_TERM, > _NL_ADDRESS_LANG_LIB, > _NL_ADDRESS_CODESET, > _NL_NUM_LC_ADDRESS, > > _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)), > _NL_TELEPHONE_TEL_DOM_FMT, > _NL_TELEPHONE_INT_SELECT, > _NL_TELEPHONE_INT_PREFIX, > _NL_TELEPHONE_CODESET, > _NL_NUM_LC_TELEPHONE, > > _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)), > _NL_MEASUREMENT_CODESET, > _NL_NUM_LC_MEASUREMENT, > > _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)), > _NL_IDENTIFICATION_SOURCE, > _NL_IDENTIFICATION_ADDRESS, > _NL_IDENTIFICATION_CONTACT, > _NL_IDENTIFICATION_EMAIL, > _NL_IDENTIFICATION_TEL, > _NL_IDENTIFICATION_FAX, > _NL_IDENTIFICATION_LANGUAGE, > _NL_IDENTIFICATION_TERRITORY, > _NL_IDENTIFICATION_AUDIENCE, > _NL_IDENTIFICATION_APPLICATION, > _NL_IDENTIFICATION_ABBREVIATION, > _NL_IDENTIFICATION_REVISION, > _NL_IDENTIFICATION_DATE, > _NL_IDENTIFICATION_CATEGORY, > _NL_IDENTIFICATION_CODESET, > _NL_NUM_LC_IDENTIFICATION, > > > _NL_NUM >}; ># 582 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo (nl_item __item) throw (); ># 593 "/usr/include/langinfo.h" 3 4 >extern char *nl_langinfo_l (nl_item __item, __locale_t l); > > >} ># 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/iconv.h" 1 3 4 ># 24 "/usr/include/iconv.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 25 "/usr/include/iconv.h" 2 3 4 > > >extern "C" { > > >typedef void *iconv_t; > > > > > > > >extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode); > > > > >extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, > size_t *__restrict __inbytesleft, > char **__restrict __outbuf, > size_t *__restrict __outbytesleft); > > > > > >extern int iconv_close (iconv_t __cd); > >} ># 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3 ># 1 "/usr/include/libintl.h" 1 3 4 ># 35 "/usr/include/libintl.h" 3 4 >extern "C" { > > > > >extern char *gettext (__const char *__msgid) > throw () __attribute__ ((__format_arg__ (1))); > > > >extern char *dgettext (__const char *__domainname, __const char *__msgid) > throw () __attribute__ ((__format_arg__ (2))); >extern char *__dgettext (__const char *__domainname, __const char *__msgid) > throw () __attribute__ ((__format_arg__ (2))); > > > >extern char *dcgettext (__const char *__domainname, > __const char *__msgid, int __category) > throw () __attribute__ ((__format_arg__ (2))); >extern char *__dcgettext (__const char *__domainname, > __const char *__msgid, int __category) > throw () __attribute__ ((__format_arg__ (2))); > > > > >extern char *ngettext (__const char *__msgid1, __const char *__msgid2, > unsigned long int __n) > throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); > > > >extern char *dngettext (__const char *__domainname, __const char *__msgid1, > __const char *__msgid2, unsigned long int __n) > throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > >extern char *dcngettext (__const char *__domainname, __const char *__msgid1, > __const char *__msgid2, unsigned long int __n, > int __category) > throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); > > > > > >extern char *textdomain (__const char *__domainname) throw (); > > > >extern char *bindtextdomain (__const char *__domainname, > __const char *__dirname) throw (); > > > >extern char *bind_textdomain_codeset (__const char *__domainname, > __const char *__codeset) throw (); ># 122 "/usr/include/libintl.h" 3 4 >} ># 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 2 3 > > > > > > >namespace __gnu_cxx >{ > extern "C" __typeof(uselocale) __uselocale; >} > > >namespace std >{ > typedef __locale_t __c_locale; > > > > > > template<typename _Tv> > int > __convert_from_v(char* __out, > const int __size __attribute__ ((__unused__)), > const char* __fmt, > > _Tv __v, const __c_locale& __cloc, int __prec) > { > __c_locale __old = __gnu_cxx::__uselocale(__cloc); ># 86 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++locale.h" 3 > const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v); > > > > > > __gnu_cxx::__uselocale(__old); > > > > > return __ret; > } >} ># 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++io.h" 1 3 ># 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++io.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 1 3 ># 33 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 3 >#pragma GCC visibility push(default) ># 114 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 1 3 ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3 ># 1 "/usr/include/pthread.h" 1 3 4 ># 23 "/usr/include/pthread.h" 3 4 ># 1 "/usr/include/sched.h" 1 3 4 ># 32 "/usr/include/sched.h" 3 4 ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 65 "/usr/include/bits/sched.h" 3 4 >struct sched_param > { > int __sched_priority; > }; > >extern "C" { > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg, ...) throw (); > > >extern int unshare (int __flags) throw (); > > >} > > > > > > > >struct __sched_param > { > int __sched_priority; > }; ># 104 "/usr/include/bits/sched.h" 3 4 >typedef unsigned long int __cpu_mask; > > > > > > >typedef struct >{ > __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; >} cpu_set_t; ># 33 "/usr/include/sched.h" 2 3 4 > > > > >extern "C" { > > >extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) > throw (); > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw (); > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > __const struct sched_param *__param) throw (); > > >extern int sched_getscheduler (__pid_t __pid) throw (); > > >extern int sched_yield (void) throw (); > > >extern int sched_get_priority_max (int __algorithm) throw (); > > >extern int sched_get_priority_min (int __algorithm) throw (); > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw (); ># 76 "/usr/include/sched.h" 3 4 >extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, > __const cpu_set_t *__cpuset) throw (); > > >extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, > cpu_set_t *__cpuset) throw (); > > >} ># 24 "/usr/include/pthread.h" 2 3 4 > > > ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 34 "/usr/include/signal.h" 2 3 4 ># 400 "/usr/include/signal.h" 3 4 >} ># 28 "/usr/include/pthread.h" 2 3 4 > ># 1 "/usr/include/bits/setjmp.h" 1 3 4 ># 29 "/usr/include/bits/setjmp.h" 3 4 >typedef int __jmp_buf[6]; ># 30 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 31 "/usr/include/pthread.h" 2 3 4 > > > >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > > > >enum >{ > PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_ADAPTIVE_NP > > , > PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL > > > > , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP > >}; > > > > >enum >{ > PTHREAD_MUTEX_STALLED_NP, > PTHREAD_MUTEX_ROBUST_NP >}; > > > > > >enum >{ > PTHREAD_PRIO_NONE, > PTHREAD_PRIO_INHERIT, > PTHREAD_PRIO_PROTECT >}; ># 113 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_RWLOCK_PREFER_READER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, > PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP >}; ># 143 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > > > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > > > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; ># 178 "/usr/include/pthread.h" 3 4 >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 216 "/usr/include/pthread.h" 3 4 >extern "C" { > > > > >extern int pthread_create (pthread_t *__restrict __newthread, > __const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) throw (); > > > > > >extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); > > > > > > > >extern int pthread_join (pthread_t __th, void **__thread_return); > > > > >extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw (); > > > > > > > >extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, > __const struct timespec *__abstime); > > > > > > >extern int pthread_detach (pthread_t __th) throw (); > > > >extern pthread_t pthread_self (void) throw () __attribute__ ((__const__)); > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw (); > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) throw (); > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) throw (); > > >extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, > int *__detachstate) throw (); > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) throw (); > > > >extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, > size_t *__guardsize) throw (); > > >extern int pthread_attr_setguardsize (pthread_attr_t *__attr, > size_t __guardsize) throw (); > > > >extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict > __attr, > struct sched_param *__restrict __param) > throw (); > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > __const struct sched_param *__restrict > __param) throw (); > > >extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > throw (); > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > throw (); > > >extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > throw (); > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) throw (); > > > >extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, > int *__restrict __scope) throw (); > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > throw (); > > >extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > throw () __attribute__ ((__deprecated__)); > > > > > >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) > throw () __attribute__ ((__deprecated__)); > > >extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > throw (); > > > > >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) throw (); > > > >extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, > void **__restrict __stackaddr, > size_t *__restrict __stacksize) throw (); > > > > >extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > size_t __stacksize) throw (); > > > > > >extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, > size_t __cpusetsize, > __const cpu_set_t *__cpuset) throw (); > > > >extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, > size_t __cpusetsize, > cpu_set_t *__cpuset) throw (); > > > > > >extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) throw (); > > > > > > > >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > __const struct sched_param *__param) > throw (); > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > throw (); > > >extern int pthread_setschedprio (pthread_t __target_thread, int __prio) > throw (); > > > > >extern int pthread_getconcurrency (void) throw (); > > >extern int pthread_setconcurrency (int __level) throw (); > > > > > > > >extern int pthread_yield (void) throw (); > > > > >extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, > __const cpu_set_t *__cpuset) throw (); > > >extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, > cpu_set_t *__cpuset) throw (); ># 448 "/usr/include/pthread.h" 3 4 >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)); ># 460 "/usr/include/pthread.h" 3 4 >extern int pthread_setcancelstate (int __state, int *__oldstate); > > > >extern int pthread_setcanceltype (int __type, int *__oldtype); > > >extern int pthread_cancel (pthread_t __th); > > > > >extern void pthread_testcancel (void); > > > > >typedef struct >{ > struct > { > __jmp_buf __cancel_jmp_buf; > int __mask_was_saved; > } __cancel_jmp_buf[1]; > void *__pad[4]; >} __pthread_unwind_buf_t __attribute__ ((__aligned__)); ># 494 "/usr/include/pthread.h" 3 4 >struct __pthread_cleanup_frame >{ > void (*__cancel_routine) (void *); > void *__cancel_arg; > int __do_it; > int __cancel_type; >}; > > > > >class __pthread_cleanup_class >{ > void (*__cancel_routine) (void *); > void *__cancel_arg; > int __do_it; > int __cancel_type; > > public: > __pthread_cleanup_class (void (*__fct) (void *), void *__arg) > : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { } > ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); } > void __setdoit (int __newval) { __do_it = __newval; } > void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, > &__cancel_type); } > void __restore () const { pthread_setcanceltype (__cancel_type, 0); } >}; ># 694 "/usr/include/pthread.h" 3 4 >struct __jmp_buf_tag; >extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw (); > > > > > >extern int pthread_mutex_init (pthread_mutex_t *__mutex, > __const pthread_mutexattr_t *__mutexattr) > throw (); > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) throw (); > > >extern int pthread_mutex_trylock (pthread_mutex_t *_mutex) throw (); > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) throw (); > > > >extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) throw (); > > > > >extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * > __restrict __mutex, > int *__restrict __prioceiling) > throw (); > > > >extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, > int __prioceiling, > int *__restrict __old_ceiling) > throw (); > > > > > >extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) throw (); > > > > > > > >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) throw (); > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) throw (); > > >extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) throw (); > > > >extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict > __attr, int *__restrict __kind) throw (); > > > > >extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) > throw (); > > >extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __protocol) throw (); > > > >extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, > int __protocol) throw (); > > >extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __prioceiling) > throw (); > > >extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, > int __prioceiling) throw (); > > > > >extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, > int *__robustness) throw (); > > >extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, > int __robustness) throw (); ># 813 "/usr/include/pthread.h" 3 4 >extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, > __const pthread_rwlockattr_t *__restrict > __attr) throw (); > > >extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) throw (); > > > >extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) throw (); > > >extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) throw (); > > > >extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) throw (); > > > >extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) throw (); > > > > > >extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) throw (); > > >extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) throw (); > > >extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, > int __pshared) throw (); > > >extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pref) throw (); > > >extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, > int __pref) throw (); > > > > > > > >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > __const pthread_condattr_t *__restrict > __cond_attr) throw (); > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) throw (); > > >extern int pthread_cond_signal (pthread_cond_t *__cond) throw (); > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) throw (); > > > > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex); ># 910 "/usr/include/pthread.h" 3 4 >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime); > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) throw (); > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) throw (); > > >extern int pthread_condattr_getpshared (__const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) throw (); > > > >extern int pthread_condattr_getclock (__const pthread_condattr_t * > __restrict __attr, > __clockid_t *__restrict __clock_id) > throw (); > > >extern int pthread_condattr_setclock (pthread_condattr_t *__attr, > __clockid_t __clock_id) throw (); ># 951 "/usr/include/pthread.h" 3 4 >extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) > throw (); > > >extern int pthread_spin_destroy (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_lock (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_trylock (pthread_spinlock_t *__lock) throw (); > > >extern int pthread_spin_unlock (pthread_spinlock_t *__lock) throw (); > > > > > > >extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, > __const pthread_barrierattr_t *__restrict > __attr, unsigned int __count) throw (); > > >extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) throw (); > > >extern int pthread_barrier_wait (pthread_barrier_t *__barrier) throw (); > > > >extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) throw (); > > >extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) throw (); > > >extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * > __restrict __attr, > int *__restrict __pshared) throw (); > > >extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, > int __pshared) throw (); ># 1007 "/usr/include/pthread.h" 3 4 >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) throw (); > > >extern int pthread_key_delete (pthread_key_t __key) throw (); > > >extern void *pthread_getspecific (pthread_key_t __key) throw (); > > >extern int pthread_setspecific (pthread_key_t __key, > __const void *__pointer) throw (); > > > > >extern int pthread_getcpuclockid (pthread_t __thread_id, > __clockid_t *__clock_id) throw (); ># 1039 "/usr/include/pthread.h" 3 4 >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) throw (); > >} ># 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 2 3 ># 1 "/usr/include/unistd.h" 1 3 4 ># 28 "/usr/include/unistd.h" 3 4 >extern "C" { ># 171 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 172 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 176 "/usr/include/unistd.h" 2 3 4 ># 195 "/usr/include/unistd.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 196 "/usr/include/unistd.h" 2 3 4 ># 236 "/usr/include/unistd.h" 3 4 >typedef __intptr_t intptr_t; > > > > > > >typedef __socklen_t socklen_t; ># 256 "/usr/include/unistd.h" 3 4 >extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int euidaccess (__const char *__name, int __type) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int eaccess (__const char *__name, int __type) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int faccessat (int __fd, __const char *__file, int __type, int __flag) > throw () __attribute__ ((__nonnull__ (2))) ; ># 302 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) throw () __asm__ ("" "lseek64"); > > > > > > > >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) > throw (); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ; > > > > > >extern ssize_t write (int __fd, __const void *__buf, size_t __n) ; ># 353 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") ; > > >extern ssize_t pwrite (int __fd, __const void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pwrite64") ; ># 369 "/usr/include/unistd.h" 3 4 >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset) ; > > >extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > __off64_t __offset) ; > > > > > > > >extern int pipe (int __pipedes[2]) throw () ; ># 391 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) throw (); ># 403 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds); > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > throw (); > > > > > > >extern int usleep (__useconds_t __useconds); ># 427 "/usr/include/unistd.h" 3 4 >extern int pause (void); > > > >extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))) ; > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ; > > > > >extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > > >extern int fchownat (int __fd, __const char *__file, __uid_t __owner, > __gid_t __group, int __flag) > throw () __attribute__ ((__nonnull__ (2))) ; > > > >extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; > > > >extern int fchdir (int __fd) throw () ; ># 469 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) throw () ; > > > > > >extern char *get_current_dir_name (void) throw (); > > > > > > >extern char *getwd (char *__buf) > throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ; > > > > >extern int dup (int __fd) throw () ; > > >extern int dup2 (int __fd, int __fd2) throw (); > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (__const char *__path, char *__const __argv[], > char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) > throw (); > > > > >extern int execv (__const char *__path, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execle (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execl (__const char *__path, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int execvp (__const char *__file, char *__const __argv[]) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int execlp (__const char *__file, __const char *__arg, ...) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int nice (int __inc) throw () ; > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 26 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS > > }; ># 553 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (__const char *__path, int __name) > throw () __attribute__ ((__nonnull__ (1))); > > >extern long int fpathconf (int __fd, int __name) throw (); > > >extern long int sysconf (int __name) throw () __attribute__ ((__const__)); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) throw (); > > > > >extern __pid_t getpid (void) throw (); > > >extern __pid_t getppid (void) throw (); > > > > >extern __pid_t getpgrp (void) throw (); ># 589 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) throw (); > >extern __pid_t getpgid (__pid_t __pid) throw (); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) throw (); ># 615 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) throw (); ># 632 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) throw (); > > > >extern __pid_t getsid (__pid_t __pid) throw (); > > > >extern __uid_t getuid (void) throw (); > > >extern __uid_t geteuid (void) throw (); > > >extern __gid_t getgid (void) throw (); > > >extern __gid_t getegid (void) throw (); > > > > >extern int getgroups (int __size, __gid_t __list[]) throw () ; > > > >extern int group_member (__gid_t __gid) throw (); > > > > > > >extern int setuid (__uid_t __uid) throw (); > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) throw (); > > > > >extern int seteuid (__uid_t __uid) throw (); > > > > > > >extern int setgid (__gid_t __gid) throw (); > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) throw (); > > > > >extern int setegid (__gid_t __gid) throw (); > > > > > >extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) > throw (); > > > >extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) > throw (); > > > >extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) > throw (); > > > >extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) > throw (); > > > > > > >extern __pid_t fork (void) throw (); > > > > > > >extern __pid_t vfork (void) throw (); > > > > > >extern char *ttyname (int __fd) throw (); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > throw () __attribute__ ((__nonnull__ (2))) ; > > > >extern int isatty (int __fd) throw (); > > > > > >extern int ttyslot (void) throw (); > > > > >extern int link (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))) ; > > > > >extern int linkat (int __fromfd, __const char *__from, int __tofd, > __const char *__to, int __flags) > throw () __attribute__ ((__nonnull__ (2, 4))) ; > > > > >extern int symlink (__const char *__from, __const char *__to) > throw () __attribute__ ((__nonnull__ (1, 2))) ; > > > > >extern int readlink (__const char *__restrict __path, char *__restrict __buf, > size_t __len) throw () __attribute__ ((__nonnull__ (1, 2))) ; > > > > >extern int symlinkat (__const char *__from, int __tofd, > __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ; > > >extern int readlinkat (int __fd, __const char *__restrict __path, > char *__restrict __buf, size_t __len) > throw () __attribute__ ((__nonnull__ (2, 3))) ; > > > >extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); > > > >extern int unlinkat (int __fd, __const char *__name, int __flag) > throw () __attribute__ ((__nonnull__ (2))); > > > >extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))); > > > >extern __pid_t tcgetpgrp (int __fd) throw (); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw (); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); > > > > >extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1))); ># 834 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/getopt.h" 1 3 4 ># 50 "/usr/include/getopt.h" 3 4 >extern "C" { ># 59 "/usr/include/getopt.h" 3 4 >extern char *optarg; ># 73 "/usr/include/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 152 "/usr/include/getopt.h" 3 4 >extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > throw (); ># 171 "/usr/include/getopt.h" 3 4 >} ># 835 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sethostname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))) ; > > > >extern int sethostid (long int __id) throw () ; > > > > > >extern int getdomainname (char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))) ; >extern int setdomainname (__const char *__name, size_t __len) > throw () __attribute__ ((__nonnull__ (1))) ; > > > > > >extern int vhangup (void) throw (); > > >extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ; > > > > > > > >extern int profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int acct (__const char *__name) throw (); > > > >extern char *getusershell (void) throw (); >extern void endusershell (void) throw (); >extern void setusershell (void) throw (); > > > > > >extern int daemon (int __nochdir, int __noclose) throw () ; > > > > > > >extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ; > > > >extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); ># 920 "/usr/include/unistd.h" 3 4 >extern int fsync (int __fd); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) throw (); > > > > >extern int getpagesize (void) throw () __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) throw (); ># 949 "/usr/include/unistd.h" 3 4 >extern int truncate (__const char *__file, __off64_t __length) throw () __asm__ ("" "truncate64") __attribute__ ((__nonnull__ (1))) ; > > > > > > > >extern int truncate64 (__const char *__file, __off64_t __length) > throw () __attribute__ ((__nonnull__ (1))) ; ># 970 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off64_t __length) throw () __asm__ ("" "ftruncate64") ; > > > > > > >extern int ftruncate64 (int __fd, __off64_t __length) throw () ; ># 987 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) throw () ; > > > > > >extern void *sbrk (intptr_t __delta) throw (); ># 1008 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) throw (); ># 1034 "/usr/include/unistd.h" 3 4 >extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64") ; > > > > > > >extern int lockf64 (int __fd, int __cmd, __off64_t __len) ; ># 1062 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes) throw (); > > > > > > > >extern char *crypt (__const char *__key, __const char *__salt) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > >extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern void swab (__const void *__restrict __from, void *__restrict __to, > ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern char *ctermid (char *__s) throw (); ># 1100 "/usr/include/unistd.h" 3 4 >} ># 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 2 3 > >typedef pthread_key_t __gthread_key_t; >typedef pthread_once_t __gthread_once_t; >typedef pthread_mutex_t __gthread_mutex_t; >typedef pthread_mutex_t __gthread_recursive_mutex_t; ># 88 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3 >extern __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once"))); >extern __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific"))); >extern __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific"))); >extern __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create"))); >extern __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel"))); >extern __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock"))); >extern __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock"))); >extern __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock"))); >extern __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init"))); > > >extern __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create"))); >extern __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete"))); >extern __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init"))); >extern __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype"))); >extern __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy"))); ># 145 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_active_p (void) >{ > static void *const __gthread_active_ptr > = __extension__ (void *) &__gthrw_pthread_cancel; > return __gthread_active_ptr != 0; >} ># 512 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_once (__gthread_once_t *once, void (*func) (void)) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_once (once, func); > else > return -1; >} > >static inline int >__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) >{ > return __gthrw_pthread_key_create (key, dtor); >} > >static inline int >__gthread_key_delete (__gthread_key_t key) >{ > return __gthrw_pthread_key_delete (key); >} > >static inline void * >__gthread_getspecific (__gthread_key_t key) >{ > return __gthrw_pthread_getspecific (key); >} > >static inline int >__gthread_setspecific (__gthread_key_t key, const void *ptr) >{ > return __gthrw_pthread_setspecific (key, ptr); >} > >static inline int >__gthread_mutex_lock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_mutex_lock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_trylock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_mutex_trylock (mutex); > else > return 0; >} > >static inline int >__gthread_mutex_unlock (__gthread_mutex_t *mutex) >{ > if (__gthread_active_p ()) > return __gthrw_pthread_mutex_unlock (mutex); > else > return 0; >} ># 594 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr-default.h" 3 >static inline int >__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) >{ > return __gthread_mutex_lock (mutex); >} > >static inline int >__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) >{ > return __gthread_mutex_trylock (mutex); >} > >static inline int >__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) >{ > return __gthread_mutex_unlock (mutex); >} ># 115 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/gthr.h" 2 3 > > > > > > > >#pragma GCC visibility pop ># 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++io.h" 2 3 > >namespace std >{ > typedef __gthread_mutex_t __c_lock; > > > typedef FILE __c_file; >} ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 3 >#pragma GCC visibility push(default) > > ># 1 "/usr/include/ctype.h" 1 3 4 ># 30 "/usr/include/ctype.h" 3 4 >extern "C" { ># 48 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), > _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), > _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), > _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), > _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), > _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), > _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), > _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), > _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), > _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), > _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), > _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__const)); ># 96 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) throw (); >extern int isalpha (int) throw (); >extern int iscntrl (int) throw (); >extern int isdigit (int) throw (); >extern int islower (int) throw (); >extern int isgraph (int) throw (); >extern int isprint (int) throw (); >extern int ispunct (int) throw (); >extern int isspace (int) throw (); >extern int isupper (int) throw (); >extern int isxdigit (int) throw (); > > > >extern int tolower (int __c) throw (); > > >extern int toupper (int __c) throw (); > > > > > > > > >extern int isblank (int) throw (); > > > > > > >extern int isctype (int __c, int __mask) throw (); > > > > > > >extern int isascii (int __c) throw (); > > > >extern int toascii (int __c) throw (); > > > >extern int _toupper (int) throw (); >extern int _tolower (int) throw (); ># 247 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) throw (); >extern int isalpha_l (int, __locale_t) throw (); >extern int iscntrl_l (int, __locale_t) throw (); >extern int isdigit_l (int, __locale_t) throw (); >extern int islower_l (int, __locale_t) throw (); >extern int isgraph_l (int, __locale_t) throw (); >extern int isprint_l (int, __locale_t) throw (); >extern int ispunct_l (int, __locale_t) throw (); >extern int isspace_l (int, __locale_t) throw (); >extern int isupper_l (int, __locale_t) throw (); >extern int isxdigit_l (int, __locale_t) throw (); > >extern int isblank_l (int, __locale_t) throw (); > > > >extern int __tolower_l (int __c, __locale_t __l) throw (); >extern int tolower_l (int __c, __locale_t __l) throw (); > > >extern int __toupper_l (int __c, __locale_t __l) throw (); >extern int toupper_l (int __c, __locale_t __l) throw (); ># 323 "/usr/include/ctype.h" 3 4 >} ># 53 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 2 3 ># 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cctype" 3 >namespace std >{ > using ::isalnum; > using ::isalpha; > using ::iscntrl; > using ::isdigit; > using ::isgraph; > using ::islower; > using ::isprint; > using ::ispunct; > using ::isspace; > using ::isupper; > using ::isxdigit; > using ::tolower; > using ::toupper; >} > >#pragma GCC visibility pop ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h" 1 3 ># 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h" 3 > ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stringfwd.h" 3 > > > >namespace std >{ > template<typename _Alloc> > class allocator; > > template<class _CharT> > struct char_traits; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_string; > > template<> struct char_traits<char>; > > typedef basic_string<char> string; > > > template<> struct char_traits<wchar_t>; > > typedef basic_string<wchar_t> wstring; > >} ># 50 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 1 3 ># 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3 > ># 45 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3 >#pragma GCC visibility push(default) > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 1 3 ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 3 > ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 3 >#pragma GCC visibility push(default) ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ctime" 3 >namespace std >{ > using ::clock_t; > using ::time_t; > using ::tm; > > using ::clock; > using ::difftime; > using ::mktime; > using ::time; > using ::asctime; > using ::ctime; > using ::gmtime; > using ::localtime; > using ::strftime; >} > >#pragma GCC visibility pop ># 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 2 3 > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 48 "/usr/include/wchar.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 49 "/usr/include/wchar.h" 2 3 4 ># 93 "/usr/include/wchar.h" 3 4 > > >typedef __mbstate_t mbstate_t; > > > ># 118 "/usr/include/wchar.h" 3 4 >extern "C" { > > > > >struct tm; > > > > > > > > > >extern wchar_t *wcscpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncpy (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern wchar_t *wcscat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src) throw (); > >extern wchar_t *wcsncat (wchar_t *__restrict __dest, > __const wchar_t *__restrict __src, size_t __n) > throw (); > > >extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2) > throw () __attribute__ ((__pure__)); > >extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw () __attribute__ ((__pure__)); > > > > >extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > >extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n) throw (); > > > > > >extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > >extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > > > > >extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw (); > > > >extern size_t wcsxfrm (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > > > > > > >extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2, > __locale_t __loc) throw (); > > > > >extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2, > size_t __n, __locale_t __loc) throw (); > > >extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__)); > > > > >extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc) > throw () __attribute__ ((__pure__)); > > > > > >extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject) > throw () __attribute__ ((__pure__)); > > >extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept) > throw () __attribute__ ((__pure__)); > >extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wcstok (wchar_t *__restrict __s, > __const wchar_t *__restrict __delim, > wchar_t **__restrict __ptr) throw (); > > >extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__)); > > > > >extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle) > throw () __attribute__ ((__pure__)); > > > > >extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen) > throw () __attribute__ ((__pure__)); > > > > > >extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern int wmemcmp (__const wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw () __attribute__ ((__pure__)); > > >extern wchar_t *wmemcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) throw (); > > > >extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n) > throw (); > > >extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw (); > > > > > >extern wchar_t *wmempcpy (wchar_t *__restrict __s1, > __const wchar_t *__restrict __s2, size_t __n) > throw (); > > > > > > >extern wint_t btowc (int __c) throw (); > > > >extern int wctob (wint_t __c) throw (); > > > >extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__)); > > > >extern size_t mbrtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n, > mbstate_t *__p) throw (); > > >extern size_t wcrtomb (char *__restrict __s, wchar_t __wc, > mbstate_t *__restrict __ps) throw (); > > >extern size_t __mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); >extern size_t mbrlen (__const char *__restrict __s, size_t __n, > mbstate_t *__restrict __ps) throw (); > > > > > > > > >extern wint_t __btowc_alias (int __c) __asm ("btowc"); >extern __inline wint_t >btowc (int __c) throw () >{ return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f' > ? (wint_t) __c : __btowc_alias (__c)); } > >extern int __wctob_alias (wint_t __c) __asm ("wctob"); >extern __inline int >wctob (wint_t __wc) throw () >{ return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f' > ? (int) __wc : __wctob_alias (__wc)); } > >extern __inline size_t >mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw () > >{ return (__ps != __null > ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); } > > > > > >extern size_t mbsrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern size_t mbsnrtowcs (wchar_t *__restrict __dst, > __const char **__restrict __src, size_t __nmc, > size_t __len, mbstate_t *__restrict __ps) throw (); > > > >extern size_t wcsnrtombs (char *__restrict __dst, > __const wchar_t **__restrict __src, > size_t __nwc, size_t __len, > mbstate_t *__restrict __ps) throw (); > > > > > > >extern int wcwidth (wchar_t __c) throw (); > > > >extern int wcswidth (__const wchar_t *__s, size_t __n) throw (); > > > > > > >extern double wcstod (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > >extern float wcstof (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); >extern long double wcstold (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr) throw (); > > > > > >extern long int wcstol (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) throw (); > > > >extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > > >__extension__ >extern long long int wcstoll (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); > > > > > > >__extension__ >extern long long int wcstoq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > > >__extension__ >extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base) throw (); ># 465 "/usr/include/wchar.h" 3 4 >extern long int wcstol_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base, > __locale_t __loc) throw (); > >extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern long long int wcstoll_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) throw (); > >__extension__ >extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, __locale_t __loc) > throw (); > >extern double wcstod_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern float wcstof_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, __locale_t __loc) > throw (); > >extern long double wcstold_l (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > __locale_t __loc) throw (); > > > > > >extern double __wcstod_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __group) > throw (); >extern float __wcstof_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __group) > throw (); >extern long double __wcstold_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __group) throw (); > > >extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >__extension__ >extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, > int __base, int __group) throw (); > > > >__extension__ >extern unsigned long long int __wcstoull_internal (__const wchar_t * > __restrict __nptr, > wchar_t ** > __restrict __endptr, > int __base, > int __group) throw (); > > > > > > > > >extern __inline double >wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstod_internal (__nptr, __endptr, 0); } >extern __inline long int >wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstol_internal (__nptr, __endptr, __base, 0); } >extern __inline unsigned long int >wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoul_internal (__nptr, __endptr, __base, 0); } > > > >extern __inline float >wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstof_internal (__nptr, __endptr, 0); } > >extern __inline long double >wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw () > >{ return __wcstold_internal (__nptr, __endptr, 0); } > >__extension__ >extern __inline long long int >wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoll_internal (__nptr, __endptr, __base, 0); } >__extension__ >extern __inline unsigned long long int >wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw () > >{ return __wcstoull_internal (__nptr, __endptr, __base, 0); } > > > > > > > >extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw (); > > > >extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n) > throw (); > > > > > > > > >extern int fwide (__FILE *__fp, int __mode) throw (); > > > > > > >extern int fwprintf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wprintf (__const wchar_t *__restrict __format, ...) > ; > >extern int swprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > >extern int vfwprintf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwprintf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > >extern int vswprintf (wchar_t *__restrict __s, size_t __n, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > >extern int fwscanf (__FILE *__restrict __stream, > __const wchar_t *__restrict __format, ...) > ; > > > > >extern int wscanf (__const wchar_t *__restrict __format, ...) > ; > >extern int swscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, ...) > throw () ; > > > > > > > > > > > >extern int vfwscanf (__FILE *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > > > > >extern int vwscanf (__const wchar_t *__restrict __format, > __gnuc_va_list __arg) > ; > >extern int vswscanf (__const wchar_t *__restrict __s, > __const wchar_t *__restrict __format, > __gnuc_va_list __arg) > throw () ; > > > > > > > > > > >extern wint_t fgetwc (__FILE *__stream); >extern wint_t getwc (__FILE *__stream); > > > > > >extern wint_t getwchar (void); > > > > > > >extern wint_t fputwc (wchar_t __wc, __FILE *__stream); >extern wint_t putwc (wchar_t __wc, __FILE *__stream); > > > > > >extern wint_t putwchar (wchar_t __wc); > > > > > > > >extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > >extern int fputws (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > >extern wint_t ungetwc (wint_t __wc, __FILE *__stream); > ># 755 "/usr/include/wchar.h" 3 4 >extern wint_t getwc_unlocked (__FILE *__stream); >extern wint_t getwchar_unlocked (void); > > > > > > > >extern wint_t fgetwc_unlocked (__FILE *__stream); > > > > > > > >extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream); ># 781 "/usr/include/wchar.h" 3 4 >extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream); >extern wint_t putwchar_unlocked (wchar_t __wc); ># 791 "/usr/include/wchar.h" 3 4 >extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n, > __FILE *__restrict __stream); > > > > > > > >extern int fputws_unlocked (__const wchar_t *__restrict __ws, > __FILE *__restrict __stream); > > > > > > > >extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp) throw (); > > > > > > > >extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize, > __const wchar_t *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) throw (); ># 845 "/usr/include/wchar.h" 3 4 >} ># 57 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 2 3 ># 71 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3 >namespace std >{ > using ::mbstate_t; >} ># 143 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3 >namespace std >{ > using ::wint_t; > > using ::btowc; > using ::fgetwc; > using ::fgetws; > using ::fputwc; > using ::fputws; > using ::fwide; > using ::fwprintf; > using ::fwscanf; > using ::getwc; > using ::getwchar; > using ::mbrlen; > using ::mbrtowc; > using ::mbsinit; > using ::mbsrtowcs; > using ::putwc; > using ::putwchar; > using ::swprintf; > using ::swscanf; > using ::ungetwc; > using ::vfwprintf; > > using ::vfwscanf; > > using ::vswprintf; > > using ::vswscanf; > > using ::vwprintf; > > using ::vwscanf; > > using ::wcrtomb; > using ::wcscat; > using ::wcscmp; > using ::wcscoll; > using ::wcscpy; > using ::wcscspn; > > > > using ::wcslen; > using ::wcsncat; > using ::wcsncmp; > using ::wcsncpy; > using ::wcsrtombs; > using ::wcsspn; > using ::wcstod; > > using ::wcstof; > > using ::wcstok; > using ::wcstol; > using ::wcstoul; > using ::wcsxfrm; > using ::wctob; > using ::wmemcmp; > using ::wmemcpy; > using ::wmemmove; > using ::wmemset; > using ::wprintf; > using ::wscanf; > > using ::wcschr; > > inline wchar_t* > wcschr(wchar_t* __p, wchar_t __c) > { return wcschr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcspbrk; > > inline wchar_t* > wcspbrk(wchar_t* __s1, const wchar_t* __s2) > { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wcsrchr; > > inline wchar_t* > wcsrchr(wchar_t* __p, wchar_t __c) > { return wcsrchr(const_cast<const wchar_t*>(__p), __c); } > > using ::wcsstr; > > inline wchar_t* > wcsstr(wchar_t* __s1, const wchar_t* __s2) > { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); } > > using ::wmemchr; > > inline wchar_t* > wmemchr(wchar_t* __p, wchar_t __c, size_t __n) > { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); } >} > > > > > > > >namespace __gnu_cxx >{ > > > > > > using ::wcstold; ># 262 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/cwchar" 3 > using ::wcstoll; > using ::wcstoull; > >} > >namespace std >{ > using __gnu_cxx::wcstold; > using __gnu_cxx::wcstoll; > using __gnu_cxx::wcstoull; >} > > > > >#pragma GCC visibility pop ># 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 2 3 > > ># 1 "/usr/include/stdint.h" 1 3 4 ># 28 "/usr/include/stdint.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/stdint.h" 2 3 4 ># 49 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint8_t; >typedef unsigned short int uint16_t; > >typedef unsigned int uint32_t; > > > > > >__extension__ >typedef unsigned long long int uint64_t; > > > > > > >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > > > >__extension__ >typedef long long int int_least64_t; > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > > > >__extension__ >typedef unsigned long long int uint_least64_t; > > > > > > >typedef signed char int_fast8_t; > > > > > >typedef int int_fast16_t; >typedef int int_fast32_t; >__extension__ >typedef long long int int_fast64_t; > > > >typedef unsigned char uint_fast8_t; > > > > > >typedef unsigned int uint_fast16_t; >typedef unsigned int uint_fast32_t; >__extension__ >typedef unsigned long long int uint_fast64_t; ># 129 "/usr/include/stdint.h" 3 4 >typedef unsigned int uintptr_t; ># 138 "/usr/include/stdint.h" 3 4 >__extension__ >typedef long long int intmax_t; >__extension__ >typedef unsigned long long int uintmax_t; ># 50 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 2 3 > > >namespace std >{ ># 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3 > typedef int64_t streamoff; > > > > > > typedef ptrdiff_t streamsize; > > template<typename _StateT> > class fpos; ># 94 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3 > template<typename _StateT> > class fpos > { > private: > streamoff _M_off; > _StateT _M_state; > > public: > > > > > fpos() > : _M_off(0), _M_state() { } ># 116 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/postypes.h" 3 > fpos(streamoff __off) > : _M_off(__off), _M_state() { } > > > operator streamoff() const { return _M_off; } > > > void > state(_StateT __st) > { _M_state = __st; } > > > _StateT > state() const > { return _M_state; } > > > > > > > bool > operator==(const fpos& __other) const > { return _M_off == __other._M_off; } > > > bool > operator!=(const fpos& __other) const > { return _M_off != __other._M_off; } > > > > > > fpos& > operator+=(streamoff __off) > { > _M_off += __off; > return *this; > } > > > > > > fpos& > operator-=(streamoff __off) > { > _M_off -= __off; > return *this; > } > > > > > > > > fpos > operator+(streamoff __off) const > { > fpos __pos(*this); > __pos += __off; > return __pos; > } > > > > > > > > fpos > operator-(streamoff __off) const > { > fpos __pos(*this); > __pos -= __off; > return __pos; > } > > > > > > > streamoff > operator-(const fpos& __other) const > { return _M_off - __other._M_off; } > }; > > > > > > typedef fpos<mbstate_t> streampos; > > typedef fpos<mbstate_t> wstreampos; >} ># 51 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 2 3 > > >namespace std >{ > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ios; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_streambuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_istream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_iostream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringbuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_istringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_ostringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT>, > typename _Alloc = allocator<_CharT> > > class basic_stringstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_filebuf; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ifstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_ofstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class basic_fstream; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class istreambuf_iterator; > > template<typename _CharT, typename _Traits = char_traits<_CharT> > > class ostreambuf_iterator; > > > > class ios_base; ># 136 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/iosfwd" 3 > typedef basic_ios<char> ios; > typedef basic_streambuf<char> streambuf; > typedef basic_istream<char> istream; > typedef basic_ostream<char> ostream; > typedef basic_iostream<char> iostream; > typedef basic_stringbuf<char> stringbuf; > typedef basic_istringstream<char> istringstream; > typedef basic_ostringstream<char> ostringstream; > typedef basic_stringstream<char> stringstream; > typedef basic_filebuf<char> filebuf; > typedef basic_ifstream<char> ifstream; > typedef basic_ofstream<char> ofstream; > typedef basic_fstream<char> fstream; > > > typedef basic_ios<wchar_t> wios; > typedef basic_streambuf<wchar_t> wstreambuf; > typedef basic_istream<wchar_t> wistream; > typedef basic_ostream<wchar_t> wostream; > typedef basic_iostream<wchar_t> wiostream; > typedef basic_stringbuf<wchar_t> wstringbuf; > typedef basic_istringstream<wchar_t> wistringstream; > typedef basic_ostringstream<wchar_t> wostringstream; > typedef basic_stringstream<wchar_t> wstringstream; > typedef basic_filebuf<wchar_t> wfilebuf; > typedef basic_ifstream<wchar_t> wifstream; > typedef basic_ofstream<wchar_t> wofstream; > typedef basic_fstream<wchar_t> wfstream; > > >} > >#pragma GCC visibility pop ># 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h" 3 >namespace std >{ > > template<class _T1, class _T2> > struct pair > { > typedef _T1 first_type; > typedef _T2 second_type; > > _T1 first; > _T2 second; > > > > > > pair() > : first(), second() { } > > > pair(const _T1& __a, const _T2& __b) > : first(__a), second(__b) { } > > > template<class _U1, class _U2> > pair(const pair<_U1, _U2>& __p) > : first(__p.first), second(__p.second) { } > }; > > > template<class _T1, class _T2> > inline bool > operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return __x.first == __y.first && __x.second == __y.second; } > > > template<class _T1, class _T2> > inline bool > operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return __x.first < __y.first > || (!(__y.first < __x.first) && __x.second < __y.second); } > > > template<class _T1, class _T2> > inline bool > operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return !(__x == __y); } > > > template<class _T1, class _T2> > inline bool > operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return __y < __x; } > > > template<class _T1, class _T2> > inline bool > operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return !(__y < __x); } > > > template<class _T1, class _T2> > inline bool > operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) > { return !(__x < __y); } ># 142 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_pair.h" 3 > template<class _T1, class _T2> > inline pair<_T1, _T2> > make_pair(_T1 __x, _T2 __y) > { return pair<_T1, _T2>(__x, __y); } >} ># 71 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 1 3 ># 41 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 3 > ># 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 3 ># 75 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/cpp_type_traits.h" 3 >namespace __gnu_internal >{ > typedef char __one; > typedef char __two[2]; > > template<typename _Tp> > __one __test_type(int _Tp::*); > template<typename _Tp> > __two& __test_type(...); >} > > >namespace __gnu_cxx >{ > template<typename _Iterator, typename _Container> > class __normal_iterator; >} > >struct __true_type { }; >struct __false_type { }; > >namespace std >{ > template<bool> > struct __truth_type > { typedef __false_type __type; }; > > template<> > struct __truth_type<true> > { typedef __true_type __type; }; > > > > template<class _Sp, class _Tp> > struct __traitor > { > enum { __value = bool(_Sp::__value) || bool(_Tp::__value) }; > typedef typename __truth_type<__value>::__type __type; > }; > > > template<typename, typename> > struct __are_same > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<typename _Tp> > struct __are_same<_Tp, _Tp> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<typename, bool> > struct __enable_if > { > }; > > template<typename _Tp> > struct __enable_if<_Tp, true> > { > typedef _Tp __type; > }; > > > template<typename _Tp> > struct __is_void > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<> > struct __is_void<void> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_integer > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > > > > template<> > struct __is_integer<bool> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<signed char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned char> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<> > struct __is_integer<wchar_t> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > template<> > struct __is_integer<short> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned short> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<int> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned int> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<long long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_integer<unsigned long long> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_floating > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > > template<> > struct __is_floating<float> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_floating<double> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > template<> > struct __is_floating<long double> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_pointer > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<typename _Tp> > struct __is_pointer<_Tp*> > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_normal_iterator > { > enum { __value = 0 }; > typedef __false_type __type; > }; > > template<typename _Iterator, typename _Container> > struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator, > _Container> > > { > enum { __value = 1 }; > typedef __true_type __type; > }; > > > > > template<typename _Tp> > struct __is_arithmetic > : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> > > { }; > > > > > template<typename _Tp> > struct __is_fundamental > : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> > > { }; > > > > > template<typename _Tp> > struct __is_scalar > : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> > > { }; > > > > > template<typename _Tp> > struct __is_pod > { > enum > { > __value = (sizeof(__gnu_internal::__test_type<_Tp>(0)) > != sizeof(__gnu_internal::__one)) > }; > }; > > > > > template<typename _Tp> > struct __is_empty > { > private: > template<typename> > struct __first { }; > template<typename _Up> > struct __second > : public _Up { }; > > public: > enum > { > __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>) > }; > }; > >} ># 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 1 3 ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3 > ># 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3 > >namespace std >{ ># 80 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3 > struct input_iterator_tag {}; > > struct output_iterator_tag {}; > > struct forward_iterator_tag : public input_iterator_tag {}; > > > struct bidirectional_iterator_tag : public forward_iterator_tag {}; > > > struct random_access_iterator_tag : public bidirectional_iterator_tag {}; ># 104 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_types.h" 3 > template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, > typename _Pointer = _Tp*, typename _Reference = _Tp&> > struct iterator > { > > typedef _Category iterator_category; > > typedef _Tp value_type; > > typedef _Distance difference_type; > > typedef _Pointer pointer; > > typedef _Reference reference; > }; > > > > > > > > template<typename _Iterator> > struct iterator_traits > { > typedef typename _Iterator::iterator_category iterator_category; > typedef typename _Iterator::value_type value_type; > typedef typename _Iterator::difference_type difference_type; > typedef typename _Iterator::pointer pointer; > typedef typename _Iterator::reference reference; > }; > > template<typename _Tp> > struct iterator_traits<_Tp*> > { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef _Tp& reference; > }; > > template<typename _Tp> > struct iterator_traits<const _Tp*> > { > typedef random_access_iterator_tag iterator_category; > typedef _Tp value_type; > typedef ptrdiff_t difference_type; > typedef const _Tp* pointer; > typedef const _Tp& reference; > }; > > > > > > > > template<typename _Iter> > inline typename iterator_traits<_Iter>::iterator_category > __iterator_category(const _Iter&) > { return typename iterator_traits<_Iter>::iterator_category(); } > >} ># 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3 ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3 > ># 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h" 1 3 ># 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h" 3 > ># 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/concept_check.h" 3 ># 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3 > >namespace std >{ > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > __distance(_InputIterator __first, _InputIterator __last, > input_iterator_tag) > { > > > > typename iterator_traits<_InputIterator>::difference_type __n = 0; > while (__first != __last) > { > ++__first; > ++__n; > } > return __n; > } > > template<typename _RandomAccessIterator> > inline typename iterator_traits<_RandomAccessIterator>::difference_type > __distance(_RandomAccessIterator __first, _RandomAccessIterator __last, > random_access_iterator_tag) > { > > > > return __last - __first; > } ># 112 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator> > inline typename iterator_traits<_InputIterator>::difference_type > distance(_InputIterator __first, _InputIterator __last) > { > > return std::__distance(__first, __last, > std::__iterator_category(__first)); > } > > template<typename _InputIterator, typename _Distance> > inline void > __advance(_InputIterator& __i, _Distance __n, input_iterator_tag) > { > > > while (__n--) > ++__i; > } > > template<typename _BidirectionalIterator, typename _Distance> > inline void > __advance(_BidirectionalIterator& __i, _Distance __n, > bidirectional_iterator_tag) > { > > > > if (__n > 0) > while (__n--) > ++__i; > else > while (__n++) > --__i; > } > > template<typename _RandomAccessIterator, typename _Distance> > inline void > __advance(_RandomAccessIterator& __i, _Distance __n, > random_access_iterator_tag) > { > > > > __i += __n; > } ># 170 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator_base_funcs.h" 3 > template<typename _InputIterator, typename _Distance> > inline void > advance(_InputIterator& __i, _Distance __n) > { > > std::__advance(__i, __n, std::__iterator_category(__i)); > } >} ># 74 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 1 3 ># 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 >namespace std >{ ># 91 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Iterator> > class reverse_iterator > : public iterator<typename iterator_traits<_Iterator>::iterator_category, > typename iterator_traits<_Iterator>::value_type, > typename iterator_traits<_Iterator>::difference_type, > typename iterator_traits<_Iterator>::pointer, > typename iterator_traits<_Iterator>::reference> > { > protected: > _Iterator current; > > public: > typedef _Iterator iterator_type; > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > public: > > > > > > > reverse_iterator() : current() { } > > > > > explicit > reverse_iterator(iterator_type __x) : current(__x) { } > > > > > reverse_iterator(const reverse_iterator& __x) > : current(__x.current) { } > > > > > > template<typename _Iter> > reverse_iterator(const reverse_iterator<_Iter>& __x) > : current(__x.base()) { } > > > > > iterator_type > base() const > { return current; } > > > > > > > reference > operator*() const > { > _Iterator __tmp = current; > return *--__tmp; > } > > > > > > > pointer > operator->() const > { return &(operator*()); } > > > > > > > reverse_iterator& > operator++() > { > --current; > return *this; > } > > > > > > > reverse_iterator > operator++(int) > { > reverse_iterator __tmp = *this; > --current; > return __tmp; > } > > > > > > > reverse_iterator& > operator--() > { > ++current; > return *this; > } > > > > > > > reverse_iterator > operator--(int) > { > reverse_iterator __tmp = *this; > ++current; > return __tmp; > } > > > > > > > reverse_iterator > operator+(difference_type __n) const > { return reverse_iterator(current - __n); } > > > > > > > reverse_iterator& > operator+=(difference_type __n) > { > current -= __n; > return *this; > } > > > > > > > reverse_iterator > operator-(difference_type __n) const > { return reverse_iterator(current + __n); } > > > > > > > reverse_iterator& > operator-=(difference_type __n) > { > current += __n; > return *this; > } > > > > > > > reference > operator[](difference_type __n) const > { return *(*this + __n); } > }; ># 278 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Iterator> > inline bool > operator==(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __x.base() == __y.base(); } > > template<typename _Iterator> > inline bool > operator<(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() < __x.base(); } > > template<typename _Iterator> > inline bool > operator!=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x == __y); } > > template<typename _Iterator> > inline bool > operator>(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y < __x; } > > template<typename _Iterator> > inline bool > operator<=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__y < __x); } > > template<typename _Iterator> > inline bool > operator>=(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return !(__x < __y); } > > template<typename _Iterator> > inline typename reverse_iterator<_Iterator>::difference_type > operator-(const reverse_iterator<_Iterator>& __x, > const reverse_iterator<_Iterator>& __y) > { return __y.base() - __x.base(); } > > template<typename _Iterator> > inline reverse_iterator<_Iterator> > operator+(typename reverse_iterator<_Iterator>::difference_type __n, > const reverse_iterator<_Iterator>& __x) > { return reverse_iterator<_Iterator>(__x.base() - __n); } > > > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator==(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __x.base() == __y.base(); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator<(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __y.base() < __x.base(); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator!=(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return !(__x == __y); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator>(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __y < __x; } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator<=(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return !(__y < __x); } > > template<typename _IteratorL, typename _IteratorR> > inline bool > operator>=(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return !(__x < __y); } > > template<typename _IteratorL, typename _IteratorR> > inline typename reverse_iterator<_IteratorL>::difference_type > operator-(const reverse_iterator<_IteratorL>& __x, > const reverse_iterator<_IteratorR>& __y) > { return __y.base() - __x.base(); } ># 382 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Container> > class back_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit > back_insert_iterator(_Container& __x) : container(&__x) { } ># 408 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > back_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_back(__value); > return *this; > } > > > back_insert_iterator& > operator*() > { return *this; } > > > back_insert_iterator& > operator++() > { return *this; } > > > back_insert_iterator > operator++(int) > { return *this; } > }; ># 442 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Container> > inline back_insert_iterator<_Container> > back_inserter(_Container& __x) > { return back_insert_iterator<_Container>(__x); } ># 457 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Container> > class front_insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > > public: > > typedef _Container container_type; > > > explicit front_insert_iterator(_Container& __x) : container(&__x) { } ># 482 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > front_insert_iterator& > operator=(typename _Container::const_reference __value) > { > container->push_front(__value); > return *this; > } > > > front_insert_iterator& > operator*() > { return *this; } > > > front_insert_iterator& > operator++() > { return *this; } > > > front_insert_iterator > operator++(int) > { return *this; } > }; ># 516 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Container> > inline front_insert_iterator<_Container> > front_inserter(_Container& __x) > { return front_insert_iterator<_Container>(__x); } ># 535 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Container> > class insert_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _Container* container; > typename _Container::iterator iter; > > public: > > typedef _Container container_type; > > > > > > insert_iterator(_Container& __x, typename _Container::iterator __i) > : container(&__x), iter(__i) {} ># 577 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > insert_iterator& > operator=(const typename _Container::const_reference __value) > { > iter = container->insert(iter, __value); > ++iter; > return *this; > } > > > insert_iterator& > operator*() > { return *this; } > > > insert_iterator& > operator++() > { return *this; } > > > insert_iterator& > operator++(int) > { return *this; } > }; ># 612 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _Container, typename _Iterator> > inline insert_iterator<_Container> > inserter(_Container& __x, _Iterator __i) > { > return insert_iterator<_Container>(__x, > typename _Container::iterator(__i)); > } >} > >namespace __gnu_cxx >{ > > > > > > > > using std::iterator_traits; > using std::iterator; > template<typename _Iterator, typename _Container> > class __normal_iterator > { > protected: > _Iterator _M_current; > > public: > typedef typename iterator_traits<_Iterator>::iterator_category > iterator_category; > typedef typename iterator_traits<_Iterator>::value_type value_type; > typedef typename iterator_traits<_Iterator>::difference_type > difference_type; > typedef typename iterator_traits<_Iterator>::reference reference; > typedef typename iterator_traits<_Iterator>::pointer pointer; > > __normal_iterator() : _M_current(_Iterator()) { } > > explicit > __normal_iterator(const _Iterator& __i) : _M_current(__i) { } > > > template<typename _Iter> > __normal_iterator(const __normal_iterator<_Iter, > typename std::__enable_if<_Container, > (std::__are_same<_Iter, > typename _Container::pointer>::__value) > >::__type>& __i) > : _M_current(__i.base()) { } > > > reference > operator*() const > { return *_M_current; } > > pointer > operator->() const > { return _M_current; } > > __normal_iterator& > operator++() > { > ++_M_current; > return *this; > } > > __normal_iterator > operator++(int) > { return __normal_iterator(_M_current++); } > > > __normal_iterator& > operator--() > { > --_M_current; > return *this; > } > > __normal_iterator > operator--(int) > { return __normal_iterator(_M_current--); } > > > reference > operator[](const difference_type& __n) const > { return _M_current[__n]; } > > __normal_iterator& > operator+=(const difference_type& __n) > { _M_current += __n; return *this; } > > __normal_iterator > operator+(const difference_type& __n) const > { return __normal_iterator(_M_current + __n); } > > __normal_iterator& > operator-=(const difference_type& __n) > { _M_current -= __n; return *this; } > > __normal_iterator > operator-(const difference_type& __n) const > { return __normal_iterator(_M_current - __n); } > > const _Iterator& > base() const > { return _M_current; } > }; ># 728 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_iterator.h" 3 > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator==(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator==(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() == __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator!=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() != __rhs.base(); } > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() < __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() > __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator<=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() <= __rhs.base(); } > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline bool > operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline bool > operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, > const __normal_iterator<_Iterator, _Container>& __rhs) > { return __lhs.base() >= __rhs.base(); } > > > > > > template<typename _IteratorL, typename _IteratorR, typename _Container> > inline typename __normal_iterator<_IteratorL, _Container>::difference_type > operator-(const __normal_iterator<_IteratorL, _Container>& __lhs, > const __normal_iterator<_IteratorR, _Container>& __rhs) > { return __lhs.base() - __rhs.base(); } > > template<typename _Iterator, typename _Container> > inline __normal_iterator<_Iterator, _Container> > operator+(typename __normal_iterator<_Iterator, _Container>::difference_type > __n, const __normal_iterator<_Iterator, _Container>& __i) > { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); } >} ># 75 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/debug/debug.h" 1 3 ># 77 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 2 3 > >namespace std >{ ># 90 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _Tp> > inline void > swap(_Tp& __a, _Tp& __b) > { > > > > _Tp __tmp = __a; > __a = __b; > __b = __tmp; > } > > > > > template<bool _BoolType> > struct __iter_swap > { > template<typename _ForwardIterator1, typename _ForwardIterator2> > static void > iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) > { > typedef typename iterator_traits<_ForwardIterator1>::value_type > _ValueType1; > _ValueType1 __tmp = *__a; > *__a = *__b; > *__b = __tmp; > } > }; > > template<> > struct __iter_swap<true> > { > template<typename _ForwardIterator1, typename _ForwardIterator2> > static void > iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) > { > swap(*__a, *__b); > } > }; ># 140 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > inline void > iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b) > { > typedef typename iterator_traits<_ForwardIterator1>::value_type > _ValueType1; > typedef typename iterator_traits<_ForwardIterator2>::value_type > _ValueType2; > > > > > > > > > > > > typedef typename iterator_traits<_ForwardIterator1>::reference > _ReferenceType1; > typedef typename iterator_traits<_ForwardIterator2>::reference > _ReferenceType2; > std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value && > __are_same<_ValueType1 &, _ReferenceType1>::__value && > __are_same<_ValueType2 &, _ReferenceType2>::__value>:: > iter_swap(__a, __b); > } ># 182 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b) > { > > > > if (__b < __a) > return __b; > return __a; > } ># 204 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _Tp> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b) > { > > > > if (__a < __b) > return __b; > return __a; > } ># 226 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > min(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__b, __a)) > return __b; > return __a; > } ># 246 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > max(const _Tp& __a, const _Tp& __b, _Compare __comp) > { > > if (__comp(__a, __b)) > return __b; > return __a; > } > > > > > > > > template<bool, typename> > struct __copy > { > template<typename _II, typename _OI> > static _OI > copy(_II __first, _II __last, _OI __result) > { > for (; __first != __last; ++__result, ++__first) > *__result = *__first; > return __result; > } > }; > > template<bool _BoolType> > struct __copy<_BoolType, random_access_iterator_tag> > { > template<typename _II, typename _OI> > static _OI > copy(_II __first, _II __last, _OI __result) > { > typedef typename iterator_traits<_II>::difference_type _Distance; > for(_Distance __n = __last - __first; __n > 0; --__n) > { > *__result = *__first; > ++__first; > ++__result; > } > return __result; > } > }; > > template<> > struct __copy<true, random_access_iterator_tag> > { > template<typename _Tp> > static _Tp* > copy(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > std::memmove(__result, __first, sizeof(_Tp) * (__last - __first)); > return __result + (__last - __first); > } > }; > > template<typename _II, typename _OI> > inline _OI > __copy_aux(_II __first, _II __last, _OI __result) > { > typedef typename iterator_traits<_II>::value_type _ValueTypeI; > typedef typename iterator_traits<_OI>::value_type _ValueTypeO; > typedef typename iterator_traits<_II>::iterator_category _Category; > const bool __simple = (__is_scalar<_ValueTypeI>::__value > && __is_pointer<_II>::__value > && __is_pointer<_OI>::__value > && __are_same<_ValueTypeI, _ValueTypeO>::__value); > > return std::__copy<__simple, _Category>::copy(__first, __last, __result); > } > > template<bool, bool> > struct __copy_normal > { > template<typename _II, typename _OI> > static _OI > copy_n(_II __first, _II __last, _OI __result) > { return std::__copy_aux(__first, __last, __result); } > }; > > template<> > struct __copy_normal<true, false> > { > template<typename _II, typename _OI> > static _OI > copy_n(_II __first, _II __last, _OI __result) > { return std::__copy_aux(__first.base(), __last.base(), __result); } > }; > > template<> > struct __copy_normal<false, true> > { > template<typename _II, typename _OI> > static _OI > copy_n(_II __first, _II __last, _OI __result) > { return _OI(std::__copy_aux(__first, __last, __result.base())); } > }; > > template<> > struct __copy_normal<true, true> > { > template<typename _II, typename _OI> > static _OI > copy_n(_II __first, _II __last, _OI __result) > { return _OI(std::__copy_aux(__first.base(), __last.base(), > __result.base())); } > }; ># 373 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator, typename _OutputIterator> > inline _OutputIterator > copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result) > { > > > > > ; > > const bool __in = __is_normal_iterator<_InputIterator>::__value; > const bool __out = __is_normal_iterator<_OutputIterator>::__value; > return std::__copy_normal<__in, __out>::copy_n(__first, __last, > __result); > } > > template<bool, typename> > struct __copy_backward > { > template<typename _BI1, typename _BI2> > static _BI2 > copy_b(_BI1 __first, _BI1 __last, _BI2 __result) > { > while (__first != __last) > *--__result = *--__last; > return __result; > } > }; > > template<bool _BoolType> > struct __copy_backward<_BoolType, random_access_iterator_tag> > { > template<typename _BI1, typename _BI2> > static _BI2 > copy_b(_BI1 __first, _BI1 __last, _BI2 __result) > { > typename iterator_traits<_BI1>::difference_type __n; > for (__n = __last - __first; __n > 0; --__n) > *--__result = *--__last; > return __result; > } > }; > > template<> > struct __copy_backward<true, random_access_iterator_tag> > { > template<typename _Tp> > static _Tp* > copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result) > { > const ptrdiff_t _Num = __last - __first; > std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num); > return __result - _Num; > } > }; > > template<typename _BI1, typename _BI2> > inline _BI2 > __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result) > { > typedef typename iterator_traits<_BI1>::value_type _ValueType1; > typedef typename iterator_traits<_BI2>::value_type _ValueType2; > typedef typename iterator_traits<_BI1>::iterator_category _Category; > const bool __simple = (__is_scalar<_ValueType1>::__value > && __is_pointer<_BI1>::__value > && __is_pointer<_BI2>::__value > && __are_same<_ValueType1, _ValueType2>::__value); > > return std::__copy_backward<__simple, _Category>::copy_b(__first, __last, > __result); > } > > template<bool, bool> > struct __copy_backward_normal > { > template<typename _BI1, typename _BI2> > static _BI2 > copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result) > { return std::__copy_backward_aux(__first, __last, __result); } > }; > > template<> > struct __copy_backward_normal<true, false> > { > template<typename _BI1, typename _BI2> > static _BI2 > copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result) > { return std::__copy_backward_aux(__first.base(), __last.base(), > __result); } > }; > > template<> > struct __copy_backward_normal<false, true> > { > template<typename _BI1, typename _BI2> > static _BI2 > copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result) > { return _BI2(std::__copy_backward_aux(__first, __last, > __result.base())); } > }; > > template<> > struct __copy_backward_normal<true, true> > { > template<typename _BI1, typename _BI2> > static _BI2 > copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result) > { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(), > __result.base())); } > }; ># 502 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template <typename _BI1, typename _BI2> > inline _BI2 > copy_backward(_BI1 __first, _BI1 __last, _BI2 __result) > { > > > > > > > ; > > const bool __bi1 = __is_normal_iterator<_BI1>::__value; > const bool __bi2 = __is_normal_iterator<_BI2>::__value; > return std::__copy_backward_normal<__bi1, __bi2>::copy_b_n(__first, __last, > __result); > } > > template<bool> > struct __fill > { > template<typename _ForwardIterator, typename _Tp> > static void > fill(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __value) > { > for (; __first != __last; ++__first) > *__first = __value; > } > }; > > template<> > struct __fill<true> > { > template<typename _ForwardIterator, typename _Tp> > static void > fill(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __value) > { > const _Tp __tmp = __value; > for (; __first != __last; ++__first) > *__first = __tmp; > } > }; ># 558 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _ForwardIterator, typename _Tp> > void > fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) > { > > > > ; > > const bool __scalar = __is_scalar<_Tp>::__value; > std::__fill<__scalar>::fill(__first, __last, __value); > } > > > inline void > fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c) > { > ; > const unsigned char __tmp = __c; > std::memset(__first, __tmp, __last - __first); > } > > inline void > fill(signed char* __first, signed char* __last, const signed char& __c) > { > ; > const signed char __tmp = __c; > std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first); > } > > inline void > fill(char* __first, char* __last, const char& __c) > { > ; > const char __tmp = __c; > std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first); > } > > template<bool> > struct __fill_n > { > template<typename _OutputIterator, typename _Size, typename _Tp> > static _OutputIterator > fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) > { > for (; __n > 0; --__n, ++__first) > *__first = __value; > return __first; > } > }; > > template<> > struct __fill_n<true> > { > template<typename _OutputIterator, typename _Size, typename _Tp> > static _OutputIterator > fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) > { > const _Tp __tmp = __value; > for (; __n > 0; --__n, ++__first) > *__first = __tmp; > return __first; > } > }; ># 634 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _OutputIterator, typename _Size, typename _Tp> > _OutputIterator > fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) > { > > > > const bool __scalar = __is_scalar<_Tp>::__value; > return std::__fill_n<__scalar>::fill_n(__first, __n, __value); > } > > template<typename _Size> > inline unsigned char* > fill_n(unsigned char* __first, _Size __n, const unsigned char& __c) > { > std::fill(__first, __first + __n, __c); > return __first + __n; > } > > template<typename _Size> > inline signed char* > fill_n(char* __first, _Size __n, const signed char& __c) > { > std::fill(__first, __first + __n, __c); > return __first + __n; > } > > template<typename _Size> > inline char* > fill_n(char* __first, _Size __n, const char& __c) > { > std::fill(__first, __first + __n, __c); > return __first + __n; > } ># 681 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2> > pair<_InputIterator1, _InputIterator2> > mismatch(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2) > { > > > > > > > ; > > while (__first1 != __last1 && *__first1 == *__first2) > { > ++__first1; > ++__first2; > } > return pair<_InputIterator1, _InputIterator2>(__first1, __first2); > } ># 716 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _BinaryPredicate> > pair<_InputIterator1, _InputIterator2> > mismatch(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _BinaryPredicate __binary_pred) > { > > > > ; > > while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) > { > ++__first1; > ++__first2; > } > return pair<_InputIterator1, _InputIterator2>(__first1, __first2); > } ># 746 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2> > inline bool > equal(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2) > { > > > > > > > ; > > for (; __first1 != __last1; ++__first1, ++__first2) > if (!(*__first1 == *__first2)) > return false; > return true; > } ># 778 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _BinaryPredicate> > inline bool > equal(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, > _BinaryPredicate __binary_pred) > { > > > > ; > > for (; __first1 != __last1; ++__first1, ++__first2) > if (!__binary_pred(*__first1, *__first2)) > return false; > return true; > } ># 810 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2> > bool > lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2) > { > > > > > > > > > > ; > ; > > for (; __first1 != __last1 && __first2 != __last2; > ++__first1, ++__first2) > { > if (*__first1 < *__first2) > return true; > if (*__first2 < *__first1) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } ># 850 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algobase.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _Compare> > bool > lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _Compare __comp) > { > > > > ; > ; > > for (; __first1 != __last1 && __first2 != __last2; > ++__first1, ++__first2) > { > if (__comp(*__first1, *__first2)) > return true; > if (__comp(*__first2, *__first1)) > return false; > } > return __first1 == __last1 && __first2 != __last2; > } > > inline bool > lexicographical_compare(const unsigned char* __first1, > const unsigned char* __last1, > const unsigned char* __first2, > const unsigned char* __last2) > { > ; > ; > > const size_t __len1 = __last1 - __first1; > const size_t __len2 = __last2 - __first2; > const int __result = std::memcmp(__first1, __first2, > std::min(__len1, __len2)); > return __result != 0 ? __result < 0 : __len1 < __len2; > } > > inline bool > lexicographical_compare(const char* __first1, const char* __last1, > const char* __first2, const char* __last2) > { > ; > ; > > > return std::lexicographical_compare((const signed char*) __first1, > (const signed char*) __last1, > (const signed char*) __first2, > (const signed char*) __last2); > > > > > > > } > >} ># 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h" 1 3 ># 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++allocator.h" 1 3 ># 34 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++allocator.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h" 1 3 ># 37 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 1 3 ># 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 1 3 ># 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3 >#pragma GCC visibility push(default) > >extern "C++" { > >namespace std >{ ># 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3 > class exception > { > public: > exception() throw() { } > virtual ~exception() throw(); > > > virtual const char* what() const throw(); > }; > > > > class bad_exception : public exception > { > public: > bad_exception() throw() { } > > > virtual ~bad_exception() throw(); > }; > > > typedef void (*terminate_handler) (); > > typedef void (*unexpected_handler) (); > > > terminate_handler set_terminate(terminate_handler) throw(); > > > void terminate() __attribute__ ((__noreturn__)); > > > unexpected_handler set_unexpected(unexpected_handler) throw(); > > > void unexpected() __attribute__ ((__noreturn__)); ># 102 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3 > bool uncaught_exception() throw(); >} > >namespace __gnu_cxx >{ ># 117 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/exception" 3 > void __verbose_terminate_handler (); >} > >} > >#pragma GCC visibility pop ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 2 3 > >#pragma GCC visibility push(default) > >extern "C++" { > >namespace std >{ > > > > > > class bad_alloc : public exception > { > public: > bad_alloc() throw() { } > > > virtual ~bad_alloc() throw(); > }; > > struct nothrow_t { }; > extern const nothrow_t nothrow; > > > typedef void (*new_handler)(); > > new_handler set_new_handler(new_handler) throw(); >} ># 84 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/new" 3 >void* operator new(std::size_t) throw (std::bad_alloc); >void* operator new[](std::size_t) throw (std::bad_alloc); >void operator delete(void*) throw(); >void operator delete[](void*) throw(); >void* operator new(std::size_t, const std::nothrow_t&) throw(); >void* operator new[](std::size_t, const std::nothrow_t&) throw(); >void operator delete(void*, const std::nothrow_t&) throw(); >void operator delete[](void*, const std::nothrow_t&) throw(); > > >inline void* operator new(std::size_t, void* __p) throw() { return __p; } >inline void* operator new[](std::size_t, void* __p) throw() { return __p; } > > >inline void operator delete (void*, void*) throw() { } >inline void operator delete[](void*, void*) throw() { } > >} > >#pragma GCC visibility pop ># 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/ext/new_allocator.h" 2 3 > > >namespace __gnu_cxx >{ > > > > > > > > template<typename _Tp> > class new_allocator > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef new_allocator<_Tp1> other; }; > > new_allocator() throw() { } > > new_allocator(const new_allocator&) throw() { } > > template<typename _Tp1> > new_allocator(const new_allocator<_Tp1>&) throw() { } > > ~new_allocator() throw() { } > > pointer > address(reference __x) const { return &__x; } > > const_pointer > address(const_reference __x) const { return &__x; } > > > > pointer > allocate(size_type __n, const void* = 0) > { > if (__builtin_expect(__n > this->max_size(), false)) > std::__throw_bad_alloc(); > > return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp))); > } > > > void > deallocate(pointer __p, size_type) > { ::operator delete(__p); } > > size_type > max_size() const throw() > { return size_t(-1) / sizeof(_Tp); } > > > > void > construct(pointer __p, const _Tp& __val) > { ::new(__p) _Tp(__val); } > > void > destroy(pointer __p) { __p->~_Tp(); } > }; > > template<typename _Tp> > inline bool > operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&) > { return true; } > > template<typename _Tp> > inline bool > operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&) > { return false; } >} > >#pragma GCC visibility pop ># 35 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/c++allocator.h" 2 3 ># 53 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/allocator.h" 2 3 > >namespace std >{ > template<typename _Tp> > class allocator; > > > template<> > class allocator<void> > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef void* pointer; > typedef const void* const_pointer; > typedef void value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > }; > > > > > > > > template<typename _Tp> > class allocator: public __gnu_cxx::new_allocator<_Tp> > { > public: > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Tp* pointer; > typedef const _Tp* const_pointer; > typedef _Tp& reference; > typedef const _Tp& const_reference; > typedef _Tp value_type; > > template<typename _Tp1> > struct rebind > { typedef allocator<_Tp1> other; }; > > allocator() throw() { } > > allocator(const allocator& __a) throw() > : __gnu_cxx::new_allocator<_Tp>(__a) { } > > template<typename _Tp1> > allocator(const allocator<_Tp1>&) throw() { } > > ~allocator() throw() { } > > > }; > > template<typename _T1, typename _T2> > inline bool > operator==(const allocator<_T1>&, const allocator<_T2>&) > { return true; } > > template<typename _T1, typename _T2> > inline bool > operator!=(const allocator<_T1>&, const allocator<_T2>&) > { return false; } > > > > > > extern template class allocator<char>; > extern template class allocator<wchar_t>; > > > > >} ># 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 1 3 ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3 >namespace std >{ > > > > > > > template<typename _T1, typename _T2> > inline void > _Construct(_T1* __p, const _T2& __value) > { > > > ::new(static_cast<void*>(__p)) _T1(__value); > } > > > > > > > > template<typename _T1> > inline void > _Construct(_T1* __p) > { > > > ::new(static_cast<void*>(__p)) _T1(); > } > > > > > > > template<typename _Tp> > inline void > _Destroy(_Tp* __pointer) > { __pointer->~_Tp(); } ># 116 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3 > template<typename _ForwardIterator> > inline void > __destroy_aux(_ForwardIterator __first, _ForwardIterator __last, > __false_type) > { > for (; __first != __last; ++__first) > std::_Destroy(&*__first); > } ># 134 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3 > template<typename _ForwardIterator> > inline void > __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type) > { } ># 146 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3 > template<typename _ForwardIterator> > inline void > _Destroy(_ForwardIterator __first, _ForwardIterator __last) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _Value_type; > typedef typename std::__is_scalar<_Value_type>::__type > _Has_trivial_destructor; > > std::__destroy_aux(__first, __last, _Has_trivial_destructor()); > } ># 166 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_construct.h" 3 > template <typename _Tp> class allocator; > > template<typename _ForwardIterator, typename _Allocator> > void > _Destroy(_ForwardIterator __first, _ForwardIterator __last, > _Allocator __alloc) > { > for (; __first != __last; ++__first) > __alloc.destroy(&*__first); > } > > template<typename _ForwardIterator, typename _Tp> > inline void > _Destroy(_ForwardIterator __first, _ForwardIterator __last, > allocator<_Tp>) > { > _Destroy(__first, __last); > } > > >} ># 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 1 3 ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3 >namespace std >{ > > template<typename _InputIterator, typename _ForwardIterator> > inline _ForwardIterator > __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result, > __true_type) > { return std::copy(__first, __last, __result); } > > template<typename _InputIterator, typename _ForwardIterator> > inline _ForwardIterator > __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result, > __false_type) > { > _ForwardIterator __cur = __result; > try > { > for (; __first != __last; ++__first, ++__cur) > std::_Construct(&*__cur, *__first); > return __cur; > } > catch(...) > { > std::_Destroy(__result, __cur); > throw; > } > } ># 105 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3 > template<typename _InputIterator, typename _ForwardIterator> > inline _ForwardIterator > uninitialized_copy(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result) > { > typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; > typedef typename std::__is_scalar<_ValueType>::__type _Is_POD; > return std::__uninitialized_copy_aux(__first, __last, __result, > _Is_POD()); > } > > inline char* > uninitialized_copy(const char* __first, const char* __last, char* __result) > { > std::memmove(__result, __first, __last - __first); > return __result + (__last - __first); > } > > inline wchar_t* > uninitialized_copy(const wchar_t* __first, const wchar_t* __last, > wchar_t* __result) > { > std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first)); > return __result + (__last - __first); > } > > > > template<typename _ForwardIterator, typename _Tp> > inline void > __uninitialized_fill_aux(_ForwardIterator __first, > _ForwardIterator __last, > const _Tp& __x, __true_type) > { std::fill(__first, __last, __x); } > > template<typename _ForwardIterator, typename _Tp> > void > __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __x, __false_type) > { > _ForwardIterator __cur = __first; > try > { > for (; __cur != __last; ++__cur) > std::_Construct(&*__cur, __x); > } > catch(...) > { > std::_Destroy(__first, __cur); > throw; > } > } ># 167 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3 > template<typename _ForwardIterator, typename _Tp> > inline void > uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __x) > { > typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; > typedef typename std::__is_scalar<_ValueType>::__type _Is_POD; > std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD()); > } > > > > template<typename _ForwardIterator, typename _Size, typename _Tp> > inline void > __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n, > const _Tp& __x, __true_type) > { std::fill_n(__first, __n, __x); } > > template<typename _ForwardIterator, typename _Size, typename _Tp> > void > __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n, > const _Tp& __x, __false_type) > { > _ForwardIterator __cur = __first; > try > { > for (; __n > 0; --__n, ++__cur) > std::_Construct(&*__cur, __x); > } > catch(...) > { > std::_Destroy(__first, __cur); > throw; > } > } ># 212 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3 > template<typename _ForwardIterator, typename _Size, typename _Tp> > inline void > uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x) > { > typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType; > typedef typename std::__is_scalar<_ValueType>::__type _Is_POD; > std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD()); > } > > > > > > > > template<typename _InputIterator, typename _ForwardIterator, > typename _Allocator> > _ForwardIterator > __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result, > _Allocator __alloc) > { > _ForwardIterator __cur = __result; > try > { > for (; __first != __last; ++__first, ++__cur) > __alloc.construct(&*__cur, *__first); > return __cur; > } > catch(...) > { > std::_Destroy(__result, __cur, __alloc); > throw; > } > } > > template<typename _InputIterator, typename _ForwardIterator, typename _Tp> > inline _ForwardIterator > __uninitialized_copy_a(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result, > allocator<_Tp>) > { > return std::uninitialized_copy(__first, __last, __result); > } > > template<typename _ForwardIterator, typename _Tp, typename _Allocator> > void > __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __x, _Allocator __alloc) > { > _ForwardIterator __cur = __first; > try > { > for (; __cur != __last; ++__cur) > __alloc.construct(&*__cur, __x); > } > catch(...) > { > std::_Destroy(__first, __cur, __alloc); > throw; > } > } > > template<typename _ForwardIterator, typename _Tp, typename _Tp2> > inline void > __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __x, allocator<_Tp2>) > { > std::uninitialized_fill(__first, __last, __x); > } > > template<typename _ForwardIterator, typename _Size, typename _Tp, > typename _Allocator> > void > __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, > const _Tp& __x, > _Allocator __alloc) > { > _ForwardIterator __cur = __first; > try > { > for (; __n > 0; --__n, ++__cur) > __alloc.construct(&*__cur, __x); > } > catch(...) > { > std::_Destroy(__first, __cur, __alloc); > throw; > } > } > > template<typename _ForwardIterator, typename _Size, typename _Tp, > typename _Tp2> > void > __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n, > const _Tp& __x, > allocator<_Tp2>) > { > std::uninitialized_fill_n(__first, __n, __x); > } ># 323 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_uninitialized.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _ForwardIterator, typename _Allocator> > inline _ForwardIterator > __uninitialized_copy_copy(_InputIterator1 __first1, > _InputIterator1 __last1, > _InputIterator2 __first2, > _InputIterator2 __last2, > _ForwardIterator __result, > _Allocator __alloc) > { > _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1, > __result, > __alloc); > try > { > return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc); > } > catch(...) > { > std::_Destroy(__result, __mid, __alloc); > throw; > } > } > > > > > template<typename _ForwardIterator, typename _Tp, typename _InputIterator, > typename _Allocator> > inline _ForwardIterator > __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid, > const _Tp& __x, _InputIterator __first, > _InputIterator __last, > _Allocator __alloc) > { > std::__uninitialized_fill_a(__result, __mid, __x, __alloc); > try > { > return std::__uninitialized_copy_a(__first, __last, __mid, __alloc); > } > catch(...) > { > std::_Destroy(__result, __mid, __alloc); > throw; > } > } > > > > > template<typename _InputIterator, typename _ForwardIterator, typename _Tp, > typename _Allocator> > inline void > __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1, > _ForwardIterator __first2, > _ForwardIterator __last2, const _Tp& __x, > _Allocator __alloc) > { > _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1, > __first2, > __alloc); > try > { > std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc); > } > catch(...) > { > std::_Destroy(__first2, __mid2, __alloc); > throw; > } > } > >} ># 71 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 1 3 ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 >namespace std >{ > > > > > > > struct _List_node_base > { > _List_node_base* _M_next; > _List_node_base* _M_prev; > > static void > swap(_List_node_base& __x, _List_node_base& __y); > > void > transfer(_List_node_base * const __first, > _List_node_base * const __last); > > void > reverse(); > > void > hook(_List_node_base * const __position); > > void > unhook(); > }; > > > template<typename _Tp> > struct _List_node : public _List_node_base > { > _Tp _M_data; > }; ># 110 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _Tp> > struct _List_iterator > { > typedef _List_iterator<_Tp> _Self; > typedef _List_node<_Tp> _Node; > > typedef ptrdiff_t difference_type; > typedef std::bidirectional_iterator_tag iterator_category; > typedef _Tp value_type; > typedef _Tp* pointer; > typedef _Tp& reference; > > _List_iterator() > : _M_node() { } > > explicit > _List_iterator(_List_node_base* __x) > : _M_node(__x) { } > > > reference > operator*() const > { return static_cast<_Node*>(_M_node)->_M_data; } > > pointer > operator->() const > { return &static_cast<_Node*>(_M_node)->_M_data; } > > _Self& > operator++() > { > _M_node = _M_node->_M_next; > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > _M_node = _M_node->_M_next; > return __tmp; > } > > _Self& > operator--() > { > _M_node = _M_node->_M_prev; > return *this; > } > > _Self > operator--(int) > { > _Self __tmp = *this; > _M_node = _M_node->_M_prev; > return __tmp; > } > > bool > operator==(const _Self& __x) const > { return _M_node == __x._M_node; } > > bool > operator!=(const _Self& __x) const > { return _M_node != __x._M_node; } > > > _List_node_base* _M_node; > }; ># 187 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _Tp> > struct _List_const_iterator > { > typedef _List_const_iterator<_Tp> _Self; > typedef const _List_node<_Tp> _Node; > typedef _List_iterator<_Tp> iterator; > > typedef ptrdiff_t difference_type; > typedef std::bidirectional_iterator_tag iterator_category; > typedef _Tp value_type; > typedef const _Tp* pointer; > typedef const _Tp& reference; > > _List_const_iterator() > : _M_node() { } > > explicit > _List_const_iterator(const _List_node_base* __x) > : _M_node(__x) { } > > _List_const_iterator(const iterator& __x) > : _M_node(__x._M_node) { } > > > > reference > operator*() const > { return static_cast<_Node*>(_M_node)->_M_data; } > > pointer > operator->() const > { return &static_cast<_Node*>(_M_node)->_M_data; } > > _Self& > operator++() > { > _M_node = _M_node->_M_next; > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > _M_node = _M_node->_M_next; > return __tmp; > } > > _Self& > operator--() > { > _M_node = _M_node->_M_prev; > return *this; > } > > _Self > operator--(int) > { > _Self __tmp = *this; > _M_node = _M_node->_M_prev; > return __tmp; > } > > bool > operator==(const _Self& __x) const > { return _M_node == __x._M_node; } > > bool > operator!=(const _Self& __x) const > { return _M_node != __x._M_node; } > > > const _List_node_base* _M_node; > }; > > template<typename _Val> > inline bool > operator==(const _List_iterator<_Val>& __x, > const _List_const_iterator<_Val>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val> > inline bool > operator!=(const _List_iterator<_Val>& __x, > const _List_const_iterator<_Val>& __y) > { return __x._M_node != __y._M_node; } > > > > > > > > template<typename _Tp, typename _Alloc> > class _List_base > { > protected: ># 297 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > typedef typename _Alloc::template rebind<_List_node<_Tp> >::other > _Node_alloc_type; > > typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; > > struct _List_impl > : public _Node_alloc_type > { > _List_node_base _M_node; > > _List_impl(const _Node_alloc_type& __a) > : _Node_alloc_type(__a), _M_node() > { } > }; > > _List_impl _M_impl; > > _List_node<_Tp>* > _M_get_node() > { return _M_impl._Node_alloc_type::allocate(1); } > > void > _M_put_node(_List_node<_Tp>* __p) > { _M_impl._Node_alloc_type::deallocate(__p, 1); } > > public: > typedef _Alloc allocator_type; > > _Tp_alloc_type > _M_get_Tp_allocator() const > { return *static_cast<const _Node_alloc_type*>(&this->_M_impl); } > > allocator_type > get_allocator() const > { return _M_get_Tp_allocator(); } > > _List_base(const allocator_type& __a) > : _M_impl(__a) > { _M_init(); } > > > ~_List_base() > { _M_clear(); } > > void > _M_clear(); > > void > _M_init() > { > this->_M_impl._M_node._M_next = &this->_M_impl._M_node; > this->_M_impl._M_node._M_prev = &this->_M_impl._M_node; > } > }; ># 397 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _Tp, typename _Alloc = std::allocator<_Tp> > > class list : protected _List_base<_Tp, _Alloc> > { > > typedef typename _Alloc::value_type _Alloc_value_type; > > > > typedef _List_base<_Tp, _Alloc> _Base; > typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; > > public: > typedef _Tp value_type; > typedef typename _Tp_alloc_type::pointer pointer; > typedef typename _Tp_alloc_type::const_pointer const_pointer; > typedef typename _Tp_alloc_type::reference reference; > typedef typename _Tp_alloc_type::const_reference const_reference; > typedef _List_iterator<_Tp> iterator; > typedef _List_const_iterator<_Tp> const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Alloc allocator_type; > > protected: > > > typedef _List_node<_Tp> _Node; > > > > > > > > using _Base::_M_impl; > using _Base::_M_put_node; > using _Base::_M_get_node; > using _Base::_M_get_Tp_allocator; ># 445 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > _Node* > _M_create_node(const value_type& __x) > { > _Node* __p = this->_M_get_node(); > try > { > _M_get_Tp_allocator().construct(&__p->_M_data, __x); > } > catch(...) > { > _M_put_node(__p); > throw; > } > return __p; > } > > public: > > > > > > explicit > list(const allocator_type& __a = allocator_type()) > : _Base(__a) { } ># 478 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > explicit > list(size_type __n, const value_type& __value = value_type(), > const allocator_type& __a = allocator_type()) > : _Base(__a) > { this->insert(begin(), __n, __value); } ># 491 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > list(const list& __x) > : _Base(__x.get_allocator()) > { this->insert(begin(), __x.begin(), __x.end()); } ># 509 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _InputIterator> > list(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Base(__a) > { this->insert(begin(), __first, __last); } ># 530 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > list& > operator=(const list& __x); ># 543 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > assign(size_type __n, const value_type& __val) > { _M_fill_assign(__n, __val); } ># 559 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > > allocator_type > get_allocator() const > { return _Base::get_allocator(); } > > > > > > > iterator > begin() > { return iterator(this->_M_impl._M_node._M_next); } > > > > > > > const_iterator > begin() const > { return const_iterator(this->_M_impl._M_node._M_next); } > > > > > > > iterator > end() > { return iterator(&this->_M_impl._M_node); } > > > > > > > const_iterator > end() const > { return const_iterator(&this->_M_impl._M_node); } > > > > > > > reverse_iterator > rbegin() > { return reverse_iterator(end()); } > > > > > > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(end()); } > > > > > > > reverse_iterator > rend() > { return reverse_iterator(begin()); } > > > > > > > const_reverse_iterator > rend() const > { return const_reverse_iterator(begin()); } > > > > > > > bool > empty() const > { return this->_M_impl._M_node._M_next == &this->_M_impl._M_node; } > > > size_type > size() const > { return std::distance(begin(), end()); } > > > size_type > max_size() const > { return size_type(-1); } ># 674 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > resize(size_type __new_size, value_type __x = value_type()); > > > > > > > reference > front() > { return *begin(); } > > > > > > const_reference > front() const > { return *begin(); } > > > > > > reference > back() > { > iterator __tmp = end(); > --__tmp; > return *__tmp; > } > > > > > > const_reference > back() const > { > const_iterator __tmp = end(); > --__tmp; > return *__tmp; > } ># 729 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > push_front(const value_type& __x) > { this->_M_insert(begin(), __x); } ># 745 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > pop_front() > { this->_M_erase(begin()); } ># 759 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > push_back(const value_type& __x) > { this->_M_insert(end(), __x); } ># 774 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > pop_back() > { this->_M_erase(iterator(this->_M_impl._M_node._M_prev)); } ># 789 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > iterator > insert(iterator __position, const value_type& __x); ># 805 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > insert(iterator __position, size_type __n, const value_type& __x) > { _M_fill_insert(__position, __n, __x); } ># 823 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _InputIterator> > void > insert(iterator __position, _InputIterator __first, > _InputIterator __last) > { > > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_insert_dispatch(__position, __first, __last, _Integral()); > } ># 848 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > iterator > erase(iterator __position); ># 870 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > iterator > erase(iterator __first, iterator __last) > { > while (__first != __last) > __first = erase(__first); > return __last; > } ># 887 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > swap(list& __x) > { _List_node_base::swap(this->_M_impl._M_node, __x._M_impl._M_node); } > > > > > > > > void > clear() > { > _Base::_M_clear(); > _Base::_M_init(); > } ># 914 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > splice(iterator __position, list& __x) > { > if (!__x.empty()) > this->_M_transfer(__position, __x.begin(), __x.end()); > } ># 930 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > splice(iterator __position, list&, iterator __i) > { > iterator __j = __i; > ++__j; > if (__position == __i || __position == __j) > return; > this->_M_transfer(__position, __i, __j); > } ># 952 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > splice(iterator __position, list&, iterator __first, iterator __last) > { > if (__first != __last) > this->_M_transfer(__position, __first, __last); > } ># 970 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > remove(const _Tp& __value); ># 984 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _Predicate> > void > remove_if(_Predicate); ># 998 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > unique(); ># 1013 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _BinaryPredicate> > void > unique(_BinaryPredicate); ># 1026 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > void > merge(list& __x); ># 1041 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _StrictWeakOrdering> > void > merge(list&, _StrictWeakOrdering); > > > > > > > void > reverse() > { this->_M_impl._M_node.reverse(); } > > > > > > > > void > sort(); > > > > > > > > template<typename _StrictWeakOrdering> > void > sort(_StrictWeakOrdering); > > protected: > > > > template<typename _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { > _M_fill_assign(static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIterator> > void > _M_assign_dispatch(_InputIterator __first, _InputIterator __last, > __false_type); > > > > void > _M_fill_assign(size_type __n, const value_type& __val); > > > > > > template<typename _Integer> > void > _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, > __true_type) > { > _M_fill_insert(__pos, static_cast<size_type>(__n), > static_cast<value_type>(__x)); > } > > > template<typename _InputIterator> > void > _M_insert_dispatch(iterator __pos, > _InputIterator __first, _InputIterator __last, > __false_type) > { > for (; __first != __last; ++__first) > _M_insert(__pos, *__first); > } > > > > void > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x) > { > for (; __n > 0; --__n) > _M_insert(__pos, __x); > } > > > > void > _M_transfer(iterator __position, iterator __first, iterator __last) > { __position._M_node->transfer(__first._M_node, __last._M_node); } > > > void > _M_insert(iterator __position, const value_type& __x) > { > _Node* __tmp = _M_create_node(__x); > __tmp->hook(__position._M_node); > } > > > void > _M_erase(iterator __position) > { > __position._M_node->unhook(); > _Node* __n = static_cast<_Node*>(__position._M_node); > _M_get_Tp_allocator().destroy(&__n->_M_data); > _M_put_node(__n); > } > }; ># 1164 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) > { > typedef typename list<_Tp, _Alloc>::const_iterator const_iterator; > const_iterator __end1 = __x.end(); > const_iterator __end2 = __y.end(); > > const_iterator __i1 = __x.begin(); > const_iterator __i2 = __y.begin(); > while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) > { > ++__i1; > ++__i2; > } > return __i1 == __end1 && __i2 == __end2; > } ># 1193 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_list.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator<(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) > { return std::lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) > { return !(__x == __y); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) > { return __y < __x; } > > > template<typename _Tp, typename _Alloc> > inline bool > operator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) > { return !(__y < __x); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y) > { return !(__x < __y); } > > > template<typename _Tp, typename _Alloc> > inline void > swap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y) > { __x.swap(__y); } >} ># 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/list.tcc" 3 >namespace std >{ > template<typename _Tp, typename _Alloc> > void > _List_base<_Tp, _Alloc>:: > _M_clear() > { > typedef _List_node<_Tp> _Node; > _Node* __cur = static_cast<_Node*>(this->_M_impl._M_node._M_next); > while (__cur != &this->_M_impl._M_node) > { > _Node* __tmp = __cur; > __cur = static_cast<_Node*>(__cur->_M_next); > _M_get_Tp_allocator().destroy(&__tmp->_M_data); > _M_put_node(__tmp); > } > } > > template<typename _Tp, typename _Alloc> > typename list<_Tp, _Alloc>::iterator > list<_Tp, _Alloc>:: > insert(iterator __position, const value_type& __x) > { > _Node* __tmp = _M_create_node(__x); > __tmp->hook(__position._M_node); > return iterator(__tmp); > } > > template<typename _Tp, typename _Alloc> > typename list<_Tp, _Alloc>::iterator > list<_Tp, _Alloc>:: > erase(iterator __position) > { > iterator __ret = iterator(__position._M_node->_M_next); > _M_erase(__position); > return __ret; > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp, _Alloc>:: > resize(size_type __new_size, value_type __x) > { > iterator __i = begin(); > size_type __len = 0; > for (; __i != end() && __len < __new_size; ++__i, ++__len) > ; > if (__len == __new_size) > erase(__i, end()); > else > insert(end(), __new_size - __len, __x); > } > > template<typename _Tp, typename _Alloc> > list<_Tp, _Alloc>& > list<_Tp, _Alloc>:: > operator=(const list& __x) > { > if (this != &__x) > { > iterator __first1 = begin(); > iterator __last1 = end(); > const_iterator __first2 = __x.begin(); > const_iterator __last2 = __x.end(); > for (; __first1 != __last1 && __first2 != __last2; > ++__first1, ++__first2) > *__first1 = *__first2; > if (__first2 == __last2) > erase(__first1, __last1); > else > insert(__last1, __first2, __last2); > } > return *this; > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp, _Alloc>:: > _M_fill_assign(size_type __n, const value_type& __val) > { > iterator __i = begin(); > for (; __i != end() && __n > 0; ++__i, --__n) > *__i = __val; > if (__n > 0) > insert(end(), __n, __val); > else > erase(__i, end()); > } > > template<typename _Tp, typename _Alloc> > template <typename _InputIterator> > void > list<_Tp, _Alloc>:: > _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, > __false_type) > { > iterator __first1 = begin(); > iterator __last1 = end(); > for (; __first1 != __last1 && __first2 != __last2; > ++__first1, ++__first2) > *__first1 = *__first2; > if (__first2 == __last2) > erase(__first1, __last1); > else > insert(__last1, __first2, __last2); > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp, _Alloc>:: > remove(const value_type& __value) > { > iterator __first = begin(); > iterator __last = end(); > while (__first != __last) > { > iterator __next = __first; > ++__next; > if (*__first == __value) > _M_erase(__first); > __first = __next; > } > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp, _Alloc>:: > unique() > { > iterator __first = begin(); > iterator __last = end(); > if (__first == __last) > return; > iterator __next = __first; > while (++__next != __last) > { > if (*__first == *__next) > _M_erase(__next); > else > __first = __next; > __next = __first; > } > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp, _Alloc>:: > merge(list& __x) > { > > > if (this != &__x) > { > iterator __first1 = begin(); > iterator __last1 = end(); > iterator __first2 = __x.begin(); > iterator __last2 = __x.end(); > while (__first1 != __last1 && __first2 != __last2) > if (*__first2 < *__first1) > { > iterator __next = __first2; > _M_transfer(__first1, __first2, ++__next); > __first2 = __next; > } > else > ++__first1; > if (__first2 != __last2) > _M_transfer(__last1, __first2, __last2); > } > } > > template<typename _Tp, typename _Alloc> > void > list<_Tp, _Alloc>:: > sort() > { > > if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node > && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) > { > list __carry; > list __tmp[64]; > list * __fill = &__tmp[0]; > list * __counter; > > do > { > __carry.splice(__carry.begin(), *this, begin()); > > for(__counter = &__tmp[0]; > __counter != __fill && !__counter->empty(); > ++__counter) > { > __counter->merge(__carry); > __carry.swap(*__counter); > } > __carry.swap(*__counter); > if (__counter == __fill) > ++__fill; > } > while ( !empty() ); > > for (__counter = &__tmp[1]; __counter != __fill; ++__counter) > __counter->merge(*(__counter - 1)); > swap( *(__fill - 1) ); > } > } > > template<typename _Tp, typename _Alloc> > template <typename _Predicate> > void > list<_Tp, _Alloc>:: > remove_if(_Predicate __pred) > { > iterator __first = begin(); > iterator __last = end(); > while (__first != __last) > { > iterator __next = __first; > ++__next; > if (__pred(*__first)) > _M_erase(__first); > __first = __next; > } > } > > template<typename _Tp, typename _Alloc> > template <typename _BinaryPredicate> > void > list<_Tp, _Alloc>:: > unique(_BinaryPredicate __binary_pred) > { > iterator __first = begin(); > iterator __last = end(); > if (__first == __last) > return; > iterator __next = __first; > while (++__next != __last) > { > if (__binary_pred(*__first, *__next)) > _M_erase(__next); > else > __first = __next; > __next = __first; > } > } > > template<typename _Tp, typename _Alloc> > template <typename _StrictWeakOrdering> > void > list<_Tp, _Alloc>:: > merge(list& __x, _StrictWeakOrdering __comp) > { > > > if (this != &__x) > { > iterator __first1 = begin(); > iterator __last1 = end(); > iterator __first2 = __x.begin(); > iterator __last2 = __x.end(); > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first2, *__first1)) > { > iterator __next = __first2; > _M_transfer(__first1, __first2, ++__next); > __first2 = __next; > } > else > ++__first1; > if (__first2 != __last2) > _M_transfer(__last1, __first2, __last2); > } > } > > template<typename _Tp, typename _Alloc> > template <typename _StrictWeakOrdering> > void > list<_Tp, _Alloc>:: > sort(_StrictWeakOrdering __comp) > { > > if (this->_M_impl._M_node._M_next != &this->_M_impl._M_node > && this->_M_impl._M_node._M_next->_M_next != &this->_M_impl._M_node) > { > list __carry; > list __tmp[64]; > list * __fill = &__tmp[0]; > list * __counter; > > do > { > __carry.splice(__carry.begin(), *this, begin()); > > for(__counter = &__tmp[0]; > __counter != __fill && !__counter->empty(); > ++__counter) > { > __counter->merge(__carry, __comp); > __carry.swap(*__counter); > } > __carry.swap(*__counter); > if (__counter == __fill) > ++__fill; > } > while ( !empty() ); > > for (__counter = &__tmp[1]; __counter != __fill; ++__counter) > __counter->merge(*(__counter - 1), __comp); > swap(*(__fill - 1)); > } > } >} ># 75 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/list" 2 3 > > > > > > >#pragma GCC visibility pop ># 40 "panelfront.h" 2 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/map" 1 3 ># 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/map" 3 > ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/map" 3 >#pragma GCC visibility push(default) > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h" 1 3 ># 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 >namespace std >{ ># 101 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Arg, class _Result> > struct unary_function > { > typedef _Arg argument_type; > > > typedef _Result result_type; > }; > > > > > template <class _Arg1, class _Arg2, class _Result> > struct binary_function > { > typedef _Arg1 first_argument_type; > > > typedef _Arg2 second_argument_type; > typedef _Result result_type; > }; ># 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Tp> > struct plus : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x + __y; } > }; > > > template <class _Tp> > struct minus : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x - __y; } > }; > > > template <class _Tp> > struct multiplies : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x * __y; } > }; > > > template <class _Tp> > struct divides : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x / __y; } > }; > > > template <class _Tp> > struct modulus : public binary_function<_Tp, _Tp, _Tp> > { > _Tp > operator()(const _Tp& __x, const _Tp& __y) const > { return __x % __y; } > }; > > > template <class _Tp> > struct negate : public unary_function<_Tp, _Tp> > { > _Tp > operator()(const _Tp& __x) const > { return -__x; } > }; ># 195 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Tp> > struct equal_to : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x == __y; } > }; > > > template <class _Tp> > struct not_equal_to : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x != __y; } > }; > > > template <class _Tp> > struct greater : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x > __y; } > }; > > > template <class _Tp> > struct less : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x < __y; } > }; > > > template <class _Tp> > struct greater_equal : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x >= __y; } > }; > > > template <class _Tp> > struct less_equal : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x <= __y; } > }; ># 256 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Tp> > struct logical_and : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x && __y; } > }; > > > template <class _Tp> > struct logical_or : public binary_function<_Tp, _Tp, bool> > { > bool > operator()(const _Tp& __x, const _Tp& __y) const > { return __x || __y; } > }; > > > template <class _Tp> > struct logical_not : public unary_function<_Tp, bool> > { > bool > operator()(const _Tp& __x) const > { return !__x; } > }; ># 311 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Predicate> > class unary_negate > : public unary_function<typename _Predicate::argument_type, bool> > { > protected: > _Predicate _M_pred; > public: > explicit > unary_negate(const _Predicate& __x) : _M_pred(__x) {} > > bool > operator()(const typename _Predicate::argument_type& __x) const > { return !_M_pred(__x); } > }; > > > template <class _Predicate> > inline unary_negate<_Predicate> > not1(const _Predicate& __pred) > { return unary_negate<_Predicate>(__pred); } > > > template <class _Predicate> > class binary_negate > : public binary_function<typename _Predicate::first_argument_type, > typename _Predicate::second_argument_type, > bool> > { > protected: > _Predicate _M_pred; > public: > explicit > binary_negate(const _Predicate& __x) > : _M_pred(__x) { } > > bool > operator()(const typename _Predicate::first_argument_type& __x, > const typename _Predicate::second_argument_type& __y) const > { return !_M_pred(__x, __y); } > }; > > > template <class _Predicate> > inline binary_negate<_Predicate> > not2(const _Predicate& __pred) > { return binary_negate<_Predicate>(__pred); } ># 391 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Operation> > class binder1st > : public unary_function<typename _Operation::second_argument_type, > typename _Operation::result_type> > { > protected: > _Operation op; > typename _Operation::first_argument_type value; > public: > binder1st(const _Operation& __x, > const typename _Operation::first_argument_type& __y) > : op(__x), value(__y) {} > > typename _Operation::result_type > operator()(const typename _Operation::second_argument_type& __x) const > { return op(value, __x); } > > > > typename _Operation::result_type > operator()(typename _Operation::second_argument_type& __x) const > { return op(value, __x); } > }; > > > template <class _Operation, class _Tp> > inline binder1st<_Operation> > bind1st(const _Operation& __fn, const _Tp& __x) > { > typedef typename _Operation::first_argument_type _Arg1_type; > return binder1st<_Operation>(__fn, _Arg1_type(__x)); > } > > > template <class _Operation> > class binder2nd > : public unary_function<typename _Operation::first_argument_type, > typename _Operation::result_type> > { > protected: > _Operation op; > typename _Operation::second_argument_type value; > public: > binder2nd(const _Operation& __x, > const typename _Operation::second_argument_type& __y) > : op(__x), value(__y) {} > > typename _Operation::result_type > operator()(const typename _Operation::first_argument_type& __x) const > { return op(__x, value); } > > > > typename _Operation::result_type > operator()(typename _Operation::first_argument_type& __x) const > { return op(__x, value); } > }; > > > template <class _Operation, class _Tp> > inline binder2nd<_Operation> > bind2nd(const _Operation& __fn, const _Tp& __x) > { > typedef typename _Operation::second_argument_type _Arg2_type; > return binder2nd<_Operation>(__fn, _Arg2_type(__x)); > } ># 480 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Arg, class _Result> > class pointer_to_unary_function : public unary_function<_Arg, _Result> > { > protected: > _Result (*_M_ptr)(_Arg); > public: > pointer_to_unary_function() {} > > explicit > pointer_to_unary_function(_Result (*__x)(_Arg)) > : _M_ptr(__x) {} > > _Result > operator()(_Arg __x) const > { return _M_ptr(__x); } > }; > > > template <class _Arg, class _Result> > inline pointer_to_unary_function<_Arg, _Result> > ptr_fun(_Result (*__x)(_Arg)) > { return pointer_to_unary_function<_Arg, _Result>(__x); } > > > template <class _Arg1, class _Arg2, class _Result> > class pointer_to_binary_function > : public binary_function<_Arg1, _Arg2, _Result> > { > protected: > _Result (*_M_ptr)(_Arg1, _Arg2); > public: > pointer_to_binary_function() {} > > explicit > pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) > : _M_ptr(__x) {} > > _Result > operator()(_Arg1 __x, _Arg2 __y) const > { return _M_ptr(__x, __y); } > }; > > > template <class _Arg1, class _Arg2, class _Result> > inline pointer_to_binary_function<_Arg1, _Arg2, _Result> > ptr_fun(_Result (*__x)(_Arg1, _Arg2)) > { return pointer_to_binary_function<_Arg1, _Arg2, _Result>(__x); } > > > template <class _Tp> > struct _Identity : public unary_function<_Tp,_Tp> > { > _Tp& > operator()(_Tp& __x) const > { return __x; } > > const _Tp& > operator()(const _Tp& __x) const > { return __x; } > }; > > template <class _Pair> > struct _Select1st : public unary_function<_Pair, > typename _Pair::first_type> > { > typename _Pair::first_type& > operator()(_Pair& __x) const > { return __x.first; } > > const typename _Pair::first_type& > operator()(const _Pair& __x) const > { return __x.first; } > }; > > template <class _Pair> > struct _Select2nd : public unary_function<_Pair, > typename _Pair::second_type> > { > typename _Pair::second_type& > operator()(_Pair& __x) const > { return __x.second; } > > const typename _Pair::second_type& > operator()(const _Pair& __x) const > { return __x.second; } > }; ># 582 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_function.h" 3 > template <class _Ret, class _Tp> > class mem_fun_t : public unary_function<_Tp*, _Ret> > { > public: > explicit > mem_fun_t(_Ret (_Tp::*__pf)()) > : _M_f(__pf) {} > > _Ret > operator()(_Tp* __p) const > { return (__p->*_M_f)(); } > private: > _Ret (_Tp::*_M_f)(); > }; > > > template <class _Ret, class _Tp> > class const_mem_fun_t : public unary_function<const _Tp*, _Ret> > { > public: > explicit > const_mem_fun_t(_Ret (_Tp::*__pf)() const) > : _M_f(__pf) {} > > _Ret > operator()(const _Tp* __p) const > { return (__p->*_M_f)(); } > private: > _Ret (_Tp::*_M_f)() const; > }; > > > template <class _Ret, class _Tp> > class mem_fun_ref_t : public unary_function<_Tp, _Ret> > { > public: > explicit > mem_fun_ref_t(_Ret (_Tp::*__pf)()) > : _M_f(__pf) {} > > _Ret > operator()(_Tp& __r) const > { return (__r.*_M_f)(); } > private: > _Ret (_Tp::*_M_f)(); > }; > > > template <class _Ret, class _Tp> > class const_mem_fun_ref_t : public unary_function<_Tp, _Ret> > { > public: > explicit > const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const) > : _M_f(__pf) {} > > _Ret > operator()(const _Tp& __r) const > { return (__r.*_M_f)(); } > private: > _Ret (_Tp::*_M_f)() const; > }; > > > template <class _Ret, class _Tp, class _Arg> > class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret> > { > public: > explicit > mem_fun1_t(_Ret (_Tp::*__pf)(_Arg)) > : _M_f(__pf) {} > > _Ret > operator()(_Tp* __p, _Arg __x) const > { return (__p->*_M_f)(__x); } > private: > _Ret (_Tp::*_M_f)(_Arg); > }; > > > template <class _Ret, class _Tp, class _Arg> > class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret> > { > public: > explicit > const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const) > : _M_f(__pf) {} > > _Ret > operator()(const _Tp* __p, _Arg __x) const > { return (__p->*_M_f)(__x); } > private: > _Ret (_Tp::*_M_f)(_Arg) const; > }; > > > template <class _Ret, class _Tp, class _Arg> > class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> > { > public: > explicit > mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg)) > : _M_f(__pf) {} > > _Ret > operator()(_Tp& __r, _Arg __x) const > { return (__r.*_M_f)(__x); } > private: > _Ret (_Tp::*_M_f)(_Arg); > }; > > > template <class _Ret, class _Tp, class _Arg> > class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret> > { > public: > explicit > const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const) > : _M_f(__pf) {} > > _Ret > operator()(const _Tp& __r, _Arg __x) const > { return (__r.*_M_f)(__x); } > private: > _Ret (_Tp::*_M_f)(_Arg) const; > }; > > > > template <class _Ret, class _Tp> > inline mem_fun_t<_Ret, _Tp> > mem_fun(_Ret (_Tp::*__f)()) > { return mem_fun_t<_Ret, _Tp>(__f); } > > template <class _Ret, class _Tp> > inline const_mem_fun_t<_Ret, _Tp> > mem_fun(_Ret (_Tp::*__f)() const) > { return const_mem_fun_t<_Ret, _Tp>(__f); } > > template <class _Ret, class _Tp> > inline mem_fun_ref_t<_Ret, _Tp> > mem_fun_ref(_Ret (_Tp::*__f)()) > { return mem_fun_ref_t<_Ret, _Tp>(__f); } > > template <class _Ret, class _Tp> > inline const_mem_fun_ref_t<_Ret, _Tp> > mem_fun_ref(_Ret (_Tp::*__f)() const) > { return const_mem_fun_ref_t<_Ret, _Tp>(__f); } > > template <class _Ret, class _Tp, class _Arg> > inline mem_fun1_t<_Ret, _Tp, _Arg> > mem_fun(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); } > > template <class _Ret, class _Tp, class _Arg> > inline const_mem_fun1_t<_Ret, _Tp, _Arg> > mem_fun(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); } > > template <class _Ret, class _Tp, class _Arg> > inline mem_fun1_ref_t<_Ret, _Tp, _Arg> > mem_fun_ref(_Ret (_Tp::*__f)(_Arg)) > { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } > > template <class _Ret, class _Tp, class _Arg> > inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg> > mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const) > { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); } > > > >} ># 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h" 2 3 > > >namespace std >{ ># 90 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tree.h" 3 > enum _Rb_tree_color { _S_red = false, _S_black = true }; > > struct _Rb_tree_node_base > { > typedef _Rb_tree_node_base* _Base_ptr; > typedef const _Rb_tree_node_base* _Const_Base_ptr; > > _Rb_tree_color _M_color; > _Base_ptr _M_parent; > _Base_ptr _M_left; > _Base_ptr _M_right; > > static _Base_ptr > _S_minimum(_Base_ptr __x) > { > while (__x->_M_left != 0) __x = __x->_M_left; > return __x; > } > > static _Const_Base_ptr > _S_minimum(_Const_Base_ptr __x) > { > while (__x->_M_left != 0) __x = __x->_M_left; > return __x; > } > > static _Base_ptr > _S_maximum(_Base_ptr __x) > { > while (__x->_M_right != 0) __x = __x->_M_right; > return __x; > } > > static _Const_Base_ptr > _S_maximum(_Const_Base_ptr __x) > { > while (__x->_M_right != 0) __x = __x->_M_right; > return __x; > } > }; > > template<typename _Val> > struct _Rb_tree_node : public _Rb_tree_node_base > { > typedef _Rb_tree_node<_Val>* _Link_type; > _Val _M_value_field; > }; > > _Rb_tree_node_base* > _Rb_tree_increment(_Rb_tree_node_base* __x); > > const _Rb_tree_node_base* > _Rb_tree_increment(const _Rb_tree_node_base* __x); > > _Rb_tree_node_base* > _Rb_tree_decrement(_Rb_tree_node_base* __x); > > const _Rb_tree_node_base* > _Rb_tree_decrement(const _Rb_tree_node_base* __x); > > template<typename _Tp> > struct _Rb_tree_iterator > { > typedef _Tp value_type; > typedef _Tp& reference; > typedef _Tp* pointer; > > typedef bidirectional_iterator_tag iterator_category; > typedef ptrdiff_t difference_type; > > typedef _Rb_tree_iterator<_Tp> _Self; > typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; > typedef _Rb_tree_node<_Tp>* _Link_type; > > _Rb_tree_iterator() > : _M_node() { } > > explicit > _Rb_tree_iterator(_Link_type __x) > : _M_node(__x) { } > > reference > operator*() const > { return static_cast<_Link_type>(_M_node)->_M_value_field; } > > pointer > operator->() const > { return &static_cast<_Link_type>(_M_node)->_M_value_field; } > > _Self& > operator++() > { > _M_node = _Rb_tree_increment(_M_node); > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > _M_node = _Rb_tree_increment(_M_node); > return __tmp; > } > > _Self& > operator--() > { > _M_node = _Rb_tree_decrement(_M_node); > return *this; > } > > _Self > operator--(int) > { > _Self __tmp = *this; > _M_node = _Rb_tree_decrement(_M_node); > return __tmp; > } > > bool > operator==(const _Self& __x) const > { return _M_node == __x._M_node; } > > bool > operator!=(const _Self& __x) const > { return _M_node != __x._M_node; } > > _Base_ptr _M_node; > }; > > template<typename _Tp> > struct _Rb_tree_const_iterator > { > typedef _Tp value_type; > typedef const _Tp& reference; > typedef const _Tp* pointer; > > typedef _Rb_tree_iterator<_Tp> iterator; > > typedef bidirectional_iterator_tag iterator_category; > typedef ptrdiff_t difference_type; > > typedef _Rb_tree_const_iterator<_Tp> _Self; > typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; > typedef const _Rb_tree_node<_Tp>* _Link_type; > > _Rb_tree_const_iterator() > : _M_node() { } > > explicit > _Rb_tree_const_iterator(_Link_type __x) > : _M_node(__x) { } > > _Rb_tree_const_iterator(const iterator& __it) > : _M_node(__it._M_node) { } > > reference > operator*() const > { return static_cast<_Link_type>(_M_node)->_M_value_field; } > > pointer > operator->() const > { return &static_cast<_Link_type>(_M_node)->_M_value_field; } > > _Self& > operator++() > { > _M_node = _Rb_tree_increment(_M_node); > return *this; > } > > _Self > operator++(int) > { > _Self __tmp = *this; > _M_node = _Rb_tree_increment(_M_node); > return __tmp; > } > > _Self& > operator--() > { > _M_node = _Rb_tree_decrement(_M_node); > return *this; > } > > _Self > operator--(int) > { > _Self __tmp = *this; > _M_node = _Rb_tree_decrement(_M_node); > return __tmp; > } > > bool > operator==(const _Self& __x) const > { return _M_node == __x._M_node; } > > bool > operator!=(const _Self& __x) const > { return _M_node != __x._M_node; } > > _Base_ptr _M_node; > }; > > template<typename _Val> > inline bool > operator==(const _Rb_tree_iterator<_Val>& __x, > const _Rb_tree_const_iterator<_Val>& __y) > { return __x._M_node == __y._M_node; } > > template<typename _Val> > inline bool > operator!=(const _Rb_tree_iterator<_Val>& __x, > const _Rb_tree_const_iterator<_Val>& __y) > { return __x._M_node != __y._M_node; } > > void > _Rb_tree_rotate_left(_Rb_tree_node_base* const __x, > _Rb_tree_node_base*& __root); > > void > _Rb_tree_rotate_right(_Rb_tree_node_base* const __x, > _Rb_tree_node_base*& __root); > > void > _Rb_tree_insert_and_rebalance(const bool __insert_left, > _Rb_tree_node_base* __x, > _Rb_tree_node_base* __p, > _Rb_tree_node_base& __header); > > _Rb_tree_node_base* > _Rb_tree_rebalance_for_erase(_Rb_tree_node_base* const __z, > _Rb_tree_node_base& __header); > > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc = allocator<_Val> > > class _Rb_tree > { > typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other > _Node_allocator; > > protected: > typedef _Rb_tree_node_base* _Base_ptr; > typedef const _Rb_tree_node_base* _Const_Base_ptr; > typedef _Rb_tree_node<_Val> _Rb_tree_node; > > public: > typedef _Key key_type; > typedef _Val value_type; > typedef value_type* pointer; > typedef const value_type* const_pointer; > typedef value_type& reference; > typedef const value_type& const_reference; > typedef _Rb_tree_node* _Link_type; > typedef const _Rb_tree_node* _Const_Link_type; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Alloc allocator_type; > > allocator_type > get_allocator() const > { return *static_cast<const _Node_allocator*>(&this->_M_impl); } > > protected: > _Rb_tree_node* > _M_get_node() > { return _M_impl._Node_allocator::allocate(1); } > > void > _M_put_node(_Rb_tree_node* __p) > { _M_impl._Node_allocator::deallocate(__p, 1); } > > _Link_type > _M_create_node(const value_type& __x) > { > _Link_type __tmp = _M_get_node(); > try > { get_allocator().construct(&__tmp->_M_value_field, __x); } > catch(...) > { > _M_put_node(__tmp); > throw; > } > return __tmp; > } > > _Link_type > _M_clone_node(_Const_Link_type __x) > { > _Link_type __tmp = _M_create_node(__x->_M_value_field); > __tmp->_M_color = __x->_M_color; > __tmp->_M_left = 0; > __tmp->_M_right = 0; > return __tmp; > } > > void > destroy_node(_Link_type __p) > { > get_allocator().destroy(&__p->_M_value_field); > _M_put_node(__p); > } > > protected: > template<typename _Key_compare, > bool _Is_pod_comparator = std::__is_pod<_Key_compare>::__value> > struct _Rb_tree_impl : public _Node_allocator > { > _Key_compare _M_key_compare; > _Rb_tree_node_base _M_header; > size_type _M_node_count; > > _Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(), > const _Key_compare& __comp = _Key_compare()) > : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), > _M_node_count(0) > { > this->_M_header._M_color = _S_red; > this->_M_header._M_parent = 0; > this->_M_header._M_left = &this->_M_header; > this->_M_header._M_right = &this->_M_header; > } > }; > > > > template<typename _Key_compare> > struct _Rb_tree_impl<_Key_compare, true> : public _Node_allocator > { > _Key_compare _M_key_compare; > _Rb_tree_node_base _M_header; > size_type _M_node_count; > > _Rb_tree_impl(const _Node_allocator& __a = _Node_allocator(), > const _Key_compare& __comp = _Key_compare()) > : _Node_allocator(__a), _M_key_compare(__comp), _M_header(), > _M_node_count(0) > { > this->_M_header._M_color = _S_red; > this->_M_header._M_parent = 0; > this->_M_header._M_left = &this->_M_header; > this->_M_header._M_right = &this->_M_header; > } > }; > > _Rb_tree_impl<_Compare> _M_impl; > > protected: > _Base_ptr& > _M_root() > { return this->_M_impl._M_header._M_parent; } > > _Const_Base_ptr > _M_root() const > { return this->_M_impl._M_header._M_parent; } > > _Base_ptr& > _M_leftmost() > { return this->_M_impl._M_header._M_left; } > > _Const_Base_ptr > _M_leftmost() const > { return this->_M_impl._M_header._M_left; } > > _Base_ptr& > _M_rightmost() > { return this->_M_impl._M_header._M_right; } > > _Const_Base_ptr > _M_rightmost() const > { return this->_M_impl._M_header._M_right; } > > _Link_type > _M_begin() > { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent); } > > _Const_Link_type > _M_begin() const > { > return static_cast<_Const_Link_type> > (this->_M_impl._M_header._M_parent); > } > > _Link_type > _M_end() > { return static_cast<_Link_type>(&this->_M_impl._M_header); } > > _Const_Link_type > _M_end() const > { return static_cast<_Const_Link_type>(&this->_M_impl._M_header); } > > static const_reference > _S_value(_Const_Link_type __x) > { return __x->_M_value_field; } > > static const _Key& > _S_key(_Const_Link_type __x) > { return _KeyOfValue()(_S_value(__x)); } > > static _Link_type > _S_left(_Base_ptr __x) > { return static_cast<_Link_type>(__x->_M_left); } > > static _Const_Link_type > _S_left(_Const_Base_ptr __x) > { return static_cast<_Const_Link_type>(__x->_M_left); } > > static _Link_type > _S_right(_Base_ptr __x) > { return static_cast<_Link_type>(__x->_M_right); } > > static _Const_Link_type > _S_right(_Const_Base_ptr __x) > { return static_cast<_Const_Link_type>(__x->_M_right); } > > static const_reference > _S_value(_Const_Base_ptr __x) > { return static_cast<_Const_Link_type>(__x)->_M_value_field; } > > static const _Key& > _S_key(_Const_Base_ptr __x) > { return _KeyOfValue()(_S_value(__x)); } > > static _Base_ptr > _S_minimum(_Base_ptr __x) > { return _Rb_tree_node_base::_S_minimum(__x); } > > static _Const_Base_ptr > _S_minimum(_Const_Base_ptr __x) > { return _Rb_tree_node_base::_S_minimum(__x); } > > static _Base_ptr > _S_maximum(_Base_ptr __x) > { return _Rb_tree_node_base::_S_maximum(__x); } > > static _Const_Base_ptr > _S_maximum(_Const_Base_ptr __x) > { return _Rb_tree_node_base::_S_maximum(__x); } > > public: > typedef _Rb_tree_iterator<value_type> iterator; > typedef _Rb_tree_const_iterator<value_type> const_iterator; > > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > > private: > iterator > _M_insert(_Base_ptr __x, _Base_ptr __y, const value_type& __v); > > const_iterator > _M_insert(_Const_Base_ptr __x, _Const_Base_ptr __y, > const value_type& __v); > > _Link_type > _M_copy(_Const_Link_type __x, _Link_type __p); > > void > _M_erase(_Link_type __x); > > public: > > _Rb_tree() > { } > > _Rb_tree(const _Compare& __comp) > : _M_impl(allocator_type(), __comp) > { } > > _Rb_tree(const _Compare& __comp, const allocator_type& __a) > : _M_impl(__a, __comp) > { } > > _Rb_tree(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x) > : _M_impl(__x.get_allocator(), __x._M_impl._M_key_compare) > { > if (__x._M_root() != 0) > { > _M_root() = _M_copy(__x._M_begin(), _M_end()); > _M_leftmost() = _S_minimum(_M_root()); > _M_rightmost() = _S_maximum(_M_root()); > _M_impl._M_node_count = __x._M_impl._M_node_count; > } > } > > ~_Rb_tree() > { _M_erase(_M_begin()); } > > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& > operator=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x); > > > _Compare > key_comp() const > { return _M_impl._M_key_compare; } > > iterator > begin() > { > return iterator(static_cast<_Link_type> > (this->_M_impl._M_header._M_left)); > } > > const_iterator > begin() const > { > return const_iterator(static_cast<_Const_Link_type> > (this->_M_impl._M_header._M_left)); > } > > iterator > end() > { return iterator(static_cast<_Link_type>(&this->_M_impl._M_header)); } > > const_iterator > end() const > { > return const_iterator(static_cast<_Const_Link_type> > (&this->_M_impl._M_header)); > } > > reverse_iterator > rbegin() > { return reverse_iterator(end()); } > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(end()); } > > reverse_iterator > rend() > { return reverse_iterator(begin()); } > > const_reverse_iterator > rend() const > { return const_reverse_iterator(begin()); } > > bool > empty() const > { return _M_impl._M_node_count == 0; } > > size_type > size() const > { return _M_impl._M_node_count; } > > size_type > max_size() const > { return size_type(-1); } > > void > swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t); > > > pair<iterator,bool> > insert_unique(const value_type& __x); > > iterator > insert_equal(const value_type& __x); > > iterator > insert_unique(iterator __position, const value_type& __x); > > const_iterator > insert_unique(const_iterator __position, const value_type& __x); > > iterator > insert_equal(iterator __position, const value_type& __x); > > const_iterator > insert_equal(const_iterator __position, const value_type& __x); > > template<typename _InputIterator> > void > insert_unique(_InputIterator __first, _InputIterator __last); > > template<typename _InputIterator> > void > insert_equal(_InputIterator __first, _InputIterator __last); > > void > erase(iterator __position); > > void > erase(const_iterator __position); > > size_type > erase(const key_type& __x); > > void > erase(iterator __first, iterator __last); > > void > erase(const_iterator __first, const_iterator __last); > > void > erase(const key_type* __first, const key_type* __last); > > void > clear() > { > _M_erase(_M_begin()); > _M_leftmost() = _M_end(); > _M_root() = 0; > _M_rightmost() = _M_end(); > _M_impl._M_node_count = 0; > } > > > iterator > find(const key_type& __x); > > const_iterator > find(const key_type& __x) const; > > size_type > count(const key_type& __x) const; > > iterator > lower_bound(const key_type& __x); > > const_iterator > lower_bound(const key_type& __x) const; > > iterator > upper_bound(const key_type& __x); > > const_iterator > upper_bound(const key_type& __x) const; > > pair<iterator,iterator> > equal_range(const key_type& __x); > > pair<const_iterator, const_iterator> > equal_range(const key_type& __x) const; > > > bool > __rb_verify() const; > }; > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator==(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { > return __x.size() == __y.size() > && std::equal(__x.begin(), __x.end(), __y.begin()); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator<(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { > return std::lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator!=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { return !(__x == __y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator>(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { return __y < __x; } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator<=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { return !(__y < __x); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline bool > operator>=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { return !(__x < __y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x, > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __y) > { __x.swap(__y); } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > operator=(const _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __x) > { > if (this != &__x) > { > > clear(); > _M_impl._M_key_compare = __x._M_impl._M_key_compare; > if (__x._M_root() != 0) > { > _M_root() = _M_copy(__x._M_begin(), _M_end()); > _M_leftmost() = _S_minimum(_M_root()); > _M_rightmost() = _S_maximum(_M_root()); > _M_impl._M_node_count = __x._M_impl._M_node_count; > } > } > return *this; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > _M_insert(_Base_ptr __x, _Base_ptr __p, const _Val& __v) > { > bool __insert_left = (__x != 0 || __p == _M_end() > || _M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key(__p))); > > _Link_type __z = _M_create_node(__v); > > _Rb_tree_insert_and_rebalance(__insert_left, __z, __p, > this->_M_impl._M_header); > ++_M_impl._M_node_count; > return iterator(__z); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > _M_insert(_Const_Base_ptr __x, _Const_Base_ptr __p, const _Val& __v) > { > bool __insert_left = (__x != 0 || __p == _M_end() > || _M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key(__p))); > > _Link_type __z = _M_create_node(__v); > > _Rb_tree_insert_and_rebalance(__insert_left, __z, > const_cast<_Base_ptr>(__p), > this->_M_impl._M_header); > ++_M_impl._M_node_count; > return const_iterator(__z); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_equal(const _Val& __v) > { > _Link_type __x = _M_begin(); > _Link_type __y = _M_end(); > while (__x != 0) > { > __y = __x; > __x = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)) ? > _S_left(__x) : _S_right(__x); > } > return _M_insert(__x, __y, __v); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > swap(_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>& __t) > { > if (_M_root() == 0) > { > if (__t._M_root() != 0) > { > _M_root() = __t._M_root(); > _M_leftmost() = __t._M_leftmost(); > _M_rightmost() = __t._M_rightmost(); > _M_root()->_M_parent = _M_end(); > > __t._M_root() = 0; > __t._M_leftmost() = __t._M_end(); > __t._M_rightmost() = __t._M_end(); > } > } > else if (__t._M_root() == 0) > { > __t._M_root() = _M_root(); > __t._M_leftmost() = _M_leftmost(); > __t._M_rightmost() = _M_rightmost(); > __t._M_root()->_M_parent = __t._M_end(); > > _M_root() = 0; > _M_leftmost() = _M_end(); > _M_rightmost() = _M_end(); > } > else > { > std::swap(_M_root(),__t._M_root()); > std::swap(_M_leftmost(),__t._M_leftmost()); > std::swap(_M_rightmost(),__t._M_rightmost()); > > _M_root()->_M_parent = _M_end(); > __t._M_root()->_M_parent = __t._M_end(); > } > > std::swap(this->_M_impl._M_node_count, __t._M_impl._M_node_count); > std::swap(this->_M_impl._M_key_compare, __t._M_impl._M_key_compare); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > pair<typename _Rb_tree<_Key, _Val, _KeyOfValue, > _Compare, _Alloc>::iterator, bool> > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_unique(const _Val& __v) > { > _Link_type __x = _M_begin(); > _Link_type __y = _M_end(); > bool __comp = true; > while (__x != 0) > { > __y = __x; > __comp = _M_impl._M_key_compare(_KeyOfValue()(__v), _S_key(__x)); > __x = __comp ? _S_left(__x) : _S_right(__x); > } > iterator __j = iterator(__y); > if (__comp) > if (__j == begin()) > return pair<iterator,bool>(_M_insert(__x, __y, __v), true); > else > --__j; > if (_M_impl._M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__v))) > return pair<iterator, bool>(_M_insert(__x, __y, __v), true); > return pair<iterator, bool>(__j, false); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_unique(iterator __position, const _Val& __v) > { > > if (__position._M_node == _M_end()) > { > if (size() > 0 > && _M_impl._M_key_compare(_S_key(_M_rightmost()), > _KeyOfValue()(__v))) > return _M_insert(0, _M_rightmost(), __v); > else > return insert_unique(__v).first; > } > else if (_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key(__position._M_node))) > { > > iterator __before = __position; > if (__position._M_node == _M_leftmost()) > return _M_insert(_M_leftmost(), _M_leftmost(), __v); > else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), > _KeyOfValue()(__v))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, > __position._M_node, __v); > } > else > return insert_unique(__v).first; > } > else if (_M_impl._M_key_compare(_S_key(__position._M_node), > _KeyOfValue()(__v))) > { > > iterator __after = __position; > if (__position._M_node == _M_rightmost()) > return _M_insert(0, _M_rightmost(), __v); > else if (_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key((++__after)._M_node))) > { > if (_S_right(__position._M_node) == 0) > return _M_insert(0, __position._M_node, __v); > else > return _M_insert(__after._M_node, __after._M_node, __v); > } > else > return insert_unique(__v).first; > } > else > return __position; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_unique(const_iterator __position, const _Val& __v) > { > > if (__position._M_node == _M_end()) > { > if (size() > 0 > && _M_impl._M_key_compare(_S_key(_M_rightmost()), > _KeyOfValue()(__v))) > return _M_insert(0, _M_rightmost(), __v); > else > return const_iterator(insert_unique(__v).first); > } > else if (_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key(__position._M_node))) > { > > const_iterator __before = __position; > if (__position._M_node == _M_leftmost()) > return _M_insert(_M_leftmost(), _M_leftmost(), __v); > else if (_M_impl._M_key_compare(_S_key((--__before)._M_node), > _KeyOfValue()(__v))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, > __position._M_node, __v); > } > else > return const_iterator(insert_unique(__v).first); > } > else if (_M_impl._M_key_compare(_S_key(__position._M_node), > _KeyOfValue()(__v))) > { > > const_iterator __after = __position; > if (__position._M_node == _M_rightmost()) > return _M_insert(0, _M_rightmost(), __v); > else if (_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key((++__after)._M_node))) > { > if (_S_right(__position._M_node) == 0) > return _M_insert(0, __position._M_node, __v); > else > return _M_insert(__after._M_node, __after._M_node, __v); > } > else > return const_iterator(insert_unique(__v).first); > } > else > return __position; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_equal(iterator __position, const _Val& __v) > { > > if (__position._M_node == _M_end()) > { > if (size() > 0 > && !_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key(_M_rightmost()))) > return _M_insert(0, _M_rightmost(), __v); > else > return insert_equal(__v); > } > else if (!_M_impl._M_key_compare(_S_key(__position._M_node), > _KeyOfValue()(__v))) > { > > iterator __before = __position; > if (__position._M_node == _M_leftmost()) > return _M_insert(_M_leftmost(), _M_leftmost(), __v); > else if (!_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key((--__before)._M_node))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, > __position._M_node, __v); > } > else > return insert_equal(__v); > } > else > { > > iterator __after = __position; > if (__position._M_node == _M_rightmost()) > return _M_insert(0, _M_rightmost(), __v); > else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), > _KeyOfValue()(__v))) > { > if (_S_right(__position._M_node) == 0) > return _M_insert(0, __position._M_node, __v); > else > return _M_insert(__after._M_node, __after._M_node, __v); > } > else > return insert_equal(__v); > } > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > insert_equal(const_iterator __position, const _Val& __v) > { > > if (__position._M_node == _M_end()) > { > if (size() > 0 > && !_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key(_M_rightmost()))) > return _M_insert(0, _M_rightmost(), __v); > else > return const_iterator(insert_equal(__v)); > } > else if (!_M_impl._M_key_compare(_S_key(__position._M_node), > _KeyOfValue()(__v))) > { > > const_iterator __before = __position; > if (__position._M_node == _M_leftmost()) > return _M_insert(_M_leftmost(), _M_leftmost(), __v); > else if (!_M_impl._M_key_compare(_KeyOfValue()(__v), > _S_key((--__before)._M_node))) > { > if (_S_right(__before._M_node) == 0) > return _M_insert(0, __before._M_node, __v); > else > return _M_insert(__position._M_node, > __position._M_node, __v); > } > else > return const_iterator(insert_equal(__v)); > } > else > { > > const_iterator __after = __position; > if (__position._M_node == _M_rightmost()) > return _M_insert(0, _M_rightmost(), __v); > else if (!_M_impl._M_key_compare(_S_key((++__after)._M_node), > _KeyOfValue()(__v))) > { > if (_S_right(__position._M_node) == 0) > return _M_insert(0, __position._M_node, __v); > else > return _M_insert(__after._M_node, __after._M_node, __v); > } > else > return const_iterator(insert_equal(__v)); > } > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Cmp, typename _Alloc> > template<class _II> > void > _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: > insert_equal(_II __first, _II __last) > { > for (; __first != __last; ++__first) > insert_equal(end(), *__first); > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Cmp, typename _Alloc> > template<class _II> > void > _Rb_tree<_Key, _Val, _KoV, _Cmp, _Alloc>:: > insert_unique(_II __first, _II __last) > { > for (; __first != __last; ++__first) > insert_unique(end(), *__first); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > erase(iterator __position) > { > _Link_type __y = > static_cast<_Link_type>(_Rb_tree_rebalance_for_erase > (__position._M_node, > this->_M_impl._M_header)); > destroy_node(__y); > --_M_impl._M_node_count; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > erase(const_iterator __position) > { > _Link_type __y = > static_cast<_Link_type>(_Rb_tree_rebalance_for_erase > (const_cast<_Base_ptr>(__position._M_node), > this->_M_impl._M_header)); > destroy_node(__y); > --_M_impl._M_node_count; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > erase(const _Key& __x) > { > pair<iterator,iterator> __p = equal_range(__x); > size_type __n = std::distance(__p.first, __p.second); > erase(__p.first, __p.second); > return __n; > } > > template<typename _Key, typename _Val, typename _KoV, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::_Link_type > _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: > _M_copy(_Const_Link_type __x, _Link_type __p) > { > > _Link_type __top = _M_clone_node(__x); > __top->_M_parent = __p; > > try > { > if (__x->_M_right) > __top->_M_right = _M_copy(_S_right(__x), __top); > __p = __top; > __x = _S_left(__x); > > while (__x != 0) > { > _Link_type __y = _M_clone_node(__x); > __p->_M_left = __y; > __y->_M_parent = __p; > if (__x->_M_right) > __y->_M_right = _M_copy(_S_right(__x), __y); > __p = __y; > __x = _S_left(__x); > } > } > catch(...) > { > _M_erase(__top); > throw; > } > return __top; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > _M_erase(_Link_type __x) > { > > while (__x != 0) > { > _M_erase(_S_right(__x)); > _Link_type __y = _S_left(__x); > destroy_node(__x); > __x = __y; > } > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > erase(iterator __first, iterator __last) > { > if (__first == begin() && __last == end()) > clear(); > else > while (__first != __last) > erase(__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > erase(const_iterator __first, const_iterator __last) > { > if (__first == begin() && __last == end()) > clear(); > else > while (__first != __last) > erase(__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > void > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > erase(const _Key* __first, const _Key* __last) > { > while (__first != __last) > erase(*__first++); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > find(const _Key& __k) > { > _Link_type __x = _M_begin(); > _Link_type __y = _M_end(); > > while (__x != 0) > if (!_M_impl._M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > iterator __j = iterator(__y); > return (__j == end() > || _M_impl._M_key_compare(__k, > _S_key(__j._M_node))) ? end() : __j; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > find(const _Key& __k) const > { > _Const_Link_type __x = _M_begin(); > _Const_Link_type __y = _M_end(); > > while (__x != 0) > { > if (!_M_impl._M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > } > const_iterator __j = const_iterator(__y); > return (__j == end() > || _M_impl._M_key_compare(__k, > _S_key(__j._M_node))) ? end() : __j; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::size_type > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > count(const _Key& __k) const > { > pair<const_iterator, const_iterator> __p = equal_range(__k); > const size_type __n = std::distance(__p.first, __p.second); > return __n; > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > lower_bound(const _Key& __k) > { > _Link_type __x = _M_begin(); > _Link_type __y = _M_end(); > > while (__x != 0) > if (!_M_impl._M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > lower_bound(const _Key& __k) const > { > _Const_Link_type __x = _M_begin(); > _Const_Link_type __y = _M_end(); > > while (__x != 0) > if (!_M_impl._M_key_compare(_S_key(__x), __k)) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return const_iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > upper_bound(const _Key& __k) > { > _Link_type __x = _M_begin(); > _Link_type __y = _M_end(); > > while (__x != 0) > if (_M_impl._M_key_compare(__k, _S_key(__x))) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > upper_bound(const _Key& __k) const > { > _Const_Link_type __x = _M_begin(); > _Const_Link_type __y = _M_end(); > > while (__x != 0) > if (_M_impl._M_key_compare(__k, _S_key(__x))) > __y = __x, __x = _S_left(__x); > else > __x = _S_right(__x); > > return const_iterator(__y); > } > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > inline > pair<typename _Rb_tree<_Key, _Val, _KeyOfValue, > _Compare, _Alloc>::iterator, > typename _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator> > _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: > equal_range(const _Key& __k) > { return pair<iterator, iterator>(lower_bound(__k), upper_bound(__k)); } > > template<typename _Key, typename _Val, typename _KoV, > typename _Compare, typename _Alloc> > inline > pair<typename _Rb_tree<_Key, _Val, _KoV, > _Compare, _Alloc>::const_iterator, > typename _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>::const_iterator> > _Rb_tree<_Key, _Val, _KoV, _Compare, _Alloc>:: > equal_range(const _Key& __k) const > { return pair<const_iterator, const_iterator>(lower_bound(__k), > upper_bound(__k)); } > > unsigned int > _Rb_tree_black_count(const _Rb_tree_node_base* __node, > const _Rb_tree_node_base* __root); > > template<typename _Key, typename _Val, typename _KeyOfValue, > typename _Compare, typename _Alloc> > bool > _Rb_tree<_Key,_Val,_KeyOfValue,_Compare,_Alloc>::__rb_verify() const > { > if (_M_impl._M_node_count == 0 || begin() == end()) > return _M_impl._M_node_count == 0 && begin() == end() > && this->_M_impl._M_header._M_left == _M_end() > && this->_M_impl._M_header._M_right == _M_end(); > > unsigned int __len = _Rb_tree_black_count(_M_leftmost(), _M_root()); > for (const_iterator __it = begin(); __it != end(); ++__it) > { > _Const_Link_type __x = static_cast<_Const_Link_type>(__it._M_node); > _Const_Link_type __L = _S_left(__x); > _Const_Link_type __R = _S_right(__x); > > if (__x->_M_color == _S_red) > if ((__L && __L->_M_color == _S_red) > || (__R && __R->_M_color == _S_red)) > return false; > > if (__L && _M_impl._M_key_compare(_S_key(__x), _S_key(__L))) > return false; > if (__R && _M_impl._M_key_compare(_S_key(__R), _S_key(__x))) > return false; > > if (!__L && !__R && _Rb_tree_black_count(__x, _M_root()) != __len) > return false; > } > > if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) > return false; > if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) > return false; > return true; > } >} ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/map" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 1 3 ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 >namespace std >{ ># 90 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>, > typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > > > class map > { > public: > typedef _Key key_type; > typedef _Tp mapped_type; > typedef std::pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > typedef _Alloc allocator_type; > > private: > > typedef typename _Alloc::value_type _Alloc_value_type; > > > > > > public: > class value_compare > : public std::binary_function<value_type, value_type, bool> > { > friend class map<_Key, _Tp, _Compare, _Alloc>; > protected: > _Compare comp; > > value_compare(_Compare __c) > : comp(__c) { } > > public: > bool operator()(const value_type& __x, const value_type& __y) const > { return comp(__x.first, __y.first); } > }; > > private: > > typedef typename _Alloc::template rebind<value_type>::other > _Pair_alloc_type; > > typedef _Rb_tree<key_type, value_type, _Select1st<value_type>, > key_compare, _Pair_alloc_type> _Rep_type; > > > _Rep_type _M_t; > > public: > > > typedef typename _Pair_alloc_type::pointer pointer; > typedef typename _Pair_alloc_type::const_pointer const_pointer; > typedef typename _Pair_alloc_type::reference reference; > typedef typename _Pair_alloc_type::const_reference const_reference; > typedef typename _Rep_type::iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > > > > > > > > map() > : _M_t(_Compare(), allocator_type()) { } > > > > > > explicit > map(const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { } ># 174 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > map(const map& __x) > : _M_t(__x._M_t) { } ># 186 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > template <typename _InputIterator> > map(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_unique(__first, __last); } ># 202 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > template <typename _InputIterator> > map(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) > { _M_t.insert_unique(__first, __last); } ># 224 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > map& > operator=(const map& __x) > { > _M_t = __x._M_t; > return *this; > } > > > allocator_type > get_allocator() const > { return _M_t.get_allocator(); } > > > > > > > > iterator > begin() > { return _M_t.begin(); } > > > > > > > const_iterator > begin() const > { return _M_t.begin(); } > > > > > > iterator > end() > { return _M_t.end(); } > > > > > > > const_iterator > end() const > { return _M_t.end(); } > > > > > > > reverse_iterator > rbegin() > { return _M_t.rbegin(); } > > > > > > > const_reverse_iterator > rbegin() const > { return _M_t.rbegin(); } > > > > > > > reverse_iterator > rend() > { return _M_t.rend(); } > > > > > > > const_reverse_iterator > rend() const > { return _M_t.rend(); } > > > > > > bool > empty() const > { return _M_t.empty(); } > > > size_type > size() const > { return _M_t.size(); } > > > size_type > max_size() const > { return _M_t.max_size(); } ># 339 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > mapped_type& > operator[](const key_type& __k) > { > > > > iterator __i = lower_bound(__k); > > if (__i == end() || key_comp()(__k, (*__i).first)) > __i = insert(__i, value_type(__k, mapped_type())); > return (*__i).second; > } ># 361 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > mapped_type& > at(const key_type& __k) > { > iterator __i = lower_bound(__k); > if (__i == end() || key_comp()(__k, (*__i).first)) > __throw_out_of_range(("map::at")); > return (*__i).second; > } > > const mapped_type& > at(const key_type& __k) const > { > const_iterator __i = lower_bound(__k); > if (__i == end() || key_comp()(__k, (*__i).first)) > __throw_out_of_range(("map::at")); > return (*__i).second; > } ># 394 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > std::pair<iterator,bool> > insert(const value_type& __x) > { return _M_t.insert_unique(__x); } ># 418 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > iterator > insert(iterator position, const value_type& __x) > { return _M_t.insert_unique(position, __x); } ># 430 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > template <typename _InputIterator> > void > insert(_InputIterator __first, _InputIterator __last) > { _M_t.insert_unique(__first, __last); } ># 444 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > void > erase(iterator __position) > { _M_t.erase(__position); } ># 459 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > size_type > erase(const key_type& __x) > { return _M_t.erase(__x); } ># 474 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > void > erase(iterator __first, iterator __last) > { _M_t.erase(__first, __last); } ># 489 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > void > swap(map& __x) > { _M_t.swap(__x._M_t); } > > > > > > > > void > clear() > { _M_t.clear(); } > > > > > > > key_compare > key_comp() const > { return _M_t.key_comp(); } > > > > > > value_compare > value_comp() const > { return value_compare(_M_t.key_comp()); } ># 532 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > iterator > find(const key_type& __x) > { return _M_t.find(__x); } ># 547 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > const_iterator > find(const key_type& __x) const > { return _M_t.find(__x); } ># 559 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > size_type > count(const key_type& __x) const > { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } ># 574 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > iterator > lower_bound(const key_type& __x) > { return _M_t.lower_bound(__x); } ># 589 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > const_iterator > lower_bound(const key_type& __x) const > { return _M_t.lower_bound(__x); } > > > > > > > > iterator > upper_bound(const key_type& __x) > { return _M_t.upper_bound(__x); } > > > > > > > > const_iterator > upper_bound(const key_type& __x) const > { return _M_t.upper_bound(__x); } ># 628 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > std::pair<iterator, iterator> > equal_range(const key_type& __x) > { return _M_t.equal_range(__x); } ># 647 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > std::pair<const_iterator, const_iterator> > equal_range(const key_type& __x) const > { return _M_t.equal_range(__x); } > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool > operator== (const map<_K1, _T1, _C1, _A1>&, > const map<_K1, _T1, _C1, _A1>&); > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool > operator< (const map<_K1, _T1, _C1, _A1>&, > const map<_K1, _T1, _C1, _A1>&); > }; ># 672 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const map<_Key, _Tp, _Compare, _Alloc>& __x, > const map<_Key, _Tp, _Compare, _Alloc>& __y) > { return __x._M_t == __y._M_t; } ># 689 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_map.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const map<_Key, _Tp, _Compare, _Alloc>& __x, > const map<_Key, _Tp, _Compare, _Alloc>& __y) > { return __x._M_t < __y._M_t; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator!=(const map<_Key, _Tp, _Compare, _Alloc>& __x, > const map<_Key, _Tp, _Compare, _Alloc>& __y) > { return !(__x == __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>(const map<_Key, _Tp, _Compare, _Alloc>& __x, > const map<_Key, _Tp, _Compare, _Alloc>& __y) > { return __y < __x; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<=(const map<_Key, _Tp, _Compare, _Alloc>& __x, > const map<_Key, _Tp, _Compare, _Alloc>& __y) > { return !(__y < __x); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>=(const map<_Key, _Tp, _Compare, _Alloc>& __x, > const map<_Key, _Tp, _Compare, _Alloc>& __y) > { return !(__x < __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline void > swap(map<_Key, _Tp, _Compare, _Alloc>& __x, > map<_Key, _Tp, _Compare, _Alloc>& __y) > { __x.swap(__y); } >} ># 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/map" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 1 3 ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 >namespace std >{ > > > template <typename _Key, typename _Tp, > typename _Compare = std::less<_Key>, > typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > > > class multimap; > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y); > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y); ># 106 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > class multimap > { > public: > typedef _Key key_type; > typedef _Tp mapped_type; > typedef std::pair<const _Key, _Tp> value_type; > typedef _Compare key_compare; > typedef _Alloc allocator_type; > > private: > > typedef typename _Alloc::value_type _Alloc_value_type; > > > > > > public: > class value_compare > : public std::binary_function<value_type, value_type, bool> > { > friend class multimap<_Key, _Tp, _Compare, _Alloc>; > protected: > _Compare comp; > > value_compare(_Compare __c) > : comp(__c) { } > > public: > bool operator()(const value_type& __x, const value_type& __y) const > { return comp(__x.first, __y.first); } > }; > > private: > > typedef typename _Alloc::template rebind<value_type>::other > _Pair_alloc_type; > > typedef _Rb_tree<key_type, value_type, _Select1st<value_type>, > key_compare, _Pair_alloc_type> _Rep_type; > > _Rep_type _M_t; > > public: > > > typedef typename _Pair_alloc_type::pointer pointer; > typedef typename _Pair_alloc_type::const_pointer const_pointer; > typedef typename _Pair_alloc_type::reference reference; > typedef typename _Pair_alloc_type::const_reference const_reference; > typedef typename _Rep_type::iterator iterator; > typedef typename _Rep_type::const_iterator const_iterator; > typedef typename _Rep_type::size_type size_type; > typedef typename _Rep_type::difference_type difference_type; > typedef typename _Rep_type::reverse_iterator reverse_iterator; > typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; > > > > > > > multimap() > : _M_t(_Compare(), allocator_type()) { } > > > > > > explicit > multimap(const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) { } ># 188 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > multimap(const multimap& __x) > : _M_t(__x._M_t) { } ># 200 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > template <typename _InputIterator> > multimap(_InputIterator __first, _InputIterator __last) > : _M_t(_Compare(), allocator_type()) > { _M_t.insert_equal(__first, __last); } ># 216 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > template <typename _InputIterator> > multimap(_InputIterator __first, _InputIterator __last, > const _Compare& __comp, > const allocator_type& __a = allocator_type()) > : _M_t(__comp, __a) > { _M_t.insert_equal(__first, __last); } ># 239 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > multimap& > operator=(const multimap& __x) > { > _M_t = __x._M_t; > return *this; > } > > > allocator_type > get_allocator() const > { return _M_t.get_allocator(); } > > > > > > > > iterator > begin() > { return _M_t.begin(); } > > > > > > > const_iterator > begin() const > { return _M_t.begin(); } > > > > > > > iterator > end() > { return _M_t.end(); } > > > > > > > const_iterator > end() const > { return _M_t.end(); } > > > > > > > reverse_iterator > rbegin() > { return _M_t.rbegin(); } > > > > > > > const_reverse_iterator > rbegin() const > { return _M_t.rbegin(); } > > > > > > > reverse_iterator > rend() > { return _M_t.rend(); } > > > > > > > const_reverse_iterator > rend() const > { return _M_t.rend(); } > > > > bool > empty() const > { return _M_t.empty(); } > > > size_type > size() const > { return _M_t.size(); } > > > size_type > max_size() const > { return _M_t.max_size(); } ># 353 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > iterator > insert(const value_type& __x) > { return _M_t.insert_equal(__x); } ># 377 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > iterator > insert(iterator __position, const value_type& __x) > { return _M_t.insert_equal(__position, __x); } ># 389 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > template <typename _InputIterator> > void > insert(_InputIterator __first, _InputIterator __last) > { _M_t.insert_equal(__first, __last); } ># 404 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > void > erase(iterator __position) > { _M_t.erase(__position); } ># 419 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > size_type > erase(const key_type& __x) > { return _M_t.erase(__x); } ># 434 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > void > erase(iterator __first, iterator __last) > { _M_t.erase(__first, __last); } ># 449 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > void > swap(multimap& __x) > { _M_t.swap(__x._M_t); } > > > > > > > > void > clear() > { _M_t.clear(); } > > > > > > > key_compare > key_comp() const > { return _M_t.key_comp(); } > > > > > > value_compare > value_comp() const > { return value_compare(_M_t.key_comp()); } ># 492 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > iterator > find(const key_type& __x) > { return _M_t.find(__x); } ># 507 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > const_iterator > find(const key_type& __x) const > { return _M_t.find(__x); } > > > > > > > size_type > count(const key_type& __x) const > { return _M_t.count(__x); } ># 531 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > iterator > lower_bound(const key_type& __x) > { return _M_t.lower_bound(__x); } ># 546 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > const_iterator > lower_bound(const key_type& __x) const > { return _M_t.lower_bound(__x); } > > > > > > > > iterator > upper_bound(const key_type& __x) > { return _M_t.upper_bound(__x); } > > > > > > > > const_iterator > upper_bound(const key_type& __x) const > { return _M_t.upper_bound(__x); } ># 583 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > std::pair<iterator, iterator> > equal_range(const key_type& __x) > { return _M_t.equal_range(__x); } ># 600 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > std::pair<const_iterator, const_iterator> > equal_range(const key_type& __x) const > { return _M_t.equal_range(__x); } > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool > operator== (const multimap<_K1, _T1, _C1, _A1>&, > const multimap<_K1, _T1, _C1, _A1>&); > > template <typename _K1, typename _T1, typename _C1, typename _A1> > friend bool > operator< (const multimap<_K1, _T1, _C1, _A1>&, > const multimap<_K1, _T1, _C1, _A1>&); > }; ># 625 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator==(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { return __x._M_t == __y._M_t; } ># 642 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_multimap.h" 3 > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { return __x._M_t < __y._M_t; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator!=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { return !(__x == __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { return __y < __x; } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator<=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { return !(__y < __x); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline bool > operator>=(const multimap<_Key, _Tp, _Compare, _Alloc>& __x, > const multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { return !(__x < __y); } > > > template <typename _Key, typename _Tp, typename _Compare, typename _Alloc> > inline void > swap(multimap<_Key, _Tp, _Compare, _Alloc>& __x, > multimap<_Key, _Tp, _Compare, _Alloc>& __y) > { __x.swap(__y); } >} ># 69 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/map" 2 3 > > > > > >#pragma GCC visibility pop ># 41 "panelfront.h" 2 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 1 3 ># 42 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 3 > ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 3 >#pragma GCC visibility push(default) > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 1 3 ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3 > ># 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3 > > > > > >namespace __gnu_cxx >{ ># 61 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3 > template <class _CharT> > struct _Char_types > { > typedef unsigned long int_type; > typedef std::streampos pos_type; > typedef std::streamoff off_type; > typedef std::mbstate_t state_type; > }; ># 86 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3 > template<typename _CharT> > struct char_traits > { > typedef _CharT char_type; > typedef typename _Char_types<_CharT>::int_type int_type; > typedef typename _Char_types<_CharT>::pos_type pos_type; > typedef typename _Char_types<_CharT>::off_type off_type; > typedef typename _Char_types<_CharT>::state_type state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, std::size_t __n); > > static std::size_t > length(const char_type* __s); > > static const char_type* > find(const char_type* __s, std::size_t __n, const char_type& __a); > > static char_type* > move(char_type* __s1, const char_type* __s2, std::size_t __n); > > static char_type* > copy(char_type* __s1, const char_type* __s2, std::size_t __n); > > static char_type* > assign(char_type* __s, std::size_t __n, char_type __a); > > static char_type > to_char_type(const int_type& __c) > { return static_cast<char_type>(__c); } > > static int_type > to_int_type(const char_type& __c) > { return static_cast<int_type>(__c); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() > { return static_cast<int_type>((-1)); } > > static int_type > not_eof(const int_type& __c) > { return !eq_int_type(__c, eof()) ? __c : to_int_type(char_type()); } > }; > > template<typename _CharT> > int > char_traits<_CharT>:: > compare(const char_type* __s1, const char_type* __s2, std::size_t __n) > { > for (size_t __i = 0; __i < __n; ++__i) > if (lt(__s1[__i], __s2[__i])) > return -1; > else if (lt(__s2[__i], __s1[__i])) > return 1; > return 0; > } > > template<typename _CharT> > std::size_t > char_traits<_CharT>:: > length(const char_type* __p) > { > std::size_t __i = 0; > while (!eq(__p[__i], char_type())) > ++__i; > return __i; > } > > template<typename _CharT> > const typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > find(const char_type* __s, std::size_t __n, const char_type& __a) > { > for (std::size_t __i = 0; __i < __n; ++__i) > if (eq(__s[__i], __a)) > return __s + __i; > return 0; > } > > template<typename _CharT> > typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > move(char_type* __s1, const char_type* __s2, std::size_t __n) > { > return static_cast<_CharT*>(std::memmove(__s1, __s2, > __n * sizeof(char_type))); > } > > template<typename _CharT> > typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > copy(char_type* __s1, const char_type* __s2, std::size_t __n) > { > std::copy(__s2, __s2 + __n, __s1); > return __s1; > } > > template<typename _CharT> > typename char_traits<_CharT>::char_type* > char_traits<_CharT>:: > assign(char_type* __s, std::size_t __n, char_type __a) > { > std::fill_n(__s, __n, __a); > return __s; > } >} > >namespace std >{ ># 224 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/char_traits.h" 3 > template<class _CharT> > struct char_traits : public __gnu_cxx::char_traits<_CharT> > { }; > > > > template<> > struct char_traits<char> > { > typedef char char_type; > typedef int int_type; > typedef streampos pos_type; > typedef streamoff off_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return memcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return strlen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return static_cast<const char_type*>(memchr(__s, __a, __n)); } > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(memmove(__s1, __s2, __n)); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return static_cast<char_type*>(memcpy(__s1, __s2, __n)); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return static_cast<char_type*>(memset(__s, __a, __n)); } > > static char_type > to_char_type(const int_type& __c) > { return static_cast<char_type>(__c); } > > > > static int_type > to_int_type(const char_type& __c) > { return static_cast<int_type>(static_cast<unsigned char>(__c)); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((-1)); } > > static int_type > not_eof(const int_type& __c) > { return (__c == eof()) ? 0 : __c; } > }; > > > > > template<> > struct char_traits<wchar_t> > { > typedef wchar_t char_type; > typedef wint_t int_type; > typedef streamoff off_type; > typedef wstreampos pos_type; > typedef mbstate_t state_type; > > static void > assign(char_type& __c1, const char_type& __c2) > { __c1 = __c2; } > > static bool > eq(const char_type& __c1, const char_type& __c2) > { return __c1 == __c2; } > > static bool > lt(const char_type& __c1, const char_type& __c2) > { return __c1 < __c2; } > > static int > compare(const char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcmp(__s1, __s2, __n); } > > static size_t > length(const char_type* __s) > { return wcslen(__s); } > > static const char_type* > find(const char_type* __s, size_t __n, const char_type& __a) > { return wmemchr(__s, __a, __n); } > > static char_type* > move(char_type* __s1, const char_type* __s2, size_t __n) > { return wmemmove(__s1, __s2, __n); } > > static char_type* > copy(char_type* __s1, const char_type* __s2, size_t __n) > { return wmemcpy(__s1, __s2, __n); } > > static char_type* > assign(char_type* __s, size_t __n, char_type __a) > { return wmemset(__s, __a, __n); } > > static char_type > to_char_type(const int_type& __c) { return char_type(__c); } > > static int_type > to_int_type(const char_type& __c) { return int_type(__c); } > > static bool > eq_int_type(const int_type& __c1, const int_type& __c2) > { return __c1 == __c2; } > > static int_type > eof() { return static_cast<int_type>((0xffffffffu)); } > > static int_type > not_eof(const int_type& __c) > { return eq_int_type(__c, eof()) ? 0 : __c; } > }; > > >} ># 48 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 1 3 ># 51 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > ># 52 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 >#pragma GCC visibility push(default) > > > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_raw_storage_iter.h" 3 >namespace std >{ > > > > > template <class _ForwardIterator, class _Tp> > class raw_storage_iterator > : public iterator<output_iterator_tag, void, void, void, void> > { > protected: > _ForwardIterator _M_iter; > > public: > explicit > raw_storage_iterator(_ForwardIterator __x) > : _M_iter(__x) {} > > raw_storage_iterator& > operator*() { return *this; } > > raw_storage_iterator& > operator=(const _Tp& __element) > { > std::_Construct(&*_M_iter, __element); > return *this; > } > > raw_storage_iterator<_ForwardIterator, _Tp>& > operator++() > { > ++_M_iter; > return *this; > } > > raw_storage_iterator<_ForwardIterator, _Tp> > operator++(int) > { > raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; > ++_M_iter; > return __tmp; > } > }; >} ># 60 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 1 3 ># 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3 > ># 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3 >#pragma GCC visibility push(default) ># 151 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3 >namespace std >{ > > > > > > enum float_round_style > { > round_indeterminate = -1, > round_toward_zero = 0, > round_to_nearest = 1, > round_toward_infinity = 2, > round_toward_neg_infinity = 3 > }; > > > > > > > > enum float_denorm_style > { > > denorm_indeterminate = -1, > > denorm_absent = 0, > > denorm_present = 1 > }; ># 193 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3 > struct __numeric_limits_base > { > > > static const bool is_specialized = false; > > > > > static const int digits = 0; > > static const int digits10 = 0; > > static const bool is_signed = false; > > > > > > static const bool is_integer = false; > > > > > static const bool is_exact = false; > > > static const int radix = 0; > > > > static const int min_exponent = 0; > > > static const int min_exponent10 = 0; > > > > static const int max_exponent = 0; > > > static const int max_exponent10 = 0; > > > static const bool has_infinity = false; > > > static const bool has_quiet_NaN = false; > > > static const bool has_signaling_NaN = false; > > static const float_denorm_style has_denorm = denorm_absent; > > > static const bool has_denorm_loss = false; > > > > static const bool is_iec559 = false; > > > > static const bool is_bounded = false; > > > > > static const bool is_modulo = false; > > > static const bool traps = false; > > static const bool tinyness_before = false; > > > > static const float_round_style round_style = round_toward_zero; > }; ># 286 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/limits" 3 > template<typename _Tp> > struct numeric_limits : public __numeric_limits_base > { > > > static _Tp min() throw() { return static_cast<_Tp>(0); } > > static _Tp max() throw() { return static_cast<_Tp>(0); } > > > static _Tp epsilon() throw() { return static_cast<_Tp>(0); } > > static _Tp round_error() throw() { return static_cast<_Tp>(0); } > > static _Tp infinity() throw() { return static_cast<_Tp>(0); } > > static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); } > > > static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); } > > > > static _Tp denorm_min() throw() { return static_cast<_Tp>(0); } > }; > > > > > > template<> > struct numeric_limits<bool> > { > static const bool is_specialized = true; > > static bool min() throw() > { return false; } > static bool max() throw() > { return true; } > > static const int digits = 1; > static const int digits10 = 0; > static const bool is_signed = false; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static bool epsilon() throw() > { return false; } > static bool round_error() throw() > { return false; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static bool infinity() throw() > { return false; } > static bool quiet_NaN() throw() > { return false; } > static bool signaling_NaN() throw() > { return false; } > static bool denorm_min() throw() > { return false; } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = false; > > > > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<char> > { > static const bool is_specialized = true; > > static char min() throw() > { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); } > static char max() throw() > { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); } > > static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0)); > static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136); > static const bool is_signed = ((char)(-1) < 0); > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static char epsilon() throw() > { return 0; } > static char round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static char infinity() throw() > { return char(); } > static char quiet_NaN() throw() > { return char(); } > static char signaling_NaN() throw() > { return char(); } > static char denorm_min() throw() > { return static_cast<char>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<signed char> > { > static const bool is_specialized = true; > > static signed char min() throw() > { return -127 - 1; } > static signed char max() throw() > { return 127; } > > static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0)); > static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136); > static const bool is_signed = true; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static signed char epsilon() throw() > { return 0; } > static signed char round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static signed char infinity() throw() > { return static_cast<signed char>(0); } > static signed char quiet_NaN() throw() > { return static_cast<signed char>(0); } > static signed char signaling_NaN() throw() > { return static_cast<signed char>(0); } > static signed char denorm_min() throw() > { return static_cast<signed char>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<unsigned char> > { > static const bool is_specialized = true; > > static unsigned char min() throw() > { return 0; } > static unsigned char max() throw() > { return 127 * 2U + 1; } > > static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)); > static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136); > static const bool is_signed = false; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static unsigned char epsilon() throw() > { return 0; } > static unsigned char round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static unsigned char infinity() throw() > { return static_cast<unsigned char>(0); } > static unsigned char quiet_NaN() throw() > { return static_cast<unsigned char>(0); } > static unsigned char signaling_NaN() throw() > { return static_cast<unsigned char>(0); } > static unsigned char denorm_min() throw() > { return static_cast<unsigned char>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<wchar_t> > { > static const bool is_specialized = true; > > static wchar_t min() throw() > { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); } > static wchar_t max() throw() > { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); } > > static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)); > static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136); > static const bool is_signed = ((wchar_t)(-1) < 0); > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static wchar_t epsilon() throw() > { return 0; } > static wchar_t round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static wchar_t infinity() throw() > { return wchar_t(); } > static wchar_t quiet_NaN() throw() > { return wchar_t(); } > static wchar_t signaling_NaN() throw() > { return wchar_t(); } > static wchar_t denorm_min() throw() > { return wchar_t(); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<short> > { > static const bool is_specialized = true; > > static short min() throw() > { return -32767 - 1; } > static short max() throw() > { return 32767; } > > static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0)); > static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136); > static const bool is_signed = true; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static short epsilon() throw() > { return 0; } > static short round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static short infinity() throw() > { return short(); } > static short quiet_NaN() throw() > { return short(); } > static short signaling_NaN() throw() > { return short(); } > static short denorm_min() throw() > { return short(); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<unsigned short> > { > static const bool is_specialized = true; > > static unsigned short min() throw() > { return 0; } > static unsigned short max() throw() > { return 32767 * 2U + 1; } > > static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)); > static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136); > static const bool is_signed = false; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static unsigned short epsilon() throw() > { return 0; } > static unsigned short round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static unsigned short infinity() throw() > { return static_cast<unsigned short>(0); } > static unsigned short quiet_NaN() throw() > { return static_cast<unsigned short>(0); } > static unsigned short signaling_NaN() throw() > { return static_cast<unsigned short>(0); } > static unsigned short denorm_min() throw() > { return static_cast<unsigned short>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<int> > { > static const bool is_specialized = true; > > static int min() throw() > { return -2147483647 - 1; } > static int max() throw() > { return 2147483647; } > > static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0)); > static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136); > static const bool is_signed = true; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static int epsilon() throw() > { return 0; } > static int round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static int infinity() throw() > { return static_cast<int>(0); } > static int quiet_NaN() throw() > { return static_cast<int>(0); } > static int signaling_NaN() throw() > { return static_cast<int>(0); } > static int denorm_min() throw() > { return static_cast<int>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<unsigned int> > { > static const bool is_specialized = true; > > static unsigned int min() throw() > { return 0; } > static unsigned int max() throw() > { return 2147483647 * 2U + 1; } > > static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)); > static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136); > static const bool is_signed = false; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static unsigned int epsilon() throw() > { return 0; } > static unsigned int round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static unsigned int infinity() throw() > { return static_cast<unsigned int>(0); } > static unsigned int quiet_NaN() throw() > { return static_cast<unsigned int>(0); } > static unsigned int signaling_NaN() throw() > { return static_cast<unsigned int>(0); } > static unsigned int denorm_min() throw() > { return static_cast<unsigned int>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<long> > { > static const bool is_specialized = true; > > static long min() throw() > { return -2147483647L - 1; } > static long max() throw() > { return 2147483647L; } > > static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0)); > static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136); > static const bool is_signed = true; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static long epsilon() throw() > { return 0; } > static long round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static long infinity() throw() > { return static_cast<long>(0); } > static long quiet_NaN() throw() > { return static_cast<long>(0); } > static long signaling_NaN() throw() > { return static_cast<long>(0); } > static long denorm_min() throw() > { return static_cast<long>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<unsigned long> > { > static const bool is_specialized = true; > > static unsigned long min() throw() > { return 0; } > static unsigned long max() throw() > { return 2147483647L * 2UL + 1; } > > static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)); > static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136); > static const bool is_signed = false; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static unsigned long epsilon() throw() > { return 0; } > static unsigned long round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static unsigned long infinity() throw() > { return static_cast<unsigned long>(0); } > static unsigned long quiet_NaN() throw() > { return static_cast<unsigned long>(0); } > static unsigned long signaling_NaN() throw() > { return static_cast<unsigned long>(0); } > static unsigned long denorm_min() throw() > { return static_cast<unsigned long>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<long long> > { > static const bool is_specialized = true; > > static long long min() throw() > { return -9223372036854775807LL - 1; } > static long long max() throw() > { return 9223372036854775807LL; } > > static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0)); > static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136); > static const bool is_signed = true; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static long long epsilon() throw() > { return 0; } > static long long round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static long long infinity() throw() > { return static_cast<long long>(0); } > static long long quiet_NaN() throw() > { return static_cast<long long>(0); } > static long long signaling_NaN() throw() > { return static_cast<long long>(0); } > static long long denorm_min() throw() > { return static_cast<long long>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<unsigned long long> > { > static const bool is_specialized = true; > > static unsigned long long min() throw() > { return 0; } > static unsigned long long max() throw() > { return 9223372036854775807LL * 2ULL + 1; } > > static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)); > static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136); > static const bool is_signed = false; > static const bool is_integer = true; > static const bool is_exact = true; > static const int radix = 2; > static unsigned long long epsilon() throw() > { return 0; } > static unsigned long long round_error() throw() > { return 0; } > > static const int min_exponent = 0; > static const int min_exponent10 = 0; > static const int max_exponent = 0; > static const int max_exponent10 = 0; > > static const bool has_infinity = false; > static const bool has_quiet_NaN = false; > static const bool has_signaling_NaN = false; > static const float_denorm_style has_denorm = denorm_absent; > static const bool has_denorm_loss = false; > > static unsigned long long infinity() throw() > { return static_cast<unsigned long long>(0); } > static unsigned long long quiet_NaN() throw() > { return static_cast<unsigned long long>(0); } > static unsigned long long signaling_NaN() throw() > { return static_cast<unsigned long long>(0); } > static unsigned long long denorm_min() throw() > { return static_cast<unsigned long long>(0); } > > static const bool is_iec559 = false; > static const bool is_bounded = true; > static const bool is_modulo = true; > > static const bool traps = true; > static const bool tinyness_before = false; > static const float_round_style round_style = round_toward_zero; > }; > > > template<> > struct numeric_limits<float> > { > static const bool is_specialized = true; > > static float min() throw() > { return 1.17549435e-38F; } > static float max() throw() > { return 3.40282347e+38F; } > > static const int digits = 24; > static const int digits10 = 6; > static const bool is_signed = true; > static const bool is_integer = false; > static const bool is_exact = false; > static const int radix = 2; > static float epsilon() throw() > { return 1.19209290e-7F; } > static float round_error() throw() > { return 0.5F; } > > static const int min_exponent = (-125); > static const int min_exponent10 = (-37); > static const int max_exponent = 128; > static const int max_exponent10 = 38; > > static const bool has_infinity = 1; > static const bool has_quiet_NaN = 1; > static const bool has_signaling_NaN = has_quiet_NaN; > static const float_denorm_style has_denorm > = bool(1.40129846e-45F) ? denorm_present : denorm_absent; > static const bool has_denorm_loss = false; > > static float infinity() throw() > { return __builtin_huge_valf (); } > static float quiet_NaN() throw() > { return __builtin_nanf (""); } > static float signaling_NaN() throw() > { return __builtin_nansf (""); } > static float denorm_min() throw() > { return 1.40129846e-45F; } > > static const bool is_iec559 > = has_infinity && has_quiet_NaN && has_denorm == denorm_present; > static const bool is_bounded = true; > static const bool is_modulo = false; > > static const bool traps = false; > static const bool tinyness_before = false; > static const float_round_style round_style = round_to_nearest; > }; > > > > > > > template<> > struct numeric_limits<double> > { > static const bool is_specialized = true; > > static double min() throw() > { return 2.2250738585072014e-308; } > static double max() throw() > { return 1.7976931348623157e+308; } > > static const int digits = 53; > static const int digits10 = 15; > static const bool is_signed = true; > static const bool is_integer = false; > static const bool is_exact = false; > static const int radix = 2; > static double epsilon() throw() > { return 2.2204460492503131e-16; } > static double round_error() throw() > { return 0.5; } > > static const int min_exponent = (-1021); > static const int min_exponent10 = (-307); > static const int max_exponent = 1024; > static const int max_exponent10 = 308; > > static const bool has_infinity = 1; > static const bool has_quiet_NaN = 1; > static const bool has_signaling_NaN = has_quiet_NaN; > static const float_denorm_style has_denorm > = bool(4.9406564584124654e-324) ? denorm_present : denorm_absent; > static const bool has_denorm_loss = false; > > static double infinity() throw() > { return __builtin_huge_val(); } > static double quiet_NaN() throw() > { return __builtin_nan (""); } > static double signaling_NaN() throw() > { return __builtin_nans (""); } > static double denorm_min() throw() > { return 4.9406564584124654e-324; } > > static const bool is_iec559 > = has_infinity && has_quiet_NaN && has_denorm == denorm_present; > static const bool is_bounded = true; > static const bool is_modulo = false; > > static const bool traps = false; > static const bool tinyness_before = false; > static const float_round_style round_style = round_to_nearest; > }; > > > > > > > template<> > struct numeric_limits<long double> > { > static const bool is_specialized = true; > > static long double min() throw() > { return 3.36210314311209350626e-4932L; } > static long double max() throw() > { return 1.18973149535723176502e+4932L; } > > static const int digits = 64; > static const int digits10 = 18; > static const bool is_signed = true; > static const bool is_integer = false; > static const bool is_exact = false; > static const int radix = 2; > static long double epsilon() throw() > { return 1.08420217248550443401e-19L; } > static long double round_error() throw() > { return 0.5L; } > > static const int min_exponent = (-16381); > static const int min_exponent10 = (-4931); > static const int max_exponent = 16384; > static const int max_exponent10 = 4932; > > static const bool has_infinity = 1; > static const bool has_quiet_NaN = 1; > static const bool has_signaling_NaN = has_quiet_NaN; > static const float_denorm_style has_denorm > = bool(3.64519953188247460253e-4951L) ? denorm_present : denorm_absent; > static const bool has_denorm_loss > = false; > > static long double infinity() throw() > { return __builtin_huge_vall (); } > static long double quiet_NaN() throw() > { return __builtin_nanl (""); } > static long double signaling_NaN() throw() > { return __builtin_nansl (""); } > static long double denorm_min() throw() > { return 3.64519953188247460253e-4951L; } > > static const bool is_iec559 > = has_infinity && has_quiet_NaN && has_denorm == denorm_present; > static const bool is_bounded = true; > static const bool is_modulo = false; > > static const bool traps = false; > static const bool tinyness_before = false; > static const float_round_style round_style = round_to_nearest; > }; > > > > > >} > > > > > > > >#pragma GCC visibility pop ># 62 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 2 3 > >namespace std >{ ># 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp> > pair<_Tp*, ptrdiff_t> > __get_temporary_buffer(ptrdiff_t __len, _Tp*) > { > const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp); > if (__len > __max) > __len = __max; > > while (__len > 0) > { > _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp), > nothrow)); > if (__tmp != 0) > return pair<_Tp*, ptrdiff_t>(__tmp, __len); > __len /= 2; > } > return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0); > } ># 109 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp> > inline pair<_Tp*, ptrdiff_t> > get_temporary_buffer(ptrdiff_t __len) > { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); } ># 121 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp> > void > return_temporary_buffer(_Tp* __p) > { ::operator delete(__p, nothrow); } ># 133 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp1> > struct auto_ptr_ref > { > _Tp1* _M_ptr; > > explicit > auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { } > }; ># 174 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp> > class auto_ptr > { > private: > _Tp* _M_ptr; > > public: > > typedef _Tp element_type; > > > > > > > > explicit > auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { } ># 200 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { } ># 212 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp1> > auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { } ># 223 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > auto_ptr& > operator=(auto_ptr& __a) throw() > { > reset(__a.release()); > return *this; > } ># 240 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > template<typename _Tp1> > auto_ptr& > operator=(auto_ptr<_Tp1>& __a) throw() > { > reset(__a.release()); > return *this; > } ># 260 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > ~auto_ptr() { delete _M_ptr; } ># 270 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > element_type& > operator*() const throw() > { > ; > return *_M_ptr; > } > > > > > > > > element_type* > operator->() const throw() > { > ; > return _M_ptr; > } ># 300 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > element_type* > get() const throw() { return _M_ptr; } ># 314 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > element_type* > release() throw() > { > element_type* __tmp = _M_ptr; > _M_ptr = 0; > return __tmp; > } ># 329 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > void > reset(element_type* __p = 0) throw() > { > if (__p != _M_ptr) > { > delete _M_ptr; > _M_ptr = __p; > } > } ># 350 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/memory" 3 > auto_ptr(auto_ptr_ref<element_type> __ref) throw() > : _M_ptr(__ref._M_ptr) { } > > auto_ptr& > operator=(auto_ptr_ref<element_type> __ref) throw() > { > if (__ref._M_ptr != this->get()) > { > delete _M_ptr; > _M_ptr = __ref._M_ptr; > } > return *this; > } > > template<typename _Tp1> > operator auto_ptr_ref<_Tp1>() throw() > { return auto_ptr_ref<_Tp1>(this->release()); } > > template<typename _Tp1> > operator auto_ptr<_Tp1>() throw() > { return auto_ptr<_Tp1>(this->release()); } > }; >} > >#pragma GCC visibility pop ># 49 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3 > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 1 3 ># 43 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > ># 44 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h" 1 3 ># 38 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/atomic_word.h" 1 3 ># 33 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/i686-pc-linux-gnu/bits/atomic_word.h" 3 >typedef int _Atomic_word; ># 39 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/atomicity.h" 2 3 > >namespace __gnu_cxx >{ > _Atomic_word > __attribute__ ((__unused__)) > __exchange_and_add(volatile _Atomic_word* __mem, int __val); > > void > __attribute__ ((__unused__)) > __atomic_add(volatile _Atomic_word* __mem, int __val); >} ># 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 2 3 > > >namespace std >{ ># 109 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > class basic_string > { > typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type; > > > public: > typedef _Traits traits_type; > typedef typename _Traits::char_type value_type; > typedef _Alloc allocator_type; > typedef typename _CharT_alloc_type::size_type size_type; > typedef typename _CharT_alloc_type::difference_type difference_type; > typedef typename _CharT_alloc_type::reference reference; > typedef typename _CharT_alloc_type::const_reference const_reference; > typedef typename _CharT_alloc_type::pointer pointer; > typedef typename _CharT_alloc_type::const_pointer const_pointer; > typedef __gnu_cxx::__normal_iterator<pointer, basic_string> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, basic_string> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > private: ># 146 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > struct _Rep_base > { > size_type _M_length; > size_type _M_capacity; > _Atomic_word _M_refcount; > }; > > struct _Rep : _Rep_base > { > > typedef typename _Alloc::template rebind<char>::other _Raw_bytes_alloc; ># 171 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > static const size_type _S_max_size; > static const _CharT _S_terminal; > > > > static size_type _S_empty_rep_storage[]; > > static _Rep& > _S_empty_rep() > { > void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage); > return *reinterpret_cast<_Rep*>(__p); > } > > bool > _M_is_leaked() const > { return this->_M_refcount < 0; } > > bool > _M_is_shared() const > { return this->_M_refcount > 0; } > > void > _M_set_leaked() > { this->_M_refcount = -1; } > > void > _M_set_sharable() > { this->_M_refcount = 0; } > > void > _M_set_length_and_sharable(size_type __n) > { > this->_M_set_sharable(); > this->_M_length = __n; > traits_type::assign(this->_M_refdata()[__n], _S_terminal); > > > } > > _CharT* > _M_refdata() throw() > { return reinterpret_cast<_CharT*>(this + 1); } > > _CharT* > _M_grab(const _Alloc& __alloc1, const _Alloc& __alloc2) > { > return (!_M_is_leaked() && __alloc1 == __alloc2) > ? _M_refcopy() : _M_clone(__alloc1); > } > > > static _Rep* > _S_create(size_type, size_type, const _Alloc&); > > void > _M_dispose(const _Alloc& __a) > { > > if (__builtin_expect(this != &_S_empty_rep(), false)) > > if (__gnu_cxx::__exchange_and_add(&this->_M_refcount, -1) <= 0) > _M_destroy(__a); > } > > void > _M_destroy(const _Alloc&) throw(); > > _CharT* > _M_refcopy() throw() > { > > if (__builtin_expect(this != &_S_empty_rep(), false)) > > __gnu_cxx::__atomic_add(&this->_M_refcount, 1); > return _M_refdata(); > } > > _CharT* > _M_clone(const _Alloc&, size_type __res = 0); > }; > > > struct _Alloc_hider : _Alloc > { > _Alloc_hider(_CharT* __dat, const _Alloc& __a) > : _Alloc(__a), _M_p(__dat) { } > > _CharT* _M_p; > }; > > public: > > > > > static const size_type npos = static_cast<size_type>(-1); > > private: > > mutable _Alloc_hider _M_dataplus; > > _CharT* > _M_data() const > { return _M_dataplus._M_p; } > > _CharT* > _M_data(_CharT* __p) > { return (_M_dataplus._M_p = __p); } > > _Rep* > _M_rep() const > { return &((reinterpret_cast<_Rep*> (_M_data()))[-1]); } > > > > iterator > _M_ibegin() const > { return iterator(_M_data()); } > > iterator > _M_iend() const > { return iterator(_M_data() + this->size()); } > > void > _M_leak() > { > if (!_M_rep()->_M_is_leaked()) > _M_leak_hard(); > } > > size_type > _M_check(size_type __pos, const char* __s) const > { > if (__pos > this->size()) > __throw_out_of_range((__s)); > return __pos; > } > > void > _M_check_length(size_type __n1, size_type __n2, const char* __s) const > { > if (this->max_size() - (this->size() - __n1) < __n2) > __throw_length_error((__s)); > } > > > size_type > _M_limit(size_type __pos, size_type __off) const > { > const bool __testoff = __off < this->size() - __pos; > return __testoff ? __off : this->size() - __pos; > } > > > bool > _M_disjunct(const _CharT* __s) const > { > return (less<const _CharT*>()(__s, _M_data()) > || less<const _CharT*>()(_M_data() + this->size(), __s)); > } > > > > static void > _M_copy(_CharT* __d, const _CharT* __s, size_type __n) > { > if (__n == 1) > traits_type::assign(*__d, *__s); > else > traits_type::copy(__d, __s, __n); > } > > static void > _M_move(_CharT* __d, const _CharT* __s, size_type __n) > { > if (__n == 1) > traits_type::assign(*__d, *__s); > else > traits_type::move(__d, __s, __n); > } > > static void > _M_assign(_CharT* __d, size_type __n, _CharT __c) > { > if (__n == 1) > traits_type::assign(*__d, __c); > else > traits_type::assign(__d, __n, __c); > } > > > > template<class _Iterator> > static void > _S_copy_chars(_CharT* __p, _Iterator __k1, _Iterator __k2) > { > for (; __k1 != __k2; ++__k1, ++__p) > traits_type::assign(*__p, *__k1); > } > > static void > _S_copy_chars(_CharT* __p, iterator __k1, iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, const_iterator __k1, const_iterator __k2) > { _S_copy_chars(__p, __k1.base(), __k2.base()); } > > static void > _S_copy_chars(_CharT* __p, _CharT* __k1, _CharT* __k2) > { _M_copy(__p, __k1, __k2 - __k1); } > > static void > _S_copy_chars(_CharT* __p, const _CharT* __k1, const _CharT* __k2) > { _M_copy(__p, __k1, __k2 - __k1); } > > void > _M_mutate(size_type __pos, size_type __len1, size_type __len2); > > void > _M_leak_hard(); > > static _Rep& > _S_empty_rep() > { return _Rep::_S_empty_rep(); } > > public: > > > > > > > > inline > basic_string(); > > > > > explicit > basic_string(const _Alloc& __a); > > > > > > > basic_string(const basic_string& __str); > > > > > > > basic_string(const basic_string& __str, size_type __pos, > size_type __n = npos); > > > > > > > > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a); ># 448 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string(const _CharT* __s, size_type __n, > const _Alloc& __a = _Alloc()); > > > > > > basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); > > > > > > > basic_string(size_type __n, _CharT __c, const _Alloc& __a = _Alloc()); > > > > > > > > template<class _InputIterator> > basic_string(_InputIterator __beg, _InputIterator __end, > const _Alloc& __a = _Alloc()); > > > > > ~basic_string() > { _M_rep()->_M_dispose(this->get_allocator()); } > > > > > > basic_string& > operator=(const basic_string& __str) > { return this->assign(__str); } > > > > > > basic_string& > operator=(const _CharT* __s) > { return this->assign(__s); } ># 503 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > operator=(_CharT __c) > { > this->assign(1, __c); > return *this; > } > > > > > > > iterator > begin() > { > _M_leak(); > return iterator(_M_data()); > } > > > > > > const_iterator > begin() const > { return const_iterator(_M_data()); } > > > > > > iterator > end() > { > _M_leak(); > return iterator(_M_data() + this->size()); > } > > > > > > const_iterator > end() const > { return const_iterator(_M_data() + this->size()); } > > > > > > > reverse_iterator > rbegin() > { return reverse_iterator(this->end()); } > > > > > > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(this->end()); } > > > > > > > reverse_iterator > rend() > { return reverse_iterator(this->begin()); } > > > > > > > const_reverse_iterator > rend() const > { return const_reverse_iterator(this->begin()); } > > public: > > > > size_type > size() const > { return _M_rep()->_M_length; } > > > > size_type > length() const > { return _M_rep()->_M_length; } > > > size_type > max_size() const > { return _Rep::_S_max_size; } ># 614 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > void > resize(size_type __n, _CharT __c); ># 627 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > void > resize(size_type __n) > { this->resize(__n, _CharT()); } > > > > > > size_type > capacity() const > { return _M_rep()->_M_capacity; } ># 656 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > void > reserve(size_type __res_arg = 0); > > > > > void > clear() > { _M_mutate(0, this->size(), 0); } > > > > > bool > empty() const > { return this->size() == 0; } ># 684 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > const_reference > operator[] (size_type __pos) const > { > ; > return _M_data()[__pos]; > } ># 701 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > reference > operator[](size_type __pos) > { > > ; > > ; > _M_leak(); > return _M_data()[__pos]; > } ># 722 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > const_reference > at(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range(("basic_string::at")); > return _M_data()[__n]; > } ># 741 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > reference > at(size_type __n) > { > if (__n >= size()) > __throw_out_of_range(("basic_string::at")); > _M_leak(); > return _M_data()[__n]; > } > > > > > > > > basic_string& > operator+=(const basic_string& __str) > { return this->append(__str); } > > > > > > > basic_string& > operator+=(const _CharT* __s) > { return this->append(__s); } > > > > > > > basic_string& > operator+=(_CharT __c) > { > this->push_back(__c); > return *this; > } > > > > > > > basic_string& > append(const basic_string& __str); ># 801 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > append(const basic_string& __str, size_type __pos, size_type __n); > > > > > > > > basic_string& > append(const _CharT* __s, size_type __n); > > > > > > > basic_string& > append(const _CharT* __s) > { > ; > return this->append(__s, traits_type::length(__s)); > } ># 833 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > append(size_type __n, _CharT __c); ># 844 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<class _InputIterator> > basic_string& > append(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_iend(), _M_iend(), __first, __last); } > > > > > > void > push_back(_CharT __c) > { > const size_type __len = 1 + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > traits_type::assign(_M_data()[this->size()], __c); > _M_rep()->_M_set_length_and_sharable(__len); > } > > > > > > > basic_string& > assign(const basic_string& __str); ># 883 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > assign(const basic_string& __str, size_type __pos, size_type __n) > { return this->assign(__str._M_data() > + __str._M_check(__pos, "basic_string::assign"), > __str._M_limit(__pos, __n)); } ># 899 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > assign(const _CharT* __s, size_type __n); ># 911 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > assign(const _CharT* __s) > { > ; > return this->assign(__s, traits_type::length(__s)); > } ># 927 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > assign(size_type __n, _CharT __c) > { return _M_replace_aux(size_type(0), this->size(), __n, __c); } ># 939 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<class _InputIterator> > basic_string& > assign(_InputIterator __first, _InputIterator __last) > { return this->replace(_M_ibegin(), _M_iend(), __first, __last); } ># 956 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > void > insert(iterator __p, size_type __n, _CharT __c) > { this->replace(__p, __p, __n, __c); } ># 971 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<class _InputIterator> > void > insert(iterator __p, _InputIterator __beg, _InputIterator __end) > { this->replace(__p, __p, __beg, __end); } ># 987 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos1, const basic_string& __str) > { return this->insert(__pos1, __str, size_type(0), __str.size()); } ># 1009 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos1, const basic_string& __str, > size_type __pos2, size_type __n) > { return this->insert(__pos1, __str._M_data() > + __str._M_check(__pos2, "basic_string::insert"), > __str._M_limit(__pos2, __n)); } ># 1032 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos, const _CharT* __s, size_type __n); ># 1050 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos, const _CharT* __s) > { > ; > return this->insert(__pos, __s, traits_type::length(__s)); > } ># 1073 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > insert(size_type __pos, size_type __n, _CharT __c) > { return _M_replace_aux(_M_check(__pos, "basic_string::insert"), > size_type(0), __n, __c); } ># 1090 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > iterator > insert(iterator __p, _CharT __c) > { > ; > const size_type __pos = __p - _M_ibegin(); > _M_replace_aux(__pos, size_type(0), size_type(1), __c); > _M_rep()->_M_set_leaked(); > return this->_M_ibegin() + __pos; > } ># 1114 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > erase(size_type __pos = 0, size_type __n = npos) > { > _M_mutate(_M_check(__pos, "basic_string::erase"), > _M_limit(__pos, __n), size_type(0)); > return *this; > } ># 1130 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > iterator > erase(iterator __position) > { > ; > > const size_type __pos = __position - _M_ibegin(); > _M_mutate(__pos, size_type(1), size_type(0)); > _M_rep()->_M_set_leaked(); > return _M_ibegin() + __pos; > } ># 1150 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > iterator > erase(iterator __first, iterator __last) > { > ; > > const size_type __pos = __first - _M_ibegin(); > _M_mutate(__pos, __last - __first, size_type(0)); > _M_rep()->_M_set_leaked(); > return _M_ibegin() + __pos; > } ># 1177 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n, const basic_string& __str) > { return this->replace(__pos, __n, __str._M_data(), __str.size()); } ># 1199 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) > { return this->replace(__pos1, __n1, __str._M_data() > + __str._M_check(__pos2, "basic_string::replace"), > __str._M_limit(__pos2, __n2)); } ># 1223 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2); ># 1242 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n1, const _CharT* __s) > { > ; > return this->replace(__pos, __n1, __s, traits_type::length(__s)); > } ># 1265 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) > { return _M_replace_aux(_M_check(__pos, "basic_string::replace"), > _M_limit(__pos, __n1), __n2, __c); } ># 1283 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, const basic_string& __str) > { return this->replace(__i1, __i2, __str._M_data(), __str.size()); } ># 1301 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __s, size_type __n) > { > ; > > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, __s, __n); > } ># 1322 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, const _CharT* __s) > { > ; > return this->replace(__i1, __i2, __s, traits_type::length(__s)); > } ># 1343 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string& > replace(iterator __i1, iterator __i2, size_type __n, _CharT __c) > { > ; > > return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __c); > } ># 1365 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<class _InputIterator> > basic_string& > replace(iterator __i1, iterator __i2, > _InputIterator __k1, _InputIterator __k2) > { > ; > > ; > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > return _M_replace_dispatch(__i1, __i2, __k1, __k2, _Integral()); > } > > > > basic_string& > replace(iterator __i1, iterator __i2, _CharT* __k1, _CharT* __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, > const _CharT* __k1, const _CharT* __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1, __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, iterator __k1, iterator __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > basic_string& > replace(iterator __i1, iterator __i2, > const_iterator __k1, const_iterator __k2) > { > ; > > ; > return this->replace(__i1 - _M_ibegin(), __i2 - __i1, > __k1.base(), __k2 - __k1); > } > > private: > template<class _Integer> > basic_string& > _M_replace_dispatch(iterator __i1, iterator __i2, _Integer __n, > _Integer __val, __true_type) > { return _M_replace_aux(__i1 - _M_ibegin(), __i2 - __i1, __n, __val); } > > template<class _InputIterator> > basic_string& > _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, > _InputIterator __k2, __false_type); > > basic_string& > _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, > _CharT __c); > > basic_string& > _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, > size_type __n2); > > > > template<class _InIterator> > static _CharT* > _S_construct_aux(_InIterator __beg, _InIterator __end, > const _Alloc& __a, __false_type) > { > typedef typename iterator_traits<_InIterator>::iterator_category _Tag; > return _S_construct(__beg, __end, __a, _Tag()); > } > > template<class _InIterator> > static _CharT* > _S_construct_aux(_InIterator __beg, _InIterator __end, > const _Alloc& __a, __true_type) > { return _S_construct(static_cast<size_type>(__beg), > static_cast<value_type>(__end), __a); } > > template<class _InIterator> > static _CharT* > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a) > { > typedef typename std::__is_integer<_InIterator>::__type _Integral; > return _S_construct_aux(__beg, __end, __a, _Integral()); > } > > > template<class _InIterator> > static _CharT* > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, > input_iterator_tag); > > > > template<class _FwdIterator> > static _CharT* > _S_construct(_FwdIterator __beg, _FwdIterator __end, const _Alloc& __a, > forward_iterator_tag); > > static _CharT* > _S_construct(size_type __req, _CharT __c, const _Alloc& __a); > > public: ># 1496 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > copy(_CharT* __s, size_type __n, size_type __pos = 0) const; ># 1506 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > void > swap(basic_string& __s); ># 1516 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > const _CharT* > c_str() const > { return _M_data(); } > > > > > > > > const _CharT* > data() const > { return _M_data(); } > > > > > allocator_type > get_allocator() const > { return _M_dataplus; } ># 1548 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find(const _CharT* __s, size_type __pos, size_type __n) const; ># 1561 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find(const basic_string& __str, size_type __pos = 0) const > { return this->find(__str.data(), __pos, __str.size()); } ># 1575 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find(const _CharT* __s, size_type __pos = 0) const > { > ; > return this->find(__s, __pos, traits_type::length(__s)); > } ># 1592 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find(_CharT __c, size_type __pos = 0) const; ># 1605 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > rfind(const basic_string& __str, size_type __pos = npos) const > { return this->rfind(__str.data(), __pos, __str.size()); } ># 1620 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > rfind(const _CharT* __s, size_type __pos, size_type __n) const; ># 1633 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > rfind(const _CharT* __s, size_type __pos = npos) const > { > ; > return this->rfind(__s, __pos, traits_type::length(__s)); > } ># 1650 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > rfind(_CharT __c, size_type __pos = npos) const; ># 1663 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_of(__str.data(), __pos, __str.size()); } ># 1678 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const; ># 1691 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_of(const _CharT* __s, size_type __pos = 0) const > { > ; > return this->find_first_of(__s, __pos, traits_type::length(__s)); > } ># 1710 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_of(_CharT __c, size_type __pos = 0) const > { return this->find(__c, __pos); } ># 1724 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_of(__str.data(), __pos, __str.size()); } ># 1739 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const; ># 1752 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_of(const _CharT* __s, size_type __pos = npos) const > { > ; > return this->find_last_of(__s, __pos, traits_type::length(__s)); > } ># 1771 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_of(_CharT __c, size_type __pos = npos) const > { return this->rfind(__c, __pos); } ># 1785 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_not_of(const basic_string& __str, size_type __pos = 0) const > { return this->find_first_not_of(__str.data(), __pos, __str.size()); } ># 1800 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; ># 1814 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_not_of(const _CharT* __s, size_type __pos = 0) const > { > ; > return this->find_first_not_of(__s, __pos, traits_type::length(__s)); > } ># 1831 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_first_not_of(_CharT __c, size_type __pos = 0) const; ># 1844 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_not_of(const basic_string& __str, size_type __pos = npos) const > { return this->find_last_not_of(__str.data(), __pos, __str.size()); } ># 1860 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_not_of(const _CharT* __s, size_type __pos, > size_type __n) const; ># 1873 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_not_of(const _CharT* __s, size_type __pos = npos) const > { > ; > return this->find_last_not_of(__s, __pos, traits_type::length(__s)); > } ># 1890 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > size_type > find_last_not_of(_CharT __c, size_type __pos = npos) const; ># 1905 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > basic_string > substr(size_type __pos = 0, size_type __n = npos) const > { return basic_string(*this, > _M_check(__pos, "basic_string::substr"), __n); } ># 1923 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > int > compare(const basic_string& __str) const > { > const size_type __size = this->size(); > const size_type __osize = __str.size(); > const size_type __len = std::min(__size, __osize); > > int __r = traits_type::compare(_M_data(), __str.data(), __len); > if (!__r) > __r = __size - __osize; > return __r; > } ># 1953 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > int > compare(size_type __pos, size_type __n, const basic_string& __str) const; ># 1977 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > int > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const; ># 1995 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > int > compare(const _CharT* __s) const; ># 2018 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > int > compare(size_type __pos, size_type __n1, const _CharT* __s) const; ># 2043 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > int > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const; > }; > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc>:: > basic_string() > > : _M_dataplus(_S_empty_rep()._M_refdata(), _Alloc()) { } ># 2064 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT,_Traits,_Alloc> > operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Alloc>& __rhs); > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { > basic_string<_CharT, _Traits, _Alloc> __str(__lhs); > __str.append(__rhs); > return __str; > } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_string<_CharT, _Traits, _Alloc> > operator+(const basic_string<_CharT, _Traits, _Alloc>& __lhs, _CharT __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str(__lhs); > __str.append(__size_type(1), __rhs); > return __str; > } ># 2135 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) == 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) == 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator==(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) == 0; } ># 2172 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) != 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) != 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator!=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) != 0; } ># 2209 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) < 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) < 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) > 0; } ># 2246 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) > 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) > 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) < 0; } ># 2283 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) <= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) <= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator<=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) >= 0; } ># 2320 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __lhs.compare(__rhs) >= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, > const _CharT* __rhs) > { return __lhs.compare(__rhs) >= 0; } > > > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > inline bool > operator>=(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { return __rhs.compare(__lhs) <= 0; } ># 2357 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline void > swap(basic_string<_CharT, _Traits, _Alloc>& __lhs, > basic_string<_CharT, _Traits, _Alloc>& __rhs) > { __lhs.swap(__rhs); } ># 2374 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > operator>>(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); > > template<> > basic_istream<char>& > operator>>(basic_istream<char>& __is, basic_string<char>& __str); ># 2392 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_ostream<_CharT, _Traits>& > operator<<(basic_ostream<_CharT, _Traits>& __os, > const basic_string<_CharT, _Traits, _Alloc>& __str); ># 2410 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > basic_istream<_CharT, _Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str, _CharT __delim); ># 2427 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.h" 3 > template<typename _CharT, typename _Traits, typename _Alloc> > inline basic_istream<_CharT, _Traits>& > getline(basic_istream<_CharT, _Traits>& __is, > basic_string<_CharT, _Traits, _Alloc>& __str); > > template<> > basic_istream<char>& > getline(basic_istream<char>& __in, basic_string<char>& __str, > char __delim); > > > template<> > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>& __in, basic_string<wchar_t>& __str, > wchar_t __delim); > >} ># 54 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 1 3 ># 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 3 > ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 3 >#pragma GCC visibility push(default) > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 1 3 ># 65 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 1 3 ># 65 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 >namespace std >{ > > > > template<typename _RandomAccessIterator, typename _Distance> > bool > __is_heap(_RandomAccessIterator __first, _Distance __n) > { > _Distance __parent = 0; > for (_Distance __child = 1; __child < __n; ++__child) > { > if (__first[__parent] < __first[__child]) > return false; > if ((__child & 1) == 0) > ++__parent; > } > return true; > } > > template<typename _RandomAccessIterator, typename _Distance, > typename _StrictWeakOrdering> > bool > __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp, > _Distance __n) > { > _Distance __parent = 0; > for (_Distance __child = 1; __child < __n; ++__child) > { > if (__comp(__first[__parent], __first[__child])) > return false; > if ((__child & 1) == 0) > ++__parent; > } > return true; > } > > template<typename _RandomAccessIterator> > bool > __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { return std::__is_heap(__first, std::distance(__first, __last)); } > > template<typename _RandomAccessIterator, typename _StrictWeakOrdering> > bool > __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _StrictWeakOrdering __comp) > { return std::__is_heap(__first, __comp, std::distance(__first, __last)); } > > > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp> > void > __push_heap(_RandomAccessIterator __first, > _Distance __holeIndex, _Distance __topIndex, _Tp __value) > { > _Distance __parent = (__holeIndex - 1) / 2; > while (__holeIndex > __topIndex && *(__first + __parent) < __value) > { > *(__first + __holeIndex) = *(__first + __parent); > __holeIndex = __parent; > __parent = (__holeIndex - 1) / 2; > } > *(__first + __holeIndex) = __value; > } ># 139 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator> > inline void > push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > ; > > > std::__push_heap(__first, _DistanceType((__last - __first) - 1), > _DistanceType(0), _ValueType(*(__last - 1))); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp, > typename _Compare> > void > __push_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __topIndex, _Tp __value, _Compare __comp) > { > _Distance __parent = (__holeIndex - 1) / 2; > while (__holeIndex > __topIndex > && __comp(*(__first + __parent), __value)) > { > *(__first + __holeIndex) = *(__first + __parent); > __holeIndex = __parent; > __parent = (__holeIndex - 1) / 2; > } > *(__first + __holeIndex) = __value; > } ># 187 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > inline void > push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > ; > ; > > std::__push_heap(__first, _DistanceType((__last - __first) - 1), > _DistanceType(0), _ValueType(*(__last - 1)), __comp); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Tp> > void > __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __len, _Tp __value) > { > const _Distance __topIndex = __holeIndex; > _Distance __secondChild = 2 * __holeIndex + 2; > while (__secondChild < __len) > { > if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) > __secondChild--; > *(__first + __holeIndex) = *(__first + __secondChild); > __holeIndex = __secondChild; > __secondChild = 2 * (__secondChild + 1); > } > if (__secondChild == __len) > { > *(__first + __holeIndex) = *(__first + (__secondChild - 1)); > __holeIndex = __secondChild - 1; > } > std::__push_heap(__first, __holeIndex, __topIndex, __value); > } > > template<typename _RandomAccessIterator, typename _Tp> > inline void > __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomAccessIterator __result, _Tp __value) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _Distance; > *__result = *__first; > std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first), > __value); > } ># 251 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator> > inline void > pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > ; > ; > > std::__pop_heap(__first, __last - 1, __last - 1, > _ValueType(*(__last - 1))); > } > > template<typename _RandomAccessIterator, typename _Distance, > typename _Tp, typename _Compare> > void > __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, > _Distance __len, _Tp __value, _Compare __comp) > { > const _Distance __topIndex = __holeIndex; > _Distance __secondChild = 2 * __holeIndex + 2; > while (__secondChild < __len) > { > if (__comp(*(__first + __secondChild), > *(__first + (__secondChild - 1)))) > __secondChild--; > *(__first + __holeIndex) = *(__first + __secondChild); > __holeIndex = __secondChild; > __secondChild = 2 * (__secondChild + 1); > } > if (__secondChild == __len) > { > *(__first + __holeIndex) = *(__first + (__secondChild - 1)); > __holeIndex = __secondChild - 1; > } > std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp); > } > > template<typename _RandomAccessIterator, typename _Tp, typename _Compare> > inline void > __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomAccessIterator __result, _Tp __value, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _Distance; > *__result = *__first; > std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first), > __value, __comp); > } ># 317 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > inline void > pop_heap(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > > > > ; > ; > > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > std::__pop_heap(__first, __last - 1, __last - 1, > _ValueType(*(__last - 1)), __comp); > } ># 342 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator> > void > make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > ; > > if (__last - __first < 2) > return; > > const _DistanceType __len = __last - __first; > _DistanceType __parent = (__len - 2) / 2; > while (true) > { > std::__adjust_heap(__first, __parent, __len, > _ValueType(*(__first + __parent))); > if (__parent == 0) > return; > __parent--; > } > } ># 382 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > inline void > make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > ; > > if (__last - __first < 2) > return; > > const _DistanceType __len = __last - __first; > _DistanceType __parent = (__len - 2) / 2; > while (true) > { > std::__adjust_heap(__first, __parent, __len, > _ValueType(*(__first + __parent)), __comp); > if (__parent == 0) > return; > __parent--; > } > } ># 420 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator> > void > sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > > > > > > ; > > > while (__last - __first > 1) > std::pop_heap(__first, __last--); > } ># 446 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_heap.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > void > sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > > > > ; > ; > > while (__last - __first > 1) > std::pop_heap(__first, __last--, __comp); > } > >} ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h" 1 3 ># 66 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_tempbuf.h" 3 >namespace std >{ > > > > > > > > template<typename _ForwardIterator, typename _Tp> > class _Temporary_buffer > { > > > > public: > typedef _Tp value_type; > typedef value_type* pointer; > typedef pointer iterator; > typedef ptrdiff_t size_type; > > protected: > size_type _M_original_len; > size_type _M_len; > pointer _M_buffer; > > void > _M_initialize_buffer(const _Tp&, __true_type) { } > > void > _M_initialize_buffer(const _Tp& val, __false_type) > { std::uninitialized_fill_n(_M_buffer, _M_len, val); } > > public: > > size_type > size() const > { return _M_len; } > > > size_type > requested_size() const > { return _M_original_len; } > > > iterator > begin() > { return _M_buffer; } > > > iterator > end() > { return _M_buffer + _M_len; } > > > > > > _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last); > > ~_Temporary_buffer() > { > std::_Destroy(_M_buffer, _M_buffer + _M_len); > std::return_temporary_buffer(_M_buffer); > } > > private: > > _Temporary_buffer(const _Temporary_buffer&); > > void > operator=(const _Temporary_buffer&); > }; > > > template<typename _ForwardIterator, typename _Tp> > _Temporary_buffer<_ForwardIterator, _Tp>:: > _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) > : _M_original_len(std::distance(__first, __last)), > _M_len(0), _M_buffer(0) > { > > typedef typename std::__is_scalar<_Tp>::__type _Trivial; > > try > { > pair<pointer, size_type> __p(get_temporary_buffer< > value_type>(_M_original_len)); > _M_buffer = __p.first; > _M_len = __p.second; > if (_M_len > 0) > _M_initialize_buffer(*__first, _Trivial()); > } > catch(...) > { > std::return_temporary_buffer(_M_buffer); > _M_buffer = 0; > _M_len = 0; > throw; > } > } >} ># 67 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 2 3 > > > > >namespace std >{ ># 85 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _Tp> > inline const _Tp& > __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) > { > > > if (__a < __b) > if (__b < __c) > return __b; > else if (__a < __c) > return __c; > else > return __a; > else if (__a < __c) > return __a; > else if (__b < __c) > return __c; > else > return __b; > } ># 119 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _Tp, typename _Compare> > inline const _Tp& > __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) > { > > > if (__comp(__a, __b)) > if (__comp(__b, __c)) > return __b; > else if (__comp(__a, __c)) > return __c; > else > return __a; > else if (__comp(__a, __c)) > return __a; > else if (__comp(__b, __c)) > return __c; > else > return __b; > } ># 151 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _Function> > _Function > for_each(_InputIterator __first, _InputIterator __last, _Function __f) > { > > > ; > for ( ; __first != __last; ++__first) > __f(*__first); > return __f; > } > > > > > > > template<typename _InputIterator, typename _Tp> > inline _InputIterator > __find(_InputIterator __first, _InputIterator __last, > const _Tp& __val, input_iterator_tag) > { > while (__first != __last && !(*__first == __val)) > ++__first; > return __first; > } > > > > > > > template<typename _InputIterator, typename _Predicate> > inline _InputIterator > __find_if(_InputIterator __first, _InputIterator __last, > _Predicate __pred, input_iterator_tag) > { > while (__first != __last && !__pred(*__first)) > ++__first; > return __first; > } > > > > > > > template<typename _RandomAccessIterator, typename _Tp> > _RandomAccessIterator > __find(_RandomAccessIterator __first, _RandomAccessIterator __last, > const _Tp& __val, random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIterator>::difference_type > __trip_count = (__last - __first) >> 2; > > for ( ; __trip_count > 0 ; --__trip_count) > { > if (*__first == __val) > return __first; > ++__first; > > if (*__first == __val) > return __first; > ++__first; > > if (*__first == __val) > return __first; > ++__first; > > if (*__first == __val) > return __first; > ++__first; > } > > switch (__last - __first) > { > case 3: > if (*__first == __val) > return __first; > ++__first; > case 2: > if (*__first == __val) > return __first; > ++__first; > case 1: > if (*__first == __val) > return __first; > ++__first; > case 0: > default: > return __last; > } > } > > > > > > > template<typename _RandomAccessIterator, typename _Predicate> > _RandomAccessIterator > __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Predicate __pred, random_access_iterator_tag) > { > typename iterator_traits<_RandomAccessIterator>::difference_type > __trip_count = (__last - __first) >> 2; > > for ( ; __trip_count > 0 ; --__trip_count) > { > if (__pred(*__first)) > return __first; > ++__first; > > if (__pred(*__first)) > return __first; > ++__first; > > if (__pred(*__first)) > return __first; > ++__first; > > if (__pred(*__first)) > return __first; > ++__first; > } > > switch (__last - __first) > { > case 3: > if (__pred(*__first)) > return __first; > ++__first; > case 2: > if (__pred(*__first)) > return __first; > ++__first; > case 1: > if (__pred(*__first)) > return __first; > ++__first; > case 0: > default: > return __last; > } > } ># 305 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _Tp> > inline _InputIterator > find(_InputIterator __first, _InputIterator __last, > const _Tp& __val) > { > > > > > ; > return std::__find(__first, __last, __val, > std::__iterator_category(__first)); > } ># 327 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _Predicate> > inline _InputIterator > find_if(_InputIterator __first, _InputIterator __last, > _Predicate __pred) > { > > > > > ; > return std::__find_if(__first, __last, __pred, > std::__iterator_category(__first)); > } ># 349 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator> > _ForwardIterator > adjacent_find(_ForwardIterator __first, _ForwardIterator __last) > { > > > > > ; > if (__first == __last) > return __last; > _ForwardIterator __next = __first; > while(++__next != __last) > { > if (*__first == *__next) > return __first; > __first = __next; > } > return __last; > } ># 380 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _BinaryPredicate> > _ForwardIterator > adjacent_find(_ForwardIterator __first, _ForwardIterator __last, > _BinaryPredicate __binary_pred) > { > > > > > > ; > if (__first == __last) > return __last; > _ForwardIterator __next = __first; > while(++__next != __last) > { > if (__binary_pred(*__first, *__next)) > return __first; > __first = __next; > } > return __last; > } ># 411 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _Tp> > typename iterator_traits<_InputIterator>::difference_type > count(_InputIterator __first, _InputIterator __last, const _Tp& __value) > { > > > > > ; > typename iterator_traits<_InputIterator>::difference_type __n = 0; > for ( ; __first != __last; ++__first) > if (*__first == __value) > ++__n; > return __n; > } ># 435 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _Predicate> > typename iterator_traits<_InputIterator>::difference_type > count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) > { > > > > > ; > typename iterator_traits<_InputIterator>::difference_type __n = 0; > for ( ; __first != __last; ++__first) > if (__pred(*__first)) > ++__n; > return __n; > } ># 474 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > _ForwardIterator1 > search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2, _ForwardIterator2 __last2) > { > > > > > > > ; > ; > > if (__first1 == __last1 || __first2 == __last2) > return __first1; > > > _ForwardIterator2 __tmp(__first2); > ++__tmp; > if (__tmp == __last2) > return std::find(__first1, __last1, *__first2); > > > _ForwardIterator2 __p1, __p; > __p1 = __first2; ++__p1; > _ForwardIterator1 __current = __first1; > > while (__first1 != __last1) > { > __first1 = std::find(__first1, __last1, *__first2); > if (__first1 == __last1) > return __last1; > > __p = __p1; > __current = __first1; > if (++__current == __last1) > return __last1; > > while (*__current == *__p) > { > if (++__p == __last2) > return __first1; > if (++__current == __last1) > return __last1; > } > ++__first1; > } > return __first1; > } ># 545 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2, > typename _BinaryPredicate> > _ForwardIterator1 > search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2, _ForwardIterator2 __last2, > _BinaryPredicate __predicate) > { > > > > > > > ; > ; > > > if (__first1 == __last1 || __first2 == __last2) > return __first1; > > > _ForwardIterator2 __tmp(__first2); > ++__tmp; > if (__tmp == __last2) > { > while (__first1 != __last1 && !__predicate(*__first1, *__first2)) > ++__first1; > return __first1; > } > > > _ForwardIterator2 __p1, __p; > __p1 = __first2; ++__p1; > _ForwardIterator1 __current = __first1; > > while (__first1 != __last1) > { > while (__first1 != __last1) > { > if (__predicate(*__first1, *__first2)) > break; > ++__first1; > } > while (__first1 != __last1 && !__predicate(*__first1, *__first2)) > ++__first1; > if (__first1 == __last1) > return __last1; > > __p = __p1; > __current = __first1; > if (++__current == __last1) > return __last1; > > while (__predicate(*__current, *__p)) > { > if (++__p == __last2) > return __first1; > if (++__current == __last1) > return __last1; > } > ++__first1; > } > return __first1; > } ># 617 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Integer, typename _Tp> > _ForwardIterator > __search_n(_ForwardIterator __first, _ForwardIterator __last, > _Integer __count, const _Tp& __val, > std::forward_iterator_tag) > { > __first = std::find(__first, __last, __val); > while (__first != __last) > { > typename iterator_traits<_ForwardIterator>::difference_type > __n = __count; > _ForwardIterator __i = __first; > ++__i; > while (__i != __last && __n != 1 && *__i == __val) > { > ++__i; > --__n; > } > if (__n == 1) > return __first; > if (__i == __last) > return __last; > __first = std::find(++__i, __last, __val); > } > return __last; > } ># 651 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Integer, typename _Tp> > _RandomAccessIter > __search_n(_RandomAccessIter __first, _RandomAccessIter __last, > _Integer __count, const _Tp& __val, > std::random_access_iterator_tag) > { > > typedef typename std::iterator_traits<_RandomAccessIter>::difference_type > _DistanceType; > > _DistanceType __tailSize = __last - __first; > const _DistanceType __pattSize = __count; > > if (__tailSize < __pattSize) > return __last; > > const _DistanceType __skipOffset = __pattSize - 1; > _RandomAccessIter __lookAhead = __first + __skipOffset; > __tailSize -= __pattSize; > > while (1) > { > > > while (!(*__lookAhead == __val)) > { > if (__tailSize < __pattSize) > return __last; > __lookAhead += __pattSize; > __tailSize -= __pattSize; > } > _DistanceType __remainder = __skipOffset; > for (_RandomAccessIter __backTrack = __lookAhead - 1; > *__backTrack == __val; --__backTrack) > { > if (--__remainder == 0) > return (__lookAhead - __skipOffset); > } > if (__remainder > __tailSize) > return __last; > __lookAhead += __remainder; > __tailSize -= __remainder; > } > } ># 709 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Integer, typename _Tp> > _ForwardIterator > search_n(_ForwardIterator __first, _ForwardIterator __last, > _Integer __count, const _Tp& __val) > { > > > > > ; > > if (__count <= 0) > return __first; > if (__count == 1) > return std::find(__first, __last, __val); > return std::__search_n(__first, __last, __count, __val, > std::__iterator_category(__first)); > } ># 736 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Integer, typename _Tp, > typename _BinaryPredicate> > _ForwardIterator > __search_n(_ForwardIterator __first, _ForwardIterator __last, > _Integer __count, const _Tp& __val, > _BinaryPredicate __binary_pred, std::forward_iterator_tag) > { > while (__first != __last && !__binary_pred(*__first, __val)) > ++__first; > > while (__first != __last) > { > typename iterator_traits<_ForwardIterator>::difference_type > __n = __count; > _ForwardIterator __i = __first; > ++__i; > while (__i != __last && __n != 1 && __binary_pred(*__i, __val)) > { > ++__i; > --__n; > } > if (__n == 1) > return __first; > if (__i == __last) > return __last; > __first = ++__i; > while (__first != __last && !__binary_pred(*__first, __val)) > ++__first; > } > return __last; > } ># 776 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIter, typename _Integer, typename _Tp, > typename _BinaryPredicate> > _RandomAccessIter > __search_n(_RandomAccessIter __first, _RandomAccessIter __last, > _Integer __count, const _Tp& __val, > _BinaryPredicate __binary_pred, std::random_access_iterator_tag) > { > > typedef typename std::iterator_traits<_RandomAccessIter>::difference_type > _DistanceType; > > _DistanceType __tailSize = __last - __first; > const _DistanceType __pattSize = __count; > > if (__tailSize < __pattSize) > return __last; > > const _DistanceType __skipOffset = __pattSize - 1; > _RandomAccessIter __lookAhead = __first + __skipOffset; > __tailSize -= __pattSize; > > while (1) > { > > > while (!__binary_pred(*__lookAhead, __val)) > { > if (__tailSize < __pattSize) > return __last; > __lookAhead += __pattSize; > __tailSize -= __pattSize; > } > _DistanceType __remainder = __skipOffset; > for (_RandomAccessIter __backTrack = __lookAhead - 1; > __binary_pred(*__backTrack, __val); --__backTrack) > { > if (--__remainder == 0) > return (__lookAhead - __skipOffset); > } > if (__remainder > __tailSize) > return __last; > __lookAhead += __remainder; > __tailSize -= __remainder; > } > } ># 837 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Integer, typename _Tp, > typename _BinaryPredicate> > _ForwardIterator > search_n(_ForwardIterator __first, _ForwardIterator __last, > _Integer __count, const _Tp& __val, > _BinaryPredicate __binary_pred) > { > > > > > ; > > if (__count <= 0) > return __first; > if (__count == 1) > { > while (__first != __last && !__binary_pred(*__first, __val)) > ++__first; > return __first; > } > return std::__search_n(__first, __last, __count, __val, __binary_pred, > std::__iterator_category(__first)); > } ># 873 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > _ForwardIterator2 > swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2) > { > > > > > > > > > > > > ; > > for ( ; __first1 != __last1; ++__first1, ++__first2) > std::iter_swap(__first1, __first2); > return __first2; > } ># 911 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, > typename _UnaryOperation> > _OutputIterator > transform(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, _UnaryOperation __unary_op) > { > > > > > > ; > > for ( ; __first != __last; ++__first, ++__result) > *__result = __unary_op(*__first); > return __result; > } ># 946 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator, typename _BinaryOperation> > _OutputIterator > transform(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _OutputIterator __result, > _BinaryOperation __binary_op) > { > > > > > > > ; > > for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) > *__result = __binary_op(*__first1, *__first2); > return __result; > } ># 978 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp> > void > replace(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __old_value, const _Tp& __new_value) > { > > > > > > > > ; > > for ( ; __first != __last; ++__first) > if (*__first == __old_value) > *__first = __new_value; > } ># 1009 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Predicate, typename _Tp> > void > replace_if(_ForwardIterator __first, _ForwardIterator __last, > _Predicate __pred, const _Tp& __new_value) > { > > > > > > > > ; > > for ( ; __first != __last; ++__first) > if (__pred(*__first)) > *__first = __new_value; > } ># 1042 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, typename _Tp> > _OutputIterator > replace_copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, > const _Tp& __old_value, const _Tp& __new_value) > { > > > > > > > ; > > for ( ; __first != __last; ++__first, ++__result) > if (*__first == __old_value) > *__result = __new_value; > else > *__result = *__first; > return __result; > } ># 1078 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, > typename _Predicate, typename _Tp> > _OutputIterator > replace_copy_if(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, > _Predicate __pred, const _Tp& __new_value) > { > > > > > > > ; > > for ( ; __first != __last; ++__first, ++__result) > if (__pred(*__first)) > *__result = __new_value; > else > *__result = *__first; > return __result; > } ># 1112 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Generator> > void > generate(_ForwardIterator __first, _ForwardIterator __last, > _Generator __gen) > { > > > > > ; > > for ( ; __first != __last; ++__first) > *__first = __gen(); > } ># 1138 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _OutputIterator, typename _Size, typename _Generator> > _OutputIterator > generate_n(_OutputIterator __first, _Size __n, _Generator __gen) > { > > > > > > for ( ; __n > 0; --__n, ++__first) > *__first = __gen(); > return __first; > } ># 1165 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, typename _Tp> > _OutputIterator > remove_copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, const _Tp& __value) > { > > > > > > > ; > > for ( ; __first != __last; ++__first) > if (!(*__first == __value)) > { > *__result = *__first; > ++__result; > } > return __result; > } ># 1201 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, > typename _Predicate> > _OutputIterator > remove_copy_if(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, _Predicate __pred) > { > > > > > > > ; > > for ( ; __first != __last; ++__first) > if (!__pred(*__first)) > { > *__result = *__first; > ++__result; > } > return __result; > } ># 1240 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp> > _ForwardIterator > remove(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __value) > { > > > > > > ; > > __first = std::find(__first, __last, __value); > _ForwardIterator __i = __first; > return __first == __last ? __first > : std::remove_copy(++__i, __last, > __first, __value); > } ># 1275 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Predicate> > _ForwardIterator > remove_if(_ForwardIterator __first, _ForwardIterator __last, > _Predicate __pred) > { > > > > > > ; > > __first = std::find_if(__first, __last, __pred); > _ForwardIterator __i = __first; > return __first == __last ? __first > : std::remove_copy_if(++__i, __last, > __first, __pred); > } ># 1301 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator> > _OutputIterator > __unique_copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, > output_iterator_tag) > { > > typename iterator_traits<_InputIterator>::value_type __value = *__first; > *__result = __value; > while (++__first != __last) > if (!(__value == *__first)) > { > __value = *__first; > *++__result = __value; > } > return ++__result; > } ># 1326 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _ForwardIterator> > _ForwardIterator > __unique_copy(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result, > forward_iterator_tag) > { > > *__result = *__first; > while (++__first != __last) > if (!(*__result == *__first)) > *++__result = *__first; > return ++__result; > } ># 1348 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, > typename _BinaryPredicate> > _OutputIterator > __unique_copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, > _BinaryPredicate __binary_pred, > output_iterator_tag) > { > > > > > > typename iterator_traits<_InputIterator>::value_type __value = *__first; > *__result = __value; > while (++__first != __last) > if (!__binary_pred(__value, *__first)) > { > __value = *__first; > *++__result = __value; > } > return ++__result; > } ># 1380 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _ForwardIterator, > typename _BinaryPredicate> > _ForwardIterator > __unique_copy(_InputIterator __first, _InputIterator __last, > _ForwardIterator __result, > _BinaryPredicate __binary_pred, > forward_iterator_tag) > { > > > > > > *__result = *__first; > while (++__first != __last) > if (!__binary_pred(*__result, *__first)) *++__result = *__first; > return ++__result; > } ># 1412 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator> > inline _OutputIterator > unique_copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result) > { > > > > > > > ; > > typedef typename iterator_traits<_OutputIterator>::iterator_category > _IterType; > > if (__first == __last) return __result; > return std::__unique_copy(__first, __last, __result, _IterType()); > } ># 1447 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _OutputIterator, > typename _BinaryPredicate> > inline _OutputIterator > unique_copy(_InputIterator __first, _InputIterator __last, > _OutputIterator __result, > _BinaryPredicate __binary_pred) > { > > > > > ; > > typedef typename iterator_traits<_OutputIterator>::iterator_category > _IterType; > > if (__first == __last) return __result; > return std::__unique_copy(__first, __last, __result, > __binary_pred, _IterType()); > } ># 1481 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator> > _ForwardIterator > unique(_ForwardIterator __first, _ForwardIterator __last) > { > > > > > > ; > > > __first = std::adjacent_find(__first, __last); > if (__first == __last) > return __last; > > > _ForwardIterator __dest = __first; > ++__first; > while (++__first != __last) > if (!(*__dest == *__first)) > *++__dest = *__first; > return ++__dest; > } ># 1520 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _BinaryPredicate> > _ForwardIterator > unique(_ForwardIterator __first, _ForwardIterator __last, > _BinaryPredicate __binary_pred) > { > > > > > > > ; > > > __first = std::adjacent_find(__first, __last, __binary_pred); > if (__first == __last) > return __last; > > > _ForwardIterator __dest = __first; > ++__first; > while (++__first != __last) > if (!__binary_pred(*__dest, *__first)) > *++__dest = *__first; > return ++__dest; > } ># 1554 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator> > void > __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, > bidirectional_iterator_tag) > { > while (true) > if (__first == __last || __first == --__last) > return; > else > { > std::iter_swap(__first, __last); > ++__first; > } > } ># 1576 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator> > void > __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, > random_access_iterator_tag) > { > if (__first == __last) > return; > --__last; > while (__first < __last) > { > std::iter_swap(__first, __last); > ++__first; > --__last; > } > } ># 1603 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator> > inline void > reverse(_BidirectionalIterator __first, _BidirectionalIterator __last) > { > > > > ; > std::__reverse(__first, __last, std::__iterator_category(__first)); > } ># 1629 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator, typename _OutputIterator> > _OutputIterator > reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, > _OutputIterator __result) > { > > > > > > ; > > while (__first != __last) > { > --__last; > *__result = *__last; > ++__result; > } > return __result; > } ># 1657 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _EuclideanRingElement> > _EuclideanRingElement > __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n) > { > while (__n != 0) > { > _EuclideanRingElement __t = __m % __n; > __m = __n; > __n = __t; > } > return __m; > } > > > > > > > template<typename _ForwardIterator> > void > __rotate(_ForwardIterator __first, > _ForwardIterator __middle, > _ForwardIterator __last, > forward_iterator_tag) > { > if (__first == __middle || __last == __middle) > return; > > _ForwardIterator __first2 = __middle; > do > { > swap(*__first, *__first2); > ++__first; > ++__first2; > if (__first == __middle) > __middle = __first2; > } > while (__first2 != __last); > > __first2 = __middle; > > while (__first2 != __last) > { > swap(*__first, *__first2); > ++__first; > ++__first2; > if (__first == __middle) > __middle = __first2; > else if (__first2 == __last) > __first2 = __middle; > } > } > > > > > > > template<typename _BidirectionalIterator> > void > __rotate(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last, > bidirectional_iterator_tag) > { > > > > > if (__first == __middle || __last == __middle) > return; > > std::__reverse(__first, __middle, bidirectional_iterator_tag()); > std::__reverse(__middle, __last, bidirectional_iterator_tag()); > > while (__first != __middle && __middle != __last) > { > swap(*__first, *--__last); > ++__first; > } > > if (__first == __middle) > std::__reverse(__middle, __last, bidirectional_iterator_tag()); > else > std::__reverse(__first, __middle, bidirectional_iterator_tag()); > } > > > > > > > template<typename _RandomAccessIterator> > void > __rotate(_RandomAccessIterator __first, > _RandomAccessIterator __middle, > _RandomAccessIterator __last, > random_access_iterator_tag) > { > > > > > if (__first == __middle || __last == __middle) > return; > > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _Distance; > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > const _Distance __n = __last - __first; > const _Distance __k = __middle - __first; > const _Distance __l = __n - __k; > > if (__k == __l) > { > std::swap_ranges(__first, __middle, __middle); > return; > } > > const _Distance __d = __gcd(__n, __k); > > for (_Distance __i = 0; __i < __d; __i++) > { > _ValueType __tmp = *__first; > _RandomAccessIterator __p = __first; > > if (__k < __l) > { > for (_Distance __j = 0; __j < __l / __d; __j++) > { > if (__p > __first + __l) > { > *__p = *(__p - __l); > __p -= __l; > } > > *__p = *(__p + __k); > __p += __k; > } > } > else > { > for (_Distance __j = 0; __j < __k / __d - 1; __j ++) > { > if (__p < __last - __k) > { > *__p = *(__p + __k); > __p += __k; > } > *__p = * (__p - __l); > __p -= __l; > } > } > > *__p = __tmp; > ++__first; > } > } ># 1836 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator> > inline void > rotate(_ForwardIterator __first, _ForwardIterator __middle, > _ForwardIterator __last) > { > > > > ; > ; > > typedef typename iterator_traits<_ForwardIterator>::iterator_category > _IterType; > std::__rotate(__first, __middle, __last, _IterType()); > } ># 1869 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _OutputIterator> > _OutputIterator > rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, > _ForwardIterator __last, _OutputIterator __result) > { > > > > > ; > ; > > return std::copy(__first, __middle, > std::copy(__middle, __last, __result)); > } ># 1895 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator> > inline void > random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > > > > ; > > if (__first != __last) > for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) > std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1))); > } ># 1922 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator, typename _RandomNumberGenerator> > void > random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last, > _RandomNumberGenerator& __rand) > { > > > > ; > > if (__first == __last) > return; > for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) > std::iter_swap(__i, __first + __rand((__i - __first) + 1)); > } > > > > > > > > template<typename _ForwardIterator, typename _Predicate> > _ForwardIterator > __partition(_ForwardIterator __first, _ForwardIterator __last, > _Predicate __pred, > forward_iterator_tag) > { > if (__first == __last) > return __first; > > while (__pred(*__first)) > if (++__first == __last) > return __first; > > _ForwardIterator __next = __first; > > while (++__next != __last) > if (__pred(*__next)) > { > swap(*__first, *__next); > ++__first; > } > > return __first; > } > > > > > > > template<typename _BidirectionalIterator, typename _Predicate> > _BidirectionalIterator > __partition(_BidirectionalIterator __first, _BidirectionalIterator __last, > _Predicate __pred, > bidirectional_iterator_tag) > { > while (true) > { > while (true) > if (__first == __last) > return __first; > else if (__pred(*__first)) > ++__first; > else > break; > --__last; > while (true) > if (__first == __last) > return __first; > else if (!__pred(*__last)) > --__last; > else > break; > std::iter_swap(__first, __last); > ++__first; > } > } ># 2016 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Predicate> > inline _ForwardIterator > partition(_ForwardIterator __first, _ForwardIterator __last, > _Predicate __pred) > { > > > > > > ; > > return std::__partition(__first, __last, __pred, > std::__iterator_category(__first)); > } > > > > > > > > template<typename _ForwardIterator, typename _Predicate, typename _Distance> > _ForwardIterator > __inplace_stable_partition(_ForwardIterator __first, > _ForwardIterator __last, > _Predicate __pred, _Distance __len) > { > if (__len == 1) > return __pred(*__first) ? __last : __first; > _ForwardIterator __middle = __first; > std::advance(__middle, __len / 2); > _ForwardIterator __begin = std::__inplace_stable_partition(__first, > __middle, > __pred, > __len / 2); > _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last, > __pred, > __len > - __len / 2); > std::rotate(__begin, __middle, __end); > std::advance(__begin, std::distance(__middle, __end)); > return __begin; > } > > > > > > > template<typename _ForwardIterator, typename _Pointer, typename _Predicate, > typename _Distance> > _ForwardIterator > __stable_partition_adaptive(_ForwardIterator __first, > _ForwardIterator __last, > _Predicate __pred, _Distance __len, > _Pointer __buffer, > _Distance __buffer_size) > { > if (__len <= __buffer_size) > { > _ForwardIterator __result1 = __first; > _Pointer __result2 = __buffer; > for ( ; __first != __last ; ++__first) > if (__pred(*__first)) > { > *__result1 = *__first; > ++__result1; > } > else > { > *__result2 = *__first; > ++__result2; > } > std::copy(__buffer, __result2, __result1); > return __result1; > } > else > { > _ForwardIterator __middle = __first; > std::advance(__middle, __len / 2); > _ForwardIterator __begin = > std::__stable_partition_adaptive(__first, __middle, __pred, > __len / 2, __buffer, > __buffer_size); > _ForwardIterator __end = > std::__stable_partition_adaptive(__middle, __last, __pred, > __len - __len / 2, > __buffer, __buffer_size); > std::rotate(__begin, __middle, __end); > std::advance(__begin, std::distance(__middle, __end)); > return __begin; > } > } ># 2127 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Predicate> > _ForwardIterator > stable_partition(_ForwardIterator __first, _ForwardIterator __last, > _Predicate __pred) > { > > > > > > ; > > if (__first == __last) > return __first; > else > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first, > __last); > if (__buf.size() > 0) > return > std::__stable_partition_adaptive(__first, __last, __pred, > _DistanceType(__buf.requested_size()), > __buf.begin(), __buf.size()); > else > return > std::__inplace_stable_partition(__first, __last, __pred, > _DistanceType(__buf.requested_size())); > } > } > > > > > > > template<typename _RandomAccessIterator, typename _Tp> > _RandomAccessIterator > __unguarded_partition(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Tp __pivot) > { > while (true) > { > while (*__first < __pivot) > ++__first; > --__last; > while (__pivot < *__last) > --__last; > if (!(__first < __last)) > return __first; > std::iter_swap(__first, __last); > ++__first; > } > } > > > > > > > template<typename _RandomAccessIterator, typename _Tp, typename _Compare> > _RandomAccessIterator > __unguarded_partition(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Tp __pivot, _Compare __comp) > { > while (true) > { > while (__comp(*__first, __pivot)) > ++__first; > --__last; > while (__comp(__pivot, *__last)) > --__last; > if (!(__first < __last)) > return __first; > std::iter_swap(__first, __last); > ++__first; > } > } > > > > > > > > enum { _S_threshold = 16 }; > > > > > > > template<typename _RandomAccessIterator, typename _Tp> > void > __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val) > { > _RandomAccessIterator __next = __last; > --__next; > while (__val < *__next) > { > *__last = *__next; > __last = __next; > --__next; > } > *__last = __val; > } > > > > > > > template<typename _RandomAccessIterator, typename _Tp, typename _Compare> > void > __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val, > _Compare __comp) > { > _RandomAccessIterator __next = __last; > --__next; > while (__comp(__val, *__next)) > { > *__last = *__next; > __last = __next; > --__next; > } > *__last = __val; > } > > > > > > > template<typename _RandomAccessIterator> > void > __insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last) > { > if (__first == __last) > return; > > for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) > { > typename iterator_traits<_RandomAccessIterator>::value_type > __val = *__i; > if (__val < *__first) > { > std::copy_backward(__first, __i, __i + 1); > *__first = __val; > } > else > std::__unguarded_linear_insert(__i, __val); > } > } > > > > > > > template<typename _RandomAccessIterator, typename _Compare> > void > __insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > if (__first == __last) return; > > for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i) > { > typename iterator_traits<_RandomAccessIterator>::value_type > __val = *__i; > if (__comp(__val, *__first)) > { > std::copy_backward(__first, __i, __i + 1); > *__first = __val; > } > else > std::__unguarded_linear_insert(__i, __val, __comp); > } > } > > > > > > > template<typename _RandomAccessIterator> > inline void > __unguarded_insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > for (_RandomAccessIterator __i = __first; __i != __last; ++__i) > std::__unguarded_linear_insert(__i, _ValueType(*__i)); > } > > > > > > > template<typename _RandomAccessIterator, typename _Compare> > inline void > __unguarded_insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > for (_RandomAccessIterator __i = __first; __i != __last; ++__i) > std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp); > } > > > > > > > template<typename _RandomAccessIterator> > void > __final_insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last) > { > if (__last - __first > int(_S_threshold)) > { > std::__insertion_sort(__first, __first + int(_S_threshold)); > std::__unguarded_insertion_sort(__first + int(_S_threshold), __last); > } > else > std::__insertion_sort(__first, __last); > } > > > > > > > template<typename _RandomAccessIterator, typename _Compare> > void > __final_insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > if (__last - __first > int(_S_threshold)) > { > std::__insertion_sort(__first, __first + int(_S_threshold), __comp); > std::__unguarded_insertion_sort(__first + int(_S_threshold), __last, > __comp); > } > else > std::__insertion_sort(__first, __last, __comp); > } > > > > > > > template<typename _Size> > inline _Size > __lg(_Size __n) > { > _Size __k; > for (__k = 0; __n != 1; __n >>= 1) > ++__k; > return __k; > } ># 2416 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator> > void > partial_sort(_RandomAccessIterator __first, > _RandomAccessIterator __middle, > _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > ; > ; > > std::make_heap(__first, __middle); > for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) > if (*__i < *__first) > std::__pop_heap(__first, __middle, __i, _ValueType(*__i)); > std::sort_heap(__first, __middle); > } ># 2457 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > void > partial_sort(_RandomAccessIterator __first, > _RandomAccessIterator __middle, > _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > > ; > ; > > std::make_heap(__first, __middle, __comp); > for (_RandomAccessIterator __i = __middle; __i < __last; ++__i) > if (__comp(*__i, *__first)) > std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp); > std::sort_heap(__first, __middle, __comp); > } ># 2499 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _RandomAccessIterator> > _RandomAccessIterator > partial_sort_copy(_InputIterator __first, _InputIterator __last, > _RandomAccessIterator __result_first, > _RandomAccessIterator __result_last) > { > typedef typename iterator_traits<_InputIterator>::value_type > _InputValueType; > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _OutputValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > > ; > ; > > if (__result_first == __result_last) > return __result_last; > _RandomAccessIterator __result_real_last = __result_first; > while(__first != __last && __result_real_last != __result_last) > { > *__result_real_last = *__first; > ++__result_real_last; > ++__first; > } > std::make_heap(__result_first, __result_real_last); > while (__first != __last) > { > if (*__first < *__result_first) > std::__adjust_heap(__result_first, _DistanceType(0), > _DistanceType(__result_real_last > - __result_first), > _InputValueType(*__first)); > ++__first; > } > std::sort_heap(__result_first, __result_real_last); > return __result_real_last; > } ># 2563 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare> > _RandomAccessIterator > partial_sort_copy(_InputIterator __first, _InputIterator __last, > _RandomAccessIterator __result_first, > _RandomAccessIterator __result_last, > _Compare __comp) > { > typedef typename iterator_traits<_InputIterator>::value_type > _InputValueType; > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _OutputValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > > > > ; > ; > > if (__result_first == __result_last) > return __result_last; > _RandomAccessIterator __result_real_last = __result_first; > while(__first != __last && __result_real_last != __result_last) > { > *__result_real_last = *__first; > ++__result_real_last; > ++__first; > } > std::make_heap(__result_first, __result_real_last, __comp); > while (__first != __last) > { > if (__comp(*__first, *__result_first)) > std::__adjust_heap(__result_first, _DistanceType(0), > _DistanceType(__result_real_last > - __result_first), > _InputValueType(*__first), > __comp); > ++__first; > } > std::sort_heap(__result_first, __result_real_last, __comp); > return __result_real_last; > } > > > > > > > template<typename _RandomAccessIterator, typename _Size> > void > __introsort_loop(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Size __depth_limit) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > while (__last - __first > int(_S_threshold)) > { > if (__depth_limit == 0) > { > std::partial_sort(__first, __last, __last); > return; > } > --__depth_limit; > _RandomAccessIterator __cut = > std::__unguarded_partition(__first, __last, > _ValueType(std::__median(*__first, > *(__first > + (__last > - __first) > / 2), > *(__last > - 1)))); > std::__introsort_loop(__cut, __last, __depth_limit); > __last = __cut; > } > } > > > > > > > template<typename _RandomAccessIterator, typename _Size, typename _Compare> > void > __introsort_loop(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Size __depth_limit, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > while (__last - __first > int(_S_threshold)) > { > if (__depth_limit == 0) > { > std::partial_sort(__first, __last, __last, __comp); > return; > } > --__depth_limit; > _RandomAccessIterator __cut = > std::__unguarded_partition(__first, __last, > _ValueType(std::__median(*__first, > *(__first > + (__last > - __first) > / 2), > *(__last - 1), > __comp)), > __comp); > std::__introsort_loop(__cut, __last, __depth_limit, __comp); > __last = __cut; > } > } ># 2698 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator> > inline void > sort(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > ; > > if (__first != __last) > { > std::__introsort_loop(__first, __last, __lg(__last - __first) * 2); > std::__final_insertion_sort(__first, __last); > } > } ># 2732 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > inline void > sort(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > > ; > > if (__first != __last) > { > std::__introsort_loop(__first, __last, __lg(__last - __first) * 2, > __comp); > std::__final_insertion_sort(__first, __last, __comp); > } > } ># 2765 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp> > _ForwardIterator > lower_bound(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > > > > > > > > > ; > > _DistanceType __len = std::distance(__first, __last); > _DistanceType __half; > _ForwardIterator __middle; > > while (__len > 0) > { > __half = __len >> 1; > __middle = __first; > std::advance(__middle, __half); > if (*__middle < __val) > { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else > __len = __half; > } > return __first; > } ># 2820 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp, typename _Compare> > _ForwardIterator > lower_bound(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val, _Compare __comp) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > > > > > ; > > _DistanceType __len = std::distance(__first, __last); > _DistanceType __half; > _ForwardIterator __middle; > > while (__len > 0) > { > __half = __len >> 1; > __middle = __first; > std::advance(__middle, __half); > if (__comp(*__middle, __val)) > { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else > __len = __half; > } > return __first; > } ># 2867 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp> > _ForwardIterator > upper_bound(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > > > > > > ; > > _DistanceType __len = std::distance(__first, __last); > _DistanceType __half; > _ForwardIterator __middle; > > while (__len > 0) > { > __half = __len >> 1; > __middle = __first; > std::advance(__middle, __half); > if (__val < *__middle) > __len = __half; > else > { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > } > return __first; > } ># 2919 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp, typename _Compare> > _ForwardIterator > upper_bound(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val, _Compare __comp) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > > > > > ; > > _DistanceType __len = std::distance(__first, __last); > _DistanceType __half; > _ForwardIterator __middle; > > while (__len > 0) > { > __half = __len >> 1; > __middle = __first; > std::advance(__middle, __half); > if (__comp(__val, *__middle)) > __len = __half; > else > { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > } > return __first; > } > > > > > > > template<typename _BidirectionalIterator, typename _Distance> > void > __merge_without_buffer(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last, > _Distance __len1, _Distance __len2) > { > if (__len1 == 0 || __len2 == 0) > return; > if (__len1 + __len2 == 2) > { > if (*__middle < *__first) > std::iter_swap(__first, __middle); > return; > } > _BidirectionalIterator __first_cut = __first; > _BidirectionalIterator __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) > { > __len11 = __len1 / 2; > std::advance(__first_cut, __len11); > __second_cut = std::lower_bound(__middle, __last, *__first_cut); > __len22 = std::distance(__middle, __second_cut); > } > else > { > __len22 = __len2 / 2; > std::advance(__second_cut, __len22); > __first_cut = std::upper_bound(__first, __middle, *__second_cut); > __len11 = std::distance(__first, __first_cut); > } > std::rotate(__first_cut, __middle, __second_cut); > _BidirectionalIterator __new_middle = __first_cut; > std::advance(__new_middle, std::distance(__middle, __second_cut)); > std::__merge_without_buffer(__first, __first_cut, __new_middle, > __len11, __len22); > std::__merge_without_buffer(__new_middle, __second_cut, __last, > __len1 - __len11, __len2 - __len22); > } > > > > > > > template<typename _BidirectionalIterator, typename _Distance, > typename _Compare> > void > __merge_without_buffer(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last, > _Distance __len1, _Distance __len2, > _Compare __comp) > { > if (__len1 == 0 || __len2 == 0) > return; > if (__len1 + __len2 == 2) > { > if (__comp(*__middle, *__first)) > std::iter_swap(__first, __middle); > return; > } > _BidirectionalIterator __first_cut = __first; > _BidirectionalIterator __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) > { > __len11 = __len1 / 2; > std::advance(__first_cut, __len11); > __second_cut = std::lower_bound(__middle, __last, *__first_cut, > __comp); > __len22 = std::distance(__middle, __second_cut); > } > else > { > __len22 = __len2 / 2; > std::advance(__second_cut, __len22); > __first_cut = std::upper_bound(__first, __middle, *__second_cut, > __comp); > __len11 = std::distance(__first, __first_cut); > } > std::rotate(__first_cut, __middle, __second_cut); > _BidirectionalIterator __new_middle = __first_cut; > std::advance(__new_middle, std::distance(__middle, __second_cut)); > std::__merge_without_buffer(__first, __first_cut, __new_middle, > __len11, __len22, __comp); > std::__merge_without_buffer(__new_middle, __second_cut, __last, > __len1 - __len11, __len2 - __len22, __comp); > } > > > > > > > template<typename _RandomAccessIterator> > void > __inplace_stable_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last) > { > if (__last - __first < 15) > { > std::__insertion_sort(__first, __last); > return; > } > _RandomAccessIterator __middle = __first + (__last - __first) / 2; > std::__inplace_stable_sort(__first, __middle); > std::__inplace_stable_sort(__middle, __last); > std::__merge_without_buffer(__first, __middle, __last, > __middle - __first, > __last - __middle); > } > > > > > > > template<typename _RandomAccessIterator, typename _Compare> > void > __inplace_stable_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last, _Compare __comp) > { > if (__last - __first < 15) > { > std::__insertion_sort(__first, __last, __comp); > return; > } > _RandomAccessIterator __middle = __first + (__last - __first) / 2; > std::__inplace_stable_sort(__first, __middle, __comp); > std::__inplace_stable_sort(__middle, __last, __comp); > std::__merge_without_buffer(__first, __middle, __last, > __middle - __first, > __last - __middle, > __comp); > } ># 3117 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator> > _OutputIterator > merge(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result) > { > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > { > if (*__first2 < *__first1) > { > *__result = *__first2; > ++__first2; > } > else > { > *__result = *__first1; > ++__first1; > } > ++__result; > } > return std::copy(__first2, __last2, std::copy(__first1, __last1, > __result)); > } ># 3175 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator, typename _Compare> > _OutputIterator > merge(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result, _Compare __comp) > { > > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > { > if (__comp(*__first2, *__first1)) > { > *__result = *__first2; > ++__first2; > } > else > { > *__result = *__first1; > ++__first1; > } > ++__result; > } > return std::copy(__first2, __last2, std::copy(__first1, __last1, > __result)); > } > > template<typename _RandomAccessIterator1, typename _RandomAccessIterator2, > typename _Distance> > void > __merge_sort_loop(_RandomAccessIterator1 __first, > _RandomAccessIterator1 __last, > _RandomAccessIterator2 __result, > _Distance __step_size) > { > const _Distance __two_step = 2 * __step_size; > > while (__last - __first >= __two_step) > { > __result = std::merge(__first, __first + __step_size, > __first + __step_size, __first + __two_step, > __result); > __first += __two_step; > } > > __step_size = std::min(_Distance(__last - __first), __step_size); > std::merge(__first, __first + __step_size, __first + __step_size, __last, > __result); > } > > template<typename _RandomAccessIterator1, typename _RandomAccessIterator2, > typename _Distance, typename _Compare> > void > __merge_sort_loop(_RandomAccessIterator1 __first, > _RandomAccessIterator1 __last, > _RandomAccessIterator2 __result, _Distance __step_size, > _Compare __comp) > { > const _Distance __two_step = 2 * __step_size; > > while (__last - __first >= __two_step) > { > __result = std::merge(__first, __first + __step_size, > __first + __step_size, __first + __two_step, > __result, > __comp); > __first += __two_step; > } > __step_size = std::min(_Distance(__last - __first), __step_size); > > std::merge(__first, __first + __step_size, > __first + __step_size, __last, > __result, > __comp); > } > > enum { _S_chunk_size = 7 }; > > template<typename _RandomAccessIterator, typename _Distance> > void > __chunk_insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Distance __chunk_size) > { > while (__last - __first >= __chunk_size) > { > std::__insertion_sort(__first, __first + __chunk_size); > __first += __chunk_size; > } > std::__insertion_sort(__first, __last); > } > > template<typename _RandomAccessIterator, typename _Distance, typename _Compare> > void > __chunk_insertion_sort(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Distance __chunk_size, _Compare __comp) > { > while (__last - __first >= __chunk_size) > { > std::__insertion_sort(__first, __first + __chunk_size, __comp); > __first += __chunk_size; > } > std::__insertion_sort(__first, __last, __comp); > } > > template<typename _RandomAccessIterator, typename _Pointer> > void > __merge_sort_with_buffer(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Pointer __buffer) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _Distance; > > const _Distance __len = __last - __first; > const _Pointer __buffer_last = __buffer + __len; > > _Distance __step_size = _S_chunk_size; > std::__chunk_insertion_sort(__first, __last, __step_size); > > while (__step_size < __len) > { > std::__merge_sort_loop(__first, __last, __buffer, __step_size); > __step_size *= 2; > std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size); > __step_size *= 2; > } > } > > template<typename _RandomAccessIterator, typename _Pointer, typename _Compare> > void > __merge_sort_with_buffer(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Pointer __buffer, _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _Distance; > > const _Distance __len = __last - __first; > const _Pointer __buffer_last = __buffer + __len; > > _Distance __step_size = _S_chunk_size; > std::__chunk_insertion_sort(__first, __last, __step_size, __comp); > > while (__step_size < __len) > { > std::__merge_sort_loop(__first, __last, __buffer, > __step_size, __comp); > __step_size *= 2; > std::__merge_sort_loop(__buffer, __buffer_last, __first, > __step_size, __comp); > __step_size *= 2; > } > } > > > > > > > template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, > typename _BidirectionalIterator3> > _BidirectionalIterator3 > __merge_backward(_BidirectionalIterator1 __first1, > _BidirectionalIterator1 __last1, > _BidirectionalIterator2 __first2, > _BidirectionalIterator2 __last2, > _BidirectionalIterator3 __result) > { > if (__first1 == __last1) > return std::copy_backward(__first2, __last2, __result); > if (__first2 == __last2) > return std::copy_backward(__first1, __last1, __result); > --__last1; > --__last2; > while (true) > { > if (*__last2 < *__last1) > { > *--__result = *__last1; > if (__first1 == __last1) > return std::copy_backward(__first2, ++__last2, __result); > --__last1; > } > else > { > *--__result = *__last2; > if (__first2 == __last2) > return std::copy_backward(__first1, ++__last1, __result); > --__last2; > } > } > } > > > > > > > template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, > typename _BidirectionalIterator3, typename _Compare> > _BidirectionalIterator3 > __merge_backward(_BidirectionalIterator1 __first1, > _BidirectionalIterator1 __last1, > _BidirectionalIterator2 __first2, > _BidirectionalIterator2 __last2, > _BidirectionalIterator3 __result, > _Compare __comp) > { > if (__first1 == __last1) > return std::copy_backward(__first2, __last2, __result); > if (__first2 == __last2) > return std::copy_backward(__first1, __last1, __result); > --__last1; > --__last2; > while (true) > { > if (__comp(*__last2, *__last1)) > { > *--__result = *__last1; > if (__first1 == __last1) > return std::copy_backward(__first2, ++__last2, __result); > --__last1; > } > else > { > *--__result = *__last2; > if (__first2 == __last2) > return std::copy_backward(__first1, ++__last1, __result); > --__last2; > } > } > } > > > > > > > template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, > typename _Distance> > _BidirectionalIterator1 > __rotate_adaptive(_BidirectionalIterator1 __first, > _BidirectionalIterator1 __middle, > _BidirectionalIterator1 __last, > _Distance __len1, _Distance __len2, > _BidirectionalIterator2 __buffer, > _Distance __buffer_size) > { > _BidirectionalIterator2 __buffer_end; > if (__len1 > __len2 && __len2 <= __buffer_size) > { > __buffer_end = std::copy(__middle, __last, __buffer); > std::copy_backward(__first, __middle, __last); > return std::copy(__buffer, __buffer_end, __first); > } > else if (__len1 <= __buffer_size) > { > __buffer_end = std::copy(__first, __middle, __buffer); > std::copy(__middle, __last, __first); > return std::copy_backward(__buffer, __buffer_end, __last); > } > else > { > std::rotate(__first, __middle, __last); > std::advance(__first, std::distance(__middle, __last)); > return __first; > } > } > > > > > > > template<typename _BidirectionalIterator, typename _Distance, > typename _Pointer> > void > __merge_adaptive(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last, > _Distance __len1, _Distance __len2, > _Pointer __buffer, _Distance __buffer_size) > { > if (__len1 <= __len2 && __len1 <= __buffer_size) > { > _Pointer __buffer_end = std::copy(__first, __middle, __buffer); > std::merge(__buffer, __buffer_end, __middle, __last, __first); > } > else if (__len2 <= __buffer_size) > { > _Pointer __buffer_end = std::copy(__middle, __last, __buffer); > std::__merge_backward(__first, __middle, __buffer, > __buffer_end, __last); > } > else > { > _BidirectionalIterator __first_cut = __first; > _BidirectionalIterator __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) > { > __len11 = __len1 / 2; > std::advance(__first_cut, __len11); > __second_cut = std::lower_bound(__middle, __last, > *__first_cut); > __len22 = std::distance(__middle, __second_cut); > } > else > { > __len22 = __len2 / 2; > std::advance(__second_cut, __len22); > __first_cut = std::upper_bound(__first, __middle, > *__second_cut); > __len11 = std::distance(__first, __first_cut); > } > _BidirectionalIterator __new_middle = > std::__rotate_adaptive(__first_cut, __middle, __second_cut, > __len1 - __len11, __len22, __buffer, > __buffer_size); > std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, > __len22, __buffer, __buffer_size); > std::__merge_adaptive(__new_middle, __second_cut, __last, > __len1 - __len11, > __len2 - __len22, __buffer, __buffer_size); > } > } > > > > > > > template<typename _BidirectionalIterator, typename _Distance, typename _Pointer, > typename _Compare> > void > __merge_adaptive(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last, > _Distance __len1, _Distance __len2, > _Pointer __buffer, _Distance __buffer_size, > _Compare __comp) > { > if (__len1 <= __len2 && __len1 <= __buffer_size) > { > _Pointer __buffer_end = std::copy(__first, __middle, __buffer); > std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp); > } > else if (__len2 <= __buffer_size) > { > _Pointer __buffer_end = std::copy(__middle, __last, __buffer); > std::__merge_backward(__first, __middle, __buffer, __buffer_end, > __last, __comp); > } > else > { > _BidirectionalIterator __first_cut = __first; > _BidirectionalIterator __second_cut = __middle; > _Distance __len11 = 0; > _Distance __len22 = 0; > if (__len1 > __len2) > { > __len11 = __len1 / 2; > std::advance(__first_cut, __len11); > __second_cut = std::lower_bound(__middle, __last, *__first_cut, > __comp); > __len22 = std::distance(__middle, __second_cut); > } > else > { > __len22 = __len2 / 2; > std::advance(__second_cut, __len22); > __first_cut = std::upper_bound(__first, __middle, *__second_cut, > __comp); > __len11 = std::distance(__first, __first_cut); > } > _BidirectionalIterator __new_middle = > std::__rotate_adaptive(__first_cut, __middle, __second_cut, > __len1 - __len11, __len22, __buffer, > __buffer_size); > std::__merge_adaptive(__first, __first_cut, __new_middle, __len11, > __len22, __buffer, __buffer_size, __comp); > std::__merge_adaptive(__new_middle, __second_cut, __last, > __len1 - __len11, > __len2 - __len22, __buffer, > __buffer_size, __comp); > } > } ># 3595 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator> > void > inplace_merge(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last) > { > typedef typename iterator_traits<_BidirectionalIterator>::value_type > _ValueType; > typedef typename iterator_traits<_BidirectionalIterator>::difference_type > _DistanceType; > > > > > > ; > ; > > if (__first == __middle || __middle == __last) > return; > > _DistanceType __len1 = std::distance(__first, __middle); > _DistanceType __len2 = std::distance(__middle, __last); > > _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, > __last); > if (__buf.begin() == 0) > std::__merge_without_buffer(__first, __middle, __last, __len1, __len2); > else > std::__merge_adaptive(__first, __middle, __last, __len1, __len2, > __buf.begin(), _DistanceType(__buf.size())); > } ># 3649 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator, typename _Compare> > void > inplace_merge(_BidirectionalIterator __first, > _BidirectionalIterator __middle, > _BidirectionalIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_BidirectionalIterator>::value_type > _ValueType; > typedef typename iterator_traits<_BidirectionalIterator>::difference_type > _DistanceType; > > > > > > > ; > ; > > if (__first == __middle || __middle == __last) > return; > > const _DistanceType __len1 = std::distance(__first, __middle); > const _DistanceType __len2 = std::distance(__middle, __last); > > _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first, > __last); > if (__buf.begin() == 0) > std::__merge_without_buffer(__first, __middle, __last, __len1, > __len2, __comp); > else > std::__merge_adaptive(__first, __middle, __last, __len1, __len2, > __buf.begin(), _DistanceType(__buf.size()), > __comp); > } > > template<typename _RandomAccessIterator, typename _Pointer, > typename _Distance> > void > __stable_sort_adaptive(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Pointer __buffer, _Distance __buffer_size) > { > const _Distance __len = (__last - __first + 1) / 2; > const _RandomAccessIterator __middle = __first + __len; > if (__len > __buffer_size) > { > std::__stable_sort_adaptive(__first, __middle, > __buffer, __buffer_size); > std::__stable_sort_adaptive(__middle, __last, > __buffer, __buffer_size); > } > else > { > std::__merge_sort_with_buffer(__first, __middle, __buffer); > std::__merge_sort_with_buffer(__middle, __last, __buffer); > } > std::__merge_adaptive(__first, __middle, __last, > _Distance(__middle - __first), > _Distance(__last - __middle), > __buffer, __buffer_size); > } > > template<typename _RandomAccessIterator, typename _Pointer, > typename _Distance, typename _Compare> > void > __stable_sort_adaptive(_RandomAccessIterator __first, > _RandomAccessIterator __last, > _Pointer __buffer, _Distance __buffer_size, > _Compare __comp) > { > const _Distance __len = (__last - __first + 1) / 2; > const _RandomAccessIterator __middle = __first + __len; > if (__len > __buffer_size) > { > std::__stable_sort_adaptive(__first, __middle, __buffer, > __buffer_size, __comp); > std::__stable_sort_adaptive(__middle, __last, __buffer, > __buffer_size, __comp); > } > else > { > std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp); > std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp); > } > std::__merge_adaptive(__first, __middle, __last, > _Distance(__middle - __first), > _Distance(__last - __middle), > __buffer, __buffer_size, > __comp); > } ># 3758 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator> > inline void > stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > ; > > _Temporary_buffer<_RandomAccessIterator, _ValueType> > buf(__first, __last); > if (buf.begin() == 0) > std::__inplace_stable_sort(__first, __last); > else > std::__stable_sort_adaptive(__first, __last, buf.begin(), > _DistanceType(buf.size())); > } ># 3799 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > inline void > stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > typedef typename iterator_traits<_RandomAccessIterator>::difference_type > _DistanceType; > > > > > > > > ; > > _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last); > if (buf.begin() == 0) > std::__inplace_stable_sort(__first, __last, __comp); > else > std::__stable_sort_adaptive(__first, __last, buf.begin(), > _DistanceType(buf.size()), __comp); > } ># 3840 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator> > void > nth_element(_RandomAccessIterator __first, > _RandomAccessIterator __nth, > _RandomAccessIterator __last) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > ; > ; > > while (__last - __first > 3) > { > _RandomAccessIterator __cut = > std::__unguarded_partition(__first, __last, > _ValueType(std::__median(*__first, > *(__first > + (__last > - __first) > / 2), > *(__last > - 1)))); > if (__cut <= __nth) > __first = __cut; > else > __last = __cut; > } > std::__insertion_sort(__first, __last); > } ># 3891 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _RandomAccessIterator, typename _Compare> > void > nth_element(_RandomAccessIterator __first, > _RandomAccessIterator __nth, > _RandomAccessIterator __last, > _Compare __comp) > { > typedef typename iterator_traits<_RandomAccessIterator>::value_type > _ValueType; > > > > > > > ; > ; > > while (__last - __first > 3) > { > _RandomAccessIterator __cut = > std::__unguarded_partition(__first, __last, > _ValueType(std::__median(*__first, > *(__first > + (__last > - __first) > / 2), > *(__last - 1), > __comp)), __comp); > if (__cut <= __nth) > __first = __cut; > else > __last = __cut; > } > std::__insertion_sort(__first, __last, __comp); > } ># 3944 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp> > pair<_ForwardIterator, _ForwardIterator> > equal_range(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > > > > > > ; > > _DistanceType __len = std::distance(__first, __last); > _DistanceType __half; > _ForwardIterator __middle, __left, __right; > > while (__len > 0) > { > __half = __len >> 1; > __middle = __first; > std::advance(__middle, __half); > if (*__middle < __val) > { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else if (__val < *__middle) > __len = __half; > else > { > __left = std::lower_bound(__first, __middle, __val); > std::advance(__first, __len); > __right = std::upper_bound(++__middle, __first, __val); > return pair<_ForwardIterator, _ForwardIterator>(__left, __right); > } > } > return pair<_ForwardIterator, _ForwardIterator>(__first, __first); > } ># 4006 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp, typename _Compare> > pair<_ForwardIterator, _ForwardIterator> > equal_range(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val, > _Compare __comp) > { > typedef typename iterator_traits<_ForwardIterator>::value_type > _ValueType; > typedef typename iterator_traits<_ForwardIterator>::difference_type > _DistanceType; > > > > > > > > ; > > _DistanceType __len = std::distance(__first, __last); > _DistanceType __half; > _ForwardIterator __middle, __left, __right; > > while (__len > 0) > { > __half = __len >> 1; > __middle = __first; > std::advance(__middle, __half); > if (__comp(*__middle, __val)) > { > __first = __middle; > ++__first; > __len = __len - __half - 1; > } > else if (__comp(__val, *__middle)) > __len = __half; > else > { > __left = std::lower_bound(__first, __middle, __val, __comp); > std::advance(__first, __len); > __right = std::upper_bound(++__middle, __first, __val, __comp); > return pair<_ForwardIterator, _ForwardIterator>(__left, __right); > } > } > return pair<_ForwardIterator, _ForwardIterator>(__first, __first); > } ># 4064 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp> > bool > binary_search(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val) > { > > > > > > > ; > > _ForwardIterator __i = std::lower_bound(__first, __last, __val); > return __i != __last && !(__val < *__i); > } ># 4096 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Tp, typename _Compare> > bool > binary_search(_ForwardIterator __first, _ForwardIterator __last, > const _Tp& __val, _Compare __comp) > { > > > > > > > ; > > _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp); > return __i != __last && !__comp(__val, *__i); > } ># 4134 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2> > bool > includes(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2) > { > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (*__first2 < *__first1) > return false; > else if(*__first1 < *__first2) > ++__first1; > else > ++__first1, ++__first2; > > return __first2 == __last2; > } ># 4180 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _Compare> > bool > includes(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp) > { > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first2, *__first1)) > return false; > else if(__comp(*__first1, *__first2)) > ++__first1; > else > ++__first1, ++__first2; > > return __first2 == __last2; > } ># 4226 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator> > _OutputIterator > set_union(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result) > { > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > { > if (*__first1 < *__first2) > { > *__result = *__first1; > ++__first1; > } > else if (*__first2 < *__first1) > { > *__result = *__first2; > ++__first2; > } > else > { > *__result = *__first1; > ++__first1; > ++__first2; > } > ++__result; > } > return std::copy(__first2, __last2, std::copy(__first1, __last1, > __result)); > } ># 4288 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator, typename _Compare> > _OutputIterator > set_union(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result, _Compare __comp) > { > > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > { > if (__comp(*__first1, *__first2)) > { > *__result = *__first1; > ++__first1; > } > else if (__comp(*__first2, *__first1)) > { > *__result = *__first2; > ++__first2; > } > else > { > *__result = *__first1; > ++__first1; > ++__first2; > } > ++__result; > } > return std::copy(__first2, __last2, std::copy(__first1, __last1, > __result)); > } ># 4349 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator> > _OutputIterator > set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result) > { > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) > ++__first1; > else if (*__first2 < *__first1) > ++__first2; > else > { > *__result = *__first1; > ++__first1; > ++__first2; > ++__result; > } > return __result; > } ># 4403 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator, typename _Compare> > _OutputIterator > set_intersection(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result, _Compare __comp) > { > > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) > ++__first1; > else if (__comp(*__first2, *__first1)) > ++__first2; > else > { > *__result = *__first1; > ++__first1; > ++__first2; > ++__result; > } > return __result; > } ># 4457 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator> > _OutputIterator > set_difference(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result) > { > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) > { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (*__first2 < *__first1) > ++__first2; > else > { > ++__first1; > ++__first2; > } > return std::copy(__first1, __last1, __result); > } ># 4515 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator, typename _Compare> > _OutputIterator > set_difference(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result, _Compare __comp) > { > > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) > { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (__comp(*__first2, *__first1)) > ++__first2; > else > { > ++__first1; > ++__first2; > } > return std::copy(__first1, __last1, __result); > } ># 4569 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator> > _OutputIterator > set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result) > { > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (*__first1 < *__first2) > { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (*__first2 < *__first1) > { > *__result = *__first2; > ++__first2; > ++__result; > } > else > { > ++__first1; > ++__first2; > } > return std::copy(__first2, __last2, std::copy(__first1, > __last1, __result)); > } ># 4630 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator1, typename _InputIterator2, > typename _OutputIterator, typename _Compare> > _OutputIterator > set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1, > _InputIterator2 __first2, _InputIterator2 __last2, > _OutputIterator __result, > _Compare __comp) > { > > > > > > > > > > > > ; > ; > > while (__first1 != __last1 && __first2 != __last2) > if (__comp(*__first1, *__first2)) > { > *__result = *__first1; > ++__first1; > ++__result; > } > else if (__comp(*__first2, *__first1)) > { > *__result = *__first2; > ++__first2; > ++__result; > } > else > { > ++__first1; > ++__first2; > } > return std::copy(__first2, __last2, std::copy(__first1, > __last1, __result)); > } ># 4683 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator> > _ForwardIterator > max_element(_ForwardIterator __first, _ForwardIterator __last) > { > > > > > ; > > if (__first == __last) > return __first; > _ForwardIterator __result = __first; > while (++__first != __last) > if (*__result < *__first) > __result = __first; > return __result; > } ># 4710 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Compare> > _ForwardIterator > max_element(_ForwardIterator __first, _ForwardIterator __last, > _Compare __comp) > { > > > > > > ; > > if (__first == __last) return __first; > _ForwardIterator __result = __first; > while (++__first != __last) > if (__comp(*__result, *__first)) __result = __first; > return __result; > } > > > > > > > > template<typename _ForwardIterator> > _ForwardIterator > min_element(_ForwardIterator __first, _ForwardIterator __last) > { > > > > > ; > > if (__first == __last) > return __first; > _ForwardIterator __result = __first; > while (++__first != __last) > if (*__first < *__result) > __result = __first; > return __result; > } ># 4762 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator, typename _Compare> > _ForwardIterator > min_element(_ForwardIterator __first, _ForwardIterator __last, > _Compare __comp) > { > > > > > > ; > > if (__first == __last) > return __first; > _ForwardIterator __result = __first; > while (++__first != __last) > if (__comp(*__first, *__result)) > __result = __first; > return __result; > } ># 4797 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator> > bool > next_permutation(_BidirectionalIterator __first, > _BidirectionalIterator __last) > { > > > > > > ; > > if (__first == __last) > return false; > _BidirectionalIterator __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) > { > _BidirectionalIterator __ii = __i; > --__i; > if (*__i < *__ii) > { > _BidirectionalIterator __j = __last; > while (!(*__i < *--__j)) > {} > std::iter_swap(__i, __j); > std::reverse(__ii, __last); > return true; > } > if (__i == __first) > { > std::reverse(__first, __last); > return false; > } > } > } ># 4853 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator, typename _Compare> > bool > next_permutation(_BidirectionalIterator __first, > _BidirectionalIterator __last, _Compare __comp) > { > > > > > > > ; > > if (__first == __last) > return false; > _BidirectionalIterator __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) > { > _BidirectionalIterator __ii = __i; > --__i; > if (__comp(*__i, *__ii)) > { > _BidirectionalIterator __j = __last; > while (!__comp(*__i, *--__j)) > {} > std::iter_swap(__i, __j); > std::reverse(__ii, __last); > return true; > } > if (__i == __first) > { > std::reverse(__first, __last); > return false; > } > } > } ># 4908 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator> > bool > prev_permutation(_BidirectionalIterator __first, > _BidirectionalIterator __last) > { > > > > > > ; > > if (__first == __last) > return false; > _BidirectionalIterator __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) > { > _BidirectionalIterator __ii = __i; > --__i; > if (*__ii < *__i) > { > _BidirectionalIterator __j = __last; > while (!(*--__j < *__i)) > {} > std::iter_swap(__i, __j); > std::reverse(__ii, __last); > return true; > } > if (__i == __first) > { > std::reverse(__first, __last); > return false; > } > } > } ># 4964 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _BidirectionalIterator, typename _Compare> > bool > prev_permutation(_BidirectionalIterator __first, > _BidirectionalIterator __last, _Compare __comp) > { > > > > > > > ; > > if (__first == __last) > return false; > _BidirectionalIterator __i = __first; > ++__i; > if (__i == __last) > return false; > __i = __last; > --__i; > > for(;;) > { > _BidirectionalIterator __ii = __i; > --__i; > if (__comp(*__ii, *__i)) > { > _BidirectionalIterator __j = __last; > while (!__comp(*--__j, *__i)) > {} > std::iter_swap(__i, __j); > std::reverse(__ii, __last); > return true; > } > if (__i == __first) > { > std::reverse(__first, __last); > return false; > } > } > } ># 5023 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _ForwardIterator> > _InputIterator > find_first_of(_InputIterator __first1, _InputIterator __last1, > _ForwardIterator __first2, _ForwardIterator __last2) > { > > > > > > > ; > ; > > for ( ; __first1 != __last1; ++__first1) > for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) > if (*__first1 == *__iter) > return __first1; > return __last1; > } ># 5059 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _InputIterator, typename _ForwardIterator, > typename _BinaryPredicate> > _InputIterator > find_first_of(_InputIterator __first1, _InputIterator __last1, > _ForwardIterator __first2, _ForwardIterator __last2, > _BinaryPredicate __comp) > { > > > > > > > ; > ; > > for ( ; __first1 != __last1; ++__first1) > for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter) > if (__comp(*__first1, *__iter)) > return __first1; > return __last1; > } ># 5089 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > _ForwardIterator1 > __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2, _ForwardIterator2 __last2, > forward_iterator_tag, forward_iterator_tag) > { > if (__first2 == __last2) > return __last1; > else > { > _ForwardIterator1 __result = __last1; > while (1) > { > _ForwardIterator1 __new_result > = std::search(__first1, __last1, __first2, __last2); > if (__new_result == __last1) > return __result; > else > { > __result = __new_result; > __first1 = __new_result; > ++__first1; > } > } > } > } > > template<typename _ForwardIterator1, typename _ForwardIterator2, > typename _BinaryPredicate> > _ForwardIterator1 > __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2, _ForwardIterator2 __last2, > forward_iterator_tag, forward_iterator_tag, > _BinaryPredicate __comp) > { > if (__first2 == __last2) > return __last1; > else > { > _ForwardIterator1 __result = __last1; > while (1) > { > _ForwardIterator1 __new_result > = std::search(__first1, __last1, __first2, __last2, __comp); > if (__new_result == __last1) > return __result; > else > { > __result = __new_result; > __first1 = __new_result; > ++__first1; > } > } > } > } > > > template<typename _BidirectionalIterator1, typename _BidirectionalIterator2> > _BidirectionalIterator1 > __find_end(_BidirectionalIterator1 __first1, > _BidirectionalIterator1 __last1, > _BidirectionalIterator2 __first2, > _BidirectionalIterator2 __last2, > bidirectional_iterator_tag, bidirectional_iterator_tag) > { > > > > > > > typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; > typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; > > _RevIterator1 __rlast1(__first1); > _RevIterator2 __rlast2(__first2); > _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1, > _RevIterator2(__last2), __rlast2); > > if (__rresult == __rlast1) > return __last1; > else > { > _BidirectionalIterator1 __result = __rresult.base(); > std::advance(__result, -std::distance(__first2, __last2)); > return __result; > } > } > > template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, > typename _BinaryPredicate> > _BidirectionalIterator1 > __find_end(_BidirectionalIterator1 __first1, > _BidirectionalIterator1 __last1, > _BidirectionalIterator2 __first2, > _BidirectionalIterator2 __last2, > bidirectional_iterator_tag, bidirectional_iterator_tag, > _BinaryPredicate __comp) > { > > > > > > > typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1; > typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2; > > _RevIterator1 __rlast1(__first1); > _RevIterator2 __rlast2(__first2); > _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1, > _RevIterator2(__last2), __rlast2, > __comp); > > if (__rresult == __rlast1) > return __last1; > else > { > _BidirectionalIterator1 __result = __rresult.base(); > std::advance(__result, -std::distance(__first2, __last2)); > return __result; > } > } ># 5239 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2> > inline _ForwardIterator1 > find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2, _ForwardIterator2 __last2) > { > > > > > > > ; > ; > > return std::__find_end(__first1, __last1, __first2, __last2, > std::__iterator_category(__first1), > std::__iterator_category(__first2)); > } ># 5284 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_algo.h" 3 > template<typename _ForwardIterator1, typename _ForwardIterator2, > typename _BinaryPredicate> > inline _ForwardIterator1 > find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, > _ForwardIterator2 __first2, _ForwardIterator2 __last2, > _BinaryPredicate __comp) > { > > > > > > > ; > ; > > return std::__find_end(__first1, __last1, __first2, __last2, > std::__iterator_category(__first1), > std::__iterator_category(__first2), > __comp); > } > >} ># 70 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/algorithm" 2 3 > >#pragma GCC visibility pop ># 57 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 1 3 ># 46 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 3 > ># 47 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 3 > >namespace std >{ > template<typename _Type> > inline bool > __is_null_pointer(_Type* __ptr) > { return __ptr == 0; } > > template<typename _Type> > inline bool > __is_null_pointer(_Type) > { return false; } > > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_max_size = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4; > > template<typename _CharT, typename _Traits, typename _Alloc> > const _CharT > basic_string<_CharT, _Traits, _Alloc>:: > _Rep::_S_terminal = _CharT(); > > template<typename _CharT, typename _Traits, typename _Alloc> > const typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::npos; > > > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[ > (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) / > sizeof(size_type)]; > > > > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InIterator> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, > input_iterator_tag) > { > > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refdata(); > > > _CharT __buf[128]; > size_type __len = 0; > while (__beg != __end && __len < sizeof(__buf) / sizeof(_CharT)) > { > __buf[__len++] = *__beg; > ++__beg; > } > _Rep* __r = _Rep::_S_create(__len, size_type(0), __a); > _M_copy(__r->_M_refdata(), __buf, __len); > try > { > while (__beg != __end) > { > if (__len == __r->_M_capacity) > { > > _Rep* __another = _Rep::_S_create(__len + 1, __len, __a); > _M_copy(__another->_M_refdata(), __r->_M_refdata(), __len); > __r->_M_destroy(__a); > __r = __another; > } > __r->_M_refdata()[__len++] = *__beg; > ++__beg; > } > } > catch(...) > { > __r->_M_destroy(__a); > throw; > } > __r->_M_set_length_and_sharable(__len); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > template <typename _InIterator> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(_InIterator __beg, _InIterator __end, const _Alloc& __a, > forward_iterator_tag) > { > > if (__beg == __end && __a == _Alloc()) > return _S_empty_rep()._M_refdata(); > > > if (__builtin_expect(__is_null_pointer(__beg) && __beg != __end, 0)) > __throw_logic_error(("basic_string::_S_construct NULL not valid")); > > const size_type __dnew = static_cast<size_type>(std::distance(__beg, > __end)); > > _Rep* __r = _Rep::_S_create(__dnew, size_type(0), __a); > try > { _S_copy_chars(__r->_M_refdata(), __beg, __end); } > catch(...) > { > __r->_M_destroy(__a); > throw; > } > __r->_M_set_length_and_sharable(__dnew); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>:: > _S_construct(size_type __n, _CharT __c, const _Alloc& __a) > { > > if (__n == 0 && __a == _Alloc()) > return _S_empty_rep()._M_refdata(); > > > _Rep* __r = _Rep::_S_create(__n, size_type(0), __a); > if (__n) > _M_assign(__r->_M_refdata(), __n, __c); > > __r->_M_set_length_and_sharable(__n); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str) > : _M_dataplus(__str._M_rep()->_M_grab(_Alloc(__str.get_allocator()), > __str.get_allocator()), > __str.get_allocator()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _Alloc& __a) > : _M_dataplus(_S_construct(size_type(), _CharT(), __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, size_type __n) > : _M_dataplus(_S_construct(__str._M_data() > + __str._M_check(__pos, > "basic_string::basic_string"), > __str._M_data() + __str._M_limit(__pos, __n) > + __pos, _Alloc()), _Alloc()) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const basic_string& __str, size_type __pos, > size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__str._M_data() > + __str._M_check(__pos, > "basic_string::basic_string"), > __str._M_data() + __str._M_limit(__pos, __n) > + __pos, __a), __a) > { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, size_type __n, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s + __n, __a), __a) > { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(const _CharT* __s, const _Alloc& __a) > : _M_dataplus(_S_construct(__s, __s ? __s + traits_type::length(__s) : > __s + npos, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(size_type __n, _CharT __c, const _Alloc& __a) > : _M_dataplus(_S_construct(__n, __c, __a), __a) > { } > > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIterator> > basic_string<_CharT, _Traits, _Alloc>:: > basic_string(_InputIterator __beg, _InputIterator __end, const _Alloc& __a) > : _M_dataplus(_S_construct(__beg, __end, __a), __a) > { } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const basic_string& __str) > { > if (_M_rep() != __str._M_rep()) > { > > const allocator_type __a = this->get_allocator(); > _CharT* __tmp = __str._M_rep()->_M_grab(__a, __str.get_allocator()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > assign(const _CharT* __s, size_type __n) > { > ; > _M_check_length(this->size(), __n, "basic_string::assign"); > if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) > return _M_replace_safe(size_type(0), this->size(), __s, __n); > else > { > > const size_type __pos = __s - _M_data(); > if (__pos >= __n) > _M_copy(_M_data(), __s, __n); > else if (__pos) > _M_move(_M_data(), __s, __n); > _M_rep()->_M_set_length_and_sharable(__n); > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(size_type __n, _CharT __c) > { > if (__n) > { > _M_check_length(size_type(0), __n, "basic_string::append"); > const size_type __len = __n + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > _M_assign(_M_data() + this->size(), __n, __c); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const _CharT* __s, size_type __n) > { > ; > if (__n) > { > _M_check_length(size_type(0), __n, "basic_string::append"); > const size_type __len = __n + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > { > if (_M_disjunct(__s)) > this->reserve(__len); > else > { > const size_type __off = __s - _M_data(); > this->reserve(__len); > __s = _M_data() + __off; > } > } > _M_copy(_M_data() + this->size(), __s, __n); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str) > { > const size_type __size = __str.size(); > if (__size) > { > const size_type __len = __size + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > _M_copy(_M_data() + this->size(), __str._M_data(), __size); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > append(const basic_string& __str, size_type __pos, size_type __n) > { > __str._M_check(__pos, "basic_string::append"); > __n = __str._M_limit(__pos, __n); > if (__n) > { > const size_type __len = __n + this->size(); > if (__len > this->capacity() || _M_rep()->_M_is_shared()) > this->reserve(__len); > _M_copy(_M_data() + this->size(), __str._M_data() + __pos, __n); > _M_rep()->_M_set_length_and_sharable(__len); > } > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > insert(size_type __pos, const _CharT* __s, size_type __n) > { > ; > _M_check(__pos, "basic_string::insert"); > _M_check_length(size_type(0), __n, "basic_string::insert"); > if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) > return _M_replace_safe(__pos, size_type(0), __s, __n); > else > { > > const size_type __off = __s - _M_data(); > _M_mutate(__pos, 0, __n); > __s = _M_data() + __off; > _CharT* __p = _M_data() + __pos; > if (__s + __n <= __p) > _M_copy(__p, __s, __n); > else if (__s >= __p) > _M_copy(__p, __s + __n, __n); > else > { > const size_type __nleft = __p - __s; > _M_copy(__p, __s, __nleft); > _M_copy(__p + __nleft, __p + __n, __n - __nleft); > } > return *this; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > replace(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) > { > ; > _M_check(__pos, "basic_string::replace"); > __n1 = _M_limit(__pos, __n1); > _M_check_length(__n1, __n2, "basic_string::replace"); > bool __left; > if (_M_disjunct(__s) || _M_rep()->_M_is_shared()) > return _M_replace_safe(__pos, __n1, __s, __n2); > else if ((__left = __s + __n2 <= _M_data() + __pos) > || _M_data() + __pos + __n1 <= __s) > { > > size_type __off = __s - _M_data(); > __left ? __off : (__off += __n2 - __n1); > _M_mutate(__pos, __n1, __n2); > _M_copy(_M_data() + __pos, _M_data() + __off, __n2); > return *this; > } > else > { > > const basic_string __tmp(__s, __n2); > return _M_replace_safe(__pos, __n1, __tmp._M_data(), __n2); > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_destroy(const _Alloc& __a) throw () > { > const size_type __size = sizeof(_Rep_base) + > (this->_M_capacity + 1) * sizeof(_CharT); > _Raw_bytes_alloc(__a).deallocate(reinterpret_cast<char*>(this), __size); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > _M_leak_hard() > { > > if (_M_rep() == &_S_empty_rep()) > return; > > if (_M_rep()->_M_is_shared()) > _M_mutate(0, 0, 0); > _M_rep()->_M_set_leaked(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > _M_mutate(size_type __pos, size_type __len1, size_type __len2) > { > const size_type __old_size = this->size(); > const size_type __new_size = __old_size + __len2 - __len1; > const size_type __how_much = __old_size - __pos - __len1; > > if (__new_size > this->capacity() || _M_rep()->_M_is_shared()) > { > > const allocator_type __a = get_allocator(); > _Rep* __r = _Rep::_S_create(__new_size, this->capacity(), __a); > > if (__pos) > _M_copy(__r->_M_refdata(), _M_data(), __pos); > if (__how_much) > _M_copy(__r->_M_refdata() + __pos + __len2, > _M_data() + __pos + __len1, __how_much); > > _M_rep()->_M_dispose(__a); > _M_data(__r->_M_refdata()); > } > else if (__how_much && __len1 != __len2) > { > > _M_move(_M_data() + __pos + __len2, > _M_data() + __pos + __len1, __how_much); > } > _M_rep()->_M_set_length_and_sharable(__new_size); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > reserve(size_type __res) > { > if (__res != this->capacity() || _M_rep()->_M_is_shared()) > { > > if (__res < this->size()) > __res = this->size(); > const allocator_type __a = get_allocator(); > _CharT* __tmp = _M_rep()->_M_clone(__a, __res - this->size()); > _M_rep()->_M_dispose(__a); > _M_data(__tmp); > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > swap(basic_string& __s) > { > if (_M_rep()->_M_is_leaked()) > _M_rep()->_M_set_sharable(); > if (__s._M_rep()->_M_is_leaked()) > __s._M_rep()->_M_set_sharable(); > if (this->get_allocator() == __s.get_allocator()) > { > _CharT* __tmp = _M_data(); > _M_data(__s._M_data()); > __s._M_data(__tmp); > } > > else > { > const basic_string __tmp1(_M_ibegin(), _M_iend(), > __s.get_allocator()); > const basic_string __tmp2(__s._M_ibegin(), __s._M_iend(), > this->get_allocator()); > *this = __tmp2; > __s = __tmp1; > } > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::_Rep* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _S_create(size_type __capacity, size_type __old_capacity, > const _Alloc& __alloc) > { > > > if (__capacity > _S_max_size) > __throw_length_error(("basic_string::_S_create")); ># 558 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/basic_string.tcc" 3 > const size_type __pagesize = 4096; > const size_type __malloc_header_size = 4 * sizeof(void*); > > > > > > > > if (__capacity > __old_capacity && __capacity < 2 * __old_capacity) > __capacity = 2 * __old_capacity; > > > > > size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > > const size_type __adj_size = __size + __malloc_header_size; > if (__adj_size > __pagesize && __capacity > __old_capacity) > { > const size_type __extra = __pagesize - __adj_size % __pagesize; > __capacity += __extra / sizeof(_CharT); > > if (__capacity > _S_max_size) > __capacity = _S_max_size; > __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep); > } > > > > void* __place = _Raw_bytes_alloc(__alloc).allocate(__size); > _Rep *__p = new (__place) _Rep; > __p->_M_capacity = __capacity; > return __p; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > _CharT* > basic_string<_CharT, _Traits, _Alloc>::_Rep:: > _M_clone(const _Alloc& __alloc, size_type __res) > { > > const size_type __requested_cap = this->_M_length + __res; > _Rep* __r = _Rep::_S_create(__requested_cap, this->_M_capacity, > __alloc); > if (this->_M_length) > _M_copy(__r->_M_refdata(), _M_refdata(), this->_M_length); > > __r->_M_set_length_and_sharable(this->_M_length); > return __r->_M_refdata(); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > void > basic_string<_CharT, _Traits, _Alloc>:: > resize(size_type __n, _CharT __c) > { > const size_type __size = this->size(); > _M_check_length(__size, __n, "basic_string::resize"); > if (__size < __n) > this->append(__n - __size, __c); > else if (__n < __size) > this->erase(__n); > > } > > template<typename _CharT, typename _Traits, typename _Alloc> > template<typename _InputIterator> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_dispatch(iterator __i1, iterator __i2, _InputIterator __k1, > _InputIterator __k2, __false_type) > { > const basic_string __s(__k1, __k2); > const size_type __n1 = __i2 - __i1; > _M_check_length(__n1, __s.size(), "basic_string::_M_replace_dispatch"); > return _M_replace_safe(__i1 - _M_ibegin(), __n1, __s._M_data(), > __s.size()); > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_aux(size_type __pos1, size_type __n1, size_type __n2, > _CharT __c) > { > _M_check_length(__n1, __n2, "basic_string::_M_replace_aux"); > _M_mutate(__pos1, __n1, __n2); > if (__n2) > _M_assign(_M_data() + __pos1, __n2, __c); > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc>& > basic_string<_CharT, _Traits, _Alloc>:: > _M_replace_safe(size_type __pos1, size_type __n1, const _CharT* __s, > size_type __n2) > { > _M_mutate(__pos1, __n1, __n2); > if (__n2) > _M_copy(_M_data() + __pos1, __s, __n2); > return *this; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(const _CharT* __lhs, > const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > ; > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > const __size_type __len = _Traits::length(__lhs); > __string_type __str; > __str.reserve(__len + __rhs.size()); > __str.append(__lhs, __len); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > basic_string<_CharT, _Traits, _Alloc> > operator+(_CharT __lhs, const basic_string<_CharT, _Traits, _Alloc>& __rhs) > { > typedef basic_string<_CharT, _Traits, _Alloc> __string_type; > typedef typename __string_type::size_type __size_type; > __string_type __str; > const __size_type __len = __rhs.size(); > __str.reserve(__len + 1); > __str.append(__size_type(1), __lhs); > __str.append(__rhs); > return __str; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > copy(_CharT* __s, size_type __n, size_type __pos) const > { > _M_check(__pos, "basic_string::copy"); > __n = _M_limit(__pos, __n); > ; > if (__n) > _M_copy(__s, _M_data() + __pos, __n); > > return __n; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > size_type __ret = npos; > const size_type __size = this->size(); > if (__pos + __n <= __size) > { > const _CharT* __data = _M_data(); > const _CharT* __p = std::search(__data + __pos, __data + __size, > __s, __s + __n, traits_type::eq); > if (__p != __data + __size || __n == 0) > __ret = __p - __data; > } > return __ret; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find(_CharT __c, size_type __pos) const > { > size_type __ret = npos; > const size_type __size = this->size(); > if (__pos < __size) > { > const _CharT* __data = _M_data(); > const size_type __n = __size - __pos; > const _CharT* __p = traits_type::find(__data + __pos, __n, __c); > if (__p) > __ret = __p - __data; > } > return __ret; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > const size_type __size = this->size(); > if (__n <= __size) > { > __pos = std::min(size_type(__size - __n), __pos); > const _CharT* __data = _M_data(); > do > { > if (traits_type::compare(__data + __pos, __s, __n) == 0) > return __pos; > } > while (__pos-- > 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > rfind(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > for (++__size; __size-- > 0; ) > if (traits_type::eq(_M_data()[__size], __c)) > return __size; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > for (; __n && __pos < this->size(); ++__pos) > { > const _CharT* __p = traits_type::find(__s, __n, _M_data()[__pos]); > if (__p) > return __pos; > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > size_type __size = this->size(); > if (__size && __n) > { > if (--__size > __pos) > __size = __pos; > do > { > if (traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size-- != 0); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > for (; __pos < this->size(); ++__pos) > if (!traits_type::find(__s, __n, _M_data()[__pos])) > return __pos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_first_not_of(_CharT __c, size_type __pos) const > { > for (; __pos < this->size(); ++__pos) > if (!traits_type::eq(_M_data()[__pos], __c)) > return __pos; > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const > { > ; > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::find(__s, __n, _M_data()[__size])) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > typename basic_string<_CharT, _Traits, _Alloc>::size_type > basic_string<_CharT, _Traits, _Alloc>:: > find_last_not_of(_CharT __c, size_type __pos) const > { > size_type __size = this->size(); > if (__size) > { > if (--__size > __pos) > __size = __pos; > do > { > if (!traits_type::eq(_M_data()[__size], __c)) > return __size; > } > while (__size--); > } > return npos; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n, const basic_string& __str) const > { > _M_check(__pos, "basic_string::compare"); > __n = _M_limit(__pos, __n); > const size_type __osize = __str.size(); > const size_type __len = std::min(__n, __osize); > int __r = traits_type::compare(_M_data() + __pos, __str.data(), __len); > if (!__r) > __r = __n - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(size_type __pos1, size_type __n1, const basic_string& __str, > size_type __pos2, size_type __n2) const > { > _M_check(__pos1, "basic_string::compare"); > __str._M_check(__pos2, "basic_string::compare"); > __n1 = _M_limit(__pos1, __n1); > __n2 = __str._M_limit(__pos2, __n2); > const size_type __len = std::min(__n1, __n2); > int __r = traits_type::compare(_M_data() + __pos1, > __str.data() + __pos2, __len); > if (!__r) > __r = __n1 - __n2; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string<_CharT, _Traits, _Alloc>:: > compare(const _CharT* __s) const > { > ; > const size_type __size = this->size(); > const size_type __osize = traits_type::length(__s); > const size_type __len = std::min(__size, __osize); > int __r = traits_type::compare(_M_data(), __s, __len); > if (!__r) > __r = __size - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s) const > { > ; > _M_check(__pos, "basic_string::compare"); > __n1 = _M_limit(__pos, __n1); > const size_type __osize = traits_type::length(__s); > const size_type __len = std::min(__n1, __osize); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = __n1 - __osize; > return __r; > } > > template<typename _CharT, typename _Traits, typename _Alloc> > int > basic_string <_CharT, _Traits, _Alloc>:: > compare(size_type __pos, size_type __n1, const _CharT* __s, > size_type __n2) const > { > ; > _M_check(__pos, "basic_string::compare"); > __n1 = _M_limit(__pos, __n1); > const size_type __len = std::min(__n1, __n2); > int __r = traits_type::compare(_M_data() + __pos, __s, __len); > if (!__r) > __r = __n1 - __n2; > return __r; > } > > > > > > extern template class basic_string<char>; > extern template > basic_istream<char>& > operator>>(basic_istream<char>&, string&); > extern template > basic_ostream<char>& > operator<<(basic_ostream<char>&, const string&); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&, char); > extern template > basic_istream<char>& > getline(basic_istream<char>&, string&); > > > extern template class basic_string<wchar_t>; > extern template > basic_istream<wchar_t>& > operator>>(basic_istream<wchar_t>&, wstring&); > extern template > basic_ostream<wchar_t>& > operator<<(basic_ostream<wchar_t>&, const wstring&); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&, wchar_t); > extern template > basic_istream<wchar_t>& > getline(basic_istream<wchar_t>&, wstring&); > > >} ># 58 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/string" 2 3 > > >#pragma GCC visibility pop ># 42 "panelfront.h" 2 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 1 3 ># 63 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 3 > ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 3 >#pragma GCC visibility push(default) > > > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 1 3 ># 68 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 >namespace std >{ > > > > > > template<typename _Tp, typename _Alloc> > struct _Vector_base > { > typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; > > struct _Vector_impl > : public _Tp_alloc_type > { > _Tp* _M_start; > _Tp* _M_finish; > _Tp* _M_end_of_storage; > _Vector_impl(_Tp_alloc_type const& __a) > : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) > { } > }; > > public: > typedef _Alloc allocator_type; > > _Tp_alloc_type& > _M_get_Tp_allocator() > { return *static_cast<_Tp_alloc_type*>(&this->_M_impl); } > > const _Tp_alloc_type& > _M_get_Tp_allocator() const > { return *static_cast<const _Tp_alloc_type*>(&this->_M_impl); } > > allocator_type > get_allocator() const > { return _M_get_Tp_allocator(); } > > _Vector_base(const allocator_type& __a) > : _M_impl(__a) > { } > > _Vector_base(size_t __n, const allocator_type& __a) > : _M_impl(__a) > { > this->_M_impl._M_start = this->_M_allocate(__n); > this->_M_impl._M_finish = this->_M_impl._M_start; > this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; > } > > ~_Vector_base() > { _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); } > > public: > _Vector_impl _M_impl; > > _Tp* > _M_allocate(size_t __n) > { return _M_impl.allocate(__n); } > > void > _M_deallocate(_Tp* __p, size_t __n) > { > if (__p) > _M_impl.deallocate(__p, __n); > } > }; ># 157 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc = std::allocator<_Tp> > > class vector : protected _Vector_base<_Tp, _Alloc> > { > > typedef typename _Alloc::value_type _Alloc_value_type; > > > > typedef _Vector_base<_Tp, _Alloc> _Base; > typedef vector<_Tp, _Alloc> vector_type; > typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; > > public: > typedef _Tp value_type; > typedef typename _Tp_alloc_type::pointer pointer; > typedef typename _Tp_alloc_type::const_pointer const_pointer; > typedef typename _Tp_alloc_type::reference reference; > typedef typename _Tp_alloc_type::const_reference const_reference; > typedef __gnu_cxx::__normal_iterator<pointer, vector_type> iterator; > typedef __gnu_cxx::__normal_iterator<const_pointer, vector_type> > const_iterator; > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Alloc allocator_type; > > protected: > > > > > > using _Base::_M_allocate; > using _Base::_M_deallocate; > using _Base::_M_impl; > using _Base::_M_get_Tp_allocator; > > public: > > > > > > explicit > vector(const allocator_type& __a = allocator_type()) > : _Base(__a) > { } ># 213 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > explicit > vector(size_type __n, const value_type& __value = value_type(), > const allocator_type& __a = allocator_type()) > : _Base(__n, __a) > { > std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, > _M_get_Tp_allocator()); > this->_M_impl._M_finish = this->_M_impl._M_start + __n; > } ># 232 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > vector(const vector& __x) > : _Base(__x.size(), __x.get_allocator()) > { this->_M_impl._M_finish = > std::__uninitialized_copy_a(__x.begin(), __x.end(), > this->_M_impl._M_start, > _M_get_Tp_allocator()); > } ># 255 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > template<typename _InputIterator> > vector(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Base(__a) > { > > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_initialize_dispatch(__first, __last, _Integral()); > } > > > > > > > > ~vector() > { std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > } ># 284 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > vector& > operator=(const vector& __x); ># 297 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > assign(size_type __n, const value_type& __val) > { _M_fill_assign(__n, __val); } ># 313 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > template<typename _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > > using _Base::get_allocator; > > > > > > > > iterator > begin() > { return iterator (this->_M_impl._M_start); } > > > > > > > const_iterator > begin() const > { return const_iterator (this->_M_impl._M_start); } > > > > > > > iterator > end() > { return iterator (this->_M_impl._M_finish); } > > > > > > > const_iterator > end() const > { return const_iterator (this->_M_impl._M_finish); } > > > > > > > reverse_iterator > rbegin() > { return reverse_iterator(end()); } > > > > > > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(end()); } > > > > > > > reverse_iterator > rend() > { return reverse_iterator(begin()); } > > > > > > > const_reverse_iterator > rend() const > { return const_reverse_iterator(begin()); } > > > > size_type > size() const > { return size_type(end() - begin()); } > > > size_type > max_size() const > { return size_type(-1) / sizeof(value_type); } ># 420 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > resize(size_type __new_size, value_type __x = value_type()) > { > if (__new_size < size()) > erase(begin() + __new_size, end()); > else > insert(end(), __new_size - size(), __x); > } > > > > > > size_type > capacity() const > { return size_type(const_iterator(this->_M_impl._M_end_of_storage) > - begin()); } > > > > > > bool > empty() const > { return begin() == end(); } ># 463 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > reserve(size_type __n); ># 478 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > reference > operator[](size_type __n) > { return *(begin() + __n); } ># 493 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > const_reference > operator[](size_type __n) const > { return *(begin() + __n); } > > protected: > > void > _M_range_check(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range(("vector::_M_range_check")); > } > > public: ># 518 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > reference > at(size_type __n) > { > _M_range_check(__n); > return (*this)[__n]; > } ># 536 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > const_reference > at(size_type __n) const > { > _M_range_check(__n); > return (*this)[__n]; > } > > > > > > reference > front() > { return *begin(); } > > > > > > const_reference > front() const > { return *begin(); } > > > > > > reference > back() > { return *(end() - 1); } > > > > > > const_reference > back() const > { return *(end() - 1); } ># 582 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > pointer > data() > { return pointer(this->_M_impl._M_start); } > > const_pointer > data() const > { return const_pointer(this->_M_impl._M_start); } ># 601 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > push_back(const value_type& __x) > { > if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) > { > this->_M_impl.construct(this->_M_impl._M_finish, __x); > ++this->_M_impl._M_finish; > } > else > _M_insert_aux(end(), __x); > } ># 622 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > pop_back() > { > --this->_M_impl._M_finish; > this->_M_impl.destroy(this->_M_impl._M_finish); > } ># 640 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > iterator > insert(iterator __position, const value_type& __x); ># 656 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > insert(iterator __position, size_type __n, const value_type& __x) > { _M_fill_insert(__position, __n, __x); } ># 674 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > template<typename _InputIterator> > void > insert(iterator __position, _InputIterator __first, > _InputIterator __last) > { > > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_insert_dispatch(__position, __first, __last, _Integral()); > } ># 699 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > iterator > erase(iterator __position); ># 720 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > iterator > erase(iterator __first, iterator __last); ># 732 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > void > swap(vector& __x) > { > std::swap(this->_M_impl._M_start, __x._M_impl._M_start); > std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); > std::swap(this->_M_impl._M_end_of_storage, > __x._M_impl._M_end_of_storage); > } > > > > > > > > void > clear() > { > std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > this->_M_impl._M_finish = this->_M_impl._M_start; > } > > protected: > > > > > > > template<typename _ForwardIterator> > pointer > _M_allocate_and_copy(size_type __n, > _ForwardIterator __first, _ForwardIterator __last) > { > pointer __result = this->_M_allocate(__n); > try > { > std::__uninitialized_copy_a(__first, __last, __result, > _M_get_Tp_allocator()); > return __result; > } > catch(...) > { > _M_deallocate(__result, __n); > throw; > } > } > > > > > > template<typename _Integer> > void > _M_initialize_dispatch(_Integer __n, _Integer __value, __true_type) > { > this->_M_impl._M_start = _M_allocate(__n); > this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; > std::__uninitialized_fill_n_a(this->_M_impl._M_start, __n, __value, > _M_get_Tp_allocator()); > this->_M_impl._M_finish = this->_M_impl._M_end_of_storage; > } > > > template<typename _InputIterator> > void > _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, > __false_type) > { > typedef typename std::iterator_traits<_InputIterator>:: > iterator_category _IterCategory; > _M_range_initialize(__first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_range_initialize(_InputIterator __first, > _InputIterator __last, std::input_iterator_tag) > { > for (; __first != __last; ++__first) > push_back(*__first); > } > > > template<typename _ForwardIterator> > void > _M_range_initialize(_ForwardIterator __first, > _ForwardIterator __last, std::forward_iterator_tag) > { > const size_type __n = std::distance(__first, __last); > this->_M_impl._M_start = this->_M_allocate(__n); > this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; > this->_M_impl._M_finish = > std::__uninitialized_copy_a(__first, __last, > this->_M_impl._M_start, > _M_get_Tp_allocator()); > } > > > > > > > template<typename _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { > _M_fill_assign(static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIterator> > void > _M_assign_dispatch(_InputIterator __first, _InputIterator __last, > __false_type) > { > typedef typename std::iterator_traits<_InputIterator>:: > iterator_category _IterCategory; > _M_assign_aux(__first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_assign_aux(_InputIterator __first, _InputIterator __last, > std::input_iterator_tag); > > > template<typename _ForwardIterator> > void > _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > std::forward_iterator_tag); > > > > void > _M_fill_assign(size_type __n, const value_type& __val); > > > > > > template<typename _Integer> > void > _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, > __true_type) > { > _M_fill_insert(__pos, static_cast<size_type>(__n), > static_cast<value_type>(__val)); > } > > > template<typename _InputIterator> > void > _M_insert_dispatch(iterator __pos, _InputIterator __first, > _InputIterator __last, __false_type) > { > typedef typename std::iterator_traits<_InputIterator>:: > iterator_category _IterCategory; > _M_range_insert(__pos, __first, __last, _IterCategory()); > } > > > template<typename _InputIterator> > void > _M_range_insert(iterator __pos, _InputIterator __first, > _InputIterator __last, std::input_iterator_tag); > > > template<typename _ForwardIterator> > void > _M_range_insert(iterator __pos, _ForwardIterator __first, > _ForwardIterator __last, std::forward_iterator_tag); > > > > void > _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); > > > void > _M_insert_aux(iterator __position, const value_type& __x); > }; ># 930 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator==(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) > { return (__x.size() == __y.size() > && std::equal(__x.begin(), __x.end(), __y.begin())); } ># 947 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_vector.h" 3 > template<typename _Tp, typename _Alloc> > inline bool > operator<(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) > { return std::lexicographical_compare(__x.begin(), __x.end(), > __y.begin(), __y.end()); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator!=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) > { return !(__x == __y); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) > { return __y < __x; } > > > template<typename _Tp, typename _Alloc> > inline bool > operator<=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) > { return !(__y < __x); } > > > template<typename _Tp, typename _Alloc> > inline bool > operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) > { return !(__x < __y); } > > > template<typename _Tp, typename _Alloc> > inline void > swap(vector<_Tp, _Alloc>& __x, vector<_Tp, _Alloc>& __y) > { __x.swap(__y); } >} ># 72 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 2 3 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h" 3 >namespace std >{ > typedef unsigned long _Bit_type; > enum { _S_word_bit = int(8 * sizeof(_Bit_type)) }; > > struct _Bit_reference > { > _Bit_type * _M_p; > _Bit_type _M_mask; > > _Bit_reference(_Bit_type * __x, _Bit_type __y) > : _M_p(__x), _M_mask(__y) { } > > _Bit_reference() : _M_p(0), _M_mask(0) { } > > operator bool() const > { return !!(*_M_p & _M_mask); } > > _Bit_reference& > operator=(bool __x) > { > if (__x) > *_M_p |= _M_mask; > else > *_M_p &= ~_M_mask; > return *this; > } > > _Bit_reference& > operator=(const _Bit_reference& __x) > { return *this = bool(__x); } > > bool > operator==(const _Bit_reference& __x) const > { return bool(*this) == bool(__x); } > > bool > operator<(const _Bit_reference& __x) const > { return !bool(*this) && bool(__x); } > > void > flip() > { *_M_p ^= _M_mask; } > }; > > struct _Bit_iterator_base > : public std::iterator<std::random_access_iterator_tag, bool> > { > _Bit_type * _M_p; > unsigned int _M_offset; > > _Bit_iterator_base(_Bit_type * __x, unsigned int __y) > : _M_p(__x), _M_offset(__y) { } > > void > _M_bump_up() > { > if (_M_offset++ == int(_S_word_bit) - 1) > { > _M_offset = 0; > ++_M_p; > } > } > > void > _M_bump_down() > { > if (_M_offset-- == 0) > { > _M_offset = int(_S_word_bit) - 1; > --_M_p; > } > } > > void > _M_incr(ptrdiff_t __i) > { > difference_type __n = __i + _M_offset; > _M_p += __n / int(_S_word_bit); > __n = __n % int(_S_word_bit); > if (__n < 0) > { > _M_offset = static_cast<unsigned int>(__n + int(_S_word_bit)); > --_M_p; > } > else > _M_offset = static_cast<unsigned int>(__n); > } > > bool > operator==(const _Bit_iterator_base& __i) const > { return _M_p == __i._M_p && _M_offset == __i._M_offset; } > > bool > operator<(const _Bit_iterator_base& __i) const > { > return _M_p < __i._M_p > || (_M_p == __i._M_p && _M_offset < __i._M_offset); > } > > bool > operator!=(const _Bit_iterator_base& __i) const > { return !(*this == __i); } > > bool > operator>(const _Bit_iterator_base& __i) const > { return __i < *this; } > > bool > operator<=(const _Bit_iterator_base& __i) const > { return !(__i < *this); } > > bool > operator>=(const _Bit_iterator_base& __i) const > { return !(*this < __i); } > }; > > inline ptrdiff_t > operator-(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) > { > return (int(_S_word_bit) * (__x._M_p - __y._M_p) > + __x._M_offset - __y._M_offset); > } > > struct _Bit_iterator : public _Bit_iterator_base > { > typedef _Bit_reference reference; > typedef _Bit_reference* pointer; > typedef _Bit_iterator iterator; > > _Bit_iterator() : _Bit_iterator_base(0, 0) { } > > _Bit_iterator(_Bit_type * __x, unsigned int __y) > : _Bit_iterator_base(__x, __y) { } > > reference > operator*() const > { return reference(_M_p, 1UL << _M_offset); } > > iterator& > operator++() > { > _M_bump_up(); > return *this; > } > > iterator > operator++(int) > { > iterator __tmp = *this; > _M_bump_up(); > return __tmp; > } > > iterator& > operator--() > { > _M_bump_down(); > return *this; > } > > iterator > operator--(int) > { > iterator __tmp = *this; > _M_bump_down(); > return __tmp; > } > > iterator& > operator+=(difference_type __i) > { > _M_incr(__i); > return *this; > } > > iterator& > operator-=(difference_type __i) > { > *this += -__i; > return *this; > } > > iterator > operator+(difference_type __i) const > { > iterator __tmp = *this; > return __tmp += __i; > } > > iterator > operator-(difference_type __i) const > { > iterator __tmp = *this; > return __tmp -= __i; > } > > reference > operator[](difference_type __i) const > { return *(*this + __i); } > }; > > inline _Bit_iterator > operator+(ptrdiff_t __n, const _Bit_iterator& __x) > { return __x + __n; } > > struct _Bit_const_iterator : public _Bit_iterator_base > { > typedef bool reference; > typedef bool const_reference; > typedef const bool* pointer; > typedef _Bit_const_iterator const_iterator; > > _Bit_const_iterator() : _Bit_iterator_base(0, 0) { } > > _Bit_const_iterator(_Bit_type * __x, unsigned int __y) > : _Bit_iterator_base(__x, __y) { } > > _Bit_const_iterator(const _Bit_iterator& __x) > : _Bit_iterator_base(__x._M_p, __x._M_offset) { } > > const_reference > operator*() const > { return _Bit_reference(_M_p, 1UL << _M_offset); } > > const_iterator& > operator++() > { > _M_bump_up(); > return *this; > } > > const_iterator > operator++(int) > { > const_iterator __tmp = *this; > _M_bump_up(); > return __tmp; > } > > const_iterator& > operator--() > { > _M_bump_down(); > return *this; > } > > const_iterator > operator--(int) > { > const_iterator __tmp = *this; > _M_bump_down(); > return __tmp; > } > > const_iterator& > operator+=(difference_type __i) > { > _M_incr(__i); > return *this; > } > > const_iterator& > operator-=(difference_type __i) > { > *this += -__i; > return *this; > } > > const_iterator > operator+(difference_type __i) const > { > const_iterator __tmp = *this; > return __tmp += __i; > } > > const_iterator > operator-(difference_type __i) const > { > const_iterator __tmp = *this; > return __tmp -= __i; > } > > const_reference > operator[](difference_type __i) const > { return *(*this + __i); } > }; > > inline _Bit_const_iterator > operator+(ptrdiff_t __n, const _Bit_const_iterator& __x) > { return __x + __n; } > > template<class _Alloc> > class _Bvector_base > { > typedef typename _Alloc::template rebind<_Bit_type>::other > _Bit_alloc_type; > > struct _Bvector_impl : public _Bit_alloc_type > { > _Bit_iterator _M_start; > _Bit_iterator _M_finish; > _Bit_type* _M_end_of_storage; > _Bvector_impl(const _Bit_alloc_type& __a) > : _Bit_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage(0) > { } > }; > > public: > typedef _Alloc allocator_type; > > allocator_type > get_allocator() const > { return *static_cast<const _Bit_alloc_type*>(&this->_M_impl); } > > _Bvector_base(const allocator_type& __a) : _M_impl(__a) { } > > ~_Bvector_base() > { this->_M_deallocate(); } > > protected: > _Bvector_impl _M_impl; > > _Bit_type* > _M_allocate(size_t __n) > { return _M_impl.allocate((__n + int(_S_word_bit) - 1) > / int(_S_word_bit)); } > > void > _M_deallocate() > { > if (_M_impl._M_start._M_p) > _M_impl.deallocate(_M_impl._M_start._M_p, > _M_impl._M_end_of_storage - _M_impl._M_start._M_p); > } > }; >} > > > > >namespace std >{ ># 425 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/stl_bvector.h" 3 >template<typename _Alloc> > class vector<bool, _Alloc> : public _Bvector_base<_Alloc> > { > public: > typedef bool value_type; > typedef size_t size_type; > typedef ptrdiff_t difference_type; > typedef _Bit_reference reference; > typedef bool const_reference; > typedef _Bit_reference* pointer; > typedef const bool* const_pointer; > > typedef _Bit_iterator iterator; > typedef _Bit_const_iterator const_iterator; > > typedef std::reverse_iterator<const_iterator> const_reverse_iterator; > typedef std::reverse_iterator<iterator> reverse_iterator; > > typedef typename _Bvector_base<_Alloc>::allocator_type allocator_type; > > allocator_type get_allocator() const > { return _Bvector_base<_Alloc>::get_allocator(); } > > protected: > using _Bvector_base<_Alloc>::_M_allocate; > using _Bvector_base<_Alloc>::_M_deallocate; > > protected: > void > _M_initialize(size_type __n) > { > _Bit_type* __q = this->_M_allocate(__n); > this->_M_impl._M_end_of_storage = (__q > + ((__n + int(_S_word_bit) - 1) > / int(_S_word_bit))); > this->_M_impl._M_start = iterator(__q, 0); > this->_M_impl._M_finish = this->_M_impl._M_start + difference_type(__n); > } > > void > _M_insert_aux(iterator __position, bool __x) > { > if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage) > { > std::copy_backward(__position, this->_M_impl._M_finish, > this->_M_impl._M_finish + 1); > *__position = __x; > ++this->_M_impl._M_finish; > } > else > { > const size_type __len = size() ? 2 * size() > : static_cast<size_type>(_S_word_bit); > _Bit_type * __q = this->_M_allocate(__len); > iterator __i = std::copy(begin(), __position, iterator(__q, 0)); > *__i++ = __x; > this->_M_impl._M_finish = std::copy(__position, end(), __i); > this->_M_deallocate(); > this->_M_impl._M_end_of_storage = (__q + ((__len > + int(_S_word_bit) - 1) > / int(_S_word_bit))); > this->_M_impl._M_start = iterator(__q, 0); > } > } > > template<class _InputIterator> > void > _M_initialize_range(_InputIterator __first, _InputIterator __last, > std::input_iterator_tag) > { > this->_M_impl._M_start = iterator(); > this->_M_impl._M_finish = iterator(); > this->_M_impl._M_end_of_storage = 0; > for (; __first != __last; ++__first) > push_back(*__first); > } > > template<class _ForwardIterator> > void > _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, > std::forward_iterator_tag) > { > const size_type __n = std::distance(__first, __last); > _M_initialize(__n); > std::copy(__first, __last, this->_M_impl._M_start); > } > > template<class _InputIterator> > void > _M_insert_range(iterator __pos, _InputIterator __first, > _InputIterator __last, std::input_iterator_tag) > { > for (; __first != __last; ++__first) > { > __pos = insert(__pos, *__first); > ++__pos; > } > } > > template<class _ForwardIterator> > void > _M_insert_range(iterator __position, _ForwardIterator __first, > _ForwardIterator __last, std::forward_iterator_tag) > { > if (__first != __last) > { > size_type __n = std::distance(__first, __last); > if (capacity() - size() >= __n) > { > std::copy_backward(__position, end(), > this->_M_impl._M_finish > + difference_type(__n)); > std::copy(__first, __last, __position); > this->_M_impl._M_finish += difference_type(__n); > } > else > { > const size_type __len = size() + std::max(size(), __n); > _Bit_type * __q = this->_M_allocate(__len); > iterator __i = std::copy(begin(), __position, > iterator(__q, 0)); > __i = std::copy(__first, __last, __i); > this->_M_impl._M_finish = std::copy(__position, end(), __i); > this->_M_deallocate(); > this->_M_impl._M_end_of_storage = (__q > + ((__len > + int(_S_word_bit) - 1) > / int(_S_word_bit))); > this->_M_impl._M_start = iterator(__q, 0); > } > } > } > > public: > iterator > begin() > { return this->_M_impl._M_start; } > > const_iterator > begin() const > { return this->_M_impl._M_start; } > > iterator > end() > { return this->_M_impl._M_finish; } > > const_iterator > end() const > { return this->_M_impl._M_finish; } > > reverse_iterator > rbegin() > { return reverse_iterator(end()); } > > const_reverse_iterator > rbegin() const > { return const_reverse_iterator(end()); } > > reverse_iterator > rend() > { return reverse_iterator(begin()); } > > const_reverse_iterator > rend() const > { return const_reverse_iterator(begin()); } > > size_type > size() const > { return size_type(end() - begin()); } > > size_type > max_size() const > { return size_type(-1); } > > size_type > capacity() const > { return size_type(const_iterator(this->_M_impl._M_end_of_storage, 0) > - begin()); } > bool > empty() const > { return begin() == end(); } > > reference > operator[](size_type __n) > { return *(begin() + difference_type(__n)); } > > const_reference > operator[](size_type __n) const > { return *(begin() + difference_type(__n)); } > > void > _M_range_check(size_type __n) const > { > if (__n >= this->size()) > __throw_out_of_range(("vector<bool>::_M_range_check")); > } > > reference > at(size_type __n) > { _M_range_check(__n); return (*this)[__n]; } > > const_reference > at(size_type __n) const > { _M_range_check(__n); return (*this)[__n]; } > > explicit > vector(const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) { } > > vector(size_type __n, bool __value, > const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) > { > _M_initialize(__n); > std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, > __value ? ~0 : 0); > } > > explicit > vector(size_type __n) > : _Bvector_base<_Alloc>(allocator_type()) > { > _M_initialize(__n); > std::fill(this->_M_impl._M_start._M_p, > this->_M_impl._M_end_of_storage, 0); > } > > vector(const vector& __x) > : _Bvector_base<_Alloc>(__x.get_allocator()) > { > _M_initialize(__x.size()); > std::copy(__x.begin(), __x.end(), this->_M_impl._M_start); > } > > > template<class _Integer> > void > _M_initialize_dispatch(_Integer __n, _Integer __x, __true_type) > { > _M_initialize(__n); > std::fill(this->_M_impl._M_start._M_p, > this->_M_impl._M_end_of_storage, __x ? ~0 : 0); > } > > template<class _InputIterator> > void > _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, > __false_type) > { _M_initialize_range(__first, __last, > std::__iterator_category(__first)); } > > template<class _InputIterator> > vector(_InputIterator __first, _InputIterator __last, > const allocator_type& __a = allocator_type()) > : _Bvector_base<_Alloc>(__a) > { > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_initialize_dispatch(__first, __last, _Integral()); > } > > ~vector() { } > > vector& > operator=(const vector& __x) > { > if (&__x == this) > return *this; > if (__x.size() > capacity()) > { > this->_M_deallocate(); > _M_initialize(__x.size()); > } > std::copy(__x.begin(), __x.end(), begin()); > this->_M_impl._M_finish = begin() + difference_type(__x.size()); > return *this; > } > > > > > > > void > _M_fill_assign(size_t __n, bool __x) > { > if (__n > size()) > { > std::fill(this->_M_impl._M_start._M_p, > this->_M_impl._M_end_of_storage, __x ? ~0 : 0); > insert(end(), __n - size(), __x); > } > else > { > erase(begin() + __n, end()); > std::fill(this->_M_impl._M_start._M_p, > this->_M_impl._M_end_of_storage, __x ? ~0 : 0); > } > } > > void > assign(size_t __n, bool __x) > { _M_fill_assign(__n, __x); } > > template<class _InputIterator> > void > assign(_InputIterator __first, _InputIterator __last) > { > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_assign_dispatch(__first, __last, _Integral()); > } > > template<class _Integer> > void > _M_assign_dispatch(_Integer __n, _Integer __val, __true_type) > { _M_fill_assign((size_t) __n, (bool) __val); } > > template<class _InputIterator> > void > _M_assign_dispatch(_InputIterator __first, _InputIterator __last, > __false_type) > { _M_assign_aux(__first, __last, std::__iterator_category(__first)); } > > template<class _InputIterator> > void > _M_assign_aux(_InputIterator __first, _InputIterator __last, > std::input_iterator_tag) > { > iterator __cur = begin(); > for (; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template<class _ForwardIterator> > void > _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > std::forward_iterator_tag) > { > const size_type __len = std::distance(__first, __last); > if (__len < size()) > erase(std::copy(__first, __last, begin()), end()); > else > { > _ForwardIterator __mid = __first; > std::advance(__mid, size()); > std::copy(__first, __mid, begin()); > insert(end(), __mid, __last); > } > } > > void > reserve(size_type __n) > { > if (__n > this->max_size()) > __throw_length_error(("vector::reserve")); > if (this->capacity() < __n) > { > _Bit_type* __q = this->_M_allocate(__n); > this->_M_impl._M_finish = std::copy(begin(), end(), > iterator(__q, 0)); > this->_M_deallocate(); > this->_M_impl._M_start = iterator(__q, 0); > this->_M_impl._M_end_of_storage = (__q + (__n + int(_S_word_bit) - 1) > / int(_S_word_bit)); > } > } > > reference > front() > { return *begin(); } > > const_reference > front() const > { return *begin(); } > > reference > back() > { return *(end() - 1); } > > const_reference > back() const > { return *(end() - 1); } > > > > > > > void > data() { } > > void > push_back(bool __x) > { > if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage) > *this->_M_impl._M_finish++ = __x; > else > _M_insert_aux(end(), __x); > } > > void > swap(vector<bool, _Alloc>& __x) > { > std::swap(this->_M_impl._M_start, __x._M_impl._M_start); > std::swap(this->_M_impl._M_finish, __x._M_impl._M_finish); > std::swap(this->_M_impl._M_end_of_storage, > __x._M_impl._M_end_of_storage); > } > > > static void > swap(reference __x, reference __y) > { > bool __tmp = __x; > __x = __y; > __y = __tmp; > } > > iterator > insert(iterator __position, bool __x = bool()) > { > const difference_type __n = __position - begin(); > if (this->_M_impl._M_finish._M_p != this->_M_impl._M_end_of_storage > && __position == end()) > *this->_M_impl._M_finish++ = __x; > else > _M_insert_aux(__position, __x); > return begin() + __n; > } > > > > template<class _Integer> > void > _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, > __true_type) > { _M_fill_insert(__pos, __n, __x); } > > template<class _InputIterator> > void > _M_insert_dispatch(iterator __pos, > _InputIterator __first, _InputIterator __last, > __false_type) > { _M_insert_range(__pos, __first, __last, > std::__iterator_category(__first)); } > > template<class _InputIterator> > void > insert(iterator __position, > _InputIterator __first, _InputIterator __last) > { > typedef typename std::__is_integer<_InputIterator>::__type _Integral; > _M_insert_dispatch(__position, __first, __last, _Integral()); > } > > void > _M_fill_insert(iterator __position, size_type __n, bool __x) > { > if (__n == 0) > return; > if (capacity() - size() >= __n) > { > std::copy_backward(__position, end(), > this->_M_impl._M_finish + difference_type(__n)); > std::fill(__position, __position + difference_type(__n), __x); > this->_M_impl._M_finish += difference_type(__n); > } > else > { > const size_type __len = size() + std::max(size(), __n); > _Bit_type * __q = this->_M_allocate(__len); > iterator __i = std::copy(begin(), __position, iterator(__q, 0)); > std::fill_n(__i, __n, __x); > this->_M_impl._M_finish = std::copy(__position, end(), > __i + difference_type(__n)); > this->_M_deallocate(); > this->_M_impl._M_end_of_storage = (__q + ((__len > + int(_S_word_bit) - 1) > / int(_S_word_bit))); > this->_M_impl._M_start = iterator(__q, 0); > } > } > > void > insert(iterator __position, size_type __n, bool __x) > { _M_fill_insert(__position, __n, __x); } > > void > pop_back() > { --this->_M_impl._M_finish; } > > iterator > erase(iterator __position) > { > if (__position + 1 != end()) > std::copy(__position + 1, end(), __position); > --this->_M_impl._M_finish; > return __position; > } > > iterator > erase(iterator __first, iterator __last) > { > this->_M_impl._M_finish = std::copy(__last, end(), __first); > return __first; > } > > void > resize(size_type __new_size, bool __x = bool()) > { > if (__new_size < size()) > erase(begin() + difference_type(__new_size), end()); > else > insert(end(), __new_size - size(), __x); > } > > void > flip() > { > for (_Bit_type * __p = this->_M_impl._M_start._M_p; > __p != this->_M_impl._M_end_of_storage; ++__p) > *__p = ~*__p; > } > > void > clear() > { erase(begin(), end()); } > }; >} ># 73 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 2 3 > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc" 1 3 ># 64 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/bits/vector.tcc" 3 >namespace std >{ > template<typename _Tp, typename _Alloc> > void > vector<_Tp, _Alloc>:: > reserve(size_type __n) > { > if (__n > this->max_size()) > __throw_length_error(("vector::reserve")); > if (this->capacity() < __n) > { > const size_type __old_size = size(); > pointer __tmp = _M_allocate_and_copy(__n, > this->_M_impl._M_start, > this->_M_impl._M_finish); > std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > _M_deallocate(this->_M_impl._M_start, > this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); > this->_M_impl._M_start = __tmp; > this->_M_impl._M_finish = __tmp + __old_size; > this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n; > } > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp, _Alloc>::iterator > vector<_Tp, _Alloc>:: > insert(iterator __position, const value_type& __x) > { > const size_type __n = __position - begin(); > if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage > && __position == end()) > { > this->_M_impl.construct(this->_M_impl._M_finish, __x); > ++this->_M_impl._M_finish; > } > else > _M_insert_aux(__position, __x); > return begin() + __n; > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp, _Alloc>::iterator > vector<_Tp, _Alloc>:: > erase(iterator __position) > { > if (__position + 1 != end()) > std::copy(__position + 1, end(), __position); > --this->_M_impl._M_finish; > this->_M_impl.destroy(this->_M_impl._M_finish); > return __position; > } > > template<typename _Tp, typename _Alloc> > typename vector<_Tp, _Alloc>::iterator > vector<_Tp, _Alloc>:: > erase(iterator __first, iterator __last) > { > iterator __i(std::copy(__last, end(), __first)); > std::_Destroy(__i, end(), _M_get_Tp_allocator()); > this->_M_impl._M_finish = this->_M_impl._M_finish - (__last - __first); > return __first; > } > > template<typename _Tp, typename _Alloc> > vector<_Tp, _Alloc>& > vector<_Tp, _Alloc>:: > operator=(const vector<_Tp, _Alloc>& __x) > { > if (&__x != this) > { > const size_type __xlen = __x.size(); > if (__xlen > capacity()) > { > pointer __tmp = _M_allocate_and_copy(__xlen, __x.begin(), > __x.end()); > std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > _M_deallocate(this->_M_impl._M_start, > this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); > this->_M_impl._M_start = __tmp; > this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __xlen; > } > else if (size() >= __xlen) > { > iterator __i(std::copy(__x.begin(), __x.end(), begin())); > std::_Destroy(__i, end(), _M_get_Tp_allocator()); > } > else > { > std::copy(__x.begin(), __x.begin() + size(), > this->_M_impl._M_start); > std::__uninitialized_copy_a(__x.begin() + size(), > __x.end(), this->_M_impl._M_finish, > _M_get_Tp_allocator()); > } > this->_M_impl._M_finish = this->_M_impl._M_start + __xlen; > } > return *this; > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp, _Alloc>:: > _M_fill_assign(size_t __n, const value_type& __val) > { > if (__n > capacity()) > { > vector __tmp(__n, __val, _M_get_Tp_allocator()); > __tmp.swap(*this); > } > else if (__n > size()) > { > std::fill(begin(), end(), __val); > std::__uninitialized_fill_n_a(this->_M_impl._M_finish, > __n - size(), __val, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __n - size(); > } > else > erase(std::fill_n(begin(), __n, __val), end()); > } > > template<typename _Tp, typename _Alloc> > template<typename _InputIterator> > void > vector<_Tp, _Alloc>:: > _M_assign_aux(_InputIterator __first, _InputIterator __last, > std::input_iterator_tag) > { > iterator __cur(begin()); > for (; __first != __last && __cur != end(); ++__cur, ++__first) > *__cur = *__first; > if (__first == __last) > erase(__cur, end()); > else > insert(end(), __first, __last); > } > > template<typename _Tp, typename _Alloc> > template<typename _ForwardIterator> > void > vector<_Tp, _Alloc>:: > _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, > std::forward_iterator_tag) > { > const size_type __len = std::distance(__first, __last); > > if (__len > capacity()) > { > pointer __tmp(_M_allocate_and_copy(__len, __first, __last)); > std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > _M_deallocate(this->_M_impl._M_start, > this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); > this->_M_impl._M_start = __tmp; > this->_M_impl._M_finish = this->_M_impl._M_start + __len; > this->_M_impl._M_end_of_storage = this->_M_impl._M_finish; > } > else if (size() >= __len) > { > iterator __new_finish(std::copy(__first, __last, > this->_M_impl._M_start)); > std::_Destroy(__new_finish, end(), _M_get_Tp_allocator()); > this->_M_impl._M_finish = __new_finish.base(); > } > else > { > _ForwardIterator __mid = __first; > std::advance(__mid, size()); > std::copy(__first, __mid, this->_M_impl._M_start); > this->_M_impl._M_finish = > std::__uninitialized_copy_a(__mid, __last, > this->_M_impl._M_finish, > _M_get_Tp_allocator()); > } > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp, _Alloc>:: > _M_insert_aux(iterator __position, const _Tp& __x) > { > if (this->_M_impl._M_finish != this->_M_impl._M_end_of_storage) > { > this->_M_impl.construct(this->_M_impl._M_finish, > *(this->_M_impl._M_finish - 1)); > ++this->_M_impl._M_finish; > _Tp __x_copy = __x; > std::copy_backward(__position, > iterator(this->_M_impl._M_finish-2), > iterator(this->_M_impl._M_finish-1)); > *__position = __x_copy; > } > else > { > const size_type __old_size = size(); > if (__old_size == this->max_size()) > __throw_length_error(("vector::_M_insert_aux")); > > > > > size_type __len = __old_size != 0 ? 2 * __old_size : 1; > if (__len < __old_size) > __len = this->max_size(); > > iterator __new_start(this->_M_allocate(__len)); > iterator __new_finish(__new_start); > try > { > __new_finish = > std::__uninitialized_copy_a(iterator(this->_M_impl._M_start), > __position, > __new_start, > _M_get_Tp_allocator()); > this->_M_impl.construct(__new_finish.base(), __x); > ++__new_finish; > __new_finish = > std::__uninitialized_copy_a(__position, > iterator(this->_M_impl._M_finish), > __new_finish, > _M_get_Tp_allocator()); > } > catch(...) > { > std::_Destroy(__new_start, __new_finish, _M_get_Tp_allocator()); > _M_deallocate(__new_start.base(),__len); > throw; > } > std::_Destroy(begin(), end(), _M_get_Tp_allocator()); > _M_deallocate(this->_M_impl._M_start, > this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); > this->_M_impl._M_start = __new_start.base(); > this->_M_impl._M_finish = __new_finish.base(); > this->_M_impl._M_end_of_storage = __new_start.base() + __len; > } > } > > template<typename _Tp, typename _Alloc> > void > vector<_Tp, _Alloc>:: > _M_fill_insert(iterator __position, size_type __n, const value_type& __x) > { > if (__n != 0) > { > if (size_type(this->_M_impl._M_end_of_storage > - this->_M_impl._M_finish) >= __n) > { > value_type __x_copy = __x; > const size_type __elems_after = end() - __position; > iterator __old_finish(this->_M_impl._M_finish); > if (__elems_after > __n) > { > std::__uninitialized_copy_a(this->_M_impl._M_finish - __n, > this->_M_impl._M_finish, > this->_M_impl._M_finish, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __n; > std::copy_backward(__position, __old_finish - __n, > __old_finish); > std::fill(__position, __position + __n, __x_copy); > } > else > { > std::__uninitialized_fill_n_a(this->_M_impl._M_finish, > __n - __elems_after, > __x_copy, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __n - __elems_after; > std::__uninitialized_copy_a(__position, __old_finish, > this->_M_impl._M_finish, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __elems_after; > std::fill(__position, __old_finish, __x_copy); > } > } > else > { > const size_type __old_size = size(); > if (this->max_size() - __old_size < __n) > __throw_length_error(("vector::_M_fill_insert")); > > > size_type __len = __old_size + std::max(__old_size, __n); > if (__len < __old_size) > __len = this->max_size(); > > iterator __new_start(this->_M_allocate(__len)); > iterator __new_finish(__new_start); > try > { > __new_finish = > std::__uninitialized_copy_a(begin(), __position, > __new_start, > _M_get_Tp_allocator()); > std::__uninitialized_fill_n_a(__new_finish, __n, __x, > _M_get_Tp_allocator()); > __new_finish += __n; > __new_finish = > std::__uninitialized_copy_a(__position, end(), __new_finish, > _M_get_Tp_allocator()); > } > catch(...) > { > std::_Destroy(__new_start, __new_finish, > _M_get_Tp_allocator()); > _M_deallocate(__new_start.base(), __len); > throw; > } > std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > _M_deallocate(this->_M_impl._M_start, > this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); > this->_M_impl._M_start = __new_start.base(); > this->_M_impl._M_finish = __new_finish.base(); > this->_M_impl._M_end_of_storage = __new_start.base() + __len; > } > } > } > > template<typename _Tp, typename _Alloc> template<typename _InputIterator> > void > vector<_Tp, _Alloc>:: > _M_range_insert(iterator __pos, _InputIterator __first, > _InputIterator __last, std::input_iterator_tag) > { > for (; __first != __last; ++__first) > { > __pos = insert(__pos, *__first); > ++__pos; > } > } > > template<typename _Tp, typename _Alloc> > template<typename _ForwardIterator> > void > vector<_Tp, _Alloc>:: > _M_range_insert(iterator __position, _ForwardIterator __first, > _ForwardIterator __last, std::forward_iterator_tag) > { > if (__first != __last) > { > const size_type __n = std::distance(__first, __last); > if (size_type(this->_M_impl._M_end_of_storage > - this->_M_impl._M_finish) >= __n) > { > const size_type __elems_after = end() - __position; > iterator __old_finish(this->_M_impl._M_finish); > if (__elems_after > __n) > { > std::__uninitialized_copy_a(this->_M_impl._M_finish - __n, > this->_M_impl._M_finish, > this->_M_impl._M_finish, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __n; > std::copy_backward(__position, __old_finish - __n, > __old_finish); > std::copy(__first, __last, __position); > } > else > { > _ForwardIterator __mid = __first; > std::advance(__mid, __elems_after); > std::__uninitialized_copy_a(__mid, __last, > this->_M_impl._M_finish, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __n - __elems_after; > std::__uninitialized_copy_a(__position, __old_finish, > this->_M_impl._M_finish, > _M_get_Tp_allocator()); > this->_M_impl._M_finish += __elems_after; > std::copy(__first, __mid, __position); > } > } > else > { > const size_type __old_size = size(); > if (this->max_size() - __old_size < __n) > __throw_length_error(("vector::_M_range_insert")); > > > size_type __len = __old_size + std::max(__old_size, __n); > if (__len < __old_size) > __len = this->max_size(); > > iterator __new_start(this->_M_allocate(__len)); > iterator __new_finish(__new_start); > try > { > __new_finish = > std::__uninitialized_copy_a(iterator(this->_M_impl._M_start), > __position, > __new_start, > _M_get_Tp_allocator()); > __new_finish = > std::__uninitialized_copy_a(__first, __last, __new_finish, > _M_get_Tp_allocator()); > __new_finish = > std::__uninitialized_copy_a(__position, > iterator(this->_M_impl._M_finish), > __new_finish, > _M_get_Tp_allocator()); > } > catch(...) > { > std::_Destroy(__new_start,__new_finish, > _M_get_Tp_allocator()); > _M_deallocate(__new_start.base(), __len); > throw; > } > std::_Destroy(this->_M_impl._M_start, this->_M_impl._M_finish, > _M_get_Tp_allocator()); > _M_deallocate(this->_M_impl._M_start, > this->_M_impl._M_end_of_storage > - this->_M_impl._M_start); > this->_M_impl._M_start = __new_start.base(); > this->_M_impl._M_finish = __new_finish.base(); > this->_M_impl._M_end_of_storage = __new_start.base() + __len; > } > } > } >} ># 76 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/g++-v4/vector" 2 3 > > > > > > >#pragma GCC visibility pop ># 43 "panelfront.h" 2 > ># 1 "packet.h" 1 ># 22 "packet.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "packet.h" 2 > > > ># 1 "/usr/include/sys/time.h" 1 3 4 ># 29 "/usr/include/sys/time.h" 3 4 ># 1 "/usr/include/bits/time.h" 1 3 4 ># 30 "/usr/include/sys/time.h" 2 3 4 ># 39 "/usr/include/sys/time.h" 3 4 >extern "C" { ># 57 "/usr/include/sys/time.h" 3 4 >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 73 "/usr/include/sys/time.h" 3 4 >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int settimeofday (__const struct timeval *__tv, > __const struct timezone *__tz) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int adjtime (__const struct timeval *__delta, > struct timeval *__olddelta) throw (); > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > > > >typedef int __itimer_which_t; > > > > >extern int getitimer (__itimer_which_t __which, > struct itimerval *__value) throw (); > > > > >extern int setitimer (__itimer_which_t __which, > __const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) throw (); > > > > >extern int utimes (__const char *__file, __const struct timeval __tvp[2]) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) > throw () __attribute__ ((__nonnull__ (1))); > > >extern int futimes (int __fd, __const struct timeval __tvp[2]) throw (); > > > > > > >extern int futimesat (int __fd, __const char *__file, > __const struct timeval __tvp[2]) throw (); ># 191 "/usr/include/sys/time.h" 3 4 >} ># 27 "packet.h" 2 ># 1 "/usr/include/sys/resource.h" 1 3 4 ># 25 "/usr/include/sys/resource.h" 3 4 ># 1 "/usr/include/bits/resource.h" 1 3 4 ># 33 "/usr/include/bits/resource.h" 3 4 >enum __rlimit_resource >{ > > RLIMIT_CPU = 0, > > > > RLIMIT_FSIZE = 1, > > > > RLIMIT_DATA = 2, > > > > RLIMIT_STACK = 3, > > > > RLIMIT_CORE = 4, > > > > > > > __RLIMIT_RSS = 5, > > > > RLIMIT_NOFILE = 7, > __RLIMIT_OFILE = RLIMIT_NOFILE, > > > > > RLIMIT_AS = 9, > > > > __RLIMIT_NPROC = 6, > > > > __RLIMIT_MEMLOCK = 8, > > > > __RLIMIT_LOCKS = 10, > > > > __RLIMIT_SIGPENDING = 11, > > > > __RLIMIT_MSGQUEUE = 12, > > > > > > __RLIMIT_NICE = 13, > > > > > __RLIMIT_RTPRIO = 14, > > > __RLIMIT_NLIMITS = 15, > __RLIM_NLIMITS = __RLIMIT_NLIMITS > > >}; ># 129 "/usr/include/bits/resource.h" 3 4 >typedef __rlim64_t rlim_t; > > >typedef __rlim64_t rlim64_t; > > >struct rlimit > { > > rlim_t rlim_cur; > > rlim_t rlim_max; > }; > > >struct rlimit64 > { > > rlim64_t rlim_cur; > > rlim64_t rlim_max; > }; > > > >enum __rusage_who >{ > > RUSAGE_SELF = 0, > > > > RUSAGE_CHILDREN = -1 > >}; > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 167 "/usr/include/bits/resource.h" 2 3 4 > > >struct rusage > { > > struct timeval ru_utime; > > struct timeval ru_stime; > > long int ru_maxrss; > > > long int ru_ixrss; > > long int ru_idrss; > > long int ru_isrss; > > > long int ru_minflt; > > long int ru_majflt; > > long int ru_nswap; > > > long int ru_inblock; > > long int ru_oublock; > > long int ru_msgsnd; > > long int ru_msgrcv; > > long int ru_nsignals; > > > > long int ru_nvcsw; > > > long int ru_nivcsw; > }; > > > > > > > >enum __priority_which >{ > PRIO_PROCESS = 0, > > PRIO_PGRP = 1, > > PRIO_USER = 2 > >}; ># 26 "/usr/include/sys/resource.h" 2 3 4 > > > > > > >extern "C" { ># 43 "/usr/include/sys/resource.h" 3 4 >typedef int __rlimit_resource_t; >typedef int __rusage_who_t; >typedef int __priority_which_t; ># 55 "/usr/include/sys/resource.h" 3 4 >extern int getrlimit (__rlimit_resource_t __resource, struct rlimit *__rlimits) throw () __asm__ ("" "getrlimit64"); > > > > > > >extern int getrlimit64 (__rlimit_resource_t __resource, > struct rlimit64 *__rlimits) throw (); ># 74 "/usr/include/sys/resource.h" 3 4 >extern int setrlimit (__rlimit_resource_t __resource, __const struct rlimit *__rlimits) throw () __asm__ ("" "setrlimit64"); > > > > > > > >extern int setrlimit64 (__rlimit_resource_t __resource, > __const struct rlimit64 *__rlimits) throw (); > > > > >extern int getrusage (__rusage_who_t __who, struct rusage *__usage) throw (); > > > > > >extern int getpriority (__priority_which_t __which, id_t __who) throw (); > > > >extern int setpriority (__priority_which_t __which, id_t __who, int __prio) > throw (); > >} ># 28 "packet.h" 2 > ># 1 "/usr/include/netinet/in.h" 1 3 4 ># 24 "/usr/include/netinet/in.h" 3 4 ># 1 "/usr/include/sys/socket.h" 1 3 4 ># 25 "/usr/include/sys/socket.h" 3 4 >extern "C" { > ># 1 "/usr/include/sys/uio.h" 1 3 4 ># 26 "/usr/include/sys/uio.h" 3 4 >extern "C" { > > ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 42 "/usr/include/bits/uio.h" 3 4 >struct iovec > { > void *iov_base; > size_t iov_len; > }; ># 30 "/usr/include/sys/uio.h" 2 3 4 ># 40 "/usr/include/sys/uio.h" 3 4 >extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count); ># 50 "/usr/include/sys/uio.h" 3 4 >extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count); > >} ># 28 "/usr/include/sys/socket.h" 2 3 4 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 30 "/usr/include/sys/socket.h" 2 3 4 > > > > > ># 1 "/usr/include/bits/socket.h" 1 3 4 ># 29 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 30 "/usr/include/bits/socket.h" 2 3 4 > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/limits.h" 1 3 4 ># 32 "/usr/include/bits/socket.h" 2 3 4 ># 41 "/usr/include/bits/socket.h" 3 4 >enum __socket_type >{ > SOCK_STREAM = 1, > > > SOCK_DGRAM = 2, > > > SOCK_RAW = 3, > > SOCK_RDM = 4, > > SOCK_SEQPACKET = 5, > > > SOCK_PACKET = 10 > > > >}; ># 142 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/include/bits/sockaddr.h" 1 3 4 ># 29 "/usr/include/bits/sockaddr.h" 3 4 >typedef unsigned short int sa_family_t; ># 143 "/usr/include/bits/socket.h" 2 3 4 > > >struct sockaddr > { > sa_family_t sa_family; > char sa_data[14]; > }; ># 162 "/usr/include/bits/socket.h" 3 4 >struct sockaddr_storage > { > sa_family_t ss_family; > __uint32_t __ss_align; > char __ss_padding[(128 - (2 * sizeof (__uint32_t)))]; > }; > > > >enum > { > MSG_OOB = 0x01, > > MSG_PEEK = 0x02, > > MSG_DONTROUTE = 0x04, > > > > MSG_TRYHARD = MSG_DONTROUTE, > > > MSG_CTRUNC = 0x08, > > MSG_PROXY = 0x10, > > MSG_TRUNC = 0x20, > > MSG_DONTWAIT = 0x40, > > MSG_EOR = 0x80, > > MSG_WAITALL = 0x100, > > MSG_FIN = 0x200, > > MSG_SYN = 0x400, > > MSG_CONFIRM = 0x800, > > MSG_RST = 0x1000, > > MSG_ERRQUEUE = 0x2000, > > MSG_NOSIGNAL = 0x4000, > > MSG_MORE = 0x8000 > > }; > > > > >struct msghdr > { > void *msg_name; > socklen_t msg_namelen; > > struct iovec *msg_iov; > size_t msg_iovlen; > > void *msg_control; > size_t msg_controllen; > > int msg_flags; > }; > > >struct cmsghdr > { > size_t cmsg_len; > > int cmsg_level; > int cmsg_type; > > __extension__ unsigned char __cmsg_data []; > > }; ># 257 "/usr/include/bits/socket.h" 3 4 >extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, > struct cmsghdr *__cmsg) throw (); > > > > >extern __inline struct cmsghdr * >__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) throw () >{ > if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) > > return 0; > > __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg > + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))); > if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control > + __mhdr->msg_controllen) > || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) > > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) > > return 0; > return __cmsg; >} > > > > >enum > { > SCM_RIGHTS = 0x01 > > > , SCM_CREDENTIALS = 0x02 > > > }; > > > >struct ucred >{ > pid_t pid; > uid_t uid; > gid_t gid; >}; > > ># 1 "/usr/src/linux/include/asm/socket.h" 1 3 4 > > > ># 1 "/usr/src/linux/include/asm/sockios.h" 1 3 4 ># 5 "/usr/src/linux/include/asm/socket.h" 2 3 4 ># 305 "/usr/include/bits/socket.h" 2 3 4 > > > >struct linger > { > int l_onoff; > int l_linger; > }; ># 36 "/usr/include/sys/socket.h" 2 3 4 > > > > >struct osockaddr > { > unsigned short int sa_family; > unsigned char sa_data[14]; > }; > > > > >enum >{ > SHUT_RD = 0, > > SHUT_WR, > > SHUT_RDWR > >}; ># 100 "/usr/include/sys/socket.h" 3 4 >extern int socket (int __domain, int __type, int __protocol) throw (); > > > > > >extern int socketpair (int __domain, int __type, int __protocol, > int __fds[2]) throw (); > > >extern int bind (int __fd, __const struct sockaddr * __addr, socklen_t __len) > throw (); > > >extern int getsockname (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __len) throw (); ># 124 "/usr/include/sys/socket.h" 3 4 >extern int connect (int __fd, __const struct sockaddr * __addr, socklen_t __len); > > > >extern int getpeername (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __len) throw (); > > > > > > >extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t sendto (int __fd, __const void *__buf, size_t __n, > int __flags, __const struct sockaddr * __addr, > socklen_t __addr_len); ># 161 "/usr/include/sys/socket.h" 3 4 >extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, > int __flags, struct sockaddr *__restrict __addr, > socklen_t *__restrict __addr_len); > > > > > > > >extern ssize_t sendmsg (int __fd, __const struct msghdr *__message, > int __flags); > > > > > > >extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); > > > > > >extern int getsockopt (int __fd, int __level, int __optname, > void *__restrict __optval, > socklen_t *__restrict __optlen) throw (); > > > > >extern int setsockopt (int __fd, int __level, int __optname, > __const void *__optval, socklen_t __optlen) throw (); > > > > > >extern int listen (int __fd, int __n) throw (); ># 209 "/usr/include/sys/socket.h" 3 4 >extern int accept (int __fd, struct sockaddr *__restrict __addr, > socklen_t *__restrict __addr_len); > > > > > > > >extern int shutdown (int __fd, int __how) throw (); > > > > >extern int sockatmark (int __fd) throw (); > > > > > > > >extern int isfdtype (int __fd, int __fdtype) throw (); ># 240 "/usr/include/sys/socket.h" 3 4 >} ># 25 "/usr/include/netinet/in.h" 2 3 4 > > > >extern "C" { > > >enum > { > IPPROTO_IP = 0, > > IPPROTO_HOPOPTS = 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_TP = 29, > > IPPROTO_IPV6 = 41, > > IPPROTO_ROUTING = 43, > > IPPROTO_FRAGMENT = 44, > > IPPROTO_RSVP = 46, > > IPPROTO_GRE = 47, > > IPPROTO_ESP = 50, > > IPPROTO_AH = 51, > > IPPROTO_ICMPV6 = 58, > > IPPROTO_NONE = 59, > > IPPROTO_DSTOPTS = 60, > > IPPROTO_MTP = 92, > > IPPROTO_ENCAP = 98, > > IPPROTO_PIM = 103, > > IPPROTO_COMP = 108, > > IPPROTO_SCTP = 132, > > IPPROTO_RAW = 255, > > IPPROTO_MAX > }; > > > >typedef uint16_t in_port_t; > > >enum > { > IPPORT_ECHO = 7, > IPPORT_DISCARD = 9, > IPPORT_SYSTAT = 11, > IPPORT_DAYTIME = 13, > IPPORT_NETSTAT = 15, > IPPORT_FTP = 21, > IPPORT_TELNET = 23, > IPPORT_SMTP = 25, > IPPORT_TIMESERVER = 37, > IPPORT_NAMESERVER = 42, > IPPORT_WHOIS = 43, > IPPORT_MTP = 57, > > IPPORT_TFTP = 69, > IPPORT_RJE = 77, > IPPORT_FINGER = 79, > IPPORT_TTYLINK = 87, > IPPORT_SUPDUP = 95, > > > IPPORT_EXECSERVER = 512, > IPPORT_LOGINSERVER = 513, > IPPORT_CMDSERVER = 514, > IPPORT_EFSSERVER = 520, > > > IPPORT_BIFFUDP = 512, > IPPORT_WHOSERVER = 513, > IPPORT_ROUTESERVER = 520, > > > IPPORT_RESERVED = 1024, > > > IPPORT_USERRESERVED = 5000 > }; > > > >typedef uint32_t in_addr_t; >struct in_addr > { > in_addr_t s_addr; > }; ># 193 "/usr/include/netinet/in.h" 3 4 >struct in6_addr > { > union > { > uint8_t u6_addr8[16]; > uint16_t u6_addr16[8]; > uint32_t u6_addr32[4]; > } in6_u; > > > > }; > >extern const struct in6_addr in6addr_any; >extern const struct in6_addr in6addr_loopback; ># 219 "/usr/include/netinet/in.h" 3 4 >struct sockaddr_in > { > sa_family_t sin_family; > in_port_t sin_port; > struct in_addr sin_addr; > > > unsigned char sin_zero[sizeof (struct sockaddr) - > (sizeof (unsigned short int)) - > sizeof (in_port_t) - > sizeof (struct in_addr)]; > }; > > >struct sockaddr_in6 > { > sa_family_t sin6_family; > in_port_t sin6_port; > uint32_t sin6_flowinfo; > struct in6_addr sin6_addr; > uint32_t sin6_scope_id; > }; > > > >struct ip_mreq > { > > struct in_addr imr_multiaddr; > > > struct in_addr imr_interface; > }; > >struct ip_mreq_source > { > > struct in_addr imr_multiaddr; > > > struct in_addr imr_interface; > > > struct in_addr imr_sourceaddr; > }; > > >struct ipv6_mreq > { > > struct in6_addr ipv6mr_multiaddr; > > > unsigned int ipv6mr_interface; > }; > > > >struct group_req > { > > uint32_t gr_interface; > > > struct sockaddr_storage gr_group; > }; > >struct group_source_req > { > > uint32_t gsr_interface; > > > struct sockaddr_storage gsr_group; > > > struct sockaddr_storage gsr_source; > }; > > > >struct ip_msfilter > { > > struct in_addr imsf_multiaddr; > > > struct in_addr imsf_interface; > > > uint32_t imsf_fmode; > > > uint32_t imsf_numsrc; > > struct in_addr imsf_slist[1]; > }; > > > > > >struct group_filter > { > > uint32_t gf_interface; > > > struct sockaddr_storage gf_group; > > > uint32_t gf_fmode; > > > uint32_t gf_numsrc; > > struct sockaddr_storage gf_slist[1]; >}; ># 345 "/usr/include/netinet/in.h" 3 4 ># 1 "/usr/include/bits/in.h" 1 3 4 ># 82 "/usr/include/bits/in.h" 3 4 >struct ip_opts > { > struct in_addr ip_dst; > char ip_opts[40]; > }; > > >struct ip_mreqn > { > struct in_addr imr_multiaddr; > struct in_addr imr_address; > int imr_ifindex; > }; > > >struct in_pktinfo > { > int ipi_ifindex; > struct in_addr ipi_spec_dst; > struct in_addr ipi_addr; > }; ># 346 "/usr/include/netinet/in.h" 2 3 4 ># 354 "/usr/include/netinet/in.h" 3 4 >extern uint32_t ntohl (uint32_t __netlong) throw () __attribute__ ((__const__)); >extern uint16_t ntohs (uint16_t __netshort) > throw () __attribute__ ((__const__)); >extern uint32_t htonl (uint32_t __hostlong) > throw () __attribute__ ((__const__)); >extern uint16_t htons (uint16_t __hostshort) > throw () __attribute__ ((__const__)); > > > > ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 366 "/usr/include/netinet/in.h" 2 3 4 ># 428 "/usr/include/netinet/in.h" 3 4 >extern int bindresvport (int __sockfd, struct sockaddr_in *__sock_in) throw (); > > >extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in) > throw (); ># 456 "/usr/include/netinet/in.h" 3 4 >struct in6_pktinfo > { > struct in6_addr ipi6_addr; > unsigned int ipi6_ifindex; > }; > > > > >extern int inet6_option_space (int __nbytes) throw (); >extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp, > int __type) throw (); >extern int inet6_option_append (struct cmsghdr *__cmsg, > __const uint8_t *__typep, int __multx, > int __plusy) throw (); >extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen, > int __multx, int __plusy) throw (); >extern int inet6_option_next (__const struct cmsghdr *__cmsg, > uint8_t **__tptrp) throw (); >extern int inet6_option_find (__const struct cmsghdr *__cmsg, > uint8_t **__tptrp, int __type) throw (); > > > > > >extern int getipv4sourcefilter (int __s, struct in_addr __interface_addr, > struct in_addr __group, uint32_t *__fmode, > uint32_t *__numsrc, struct in_addr *__slist) > throw (); > > >extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr, > struct in_addr __group, uint32_t __fmode, > uint32_t __numsrc, > __const struct in_addr *__slist) > throw (); > > > >extern int getsourcefilter (int __s, uint32_t __interface_addr, > __const struct sockaddr *__group, > socklen_t __grouplen, uint32_t *__fmode, > uint32_t *__numsrc, > struct sockaddr_storage *__slist) throw (); > > >extern int setsourcefilter (int __s, uint32_t __interface_addr, > __const struct sockaddr *__group, > socklen_t __grouplen, uint32_t __fmode, > uint32_t __numsrc, > __const struct sockaddr_storage *__slist) throw (); > > >} ># 30 "packet.h" 2 > > ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 103 "/usr/include/bits/sigset.h" 3 4 >extern int __sigismember (__const __sigset_t *, int); >extern int __sigaddset (__sigset_t *, int); >extern int __sigdelset (__sigset_t *, int); ># 117 "/usr/include/bits/sigset.h" 3 4 >extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } >extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } >extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } ># 34 "/usr/include/signal.h" 2 3 4 > > > > > > > >typedef __sig_atomic_t sig_atomic_t; > ># 58 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/signum.h" 1 3 4 ># 59 "/usr/include/signal.h" 2 3 4 ># 75 "/usr/include/signal.h" 3 4 >typedef void (*__sighandler_t) (int); > > > > >extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) > throw (); > >extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) > throw (); > > > > > > > >extern __sighandler_t signal (int __sig, __sighandler_t __handler) > throw (); ># 104 "/usr/include/signal.h" 3 4 > > > > > >extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) > throw (); > > > > > > >extern int kill (__pid_t __pid, int __sig) throw (); > > > > > > >extern int killpg (__pid_t __pgrp, int __sig) throw (); > > > > >extern int raise (int __sig) throw (); > > > > >extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) > throw (); >extern int gsignal (int __sig) throw (); > > > > >extern void psignal (int __sig, __const char *__s); ># 153 "/usr/include/signal.h" 3 4 >extern int __sigpause (int __sig_or_mask, int __is_sig); ># 162 "/usr/include/signal.h" 3 4 >extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); ># 181 "/usr/include/signal.h" 3 4 >extern int sigblock (int __mask) throw () __attribute__ ((__deprecated__)); > > >extern int sigsetmask (int __mask) throw () __attribute__ ((__deprecated__)); > > >extern int siggetmask (void) throw () __attribute__ ((__deprecated__)); ># 196 "/usr/include/signal.h" 3 4 >typedef __sighandler_t sighandler_t; > > > > >typedef __sighandler_t sig_t; ># 212 "/usr/include/signal.h" 3 4 ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 > > > > > > > >typedef union sigval > { > int sival_int; > void *sival_ptr; > } sigval_t; ># 51 "/usr/include/bits/siginfo.h" 3 4 >typedef struct siginfo > { > int si_signo; > int si_errno; > > int si_code; > > union > { > int _pad[((128 / sizeof (int)) - 3)]; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > } _kill; > > > struct > { > int si_tid; > int si_overrun; > sigval_t si_sigval; > } _timer; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > sigval_t si_sigval; > } _rt; > > > struct > { > __pid_t si_pid; > __uid_t si_uid; > int si_status; > __clock_t si_utime; > __clock_t si_stime; > } _sigchld; > > > struct > { > void *si_addr; > } _sigfault; > > > struct > { > long int si_band; > int si_fd; > } _sigpoll; > } _sifields; > } siginfo_t; ># 129 "/usr/include/bits/siginfo.h" 3 4 >enum >{ > SI_ASYNCNL = -60, > > SI_TKILL = -6, > > SI_SIGIO, > > SI_ASYNCIO, > > SI_MESGQ, > > SI_TIMER, > > SI_QUEUE, > > SI_USER, > > SI_KERNEL = 0x80 > >}; > > > >enum >{ > ILL_ILLOPC = 1, > > ILL_ILLOPN, > > ILL_ILLADR, > > ILL_ILLTRP, > > ILL_PRVOPC, > > ILL_PRVREG, > > ILL_COPROC, > > ILL_BADSTK > >}; > > >enum >{ > FPE_INTDIV = 1, > > FPE_INTOVF, > > FPE_FLTDIV, > > FPE_FLTOVF, > > FPE_FLTUND, > > FPE_FLTRES, > > FPE_FLTINV, > > FPE_FLTSUB > >}; > > >enum >{ > SEGV_MAPERR = 1, > > SEGV_ACCERR > >}; > > >enum >{ > BUS_ADRALN = 1, > > BUS_ADRERR, > > BUS_OBJERR > >}; > > >enum >{ > TRAP_BRKPT = 1, > > TRAP_TRACE > >}; > > >enum >{ > CLD_EXITED = 1, > > CLD_KILLED, > > CLD_DUMPED, > > CLD_TRAPPED, > > CLD_STOPPED, > > CLD_CONTINUED > >}; > > >enum >{ > POLL_IN = 1, > > POLL_OUT, > > POLL_MSG, > > POLL_ERR, > > POLL_PRI, > > POLL_HUP > >}; ># 273 "/usr/include/bits/siginfo.h" 3 4 >typedef struct sigevent > { > sigval_t sigev_value; > int sigev_signo; > int sigev_notify; > > union > { > int _pad[((64 / sizeof (int)) - 3)]; > > > > __pid_t _tid; > > struct > { > void (*_function) (sigval_t); > void *_attribute; > } _sigev_thread; > } _sigev_un; > } sigevent_t; > > > > > > >enum >{ > SIGEV_SIGNAL = 0, > > SIGEV_NONE, > > SIGEV_THREAD, > > > SIGEV_THREAD_ID = 4 > >}; ># 213 "/usr/include/signal.h" 2 3 4 > > > >extern int sigemptyset (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigfillset (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigaddset (sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigdelset (sigset_t *__set, int __signo) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigismember (__const sigset_t *__set, int __signo) > throw () __attribute__ ((__nonnull__ (1))); > > > >extern int sigisemptyset (__const sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > >extern int sigandset (sigset_t *__set, __const sigset_t *__left, > __const sigset_t *__right) throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > >extern int sigorset (sigset_t *__set, __const sigset_t *__left, > __const sigset_t *__right) throw () __attribute__ ((__nonnull__ (1, 2, 3))); > > > > ># 1 "/usr/include/bits/sigaction.h" 1 3 4 ># 25 "/usr/include/bits/sigaction.h" 3 4 >struct sigaction > { > > > union > { > > __sighandler_t sa_handler; > > void (*sa_sigaction) (int, siginfo_t *, void *); > } > __sigaction_handler; > > > > > > > > __sigset_t sa_mask; > > > int sa_flags; > > > void (*sa_restorer) (void); > }; ># 247 "/usr/include/signal.h" 2 3 4 > > >extern int sigprocmask (int __how, __const sigset_t *__restrict __set, > sigset_t *__restrict __oset) throw (); > > > > > > >extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); > > >extern int sigaction (int __sig, __const struct sigaction *__restrict __act, > struct sigaction *__restrict __oact) throw (); > > >extern int sigpending (sigset_t *__set) throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) > __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int sigwaitinfo (__const sigset_t *__restrict __set, > siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sigtimedwait (__const sigset_t *__restrict __set, > siginfo_t *__restrict __info, > __const struct timespec *__restrict __timeout) > __attribute__ ((__nonnull__ (1))); > > > >extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) > throw (); ># 304 "/usr/include/signal.h" 3 4 >extern __const char *__const _sys_siglist[65]; >extern __const char *__const sys_siglist[65]; > > >struct sigvec > { > __sighandler_t sv_handler; > int sv_mask; > > int sv_flags; > > }; ># 328 "/usr/include/signal.h" 3 4 >extern int sigvec (int __sig, __const struct sigvec *__vec, > struct sigvec *__ovec) throw (); > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 28 "/usr/include/bits/sigcontext.h" 3 4 ># 1 "/usr/src/linux/include/asm/sigcontext.h" 1 3 4 > > > ># 1 "/usr/src/linux/include/linux/compiler.h" 1 3 4 ># 5 "/usr/src/linux/include/asm/sigcontext.h" 2 3 4 ># 20 "/usr/src/linux/include/asm/sigcontext.h" 3 4 >struct _fpreg { > unsigned short significand[4]; > unsigned short exponent; >}; > >struct _fpxreg { > unsigned short significand[4]; > unsigned short exponent; > unsigned short padding[3]; >}; > >struct _xmmreg { > unsigned long element[4]; >}; > >struct _fpstate { > > unsigned long cw; > unsigned long sw; > unsigned long tag; > unsigned long ipoff; > unsigned long cssel; > unsigned long dataoff; > unsigned long datasel; > struct _fpreg _st[8]; > unsigned short status; > unsigned short magic; > > > unsigned long _fxsr_env[6]; > unsigned long mxcsr; > unsigned long reserved; > struct _fpxreg _fxsr_st[8]; > struct _xmmreg _xmm[8]; > unsigned long padding[56]; >}; > > > >struct sigcontext { > unsigned short gs, __gsh; > unsigned short fs, __fsh; > unsigned short es, __esh; > unsigned short ds, __dsh; > unsigned long edi; > unsigned long esi; > unsigned long ebp; > unsigned long esp; > unsigned long ebx; > unsigned long edx; > unsigned long ecx; > unsigned long eax; > unsigned long trapno; > unsigned long err; > unsigned long eip; > unsigned short cs, __csh; > unsigned long eflags; > unsigned long esp_at_signal; > unsigned short ss, __ssh; > struct _fpstate * fpstate; > unsigned long oldmask; > unsigned long cr2; >}; ># 29 "/usr/include/bits/sigcontext.h" 2 3 4 ># 334 "/usr/include/signal.h" 2 3 4 > > >extern int sigreturn (struct sigcontext *__scp) throw (); ># 346 "/usr/include/signal.h" 3 4 >extern int siginterrupt (int __sig, int __interrupt) throw (); > ># 1 "/usr/include/bits/sigstack.h" 1 3 4 ># 26 "/usr/include/bits/sigstack.h" 3 4 >struct sigstack > { > void *ss_sp; > int ss_onstack; > }; > > > >enum >{ > SS_ONSTACK = 1, > > SS_DISABLE > >}; ># 50 "/usr/include/bits/sigstack.h" 3 4 >typedef struct sigaltstack > { > void *ss_sp; > int ss_flags; > size_t ss_size; > } stack_t; ># 349 "/usr/include/signal.h" 2 3 4 > > ># 1 "/usr/include/sys/ucontext.h" 1 3 4 ># 27 "/usr/include/sys/ucontext.h" 3 4 ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 28 "/usr/include/sys/ucontext.h" 2 3 4 > > > >typedef int greg_t; > > > > > >typedef greg_t gregset_t[19]; > > > >enum >{ > REG_GS = 0, > > REG_FS, > > REG_ES, > > REG_DS, > > REG_EDI, > > REG_ESI, > > REG_EBP, > > REG_ESP, > > REG_EBX, > > REG_EDX, > > REG_ECX, > > REG_EAX, > > REG_TRAPNO, > > REG_ERR, > > REG_EIP, > > REG_CS, > > REG_EFL, > > REG_UESP, > > REG_SS > >}; > > > >struct _libc_fpreg >{ > unsigned short int significand[4]; > unsigned short int exponent; >}; > >struct _libc_fpstate >{ > unsigned long int cw; > unsigned long int sw; > unsigned long int tag; > unsigned long int ipoff; > unsigned long int cssel; > unsigned long int dataoff; > unsigned long int datasel; > struct _libc_fpreg _st[8]; > unsigned long int status; >}; > > >typedef struct _libc_fpstate *fpregset_t; > > >typedef struct > { > gregset_t gregs; > > > fpregset_t fpregs; > unsigned long int oldmask; > unsigned long int cr2; > } mcontext_t; > > >typedef struct ucontext > { > unsigned long int uc_flags; > struct ucontext *uc_link; > stack_t uc_stack; > mcontext_t uc_mcontext; > __sigset_t uc_sigmask; > struct _libc_fpstate __fpregs_mem; > } ucontext_t; ># 352 "/usr/include/signal.h" 2 3 4 > > > > > >extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) > throw () __attribute__ ((__deprecated__)); > > > >extern int sigaltstack (__const struct sigaltstack *__restrict __ss, > struct sigaltstack *__restrict __oss) throw (); > > > > > > > >extern int sighold (int __sig) throw (); > > >extern int sigrelse (int __sig) throw (); > > >extern int sigignore (int __sig) throw (); > > >extern __sighandler_t sigset (int __sig, __sighandler_t __disp) throw (); > > > > > > ># 1 "/usr/include/bits/sigthread.h" 1 3 4 ># 31 "/usr/include/bits/sigthread.h" 3 4 >extern int pthread_sigmask (int __how, > __const __sigset_t *__restrict __newmask, > __sigset_t *__restrict __oldmask)throw (); > > >extern int pthread_kill (pthread_t __threadid, int __signo) throw (); ># 388 "/usr/include/signal.h" 2 3 4 > > > > > > >extern int __libc_current_sigrtmin (void) throw (); > >extern int __libc_current_sigrtmax (void) throw (); > > > >} ># 33 "packet.h" 2 > > > > > ># 1 "/usr/include/inttypes.h" 1 3 4 ># 274 "/usr/include/inttypes.h" 3 4 >extern "C" { ># 288 "/usr/include/inttypes.h" 3 4 >typedef struct > { > long long int quot; > long long int rem; > } imaxdiv_t; > > > > > >extern intmax_t imaxabs (intmax_t __n) throw () __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > throw () __attribute__ ((__const__)); > > >extern intmax_t strtoimax (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) throw (); > > >extern uintmax_t strtoumax (__const char *__restrict __nptr, > char ** __restrict __endptr, int __base) throw (); > > >extern intmax_t wcstoimax (__const wchar_t *__restrict __nptr, > wchar_t **__restrict __endptr, int __base) > throw (); > > >extern uintmax_t wcstoumax (__const wchar_t *__restrict __nptr, > wchar_t ** __restrict __endptr, int __base) > throw (); ># 396 "/usr/include/inttypes.h" 3 4 >extern __inline intmax_t >strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) throw () > >{ > return __strtoll_internal (nptr, endptr, base, 0); >} ># 414 "/usr/include/inttypes.h" 3 4 >extern __inline uintmax_t >strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) throw () > >{ > return __strtoull_internal (nptr, endptr, base, 0); >} ># 430 "/usr/include/inttypes.h" 3 4 >extern __inline intmax_t >wcstoimax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () > >{ > return __wcstoll_internal (nptr, endptr, base, 0); >} ># 449 "/usr/include/inttypes.h" 3 4 >extern __inline uintmax_t >wcstoumax (__const wchar_t *__restrict nptr, wchar_t **__restrict endptr, int base) throw () > >{ > return __wcstoull_internal (nptr, endptr, base, 0); >} > > > > >} ># 39 "packet.h" 2 > > > > > > ># 1 "macaddr.h" 1 ># 22 "macaddr.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "macaddr.h" 2 ># 49 "macaddr.h" >typedef struct mac_addr { > uint64_t longmac; > uint64_t longmask; > int error; > > > > void string2long(const char *in) { > short unsigned int *bs_in = new short unsigned int[6]; > > error = 0; > longmac = 0; > longmask = (uint64_t) -1; > > > if (sscanf(in, "%hX:%hX:%hX:%hX:%hX:%hX", > &bs_in[0], &bs_in[1], &bs_in[2], > &bs_in[3], &bs_in[4], &bs_in[5]) == 6) { > > for (int x = 0; x < 6; x++) > longmac |= (uint64_t) bs_in[x] << ((6 - x - 1) * 8); > > > char *in_mask = strchr(in, '/'); > if (in_mask != __null) { > longmask = 0; > > > if (strchr(in_mask + 1, ':') != __null) { > > if (sscanf(in_mask + 1, "%hX:%hX:%hX:%hX:%hX:%hX", > &bs_in[0], &bs_in[1], &bs_in[2], > &bs_in[3], &bs_in[4], &bs_in[5]) == 6) { > > for (int x = 0; x < 6; x++) > longmask |= (uint64_t) bs_in[x] << ((6 - x - 1) * 8); > } else { > error = 1; > } > } else { > > int nummask; > if (sscanf(in_mask + 1, "%d", &nummask) == 1) { > if (nummask == 48) > nummask = 0; > > longmask = ((uint64_t) -1 << (48 - nummask)); > > } else { > error = 1; > } > } > } > > } else { > error = 1; > } > > delete[] bs_in; > } > > mac_addr() { > longmac = 0; > longmask = (uint64_t) -1; > error = 0; > } > > mac_addr(const uint8_t *in) { > longmac = 0; > longmask = (uint64_t) -1; > error = 0; > > for (int x = 0; x < 6; x++) > longmac |= (uint64_t) in[x] << ((6 - x - 1) * 8); > } > > mac_addr(const uint8_t *in, const uint8_t *maskin) { > longmac = 0; > longmask = 0; > error = 0; > > for (int x = 0; x < 6; x++) { > longmac |= (uint64_t) in[x] << ((6 - x - 1) * 8); > longmask |= (uint64_t) maskin[x] << ((6 - x - 1) * 8); > } > } > > mac_addr(const unsigned short int *in) { > longmac = 0; > longmask = (uint64_t) -1; > error = 0; > > for (int x = 0; x < 6; x++) > longmac |= (uint64_t) in[x] << ((6 - x - 1) * 8); > } > > mac_addr(const char *in) { > string2long(in); > } > > mac_addr(int in) { > longmac = 0; > longmask = 0; > error = 0; > } > > > inline bool operator== (const mac_addr& op) const { > if (longmask < op.longmask) > return ((longmac & longmask) == (op.longmac & longmask)); > > return ((longmac & op.longmask) == (op.longmac & op.longmask)); > } > > > inline bool operator!= (const mac_addr& op) const { > if (longmask < op.longmask) > return ((longmac & longmask) != (op.longmac & longmask)); > > return ((longmac & op.longmask) != (op.longmac & op.longmask)); > } > > > inline bool operator<=(const mac_addr& op) const { > return (longmac & op.longmask) == (op.longmac & op.longmask); > } > > > inline bool operator< (const mac_addr& op) const { > return ((longmac & longmask) < (op.longmac & longmask)); > } > > mac_addr& operator= (const mac_addr& op) { > longmac = op.longmac; > longmask = op.longmask; > error = op.error; > return *this; > } > > mac_addr& operator= (const char *in) { > string2long(in); > > return *this; > } > > mac_addr& operator++() { > longmac++; > return *this; > } > > mac_addr operator++(int) { > mac_addr tmp = *this; > ++*this; > return tmp; > } > > inline uint8_t index64(uint64_t val, int index) const { > > return (uint8_t) ((uint64_t) (val & ((uint64_t) 0xFF << ((6 - index - 1) * 8))) >> > ((6 - index - 1) * 8)); > } > > inline const uint8_t operator[] (const int& index) const { > int mdex = index; > if (index < 0 || index >= 6) > mdex = 0; > > return index64(longmac, mdex); > } > > inline string Mac2String() const { > char tempstr[((6 * 2) + 6)]; > > snprintf(tempstr, ((6 * 2) + 6), "%02X:%02X:%02X:%02X:%02X:%02X", > (*this)[0], (*this)[1], (*this)[2], > (*this)[3], (*this)[4], (*this)[5]); > return tempstr; > } > > inline string MacMask2String() const { > uint64_t maskedmac = longmac & longmask; > > char tempstr[(((6 * 2) + 6) * 2) + 1]; > > snprintf(tempstr, (((6 * 2) + 6) * 2) + 1, "%02X:%02X:%02X:%02X:%02X:%02X/%02X:%02X:%02X:%02X:%02X:%02X", > index64(maskedmac, 0), index64(maskedmac, 1), index64(maskedmac, 2), > index64(maskedmac, 3), index64(maskedmac, 4), index64(maskedmac, 5), > index64(longmask, 0), index64(longmask, 1), index64(longmask, 2), > index64(longmask, 3), index64(longmask, 4), index64(longmask, 5)); > return tempstr; > } > >}; > > > > > > > >template<class T> >class macmap { >protected: > typedef struct mask_vec_content { > mac_addr mac; > T value; > }; > > typedef struct mask_vec_offsets { > unsigned int first; > unsigned int last; > }; > > class SortMaskVec { > public: > inline bool operator() (const macmap::mask_vec_content x, const macmap::mask_vec_content y) const { > return (x.mac < y.mac); > } > }; > >public: > > > > class iterator { > friend class macmap; > > public: > iterator(macmap<T> *in_owner) { > owner = in_owner; > > if (owner->singleton_map.size() > 0) { > singleton_itr = owner->singleton_map.begin(); > vector_itr = -1; > first = singleton_itr->first; > second = &(singleton_itr->second); > } else if (owner->mask_vec.size() > 0) { > singleton_itr = owner->singleton_map.end(); > vector_itr = 0; > first = owner->mask_vec[0].mac; > second = &(owner->mask_vec[0].value); > } else { > singleton_itr = owner->singleton_map.end(); > vector_itr = owner->mask_vec.size(); > } > } > > > iterator& operator++() { > if (singleton_itr == owner->singleton_map.end()) { > if ((++vector_itr) < (int) owner->mask_vec.size()) { > first = owner->mask_vec[vector_itr].mac; > second = &(owner->mask_vec[vector_itr].value); > } > } else if (++singleton_itr == owner->singleton_map.end()) { > if ((++vector_itr) < (int) owner->mask_vec.size()) { > first = owner->mask_vec[vector_itr].mac; > second = &(owner->mask_vec[vector_itr].value); > } > } else { > first = singleton_itr->first; > second = &(singleton_itr->second); > } > > return *this; > } > > > iterator operator++(int) { > iterator tmp = *this; > ++*this; > return tmp; > } > > > inline bool operator==(const iterator& op) { > return (singleton_itr == op.singleton_itr) && (vector_itr == op.vector_itr); > } > > > inline bool operator!=(const iterator& op) { > return (singleton_itr != op.singleton_itr) || (vector_itr != op.vector_itr); > } > > > iterator *operator->() { > return this; > } > > mac_addr first; > T *second; > > protected: > void assign(typename map<mac_addr, T>::iterator in_itr) { > singleton_itr = in_itr; > vector_itr = -1; > > if (in_itr != owner->singleton_map.end()) { > first = singleton_itr->first; > second = &(singleton_itr->second); > } > } > > void assign(int in_itr) { > singleton_itr = owner->singleton_map.end(); > vector_itr = in_itr; > > if (in_itr < (int) owner->mask_vec.size()) { > first = owner->mask_vec[vector_itr].mac; > second = &(owner->mask_vec[vector_itr].value); > } > } > > typename map<mac_addr, T>::iterator singleton_itr; > int vector_itr; > macmap<T> *owner; > }; > > friend class macmap<T>::iterator; > > iterator begin() { > iterator ret(this); > > return ret; > } > > iterator end() { > iterator ret(this); > ret.singleton_itr = singleton_map.end(); > ret.vector_itr = mask_vec.size(); > > return ret; > } > > > void fast_insert(mac_addr in_mac, T in_data) { > > if (in_mac.longmask == (uint64_t) -1) { > singleton_map[in_mac] = in_data; > return; > } > > > mask_vec_content content; > content.mac = in_mac; > content.value = in_data; > mask_vec.push_back(content); > } > > > > void insert(mac_addr in_mac, T in_data) { > > if (in_mac.longmask == (uint64_t) -1) { > singleton_map[in_mac] = in_data; > return; > } > > > mask_vec_content content; > content.mac = in_mac; > content.value = in_data; > mask_vec.push_back(content); > > reindex(); > } > > > iterator find(mac_addr in_mac) { > iterator ret(this); > > if (in_mac.longmask == (uint64_t) -1) { > > typename map<mac_addr, T>::iterator sitr = singleton_map.find(in_mac); > if (sitr != singleton_map.end()) { > ret.assign(sitr); > return ret; > } > } > > if (vec_offset_map.find(in_mac) != vec_offset_map.end()) { > > > > mask_vec_offsets oft = vec_offset_map[in_mac]; > for (unsigned int x = oft.last; x >= oft.first; x--) { > if (in_mac <= mask_vec[x].mac) { > ret.assign(x); > return ret; > } > } > } > > return end(); > } > > void erase(mac_addr in_mac) { > iterator itr = find(in_mac); > > if (itr == end()) > return; > > if (itr.singleton_itr != singleton_map.end()) { > singleton_map.erase(itr.singleton_itr); > reindex(); > return; > } > > if (itr.vector_itr >= 0 && itr.vector_itr < (int) mask_vec.size()) { > mask_vec.erase(mask_vec.begin() + itr.vector_itr); > reindex(); > return; > } > > } > > inline T& operator[](mac_addr& index) { > iterator foo = find(index); > > > > if (foo == end()) { > fprintf(stderr, "Something tried to use macmap[] to reference an " > "element that doesn't exist. Fix me.\n"); > exit(1); > } > > return *(foo->second); > } > > int size() { > return singleton_map.size() + mask_vec.size(); > } > > void reindex(void) { > > if (mask_vec.size() == 0) > return; > > stable_sort(mask_vec.begin(), mask_vec.end(), SortMaskVec()); > > > vec_offset_map.clear(); > > > mask_vec_offsets ofst; > ofst.last = mask_vec.size() - 1; > ofst.first = mask_vec.size() - 1; > mac_addr owner = mask_vec[ofst.last].mac; > for (unsigned int x = 0; x < mask_vec.size(); x++) { > > if (owner != mask_vec[x].mac) { > vec_offset_map[owner] = ofst; > ofst.first = x; > ofst.last = x; > owner = mask_vec[x].mac; > } else { > ofst.last = x; > } > } > > vec_offset_map[owner] = ofst; > vec_offset_map[owner] = ofst; > } > >protected: > map<mac_addr, T> singleton_map; > vector<mask_vec_content> mask_vec; > map<mac_addr, mask_vec_offsets> vec_offset_map; >}; ># 46 "packet.h" 2 ># 1 "endian_magic.h" 1 ># 22 "endian_magic.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "endian_magic.h" 2 ># 47 "packet.h" 2 ># 57 "packet.h" >typedef struct packet_parm { > int fuzzy_crypt; >}; > > > >enum carrier_type { > carrier_unknown, > carrier_80211b, > carrier_80211bplus, > carrier_80211a, > carrier_80211g, > carrier_80211fhss, > carrier_80211dsss >}; > > >enum encoding_type { > encoding_unknown, > encoding_cck, > encoding_pbcc, > encoding_ofdm >}; > > > >typedef struct { > unsigned int len; > unsigned int caplen; > struct timeval ts; > int quality; > int signal; > int noise; > int error; > int channel; > int modified; > uint8_t *data; > uint8_t *moddata; > char sourcename[32]; > carrier_type carrier; > encoding_type encoding; > int datarate; > float gps_lat; > float gps_lon; > float gps_alt; > float gps_spd; > float gps_heading; > int gps_fix; > packet_parm parm; >} kis_packet; ># 153 "packet.h" >typedef struct { > unsigned short version : 2 __attribute__ ((packed)); > unsigned short type : 2 __attribute__ ((packed)); > unsigned short subtype : 4 __attribute__ ((packed)); > > unsigned short to_ds : 1 __attribute__ ((packed)); > unsigned short from_ds : 1 __attribute__ ((packed)); > unsigned short more_fragments : 1 __attribute__ ((packed)); > unsigned short retry : 1 __attribute__ ((packed)); > > unsigned short power_management : 1 __attribute__ ((packed)); > unsigned short more_data : 1 __attribute__ ((packed)); > unsigned short wep : 1 __attribute__ ((packed)); > unsigned short order : 1 __attribute__ ((packed)); >} frame_control; > >typedef struct { > unsigned short frag : 4 __attribute__ ((packed)); > unsigned short sequence : 12 __attribute__ ((packed)); >} wireless_fragseq; > >typedef struct { > uint8_t timestamp[8]; > > > unsigned int beacon : 16 __attribute__ ((packed)); > > unsigned short ess : 1 __attribute__ ((packed)); > unsigned short ibss : 1 __attribute__ ((packed)); > unsigned short unused1 : 1 __attribute__ ((packed)); > unsigned short unused2 : 1 __attribute__ ((packed)); > > unsigned short wep : 1 __attribute__ ((packed)); > unsigned short short_preamble : 1 __attribute__ ((packed)); > unsigned short pbcc : 1 __attribute__ ((packed)); > unsigned short agility : 1 __attribute__ ((packed)); > > unsigned int coordinator : 8 __attribute__ ((packed)); >} fixed_parameters; > > > > >enum protocol_info_type { > proto_unknown, > proto_udp, proto_misc_tcp, proto_arp, proto_dhcp_server, > proto_cdp, > proto_netbios, proto_netbios_tcp, > proto_ipx, > proto_ipx_tcp, > proto_turbocell, > proto_netstumbler, > proto_lucenttest, > proto_wellenreiter, > proto_iapp, > proto_leap, > proto_ttls, > proto_tls, > proto_peap, > proto_isakmp, > proto_pptp, >}; > >enum protocol_netbios_type { > proto_netbios_unknown, > proto_netbios_host, proto_netbios_master, > proto_netbios_domain, proto_netbios_query, proto_netbios_pdcquery >}; > > > > > >typedef struct { > unsigned int : 8 __attribute__ ((packed)); > unsigned int : 8 __attribute__ ((packed)); > > unsigned int : 8 __attribute__ ((packed)); > unsigned int : 1 __attribute__ ((packed)); > unsigned int level1 : 1 __attribute__ ((packed)); > unsigned int igmp_forward : 1 __attribute__ ((packed)); > unsigned int nlp : 1 __attribute__ ((packed)); > unsigned int level2_switching : 1 __attribute__ ((packed)); > unsigned int level2_sourceroute : 1 __attribute__ ((packed)); > unsigned int level2_transparent : 1 __attribute__ ((packed)); > unsigned int level3 : 1 __attribute__ ((packed)); >} cdp_capabilities; > >typedef struct { > char dev_id[128]; > uint8_t ip[4]; > char interface[128]; > cdp_capabilities cap; > char software[512]; > char platform[128]; >} cdp_packet; > >typedef struct { > unsigned int type : 16 __attribute__ ((packed)); > unsigned int length : 16 __attribute__ ((packed)); > char data; >} cdp_element; > > >typedef struct dot1x_header { > uint8_t version; > uint8_t type; > uint16_t length; >} __attribute__ ((packed)) dot1x_header_t; > > >typedef struct eap_packet { > uint8_t code; > uint8_t identifier; > uint16_t length; > uint8_t type; > > >} __attribute__ ((packed)) eap_packet_t; > > >typedef struct isakmp_packet { > uint8_t init_cookie[8]; > uint8_t resp_cookie[8]; > uint8_t next_payload; > uint8_t version; > uint8_t exchtype; > uint8_t flags; > uint32_t messageid; > uint32_t length; >} __attribute__ ((packed)) isakmp_packet_t; > >typedef struct { > unsigned int type : 8 __attribute__ ((packed)); > unsigned int length : 8 __attribute__ ((packed)); > unsigned int proto : 8 __attribute__ ((packed)); > unsigned int : 8 __attribute__ ((packed)); > unsigned int proto_length : 8 __attribute__ ((packed)); > char addr; >} cdp_proto_element; > > >typedef struct proto_info { > protocol_info_type type; > > uint8_t source_ip[4]; > uint8_t dest_ip[4]; > > uint8_t misc_ip[4]; > > uint8_t mask[4]; > > uint8_t gate_ip[4]; > > uint16_t sport, dport; > > cdp_packet cdp; > > char netbios_source[17]; > > protocol_netbios_type nbtype; > > > int prototype_extra; > >}; > > > >enum packet_type { > packet_noise = -2, > packet_unknown = -1, > packet_management = 0, > packet_phy = 1, > packet_data = 2 >}; > > >enum packet_sub_type { > packet_sub_unknown = -1, > > packet_sub_association_req = 0, > packet_sub_association_resp = 1, > packet_sub_reassociation_req = 2, > packet_sub_reassociation_resp = 3, > packet_sub_probe_req = 4, > packet_sub_probe_resp = 5, > packet_sub_beacon = 8, > packet_sub_atim = 9, > packet_sub_disassociation = 10, > packet_sub_authentication = 11, > packet_sub_deauthentication = 12, > > packet_sub_rts = 11, > packet_sub_cts = 12, > packet_sub_ack = 13, > packet_sub_cf_end = 14, > packet_sub_cf_end_ack = 15, > > packet_sub_data = 0, > packet_sub_data_cf_ack = 1, > packet_sub_data_cf_poll = 2, > packet_sub_data_cf_ack_poll = 3, > packet_sub_data_null = 4, > packet_sub_cf_ack = 5, > packet_sub_cf_ack_poll = 6 >}; > > >enum distribution_type { > no_distribution, from_distribution, to_distribution, inter_distribution, adhoc_distribution >}; > > >enum turbocell_type { > turbocell_unknown, > turbocell_ispbase, > turbocell_pollbase, > turbocell_nonpollbase, > turbocell_base >}; > > >enum iapp_type { > iapp_announce_request = 0, > iapp_announce_response = 1, > iapp_handover_request = 2, > iapp_handover_response = 3 >}; > >enum iapp_pdu { > iapp_pdu_ssid = 0x00, > iapp_pdu_bssid = 0x01, > iapp_pdu_oldbssid = 0x02, > iapp_pdu_msaddr = 0x03, > iapp_pdu_capability = 0x04, > iapp_pdu_announceint = 0x05, > iapp_pdu_hotimeout = 0x06, > iapp_pdu_messageid = 0x07, > iapp_pdu_phytype = 0x10, > iapp_pdu_regdomain = 0x11, > iapp_pdu_channel = 0x12, > iapp_pdu_beaconint = 0x13, > iapp_pdu_ouiident = 0x80, > iapp_pdu_authinfo = 0x81 >}; > >enum iapp_cap { > iapp_cap_forwarding = 0x40, > iapp_cap_wep = 0x20 >}; > >enum iapp_phy { > iapp_phy_prop = 0x00, > iapp_phy_fhss = 0x01, > iapp_phy_dsss = 0x02, > iapp_phy_ir = 0x03, > iapp_phy_ofdm = 0x04 >}; > >enum iapp_dom { > iapp_dom_fcc = 0x10, > iapp_dom_ic = 0x20, > iapp_dom_etsi = 0x30, > iapp_dom_spain = 0x31, > iapp_dom_france = 0x32, > iapp_dom_mkk = 0x40 >}; > >enum iapp_auth { > iapp_auth_status = 0x01, > iapp_auth_username = 0x02, > iapp_auth_provname = 0x03, > iapp_auth_rxpkts = 0x04, > iapp_auth_txpkts = 0x05, > iapp_auth_rxbytes = 0x06, > iapp_auth_txbytes = 0x07, > iapp_auth_logintime = 0x08, > iapp_auth_timelimit = 0x09, > iapp_auth_vollimit = 0x0a, > iapp_auth_acccycle = 0x0b, > iapp_auth_rxgwords = 0x0c, > iapp_auth_txgwords = 0x0d, > iapp_auth_ipaddr = 0x0e, > iapp_auth_trailer = 0xff >}; > >typedef struct { > unsigned iapp_version : 8 __attribute__ ((packed)); > unsigned iapp_type : 8 __attribute__ ((packed)); >} iapp_header; > >typedef struct { > unsigned pdu_type : 8 __attribute__ ((packed)); > unsigned pdu_len : 16 __attribute__ ((packed)); >} iapp_pdu_header; > >enum crypt_type { > crypt_none = 0, > crypt_unknown = 1, > crypt_wep = 2, > crypt_layer3 = 4, > > crypt_wep40 = 8, > crypt_wep104 = 16, > crypt_tkip = 32, > crypt_wpa = 64, > crypt_psk = 128, > crypt_aes_ocb = 256, > crypt_aes_ccm = 512, > > crypt_leap = 1024, > crypt_ttls = 2048, > crypt_tls = 4096, > crypt_peap = 8192, > crypt_isakmp = 16384, > crypt_pptp = 32768 >}; > > >typedef struct { > > packet_type type; > packet_sub_type subtype; > > > > int corrupt; > > > int reason_code; > > > struct timeval ts; > > > int quality; > int signal; > int noise; > > > char ssid[255 +1]; > int ssid_len; > > > char sourcename[32]; > > > distribution_type distrib; > > > int crypt_set; > > > int fuzzy; > > int ess; > > int channel; > > int encrypted; > > int decoded; > > int interesting; > > carrier_type carrier; > > encoding_type encoding; > > int datarate; > > mac_addr source_mac; > mac_addr dest_mac; > mac_addr bssid_mac; > > > int beacon; > > > char beacon_info[255 +1]; > > > unsigned int header_offset; > > proto_info proto; > > double maxrate; > > uint64_t timestamp; > int sequence_number; > int frag_number; > > int duration; > > int datasize; > > > int turbocell_nid; > turbocell_type turbocell_mode; > int turbocell_sat; > > > float gps_lat, gps_lon, gps_alt, gps_spd, gps_heading; > int gps_fix; > > > uint32_t ivset; > >} packet_info; > >typedef struct { > int fragile; > mac_addr bssid; > unsigned char key[32]; > unsigned int len; > unsigned int decrypted; > unsigned int failed; >} wep_key_info; > > > >string MungeToPrintable(char *in_data, int len); > > >int GetTagOffset(int init_offset, int tagnum, kis_packet *packet, > map<int, vector<int> > *tag_cache_map); >void GetPacketInfo(kis_packet *packet, packet_info *ret_packinfo, > macmap<wep_key_info *> *bssid_wep_map, unsigned char *identity); >void ProcessPacketCrypto(kis_packet *packet, packet_info *ret_packinfo, > macmap<wep_key_info *> *bssid_wep_map, > unsigned char *identity); >void GetProtoInfo(kis_packet *packet, packet_info *in_info); >void DecryptPacket(kis_packet *packet, packet_info *in_info, > macmap<wep_key_info *> *bssid_wep_map, unsigned char *identity); >int MangleDeCryptPacket(const kis_packet *packet, const packet_info *in_info, > kis_packet *outpack, uint8_t *data, uint8_t *moddata); >int MangleFuzzyCryptPacket(const kis_packet *packet, const packet_info *in_info, > kis_packet *outpack, uint8_t *data, uint8_t *moddata); > >vector<string> GetPacketStrings(const packet_info *in_info, const kis_packet *packet); > > >class SortPacketInfos { >public: > inline bool operator() (const packet_info x, const packet_info y) const { > if (x.ts.tv_sec < y.ts.tv_sec || > (x.ts.tv_sec == y.ts.tv_sec && x.ts.tv_usec < y.ts.tv_usec)) > return 1; > return 0; > } >}; ># 45 "panelfront.h" 2 ># 1 "frontend.h" 1 ># 25 "frontend.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 26 "frontend.h" 2 ># 35 "frontend.h" ># 1 "tcpclient.h" 1 ># 22 "tcpclient.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "tcpclient.h" 2 > > > > ># 1 "/usr/include/sys/file.h" 1 3 4 ># 25 "/usr/include/sys/file.h" 3 4 ># 1 "/usr/include/fcntl.h" 1 3 4 ># 30 "/usr/include/fcntl.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/fcntl.h" 1 3 4 ># 138 "/usr/include/bits/fcntl.h" 3 4 >struct flock > { > short int l_type; > short int l_whence; > > > > > __off64_t l_start; > __off64_t l_len; > > __pid_t l_pid; > }; > > >struct flock64 > { > short int l_type; > short int l_whence; > __off64_t l_start; > __off64_t l_len; > __pid_t l_pid; > }; ># 183 "/usr/include/bits/fcntl.h" 3 4 >extern "C" { > > >extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) > throw (); > >} ># 35 "/usr/include/fcntl.h" 2 3 4 > > > ># 1 "/usr/include/sys/stat.h" 1 3 4 ># 103 "/usr/include/sys/stat.h" 3 4 >extern "C" { > ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 36 "/usr/include/bits/stat.h" 3 4 >struct stat > { > __dev_t st_dev; > unsigned short int __pad1; > > > > __ino_t __st_ino; > > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned short int __pad2; > > > > __off64_t st_size; > > __blksize_t st_blksize; > > > > > __blkcnt64_t st_blocks; ># 70 "/usr/include/bits/stat.h" 3 4 > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 88 "/usr/include/bits/stat.h" 3 4 > __ino64_t st_ino; > > }; > > >struct stat64 > { > __dev_t st_dev; > unsigned int __pad1; > > __ino_t __st_ino; > __mode_t st_mode; > __nlink_t st_nlink; > __uid_t st_uid; > __gid_t st_gid; > __dev_t st_rdev; > unsigned int __pad2; > __off64_t st_size; > __blksize_t st_blksize; > > __blkcnt64_t st_blocks; > > > > > > > > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 127 "/usr/include/bits/stat.h" 3 4 > __ino64_t st_ino; > }; ># 106 "/usr/include/sys/stat.h" 2 3 4 ># 215 "/usr/include/sys/stat.h" 3 4 >extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) throw () __asm__ ("" "stat64") > > __attribute__ ((__nonnull__ (1, 2))); >extern int fstat (int __fd, struct stat *__buf) throw () __asm__ ("" "fstat64") > __attribute__ ((__nonnull__ (2))); > > > > > > >extern int stat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) throw () __attribute__ ((__nonnull__ (1, 2))); >extern int fstat64 (int __fd, struct stat64 *__buf) throw () __attribute__ ((__nonnull__ (2))); ># 241 "/usr/include/sys/stat.h" 3 4 >extern int fstatat (int __fd, __const char *__restrict __file, struct stat *__restrict __buf, int __flag) throw () __asm__ ("" "fstatat64") __attribute__ ((__nonnull__ (2, 3))); ># 250 "/usr/include/sys/stat.h" 3 4 >extern int fstatat64 (int __fd, __const char *__restrict __file, > struct stat64 *__restrict __buf, int __flag) > throw () __attribute__ ((__nonnull__ (2, 3))); ># 263 "/usr/include/sys/stat.h" 3 4 >extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) throw () __asm__ ("" "lstat64") > > > __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int lstat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) > throw () __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int chmod (__const char *__file, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int lchmod (__const char *__file, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > >extern int fchmod (int __fd, __mode_t __mode) throw (); > > > > > >extern int fchmodat (int __fd, __const char *__file, __mode_t mode, int __flag) > throw () __attribute__ ((__nonnull__ (2))) ; > > > > > > >extern __mode_t umask (__mode_t __mask) throw (); > > > > >extern __mode_t getumask (void) throw (); > > > >extern int mkdir (__const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (2))); > > > > > > >extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) > throw () __attribute__ ((__nonnull__ (1))); > > > > > > >extern int mknodat (int __fd, __const char *__path, __mode_t __mode, > __dev_t __dev) throw () __attribute__ ((__nonnull__ (2))); > > > > >extern int mkfifo (__const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) > throw () __attribute__ ((__nonnull__ (2))); ># 391 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) throw () __asm__ ("" "__fxstat64") > > __attribute__ ((__nonnull__ (3))); >extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) throw () __asm__ ("" "__xstat64") > > __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) throw () __asm__ ("" "__lxstat64") > > __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat (int __ver, int __fildes, __const char *__filename, struct stat *__stat_buf, int __flag) throw () __asm__ ("" "__fxstatat64") __attribute__ ((__nonnull__ (3, 4))); ># 413 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) > throw () __attribute__ ((__nonnull__ (3))); >extern int __xstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) throw () __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, > struct stat64 *__stat_buf, int __flag) > throw () __attribute__ ((__nonnull__ (3, 4))); > >extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, > __dev_t *__dev) throw () __attribute__ ((__nonnull__ (2, 4))); > >extern int __xmknodat (int __ver, int __fd, __const char *__path, > __mode_t __mode, __dev_t *__dev) > throw () __attribute__ ((__nonnull__ (3, 5))); > > > > >extern __inline__ int >stat (__const char *__path, struct stat *__statbuf) throw () >{ > return __xstat (3, __path, __statbuf); >} > > >extern __inline__ int >lstat (__const char *__path, struct stat *__statbuf) throw () >{ > return __lxstat (3, __path, __statbuf); >} > > >extern __inline__ int >fstat (int __fd, struct stat *__statbuf) throw () >{ > return __fxstat (3, __fd, __statbuf); >} > > >extern __inline__ int >fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) throw () > >{ > return __fxstatat (3, __fd, __filename, __statbuf, __flag); >} > > > >extern __inline__ int >mknod (__const char *__path, __mode_t __mode, __dev_t __dev) throw () >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > >extern __inline__ int >mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) throw () > >{ > return __xmknodat (1, __fd, __path, __mode, &__dev); >} > > > > > >extern __inline__ int >stat64 (__const char *__path, struct stat64 *__statbuf) throw () >{ > return __xstat64 (3, __path, __statbuf); >} > > >extern __inline__ int >lstat64 (__const char *__path, struct stat64 *__statbuf) throw () >{ > return __lxstat64 (3, __path, __statbuf); >} > > >extern __inline__ int >fstat64 (int __fd, struct stat64 *__statbuf) throw () >{ > return __fxstat64 (3, __fd, __statbuf); >} > > >extern __inline__ int >fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) throw () > >{ > return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); >} > > > > > > >} ># 39 "/usr/include/fcntl.h" 2 3 4 ># 76 "/usr/include/fcntl.h" 3 4 >extern int fcntl (int __fd, int __cmd, ...); ># 88 "/usr/include/fcntl.h" 3 4 >extern int open (__const char *__file, int __oflag, ...) __asm__ ("" "open64") > __attribute__ ((__nonnull__ (1))); > > > > > >extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 113 "/usr/include/fcntl.h" 3 4 >extern int openat (int __fd, __const char *__file, int __oflag, ...) __asm__ ("" "openat64") __attribute__ ((__nonnull__ (2))); > > > > > > >extern int openat64 (int __fd, __const char *__file, int __oflag, ...) > __attribute__ ((__nonnull__ (2))); ># 133 "/usr/include/fcntl.h" 3 4 >extern int creat (__const char *__file, __mode_t __mode) __asm__ ("" "creat64") __attribute__ ((__nonnull__ (1))); > > > > > > >extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 180 "/usr/include/fcntl.h" 3 4 >extern int posix_fadvise (int __fd, __off64_t __offset, __off64_t __len, int __advise) throw () __asm__ ("" "posix_fadvise64"); > > > > > > > >extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, > int __advise) throw (); ># 201 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate (int __fd, __off64_t __offset, __off64_t __len) __asm__ ("" "posix_fallocate64"); > > > > > > > >extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); > > > >} ># 26 "/usr/include/sys/file.h" 2 3 4 > > >extern "C" { ># 51 "/usr/include/sys/file.h" 3 4 >extern int flock (int __fd, int __operation) throw (); > > >} ># 28 "tcpclient.h" 2 > > > ># 1 "/usr/include/sys/ioctl.h" 1 3 4 ># 24 "/usr/include/sys/ioctl.h" 3 4 >extern "C" { > > ># 1 "/usr/include/bits/ioctls.h" 1 3 4 ># 24 "/usr/include/bits/ioctls.h" 3 4 ># 1 "/usr/src/linux/include/asm/ioctls.h" 1 3 4 > > > ># 1 "/usr/src/linux/include/asm/ioctl.h" 1 3 4 ># 1 "/usr/src/linux/include/asm-generic/ioctl.h" 1 3 4 ># 51 "/usr/src/linux/include/asm-generic/ioctl.h" 3 4 >extern unsigned int __invalid_size_argument_for_IOC; ># 1 "/usr/src/linux/include/asm/ioctl.h" 2 3 4 ># 5 "/usr/src/linux/include/asm/ioctls.h" 2 3 4 ># 25 "/usr/include/bits/ioctls.h" 2 3 4 ># 28 "/usr/include/sys/ioctl.h" 2 3 4 > > ># 1 "/usr/include/bits/ioctl-types.h" 1 3 4 ># 28 "/usr/include/bits/ioctl-types.h" 3 4 >struct winsize > { > unsigned short int ws_row; > unsigned short int ws_col; > unsigned short int ws_xpixel; > unsigned short int ws_ypixel; > }; > > >struct termio > { > unsigned short int c_iflag; > unsigned short int c_oflag; > unsigned short int c_cflag; > unsigned short int c_lflag; > unsigned char c_line; > unsigned char c_cc[8]; >}; ># 31 "/usr/include/sys/ioctl.h" 2 3 4 > > > > > > ># 1 "/usr/include/sys/ttydefaults.h" 1 3 4 ># 38 "/usr/include/sys/ioctl.h" 2 3 4 > > > > >extern int ioctl (int __fd, unsigned long int __request, ...) throw (); > >} ># 32 "tcpclient.h" 2 ># 1 "/usr/include/arpa/inet.h" 1 3 4 ># 31 "/usr/include/arpa/inet.h" 3 4 >extern "C" { > > > >extern in_addr_t inet_addr (__const char *__cp) throw (); > > >extern in_addr_t inet_lnaof (struct in_addr __in) throw (); > > > >extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host) > throw (); > > >extern in_addr_t inet_netof (struct in_addr __in) throw (); > > > >extern in_addr_t inet_network (__const char *__cp) throw (); > > > >extern char *inet_ntoa (struct in_addr __in) throw (); > > > > >extern int inet_pton (int __af, __const char *__restrict __cp, > void *__restrict __buf) throw (); > > > > >extern __const char *inet_ntop (int __af, __const void *__restrict __cp, > char *__restrict __buf, socklen_t __len) > throw (); > > > > > > >extern int inet_aton (__const char *__cp, struct in_addr *__inp) throw (); > > > >extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) throw (); > > > > >extern char *inet_net_ntop (int __af, __const void *__cp, int __bits, > char *__buf, size_t __len) throw (); > > > > >extern int inet_net_pton (int __af, __const char *__cp, > void *__buf, size_t __len) throw (); > > > > >extern unsigned int inet_nsap_addr (__const char *__cp, > unsigned char *__buf, int __len) throw (); > > > >extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, > char *__buf) throw (); > > >} ># 33 "tcpclient.h" 2 > ># 1 "/usr/include/netdb.h" 1 3 4 ># 33 "/usr/include/netdb.h" 3 4 ># 1 "/usr/include/rpc/netdb.h" 1 3 4 ># 42 "/usr/include/rpc/netdb.h" 3 4 ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 43 "/usr/include/rpc/netdb.h" 2 3 4 > >extern "C" { > >struct rpcent >{ > char *r_name; > char **r_aliases; > int r_number; >}; > >extern void setrpcent (int __stayopen) throw (); >extern void endrpcent (void) throw (); >extern struct rpcent *getrpcbyname (__const char *__name) throw (); >extern struct rpcent *getrpcbynumber (int __number) throw (); >extern struct rpcent *getrpcent (void) throw (); > > >extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf, > char *__buffer, size_t __buflen, > struct rpcent **__result) throw (); > >extern int getrpcbynumber_r (int __number, struct rpcent *__result_buf, > char *__buffer, size_t __buflen, > struct rpcent **__result) throw (); > >extern int getrpcent_r (struct rpcent *__result_buf, char *__buffer, > size_t __buflen, struct rpcent **__result) throw (); > > >} ># 34 "/usr/include/netdb.h" 2 3 4 > > > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 ># 39 "/usr/include/netdb.h" 2 3 4 > > > > ># 1 "/usr/include/bits/netdb.h" 1 3 4 ># 27 "/usr/include/bits/netdb.h" 3 4 >struct netent >{ > char *n_name; > char **n_aliases; > int n_addrtype; > uint32_t n_net; >}; ># 44 "/usr/include/netdb.h" 2 3 4 ># 54 "/usr/include/netdb.h" 3 4 >extern "C" { > > > > > > >extern int *__h_errno_location (void) throw () __attribute__ ((__const__)); ># 88 "/usr/include/netdb.h" 3 4 >extern void herror (__const char *__str) throw (); > > >extern __const char *hstrerror (int __err_num) throw (); > > > > >struct hostent >{ > char *h_name; > char **h_aliases; > int h_addrtype; > int h_length; > char **h_addr_list; > >}; > > > > > > >extern void sethostent (int __stay_open); > > > > > >extern void endhostent (void); > > > > > > >extern struct hostent *gethostent (void); > > > > > > >extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len, > int __type); > > > > > >extern struct hostent *gethostbyname (__const char *__name); ># 149 "/usr/include/netdb.h" 3 4 >extern struct hostent *gethostbyname2 (__const char *__name, int __af); ># 161 "/usr/include/netdb.h" 3 4 >extern int gethostent_r (struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); > >extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len, > int __type, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); > >extern int gethostbyname_r (__const char *__restrict __name, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); > >extern int gethostbyname2_r (__const char *__restrict __name, int __af, > struct hostent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct hostent **__restrict __result, > int *__restrict __h_errnop); ># 192 "/usr/include/netdb.h" 3 4 >extern void setnetent (int __stay_open); > > > > > >extern void endnetent (void); > > > > > > >extern struct netent *getnetent (void); > > > > > > >extern struct netent *getnetbyaddr (uint32_t __net, int __type); > > > > > >extern struct netent *getnetbyname (__const char *__name); ># 231 "/usr/include/netdb.h" 3 4 >extern int getnetent_r (struct netent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct netent **__restrict __result, > int *__restrict __h_errnop); > >extern int getnetbyaddr_r (uint32_t __net, int __type, > struct netent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct netent **__restrict __result, > int *__restrict __h_errnop); > >extern int getnetbyname_r (__const char *__restrict __name, > struct netent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct netent **__restrict __result, > int *__restrict __h_errnop); > > > > >struct servent >{ > char *s_name; > char **s_aliases; > int s_port; > char *s_proto; >}; > > > > > > >extern void setservent (int __stay_open); > > > > > >extern void endservent (void); > > > > > > >extern struct servent *getservent (void); > > > > > > >extern struct servent *getservbyname (__const char *__name, > __const char *__proto); > > > > > > >extern struct servent *getservbyport (int __port, __const char *__proto); ># 303 "/usr/include/netdb.h" 3 4 >extern int getservent_r (struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result); > >extern int getservbyname_r (__const char *__restrict __name, > __const char *__restrict __proto, > struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result); > >extern int getservbyport_r (int __port, __const char *__restrict __proto, > struct servent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct servent **__restrict __result); > > > > >struct protoent >{ > char *p_name; > char **p_aliases; > int p_proto; >}; > > > > > > >extern void setprotoent (int __stay_open); > > > > > >extern void endprotoent (void); > > > > > > >extern struct protoent *getprotoent (void); > > > > > >extern struct protoent *getprotobyname (__const char *__name); > > > > > >extern struct protoent *getprotobynumber (int __proto); ># 369 "/usr/include/netdb.h" 3 4 >extern int getprotoent_r (struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result); > >extern int getprotobyname_r (__const char *__restrict __name, > struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result); > >extern int getprotobynumber_r (int __proto, > struct protoent *__restrict __result_buf, > char *__restrict __buf, size_t __buflen, > struct protoent **__restrict __result); ># 390 "/usr/include/netdb.h" 3 4 >extern int setnetgrent (__const char *__netgroup); > > > > > > > >extern void endnetgrent (void); ># 407 "/usr/include/netdb.h" 3 4 >extern int getnetgrent (char **__restrict __hostp, > char **__restrict __userp, > char **__restrict __domainp); ># 418 "/usr/include/netdb.h" 3 4 >extern int innetgr (__const char *__netgroup, __const char *__host, > __const char *, __const char *domain); > > > > > > > >extern int getnetgrent_r (char **__restrict __hostp, > char **__restrict __userp, > char **__restrict __domainp, > char *__restrict __buffer, size_t __buflen); ># 446 "/usr/include/netdb.h" 3 4 >extern int rcmd (char **__restrict __ahost, unsigned short int __rport, > __const char *__restrict __locuser, > __const char *__restrict __remuser, > __const char *__restrict __cmd, int *__restrict __fd2p); ># 458 "/usr/include/netdb.h" 3 4 >extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport, > __const char *__restrict __locuser, > __const char *__restrict __remuser, > __const char *__restrict __cmd, int *__restrict __fd2p, > sa_family_t __af); ># 474 "/usr/include/netdb.h" 3 4 >extern int rexec (char **__restrict __ahost, int __rport, > __const char *__restrict __name, > __const char *__restrict __pass, > __const char *__restrict __cmd, int *__restrict __fd2p); ># 486 "/usr/include/netdb.h" 3 4 >extern int rexec_af (char **__restrict __ahost, int __rport, > __const char *__restrict __name, > __const char *__restrict __pass, > __const char *__restrict __cmd, int *__restrict __fd2p, > sa_family_t __af); ># 500 "/usr/include/netdb.h" 3 4 >extern int ruserok (__const char *__rhost, int __suser, > __const char *__remuser, __const char *__locuser); ># 510 "/usr/include/netdb.h" 3 4 >extern int ruserok_af (__const char *__rhost, int __suser, > __const char *__remuser, __const char *__locuser, > sa_family_t __af); ># 522 "/usr/include/netdb.h" 3 4 >extern int rresvport (int *__alport); ># 531 "/usr/include/netdb.h" 3 4 >extern int rresvport_af (int *__alport, sa_family_t __af); > > > > > > >struct addrinfo >{ > int ai_flags; > int ai_family; > int ai_socktype; > int ai_protocol; > socklen_t ai_addrlen; > struct sockaddr *ai_addr; > char *ai_canonname; > struct addrinfo *ai_next; >}; > > > >struct gaicb >{ > const char *ar_name; > const char *ar_service; > const struct addrinfo *ar_request; > struct addrinfo *ar_result; > > int __return; > int __unused[5]; >}; ># 631 "/usr/include/netdb.h" 3 4 >extern int getaddrinfo (__const char *__restrict __name, > __const char *__restrict __service, > __const struct addrinfo *__restrict __req, > struct addrinfo **__restrict __pai); > > >extern void freeaddrinfo (struct addrinfo *__ai) throw (); > > >extern __const char *gai_strerror (int __ecode) throw (); > > > > > >extern int getnameinfo (__const struct sockaddr *__restrict __sa, > socklen_t __salen, char *__restrict __host, > socklen_t __hostlen, char *__restrict __serv, > socklen_t __servlen, unsigned int __flags); ># 661 "/usr/include/netdb.h" 3 4 >extern int getaddrinfo_a (int __mode, struct gaicb *__list[], > int __ent, struct sigevent *__restrict __sig); ># 672 "/usr/include/netdb.h" 3 4 >extern int gai_suspend (__const struct gaicb *__const __list[], int __ent, > __const struct timespec *__timeout); > > >extern int gai_error (struct gaicb *__req) throw (); > > >extern int gai_cancel (struct gaicb *__gaicbp) throw (); > > >} ># 35 "tcpclient.h" 2 > ># 1 "/usr/include/errno.h" 1 3 4 ># 32 "/usr/include/errno.h" 3 4 >extern "C" { > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 25 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/src/linux/include/linux/errno.h" 1 3 4 > > > ># 1 "/usr/src/linux/include/asm/errno.h" 1 3 4 > > > ># 1 "/usr/src/linux/include/asm-generic/errno.h" 1 3 4 > > > ># 1 "/usr/src/linux/include/asm-generic/errno-base.h" 1 3 4 ># 5 "/usr/src/linux/include/asm-generic/errno.h" 2 3 4 ># 5 "/usr/src/linux/include/asm/errno.h" 2 3 4 ># 5 "/usr/src/linux/include/linux/errno.h" 2 3 4 ># 26 "/usr/include/bits/errno.h" 2 3 4 ># 43 "/usr/include/bits/errno.h" 3 4 >extern int *__errno_location (void) throw () __attribute__ ((__const__)); ># 37 "/usr/include/errno.h" 2 3 4 ># 55 "/usr/include/errno.h" 3 4 >extern char *program_invocation_name, *program_invocation_short_name; > > > >} ># 69 "/usr/include/errno.h" 3 4 >typedef int error_t; ># 37 "tcpclient.h" 2 > > >class TcpClient; > > ># 1 "tracktypes.h" 1 ># 22 "tracktypes.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "tracktypes.h" 2 > > > > > > > >typedef struct display_network; > > > >class manuf; > >const string NOSSID("<no ssid>"); > >enum wireless_network_type { > network_ap, > network_adhoc, > network_probe, > network_turbocell, > network_data, > network_remove >}; > >enum address_type { > address_none, > address_factory, > address_udp, > address_arp, > address_tcp, > address_dhcp, > address_group >}; > > > > >typedef struct { > address_type atype; > > > int octets; > > > uint8_t range_ip[4]; ># 77 "tracktypes.h" > uint8_t ip[4]; > > > int load_from_store; >} net_ip_data; > >enum client_type { > client_unknown, > client_fromds, > client_tods, > client_interds, > client_established >}; > > >typedef struct wireless_client { > wireless_client() { > type = client_unknown; > > first_time = 0; > last_time = 0; > > manuf_score = 0; > manuf_ref = __null; > > channel = 0; > crypt_set = 0; > > data_packets = crypt_packets = interesting_packets = 0; > > gps_fixed = -1; > > > > min_lat = 90; > max_lat = -90; > min_lon = 180; > max_lon = -180; > > > min_alt = min_spd = 0; > max_alt = max_spd = 0; > > aggregate_lat = aggregate_lon = aggregate_alt = 0; > aggregate_points = 0; > > maxrate = 0; > maxseenrate = 0; > > metric = 0; > > signal = quality = noise = 0; > best_signal = best_quality = best_noise = 0; > best_lat = best_lon = best_alt = 0; > > memset(&ipdata, 0, sizeof(net_ip_data)); > > > tcpclient = __null; > > > uidata = __null; > > datasize = 0; > > encoding_set = 0; > > last_sequence = 0; > > decrypted = 0; > } ># 201 "tracktypes.h" > client_type type; > > time_t first_time; > time_t last_time; > > > mac_addr mac; > > int channel; > int crypt_set; > > > > manuf *manuf_ref; > int manuf_score; > > > int data_packets; > int crypt_packets; > int interesting_packets; > > > int gps_fixed; > float min_lat, min_lon, min_alt, min_spd; > float max_lat, max_lon, max_alt, max_spd; > double aggregate_lat, aggregate_lon, aggregate_alt; > long aggregate_points; > > > double maxrate; > > int maxseenrate; > > > int encoding_set; > > int metric; > > > int quality, signal, noise; > int best_quality, best_signal, best_noise; > float best_lat, best_lon, best_alt; > > > net_ip_data ipdata; > > > > > TcpClient *tcpclient; > > > > void *uidata; > > > unsigned long datasize; > > int last_sequence; > > > int decrypted; > >}; > > >typedef struct wireless_network { > wireless_network() { > type = network_data; > > ssid = NOSSID; > > manuf_score = 0; > manuf_ref = __null; > > memset(&ipdata, 0, sizeof(net_ip_data)); > > llc_packets = data_packets = crypt_packets = interesting_packets = 0; > > channel = 0; > crypt_set = 0; > > cloaked = 0; > > last_time = 0; > first_time = 0; > > beacon = 0; > listed = 0; > > gps_fixed = -1; > > > > min_lat = 90; > max_lat = -90; > min_lon = 180; > max_lon = -180; > > > min_alt = min_spd = 0; > max_alt = max_spd = 0; > > aggregate_lat = aggregate_lon = aggregate_alt = 0; > aggregate_points = 0; > > maxrate = 0; > maxseenrate = 0; > > metric = 0; > > quality = signal = noise = 0; > best_quality = best_signal = best_noise = 0; > best_lat = best_lon = best_alt = 0; > > client_disconnects = 0; > > datasize = 0; > > carrier_set = 0; > encoding_set = 0; > > > tcpclient = __null; > idle_time = 0; > dispnet = __null; > > > uidata = __null; > > turbocell_nid = turbocell_sat = 0; > turbocell_mode = turbocell_unknown; > > last_sequence = 0; > > decrypted = 0; > > dupeiv_packets = 0; > > bss_timestamp = 0; > > } ># 424 "tracktypes.h" > wireless_network_type type; > > string ssid; > > string beacon_info; > > > manuf *manuf_ref; > int manuf_score; > > > int llc_packets; > int data_packets; > int crypt_packets; > int interesting_packets; > > > > int channel; > int crypt_set; > > mac_addr bssid; > > > int cloaked; > > > time_t last_time; > > > time_t first_time; > > > int beacon; > > > int listed; > > > int carrier_set; > > int encoding_set; > > > net_ip_data ipdata; > > map<string, cdp_packet> cisco_equip; > > int gps_fixed; > float min_lat, min_lon, min_alt, min_spd; > float max_lat, max_lon, max_alt, max_spd; > > > double aggregate_lat, aggregate_lon, aggregate_alt; > long aggregate_points; > > > double maxrate; > > int maxseenrate; > > > int metric; > > > int quality, signal, noise; > int best_quality, best_signal, best_noise; > float best_lat, best_lon, best_alt; > > map<mac_addr, wireless_client *> client_map; > vector<wireless_client *> client_vec; > > > > int client_disconnects; > > int last_sequence; > > > > > TcpClient *tcpclient; > > time_t idle_time; > > display_network *dispnet; > > > > void *uidata; > > > unsigned long datasize; > > > int turbocell_nid; > turbocell_type turbocell_mode; > int turbocell_sat; > string turbocell_name; > > > int decrypted; > > > map<uint32_t, int> iv_map; > > int dupeiv_packets; > > > uint64_t bss_timestamp; >}; > > > >typedef struct { > time_t last_time; > int signal; >} channel_power; ># 43 "tcpclient.h" 2 ># 63 "tcpclient.h" >class TcpClient { >public: > typedef struct alert_info { > timeval alert_ts; > string alert_text; > }; > > > class SortAlerts { > public: > inline bool operator() (const TcpClient::alert_info x, const TcpClient::alert_info y) const { > if ((x.alert_ts.tv_sec > y.alert_ts.tv_sec) || > ((x.alert_ts.tv_sec== y.alert_ts.tv_sec) && (x.alert_ts.tv_usec > y.alert_ts.tv_usec))) > return 1; > return 0; > } > }; > > typedef struct string_info { > mac_addr bssid; > mac_addr source; > timeval string_ts; > string text; > }; > > > class SortStrings { > public: > inline bool operator() (const TcpClient::string_info x, const TcpClient::string_info y) const { > if ((x.string_ts.tv_sec > y.string_ts.tv_sec) || > ((x.string_ts.tv_sec== y.string_ts.tv_sec) && (x.string_ts.tv_usec > y.string_ts.tv_usec))) > return 1; > return 0; > } > }; > > typedef struct card_info { > string interface; > string type; > string username; > int channel; > int id; > int packets; > int hopping; > }; > > TcpClient(); > ~TcpClient(); > > int Valid() { return sv_valid; }; > > int Connect(short int in_port, char *in_host); > > void Disconnect(); > > int FetchDescriptor() { return client_fd; } > > int Poll(); > > > > void EnableProtocol(string in_protocol); > > void RemoveProtocol(string in_protocol); > > > int FetchLoc(float *in_lat, float *in_lon, float *in_alt, float *in_spd, float *in_hed, int *in_mode); > > int FetchMode() { return mode; } > > > time_t FetchServTime(); > > vector<wireless_network *> FetchNetworkList(); > > vector<wireless_network *> FetchNthRecent(unsigned int n); > > > vector<card_info *> FetchCardList(); > > short int FetchPort() { return port; } > char *FetchHost() { return hostname; } > > char *FetchError() { return errstr; } > > string FetchServername() { return servername; } > > int FetchHopping() { return channel_hop; } > > int FetchNumNetworks() { return num_networks; } > int FetchNumPackets() { return num_packets; } > int FetchNumCrypt() { return num_crypt; } > int FetchNumInteresting() { return num_interesting; } > int FetchNumNoise() { return num_noise; } > int FetchNumDropped() { return num_dropped; } > > int FetchDeltaNumNetworks() { return num_networks - old_num_networks; } > int FetchDeltaNumPackets() { return num_packets - old_num_packets; } > int FetchDeltaNumCrypt() { return num_crypt - old_num_crypt; } > int FetchDeltaNumInteresting() { return num_interesting - old_num_interesting; } > int FetchDeltaNumNoise() { return num_noise - old_num_noise; } > int FetchDeltaNumDropped() { return num_dropped - old_num_dropped; } > > int FetchPacketRate() { return packet_rate; } > > char *FetchMajor() { return major; } > char *FetchMinor() { return minor; } > char *FetchTiny() { return tiny; } > char *FetchBuild() { return build; } > time_t FetchStart() { return start_time; } > time_t FetchTime() { return serv_time; } > > char *FetchStatus() { return status; } > > int FetchPower() { return power; } > int FetchQuality() { return quality; } > int FetchNoise() { return noise; } > > int FetchChannelPower(int in_channel); > > int GetMaxStrings() { return maxstrings; } > void SetMaxStrings(int in_max) { > maxstrings = in_max; > if (strings.size() > maxstrings) > strings.erase(strings.begin(), strings.begin() + (strings.size() - maxstrings)); > } > vector<string_info> FetchStrings() { return strings; } > void ClearStrings() { strings.clear(); } > > int GetMaxPackInfos() { return maxpackinfos; } > void SetMaxPackInfos(int in_max) { > maxpackinfos = in_max; > if (packinfos.size() > maxpackinfos) > packinfos.erase(packinfos.begin(), packinfos.begin() + (packinfos.size() - maxpackinfos)); > } > vector<packet_info> FetchPackInfos() { return packinfos; } > void ClearPackInfos() { packinfos.clear(); } > > int GetMaxAlerts() { return maxalerts; } > void SetMaxAlerts(int in_max) { > maxalerts = in_max; > if (alerts.size() > maxalerts) > alerts.erase(alerts.begin(), alerts.begin() + (alerts.size() - maxalerts)); > } > vector <alert_info> FetchAlerts() { return alerts; } > void ClearAlarms() { alerts.clear(); } > > void RemoveNetwork(mac_addr in_bssid); > > wireless_network *FetchLastNewNetwork() { return last_new_network; } > > void SendRaw(const char *in_cmd); > > int FetchNetworkDirty(); > >protected: > char errstr[1024]; > char status[1024]; > > int Send(const char *in_data); > int ParseData(char *in_data); > > > int sv_valid; > > > short int port; > char hostname[64]; > > int client_fd; > FILE *clientf; > > struct sockaddr_in client_sock, local_sock; > struct hostent *client_host; > > > > float lat, lon, alt, spd, heading; > int mode; > > time_t serv_time; > > map<mac_addr, wireless_network *> net_map; > vector<wireless_network *> net_map_vec; > wireless_network *last_new_network; > > map<string, card_info *> card_map; > vector<card_info *> card_map_vec; > > int num_networks, num_packets, num_crypt, > num_interesting, num_noise, num_dropped, packet_rate; > > int old_num_networks, old_num_packets, old_num_crypt, > old_num_interesting, old_num_noise, old_num_dropped, old_packet_rate; > > char major[24], minor[24], tiny[24]; > char build[24]; > time_t start_time; > > int power, quality, noise; > > unsigned int maxstrings, maxpackinfos, maxalerts; > > vector<string_info> strings; > vector<packet_info> packinfos; > vector<alert_info> alerts; > > channel_power channel_graph[14]; > > string writebuf; > > char servername[32]; > > > map<string, int> protocol_map; > > > map<string, string> protocol_default_map; > > int network_dirty; > > int channel_hop; > >}; ># 36 "frontend.h" 2 ># 1 "packetracker.h" 1 ># 22 "packetracker.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "packetracker.h" 2 ># 32 "packetracker.h" ># 1 "util.h" 1 ># 22 "util.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "util.h" 2 ># 34 "util.h" ># 1 "/usr/include/sys/wait.h" 1 3 4 ># 29 "/usr/include/sys/wait.h" 3 4 >extern "C" { ># 102 "/usr/include/sys/wait.h" 3 4 >typedef enum >{ > P_ALL, > P_PID, > P_PGID >} idtype_t; ># 116 "/usr/include/sys/wait.h" 3 4 >extern __pid_t wait (void * __stat_loc); ># 139 "/usr/include/sys/wait.h" 3 4 >extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options); > > > ># 1 "/usr/include/bits/siginfo.h" 1 3 4 ># 25 "/usr/include/bits/siginfo.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 26 "/usr/include/bits/siginfo.h" 2 3 4 ># 144 "/usr/include/sys/wait.h" 2 3 4 ># 155 "/usr/include/sys/wait.h" 3 4 >extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop, > int __options); > > > > > >struct rusage; > > > > > > >extern __pid_t wait3 (void * __stat_loc, int __options, > struct rusage * __usage) throw (); > > > > > >struct rusage; > > >extern __pid_t wait4 (__pid_t __pid, void * __stat_loc, int __options, > struct rusage *__usage) throw (); > > > >} ># 35 "util.h" 2 > ># 1 "/usr/include/pwd.h" 1 3 4 ># 28 "/usr/include/pwd.h" 3 4 >extern "C" { > > > > ># 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/include/stddef.h" 1 3 4 ># 34 "/usr/include/pwd.h" 2 3 4 ># 50 "/usr/include/pwd.h" 3 4 >struct passwd >{ > char *pw_name; > char *pw_passwd; > __uid_t pw_uid; > __gid_t pw_gid; > char *pw_gecos; > char *pw_dir; > char *pw_shell; >}; ># 73 "/usr/include/pwd.h" 3 4 >extern void setpwent (void); > > > > > >extern void endpwent (void); > > > > > >extern struct passwd *getpwent (void); ># 95 "/usr/include/pwd.h" 3 4 >extern struct passwd *fgetpwent (FILE *__stream); > > > > > > > >extern int putpwent (__const struct passwd *__restrict __p, > FILE *__restrict __f); > > > > > > >extern struct passwd *getpwuid (__uid_t __uid); > > > > > >extern struct passwd *getpwnam (__const char *__name); ># 140 "/usr/include/pwd.h" 3 4 >extern int getpwent_r (struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); > > >extern int getpwuid_r (__uid_t __uid, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); > >extern int getpwnam_r (__const char *__restrict __name, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); ># 164 "/usr/include/pwd.h" 3 4 >extern int fgetpwent_r (FILE *__restrict __stream, > struct passwd *__restrict __resultbuf, > char *__restrict __buffer, size_t __buflen, > struct passwd **__restrict __result); ># 181 "/usr/include/pwd.h" 3 4 >extern int getpw (__uid_t __uid, char *__buffer); > > >} ># 37 "util.h" 2 ># 45 "util.h" >void MungeToShell(char *in_data, int max); >string MungeToShell(string in_data); > >string StrLower(string in_str); >string StrStrip(string in_str); > >int XtoI(char x); >int Hex2UChar(unsigned char *in_hex, unsigned char *in_chr); > >vector<string> StrTokenize(string in_str, string in_split, int return_partial = 1); > > >typedef struct smart_word_token { > string word; > size_t begin; > size_t end; > > smart_word_token& operator= (const smart_word_token& op) { > word = op.word; > begin = op.begin; > end = op.end; > return *this; > } >}; >vector<smart_word_token> SmartStrTokenize(string in_str, string in_split, int return_partial = 1); > >vector<string> LineWrap(string in_txt, unsigned int in_hdr_len, unsigned int in_maxlen); >vector<int> Str2IntVec(string in_text); > >void Float2Pair(float in_float, int16_t *primary, int64_t *mantissa); >float Pair2Float(int16_t primary, int64_t mantissa); > > >int FloatChan2Int(float in_chan); > > > >int RunSysCmd(char *in_cmd); > > >pid_t ExecSysCmd(char *in_cmd); > > >int FetchSysLoadAvg(uint8_t *in_avgmaj, uint8_t *in_avgmin); > > > >uint32_t Adler32Checksum(char *buf1, int len); ># 33 "packetracker.h" 2 ># 1 "gpsd.h" 1 ># 22 "gpsd.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "gpsd.h" 2 ># 31 "gpsd.h" ># 1 "/usr/include/errno.h" 1 3 4 ># 32 "gpsd.h" 2 ># 48 "gpsd.h" >const char gpsd_command[] = "PAVMH\n"; > > > > > >class GPSD { >public: > GPSD(char *in_host, int in_port); > ~GPSD(void); > > char *FetchError(); > > > int OpenGPSD(); > > int CloseGPSD(); > > > void SetOptions(uint32_t in_opt) { options = in_opt; } > > > int FetchDescriptor() { return sock; } > > > int Scan(); > > > int FetchLoc(float *in_lat, float *in_lon, float *in_alt, float *in_spd, float *in_hed, int *mode); > > > int FetchMode() { return mode; } > > > static float CalcHeading(float in_lat, float in_lon, float in_lat2, float in_lon2); > static double CalcRad(double lat); > static double Rad2Deg(double x); > static double Deg2Rad(double x); > static double EarthDistance(double in_lat, double in_lon, double in_lat2, double in_lon2); > >protected: > char errstr[1024]; > > int sock; > > float lat, lon, alt, spd, hed; > int mode; > > > float last_lat, last_lon, last_hed; > > char data[1024]; > > char *host; > int port; > > struct sockaddr_in localaddr, servaddr; > struct hostent *h; > > uint32_t options; > >}; ># 34 "packetracker.h" 2 > > ># 1 "manuf.h" 1 ># 22 "manuf.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "manuf.h" 2 ># 31 "manuf.h" >class manuf { >public: > string name; > string model; > > mac_addr mac_tag; > string ssid_default; > int channel_default; > > net_ip_data ipdata; >}; > >extern int manuf_max_score; > > >macmap<vector<manuf *> > ReadManufMap(FILE *in_file, int ap_map); > > >manuf *MatchBestManuf(macmap<vector<manuf *> > in_manuf, mac_addr in_mac, string in_ssid, > int in_channel, int in_wep, int in_cloaked, int *manuf_score); ># 37 "packetracker.h" 2 ># 1 "alertracker.h" 1 ># 22 "alertracker.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "alertracker.h" 2 ># 32 "alertracker.h" ># 1 "tcpserver.h" 1 ># 22 "tcpserver.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "tcpserver.h" 2 ># 37 "tcpserver.h" ># 1 "/usr/include/errno.h" 1 3 4 ># 38 "tcpserver.h" 2 > > > ># 1 "configfile.h" 1 ># 22 "configfile.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "configfile.h" 2 ># 37 "configfile.h" >class ConfigFile { >public: > > int ParseConfig(const char *in_fname); > string FetchOpt(string in_key); > vector<string> FetchOptVec(string in_key); > > static string ExpandLogPath(string path, string logname, string type, int start, int overwrite = 0); > static int ParseFilterLine(string filter_str, macmap<int> *bssid_map, > macmap<int> *source_map, > macmap<int> *dest_map, > int *bssid_invert, int *source_invert, int *dest_invert); > >protected: > map<string, vector<string> > config_map; >}; ># 42 "tcpserver.h" 2 ># 53 "tcpserver.h" >struct client_command { > int client_fd; > int stamp; > string cmd; >}; > >typedef struct server_protocol { > int ref_index; > string header; > int required; > > > map<string, int> field_map; > vector<string> field_vec; > int (*printer)(string& out_string, const vector<int> *field_vec, const void *data); > void (*enable)(int); >}; > > >struct client_opt { > > map<int, vector<int> > protocols; > > string wrbuf, cmdbuf; >}; > > >struct client_ipblock { > > in_addr network; > > in_addr mask; >}; > > >class TcpServer { >public: > TcpServer(); > ~TcpServer(); > > int Valid() { return sv_valid; }; > > int Setup(unsigned int in_max_clients, string bind_addr, short int in_port, vector<client_ipblock *> *in_ipb); > > unsigned int MergeSet(fd_set in_set, unsigned int in_max, fd_set *out_set, > fd_set *outw_set); > > int FetchDescriptor() { return serv_fd; } > > void Kill(int in_fd); > > int Poll(fd_set& in_rset, fd_set& in_wset); > > > int SendToClient(int in_fd, int in_refnum, const void *in_data); > > int SendToAll(int in_refnum, const void *in_data); > > > int SendMainProtocols(int in_fd, int proto_ref); > > void Shutdown(); > > char *FetchError() { return errstr; } > > inline int isClient(int fd) { return (__extension__ ({register char __result; __asm__ __volatile__ ("btl %1,%2 ; setcb %b0" : "=q" (__result) : "r" (((int) (fd)) % (8 * sizeof (__fd_mask))), "m" (((&client_fds)->fds_bits)[((fd) / (8 * sizeof (__fd_mask)))]) : "cc"); __result; })); } > int HandleClient(int fd, client_command *c, fd_set *rds, fd_set *wrs); ># 131 "tcpserver.h" > int RegisterProtocol(string in_header, int in_required, char **in_fields, > int (*in_printer)(string& out_string, const vector<int> *field_vec, const void *data), > void (*in_enable)(int)); > int FetchProtocolRef(string in_header); > > int FetchNumClientRefs(int in_refnum); > > > int FetchNumClients(); > >protected: > void AddProtocolClient(int in_fd, int in_refnum, vector<int> in_fields); > void DelProtocolClient(int in_fd, int in_refnum); > > int RawSend(int in_fd, const char *in_data); > int Accept(); > int HandleInternalCommand(client_command *in_command); > > > map<int, server_protocol *> protocol_map; > > map<string, int> ref_map; > > vector<int> required_protocols; > > map<int, int> client_mapped_protocols; > > char errstr[1024]; > > > int sv_valid; > > unsigned int max_clients; > > > short int port; > char hostname[64]; > > vector<client_ipblock *> *ipblock_vec; > > > unsigned int serv_fd; > struct sockaddr_in serv_sock; > > > fd_set server_fds; > > fd_set client_fds; > > unsigned int max_fd; > > map<int, client_opt *> client_optmap; >}; ># 33 "alertracker.h" 2 ># 1 "server_protocols.h" 1 ># 22 "server_protocols.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "server_protocols.h" 2 > > > > > > > >enum NETWORK_fields { > NETWORK_bssid, NETWORK_type, NETWORK_ssid, NETWORK_beaconinfo, > NETWORK_llcpackets, NETWORK_datapackets, NETWORK_cryptpackets, > NETWORK_weakpackets, NETWORK_channel, NETWORK_wep, NETWORK_firsttime, > NETWORK_lasttime, NETWORK_atype, NETWORK_rangeip, NETWORK_gpsfixed, > NETWORK_minlat, NETWORK_minlon, NETWORK_minalt, NETWORK_minspd, > NETWORK_maxlat, NETWORK_maxlon, NETWORK_maxalt, NETWORK_maxspd, > NETWORK_octets, NETWORK_cloaked, NETWORK_beaconrate, NETWORK_maxrate, > NETWORK_manufkey, NETWORK_manufscore, > NETWORK_quality, NETWORK_signal, NETWORK_noise, > NETWORK_bestquality, NETWORK_bestsignal, NETWORK_bestnoise, > NETWORK_bestlat, NETWORK_bestlon, NETWORK_bestalt, > NETWORK_agglat, NETWORK_agglon, NETWORK_aggalt, NETWORK_aggpoints, > NETWORK_datasize, NETWORK_tcnid, NETWORK_tcmode, NETWORK_tsat, > NETWORK_carrierset, NETWORK_maxseenrate, NETWORK_encodingset, > NETWORK_decrypted, NETWORK_DUPEIV >}; > >enum CLIENT_fields { > CLIENT_bssid, CLIENT_mac, CLIENT_type, CLIENT_firsttime, CLIENT_lasttime, > CLIENT_manufkey, CLIENT_manufscore, > CLIENT_datapackets, CLIENT_cryptpackets, CLIENT_weakpackets, > CLIENT_gpsfixed, > CLIENT_minlat, CLIENT_minlon, CLIENT_minalt, CLIENT_minspd, > CLIENT_maxlat, CLIENT_maxlon, CLIENT_maxalt, CLIENT_maxspd, > CLIENT_agglat, CLIENT_agglon, CLIENT_aggalt, CLIENT_aggpoints, > CLIENT_maxrate, > CLIENT_quality, CLIENT_signal, CLIENT_noise, > CLIENT_bestquality, CLIENT_bestsignal, CLIENT_bestnoise, > CLIENT_bestlat, CLIENT_bestlon, CLIENT_bestalt, > CLIENT_atype, CLIENT_ip, CLIENT_datasize, CLIENT_maxseenrate, CLIENT_encodingset, > CLIENT_decrypted, CLIENT_wep >}; > >enum REMOVE_fields { > REMOVE_bssid >}; > >enum STATUS_fields { > STATUS_text >}; > >enum ALERT_fields { > ALERT_sec, ALERT_usec, ALERT_header, ALERT_bssid, ALERT_source, > ALERT_dest, ALERT_other, ALERT_channel, ALERT_text >}; > >enum ERROR_fields { > ERROR_text >}; > >enum ACK_fields { > ACK_text >}; > >enum PACKET_fields { > PACKET_type, PACKET_subtype, PACKET_timesec, PACKET_encrypted, > PACKET_weak, PACKET_beaconrate, PACKET_sourcemac, PACKET_destmac, > PACKET_bssid, PACKET_ssid, PACKET_prototype, PACKET_sourceip, > PACKET_destip, PACKET_sourceport, PACKET_destport, PACKET_nbtype, > PACKET_nbsource, PACKET_sourcename >}; > >enum STRING_fields { > STRING_bssid, STRING_sourcemac, STRING_text >}; > >enum CISCO_fields { > CISCO_placeholder >}; > >enum KISMET_fields { > KISMET_version, KISMET_starttime, KISMET_servername, KISMET_timestamp, > KISMET_chanhop, KISMET_newversion >}; > >enum PROTOCOLS_fields { > PROTOCOLS_protocols >}; > >enum CAPABILITY_fields { > CAPABILITY_capabilities >}; > >enum TIME_fields { > TIME_timesec >}; > >enum TERMINATE_fields { > TERMINATE_text >}; > >enum GPS_fields { > GPS_lat, GPS_lon, GPS_alt, GPS_spd, GPS_heading, GPS_fix >}; > >enum INFO_fields { > INFO_networks, INFO_packets, INFO_crypt, INFO_weak, > INFO_noise, INFO_dropped, INFO_rate, INFO_signal >}; > >enum WEPKEY_fields { > WEPKEY_origin, WEPKEY_bssid, WEPKEY_key, WEPKEY_decrypted, WEPKEY_failed >}; > >enum CARD_fields { > CARD_interface, CARD_type, CARD_username, CARD_channel, CARD_id, CARD_packets, > CARD_hopping >}; > > >extern char *KISMET_fields_text[]; >extern char *CAPABILITY_fields_text[]; >extern char *PROTOCOLS_fields_text[]; >extern char *ERROR_fields_text[]; >extern char *NETWORK_fields_text[]; >extern char *CLIENT_fields_text[]; >extern char *GPS_fields_text[]; >extern char *TIME_fields_text[]; >extern char *INFO_fields_text[]; >extern char *REMOVE_fields_text[]; >extern char *STATUS_fields_text[]; >extern char *ALERT_fields_text[]; >extern char *ACK_fields_text[]; >extern char *PACKET_fields_text[]; >extern char *STRING_fields_text[]; >extern char *TERMINATE_fields_text[]; >extern char *CISCO_fields_text[]; >extern char *WEPKEY_fields_text[]; >extern char *CARD_fields_text[]; > > > > > > > >typedef struct KISMET_data { > string version; > string starttime; > string servername; > string timestamp; > string newversion; >}; > >typedef struct GPS_data { > string lat, lon, alt, spd, heading, mode; >}; > >typedef struct INFO_data { > string networks, packets, crypt, weak, noise, dropped, rate, signal; >}; > >typedef struct NETWORK_data { > vector<string> ndvec; >}; > >typedef struct CLIENT_data { > vector<string> cdvec; >}; > >typedef struct ALERT_data { > string header, sec, usec, bssid, source, dest, other, channel, text; >}; > >typedef struct PACKET_data { > vector<string> pdvec; >}; > >typedef struct STRING_data { > string bssid, sourcemac, text; >}; > > >int Protocol_KISMET(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_PROTOCOLS(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_CAPABILITY(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_ERROR(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_ACK(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_TIME(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_TERMINATE(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_GPS(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_INFO(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_REMOVE(string& out_string, const vector<int> *field_vec, const void *data); >void Protocol_Network2Data(const wireless_network *net, NETWORK_data *data); >int Protocol_NETWORK(string& out_string, const vector<int> *field_vec, const void *data); >void Protocol_Client2Data(const wireless_network *net, const wireless_client *cli, CLIENT_data *data); >int Protocol_CLIENT(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_STATUS(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_ALERT(string& out_string, const vector<int> *field_vec, const void *data); >void Protocol_Packet2Data(const packet_info *info, PACKET_data *data); >int Protocol_PACKET(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_STRING(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_WEPKEY(string& out_string, const vector<int> *field_vec, const void *data); >int Protocol_CARD(string& out_string, const vector<int> *field_vec, const void *data); ># 34 "alertracker.h" 2 > >static const int alert_time_unit_conv[] = { > 1, 60, 3600, 86400 >}; > >enum alert_time_unit { > sat_second, sat_minute, sat_hour, sat_day >}; > >class Alertracker { >public: > > typedef struct alert_rec { > int ref_index; > string header; > > > alert_time_unit limit_unit; > > int limit_rate; > > alert_time_unit burst_unit; > > int limit_burst; > > > int burst_sent; > > int total_sent; > > > > time_t time_last; > }; > > Alertracker(); > ~Alertracker(); > > > void AddTcpServer(TcpServer *in_server); > > void AddAlertProtoRef(int in_ref); > > void SetAlertBacklog(int in_backlog); > > > int RegisterAlert(const char *in_header, alert_time_unit in_unit, int in_rate, > alert_time_unit in_burstunit, int in_burst); > > > int FetchAlertRef(string in_header); > > > int PotentialAlert(int in_ref); > > > int RaiseAlert(int in_ref, > mac_addr bssid, mac_addr source, mac_addr dest, mac_addr other, > int in_channel, string in_text); > > > void BlitBacklogged(int in_fd); > >protected: > > int CheckTimes(alert_rec *arec); > > TcpServer *server; > int protoref; > > int next_alert_id; > > map<string, int> alert_name_map; > map<int, alert_rec *> alert_ref_map; > > unsigned int max_backlog; > vector<ALERT_data *> alert_backlog; > >}; ># 38 "packetracker.h" 2 ># 1 "finitestate.h" 1 ># 22 "finitestate.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "finitestate.h" 2 > > > > ># 1 "kismet_server.h" 1 ># 22 "kismet_server.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "kismet_server.h" 2 > > > > > > > >void WriteDatafiles(int in_shutdown); >void CatchShutdown(int sig); >int Usage(char *argv); >void handle_command(TcpServer *tcps, client_command *cc); >int NetWriteStatus(const char *in_status); >void NetWriteInfo(); >int SayText(string in_text); >int PlaySound(string in_sound); >void SpeechHandler(int *fds, const char *player); >void SoundHandler(int *fds, const char *player, map<string, string> soundmap); >void ProtocolAlertEnable(int in_fd); >void ProtocolNetworkEnable(int in_fd); >void ProtocolClientEnable(int in_fd); >void KisLocalAlert(const char *in_text); >void KisLocalStatus(const char *in_status); >void KisLocalNewnet(const wireless_network *in_net); >void KisLocalNewclient(const wireless_client *in_cli, const wireless_network *in_net); ># 28 "finitestate.h" 2 > > > >class Packetracker; > > > > > > >class FiniteAutomata { >public: > > class _fsa_element { > public: > _fsa_element() { > last_time.tv_sec = start_time.tv_sec = death_time.tv_sec = 0; > last_time.tv_usec = start_time.tv_usec = death_time.tv_usec = 0; > state = 0; > counter = 0; > } > > struct timeval last_time; > struct timeval start_time; > struct timeval death_time; > int state; > int counter; > }; > > virtual ~FiniteAutomata() { } > > > virtual int ProcessPacket(const packet_info *in_info) = 0; > > int FetchAlertRef() { return alertid; } > >protected: > Alertracker *atracker; > Packetracker *ptracker; > int alertid; >}; > > >class ProbeNoJoinAutomata : public FiniteAutomata { >public: > ProbeNoJoinAutomata(Packetracker *in_ptracker, Alertracker *in_atracker, > alert_time_unit in_unit, int in_rate, > alert_time_unit in_bunit, int in_burstrate); > ~ProbeNoJoinAutomata(); ># 85 "finitestate.h" > int ProcessPacket(const packet_info *in_info); > >protected: > > > map<mac_addr, _fsa_element *> bssid_map; >}; > > > > >class DisassocTrafficAutomata : public FiniteAutomata { >public: > DisassocTrafficAutomata(Packetracker *in_ptracker, Alertracker *in_atracker, > alert_time_unit in_unit, int in_rate, > alert_time_unit in_bunit, int in_burstrate); > ~DisassocTrafficAutomata(); > > int ProcessPacket(const packet_info *in_info); >protected: > > > map<mac_addr, _fsa_element *> source_map; >}; > > > > > > > >class BssTimestampAutomata : public FiniteAutomata { >public: > class _bs_fsa_element : public FiniteAutomata::_fsa_element { > public: > _bs_fsa_element() { > bss_timestamp = 0; > } > > uint64_t bss_timestamp; > }; > > BssTimestampAutomata(Packetracker *in_ptracker, Alertracker *in_atracker, > alert_time_unit in_unit, int in_rate, > alert_time_unit in_bunit, int in_burstrate); > ~BssTimestampAutomata(); > > int ProcessPacket(const packet_info *in_info); > >protected: > macmap<BssTimestampAutomata::_bs_fsa_element *> bss_map; >}; > > > >class WepRebroadcastAutomata : public FiniteAutomata { >public: > WepRebroadcastAutomata(Packetracker *in_ptracker, Alertracker *in_atracker, > alert_time_unit in_unit, int in_rate, > alert_time_unit in_bunit, int in_burstrate); > ~WepRebroadcastAutomata(); > > int ProcessPacket(const packet_info *in_info); > >protected: > class _wreb_element : public _fsa_element { > > uint32_t wepfield; > }; > > map<mac_addr, _wreb_element *> source_map; > >}; ># 39 "packetracker.h" 2 > >class Packetracker { >public: > Packetracker(); > ~Packetracker(); > > > int Tick(); > > > char *FetchError() { return errstr; } > > > void AddAlertracker(Alertracker *in_tracker); > > int EnableAlert(string in_alname, alert_time_unit in_unit, > int in_rate, alert_time_unit in_bunit, int in_burstrate); > > > void AddExportFilters(macmap<int> *bssid_map, macmap<int> *source_map, > macmap<int> *dest_map, int *bssid_invert, > int *source_invert, int *dest_invert); > > > > > > > > void ProcessPacket(kis_packet *packet, packet_info *info, > macmap<wep_key_info *> *bssid_wep_map, > unsigned char *identity); > void ProcessDataPacket(kis_packet *packet, packet_info *info, > wireless_network *net, > macmap<wep_key_info *> *bssid_wep_map, > unsigned char *identity); > > void UpdateIpdata(wireless_network *net); > > > vector<wireless_network *> FetchNetworks(); > > wireless_network *MatchNetwork(const packet_info *in_packet); > > int WriteNetworks(string in_fname); > int WriteCSVNetworks(string in_fname); > int WriteXMLNetworks(string in_fname); > int WriteCisco(string in_fname); > > int WriteGpsdriveWaypt(FILE *in_file); > > void WriteSSIDMap(FILE *in_file); > void ReadSSIDMap(FILE *in_file); > > void WriteIPMap(FILE *in_file); > void ReadIPMap(FILE *in_file); > > > void ReadAPManufMap(FILE *in_file); > void ReadClientManufMap(FILE *in_file); > > > static string Mac2String(uint8_t *mac, char seperator); > > static bool IsBlank(const char *s); > > int FetchNumNetworks() { return num_networks; } > > int FetchNumPackets() { return num_packets; } > int FetchNumDropped() { return num_dropped; } > int FetchNumNoise() { return num_noise; } > int FetchNumCrypt() { return num_crypt; } > int FetchNumInteresting() { return num_interesting; } > int FetchNumCisco() { return num_cisco; } > > void RemoveNetwork(mac_addr in_bssid); > >protected: > wireless_client *CreateClient(const packet_info *info, wireless_network *net); > string SanitizeCSV(string in_data); > string SanitizeXML(string in_data); > > char errstr[1024]; > > Alertracker *alertracker; > > int num_networks, num_packets, num_dropped, num_noise, > num_crypt, num_interesting, num_cisco; > > > vector<wireless_network *> network_list; > > > map<mac_addr, wireless_network *> bssid_map; > > > map<mac_addr, string> bssid_cloak_map; > > > map<mac_addr, net_ip_data> bssid_ip_map; > > > map<mac_addr, mac_addr> probe_map; > > > macmap<vector<manuf *> > ap_manuf_map; > macmap<vector<manuf *> > client_manuf_map; > > > vector<FiniteAutomata *> fsa_vec; > > > macmap<int> *filter_export_bssid; > int *filter_export_bssid_invert; > macmap<int> *filter_export_source; > int *filter_export_source_invert; > macmap<int> *filter_export_dest; > int *filter_export_dest_invert; > int filter_export; > > > int *arefs; > >}; ># 37 "frontend.h" 2 > > > >enum sort_type { > sort_auto, sort_channel, sort_first, sort_first_dec, > sort_last, sort_last_dec, sort_bssid, sort_bssid_dec, > sort_ssid, sort_ssid_dec, sort_wep, sort_packets, sort_packets_dec, > sort_signal >}; > >enum client_sort_type { > client_sort_auto, client_sort_channel, client_sort_first, client_sort_first_dec, > client_sort_last, client_sort_last_dec, client_sort_mac, client_sort_mac_dec, > client_sort_wep, client_sort_packets, client_sort_packets_dec, > client_sort_signal >}; > >enum group_type { > group_host, group_bundle, group_sub, group_empty >}; > > >typedef struct display_network { > > group_type type; > > vector<wireless_network *> networks; > > int tagged; > > int expanded; > > int persistent; > > wireless_network *virtnet; > > string name; > > string tag; >}; > > > > > >class Frontend { >public: > virtual ~Frontend() {} > > virtual void AddPrefs(map<string, string> in_prefs) = 0; > > virtual void AddClient(TcpClient *in_client) = 0; > > > virtual void FetchClients(vector<TcpClient *> *in_vec) = 0; > > virtual TcpClient *FetchPrimaryClient() = 0; > > > virtual int Tick() = 0; > > virtual int Poll() = 0; > > > virtual int ParseArgs(int argc, char *argv[]) = 0; > > > virtual int InitDisplay(int in_decay, time_t in_start) = 0; > > > virtual int DrawDisplay() = 0; > > > virtual int EndDisplay() = 0; > > virtual int WriteStatus(string status) = 0; > > > char *FetchError() { return errstr; } > > > int FetchTainted() { return tainted; } > > > void ReadGroupMap(FILE *in_file); > void WriteGroupMap(FILE *in_file); > > void ReadAPManufMap(FILE *in_file); > void ReadClientManufMap(FILE *in_file); > > void RemoveGroup(mac_addr in_bssid); > >protected: > int decay; > char errstr[1024]; > > time_t start_time; > > TcpClient *client; > > > > virtual void PopulateGroups(TcpClient *in_client); > > virtual void UpdateGroups(); > > virtual void PurgeGroups(); > > display_network *CreateGroup(int in_persistent, string in_tag, string in_name); > display_network *AddToGroup(display_network *core, display_network *merger); > display_network *AddToGroup(display_network *core, wireless_network *mnet); > > > virtual display_network *GroupTagged(); > > virtual void DestroyGroup(display_network *in_group); ># 164 "frontend.h" > vector<display_network *> group_vec; > > > map<mac_addr, string> bssid_group_map; > > > map<string, string> group_name_map; > > > map<string, display_network *> group_tag_map; > > > > map<mac_addr, display_network *> group_assignment_map; > > map<string, string> prefs; > > macmap<vector<manuf *> > ap_manuf_map; > macmap<vector<manuf *> > client_manuf_map; > > > int tainted; > >}; ># 46 "panelfront.h" 2 ># 1 "cursesfront.h" 1 ># 22 "cursesfront.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "cursesfront.h" 2 > >const int infowidth = 10; >const int statheight = 6; ># 48 "cursesfront.h" >class NCurseFront : public Frontend { >public: > NCurseFront(); > > void AddClient(TcpClient *in_client); > > void FetchClients(vector<TcpClient *> *in_vec) { > in_vec->clear(); > in_vec->push_back(client); > } > > TcpClient *FetchPrimaryClient() { > return client; > } > > void AddPrefs(map<string, string> in_prefs) { return; } > > int ParseArgs(int argc, char *argv[]) { return 0; } > > int Tick() { return 0; } > > int Poll() { return 0; } > > int InitDisplay(int in_decay, time_t in_start); > > > int DrawDisplay(); > > > int EndDisplay(); > > int WriteStatus(string status); > >protected: > void DelOldest(wireless_network *exclude); > > WINDOW *netborder, *netwin, *infoborder, *infowin, > *statusborder, *statuswin; > >}; ># 47 "panelfront.h" 2 ># 1 "networksort.h" 1 ># 22 "networksort.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "networksort.h" 2 > > >class SortLastTime { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->last_time > y->last_time) > return 1; > return 0; > } >}; > >class SortLastTimeLT { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->last_time < y->last_time) > return 1; > return 0; > } >}; > > >class SortFirstTime { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->first_time > y->first_time) > return 1; > return 0; > } >}; > >class SortFirstTimeLT { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->first_time < y->first_time) > return 1; > return 0; > } >}; > >class SortBSSID { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (y->bssid < x->bssid) > return 1; > return 0; > } >}; > >class SortBSSIDLT { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->bssid < y->bssid) > return 1; > return 0; > } >}; > > >class SortSSID { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->ssid > y->ssid) > return 1; > return 0; > } >}; > >class SortSSIDLT { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->ssid < y->ssid) > return 1; > return 0; > } >}; > >class SortWEP { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->crypt_set > y->crypt_set) > return 1; > return 0; > } >}; > >class SortChannel { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->channel < y->channel) > return 1; > return 0; > } >}; > >class SortPacketsLT { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if ((x->llc_packets + x->data_packets) < > (y->llc_packets + y->data_packets)) > return 1; > return 0; > } >}; > >class SortPackets { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if ((x->llc_packets + x->data_packets) > > (y->llc_packets + y->data_packets)) > return 1; > return 0; > } >}; > >class SortQuality { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->quality > y->quality) > return 1; > return 0; > } >}; > >class SortSignal { >public: > inline bool operator() (const wireless_network *x, const wireless_network *y) const { > if (x->signal > y->signal) > return 1; > return 0; > } >}; ># 48 "panelfront.h" 2 ># 60 "panelfront.h" >extern char *KismetHelpText[]; >extern char *KismetHelpTextNarrow[]; >extern char *KismetHelpDetails[]; >extern char *KismetSortText[]; >extern char *KismetSortTextNarrow[]; > >extern char *KismetHelpPower[]; >extern char *KismetHelpRate[]; >extern char *KismetHelpGps[]; >extern char *KismetHelpStats[]; >extern char *KismetHelpDump[]; >extern char *KismetHelpPack[]; >extern char *KismetHelpAlert[]; >extern char *KismetHelpServer[]; > >extern char *KismetClientHelpText[]; >extern char *KismetClientHelpDetails[]; >extern char *KismetClientSortText[]; >extern char *KismetClientSortTextNarrow[]; > > >extern char *KismetIntroText[]; > > >extern int sound; >extern int speech; >extern unsigned int metric; > >class PanelFront : public Frontend { >public: > PanelFront(); > virtual ~PanelFront(); > > void AddPrefs(map<string, string> in_prefs); > > void AddClient(TcpClient *in_client); > > void FetchClients(vector<TcpClient *> *in_vec); > TcpClient *FetchPrimaryClient(); > > int ParseArgs(int argc, char *argv[]) { return 0; } > > int Tick(); > > int Poll(); > > int InitDisplay(int in_decay, time_t in_start); > > > int DrawDisplay(); > > > int EndDisplay(); > > int WriteStatus(string status); > > > virtual int FetchDescriptor() { return fileno(stdin); }; >protected: > > typedef struct color_pair { > color_pair() { index = -1; pair = 0; bold = 0; } > > int index; > int bold; > int pair; > > }; > > > > typedef int (PanelFront::*panel_printer)(void *); > typedef int (PanelFront::*key_handler)(void *, int); > > > > typedef struct { > > WINDOW *win; > PANEL *pan; > > panel_printer printer; > > key_handler input; > > string title; > > > > int start; > > int end; > > int selected; > > int col_start; > int col_end; > int col_selected; > > int max_display; > > int print_width; > > int paused; > > int scrollable; > > > int toggle0; > int toggle1; > int toggle2; > > > vector<string> text; > } kis_window; > > > list<kis_window *> window_list; > > > typedef struct server_context { > server_context() { > client = __null; > quality = power = noise = 0; > > > > > > > > lat = lon = spd = alt = last_lat = last_lon = last_spd = last_alt = last_heading = 0; > fix = last_fix = 0; > > max_packet_rate = 0; > > num_networks = num_packets = num_crypt = num_interesting = > num_noise = num_dropped = packet_rate = 0; > > server_time = 0; > > tagged = 0; > primary = 0; > } > > TcpClient *client; > > int quality, power, noise; ># 220 "panelfront.h" > vector<int> packet_history; > > float lat, lon, spd, alt, heading; > int fix; > float last_lat, last_lon, last_spd, last_alt, last_heading; > int last_fix; > > > int max_packet_rate; > > int num_networks, num_packets, num_crypt, num_interesting, > num_noise, num_dropped, packet_rate; > > time_t server_time; > > > int tagged; > > int primary; > }; > > > typedef struct cardinfo_context { > server_context *context; > TcpClient::card_info *cardinfo; > }; > > > virtual void PopulateGroups(TcpClient *in_client); > virtual void UpdateGroups(); > virtual void DestroyGroup(display_network *in_group); > > > void UpdateContexts(); > > > > int MainNetworkPrinter(void *in_window); > int MainInfoPrinter(void *in_window); > int MainStatusPrinter(void *in_window); > > > int TextPrinter(void *in_window); > > int SortPrinter(void *in_window); > int PowerPrinter(void *in_window); > int DetailsPrinter(void *in_window); > int DumpPrinter(void *in_window); > int GroupNamePrinter(void *in_window); > int RatePrinter(void *in_window); > int StatsPrinter(void *in_window); > int PackPrinter(void *in_window); > int GpsPrinter(void *in_window); > int AlertPrinter(void *in_window); > > int MainClientPrinter(void *in_window); > int SortClientPrinter(void *in_window); > int DetailsClientPrinter(void *in_window); > > > int ServersPrinter(void *in_window); > int ServerJoinPrinter(void *in_window); > > > int IntroPrinter(void *in_window); > > > int ChanlockPrinter(void *in_window); > > > int MainInput(void *in_window, int in_chr); > int SortInput(void *in_window, int in_chr); > int PowerInput(void *in_window, int in_chr); > int DetailsInput(void *in_window, int in_chr); > int DumpInput(void *in_window, int in_chr); > > int RateInput(void *in_window, int in_chr); > int StatsInput(void *in_window, int in_chr); > int PackInput(void *in_window, int in_chr); > > int TextInput(void *in_window, int in_chr); > int GpsInput(void *in_window, int in_chr); > int AlertInput(void *in_window, int in_chr); > > int MainClientInput(void *in_window, int in_chr); > int SortClientInput(void *in_window, int in_chr); > int DetailsClientInput(void *in_window, int in_chr); > > int ServersInput(void *in_window, int in_chr); > > int IntroInput(void *in_window, int in_chr); > > int ChanlockInput(void *in_window, int in_chr); > > > kis_window *SpawnWindow(string in_title, panel_printer in_print, > key_handler in_input, int in_x = -1, int in_y = -1); > > > void SpawnHelp(char **in_helptext); > > > void DestroyWindow(kis_window *in_window); > > void RescaleDisplay(); > > void ZoomNetworks(); > > void Details2Vector(wireless_network *in_net); > > void NetLine(kis_window *in_window, string *in_str, wireless_network *net, > const char *name, int sub, int group, int expanded, int tagged); > void ClientLine(kis_window *in_window, string *in_str, wireless_client *wclient, > int print_width); > > enum main_columns { > mcol_unknown = -1, > mcol_decay, mcol_name, mcol_shortname, mcol_ssid, mcol_shortssid, mcol_type, > mcol_wep, mcol_channel, mcol_data, mcol_llc, mcol_crypt, mcol_weak, mcol_bssid, > mcol_flags, mcol_ip, mcol_packets, mcol_info, > mcol_maxrate, mcol_manuf, mcol_signal, mcol_quality, mcol_noise, mcol_clients, > mcol_datasize, mcol_signalbar, mcol_qualitybar, mcol_dupeiv > }; > > enum client_columns { > ccol_unknown = -1, > ccol_decay, ccol_type, ccol_mac, ccol_manuf, ccol_data, ccol_crypt, ccol_weak, > ccol_maxrate, ccol_ip, ccol_signal, ccol_quality, ccol_noise, ccol_datasize > }; > > main_columns Token2MainColumn(string in_token); > client_columns Token2ClientColumn(string in_token); > void SetMainColumns(string in_columns); > void SetClientColumns(string in_columns); > > void MuteToggle(); > > color_pair ColorParse(string in_color); > > int color; > > int clear_dump; > > sort_type sortby; > client_sort_type client_sortby; > > vector<main_columns> column_vec; > vector<client_columns> client_column_vec; > > int quality, power, noise; > > int zoomed; > > time_t server_time; > > display_network *probe_group; > display_network *data_group; > display_network *adhoc_group; > display_network *details_network; > wireless_client *details_client; > vector<display_network *> last_displayed; > vector<wireless_client *> last_client_displayed; > > int num_networks, num_packets, num_crypt, num_interesting, num_noise, num_dropped, > packet_rate; > > int hsize, vsize; > > int old_sound; > int old_speech; > int muted; > > vector<int> packet_history; > > float lat, lon, spd, alt, heading; > int fix; > float last_lat, last_lon, last_spd, last_alt, last_heading; > int last_fix; > > > int last_draw_size; > int last_client_draw_size; > > > unsigned int use_acpi; > unsigned int monitor_bat; > unsigned int bat_percentage; > unsigned int bat_time; > unsigned int bat_available; > unsigned int bat_ac; > unsigned int bat_charging; > unsigned int bat_full_capacity[3]; > > > int max_packet_rate; > > > kis_window *net_win; > kis_window *info_win; > kis_window *stat_win; > > > kis_window *client_win; > > > kis_window *cur_window; > > map<string, color_pair> color_map; > > > server_context *context; > vector<server_context *> context_list; > > vector<TcpClient *> client_list; > > > vector<display_network *> past_display_vec; > char main_sortxt[24]; > int localnets_dirty; > > vector<cardinfo_context> context_cardlist; > > int auto_pgroup, auto_dgroup, auto_agroup; > >}; ># 24 "panelfront_display.cc" 2 ># 1 "displaynetworksort.h" 1 ># 22 "displaynetworksort.h" ># 1 "config.h" 1 ># 261 "config.h" >using namespace std; ># 23 "displaynetworksort.h" 2 > > > >class DisplaySortLastTime { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->last_time > y->virtnet->last_time) > return 1; > return 0; > } >}; > >class DisplaySortLastTimeLT { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->last_time < y->virtnet->last_time) > return 1; > return 0; > } >}; > > >class DisplaySortFirstTime { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->first_time > y->virtnet->first_time) > return 1; > return 0; > } >}; > >class DisplaySortFirstTimeLT { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->first_time < y->virtnet->first_time) > return 1; > return 0; > } >}; > >class DisplaySortBSSID { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (y->virtnet->bssid < x->virtnet->bssid) > return 1; > return 0; > } >}; > >class DisplaySortBSSIDLT { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->bssid < y->virtnet->bssid) > return 1; > return 0; > } >}; > > >class DisplaySortSSID { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->ssid > y->virtnet->ssid) > return 1; > return 0; > } >}; > >class DisplaySortSSIDLT { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->ssid < y->virtnet->ssid) > return 1; > return 0; > } >}; > >class DisplaySortWEP { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->crypt_set > y->virtnet->crypt_set) > return 1; > return 0; > } >}; > >class DisplaySortChannel { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->channel < y->virtnet->channel) > return 1; > return 0; > } >}; > >class DisplaySortPacketsLT { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if ((x->virtnet->llc_packets + x->virtnet->data_packets) < > (y->virtnet->llc_packets + y->virtnet->data_packets)) > return 1; > return 0; > } >}; > >class DisplaySortPackets { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if ((x->virtnet->llc_packets + x->virtnet->data_packets) > > (y->virtnet->llc_packets + y->virtnet->data_packets)) > return 1; > return 0; > } >}; > >class DisplaySortQuality { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->quality > y->virtnet->quality) > return 1; > return 0; > } >}; > >class DisplaySortSignal { >public: > inline bool operator() (const display_network *x, const display_network *y) const { > if (x->type == group_empty) > return 0; > if (y->type == group_empty) > return 1; > > if (x->virtnet->signal > y->virtnet->signal) > return 1; > return 0; > } >}; > >class ClientSortLastTime { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->last_time > y->last_time) > return 1; > return 0; > } >}; > >class ClientSortLastTimeLT { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->last_time < y->last_time) > return 1; > return 0; > } >}; > > >class ClientSortFirstTime { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->first_time > y->first_time) > return 1; > return 0; > } >}; > >class ClientSortFirstTimeLT { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->first_time < y->first_time) > return 1; > return 0; > } > >}; > >class ClientSortMAC { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (y->mac < x->mac) > return 1; > return 0; > } >}; > >class ClientSortMACLT { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->mac < y->mac) > return 1; > return 0; > } >}; > >class ClientSortWEP { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->crypt_set > y->crypt_set) > return 1; > return 0; > } >}; > >class ClientSortChannel { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->channel < y->channel) > return 1; > return 0; > } >}; > >class ClientSortPacketsLT { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->data_packets < y->data_packets) > return 1; > return 0; > } >}; > >class ClientSortPackets { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->data_packets > y->data_packets) > return 1; > return 0; > } >}; > >class ClientSortQuality { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->quality > y->quality) > return 1; > return 0; > } >}; > >class ClientSortSignal { >public: > inline bool operator() (const wireless_client *x, const wireless_client *y) const { > if (x->signal > y->signal) > return 1; > return 0; > } >}; ># 25 "panelfront_display.cc" 2 > > > > > >void PanelFront::NetLine(kis_window *in_window, string *in_str, wireless_network *net, const char *name, int sub, > int group, int expanded, int tagged) { > char retchr[4096]; > char tmpchr[4096]; > > memset(retchr, 0, 4096); > memset(tmpchr, 0, 4096); > > > > > > int print_width = net_win->print_width; > if (net_win->print_width > 4096) { > net_win->print_width = 4096; > print_width = 4096; > } > > if (tagged) > snprintf(retchr, 4096, "*"); > else if (group && expanded) > snprintf(retchr, 4096, "-"); > else if (group && !expanded) > snprintf(retchr, 4096, "+"); > else if (sub) > snprintf(retchr, 4096, "|"); > > time_t idle_time; > if (sub && net->tcpclient != __null) { > if (net->tcpclient->Valid()) > idle_time = net->tcpclient->FetchTime() - net->last_time; > else > idle_time = decay + 1; > } else { > idle_time = net->idle_time; > } > > int pos = 2; > > for (unsigned int col = in_window->col_start; col < column_vec.size(); col++) { > char element[1024]; > int len = 0; > main_columns colindex = column_vec[col]; > > if (colindex == mcol_unknown) > continue; > > if (colindex == mcol_decay) { > if (idle_time < decay) > snprintf(element, 1024, "!"); > else if (idle_time < (decay * 2)) > snprintf(element, 1024, "."); > else > snprintf(element, 1024, " "); > len = 1; > } else if (colindex == mcol_name) { > if (net->cloaked) { > snprintf(element, 26, "<%s>", name); > } else { > snprintf(element, 26, "%s", name); > } > len = 25; > } else if (colindex == mcol_shortname) { > if (net->cloaked) { > snprintf(element, 16, "<%s>", name); > } else { > snprintf(element, 16, "%s", name); > } > len = 15; > } else if (colindex == mcol_ssid) { > if (net->cloaked) { > snprintf(element, 26, "<%s>", net->ssid.c_str()); > } else { > snprintf(element, 26, "%s", net->ssid.c_str()); > } > len = 25; > } else if (colindex == mcol_shortssid) { > if (net->cloaked) { > snprintf(element, 16, "<%s>", net->ssid.c_str()); > } else { > snprintf(element, 16, "%s", net->ssid.c_str()); > } > len = 15; > } else if (colindex == mcol_type) { > if (group) > snprintf(element, 1024, "G"); > else if (net->type == network_ap) > snprintf(element, 1024, "A"); > else if (net->type == network_adhoc) > snprintf(element, 1024, "H"); > else if (net->type == network_probe) > snprintf(element, 1024, "P"); > else if (net->type == network_data) > snprintf(element, 1024, "D"); > else if (net->type == network_turbocell) > snprintf(element, 1024, "T"); > else > snprintf(element, 1024, "?"); > > len = 1; > } else if (colindex == mcol_wep) { > if (net->crypt_set > crypt_wep) > snprintf(element, 1024, "O"); > else if (net->crypt_set) > snprintf(element, 1024, "Y"); > else > snprintf(element, 1024, "N"); > len = 1; > } else if (colindex == mcol_channel) { > if (net->channel == 0) > snprintf(element, 4, "---"); > else > snprintf(element, 4, "%03d", net->channel); > len = 3; > } else if (colindex == mcol_data) { > snprintf(element, 6, "%5d", net->data_packets); > len = 5; > } else if (colindex == mcol_llc) { > snprintf(element, 6, "%5d", net->llc_packets); > len = 5; > } else if (colindex == mcol_crypt) { > snprintf(element, 6, "%5d", net->crypt_packets); > len = 5; > } else if (colindex == mcol_weak) { > snprintf(element, 6, "%5d", net->interesting_packets); > len = 5; > } else if (colindex == mcol_packets) { > snprintf(element, 7, "%6d", net->data_packets + net->llc_packets); > len = 6; > } else if (colindex == mcol_bssid) { > snprintf(element, 18, "%s", net->bssid.Mac2String().c_str()); > len = 17; > } else if (colindex == mcol_info) { > snprintf(element, 16, "%s", net->beacon_info.c_str()); > len = 15; > } else if (colindex == mcol_flags) { > char atype; > if (net->ipdata.atype == address_dhcp) > atype = 'D'; > else if (net->ipdata.atype == address_arp) > atype = 'A'; > else if (net->ipdata.atype == address_udp) > atype = 'U'; > else if (net->ipdata.atype == address_tcp) > atype = 'T'; > else if (net->ipdata.atype == address_group) > atype = 'G'; > else > atype = ' '; > > snprintf(element, 6, "%c%c%c%c%c", > net->manuf_score == manuf_max_score ? 'F' : ' ', > atype, > (net->ipdata.atype > address_factory && net->ipdata.octets != 0) ? net->ipdata.octets + '0' : ' ', > net->cisco_equip.size() > 0 ? 'C' : ' ', > net->decrypted ? 'W' : ' '); > len = 5; > } else if (colindex == mcol_ip) { > if (net->ipdata.atype == address_none) { > snprintf(element, 1024, "0.0.0.0"); > } else { > snprintf(element, 16, "%d.%d.%d.%d", > net->ipdata.range_ip[0], net->ipdata.range_ip[1], > net->ipdata.range_ip[2], net->ipdata.range_ip[3]); > } > len = 15; > } else if (colindex == mcol_maxrate) { > snprintf(element, 6, "%2.1f", net->maxrate); > len = 5; > } else if (colindex == mcol_manuf) { > if (net->manuf_ref != __null) > snprintf(element, 9, "%s", net->manuf_ref->name.c_str()); > else > snprintf(element, 9, "Unknown"); > > len = 8; > } else if (colindex == mcol_signal) { > snprintf(element, 4, "%3d", (idle_time < (decay * 2)) ? net->signal : 0); > len = 3; > > > > > > } else if (colindex == mcol_noise) { > snprintf(element, 4, "%3d", (idle_time < (decay * 2)) ? net->noise : 0); > len = 3; > } else if (colindex == mcol_clients) { > snprintf(element, 5, "%4d", (int) net->client_map.size()); > len = 4; > } else if (colindex == mcol_datasize) { > if (net->datasize < 1024) > snprintf(element, 6, "%4ldB", net->datasize); > else if (net->datasize < 1048576) > snprintf(element, 6, "%4ldk", net->datasize/1024); > else > snprintf(element, 6, "%4ldM", net->datasize/1024/1024); > len = 5; > } else if (colindex == mcol_signalbar) { > if (net->best_signal > 0) { > int sx = 0; > > > if (net->signal < 0 && idle_time < (decay * 2)) { > > if (net->noise < 0) > sx = (int) (double) (net->noise / net->signal) * 15; > else > sx = (int) (double) (100 / abs(net->signal)) * 15; > } else if (idle_time < (decay * 2)) { > > sx = (int)((double)(idle_time < (decay * 2) ? net->signal : 0) / > net->best_signal * 15); > } > > char sg[16]; > > > if (sx < 0) > sx = 0; > else if (sx > 15) > sx = 15; > > memset(sg, 'X', sx); > memset(sg + sx, '=', 15 - sx); > sg[15] = '\0'; > snprintf(element, 16, "%s", sg); > } else > snprintf(element, 1024, "==============="); > len = 15; > } else if (colindex == mcol_dupeiv) { > snprintf(element, 5, "%4d", net->dupeiv_packets); > len = 4; > } > > if (pos + len > print_width) > break; > > > > snprintf(tmpchr, 4096, "%*s %s", (-1) * pos, retchr, element); > > strncpy(retchr, tmpchr, 4096); > > pos += len + 1; > > in_window->col_end = col; > } > > *in_str = retchr; >} > >int PanelFront::MainNetworkPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > WINDOW *netwin = kwin->win; > > int drop; > > int dirty = 0; > > > for (unsigned int x = 0; x < context_list.size(); x++) { > if (context_list[x]->tagged == 1 && context_list[x]->client != __null && > (context_list[x]->client->FetchNetworkDirty() || > past_display_vec.size() == 0 || localnets_dirty)) { > dirty = 1; > PopulateGroups(context_list[x]->client); > } > } > > > vector<display_network *> display_vector; > > UpdateGroups(); > > > if (dirty == 0) { > display_vector = past_display_vec; > } else { > display_vector = group_vec; > > main_sortxt[0] = '\0'; > > switch (sortby) { > case sort_auto: > > > > > snprintf(main_sortxt, 24, "(Autofit)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortLastTimeLT()); > > drop = display_vector.size() - kwin->max_display - 1; > > if (drop > 0) { > if (drop > (int) display_vector.size()) > drop = display_vector.size(); > > display_vector.erase(display_vector.begin(), > display_vector.begin() + drop); > } > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortFirstTimeLT()); > kwin->start = 0; > > break; > > > > case sort_channel: > snprintf(main_sortxt, 24, "(Channel)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortChannel()); > break; > case sort_first: > snprintf(main_sortxt, 24, "(First Seen)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortFirstTimeLT()); > break; > case sort_first_dec: > snprintf(main_sortxt, 24, "(First Seen desc)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortFirstTime()); > break; > case sort_last: > snprintf(main_sortxt, 24, "(Latest Seen)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortLastTimeLT()); > break; > case sort_last_dec: > snprintf(main_sortxt, 24, "(Latest Seen desc)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortLastTime()); > break; > case sort_bssid: > snprintf(main_sortxt, 24, "(BSSID)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortBSSIDLT()); > break; > case sort_bssid_dec: > snprintf(main_sortxt, 24, "(BSSID desc)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortBSSID()); > break; > case sort_ssid: > snprintf(main_sortxt, 24, "(SSID)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortSSIDLT()); > break; > case sort_ssid_dec: > snprintf(main_sortxt, 24, "(SSID desc)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortSSID()); > break; > case sort_wep: > snprintf(main_sortxt, 24, "(WEP)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortWEP()); > break; > case sort_packets: > snprintf(main_sortxt, 24, "(Packets)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortPacketsLT()); > break; > case sort_packets_dec: > snprintf(main_sortxt, 24, "(Packets desc)"); > > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortPackets()); > break; > case sort_signal: > snprintf(main_sortxt, 24, "(Signal)"); > stable_sort(display_vector.begin(), display_vector.end(), > DisplaySortSignal()); > break; > } > > past_display_vec = display_vector; > } > > last_displayed.clear(); > > int num = 0; > int voffset = 2; > > > int pos = 4; > > for (unsigned int col = kwin->col_start; col < column_vec.size(); col++) { > char title[1024]; > int len = 0; > main_columns colind = column_vec[col]; > > if (colind == mcol_unknown) > continue; > > if (colind == mcol_decay) { > snprintf(title, 1024, " "); > len = 1; > } else if (colind == mcol_name) { > snprintf(title, 1024, "Name"); > len = 25; > } else if (colind == mcol_shortname) { > snprintf(title, 1024, "Name"); > len = 15; > } else if (colind == mcol_ssid) { > snprintf(title, 1024, "SSID"); > len = 25; > } else if (colind == mcol_shortssid) { > snprintf(title, 1024, "SSID"); > len = 15; > } else if (colind == mcol_type) { > snprintf(title, 1024, "T"); > len = 1; > } else if (colind == mcol_wep) { > snprintf(title, 1024, "W"); > len = 1; > } else if (colind == mcol_channel) { > snprintf(title, 1024, "Ch"); > len = 3; > } else if (colind == mcol_data) { > snprintf(title, 1024, " Data"); > len = 5; > } else if (colind == mcol_llc) { > snprintf(title, 1024, " LLC"); > len = 5; > } else if (colind == mcol_crypt) { > snprintf(title, 1024, "Crypt"); > len = 5; > } else if (colind == mcol_weak) { > snprintf(title, 1024, " Weak"); > len = 5; > } else if (colind == mcol_bssid) { > snprintf(title, 1024, "BSSID"); > len = 17; > } else if (colind == mcol_flags) { > snprintf(title, 1024, "Flags"); > len = 5; > } else if (colind == mcol_ip) { > snprintf(title, 1024, "IP Range"); > len = 15; > } else if (colind == mcol_packets) { > snprintf(title, 1024, "Packts"); > len = 6; > } else if (colind == mcol_info) { > snprintf(title, 1024, "Beacon Info"); > len = 15; > } else if (colind == mcol_maxrate) { > snprintf(title, 1024, "Rate"); > len = 5; > } else if (colind == mcol_manuf) { > snprintf(title, 1024, "Manuf"); > len = 8; > } else if (colind == mcol_signal) { > snprintf(title, 1024, "Sgn"); > len = 3; > > > > > > } else if (colind == mcol_noise) { > snprintf(title, 1024, "Nse"); > len = 3; > } else if (colind == mcol_clients) { > snprintf(title, 1024, "Clnt"); > len = 4; > } else if (colind == mcol_datasize) { > snprintf(title, 1024, " Size"); > len = 5; > } else if (colind == mcol_signalbar) { > snprintf(title, 1024, "SignalGraph"); > len = 15; > } else if (colind == mcol_dupeiv) { > snprintf(title, 1024, "DIV"); > len = 4; > } else { > len = -1; > } > > if (pos + len > kwin->print_width + 2) { > kwin->col_end = col - 1; > break; > } > > if (color) > ((kwin->win)->_attrs = (color_map["title"].pair)); > (wmove(netwin,1,pos) == (-1) ? (-1) : waddnstr(netwin,title,-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > pos += len + 1; > } > > if (kwin->selected == -1) { > int calcnum = 0, calclines = 0; > for (unsigned int i = kwin->start; (i > 0) && (calclines < kwin->max_display); i--) { > calcnum++; > calclines++; > > if (sortby == sort_auto || display_vector[i]->type != group_bundle || > display_vector[i]->expanded == 0) > continue; > > calclines += display_vector[i]->networks.size(); > } > kwin->start -= calcnum; > > } else if (kwin->selected == -2) { > kwin->start = kwin->end; > } > > > int calcnum = 0, calclines = 0; > for (unsigned int i = kwin->start; i < display_vector.size(); i++) { > calcnum++; > calclines++; > > if (sortby == sort_auto || display_vector[i]->type != group_bundle || > display_vector[i]->expanded == 0) > continue; > > calclines += display_vector[i]->networks.size(); > > if (calclines > kwin->max_display) > break; > } > > > > if (kwin->selected < 0) > kwin->selected = 0; > if (kwin->selected >= calcnum && calcnum != 0) > kwin->selected = calcnum - 1; > > for (unsigned int i = kwin->start; i < display_vector.size(); i++) { > last_displayed.push_back(display_vector[i]); > wireless_network *net = display_vector[i]->virtnet; > > if (net->manuf_score == manuf_max_score && color) > ((kwin->win)->_attrs = (color_map["factory"].pair)); > else if (net->cloaked && color) > ((kwin->win)->_attrs = (color_map["cloak"].pair)); > else if (net->crypt_set && color) > ((kwin->win)->_attrs = (color_map["wep"].pair)); > else if (color) > ((kwin->win)->_attrs = (color_map["open"].pair)); > else if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > if (i == (unsigned) (kwin->start + kwin->selected) && sortby != sort_auto) { > wattr_on(netwin, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > char bar[1024]; > memset(bar, ' ', 1024); > int w = kwin->print_width; > if (w >= 1024) > w = 1023; > bar[w] = '\0'; > (wmove(netwin,num+voffset,2) == (-1) ? (-1) : waddnstr(netwin,bar,-1)); > } > > string netline; > > > > NetLine(kwin, &netline, net, > display_vector[i]->name.length() == 0 ? display_vector[i]->virtnet->ssid.c_str() : display_vector[i]->name.c_str(), > 0, > display_vector[i]->type == group_host ? 0 : 1, > sortby == sort_auto ? 0 : display_vector[i]->expanded, > display_vector[i]->tagged); > > (wmove(netwin,num+voffset,1) == (-1) ? (-1) : waddnstr(netwin,netline.c_str(),-1)); > > if (i == (unsigned) (kwin->start + kwin->selected) && sortby != sort_auto) > wattr_off(netwin, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > num++; > kwin->end = i; > > if (num > kwin->max_display) > break; > > if (sortby == sort_auto || display_vector[i]->type != group_bundle || > display_vector[i]->expanded == 0) > continue; > > > vector<wireless_network *> sortsub = display_vector[i]->networks; > switch (sortby) { > case sort_auto: > break; > case sort_channel: > stable_sort(sortsub.begin(), sortsub.end(), SortChannel()); > break; > case sort_first: > stable_sort(sortsub.begin(), sortsub.end(), SortFirstTimeLT()); > break; > case sort_first_dec: > stable_sort(sortsub.begin(), sortsub.end(), SortFirstTime()); > break; > case sort_last: > stable_sort(sortsub.begin(), sortsub.end(), SortLastTimeLT()); > break; > case sort_last_dec: > stable_sort(sortsub.begin(), sortsub.end(), SortLastTime()); > break; > case sort_bssid: > stable_sort(sortsub.begin(), sortsub.end(), SortBSSIDLT()); > break; > case sort_bssid_dec: > stable_sort(sortsub.begin(), sortsub.end(), SortBSSID()); > break; > case sort_ssid: > stable_sort(sortsub.begin(), sortsub.end(), SortSSIDLT()); > break; > case sort_ssid_dec: > stable_sort(sortsub.begin(), sortsub.end(), SortSSID()); > break; > case sort_wep: > stable_sort(sortsub.begin(), sortsub.end(), SortWEP()); > break; > case sort_packets: > stable_sort(sortsub.begin(), sortsub.end(), SortPacketsLT()); > break; > case sort_packets_dec: > stable_sort(sortsub.begin(), sortsub.end(), SortPackets()); > break; > > > > > > case sort_signal: > stable_sort(sortsub.begin(), sortsub.end(), SortSignal()); > break; > } > > for (unsigned int y = 0; y < sortsub.size(); y++) { > net = display_vector[i]->networks[y]; > > NetLine(kwin, &netline, net, net->ssid.c_str(), 1, 0, 0, 0); > > if (net->manuf_score == manuf_max_score && color) > ((kwin->win)->_attrs = (color_map["factory"].pair)); > else if (net->crypt_set && color) > ((kwin->win)->_attrs = (color_map["wep"].pair)); > else if (color) > ((kwin->win)->_attrs = (color_map["open"].pair)); > > (wmove(netwin,num+voffset,1) == (-1) ? (-1) : waddnstr(netwin,netline.c_str(),-1)); > > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > num++; > > if (num > kwin->max_display) { > > break; > } > } > > if (num > kwin->max_display) > break; > } > > last_draw_size = group_vec.size(); > > > if (color) > ((kwin->win)->_attrs = (color_map["title"].pair)); > (wmove(netwin,0,kwin->title.length() + 4) == (-1) ? (-1) : waddnstr(netwin,main_sortxt,-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > if (kwin->start != 0 && sortby != sort_auto) { > (wmove(netwin,0,netwin->_maxx - 10) == (-1) ? (-1) : waddnstr(netwin,"(-) Up",-1)); > } > > if (kwin->end < (int) (group_vec.size() - 1) && sortby != sort_auto) { > unsigned int percent = (unsigned int)(100 * (double) kwin->end / (group_vec.size() - 1)); > char ptxt[15]; > snprintf(ptxt, 15, "%2d%% (+) Down", percent); > (wmove(netwin,netwin->_maxy,netwin->_maxx - 14) == (-1) ? (-1) : waddnstr(netwin,ptxt,-1)); > } > > > > > if (!(lat == 0 && lon == 0 && alt == 0 && spd == 0 && fix == 0)) { > > char gpsdata[80]; > char fixstr[16]; > float show_alt = alt; > float show_spd = spd; > > if (metric) { > show_alt = alt / 3.3; > show_spd = spd * 1.6093; > } > > if (fix == -1) > snprintf(fixstr, 16, "No signal"); > else if (fix == 2) > snprintf(fixstr, 5, "2D"); > else if (fix == 3) > snprintf(fixstr, 5, "3D"); > else > snprintf(fixstr, 5, "NONE"); > > > int spdslow = 0; > if (spd < 0.5) { > spdslow = 1; > if (metric) > show_spd = spd * 0.2778; > else > show_spd = spd * 1.4667; > } > > snprintf(gpsdata, 80, "Lat %.3f Lon %.3f Alt %.1f%c Spd %.3f%s Hed %.3f Fix %s", > lat, lon, show_alt, > metric ? 'm' : 'f', > show_spd, > spdslow ? (metric ? "m/s" : "f/s") : (metric ? "km/h" : "m/h"), > heading, > fixstr); > > if (color) > ((kwin->win)->_attrs = (color_map["monitor"].pair)); > (wmove(netwin,netwin->_maxy,2) == (-1) ? (-1) : waddnstr(netwin,gpsdata,-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > } > > > > return 1; >} > >int PanelFront::MainInfoPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > WINDOW *infowin = kwin->win; > > > > > > > char info[infowidth]; > > (wmove(infowin,1,2) == (-1) ? (-1) : waddnstr(infowin,"Ntwrks",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, num_networks); > (wmove(infowin,2,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > > (wmove(infowin,3,2) == (-1) ? (-1) : waddnstr(infowin,"Pckets",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, num_packets); > (wmove(infowin,4,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > > if (kwin->max_display > 6) { > (wmove(infowin,5,2) == (-1) ? (-1) : waddnstr(infowin,"Cryptd",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, num_crypt); > (wmove(infowin,6,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > } > > if (kwin->max_display > 8) { > (wmove(infowin,7,2) == (-1) ? (-1) : waddnstr(infowin," Weak",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, num_interesting); > (wmove(infowin,8,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > } > > if (kwin->max_display > 10) { > (wmove(infowin,9,2) == (-1) ? (-1) : waddnstr(infowin," Noise",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, num_noise); > (wmove(infowin,10,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > } > > if (kwin->max_display > 12) { > (wmove(infowin,11,2) == (-1) ? (-1) : waddnstr(infowin,"Discrd",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, num_dropped); > (wmove(infowin,12,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > } > > if (kwin->max_display > 14) { > (wmove(infowin,13,2) == (-1) ? (-1) : waddnstr(infowin,"Pkts/s",-1)); > snprintf(info, kwin->print_width, "%*d", kwin->print_width-1, packet_rate); > (wmove(infowin,14,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > } > > > if (kwin->max_display > 16) { > > vector<TcpClient::card_info *> cardlist = client->FetchCardList(); > > int nlines = cardlist.size() * 2; > > > > if (14 + nlines > kwin->max_display) { > for (unsigned int trimc = 0; trimc < cardlist.size() && > 14 + nlines > kwin->max_display; trimc++) { > if (cardlist[trimc]->channel == 0) { > cardlist.erase(cardlist.begin() + trimc); > trimc--; > nlines -= 2; > } > } > } > > > if (14 + nlines > kwin->max_display) { > while (cardlist.size() >= 1 && 14 + nlines > kwin->max_display) { > cardlist.erase(cardlist.begin()); > nlines -= 2; > } > } > > > for (unsigned int cardc = 0; cardc < cardlist.size(); cardc++) { > int pos = kwin->max_display - ((cardlist.size() - cardc) * 2); > snprintf(info, kwin->print_width, "%*s", kwin->print_width-1, > cardlist[cardc]->username.c_str()); > (wmove(infowin,pos,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > if (cardlist[cardc]->channel == 0) > snprintf(info, kwin->print_width, "Ch:---"); > else > snprintf(info, kwin->print_width, "Ch:%3d", cardlist[cardc]->channel); > (wmove(infowin,pos + 1,2) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > } > > } > > if (client->Valid()) > (wmove(infowin,LINES-statheight-2,2) == (-1) ? (-1) : waddnstr(infowin,"Elapsd",-1)); > else > (wmove(infowin,LINES-statheight-2,2) == (-1) ? (-1) : waddnstr(infowin,"Discon",-1)); > > if (server_time > 0) > { > time_t elapsed = server_time - start_time; > snprintf(info, infowidth-1, "%02d:%02d:%02d", > (int) (elapsed / 60) / 60, (int) (elapsed / 60) % 60, > (int) elapsed % 60); > } > (wmove(infowin,infowin->_maxy,1) == (-1) ? (-1) : waddnstr(infowin,info,-1)); > > return 1; >} > >int PanelFront::MainStatusPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > WINDOW *statuswin = kwin->win; > > if (kwin->text.size() != 0) { > int drop = kwin->text.size() - kwin->max_display - 1; > if (drop > 0) { > kwin->text.erase(kwin->text.begin(), kwin->text.begin() + drop); > } > > > char *trim = new char[kwin->print_width]; > > > > > > for (unsigned int x = 0; x < kwin->text.size(); x++) { > snprintf(trim, kwin->print_width, "%s", kwin->text[x].c_str()); > (wmove(kwin->win,x + 1,3) == (-1) ? (-1) : waddnstr(kwin->win,trim,-1)); > } > delete[] trim; > } > > if (monitor_bat) { > char batdata[80]; > > if (bat_available) { > if (bat_ac) { > > > snprintf(batdata, 80, "Battery: %s%s%d%%", > bat_ac ? "AC " : "", > bat_charging ? "charging " : "", > bat_percentage); > } else { > snprintf(batdata, 80, "Battery: %s%s%d%% %0dh%0dm%0ds", > bat_ac ? "AC " : "", > bat_charging ? "charging " : "", > bat_percentage, > (int) (bat_time / 60) / 60, > (int) (bat_time / 60) % 60, > (int) (bat_time % 60)); > } > } else { > snprintf(batdata, 80, "Battery: unavailable%s", > bat_ac ? ", AC power" : ""); > } > > if (color) > ((kwin->win)->_attrs = (color_map["monitor"].pair)); > (wmove(statuswin,statuswin->_maxy,2) == (-1) ? (-1) : waddnstr(statuswin,batdata,-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > } > > return 1; >} > >void PanelFront::ClientLine(kis_window *in_window, string *in_str, wireless_client *wclient, int print_width) { > char retchr[4096]; > char tmpchr[4096]; > > memset(retchr, 0, 4096); > memset(tmpchr, 0, 4096); > > if (print_width > 4096) > print_width = 4096; > > int pos = 0; > char element[1024]; > int len = 0; > > time_t idle_time; > if (wclient->tcpclient != __null) { > if (wclient->tcpclient->Valid()) > idle_time = wclient->tcpclient->FetchTime() - wclient->last_time; > else > idle_time = decay + 1; > } else { > idle_time = decay + 1; > } > > > for (unsigned int col = 0; col < client_column_vec.size(); col++) { > client_columns colind = client_column_vec[col]; > > if (colind == ccol_unknown) > continue; > > if (colind == ccol_decay) { > if (idle_time < decay) > snprintf(element, 1024, "!"); > else if (idle_time < (decay * 2)) > snprintf(element, 1024, "."); > else > snprintf(element, 1024, " "); > len = 1; > } else if (colind == ccol_type) { > if (wclient->type == client_fromds) > snprintf(element, 2, "F"); > else if (wclient->type == client_tods) > snprintf(element, 2, "T"); > else if (wclient->type == client_interds) > snprintf(element, 2, "I"); > else if (wclient->type == client_established) > snprintf(element, 2, "E"); > else > snprintf(element, 2, "-"); > len = 1; > } else if (colind == ccol_mac) { > snprintf(element, 18, "%s", wclient->mac.Mac2String().c_str()); > len = 17; > } else if (colind == ccol_manuf) { > if (wclient->manuf_ref != __null) { > snprintf(element, 9, "%s", wclient->manuf_ref->name.c_str()); > } else { > snprintf(element, 9, "Unknown"); > } > > len = 8; > } else if (colind == ccol_data) { > snprintf(element, 7, "%6d", wclient->data_packets); > len = 6; > } else if (colind == ccol_crypt) { > snprintf(element, 6, "%5d", wclient->crypt_packets); > len = 5; > } else if (colind == ccol_weak) { > snprintf(element, 6, "%5d", wclient->interesting_packets); > len = 5; > } else if (colind == ccol_maxrate) { > snprintf(element, 6, "%2.1f", wclient->maxrate); > len = 5; > } else if (colind == ccol_ip) { > if (wclient->ipdata.atype == address_none) { > snprintf(element, 1024, "0.0.0.0"); > } else { > snprintf(element, 16, "%d.%d.%d.%d", > wclient->ipdata.ip[0], wclient->ipdata.ip[1], > wclient->ipdata.ip[2], wclient->ipdata.ip[3]); > } > len = 15; > } else if (colind == ccol_signal) { > snprintf(element, 4, "%3d", (idle_time < (decay * 2)) ? wclient->signal : 0); > len = 3; > > > > > > } else if (colind == ccol_noise) { > snprintf(element, 4, "%3d", (idle_time < (decay * 2)) ? wclient->noise : 0); > len = 3; > } else if (colind == ccol_datasize) { > if (wclient->datasize < 1024) > snprintf(element, 6, "%4ldB", wclient->datasize); > else if (wclient->datasize < 1048576) > snprintf(element, 6, "%4ldk", wclient->datasize/1024); > else > snprintf(element, 6, "%4ldM", wclient->datasize/1024/1024); > len = 5; > } > > if (pos + len > print_width - 1) > break; > > snprintf(tmpchr, 4096, "%*s %s", (-1) * pos, retchr, element); > > strncpy(retchr, tmpchr, 4096); > > pos += len + 1; > } > > *in_str = retchr; >} > >int PanelFront::MainClientPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > client_win = kwin; > > int pos = 2; > for (unsigned int col = 0; col < client_column_vec.size(); col++) { > char title[1024]; > int len = 0; > client_columns colind = client_column_vec[col]; > > if (colind == ccol_unknown) > continue; > > if (colind == ccol_decay) { > snprintf(title, 1024, " "); > len = 1; > } else if (colind == ccol_type) { > snprintf(title, 1024, "T"); > len = 1; > } else if (colind == ccol_mac) { > snprintf(title, 1024, "MAC"); > len = 17; > } else if (colind == ccol_manuf) { > snprintf(title, 1024, "Manuf"); > len = 8; > } else if (colind == ccol_data) { > snprintf(title, 1024, " Data"); > len = 6; > } else if (colind == ccol_crypt) { > snprintf(title, 1024, "Crypt"); > len = 5; > } else if (colind == ccol_weak) { > snprintf(title, 1024, " Weak"); > len = 5; > } else if (colind == ccol_maxrate) { > snprintf(title, 1024, "Rate"); > len = 5; > } else if (colind == ccol_ip) { > snprintf(title, 1024, "IP Range"); > len = 15; > } else if (colind == ccol_signal) { > snprintf(title, 1024, "Sgn"); > len = 3; > > > > > > } else if (colind == ccol_noise) { > snprintf(title, 1024, "Nse"); > len = 3; > } else if (colind == ccol_datasize) { > snprintf(title, 1024, " Size"); > len = 5; > } else { > title[0] = '\0'; > } > > if (pos + len >= kwin->print_width) > break; > > if (color) > ((kwin->win)->_attrs = (color_map["title"].pair)); > > (wmove(kwin->win,1,pos) == (-1) ? (-1) : waddnstr(kwin->win,title,-1)); > > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > pos += len + 1; > } > > char sortxt[24]; > sortxt[0] = '\0'; > > vector<wireless_client *> display_vector; > if (details_network != __null) > display_vector = details_network->virtnet->client_vec; > > int drop; > > switch (client_sortby) { > case client_sort_auto: > > > > > snprintf(sortxt, 24, "(Autofit)"); > > stable_sort(display_vector.begin(), display_vector.end(), ClientSortLastTimeLT()); > > drop = display_vector.size() - kwin->max_display - 1; > > if (drop > 0) { > if (drop > (int) display_vector.size()) > drop = display_vector.size(); > > display_vector.erase(display_vector.begin(), display_vector.begin() + drop); > } > stable_sort(display_vector.begin(), display_vector.end(), ClientSortFirstTimeLT()); > kwin->start = 0; > > break; > case client_sort_channel: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortChannel()); > snprintf(sortxt, 24, "(Channel)"); > break; > case client_sort_first: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortFirstTime()); > snprintf(sortxt, 24, "(First Seen)"); > break; > case client_sort_first_dec: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortFirstTimeLT()); > snprintf(sortxt, 24, "(First Seen desc)"); > break; > case client_sort_last: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortLastTime()); > snprintf(sortxt, 24, "(Latest Seen)"); > break; > case client_sort_last_dec: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortLastTimeLT()); > snprintf(sortxt, 24, "(Latest Seen desc)"); > break; > case client_sort_mac: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortMAC()); > snprintf(sortxt, 24, "(MAC)"); > break; > case client_sort_mac_dec: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortMACLT()); > snprintf(sortxt, 24, "(MAC desc)"); > break; > case client_sort_wep: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortWEP()); > snprintf(sortxt, 24, "(WEP)"); > break; > case client_sort_packets: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortPackets()); > snprintf(sortxt, 24, "(Packets)"); > break; > case client_sort_packets_dec: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortPacketsLT()); > snprintf(sortxt, 24, "(Packets desc)"); > break; > > > > > > > > case client_sort_signal: > stable_sort(display_vector.begin(), display_vector.end(), > ClientSortSignal()); > snprintf(sortxt, 24, "(Signal)"); > break; > } > > int num = 0; > int voffset = 2; > > if (kwin->selected > kwin->max_display - voffset) { > kwin->selected = kwin->max_display - voffset; > } > > last_client_displayed.clear(); > for (unsigned int i = kwin->start; i < display_vector.size(); i++) { > last_client_displayed.push_back(display_vector[i]); > > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > if (num == kwin->selected && client_sortby != client_sort_auto) { > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > char bar[1024]; > memset(bar, ' ', 1024); > int w = kwin->print_width; > if (w >= 1024) > w = 1023; > bar[w] = '\0'; > (wmove(kwin->win,num+voffset,1) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > } > > string cliline; > > ClientLine(kwin, &cliline, display_vector[i], kwin->print_width); > > (wmove(kwin->win,num+voffset,1) == (-1) ? (-1) : waddnstr(kwin->win,cliline.c_str(),-1)); > > if (num == kwin->selected && client_sortby != client_sort_auto) > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > num++; > kwin->end = i; > > if (num > kwin->max_display - voffset) > break; > } > > last_client_draw_size = display_vector.size(); > > if (color) > ((kwin->win)->_attrs = (color_map["title"].pair)); > (wmove(kwin->win,0,kwin->title.length() + 4) == (-1) ? (-1) : waddnstr(kwin->win,sortxt,-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > if (kwin->start != 0 && client_sortby != client_sort_auto) { > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"(-) Up",-1)); > } > > if (kwin->end < (int) (display_vector.size() - 1) && client_sortby != client_sort_auto) { > unsigned int percent = (unsigned int)(100 * (double) kwin->end / (display_vector.size() - 1)); > char ptxt[15]; > snprintf(ptxt, 15, "%2d%% (+) Down", percent); > (wmove(kwin->win,kwin->win->_maxy,kwin->win->_maxx - 14) == (-1) ? (-1) : waddnstr(kwin->win,ptxt,-1)); > } > > return 1; >} > >int PanelFront::TextPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > unsigned int x; > > char *txt = new char[kwin->print_width + 1]; > > for (x = 0; x + kwin->start < kwin->text.size() && > x < (unsigned int) kwin->max_display; x++) { > snprintf(txt, kwin->print_width + 1, "%s", kwin->text[x+kwin->start].c_str()); > (wmove(kwin->win,1+x,2) == (-1) ? (-1) : waddnstr(kwin->win,txt,-1)); > } > delete[] txt; > > kwin->end = x+kwin->start; > > if (kwin->scrollable) { > if (kwin->start != 0) { > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"(-) Up",-1)); > } > > if (kwin->end < (int) (kwin->text.size() - 1)) { > unsigned int percent = (unsigned int)(100 * (double) kwin->end / (kwin->text.size() - 1)); > char ptxt[15]; > snprintf(ptxt, 15, "%2d%% (+) Down", percent); > (wmove(kwin->win,kwin->win->_maxy,kwin->win->_maxx - 14) == (-1) ? (-1) : waddnstr(kwin->win,ptxt,-1)); > } > } > > return 1; >} > >int PanelFront::SortPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > int x = 0; > while (1) { > if (KismetSortText[x] == __null) > break; > if (kwin->win->_maxx < 64) > (wmove(kwin->win,1+x,2) == (-1) ? (-1) : waddnstr(kwin->win,KismetSortTextNarrow[x],-1)); > else > (wmove(kwin->win,1+x,2) == (-1) ? (-1) : waddnstr(kwin->win,KismetSortText[x],-1)); > x++; > } > > return 1; >} > >int PanelFront::SortClientPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > int x = 0; > while (1) { > if (KismetClientSortText[x] == __null) > break; > if (kwin->win->_maxx < 64) > (wmove(kwin->win,1+x,2) == (-1) ? (-1) : waddnstr(kwin->win,KismetClientSortTextNarrow[x],-1)); > else > (wmove(kwin->win,1+x,2) == (-1) ? (-1) : waddnstr(kwin->win,KismetClientSortText[x],-1)); > x++; > } > > return 1; >} > > >int PanelFront::PowerPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > int pwr, nse; > > > pwr = power; > nse = noise; > > if (pwr == 0 && nse == 0) { > (wmove(kwin->win,2,2) == (-1) ? (-1) : waddnstr(kwin->win,"Server is not reporting card power levels.",-1)); > (wmove(kwin->win,3,2) == (-1) ? (-1) : waddnstr(kwin->win,"No signal information is available.",-1)); > return 1; > } > > int width = kwin->win->_maxx - 10; > > if (width <= 5) { > return 0; > } > > char *bar = new char[width+1]; > > if (pwr > 255) > pwr = 255; > if (nse > 255) > nse = 255; > > double pperc = 0, nperc = 0; > int snr = -1; > > if (pwr < 0 && nse < 0) { > > snr = pwr - nse; > if (snr < 0) > snr = 0; > if (snr > 50) > snr = 50; > > > pperc = (double) snr/50; > } else { > if (pwr != 0) > pperc = (double) ((double) (255 - abs(pwr)) / (double) 255); > if (nse != 0) > nperc = (double) ((double) (255 - abs(nse)) / (double) 255); > } > > int pbar = 0, nbar = 0; > > > pbar = (int) (width * pperc); > > > if (pbar < 0) > pbar = 0; > else if (pbar > width) > pbar = width; > > memset(bar, 'X', pbar); > memset(bar + pbar, '=', width - pbar); > bar[width] = '\0'; > > if (snr == -1) { > nbar = (int) (width * nperc); > > if (nbar < 0) > nbar = 0; > else if (nbar > width) > nbar = width; > > (wmove(kwin->win,2,2) == (-1) ? (-1) : waddnstr(kwin->win,"P:",-1)); > (wmove(kwin->win,2,5) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > > memset(bar, 'X', nbar); > memset(bar + nbar, '=', width - nbar); > bar[width] = '\0'; > > (wmove(kwin->win,3,2) == (-1) ? (-1) : waddnstr(kwin->win,"N:",-1)); > (wmove(kwin->win,3,5) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > > snprintf(bar, width, "%d", pwr); > (wmove(kwin->win,2,width+6) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > snprintf(bar, width, "%d", nse); > (wmove(kwin->win,3,width+6) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > } else { > (wmove(kwin->win,2,2) == (-1) ? (-1) : waddnstr(kwin->win,"SNR:",-1)); > (wmove(kwin->win,2,7) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > > snprintf(bar, width, "SNR: %ddB, Signal %ddB, Noise %ddB", > snr, pwr, nse); > > > (wmove(kwin->win,3,((kwin->print_width / 2) - (strlen(bar) / 2))) == (-1) ? (-1) : waddnstr(kwin->win,bar,-1)); > > } > > return 1; >} > > >int PanelFront::DetailsPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > kwin->scrollable = 1; > > char output[1024]; > kwin->text.clear(); > > int print_width = kwin->print_width; > if (print_width > 1024) > print_width = 1023; > > if (details_network == __null) { > kwin->text.push_back("The network or group being displayed"); > kwin->text.push_back("has been deleted. Please select a "); > kwin->text.push_back("different network."); > return TextPrinter(in_window); > } > > if (details_network->name == "") > snprintf(output, print_width, "Name : %s", details_network->virtnet->ssid.c_str()); > else > snprintf(output, print_width, "Name : %s", details_network->name.c_str()); > kwin->text.push_back(output); > > if (details_network->networks.size() > 1) { > snprintf(output, print_width, "Networks: %d", (int) details_network->networks.size()); > kwin->text.push_back(output); > > if (details_network->virtnet->gps_fixed != -1) { > if ((details_network->virtnet->min_lat == 90) && (details_network->virtnet->min_lon == 180) && > (details_network->virtnet->max_lat == -90) && (details_network->virtnet->max_lon == -180)) { > snprintf(output, print_width, "Min Loc : N/A"); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Loc : N/A"); > kwin->text.push_back(output); > snprintf(output, print_width, "Range : N/A"); > kwin->text.push_back(output); > } > else { > snprintf(output, print_width, "Min Loc : Lat %f Lon %f Alt %f Spd %f", > details_network->virtnet->min_lat, details_network->virtnet->min_lon, > metric ? details_network->virtnet->min_alt / 3.3 : details_network->virtnet->min_alt, > metric ? details_network->virtnet->min_spd * 1.6093 : details_network->virtnet->min_spd); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Loc : Lat %f Lon %f Alt %f Spd %f", > details_network->virtnet->max_lat, details_network->virtnet->max_lon, > metric ? details_network->virtnet->max_alt / 3.3 : details_network->virtnet->max_alt, > metric ? details_network->virtnet->max_spd * 1.6093 : details_network->virtnet->max_spd); > kwin->text.push_back(output); > > double diagdist = GPSD::EarthDistance(details_network->virtnet->min_lat, > details_network->virtnet->min_lon, > details_network->virtnet->max_lat, > details_network->virtnet->max_lon); > > if (finite(diagdist)) { > if (metric) { > if (diagdist < 1000) > snprintf(output, print_width, "Range : %.3f meters", diagdist); > else > snprintf(output, print_width, "Range : %.3f kilometers", diagdist / 1000); > } else { > diagdist *= 3.3; > if (diagdist < 5280) > snprintf(output, print_width, "Range : %.3f feet", diagdist); > else > snprintf(output, print_width, "Range : %.3f miles", diagdist / 5280); > } > kwin->text.push_back(output); > } > } > } > > if (details_network->virtnet->carrier_set & (1 << (int) carrier_80211b)) { > snprintf(output, print_width, "Carrier : IEEE 802.11b"); > kwin->text.push_back(output); > } > if (details_network->virtnet->carrier_set & (1 << (int) carrier_80211a)) { > snprintf(output, print_width, "Carrier : IEEE 802.11a"); > kwin->text.push_back(output); > } > if (details_network->virtnet->carrier_set & (1 << (int) carrier_80211g)) { > snprintf(output, print_width, "Carrier : IEEE 802.11g"); > kwin->text.push_back(output); > } > if (details_network->virtnet->carrier_set & (1 << (int) carrier_80211fhss)) { > snprintf(output, print_width, "Carrier : IEEE 802.11 FHSS"); > kwin->text.push_back(output); > } > if (details_network->virtnet->carrier_set & (1 << (int) carrier_80211dsss)) { > snprintf(output, print_width, "Carrier : IEEE 802.11 DSSS"); > kwin->text.push_back(output); > } > > } > > kwin->text.push_back(""); > > for (unsigned int x = 0; x < details_network->networks.size(); x++) { > wireless_network *dnet = details_network->networks[x]; > > if (details_network->networks.size() > 1) { > if (x != 0) { > snprintf(output, print_width, " "); > kwin->text.push_back(output); > } > snprintf(output, print_width, "Network %d", x+1); > kwin->text.push_back(output); > } > > > > snprintf(output, print_width, "SSID : %s", dnet->ssid.c_str()); > kwin->text.push_back(output); > > if (dnet->cloaked) { > snprintf(output, print_width, " SSID Cloaking on/Closed Network"); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "Server : %s:%d", dnet->tcpclient->FetchHost(), > dnet->tcpclient->FetchPort()); > kwin->text.push_back(output); > > snprintf(output, print_width, "BSSID : %s", dnet->bssid.Mac2String().c_str()); > kwin->text.push_back(output); > > if (dnet->carrier_set & (1 << (int) carrier_80211b)) { > snprintf(output, print_width, "Carrier : IEEE 802.11b"); > kwin->text.push_back(output); > } > if (dnet->carrier_set & (1 << (int) carrier_80211a)) { > snprintf(output, print_width, "Carrier : IEEE 802.11a"); > kwin->text.push_back(output); > } > if (dnet->carrier_set & (1 << (int) carrier_80211g)) { > snprintf(output, print_width, "Carrier : IEEE 802.11g"); > kwin->text.push_back(output); > } > if (dnet->carrier_set & (1 << (int) carrier_80211fhss)) { > snprintf(output, print_width, "Carrier : IEEE 802.11 FHSS"); > kwin->text.push_back(output); > } > if (dnet->carrier_set & (1 << (int) carrier_80211dsss)) { > snprintf(output, print_width, "Carrier : IEEE 802.11 DSSS"); > kwin->text.push_back(output); > } > > if (dnet->encoding_set & (1 << (int) encoding_cck)) { > snprintf(output, print_width, "Encoding: CCK"); > kwin->text.push_back(output); > } > if (dnet->encoding_set & (1 << (int) encoding_pbcc)) { > snprintf(output, print_width, "Encoding: PBCC"); > kwin->text.push_back(output); > } > if (dnet->encoding_set & (1 << (int) encoding_ofdm)) { > snprintf(output, print_width, "Encoding: OFDM"); > kwin->text.push_back(output); > } > > if (dnet->manuf_ref != __null) { > snprintf(output, print_width, "Manuf : %s", > dnet->manuf_ref->name.c_str()); > kwin->text.push_back(output); > if (dnet->manuf_ref->model != "") { > snprintf(output, print_width, "Model : %s", > dnet->manuf_ref->model.c_str()); > kwin->text.push_back(output); > } > snprintf(output, print_width, "Matched : %s", > dnet->manuf_ref->mac_tag.MacMask2String().c_str()); > kwin->text.push_back(output); > } else { > snprintf(output, print_width, "Manuf : Unknown"); > kwin->text.push_back(output); > } > > if (dnet->manuf_score == manuf_max_score) { > snprintf(output, print_width, " FACTORY CONFIGURATION"); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "Max Rate: %2.1f", dnet->maxrate); > kwin->text.push_back(output); > > > > snprintf(output, print_width, "BSS Time: %llx", dnet->bss_timestamp); > kwin->text.push_back(output); > > if (dnet->maxseenrate != 0) { > snprintf(output, print_width, "Max Seen: %ld kbps", (long) dnet->maxseenrate * 100); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "First : %.24s", ctime((const time_t *) &dnet->first_time)); > kwin->text.push_back(output); > > snprintf(output, print_width, "Latest : %.24s", ctime((const time_t *) &dnet->last_time)); > kwin->text.push_back(output); > > snprintf(output, print_width, "Clients : %d", (int) dnet->client_map.size()); > kwin->text.push_back(output); > > switch (dnet->type) { > case network_ap: > snprintf(output, print_width, "Type : Access Point (infrastructure)"); > break; > case network_adhoc: > snprintf(output, print_width, "Type : Ad-hoc"); > break; > case network_probe: > snprintf(output, print_width, "Type : Probe request (searching client)"); > break; > case network_data: > snprintf(output, print_width, "Type : Data (no network control traffic)"); > break; > case network_turbocell: > if (dnet->crypt_set) > snprintf(output, print_width, "Type : Turbocell (encrypted)"); > else > snprintf(output, print_width, "Type : Turbocell"); > break; > case network_remove: > break; > } > kwin->text.push_back(output); > > if (dnet->type == network_turbocell && dnet->crypt_set == 0) { > snprintf(output, print_width, " Net ID : %d", dnet->turbocell_nid); > kwin->text.push_back(output); > > switch (dnet->turbocell_mode) { > case turbocell_ispbase: > snprintf(output, print_width, " Mode : ISP base station"); > break; > case turbocell_pollbase: > snprintf(output, print_width, " Mode : Polling base station"); > break; > case turbocell_base: > snprintf(output, print_width, " Mode : Base station"); > break; > case turbocell_nonpollbase: > snprintf(output, print_width, " Mode : Non-polling base station"); > break; > default: > snprintf(output, print_width, " Mode : Unknown"); > break; > } > kwin->text.push_back(output); > > snprintf(output, print_width, " Sats : %s", dnet->turbocell_sat ? "Yes" : "No"); > kwin->text.push_back(output); > } > > if (dnet->beacon_info.size() > 0) { > snprintf(output, print_width, "Info : %s", dnet->beacon_info.c_str()); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "Channel : %d", dnet->channel); > kwin->text.push_back(output); > snprintf(output, print_width, "Privacy : %s", dnet->crypt_set ? "Yes" : "No"); > kwin->text.push_back(output); > > string crypt; > if (dnet->crypt_set == 0) > crypt = "None"; > if (dnet->crypt_set & crypt_wep) > crypt += "WEP "; > if (dnet->crypt_set & crypt_layer3) > crypt += "Layer3 "; > if (dnet->crypt_set & crypt_wep40) > crypt += "WEP40 "; > if (dnet->crypt_set & crypt_wep104) > crypt += "WEP104 "; > if (dnet->crypt_set & crypt_tkip) > crypt += "TKIP "; > if (dnet->crypt_set & crypt_wpa) > crypt += "WPA "; > if (dnet->crypt_set & crypt_psk) > crypt += "PSK "; > if (dnet->crypt_set & crypt_aes_ocb) > crypt += "AES-OCB "; > if (dnet->crypt_set & crypt_aes_ccm) > crypt += "AES-CCM "; > if (dnet->crypt_set & crypt_leap) > crypt += "LEAP "; > if (dnet->crypt_set & crypt_ttls) > crypt += "TTLS "; > if (dnet->crypt_set & crypt_tls) > crypt += "TLS "; > if (dnet->crypt_set & crypt_peap) > crypt += "PEAP "; > if (dnet->crypt_set & crypt_isakmp) > crypt += "ISAKMP "; > if (dnet->crypt_set & crypt_pptp) > crypt += "PPTP "; > if (crypt.length() == 0) > crypt = "Unknown"; > snprintf(output, print_width, "Encrypt : %s", crypt.c_str()); > kwin->text.push_back(output); > > if (dnet->crypt_set) { > snprintf(output, print_width, "Decryptd: %s", dnet->decrypted ? "Yes" : "No"); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "Beacon : %d (%f sec)", dnet->beacon, > (float) dnet->beacon * 1024 / 1000000); > kwin->text.push_back(output); > > snprintf(output, print_width, "Packets : %d", > dnet->data_packets + > dnet->llc_packets + > dnet->crypt_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " Data : %d", dnet->data_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " LLC : %d", dnet->llc_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " Crypt : %d", dnet->crypt_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " Weak : %d", dnet->interesting_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " Dupe IV : %d", dnet->dupeiv_packets); > kwin->text.push_back(output); > > > if (dnet->datasize < 1024) > snprintf(output, print_width, "Data : %ldB", dnet->datasize); > else if (dnet->datasize < 1048576) > snprintf(output, print_width, "Data : %ldk (%ldB)", > dnet->datasize/1024, dnet->datasize); > else > snprintf(output, print_width, "Data : %ldM (%ldk, %ldB)", > dnet->datasize/1024/1024, dnet->datasize/1024, dnet->datasize); > kwin->text.push_back(output); > > snprintf(output, print_width, "Signal :"); > kwin->text.push_back(output); > > > > > > snprintf(output, print_width, " Power : %d (best %d)", > dnet->signal, dnet->best_signal); > kwin->text.push_back(output); > snprintf(output, print_width, " Noise : %d (best %d)", > dnet->noise, dnet->best_noise); > kwin->text.push_back(output); > > switch (dnet->ipdata.atype) { > case address_none: > snprintf(output, print_width, "IP Type : None detected"); > break; > case address_factory: > snprintf(output, print_width, "IP Type : Factory default"); > break; > case address_udp: > snprintf(output, print_width, "IP Type : UDP (%d octets)", dnet->ipdata.octets); > break; > case address_tcp: > snprintf(output, print_width, "IP Type : TCP (%d octets)", dnet->ipdata.octets); > break; > case address_arp: > snprintf(output, print_width, "IP Type : ARP (%d octets)", dnet->ipdata.octets); > break; > case address_dhcp: > snprintf(output, print_width, "IP Type : DHCP"); > break; > case address_group: > snprintf(output, print_width, "IP Type : Group (aggregate)"); > break; > } > kwin->text.push_back(output); > > if (dnet->ipdata.atype != address_none) { > snprintf(output, print_width, "IP Range: %d.%d.%d.%d", > dnet->ipdata.range_ip[0], dnet->ipdata.range_ip[1], > dnet->ipdata.range_ip[2], dnet->ipdata.range_ip[3]); > kwin->text.push_back(output); > } > > if (dnet->gps_fixed != -1) { > if ((dnet->min_lat == 90) && (dnet->min_lon == 180) && > (dnet->max_lat == -90) && (dnet->max_lon == -180)) { > snprintf(output, print_width, "Min Loc : N/A"); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Loc : N/A"); > kwin->text.push_back(output); > snprintf(output, print_width, "Range : N/A"); > kwin->text.push_back(output); > } > else { > snprintf(output, print_width, "Min Loc : Lat %f Lon %f Alt %f Spd %f", > dnet->min_lat, dnet->min_lon, > metric ? dnet->min_alt / 3.3 : dnet->min_alt, > metric ? dnet->min_spd * 1.6093 : dnet->min_spd); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Loc : Lat %f Lon %f Alt %f Spd %f", > dnet->max_lat, dnet->max_lon, > metric ? dnet->max_alt / 3.3 : dnet->max_alt, > metric ? dnet->max_spd * 1.6093 : dnet->max_spd); > kwin->text.push_back(output); > > double diagdist = GPSD::EarthDistance(dnet->min_lat, dnet->min_lon, > dnet->max_lat, dnet->max_lon); > > if (finite(diagdist)) { > if (metric) { > if (diagdist < 1000) > snprintf(output, print_width, "Range : %f meters", diagdist); > else > snprintf(output, print_width, "Range : %f kilometers", diagdist / 1000); > } else { > diagdist *= 3.3; > if (diagdist < 5280) > snprintf(output, print_width, "Range : %f feet", diagdist); > else > snprintf(output, print_width, "Range : %f miles", diagdist / 5280); > } > kwin->text.push_back(output); > } > } > } > } > > > > return TextPrinter(in_window); >} > >int PanelFront::GpsPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > char output[1024]; > kwin->text.clear(); > > if (details_network == __null) { > kwin->text.push_back("The network or group being displayed"); > kwin->text.push_back("has been deleted. Please select a "); > kwin->text.push_back("different network."); > return TextPrinter(in_window); > } > > wireless_network *dnet = details_network->virtnet; > > int print_width = kwin->print_width; > if (print_width > 1024) > print_width = 1023; > > if (print_width < 32) { > kwin->text.push_back("Display not wide enough"); > return TextPrinter(in_window); > } > > if (dnet->aggregate_points == 0) { > kwin->text.push_back("No GPS data."); > return TextPrinter(in_window); > } > > float center_lat, center_lon; > > > if (kwin->selected == 1) { > center_lat = dnet->best_lat; > center_lon = dnet->best_lon; > } else { > center_lat = dnet->aggregate_lat / dnet->aggregate_points; > center_lon = dnet->aggregate_lon / dnet->aggregate_points; > } > > > float center_angle = GPSD::CalcHeading(center_lat, center_lon, lat, lon); > > float difference_angle = heading - center_angle; > if (difference_angle < 0) > difference_angle += 360; > > double diagdist = GPSD::EarthDistance(lat, lon, center_lat, center_lon); > > > > > > char compass[5][10]; > memset(compass, 0, sizeof(char) * 5 * 10); ># 1970 "panelfront_display.cc" > if (difference_angle > 330 || difference_angle <= 22) { > snprintf(compass[0], 10, " .-|-. "); > snprintf(compass[1], 10, " / | \\ "); > snprintf(compass[2], 10, "| O |"); > snprintf(compass[3], 10, " \\ / "); > snprintf(compass[4], 10, " '---' "); > } else if (difference_angle > 22 && difference_angle <= 66) { > snprintf(compass[0], 10, " .---/ "); > snprintf(compass[1], 10, " / / \\ "); > snprintf(compass[2], 10, "| O |"); > snprintf(compass[3], 10, " \\ / "); > snprintf(compass[4], 10, " '---' "); > } else if (difference_angle > 66 && difference_angle <= 110) { > snprintf(compass[0], 10, " .---. "); > snprintf(compass[1], 10, " / \\ "); > snprintf(compass[2], 10, "| O----"); > snprintf(compass[3], 10, " \\ / "); > snprintf(compass[4], 10, " '---' "); > } else if (difference_angle > 110 && difference_angle <= 154) { > snprintf(compass[0], 10, " .---. "); > snprintf(compass[1], 10, " / \\ "); > snprintf(compass[2], 10, "| O |"); > snprintf(compass[3], 10, " \\ \\ / "); > snprintf(compass[4], 10, " '---\\ "); > } else if (difference_angle > 154 && difference_angle <= 198) { > snprintf(compass[0], 10, " .---. "); > snprintf(compass[1], 10, " / \\ "); > snprintf(compass[2], 10, "| O |"); > snprintf(compass[3], 10, " \\ | / "); > snprintf(compass[4], 10, " '-|-' "); > } else if (difference_angle > 198 && difference_angle <= 242) { > snprintf(compass[0], 10, " .---. "); > snprintf(compass[1], 10, " / \\ "); > snprintf(compass[2], 10, "| O |"); > snprintf(compass[3], 10, " \\ / / "); > snprintf(compass[4], 10, " /---' "); > } else if (difference_angle > 242 && difference_angle <= 286) { > snprintf(compass[0], 10, " .---. "); > snprintf(compass[1], 10, " / \\ "); > snprintf(compass[2], 10, "----O |"); > snprintf(compass[3], 10, " \\ / "); > snprintf(compass[4], 10, " '---' "); > } else if (difference_angle > 286 && difference_angle <= 330) { > snprintf(compass[0], 10, " \\---. "); > snprintf(compass[1], 10, " / \\ \\ "); > snprintf(compass[2], 10, "| O |"); > snprintf(compass[3], 10, " \\ / "); > snprintf(compass[4], 10, " '---' "); > } else { > snprintf(compass[0], 10, "%f\n", difference_angle); > } ># 2033 "panelfront_display.cc" > char textfrag[23]; > > snprintf(output, print_width, "Current:"); > kwin->text.push_back(output); > > snprintf(textfrag, 23, "%.3f x %.3f", lat, lon); > snprintf(output, print_width, "%-22s%s", textfrag, compass[0]); > kwin->text.push_back(output); > > snprintf(textfrag, 23, " Bearing:"); > snprintf(output, print_width, "%-22s%s", textfrag, compass[1]); > kwin->text.push_back(output); > > snprintf(textfrag, 23, " %.2f*", heading); > snprintf(output, print_width, "%-22s%s", textfrag, compass[2]); > kwin->text.push_back(output); > > snprintf(textfrag, 23, " "); > snprintf(output, print_width, "%-22s%s", textfrag, compass[3]); > kwin->text.push_back(output); > > if (kwin->selected == 1) > snprintf(textfrag, 23, "Strongest signal:"); > else > snprintf(textfrag, 23, "Estimated Center:"); > snprintf(output, print_width, "%-22s%s", textfrag, compass[4]); > kwin->text.push_back(output); > > snprintf(textfrag, 23, "%.3f x %.3f", center_lat, center_lon); > snprintf(output, print_width, "%-22s%.2f*", textfrag, difference_angle); > kwin->text.push_back(output); > > if (metric) { > if (diagdist < 1000) > snprintf(textfrag, 23, "%.2f m", diagdist); > else > snprintf(textfrag, 23, "%.2f km", diagdist / 1000); > } else { > diagdist *= 3.3; > if (diagdist < 5280) > snprintf(textfrag, 23, "%.2f ft", diagdist); > else > snprintf(textfrag, 23, "%.2f mi", diagdist / 5280); > } > > snprintf(output, print_width, "%-22s%s", "", textfrag); > kwin->text.push_back(output); > > return TextPrinter(in_window); >} > >int PanelFront::PackPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > if (client->GetMaxPackInfos() != ((kwin->max_display / 4) * (kwin->print_width - 2)) / 3) > client->SetMaxPackInfos((kwin->max_display / 4) * (kwin->print_width - 1)); > > if (kwin->paused != 0) { > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"Paused",-1)); > return TextPrinter(in_window); > } > > if (kwin->toggle1 == 0) > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"All",-1)); > else > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"Tagged",-1)); > > vector<packet_info> packinfo; > packinfo.reserve(100); > > > > for (unsigned int x = 0; x < context_list.size(); x++) { > if (context_list[x]->tagged == 1 && context_list[x]->client != __null) { > vector<packet_info> cli_packs = context_list[x]->client->FetchPackInfos(); > for (unsigned int stng = 0; stng < cli_packs.size(); stng++) { > > map<mac_addr, display_network *>::iterator gamitr; > gamitr = group_assignment_map.find(cli_packs[stng].bssid_mac); > if (gamitr == group_assignment_map.end()) > continue; > if (kwin->toggle1 == 1 && gamitr->second->tagged == 0) > continue; > > packinfo.push_back(cli_packs[stng]); > } > } > } > > clear_dump = 0; > > > stable_sort(packinfo.begin(), packinfo.end(), SortPacketInfos()); > > > int singles = 0; > kwin->text.clear(); > string data; > string ptype; > char cdata[1024]; > char dsubtype[1024], srcport[12], dstport[12]; > struct servent *srcserv, *dstserv; > > > for (unsigned int x = max(0, (int) packinfo.size() - (((kwin->max_display / 4) * (kwin->print_width - 2)) / 3)); > x < packinfo.size(); x++) { > switch(packinfo[x].type) { > case packet_noise: > data += "N "; > break; > case packet_unknown: > data += "U "; > break; > case packet_management: > data += "M"; > > switch (packinfo[x].subtype) { > case packet_sub_association_req: > data += "a"; > break; > case packet_sub_association_resp: > data += "A"; > break; > case packet_sub_reassociation_req: > data += "r"; > break; > case packet_sub_reassociation_resp: > data += "R"; > break; > case packet_sub_probe_req: > data += "p"; > break; > case packet_sub_probe_resp: > data += "P"; > break; > case packet_sub_beacon: > data += "B"; > break; > case packet_sub_atim: > data += "M"; > break; > case packet_sub_disassociation: > data += "D"; > break; > case packet_sub_authentication: > data += "t"; > break; > case packet_sub_deauthentication: > data += "T"; > break; > default: > data += "?"; > break; > } > ptype += ")"; > > break; > case packet_phy: > data += "P"; > > switch (packinfo[x].subtype) { > case packet_sub_rts: > data += "t"; > break; > case packet_sub_cts: > data += "T"; > break; > case packet_sub_ack: > data += "A"; > break; > case packet_sub_cf_end: > data += "c"; > break; > case packet_sub_cf_end_ack: > data += "C"; > break; > default: > data += "?"; > break; > } > > ptype += ")"; > > break; > case packet_data: > data += "D"; > ptype += "DATA ("; > > switch (packinfo[x].subtype) { > case packet_sub_data: > data += "D"; > break; > case packet_sub_data_cf_ack: > data += "c"; > break; > case packet_sub_data_cf_poll: > data += "p"; > break; > case packet_sub_data_cf_ack_poll: > data += "P"; > break; > case packet_sub_data_null: > data += "N"; > break; > case packet_sub_cf_ack: > data += "a"; > break; > case packet_sub_cf_ack_poll: > data += "A"; > break; > default: > data += "?"; > break; > } > > break; > default: > data += "U "; > break; > } > > data += " "; > > if ((int) data.length() >= kwin->print_width - 2) { > kwin->text.push_back(data); > data.erase(); > singles++; > } > } > > do { > kwin->text.push_back(data); > data.erase(); > singles++; > } while (singles <= kwin->max_display / 4); > > unsigned int start = 0; > if ((unsigned int) (kwin->max_display + (kwin->max_display / 4)) < packinfo.size()) > start = packinfo.size() - kwin->max_display + (kwin->max_display / 4) + 1; > > for (unsigned int x = start; x < packinfo.size(); x++) { > switch(packinfo[x].type) { > case packet_noise: > ptype = "NOISE"; > break; > case packet_unknown: > ptype = "UNKNOWN"; > break; > case packet_management: > ptype = "MANAGEMENT ("; > > switch (packinfo[x].subtype) { > case packet_sub_association_req: > ptype += "Association Request "; > ptype += packinfo[x].ssid; > break; > case packet_sub_association_resp: > ptype += "Association Response "; > ptype += packinfo[x].ssid; > break; > case packet_sub_reassociation_req: > ptype += "Reassociation Request "; > ptype += packinfo[x].ssid; > break; > case packet_sub_reassociation_resp: > ptype += "Reassociation Response "; > ptype += packinfo[x].ssid; > break; > case packet_sub_probe_req: > ptype += "Probe Request "; > ptype += packinfo[x].ssid; > break; > case packet_sub_probe_resp: > ptype += "Probe Response "; > ptype += packinfo[x].ssid; > break; > case packet_sub_beacon: > ptype += "Beacon "; > ptype += packinfo[x].ssid; > break; > case packet_sub_atim: > ptype += "ATIM"; > break; > case packet_sub_disassociation: > ptype += "Disassociation"; > break; > case packet_sub_authentication: > ptype += "Authentication"; > break; > case packet_sub_deauthentication: > ptype += "Deauthentication"; > break; > default: > ptype += "Unknown"; > break; > } > ptype += ")"; > > break; > case packet_phy: > ptype = "PHY ("; > > switch (packinfo[x].subtype) { > case packet_sub_rts: > ptype += "Ready To Send"; > break; > case packet_sub_cts: > ptype += "Clear To Send"; > break; > case packet_sub_ack: > ptype += "Data Ack"; > break; > case packet_sub_cf_end: > ptype += "CF End"; > break; > case packet_sub_cf_end_ack: > ptype += "CF End+Ack"; > break; > default: > ptype += "Unknown"; > break; > } > > ptype += ")"; > > break; > case packet_data: > ptype = "DATA ("; > > switch (packinfo[x].subtype) { > case packet_sub_data: > if (packinfo[x].interesting) > ptype += "Weak "; > if (packinfo[x].encrypted) > ptype += "Encrypted "; > > switch (packinfo[x].proto.type) { > case proto_netbios: > case proto_netbios_tcp: > ptype += "NETBIOS "; > switch (packinfo[x].proto.nbtype) { > case proto_netbios_host: > ptype += "HOST "; > ptype += packinfo[x].proto.netbios_source; > break; > case proto_netbios_master: > ptype += "MASTER "; > ptype += packinfo[x].proto.netbios_source; > break; > case proto_netbios_domain: > ptype += "DOMAIN "; > ptype += packinfo[x].proto.netbios_source; > break; > case proto_netbios_query: > ptype += "QUERY "; > ptype += packinfo[x].proto.netbios_source; > break; > case proto_netbios_pdcquery: > ptype += "PDC QUERY "; > ptype += packinfo[x].proto.netbios_source; > break; > default: > break; > } > break; > case proto_udp: > case proto_dhcp_server: > srcserv = getservbyport((__extension__ ({ register unsigned short int __v, __x = (packinfo[x].proto.sport); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })), "udp"); > dstserv = getservbyport((__extension__ ({ register unsigned short int __v, __x = (packinfo[x].proto.dport); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })), "udp"); > snprintf(srcport, 12, "%d", packinfo[x].proto.sport); > snprintf(dstport, 12, "%d", packinfo[x].proto.dport); > > snprintf(dsubtype, 1024, "UDP %d.%d.%d.%d:%s->%d.%d.%d.%d:%s", > packinfo[x].proto.source_ip[0], packinfo[x].proto.source_ip[1], > packinfo[x].proto.source_ip[2], packinfo[x].proto.source_ip[3], > srcserv ? srcserv->s_name : srcport, > packinfo[x].proto.dest_ip[0], packinfo[x].proto.dest_ip[1], > packinfo[x].proto.dest_ip[2], packinfo[x].proto.dest_ip[3], > dstserv ? dstserv->s_name : dstport); > ptype += dsubtype; > break; > case proto_misc_tcp: > srcserv = getservbyport((__extension__ ({ register unsigned short int __v, __x = (packinfo[x].proto.sport); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })), "tcp"); > dstserv = getservbyport((__extension__ ({ register unsigned short int __v, __x = (packinfo[x].proto.dport); if (__builtin_constant_p (__x)) __v = ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8)); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })), "tcp"); > snprintf(srcport, 12, "%d", packinfo[x].proto.sport); > snprintf(dstport, 12, "%d", packinfo[x].proto.dport); > snprintf(dsubtype, 1024, "TCP %d.%d.%d.%d:%s->%d.%d.%d.%d:%s", > packinfo[x].proto.source_ip[0], packinfo[x].proto.source_ip[1], > packinfo[x].proto.source_ip[2], packinfo[x].proto.source_ip[3], > srcserv ? srcserv->s_name : srcport, > packinfo[x].proto.dest_ip[0], packinfo[x].proto.dest_ip[1], > packinfo[x].proto.dest_ip[2], packinfo[x].proto.dest_ip[3], > dstserv ? dstserv->s_name : dstport); > ptype += dsubtype; > break; > case proto_arp: > snprintf(dsubtype, 1024, "ARP %d.%d.%d.%d->%d.%d.%d.%d", > packinfo[x].proto.source_ip[0], packinfo[x].proto.source_ip[1], > packinfo[x].proto.source_ip[2], packinfo[x].proto.source_ip[3], > packinfo[x].proto.dest_ip[0], packinfo[x].proto.dest_ip[1], > packinfo[x].proto.dest_ip[2], packinfo[x].proto.dest_ip[3]); > ptype += dsubtype; > break; > case proto_ipx_tcp: > snprintf(dsubtype, 1024, "IPX"); > ptype += dsubtype; > break; > default: > break; > } > > break; > case packet_sub_data_cf_ack: > ptype += "Data+CF+Ack"; > break; > case packet_sub_data_cf_poll: > ptype += "Data+CF+Poll"; > break; > case packet_sub_data_cf_ack_poll: > ptype += "Data+CF+Ack+Poll"; > break; > case packet_sub_data_null: > ptype += "Data Null"; > break; > case packet_sub_cf_ack: > ptype += "CF Ack"; > break; > case packet_sub_cf_ack_poll: > ptype += "CF Ack+Poll"; > break; > default: > ptype += "Unknown"; > break; > } > > ptype += ")"; > > break; > default: > ptype = "UNKNOWN"; > break; > } > > snprintf(cdata, 1024, "%.8s - %s %s", > ctime((const time_t *) &packinfo[x].ts.tv_sec)+11, > packinfo[x].source_mac.Mac2String().c_str(), ptype.c_str()); > > kwin->text.push_back(cdata); > } > > return TextPrinter(in_window); >} > >int PanelFront::DumpPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > vector<TcpClient::string_info> strinf; > strinf.reserve(100); > > if (kwin->paused != 0) { > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"Paused",-1)); > return TextPrinter(in_window); > } > > if (kwin->toggle1 == 0) > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"All",-1)); > else > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"Tagged",-1)); > > for (unsigned int x = 0; x < context_list.size(); x++) { > if (context_list[x]->tagged == 1 && context_list[x]->client != __null) { > if (clear_dump) { > client->ClearStrings(); > kwin->text.clear(); > } else { > vector<TcpClient::string_info> cli_strings = context_list[x]->client->FetchStrings(); > for (unsigned int stng = 0; stng < cli_strings.size(); stng++) { > > map<mac_addr, display_network *>::iterator gamitr; > gamitr = group_assignment_map.find(cli_strings[stng].bssid); > if (gamitr == group_assignment_map.end()) > continue; > if (kwin->toggle1 == 1 && gamitr->second->tagged == 0) > continue; > > strinf.push_back(cli_strings[stng]); > } > } > } > } > > clear_dump = 0; > > > stable_sort(strinf.begin(), strinf.end(), TcpClient::SortStrings()); > > kwin->text.clear(); > > char output[1024]; > for (unsigned int x = (strinf.size() > (unsigned int) kwin->win->_maxy - 1 ? > kwin->win->_maxy - 1 : strinf.size());x > 0; x--) { > if (kwin->toggle0 == 1) { > > snprintf(output, 1024, "%.24s - %s", ctime((const time_t *) &strinf[x-1].string_ts.tv_sec), > strinf[x-1].text.c_str()); > kwin->text.push_back(output); > } else { > kwin->text.push_back(strinf[x-1].text); > } > } > > return TextPrinter(in_window); >} > > > >int PanelFront::GroupNamePrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > char gname[26]; > int print_width = kwin->print_width; > > if (print_width > 25) > print_width = 25; > > (wmove(kwin->win,1,2) == (-1) ? (-1) : waddnstr(kwin->win,"Group name:",-1)); > > > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > memset(gname, ' ', print_width); > gname[print_width] = '\0'; > > (wmove(kwin->win,2,2) == (-1) ? (-1) : waddnstr(kwin->win,gname,-1)); > > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > if (details_network->name == "") > snprintf(gname, print_width - 9, "%s", details_network->virtnet->ssid.c_str()); > else > snprintf(gname, print_width - 9, "%s", details_network->name.c_str()); > (wmove(kwin->win,3,2) == (-1) ? (-1) : waddnstr(kwin->win,"Default: ",-1)); > (wmove(kwin->win,3,11) == (-1) ? (-1) : waddnstr(kwin->win,gname,-1)); > > echo(); > nocbreak(); > nodelay(kwin->win, 0); > > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > (wmove(kwin->win,2,2) == (-1) ? (-1) : wgetnstr(kwin->win,gname,print_width-1)); > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > noecho(); > cbreak(); > > > if (strlen(gname) == 0) > return 0; > > details_network->name = gname; > group_name_map[details_network->tag] = gname; > > return 0; >} > >int PanelFront::StatsPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > kwin->scrollable = 1; > > vector<string> details_text; > char output[1024]; > > const int print_width = kwin->print_width; > > snprintf(output, print_width, "Start : %.24s", ctime((const time_t *) &start_time)); > details_text.push_back(output); > > snprintf(output, print_width, "Servers : %d", context_list.size()); > details_text.push_back(output); > > snprintf(output, print_width, "Networks: %d", num_networks); > details_text.push_back(output); > > int wep_count = 0, vuln_count = 0; > int channelperc[14]; > int maxch = 1; > > memset(channelperc, 0, sizeof(int) * 14); > > for (unsigned int x = 0; x < context_list.size(); x++) { > if (context_list[x]->tagged == 1 && context_list[x]->client != __null) { > vector<wireless_network *> netlist = > context_list[x]->client->FetchNetworkList(); > > > for (unsigned int x = 0; x < netlist.size(); x++) { > if (netlist[x]->channel > 0 && netlist[x]->channel < 14) { > int perc = ++channelperc[netlist[x]->channel - 1]; > if (perc > maxch) > maxch = perc; > } > > if (netlist[x]->crypt_set) > wep_count++; > if (netlist[x]->manuf_score == manuf_max_score) > vuln_count++; > } > } > } > > snprintf(output, print_width, " Encrypted: %d (%d%%)", wep_count, > num_networks > 0 ? > (int) (((double) wep_count / num_networks) * 100) : 0); > details_text.push_back(output); > > snprintf(output, print_width, " Default : %d (%d%%)", vuln_count, > num_networks > 0 ? > (int) (((double) vuln_count / num_networks) * 100) : 0); > details_text.push_back(output); > > snprintf(output, print_width, "Total packets: %d", num_packets); > details_text.push_back(output); > > snprintf(output, print_width, "Max. Packet Rate: %d packets/sec", max_packet_rate); > details_text.push_back(output); > > snprintf(output, print_width, "Channel Usage:"); > details_text.push_back(output); > > unsigned int graph_height = 7; > char line[1024]; > > > > if (print_width >= 48) { > snprintf(output, print_width, " --------------------------- -----------------------------"); > details_text.push_back(output); > > unsigned int vdraw = 1; > for (unsigned int x = 0; x < graph_height; x++) { > memset(line, '\0', print_width); > line[0] = line[1] = ' '; > unsigned int draw = 2; > > for (unsigned int y = 0; y < 14; y++) { > if ((((double) channelperc[y] / maxch) * graph_height) >= (graph_height - x)) > line[draw] = 'X'; > else > line[draw] = ' '; > > line[draw+1] = ' '; > draw += 2; > } > > snprintf(output, print_width, "%s %02d: %3d (%02d%%) | %02d: %3d (%02d%%)", > line, vdraw, channelperc[vdraw-1], > num_networks > 0 ? > (int) (((double) channelperc[vdraw-1] / num_networks) * 100) : 0, > vdraw+1, channelperc[vdraw], > num_networks > 0 ? > (int) (((double) channelperc[vdraw] / num_networks) * 100) : 0); > vdraw += 2; > details_text.push_back(output); > } > > snprintf(output, print_width, " --------------------------- -----------------------------"); > details_text.push_back(output); > snprintf(output, print_width, " 1 2 3 4 5 6 7 8 9 1 1 1 1 1"); > details_text.push_back(output); > snprintf(output, print_width, " 0 1 2 3 4"); > details_text.push_back(output); > } else { > output[0] = '\0'; > > unsigned int netchunk = (unsigned int) ceil((double) print_width / 13); > if (netchunk > 4) > netchunk = 4; > > for (unsigned int x = 0; x < 14; x++) { > snprintf(line, print_width, "%s %02d: %3d (%2d%%)", > output, x+1, channelperc[x], > num_networks > 0 ? > (int) (((double) channelperc[x] / num_networks) * 100) : 0); > strncpy(output, line, 1024); > > if ((x+1) % netchunk == 0) { > details_text.push_back(output); > output[0] = '\0'; > } > } > if (strlen(output) > 0) > details_text.push_back(output); > } > > kwin->text = details_text; > > > return TextPrinter(in_window); >} > >int PanelFront::RatePrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; ># 2753 "panelfront_display.cc" > const int unsigned graph_hoffset = 7; > const int unsigned graph_voffset = 2; > unsigned int graph_width = kwin->print_width - graph_hoffset - 2; > unsigned int ngraph_width; > unsigned int graph_height = kwin->max_display - 6; > > > unsigned int chunksize = (unsigned int) ceil((double) packet_history.size() / > graph_width); > > > > > while (chunksize > 0 && (packet_history.size() / chunksize) > graph_width) { > chunksize--; > } > > ngraph_width = packet_history.size() / chunksize; ># 2784 "panelfront_display.cc" > graph_width = ngraph_width; > > > > if (graph_width <= 20 || graph_height <= 5) { > return 0; > } > > vector<unsigned int> averaged_history; > unsigned int avg_max = 0; > > unsigned int chunk = 0; > unsigned int chunkcount = 0; > > for (unsigned int x = 1; x < packet_history.size(); x++) { > if (packet_history[x-1] != 0) { > unsigned int delta = packet_history[x] - packet_history[x-1]; > > if (delta > chunk) > chunk = delta; > } > chunkcount++; > > if (chunkcount >= chunksize || x == packet_history.size() - 1) { > averaged_history.push_back(chunk); > > if (avg_max < chunk) > avg_max = chunk; > > chunk = 0; > chunkcount = 0; > } > } > > if (avg_max < 1) > avg_max = 1; > > > for (unsigned int x = 0; x < averaged_history.size(); x++) { > double perc = (double) averaged_history[x]/avg_max; > > averaged_history[x] = (int) (graph_height * perc); > } > > > char *graphstring = new char[graph_width+1]; > > if (avg_max != 0) > for (unsigned int x = 0; x < graph_height; x++) { > memset(graphstring, '\0', graph_width+1); > > for (unsigned int y = 0; y < averaged_history.size() && y < > graph_width; y++) { > if (averaged_history[y] >= (graph_height - x)) > graphstring[y] = 'X'; > else > graphstring[y] = ' '; > } > > (wmove(kwin->win,graph_voffset+x,graph_hoffset-1) == (-1) ? (-1) : waddnstr(kwin->win,"|",-1)); > (wmove(kwin->win,graph_voffset+x,graph_hoffset) == (-1) ? (-1) : waddnstr(kwin->win,graphstring,-1)); > } > > > (wmove(kwin->win,1,2) == (-1) ? (-1) : waddnstr(kwin->win,"Pkts",-1)); > snprintf(graphstring, 5, "%4d", avg_max); > (wmove(kwin->win,graph_voffset,2) == (-1) ? (-1) : waddnstr(kwin->win,graphstring,-1)); > snprintf(graphstring, 5, "%4d", avg_max/2); > (wmove(kwin->win,graph_voffset+(graph_height/2),2) == (-1) ? (-1) : waddnstr(kwin->win,graphstring,-1)); > (wmove(kwin->win,graph_voffset+graph_height,2) == (-1) ? (-1) : waddnstr(kwin->win," 0",-1)); > memset(graphstring, '-', graph_width); > (wmove(kwin->win,graph_voffset+graph_height,graph_hoffset) == (-1) ? (-1) : waddnstr(kwin->win,graphstring,-1)); > (wmove(kwin->win,graph_voffset+graph_height+1,graph_hoffset) == (-1) ? (-1) : waddnstr(kwin->win,"-5",-1)); > (wmove(kwin->win,graph_voffset+graph_height+1,graph_hoffset+(graph_width/2)-2) == (-1) ? (-1) : waddnstr(kwin->win,"-2.5",-1)); > > (wmove(kwin->win,graph_voffset+graph_height+1,graph_hoffset+graph_width-1) == (-1) ? (-1) : waddnstr(kwin->win,"0",-1)); > > (wmove(kwin->win,graph_voffset+graph_height+2,graph_hoffset+(graph_width/2)-7) == (-1) ? (-1) : waddnstr(kwin->win,"Time (Minutes)",-1)); > > > delete[] graphstring; > > return 1; >} > >int PanelFront::AlertPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > kwin->scrollable = 1; > > if (kwin->paused != 0) { > (wmove(kwin->win,0,kwin->win->_maxx - 10) == (-1) ? (-1) : waddnstr(kwin->win,"Paused",-1)); > return TextPrinter(in_window); > } > > vector<TcpClient::alert_info> alerts; > alerts.reserve(100); > > > for (unsigned int x = 0; x < context_list.size(); x++) { > if (context_list[x]->tagged == 1 && context_list[x]->client != __null) { > vector<TcpClient::alert_info> cli_alerts = context_list[x]->client->FetchAlerts(); > for (unsigned int alrt = 0; alrt < cli_alerts.size(); alrt++) > alerts.push_back(cli_alerts[alrt]); > } > } > > > stable_sort(alerts.begin(), alerts.end(), TcpClient::SortAlerts()); > > kwin->text.clear(); > > char output[1024]; > for (unsigned int x = 0; x < alerts.size(); x++) { > vector<string> wrapped; > if (kwin->toggle0 == 0) { > > snprintf(output, 1024, "%.24s - %s", ctime((const time_t *) &alerts[x].alert_ts.tv_sec), > alerts[x].alert_text.c_str()); > wrapped = LineWrap(output, 4, kwin->print_width - 1); > } else { > wrapped = LineWrap(alerts[x].alert_text, 4, kwin->print_width - 1); > } > > for (unsigned int wrx = 0; wrx < wrapped.size(); wrx++) > kwin->text.push_back(wrapped[wrx]); > } > > return TextPrinter(in_window); >} > >int PanelFront::DetailsClientPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > kwin->scrollable = 1; > > char output[1024]; > char temp[1024]; > kwin->text.clear(); > > int print_width = kwin->print_width; > if (print_width > 1024) > print_width = 1023; > > switch (details_client->type) { > case client_fromds: > snprintf(temp, print_width, "From Distribution (AP->Wireless)"); > break; > case client_tods: > snprintf(temp, print_width, "To Distribution (Wireless->AP)"); > break; > case client_interds: > snprintf(temp, print_width, "Intra-distribution (AP->AP)"); > break; > case client_established: > snprintf(temp, print_width, "Established (Wireless->AP and AP->Wireless)"); > break; > case client_unknown: > snprintf(temp, print_width, "Unknown"); > break; > } > > snprintf(output, print_width, "Type : %s", temp); > kwin->text.push_back(output); > > snprintf(output, print_width, "Server : %s:%d", details_client->tcpclient->FetchHost(), > details_client->tcpclient->FetchPort()); > kwin->text.push_back(output); > > snprintf(output, print_width, "MAC : %s", details_client->mac.Mac2String().c_str()); > kwin->text.push_back(output); > > if (details_client->manuf_ref != __null) { > snprintf(output, print_width, "Manuf : %s", > details_client->manuf_ref->name.c_str()); > kwin->text.push_back(output); > if (details_client->manuf_ref->model != "") { > snprintf(output, print_width, "Model : %s", > details_client->manuf_ref->model.c_str()); > kwin->text.push_back(output); > } > snprintf(output, print_width, "Matched : %s", > details_client->manuf_ref->mac_tag.MacMask2String().c_str()); > kwin->text.push_back(output); > } else { > snprintf(output, print_width, "Manuf : Unknown"); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "First : %.24s", ctime((const time_t *) &details_client->first_time)); > kwin->text.push_back(output); > snprintf(output, print_width, "Latest : %.24s", ctime((const time_t *) &details_client->last_time)); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Rate: %2.1f", details_client->maxrate); > kwin->text.push_back(output); > > if (details_client->maxseenrate != 0) { > snprintf(output, print_width, "Max Seen: %ld kbps", (long) details_client->maxseenrate * 100); > kwin->text.push_back(output); > } > > if (details_client->encoding_set & (1 << (int) encoding_cck)) { > snprintf(output, print_width, "Encoding: CCK"); > kwin->text.push_back(output); > } > if (details_client->encoding_set & (1 << (int) encoding_pbcc)) { > snprintf(output, print_width, "Encoding: PBCC"); > kwin->text.push_back(output); > } > if (details_client->encoding_set & (1 << (int) encoding_ofdm)) { > snprintf(output, print_width, "Encoding: OFDM"); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "Channel : %d", details_client->channel); > kwin->text.push_back(output); > snprintf(output, print_width, "Privacy : %s", > details_client->crypt_set ? "Yes" : "No"); > kwin->text.push_back(output); > > string crypt; > if (details_client->crypt_set == 0) > crypt = "None"; > if (details_client->crypt_set & crypt_wep) > crypt += "WEP "; > if (details_client->crypt_set & crypt_layer3) > crypt += "Layer3 "; > if (details_client->crypt_set & crypt_wep40) > crypt += "WEP40 "; > if (details_client->crypt_set & crypt_wep104) > crypt += "WEP104 "; > if (details_client->crypt_set & crypt_tkip) > crypt += "TKIP "; > if (details_client->crypt_set & crypt_wpa) > crypt += "WPA "; > if (details_client->crypt_set & crypt_psk) > crypt += "PSK "; > if (details_client->crypt_set & crypt_aes_ocb) > crypt += "AES-OCB "; > if (details_client->crypt_set & crypt_aes_ccm) > crypt += "AES-CCM "; > if (details_client->crypt_set & crypt_leap) > crypt += "LEAP "; > if (details_client->crypt_set & crypt_ttls) > crypt += "TTLS "; > if (details_client->crypt_set & crypt_tls) > crypt += "TLS "; > if (details_client->crypt_set & crypt_peap) > crypt += "PEAP "; > if (details_client->crypt_set & crypt_isakmp) > crypt += "ISAKMP "; > if (details_client->crypt_set & crypt_pptp) > crypt += "PPTP "; > if (crypt.length() == 0) > crypt = "Unknown"; > snprintf(output, print_width, "Encrypt : %s", crypt.c_str()); > kwin->text.push_back(output); > > if (details_client->crypt_set) { > snprintf(output, print_width, "Decryptd: %s", details_client->decrypted ? "Yes" : "No"); > kwin->text.push_back(output); > } > > snprintf(output, print_width, "IP : %d.%d.%d.%d", > details_client->ipdata.ip[0], details_client->ipdata.ip[1], > details_client->ipdata.ip[2], details_client->ipdata.ip[3]); > kwin->text.push_back(output); > > if (details_client->gps_fixed != -1) { > kwin->text.push_back(""); > > if ((details_client->min_lat == 90) && (details_client->min_lon == 180) && > (details_client->max_lat == -90) && (details_client->max_lon == -180)) { > snprintf(output, print_width, "Min Loc : N/A"); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Loc : N/A"); > kwin->text.push_back(output); > snprintf(output, print_width, "Range : N/A"); > kwin->text.push_back(output); > } > else { > snprintf(output, print_width, "Min Loc : Lat %f Lon %f Alt %f Spd %f", > details_client->min_lat, details_client->min_lon, > metric ? details_client->min_alt / 3.3 : details_client->min_alt, > metric ? details_client->min_spd * 1.6093 : details_client->min_spd); > kwin->text.push_back(output); > snprintf(output, print_width, "Max Loc : Lat %f Lon %f Alt %f Spd %f", > details_client->max_lat, details_client->max_lon, > metric ? details_client->max_alt / 3.3 : details_client->max_alt, > metric ? details_client->max_spd * 1.6093 : details_client->max_spd); > kwin->text.push_back(output); > > double diagdist = GPSD::EarthDistance(details_client->min_lat, > details_client->min_lon, > details_client->max_lat, > details_client->max_lon); > > if (finite(diagdist)) { > if (metric) { > if (diagdist < 1000) > snprintf(output, print_width, "Range : %f meters", diagdist); > else > snprintf(output, print_width, "Range : %f kilometers", diagdist / 1000); > } else { > diagdist *= 3.3; > if (diagdist < 5280) > snprintf(output, print_width, "Range : %f feet", diagdist); > else > snprintf(output, print_width, "Range : %f miles", diagdist / 5280); > } > kwin->text.push_back(output); > } > } > kwin->text.push_back(""); > } > > snprintf(output, print_width, "Packets :"); > kwin->text.push_back(output); > snprintf(output, print_width, " Data : %d", details_client->data_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " Crypt : %d", details_client->crypt_packets); > kwin->text.push_back(output); > snprintf(output, print_width, " Weak : %d", details_client->interesting_packets); > kwin->text.push_back(output); > > > if (details_client->datasize < 1024) > snprintf(output, print_width, "Data : %ldB", details_client->datasize); > else if (details_client->datasize < 1048576) > snprintf(output, print_width, "Data : %ldk (%ldB)", > details_client->datasize/1024, details_client->datasize); > else > snprintf(output, print_width, "Data : %ldM (%ldk, %ldB)", > details_client->datasize/1024/1024, details_client->datasize/1024, > details_client->datasize); > kwin->text.push_back(output); > > > snprintf(output, print_width, "Signal :"); > kwin->text.push_back(output); > > > > > > snprintf(output, print_width, " Power : %d (best %d)", > details_client->signal, details_client->best_signal); > kwin->text.push_back(output); > snprintf(output, print_width, " Noise : %d (best %d)", > details_client->noise, details_client->best_noise); > kwin->text.push_back(output); > > return TextPrinter(in_window); >} > >int PanelFront::ServersPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > if (color) > ((kwin->win)->_attrs = (color_map["title"].pair)); > (wmove(kwin->win,1,3) == (-1) ? (-1) : waddnstr(kwin->win,"Server Port Name Status",-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); ># 3155 "panelfront_display.cc" > int voffset = 2; > int num = 0; > > char line[1024]; > int w = kwin->print_width; > if (w >= 1024) > w = 1023; > > for (int x = (int) kwin->start; x < (int) context_list.size() && > num < kwin->max_display - 1; x++, num++) { > > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > if ((x - kwin->start) == kwin->selected) { > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > memset(line, ' ', 1024); > line[w] = '\0'; > (wmove(kwin->win,num+voffset,1) == (-1) ? (-1) : waddnstr(kwin->win,line,-1)); > } > > char type; > if (context_list[x]->primary == 1) > type = 'P'; > else if (context_list[x]->tagged == 1) > type = '*'; > else > type = ' '; > > if (context_list[x]->client) { > snprintf(line, w, "%c %-25s %-5d %-15s %-12s", > type, context_list[x]->client->FetchHost(), > context_list[x]->client->FetchPort(), > context_list[x]->client->FetchServername().c_str(), > context_list[x]->client->Valid() ? "Connected" : "Disconnected"); > } else { > snprintf(line, w, "- %-25s %-5d %-15s %-12s", > "INVALID", 0, "INVALID", "Invalid"); > } > > (wmove(kwin->win,num+voffset,1) == (-1) ? (-1) : waddnstr(kwin->win,line,-1)); > > if ((x - kwin->start) == kwin->selected) > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > kwin->end = x; > > } > > return 1; >} > >int PanelFront::ServerJoinPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > char targclient[32]; > int print_width = kwin->print_width; > > if (print_width > 31) > print_width = 31; > > (wmove(kwin->win,1,2) == (-1) ? (-1) : waddnstr(kwin->win,"Server (host:port):",-1)); > > > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > memset(targclient, ' ', print_width); > targclient[print_width] = '\0'; > > (wmove(kwin->win,2,2) == (-1) ? (-1) : waddnstr(kwin->win,targclient,-1)); > > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > echo(); > nocbreak(); > nodelay(kwin->win, 0); > > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > (wmove(kwin->win,2,2) == (-1) ? (-1) : wgetnstr(kwin->win,targclient,print_width-1)); > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > noecho(); > cbreak(); > > > if (strlen(targclient) == 0) > return 0; > > char host[1024]; > int port = -1; > char msg[1024]; > > if (sscanf(targclient, "%1023[^:]:%d", host, &port) != 2) { > snprintf(msg, 1024, "Illegal server '%s'.", targclient); > WriteStatus(msg); > return 0; > } > > snprintf(msg, 1024, "Connecting to server '%s:%d'.", host, port); > WriteStatus(msg); > > > TcpClient *netclient = new TcpClient; > netclient->Connect(port, host); > > > AddClient(netclient); > > return 0; > >} > >int PanelFront::IntroPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > kwin->scrollable = 0; > > kwin->text.clear(); > > char output[1024]; > > snprintf(output, 1024, "Kismet-Client %s.%s.%s build %s", > "2006", "04", "R1", > "20050815211952"); > kwin->text.push_back(output); > > int x = 0; > while (1) { > if (KismetIntroText[x] == __null) > break; > kwin->text.push_back(KismetIntroText[x]); > x++; > } > > return TextPrinter(in_window); >} > >int PanelFront::ChanlockPrinter(void *in_window) { > kis_window *kwin = (kis_window *) in_window; > > if (color) > ((kwin->win)->_attrs = (color_map["title"].pair)); > (wmove(kwin->win,1,2) == (-1) ? (-1) : waddnstr(kwin->win,"Card H Ch Server",-1)); > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > int voffset = 2; > int num = 0; > > char line[1024]; > int w = kwin->print_width; > if (w >= 1024) > w = 1023; > > context_cardlist.clear(); > > for (unsigned int x = 0; x < context_list.size(); x++) { > if (context_list[x]->tagged == 0 || context_list[x]->client == __null) > continue; > > vector<TcpClient::card_info *> cl = context_list[x]->client->FetchCardList(); > for (unsigned int y = 0; y < cl.size(); y++) { > cardinfo_context ctx; > ctx.context = context_list[x]; > ctx.cardinfo = cl[y]; > context_cardlist.push_back(ctx); > } > } > > for (int x = (int) kwin->start; x < (int) context_cardlist.size() && > num < kwin->max_display - voffset; x++, num++) { > > if (color) > ((kwin->win)->_attrs = (color_map["text"].pair)); > > if ((x - kwin->start) == kwin->selected) { > wattr_on(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > memset(line, ' ', 1024); > line[w] = '\0'; > (wmove(kwin->win,num+voffset,1) == (-1) ? (-1) : waddnstr(kwin->win,line,-1)); > } > > > snprintf(line, w, " %-10s %c %.3d %-20s", > context_cardlist[x].cardinfo->username.c_str(), > context_cardlist[x].cardinfo->hopping ? 'Y' : 'N', > context_cardlist[x].cardinfo->channel, > context_cardlist[x].context->client->FetchServername().c_str()); > > (wmove(kwin->win,num+voffset,1) == (-1) ? (-1) : waddnstr(kwin->win,line,-1)); > > if ((x - kwin->start) == kwin->selected) > wattr_off(kwin->win, static_cast<attr_t>(((1UL) << ((10) + 8))), __null); > > kwin->end = x; > } > > return 1; >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 147834
: 97168