1 // /usr/libexec/gcc/i486-pc-linux-gnu/4.1.2/cc1plus -quiet -I.. -D_GNU_SOURCE t.c++ -quiet -dumpbase t.c++ -march=pentium-m -auxbase t -O2 -fomit-frame-pointer -o - -frandom-seed=0
6 # 1 "/usr/include/stdio.h" 1 3 4
7 # 28 "/usr/include/stdio.h" 3 4
8 # 1 "/usr/include/features.h" 1 3 4
9 # 322 "/usr/include/features.h" 3 4
10 # 1 "/usr/include/sys/cdefs.h" 1 3 4
11 # 324 "/usr/include/sys/cdefs.h" 3 4
12 # 1 "/usr/include/bits/wordsize.h" 1 3 4
13 # 325 "/usr/include/sys/cdefs.h" 2 3 4
14 # 323 "/usr/include/features.h" 2 3 4
15 # 345 "/usr/include/features.h" 3 4
16 # 1 "/usr/include/gnu/stubs.h" 1 3 4
20 # 1 "/usr/include/bits/wordsize.h" 1 3 4
21 # 5 "/usr/include/gnu/stubs.h" 2 3 4
24 # 1 "/usr/include/gnu/stubs-32.h" 1 3 4
25 # 8 "/usr/include/gnu/stubs.h" 2 3 4
26 # 346 "/usr/include/features.h" 2 3 4
27 # 29 "/usr/include/stdio.h" 2 3 4
33 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
34 # 214 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 3 4
35 typedef unsigned int size_t;
36 # 35 "/usr/include/stdio.h" 2 3 4
38 # 1 "/usr/include/bits/types.h" 1 3 4
39 # 28 "/usr/include/bits/types.h" 3 4
40 # 1 "/usr/include/bits/wordsize.h" 1 3 4
41 # 29 "/usr/include/bits/types.h" 2 3 4
44 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
45 # 32 "/usr/include/bits/types.h" 2 3 4
48 typedef unsigned char __u_char;
49 typedef unsigned short int __u_short;
50 typedef unsigned int __u_int;
51 typedef unsigned long int __u_long;
54 typedef signed char __int8_t;
55 typedef unsigned char __uint8_t;
56 typedef signed short int __int16_t;
57 typedef unsigned short int __uint16_t;
58 typedef signed int __int32_t;
59 typedef unsigned int __uint32_t;
64 __extension__ typedef signed long long int __int64_t;
65 __extension__ typedef unsigned long long int __uint64_t;
73 __extension__ typedef long long int __quad_t;
74 __extension__ typedef unsigned long long int __u_quad_t;
75 # 134 "/usr/include/bits/types.h" 3 4
76 # 1 "/usr/include/bits/typesizes.h" 1 3 4
77 # 135 "/usr/include/bits/types.h" 2 3 4
80 __extension__ typedef __u_quad_t __dev_t;
81 __extension__ typedef unsigned int __uid_t;
82 __extension__ typedef unsigned int __gid_t;
83 __extension__ typedef unsigned long int __ino_t;
84 __extension__ typedef __u_quad_t __ino64_t;
85 __extension__ typedef unsigned int __mode_t;
86 __extension__ typedef unsigned int __nlink_t;
87 __extension__ typedef long int __off_t;
88 __extension__ typedef __quad_t __off64_t;
89 __extension__ typedef int __pid_t;
90 __extension__ typedef struct { int __val[2]; } __fsid_t;
91 __extension__ typedef long int __clock_t;
92 __extension__ typedef unsigned long int __rlim_t;
93 __extension__ typedef __u_quad_t __rlim64_t;
94 __extension__ typedef unsigned int __id_t;
95 __extension__ typedef long int __time_t;
96 __extension__ typedef unsigned int __useconds_t;
97 __extension__ typedef long int __suseconds_t;
99 __extension__ typedef int __daddr_t;
100 __extension__ typedef long int __swblk_t;
101 __extension__ typedef int __key_t;
104 __extension__ typedef int __clockid_t;
107 __extension__ typedef void * __timer_t;
110 __extension__ typedef long int __blksize_t;
115 __extension__ typedef long int __blkcnt_t;
116 __extension__ typedef __quad_t __blkcnt64_t;
119 __extension__ typedef unsigned long int __fsblkcnt_t;
120 __extension__ typedef __u_quad_t __fsblkcnt64_t;
123 __extension__ typedef unsigned long int __fsfilcnt_t;
124 __extension__ typedef __u_quad_t __fsfilcnt64_t;
126 __extension__ typedef int __ssize_t;
130 typedef __off64_t __loff_t;
131 typedef __quad_t *__qaddr_t;
132 typedef char *__caddr_t;
135 __extension__ typedef int __intptr_t;
138 __extension__ typedef unsigned int __socklen_t;
139 # 37 "/usr/include/stdio.h" 2 3 4
140 # 45 "/usr/include/stdio.h" 3 4
145 typedef struct _IO_FILE FILE;
151 # 65 "/usr/include/stdio.h" 3 4
152 typedef struct _IO_FILE __FILE;
153 # 75 "/usr/include/stdio.h" 3 4
154 # 1 "/usr/include/libio.h" 1 3 4
155 # 32 "/usr/include/libio.h" 3 4
156 # 1 "/usr/include/_G_config.h" 1 3 4
157 # 14 "/usr/include/_G_config.h" 3 4
158 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
159 # 355 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 3 4
160 typedef unsigned int wint_t;
161 # 15 "/usr/include/_G_config.h" 2 3 4
162 # 24 "/usr/include/_G_config.h" 3 4
163 # 1 "/usr/include/wchar.h" 1 3 4
164 # 48 "/usr/include/wchar.h" 3 4
165 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
166 # 49 "/usr/include/wchar.h" 2 3 4
168 # 1 "/usr/include/bits/wchar.h" 1 3 4
169 # 51 "/usr/include/wchar.h" 2 3 4
170 # 76 "/usr/include/wchar.h" 3 4
180 # 25 "/usr/include/_G_config.h" 2 3 4
192 # 44 "/usr/include/_G_config.h" 3 4
193 # 1 "/usr/include/gconv.h" 1 3 4
194 # 28 "/usr/include/gconv.h" 3 4
195 # 1 "/usr/include/wchar.h" 1 3 4
196 # 48 "/usr/include/wchar.h" 3 4
197 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
198 # 49 "/usr/include/wchar.h" 2 3 4
199 # 29 "/usr/include/gconv.h" 2 3 4
202 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
203 # 32 "/usr/include/gconv.h" 2 3 4
218 __GCONV_ILLEGAL_INPUT,
219 __GCONV_INCOMPLETE_INPUT,
221 __GCONV_ILLEGAL_DESCRIPTOR,
222 __GCONV_INTERNAL_ERROR
229 __GCONV_IS_LAST = 0x0001,
230 __GCONV_IGNORE_ERRORS = 0x0002
236 struct __gconv_step_data;
237 struct __gconv_loaded_object;
238 struct __gconv_trans_data;
242 typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
243 __const unsigned char **, __const unsigned char *,
244 unsigned char **, size_t *, int, int);
247 typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
250 typedef int (*__gconv_init_fct) (struct __gconv_step *);
251 typedef void (*__gconv_end_fct) (struct __gconv_step *);
255 typedef int (*__gconv_trans_fct) (struct __gconv_step *,
256 struct __gconv_step_data *, void *,
257 __const unsigned char *,
258 __const unsigned char **,
259 __const unsigned char *, unsigned char **,
263 typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
264 __const unsigned char *,
265 unsigned char *, unsigned char *);
268 typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
272 typedef int (*__gconv_trans_init_fct) (void **, const char *);
273 typedef void (*__gconv_trans_end_fct) (void *);
275 struct __gconv_trans_data
278 __gconv_trans_fct __trans_fct;
279 __gconv_trans_context_fct __trans_context_fct;
280 __gconv_trans_end_fct __trans_end_fct;
282 struct __gconv_trans_data *__next;
289 struct __gconv_loaded_object *__shlib_handle;
290 __const char *__modname;
298 __gconv_btowc_fct __btowc_fct;
299 __gconv_init_fct __init_fct;
300 __gconv_end_fct __end_fct;
304 int __min_needed_from;
305 int __max_needed_from;
317 struct __gconv_step_data
319 unsigned char *__outbuf;
320 unsigned char *__outbufend;
328 int __invocation_counter;
334 __mbstate_t *__statep;
339 struct __gconv_trans_data *__trans;
344 typedef struct __gconv_info
347 struct __gconv_step *__steps;
348 __extension__ struct __gconv_step_data __data [];
350 # 45 "/usr/include/_G_config.h" 2 3 4
353 struct __gconv_info __cd;
356 struct __gconv_info __cd;
357 struct __gconv_step_data __data;
361 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
362 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
363 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
364 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
365 # 33 "/usr/include/libio.h" 2 3 4
366 # 53 "/usr/include/libio.h" 3 4
367 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4
368 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h" 3 4
369 typedef __builtin_va_list __gnuc_va_list;
370 # 54 "/usr/include/libio.h" 2 3 4
371 # 167 "/usr/include/libio.h" 3 4
372 struct _IO_jump_t; struct _IO_FILE;
373 # 177 "/usr/include/libio.h" 3 4
374 typedef void _IO_lock_t;
381 struct _IO_marker *_next;
382 struct _IO_FILE *_sbuf;
387 # 200 "/usr/include/libio.h" 3 4
391 enum __codecvt_result
398 # 268 "/usr/include/libio.h" 3 4
408 char* _IO_write_base;
415 char *_IO_backup_base;
418 struct _IO_marker *_markers;
420 struct _IO_FILE *_chain;
432 unsigned short _cur_column;
433 signed char _vtable_offset;
439 # 316 "/usr/include/libio.h" 3 4
441 # 325 "/usr/include/libio.h" 3 4
450 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
458 struct _IO_FILE_plus;
460 extern struct _IO_FILE_plus _IO_2_1_stdin_;
461 extern struct _IO_FILE_plus _IO_2_1_stdout_;
462 extern struct _IO_FILE_plus _IO_2_1_stderr_;
463 # 361 "/usr/include/libio.h" 3 4
464 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
472 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
481 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
484 typedef int __io_close_fn (void *__cookie);
489 typedef __io_read_fn cookie_read_function_t;
490 typedef __io_write_fn cookie_write_function_t;
491 typedef __io_seek_fn cookie_seek_function_t;
492 typedef __io_close_fn cookie_close_function_t;
498 __io_write_fn *write;
500 __io_close_fn *close;
501 } _IO_cookie_io_functions_t;
502 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
504 struct _IO_cookie_file;
507 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
508 void *__cookie, _IO_cookie_io_functions_t __fns);
516 extern int __underflow (_IO_FILE *);
517 extern int __uflow (_IO_FILE *);
518 extern int __overflow (_IO_FILE *, int);
519 extern wint_t __wunderflow (_IO_FILE *);
520 extern wint_t __wuflow (_IO_FILE *);
521 extern wint_t __woverflow (_IO_FILE *, wint_t);
522 # 451 "/usr/include/libio.h" 3 4
523 extern int _IO_getc (_IO_FILE *__fp);
524 extern int _IO_putc (int __c, _IO_FILE *__fp);
525 extern int _IO_feof (_IO_FILE *__fp) throw ();
526 extern int _IO_ferror (_IO_FILE *__fp) throw ();
528 extern int _IO_peekc_locked (_IO_FILE *__fp);
534 extern void _IO_flockfile (_IO_FILE *) throw ();
535 extern void _IO_funlockfile (_IO_FILE *) throw ();
536 extern int _IO_ftrylockfile (_IO_FILE *) throw ();
537 # 481 "/usr/include/libio.h" 3 4
538 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
539 __gnuc_va_list, int *__restrict);
540 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
542 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
543 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
545 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
546 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
548 extern void _IO_free_backup_area (_IO_FILE *) throw ();
549 # 543 "/usr/include/libio.h" 3 4
551 # 76 "/usr/include/stdio.h" 2 3 4
556 typedef __gnuc_va_list va_list;
557 # 89 "/usr/include/stdio.h" 3 4
560 typedef _G_fpos_t fpos_t;
566 typedef _G_fpos64_t fpos64_t;
567 # 141 "/usr/include/stdio.h" 3 4
568 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
569 # 142 "/usr/include/stdio.h" 2 3 4
573 extern struct _IO_FILE *stdin;
574 extern struct _IO_FILE *stdout;
575 extern struct _IO_FILE *stderr;
583 extern int remove (__const char *__filename) throw ();
585 extern int rename (__const char *__old, __const char *__new) throw ();
590 extern int renameat (int __oldfd, __const char *__old, int __newfd,
591 __const char *__new) throw ();
600 extern FILE *tmpfile (void) ;
601 # 182 "/usr/include/stdio.h" 3 4
602 extern FILE *tmpfile64 (void) ;
606 extern char *tmpnam (char *__s) throw () ;
612 extern char *tmpnam_r (char *__s) throw () ;
613 # 204 "/usr/include/stdio.h" 3 4
614 extern char *tempnam (__const char *__dir, __const char *__pfx)
615 throw () __attribute__ ((__malloc__)) ;
624 extern int fclose (FILE *__stream);
629 extern int fflush (FILE *__stream);
631 # 229 "/usr/include/stdio.h" 3 4
632 extern int fflush_unlocked (FILE *__stream);
633 # 239 "/usr/include/stdio.h" 3 4
634 extern int fcloseall (void);
644 extern FILE *fopen (__const char *__restrict __filename,
645 __const char *__restrict __modes) ;
650 extern FILE *freopen (__const char *__restrict __filename,
651 __const char *__restrict __modes,
652 FILE *__restrict __stream) ;
653 # 272 "/usr/include/stdio.h" 3 4
656 extern FILE *fopen64 (__const char *__restrict __filename,
657 __const char *__restrict __modes) ;
658 extern FILE *freopen64 (__const char *__restrict __filename,
659 __const char *__restrict __modes,
660 FILE *__restrict __stream) ;
665 extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
671 extern FILE *fopencookie (void *__restrict __magic_cookie,
672 __const char *__restrict __modes,
673 _IO_cookie_io_functions_t __io_funcs) throw () ;
676 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
682 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
689 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
693 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
694 int __modes, size_t __n) throw ();
700 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
701 size_t __size) throw ();
704 extern void setlinebuf (FILE *__stream) throw ();
713 extern int fprintf (FILE *__restrict __stream,
714 __const char *__restrict __format, ...);
719 extern int printf (__const char *__restrict __format, ...);
721 extern int sprintf (char *__restrict __s,
722 __const char *__restrict __format, ...) throw ();
728 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
729 __gnuc_va_list __arg);
734 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
736 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
737 __gnuc_va_list __arg) throw ();
743 extern int snprintf (char *__restrict __s, size_t __maxlen,
744 __const char *__restrict __format, ...)
745 throw () __attribute__ ((__format__ (__printf__, 3, 4)));
747 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
748 __const char *__restrict __format, __gnuc_va_list __arg)
749 throw () __attribute__ ((__format__ (__printf__, 3, 0)));
756 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
757 __gnuc_va_list __arg)
758 throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
759 extern int __asprintf (char **__restrict __ptr,
760 __const char *__restrict __fmt, ...)
761 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
762 extern int asprintf (char **__restrict __ptr,
763 __const char *__restrict __fmt, ...)
764 throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
772 extern int vdprintf (int __fd, __const char *__restrict __fmt,
773 __gnuc_va_list __arg)
774 __attribute__ ((__format__ (__printf__, 2, 0)));
775 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
776 __attribute__ ((__format__ (__printf__, 2, 3)));
785 extern int fscanf (FILE *__restrict __stream,
786 __const char *__restrict __format, ...) ;
791 extern int scanf (__const char *__restrict __format, ...) ;
793 extern int sscanf (__const char *__restrict __s,
794 __const char *__restrict __format, ...) throw ();
803 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
804 __gnuc_va_list __arg)
805 __attribute__ ((__format__ (__scanf__, 2, 0))) ;
811 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
812 __attribute__ ((__format__ (__scanf__, 1, 0))) ;
815 extern int vsscanf (__const char *__restrict __s,
816 __const char *__restrict __format, __gnuc_va_list __arg)
817 throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
827 extern int fgetc (FILE *__stream);
828 extern int getc (FILE *__stream);
834 extern int getchar (void);
836 # 464 "/usr/include/stdio.h" 3 4
837 extern int getc_unlocked (FILE *__stream);
838 extern int getchar_unlocked (void);
839 # 475 "/usr/include/stdio.h" 3 4
840 extern int fgetc_unlocked (FILE *__stream);
852 extern int fputc (int __c, FILE *__stream);
853 extern int putc (int __c, FILE *__stream);
859 extern int putchar (int __c);
861 # 508 "/usr/include/stdio.h" 3 4
862 extern int fputc_unlocked (int __c, FILE *__stream);
870 extern int putc_unlocked (int __c, FILE *__stream);
871 extern int putchar_unlocked (int __c);
878 extern int getw (FILE *__stream);
881 extern int putw (int __w, FILE *__stream);
890 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
898 extern char *gets (char *__s) ;
900 # 554 "/usr/include/stdio.h" 3 4
901 extern char *fgets_unlocked (char *__restrict __s, int __n,
902 FILE *__restrict __stream) ;
903 # 570 "/usr/include/stdio.h" 3 4
904 extern __ssize_t __getdelim (char **__restrict __lineptr,
905 size_t *__restrict __n, int __delimiter,
906 FILE *__restrict __stream) ;
907 extern __ssize_t getdelim (char **__restrict __lineptr,
908 size_t *__restrict __n, int __delimiter,
909 FILE *__restrict __stream) ;
917 extern __ssize_t getline (char **__restrict __lineptr,
918 size_t *__restrict __n,
919 FILE *__restrict __stream) ;
928 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
934 extern int puts (__const char *__s);
941 extern int ungetc (int __c, FILE *__stream);
948 extern size_t fread (void *__restrict __ptr, size_t __size,
949 size_t __n, FILE *__restrict __stream) ;
954 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
955 size_t __n, FILE *__restrict __s) ;
957 # 631 "/usr/include/stdio.h" 3 4
958 extern int fputs_unlocked (__const char *__restrict __s,
959 FILE *__restrict __stream);
960 # 642 "/usr/include/stdio.h" 3 4
961 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
962 size_t __n, FILE *__restrict __stream) ;
963 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
964 size_t __n, FILE *__restrict __stream) ;
973 extern int fseek (FILE *__stream, long int __off, int __whence);
978 extern long int ftell (FILE *__stream) ;
983 extern void rewind (FILE *__stream);
985 # 678 "/usr/include/stdio.h" 3 4
986 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
991 extern __off_t ftello (FILE *__stream) ;
992 # 697 "/usr/include/stdio.h" 3 4
999 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1004 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1005 # 720 "/usr/include/stdio.h" 3 4
1009 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
1010 extern __off64_t ftello64 (FILE *__stream) ;
1011 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
1012 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
1017 extern void clearerr (FILE *__stream) throw ();
1019 extern int feof (FILE *__stream) throw () ;
1021 extern int ferror (FILE *__stream) throw () ;
1026 extern void clearerr_unlocked (FILE *__stream) throw ();
1027 extern int feof_unlocked (FILE *__stream) throw () ;
1028 extern int ferror_unlocked (FILE *__stream) throw () ;
1037 extern void perror (__const char *__s);
1044 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
1045 # 27 "/usr/include/bits/sys_errlist.h" 3 4
1046 extern int sys_nerr;
1047 extern __const char *__const sys_errlist[];
1050 extern int _sys_nerr;
1051 extern __const char *__const _sys_errlist[];
1052 # 759 "/usr/include/stdio.h" 2 3 4
1057 extern int fileno (FILE *__stream) throw () ;
1062 extern int fileno_unlocked (FILE *__stream) throw () ;
1063 # 778 "/usr/include/stdio.h" 3 4
1064 extern FILE *popen (__const char *__command, __const char *__modes) ;
1070 extern int pclose (FILE *__stream);
1076 extern char *ctermid (char *__s) throw ();
1082 extern char *cuserid (char *__s);
1090 extern int obstack_printf (struct obstack *__restrict __obstack,
1091 __const char *__restrict __format, ...)
1092 throw () __attribute__ ((__format__ (__printf__, 2, 3)));
1093 extern int obstack_vprintf (struct obstack *__restrict __obstack,
1094 __const char *__restrict __format,
1095 __gnuc_va_list __args)
1096 throw () __attribute__ ((__format__ (__printf__, 2, 0)));
1104 extern void flockfile (FILE *__stream) throw ();
1108 extern int ftrylockfile (FILE *__stream) throw () ;
1111 extern void funlockfile (FILE *__stream) throw ();
1112 # 839 "/usr/include/stdio.h" 3 4
1113 # 1 "/usr/include/bits/stdio.h" 1 3 4
1114 # 33 "/usr/include/bits/stdio.h" 3 4
1116 vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
1118 return vfprintf (stdout, __fmt, __arg);
1125 return _IO_getc (stdin);
1132 fgetc_unlocked (FILE *__fp)
1134 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1142 getc_unlocked (FILE *__fp)
1144 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1149 getchar_unlocked (void)
1151 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
1160 return _IO_putc (__c, stdout);
1167 fputc_unlocked (int __c, FILE *__stream)
1169 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1177 putc_unlocked (int __c, FILE *__stream)
1179 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
1184 putchar_unlocked (int __c)
1186 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
1194 getline (char **__lineptr, size_t *__n, FILE *__stream)
1196 return __getdelim (__lineptr, __n, '\n', __stream);
1204 feof_unlocked (FILE *__stream) throw ()
1206 return (((__stream)->_flags & 0x10) != 0);
1211 ferror_unlocked (FILE *__stream) throw ()
1213 return (((__stream)->_flags & 0x20) != 0);
1215 # 840 "/usr/include/stdio.h" 2 3 4
1216 # 848 "/usr/include/stdio.h" 3 4
1220 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 1 3
1221 # 63 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 3
1223 # 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 3
1224 #pragma GCC visibility push(default)
1226 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 1 3
1227 # 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
1228 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 1 3
1229 # 35 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 3
1230 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/os_defines.h" 1 3
1231 # 36 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 2 3
1234 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/cpu_defines.h" 1 3
1235 # 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++config.h" 2 3
1240 namespace __gnu_debug_def { }
1242 namespace __gnu_debug
1244 using namespace __gnu_debug_def;
1246 # 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
1247 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 1 3
1248 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1250 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1251 #pragma GCC visibility push(default)
1253 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 1 3
1254 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 3
1256 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 3
1257 #pragma GCC visibility push(default)
1259 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
1260 # 152 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 3 4
1261 typedef int ptrdiff_t;
1262 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 2 3
1270 #pragma GCC visibility pop
1271 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 2 3
1273 # 1 "/usr/include/string.h" 1 3 4
1274 # 28 "/usr/include/string.h" 3 4
1280 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
1281 # 34 "/usr/include/string.h" 2 3 4
1286 extern void *memcpy (void *__restrict __dest,
1287 __const void *__restrict __src, size_t __n)
1288 throw () __attribute__ ((__nonnull__ (1, 2)));
1291 extern void *memmove (void *__dest, __const void *__src, size_t __n)
1292 throw () __attribute__ ((__nonnull__ (1, 2)));
1299 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
1300 int __c, size_t __n)
1301 throw () __attribute__ ((__nonnull__ (1, 2)));
1307 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1310 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
1311 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1314 extern void *memchr (__const void *__s, int __c, size_t __n)
1315 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1321 extern void *rawmemchr (__const void *__s, int __c)
1322 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1325 extern void *memrchr (__const void *__s, int __c, size_t __n)
1326 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1332 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
1333 throw () __attribute__ ((__nonnull__ (1, 2)));
1335 extern char *strncpy (char *__restrict __dest,
1336 __const char *__restrict __src, size_t __n)
1337 throw () __attribute__ ((__nonnull__ (1, 2)));
1340 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
1341 throw () __attribute__ ((__nonnull__ (1, 2)));
1343 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
1344 size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
1347 extern int strcmp (__const char *__s1, __const char *__s2)
1348 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1350 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
1351 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1354 extern int strcoll (__const char *__s1, __const char *__s2)
1355 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1357 extern size_t strxfrm (char *__restrict __dest,
1358 __const char *__restrict __src, size_t __n)
1359 throw () __attribute__ ((__nonnull__ (2)));
1366 # 1 "/usr/include/xlocale.h" 1 3 4
1367 # 28 "/usr/include/xlocale.h" 3 4
1368 typedef struct __locale_struct
1371 struct locale_data *__locales[13];
1374 const unsigned short int *__ctype_b;
1375 const int *__ctype_tolower;
1376 const int *__ctype_toupper;
1379 const char *__names[13];
1381 # 119 "/usr/include/string.h" 2 3 4
1384 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
1385 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1387 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
1388 __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
1393 extern char *strdup (__const char *__s)
1394 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1401 extern char *strndup (__const char *__string, size_t __n)
1402 throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1403 # 165 "/usr/include/string.h" 3 4
1406 extern char *strchr (__const char *__s, int __c)
1407 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1409 extern char *strrchr (__const char *__s, int __c)
1410 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1416 extern char *strchrnul (__const char *__s, int __c)
1417 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1423 extern size_t strcspn (__const char *__s, __const char *__reject)
1424 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1427 extern size_t strspn (__const char *__s, __const char *__accept)
1428 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1430 extern char *strpbrk (__const char *__s, __const char *__accept)
1431 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1433 extern char *strstr (__const char *__haystack, __const char *__needle)
1434 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1438 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
1439 throw () __attribute__ ((__nonnull__ (2)));
1444 extern char *__strtok_r (char *__restrict __s,
1445 __const char *__restrict __delim,
1446 char **__restrict __save_ptr)
1447 throw () __attribute__ ((__nonnull__ (2, 3)));
1449 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
1450 char **__restrict __save_ptr)
1451 throw () __attribute__ ((__nonnull__ (2, 3)));
1456 extern char *strcasestr (__const char *__haystack, __const char *__needle)
1457 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1464 extern void *memmem (__const void *__haystack, size_t __haystacklen,
1465 __const void *__needle, size_t __needlelen)
1466 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
1470 extern void *__mempcpy (void *__restrict __dest,
1471 __const void *__restrict __src, size_t __n)
1472 throw () __attribute__ ((__nonnull__ (1, 2)));
1473 extern void *mempcpy (void *__restrict __dest,
1474 __const void *__restrict __src, size_t __n)
1475 throw () __attribute__ ((__nonnull__ (1, 2)));
1481 extern size_t strlen (__const char *__s)
1482 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1488 extern size_t strnlen (__const char *__string, size_t __maxlen)
1489 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1495 extern char *strerror (int __errnum) throw ();
1497 # 281 "/usr/include/string.h" 3 4
1498 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
1499 throw () __attribute__ ((__nonnull__ (2)));
1505 extern char *strerror_l (int __errnum, __locale_t __l) throw ();
1511 extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1515 extern void bcopy (__const void *__src, void *__dest, size_t __n)
1516 throw () __attribute__ ((__nonnull__ (1, 2)));
1519 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1522 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
1523 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1526 extern char *index (__const char *__s, int __c)
1527 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1530 extern char *rindex (__const char *__s, int __c)
1531 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1535 extern int ffs (int __i) throw () __attribute__ ((__const__));
1540 extern int ffsl (long int __l) throw () __attribute__ ((__const__));
1542 __extension__ extern int ffsll (long long int __ll)
1543 throw () __attribute__ ((__const__));
1548 extern int strcasecmp (__const char *__s1, __const char *__s2)
1549 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1552 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
1553 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1559 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
1561 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1563 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
1564 size_t __n, __locale_t __loc)
1565 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
1571 extern char *strsep (char **__restrict __stringp,
1572 __const char *__restrict __delim)
1573 throw () __attribute__ ((__nonnull__ (1, 2)));
1578 extern int strverscmp (__const char *__s1, __const char *__s2)
1579 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1582 extern char *strsignal (int __sig) throw ();
1585 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
1586 throw () __attribute__ ((__nonnull__ (1, 2)));
1587 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
1588 throw () __attribute__ ((__nonnull__ (1, 2)));
1592 extern char *__stpncpy (char *__restrict __dest,
1593 __const char *__restrict __src, size_t __n)
1594 throw () __attribute__ ((__nonnull__ (1, 2)));
1595 extern char *stpncpy (char *__restrict __dest,
1596 __const char *__restrict __src, size_t __n)
1597 throw () __attribute__ ((__nonnull__ (1, 2)));
1600 extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
1603 extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1610 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
1611 # 432 "/usr/include/string.h" 3 4
1613 # 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 2 3
1614 # 79 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1638 memchr(void* __p, int __c, size_t __n)
1639 { return memchr(const_cast<const void*>(__p), __c, __n); }
1644 strchr(char* __s1, int __n)
1645 { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
1650 strpbrk(char* __s1, const char* __s2)
1651 { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
1656 strrchr(char* __s1, int __n)
1657 { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
1662 strstr(char* __s1, const char* __s2)
1663 { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
1666 #pragma GCC visibility pop
1667 # 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
1668 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 1 3
1669 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 3
1671 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 3
1672 #pragma GCC visibility push(default)
1674 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4
1675 # 11 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 3 4
1676 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/syslimits.h" 1 3 4
1683 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 1 3 4
1684 # 122 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 3 4
1685 # 1 "/usr/include/limits.h" 1 3 4
1686 # 145 "/usr/include/limits.h" 3 4
1687 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
1688 # 153 "/usr/include/bits/posix1_lim.h" 3 4
1689 # 1 "/usr/include/bits/local_lim.h" 1 3 4
1690 # 36 "/usr/include/bits/local_lim.h" 3 4
1691 # 1 "/usr/include/linux/limits.h" 1 3 4
1692 # 37 "/usr/include/bits/local_lim.h" 2 3 4
1693 # 154 "/usr/include/bits/posix1_lim.h" 2 3 4
1694 # 146 "/usr/include/limits.h" 2 3 4
1698 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
1699 # 150 "/usr/include/limits.h" 2 3 4
1703 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
1704 # 34 "/usr/include/bits/xopen_lim.h" 3 4
1705 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
1706 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4
1707 # 154 "/usr/include/limits.h" 2 3 4
1708 # 123 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4
1709 # 8 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/syslimits.h" 2 3 4
1710 # 12 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/limits.h" 2 3 4
1711 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 2 3
1713 #pragma GCC visibility pop
1714 # 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
1715 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 1 3
1716 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
1718 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
1719 #pragma GCC visibility push(default)
1720 # 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
1721 # 1 "/usr/include/stdlib.h" 1 3 4
1722 # 33 "/usr/include/stdlib.h" 3 4
1723 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
1724 # 34 "/usr/include/stdlib.h" 2 3 4
1733 # 1 "/usr/include/bits/waitflags.h" 1 3 4
1734 # 43 "/usr/include/stdlib.h" 2 3 4
1735 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
1736 # 65 "/usr/include/bits/waitstatus.h" 3 4
1737 # 1 "/usr/include/endian.h" 1 3 4
1738 # 37 "/usr/include/endian.h" 3 4
1739 # 1 "/usr/include/bits/endian.h" 1 3 4
1740 # 38 "/usr/include/endian.h" 2 3 4
1741 # 66 "/usr/include/bits/waitstatus.h" 2 3 4
1749 unsigned int __w_termsig:7;
1750 unsigned int __w_coredump:1;
1751 unsigned int __w_retcode:8;
1760 } __wait_terminated;
1764 unsigned int __w_stopval:8;
1765 unsigned int __w_stopsig:8;
1775 # 44 "/usr/include/stdlib.h" 2 3 4
1776 # 96 "/usr/include/stdlib.h" 3 4
1799 __extension__ typedef struct
1806 # 140 "/usr/include/stdlib.h" 3 4
1807 extern size_t __ctype_get_mb_cur_max (void) throw () ;
1812 extern double atof (__const char *__nptr)
1813 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1815 extern int atoi (__const char *__nptr)
1816 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1818 extern long int atol (__const char *__nptr)
1819 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1825 __extension__ extern long long int atoll (__const char *__nptr)
1826 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1832 extern double strtod (__const char *__restrict __nptr,
1833 char **__restrict __endptr)
1834 throw () __attribute__ ((__nonnull__ (1))) ;
1840 extern float strtof (__const char *__restrict __nptr,
1841 char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
1843 extern long double strtold (__const char *__restrict __nptr,
1844 char **__restrict __endptr)
1845 throw () __attribute__ ((__nonnull__ (1))) ;
1851 extern long int strtol (__const char *__restrict __nptr,
1852 char **__restrict __endptr, int __base)
1853 throw () __attribute__ ((__nonnull__ (1))) ;
1855 extern unsigned long int strtoul (__const char *__restrict __nptr,
1856 char **__restrict __endptr, int __base)
1857 throw () __attribute__ ((__nonnull__ (1))) ;
1863 extern long long int strtoq (__const char *__restrict __nptr,
1864 char **__restrict __endptr, int __base)
1865 throw () __attribute__ ((__nonnull__ (1))) ;
1868 extern unsigned long long int strtouq (__const char *__restrict __nptr,
1869 char **__restrict __endptr, int __base)
1870 throw () __attribute__ ((__nonnull__ (1))) ;
1877 extern long long int strtoll (__const char *__restrict __nptr,
1878 char **__restrict __endptr, int __base)
1879 throw () __attribute__ ((__nonnull__ (1))) ;
1882 extern unsigned long long int strtoull (__const char *__restrict __nptr,
1883 char **__restrict __endptr, int __base)
1884 throw () __attribute__ ((__nonnull__ (1))) ;
1886 # 240 "/usr/include/stdlib.h" 3 4
1887 extern long int strtol_l (__const char *__restrict __nptr,
1888 char **__restrict __endptr, int __base,
1889 __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ;
1891 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
1892 char **__restrict __endptr,
1893 int __base, __locale_t __loc)
1894 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1897 extern long long int strtoll_l (__const char *__restrict __nptr,
1898 char **__restrict __endptr, int __base,
1900 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1903 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
1904 char **__restrict __endptr,
1905 int __base, __locale_t __loc)
1906 throw () __attribute__ ((__nonnull__ (1, 4))) ;
1908 extern double strtod_l (__const char *__restrict __nptr,
1909 char **__restrict __endptr, __locale_t __loc)
1910 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1912 extern float strtof_l (__const char *__restrict __nptr,
1913 char **__restrict __endptr, __locale_t __loc)
1914 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1916 extern long double strtold_l (__const char *__restrict __nptr,
1917 char **__restrict __endptr,
1919 throw () __attribute__ ((__nonnull__ (1, 3))) ;
1926 extern double __strtod_internal (__const char *__restrict __nptr,
1927 char **__restrict __endptr, int __group)
1928 throw () __attribute__ ((__nonnull__ (1))) ;
1929 extern float __strtof_internal (__const char *__restrict __nptr,
1930 char **__restrict __endptr, int __group)
1931 throw () __attribute__ ((__nonnull__ (1))) ;
1932 extern long double __strtold_internal (__const char *__restrict __nptr,
1933 char **__restrict __endptr,
1935 throw () __attribute__ ((__nonnull__ (1))) ;
1937 extern long int __strtol_internal (__const char *__restrict __nptr,
1938 char **__restrict __endptr,
1939 int __base, int __group)
1940 throw () __attribute__ ((__nonnull__ (1))) ;
1944 extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
1945 char **__restrict __endptr,
1946 int __base, int __group)
1947 throw () __attribute__ ((__nonnull__ (1))) ;
1953 extern long long int __strtoll_internal (__const char *__restrict __nptr,
1954 char **__restrict __endptr,
1955 int __base, int __group)
1956 throw () __attribute__ ((__nonnull__ (1))) ;
1961 extern unsigned long long int __strtoull_internal (__const char *
1963 char **__restrict __endptr,
1964 int __base, int __group)
1965 throw () __attribute__ ((__nonnull__ (1))) ;
1974 extern __inline double
1975 strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1977 return __strtod_internal (__nptr, __endptr, 0);
1979 extern __inline long int
1980 strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1983 return __strtol_internal (__nptr, __endptr, __base, 0);
1985 extern __inline unsigned long int
1986 strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1989 return __strtoul_internal (__nptr, __endptr, __base, 0);
1995 extern __inline float
1996 strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1998 return __strtof_internal (__nptr, __endptr, 0);
2001 extern __inline long double
2002 strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
2004 return __strtold_internal (__nptr, __endptr, 0);
2011 __extension__ extern __inline long long int
2012 strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2015 return __strtoll_internal (__nptr, __endptr, __base, 0);
2017 __extension__ extern __inline unsigned long long int
2018 strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2021 return __strtoull_internal (__nptr, __endptr, __base, 0);
2027 __extension__ extern __inline long long int
2028 strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2031 return __strtoll_internal (__nptr, __endptr, __base, 0);
2033 __extension__ extern __inline unsigned long long int
2034 strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw ()
2037 return __strtoull_internal (__nptr, __endptr, __base, 0);
2043 extern __inline double
2044 atof (__const char *__nptr) throw ()
2046 return strtod (__nptr, (char **) __null);
2049 atoi (__const char *__nptr) throw ()
2051 return (int) strtol (__nptr, (char **) __null, 10);
2053 extern __inline long int
2054 atol (__const char *__nptr) throw ()
2056 return strtol (__nptr, (char **) __null, 10);
2062 __extension__ extern __inline long long int
2063 atoll (__const char *__nptr) throw ()
2065 return strtoll (__nptr, (char **) __null, 10);
2068 # 429 "/usr/include/stdlib.h" 3 4
2069 extern char *l64a (long int __n) throw () ;
2072 extern long int a64l (__const char *__s)
2073 throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
2078 # 1 "/usr/include/sys/types.h" 1 3 4
2079 # 29 "/usr/include/sys/types.h" 3 4
2086 typedef __u_char u_char;
2087 typedef __u_short u_short;
2088 typedef __u_int u_int;
2089 typedef __u_long u_long;
2090 typedef __quad_t quad_t;
2091 typedef __u_quad_t u_quad_t;
2092 typedef __fsid_t fsid_t;
2097 typedef __loff_t loff_t;
2101 typedef __ino_t ino_t;
2108 typedef __ino64_t ino64_t;
2113 typedef __dev_t dev_t;
2118 typedef __gid_t gid_t;
2123 typedef __mode_t mode_t;
2128 typedef __nlink_t nlink_t;
2133 typedef __uid_t uid_t;
2139 typedef __off_t off_t;
2146 typedef __off64_t off64_t;
2151 typedef __pid_t pid_t;
2156 typedef __id_t id_t;
2161 typedef __ssize_t ssize_t;
2167 typedef __daddr_t daddr_t;
2168 typedef __caddr_t caddr_t;
2174 typedef __key_t key_t;
2175 # 133 "/usr/include/sys/types.h" 3 4
2176 # 1 "/usr/include/time.h" 1 3 4
2177 # 59 "/usr/include/time.h" 3 4
2180 typedef __clock_t clock_t;
2184 # 75 "/usr/include/time.h" 3 4
2187 typedef __time_t time_t;
2191 # 93 "/usr/include/time.h" 3 4
2192 typedef __clockid_t clockid_t;
2193 # 105 "/usr/include/time.h" 3 4
2194 typedef __timer_t timer_t;
2195 # 134 "/usr/include/sys/types.h" 2 3 4
2199 typedef __useconds_t useconds_t;
2203 typedef __suseconds_t suseconds_t;
2209 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
2210 # 148 "/usr/include/sys/types.h" 2 3 4
2214 typedef unsigned long int ulong;
2215 typedef unsigned short int ushort;
2216 typedef unsigned int uint;
2217 # 195 "/usr/include/sys/types.h" 3 4
2218 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
2219 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
2220 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
2221 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
2224 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
2225 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
2226 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
2227 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
2229 typedef int register_t __attribute__ ((__mode__ (__word__)));
2230 # 220 "/usr/include/sys/types.h" 3 4
2231 # 1 "/usr/include/sys/select.h" 1 3 4
2232 # 31 "/usr/include/sys/select.h" 3 4
2233 # 1 "/usr/include/bits/select.h" 1 3 4
2234 # 32 "/usr/include/sys/select.h" 2 3 4
2237 # 1 "/usr/include/bits/sigset.h" 1 3 4
2238 # 24 "/usr/include/bits/sigset.h" 3 4
2239 typedef int __sig_atomic_t;
2246 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
2248 # 35 "/usr/include/sys/select.h" 2 3 4
2252 typedef __sigset_t sigset_t;
2258 # 1 "/usr/include/time.h" 1 3 4
2259 # 121 "/usr/include/time.h" 3 4
2265 # 45 "/usr/include/sys/select.h" 2 3 4
2267 # 1 "/usr/include/bits/time.h" 1 3 4
2268 # 69 "/usr/include/bits/time.h" 3 4
2272 __suseconds_t tv_usec;
2274 # 47 "/usr/include/sys/select.h" 2 3 4
2275 # 55 "/usr/include/sys/select.h" 3 4
2276 typedef long int __fd_mask;
2277 # 67 "/usr/include/sys/select.h" 3 4
2283 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
2296 typedef __fd_mask fd_mask;
2297 # 99 "/usr/include/sys/select.h" 3 4
2299 # 109 "/usr/include/sys/select.h" 3 4
2300 extern int select (int __nfds, fd_set *__restrict __readfds,
2301 fd_set *__restrict __writefds,
2302 fd_set *__restrict __exceptfds,
2303 struct timeval *__restrict __timeout);
2304 # 121 "/usr/include/sys/select.h" 3 4
2305 extern int pselect (int __nfds, fd_set *__restrict __readfds,
2306 fd_set *__restrict __writefds,
2307 fd_set *__restrict __exceptfds,
2308 const struct timespec *__restrict __timeout,
2309 const __sigset_t *__restrict __sigmask);
2313 # 221 "/usr/include/sys/types.h" 2 3 4
2316 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
2317 # 30 "/usr/include/sys/sysmacros.h" 3 4
2319 extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
2322 extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
2325 extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
2326 unsigned int __minor)
2330 __extension__ extern __inline unsigned int
2331 gnu_dev_major (unsigned long long int __dev) throw ()
2333 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
2336 __extension__ extern __inline unsigned int
2337 gnu_dev_minor (unsigned long long int __dev) throw ()
2339 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
2342 __extension__ extern __inline unsigned long long int
2343 gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
2345 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
2346 | (((unsigned long long int) (__minor & ~0xff)) << 12)
2347 | (((unsigned long long int) (__major & ~0xfff)) << 32));
2349 # 224 "/usr/include/sys/types.h" 2 3 4
2354 typedef __blksize_t blksize_t;
2361 typedef __blkcnt_t blkcnt_t;
2365 typedef __fsblkcnt_t fsblkcnt_t;
2369 typedef __fsfilcnt_t fsfilcnt_t;
2370 # 262 "/usr/include/sys/types.h" 3 4
2371 typedef __blkcnt64_t blkcnt64_t;
2372 typedef __fsblkcnt64_t fsblkcnt64_t;
2373 typedef __fsfilcnt64_t fsfilcnt64_t;
2379 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
2380 # 36 "/usr/include/bits/pthreadtypes.h" 3 4
2381 typedef unsigned long int pthread_t;
2391 typedef struct __pthread_internal_slist
2393 struct __pthread_internal_slist *__next;
2394 } __pthread_slist_t;
2401 struct __pthread_mutex_s
2404 unsigned int __count;
2409 unsigned int __nusers;
2413 __pthread_slist_t __list;
2424 } pthread_mutexattr_t;
2434 unsigned int __futex;
2435 __extension__ unsigned long long int __total_seq;
2436 __extension__ unsigned long long int __wakeup_seq;
2437 __extension__ unsigned long long int __woken_seq;
2439 unsigned int __nwaiters;
2440 unsigned int __broadcast_seq;
2443 __extension__ long long int __align;
2450 } pthread_condattr_t;
2454 typedef unsigned int pthread_key_t;
2458 typedef int pthread_once_t;
2469 unsigned int __nr_readers;
2470 unsigned int __readers_wakeup;
2471 unsigned int __writer_wakeup;
2472 unsigned int __nr_readers_queued;
2473 unsigned int __nr_writers_queued;
2476 unsigned int __flags;
2487 } pthread_rwlockattr_t;
2493 typedef volatile int pthread_spinlock_t;
2502 } pthread_barrier_t;
2508 } pthread_barrierattr_t;
2509 # 271 "/usr/include/sys/types.h" 2 3 4
2513 # 439 "/usr/include/stdlib.h" 2 3 4
2520 extern long int random (void) throw ();
2523 extern void srandom (unsigned int __seed) throw ();
2529 extern char *initstate (unsigned int __seed, char *__statebuf,
2530 size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
2534 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
2553 extern int random_r (struct random_data *__restrict __buf,
2554 int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2556 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
2557 throw () __attribute__ ((__nonnull__ (2)));
2559 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
2561 struct random_data *__restrict __buf)
2562 throw () __attribute__ ((__nonnull__ (2, 4)));
2564 extern int setstate_r (char *__restrict __statebuf,
2565 struct random_data *__restrict __buf)
2566 throw () __attribute__ ((__nonnull__ (1, 2)));
2573 extern int rand (void) throw ();
2575 extern void srand (unsigned int __seed) throw ();
2580 extern int rand_r (unsigned int *__seed) throw ();
2588 extern double drand48 (void) throw ();
2589 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
2592 extern long int lrand48 (void) throw ();
2593 extern long int nrand48 (unsigned short int __xsubi[3])
2594 throw () __attribute__ ((__nonnull__ (1)));
2597 extern long int mrand48 (void) throw ();
2598 extern long int jrand48 (unsigned short int __xsubi[3])
2599 throw () __attribute__ ((__nonnull__ (1)));
2602 extern void srand48 (long int __seedval) throw ();
2603 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
2604 throw () __attribute__ ((__nonnull__ (1)));
2605 extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
2613 unsigned short int __x[3];
2614 unsigned short int __old_x[3];
2615 unsigned short int __c;
2616 unsigned short int __init;
2617 unsigned long long int __a;
2621 extern int drand48_r (struct drand48_data *__restrict __buffer,
2622 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2623 extern int erand48_r (unsigned short int __xsubi[3],
2624 struct drand48_data *__restrict __buffer,
2625 double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2628 extern int lrand48_r (struct drand48_data *__restrict __buffer,
2629 long int *__restrict __result)
2630 throw () __attribute__ ((__nonnull__ (1, 2)));
2631 extern int nrand48_r (unsigned short int __xsubi[3],
2632 struct drand48_data *__restrict __buffer,
2633 long int *__restrict __result)
2634 throw () __attribute__ ((__nonnull__ (1, 2)));
2637 extern int mrand48_r (struct drand48_data *__restrict __buffer,
2638 long int *__restrict __result)
2639 throw () __attribute__ ((__nonnull__ (1, 2)));
2640 extern int jrand48_r (unsigned short int __xsubi[3],
2641 struct drand48_data *__restrict __buffer,
2642 long int *__restrict __result)
2643 throw () __attribute__ ((__nonnull__ (1, 2)));
2646 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2647 throw () __attribute__ ((__nonnull__ (2)));
2649 extern int seed48_r (unsigned short int __seed16v[3],
2650 struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
2652 extern int lcong48_r (unsigned short int __param[7],
2653 struct drand48_data *__buffer)
2654 throw () __attribute__ ((__nonnull__ (1, 2)));
2664 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2666 extern void *calloc (size_t __nmemb, size_t __size)
2667 throw () __attribute__ ((__malloc__)) ;
2675 extern void *realloc (void *__ptr, size_t __size)
2676 throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2678 extern void free (void *__ptr) throw ();
2683 extern void cfree (void *__ptr) throw ();
2687 # 1 "/usr/include/alloca.h" 1 3 4
2688 # 25 "/usr/include/alloca.h" 3 4
2689 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
2690 # 26 "/usr/include/alloca.h" 2 3 4
2698 extern void *alloca (size_t __size) throw ();
2705 # 613 "/usr/include/stdlib.h" 2 3 4
2710 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2715 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2716 throw () __attribute__ ((__nonnull__ (1))) ;
2721 extern void abort (void) throw () __attribute__ ((__noreturn__));
2725 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
2731 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2732 throw () __attribute__ ((__nonnull__ (1)));
2739 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
2746 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
2753 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
2758 extern char *__secure_getenv (__const char *__name)
2759 throw () __attribute__ ((__nonnull__ (1))) ;
2765 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
2771 extern int setenv (__const char *__name, __const char *__value, int __replace)
2772 throw () __attribute__ ((__nonnull__ (2)));
2775 extern int unsetenv (__const char *__name) throw ();
2782 extern int clearenv (void) throw ();
2783 # 698 "/usr/include/stdlib.h" 3 4
2784 extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
2785 # 709 "/usr/include/stdlib.h" 3 4
2786 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
2787 # 719 "/usr/include/stdlib.h" 3 4
2788 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
2789 # 729 "/usr/include/stdlib.h" 3 4
2790 extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
2799 extern int system (__const char *__command) ;
2806 extern char *canonicalize_file_name (__const char *__name)
2807 throw () __attribute__ ((__nonnull__ (1))) ;
2808 # 755 "/usr/include/stdlib.h" 3 4
2809 extern char *realpath (__const char *__restrict __name,
2810 char *__restrict __resolved) throw () ;
2817 typedef int (*__compar_fn_t) (__const void *, __const void *);
2820 typedef __compar_fn_t comparison_fn_t;
2827 extern void *bsearch (__const void *__key, __const void *__base,
2828 size_t __nmemb, size_t __size, __compar_fn_t __compar)
2829 __attribute__ ((__nonnull__ (1, 2, 5))) ;
2833 extern void qsort (void *__base, size_t __nmemb, size_t __size,
2834 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2838 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
2839 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
2843 __extension__ extern long long int llabs (long long int __x)
2844 throw () __attribute__ ((__const__)) ;
2852 extern div_t div (int __numer, int __denom)
2853 throw () __attribute__ ((__const__)) ;
2854 extern ldiv_t ldiv (long int __numer, long int __denom)
2855 throw () __attribute__ ((__const__)) ;
2860 __extension__ extern lldiv_t lldiv (long long int __numer,
2861 long long int __denom)
2862 throw () __attribute__ ((__const__)) ;
2864 # 820 "/usr/include/stdlib.h" 3 4
2865 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
2866 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2871 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2872 int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2877 extern char *gcvt (double __value, int __ndigit, char *__buf)
2878 throw () __attribute__ ((__nonnull__ (3))) ;
2883 extern char *qecvt (long double __value, int __ndigit,
2884 int *__restrict __decpt, int *__restrict __sign)
2885 throw () __attribute__ ((__nonnull__ (3, 4))) ;
2886 extern char *qfcvt (long double __value, int __ndigit,
2887 int *__restrict __decpt, int *__restrict __sign)
2888 throw () __attribute__ ((__nonnull__ (3, 4))) ;
2889 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
2890 throw () __attribute__ ((__nonnull__ (3))) ;
2895 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
2896 int *__restrict __sign, char *__restrict __buf,
2897 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2898 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
2899 int *__restrict __sign, char *__restrict __buf,
2900 size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2902 extern int qecvt_r (long double __value, int __ndigit,
2903 int *__restrict __decpt, int *__restrict __sign,
2904 char *__restrict __buf, size_t __len)
2905 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2906 extern int qfcvt_r (long double __value, int __ndigit,
2907 int *__restrict __decpt, int *__restrict __sign,
2908 char *__restrict __buf, size_t __len)
2909 throw () __attribute__ ((__nonnull__ (3, 4, 5)));
2917 extern int mblen (__const char *__s, size_t __n) throw () ;
2920 extern int mbtowc (wchar_t *__restrict __pwc,
2921 __const char *__restrict __s, size_t __n) throw () ;
2924 extern int wctomb (char *__s, wchar_t __wchar) throw () ;
2928 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2929 __const char *__restrict __s, size_t __n) throw ();
2931 extern size_t wcstombs (char *__restrict __s,
2932 __const wchar_t *__restrict __pwcs, size_t __n)
2942 extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
2943 # 908 "/usr/include/stdlib.h" 3 4
2944 extern int getsubopt (char **__restrict __optionp,
2945 char *__const *__restrict __tokens,
2946 char **__restrict __valuep)
2947 throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
2953 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
2961 extern int posix_openpt (int __oflag) ;
2969 extern int grantpt (int __fd) throw ();
2973 extern int unlockpt (int __fd) throw ();
2978 extern char *ptsname (int __fd) throw () ;
2985 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2986 throw () __attribute__ ((__nonnull__ (2)));
2989 extern int getpt (void);
2996 extern int getloadavg (double __loadavg[], int __nelem)
2997 throw () __attribute__ ((__nonnull__ (1)));
2998 # 976 "/usr/include/stdlib.h" 3 4
3000 # 73 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 2 3
3001 # 104 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3041 abs(long __i) { return labs(__i); }
3044 div(long __i, long __j) { return ldiv(__i, __j); }
3046 # 160 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3060 abs(long long __x) { return __x >= 0 ? __x : -__x; }
3066 div(long long __n, long long __d)
3067 { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
3070 # 193 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3082 using ::__gnu_cxx::lldiv_t;
3084 using ::__gnu_cxx::_Exit;
3085 using ::__gnu_cxx::abs;
3087 using ::__gnu_cxx::llabs;
3088 using ::__gnu_cxx::div;
3089 using ::__gnu_cxx::lldiv;
3091 using ::__gnu_cxx::atoll;
3092 using ::__gnu_cxx::strtof;
3093 using ::__gnu_cxx::strtoll;
3094 using ::__gnu_cxx::strtoull;
3095 using ::__gnu_cxx::strtold;
3102 #pragma GCC visibility pop
3103 # 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
3105 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 1 3
3106 # 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
3108 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
3109 #pragma GCC visibility push(default)
3112 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 1 3
3113 # 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
3115 # 40 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
3118 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 1 3
3119 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3121 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3122 #pragma GCC visibility push(default)
3123 # 99 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3171 # 155 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3174 # 170 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3185 using __gnu_cxx::snprintf;
3186 using __gnu_cxx::vfscanf;
3187 using __gnu_cxx::vscanf;
3188 using __gnu_cxx::vsnprintf;
3189 using __gnu_cxx::vsscanf;
3193 #pragma GCC visibility pop
3194 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3195 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 1 3
3196 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 3
3198 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 3
3199 #pragma GCC visibility push(default)
3201 # 1 "/usr/include/locale.h" 1 3 4
3202 # 29 "/usr/include/locale.h" 3 4
3203 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
3204 # 30 "/usr/include/locale.h" 2 3 4
3205 # 1 "/usr/include/bits/locale.h" 1 3 4
3206 # 27 "/usr/include/bits/locale.h" 3 4
3219 __LC_TELEPHONE = 10,
3220 __LC_MEASUREMENT = 11,
3221 __LC_IDENTIFICATION = 12
3223 # 31 "/usr/include/locale.h" 2 3 4
3226 # 51 "/usr/include/locale.h" 3 4
3234 char *decimal_point;
3235 char *thousands_sep;
3247 char *int_curr_symbol;
3248 char *currency_symbol;
3249 char *mon_decimal_point;
3250 char *mon_thousands_sep;
3252 char *positive_sign;
3253 char *negative_sign;
3254 char int_frac_digits;
3259 char p_sep_by_space;
3263 char n_sep_by_space;
3274 char int_p_cs_precedes;
3276 char int_p_sep_by_space;
3278 char int_n_cs_precedes;
3280 char int_n_sep_by_space;
3287 char int_p_sign_posn;
3288 char int_n_sign_posn;
3289 # 121 "/usr/include/locale.h" 3 4
3294 extern char *setlocale (int __category, __const char *__locale) throw ();
3297 extern struct lconv *localeconv (void) throw ();
3300 # 148 "/usr/include/locale.h" 3 4
3301 typedef __locale_t locale_t;
3307 extern __locale_t newlocale (int __category_mask, __const char *__locale,
3308 __locale_t __base) throw ();
3309 # 189 "/usr/include/locale.h" 3 4
3310 extern __locale_t duplocale (__locale_t __dataset) throw ();
3314 extern void freelocale (__locale_t __dataset) throw ();
3321 extern __locale_t uselocale (__locale_t __dataset) throw ();
3330 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 2 3
3343 #pragma GCC visibility pop
3344 # 44 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3345 # 1 "/usr/include/langinfo.h" 1 3 4
3346 # 24 "/usr/include/langinfo.h" 3 4
3347 # 1 "/usr/include/nl_types.h" 1 3 4
3348 # 31 "/usr/include/nl_types.h" 3 4
3352 typedef void *nl_catd;
3355 typedef int nl_item;
3361 extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
3365 extern char *catgets (nl_catd __catalog, int __set, int __number,
3366 __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
3369 extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
3372 # 25 "/usr/include/langinfo.h" 2 3 4
3374 # 1 "/usr/include/bits/locale.h" 1 3 4
3375 # 27 "/usr/include/langinfo.h" 2 3 4
3379 # 42 "/usr/include/langinfo.h" 3 4
3385 ABDAY_1 = (((__LC_TIME) << 16) | (0)),
3497 _NL_TIME_ERA_NUM_ENTRIES,
3498 _NL_TIME_ERA_ENTRIES,
3559 _NL_TIME_WEEK_NDAYS,
3560 _NL_TIME_WEEK_1STDAY,
3561 _NL_TIME_WEEK_1STWEEK,
3562 _NL_TIME_FIRST_WEEKDAY,
3563 _NL_TIME_FIRST_WORKDAY,
3564 _NL_TIME_CAL_DIRECTION,
3578 _NL_COLLATE_NRULES = (((__LC_COLLATE) << 16) | (0)),
3579 _NL_COLLATE_RULESETS,
3580 _NL_COLLATE_TABLEMB,
3581 _NL_COLLATE_WEIGHTMB,
3582 _NL_COLLATE_EXTRAMB,
3583 _NL_COLLATE_INDIRECTMB,
3587 _NL_COLLATE_TABLEWC,
3588 _NL_COLLATE_WEIGHTWC,
3589 _NL_COLLATE_EXTRAWC,
3590 _NL_COLLATE_INDIRECTWC,
3591 _NL_COLLATE_SYMB_HASH_SIZEMB,
3592 _NL_COLLATE_SYMB_TABLEMB,
3593 _NL_COLLATE_SYMB_EXTRAMB,
3594 _NL_COLLATE_COLLSEQMB,
3595 _NL_COLLATE_COLLSEQWC,
3596 _NL_COLLATE_CODESET,
3602 _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
3612 _NL_CTYPE_CLASS_NAMES,
3613 _NL_CTYPE_MAP_NAMES,
3615 _NL_CTYPE_MB_CUR_MAX,
3616 _NL_CTYPE_CODESET_NAME,
3617 CODESET = _NL_CTYPE_CODESET_NAME,
3619 _NL_CTYPE_TOUPPER32,
3620 _NL_CTYPE_TOLOWER32,
3621 _NL_CTYPE_CLASS_OFFSET,
3622 _NL_CTYPE_MAP_OFFSET,
3623 _NL_CTYPE_INDIGITS_MB_LEN,
3624 _NL_CTYPE_INDIGITS0_MB,
3625 _NL_CTYPE_INDIGITS1_MB,
3626 _NL_CTYPE_INDIGITS2_MB,
3627 _NL_CTYPE_INDIGITS3_MB,
3628 _NL_CTYPE_INDIGITS4_MB,
3629 _NL_CTYPE_INDIGITS5_MB,
3630 _NL_CTYPE_INDIGITS6_MB,
3631 _NL_CTYPE_INDIGITS7_MB,
3632 _NL_CTYPE_INDIGITS8_MB,
3633 _NL_CTYPE_INDIGITS9_MB,
3634 _NL_CTYPE_INDIGITS_WC_LEN,
3635 _NL_CTYPE_INDIGITS0_WC,
3636 _NL_CTYPE_INDIGITS1_WC,
3637 _NL_CTYPE_INDIGITS2_WC,
3638 _NL_CTYPE_INDIGITS3_WC,
3639 _NL_CTYPE_INDIGITS4_WC,
3640 _NL_CTYPE_INDIGITS5_WC,
3641 _NL_CTYPE_INDIGITS6_WC,
3642 _NL_CTYPE_INDIGITS7_WC,
3643 _NL_CTYPE_INDIGITS8_WC,
3644 _NL_CTYPE_INDIGITS9_WC,
3645 _NL_CTYPE_OUTDIGIT0_MB,
3646 _NL_CTYPE_OUTDIGIT1_MB,
3647 _NL_CTYPE_OUTDIGIT2_MB,
3648 _NL_CTYPE_OUTDIGIT3_MB,
3649 _NL_CTYPE_OUTDIGIT4_MB,
3650 _NL_CTYPE_OUTDIGIT5_MB,
3651 _NL_CTYPE_OUTDIGIT6_MB,
3652 _NL_CTYPE_OUTDIGIT7_MB,
3653 _NL_CTYPE_OUTDIGIT8_MB,
3654 _NL_CTYPE_OUTDIGIT9_MB,
3655 _NL_CTYPE_OUTDIGIT0_WC,
3656 _NL_CTYPE_OUTDIGIT1_WC,
3657 _NL_CTYPE_OUTDIGIT2_WC,
3658 _NL_CTYPE_OUTDIGIT3_WC,
3659 _NL_CTYPE_OUTDIGIT4_WC,
3660 _NL_CTYPE_OUTDIGIT5_WC,
3661 _NL_CTYPE_OUTDIGIT6_WC,
3662 _NL_CTYPE_OUTDIGIT7_WC,
3663 _NL_CTYPE_OUTDIGIT8_WC,
3664 _NL_CTYPE_OUTDIGIT9_WC,
3665 _NL_CTYPE_TRANSLIT_TAB_SIZE,
3666 _NL_CTYPE_TRANSLIT_FROM_IDX,
3667 _NL_CTYPE_TRANSLIT_FROM_TBL,
3668 _NL_CTYPE_TRANSLIT_TO_IDX,
3669 _NL_CTYPE_TRANSLIT_TO_TBL,
3670 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN,
3671 _NL_CTYPE_TRANSLIT_DEFAULT_MISSING,
3672 _NL_CTYPE_TRANSLIT_IGNORE_LEN,
3673 _NL_CTYPE_TRANSLIT_IGNORE,
3674 _NL_CTYPE_MAP_TO_NONASCII,
3675 _NL_CTYPE_EXTRA_MAP_1,
3676 _NL_CTYPE_EXTRA_MAP_2,
3677 _NL_CTYPE_EXTRA_MAP_3,
3678 _NL_CTYPE_EXTRA_MAP_4,
3679 _NL_CTYPE_EXTRA_MAP_5,
3680 _NL_CTYPE_EXTRA_MAP_6,
3681 _NL_CTYPE_EXTRA_MAP_7,
3682 _NL_CTYPE_EXTRA_MAP_8,
3683 _NL_CTYPE_EXTRA_MAP_9,
3684 _NL_CTYPE_EXTRA_MAP_10,
3685 _NL_CTYPE_EXTRA_MAP_11,
3686 _NL_CTYPE_EXTRA_MAP_12,
3687 _NL_CTYPE_EXTRA_MAP_13,
3688 _NL_CTYPE_EXTRA_MAP_14,
3694 __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
3702 __MON_DECIMAL_POINT,
3706 __MON_THOUSANDS_SEP,
3754 _NL_MONETARY_CRNCYSTR,
3756 __INT_P_CS_PRECEDES,
3760 __INT_P_SEP_BY_SPACE,
3764 __INT_N_CS_PRECEDES,
3768 __INT_N_SEP_BY_SPACE,
3780 _NL_MONETARY_DUO_INT_CURR_SYMBOL,
3781 _NL_MONETARY_DUO_CURRENCY_SYMBOL,
3782 _NL_MONETARY_DUO_INT_FRAC_DIGITS,
3783 _NL_MONETARY_DUO_FRAC_DIGITS,
3784 _NL_MONETARY_DUO_P_CS_PRECEDES,
3785 _NL_MONETARY_DUO_P_SEP_BY_SPACE,
3786 _NL_MONETARY_DUO_N_CS_PRECEDES,
3787 _NL_MONETARY_DUO_N_SEP_BY_SPACE,
3788 _NL_MONETARY_DUO_INT_P_CS_PRECEDES,
3789 _NL_MONETARY_DUO_INT_P_SEP_BY_SPACE,
3790 _NL_MONETARY_DUO_INT_N_CS_PRECEDES,
3791 _NL_MONETARY_DUO_INT_N_SEP_BY_SPACE,
3792 _NL_MONETARY_DUO_P_SIGN_POSN,
3793 _NL_MONETARY_DUO_N_SIGN_POSN,
3794 _NL_MONETARY_DUO_INT_P_SIGN_POSN,
3795 _NL_MONETARY_DUO_INT_N_SIGN_POSN,
3796 _NL_MONETARY_UNO_VALID_FROM,
3797 _NL_MONETARY_UNO_VALID_TO,
3798 _NL_MONETARY_DUO_VALID_FROM,
3799 _NL_MONETARY_DUO_VALID_TO,
3800 _NL_MONETARY_CONVERSION_RATE,
3801 _NL_MONETARY_DECIMAL_POINT_WC,
3802 _NL_MONETARY_THOUSANDS_SEP_WC,
3803 _NL_MONETARY_CODESET,
3804 _NL_NUM_LC_MONETARY,
3808 __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
3812 RADIXCHAR = __DECIMAL_POINT,
3818 THOUSEP = __THOUSANDS_SEP,
3824 _NL_NUMERIC_DECIMAL_POINT_WC,
3825 _NL_NUMERIC_THOUSANDS_SEP_WC,
3826 _NL_NUMERIC_CODESET,
3829 __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
3841 _NL_MESSAGES_CODESET,
3842 _NL_NUM_LC_MESSAGES,
3844 _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
3849 _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
3858 _NL_ADDRESS_POSTAL_FMT = (((__LC_ADDRESS) << 16) | (0)),
3859 _NL_ADDRESS_COUNTRY_NAME,
3860 _NL_ADDRESS_COUNTRY_POST,
3861 _NL_ADDRESS_COUNTRY_AB2,
3862 _NL_ADDRESS_COUNTRY_AB3,
3863 _NL_ADDRESS_COUNTRY_CAR,
3864 _NL_ADDRESS_COUNTRY_NUM,
3865 _NL_ADDRESS_COUNTRY_ISBN,
3866 _NL_ADDRESS_LANG_NAME,
3867 _NL_ADDRESS_LANG_AB,
3868 _NL_ADDRESS_LANG_TERM,
3869 _NL_ADDRESS_LANG_LIB,
3870 _NL_ADDRESS_CODESET,
3873 _NL_TELEPHONE_TEL_INT_FMT = (((__LC_TELEPHONE) << 16) | (0)),
3874 _NL_TELEPHONE_TEL_DOM_FMT,
3875 _NL_TELEPHONE_INT_SELECT,
3876 _NL_TELEPHONE_INT_PREFIX,
3877 _NL_TELEPHONE_CODESET,
3878 _NL_NUM_LC_TELEPHONE,
3880 _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
3881 _NL_MEASUREMENT_CODESET,
3882 _NL_NUM_LC_MEASUREMENT,
3884 _NL_IDENTIFICATION_TITLE = (((__LC_IDENTIFICATION) << 16) | (0)),
3885 _NL_IDENTIFICATION_SOURCE,
3886 _NL_IDENTIFICATION_ADDRESS,
3887 _NL_IDENTIFICATION_CONTACT,
3888 _NL_IDENTIFICATION_EMAIL,
3889 _NL_IDENTIFICATION_TEL,
3890 _NL_IDENTIFICATION_FAX,
3891 _NL_IDENTIFICATION_LANGUAGE,
3892 _NL_IDENTIFICATION_TERRITORY,
3893 _NL_IDENTIFICATION_AUDIENCE,
3894 _NL_IDENTIFICATION_APPLICATION,
3895 _NL_IDENTIFICATION_ABBREVIATION,
3896 _NL_IDENTIFICATION_REVISION,
3897 _NL_IDENTIFICATION_DATE,
3898 _NL_IDENTIFICATION_CATEGORY,
3899 _NL_IDENTIFICATION_CODESET,
3900 _NL_NUM_LC_IDENTIFICATION,
3905 # 582 "/usr/include/langinfo.h" 3 4
3906 extern char *nl_langinfo (nl_item __item) throw ();
3907 # 593 "/usr/include/langinfo.h" 3 4
3908 extern char *nl_langinfo_l (nl_item __item, __locale_t l);
3912 # 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3913 # 1 "/usr/include/iconv.h" 1 3 4
3914 # 24 "/usr/include/iconv.h" 3 4
3915 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
3916 # 25 "/usr/include/iconv.h" 2 3 4
3922 typedef void *iconv_t;
3930 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
3935 extern size_t iconv (iconv_t __cd, char **__restrict __inbuf,
3936 size_t *__restrict __inbytesleft,
3937 char **__restrict __outbuf,
3938 size_t *__restrict __outbytesleft);
3944 extern int iconv_close (iconv_t __cd);
3947 # 46 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
3948 # 1 "/usr/include/libintl.h" 1 3 4
3949 # 35 "/usr/include/libintl.h" 3 4
3955 extern char *gettext (__const char *__msgid)
3956 throw () __attribute__ ((__format_arg__ (1)));
3960 extern char *dgettext (__const char *__domainname, __const char *__msgid)
3961 throw () __attribute__ ((__format_arg__ (2)));
3962 extern char *__dgettext (__const char *__domainname, __const char *__msgid)
3963 throw () __attribute__ ((__format_arg__ (2)));
3967 extern char *dcgettext (__const char *__domainname,
3968 __const char *__msgid, int __category)
3969 throw () __attribute__ ((__format_arg__ (2)));
3970 extern char *__dcgettext (__const char *__domainname,
3971 __const char *__msgid, int __category)
3972 throw () __attribute__ ((__format_arg__ (2)));
3977 extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
3978 unsigned long int __n)
3979 throw () __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2)));
3983 extern char *dngettext (__const char *__domainname, __const char *__msgid1,
3984 __const char *__msgid2, unsigned long int __n)
3985 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3989 extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
3990 __const char *__msgid2, unsigned long int __n,
3992 throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3998 extern char *textdomain (__const char *__domainname) throw ();
4002 extern char *bindtextdomain (__const char *__domainname,
4003 __const char *__dirname) throw ();
4007 extern char *bind_textdomain_codeset (__const char *__domainname,
4008 __const char *__codeset) throw ();
4009 # 122 "/usr/include/libintl.h" 3 4
4011 # 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 2 3
4020 extern "C" __typeof(uselocale) __uselocale;
4026 typedef __locale_t __c_locale;
4032 template<typename _Tv>
4034 __convert_from_v(char* __out,
4035 const int __size __attribute__ ((__unused__)),
4038 _Tv __v, const __c_locale& __cloc, int __prec)
4040 __c_locale __old = __gnu_cxx::__uselocale(__cloc);
4041 # 86 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
4042 const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
4048 __gnu_cxx::__uselocale(__old);
4056 # 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
4057 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++io.h" 1 3
4058 # 38 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++io.h" 3
4059 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 1 3
4060 # 33 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 3
4061 #pragma GCC visibility push(default)
4062 # 114 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 3
4063 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 1 3
4064 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
4065 # 1 "/usr/include/pthread.h" 1 3 4
4066 # 24 "/usr/include/pthread.h" 3 4
4067 # 1 "/usr/include/sched.h" 1 3 4
4068 # 29 "/usr/include/sched.h" 3 4
4069 # 1 "/usr/include/time.h" 1 3 4
4070 # 30 "/usr/include/sched.h" 2 3 4
4073 # 1 "/usr/include/bits/sched.h" 1 3 4
4074 # 66 "/usr/include/bits/sched.h" 3 4
4077 int __sched_priority;
4084 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
4085 int __flags, void *__arg, ...) throw ();
4088 extern int unshare (int __flags) throw ();
4091 extern int sched_getcpu (void) throw ();
4102 struct __sched_param
4104 int __sched_priority;
4106 # 108 "/usr/include/bits/sched.h" 3 4
4107 typedef unsigned long int __cpu_mask;
4116 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
4118 # 134 "/usr/include/bits/sched.h" 3 4
4119 extern int __sched_cpucount (size_t __setsize, cpu_set_t *__setp) throw ();
4120 # 33 "/usr/include/sched.h" 2 3 4
4128 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
4132 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
4135 extern int sched_setscheduler (__pid_t __pid, int __policy,
4136 __const struct sched_param *__param) throw ();
4139 extern int sched_getscheduler (__pid_t __pid) throw ();
4142 extern int sched_yield (void) throw ();
4145 extern int sched_get_priority_max (int __algorithm) throw ();
4148 extern int sched_get_priority_min (int __algorithm) throw ();
4151 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) throw ();
4152 # 77 "/usr/include/sched.h" 3 4
4153 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
4154 __const cpu_set_t *__cpuset) throw ();
4157 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
4158 cpu_set_t *__cpuset) throw ();
4162 # 25 "/usr/include/pthread.h" 2 3 4
4163 # 1 "/usr/include/time.h" 1 3 4
4164 # 31 "/usr/include/time.h" 3 4
4173 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
4174 # 40 "/usr/include/time.h" 2 3 4
4178 # 1 "/usr/include/bits/time.h" 1 3 4
4179 # 44 "/usr/include/time.h" 2 3 4
4180 # 132 "/usr/include/time.h" 3 4
4197 __const char *tm_zone;
4213 struct timespec it_interval;
4214 struct timespec it_value;
4219 # 181 "/usr/include/time.h" 3 4
4223 extern clock_t clock (void) throw ();
4226 extern time_t time (time_t *__timer) throw ();
4229 extern double difftime (time_t __time1, time_t __time0)
4230 throw () __attribute__ ((__const__));
4233 extern time_t mktime (struct tm *__tp) throw ();
4239 extern size_t strftime (char *__restrict __s, size_t __maxsize,
4240 __const char *__restrict __format,
4241 __const struct tm *__restrict __tp) throw ();
4247 extern char *strptime (__const char *__restrict __s,
4248 __const char *__restrict __fmt, struct tm *__tp)
4257 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
4258 __const char *__restrict __format,
4259 __const struct tm *__restrict __tp,
4260 __locale_t __loc) throw ();
4262 extern char *strptime_l (__const char *__restrict __s,
4263 __const char *__restrict __fmt, struct tm *__tp,
4264 __locale_t __loc) throw ();
4271 extern struct tm *gmtime (__const time_t *__timer) throw ();
4275 extern struct tm *localtime (__const time_t *__timer) throw ();
4281 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
4282 struct tm *__restrict __tp) throw ();
4286 extern struct tm *localtime_r (__const time_t *__restrict __timer,
4287 struct tm *__restrict __tp) throw ();
4293 extern char *asctime (__const struct tm *__tp) throw ();
4296 extern char *ctime (__const time_t *__timer) throw ();
4304 extern char *asctime_r (__const struct tm *__restrict __tp,
4305 char *__restrict __buf) throw ();
4308 extern char *ctime_r (__const time_t *__restrict __timer,
4309 char *__restrict __buf) throw ();
4314 extern char *__tzname[2];
4315 extern int __daylight;
4316 extern long int __timezone;
4321 extern char *tzname[2];
4325 extern void tzset (void) throw ();
4329 extern int daylight;
4330 extern long int timezone;
4336 extern int stime (__const time_t *__when) throw ();
4337 # 312 "/usr/include/time.h" 3 4
4338 extern time_t timegm (struct tm *__tp) throw ();
4341 extern time_t timelocal (struct tm *__tp) throw ();
4344 extern int dysize (int __year) throw () __attribute__ ((__const__));
4345 # 327 "/usr/include/time.h" 3 4
4346 extern int nanosleep (__const struct timespec *__requested_time,
4347 struct timespec *__remaining);
4351 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
4354 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
4357 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
4365 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
4366 __const struct timespec *__req,
4367 struct timespec *__rem);
4370 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
4375 extern int timer_create (clockid_t __clock_id,
4376 struct sigevent *__restrict __evp,
4377 timer_t *__restrict __timerid) throw ();
4380 extern int timer_delete (timer_t __timerid) throw ();
4383 extern int timer_settime (timer_t __timerid, int __flags,
4384 __const struct itimerspec *__restrict __value,
4385 struct itimerspec *__restrict __ovalue) throw ();
4388 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
4392 extern int timer_getoverrun (timer_t __timerid) throw ();
4393 # 389 "/usr/include/time.h" 3 4
4394 extern int getdate_err;
4395 # 398 "/usr/include/time.h" 3 4
4396 extern struct tm *getdate (__const char *__string);
4397 # 412 "/usr/include/time.h" 3 4
4398 extern int getdate_r (__const char *__restrict __string,
4399 struct tm *__restrict __resbufp);
4403 # 26 "/usr/include/pthread.h" 2 3 4
4406 # 1 "/usr/include/signal.h" 1 3 4
4407 # 31 "/usr/include/signal.h" 3 4
4410 # 1 "/usr/include/bits/sigset.h" 1 3 4
4411 # 34 "/usr/include/signal.h" 2 3 4
4412 # 400 "/usr/include/signal.h" 3 4
4414 # 29 "/usr/include/pthread.h" 2 3 4
4416 # 1 "/usr/include/bits/setjmp.h" 1 3 4
4417 # 29 "/usr/include/bits/setjmp.h" 3 4
4418 typedef int __jmp_buf[6];
4419 # 31 "/usr/include/pthread.h" 2 3 4
4420 # 1 "/usr/include/bits/wordsize.h" 1 3 4
4421 # 32 "/usr/include/pthread.h" 2 3 4
4427 PTHREAD_CREATE_JOINABLE,
4429 PTHREAD_CREATE_DETACHED
4437 PTHREAD_MUTEX_TIMED_NP,
4438 PTHREAD_MUTEX_RECURSIVE_NP,
4439 PTHREAD_MUTEX_ERRORCHECK_NP,
4440 PTHREAD_MUTEX_ADAPTIVE_NP
4443 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
4444 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
4445 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
4446 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
4450 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
4459 PTHREAD_MUTEX_STALLED_NP,
4460 PTHREAD_MUTEX_ROBUST_NP
4470 PTHREAD_PRIO_INHERIT,
4471 PTHREAD_PRIO_PROTECT
4473 # 114 "/usr/include/pthread.h" 3 4
4476 PTHREAD_RWLOCK_PREFER_READER_NP,
4477 PTHREAD_RWLOCK_PREFER_WRITER_NP,
4478 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
4479 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
4481 # 144 "/usr/include/pthread.h" 3 4
4484 PTHREAD_INHERIT_SCHED,
4486 PTHREAD_EXPLICIT_SCHED
4494 PTHREAD_SCOPE_SYSTEM,
4496 PTHREAD_SCOPE_PROCESS
4504 PTHREAD_PROCESS_PRIVATE,
4506 PTHREAD_PROCESS_SHARED
4509 # 179 "/usr/include/pthread.h" 3 4
4510 struct _pthread_cleanup_buffer
4512 void (*__routine) (void *);
4515 struct _pthread_cleanup_buffer *__prev;
4521 PTHREAD_CANCEL_ENABLE,
4523 PTHREAD_CANCEL_DISABLE
4528 PTHREAD_CANCEL_DEFERRED,
4530 PTHREAD_CANCEL_ASYNCHRONOUS
4533 # 217 "/usr/include/pthread.h" 3 4
4539 extern int pthread_create (pthread_t *__restrict __newthread,
4540 __const pthread_attr_t *__restrict __attr,
4541 void *(*__start_routine) (void *),
4542 void *__restrict __arg) throw () __attribute__ ((__nonnull__ (1, 3)));
4548 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
4556 extern int pthread_join (pthread_t __th, void **__thread_return);
4561 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
4569 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
4570 __const struct timespec *__abstime);
4577 extern int pthread_detach (pthread_t __th) throw ();
4581 extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
4584 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
4592 extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
4595 extern int pthread_attr_destroy (pthread_attr_t *__attr)
4596 throw () __attribute__ ((__nonnull__ (1)));
4599 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
4601 throw () __attribute__ ((__nonnull__ (1, 2)));
4604 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
4606 throw () __attribute__ ((__nonnull__ (1)));
4610 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
4611 size_t *__guardsize)
4612 throw () __attribute__ ((__nonnull__ (1, 2)));
4615 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
4617 throw () __attribute__ ((__nonnull__ (1)));
4621 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
4623 struct sched_param *__restrict __param)
4624 throw () __attribute__ ((__nonnull__ (1, 2)));
4627 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
4628 __const struct sched_param *__restrict
4629 __param) throw () __attribute__ ((__nonnull__ (1, 2)));
4632 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
4633 __attr, int *__restrict __policy)
4634 throw () __attribute__ ((__nonnull__ (1, 2)));
4637 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
4638 throw () __attribute__ ((__nonnull__ (1)));
4641 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
4642 __attr, int *__restrict __inherit)
4643 throw () __attribute__ ((__nonnull__ (1, 2)));
4646 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
4648 throw () __attribute__ ((__nonnull__ (1)));
4652 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
4653 int *__restrict __scope)
4654 throw () __attribute__ ((__nonnull__ (1, 2)));
4657 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
4658 throw () __attribute__ ((__nonnull__ (1)));
4661 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
4662 __attr, void **__restrict __stackaddr)
4663 throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
4669 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
4671 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
4674 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
4675 __attr, size_t *__restrict __stacksize)
4676 throw () __attribute__ ((__nonnull__ (1, 2)));
4681 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
4683 throw () __attribute__ ((__nonnull__ (1)));
4687 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
4688 void **__restrict __stackaddr,
4689 size_t *__restrict __stacksize)
4690 throw () __attribute__ ((__nonnull__ (1, 2, 3)));
4695 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
4696 size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
4702 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
4703 size_t __cpusetsize,
4704 __const cpu_set_t *__cpuset)
4705 throw () __attribute__ ((__nonnull__ (1, 3)));
4709 extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
4710 size_t __cpusetsize,
4711 cpu_set_t *__cpuset)
4712 throw () __attribute__ ((__nonnull__ (1, 3)));
4718 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
4719 throw () __attribute__ ((__nonnull__ (2)));
4727 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
4728 __const struct sched_param *__param)
4729 throw () __attribute__ ((__nonnull__ (3)));
4732 extern int pthread_getschedparam (pthread_t __target_thread,
4733 int *__restrict __policy,
4734 struct sched_param *__restrict __param)
4735 throw () __attribute__ ((__nonnull__ (2, 3)));
4738 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
4744 extern int pthread_getconcurrency (void) throw ();
4747 extern int pthread_setconcurrency (int __level) throw ();
4755 extern int pthread_yield (void) throw ();
4760 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
4761 __const cpu_set_t *__cpuset)
4762 throw () __attribute__ ((__nonnull__ (3)));
4765 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
4766 cpu_set_t *__cpuset)
4767 throw () __attribute__ ((__nonnull__ (3)));
4768 # 463 "/usr/include/pthread.h" 3 4
4769 extern int pthread_once (pthread_once_t *__once_control,
4770 void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
4771 # 475 "/usr/include/pthread.h" 3 4
4772 extern int pthread_setcancelstate (int __state, int *__oldstate);
4776 extern int pthread_setcanceltype (int __type, int *__oldtype);
4779 extern int pthread_cancel (pthread_t __th);
4784 extern void pthread_testcancel (void);
4793 __jmp_buf __cancel_jmp_buf;
4794 int __mask_was_saved;
4795 } __cancel_jmp_buf[1];
4797 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
4798 # 509 "/usr/include/pthread.h" 3 4
4799 struct __pthread_cleanup_frame
4801 void (*__cancel_routine) (void *);
4810 class __pthread_cleanup_class
4812 void (*__cancel_routine) (void *);
4818 __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
4819 : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
4820 ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
4821 void __setdoit (int __newval) { __do_it = __newval; }
4822 void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
4824 void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
4826 # 709 "/usr/include/pthread.h" 3 4
4827 struct __jmp_buf_tag;
4828 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) throw ();
4834 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
4835 __const pthread_mutexattr_t *__mutexattr)
4836 throw () __attribute__ ((__nonnull__ (1)));
4839 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
4840 throw () __attribute__ ((__nonnull__ (1)));
4843 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
4844 throw () __attribute__ ((__nonnull__ (1)));
4847 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
4848 throw () __attribute__ ((__nonnull__ (1)));
4852 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
4853 __const struct timespec *__restrict
4854 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4858 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
4859 throw () __attribute__ ((__nonnull__ (1)));
4864 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
4866 int *__restrict __prioceiling)
4867 throw () __attribute__ ((__nonnull__ (1, 2)));
4871 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
4873 int *__restrict __old_ceiling)
4874 throw () __attribute__ ((__nonnull__ (1, 3)));
4880 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
4881 throw () __attribute__ ((__nonnull__ (1)));
4889 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
4890 throw () __attribute__ ((__nonnull__ (1)));
4893 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
4894 throw () __attribute__ ((__nonnull__ (1)));
4897 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
4899 int *__restrict __pshared)
4900 throw () __attribute__ ((__nonnull__ (1, 2)));
4903 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
4905 throw () __attribute__ ((__nonnull__ (1)));
4909 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
4910 __attr, int *__restrict __kind)
4911 throw () __attribute__ ((__nonnull__ (1, 2)));
4916 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
4917 throw () __attribute__ ((__nonnull__ (1)));
4920 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
4922 int *__restrict __protocol)
4923 throw () __attribute__ ((__nonnull__ (1, 2)));
4927 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
4929 throw () __attribute__ ((__nonnull__ (1)));
4932 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
4934 int *__restrict __prioceiling)
4935 throw () __attribute__ ((__nonnull__ (1, 2)));
4938 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
4940 throw () __attribute__ ((__nonnull__ (1)));
4945 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
4947 throw () __attribute__ ((__nonnull__ (1, 2)));
4950 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
4952 throw () __attribute__ ((__nonnull__ (1)));
4953 # 843 "/usr/include/pthread.h" 3 4
4954 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
4955 __const pthread_rwlockattr_t *__restrict
4956 __attr) throw () __attribute__ ((__nonnull__ (1)));
4959 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
4960 throw () __attribute__ ((__nonnull__ (1)));
4963 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
4964 throw () __attribute__ ((__nonnull__ (1)));
4967 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
4968 throw () __attribute__ ((__nonnull__ (1)));
4972 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
4973 __const struct timespec *__restrict
4974 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4978 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
4979 throw () __attribute__ ((__nonnull__ (1)));
4982 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
4983 throw () __attribute__ ((__nonnull__ (1)));
4987 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
4988 __const struct timespec *__restrict
4989 __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4993 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
4994 throw () __attribute__ ((__nonnull__ (1)));
5000 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
5001 throw () __attribute__ ((__nonnull__ (1)));
5004 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
5005 throw () __attribute__ ((__nonnull__ (1)));
5008 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
5010 int *__restrict __pshared)
5011 throw () __attribute__ ((__nonnull__ (1, 2)));
5014 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
5016 throw () __attribute__ ((__nonnull__ (1)));
5019 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
5021 int *__restrict __pref)
5022 throw () __attribute__ ((__nonnull__ (1, 2)));
5025 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
5026 int __pref) throw () __attribute__ ((__nonnull__ (1)));
5034 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
5035 __const pthread_condattr_t *__restrict
5036 __cond_attr) throw () __attribute__ ((__nonnull__ (1)));
5039 extern int pthread_cond_destroy (pthread_cond_t *__cond)
5040 throw () __attribute__ ((__nonnull__ (1)));
5043 extern int pthread_cond_signal (pthread_cond_t *__cond)
5044 throw () __attribute__ ((__nonnull__ (1)));
5047 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
5048 throw () __attribute__ ((__nonnull__ (1)));
5055 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
5056 pthread_mutex_t *__restrict __mutex)
5057 __attribute__ ((__nonnull__ (1, 2)));
5058 # 955 "/usr/include/pthread.h" 3 4
5059 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
5060 pthread_mutex_t *__restrict __mutex,
5061 __const struct timespec *__restrict
5062 __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
5067 extern int pthread_condattr_init (pthread_condattr_t *__attr)
5068 throw () __attribute__ ((__nonnull__ (1)));
5071 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
5072 throw () __attribute__ ((__nonnull__ (1)));
5075 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
5077 int *__restrict __pshared)
5078 throw () __attribute__ ((__nonnull__ (1, 2)));
5081 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
5082 int __pshared) throw () __attribute__ ((__nonnull__ (1)));
5086 extern int pthread_condattr_getclock (__const pthread_condattr_t *
5088 __clockid_t *__restrict __clock_id)
5089 throw () __attribute__ ((__nonnull__ (1, 2)));
5092 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
5093 __clockid_t __clock_id)
5094 throw () __attribute__ ((__nonnull__ (1)));
5095 # 999 "/usr/include/pthread.h" 3 4
5096 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
5097 throw () __attribute__ ((__nonnull__ (1)));
5100 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
5101 throw () __attribute__ ((__nonnull__ (1)));
5104 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
5105 throw () __attribute__ ((__nonnull__ (1)));
5108 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
5109 throw () __attribute__ ((__nonnull__ (1)));
5112 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
5113 throw () __attribute__ ((__nonnull__ (1)));
5120 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
5121 __const pthread_barrierattr_t *__restrict
5122 __attr, unsigned int __count)
5123 throw () __attribute__ ((__nonnull__ (1)));
5126 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
5127 throw () __attribute__ ((__nonnull__ (1)));
5130 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
5131 throw () __attribute__ ((__nonnull__ (1)));
5135 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
5136 throw () __attribute__ ((__nonnull__ (1)));
5139 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
5140 throw () __attribute__ ((__nonnull__ (1)));
5143 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
5145 int *__restrict __pshared)
5146 throw () __attribute__ ((__nonnull__ (1, 2)));
5149 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
5151 throw () __attribute__ ((__nonnull__ (1)));
5152 # 1066 "/usr/include/pthread.h" 3 4
5153 extern int pthread_key_create (pthread_key_t *__key,
5154 void (*__destr_function) (void *))
5155 throw () __attribute__ ((__nonnull__ (1)));
5158 extern int pthread_key_delete (pthread_key_t __key) throw ();
5161 extern void *pthread_getspecific (pthread_key_t __key) throw ();
5164 extern int pthread_setspecific (pthread_key_t __key,
5165 __const void *__pointer) throw () ;
5170 extern int pthread_getcpuclockid (pthread_t __thread_id,
5171 __clockid_t *__clock_id)
5172 throw () __attribute__ ((__nonnull__ (2)));
5173 # 1100 "/usr/include/pthread.h" 3 4
5174 extern int pthread_atfork (void (*__prepare) (void),
5175 void (*__parent) (void),
5176 void (*__child) (void)) throw ();
5182 pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ()
5184 return __thread1 == __thread2;
5189 # 44 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 2 3
5190 # 1 "/usr/include/unistd.h" 1 3 4
5191 # 28 "/usr/include/unistd.h" 3 4
5193 # 173 "/usr/include/unistd.h" 3 4
5194 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
5195 # 174 "/usr/include/unistd.h" 2 3 4
5199 # 1 "/usr/include/bits/environments.h" 1 3 4
5200 # 178 "/usr/include/unistd.h" 2 3 4
5201 # 197 "/usr/include/unistd.h" 3 4
5202 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
5203 # 198 "/usr/include/unistd.h" 2 3 4
5204 # 238 "/usr/include/unistd.h" 3 4
5205 typedef __intptr_t intptr_t;
5212 typedef __socklen_t socklen_t;
5213 # 258 "/usr/include/unistd.h" 3 4
5214 extern int access (__const char *__name, int __type) throw () __attribute__ ((__nonnull__ (1)));
5219 extern int euidaccess (__const char *__name, int __type)
5220 throw () __attribute__ ((__nonnull__ (1)));
5223 extern int eaccess (__const char *__name, int __type)
5224 throw () __attribute__ ((__nonnull__ (1)));
5231 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
5232 throw () __attribute__ ((__nonnull__ (2))) ;
5233 # 301 "/usr/include/unistd.h" 3 4
5234 extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
5235 # 312 "/usr/include/unistd.h" 3 4
5236 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
5244 extern int close (int __fd);
5251 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
5257 extern ssize_t write (int __fd, __const void *__buf, size_t __n) ;
5258 # 343 "/usr/include/unistd.h" 3 4
5259 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
5267 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
5269 # 371 "/usr/include/unistd.h" 3 4
5270 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
5271 __off64_t __offset) ;
5274 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
5275 __off64_t __offset) ;
5283 extern int pipe (int __pipedes[2]) throw () ;
5284 # 393 "/usr/include/unistd.h" 3 4
5285 extern unsigned int alarm (unsigned int __seconds) throw ();
5286 # 405 "/usr/include/unistd.h" 3 4
5287 extern unsigned int sleep (unsigned int __seconds);
5294 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
5302 extern int usleep (__useconds_t __useconds);
5303 # 429 "/usr/include/unistd.h" 3 4
5304 extern int pause (void);
5308 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
5309 throw () __attribute__ ((__nonnull__ (1))) ;
5313 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
5318 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
5319 throw () __attribute__ ((__nonnull__ (1))) ;
5326 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
5327 __gid_t __group, int __flag)
5328 throw () __attribute__ ((__nonnull__ (2))) ;
5332 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
5336 extern int fchdir (int __fd) throw () ;
5337 # 471 "/usr/include/unistd.h" 3 4
5338 extern char *getcwd (char *__buf, size_t __size) throw () ;
5344 extern char *get_current_dir_name (void) throw ();
5351 extern char *getwd (char *__buf)
5352 throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
5357 extern int dup (int __fd) throw () ;
5360 extern int dup2 (int __fd, int __fd2) throw ();
5363 extern char **__environ;
5365 extern char **environ;
5371 extern int execve (__const char *__path, char *__const __argv[],
5372 char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
5377 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
5383 extern int execv (__const char *__path, char *__const __argv[])
5384 throw () __attribute__ ((__nonnull__ (1)));
5388 extern int execle (__const char *__path, __const char *__arg, ...)
5389 throw () __attribute__ ((__nonnull__ (1)));
5393 extern int execl (__const char *__path, __const char *__arg, ...)
5394 throw () __attribute__ ((__nonnull__ (1)));
5398 extern int execvp (__const char *__file, char *__const __argv[])
5399 throw () __attribute__ ((__nonnull__ (1)));
5404 extern int execlp (__const char *__file, __const char *__arg, ...)
5405 throw () __attribute__ ((__nonnull__ (1)));
5410 extern int nice (int __inc) throw () ;
5415 extern void _exit (int __status) __attribute__ ((__noreturn__));
5421 # 1 "/usr/include/bits/confname.h" 1 3 4
5422 # 26 "/usr/include/bits/confname.h" 3 4
5437 _PC_CHOWN_RESTRICTED,
5453 _PC_REC_INCR_XFER_SIZE,
5455 _PC_REC_MAX_XFER_SIZE,
5457 _PC_REC_MIN_XFER_SIZE,
5490 _SC_REALTIME_SIGNALS,
5492 _SC_PRIORITY_SCHEDULING,
5496 _SC_ASYNCHRONOUS_IO,
5500 _SC_SYNCHRONIZED_IO,
5510 _SC_MEMORY_PROTECTION,
5512 _SC_MESSAGE_PASSING,
5516 _SC_SHARED_MEMORY_OBJECTS,
5522 _SC_AIO_PRIO_DELTA_MAX,
5556 _SC_COLL_WEIGHTS_MAX,
5558 _SC_EQUIV_CLASS_MAX,
5566 _SC_CHARCLASS_NAME_MAX,
5600 _SC_IOV_MAX = _SC_UIO_MAXIOV,
5602 _SC_PII_INTERNET_STREAM,
5604 _SC_PII_INTERNET_DGRAM,
5618 _SC_THREAD_SAFE_FUNCTIONS,
5620 _SC_GETGR_R_SIZE_MAX,
5622 _SC_GETPW_R_SIZE_MAX,
5628 _SC_THREAD_DESTRUCTOR_ITERATIONS,
5630 _SC_THREAD_KEYS_MAX,
5632 _SC_THREAD_STACK_MIN,
5634 _SC_THREAD_THREADS_MAX,
5636 _SC_THREAD_ATTR_STACKADDR,
5638 _SC_THREAD_ATTR_STACKSIZE,
5640 _SC_THREAD_PRIORITY_SCHEDULING,
5642 _SC_THREAD_PRIO_INHERIT,
5644 _SC_THREAD_PRIO_PROTECT,
5646 _SC_THREAD_PROCESS_SHARED,
5649 _SC_NPROCESSORS_CONF,
5651 _SC_NPROCESSORS_ONLN,
5664 _SC_XOPEN_XCU_VERSION,
5739 _SC_XBS5_ILP32_OFF32,
5741 _SC_XBS5_ILP32_OFFBIG,
5743 _SC_XBS5_LP64_OFF64,
5745 _SC_XBS5_LPBIG_OFFBIG,
5752 _SC_XOPEN_REALTIME_THREADS,
5763 _SC_C_LANG_SUPPORT_R,
5765 _SC_CLOCK_SELECTION,
5773 _SC_DEVICE_SPECIFIC,
5775 _SC_DEVICE_SPECIFIC_R,
5783 _SC_FILE_ATTRIBUTES,
5789 _SC_MONOTONIC_CLOCK,
5797 _SC_READER_WRITER_LOCKS,
5811 _SC_SPORADIC_SERVER,
5813 _SC_THREAD_SPORADIC_SERVER,
5815 _SC_SYSTEM_DATABASE,
5817 _SC_SYSTEM_DATABASE_R,
5821 _SC_TYPED_MEMORY_OBJECTS,
5829 _SC_2_PBS_ACCOUNTING,
5841 _SC_2_PBS_CHECKPOINT,
5846 _SC_V6_ILP32_OFFBIG,
5850 _SC_V6_LPBIG_OFFBIG,
5857 _SC_TRACE_EVENT_FILTER,
5864 _SC_LEVEL1_ICACHE_SIZE,
5866 _SC_LEVEL1_ICACHE_ASSOC,
5868 _SC_LEVEL1_ICACHE_LINESIZE,
5870 _SC_LEVEL1_DCACHE_SIZE,
5872 _SC_LEVEL1_DCACHE_ASSOC,
5874 _SC_LEVEL1_DCACHE_LINESIZE,
5876 _SC_LEVEL2_CACHE_SIZE,
5878 _SC_LEVEL2_CACHE_ASSOC,
5880 _SC_LEVEL2_CACHE_LINESIZE,
5882 _SC_LEVEL3_CACHE_SIZE,
5884 _SC_LEVEL3_CACHE_ASSOC,
5886 _SC_LEVEL3_CACHE_LINESIZE,
5888 _SC_LEVEL4_CACHE_SIZE,
5890 _SC_LEVEL4_CACHE_ASSOC,
5892 _SC_LEVEL4_CACHE_LINESIZE,
5896 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
5908 _CS_V6_WIDTH_RESTRICTED_ENVS,
5911 _CS_GNU_LIBC_VERSION,
5913 _CS_GNU_LIBPTHREAD_VERSION,
5916 _CS_LFS_CFLAGS = 1000,
5930 _CS_LFS64_LINTFLAGS,
5933 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
5935 _CS_XBS5_ILP32_OFF32_LDFLAGS,
5937 _CS_XBS5_ILP32_OFF32_LIBS,
5939 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
5941 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
5943 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
5945 _CS_XBS5_ILP32_OFFBIG_LIBS,
5947 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
5949 _CS_XBS5_LP64_OFF64_CFLAGS,
5951 _CS_XBS5_LP64_OFF64_LDFLAGS,
5953 _CS_XBS5_LP64_OFF64_LIBS,
5955 _CS_XBS5_LP64_OFF64_LINTFLAGS,
5957 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
5959 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
5961 _CS_XBS5_LPBIG_OFFBIG_LIBS,
5963 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
5966 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
5968 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
5970 _CS_POSIX_V6_ILP32_OFF32_LIBS,
5972 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
5974 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
5976 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
5978 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
5980 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
5982 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
5984 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
5986 _CS_POSIX_V6_LP64_OFF64_LIBS,
5988 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
5990 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
5992 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
5994 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
5996 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
5999 # 555 "/usr/include/unistd.h" 2 3 4
6002 extern long int pathconf (__const char *__path, int __name)
6003 throw () __attribute__ ((__nonnull__ (1)));
6006 extern long int fpathconf (int __fd, int __name) throw ();
6009 extern long int sysconf (int __name) throw ();
6013 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
6018 extern __pid_t getpid (void) throw ();
6021 extern __pid_t getppid (void) throw ();
6026 extern __pid_t getpgrp (void) throw ();
6027 # 591 "/usr/include/unistd.h" 3 4
6028 extern __pid_t __getpgid (__pid_t __pid) throw ();
6030 extern __pid_t getpgid (__pid_t __pid) throw ();
6037 extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
6038 # 617 "/usr/include/unistd.h" 3 4
6039 extern int setpgrp (void) throw ();
6040 # 634 "/usr/include/unistd.h" 3 4
6041 extern __pid_t setsid (void) throw ();
6045 extern __pid_t getsid (__pid_t __pid) throw ();
6049 extern __uid_t getuid (void) throw ();
6052 extern __uid_t geteuid (void) throw ();
6055 extern __gid_t getgid (void) throw ();
6058 extern __gid_t getegid (void) throw ();
6063 extern int getgroups (int __size, __gid_t __list[]) throw () ;
6067 extern int group_member (__gid_t __gid) throw ();
6074 extern int setuid (__uid_t __uid) throw ();
6079 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
6084 extern int seteuid (__uid_t __uid) throw ();
6091 extern int setgid (__gid_t __gid) throw ();
6096 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
6101 extern int setegid (__gid_t __gid) throw ();
6107 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
6112 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
6117 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
6122 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
6130 extern __pid_t fork (void) throw ();
6137 extern __pid_t vfork (void) throw ();
6143 extern char *ttyname (int __fd) throw ();
6147 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
6148 throw () __attribute__ ((__nonnull__ (2))) ;
6152 extern int isatty (int __fd) throw ();
6158 extern int ttyslot (void) throw ();
6163 extern int link (__const char *__from, __const char *__to)
6164 throw () __attribute__ ((__nonnull__ (1, 2))) ;
6169 extern int linkat (int __fromfd, __const char *__from, int __tofd,
6170 __const char *__to, int __flags)
6171 throw () __attribute__ ((__nonnull__ (2, 4))) ;
6176 extern int symlink (__const char *__from, __const char *__to)
6177 throw () __attribute__ ((__nonnull__ (1, 2))) ;
6182 extern ssize_t readlink (__const char *__restrict __path,
6183 char *__restrict __buf, size_t __len)
6184 throw () __attribute__ ((__nonnull__ (1, 2))) ;
6189 extern int symlinkat (__const char *__from, int __tofd,
6190 __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
6193 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
6194 char *__restrict __buf, size_t __len)
6195 throw () __attribute__ ((__nonnull__ (2, 3))) ;
6199 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
6203 extern int unlinkat (int __fd, __const char *__name, int __flag)
6204 throw () __attribute__ ((__nonnull__ (2)));
6208 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
6212 extern __pid_t tcgetpgrp (int __fd) throw ();
6215 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
6222 extern char *getlogin (void);
6230 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
6235 extern int setlogin (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
6236 # 837 "/usr/include/unistd.h" 3 4
6237 # 1 "/usr/include/getopt.h" 1 3 4
6238 # 50 "/usr/include/getopt.h" 3 4
6240 # 59 "/usr/include/getopt.h" 3 4
6241 extern char *optarg;
6242 # 73 "/usr/include/getopt.h" 3 4
6253 # 152 "/usr/include/getopt.h" 3 4
6254 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
6256 # 171 "/usr/include/getopt.h" 3 4
6258 # 838 "/usr/include/unistd.h" 2 3 4
6266 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
6273 extern int sethostname (__const char *__name, size_t __len)
6274 throw () __attribute__ ((__nonnull__ (1))) ;
6278 extern int sethostid (long int __id) throw () ;
6284 extern int getdomainname (char *__name, size_t __len)
6285 throw () __attribute__ ((__nonnull__ (1))) ;
6286 extern int setdomainname (__const char *__name, size_t __len)
6287 throw () __attribute__ ((__nonnull__ (1))) ;
6293 extern int vhangup (void) throw ();
6296 extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
6304 extern int profil (unsigned short int *__sample_buffer, size_t __size,
6305 size_t __offset, unsigned int __scale)
6306 throw () __attribute__ ((__nonnull__ (1)));
6312 extern int acct (__const char *__name) throw ();
6316 extern char *getusershell (void) throw ();
6317 extern void endusershell (void) throw ();
6318 extern void setusershell (void) throw ();
6324 extern int daemon (int __nochdir, int __noclose) throw () ;
6331 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
6335 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
6336 # 923 "/usr/include/unistd.h" 3 4
6337 extern int fsync (int __fd);
6344 extern long int gethostid (void);
6347 extern void sync (void) throw ();
6352 extern int getpagesize (void) throw () __attribute__ ((__const__));
6357 extern int getdtablesize (void) throw ();
6362 extern int truncate (__const char *__file, __off_t __length)
6363 throw () __attribute__ ((__nonnull__ (1))) ;
6364 # 960 "/usr/include/unistd.h" 3 4
6365 extern int truncate64 (__const char *__file, __off64_t __length)
6366 throw () __attribute__ ((__nonnull__ (1))) ;
6367 # 970 "/usr/include/unistd.h" 3 4
6368 extern int ftruncate (int __fd, __off_t __length) throw () ;
6369 # 980 "/usr/include/unistd.h" 3 4
6370 extern int ftruncate64 (int __fd, __off64_t __length) throw () ;
6371 # 990 "/usr/include/unistd.h" 3 4
6372 extern int brk (void *__addr) throw () ;
6378 extern void *sbrk (intptr_t __delta) throw ();
6379 # 1011 "/usr/include/unistd.h" 3 4
6380 extern long int syscall (long int __sysno, ...) throw ();
6381 # 1034 "/usr/include/unistd.h" 3 4
6382 extern int lockf (int __fd, int __cmd, __off_t __len) ;
6383 # 1044 "/usr/include/unistd.h" 3 4
6384 extern int lockf64 (int __fd, int __cmd, __off64_t __len) ;
6385 # 1065 "/usr/include/unistd.h" 3 4
6386 extern int fdatasync (int __fildes);
6394 extern char *crypt (__const char *__key, __const char *__salt)
6395 throw () __attribute__ ((__nonnull__ (1, 2)));
6399 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
6406 extern void swab (__const void *__restrict __from, void *__restrict __to,
6407 ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
6415 extern char *ctermid (char *__s) throw ();
6416 # 1103 "/usr/include/unistd.h" 3 4
6418 # 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 2 3
6420 typedef pthread_key_t __gthread_key_t;
6421 typedef pthread_once_t __gthread_once_t;
6422 typedef pthread_mutex_t __gthread_mutex_t;
6423 typedef pthread_mutex_t __gthread_recursive_mutex_t;
6424 # 88 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6425 extern __typeof(pthread_once) __gthrw_pthread_once __attribute__ ((__weakref__("pthread_once")));
6426 extern __typeof(pthread_getspecific) __gthrw_pthread_getspecific __attribute__ ((__weakref__("pthread_getspecific")));
6427 extern __typeof(pthread_setspecific) __gthrw_pthread_setspecific __attribute__ ((__weakref__("pthread_setspecific")));
6428 extern __typeof(pthread_create) __gthrw_pthread_create __attribute__ ((__weakref__("pthread_create")));
6429 extern __typeof(pthread_cancel) __gthrw_pthread_cancel __attribute__ ((__weakref__("pthread_cancel")));
6430 extern __typeof(pthread_mutex_lock) __gthrw_pthread_mutex_lock __attribute__ ((__weakref__("pthread_mutex_lock")));
6431 extern __typeof(pthread_mutex_trylock) __gthrw_pthread_mutex_trylock __attribute__ ((__weakref__("pthread_mutex_trylock")));
6432 extern __typeof(pthread_mutex_unlock) __gthrw_pthread_mutex_unlock __attribute__ ((__weakref__("pthread_mutex_unlock")));
6433 extern __typeof(pthread_mutex_init) __gthrw_pthread_mutex_init __attribute__ ((__weakref__("pthread_mutex_init")));
6436 extern __typeof(pthread_key_create) __gthrw_pthread_key_create __attribute__ ((__weakref__("pthread_key_create")));
6437 extern __typeof(pthread_key_delete) __gthrw_pthread_key_delete __attribute__ ((__weakref__("pthread_key_delete")));
6438 extern __typeof(pthread_mutexattr_init) __gthrw_pthread_mutexattr_init __attribute__ ((__weakref__("pthread_mutexattr_init")));
6439 extern __typeof(pthread_mutexattr_settype) __gthrw_pthread_mutexattr_settype __attribute__ ((__weakref__("pthread_mutexattr_settype")));
6440 extern __typeof(pthread_mutexattr_destroy) __gthrw_pthread_mutexattr_destroy __attribute__ ((__weakref__("pthread_mutexattr_destroy")));
6441 # 145 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6443 __gthread_active_p (void)
6445 static void *const __gthread_active_ptr
6446 = __extension__ (void *) &__gthrw_pthread_cancel;
6447 return __gthread_active_ptr != 0;
6449 # 512 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6451 __gthread_once (__gthread_once_t *once, void (*func) (void))
6453 if (__gthread_active_p ())
6454 return __gthrw_pthread_once (once, func);
6460 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
6462 return __gthrw_pthread_key_create (key, dtor);
6466 __gthread_key_delete (__gthread_key_t key)
6468 return __gthrw_pthread_key_delete (key);
6471 static inline void *
6472 __gthread_getspecific (__gthread_key_t key)
6474 return __gthrw_pthread_getspecific (key);
6478 __gthread_setspecific (__gthread_key_t key, const void *ptr)
6480 return __gthrw_pthread_setspecific (key, ptr);
6484 __gthread_mutex_lock (__gthread_mutex_t *mutex)
6486 if (__gthread_active_p ())
6487 return __gthrw_pthread_mutex_lock (mutex);
6493 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
6495 if (__gthread_active_p ())
6496 return __gthrw_pthread_mutex_trylock (mutex);
6502 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
6504 if (__gthread_active_p ())
6505 return __gthrw_pthread_mutex_unlock (mutex);
6509 # 594 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6511 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
6513 return __gthread_mutex_lock (mutex);
6517 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
6519 return __gthread_mutex_trylock (mutex);
6523 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
6525 return __gthread_mutex_unlock (mutex);
6527 # 115 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 2 3
6535 #pragma GCC visibility pop
6536 # 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++io.h" 2 3
6540 typedef __gthread_mutex_t __c_lock;
6543 typedef FILE __c_file;
6545 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
6546 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 1 3
6547 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6549 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6550 #pragma GCC visibility push(default)
6553 # 1 "/usr/include/ctype.h" 1 3 4
6554 # 30 "/usr/include/ctype.h" 3 4
6556 # 48 "/usr/include/ctype.h" 3 4
6559 _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
6560 _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
6561 _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
6562 _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
6563 _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
6564 _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
6565 _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
6566 _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
6567 _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
6568 _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
6569 _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
6570 _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
6572 # 81 "/usr/include/ctype.h" 3 4
6573 extern __const unsigned short int **__ctype_b_loc (void)
6574 __attribute__ ((__const));
6575 extern __const __int32_t **__ctype_tolower_loc (void)
6576 __attribute__ ((__const));
6577 extern __const __int32_t **__ctype_toupper_loc (void)
6578 __attribute__ ((__const));
6579 # 96 "/usr/include/ctype.h" 3 4
6586 extern int isalnum (int) throw ();
6587 extern int isalpha (int) throw ();
6588 extern int iscntrl (int) throw ();
6589 extern int isdigit (int) throw ();
6590 extern int islower (int) throw ();
6591 extern int isgraph (int) throw ();
6592 extern int isprint (int) throw ();
6593 extern int ispunct (int) throw ();
6594 extern int isspace (int) throw ();
6595 extern int isupper (int) throw ();
6596 extern int isxdigit (int) throw ();
6600 extern int tolower (int __c) throw ();
6603 extern int toupper (int __c) throw ();
6612 extern int isblank (int) throw ();
6619 extern int isctype (int __c, int __mask) throw ();
6626 extern int isascii (int __c) throw ();
6630 extern int toascii (int __c) throw ();
6634 extern int _toupper (int) throw ();
6635 extern int _tolower (int) throw ();
6636 # 247 "/usr/include/ctype.h" 3 4
6637 extern int isalnum_l (int, __locale_t) throw ();
6638 extern int isalpha_l (int, __locale_t) throw ();
6639 extern int iscntrl_l (int, __locale_t) throw ();
6640 extern int isdigit_l (int, __locale_t) throw ();
6641 extern int islower_l (int, __locale_t) throw ();
6642 extern int isgraph_l (int, __locale_t) throw ();
6643 extern int isprint_l (int, __locale_t) throw ();
6644 extern int ispunct_l (int, __locale_t) throw ();
6645 extern int isspace_l (int, __locale_t) throw ();
6646 extern int isupper_l (int, __locale_t) throw ();
6647 extern int isxdigit_l (int, __locale_t) throw ();
6649 extern int isblank_l (int, __locale_t) throw ();
6653 extern int __tolower_l (int __c, __locale_t __l) throw ();
6654 extern int tolower_l (int __c, __locale_t __l) throw ();
6657 extern int __toupper_l (int __c, __locale_t __l) throw ();
6658 extern int toupper_l (int __c, __locale_t __l) throw ();
6659 # 323 "/usr/include/ctype.h" 3 4
6661 # 53 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 2 3
6662 # 69 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6680 #pragma GCC visibility pop
6681 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
6682 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 1 3
6683 # 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 3
6685 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 3
6691 template<typename _Alloc>
6694 template<class _CharT>
6697 template<typename _CharT, typename _Traits = char_traits<_CharT>,
6698 typename _Alloc = allocator<_CharT> >
6701 template<> struct char_traits<char>;
6703 typedef basic_string<char> string;
6706 template<> struct char_traits<wchar_t>;
6708 typedef basic_string<wchar_t> wstring;
6711 # 50 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
6712 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 1 3
6713 # 44 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
6715 # 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
6717 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 1 3
6718 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
6720 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
6721 #pragma GCC visibility push(default)
6725 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 1 3
6726 # 48 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 3
6728 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 3
6729 #pragma GCC visibility push(default)
6730 # 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ctime" 3
6748 #pragma GCC visibility pop
6749 # 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 2 3
6752 # 1 "/usr/include/wchar.h" 1 3 4
6753 # 40 "/usr/include/wchar.h" 3 4
6754 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h" 1 3 4
6755 # 41 "/usr/include/wchar.h" 2 3 4
6763 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stddef.h" 1 3 4
6764 # 49 "/usr/include/wchar.h" 2 3 4
6765 # 93 "/usr/include/wchar.h" 3 4
6768 typedef __mbstate_t mbstate_t;
6772 # 118 "/usr/include/wchar.h" 3 4
6788 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
6789 __const wchar_t *__restrict __src) throw ();
6791 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
6792 __const wchar_t *__restrict __src, size_t __n)
6796 extern wchar_t *wcscat (wchar_t *__restrict __dest,
6797 __const wchar_t *__restrict __src) throw ();
6799 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
6800 __const wchar_t *__restrict __src, size_t __n)
6804 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
6805 throw () __attribute__ ((__pure__));
6807 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
6808 throw () __attribute__ ((__pure__));
6813 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
6816 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
6817 size_t __n) throw ();
6823 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
6824 __locale_t __loc) throw ();
6826 extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
6827 size_t __n, __locale_t __loc) throw ();
6833 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
6837 extern size_t wcsxfrm (wchar_t *__restrict __s1,
6838 __const wchar_t *__restrict __s2, size_t __n) throw ();
6847 extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
6848 __locale_t __loc) throw ();
6853 extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
6854 size_t __n, __locale_t __loc) throw ();
6857 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
6862 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
6863 throw () __attribute__ ((__pure__));
6865 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
6866 throw () __attribute__ ((__pure__));
6872 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
6873 throw () __attribute__ ((__pure__));
6879 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
6880 throw () __attribute__ ((__pure__));
6883 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
6884 throw () __attribute__ ((__pure__));
6886 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
6887 throw () __attribute__ ((__pure__));
6889 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
6890 throw () __attribute__ ((__pure__));
6893 extern wchar_t *wcstok (wchar_t *__restrict __s,
6894 __const wchar_t *__restrict __delim,
6895 wchar_t **__restrict __ptr) throw ();
6898 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
6903 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
6904 throw () __attribute__ ((__pure__));
6909 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
6910 throw () __attribute__ ((__pure__));
6916 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
6917 throw () __attribute__ ((__pure__));
6920 extern int wmemcmp (__const wchar_t *__restrict __s1,
6921 __const wchar_t *__restrict __s2, size_t __n)
6922 throw () __attribute__ ((__pure__));
6925 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
6926 __const wchar_t *__restrict __s2, size_t __n) throw ();
6930 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
6934 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
6940 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
6941 __const wchar_t *__restrict __s2, size_t __n)
6949 extern wint_t btowc (int __c) throw ();
6953 extern int wctob (wint_t __c) throw ();
6957 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
6961 extern size_t mbrtowc (wchar_t *__restrict __pwc,
6962 __const char *__restrict __s, size_t __n,
6963 mbstate_t *__p) throw ();
6966 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
6967 mbstate_t *__restrict __ps) throw ();
6970 extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
6971 mbstate_t *__restrict __ps) throw ();
6972 extern size_t mbrlen (__const char *__restrict __s, size_t __n,
6973 mbstate_t *__restrict __ps) throw ();
6975 # 341 "/usr/include/wchar.h" 3 4
6976 extern __inline size_t
6977 mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw ()
6979 { return (__ps != __null
6980 ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
6986 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
6987 __const char **__restrict __src, size_t __len,
6988 mbstate_t *__restrict __ps) throw ();
6992 extern size_t wcsrtombs (char *__restrict __dst,
6993 __const wchar_t **__restrict __src, size_t __len,
6994 mbstate_t *__restrict __ps) throw ();
7001 extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
7002 __const char **__restrict __src, size_t __nmc,
7003 size_t __len, mbstate_t *__restrict __ps) throw ();
7007 extern size_t wcsnrtombs (char *__restrict __dst,
7008 __const wchar_t **__restrict __src,
7009 size_t __nwc, size_t __len,
7010 mbstate_t *__restrict __ps) throw ();
7017 extern int wcwidth (wchar_t __c) throw ();
7021 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
7028 extern double wcstod (__const wchar_t *__restrict __nptr,
7029 wchar_t **__restrict __endptr) throw ();
7033 extern float wcstof (__const wchar_t *__restrict __nptr,
7034 wchar_t **__restrict __endptr) throw ();
7035 extern long double wcstold (__const wchar_t *__restrict __nptr,
7036 wchar_t **__restrict __endptr) throw ();
7042 extern long int wcstol (__const wchar_t *__restrict __nptr,
7043 wchar_t **__restrict __endptr, int __base) throw ();
7047 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
7048 wchar_t **__restrict __endptr, int __base)
7055 extern long long int wcstoll (__const wchar_t *__restrict __nptr,
7056 wchar_t **__restrict __endptr, int __base)
7062 extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
7063 wchar_t **__restrict __endptr,
7064 int __base) throw ();
7072 extern long long int wcstoq (__const wchar_t *__restrict __nptr,
7073 wchar_t **__restrict __endptr, int __base)
7079 extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
7080 wchar_t **__restrict __endptr,
7081 int __base) throw ();
7082 # 467 "/usr/include/wchar.h" 3 4
7083 extern long int wcstol_l (__const wchar_t *__restrict __nptr,
7084 wchar_t **__restrict __endptr, int __base,
7085 __locale_t __loc) throw ();
7087 extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
7088 wchar_t **__restrict __endptr,
7089 int __base, __locale_t __loc) throw ();
7092 extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
7093 wchar_t **__restrict __endptr,
7094 int __base, __locale_t __loc) throw ();
7097 extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
7098 wchar_t **__restrict __endptr,
7099 int __base, __locale_t __loc)
7102 extern double wcstod_l (__const wchar_t *__restrict __nptr,
7103 wchar_t **__restrict __endptr, __locale_t __loc)
7106 extern float wcstof_l (__const wchar_t *__restrict __nptr,
7107 wchar_t **__restrict __endptr, __locale_t __loc)
7110 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
7111 wchar_t **__restrict __endptr,
7112 __locale_t __loc) throw ();
7118 extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
7119 wchar_t **__restrict __endptr, int __group)
7121 extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
7122 wchar_t **__restrict __endptr, int __group)
7124 extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
7125 wchar_t **__restrict __endptr,
7126 int __group) throw ();
7130 extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,
7131 wchar_t **__restrict __endptr,
7132 int __base, int __group) throw ();
7137 extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt,
7138 wchar_t **__restrict __endptr,
7139 int __base, int __group) throw ();
7145 extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr,
7146 wchar_t **__restrict __endptr,
7147 int __base, int __group) throw ();
7153 extern unsigned long long int __wcstoull_internal (__const wchar_t *
7156 __restrict __endptr,
7158 int __group) throw ();
7167 extern __inline double
7168 wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7170 { return __wcstod_internal (__nptr, __endptr, 0); }
7171 extern __inline long int
7172 wcstol (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7174 { return __wcstol_internal (__nptr, __endptr, __base, 0); }
7175 extern __inline unsigned long int
7176 wcstoul (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7178 { return __wcstoul_internal (__nptr, __endptr, __base, 0); }
7182 extern __inline float
7183 wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7185 { return __wcstof_internal (__nptr, __endptr, 0); }
7187 extern __inline long double
7188 wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7190 { return __wcstold_internal (__nptr, __endptr, 0); }
7193 extern __inline long long int
7194 wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7196 { return __wcstoll_internal (__nptr, __endptr, __base, 0); }
7198 extern __inline unsigned long long int
7199 wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7201 { return __wcstoull_internal (__nptr, __endptr, __base, 0); }
7209 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
7213 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
7215 # 607 "/usr/include/wchar.h" 3 4
7216 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
7223 extern int fwide (__FILE *__fp, int __mode) throw ();
7230 extern int fwprintf (__FILE *__restrict __stream,
7231 __const wchar_t *__restrict __format, ...)
7237 extern int wprintf (__const wchar_t *__restrict __format, ...)
7240 extern int swprintf (wchar_t *__restrict __s, size_t __n,
7241 __const wchar_t *__restrict __format, ...)
7248 extern int vfwprintf (__FILE *__restrict __s,
7249 __const wchar_t *__restrict __format,
7250 __gnuc_va_list __arg)
7256 extern int vwprintf (__const wchar_t *__restrict __format,
7257 __gnuc_va_list __arg)
7261 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
7262 __const wchar_t *__restrict __format,
7263 __gnuc_va_list __arg)
7271 extern int fwscanf (__FILE *__restrict __stream,
7272 __const wchar_t *__restrict __format, ...)
7278 extern int wscanf (__const wchar_t *__restrict __format, ...)
7281 extern int swscanf (__const wchar_t *__restrict __s,
7282 __const wchar_t *__restrict __format, ...)
7295 extern int vfwscanf (__FILE *__restrict __s,
7296 __const wchar_t *__restrict __format,
7297 __gnuc_va_list __arg)
7303 extern int vwscanf (__const wchar_t *__restrict __format,
7304 __gnuc_va_list __arg)
7307 extern int vswscanf (__const wchar_t *__restrict __s,
7308 __const wchar_t *__restrict __format,
7309 __gnuc_va_list __arg)
7321 extern wint_t fgetwc (__FILE *__stream);
7322 extern wint_t getwc (__FILE *__stream);
7328 extern wint_t getwchar (void);
7335 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
7336 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
7342 extern wint_t putwchar (wchar_t __wc);
7350 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
7351 __FILE *__restrict __stream);
7357 extern int fputws (__const wchar_t *__restrict __ws,
7358 __FILE *__restrict __stream);
7365 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
7367 # 768 "/usr/include/wchar.h" 3 4
7368 extern wint_t getwc_unlocked (__FILE *__stream);
7369 extern wint_t getwchar_unlocked (void);
7377 extern wint_t fgetwc_unlocked (__FILE *__stream);
7385 extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
7386 # 794 "/usr/include/wchar.h" 3 4
7387 extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
7388 extern wint_t putwchar_unlocked (wchar_t __wc);
7389 # 804 "/usr/include/wchar.h" 3 4
7390 extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
7391 __FILE *__restrict __stream);
7399 extern int fputws_unlocked (__const wchar_t *__restrict __ws,
7400 __FILE *__restrict __stream);
7408 extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
7409 __const wchar_t *__restrict __format,
7410 __const struct tm *__restrict __tp) throw ();
7418 extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
7419 __const wchar_t *__restrict __format,
7420 __const struct tm *__restrict __tp,
7421 __locale_t __loc) throw ();
7422 # 858 "/usr/include/wchar.h" 3 4
7424 # 57 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 2 3
7425 # 71 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7430 # 143 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7500 wcschr(wchar_t* __p, wchar_t __c)
7501 { return wcschr(const_cast<const wchar_t*>(__p), __c); }
7506 wcspbrk(wchar_t* __s1, const wchar_t* __s2)
7507 { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
7512 wcsrchr(wchar_t* __p, wchar_t __c)
7513 { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
7518 wcsstr(wchar_t* __s1, const wchar_t* __s2)
7519 { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
7524 wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
7525 { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
7542 # 262 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7550 using __gnu_cxx::wcstold;
7551 using __gnu_cxx::wcstoll;
7552 using __gnu_cxx::wcstoull;
7558 #pragma GCC visibility pop
7559 # 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 2 3
7562 # 1 "/usr/include/stdint.h" 1 3 4
7563 # 28 "/usr/include/stdint.h" 3 4
7564 # 1 "/usr/include/bits/wordsize.h" 1 3 4
7565 # 29 "/usr/include/stdint.h" 2 3 4
7566 # 49 "/usr/include/stdint.h" 3 4
7567 typedef unsigned char uint8_t;
7568 typedef unsigned short int uint16_t;
7570 typedef unsigned int uint32_t;
7577 typedef unsigned long long int uint64_t;
7584 typedef signed char int_least8_t;
7585 typedef short int int_least16_t;
7586 typedef int int_least32_t;
7591 typedef long long int int_least64_t;
7595 typedef unsigned char uint_least8_t;
7596 typedef unsigned short int uint_least16_t;
7597 typedef unsigned int uint_least32_t;
7602 typedef unsigned long long int uint_least64_t;
7609 typedef signed char int_fast8_t;
7615 typedef int int_fast16_t;
7616 typedef int int_fast32_t;
7618 typedef long long int int_fast64_t;
7622 typedef unsigned char uint_fast8_t;
7628 typedef unsigned int uint_fast16_t;
7629 typedef unsigned int uint_fast32_t;
7631 typedef unsigned long long int uint_fast64_t;
7632 # 129 "/usr/include/stdint.h" 3 4
7633 typedef unsigned int uintptr_t;
7634 # 138 "/usr/include/stdint.h" 3 4
7636 typedef long long int intmax_t;
7638 typedef unsigned long long int uintmax_t;
7639 # 50 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 2 3
7644 # 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7645 typedef int64_t streamoff;
7651 typedef ptrdiff_t streamsize;
7653 template<typename _StateT>
7655 # 94 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7656 template<typename _StateT>
7669 : _M_off(0), _M_state() { }
7670 # 116 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7671 fpos(streamoff __off)
7672 : _M_off(__off), _M_state() { }
7675 operator streamoff() const { return _M_off; }
7680 { _M_state = __st; }
7685 { return _M_state; }
7693 operator==(const fpos& __other) const
7694 { return _M_off == __other._M_off; }
7698 operator!=(const fpos& __other) const
7699 { return _M_off != __other._M_off; }
7706 operator+=(streamoff __off)
7717 operator-=(streamoff __off)
7730 operator+(streamoff __off) const
7744 operator-(streamoff __off) const
7757 operator-(const fpos& __other) const
7758 { return _M_off - __other._M_off; }
7765 typedef fpos<mbstate_t> streampos;
7767 typedef fpos<mbstate_t> wstreampos;
7769 # 51 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
7770 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/functexcept.h" 1 3
7771 # 41 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/functexcept.h" 3
7772 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception_defines.h" 1 3
7773 # 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/functexcept.h" 2 3
7779 __throw_bad_exception(void) __attribute__((__noreturn__));
7783 __throw_bad_alloc(void) __attribute__((__noreturn__));
7787 __throw_bad_cast(void) __attribute__((__noreturn__));
7790 __throw_bad_typeid(void) __attribute__((__noreturn__));
7794 __throw_logic_error(const char*) __attribute__((__noreturn__));
7797 __throw_domain_error(const char*) __attribute__((__noreturn__));
7800 __throw_invalid_argument(const char*) __attribute__((__noreturn__));
7803 __throw_length_error(const char*) __attribute__((__noreturn__));
7806 __throw_out_of_range(const char*) __attribute__((__noreturn__));
7809 __throw_runtime_error(const char*) __attribute__((__noreturn__));
7812 __throw_range_error(const char*) __attribute__((__noreturn__));
7815 __throw_overflow_error(const char*) __attribute__((__noreturn__));
7818 __throw_underflow_error(const char*) __attribute__((__noreturn__));
7822 __throw_ios_failure(const char*) __attribute__((__noreturn__));
7824 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
7828 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7831 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7832 class basic_streambuf;
7834 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7835 class basic_istream;
7837 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7838 class basic_ostream;
7840 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7841 class basic_iostream;
7843 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7844 typename _Alloc = allocator<_CharT> >
7845 class basic_stringbuf;
7847 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7848 typename _Alloc = allocator<_CharT> >
7849 class basic_istringstream;
7851 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7852 typename _Alloc = allocator<_CharT> >
7853 class basic_ostringstream;
7855 template<typename _CharT, typename _Traits = char_traits<_CharT>,
7856 typename _Alloc = allocator<_CharT> >
7857 class basic_stringstream;
7859 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7860 class basic_filebuf;
7862 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7863 class basic_ifstream;
7865 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7866 class basic_ofstream;
7868 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7869 class basic_fstream;
7871 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7872 class istreambuf_iterator;
7874 template<typename _CharT, typename _Traits = char_traits<_CharT> >
7875 class ostreambuf_iterator;
7880 # 136 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
7881 typedef basic_ios<char> ios;
7882 typedef basic_streambuf<char> streambuf;
7883 typedef basic_istream<char> istream;
7884 typedef basic_ostream<char> ostream;
7885 typedef basic_iostream<char> iostream;
7886 typedef basic_stringbuf<char> stringbuf;
7887 typedef basic_istringstream<char> istringstream;
7888 typedef basic_ostringstream<char> ostringstream;
7889 typedef basic_stringstream<char> stringstream;
7890 typedef basic_filebuf<char> filebuf;
7891 typedef basic_ifstream<char> ifstream;
7892 typedef basic_ofstream<char> ofstream;
7893 typedef basic_fstream<char> fstream;
7896 typedef basic_ios<wchar_t> wios;
7897 typedef basic_streambuf<wchar_t> wstreambuf;
7898 typedef basic_istream<wchar_t> wistream;
7899 typedef basic_ostream<wchar_t> wostream;
7900 typedef basic_iostream<wchar_t> wiostream;
7901 typedef basic_stringbuf<wchar_t> wstringbuf;
7902 typedef basic_istringstream<wchar_t> wistringstream;
7903 typedef basic_ostringstream<wchar_t> wostringstream;
7904 typedef basic_stringstream<wchar_t> wstringstream;
7905 typedef basic_filebuf<wchar_t> wfilebuf;
7906 typedef basic_ifstream<wchar_t> wifstream;
7907 typedef basic_ofstream<wchar_t> wofstream;
7908 typedef basic_fstream<wchar_t> wfstream;
7913 #pragma GCC visibility pop
7914 # 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
7915 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_pair.h" 1 3
7916 # 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_pair.h" 3
7920 template<class _T1, class _T2>
7923 typedef _T1 first_type;
7924 typedef _T2 second_type;
7934 : first(), second() { }
7937 pair(const _T1& __a, const _T2& __b)
7938 : first(__a), second(__b) { }
7941 template<class _U1, class _U2>
7942 pair(const pair<_U1, _U2>& __p)
7943 : first(__p.first), second(__p.second) { }
7947 template<class _T1, class _T2>
7949 operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7950 { return __x.first == __y.first && __x.second == __y.second; }
7953 template<class _T1, class _T2>
7955 operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7956 { return __x.first < __y.first
7957 || (!(__y.first < __x.first) && __x.second < __y.second); }
7960 template<class _T1, class _T2>
7962 operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7963 { return !(__x == __y); }
7966 template<class _T1, class _T2>
7968 operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7969 { return __y < __x; }
7972 template<class _T1, class _T2>
7974 operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7975 { return !(__y < __x); }
7978 template<class _T1, class _T2>
7980 operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7981 { return !(__x < __y); }
7982 # 142 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_pair.h" 3
7983 template<class _T1, class _T2>
7984 inline pair<_T1, _T2>
7985 make_pair(_T1 __x, _T2 __y)
7986 { return pair<_T1, _T2>(__x, __y); }
7988 # 71 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
7989 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 1 3
7990 # 41 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 3
7992 # 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 3
7993 # 75 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/cpp_type_traits.h" 3
7994 namespace __gnu_internal
7997 typedef char __two[2];
7999 template<typename _Tp>
8000 __one __test_type(int _Tp::*);
8001 template<typename _Tp>
8002 __two& __test_type(...);
8008 template<typename _Iterator, typename _Container>
8009 class __normal_iterator;
8012 struct __true_type { };
8013 struct __false_type { };
8019 { typedef __false_type __type; };
8022 struct __truth_type<true>
8023 { typedef __true_type __type; };
8027 template<class _Sp, class _Tp>
8030 enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
8031 typedef typename __truth_type<__value>::__type __type;
8035 template<typename, typename>
8038 enum { __value = 0 };
8039 typedef __false_type __type;
8042 template<typename _Tp>
8043 struct __are_same<_Tp, _Tp>
8045 enum { __value = 1 };
8046 typedef __true_type __type;
8050 template<typename, bool>
8055 template<typename _Tp>
8056 struct __enable_if<_Tp, true>
8062 template<typename _Tp>
8065 enum { __value = 0 };
8066 typedef __false_type __type;
8070 struct __is_void<void>
8072 enum { __value = 1 };
8073 typedef __true_type __type;
8079 template<typename _Tp>
8082 enum { __value = 0 };
8083 typedef __false_type __type;
8090 struct __is_integer<bool>
8092 enum { __value = 1 };
8093 typedef __true_type __type;
8097 struct __is_integer<char>
8099 enum { __value = 1 };
8100 typedef __true_type __type;
8104 struct __is_integer<signed char>
8106 enum { __value = 1 };
8107 typedef __true_type __type;
8111 struct __is_integer<unsigned char>
8113 enum { __value = 1 };
8114 typedef __true_type __type;
8119 struct __is_integer<wchar_t>
8121 enum { __value = 1 };
8122 typedef __true_type __type;
8127 struct __is_integer<short>
8129 enum { __value = 1 };
8130 typedef __true_type __type;
8134 struct __is_integer<unsigned short>
8136 enum { __value = 1 };
8137 typedef __true_type __type;
8141 struct __is_integer<int>
8143 enum { __value = 1 };
8144 typedef __true_type __type;
8148 struct __is_integer<unsigned int>
8150 enum { __value = 1 };
8151 typedef __true_type __type;
8155 struct __is_integer<long>
8157 enum { __value = 1 };
8158 typedef __true_type __type;
8162 struct __is_integer<unsigned long>
8164 enum { __value = 1 };
8165 typedef __true_type __type;
8169 struct __is_integer<long long>
8171 enum { __value = 1 };
8172 typedef __true_type __type;
8176 struct __is_integer<unsigned long long>
8178 enum { __value = 1 };
8179 typedef __true_type __type;
8185 template<typename _Tp>
8186 struct __is_floating
8188 enum { __value = 0 };
8189 typedef __false_type __type;
8194 struct __is_floating<float>
8196 enum { __value = 1 };
8197 typedef __true_type __type;
8201 struct __is_floating<double>
8203 enum { __value = 1 };
8204 typedef __true_type __type;
8208 struct __is_floating<long double>
8210 enum { __value = 1 };
8211 typedef __true_type __type;
8217 template<typename _Tp>
8220 enum { __value = 0 };
8221 typedef __false_type __type;
8224 template<typename _Tp>
8225 struct __is_pointer<_Tp*>
8227 enum { __value = 1 };
8228 typedef __true_type __type;
8234 template<typename _Tp>
8235 struct __is_normal_iterator
8237 enum { __value = 0 };
8238 typedef __false_type __type;
8241 template<typename _Iterator, typename _Container>
8242 struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
8245 enum { __value = 1 };
8246 typedef __true_type __type;
8252 template<typename _Tp>
8253 struct __is_arithmetic
8254 : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
8260 template<typename _Tp>
8261 struct __is_fundamental
8262 : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
8268 template<typename _Tp>
8270 : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
8276 template<typename _Tp>
8281 __value = (sizeof(__gnu_internal::__test_type<_Tp>(0))
8282 != sizeof(__gnu_internal::__one))
8289 template<typename _Tp>
8295 template<typename _Up>
8302 __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
8307 # 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
8308 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 1 3
8309 # 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8311 # 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8315 # 80 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8316 struct input_iterator_tag {};
8318 struct output_iterator_tag {};
8320 struct forward_iterator_tag : public input_iterator_tag {};
8323 struct bidirectional_iterator_tag : public forward_iterator_tag {};
8326 struct random_access_iterator_tag : public bidirectional_iterator_tag {};
8327 # 104 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8328 template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t,
8329 typename _Pointer = _Tp*, typename _Reference = _Tp&>
8333 typedef _Category iterator_category;
8335 typedef _Tp value_type;
8337 typedef _Distance difference_type;
8339 typedef _Pointer pointer;
8341 typedef _Reference reference;
8350 template<typename _Iterator>
8351 struct iterator_traits
8353 typedef typename _Iterator::iterator_category iterator_category;
8354 typedef typename _Iterator::value_type value_type;
8355 typedef typename _Iterator::difference_type difference_type;
8356 typedef typename _Iterator::pointer pointer;
8357 typedef typename _Iterator::reference reference;
8360 template<typename _Tp>
8361 struct iterator_traits<_Tp*>
8363 typedef random_access_iterator_tag iterator_category;
8364 typedef _Tp value_type;
8365 typedef ptrdiff_t difference_type;
8366 typedef _Tp* pointer;
8367 typedef _Tp& reference;
8370 template<typename _Tp>
8371 struct iterator_traits<const _Tp*>
8373 typedef random_access_iterator_tag iterator_category;
8374 typedef _Tp value_type;
8375 typedef ptrdiff_t difference_type;
8376 typedef const _Tp* pointer;
8377 typedef const _Tp& reference;
8386 template<typename _Iter>
8387 inline typename iterator_traits<_Iter>::iterator_category
8388 __iterator_category(const _Iter&)
8389 { return typename iterator_traits<_Iter>::iterator_category(); }
8392 # 73 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
8393 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 1 3
8394 # 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8396 # 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8397 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/concept_check.h" 1 3
8398 # 38 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/concept_check.h" 3
8400 # 39 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/concept_check.h" 3
8401 # 69 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 2 3
8405 template<typename _InputIterator>
8406 inline typename iterator_traits<_InputIterator>::difference_type
8407 __distance(_InputIterator __first, _InputIterator __last,
8413 typename iterator_traits<_InputIterator>::difference_type __n = 0;
8414 while (__first != __last)
8422 template<typename _RandomAccessIterator>
8423 inline typename iterator_traits<_RandomAccessIterator>::difference_type
8424 __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
8425 random_access_iterator_tag)
8430 return __last - __first;
8432 # 112 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8433 template<typename _InputIterator>
8434 inline typename iterator_traits<_InputIterator>::difference_type
8435 distance(_InputIterator __first, _InputIterator __last)
8438 return std::__distance(__first, __last,
8439 std::__iterator_category(__first));
8442 template<typename _InputIterator, typename _Distance>
8444 __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
8452 template<typename _BidirectionalIterator, typename _Distance>
8454 __advance(_BidirectionalIterator& __i, _Distance __n,
8455 bidirectional_iterator_tag)
8468 template<typename _RandomAccessIterator, typename _Distance>
8470 __advance(_RandomAccessIterator& __i, _Distance __n,
8471 random_access_iterator_tag)
8478 # 170 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_funcs.h" 3
8479 template<typename _InputIterator, typename _Distance>
8481 advance(_InputIterator& __i, _Distance __n)
8484 std::__advance(__i, __n, std::__iterator_category(__i));
8487 # 74 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
8488 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 1 3
8489 # 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8492 # 91 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8493 template<typename _Iterator>
8494 class reverse_iterator
8495 : public iterator<typename iterator_traits<_Iterator>::iterator_category,
8496 typename iterator_traits<_Iterator>::value_type,
8497 typename iterator_traits<_Iterator>::difference_type,
8498 typename iterator_traits<_Iterator>::pointer,
8499 typename iterator_traits<_Iterator>::reference>
8505 typedef _Iterator iterator_type;
8506 typedef typename iterator_traits<_Iterator>::difference_type
8508 typedef typename iterator_traits<_Iterator>::reference reference;
8509 typedef typename iterator_traits<_Iterator>::pointer pointer;
8518 reverse_iterator() : current() { }
8524 reverse_iterator(iterator_type __x) : current(__x) { }
8529 reverse_iterator(const reverse_iterator& __x)
8530 : current(__x.current) { }
8536 template<typename _Iter>
8537 reverse_iterator(const reverse_iterator<_Iter>& __x)
8538 : current(__x.base()) { }
8555 _Iterator __tmp = current;
8566 { return &(operator*()); }
8588 reverse_iterator __tmp = *this;
8613 reverse_iterator __tmp = *this;
8624 operator+(difference_type __n) const
8625 { return reverse_iterator(current - __n); }
8633 operator+=(difference_type __n)
8645 operator-(difference_type __n) const
8646 { return reverse_iterator(current + __n); }
8654 operator-=(difference_type __n)
8666 operator[](difference_type __n) const
8667 { return *(*this + __n); }
8669 # 278 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8670 template<typename _Iterator>
8672 operator==(const reverse_iterator<_Iterator>& __x,
8673 const reverse_iterator<_Iterator>& __y)
8674 { return __x.base() == __y.base(); }
8676 template<typename _Iterator>
8678 operator<(const reverse_iterator<_Iterator>& __x,
8679 const reverse_iterator<_Iterator>& __y)
8680 { return __y.base() < __x.base(); }
8682 template<typename _Iterator>
8684 operator!=(const reverse_iterator<_Iterator>& __x,
8685 const reverse_iterator<_Iterator>& __y)
8686 { return !(__x == __y); }
8688 template<typename _Iterator>
8690 operator>(const reverse_iterator<_Iterator>& __x,
8691 const reverse_iterator<_Iterator>& __y)
8692 { return __y < __x; }
8694 template<typename _Iterator>
8696 operator<=(const reverse_iterator<_Iterator>& __x,
8697 const reverse_iterator<_Iterator>& __y)
8698 { return !(__y < __x); }
8700 template<typename _Iterator>
8702 operator>=(const reverse_iterator<_Iterator>& __x,
8703 const reverse_iterator<_Iterator>& __y)
8704 { return !(__x < __y); }
8706 template<typename _Iterator>
8707 inline typename reverse_iterator<_Iterator>::difference_type
8708 operator-(const reverse_iterator<_Iterator>& __x,
8709 const reverse_iterator<_Iterator>& __y)
8710 { return __y.base() - __x.base(); }
8712 template<typename _Iterator>
8713 inline reverse_iterator<_Iterator>
8714 operator+(typename reverse_iterator<_Iterator>::difference_type __n,
8715 const reverse_iterator<_Iterator>& __x)
8716 { return reverse_iterator<_Iterator>(__x.base() - __n); }
8720 template<typename _IteratorL, typename _IteratorR>
8722 operator==(const reverse_iterator<_IteratorL>& __x,
8723 const reverse_iterator<_IteratorR>& __y)
8724 { return __x.base() == __y.base(); }
8726 template<typename _IteratorL, typename _IteratorR>
8728 operator<(const reverse_iterator<_IteratorL>& __x,
8729 const reverse_iterator<_IteratorR>& __y)
8730 { return __y.base() < __x.base(); }
8732 template<typename _IteratorL, typename _IteratorR>
8734 operator!=(const reverse_iterator<_IteratorL>& __x,
8735 const reverse_iterator<_IteratorR>& __y)
8736 { return !(__x == __y); }
8738 template<typename _IteratorL, typename _IteratorR>
8740 operator>(const reverse_iterator<_IteratorL>& __x,
8741 const reverse_iterator<_IteratorR>& __y)
8742 { return __y < __x; }
8744 template<typename _IteratorL, typename _IteratorR>
8746 operator<=(const reverse_iterator<_IteratorL>& __x,
8747 const reverse_iterator<_IteratorR>& __y)
8748 { return !(__y < __x); }
8750 template<typename _IteratorL, typename _IteratorR>
8752 operator>=(const reverse_iterator<_IteratorL>& __x,
8753 const reverse_iterator<_IteratorR>& __y)
8754 { return !(__x < __y); }
8756 template<typename _IteratorL, typename _IteratorR>
8757 inline typename reverse_iterator<_IteratorL>::difference_type
8758 operator-(const reverse_iterator<_IteratorL>& __x,
8759 const reverse_iterator<_IteratorR>& __y)
8760 { return __y.base() - __x.base(); }
8761 # 382 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8762 template<typename _Container>
8763 class back_insert_iterator
8764 : public iterator<output_iterator_tag, void, void, void, void>
8767 _Container* container;
8771 typedef _Container container_type;
8775 back_insert_iterator(_Container& __x) : container(&__x) { }
8776 # 408 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8777 back_insert_iterator&
8778 operator=(typename _Container::const_reference __value)
8780 container->push_back(__value);
8785 back_insert_iterator&
8790 back_insert_iterator&
8795 back_insert_iterator
8799 # 442 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8800 template<typename _Container>
8801 inline back_insert_iterator<_Container>
8802 back_inserter(_Container& __x)
8803 { return back_insert_iterator<_Container>(__x); }
8804 # 457 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8805 template<typename _Container>
8806 class front_insert_iterator
8807 : public iterator<output_iterator_tag, void, void, void, void>
8810 _Container* container;
8814 typedef _Container container_type;
8817 explicit front_insert_iterator(_Container& __x) : container(&__x) { }
8818 # 482 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8819 front_insert_iterator&
8820 operator=(typename _Container::const_reference __value)
8822 container->push_front(__value);
8827 front_insert_iterator&
8832 front_insert_iterator&
8837 front_insert_iterator
8841 # 516 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8842 template<typename _Container>
8843 inline front_insert_iterator<_Container>
8844 front_inserter(_Container& __x)
8845 { return front_insert_iterator<_Container>(__x); }
8846 # 535 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8847 template<typename _Container>
8848 class insert_iterator
8849 : public iterator<output_iterator_tag, void, void, void, void>
8852 _Container* container;
8853 typename _Container::iterator iter;
8857 typedef _Container container_type;
8863 insert_iterator(_Container& __x, typename _Container::iterator __i)
8864 : container(&__x), iter(__i) {}
8865 # 577 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8867 operator=(const typename _Container::const_reference __value)
8869 iter = container->insert(iter, __value);
8889 # 612 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8890 template<typename _Container, typename _Iterator>
8891 inline insert_iterator<_Container>
8892 inserter(_Container& __x, _Iterator __i)
8894 return insert_iterator<_Container>(__x,
8895 typename _Container::iterator(__i));
8908 using std::iterator_traits;
8909 using std::iterator;
8910 template<typename _Iterator, typename _Container>
8911 class __normal_iterator
8914 _Iterator _M_current;
8917 typedef typename iterator_traits<_Iterator>::iterator_category
8919 typedef typename iterator_traits<_Iterator>::value_type value_type;
8920 typedef typename iterator_traits<_Iterator>::difference_type
8922 typedef typename iterator_traits<_Iterator>::reference reference;
8923 typedef typename iterator_traits<_Iterator>::pointer pointer;
8925 __normal_iterator() : _M_current(_Iterator()) { }
8928 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
8931 template<typename _Iter>
8932 __normal_iterator(const __normal_iterator<_Iter,
8933 typename std::__enable_if<_Container,
8934 (std::__are_same<_Iter,
8935 typename _Container::pointer>::__value)
8937 : _M_current(__i.base()) { }
8942 { return *_M_current; }
8946 { return _M_current; }
8957 { return __normal_iterator(_M_current++); }
8969 { return __normal_iterator(_M_current--); }
8973 operator[](const difference_type& __n) const
8974 { return _M_current[__n]; }
8977 operator+=(const difference_type& __n)
8978 { _M_current += __n; return *this; }
8981 operator+(const difference_type& __n) const
8982 { return __normal_iterator(_M_current + __n); }
8985 operator-=(const difference_type& __n)
8986 { _M_current -= __n; return *this; }
8989 operator-(const difference_type& __n) const
8990 { return __normal_iterator(_M_current - __n); }
8994 { return _M_current; }
8996 # 728 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8997 template<typename _IteratorL, typename _IteratorR, typename _Container>
8999 operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
9000 const __normal_iterator<_IteratorR, _Container>& __rhs)
9001 { return __lhs.base() == __rhs.base(); }
9003 template<typename _Iterator, typename _Container>
9005 operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
9006 const __normal_iterator<_Iterator, _Container>& __rhs)
9007 { return __lhs.base() == __rhs.base(); }
9009 template<typename _IteratorL, typename _IteratorR, typename _Container>
9011 operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9012 const __normal_iterator<_IteratorR, _Container>& __rhs)
9013 { return __lhs.base() != __rhs.base(); }
9015 template<typename _Iterator, typename _Container>
9017 operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
9018 const __normal_iterator<_Iterator, _Container>& __rhs)
9019 { return __lhs.base() != __rhs.base(); }
9022 template<typename _IteratorL, typename _IteratorR, typename _Container>
9024 operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
9025 const __normal_iterator<_IteratorR, _Container>& __rhs)
9026 { return __lhs.base() < __rhs.base(); }
9028 template<typename _Iterator, typename _Container>
9030 operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
9031 const __normal_iterator<_Iterator, _Container>& __rhs)
9032 { return __lhs.base() < __rhs.base(); }
9034 template<typename _IteratorL, typename _IteratorR, typename _Container>
9036 operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
9037 const __normal_iterator<_IteratorR, _Container>& __rhs)
9038 { return __lhs.base() > __rhs.base(); }
9040 template<typename _Iterator, typename _Container>
9042 operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
9043 const __normal_iterator<_Iterator, _Container>& __rhs)
9044 { return __lhs.base() > __rhs.base(); }
9046 template<typename _IteratorL, typename _IteratorR, typename _Container>
9048 operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9049 const __normal_iterator<_IteratorR, _Container>& __rhs)
9050 { return __lhs.base() <= __rhs.base(); }
9052 template<typename _Iterator, typename _Container>
9054 operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
9055 const __normal_iterator<_Iterator, _Container>& __rhs)
9056 { return __lhs.base() <= __rhs.base(); }
9058 template<typename _IteratorL, typename _IteratorR, typename _Container>
9060 operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9061 const __normal_iterator<_IteratorR, _Container>& __rhs)
9062 { return __lhs.base() >= __rhs.base(); }
9064 template<typename _Iterator, typename _Container>
9066 operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
9067 const __normal_iterator<_Iterator, _Container>& __rhs)
9068 { return __lhs.base() >= __rhs.base(); }
9074 template<typename _IteratorL, typename _IteratorR, typename _Container>
9075 inline typename __normal_iterator<_IteratorL, _Container>::difference_type
9076 operator-(const __normal_iterator<_IteratorL, _Container>& __lhs,
9077 const __normal_iterator<_IteratorR, _Container>& __rhs)
9078 { return __lhs.base() - __rhs.base(); }
9080 template<typename _Iterator, typename _Container>
9081 inline __normal_iterator<_Iterator, _Container>
9082 operator+(typename __normal_iterator<_Iterator, _Container>::difference_type
9083 __n, const __normal_iterator<_Iterator, _Container>& __i)
9084 { return __normal_iterator<_Iterator, _Container>(__i.base() + __n); }
9086 # 75 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
9088 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/debug/debug.h" 1 3
9089 # 77 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
9093 # 90 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9094 template<typename _Tp>
9096 swap(_Tp& __a, _Tp& __b)
9109 template<bool _BoolType>
9112 template<typename _ForwardIterator1, typename _ForwardIterator2>
9114 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9116 typedef typename iterator_traits<_ForwardIterator1>::value_type
9118 _ValueType1 __tmp = *__a;
9125 struct __iter_swap<true>
9127 template<typename _ForwardIterator1, typename _ForwardIterator2>
9129 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9134 # 140 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9135 template<typename _ForwardIterator1, typename _ForwardIterator2>
9137 iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9139 typedef typename iterator_traits<_ForwardIterator1>::value_type
9141 typedef typename iterator_traits<_ForwardIterator2>::value_type
9154 typedef typename iterator_traits<_ForwardIterator1>::reference
9156 typedef typename iterator_traits<_ForwardIterator2>::reference
9158 std::__iter_swap<__are_same<_ValueType1, _ValueType2>::__value &&
9159 __are_same<_ValueType1 &, _ReferenceType1>::__value &&
9160 __are_same<_ValueType2 &, _ReferenceType2>::__value>::
9161 iter_swap(__a, __b);
9163 # 182 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9164 template<typename _Tp>
9166 min(const _Tp& __a, const _Tp& __b)
9175 # 204 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9176 template<typename _Tp>
9178 max(const _Tp& __a, const _Tp& __b)
9187 # 226 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9188 template<typename _Tp, typename _Compare>
9190 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
9193 if (__comp(__b, __a))
9197 # 246 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9198 template<typename _Tp, typename _Compare>
9200 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
9203 if (__comp(__a, __b))
9214 template<bool, typename>
9217 template<typename _II, typename _OI>
9219 copy(_II __first, _II __last, _OI __result)
9221 for (; __first != __last; ++__result, ++__first)
9222 *__result = *__first;
9227 template<bool _BoolType>
9228 struct __copy<_BoolType, random_access_iterator_tag>
9230 template<typename _II, typename _OI>
9232 copy(_II __first, _II __last, _OI __result)
9234 typedef typename iterator_traits<_II>::difference_type _Distance;
9235 for(_Distance __n = __last - __first; __n > 0; --__n)
9237 *__result = *__first;
9246 struct __copy<true, random_access_iterator_tag>
9248 template<typename _Tp>
9250 copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9252 std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
9253 return __result + (__last - __first);
9257 template<typename _II, typename _OI>
9259 __copy_aux(_II __first, _II __last, _OI __result)
9261 typedef typename iterator_traits<_II>::value_type _ValueTypeI;
9262 typedef typename iterator_traits<_OI>::value_type _ValueTypeO;
9263 typedef typename iterator_traits<_II>::iterator_category _Category;
9264 const bool __simple = (__is_scalar<_ValueTypeI>::__value
9265 && __is_pointer<_II>::__value
9266 && __is_pointer<_OI>::__value
9267 && __are_same<_ValueTypeI, _ValueTypeO>::__value);
9269 return std::__copy<__simple, _Category>::copy(__first, __last, __result);
9272 template<bool, bool>
9273 struct __copy_normal
9275 template<typename _II, typename _OI>
9277 copy_n(_II __first, _II __last, _OI __result)
9278 { return std::__copy_aux(__first, __last, __result); }
9282 struct __copy_normal<true, false>
9284 template<typename _II, typename _OI>
9286 copy_n(_II __first, _II __last, _OI __result)
9287 { return std::__copy_aux(__first.base(), __last.base(), __result); }
9291 struct __copy_normal<false, true>
9293 template<typename _II, typename _OI>
9295 copy_n(_II __first, _II __last, _OI __result)
9296 { return _OI(std::__copy_aux(__first, __last, __result.base())); }
9300 struct __copy_normal<true, true>
9302 template<typename _II, typename _OI>
9304 copy_n(_II __first, _II __last, _OI __result)
9305 { return _OI(std::__copy_aux(__first.base(), __last.base(),
9306 __result.base())); }
9308 # 373 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9309 template<typename _InputIterator, typename _OutputIterator>
9310 inline _OutputIterator
9311 copy(_InputIterator __first, _InputIterator __last,
9312 _OutputIterator __result)
9320 const bool __in = __is_normal_iterator<_InputIterator>::__value;
9321 const bool __out = __is_normal_iterator<_OutputIterator>::__value;
9322 return std::__copy_normal<__in, __out>::copy_n(__first, __last,
9326 template<bool, typename>
9327 struct __copy_backward
9329 template<typename _BI1, typename _BI2>
9331 copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
9333 while (__first != __last)
9334 *--__result = *--__last;
9339 template<bool _BoolType>
9340 struct __copy_backward<_BoolType, random_access_iterator_tag>
9342 template<typename _BI1, typename _BI2>
9344 copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
9346 typename iterator_traits<_BI1>::difference_type __n;
9347 for (__n = __last - __first; __n > 0; --__n)
9348 *--__result = *--__last;
9354 struct __copy_backward<true, random_access_iterator_tag>
9356 template<typename _Tp>
9358 copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
9360 const ptrdiff_t _Num = __last - __first;
9361 std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
9362 return __result - _Num;
9366 template<typename _BI1, typename _BI2>
9368 __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
9370 typedef typename iterator_traits<_BI1>::value_type _ValueType1;
9371 typedef typename iterator_traits<_BI2>::value_type _ValueType2;
9372 typedef typename iterator_traits<_BI1>::iterator_category _Category;
9373 const bool __simple = (__is_scalar<_ValueType1>::__value
9374 && __is_pointer<_BI1>::__value
9375 && __is_pointer<_BI2>::__value
9376 && __are_same<_ValueType1, _ValueType2>::__value);
9378 return std::__copy_backward<__simple, _Category>::copy_b(__first, __last,
9382 template<bool, bool>
9383 struct __copy_backward_normal
9385 template<typename _BI1, typename _BI2>
9387 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9388 { return std::__copy_backward_aux(__first, __last, __result); }
9392 struct __copy_backward_normal<true, false>
9394 template<typename _BI1, typename _BI2>
9396 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9397 { return std::__copy_backward_aux(__first.base(), __last.base(),
9402 struct __copy_backward_normal<false, true>
9404 template<typename _BI1, typename _BI2>
9406 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9407 { return _BI2(std::__copy_backward_aux(__first, __last,
9408 __result.base())); }
9412 struct __copy_backward_normal<true, true>
9414 template<typename _BI1, typename _BI2>
9416 copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9417 { return _BI2(std::__copy_backward_aux(__first.base(), __last.base(),
9418 __result.base())); }
9420 # 502 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9421 template <typename _BI1, typename _BI2>
9423 copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
9433 const bool __bi1 = __is_normal_iterator<_BI1>::__value;
9434 const bool __bi2 = __is_normal_iterator<_BI2>::__value;
9435 return std::__copy_backward_normal<__bi1, __bi2>::copy_b_n(__first, __last,
9442 template<typename _ForwardIterator, typename _Tp>
9444 fill(_ForwardIterator __first, _ForwardIterator __last,
9447 for (; __first != __last; ++__first)
9455 template<typename _ForwardIterator, typename _Tp>
9457 fill(_ForwardIterator __first, _ForwardIterator __last,
9460 const _Tp __tmp = __value;
9461 for (; __first != __last; ++__first)
9465 # 558 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9466 template<typename _ForwardIterator, typename _Tp>
9468 fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
9475 const bool __scalar = __is_scalar<_Tp>::__value;
9476 std::__fill<__scalar>::fill(__first, __last, __value);
9481 fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
9484 const unsigned char __tmp = __c;
9485 std::memset(__first, __tmp, __last - __first);
9489 fill(signed char* __first, signed char* __last, const signed char& __c)
9492 const signed char __tmp = __c;
9493 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9497 fill(char* __first, char* __last, const char& __c)
9500 const char __tmp = __c;
9501 std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9507 template<typename _OutputIterator, typename _Size, typename _Tp>
9508 static _OutputIterator
9509 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9511 for (; __n > 0; --__n, ++__first)
9518 struct __fill_n<true>
9520 template<typename _OutputIterator, typename _Size, typename _Tp>
9521 static _OutputIterator
9522 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9524 const _Tp __tmp = __value;
9525 for (; __n > 0; --__n, ++__first)
9530 # 634 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9531 template<typename _OutputIterator, typename _Size, typename _Tp>
9533 fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9538 const bool __scalar = __is_scalar<_Tp>::__value;
9539 return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
9542 template<typename _Size>
9543 inline unsigned char*
9544 fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
9546 std::fill(__first, __first + __n, __c);
9547 return __first + __n;
9550 template<typename _Size>
9552 fill_n(char* __first, _Size __n, const signed char& __c)
9554 std::fill(__first, __first + __n, __c);
9555 return __first + __n;
9558 template<typename _Size>
9560 fill_n(char* __first, _Size __n, const char& __c)
9562 std::fill(__first, __first + __n, __c);
9563 return __first + __n;
9565 # 681 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9566 template<typename _InputIterator1, typename _InputIterator2>
9567 pair<_InputIterator1, _InputIterator2>
9568 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9569 _InputIterator2 __first2)
9579 while (__first1 != __last1 && *__first1 == *__first2)
9584 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9586 # 716 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9587 template<typename _InputIterator1, typename _InputIterator2,
9588 typename _BinaryPredicate>
9589 pair<_InputIterator1, _InputIterator2>
9590 mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
9591 _InputIterator2 __first2, _BinaryPredicate __binary_pred)
9598 while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
9603 return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9605 # 746 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9606 template<typename _InputIterator1, typename _InputIterator2>
9608 equal(_InputIterator1 __first1, _InputIterator1 __last1,
9609 _InputIterator2 __first2)
9619 for (; __first1 != __last1; ++__first1, ++__first2)
9620 if (!(*__first1 == *__first2))
9624 # 778 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9625 template<typename _InputIterator1, typename _InputIterator2,
9626 typename _BinaryPredicate>
9628 equal(_InputIterator1 __first1, _InputIterator1 __last1,
9629 _InputIterator2 __first2,
9630 _BinaryPredicate __binary_pred)
9637 for (; __first1 != __last1; ++__first1, ++__first2)
9638 if (!__binary_pred(*__first1, *__first2))
9642 # 810 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9643 template<typename _InputIterator1, typename _InputIterator2>
9645 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9646 _InputIterator2 __first2, _InputIterator2 __last2)
9660 for (; __first1 != __last1 && __first2 != __last2;
9661 ++__first1, ++__first2)
9663 if (*__first1 < *__first2)
9665 if (*__first2 < *__first1)
9668 return __first1 == __last1 && __first2 != __last2;
9670 # 850 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9671 template<typename _InputIterator1, typename _InputIterator2,
9674 lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9675 _InputIterator2 __first2, _InputIterator2 __last2,
9684 for (; __first1 != __last1 && __first2 != __last2;
9685 ++__first1, ++__first2)
9687 if (__comp(*__first1, *__first2))
9689 if (__comp(*__first2, *__first1))
9692 return __first1 == __last1 && __first2 != __last2;
9696 lexicographical_compare(const unsigned char* __first1,
9697 const unsigned char* __last1,
9698 const unsigned char* __first2,
9699 const unsigned char* __last2)
9704 const size_t __len1 = __last1 - __first1;
9705 const size_t __len2 = __last2 - __first2;
9706 const int __result = std::memcmp(__first1, __first2,
9707 std::min(__len1, __len2));
9708 return __result != 0 ? __result < 0 : __len1 < __len2;
9712 lexicographical_compare(const char* __first1, const char* __last1,
9713 const char* __first2, const char* __last2)
9719 return std::lexicographical_compare((const signed char*) __first1,
9720 (const signed char*) __last1,
9721 (const signed char*) __first2,
9722 (const signed char*) __last2);
9732 # 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
9733 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 1 3
9734 # 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9735 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 1 3
9736 # 42 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 3
9737 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 1 3
9738 # 40 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9739 #pragma GCC visibility push(default)
9745 # 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9749 exception() throw() { }
9750 virtual ~exception() throw();
9753 virtual const char* what() const throw();
9758 class bad_exception : public exception
9761 bad_exception() throw() { }
9764 virtual ~bad_exception() throw();
9768 typedef void (*terminate_handler) ();
9770 typedef void (*unexpected_handler) ();
9773 terminate_handler set_terminate(terminate_handler) throw();
9776 void terminate() __attribute__ ((__noreturn__));
9779 unexpected_handler set_unexpected(unexpected_handler) throw();
9782 void unexpected() __attribute__ ((__noreturn__));
9783 # 102 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9784 bool uncaught_exception() throw();
9789 # 117 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9790 void __verbose_terminate_handler ();
9795 #pragma GCC visibility pop
9796 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 2 3
9798 #pragma GCC visibility push(default)
9809 class bad_alloc : public exception
9812 bad_alloc() throw() { }
9815 virtual ~bad_alloc() throw();
9818 struct nothrow_t { };
9819 extern const nothrow_t nothrow;
9822 typedef void (*new_handler)();
9824 new_handler set_new_handler(new_handler) throw();
9826 # 84 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 3
9827 void* operator new(std::size_t) throw (std::bad_alloc);
9828 void* operator new[](std::size_t) throw (std::bad_alloc);
9829 void operator delete(void*) throw();
9830 void operator delete[](void*) throw();
9831 void* operator new(std::size_t, const std::nothrow_t&) throw();
9832 void* operator new[](std::size_t, const std::nothrow_t&) throw();
9833 void operator delete(void*, const std::nothrow_t&) throw();
9834 void operator delete[](void*, const std::nothrow_t&) throw();
9837 inline void* operator new(std::size_t, void* __p) throw() { return __p; }
9838 inline void* operator new[](std::size_t, void* __p) throw() { return __p; }
9841 inline void operator delete (void*, void*) throw() { }
9842 inline void operator delete[](void*, void*) throw() { }
9846 #pragma GCC visibility pop
9847 # 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 2 3
9857 template<typename _T1, typename _T2>
9859 _Construct(_T1* __p, const _T2& __value)
9863 ::new(static_cast<void*>(__p)) _T1(__value);
9872 template<typename _T1>
9874 _Construct(_T1* __p)
9878 ::new(static_cast<void*>(__p)) _T1();
9886 template<typename _Tp>
9888 _Destroy(_Tp* __pointer)
9889 { __pointer->~_Tp(); }
9890 # 116 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9891 template<typename _ForwardIterator>
9893 __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
9896 for (; __first != __last; ++__first)
9897 std::_Destroy(&*__first);
9899 # 134 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9900 template<typename _ForwardIterator>
9902 __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
9904 # 146 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9905 template<typename _ForwardIterator>
9907 _Destroy(_ForwardIterator __first, _ForwardIterator __last)
9909 typedef typename iterator_traits<_ForwardIterator>::value_type
9911 typedef typename std::__is_scalar<_Value_type>::__type
9912 _Has_trivial_destructor;
9914 std::__destroy_aux(__first, __last, _Has_trivial_destructor());
9916 # 166 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9917 template <typename _Tp> class allocator;
9919 template<typename _ForwardIterator, typename _Allocator>
9921 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
9924 for (; __first != __last; ++__first)
9925 __alloc.destroy(&*__first);
9928 template<typename _ForwardIterator, typename _Tp>
9930 _Destroy(_ForwardIterator __first, _ForwardIterator __last,
9933 _Destroy(__first, __last);
9938 # 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
9939 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 1 3
9940 # 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
9944 template<typename _InputIterator, typename _ForwardIterator>
9945 inline _ForwardIterator
9946 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
9947 _ForwardIterator __result,
9949 { return std::copy(__first, __last, __result); }
9951 template<typename _InputIterator, typename _ForwardIterator>
9952 inline _ForwardIterator
9953 __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
9954 _ForwardIterator __result,
9957 _ForwardIterator __cur = __result;
9960 for (; __first != __last; ++__first, ++__cur)
9961 std::_Construct(&*__cur, *__first);
9966 std::_Destroy(__result, __cur);
9970 # 105 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
9971 template<typename _InputIterator, typename _ForwardIterator>
9972 inline _ForwardIterator
9973 uninitialized_copy(_InputIterator __first, _InputIterator __last,
9974 _ForwardIterator __result)
9976 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
9977 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
9978 return std::__uninitialized_copy_aux(__first, __last, __result,
9983 uninitialized_copy(const char* __first, const char* __last, char* __result)
9985 std::memmove(__result, __first, __last - __first);
9986 return __result + (__last - __first);
9990 uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
9993 std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
9994 return __result + (__last - __first);
9999 template<typename _ForwardIterator, typename _Tp>
10001 __uninitialized_fill_aux(_ForwardIterator __first,
10002 _ForwardIterator __last,
10003 const _Tp& __x, __true_type)
10004 { std::fill(__first, __last, __x); }
10006 template<typename _ForwardIterator, typename _Tp>
10008 __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
10009 const _Tp& __x, __false_type)
10011 _ForwardIterator __cur = __first;
10014 for (; __cur != __last; ++__cur)
10015 std::_Construct(&*__cur, __x);
10019 std::_Destroy(__first, __cur);
10023 # 167 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
10024 template<typename _ForwardIterator, typename _Tp>
10026 uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
10029 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10030 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
10031 std::__uninitialized_fill_aux(__first, __last, __x, _Is_POD());
10036 template<typename _ForwardIterator, typename _Size, typename _Tp>
10038 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10039 const _Tp& __x, __true_type)
10040 { std::fill_n(__first, __n, __x); }
10042 template<typename _ForwardIterator, typename _Size, typename _Tp>
10044 __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10045 const _Tp& __x, __false_type)
10047 _ForwardIterator __cur = __first;
10050 for (; __n > 0; --__n, ++__cur)
10051 std::_Construct(&*__cur, __x);
10055 std::_Destroy(__first, __cur);
10059 # 212 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
10060 template<typename _ForwardIterator, typename _Size, typename _Tp>
10062 uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
10064 typedef typename iterator_traits<_ForwardIterator>::value_type _ValueType;
10065 typedef typename std::__is_scalar<_ValueType>::__type _Is_POD;
10066 std::__uninitialized_fill_n_aux(__first, __n, __x, _Is_POD());
10075 template<typename _InputIterator, typename _ForwardIterator,
10076 typename _Allocator>
10078 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10079 _ForwardIterator __result,
10080 _Allocator __alloc)
10082 _ForwardIterator __cur = __result;
10085 for (; __first != __last; ++__first, ++__cur)
10086 __alloc.construct(&*__cur, *__first);
10091 std::_Destroy(__result, __cur, __alloc);
10096 template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
10097 inline _ForwardIterator
10098 __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10099 _ForwardIterator __result,
10102 return std::uninitialized_copy(__first, __last, __result);
10105 template<typename _ForwardIterator, typename _Tp, typename _Allocator>
10107 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10108 const _Tp& __x, _Allocator __alloc)
10110 _ForwardIterator __cur = __first;
10113 for (; __cur != __last; ++__cur)
10114 __alloc.construct(&*__cur, __x);
10118 std::_Destroy(__first, __cur, __alloc);
10123 template<typename _ForwardIterator, typename _Tp, typename _Tp2>
10125 __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10126 const _Tp& __x, allocator<_Tp2>)
10128 std::uninitialized_fill(__first, __last, __x);
10131 template<typename _ForwardIterator, typename _Size, typename _Tp,
10132 typename _Allocator>
10134 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
10136 _Allocator __alloc)
10138 _ForwardIterator __cur = __first;
10141 for (; __n > 0; --__n, ++__cur)
10142 __alloc.construct(&*__cur, __x);
10146 std::_Destroy(__first, __cur, __alloc);
10151 template<typename _ForwardIterator, typename _Size, typename _Tp,
10154 __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
10158 std::uninitialized_fill_n(__first, __n, __x);
10160 # 323 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_uninitialized.h" 3
10161 template<typename _InputIterator1, typename _InputIterator2,
10162 typename _ForwardIterator, typename _Allocator>
10163 inline _ForwardIterator
10164 __uninitialized_copy_copy(_InputIterator1 __first1,
10165 _InputIterator1 __last1,
10166 _InputIterator2 __first2,
10167 _InputIterator2 __last2,
10168 _ForwardIterator __result,
10169 _Allocator __alloc)
10171 _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
10176 return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
10180 std::_Destroy(__result, __mid, __alloc);
10188 template<typename _ForwardIterator, typename _Tp, typename _InputIterator,
10189 typename _Allocator>
10190 inline _ForwardIterator
10191 __uninitialized_fill_copy(_ForwardIterator __result, _ForwardIterator __mid,
10192 const _Tp& __x, _InputIterator __first,
10193 _InputIterator __last,
10194 _Allocator __alloc)
10196 std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
10199 return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
10203 std::_Destroy(__result, __mid, __alloc);
10211 template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
10212 typename _Allocator>
10214 __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
10215 _ForwardIterator __first2,
10216 _ForwardIterator __last2, const _Tp& __x,
10217 _Allocator __alloc)
10219 _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
10224 std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
10228 std::_Destroy(__first2, __mid2, __alloc);
10234 # 69 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
10235 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 1 3
10236 # 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
10237 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 1 3
10238 # 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10244 template<typename _RandomAccessIterator, typename _Distance>
10246 __is_heap(_RandomAccessIterator __first, _Distance __n)
10248 _Distance __parent = 0;
10249 for (_Distance __child = 1; __child < __n; ++__child)
10251 if (__first[__parent] < __first[__child])
10253 if ((__child & 1) == 0)
10259 template<typename _RandomAccessIterator, typename _Distance,
10260 typename _StrictWeakOrdering>
10262 __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
10265 _Distance __parent = 0;
10266 for (_Distance __child = 1; __child < __n; ++__child)
10268 if (__comp(__first[__parent], __first[__child]))
10270 if ((__child & 1) == 0)
10276 template<typename _RandomAccessIterator>
10278 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10279 { return std::__is_heap(__first, std::distance(__first, __last)); }
10281 template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
10283 __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10284 _StrictWeakOrdering __comp)
10285 { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
10289 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
10291 __push_heap(_RandomAccessIterator __first,
10292 _Distance __holeIndex, _Distance __topIndex, _Tp __value)
10294 _Distance __parent = (__holeIndex - 1) / 2;
10295 while (__holeIndex > __topIndex && *(__first + __parent) < __value)
10297 *(__first + __holeIndex) = *(__first + __parent);
10298 __holeIndex = __parent;
10299 __parent = (__holeIndex - 1) / 2;
10301 *(__first + __holeIndex) = __value;
10303 # 139 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10304 template<typename _RandomAccessIterator>
10306 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10308 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10310 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10320 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
10321 _DistanceType(0), _ValueType(*(__last - 1)));
10324 template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
10327 __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10328 _Distance __topIndex, _Tp __value, _Compare __comp)
10330 _Distance __parent = (__holeIndex - 1) / 2;
10331 while (__holeIndex > __topIndex
10332 && __comp(*(__first + __parent), __value))
10334 *(__first + __holeIndex) = *(__first + __parent);
10335 __holeIndex = __parent;
10336 __parent = (__holeIndex - 1) / 2;
10338 *(__first + __holeIndex) = __value;
10340 # 187 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10341 template<typename _RandomAccessIterator, typename _Compare>
10343 push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10346 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10348 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10357 std::__push_heap(__first, _DistanceType((__last - __first) - 1),
10358 _DistanceType(0), _ValueType(*(__last - 1)), __comp);
10361 template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
10363 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10364 _Distance __len, _Tp __value)
10366 const _Distance __topIndex = __holeIndex;
10367 _Distance __secondChild = 2 * __holeIndex + 2;
10368 while (__secondChild < __len)
10370 if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
10372 *(__first + __holeIndex) = *(__first + __secondChild);
10373 __holeIndex = __secondChild;
10374 __secondChild = 2 * (__secondChild + 1);
10376 if (__secondChild == __len)
10378 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
10379 __holeIndex = __secondChild - 1;
10381 std::__push_heap(__first, __holeIndex, __topIndex, __value);
10384 template<typename _RandomAccessIterator, typename _Tp>
10386 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10387 _RandomAccessIterator __result, _Tp __value)
10389 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10391 *__result = *__first;
10392 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
10395 # 251 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10396 template<typename _RandomAccessIterator>
10398 pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10400 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10410 std::__pop_heap(__first, __last - 1, __last - 1,
10411 _ValueType(*(__last - 1)));
10414 template<typename _RandomAccessIterator, typename _Distance,
10415 typename _Tp, typename _Compare>
10417 __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10418 _Distance __len, _Tp __value, _Compare __comp)
10420 const _Distance __topIndex = __holeIndex;
10421 _Distance __secondChild = 2 * __holeIndex + 2;
10422 while (__secondChild < __len)
10424 if (__comp(*(__first + __secondChild),
10425 *(__first + (__secondChild - 1))))
10427 *(__first + __holeIndex) = *(__first + __secondChild);
10428 __holeIndex = __secondChild;
10429 __secondChild = 2 * (__secondChild + 1);
10431 if (__secondChild == __len)
10433 *(__first + __holeIndex) = *(__first + (__secondChild - 1));
10434 __holeIndex = __secondChild - 1;
10436 std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
10439 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
10441 __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10442 _RandomAccessIterator __result, _Tp __value, _Compare __comp)
10444 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10446 *__result = *__first;
10447 std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
10450 # 317 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10451 template<typename _RandomAccessIterator, typename _Compare>
10453 pop_heap(_RandomAccessIterator __first,
10454 _RandomAccessIterator __last, _Compare __comp)
10462 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10464 std::__pop_heap(__first, __last - 1, __last - 1,
10465 _ValueType(*(__last - 1)), __comp);
10467 # 342 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10468 template<typename _RandomAccessIterator>
10470 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10472 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10474 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10483 if (__last - __first < 2)
10486 const _DistanceType __len = __last - __first;
10487 _DistanceType __parent = (__len - 2) / 2;
10490 std::__adjust_heap(__first, __parent, __len,
10491 _ValueType(*(__first + __parent)));
10497 # 382 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10498 template<typename _RandomAccessIterator, typename _Compare>
10500 make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10503 typedef typename iterator_traits<_RandomAccessIterator>::value_type
10505 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10513 if (__last - __first < 2)
10516 const _DistanceType __len = __last - __first;
10517 _DistanceType __parent = (__len - 2) / 2;
10520 std::__adjust_heap(__first, __parent, __len,
10521 _ValueType(*(__first + __parent)), __comp);
10527 # 420 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10528 template<typename _RandomAccessIterator>
10530 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10540 while (__last - __first > 1)
10541 std::pop_heap(__first, __last--);
10543 # 446 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10544 template<typename _RandomAccessIterator, typename _Compare>
10546 sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10555 while (__last - __first > 1)
10556 std::pop_heap(__first, __last--, __comp);
10560 # 66 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 2 3
10561 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_tempbuf.h" 1 3
10562 # 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_tempbuf.h" 3
10563 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 1 3
10564 # 51 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
10566 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
10567 #pragma GCC visibility push(default)
10570 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/allocator.h" 1 3
10571 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/allocator.h" 3
10572 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++allocator.h" 1 3
10573 # 34 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++allocator.h" 3
10574 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ext/new_allocator.h" 1 3
10575 # 37 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/ext/new_allocator.h" 3
10576 #pragma GCC visibility push(default)
10581 namespace __gnu_cxx
10590 template<typename _Tp>
10591 class new_allocator
10594 typedef size_t size_type;
10595 typedef ptrdiff_t difference_type;
10596 typedef _Tp* pointer;
10597 typedef const _Tp* const_pointer;
10598 typedef _Tp& reference;
10599 typedef const _Tp& const_reference;
10600 typedef _Tp value_type;
10602 template<typename _Tp1>
10604 { typedef new_allocator<_Tp1> other; };
10606 new_allocator() throw() { }
10608 new_allocator(const new_allocator&) throw() { }
10610 template<typename _Tp1>
10611 new_allocator(const new_allocator<_Tp1>&) throw() { }
10613 ~new_allocator() throw() { }
10616 address(reference __x) const { return &__x; }
10619 address(const_reference __x) const { return &__x; }
10624 allocate(size_type __n, const void* = 0)
10626 if (__builtin_expect(__n > this->max_size(), false))
10627 std::__throw_bad_alloc();
10629 return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
10634 deallocate(pointer __p, size_type)
10635 { ::operator delete(__p); }
10638 max_size() const throw()
10639 { return size_t(-1) / sizeof(_Tp); }
10644 construct(pointer __p, const _Tp& __val)
10645 { ::new(__p) _Tp(__val); }
10648 destroy(pointer __p) { __p->~_Tp(); }
10651 template<typename _Tp>
10653 operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10656 template<typename _Tp>
10658 operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10662 #pragma GCC visibility pop
10663 # 35 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++allocator.h" 2 3
10664 # 53 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/allocator.h" 2 3
10668 template<typename _Tp>
10673 class allocator<void>
10676 typedef size_t size_type;
10677 typedef ptrdiff_t difference_type;
10678 typedef void* pointer;
10679 typedef const void* const_pointer;
10680 typedef void value_type;
10682 template<typename _Tp1>
10684 { typedef allocator<_Tp1> other; };
10693 template<typename _Tp>
10694 class allocator: public __gnu_cxx::new_allocator<_Tp>
10697 typedef size_t size_type;
10698 typedef ptrdiff_t difference_type;
10699 typedef _Tp* pointer;
10700 typedef const _Tp* const_pointer;
10701 typedef _Tp& reference;
10702 typedef const _Tp& const_reference;
10703 typedef _Tp value_type;
10705 template<typename _Tp1>
10707 { typedef allocator<_Tp1> other; };
10709 allocator() throw() { }
10711 allocator(const allocator& __a) throw()
10712 : __gnu_cxx::new_allocator<_Tp>(__a) { }
10714 template<typename _Tp1>
10715 allocator(const allocator<_Tp1>&) throw() { }
10717 ~allocator() throw() { }
10722 template<typename _T1, typename _T2>
10724 operator==(const allocator<_T1>&, const allocator<_T2>&)
10727 template<typename _T1, typename _T2>
10729 operator!=(const allocator<_T1>&, const allocator<_T2>&)
10736 extern template class allocator<char>;
10737 extern template class allocator<wchar_t>;
10743 # 56 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
10747 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_raw_storage_iter.h" 1 3
10748 # 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_raw_storage_iter.h" 3
10755 template <class _ForwardIterator, class _Tp>
10756 class raw_storage_iterator
10757 : public iterator<output_iterator_tag, void, void, void, void>
10760 _ForwardIterator _M_iter;
10764 raw_storage_iterator(_ForwardIterator __x)
10767 raw_storage_iterator&
10768 operator*() { return *this; }
10770 raw_storage_iterator&
10771 operator=(const _Tp& __element)
10773 std::_Construct(&*_M_iter, __element);
10777 raw_storage_iterator<_ForwardIterator, _Tp>&
10784 raw_storage_iterator<_ForwardIterator, _Tp>
10787 raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
10793 # 60 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
10795 # 1 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 1 3
10796 # 46 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10798 # 47 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10799 #pragma GCC visibility push(default)
10800 # 151 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10808 enum float_round_style
10810 round_indeterminate = -1,
10811 round_toward_zero = 0,
10812 round_to_nearest = 1,
10813 round_toward_infinity = 2,
10814 round_toward_neg_infinity = 3
10823 enum float_denorm_style
10826 denorm_indeterminate = -1,
10832 # 193 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10833 struct __numeric_limits_base
10837 static const bool is_specialized = false;
10842 static const int digits = 0;
10844 static const int digits10 = 0;
10846 static const bool is_signed = false;
10852 static const bool is_integer = false;
10857 static const bool is_exact = false;
10860 static const int radix = 0;
10864 static const int min_exponent = 0;
10867 static const int min_exponent10 = 0;
10871 static const int max_exponent = 0;
10874 static const int max_exponent10 = 0;
10877 static const bool has_infinity = false;
10880 static const bool has_quiet_NaN = false;
10883 static const bool has_signaling_NaN = false;
10885 static const float_denorm_style has_denorm = denorm_absent;
10888 static const bool has_denorm_loss = false;
10892 static const bool is_iec559 = false;
10896 static const bool is_bounded = false;
10901 static const bool is_modulo = false;
10904 static const bool traps = false;
10906 static const bool tinyness_before = false;
10910 static const float_round_style round_style = round_toward_zero;
10912 # 286 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10913 template<typename _Tp>
10914 struct numeric_limits : public __numeric_limits_base
10918 static _Tp min() throw() { return static_cast<_Tp>(0); }
10920 static _Tp max() throw() { return static_cast<_Tp>(0); }
10923 static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
10925 static _Tp round_error() throw() { return static_cast<_Tp>(0); }
10927 static _Tp infinity() throw() { return static_cast<_Tp>(0); }
10929 static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
10932 static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
10936 static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
10944 struct numeric_limits<bool>
10946 static const bool is_specialized = true;
10948 static bool min() throw()
10950 static bool max() throw()
10953 static const int digits = 1;
10954 static const int digits10 = 0;
10955 static const bool is_signed = false;
10956 static const bool is_integer = true;
10957 static const bool is_exact = true;
10958 static const int radix = 2;
10959 static bool epsilon() throw()
10961 static bool round_error() throw()
10964 static const int min_exponent = 0;
10965 static const int min_exponent10 = 0;
10966 static const int max_exponent = 0;
10967 static const int max_exponent10 = 0;
10969 static const bool has_infinity = false;
10970 static const bool has_quiet_NaN = false;
10971 static const bool has_signaling_NaN = false;
10972 static const float_denorm_style has_denorm = denorm_absent;
10973 static const bool has_denorm_loss = false;
10975 static bool infinity() throw()
10977 static bool quiet_NaN() throw()
10979 static bool signaling_NaN() throw()
10981 static bool denorm_min() throw()
10984 static const bool is_iec559 = false;
10985 static const bool is_bounded = true;
10986 static const bool is_modulo = false;
10991 static const bool traps = true;
10992 static const bool tinyness_before = false;
10993 static const float_round_style round_style = round_toward_zero;
10998 struct numeric_limits<char>
11000 static const bool is_specialized = true;
11002 static char min() throw()
11003 { return (((char)(-1) < 0) ? (char)1 << (sizeof(char) * 8 - ((char)(-1) < 0)) : (char)0); }
11004 static char max() throw()
11005 { return (((char)(-1) < 0) ? ((char)1 << (sizeof(char) * 8 - ((char)(-1) < 0))) - 1 : ~(char)0); }
11007 static const int digits = (sizeof(char) * 8 - ((char)(-1) < 0));
11008 static const int digits10 = ((sizeof(char) * 8 - ((char)(-1) < 0)) * 643 / 2136);
11009 static const bool is_signed = ((char)(-1) < 0);
11010 static const bool is_integer = true;
11011 static const bool is_exact = true;
11012 static const int radix = 2;
11013 static char epsilon() throw()
11015 static char round_error() throw()
11018 static const int min_exponent = 0;
11019 static const int min_exponent10 = 0;
11020 static const int max_exponent = 0;
11021 static const int max_exponent10 = 0;
11023 static const bool has_infinity = false;
11024 static const bool has_quiet_NaN = false;
11025 static const bool has_signaling_NaN = false;
11026 static const float_denorm_style has_denorm = denorm_absent;
11027 static const bool has_denorm_loss = false;
11029 static char infinity() throw()
11031 static char quiet_NaN() throw()
11033 static char signaling_NaN() throw()
11035 static char denorm_min() throw()
11036 { return static_cast<char>(0); }
11038 static const bool is_iec559 = false;
11039 static const bool is_bounded = true;
11040 static const bool is_modulo = true;
11042 static const bool traps = true;
11043 static const bool tinyness_before = false;
11044 static const float_round_style round_style = round_toward_zero;
11049 struct numeric_limits<signed char>
11051 static const bool is_specialized = true;
11053 static signed char min() throw()
11054 { return -127 - 1; }
11055 static signed char max() throw()
11058 static const int digits = (sizeof(signed char) * 8 - ((signed char)(-1) < 0));
11059 static const int digits10 = ((sizeof(signed char) * 8 - ((signed char)(-1) < 0)) * 643 / 2136);
11060 static const bool is_signed = true;
11061 static const bool is_integer = true;
11062 static const bool is_exact = true;
11063 static const int radix = 2;
11064 static signed char epsilon() throw()
11066 static signed char round_error() throw()
11069 static const int min_exponent = 0;
11070 static const int min_exponent10 = 0;
11071 static const int max_exponent = 0;
11072 static const int max_exponent10 = 0;
11074 static const bool has_infinity = false;
11075 static const bool has_quiet_NaN = false;
11076 static const bool has_signaling_NaN = false;
11077 static const float_denorm_style has_denorm = denorm_absent;
11078 static const bool has_denorm_loss = false;
11080 static signed char infinity() throw()
11081 { return static_cast<signed char>(0); }
11082 static signed char quiet_NaN() throw()
11083 { return static_cast<signed char>(0); }
11084 static signed char signaling_NaN() throw()
11085 { return static_cast<signed char>(0); }
11086 static signed char denorm_min() throw()
11087 { return static_cast<signed char>(0); }
11089 static const bool is_iec559 = false;
11090 static const bool is_bounded = true;
11091 static const bool is_modulo = true;
11093 static const bool traps = true;
11094 static const bool tinyness_before = false;
11095 static const float_round_style round_style = round_toward_zero;
11100 struct numeric_limits<unsigned char>
11102 static const bool is_specialized = true;
11104 static unsigned char min() throw()
11106 static unsigned char max() throw()
11107 { return 127 * 2U + 1; }
11109 static const int digits = (sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0));
11110 static const int digits10 = ((sizeof(unsigned char) * 8 - ((unsigned char)(-1) < 0)) * 643 / 2136);
11111 static const bool is_signed = false;
11112 static const bool is_integer = true;
11113 static const bool is_exact = true;
11114 static const int radix = 2;
11115 static unsigned char epsilon() throw()
11117 static unsigned char round_error() throw()
11120 static const int min_exponent = 0;
11121 static const int min_exponent10 = 0;
11122 static const int max_exponent = 0;
11123 static const int max_exponent10 = 0;
11125 static const bool has_infinity = false;
11126 static const bool has_quiet_NaN = false;
11127 static const bool has_signaling_NaN = false;
11128 static const float_denorm_style has_denorm = denorm_absent;
11129 static const bool has_denorm_loss = false;
11131 static unsigned char infinity() throw()
11132 { return static_cast<unsigned char>(0); }
11133 static unsigned char quiet_NaN() throw()
11134 { return static_cast<unsigned char>(0); }
11135 static unsigned char signaling_NaN() throw()
11136 { return static_cast<unsigned char>(0); }
11137 static unsigned char denorm_min() throw()
11138 { return static_cast<unsigned char>(0); }
11140 static const bool is_iec559 = false;
11141 static const bool is_bounded = true;
11142 static const bool is_modulo = true;
11144 static const bool traps = true;
11145 static const bool tinyness_before = false;
11146 static const float_round_style round_style = round_toward_zero;
11151 struct numeric_limits<wchar_t>
11153 static const bool is_specialized = true;
11155 static wchar_t min() throw()
11156 { return (((wchar_t)(-1) < 0) ? (wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) : (wchar_t)0); }
11157 static wchar_t max() throw()
11158 { return (((wchar_t)(-1) < 0) ? ((wchar_t)1 << (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0))) - 1 : ~(wchar_t)0); }
11160 static const int digits = (sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0));
11161 static const int digits10 = ((sizeof(wchar_t) * 8 - ((wchar_t)(-1) < 0)) * 643 / 2136);
11162 static const bool is_signed = ((wchar_t)(-1) < 0);
11163 static const bool is_integer = true;
11164 static const bool is_exact = true;
11165 static const int radix = 2;
11166 static wchar_t epsilon() throw()
11168 static wchar_t round_error() throw()
11171 static const int min_exponent = 0;
11172 static const int min_exponent10 = 0;
11173 static const int max_exponent = 0;
11174 static const int max_exponent10 = 0;
11176 static const bool has_infinity = false;
11177 static const bool has_quiet_NaN = false;
11178 static const bool has_signaling_NaN = false;
11179 static const float_denorm_style has_denorm = denorm_absent;
11180 static const bool has_denorm_loss = false;
11182 static wchar_t infinity() throw()
11183 { return wchar_t(); }
11184 static wchar_t quiet_NaN() throw()
11185 { return wchar_t(); }
11186 static wchar_t signaling_NaN() throw()
11187 { return wchar_t(); }
11188 static wchar_t denorm_min() throw()
11189 { return wchar_t(); }
11191 static const bool is_iec559 = false;
11192 static const bool is_bounded = true;
11193 static const bool is_modulo = true;
11195 static const bool traps = true;
11196 static const bool tinyness_before = false;
11197 static const float_round_style round_style = round_toward_zero;
11202 struct numeric_limits<short>
11204 static const bool is_specialized = true;
11206 static short min() throw()
11207 { return -32767 - 1; }
11208 static short max() throw()
11211 static const int digits = (sizeof(short) * 8 - ((short)(-1) < 0));
11212 static const int digits10 = ((sizeof(short) * 8 - ((short)(-1) < 0)) * 643 / 2136);
11213 static const bool is_signed = true;
11214 static const bool is_integer = true;
11215 static const bool is_exact = true;
11216 static const int radix = 2;
11217 static short epsilon() throw()
11219 static short round_error() throw()
11222 static const int min_exponent = 0;
11223 static const int min_exponent10 = 0;
11224 static const int max_exponent = 0;
11225 static const int max_exponent10 = 0;
11227 static const bool has_infinity = false;
11228 static const bool has_quiet_NaN = false;
11229 static const bool has_signaling_NaN = false;
11230 static const float_denorm_style has_denorm = denorm_absent;
11231 static const bool has_denorm_loss = false;
11233 static short infinity() throw()
11234 { return short(); }
11235 static short quiet_NaN() throw()
11236 { return short(); }
11237 static short signaling_NaN() throw()
11238 { return short(); }
11239 static short denorm_min() throw()
11240 { return short(); }
11242 static const bool is_iec559 = false;
11243 static const bool is_bounded = true;
11244 static const bool is_modulo = true;
11246 static const bool traps = true;
11247 static const bool tinyness_before = false;
11248 static const float_round_style round_style = round_toward_zero;
11253 struct numeric_limits<unsigned short>
11255 static const bool is_specialized = true;
11257 static unsigned short min() throw()
11259 static unsigned short max() throw()
11260 { return 32767 * 2U + 1; }
11262 static const int digits = (sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0));
11263 static const int digits10 = ((sizeof(unsigned short) * 8 - ((unsigned short)(-1) < 0)) * 643 / 2136);
11264 static const bool is_signed = false;
11265 static const bool is_integer = true;
11266 static const bool is_exact = true;
11267 static const int radix = 2;
11268 static unsigned short epsilon() throw()
11270 static unsigned short round_error() throw()
11273 static const int min_exponent = 0;
11274 static const int min_exponent10 = 0;
11275 static const int max_exponent = 0;
11276 static const int max_exponent10 = 0;
11278 static const bool has_infinity = false;
11279 static const bool has_quiet_NaN = false;
11280 static const bool has_signaling_NaN = false;
11281 static const float_denorm_style has_denorm = denorm_absent;
11282 static const bool has_denorm_loss = false;
11284 static unsigned short infinity() throw()
11285 { return static_cast<unsigned short>(0); }
11286 static unsigned short quiet_NaN() throw()
11287 { return static_cast<unsigned short>(0); }
11288 static unsigned short signaling_NaN() throw()
11289 { return static_cast<unsigned short>(0); }
11290 static unsigned short denorm_min() throw()
11291 { return static_cast<unsigned short>(0); }
11293 static const bool is_iec559 = false;
11294 static const bool is_bounded = true;
11295 static const bool is_modulo = true;
11297 static const bool traps = true;
11298 static const bool tinyness_before = false;
11299 static const float_round_style round_style = round_toward_zero;
11304 struct numeric_limits<int>
11306 static const bool is_specialized = true;
11308 static int min() throw()
11309 { return -2147483647 - 1; }
11310 static int max() throw()
11311 { return 2147483647; }
11313 static const int digits = (sizeof(int) * 8 - ((int)(-1) < 0));
11314 static const int digits10 = ((sizeof(int) * 8 - ((int)(-1) < 0)) * 643 / 2136);
11315 static const bool is_signed = true;
11316 static const bool is_integer = true;
11317 static const bool is_exact = true;
11318 static const int radix = 2;
11319 static int epsilon() throw()
11321 static int round_error() throw()
11324 static const int min_exponent = 0;
11325 static const int min_exponent10 = 0;
11326 static const int max_exponent = 0;
11327 static const int max_exponent10 = 0;
11329 static const bool has_infinity = false;
11330 static const bool has_quiet_NaN = false;
11331 static const bool has_signaling_NaN = false;
11332 static const float_denorm_style has_denorm = denorm_absent;
11333 static const bool has_denorm_loss = false;
11335 static int infinity() throw()
11336 { return static_cast<int>(0); }
11337 static int quiet_NaN() throw()
11338 { return static_cast<int>(0); }
11339 static int signaling_NaN() throw()
11340 { return static_cast<int>(0); }
11341 static int denorm_min() throw()
11342 { return static_cast<int>(0); }
11344 static const bool is_iec559 = false;
11345 static const bool is_bounded = true;
11346 static const bool is_modulo = true;
11348 static const bool traps = true;
11349 static const bool tinyness_before = false;
11350 static const float_round_style round_style = round_toward_zero;
11355 struct numeric_limits<unsigned int>
11357 static const bool is_specialized = true;
11359 static unsigned int min() throw()
11361 static unsigned int max() throw()
11362 { return 2147483647 * 2U + 1; }
11364 static const int digits = (sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0));
11365 static const int digits10 = ((sizeof(unsigned int) * 8 - ((unsigned int)(-1) < 0)) * 643 / 2136);
11366 static const bool is_signed = false;
11367 static const bool is_integer = true;
11368 static const bool is_exact = true;
11369 static const int radix = 2;
11370 static unsigned int epsilon() throw()
11372 static unsigned int round_error() throw()
11375 static const int min_exponent = 0;
11376 static const int min_exponent10 = 0;
11377 static const int max_exponent = 0;
11378 static const int max_exponent10 = 0;
11380 static const bool has_infinity = false;
11381 static const bool has_quiet_NaN = false;
11382 static const bool has_signaling_NaN = false;
11383 static const float_denorm_style has_denorm = denorm_absent;
11384 static const bool has_denorm_loss = false;
11386 static unsigned int infinity() throw()
11387 { return static_cast<unsigned int>(0); }
11388 static unsigned int quiet_NaN() throw()
11389 { return static_cast<unsigned int>(0); }
11390 static unsigned int signaling_NaN() throw()
11391 { return static_cast<unsigned int>(0); }
11392 static unsigned int denorm_min() throw()
11393 { return static_cast<unsigned int>(0); }
11395 static const bool is_iec559 = false;
11396 static const bool is_bounded = true;
11397 static const bool is_modulo = true;
11399 static const bool traps = true;
11400 static const bool tinyness_before = false;
11401 static const float_round_style round_style = round_toward_zero;
11406 struct numeric_limits<long>
11408 static const bool is_specialized = true;
11410 static long min() throw()
11411 { return -2147483647L - 1; }
11412 static long max() throw()
11413 { return 2147483647L; }
11415 static const int digits = (sizeof(long) * 8 - ((long)(-1) < 0));
11416 static const int digits10 = ((sizeof(long) * 8 - ((long)(-1) < 0)) * 643 / 2136);
11417 static const bool is_signed = true;
11418 static const bool is_integer = true;
11419 static const bool is_exact = true;
11420 static const int radix = 2;
11421 static long epsilon() throw()
11423 static long round_error() throw()
11426 static const int min_exponent = 0;
11427 static const int min_exponent10 = 0;
11428 static const int max_exponent = 0;
11429 static const int max_exponent10 = 0;
11431 static const bool has_infinity = false;
11432 static const bool has_quiet_NaN = false;
11433 static const bool has_signaling_NaN = false;
11434 static const float_denorm_style has_denorm = denorm_absent;
11435 static const bool has_denorm_loss = false;
11437 static long infinity() throw()
11438 { return static_cast<long>(0); }
11439 static long quiet_NaN() throw()
11440 { return static_cast<long>(0); }
11441 static long signaling_NaN() throw()
11442 { return static_cast<long>(0); }
11443 static long denorm_min() throw()
11444 { return static_cast<long>(0); }
11446 static const bool is_iec559 = false;
11447 static const bool is_bounded = true;
11448 static const bool is_modulo = true;
11450 static const bool traps = true;
11451 static const bool tinyness_before = false;
11452 static const float_round_style round_style = round_toward_zero;
11457 struct numeric_limits<unsigned long>
11459 static const bool is_specialized = true;
11461 static unsigned long min() throw()
11463 static unsigned long max() throw()
11464 { return 2147483647L * 2UL + 1; }
11466 static const int digits = (sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0));
11467 static const int digits10 = ((sizeof(unsigned long) * 8 - ((unsigned long)(-1) < 0)) * 643 / 2136);
11468 static const bool is_signed = false;
11469 static const bool is_integer = true;
11470 static const bool is_exact = true;
11471 static const int radix = 2;
11472 static unsigned long epsilon() throw()
11474 static unsigned long round_error() throw()
11477 static const int min_exponent = 0;
11478 static const int min_exponent10 = 0;
11479 static const int max_exponent = 0;
11480 static const int max_exponent10 = 0;
11482 static const bool has_infinity = false;
11483 static const bool has_quiet_NaN = false;
11484 static const bool has_signaling_NaN = false;
11485 static const float_denorm_style has_denorm = denorm_absent;
11486 static const bool has_denorm_loss = false;
11488 static unsigned long infinity() throw()
11489 { return static_cast<unsigned long>(0); }
11490 static unsigned long quiet_NaN() throw()
11491 { return static_cast<unsigned long>(0); }
11492 static unsigned long signaling_NaN() throw()
11493 { return static_cast<unsigned long>(0); }
11494 static unsigned long denorm_min() throw()
11495 { return static_cast<unsigned long>(0); }
11497 static const bool is_iec559 = false;
11498 static const bool is_bounded = true;
11499 static const bool is_modulo = true;
11501 static const bool traps = true;
11502 static const bool tinyness_before = false;
11503 static const float_round_style round_style = round_toward_zero;
11508 struct numeric_limits<long long>
11510 static const bool is_specialized = true;
11512 static long long min() throw()
11513 { return -9223372036854775807LL - 1; }
11514 static long long max() throw()
11515 { return 9223372036854775807LL; }
11517 static const int digits = (sizeof(long long) * 8 - ((long long)(-1) < 0));
11518 static const int digits10 = ((sizeof(long long) * 8 - ((long long)(-1) < 0)) * 643 / 2136);
11519 static const bool is_signed = true;
11520 static const bool is_integer = true;
11521 static const bool is_exact = true;
11522 static const int radix = 2;
11523 static long long epsilon() throw()
11525 static long long round_error() throw()
11528 static const int min_exponent = 0;
11529 static const int min_exponent10 = 0;
11530 static const int max_exponent = 0;
11531 static const int max_exponent10 = 0;
11533 static const bool has_infinity = false;
11534 static const bool has_quiet_NaN = false;
11535 static const bool has_signaling_NaN = false;
11536 static const float_denorm_style has_denorm = denorm_absent;
11537 static const bool has_denorm_loss = false;
11539 static long long infinity() throw()
11540 { return static_cast<long long>(0); }
11541 static long long quiet_NaN() throw()
11542 { return static_cast<long long>(0); }
11543 static long long signaling_NaN() throw()
11544 { return static_cast<long long>(0); }
11545 static long long denorm_min() throw()
11546 { return static_cast<long long>(0); }
11548 static const bool is_iec559 = false;
11549 static const bool is_bounded = true;
11550 static const bool is_modulo = true;
11552 static const bool traps = true;
11553 static const bool tinyness_before = false;
11554 static const float_round_style round_style = round_toward_zero;
11559 struct numeric_limits<unsigned long long>
11561 static const bool is_specialized = true;
11563 static unsigned long long min() throw()
11565 static unsigned long long max() throw()
11566 { return 9223372036854775807LL * 2ULL + 1; }
11568 static const int digits = (sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0));
11569 static const int digits10 = ((sizeof(unsigned long long) * 8 - ((unsigned long long)(-1) < 0)) * 643 / 2136);
11570 static const bool is_signed = false;
11571 static const bool is_integer = true;
11572 static const bool is_exact = true;
11573 static const int radix = 2;
11574 static unsigned long long epsilon() throw()
11576 static unsigned long long round_error() throw()
11579 static const int min_exponent = 0;
11580 static const int min_exponent10 = 0;
11581 static const int max_exponent = 0;
11582 static const int max_exponent10 = 0;
11584 static const bool has_infinity = false;
11585 static const bool has_quiet_NaN = false;
11586 static const bool has_signaling_NaN = false;
11587 static const float_denorm_style has_denorm = denorm_absent;
11588 static const bool has_denorm_loss = false;
11590 static unsigned long long infinity() throw()
11591 { return static_cast<unsigned long long>(0); }
11592 static unsigned long long quiet_NaN() throw()
11593 { return static_cast<unsigned long long>(0); }
11594 static unsigned long long signaling_NaN() throw()
11595 { return static_cast<unsigned long long>(0); }
11596 static unsigned long long denorm_min() throw()
11597 { return static_cast<unsigned long long>(0); }
11599 static const bool is_iec559 = false;
11600 static const bool is_bounded = true;
11601 static const bool is_modulo = true;
11603 static const bool traps = true;
11604 static const bool tinyness_before = false;
11605 static const float_round_style round_style = round_toward_zero;
11610 struct numeric_limits<float>
11612 static const bool is_specialized = true;
11614 static float min() throw()
11615 { return 1.17549435e-38F; }
11616 static float max() throw()
11617 { return 3.40282347e+38F; }
11619 static const int digits = 24;
11620 static const int digits10 = 6;
11621 static const bool is_signed = true;
11622 static const bool is_integer = false;
11623 static const bool is_exact = false;
11624 static const int radix = 2;
11625 static float epsilon() throw()
11626 { return 1.19209290e-7F; }
11627 static float round_error() throw()
11630 static const int min_exponent = (-125);
11631 static const int min_exponent10 = (-37);
11632 static const int max_exponent = 128;
11633 static const int max_exponent10 = 38;
11635 static const bool has_infinity = 1;
11636 static const bool has_quiet_NaN = 1;
11637 static const bool has_signaling_NaN = has_quiet_NaN;
11638 static const float_denorm_style has_denorm
11639 = bool(1.40129846e-45F) ? denorm_present : denorm_absent;
11640 static const bool has_denorm_loss = false;
11642 static float infinity() throw()
11643 { return __builtin_huge_valf (); }
11644 static float quiet_NaN() throw()
11645 { return __builtin_nanf (""); }
11646 static float signaling_NaN() throw()
11647 { return __builtin_nansf (""); }
11648 static float denorm_min() throw()
11649 { return 1.40129846e-45F; }
11651 static const bool is_iec559
11652 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11653 static const bool is_bounded = true;
11654 static const bool is_modulo = false;
11656 static const bool traps = false;
11657 static const bool tinyness_before = false;
11658 static const float_round_style round_style = round_to_nearest;
11667 struct numeric_limits<double>
11669 static const bool is_specialized = true;
11671 static double min() throw()
11672 { return 2.2250738585072014e-308; }
11673 static double max() throw()
11674 { return 1.7976931348623157e+308; }
11676 static const int digits = 53;
11677 static const int digits10 = 15;
11678 static const bool is_signed = true;
11679 static const bool is_integer = false;
11680 static const bool is_exact = false;
11681 static const int radix = 2;
11682 static double epsilon() throw()
11683 { return 2.2204460492503131e-16; }
11684 static double round_error() throw()
11687 static const int min_exponent = (-1021);
11688 static const int min_exponent10 = (-307);
11689 static const int max_exponent = 1024;
11690 static const int max_exponent10 = 308;
11692 static const bool has_infinity = 1;
11693 static const bool has_quiet_NaN = 1;
11694 static const bool has_signaling_NaN = has_quiet_NaN;
11695 static const float_denorm_style has_denorm
11696 = bool(4.9406564584124654e-324) ? denorm_present : denorm_absent;
11697 static const bool has_denorm_loss = false;
11699 static double infinity() throw()
11700 { return __builtin_huge_val(); }
11701 static double quiet_NaN() throw()
11702 { return __builtin_nan (""); }
11703 static double signaling_NaN() throw()
11704 { return __builtin_nans (""); }
11705 static double denorm_min() throw()
11706 { return 4.9406564584124654e-324; }
11708 static const bool is_iec559
11709 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11710 static const bool is_bounded = true;
11711 static const bool is_modulo = false;
11713 static const bool traps = false;
11714 static const bool tinyness_before = false;
11715 static const float_round_style round_style = round_to_nearest;
11724 struct numeric_limits<long double>
11726 static const bool is_specialized = true;
11728 static long double min() throw()
11729 { return 3.36210314311209350626e-4932L; }
11730 static long double max() throw()
11731 { return 1.18973149535723176502e+4932L; }
11733 static const int digits = 64;
11734 static const int digits10 = 18;
11735 static const bool is_signed = true;
11736 static const bool is_integer = false;
11737 static const bool is_exact = false;
11738 static const int radix = 2;
11739 static long double epsilon() throw()
11740 { return 1.08420217248550443401e-19L; }
11741 static long double round_error() throw()
11744 static const int min_exponent = (-16381);
11745 static const int min_exponent10 = (-4931);
11746 static const int max_exponent = 16384;
11747 static const int max_exponent10 = 4932;
11749 static const bool has_infinity = 1;
11750 static const bool has_quiet_NaN = 1;
11751 static const bool has_signaling_NaN = has_quiet_NaN;
11752 static const float_denorm_style has_denorm
11753 = bool(3.64519953188247460253e-4951L) ? denorm_present : denorm_absent;
11754 static const bool has_denorm_loss
11757 static long double infinity() throw()
11758 { return __builtin_huge_vall (); }
11759 static long double quiet_NaN() throw()
11760 { return __builtin_nanl (""); }
11761 static long double signaling_NaN() throw()
11762 { return __builtin_nansl (""); }
11763 static long double denorm_min() throw()
11764 { return 3.64519953188247460253e-4951L; }
11766 static const bool is_iec559
11767 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
11768 static const bool is_bounded = true;
11769 static const bool is_modulo = false;
11771 static const bool traps = false;
11772 static const bool tinyness_before = false;
11773 static const float_round_style round_style = round_to_nearest;
11788 #pragma GCC visibility pop
11789 # 62 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
11793 # 73 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11794 template<typename _Tp>
11795 pair<_Tp*, ptrdiff_t>
11796 __get_temporary_buffer(ptrdiff_t __len, _Tp*)
11798 const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
11804 _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
11807 return pair<_Tp*, ptrdiff_t>(__tmp, __len);
11810 return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
11812 # 109 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11813 template<typename _Tp>
11814 inline pair<_Tp*, ptrdiff_t>
11815 get_temporary_buffer(ptrdiff_t __len)
11816 { return std::__get_temporary_buffer(__len, static_cast<_Tp*>(0)); }
11817 # 121 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11818 template<typename _Tp>
11820 return_temporary_buffer(_Tp* __p)
11821 { ::operator delete(__p, nothrow); }
11822 # 133 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11823 template<typename _Tp1>
11824 struct auto_ptr_ref
11829 auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
11831 # 174 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11832 template<typename _Tp>
11840 typedef _Tp element_type;
11849 auto_ptr(element_type* __p = 0) throw() : _M_ptr(__p) { }
11850 # 200 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11851 auto_ptr(auto_ptr& __a) throw() : _M_ptr(__a.release()) { }
11852 # 212 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11853 template<typename _Tp1>
11854 auto_ptr(auto_ptr<_Tp1>& __a) throw() : _M_ptr(__a.release()) { }
11855 # 223 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11857 operator=(auto_ptr& __a) throw()
11859 reset(__a.release());
11862 # 240 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11863 template<typename _Tp1>
11865 operator=(auto_ptr<_Tp1>& __a) throw()
11867 reset(__a.release());
11870 # 260 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11871 ~auto_ptr() { delete _M_ptr; }
11872 # 270 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11874 operator*() const throw()
11887 operator->() const throw()
11892 # 300 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11894 get() const throw() { return _M_ptr; }
11895 # 314 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11899 element_type* __tmp = _M_ptr;
11903 # 329 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11905 reset(element_type* __p = 0) throw()
11913 # 350 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11914 auto_ptr(auto_ptr_ref<element_type> __ref) throw()
11915 : _M_ptr(__ref._M_ptr) { }
11918 operator=(auto_ptr_ref<element_type> __ref) throw()
11920 if (__ref._M_ptr != this->get())
11923 _M_ptr = __ref._M_ptr;
11928 template<typename _Tp1>
11929 operator auto_ptr_ref<_Tp1>() throw()
11930 { return auto_ptr_ref<_Tp1>(this->release()); }
11932 template<typename _Tp1>
11933 operator auto_ptr<_Tp1>() throw()
11934 { return auto_ptr<_Tp1>(this->release()); }
11938 #pragma GCC visibility pop
11939 # 65 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_tempbuf.h" 2 3
11950 template<typename _ForwardIterator, typename _Tp>
11951 class _Temporary_buffer
11957 typedef _Tp value_type;
11958 typedef value_type* pointer;
11959 typedef pointer iterator;
11960 typedef ptrdiff_t size_type;
11963 size_type _M_original_len;
11968 _M_initialize_buffer(const _Tp&, __true_type) { }
11971 _M_initialize_buffer(const _Tp& val, __false_type)
11972 { std::uninitialized_fill_n(_M_buffer, _M_len, val); }
11982 requested_size() const
11983 { return _M_original_len; }
11988 { return _M_buffer; }
11993 { return _M_buffer + _M_len; }
11999 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
12001 ~_Temporary_buffer()
12003 std::_Destroy(_M_buffer, _M_buffer + _M_len);
12004 std::return_temporary_buffer(_M_buffer);
12009 _Temporary_buffer(const _Temporary_buffer&);
12012 operator=(const _Temporary_buffer&);
12016 template<typename _ForwardIterator, typename _Tp>
12017 _Temporary_buffer<_ForwardIterator, _Tp>::
12018 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
12019 : _M_original_len(std::distance(__first, __last)),
12020 _M_len(0), _M_buffer(0)
12023 typedef typename std::__is_scalar<_Tp>::__type _Trivial;
12027 pair<pointer, size_type> __p(get_temporary_buffer<
12028 value_type>(_M_original_len));
12029 _M_buffer = __p.first;
12030 _M_len = __p.second;
12032 _M_initialize_buffer(*__first, _Trivial());
12036 std::return_temporary_buffer(_M_buffer);
12043 # 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 2 3
12050 # 85 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12051 template<typename _Tp>
12053 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
12060 else if (__a < __c)
12064 else if (__a < __c)
12066 else if (__b < __c)
12071 # 119 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12072 template<typename _Tp, typename _Compare>
12074 __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
12078 if (__comp(__a, __b))
12079 if (__comp(__b, __c))
12081 else if (__comp(__a, __c))
12085 else if (__comp(__a, __c))
12087 else if (__comp(__b, __c))
12092 # 151 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12093 template<typename _InputIterator, typename _Function>
12095 for_each(_InputIterator __first, _InputIterator __last, _Function __f)
12100 for ( ; __first != __last; ++__first)
12110 template<typename _InputIterator, typename _Tp>
12111 inline _InputIterator
12112 __find(_InputIterator __first, _InputIterator __last,
12113 const _Tp& __val, input_iterator_tag)
12115 while (__first != __last && !(*__first == __val))
12125 template<typename _InputIterator, typename _Predicate>
12126 inline _InputIterator
12127 __find_if(_InputIterator __first, _InputIterator __last,
12128 _Predicate __pred, input_iterator_tag)
12130 while (__first != __last && !__pred(*__first))
12140 template<typename _RandomAccessIterator, typename _Tp>
12141 _RandomAccessIterator
12142 __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
12143 const _Tp& __val, random_access_iterator_tag)
12145 typename iterator_traits<_RandomAccessIterator>::difference_type
12146 __trip_count = (__last - __first) >> 2;
12148 for ( ; __trip_count > 0 ; --__trip_count)
12150 if (*__first == __val)
12154 if (*__first == __val)
12158 if (*__first == __val)
12162 if (*__first == __val)
12167 switch (__last - __first)
12170 if (*__first == __val)
12174 if (*__first == __val)
12178 if (*__first == __val)
12192 template<typename _RandomAccessIterator, typename _Predicate>
12193 _RandomAccessIterator
12194 __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
12195 _Predicate __pred, random_access_iterator_tag)
12197 typename iterator_traits<_RandomAccessIterator>::difference_type
12198 __trip_count = (__last - __first) >> 2;
12200 for ( ; __trip_count > 0 ; --__trip_count)
12202 if (__pred(*__first))
12206 if (__pred(*__first))
12210 if (__pred(*__first))
12214 if (__pred(*__first))
12219 switch (__last - __first)
12222 if (__pred(*__first))
12226 if (__pred(*__first))
12230 if (__pred(*__first))
12238 # 305 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12239 template<typename _InputIterator, typename _Tp>
12240 inline _InputIterator
12241 find(_InputIterator __first, _InputIterator __last,
12249 return std::__find(__first, __last, __val,
12250 std::__iterator_category(__first));
12252 # 327 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12253 template<typename _InputIterator, typename _Predicate>
12254 inline _InputIterator
12255 find_if(_InputIterator __first, _InputIterator __last,
12263 return std::__find_if(__first, __last, __pred,
12264 std::__iterator_category(__first));
12266 # 349 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12267 template<typename _ForwardIterator>
12269 adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
12276 if (__first == __last)
12278 _ForwardIterator __next = __first;
12279 while(++__next != __last)
12281 if (*__first == *__next)
12287 # 380 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12288 template<typename _ForwardIterator, typename _BinaryPredicate>
12290 adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
12291 _BinaryPredicate __binary_pred)
12299 if (__first == __last)
12301 _ForwardIterator __next = __first;
12302 while(++__next != __last)
12304 if (__binary_pred(*__first, *__next))
12310 # 411 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12311 template<typename _InputIterator, typename _Tp>
12312 typename iterator_traits<_InputIterator>::difference_type
12313 count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
12320 typename iterator_traits<_InputIterator>::difference_type __n = 0;
12321 for ( ; __first != __last; ++__first)
12322 if (*__first == __value)
12326 # 435 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12327 template<typename _InputIterator, typename _Predicate>
12328 typename iterator_traits<_InputIterator>::difference_type
12329 count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)
12336 typename iterator_traits<_InputIterator>::difference_type __n = 0;
12337 for ( ; __first != __last; ++__first)
12338 if (__pred(*__first))
12342 # 474 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12343 template<typename _ForwardIterator1, typename _ForwardIterator2>
12345 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12346 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
12357 if (__first1 == __last1 || __first2 == __last2)
12361 _ForwardIterator2 __tmp(__first2);
12363 if (__tmp == __last2)
12364 return std::find(__first1, __last1, *__first2);
12367 _ForwardIterator2 __p1, __p;
12368 __p1 = __first2; ++__p1;
12369 _ForwardIterator1 __current = __first1;
12371 while (__first1 != __last1)
12373 __first1 = std::find(__first1, __last1, *__first2);
12374 if (__first1 == __last1)
12378 __current = __first1;
12379 if (++__current == __last1)
12382 while (*__current == *__p)
12384 if (++__p == __last2)
12386 if (++__current == __last1)
12393 # 545 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12394 template<typename _ForwardIterator1, typename _ForwardIterator2,
12395 typename _BinaryPredicate>
12397 search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12398 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
12399 _BinaryPredicate __predicate)
12411 if (__first1 == __last1 || __first2 == __last2)
12415 _ForwardIterator2 __tmp(__first2);
12417 if (__tmp == __last2)
12419 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
12425 _ForwardIterator2 __p1, __p;
12426 __p1 = __first2; ++__p1;
12427 _ForwardIterator1 __current = __first1;
12429 while (__first1 != __last1)
12431 while (__first1 != __last1)
12433 if (__predicate(*__first1, *__first2))
12437 while (__first1 != __last1 && !__predicate(*__first1, *__first2))
12439 if (__first1 == __last1)
12443 __current = __first1;
12444 if (++__current == __last1)
12447 while (__predicate(*__current, *__p))
12449 if (++__p == __last2)
12451 if (++__current == __last1)
12458 # 617 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12459 template<typename _ForwardIterator, typename _Integer, typename _Tp>
12461 __search_n(_ForwardIterator __first, _ForwardIterator __last,
12462 _Integer __count, const _Tp& __val,
12463 std::forward_iterator_tag)
12465 __first = std::find(__first, __last, __val);
12466 while (__first != __last)
12468 typename iterator_traits<_ForwardIterator>::difference_type
12470 _ForwardIterator __i = __first;
12472 while (__i != __last && __n != 1 && *__i == __val)
12481 __first = std::find(++__i, __last, __val);
12485 # 651 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12486 template<typename _RandomAccessIter, typename _Integer, typename _Tp>
12488 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
12489 _Integer __count, const _Tp& __val,
12490 std::random_access_iterator_tag)
12493 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
12496 _DistanceType __tailSize = __last - __first;
12497 const _DistanceType __pattSize = __count;
12499 if (__tailSize < __pattSize)
12502 const _DistanceType __skipOffset = __pattSize - 1;
12503 _RandomAccessIter __lookAhead = __first + __skipOffset;
12504 __tailSize -= __pattSize;
12510 while (!(*__lookAhead == __val))
12512 if (__tailSize < __pattSize)
12514 __lookAhead += __pattSize;
12515 __tailSize -= __pattSize;
12517 _DistanceType __remainder = __skipOffset;
12518 for (_RandomAccessIter __backTrack = __lookAhead - 1;
12519 *__backTrack == __val; --__backTrack)
12521 if (--__remainder == 0)
12522 return (__lookAhead - __skipOffset);
12524 if (__remainder > __tailSize)
12526 __lookAhead += __remainder;
12527 __tailSize -= __remainder;
12530 # 709 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12531 template<typename _ForwardIterator, typename _Integer, typename _Tp>
12533 search_n(_ForwardIterator __first, _ForwardIterator __last,
12534 _Integer __count, const _Tp& __val)
12545 return std::find(__first, __last, __val);
12546 return std::__search_n(__first, __last, __count, __val,
12547 std::__iterator_category(__first));
12549 # 736 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12550 template<typename _ForwardIterator, typename _Integer, typename _Tp,
12551 typename _BinaryPredicate>
12553 __search_n(_ForwardIterator __first, _ForwardIterator __last,
12554 _Integer __count, const _Tp& __val,
12555 _BinaryPredicate __binary_pred, std::forward_iterator_tag)
12557 while (__first != __last && !__binary_pred(*__first, __val))
12560 while (__first != __last)
12562 typename iterator_traits<_ForwardIterator>::difference_type
12564 _ForwardIterator __i = __first;
12566 while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
12576 while (__first != __last && !__binary_pred(*__first, __val))
12581 # 776 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12582 template<typename _RandomAccessIter, typename _Integer, typename _Tp,
12583 typename _BinaryPredicate>
12585 __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
12586 _Integer __count, const _Tp& __val,
12587 _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
12590 typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
12593 _DistanceType __tailSize = __last - __first;
12594 const _DistanceType __pattSize = __count;
12596 if (__tailSize < __pattSize)
12599 const _DistanceType __skipOffset = __pattSize - 1;
12600 _RandomAccessIter __lookAhead = __first + __skipOffset;
12601 __tailSize -= __pattSize;
12607 while (!__binary_pred(*__lookAhead, __val))
12609 if (__tailSize < __pattSize)
12611 __lookAhead += __pattSize;
12612 __tailSize -= __pattSize;
12614 _DistanceType __remainder = __skipOffset;
12615 for (_RandomAccessIter __backTrack = __lookAhead - 1;
12616 __binary_pred(*__backTrack, __val); --__backTrack)
12618 if (--__remainder == 0)
12619 return (__lookAhead - __skipOffset);
12621 if (__remainder > __tailSize)
12623 __lookAhead += __remainder;
12624 __tailSize -= __remainder;
12627 # 837 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12628 template<typename _ForwardIterator, typename _Integer, typename _Tp,
12629 typename _BinaryPredicate>
12631 search_n(_ForwardIterator __first, _ForwardIterator __last,
12632 _Integer __count, const _Tp& __val,
12633 _BinaryPredicate __binary_pred)
12645 while (__first != __last && !__binary_pred(*__first, __val))
12649 return std::__search_n(__first, __last, __count, __val, __binary_pred,
12650 std::__iterator_category(__first));
12652 # 873 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12653 template<typename _ForwardIterator1, typename _ForwardIterator2>
12655 swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12656 _ForwardIterator2 __first2)
12671 for ( ; __first1 != __last1; ++__first1, ++__first2)
12672 std::iter_swap(__first1, __first2);
12675 # 911 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12676 template<typename _InputIterator, typename _OutputIterator,
12677 typename _UnaryOperation>
12679 transform(_InputIterator __first, _InputIterator __last,
12680 _OutputIterator __result, _UnaryOperation __unary_op)
12689 for ( ; __first != __last; ++__first, ++__result)
12690 *__result = __unary_op(*__first);
12693 # 946 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12694 template<typename _InputIterator1, typename _InputIterator2,
12695 typename _OutputIterator, typename _BinaryOperation>
12697 transform(_InputIterator1 __first1, _InputIterator1 __last1,
12698 _InputIterator2 __first2, _OutputIterator __result,
12699 _BinaryOperation __binary_op)
12709 for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
12710 *__result = __binary_op(*__first1, *__first2);
12713 # 978 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12714 template<typename _ForwardIterator, typename _Tp>
12716 replace(_ForwardIterator __first, _ForwardIterator __last,
12717 const _Tp& __old_value, const _Tp& __new_value)
12728 for ( ; __first != __last; ++__first)
12729 if (*__first == __old_value)
12730 *__first = __new_value;
12732 # 1009 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12733 template<typename _ForwardIterator, typename _Predicate, typename _Tp>
12735 replace_if(_ForwardIterator __first, _ForwardIterator __last,
12736 _Predicate __pred, const _Tp& __new_value)
12747 for ( ; __first != __last; ++__first)
12748 if (__pred(*__first))
12749 *__first = __new_value;
12751 # 1042 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12752 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
12754 replace_copy(_InputIterator __first, _InputIterator __last,
12755 _OutputIterator __result,
12756 const _Tp& __old_value, const _Tp& __new_value)
12766 for ( ; __first != __last; ++__first, ++__result)
12767 if (*__first == __old_value)
12768 *__result = __new_value;
12770 *__result = *__first;
12773 # 1078 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12774 template<typename _InputIterator, typename _OutputIterator,
12775 typename _Predicate, typename _Tp>
12777 replace_copy_if(_InputIterator __first, _InputIterator __last,
12778 _OutputIterator __result,
12779 _Predicate __pred, const _Tp& __new_value)
12789 for ( ; __first != __last; ++__first, ++__result)
12790 if (__pred(*__first))
12791 *__result = __new_value;
12793 *__result = *__first;
12796 # 1112 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12797 template<typename _ForwardIterator, typename _Generator>
12799 generate(_ForwardIterator __first, _ForwardIterator __last,
12808 for ( ; __first != __last; ++__first)
12809 *__first = __gen();
12811 # 1138 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12812 template<typename _OutputIterator, typename _Size, typename _Generator>
12814 generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
12821 for ( ; __n > 0; --__n, ++__first)
12822 *__first = __gen();
12825 # 1165 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12826 template<typename _InputIterator, typename _OutputIterator, typename _Tp>
12828 remove_copy(_InputIterator __first, _InputIterator __last,
12829 _OutputIterator __result, const _Tp& __value)
12839 for ( ; __first != __last; ++__first)
12840 if (!(*__first == __value))
12842 *__result = *__first;
12847 # 1201 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12848 template<typename _InputIterator, typename _OutputIterator,
12849 typename _Predicate>
12851 remove_copy_if(_InputIterator __first, _InputIterator __last,
12852 _OutputIterator __result, _Predicate __pred)
12862 for ( ; __first != __last; ++__first)
12863 if (!__pred(*__first))
12865 *__result = *__first;
12870 # 1240 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12871 template<typename _ForwardIterator, typename _Tp>
12873 remove(_ForwardIterator __first, _ForwardIterator __last,
12874 const _Tp& __value)
12883 __first = std::find(__first, __last, __value);
12884 _ForwardIterator __i = __first;
12885 return __first == __last ? __first
12886 : std::remove_copy(++__i, __last,
12889 # 1275 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12890 template<typename _ForwardIterator, typename _Predicate>
12892 remove_if(_ForwardIterator __first, _ForwardIterator __last,
12902 __first = std::find_if(__first, __last, __pred);
12903 _ForwardIterator __i = __first;
12904 return __first == __last ? __first
12905 : std::remove_copy_if(++__i, __last,
12908 # 1301 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12909 template<typename _InputIterator, typename _OutputIterator>
12911 __unique_copy(_InputIterator __first, _InputIterator __last,
12912 _OutputIterator __result,
12913 output_iterator_tag)
12916 typename iterator_traits<_InputIterator>::value_type __value = *__first;
12917 *__result = __value;
12918 while (++__first != __last)
12919 if (!(__value == *__first))
12921 __value = *__first;
12922 *++__result = __value;
12926 # 1326 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12927 template<typename _InputIterator, typename _ForwardIterator>
12929 __unique_copy(_InputIterator __first, _InputIterator __last,
12930 _ForwardIterator __result,
12931 forward_iterator_tag)
12934 *__result = *__first;
12935 while (++__first != __last)
12936 if (!(*__result == *__first))
12937 *++__result = *__first;
12940 # 1348 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12941 template<typename _InputIterator, typename _OutputIterator,
12942 typename _BinaryPredicate>
12944 __unique_copy(_InputIterator __first, _InputIterator __last,
12945 _OutputIterator __result,
12946 _BinaryPredicate __binary_pred,
12947 output_iterator_tag)
12954 typename iterator_traits<_InputIterator>::value_type __value = *__first;
12955 *__result = __value;
12956 while (++__first != __last)
12957 if (!__binary_pred(__value, *__first))
12959 __value = *__first;
12960 *++__result = __value;
12964 # 1380 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12965 template<typename _InputIterator, typename _ForwardIterator,
12966 typename _BinaryPredicate>
12968 __unique_copy(_InputIterator __first, _InputIterator __last,
12969 _ForwardIterator __result,
12970 _BinaryPredicate __binary_pred,
12971 forward_iterator_tag)
12978 *__result = *__first;
12979 while (++__first != __last)
12980 if (!__binary_pred(*__result, *__first)) *++__result = *__first;
12983 # 1412 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12984 template<typename _InputIterator, typename _OutputIterator>
12985 inline _OutputIterator
12986 unique_copy(_InputIterator __first, _InputIterator __last,
12987 _OutputIterator __result)
12997 typedef typename iterator_traits<_OutputIterator>::iterator_category
13000 if (__first == __last) return __result;
13001 return std::__unique_copy(__first, __last, __result, _IterType());
13003 # 1447 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13004 template<typename _InputIterator, typename _OutputIterator,
13005 typename _BinaryPredicate>
13006 inline _OutputIterator
13007 unique_copy(_InputIterator __first, _InputIterator __last,
13008 _OutputIterator __result,
13009 _BinaryPredicate __binary_pred)
13017 typedef typename iterator_traits<_OutputIterator>::iterator_category
13020 if (__first == __last) return __result;
13021 return std::__unique_copy(__first, __last, __result,
13022 __binary_pred, _IterType());
13024 # 1481 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13025 template<typename _ForwardIterator>
13027 unique(_ForwardIterator __first, _ForwardIterator __last)
13037 __first = std::adjacent_find(__first, __last);
13038 if (__first == __last)
13042 _ForwardIterator __dest = __first;
13044 while (++__first != __last)
13045 if (!(*__dest == *__first))
13046 *++__dest = *__first;
13049 # 1520 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13050 template<typename _ForwardIterator, typename _BinaryPredicate>
13052 unique(_ForwardIterator __first, _ForwardIterator __last,
13053 _BinaryPredicate __binary_pred)
13064 __first = std::adjacent_find(__first, __last, __binary_pred);
13065 if (__first == __last)
13069 _ForwardIterator __dest = __first;
13071 while (++__first != __last)
13072 if (!__binary_pred(*__dest, *__first))
13073 *++__dest = *__first;
13076 # 1554 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13077 template<typename _BidirectionalIterator>
13079 __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
13080 bidirectional_iterator_tag)
13083 if (__first == __last || __first == --__last)
13087 std::iter_swap(__first, __last);
13091 # 1576 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13092 template<typename _RandomAccessIterator>
13094 __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
13095 random_access_iterator_tag)
13097 if (__first == __last)
13100 while (__first < __last)
13102 std::iter_swap(__first, __last);
13107 # 1603 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13108 template<typename _BidirectionalIterator>
13110 reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
13116 std::__reverse(__first, __last, std::__iterator_category(__first));
13118 # 1629 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13119 template<typename _BidirectionalIterator, typename _OutputIterator>
13121 reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
13122 _OutputIterator __result)
13131 while (__first != __last)
13134 *__result = *__last;
13139 # 1657 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13140 template<typename _EuclideanRingElement>
13141 _EuclideanRingElement
13142 __gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
13146 _EuclideanRingElement __t = __m % __n;
13158 template<typename _ForwardIterator>
13160 __rotate(_ForwardIterator __first,
13161 _ForwardIterator __middle,
13162 _ForwardIterator __last,
13163 forward_iterator_tag)
13165 if (__first == __middle || __last == __middle)
13168 _ForwardIterator __first2 = __middle;
13171 swap(*__first, *__first2);
13174 if (__first == __middle)
13175 __middle = __first2;
13177 while (__first2 != __last);
13179 __first2 = __middle;
13181 while (__first2 != __last)
13183 swap(*__first, *__first2);
13186 if (__first == __middle)
13187 __middle = __first2;
13188 else if (__first2 == __last)
13189 __first2 = __middle;
13198 template<typename _BidirectionalIterator>
13200 __rotate(_BidirectionalIterator __first,
13201 _BidirectionalIterator __middle,
13202 _BidirectionalIterator __last,
13203 bidirectional_iterator_tag)
13209 if (__first == __middle || __last == __middle)
13212 std::__reverse(__first, __middle, bidirectional_iterator_tag());
13213 std::__reverse(__middle, __last, bidirectional_iterator_tag());
13215 while (__first != __middle && __middle != __last)
13217 swap(*__first, *--__last);
13221 if (__first == __middle)
13222 std::__reverse(__middle, __last, bidirectional_iterator_tag());
13224 std::__reverse(__first, __middle, bidirectional_iterator_tag());
13232 template<typename _RandomAccessIterator>
13234 __rotate(_RandomAccessIterator __first,
13235 _RandomAccessIterator __middle,
13236 _RandomAccessIterator __last,
13237 random_access_iterator_tag)
13243 if (__first == __middle || __last == __middle)
13246 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13248 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13251 const _Distance __n = __last - __first;
13252 const _Distance __k = __middle - __first;
13253 const _Distance __l = __n - __k;
13257 std::swap_ranges(__first, __middle, __middle);
13261 const _Distance __d = __gcd(__n, __k);
13263 for (_Distance __i = 0; __i < __d; __i++)
13265 _ValueType __tmp = *__first;
13266 _RandomAccessIterator __p = __first;
13270 for (_Distance __j = 0; __j < __l / __d; __j++)
13272 if (__p > __first + __l)
13274 *__p = *(__p - __l);
13278 *__p = *(__p + __k);
13284 for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
13286 if (__p < __last - __k)
13288 *__p = *(__p + __k);
13291 *__p = * (__p - __l);
13300 # 1836 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13301 template<typename _ForwardIterator>
13303 rotate(_ForwardIterator __first, _ForwardIterator __middle,
13304 _ForwardIterator __last)
13312 typedef typename iterator_traits<_ForwardIterator>::iterator_category
13314 std::__rotate(__first, __middle, __last, _IterType());
13316 # 1869 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13317 template<typename _ForwardIterator, typename _OutputIterator>
13319 rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
13320 _ForwardIterator __last, _OutputIterator __result)
13329 return std::copy(__first, __middle,
13330 std::copy(__middle, __last, __result));
13332 # 1895 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13333 template<typename _RandomAccessIterator>
13335 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
13342 if (__first != __last)
13343 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13344 std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
13346 # 1922 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13347 template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
13349 random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
13350 _RandomNumberGenerator& __rand)
13357 if (__first == __last)
13359 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13360 std::iter_swap(__i, __first + __rand((__i - __first) + 1));
13369 template<typename _ForwardIterator, typename _Predicate>
13371 __partition(_ForwardIterator __first, _ForwardIterator __last,
13373 forward_iterator_tag)
13375 if (__first == __last)
13378 while (__pred(*__first))
13379 if (++__first == __last)
13382 _ForwardIterator __next = __first;
13384 while (++__next != __last)
13385 if (__pred(*__next))
13387 swap(*__first, *__next);
13399 template<typename _BidirectionalIterator, typename _Predicate>
13400 _BidirectionalIterator
13401 __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
13403 bidirectional_iterator_tag)
13408 if (__first == __last)
13410 else if (__pred(*__first))
13416 if (__first == __last)
13418 else if (!__pred(*__last))
13422 std::iter_swap(__first, __last);
13426 # 2016 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13427 template<typename _ForwardIterator, typename _Predicate>
13428 inline _ForwardIterator
13429 partition(_ForwardIterator __first, _ForwardIterator __last,
13439 return std::__partition(__first, __last, __pred,
13440 std::__iterator_category(__first));
13449 template<typename _ForwardIterator, typename _Predicate, typename _Distance>
13451 __inplace_stable_partition(_ForwardIterator __first,
13452 _ForwardIterator __last,
13453 _Predicate __pred, _Distance __len)
13456 return __pred(*__first) ? __last : __first;
13457 _ForwardIterator __middle = __first;
13458 std::advance(__middle, __len / 2);
13459 _ForwardIterator __begin = std::__inplace_stable_partition(__first,
13463 _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
13467 std::rotate(__begin, __middle, __end);
13468 std::advance(__begin, std::distance(__middle, __end));
13477 template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
13478 typename _Distance>
13480 __stable_partition_adaptive(_ForwardIterator __first,
13481 _ForwardIterator __last,
13482 _Predicate __pred, _Distance __len,
13484 _Distance __buffer_size)
13486 if (__len <= __buffer_size)
13488 _ForwardIterator __result1 = __first;
13489 _Pointer __result2 = __buffer;
13490 for ( ; __first != __last ; ++__first)
13491 if (__pred(*__first))
13493 *__result1 = *__first;
13498 *__result2 = *__first;
13501 std::copy(__buffer, __result2, __result1);
13506 _ForwardIterator __middle = __first;
13507 std::advance(__middle, __len / 2);
13508 _ForwardIterator __begin =
13509 std::__stable_partition_adaptive(__first, __middle, __pred,
13510 __len / 2, __buffer,
13512 _ForwardIterator __end =
13513 std::__stable_partition_adaptive(__middle, __last, __pred,
13515 __buffer, __buffer_size);
13516 std::rotate(__begin, __middle, __end);
13517 std::advance(__begin, std::distance(__middle, __end));
13521 # 2127 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13522 template<typename _ForwardIterator, typename _Predicate>
13524 stable_partition(_ForwardIterator __first, _ForwardIterator __last,
13534 if (__first == __last)
13538 typedef typename iterator_traits<_ForwardIterator>::value_type
13540 typedef typename iterator_traits<_ForwardIterator>::difference_type
13543 _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
13545 if (__buf.size() > 0)
13547 std::__stable_partition_adaptive(__first, __last, __pred,
13548 _DistanceType(__buf.requested_size()),
13549 __buf.begin(), __buf.size());
13552 std::__inplace_stable_partition(__first, __last, __pred,
13553 _DistanceType(__buf.requested_size()));
13562 template<typename _RandomAccessIterator, typename _Tp>
13563 _RandomAccessIterator
13564 __unguarded_partition(_RandomAccessIterator __first,
13565 _RandomAccessIterator __last, _Tp __pivot)
13569 while (*__first < __pivot)
13572 while (__pivot < *__last)
13574 if (!(__first < __last))
13576 std::iter_swap(__first, __last);
13586 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
13587 _RandomAccessIterator
13588 __unguarded_partition(_RandomAccessIterator __first,
13589 _RandomAccessIterator __last,
13590 _Tp __pivot, _Compare __comp)
13594 while (__comp(*__first, __pivot))
13597 while (__comp(__pivot, *__last))
13599 if (!(__first < __last))
13601 std::iter_swap(__first, __last);
13612 enum { _S_threshold = 16 };
13619 template<typename _RandomAccessIterator, typename _Tp>
13621 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
13623 _RandomAccessIterator __next = __last;
13625 while (__val < *__next)
13639 template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
13641 __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
13644 _RandomAccessIterator __next = __last;
13646 while (__comp(__val, *__next))
13660 template<typename _RandomAccessIterator>
13662 __insertion_sort(_RandomAccessIterator __first,
13663 _RandomAccessIterator __last)
13665 if (__first == __last)
13668 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13670 typename iterator_traits<_RandomAccessIterator>::value_type
13672 if (__val < *__first)
13674 std::copy_backward(__first, __i, __i + 1);
13678 std::__unguarded_linear_insert(__i, __val);
13687 template<typename _RandomAccessIterator, typename _Compare>
13689 __insertion_sort(_RandomAccessIterator __first,
13690 _RandomAccessIterator __last, _Compare __comp)
13692 if (__first == __last) return;
13694 for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13696 typename iterator_traits<_RandomAccessIterator>::value_type
13698 if (__comp(__val, *__first))
13700 std::copy_backward(__first, __i, __i + 1);
13704 std::__unguarded_linear_insert(__i, __val, __comp);
13713 template<typename _RandomAccessIterator>
13715 __unguarded_insertion_sort(_RandomAccessIterator __first,
13716 _RandomAccessIterator __last)
13718 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13721 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
13722 std::__unguarded_linear_insert(__i, _ValueType(*__i));
13730 template<typename _RandomAccessIterator, typename _Compare>
13732 __unguarded_insertion_sort(_RandomAccessIterator __first,
13733 _RandomAccessIterator __last, _Compare __comp)
13735 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13738 for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
13739 std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
13747 template<typename _RandomAccessIterator>
13749 __final_insertion_sort(_RandomAccessIterator __first,
13750 _RandomAccessIterator __last)
13752 if (__last - __first > int(_S_threshold))
13754 std::__insertion_sort(__first, __first + int(_S_threshold));
13755 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
13758 std::__insertion_sort(__first, __last);
13766 template<typename _RandomAccessIterator, typename _Compare>
13768 __final_insertion_sort(_RandomAccessIterator __first,
13769 _RandomAccessIterator __last, _Compare __comp)
13771 if (__last - __first > int(_S_threshold))
13773 std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
13774 std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
13778 std::__insertion_sort(__first, __last, __comp);
13786 template<typename _Size>
13791 for (__k = 0; __n != 1; __n >>= 1)
13795 # 2416 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13796 template<typename _RandomAccessIterator>
13798 partial_sort(_RandomAccessIterator __first,
13799 _RandomAccessIterator __middle,
13800 _RandomAccessIterator __last)
13802 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13812 std::make_heap(__first, __middle);
13813 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
13814 if (*__i < *__first)
13815 std::__pop_heap(__first, __middle, __i, _ValueType(*__i));
13816 std::sort_heap(__first, __middle);
13818 # 2457 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13819 template<typename _RandomAccessIterator, typename _Compare>
13821 partial_sort(_RandomAccessIterator __first,
13822 _RandomAccessIterator __middle,
13823 _RandomAccessIterator __last,
13826 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13837 std::make_heap(__first, __middle, __comp);
13838 for (_RandomAccessIterator __i = __middle; __i < __last; ++__i)
13839 if (__comp(*__i, *__first))
13840 std::__pop_heap(__first, __middle, __i, _ValueType(*__i), __comp);
13841 std::sort_heap(__first, __middle, __comp);
13843 # 2499 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13844 template<typename _InputIterator, typename _RandomAccessIterator>
13845 _RandomAccessIterator
13846 partial_sort_copy(_InputIterator __first, _InputIterator __last,
13847 _RandomAccessIterator __result_first,
13848 _RandomAccessIterator __result_last)
13850 typedef typename iterator_traits<_InputIterator>::value_type
13852 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13854 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13866 if (__result_first == __result_last)
13867 return __result_last;
13868 _RandomAccessIterator __result_real_last = __result_first;
13869 while(__first != __last && __result_real_last != __result_last)
13871 *__result_real_last = *__first;
13872 ++__result_real_last;
13875 std::make_heap(__result_first, __result_real_last);
13876 while (__first != __last)
13878 if (*__first < *__result_first)
13879 std::__adjust_heap(__result_first, _DistanceType(0),
13880 _DistanceType(__result_real_last
13882 _InputValueType(*__first));
13885 std::sort_heap(__result_first, __result_real_last);
13886 return __result_real_last;
13888 # 2563 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13889 template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
13890 _RandomAccessIterator
13891 partial_sort_copy(_InputIterator __first, _InputIterator __last,
13892 _RandomAccessIterator __result_first,
13893 _RandomAccessIterator __result_last,
13896 typedef typename iterator_traits<_InputIterator>::value_type
13898 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13900 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13914 if (__result_first == __result_last)
13915 return __result_last;
13916 _RandomAccessIterator __result_real_last = __result_first;
13917 while(__first != __last && __result_real_last != __result_last)
13919 *__result_real_last = *__first;
13920 ++__result_real_last;
13923 std::make_heap(__result_first, __result_real_last, __comp);
13924 while (__first != __last)
13926 if (__comp(*__first, *__result_first))
13927 std::__adjust_heap(__result_first, _DistanceType(0),
13928 _DistanceType(__result_real_last
13930 _InputValueType(*__first),
13934 std::sort_heap(__result_first, __result_real_last, __comp);
13935 return __result_real_last;
13943 template<typename _RandomAccessIterator, typename _Size>
13945 __introsort_loop(_RandomAccessIterator __first,
13946 _RandomAccessIterator __last,
13947 _Size __depth_limit)
13949 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13952 while (__last - __first > int(_S_threshold))
13954 if (__depth_limit == 0)
13956 std::partial_sort(__first, __last, __last);
13960 _RandomAccessIterator __cut =
13961 std::__unguarded_partition(__first, __last,
13962 _ValueType(std::__median(*__first,
13969 std::__introsort_loop(__cut, __last, __depth_limit);
13979 template<typename _RandomAccessIterator, typename _Size, typename _Compare>
13981 __introsort_loop(_RandomAccessIterator __first,
13982 _RandomAccessIterator __last,
13983 _Size __depth_limit, _Compare __comp)
13985 typedef typename iterator_traits<_RandomAccessIterator>::value_type
13988 while (__last - __first > int(_S_threshold))
13990 if (__depth_limit == 0)
13992 std::partial_sort(__first, __last, __last, __comp);
13996 _RandomAccessIterator __cut =
13997 std::__unguarded_partition(__first, __last,
13998 _ValueType(std::__median(*__first,
14006 std::__introsort_loop(__cut, __last, __depth_limit, __comp);
14010 # 2698 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14011 template<typename _RandomAccessIterator>
14013 sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
14015 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14024 if (__first != __last)
14026 std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
14027 std::__final_insertion_sort(__first, __last);
14030 # 2732 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14031 template<typename _RandomAccessIterator, typename _Compare>
14033 sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
14036 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14046 if (__first != __last)
14048 std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
14050 std::__final_insertion_sort(__first, __last, __comp);
14053 # 2765 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14054 template<typename _ForwardIterator, typename _Tp>
14056 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
14059 typedef typename iterator_traits<_ForwardIterator>::value_type
14061 typedef typename iterator_traits<_ForwardIterator>::difference_type
14074 _DistanceType __len = std::distance(__first, __last);
14075 _DistanceType __half;
14076 _ForwardIterator __middle;
14080 __half = __len >> 1;
14081 __middle = __first;
14082 std::advance(__middle, __half);
14083 if (*__middle < __val)
14085 __first = __middle;
14087 __len = __len - __half - 1;
14094 # 2820 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14095 template<typename _ForwardIterator, typename _Tp, typename _Compare>
14097 lower_bound(_ForwardIterator __first, _ForwardIterator __last,
14098 const _Tp& __val, _Compare __comp)
14100 typedef typename iterator_traits<_ForwardIterator>::value_type
14102 typedef typename iterator_traits<_ForwardIterator>::difference_type
14111 _DistanceType __len = std::distance(__first, __last);
14112 _DistanceType __half;
14113 _ForwardIterator __middle;
14117 __half = __len >> 1;
14118 __middle = __first;
14119 std::advance(__middle, __half);
14120 if (__comp(*__middle, __val))
14122 __first = __middle;
14124 __len = __len - __half - 1;
14131 # 2867 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14132 template<typename _ForwardIterator, typename _Tp>
14134 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
14137 typedef typename iterator_traits<_ForwardIterator>::value_type
14139 typedef typename iterator_traits<_ForwardIterator>::difference_type
14149 _DistanceType __len = std::distance(__first, __last);
14150 _DistanceType __half;
14151 _ForwardIterator __middle;
14155 __half = __len >> 1;
14156 __middle = __first;
14157 std::advance(__middle, __half);
14158 if (__val < *__middle)
14162 __first = __middle;
14164 __len = __len - __half - 1;
14169 # 2919 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14170 template<typename _ForwardIterator, typename _Tp, typename _Compare>
14172 upper_bound(_ForwardIterator __first, _ForwardIterator __last,
14173 const _Tp& __val, _Compare __comp)
14175 typedef typename iterator_traits<_ForwardIterator>::value_type
14177 typedef typename iterator_traits<_ForwardIterator>::difference_type
14186 _DistanceType __len = std::distance(__first, __last);
14187 _DistanceType __half;
14188 _ForwardIterator __middle;
14192 __half = __len >> 1;
14193 __middle = __first;
14194 std::advance(__middle, __half);
14195 if (__comp(__val, *__middle))
14199 __first = __middle;
14201 __len = __len - __half - 1;
14212 template<typename _BidirectionalIterator, typename _Distance>
14214 __merge_without_buffer(_BidirectionalIterator __first,
14215 _BidirectionalIterator __middle,
14216 _BidirectionalIterator __last,
14217 _Distance __len1, _Distance __len2)
14219 if (__len1 == 0 || __len2 == 0)
14221 if (__len1 + __len2 == 2)
14223 if (*__middle < *__first)
14224 std::iter_swap(__first, __middle);
14227 _BidirectionalIterator __first_cut = __first;
14228 _BidirectionalIterator __second_cut = __middle;
14229 _Distance __len11 = 0;
14230 _Distance __len22 = 0;
14231 if (__len1 > __len2)
14233 __len11 = __len1 / 2;
14234 std::advance(__first_cut, __len11);
14235 __second_cut = std::lower_bound(__middle, __last, *__first_cut);
14236 __len22 = std::distance(__middle, __second_cut);
14240 __len22 = __len2 / 2;
14241 std::advance(__second_cut, __len22);
14242 __first_cut = std::upper_bound(__first, __middle, *__second_cut);
14243 __len11 = std::distance(__first, __first_cut);
14245 std::rotate(__first_cut, __middle, __second_cut);
14246 _BidirectionalIterator __new_middle = __first_cut;
14247 std::advance(__new_middle, std::distance(__middle, __second_cut));
14248 std::__merge_without_buffer(__first, __first_cut, __new_middle,
14250 std::__merge_without_buffer(__new_middle, __second_cut, __last,
14251 __len1 - __len11, __len2 - __len22);
14259 template<typename _BidirectionalIterator, typename _Distance,
14262 __merge_without_buffer(_BidirectionalIterator __first,
14263 _BidirectionalIterator __middle,
14264 _BidirectionalIterator __last,
14265 _Distance __len1, _Distance __len2,
14268 if (__len1 == 0 || __len2 == 0)
14270 if (__len1 + __len2 == 2)
14272 if (__comp(*__middle, *__first))
14273 std::iter_swap(__first, __middle);
14276 _BidirectionalIterator __first_cut = __first;
14277 _BidirectionalIterator __second_cut = __middle;
14278 _Distance __len11 = 0;
14279 _Distance __len22 = 0;
14280 if (__len1 > __len2)
14282 __len11 = __len1 / 2;
14283 std::advance(__first_cut, __len11);
14284 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
14286 __len22 = std::distance(__middle, __second_cut);
14290 __len22 = __len2 / 2;
14291 std::advance(__second_cut, __len22);
14292 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
14294 __len11 = std::distance(__first, __first_cut);
14296 std::rotate(__first_cut, __middle, __second_cut);
14297 _BidirectionalIterator __new_middle = __first_cut;
14298 std::advance(__new_middle, std::distance(__middle, __second_cut));
14299 std::__merge_without_buffer(__first, __first_cut, __new_middle,
14300 __len11, __len22, __comp);
14301 std::__merge_without_buffer(__new_middle, __second_cut, __last,
14302 __len1 - __len11, __len2 - __len22, __comp);
14310 template<typename _RandomAccessIterator>
14312 __inplace_stable_sort(_RandomAccessIterator __first,
14313 _RandomAccessIterator __last)
14315 if (__last - __first < 15)
14317 std::__insertion_sort(__first, __last);
14320 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
14321 std::__inplace_stable_sort(__first, __middle);
14322 std::__inplace_stable_sort(__middle, __last);
14323 std::__merge_without_buffer(__first, __middle, __last,
14324 __middle - __first,
14325 __last - __middle);
14333 template<typename _RandomAccessIterator, typename _Compare>
14335 __inplace_stable_sort(_RandomAccessIterator __first,
14336 _RandomAccessIterator __last, _Compare __comp)
14338 if (__last - __first < 15)
14340 std::__insertion_sort(__first, __last, __comp);
14343 _RandomAccessIterator __middle = __first + (__last - __first) / 2;
14344 std::__inplace_stable_sort(__first, __middle, __comp);
14345 std::__inplace_stable_sort(__middle, __last, __comp);
14346 std::__merge_without_buffer(__first, __middle, __last,
14347 __middle - __first,
14351 # 3117 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14352 template<typename _InputIterator1, typename _InputIterator2,
14353 typename _OutputIterator>
14355 merge(_InputIterator1 __first1, _InputIterator1 __last1,
14356 _InputIterator2 __first2, _InputIterator2 __last2,
14357 _OutputIterator __result)
14372 while (__first1 != __last1 && __first2 != __last2)
14374 if (*__first2 < *__first1)
14376 *__result = *__first2;
14381 *__result = *__first1;
14386 return std::copy(__first2, __last2, std::copy(__first1, __last1,
14389 # 3175 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14390 template<typename _InputIterator1, typename _InputIterator2,
14391 typename _OutputIterator, typename _Compare>
14393 merge(_InputIterator1 __first1, _InputIterator1 __last1,
14394 _InputIterator2 __first2, _InputIterator2 __last2,
14395 _OutputIterator __result, _Compare __comp)
14411 while (__first1 != __last1 && __first2 != __last2)
14413 if (__comp(*__first2, *__first1))
14415 *__result = *__first2;
14420 *__result = *__first1;
14425 return std::copy(__first2, __last2, std::copy(__first1, __last1,
14429 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
14430 typename _Distance>
14432 __merge_sort_loop(_RandomAccessIterator1 __first,
14433 _RandomAccessIterator1 __last,
14434 _RandomAccessIterator2 __result,
14435 _Distance __step_size)
14437 const _Distance __two_step = 2 * __step_size;
14439 while (__last - __first >= __two_step)
14441 __result = std::merge(__first, __first + __step_size,
14442 __first + __step_size, __first + __two_step,
14444 __first += __two_step;
14447 __step_size = std::min(_Distance(__last - __first), __step_size);
14448 std::merge(__first, __first + __step_size, __first + __step_size, __last,
14452 template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
14453 typename _Distance, typename _Compare>
14455 __merge_sort_loop(_RandomAccessIterator1 __first,
14456 _RandomAccessIterator1 __last,
14457 _RandomAccessIterator2 __result, _Distance __step_size,
14460 const _Distance __two_step = 2 * __step_size;
14462 while (__last - __first >= __two_step)
14464 __result = std::merge(__first, __first + __step_size,
14465 __first + __step_size, __first + __two_step,
14468 __first += __two_step;
14470 __step_size = std::min(_Distance(__last - __first), __step_size);
14472 std::merge(__first, __first + __step_size,
14473 __first + __step_size, __last,
14478 enum { _S_chunk_size = 7 };
14480 template<typename _RandomAccessIterator, typename _Distance>
14482 __chunk_insertion_sort(_RandomAccessIterator __first,
14483 _RandomAccessIterator __last,
14484 _Distance __chunk_size)
14486 while (__last - __first >= __chunk_size)
14488 std::__insertion_sort(__first, __first + __chunk_size);
14489 __first += __chunk_size;
14491 std::__insertion_sort(__first, __last);
14494 template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
14496 __chunk_insertion_sort(_RandomAccessIterator __first,
14497 _RandomAccessIterator __last,
14498 _Distance __chunk_size, _Compare __comp)
14500 while (__last - __first >= __chunk_size)
14502 std::__insertion_sort(__first, __first + __chunk_size, __comp);
14503 __first += __chunk_size;
14505 std::__insertion_sort(__first, __last, __comp);
14508 template<typename _RandomAccessIterator, typename _Pointer>
14510 __merge_sort_with_buffer(_RandomAccessIterator __first,
14511 _RandomAccessIterator __last,
14514 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14517 const _Distance __len = __last - __first;
14518 const _Pointer __buffer_last = __buffer + __len;
14520 _Distance __step_size = _S_chunk_size;
14521 std::__chunk_insertion_sort(__first, __last, __step_size);
14523 while (__step_size < __len)
14525 std::__merge_sort_loop(__first, __last, __buffer, __step_size);
14527 std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
14532 template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
14534 __merge_sort_with_buffer(_RandomAccessIterator __first,
14535 _RandomAccessIterator __last,
14536 _Pointer __buffer, _Compare __comp)
14538 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14541 const _Distance __len = __last - __first;
14542 const _Pointer __buffer_last = __buffer + __len;
14544 _Distance __step_size = _S_chunk_size;
14545 std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
14547 while (__step_size < __len)
14549 std::__merge_sort_loop(__first, __last, __buffer,
14550 __step_size, __comp);
14552 std::__merge_sort_loop(__buffer, __buffer_last, __first,
14553 __step_size, __comp);
14563 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
14564 typename _BidirectionalIterator3>
14565 _BidirectionalIterator3
14566 __merge_backward(_BidirectionalIterator1 __first1,
14567 _BidirectionalIterator1 __last1,
14568 _BidirectionalIterator2 __first2,
14569 _BidirectionalIterator2 __last2,
14570 _BidirectionalIterator3 __result)
14572 if (__first1 == __last1)
14573 return std::copy_backward(__first2, __last2, __result);
14574 if (__first2 == __last2)
14575 return std::copy_backward(__first1, __last1, __result);
14580 if (*__last2 < *__last1)
14582 *--__result = *__last1;
14583 if (__first1 == __last1)
14584 return std::copy_backward(__first2, ++__last2, __result);
14589 *--__result = *__last2;
14590 if (__first2 == __last2)
14591 return std::copy_backward(__first1, ++__last1, __result);
14602 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
14603 typename _BidirectionalIterator3, typename _Compare>
14604 _BidirectionalIterator3
14605 __merge_backward(_BidirectionalIterator1 __first1,
14606 _BidirectionalIterator1 __last1,
14607 _BidirectionalIterator2 __first2,
14608 _BidirectionalIterator2 __last2,
14609 _BidirectionalIterator3 __result,
14612 if (__first1 == __last1)
14613 return std::copy_backward(__first2, __last2, __result);
14614 if (__first2 == __last2)
14615 return std::copy_backward(__first1, __last1, __result);
14620 if (__comp(*__last2, *__last1))
14622 *--__result = *__last1;
14623 if (__first1 == __last1)
14624 return std::copy_backward(__first2, ++__last2, __result);
14629 *--__result = *__last2;
14630 if (__first2 == __last2)
14631 return std::copy_backward(__first1, ++__last1, __result);
14642 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
14643 typename _Distance>
14644 _BidirectionalIterator1
14645 __rotate_adaptive(_BidirectionalIterator1 __first,
14646 _BidirectionalIterator1 __middle,
14647 _BidirectionalIterator1 __last,
14648 _Distance __len1, _Distance __len2,
14649 _BidirectionalIterator2 __buffer,
14650 _Distance __buffer_size)
14652 _BidirectionalIterator2 __buffer_end;
14653 if (__len1 > __len2 && __len2 <= __buffer_size)
14655 __buffer_end = std::copy(__middle, __last, __buffer);
14656 std::copy_backward(__first, __middle, __last);
14657 return std::copy(__buffer, __buffer_end, __first);
14659 else if (__len1 <= __buffer_size)
14661 __buffer_end = std::copy(__first, __middle, __buffer);
14662 std::copy(__middle, __last, __first);
14663 return std::copy_backward(__buffer, __buffer_end, __last);
14667 std::rotate(__first, __middle, __last);
14668 std::advance(__first, std::distance(__middle, __last));
14678 template<typename _BidirectionalIterator, typename _Distance,
14681 __merge_adaptive(_BidirectionalIterator __first,
14682 _BidirectionalIterator __middle,
14683 _BidirectionalIterator __last,
14684 _Distance __len1, _Distance __len2,
14685 _Pointer __buffer, _Distance __buffer_size)
14687 if (__len1 <= __len2 && __len1 <= __buffer_size)
14689 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
14690 std::merge(__buffer, __buffer_end, __middle, __last, __first);
14692 else if (__len2 <= __buffer_size)
14694 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
14695 std::__merge_backward(__first, __middle, __buffer,
14696 __buffer_end, __last);
14700 _BidirectionalIterator __first_cut = __first;
14701 _BidirectionalIterator __second_cut = __middle;
14702 _Distance __len11 = 0;
14703 _Distance __len22 = 0;
14704 if (__len1 > __len2)
14706 __len11 = __len1 / 2;
14707 std::advance(__first_cut, __len11);
14708 __second_cut = std::lower_bound(__middle, __last,
14710 __len22 = std::distance(__middle, __second_cut);
14714 __len22 = __len2 / 2;
14715 std::advance(__second_cut, __len22);
14716 __first_cut = std::upper_bound(__first, __middle,
14718 __len11 = std::distance(__first, __first_cut);
14720 _BidirectionalIterator __new_middle =
14721 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
14722 __len1 - __len11, __len22, __buffer,
14724 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
14725 __len22, __buffer, __buffer_size);
14726 std::__merge_adaptive(__new_middle, __second_cut, __last,
14728 __len2 - __len22, __buffer, __buffer_size);
14737 template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
14740 __merge_adaptive(_BidirectionalIterator __first,
14741 _BidirectionalIterator __middle,
14742 _BidirectionalIterator __last,
14743 _Distance __len1, _Distance __len2,
14744 _Pointer __buffer, _Distance __buffer_size,
14747 if (__len1 <= __len2 && __len1 <= __buffer_size)
14749 _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
14750 std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
14752 else if (__len2 <= __buffer_size)
14754 _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
14755 std::__merge_backward(__first, __middle, __buffer, __buffer_end,
14760 _BidirectionalIterator __first_cut = __first;
14761 _BidirectionalIterator __second_cut = __middle;
14762 _Distance __len11 = 0;
14763 _Distance __len22 = 0;
14764 if (__len1 > __len2)
14766 __len11 = __len1 / 2;
14767 std::advance(__first_cut, __len11);
14768 __second_cut = std::lower_bound(__middle, __last, *__first_cut,
14770 __len22 = std::distance(__middle, __second_cut);
14774 __len22 = __len2 / 2;
14775 std::advance(__second_cut, __len22);
14776 __first_cut = std::upper_bound(__first, __middle, *__second_cut,
14778 __len11 = std::distance(__first, __first_cut);
14780 _BidirectionalIterator __new_middle =
14781 std::__rotate_adaptive(__first_cut, __middle, __second_cut,
14782 __len1 - __len11, __len22, __buffer,
14784 std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
14785 __len22, __buffer, __buffer_size, __comp);
14786 std::__merge_adaptive(__new_middle, __second_cut, __last,
14788 __len2 - __len22, __buffer,
14789 __buffer_size, __comp);
14792 # 3595 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14793 template<typename _BidirectionalIterator>
14795 inplace_merge(_BidirectionalIterator __first,
14796 _BidirectionalIterator __middle,
14797 _BidirectionalIterator __last)
14799 typedef typename iterator_traits<_BidirectionalIterator>::value_type
14801 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
14811 if (__first == __middle || __middle == __last)
14814 _DistanceType __len1 = std::distance(__first, __middle);
14815 _DistanceType __len2 = std::distance(__middle, __last);
14817 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
14819 if (__buf.begin() == 0)
14820 std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
14822 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
14823 __buf.begin(), _DistanceType(__buf.size()));
14825 # 3649 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14826 template<typename _BidirectionalIterator, typename _Compare>
14828 inplace_merge(_BidirectionalIterator __first,
14829 _BidirectionalIterator __middle,
14830 _BidirectionalIterator __last,
14833 typedef typename iterator_traits<_BidirectionalIterator>::value_type
14835 typedef typename iterator_traits<_BidirectionalIterator>::difference_type
14846 if (__first == __middle || __middle == __last)
14849 const _DistanceType __len1 = std::distance(__first, __middle);
14850 const _DistanceType __len2 = std::distance(__middle, __last);
14852 _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
14854 if (__buf.begin() == 0)
14855 std::__merge_without_buffer(__first, __middle, __last, __len1,
14858 std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
14859 __buf.begin(), _DistanceType(__buf.size()),
14863 template<typename _RandomAccessIterator, typename _Pointer,
14864 typename _Distance>
14866 __stable_sort_adaptive(_RandomAccessIterator __first,
14867 _RandomAccessIterator __last,
14868 _Pointer __buffer, _Distance __buffer_size)
14870 const _Distance __len = (__last - __first + 1) / 2;
14871 const _RandomAccessIterator __middle = __first + __len;
14872 if (__len > __buffer_size)
14874 std::__stable_sort_adaptive(__first, __middle,
14875 __buffer, __buffer_size);
14876 std::__stable_sort_adaptive(__middle, __last,
14877 __buffer, __buffer_size);
14881 std::__merge_sort_with_buffer(__first, __middle, __buffer);
14882 std::__merge_sort_with_buffer(__middle, __last, __buffer);
14884 std::__merge_adaptive(__first, __middle, __last,
14885 _Distance(__middle - __first),
14886 _Distance(__last - __middle),
14887 __buffer, __buffer_size);
14890 template<typename _RandomAccessIterator, typename _Pointer,
14891 typename _Distance, typename _Compare>
14893 __stable_sort_adaptive(_RandomAccessIterator __first,
14894 _RandomAccessIterator __last,
14895 _Pointer __buffer, _Distance __buffer_size,
14898 const _Distance __len = (__last - __first + 1) / 2;
14899 const _RandomAccessIterator __middle = __first + __len;
14900 if (__len > __buffer_size)
14902 std::__stable_sort_adaptive(__first, __middle, __buffer,
14903 __buffer_size, __comp);
14904 std::__stable_sort_adaptive(__middle, __last, __buffer,
14905 __buffer_size, __comp);
14909 std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
14910 std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
14912 std::__merge_adaptive(__first, __middle, __last,
14913 _Distance(__middle - __first),
14914 _Distance(__last - __middle),
14915 __buffer, __buffer_size,
14918 # 3758 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14919 template<typename _RandomAccessIterator>
14921 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
14923 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14925 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14934 _Temporary_buffer<_RandomAccessIterator, _ValueType>
14935 buf(__first, __last);
14936 if (buf.begin() == 0)
14937 std::__inplace_stable_sort(__first, __last);
14939 std::__stable_sort_adaptive(__first, __last, buf.begin(),
14940 _DistanceType(buf.size()));
14942 # 3799 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14943 template<typename _RandomAccessIterator, typename _Compare>
14945 stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
14948 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14950 typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14961 _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
14962 if (buf.begin() == 0)
14963 std::__inplace_stable_sort(__first, __last, __comp);
14965 std::__stable_sort_adaptive(__first, __last, buf.begin(),
14966 _DistanceType(buf.size()), __comp);
14968 # 3840 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14969 template<typename _RandomAccessIterator>
14971 nth_element(_RandomAccessIterator __first,
14972 _RandomAccessIterator __nth,
14973 _RandomAccessIterator __last)
14975 typedef typename iterator_traits<_RandomAccessIterator>::value_type
14985 while (__last - __first > 3)
14987 _RandomAccessIterator __cut =
14988 std::__unguarded_partition(__first, __last,
14989 _ValueType(std::__median(*__first,
14996 if (__cut <= __nth)
15001 std::__insertion_sort(__first, __last);
15003 # 3891 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15004 template<typename _RandomAccessIterator, typename _Compare>
15006 nth_element(_RandomAccessIterator __first,
15007 _RandomAccessIterator __nth,
15008 _RandomAccessIterator __last,
15011 typedef typename iterator_traits<_RandomAccessIterator>::value_type
15022 while (__last - __first > 3)
15024 _RandomAccessIterator __cut =
15025 std::__unguarded_partition(__first, __last,
15026 _ValueType(std::__median(*__first,
15033 if (__cut <= __nth)
15038 std::__insertion_sort(__first, __last, __comp);
15040 # 3944 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15041 template<typename _ForwardIterator, typename _Tp>
15042 pair<_ForwardIterator, _ForwardIterator>
15043 equal_range(_ForwardIterator __first, _ForwardIterator __last,
15046 typedef typename iterator_traits<_ForwardIterator>::value_type
15048 typedef typename iterator_traits<_ForwardIterator>::difference_type
15058 _DistanceType __len = std::distance(__first, __last);
15059 _DistanceType __half;
15060 _ForwardIterator __middle, __left, __right;
15064 __half = __len >> 1;
15065 __middle = __first;
15066 std::advance(__middle, __half);
15067 if (*__middle < __val)
15069 __first = __middle;
15071 __len = __len - __half - 1;
15073 else if (__val < *__middle)
15077 __left = std::lower_bound(__first, __middle, __val);
15078 std::advance(__first, __len);
15079 __right = std::upper_bound(++__middle, __first, __val);
15080 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
15083 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
15085 # 4006 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15086 template<typename _ForwardIterator, typename _Tp, typename _Compare>
15087 pair<_ForwardIterator, _ForwardIterator>
15088 equal_range(_ForwardIterator __first, _ForwardIterator __last,
15092 typedef typename iterator_traits<_ForwardIterator>::value_type
15094 typedef typename iterator_traits<_ForwardIterator>::difference_type
15105 _DistanceType __len = std::distance(__first, __last);
15106 _DistanceType __half;
15107 _ForwardIterator __middle, __left, __right;
15111 __half = __len >> 1;
15112 __middle = __first;
15113 std::advance(__middle, __half);
15114 if (__comp(*__middle, __val))
15116 __first = __middle;
15118 __len = __len - __half - 1;
15120 else if (__comp(__val, *__middle))
15124 __left = std::lower_bound(__first, __middle, __val, __comp);
15125 std::advance(__first, __len);
15126 __right = std::upper_bound(++__middle, __first, __val, __comp);
15127 return pair<_ForwardIterator, _ForwardIterator>(__left, __right);
15130 return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
15132 # 4064 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15133 template<typename _ForwardIterator, typename _Tp>
15135 binary_search(_ForwardIterator __first, _ForwardIterator __last,
15146 _ForwardIterator __i = std::lower_bound(__first, __last, __val);
15147 return __i != __last && !(__val < *__i);
15149 # 4096 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15150 template<typename _ForwardIterator, typename _Tp, typename _Compare>
15152 binary_search(_ForwardIterator __first, _ForwardIterator __last,
15153 const _Tp& __val, _Compare __comp)
15163 _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
15164 return __i != __last && !__comp(__val, *__i);
15166 # 4134 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15167 template<typename _InputIterator1, typename _InputIterator2>
15169 includes(_InputIterator1 __first1, _InputIterator1 __last1,
15170 _InputIterator2 __first2, _InputIterator2 __last2)
15183 while (__first1 != __last1 && __first2 != __last2)
15184 if (*__first2 < *__first1)
15186 else if(*__first1 < *__first2)
15189 ++__first1, ++__first2;
15191 return __first2 == __last2;
15193 # 4180 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15194 template<typename _InputIterator1, typename _InputIterator2,
15197 includes(_InputIterator1 __first1, _InputIterator1 __last1,
15198 _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
15212 while (__first1 != __last1 && __first2 != __last2)
15213 if (__comp(*__first2, *__first1))
15215 else if(__comp(*__first1, *__first2))
15218 ++__first1, ++__first2;
15220 return __first2 == __last2;
15222 # 4226 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15223 template<typename _InputIterator1, typename _InputIterator2,
15224 typename _OutputIterator>
15226 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
15227 _InputIterator2 __first2, _InputIterator2 __last2,
15228 _OutputIterator __result)
15243 while (__first1 != __last1 && __first2 != __last2)
15245 if (*__first1 < *__first2)
15247 *__result = *__first1;
15250 else if (*__first2 < *__first1)
15252 *__result = *__first2;
15257 *__result = *__first1;
15263 return std::copy(__first2, __last2, std::copy(__first1, __last1,
15266 # 4288 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15267 template<typename _InputIterator1, typename _InputIterator2,
15268 typename _OutputIterator, typename _Compare>
15270 set_union(_InputIterator1 __first1, _InputIterator1 __last1,
15271 _InputIterator2 __first2, _InputIterator2 __last2,
15272 _OutputIterator __result, _Compare __comp)
15288 while (__first1 != __last1 && __first2 != __last2)
15290 if (__comp(*__first1, *__first2))
15292 *__result = *__first1;
15295 else if (__comp(*__first2, *__first1))
15297 *__result = *__first2;
15302 *__result = *__first1;
15308 return std::copy(__first2, __last2, std::copy(__first1, __last1,
15311 # 4349 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15312 template<typename _InputIterator1, typename _InputIterator2,
15313 typename _OutputIterator>
15315 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
15316 _InputIterator2 __first2, _InputIterator2 __last2,
15317 _OutputIterator __result)
15332 while (__first1 != __last1 && __first2 != __last2)
15333 if (*__first1 < *__first2)
15335 else if (*__first2 < *__first1)
15339 *__result = *__first1;
15346 # 4403 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15347 template<typename _InputIterator1, typename _InputIterator2,
15348 typename _OutputIterator, typename _Compare>
15350 set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
15351 _InputIterator2 __first2, _InputIterator2 __last2,
15352 _OutputIterator __result, _Compare __comp)
15368 while (__first1 != __last1 && __first2 != __last2)
15369 if (__comp(*__first1, *__first2))
15371 else if (__comp(*__first2, *__first1))
15375 *__result = *__first1;
15382 # 4457 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15383 template<typename _InputIterator1, typename _InputIterator2,
15384 typename _OutputIterator>
15386 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15387 _InputIterator2 __first2, _InputIterator2 __last2,
15388 _OutputIterator __result)
15403 while (__first1 != __last1 && __first2 != __last2)
15404 if (*__first1 < *__first2)
15406 *__result = *__first1;
15410 else if (*__first2 < *__first1)
15417 return std::copy(__first1, __last1, __result);
15419 # 4515 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15420 template<typename _InputIterator1, typename _InputIterator2,
15421 typename _OutputIterator, typename _Compare>
15423 set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15424 _InputIterator2 __first2, _InputIterator2 __last2,
15425 _OutputIterator __result, _Compare __comp)
15441 while (__first1 != __last1 && __first2 != __last2)
15442 if (__comp(*__first1, *__first2))
15444 *__result = *__first1;
15448 else if (__comp(*__first2, *__first1))
15455 return std::copy(__first1, __last1, __result);
15457 # 4569 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15458 template<typename _InputIterator1, typename _InputIterator2,
15459 typename _OutputIterator>
15461 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15462 _InputIterator2 __first2, _InputIterator2 __last2,
15463 _OutputIterator __result)
15478 while (__first1 != __last1 && __first2 != __last2)
15479 if (*__first1 < *__first2)
15481 *__result = *__first1;
15485 else if (*__first2 < *__first1)
15487 *__result = *__first2;
15496 return std::copy(__first2, __last2, std::copy(__first1,
15497 __last1, __result));
15499 # 4630 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15500 template<typename _InputIterator1, typename _InputIterator2,
15501 typename _OutputIterator, typename _Compare>
15503 set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15504 _InputIterator2 __first2, _InputIterator2 __last2,
15505 _OutputIterator __result,
15522 while (__first1 != __last1 && __first2 != __last2)
15523 if (__comp(*__first1, *__first2))
15525 *__result = *__first1;
15529 else if (__comp(*__first2, *__first1))
15531 *__result = *__first2;
15540 return std::copy(__first2, __last2, std::copy(__first1,
15541 __last1, __result));
15543 # 4683 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15544 template<typename _ForwardIterator>
15546 max_element(_ForwardIterator __first, _ForwardIterator __last)
15554 if (__first == __last)
15556 _ForwardIterator __result = __first;
15557 while (++__first != __last)
15558 if (*__result < *__first)
15559 __result = __first;
15562 # 4710 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15563 template<typename _ForwardIterator, typename _Compare>
15565 max_element(_ForwardIterator __first, _ForwardIterator __last,
15575 if (__first == __last) return __first;
15576 _ForwardIterator __result = __first;
15577 while (++__first != __last)
15578 if (__comp(*__result, *__first)) __result = __first;
15588 template<typename _ForwardIterator>
15590 min_element(_ForwardIterator __first, _ForwardIterator __last)
15598 if (__first == __last)
15600 _ForwardIterator __result = __first;
15601 while (++__first != __last)
15602 if (*__first < *__result)
15603 __result = __first;
15606 # 4762 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15607 template<typename _ForwardIterator, typename _Compare>
15609 min_element(_ForwardIterator __first, _ForwardIterator __last,
15619 if (__first == __last)
15621 _ForwardIterator __result = __first;
15622 while (++__first != __last)
15623 if (__comp(*__first, *__result))
15624 __result = __first;
15627 # 4797 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15628 template<typename _BidirectionalIterator>
15630 next_permutation(_BidirectionalIterator __first,
15631 _BidirectionalIterator __last)
15640 if (__first == __last)
15642 _BidirectionalIterator __i = __first;
15651 _BidirectionalIterator __ii = __i;
15655 _BidirectionalIterator __j = __last;
15656 while (!(*__i < *--__j))
15658 std::iter_swap(__i, __j);
15659 std::reverse(__ii, __last);
15662 if (__i == __first)
15664 std::reverse(__first, __last);
15669 # 4853 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15670 template<typename _BidirectionalIterator, typename _Compare>
15672 next_permutation(_BidirectionalIterator __first,
15673 _BidirectionalIterator __last, _Compare __comp)
15683 if (__first == __last)
15685 _BidirectionalIterator __i = __first;
15694 _BidirectionalIterator __ii = __i;
15696 if (__comp(*__i, *__ii))
15698 _BidirectionalIterator __j = __last;
15699 while (!__comp(*__i, *--__j))
15701 std::iter_swap(__i, __j);
15702 std::reverse(__ii, __last);
15705 if (__i == __first)
15707 std::reverse(__first, __last);
15712 # 4908 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15713 template<typename _BidirectionalIterator>
15715 prev_permutation(_BidirectionalIterator __first,
15716 _BidirectionalIterator __last)
15725 if (__first == __last)
15727 _BidirectionalIterator __i = __first;
15736 _BidirectionalIterator __ii = __i;
15740 _BidirectionalIterator __j = __last;
15741 while (!(*--__j < *__i))
15743 std::iter_swap(__i, __j);
15744 std::reverse(__ii, __last);
15747 if (__i == __first)
15749 std::reverse(__first, __last);
15754 # 4964 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15755 template<typename _BidirectionalIterator, typename _Compare>
15757 prev_permutation(_BidirectionalIterator __first,
15758 _BidirectionalIterator __last, _Compare __comp)
15768 if (__first == __last)
15770 _BidirectionalIterator __i = __first;
15779 _BidirectionalIterator __ii = __i;
15781 if (__comp(*__ii, *__i))
15783 _BidirectionalIterator __j = __last;
15784 while (!__comp(*--__j, *__i))
15786 std::iter_swap(__i, __j);
15787 std::reverse(__ii, __last);
15790 if (__i == __first)
15792 std::reverse(__first, __last);
15797 # 5023 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15798 template<typename _InputIterator, typename _ForwardIterator>
15800 find_first_of(_InputIterator __first1, _InputIterator __last1,
15801 _ForwardIterator __first2, _ForwardIterator __last2)
15812 for ( ; __first1 != __last1; ++__first1)
15813 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
15814 if (*__first1 == *__iter)
15818 # 5059 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15819 template<typename _InputIterator, typename _ForwardIterator,
15820 typename _BinaryPredicate>
15822 find_first_of(_InputIterator __first1, _InputIterator __last1,
15823 _ForwardIterator __first2, _ForwardIterator __last2,
15824 _BinaryPredicate __comp)
15835 for ( ; __first1 != __last1; ++__first1)
15836 for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
15837 if (__comp(*__first1, *__iter))
15841 # 5089 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15842 template<typename _ForwardIterator1, typename _ForwardIterator2>
15844 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15845 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15846 forward_iterator_tag, forward_iterator_tag)
15848 if (__first2 == __last2)
15852 _ForwardIterator1 __result = __last1;
15855 _ForwardIterator1 __new_result
15856 = std::search(__first1, __last1, __first2, __last2);
15857 if (__new_result == __last1)
15861 __result = __new_result;
15862 __first1 = __new_result;
15869 template<typename _ForwardIterator1, typename _ForwardIterator2,
15870 typename _BinaryPredicate>
15872 __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15873 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15874 forward_iterator_tag, forward_iterator_tag,
15875 _BinaryPredicate __comp)
15877 if (__first2 == __last2)
15881 _ForwardIterator1 __result = __last1;
15884 _ForwardIterator1 __new_result
15885 = std::search(__first1, __last1, __first2, __last2, __comp);
15886 if (__new_result == __last1)
15890 __result = __new_result;
15891 __first1 = __new_result;
15899 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
15900 _BidirectionalIterator1
15901 __find_end(_BidirectionalIterator1 __first1,
15902 _BidirectionalIterator1 __last1,
15903 _BidirectionalIterator2 __first2,
15904 _BidirectionalIterator2 __last2,
15905 bidirectional_iterator_tag, bidirectional_iterator_tag)
15913 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
15914 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
15916 _RevIterator1 __rlast1(__first1);
15917 _RevIterator2 __rlast2(__first2);
15918 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
15919 _RevIterator2(__last2), __rlast2);
15921 if (__rresult == __rlast1)
15925 _BidirectionalIterator1 __result = __rresult.base();
15926 std::advance(__result, -std::distance(__first2, __last2));
15931 template<typename _BidirectionalIterator1, typename _BidirectionalIterator2,
15932 typename _BinaryPredicate>
15933 _BidirectionalIterator1
15934 __find_end(_BidirectionalIterator1 __first1,
15935 _BidirectionalIterator1 __last1,
15936 _BidirectionalIterator2 __first2,
15937 _BidirectionalIterator2 __last2,
15938 bidirectional_iterator_tag, bidirectional_iterator_tag,
15939 _BinaryPredicate __comp)
15947 typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
15948 typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
15950 _RevIterator1 __rlast1(__first1);
15951 _RevIterator2 __rlast2(__first2);
15952 _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
15953 _RevIterator2(__last2), __rlast2,
15956 if (__rresult == __rlast1)
15960 _BidirectionalIterator1 __result = __rresult.base();
15961 std::advance(__result, -std::distance(__first2, __last2));
15965 # 5239 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15966 template<typename _ForwardIterator1, typename _ForwardIterator2>
15967 inline _ForwardIterator1
15968 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15969 _ForwardIterator2 __first2, _ForwardIterator2 __last2)
15980 return std::__find_end(__first1, __last1, __first2, __last2,
15981 std::__iterator_category(__first1),
15982 std::__iterator_category(__first2));
15984 # 5284 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15985 template<typename _ForwardIterator1, typename _ForwardIterator2,
15986 typename _BinaryPredicate>
15987 inline _ForwardIterator1
15988 find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15989 _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15990 _BinaryPredicate __comp)
16001 return std::__find_end(__first1, __last1, __first2, __last2,
16002 std::__iterator_category(__first1),
16003 std::__iterator_category(__first2),
16008 # 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
16010 #pragma GCC visibility pop
16015 namespace schultz {
16017 # 1 "../language/keywords" 1
16018 # 13 "../schultz" 2
16021 # 1 "../language/types" 1
16029 typedef unsigned int nat;
16030 # 16 "../schultz" 2
16033 # 1 "../language/iteration" 1
16034 # 19 "../schultz" 2
16037 # 1 "../language/meta" 1
16038 # 9 "../language/meta"
16039 template<typename T> struct default_type_traits {
16042 trivial_constructor = false,
16043 trivial_copy = false,
16044 trivial_assignment = false,
16045 trivial_destructor = false,
16047 fast_increment = false,
16048 fast_decrement = false,
16049 fast_random_increment = false,
16051 special_swap = false
16056 template<typename T> struct type_traits {
16058 trivial = T::type_traits::trivial || (
16059 T::type_traits::trivial_constructor &&
16060 T::type_traits::trivial_copy &&
16061 T::type_traits::trivial_assignment &&
16062 T::type_traits::trivial_destructor
16064 trivial_constructor = T::type_traits::trivial || T::type_traits::trivial_constructor,
16065 trivial_copy = T::type_traits::trivial || T::type_traits::trivial_copy,
16066 trivial_assignment = T::type_traits::trivial || T::type_traits::trivial_assignment,
16067 trivial_destructor = T::type_traits::trivial || T::type_traits::trivial_destructor,
16069 fast_increment = T::type_traits::fast_increment || T::type_traits::fast_random_increment,
16070 fast_decrement = T::type_traits::fast_decrement || T::type_traits::fast_random_increment,
16071 fast_random_increment = T::type_traits::fast_random_increment,
16073 special_swap = T::type_traits::special_swap
16078 template<typename T> struct builtin_type_traits : public default_type_traits<T> {
16081 trivial_constructor = true,
16082 trivial_copy = true,
16083 trivial_assignment = true,
16084 trivial_destructor = true,
16086 fast_increment = true,
16087 fast_decrement = true,
16088 fast_random_increment = true,
16090 special_swap = false
16095 template<> struct type_traits<bool> : public builtin_type_traits<bool> {};
16096 template<> struct type_traits<nat> : public builtin_type_traits<nat> {};
16097 template<> struct type_traits<int> : public builtin_type_traits<int> {};
16098 template<> struct type_traits<char> : public builtin_type_traits<char> {};
16099 template<typename T> struct type_traits<T*> : public builtin_type_traits<T*> {};
16100 template<typename T> struct type_traits<const T*> : public builtin_type_traits<const T*> {};
16104 template<typename I> struct default_iterator_traits {
16107 persistent = false,
16108 bidirectional = false,
16109 random_access = false
16114 template<typename I> struct iterator_traits {
16116 constant = I::iterator_traits::constant,
16117 persistent = I::iterator_traits::persistent,
16118 bidirectional = I::iterator_traits::bidirectional || I::iterator_traits::random_access,
16119 random_access = I::iterator_traits::random_access
16124 template<typename T> struct iterator_traits<T*> : public default_iterator_traits<T*> {
16128 bidirectional = true,
16129 random_access = true
16132 template<typename T> struct iterator_traits<const T*> : public default_iterator_traits<const T*> {
16136 bidirectional = true,
16137 random_access = true
16142 template<typename I> struct iterator_type_traits : public default_type_traits<I> {
16146 fast_increment = true,
16147 fast_decrement = iterator_traits<I>::bidirectional,
16148 fast_random_increment = iterator_traits<I>::random_access
16151 # 22 "../schultz" 2
16154 # 1 "../language/base" 1
16162 namespace __schultz {
16164 template<bool> struct swap_meta {
16165 template<typename T> static inline void swap(T& a, T& b) {
16173 template<> struct swap_meta<true> {
16174 template<typename T> static inline void swap(T& a, T& b) {
16181 template<typename T> inline void swap(T& a, T& b) {
16182 __schultz::swap_meta<type_traits<T>::special_swap>::swap(a, b);
16187 template<typename I> inline void reverse(I a, I b) {
16195 template<typename T> inline void reverse(T& A) {
16196 reverse(A.begin(), A.end());
16201 template<typename I, typename E> inline bool equal(I a, I b, E e) {
16202 while (--b != a) if (!e(*a, *b)) return false;
16205 template<typename I> inline bool equal(I a, I b) {
16206 while (--b != a) if (*a != *b) return false;
16209 template<typename T, typename E> inline bool equal(const T& A, E e) {
16210 return equal(A.begin(), A.end(), e);
16212 template<typename T> inline bool equal(const T& A) {
16213 return equal(A.begin(), A.end());
16218 template<typename T> inline bool ascending(const T& x, const T& y) {
16223 template<typename T> inline bool descending(const T& x, const T& y) {
16229 template<typename T, typename O> inline const T& min(const T& x, const T& y, O o) {
16230 return o(x, y) ? x : y;
16232 template<typename T> inline const T& min(const T& x, const T& y) {
16233 return x < y ? x : y;
16235 template<typename T, typename O> inline T& min(T& x, T& y, O o) {
16236 return o(x, y) ? x : y;
16238 template<typename T> inline T& min(T& x, T& y) {
16239 return x < y ? x : y;
16243 template<typename T, typename O> inline const T& max(const T& x, const T& y, O o) {
16244 return o(y, x) ? x : y;
16246 template<typename T> inline const T& max(const T& x, const T& y) {
16247 return y < x ? x : y;
16249 template<typename T, typename O> inline T& max(T& x, T& y, O o) {
16250 return o(y, x) ? x : y;
16252 template<typename T> inline T& max(T& x, T& y) {
16253 return y < x ? x : y;
16258 template<typename I, typename O> inline I minimum(I a, I b, O o) {
16260 while (++a != b) if (o(*a, *m)) m = a;
16263 template<typename I> inline I minimum(I a, I b) {
16265 while (++a != b) if (*a < *m) m = a;
16268 template<typename T, typename O> inline typename T::const_iterator minimum(const T& A, O o) {
16269 return minimum(A.begin(), A.end(), o);
16271 template<typename T> inline typename T::const_iterator minimum(const T& A) {
16272 return minimum(A.begin(), A.end());
16274 template<typename T, typename O> inline typename T::iterator minimum(T& A, O o) {
16275 return minimum(A.begin(), A.end(), o);
16277 template<typename T> inline typename T::iterator minimum(T& A) {
16278 return minimum(A.begin(), A.end());
16282 template<typename I, typename O> inline I maximum(I a, I b, O o) {
16284 while (++a != b) if (o(*m, *a)) m = a;
16287 template<typename I> inline I maximum(I a, I b) {
16289 while (++a != b) if (*m < *a) m = a;
16292 template<typename T, typename O> inline typename T::const_iterator maximum(const T& A, O o) {
16293 return maximum(A.begin(), A.end(), o);
16295 template<typename T> inline typename T::const_iterator maximum(const T& A) {
16296 return maximum(A.begin(), A.end());
16298 template<typename T, typename O> inline typename T::iterator maximum(T& A, O o) {
16299 return maximum(A.begin(), A.end(), o);
16301 template<typename T> inline typename T::iterator maximum(T& A) {
16302 return maximum(A.begin(), A.end());
16304 # 25 "../schultz" 2
16307 # 1 "../language/pair" 1
16314 namespace __schultz {
16316 template<typename T, typename U> struct pair_base {
16322 static inline void swap(pair_base<T, U>& p, pair_base<T, U>& q) {
16323 schultz::swap(p.first, q.first);
16324 schultz::swap(p.second, q.second);
16328 inline bool operator ==(const pair_base<T, U>& p) const {
16329 return first == p.first && second == p.second;
16331 inline bool operator !=(const pair_base<T, U>& p) const {
16332 return !((*this) == p);
16336 inline bool operator <(const pair_base<T, U>& p) const {
16337 return first < p.first || (first == p.first && second < p.second);
16339 inline bool operator >(const pair_base<T, U>& p) const {
16340 return p < (*this);
16342 inline bool operator <=(const pair_base<T, U>& p) const {
16343 return !(p < (*this));
16345 inline bool operator >=(const pair_base<T, U>& p) const {
16346 return !((*this) < p);
16350 inline pair_base() {}
16351 inline pair_base(const T& f, const U& s) : first(f), second(s) {}
16354 struct type_traits : public default_type_traits< pair_base<T, U> > {
16356 trivial = schultz::type_traits<T>::trivial && schultz::type_traits<U>::trivial,
16357 trivial_constructor = schultz::type_traits<T>::trivial_constructor && schultz::type_traits<U>::trivial_constructor,
16358 trivial_copy = schultz::type_traits<T>::trivial_copy && schultz::type_traits<U>::trivial_copy,
16359 trivial_assignment = schultz::type_traits<T>::trivial_assignment && schultz::type_traits<U>::trivial_assignment,
16360 trivial_destructor = schultz::type_traits<T>::trivial_destructor && schultz::type_traits<U>::trivial_destructor,
16362 special_swap = schultz::type_traits<T>::special_swap || schultz::type_traits<U>::special_swap
16369 template<typename T, typename U = T> struct pair : public __schultz::pair_base<T, U> {
16372 inline pair(const T& f, const U& s) : __schultz::pair_base<T, U>::pair_base(f, s) {}
16376 template<typename T> struct pair<T, T> : public __schultz::pair_base<T, T> {
16378 using __schultz::pair_base<T, T>::first;
16379 using __schultz::pair_base<T, T>::second;
16382 inline const T& operator [](nat i) const {return i == 0 ? first : second;}
16383 inline T& operator [](nat i) {return i == 0 ? first : second;}
16387 inline pair(const T& f, const T& s) : __schultz::pair_base<T, T>::pair_base(f, s) {}
16389 # 28 "../schultz" 2
16392 # 1 "../language/interval" 1
16400 namespace __schultz {
16402 template<typename T> struct interval_base {
16407 inline typeof(((T)(*((T*)(0)))) - ((T)(*((T*)(0))))) size() const {return right-left;}
16410 static inline void swap(interval_base<T>& I, interval_base<T>& J) {
16411 schultz::swap(I.left, J.left);
16412 schultz::swap(I.right, J.right);
16416 inline bool operator ==(const interval_base<T>& I) const {
16417 return left == I.left && right == I.right;
16419 inline bool operator !=(const interval_base<T>& I) const {
16420 return !((*this) == I);
16424 inline interval_base() {}
16425 inline interval_base(const T& l, const T& r) : left(l), right(r) {}
16428 struct type_traits : public default_type_traits< interval_base<T> > {
16430 trivial = schultz::type_traits<T>::trivial,
16431 trivial_constructor = schultz::type_traits<T>::trivial_constructor,
16432 trivial_copy = schultz::type_traits<T>::trivial_copy,
16433 trivial_assignment = schultz::type_traits<T>::trivial_assignment,
16434 trivial_destructor = schultz::type_traits<T>::trivial_destructor,
16436 special_swap = schultz::type_traits<T>::special_swap
16443 template<typename T, bool B = type_traits<T>::trivial && type_traits<T>::fast_increment> struct interval : public __schultz::interval_base<T> {
16445 using __schultz::interval_base<T>::left;
16446 using __schultz::interval_base<T>::right;
16449 using __schultz::interval_base<T>::size;
16452 struct const_iterator {
16454 const interval<T, B>* I;
16460 inline T operator *() const {return I->left + i;}
16461 inline T operator [](nat k) const {return I->left + i + k;}
16464 inline bool operator ==(const_iterator it) const {return i == it.i;}
16465 inline bool operator !=(const_iterator it) const {return i != it.i;}
16468 inline bool operator <(const_iterator it) const {return i < it.i;}
16469 inline bool operator >(const_iterator it) const {return i < it.i;}
16470 inline bool operator <=(const_iterator it) const {return i < it.i;}
16471 inline bool operator >=(const_iterator it) const {return i < it.i;}
16474 inline void operator ++() {++i;}
16475 inline const_iterator operator ++(int) {
16476 const_iterator r = (*this);
16480 inline void operator --() {--i;}
16481 inline const_iterator operator --(int) {
16482 const_iterator r = (*this);
16486 inline void operator +=(nat x) {i+= x;}
16487 inline const_iterator operator +(nat x) const {
16488 return const_iterator(I, i+x);
16490 inline void operator -=(nat x) {i-= x;}
16491 inline const_iterator operator -(nat x) const {
16492 return const_iterator(I, i-x);
16494 inline nat operator -(const_iterator it) const {return i - it.i;}
16497 inline const_iterator(const interval<T, B>* p, nat idx) : I(p), i(idx) {}
16500 struct iterator_traits : public default_iterator_traits<const_iterator> {
16503 persistent = false,
16504 bidirectional = true,
16505 random_access = true
16510 struct type_traits : public iterator_type_traits<const_iterator> {};
16514 typedef const_iterator iterator;
16517 inline const_iterator begin() const {return const_iterator(this, 0);}
16518 inline const_iterator end() const {return const_iterator(this, size());}
16519 inline bool end(const_iterator i) const {return i.i == size();}
16522 inline interval() {}
16523 inline interval(const T& l, const T& r) : __schultz::interval_base<T>::interval_base(l, r) {}
16527 template<typename T> struct interval<T, true> : public __schultz::interval_base<T> {
16529 using __schultz::interval_base<T>::left;
16530 using __schultz::interval_base<T>::right;
16533 struct const_iterator {
16538 inline const T& operator *() const {return e;}
16539 inline const T* operator ->() const {return &e;}
16540 inline T operator [](nat i) const {return e+i;}
16543 inline bool operator ==(const_iterator i) const {return e == i.e;}
16544 inline bool operator !=(const_iterator i) const {return e != i.e;}
16547 inline bool operator <(const_iterator i) const {return e < i.e;}
16548 inline bool operator >(const_iterator i) const {return e < i.e;}
16549 inline bool operator <=(const_iterator i) const {return e < i.e;}
16550 inline bool operator >=(const_iterator i) const {return e < i.e;}
16553 inline void operator ++() {++e;}
16554 inline const_iterator operator ++(int) {
16555 const_iterator r = (*this);
16559 inline void operator --() {--e;}
16560 inline const_iterator operator --(int) {
16561 const_iterator r = (*this);
16565 inline void operator +=(nat i) {e+= i;}
16566 inline const_iterator operator +(nat i) const {return const_iterator(e+i);}
16567 inline void operator -=(nat i) {e-= i;}
16568 inline const_iterator operator -(nat i) const {return const_iterator(e-i);}
16569 inline nat operator -(const_iterator i) const {return e - i.e;}
16572 inline const_iterator(T x) : e(x) {}
16575 struct iterator_traits : public default_iterator_traits<const_iterator> {
16578 persistent = false,
16579 bidirectional = schultz::type_traits<T>::fast_decrement,
16580 random_access = schultz::type_traits<T>::fast_random_increment
16585 struct type_traits : public iterator_type_traits<const_iterator> {};
16589 typedef const_iterator iterator;
16592 inline const_iterator begin() const {return const_iterator(left);}
16593 inline const_iterator end() const {return const_iterator(right);}
16594 inline iterator begin() {return iterator(left);}
16595 inline iterator end() {return iterator(right);}
16596 inline bool end(const_iterator i) const {return i.e == right;}
16599 inline interval() {}
16600 inline interval(const T& l, const T& r) : __schultz::interval_base<T>::interval_base(l, r) {}
16605 template<typename T> inline interval<typename T::const_iterator> iterators(const T& A) {
16606 return interval<typename T::const_iterator>(A.begin(), A.end());
16608 template<typename T> inline interval<typename T::iterator> iterators(T& A) {
16609 return interval<typename T::iterator>(A.begin(), A.end());
16613 typedef interval<nat> _;
16614 # 31 "../schultz" 2
16617 using namespace schultz;
16621 int A[1000000] = {3};
16624 reverse(A, A+1000000);
16628 std::reverse(A, A+1000000);
16638 for (int i = 0; i != 1000000; ++i) s+= A[i];