]> git.wh0rd.org Git - ICEs.git/blob - 201605/ice.ii.0
initial import
[ICEs.git] / 201605 / ice.ii.0
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
2 # 1 "t.c++"
3 # 1 "<built-in>"
4 # 1 "<command line>"
5 # 1 "t.c++"
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
17
18
19
20 # 1 "/usr/include/bits/wordsize.h" 1 3 4
21 # 5 "/usr/include/gnu/stubs.h" 2 3 4
22
23
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
28
29 extern "C" {
30
31
32
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
37
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
42
43
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
46
47
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;
52
53
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;
60
61
62
63
64 __extension__ typedef signed long long int __int64_t;
65 __extension__ typedef unsigned long long int __uint64_t;
66
67
68
69
70
71
72
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
78
79
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;
98
99 __extension__ typedef int __daddr_t;
100 __extension__ typedef long int __swblk_t;
101 __extension__ typedef int __key_t;
102
103
104 __extension__ typedef int __clockid_t;
105
106
107 __extension__ typedef void * __timer_t;
108
109
110 __extension__ typedef long int __blksize_t;
111
112
113
114
115 __extension__ typedef long int __blkcnt_t;
116 __extension__ typedef __quad_t __blkcnt64_t;
117
118
119 __extension__ typedef unsigned long int __fsblkcnt_t;
120 __extension__ typedef __u_quad_t __fsblkcnt64_t;
121
122
123 __extension__ typedef unsigned long int __fsfilcnt_t;
124 __extension__ typedef __u_quad_t __fsfilcnt64_t;
125
126 __extension__ typedef int __ssize_t;
127
128
129
130 typedef __off64_t __loff_t;
131 typedef __quad_t *__qaddr_t;
132 typedef char *__caddr_t;
133
134
135 __extension__ typedef int __intptr_t;
136
137
138 __extension__ typedef unsigned int __socklen_t;
139 # 37 "/usr/include/stdio.h" 2 3 4
140 # 45 "/usr/include/stdio.h" 3 4
141 struct _IO_FILE;
142
143
144
145 typedef struct _IO_FILE FILE;
146
147
148
149
150
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
167
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
171 typedef struct
172 {
173   int __count;
174   union
175   {
176     wint_t __wch;
177     char __wchb[4];
178   } __value;
179 } __mbstate_t;
180 # 25 "/usr/include/_G_config.h" 2 3 4
181
182 typedef struct
183 {
184   __off_t __pos;
185   __mbstate_t __state;
186 } _G_fpos_t;
187 typedef struct
188 {
189   __off64_t __pos;
190   __mbstate_t __state;
191 } _G_fpos64_t;
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
200
201
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
204
205
206
207
208
209 enum
210 {
211   __GCONV_OK = 0,
212   __GCONV_NOCONV,
213   __GCONV_NODB,
214   __GCONV_NOMEM,
215
216   __GCONV_EMPTY_INPUT,
217   __GCONV_FULL_OUTPUT,
218   __GCONV_ILLEGAL_INPUT,
219   __GCONV_INCOMPLETE_INPUT,
220
221   __GCONV_ILLEGAL_DESCRIPTOR,
222   __GCONV_INTERNAL_ERROR
223 };
224
225
226
227 enum
228 {
229   __GCONV_IS_LAST = 0x0001,
230   __GCONV_IGNORE_ERRORS = 0x0002
231 };
232
233
234
235 struct __gconv_step;
236 struct __gconv_step_data;
237 struct __gconv_loaded_object;
238 struct __gconv_trans_data;
239
240
241
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);
245
246
247 typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
248
249
250 typedef int (*__gconv_init_fct) (struct __gconv_step *);
251 typedef void (*__gconv_end_fct) (struct __gconv_step *);
252
253
254
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 **,
260       size_t *);
261
262
263 typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
264        __const unsigned char *,
265        unsigned char *, unsigned char *);
266
267
268 typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
269      size_t *);
270
271
272 typedef int (*__gconv_trans_init_fct) (void **, const char *);
273 typedef void (*__gconv_trans_end_fct) (void *);
274
275 struct __gconv_trans_data
276 {
277
278   __gconv_trans_fct __trans_fct;
279   __gconv_trans_context_fct __trans_context_fct;
280   __gconv_trans_end_fct __trans_end_fct;
281   void *__data;
282   struct __gconv_trans_data *__next;
283 };
284
285
286
287 struct __gconv_step
288 {
289   struct __gconv_loaded_object *__shlib_handle;
290   __const char *__modname;
291
292   int __counter;
293
294   char *__from_name;
295   char *__to_name;
296
297   __gconv_fct __fct;
298   __gconv_btowc_fct __btowc_fct;
299   __gconv_init_fct __init_fct;
300   __gconv_end_fct __end_fct;
301
302
303
304   int __min_needed_from;
305   int __max_needed_from;
306   int __min_needed_to;
307   int __max_needed_to;
308
309
310   int __stateful;
311
312   void *__data;
313 };
314
315
316
317 struct __gconv_step_data
318 {
319   unsigned char *__outbuf;
320   unsigned char *__outbufend;
321
322
323
324   int __flags;
325
326
327
328   int __invocation_counter;
329
330
331
332   int __internal_use;
333
334   __mbstate_t *__statep;
335   __mbstate_t __state;
336
337
338
339   struct __gconv_trans_data *__trans;
340 };
341
342
343
344 typedef struct __gconv_info
345 {
346   size_t __nsteps;
347   struct __gconv_step *__steps;
348   __extension__ struct __gconv_step_data __data [];
349 } *__gconv_t;
350 # 45 "/usr/include/_G_config.h" 2 3 4
351 typedef union
352 {
353   struct __gconv_info __cd;
354   struct
355   {
356     struct __gconv_info __cd;
357     struct __gconv_step_data __data;
358   } __combined;
359 } _G_iconv_t;
360
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;
375
376
377
378
379
380 struct _IO_marker {
381   struct _IO_marker *_next;
382   struct _IO_FILE *_sbuf;
383
384
385
386   int _pos;
387 # 200 "/usr/include/libio.h" 3 4
388 };
389
390
391 enum __codecvt_result
392 {
393   __codecvt_ok,
394   __codecvt_partial,
395   __codecvt_error,
396   __codecvt_noconv
397 };
398 # 268 "/usr/include/libio.h" 3 4
399 struct _IO_FILE {
400   int _flags;
401
402
403
404
405   char* _IO_read_ptr;
406   char* _IO_read_end;
407   char* _IO_read_base;
408   char* _IO_write_base;
409   char* _IO_write_ptr;
410   char* _IO_write_end;
411   char* _IO_buf_base;
412   char* _IO_buf_end;
413
414   char *_IO_save_base;
415   char *_IO_backup_base;
416   char *_IO_save_end;
417
418   struct _IO_marker *_markers;
419
420   struct _IO_FILE *_chain;
421
422   int _fileno;
423
424
425
426   int _flags2;
427
428   __off_t _old_offset;
429
430
431
432   unsigned short _cur_column;
433   signed char _vtable_offset;
434   char _shortbuf[1];
435
436
437
438   _IO_lock_t *_lock;
439 # 316 "/usr/include/libio.h" 3 4
440   __off64_t _offset;
441 # 325 "/usr/include/libio.h" 3 4
442   void *__pad1;
443   void *__pad2;
444   void *__pad3;
445   void *__pad4;
446   size_t __pad5;
447
448   int _mode;
449
450   char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
451
452 };
453
454
455
456
457
458 struct _IO_FILE_plus;
459
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);
465
466
467
468
469
470
471
472 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
473      size_t __n);
474
475
476
477
478
479
480
481 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
482
483
484 typedef int __io_close_fn (void *__cookie);
485
486
487
488
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;
493
494
495 typedef struct
496 {
497   __io_read_fn *read;
498   __io_write_fn *write;
499   __io_seek_fn *seek;
500   __io_close_fn *close;
501 } _IO_cookie_io_functions_t;
502 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
503
504 struct _IO_cookie_file;
505
506
507 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
508         void *__cookie, _IO_cookie_io_functions_t __fns);
509
510
511
512
513 extern "C" {
514
515
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 ();
527
528 extern int _IO_peekc_locked (_IO_FILE *__fp);
529
530
531
532
533
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,
541     __gnuc_va_list);
542 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
543 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
544
545 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
546 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
547
548 extern void _IO_free_backup_area (_IO_FILE *) throw ();
549 # 543 "/usr/include/libio.h" 3 4
550 }
551 # 76 "/usr/include/stdio.h" 2 3 4
552
553
554
555
556 typedef __gnuc_va_list va_list;
557 # 89 "/usr/include/stdio.h" 3 4
558
559
560 typedef _G_fpos_t fpos_t;
561
562
563
564
565
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
570
571
572
573 extern struct _IO_FILE *stdin;
574 extern struct _IO_FILE *stdout;
575 extern struct _IO_FILE *stderr;
576
577
578
579
580
581
582
583 extern int remove (__const char *__filename) throw ();
584
585 extern int rename (__const char *__old, __const char *__new) throw ();
586
587
588
589
590 extern int renameat (int __oldfd, __const char *__old, int __newfd,
591        __const char *__new) throw ();
592
593
594
595
596
597
598
599
600 extern FILE *tmpfile (void) ;
601 # 182 "/usr/include/stdio.h" 3 4
602 extern FILE *tmpfile64 (void) ;
603
604
605
606 extern char *tmpnam (char *__s) throw () ;
607
608
609
610
611
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__)) ;
616
617
618
619
620
621
622
623
624 extern int fclose (FILE *__stream);
625
626
627
628
629 extern int fflush (FILE *__stream);
630
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);
635
636
637
638
639
640
641
642
643
644 extern FILE *fopen (__const char *__restrict __filename,
645       __const char *__restrict __modes) ;
646
647
648
649
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
654
655
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) ;
661
662
663
664
665 extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
666
667
668
669
670
671 extern FILE *fopencookie (void *__restrict __magic_cookie,
672      __const char *__restrict __modes,
673      _IO_cookie_io_functions_t __io_funcs) throw () ;
674
675
676 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
677   throw () ;
678
679
680
681
682 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
683
684
685
686
687
688
689 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
690
691
692
693 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
694       int __modes, size_t __n) throw ();
695
696
697
698
699
700 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
701          size_t __size) throw ();
702
703
704 extern void setlinebuf (FILE *__stream) throw ();
705
706
707
708
709
710
711
712
713 extern int fprintf (FILE *__restrict __stream,
714       __const char *__restrict __format, ...);
715
716
717
718
719 extern int printf (__const char *__restrict __format, ...);
720
721 extern int sprintf (char *__restrict __s,
722       __const char *__restrict __format, ...) throw ();
723
724
725
726
727
728 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
729        __gnuc_va_list __arg);
730
731
732
733
734 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
735
736 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
737        __gnuc_va_list __arg) throw ();
738
739
740
741
742
743 extern int snprintf (char *__restrict __s, size_t __maxlen,
744        __const char *__restrict __format, ...)
745      throw () __attribute__ ((__format__ (__printf__, 3, 4)));
746
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)));
750
751
752
753
754
755
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))) ;
765
766
767
768
769
770
771
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)));
777
778
779
780
781
782
783
784
785 extern int fscanf (FILE *__restrict __stream,
786      __const char *__restrict __format, ...) ;
787
788
789
790
791 extern int scanf (__const char *__restrict __format, ...) ;
792
793 extern int sscanf (__const char *__restrict __s,
794      __const char *__restrict __format, ...) throw ();
795
796
797
798
799
800
801
802
803 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
804       __gnuc_va_list __arg)
805      __attribute__ ((__format__ (__scanf__, 2, 0))) ;
806
807
808
809
810
811 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
812      __attribute__ ((__format__ (__scanf__, 1, 0))) ;
813
814
815 extern int vsscanf (__const char *__restrict __s,
816       __const char *__restrict __format, __gnuc_va_list __arg)
817      throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
818
819
820
821
822
823
824
825
826
827 extern int fgetc (FILE *__stream);
828 extern int getc (FILE *__stream);
829
830
831
832
833
834 extern int getchar (void);
835
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);
841
842
843
844
845
846
847
848
849
850
851
852 extern int fputc (int __c, FILE *__stream);
853 extern int putc (int __c, FILE *__stream);
854
855
856
857
858
859 extern int putchar (int __c);
860
861 # 508 "/usr/include/stdio.h" 3 4
862 extern int fputc_unlocked (int __c, FILE *__stream);
863
864
865
866
867
868
869
870 extern int putc_unlocked (int __c, FILE *__stream);
871 extern int putchar_unlocked (int __c);
872
873
874
875
876
877
878 extern int getw (FILE *__stream);
879
880
881 extern int putw (int __w, FILE *__stream);
882
883
884
885
886
887
888
889
890 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
891      ;
892
893
894
895
896
897
898 extern char *gets (char *__s) ;
899
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) ;
910
911
912
913
914
915
916
917 extern __ssize_t getline (char **__restrict __lineptr,
918        size_t *__restrict __n,
919        FILE *__restrict __stream) ;
920
921
922
923
924
925
926
927
928 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
929
930
931
932
933
934 extern int puts (__const char *__s);
935
936
937
938
939
940
941 extern int ungetc (int __c, FILE *__stream);
942
943
944
945
946
947
948 extern size_t fread (void *__restrict __ptr, size_t __size,
949        size_t __n, FILE *__restrict __stream) ;
950
951
952
953
954 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
955         size_t __n, FILE *__restrict __s) ;
956
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) ;
965
966
967
968
969
970
971
972
973 extern int fseek (FILE *__stream, long int __off, int __whence);
974
975
976
977
978 extern long int ftell (FILE *__stream) ;
979
980
981
982
983 extern void rewind (FILE *__stream);
984
985 # 678 "/usr/include/stdio.h" 3 4
986 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
987
988
989
990
991 extern __off_t ftello (FILE *__stream) ;
992 # 697 "/usr/include/stdio.h" 3 4
993
994
995
996
997
998
999 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
1000
1001
1002
1003
1004 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
1005 # 720 "/usr/include/stdio.h" 3 4
1006
1007
1008
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);
1013
1014
1015
1016
1017 extern void clearerr (FILE *__stream) throw ();
1018
1019 extern int feof (FILE *__stream) throw () ;
1020
1021 extern int ferror (FILE *__stream) throw () ;
1022
1023
1024
1025
1026 extern void clearerr_unlocked (FILE *__stream) throw ();
1027 extern int feof_unlocked (FILE *__stream) throw () ;
1028 extern int ferror_unlocked (FILE *__stream) throw () ;
1029
1030
1031
1032
1033
1034
1035
1036
1037 extern void perror (__const char *__s);
1038
1039
1040
1041
1042
1043
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[];
1048
1049
1050 extern int _sys_nerr;
1051 extern __const char *__const _sys_errlist[];
1052 # 759 "/usr/include/stdio.h" 2 3 4
1053
1054
1055
1056
1057 extern int fileno (FILE *__stream) throw () ;
1058
1059
1060
1061
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) ;
1065
1066
1067
1068
1069
1070 extern int pclose (FILE *__stream);
1071
1072
1073
1074
1075
1076 extern char *ctermid (char *__s) throw ();
1077
1078
1079
1080
1081
1082 extern char *cuserid (char *__s);
1083
1084
1085
1086
1087 struct obstack;
1088
1089
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)));
1097
1098
1099
1100
1101
1102
1103
1104 extern void flockfile (FILE *__stream) throw ();
1105
1106
1107
1108 extern int ftrylockfile (FILE *__stream) throw () ;
1109
1110
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
1115 inline int
1116 vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
1117 {
1118   return vfprintf (stdout, __fmt, __arg);
1119 }
1120
1121
1122 inline int
1123 getchar (void)
1124 {
1125   return _IO_getc (stdin);
1126 }
1127
1128
1129
1130
1131 inline int
1132 fgetc_unlocked (FILE *__fp)
1133 {
1134   return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1135 }
1136
1137
1138
1139
1140
1141 inline int
1142 getc_unlocked (FILE *__fp)
1143 {
1144   return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
1145 }
1146
1147
1148 inline int
1149 getchar_unlocked (void)
1150 {
1151   return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
1152 }
1153
1154
1155
1156
1157 inline int
1158 putchar (int __c)
1159 {
1160   return _IO_putc (__c, stdout);
1161 }
1162
1163
1164
1165
1166 inline int
1167 fputc_unlocked (int __c, FILE *__stream)
1168 {
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)));
1170 }
1171
1172
1173
1174
1175
1176 inline int
1177 putc_unlocked (int __c, FILE *__stream)
1178 {
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)));
1180 }
1181
1182
1183 inline int
1184 putchar_unlocked (int __c)
1185 {
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)));
1187 }
1188
1189
1190
1191
1192
1193 inline __ssize_t
1194 getline (char **__lineptr, size_t *__n, FILE *__stream)
1195 {
1196   return __getdelim (__lineptr, __n, '\n', __stream);
1197 }
1198
1199
1200
1201
1202
1203 inline int
1204 feof_unlocked (FILE *__stream) throw ()
1205 {
1206   return (((__stream)->_flags & 0x10) != 0);
1207 }
1208
1209
1210 inline int
1211 ferror_unlocked (FILE *__stream) throw ()
1212 {
1213   return (((__stream)->_flags & 0x20) != 0);
1214 }
1215 # 840 "/usr/include/stdio.h" 2 3 4
1216 # 848 "/usr/include/stdio.h" 3 4
1217 }
1218 # 2 "t.c++" 2
1219
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
1222        
1223 # 64 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 3
1224 #pragma GCC visibility push(default)
1225
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
1232
1233
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
1236
1237
1238
1239
1240 namespace __gnu_debug_def { }
1241
1242 namespace __gnu_debug
1243 {
1244   using namespace __gnu_debug_def;
1245 }
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
1249        
1250 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 3
1251 #pragma GCC visibility push(default)
1252
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
1255        
1256 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstddef" 3
1257 #pragma GCC visibility push(default)
1258
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
1263
1264 namespace std
1265 {
1266   using ::ptrdiff_t;
1267   using ::size_t;
1268 }
1269
1270 #pragma GCC visibility pop
1271 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstring" 2 3
1272
1273 # 1 "/usr/include/string.h" 1 3 4
1274 # 28 "/usr/include/string.h" 3 4
1275 extern "C" {
1276
1277
1278
1279
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
1282
1283
1284
1285
1286 extern void *memcpy (void *__restrict __dest,
1287        __const void *__restrict __src, size_t __n)
1288      throw () __attribute__ ((__nonnull__ (1, 2)));
1289
1290
1291 extern void *memmove (void *__dest, __const void *__src, size_t __n)
1292      throw () __attribute__ ((__nonnull__ (1, 2)));
1293
1294
1295
1296
1297
1298
1299 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
1300         int __c, size_t __n)
1301      throw () __attribute__ ((__nonnull__ (1, 2)));
1302
1303
1304
1305
1306
1307 extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1308
1309
1310 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
1311      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1312
1313
1314 extern void *memchr (__const void *__s, int __c, size_t __n)
1315       throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1316
1317
1318
1319
1320
1321 extern void *rawmemchr (__const void *__s, int __c)
1322      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1323
1324
1325 extern void *memrchr (__const void *__s, int __c, size_t __n)
1326       throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1327
1328
1329
1330
1331
1332 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
1333      throw () __attribute__ ((__nonnull__ (1, 2)));
1334
1335 extern char *strncpy (char *__restrict __dest,
1336         __const char *__restrict __src, size_t __n)
1337      throw () __attribute__ ((__nonnull__ (1, 2)));
1338
1339
1340 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
1341      throw () __attribute__ ((__nonnull__ (1, 2)));
1342
1343 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
1344         size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
1345
1346
1347 extern int strcmp (__const char *__s1, __const char *__s2)
1348      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1349
1350 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
1351      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1352
1353
1354 extern int strcoll (__const char *__s1, __const char *__s2)
1355      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1356
1357 extern size_t strxfrm (char *__restrict __dest,
1358          __const char *__restrict __src, size_t __n)
1359      throw () __attribute__ ((__nonnull__ (2)));
1360
1361
1362
1363
1364
1365
1366 # 1 "/usr/include/xlocale.h" 1 3 4
1367 # 28 "/usr/include/xlocale.h" 3 4
1368 typedef struct __locale_struct
1369 {
1370
1371   struct locale_data *__locales[13];
1372
1373
1374   const unsigned short int *__ctype_b;
1375   const int *__ctype_tolower;
1376   const int *__ctype_toupper;
1377
1378
1379   const char *__names[13];
1380 } *__locale_t;
1381 # 119 "/usr/include/string.h" 2 3 4
1382
1383
1384 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
1385      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1386
1387 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
1388     __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
1389
1390
1391
1392
1393 extern char *strdup (__const char *__s)
1394      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
1395
1396
1397
1398
1399
1400
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
1404
1405
1406 extern char *strchr (__const char *__s, int __c)
1407      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1408
1409 extern char *strrchr (__const char *__s, int __c)
1410      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1411
1412
1413
1414
1415
1416 extern char *strchrnul (__const char *__s, int __c)
1417      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1418
1419
1420
1421
1422
1423 extern size_t strcspn (__const char *__s, __const char *__reject)
1424      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1425
1426
1427 extern size_t strspn (__const char *__s, __const char *__accept)
1428      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1429
1430 extern char *strpbrk (__const char *__s, __const char *__accept)
1431      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1432
1433 extern char *strstr (__const char *__haystack, __const char *__needle)
1434      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1435
1436
1437
1438 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
1439      throw () __attribute__ ((__nonnull__ (2)));
1440
1441
1442
1443
1444 extern char *__strtok_r (char *__restrict __s,
1445     __const char *__restrict __delim,
1446     char **__restrict __save_ptr)
1447      throw () __attribute__ ((__nonnull__ (2, 3)));
1448
1449 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
1450          char **__restrict __save_ptr)
1451      throw () __attribute__ ((__nonnull__ (2, 3)));
1452
1453
1454
1455
1456 extern char *strcasestr (__const char *__haystack, __const char *__needle)
1457      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1458
1459
1460
1461
1462
1463
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)));
1467
1468
1469
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)));
1476
1477
1478
1479
1480
1481 extern size_t strlen (__const char *__s)
1482      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1483
1484
1485
1486
1487
1488 extern size_t strnlen (__const char *__string, size_t __maxlen)
1489      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1490
1491
1492
1493
1494
1495 extern char *strerror (int __errnum) throw ();
1496
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)));
1500
1501
1502
1503
1504
1505 extern char *strerror_l (int __errnum, __locale_t __l) throw ();
1506
1507
1508
1509
1510
1511 extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1512
1513
1514
1515 extern void bcopy (__const void *__src, void *__dest, size_t __n)
1516      throw () __attribute__ ((__nonnull__ (1, 2)));
1517
1518
1519 extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1520
1521
1522 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
1523      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1524
1525
1526 extern char *index (__const char *__s, int __c)
1527      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1528
1529
1530 extern char *rindex (__const char *__s, int __c)
1531      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
1532
1533
1534
1535 extern int ffs (int __i) throw () __attribute__ ((__const__));
1536
1537
1538
1539
1540 extern int ffsl (long int __l) throw () __attribute__ ((__const__));
1541
1542 __extension__ extern int ffsll (long long int __ll)
1543      throw () __attribute__ ((__const__));
1544
1545
1546
1547
1548 extern int strcasecmp (__const char *__s1, __const char *__s2)
1549      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1550
1551
1552 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
1553      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1554
1555
1556
1557
1558
1559 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
1560     __locale_t __loc)
1561      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
1562
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)));
1566
1567
1568
1569
1570
1571 extern char *strsep (char **__restrict __stringp,
1572        __const char *__restrict __delim)
1573      throw () __attribute__ ((__nonnull__ (1, 2)));
1574
1575
1576
1577
1578 extern int strverscmp (__const char *__s1, __const char *__s2)
1579      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
1580
1581
1582 extern char *strsignal (int __sig) throw ();
1583
1584
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)));
1589
1590
1591
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)));
1598
1599
1600 extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
1601
1602
1603 extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
1604
1605
1606
1607
1608
1609
1610 extern char *basename (__const char *__filename) throw () __attribute__ ((__nonnull__ (1)));
1611 # 432 "/usr/include/string.h" 3 4
1612 }
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
1615 namespace std
1616 {
1617   using ::memcpy;
1618   using ::memmove;
1619   using ::strcpy;
1620   using ::strncpy;
1621   using ::strcat;
1622   using ::strncat;
1623   using ::memcmp;
1624   using ::strcmp;
1625   using ::strcoll;
1626   using ::strncmp;
1627   using ::strxfrm;
1628   using ::strcspn;
1629   using ::strspn;
1630   using ::strtok;
1631   using ::memset;
1632   using ::strerror;
1633   using ::strlen;
1634
1635   using ::memchr;
1636
1637   inline void*
1638   memchr(void* __p, int __c, size_t __n)
1639   { return memchr(const_cast<const void*>(__p), __c, __n); }
1640
1641   using ::strchr;
1642
1643   inline char*
1644   strchr(char* __s1, int __n)
1645   { return __builtin_strchr(const_cast<const char*>(__s1), __n); }
1646
1647   using ::strpbrk;
1648
1649   inline char*
1650   strpbrk(char* __s1, const char* __s2)
1651   { return __builtin_strpbrk(const_cast<const char*>(__s1), __s2); }
1652
1653   using ::strrchr;
1654
1655   inline char*
1656   strrchr(char* __s1, int __n)
1657   { return __builtin_strrchr(const_cast<const char*>(__s1), __n); }
1658
1659   using ::strstr;
1660
1661   inline char*
1662   strstr(char* __s1, const char* __s2)
1663   { return __builtin_strstr(const_cast<const char*>(__s1), __s2); }
1664 }
1665
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
1670        
1671 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/climits" 3
1672 #pragma GCC visibility push(default)
1673
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
1677
1678
1679
1680
1681
1682
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
1695
1696
1697
1698 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
1699 # 150 "/usr/include/limits.h" 2 3 4
1700
1701
1702
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
1712
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
1717        
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
1725
1726 extern "C" {
1727
1728
1729
1730
1731
1732
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
1742
1743 union wait
1744   {
1745     int w_status;
1746     struct
1747       {
1748
1749  unsigned int __w_termsig:7;
1750  unsigned int __w_coredump:1;
1751  unsigned int __w_retcode:8;
1752  unsigned int:16;
1753
1754
1755
1756
1757
1758
1759
1760       } __wait_terminated;
1761     struct
1762       {
1763
1764  unsigned int __w_stopval:8;
1765  unsigned int __w_stopsig:8;
1766  unsigned int:16;
1767
1768
1769
1770
1771
1772
1773       } __wait_stopped;
1774   };
1775 # 44 "/usr/include/stdlib.h" 2 3 4
1776 # 96 "/usr/include/stdlib.h" 3 4
1777
1778
1779 typedef struct
1780   {
1781     int quot;
1782     int rem;
1783   } div_t;
1784
1785
1786
1787 typedef struct
1788   {
1789     long int quot;
1790     long int rem;
1791   } ldiv_t;
1792
1793
1794
1795
1796
1797
1798
1799 __extension__ typedef struct
1800   {
1801     long long int quot;
1802     long long int rem;
1803   } lldiv_t;
1804
1805
1806 # 140 "/usr/include/stdlib.h" 3 4
1807 extern size_t __ctype_get_mb_cur_max (void) throw () ;
1808
1809
1810
1811
1812 extern double atof (__const char *__nptr)
1813      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1814
1815 extern int atoi (__const char *__nptr)
1816      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1817
1818 extern long int atol (__const char *__nptr)
1819      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1820
1821
1822
1823
1824
1825 __extension__ extern long long int atoll (__const char *__nptr)
1826      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
1827
1828
1829
1830
1831
1832 extern double strtod (__const char *__restrict __nptr,
1833         char **__restrict __endptr)
1834      throw () __attribute__ ((__nonnull__ (1))) ;
1835
1836
1837
1838
1839
1840 extern float strtof (__const char *__restrict __nptr,
1841        char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
1842
1843 extern long double strtold (__const char *__restrict __nptr,
1844        char **__restrict __endptr)
1845      throw () __attribute__ ((__nonnull__ (1))) ;
1846
1847
1848
1849
1850
1851 extern long int strtol (__const char *__restrict __nptr,
1852    char **__restrict __endptr, int __base)
1853      throw () __attribute__ ((__nonnull__ (1))) ;
1854
1855 extern unsigned long int strtoul (__const char *__restrict __nptr,
1856       char **__restrict __endptr, int __base)
1857      throw () __attribute__ ((__nonnull__ (1))) ;
1858
1859
1860
1861
1862 __extension__
1863 extern long long int strtoq (__const char *__restrict __nptr,
1864         char **__restrict __endptr, int __base)
1865      throw () __attribute__ ((__nonnull__ (1))) ;
1866
1867 __extension__
1868 extern unsigned long long int strtouq (__const char *__restrict __nptr,
1869            char **__restrict __endptr, int __base)
1870      throw () __attribute__ ((__nonnull__ (1))) ;
1871
1872
1873
1874
1875
1876 __extension__
1877 extern long long int strtoll (__const char *__restrict __nptr,
1878          char **__restrict __endptr, int __base)
1879      throw () __attribute__ ((__nonnull__ (1))) ;
1880
1881 __extension__
1882 extern unsigned long long int strtoull (__const char *__restrict __nptr,
1883      char **__restrict __endptr, int __base)
1884      throw () __attribute__ ((__nonnull__ (1))) ;
1885
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))) ;
1890
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))) ;
1895
1896 __extension__
1897 extern long long int strtoll_l (__const char *__restrict __nptr,
1898     char **__restrict __endptr, int __base,
1899     __locale_t __loc)
1900      throw () __attribute__ ((__nonnull__ (1, 4))) ;
1901
1902 __extension__
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))) ;
1907
1908 extern double strtod_l (__const char *__restrict __nptr,
1909    char **__restrict __endptr, __locale_t __loc)
1910      throw () __attribute__ ((__nonnull__ (1, 3))) ;
1911
1912 extern float strtof_l (__const char *__restrict __nptr,
1913          char **__restrict __endptr, __locale_t __loc)
1914      throw () __attribute__ ((__nonnull__ (1, 3))) ;
1915
1916 extern long double strtold_l (__const char *__restrict __nptr,
1917          char **__restrict __endptr,
1918          __locale_t __loc)
1919      throw () __attribute__ ((__nonnull__ (1, 3))) ;
1920
1921
1922
1923
1924
1925
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,
1934            int __group)
1935      throw () __attribute__ ((__nonnull__ (1))) ;
1936
1937 extern long int __strtol_internal (__const char *__restrict __nptr,
1938        char **__restrict __endptr,
1939        int __base, int __group)
1940      throw () __attribute__ ((__nonnull__ (1))) ;
1941
1942
1943
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))) ;
1948
1949
1950
1951
1952 __extension__
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))) ;
1957
1958
1959
1960 __extension__
1961 extern unsigned long long int __strtoull_internal (__const char *
1962          __restrict __nptr,
1963          char **__restrict __endptr,
1964          int __base, int __group)
1965      throw () __attribute__ ((__nonnull__ (1))) ;
1966
1967
1968
1969
1970
1971
1972
1973
1974 extern __inline double
1975 strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1976 {
1977   return __strtod_internal (__nptr, __endptr, 0);
1978 }
1979 extern __inline long int
1980 strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1981
1982 {
1983   return __strtol_internal (__nptr, __endptr, __base, 0);
1984 }
1985 extern __inline unsigned long int
1986 strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
1987
1988 {
1989   return __strtoul_internal (__nptr, __endptr, __base, 0);
1990 }
1991
1992
1993
1994
1995 extern __inline float
1996 strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
1997 {
1998   return __strtof_internal (__nptr, __endptr, 0);
1999 }
2000
2001 extern __inline long double
2002 strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
2003 {
2004   return __strtold_internal (__nptr, __endptr, 0);
2005 }
2006
2007
2008
2009
2010
2011 __extension__ extern __inline long long int
2012 strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2013
2014 {
2015   return __strtoll_internal (__nptr, __endptr, __base, 0);
2016 }
2017 __extension__ extern __inline unsigned long long int
2018 strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2019
2020 {
2021   return __strtoull_internal (__nptr, __endptr, __base, 0);
2022 }
2023
2024
2025
2026
2027 __extension__ extern __inline long long int
2028 strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ()
2029
2030 {
2031   return __strtoll_internal (__nptr, __endptr, __base, 0);
2032 }
2033 __extension__ extern __inline unsigned long long int
2034 strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) throw ()
2035
2036 {
2037   return __strtoull_internal (__nptr, __endptr, __base, 0);
2038 }
2039
2040
2041
2042
2043 extern __inline double
2044 atof (__const char *__nptr) throw ()
2045 {
2046   return strtod (__nptr, (char **) __null);
2047 }
2048 extern __inline int
2049 atoi (__const char *__nptr) throw ()
2050 {
2051   return (int) strtol (__nptr, (char **) __null, 10);
2052 }
2053 extern __inline long int
2054 atol (__const char *__nptr) throw ()
2055 {
2056   return strtol (__nptr, (char **) __null, 10);
2057 }
2058
2059
2060
2061
2062 __extension__ extern __inline long long int
2063 atoll (__const char *__nptr) throw ()
2064 {
2065   return strtoll (__nptr, (char **) __null, 10);
2066 }
2067
2068 # 429 "/usr/include/stdlib.h" 3 4
2069 extern char *l64a (long int __n) throw () ;
2070
2071
2072 extern long int a64l (__const char *__s)
2073      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
2074
2075
2076
2077
2078 # 1 "/usr/include/sys/types.h" 1 3 4
2079 # 29 "/usr/include/sys/types.h" 3 4
2080 extern "C" {
2081
2082
2083
2084
2085
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;
2093
2094
2095
2096
2097 typedef __loff_t loff_t;
2098
2099
2100
2101 typedef __ino_t ino_t;
2102
2103
2104
2105
2106
2107
2108 typedef __ino64_t ino64_t;
2109
2110
2111
2112
2113 typedef __dev_t dev_t;
2114
2115
2116
2117
2118 typedef __gid_t gid_t;
2119
2120
2121
2122
2123 typedef __mode_t mode_t;
2124
2125
2126
2127
2128 typedef __nlink_t nlink_t;
2129
2130
2131
2132
2133 typedef __uid_t uid_t;
2134
2135
2136
2137
2138
2139 typedef __off_t off_t;
2140
2141
2142
2143
2144
2145
2146 typedef __off64_t off64_t;
2147
2148
2149
2150
2151 typedef __pid_t pid_t;
2152
2153
2154
2155
2156 typedef __id_t id_t;
2157
2158
2159
2160
2161 typedef __ssize_t ssize_t;
2162
2163
2164
2165
2166
2167 typedef __daddr_t daddr_t;
2168 typedef __caddr_t caddr_t;
2169
2170
2171
2172
2173
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
2178
2179
2180 typedef __clock_t clock_t;
2181
2182
2183
2184 # 75 "/usr/include/time.h" 3 4
2185
2186
2187 typedef __time_t time_t;
2188
2189
2190
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
2196
2197
2198
2199 typedef __useconds_t useconds_t;
2200
2201
2202
2203 typedef __suseconds_t suseconds_t;
2204
2205
2206
2207
2208
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
2211
2212
2213
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__)));
2222
2223
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__)));
2228
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
2235
2236
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;
2240
2241
2242
2243
2244 typedef struct
2245   {
2246     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
2247   } __sigset_t;
2248 # 35 "/usr/include/sys/select.h" 2 3 4
2249
2250
2251
2252 typedef __sigset_t sigset_t;
2253
2254
2255
2256
2257
2258 # 1 "/usr/include/time.h" 1 3 4
2259 # 121 "/usr/include/time.h" 3 4
2260 struct timespec
2261   {
2262     __time_t tv_sec;
2263     long int tv_nsec;
2264   };
2265 # 45 "/usr/include/sys/select.h" 2 3 4
2266
2267 # 1 "/usr/include/bits/time.h" 1 3 4
2268 # 69 "/usr/include/bits/time.h" 3 4
2269 struct timeval
2270   {
2271     __time_t tv_sec;
2272     __suseconds_t tv_usec;
2273   };
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
2278 typedef struct
2279   {
2280
2281
2282
2283     __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
2284
2285
2286
2287
2288
2289   } fd_set;
2290
2291
2292
2293
2294
2295
2296 typedef __fd_mask fd_mask;
2297 # 99 "/usr/include/sys/select.h" 3 4
2298 extern "C" {
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);
2310
2311
2312 }
2313 # 221 "/usr/include/sys/types.h" 2 3 4
2314
2315
2316 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
2317 # 30 "/usr/include/sys/sysmacros.h" 3 4
2318 __extension__
2319 extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
2320      throw ();
2321 __extension__
2322 extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
2323      throw ();
2324 __extension__
2325 extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
2326        unsigned int __minor)
2327      throw ();
2328
2329
2330 __extension__ extern __inline unsigned int
2331 gnu_dev_major (unsigned long long int __dev) throw ()
2332 {
2333   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
2334 }
2335
2336 __extension__ extern __inline unsigned int
2337 gnu_dev_minor (unsigned long long int __dev) throw ()
2338 {
2339   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
2340 }
2341
2342 __extension__ extern __inline unsigned long long int
2343 gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
2344 {
2345   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
2346    | (((unsigned long long int) (__minor & ~0xff)) << 12)
2347    | (((unsigned long long int) (__major & ~0xfff)) << 32));
2348 }
2349 # 224 "/usr/include/sys/types.h" 2 3 4
2350
2351
2352
2353
2354 typedef __blksize_t blksize_t;
2355
2356
2357
2358
2359
2360
2361 typedef __blkcnt_t blkcnt_t;
2362
2363
2364
2365 typedef __fsblkcnt_t fsblkcnt_t;
2366
2367
2368
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;
2374
2375
2376
2377
2378
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;
2382
2383
2384 typedef union
2385 {
2386   char __size[36];
2387   long int __align;
2388 } pthread_attr_t;
2389
2390
2391 typedef struct __pthread_internal_slist
2392 {
2393   struct __pthread_internal_slist *__next;
2394 } __pthread_slist_t;
2395
2396
2397
2398
2399 typedef union
2400 {
2401   struct __pthread_mutex_s
2402   {
2403     int __lock;
2404     unsigned int __count;
2405     int __owner;
2406
2407
2408     int __kind;
2409     unsigned int __nusers;
2410     __extension__ union
2411     {
2412       int __spins;
2413       __pthread_slist_t __list;
2414     };
2415   } __data;
2416   char __size[24];
2417   long int __align;
2418 } pthread_mutex_t;
2419
2420 typedef union
2421 {
2422   char __size[4];
2423   long int __align;
2424 } pthread_mutexattr_t;
2425
2426
2427
2428
2429 typedef union
2430 {
2431   struct
2432   {
2433     int __lock;
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;
2438     void *__mutex;
2439     unsigned int __nwaiters;
2440     unsigned int __broadcast_seq;
2441   } __data;
2442   char __size[48];
2443   __extension__ long long int __align;
2444 } pthread_cond_t;
2445
2446 typedef union
2447 {
2448   char __size[4];
2449   long int __align;
2450 } pthread_condattr_t;
2451
2452
2453
2454 typedef unsigned int pthread_key_t;
2455
2456
2457
2458 typedef int pthread_once_t;
2459
2460
2461
2462
2463
2464 typedef union
2465 {
2466   struct
2467   {
2468     int __lock;
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;
2474
2475
2476     unsigned int __flags;
2477     int __writer;
2478   } __data;
2479   char __size[32];
2480   long int __align;
2481 } pthread_rwlock_t;
2482
2483 typedef union
2484 {
2485   char __size[8];
2486   long int __align;
2487 } pthread_rwlockattr_t;
2488
2489
2490
2491
2492
2493 typedef volatile int pthread_spinlock_t;
2494
2495
2496
2497
2498 typedef union
2499 {
2500   char __size[20];
2501   long int __align;
2502 } pthread_barrier_t;
2503
2504 typedef union
2505 {
2506   char __size[4];
2507   int __align;
2508 } pthread_barrierattr_t;
2509 # 271 "/usr/include/sys/types.h" 2 3 4
2510
2511
2512 }
2513 # 439 "/usr/include/stdlib.h" 2 3 4
2514
2515
2516
2517
2518
2519
2520 extern long int random (void) throw ();
2521
2522
2523 extern void srandom (unsigned int __seed) throw ();
2524
2525
2526
2527
2528
2529 extern char *initstate (unsigned int __seed, char *__statebuf,
2530    size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
2531
2532
2533
2534 extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
2535
2536
2537
2538
2539
2540
2541
2542 struct random_data
2543   {
2544     int32_t *fptr;
2545     int32_t *rptr;
2546     int32_t *state;
2547     int rand_type;
2548     int rand_deg;
2549     int rand_sep;
2550     int32_t *end_ptr;
2551   };
2552
2553 extern int random_r (struct random_data *__restrict __buf,
2554        int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
2555
2556 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
2557      throw () __attribute__ ((__nonnull__ (2)));
2558
2559 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
2560    size_t __statelen,
2561    struct random_data *__restrict __buf)
2562      throw () __attribute__ ((__nonnull__ (2, 4)));
2563
2564 extern int setstate_r (char *__restrict __statebuf,
2565          struct random_data *__restrict __buf)
2566      throw () __attribute__ ((__nonnull__ (1, 2)));
2567
2568
2569
2570
2571
2572
2573 extern int rand (void) throw ();
2574
2575 extern void srand (unsigned int __seed) throw ();
2576
2577
2578
2579
2580 extern int rand_r (unsigned int *__seed) throw ();
2581
2582
2583
2584
2585
2586
2587
2588 extern double drand48 (void) throw ();
2589 extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
2590
2591
2592 extern long int lrand48 (void) throw ();
2593 extern long int nrand48 (unsigned short int __xsubi[3])
2594      throw () __attribute__ ((__nonnull__ (1)));
2595
2596
2597 extern long int mrand48 (void) throw ();
2598 extern long int jrand48 (unsigned short int __xsubi[3])
2599      throw () __attribute__ ((__nonnull__ (1)));
2600
2601
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)));
2606
2607
2608
2609
2610
2611 struct drand48_data
2612   {
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;
2618   };
2619
2620
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)));
2626
2627
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)));
2635
2636
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)));
2644
2645
2646 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
2647      throw () __attribute__ ((__nonnull__ (2)));
2648
2649 extern int seed48_r (unsigned short int __seed16v[3],
2650        struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
2651
2652 extern int lcong48_r (unsigned short int __param[7],
2653         struct drand48_data *__buffer)
2654      throw () __attribute__ ((__nonnull__ (1, 2)));
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664 extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2665
2666 extern void *calloc (size_t __nmemb, size_t __size)
2667      throw () __attribute__ ((__malloc__)) ;
2668
2669
2670
2671
2672
2673
2674
2675 extern void *realloc (void *__ptr, size_t __size)
2676      throw () __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
2677
2678 extern void free (void *__ptr) throw ();
2679
2680
2681
2682
2683 extern void cfree (void *__ptr) throw ();
2684
2685
2686
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
2691
2692 extern "C" {
2693
2694
2695
2696
2697
2698 extern void *alloca (size_t __size) throw ();
2699
2700
2701
2702
2703
2704 }
2705 # 613 "/usr/include/stdlib.h" 2 3 4
2706
2707
2708
2709
2710 extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
2711
2712
2713
2714
2715 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
2716      throw () __attribute__ ((__nonnull__ (1))) ;
2717
2718
2719
2720
2721 extern void abort (void) throw () __attribute__ ((__noreturn__));
2722
2723
2724
2725 extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
2726
2727
2728
2729
2730
2731 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
2732      throw () __attribute__ ((__nonnull__ (1)));
2733
2734
2735
2736
2737
2738
2739 extern void exit (int __status) throw () __attribute__ ((__noreturn__));
2740
2741
2742
2743
2744
2745
2746 extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
2747
2748
2749
2750
2751
2752
2753 extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
2754
2755
2756
2757
2758 extern char *__secure_getenv (__const char *__name)
2759      throw () __attribute__ ((__nonnull__ (1))) ;
2760
2761
2762
2763
2764
2765 extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
2766
2767
2768
2769
2770
2771 extern int setenv (__const char *__name, __const char *__value, int __replace)
2772      throw () __attribute__ ((__nonnull__ (2)));
2773
2774
2775 extern int unsetenv (__const char *__name) throw ();
2776
2777
2778
2779
2780
2781
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))) ;
2791
2792
2793
2794
2795
2796
2797
2798
2799 extern int system (__const char *__command) ;
2800
2801
2802
2803
2804
2805
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 () ;
2811
2812
2813
2814
2815
2816
2817 typedef int (*__compar_fn_t) (__const void *, __const void *);
2818
2819
2820 typedef __compar_fn_t comparison_fn_t;
2821
2822
2823
2824
2825
2826
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))) ;
2830
2831
2832
2833 extern void qsort (void *__base, size_t __nmemb, size_t __size,
2834      __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
2835
2836
2837
2838 extern int abs (int __x) throw () __attribute__ ((__const__)) ;
2839 extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
2840
2841
2842
2843 __extension__ extern long long int llabs (long long int __x)
2844      throw () __attribute__ ((__const__)) ;
2845
2846
2847
2848
2849
2850
2851
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__)) ;
2856
2857
2858
2859
2860 __extension__ extern lldiv_t lldiv (long long int __numer,
2861         long long int __denom)
2862      throw () __attribute__ ((__const__)) ;
2863
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))) ;
2867
2868
2869
2870
2871 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
2872      int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
2873
2874
2875
2876
2877 extern char *gcvt (double __value, int __ndigit, char *__buf)
2878      throw () __attribute__ ((__nonnull__ (3))) ;
2879
2880
2881
2882
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))) ;
2891
2892
2893
2894
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)));
2901
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)));
2910
2911
2912
2913
2914
2915
2916
2917 extern int mblen (__const char *__s, size_t __n) throw () ;
2918
2919
2920 extern int mbtowc (wchar_t *__restrict __pwc,
2921      __const char *__restrict __s, size_t __n) throw () ;
2922
2923
2924 extern int wctomb (char *__s, wchar_t __wchar) throw () ;
2925
2926
2927
2928 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
2929    __const char *__restrict __s, size_t __n) throw ();
2930
2931 extern size_t wcstombs (char *__restrict __s,
2932    __const wchar_t *__restrict __pwcs, size_t __n)
2933      throw ();
2934
2935
2936
2937
2938
2939
2940
2941
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))) ;
2948
2949
2950
2951
2952
2953 extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
2954
2955
2956
2957
2958
2959
2960
2961 extern int posix_openpt (int __oflag) ;
2962
2963
2964
2965
2966
2967
2968
2969 extern int grantpt (int __fd) throw ();
2970
2971
2972
2973 extern int unlockpt (int __fd) throw ();
2974
2975
2976
2977
2978 extern char *ptsname (int __fd) throw () ;
2979
2980
2981
2982
2983
2984
2985 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
2986      throw () __attribute__ ((__nonnull__ (2)));
2987
2988
2989 extern int getpt (void);
2990
2991
2992
2993
2994
2995
2996 extern int getloadavg (double __loadavg[], int __nelem)
2997      throw () __attribute__ ((__nonnull__ (1)));
2998 # 976 "/usr/include/stdlib.h" 3 4
2999 }
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
3002 namespace std
3003 {
3004   using ::div_t;
3005   using ::ldiv_t;
3006
3007   using ::abort;
3008   using ::abs;
3009   using ::atexit;
3010   using ::atof;
3011   using ::atoi;
3012   using ::atol;
3013   using ::bsearch;
3014   using ::calloc;
3015   using ::div;
3016   using ::exit;
3017   using ::free;
3018   using ::getenv;
3019   using ::labs;
3020   using ::ldiv;
3021   using ::malloc;
3022
3023   using ::mblen;
3024   using ::mbstowcs;
3025   using ::mbtowc;
3026
3027   using ::qsort;
3028   using ::rand;
3029   using ::realloc;
3030   using ::srand;
3031   using ::strtod;
3032   using ::strtol;
3033   using ::strtoul;
3034   using ::system;
3035
3036   using ::wcstombs;
3037   using ::wctomb;
3038
3039
3040   inline long
3041   abs(long __i) { return labs(__i); }
3042
3043   inline ldiv_t
3044   div(long __i, long __j) { return ldiv(__i, __j); }
3045 }
3046 # 160 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3047 namespace __gnu_cxx
3048 {
3049
3050   using ::lldiv_t;
3051
3052
3053
3054
3055
3056   using ::_Exit;
3057
3058
3059   inline long long
3060   abs(long long __x) { return __x >= 0 ? __x : -__x; }
3061
3062
3063   using ::llabs;
3064
3065   inline lldiv_t
3066   div(long long __n, long long __d)
3067   { lldiv_t __q; __q.quot = __n / __d; __q.rem = __n % __d; return __q; }
3068
3069   using ::lldiv;
3070 # 193 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdlib" 3
3071   using ::atoll;
3072   using ::strtoll;
3073   using ::strtoull;
3074
3075   using ::strtof;
3076   using ::strtold;
3077 }
3078
3079 namespace std
3080 {
3081
3082   using ::__gnu_cxx::lldiv_t;
3083
3084   using ::__gnu_cxx::_Exit;
3085   using ::__gnu_cxx::abs;
3086
3087   using ::__gnu_cxx::llabs;
3088   using ::__gnu_cxx::div;
3089   using ::__gnu_cxx::lldiv;
3090
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;
3096 }
3097
3098
3099
3100
3101
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
3104
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
3107        
3108 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 3
3109 #pragma GCC visibility push(default)
3110
3111
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
3114        
3115 # 40 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/c++locale.h" 3
3116
3117
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
3120        
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
3124 namespace std
3125 {
3126   using ::FILE;
3127   using ::fpos_t;
3128
3129   using ::clearerr;
3130   using ::fclose;
3131   using ::feof;
3132   using ::ferror;
3133   using ::fflush;
3134   using ::fgetc;
3135   using ::fgetpos;
3136   using ::fgets;
3137   using ::fopen;
3138   using ::fprintf;
3139   using ::fputc;
3140   using ::fputs;
3141   using ::fread;
3142   using ::freopen;
3143   using ::fscanf;
3144   using ::fseek;
3145   using ::fsetpos;
3146   using ::ftell;
3147   using ::fwrite;
3148   using ::getc;
3149   using ::getchar;
3150   using ::gets;
3151   using ::perror;
3152   using ::printf;
3153   using ::putc;
3154   using ::putchar;
3155   using ::puts;
3156   using ::remove;
3157   using ::rename;
3158   using ::rewind;
3159   using ::scanf;
3160   using ::setbuf;
3161   using ::setvbuf;
3162   using ::sprintf;
3163   using ::sscanf;
3164   using ::tmpfile;
3165   using ::tmpnam;
3166   using ::ungetc;
3167   using ::vfprintf;
3168   using ::vprintf;
3169   using ::vsprintf;
3170 }
3171 # 155 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3172 namespace __gnu_cxx
3173 {
3174 # 170 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cstdio" 3
3175   using ::snprintf;
3176   using ::vfscanf;
3177   using ::vscanf;
3178   using ::vsnprintf;
3179   using ::vsscanf;
3180
3181 }
3182
3183 namespace std
3184 {
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;
3190 }
3191
3192
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
3197        
3198 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 3
3199 #pragma GCC visibility push(default)
3200
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
3207 enum
3208 {
3209   __LC_CTYPE = 0,
3210   __LC_NUMERIC = 1,
3211   __LC_TIME = 2,
3212   __LC_COLLATE = 3,
3213   __LC_MONETARY = 4,
3214   __LC_MESSAGES = 5,
3215   __LC_ALL = 6,
3216   __LC_PAPER = 7,
3217   __LC_NAME = 8,
3218   __LC_ADDRESS = 9,
3219   __LC_TELEPHONE = 10,
3220   __LC_MEASUREMENT = 11,
3221   __LC_IDENTIFICATION = 12
3222 };
3223 # 31 "/usr/include/locale.h" 2 3 4
3224
3225 extern "C" {
3226 # 51 "/usr/include/locale.h" 3 4
3227
3228
3229
3230 struct lconv
3231 {
3232
3233
3234   char *decimal_point;
3235   char *thousands_sep;
3236
3237
3238
3239
3240
3241   char *grouping;
3242
3243
3244
3245
3246
3247   char *int_curr_symbol;
3248   char *currency_symbol;
3249   char *mon_decimal_point;
3250   char *mon_thousands_sep;
3251   char *mon_grouping;
3252   char *positive_sign;
3253   char *negative_sign;
3254   char int_frac_digits;
3255   char frac_digits;
3256
3257   char p_cs_precedes;
3258
3259   char p_sep_by_space;
3260
3261   char n_cs_precedes;
3262
3263   char n_sep_by_space;
3264
3265
3266
3267
3268
3269
3270   char p_sign_posn;
3271   char n_sign_posn;
3272
3273
3274   char int_p_cs_precedes;
3275
3276   char int_p_sep_by_space;
3277
3278   char int_n_cs_precedes;
3279
3280   char int_n_sep_by_space;
3281
3282
3283
3284
3285
3286
3287   char int_p_sign_posn;
3288   char int_n_sign_posn;
3289 # 121 "/usr/include/locale.h" 3 4
3290 };
3291
3292
3293
3294 extern char *setlocale (int __category, __const char *__locale) throw ();
3295
3296
3297 extern struct lconv *localeconv (void) throw ();
3298
3299
3300 # 148 "/usr/include/locale.h" 3 4
3301 typedef __locale_t locale_t;
3302
3303
3304
3305
3306
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 ();
3311
3312
3313
3314 extern void freelocale (__locale_t __dataset) throw ();
3315
3316
3317
3318
3319
3320
3321 extern __locale_t uselocale (__locale_t __dataset) throw ();
3322
3323
3324
3325
3326
3327
3328
3329 }
3330 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/clocale" 2 3
3331
3332
3333
3334
3335
3336 namespace std
3337 {
3338   using ::lconv;
3339   using ::setlocale;
3340   using ::localeconv;
3341 }
3342
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
3349 extern "C" {
3350
3351
3352 typedef void *nl_catd;
3353
3354
3355 typedef int nl_item;
3356
3357
3358
3359
3360
3361 extern nl_catd catopen (__const char *__cat_name, int __flag) __attribute__ ((__nonnull__ (1)));
3362
3363
3364
3365 extern char *catgets (nl_catd __catalog, int __set, int __number,
3366         __const char *__string) throw () __attribute__ ((__nonnull__ (1)));
3367
3368
3369 extern int catclose (nl_catd __catalog) throw () __attribute__ ((__nonnull__ (1)));
3370
3371 }
3372 # 25 "/usr/include/langinfo.h" 2 3 4
3373
3374 # 1 "/usr/include/bits/locale.h" 1 3 4
3375 # 27 "/usr/include/langinfo.h" 2 3 4
3376
3377
3378 extern "C" {
3379 # 42 "/usr/include/langinfo.h" 3 4
3380 enum
3381 {
3382
3383
3384
3385   ABDAY_1 = (((__LC_TIME) << 16) | (0)),
3386
3387   ABDAY_2,
3388
3389   ABDAY_3,
3390
3391   ABDAY_4,
3392
3393   ABDAY_5,
3394
3395   ABDAY_6,
3396
3397   ABDAY_7,
3398
3399
3400
3401   DAY_1,
3402
3403   DAY_2,
3404
3405   DAY_3,
3406
3407   DAY_4,
3408
3409   DAY_5,
3410
3411   DAY_6,
3412
3413   DAY_7,
3414
3415
3416
3417   ABMON_1,
3418
3419   ABMON_2,
3420
3421   ABMON_3,
3422
3423   ABMON_4,
3424
3425   ABMON_5,
3426
3427   ABMON_6,
3428
3429   ABMON_7,
3430
3431   ABMON_8,
3432
3433   ABMON_9,
3434
3435   ABMON_10,
3436
3437   ABMON_11,
3438
3439   ABMON_12,
3440
3441
3442
3443   MON_1,
3444
3445   MON_2,
3446
3447   MON_3,
3448
3449   MON_4,
3450
3451   MON_5,
3452
3453   MON_6,
3454
3455   MON_7,
3456
3457   MON_8,
3458
3459   MON_9,
3460
3461   MON_10,
3462
3463   MON_11,
3464
3465   MON_12,
3466
3467
3468   AM_STR,
3469
3470   PM_STR,
3471
3472
3473   D_T_FMT,
3474
3475   D_FMT,
3476
3477   T_FMT,
3478
3479   T_FMT_AMPM,
3480
3481
3482   ERA,
3483
3484   __ERA_YEAR,
3485
3486
3487
3488   ERA_D_FMT,
3489
3490   ALT_DIGITS,
3491
3492   ERA_D_T_FMT,
3493
3494   ERA_T_FMT,
3495
3496
3497   _NL_TIME_ERA_NUM_ENTRIES,
3498   _NL_TIME_ERA_ENTRIES,
3499
3500   _NL_WABDAY_1,
3501   _NL_WABDAY_2,
3502   _NL_WABDAY_3,
3503   _NL_WABDAY_4,
3504   _NL_WABDAY_5,
3505   _NL_WABDAY_6,
3506   _NL_WABDAY_7,
3507
3508
3509   _NL_WDAY_1,
3510   _NL_WDAY_2,
3511   _NL_WDAY_3,
3512   _NL_WDAY_4,
3513   _NL_WDAY_5,
3514   _NL_WDAY_6,
3515   _NL_WDAY_7,
3516
3517
3518   _NL_WABMON_1,
3519   _NL_WABMON_2,
3520   _NL_WABMON_3,
3521   _NL_WABMON_4,
3522   _NL_WABMON_5,
3523   _NL_WABMON_6,
3524   _NL_WABMON_7,
3525   _NL_WABMON_8,
3526   _NL_WABMON_9,
3527   _NL_WABMON_10,
3528   _NL_WABMON_11,
3529   _NL_WABMON_12,
3530
3531
3532   _NL_WMON_1,
3533   _NL_WMON_2,
3534   _NL_WMON_3,
3535   _NL_WMON_4,
3536   _NL_WMON_5,
3537   _NL_WMON_6,
3538   _NL_WMON_7,
3539   _NL_WMON_8,
3540   _NL_WMON_9,
3541   _NL_WMON_10,
3542   _NL_WMON_11,
3543   _NL_WMON_12,
3544
3545   _NL_WAM_STR,
3546   _NL_WPM_STR,
3547
3548   _NL_WD_T_FMT,
3549   _NL_WD_FMT,
3550   _NL_WT_FMT,
3551   _NL_WT_FMT_AMPM,
3552
3553   _NL_WERA_YEAR,
3554   _NL_WERA_D_FMT,
3555   _NL_WALT_DIGITS,
3556   _NL_WERA_D_T_FMT,
3557   _NL_WERA_T_FMT,
3558
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,
3565   _NL_TIME_TIMEZONE,
3566
3567   _DATE_FMT,
3568
3569   _NL_W_DATE_FMT,
3570
3571   _NL_TIME_CODESET,
3572
3573   _NL_NUM_LC_TIME,
3574
3575
3576
3577
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,
3584   _NL_COLLATE_GAP1,
3585   _NL_COLLATE_GAP2,
3586   _NL_COLLATE_GAP3,
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,
3597   _NL_NUM_LC_COLLATE,
3598
3599
3600
3601
3602   _NL_CTYPE_CLASS = (((__LC_CTYPE) << 16) | (0)),
3603   _NL_CTYPE_TOUPPER,
3604   _NL_CTYPE_GAP1,
3605   _NL_CTYPE_TOLOWER,
3606   _NL_CTYPE_GAP2,
3607   _NL_CTYPE_CLASS32,
3608   _NL_CTYPE_GAP3,
3609   _NL_CTYPE_GAP4,
3610   _NL_CTYPE_GAP5,
3611   _NL_CTYPE_GAP6,
3612   _NL_CTYPE_CLASS_NAMES,
3613   _NL_CTYPE_MAP_NAMES,
3614   _NL_CTYPE_WIDTH,
3615   _NL_CTYPE_MB_CUR_MAX,
3616   _NL_CTYPE_CODESET_NAME,
3617   CODESET = _NL_CTYPE_CODESET_NAME,
3618
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,
3689   _NL_NUM_LC_CTYPE,
3690
3691
3692
3693
3694   __INT_CURR_SYMBOL = (((__LC_MONETARY) << 16) | (0)),
3695
3696
3697
3698   __CURRENCY_SYMBOL,
3699
3700
3701
3702   __MON_DECIMAL_POINT,
3703
3704
3705
3706   __MON_THOUSANDS_SEP,
3707
3708
3709
3710   __MON_GROUPING,
3711
3712
3713
3714   __POSITIVE_SIGN,
3715
3716
3717
3718   __NEGATIVE_SIGN,
3719
3720
3721
3722   __INT_FRAC_DIGITS,
3723
3724
3725
3726   __FRAC_DIGITS,
3727
3728
3729
3730   __P_CS_PRECEDES,
3731
3732
3733
3734   __P_SEP_BY_SPACE,
3735
3736
3737
3738   __N_CS_PRECEDES,
3739
3740
3741
3742   __N_SEP_BY_SPACE,
3743
3744
3745
3746   __P_SIGN_POSN,
3747
3748
3749
3750   __N_SIGN_POSN,
3751
3752
3753
3754   _NL_MONETARY_CRNCYSTR,
3755
3756   __INT_P_CS_PRECEDES,
3757
3758
3759
3760   __INT_P_SEP_BY_SPACE,
3761
3762
3763
3764   __INT_N_CS_PRECEDES,
3765
3766
3767
3768   __INT_N_SEP_BY_SPACE,
3769
3770
3771
3772   __INT_P_SIGN_POSN,
3773
3774
3775
3776   __INT_N_SIGN_POSN,
3777
3778
3779
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,
3805
3806
3807
3808   __DECIMAL_POINT = (((__LC_NUMERIC) << 16) | (0)),
3809
3810
3811
3812   RADIXCHAR = __DECIMAL_POINT,
3813
3814   __THOUSANDS_SEP,
3815
3816
3817
3818   THOUSEP = __THOUSANDS_SEP,
3819
3820   __GROUPING,
3821
3822
3823
3824   _NL_NUMERIC_DECIMAL_POINT_WC,
3825   _NL_NUMERIC_THOUSANDS_SEP_WC,
3826   _NL_NUMERIC_CODESET,
3827   _NL_NUM_LC_NUMERIC,
3828
3829   __YESEXPR = (((__LC_MESSAGES) << 16) | (0)),
3830
3831   __NOEXPR,
3832
3833   __YESSTR,
3834
3835
3836
3837   __NOSTR,
3838
3839
3840
3841   _NL_MESSAGES_CODESET,
3842   _NL_NUM_LC_MESSAGES,
3843
3844   _NL_PAPER_HEIGHT = (((__LC_PAPER) << 16) | (0)),
3845   _NL_PAPER_WIDTH,
3846   _NL_PAPER_CODESET,
3847   _NL_NUM_LC_PAPER,
3848
3849   _NL_NAME_NAME_FMT = (((__LC_NAME) << 16) | (0)),
3850   _NL_NAME_NAME_GEN,
3851   _NL_NAME_NAME_MR,
3852   _NL_NAME_NAME_MRS,
3853   _NL_NAME_NAME_MISS,
3854   _NL_NAME_NAME_MS,
3855   _NL_NAME_CODESET,
3856   _NL_NUM_LC_NAME,
3857
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,
3871   _NL_NUM_LC_ADDRESS,
3872
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,
3879
3880   _NL_MEASUREMENT_MEASUREMENT = (((__LC_MEASUREMENT) << 16) | (0)),
3881   _NL_MEASUREMENT_CODESET,
3882   _NL_NUM_LC_MEASUREMENT,
3883
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,
3901
3902
3903   _NL_NUM
3904 };
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);
3909
3910
3911 }
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
3917
3918
3919 extern "C" {
3920
3921
3922 typedef void *iconv_t;
3923
3924
3925
3926
3927
3928
3929
3930 extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
3931
3932
3933
3934
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);
3939
3940
3941
3942
3943
3944 extern int iconv_close (iconv_t __cd);
3945
3946 }
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
3950 extern "C" {
3951
3952
3953
3954
3955 extern char *gettext (__const char *__msgid)
3956      throw () __attribute__ ((__format_arg__ (1)));
3957
3958
3959
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)));
3964
3965
3966
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)));
3973
3974
3975
3976
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)));
3980
3981
3982
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)));
3986
3987
3988
3989 extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
3990     __const char *__msgid2, unsigned long int __n,
3991     int __category)
3992      throw () __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3)));
3993
3994
3995
3996
3997
3998 extern char *textdomain (__const char *__domainname) throw ();
3999
4000
4001
4002 extern char *bindtextdomain (__const char *__domainname,
4003         __const char *__dirname) throw ();
4004
4005
4006
4007 extern char *bind_textdomain_codeset (__const char *__domainname,
4008           __const char *__codeset) throw ();
4009 # 122 "/usr/include/libintl.h" 3 4
4010 }
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
4012
4013
4014
4015
4016
4017
4018 namespace __gnu_cxx
4019 {
4020   extern "C" __typeof(uselocale) __uselocale;
4021 }
4022
4023
4024 namespace std
4025 {
4026   typedef __locale_t __c_locale;
4027
4028
4029
4030
4031
4032   template<typename _Tv>
4033     int
4034     __convert_from_v(char* __out,
4035        const int __size __attribute__ ((__unused__)),
4036        const char* __fmt,
4037
4038        _Tv __v, const __c_locale& __cloc, int __prec)
4039     {
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);
4043
4044
4045
4046
4047
4048       __gnu_cxx::__uselocale(__old);
4049
4050
4051
4052
4053       return __ret;
4054     }
4055 }
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
4071
4072
4073 # 1 "/usr/include/bits/sched.h" 1 3 4
4074 # 66 "/usr/include/bits/sched.h" 3 4
4075 struct sched_param
4076   {
4077     int __sched_priority;
4078   };
4079
4080 extern "C" {
4081
4082
4083
4084 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
4085     int __flags, void *__arg, ...) throw ();
4086
4087
4088 extern int unshare (int __flags) throw ();
4089
4090
4091 extern int sched_getcpu (void) throw ();
4092
4093
4094 }
4095
4096
4097
4098
4099
4100
4101
4102 struct __sched_param
4103   {
4104     int __sched_priority;
4105   };
4106 # 108 "/usr/include/bits/sched.h" 3 4
4107 typedef unsigned long int __cpu_mask;
4108
4109
4110
4111
4112
4113
4114 typedef struct
4115 {
4116   __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
4117 } cpu_set_t;
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
4121
4122
4123
4124
4125 extern "C" {
4126
4127
4128 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
4129      throw ();
4130
4131
4132 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) throw ();
4133
4134
4135 extern int sched_setscheduler (__pid_t __pid, int __policy,
4136           __const struct sched_param *__param) throw ();
4137
4138
4139 extern int sched_getscheduler (__pid_t __pid) throw ();
4140
4141
4142 extern int sched_yield (void) throw ();
4143
4144
4145 extern int sched_get_priority_max (int __algorithm) throw ();
4146
4147
4148 extern int sched_get_priority_min (int __algorithm) throw ();
4149
4150
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 ();
4155
4156
4157 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
4158          cpu_set_t *__cpuset) throw ();
4159
4160
4161 }
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
4165 extern "C" {
4166
4167
4168
4169
4170
4171
4172
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
4175
4176
4177
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
4181
4182
4183 struct tm
4184 {
4185   int tm_sec;
4186   int tm_min;
4187   int tm_hour;
4188   int tm_mday;
4189   int tm_mon;
4190   int tm_year;
4191   int tm_wday;
4192   int tm_yday;
4193   int tm_isdst;
4194
4195
4196   long int tm_gmtoff;
4197   __const char *tm_zone;
4198
4199
4200
4201
4202 };
4203
4204
4205
4206
4207
4208
4209
4210
4211 struct itimerspec
4212   {
4213     struct timespec it_interval;
4214     struct timespec it_value;
4215   };
4216
4217
4218 struct sigevent;
4219 # 181 "/usr/include/time.h" 3 4
4220
4221
4222
4223 extern clock_t clock (void) throw ();
4224
4225
4226 extern time_t time (time_t *__timer) throw ();
4227
4228
4229 extern double difftime (time_t __time1, time_t __time0)
4230      throw () __attribute__ ((__const__));
4231
4232
4233 extern time_t mktime (struct tm *__tp) throw ();
4234
4235
4236
4237
4238
4239 extern size_t strftime (char *__restrict __s, size_t __maxsize,
4240    __const char *__restrict __format,
4241    __const struct tm *__restrict __tp) throw ();
4242
4243
4244
4245
4246
4247 extern char *strptime (__const char *__restrict __s,
4248          __const char *__restrict __fmt, struct tm *__tp)
4249      throw ();
4250
4251
4252
4253
4254
4255
4256
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 ();
4261
4262 extern char *strptime_l (__const char *__restrict __s,
4263     __const char *__restrict __fmt, struct tm *__tp,
4264     __locale_t __loc) throw ();
4265
4266
4267
4268
4269
4270
4271 extern struct tm *gmtime (__const time_t *__timer) throw ();
4272
4273
4274
4275 extern struct tm *localtime (__const time_t *__timer) throw ();
4276
4277
4278
4279
4280
4281 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
4282        struct tm *__restrict __tp) throw ();
4283
4284
4285
4286 extern struct tm *localtime_r (__const time_t *__restrict __timer,
4287           struct tm *__restrict __tp) throw ();
4288
4289
4290
4291
4292
4293 extern char *asctime (__const struct tm *__tp) throw ();
4294
4295
4296 extern char *ctime (__const time_t *__timer) throw ();
4297
4298
4299
4300
4301
4302
4303
4304 extern char *asctime_r (__const struct tm *__restrict __tp,
4305    char *__restrict __buf) throw ();
4306
4307
4308 extern char *ctime_r (__const time_t *__restrict __timer,
4309         char *__restrict __buf) throw ();
4310
4311
4312
4313
4314 extern char *__tzname[2];
4315 extern int __daylight;
4316 extern long int __timezone;
4317
4318
4319
4320
4321 extern char *tzname[2];
4322
4323
4324
4325 extern void tzset (void) throw ();
4326
4327
4328
4329 extern int daylight;
4330 extern long int timezone;
4331
4332
4333
4334
4335
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 ();
4339
4340
4341 extern time_t timelocal (struct tm *__tp) throw ();
4342
4343
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);
4348
4349
4350
4351 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
4352
4353
4354 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
4355
4356
4357 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
4358      throw ();
4359
4360
4361
4362
4363
4364
4365 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
4366        __const struct timespec *__req,
4367        struct timespec *__rem);
4368
4369
4370 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
4371
4372
4373
4374
4375 extern int timer_create (clockid_t __clock_id,
4376     struct sigevent *__restrict __evp,
4377     timer_t *__restrict __timerid) throw ();
4378
4379
4380 extern int timer_delete (timer_t __timerid) throw ();
4381
4382
4383 extern int timer_settime (timer_t __timerid, int __flags,
4384      __const struct itimerspec *__restrict __value,
4385      struct itimerspec *__restrict __ovalue) throw ();
4386
4387
4388 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
4389      throw ();
4390
4391
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);
4400
4401
4402 }
4403 # 26 "/usr/include/pthread.h" 2 3 4
4404
4405
4406 # 1 "/usr/include/signal.h" 1 3 4
4407 # 31 "/usr/include/signal.h" 3 4
4408 extern "C" {
4409
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
4413 }
4414 # 29 "/usr/include/pthread.h" 2 3 4
4415
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
4422
4423
4424
4425 enum
4426 {
4427   PTHREAD_CREATE_JOINABLE,
4428
4429   PTHREAD_CREATE_DETACHED
4430
4431 };
4432
4433
4434
4435 enum
4436 {
4437   PTHREAD_MUTEX_TIMED_NP,
4438   PTHREAD_MUTEX_RECURSIVE_NP,
4439   PTHREAD_MUTEX_ERRORCHECK_NP,
4440   PTHREAD_MUTEX_ADAPTIVE_NP
4441
4442   ,
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
4447
4448
4449
4450   , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
4451
4452 };
4453
4454
4455
4456
4457 enum
4458 {
4459   PTHREAD_MUTEX_STALLED_NP,
4460   PTHREAD_MUTEX_ROBUST_NP
4461 };
4462
4463
4464
4465
4466
4467 enum
4468 {
4469   PTHREAD_PRIO_NONE,
4470   PTHREAD_PRIO_INHERIT,
4471   PTHREAD_PRIO_PROTECT
4472 };
4473 # 114 "/usr/include/pthread.h" 3 4
4474 enum
4475 {
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
4480 };
4481 # 144 "/usr/include/pthread.h" 3 4
4482 enum
4483 {
4484   PTHREAD_INHERIT_SCHED,
4485
4486   PTHREAD_EXPLICIT_SCHED
4487
4488 };
4489
4490
4491
4492 enum
4493 {
4494   PTHREAD_SCOPE_SYSTEM,
4495
4496   PTHREAD_SCOPE_PROCESS
4497
4498 };
4499
4500
4501
4502 enum
4503 {
4504   PTHREAD_PROCESS_PRIVATE,
4505
4506   PTHREAD_PROCESS_SHARED
4507
4508 };
4509 # 179 "/usr/include/pthread.h" 3 4
4510 struct _pthread_cleanup_buffer
4511 {
4512   void (*__routine) (void *);
4513   void *__arg;
4514   int __canceltype;
4515   struct _pthread_cleanup_buffer *__prev;
4516 };
4517
4518
4519 enum
4520 {
4521   PTHREAD_CANCEL_ENABLE,
4522
4523   PTHREAD_CANCEL_DISABLE
4524
4525 };
4526 enum
4527 {
4528   PTHREAD_CANCEL_DEFERRED,
4529
4530   PTHREAD_CANCEL_ASYNCHRONOUS
4531
4532 };
4533 # 217 "/usr/include/pthread.h" 3 4
4534 extern "C" {
4535
4536
4537
4538
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)));
4543
4544
4545
4546
4547
4548 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
4549
4550
4551
4552
4553
4554
4555
4556 extern int pthread_join (pthread_t __th, void **__thread_return);
4557
4558
4559
4560
4561 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) throw ();
4562
4563
4564
4565
4566
4567
4568
4569 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
4570      __const struct timespec *__abstime);
4571
4572
4573
4574
4575
4576
4577 extern int pthread_detach (pthread_t __th) throw ();
4578
4579
4580
4581 extern pthread_t pthread_self (void) throw () __attribute__ ((__const__));
4582
4583
4584 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ();
4585
4586
4587
4588
4589
4590
4591
4592 extern int pthread_attr_init (pthread_attr_t *__attr) throw () __attribute__ ((__nonnull__ (1)));
4593
4594
4595 extern int pthread_attr_destroy (pthread_attr_t *__attr)
4596      throw () __attribute__ ((__nonnull__ (1)));
4597
4598
4599 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
4600      int *__detachstate)
4601      throw () __attribute__ ((__nonnull__ (1, 2)));
4602
4603
4604 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
4605      int __detachstate)
4606      throw () __attribute__ ((__nonnull__ (1)));
4607
4608
4609
4610 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
4611           size_t *__guardsize)
4612      throw () __attribute__ ((__nonnull__ (1, 2)));
4613
4614
4615 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
4616           size_t __guardsize)
4617      throw () __attribute__ ((__nonnull__ (1)));
4618
4619
4620
4621 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
4622            __attr,
4623            struct sched_param *__restrict __param)
4624      throw () __attribute__ ((__nonnull__ (1, 2)));
4625
4626
4627 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
4628            __const struct sched_param *__restrict
4629            __param) throw () __attribute__ ((__nonnull__ (1, 2)));
4630
4631
4632 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
4633      __attr, int *__restrict __policy)
4634      throw () __attribute__ ((__nonnull__ (1, 2)));
4635
4636
4637 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
4638      throw () __attribute__ ((__nonnull__ (1)));
4639
4640
4641 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
4642       __attr, int *__restrict __inherit)
4643      throw () __attribute__ ((__nonnull__ (1, 2)));
4644
4645
4646 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
4647       int __inherit)
4648      throw () __attribute__ ((__nonnull__ (1)));
4649
4650
4651
4652 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
4653       int *__restrict __scope)
4654      throw () __attribute__ ((__nonnull__ (1, 2)));
4655
4656
4657 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
4658      throw () __attribute__ ((__nonnull__ (1)));
4659
4660
4661 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
4662           __attr, void **__restrict __stackaddr)
4663      throw () __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
4664
4665
4666
4667
4668
4669 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
4670           void *__stackaddr)
4671      throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
4672
4673
4674 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
4675           __attr, size_t *__restrict __stacksize)
4676      throw () __attribute__ ((__nonnull__ (1, 2)));
4677
4678
4679
4680
4681 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
4682           size_t __stacksize)
4683      throw () __attribute__ ((__nonnull__ (1)));
4684
4685
4686
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)));
4691
4692
4693
4694
4695 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
4696       size_t __stacksize) throw () __attribute__ ((__nonnull__ (1)));
4697
4698
4699
4700
4701
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)));
4706
4707
4708
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)));
4713
4714
4715
4716
4717
4718 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
4719      throw () __attribute__ ((__nonnull__ (2)));
4720
4721
4722
4723
4724
4725
4726
4727 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
4728       __const struct sched_param *__param)
4729      throw () __attribute__ ((__nonnull__ (3)));
4730
4731
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)));
4736
4737
4738 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
4739      throw ();
4740
4741
4742
4743
4744 extern int pthread_getconcurrency (void) throw ();
4745
4746
4747 extern int pthread_setconcurrency (int __level) throw ();
4748
4749
4750
4751
4752
4753
4754
4755 extern int pthread_yield (void) throw ();
4756
4757
4758
4759
4760 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
4761        __const cpu_set_t *__cpuset)
4762      throw () __attribute__ ((__nonnull__ (3)));
4763
4764
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);
4773
4774
4775
4776 extern int pthread_setcanceltype (int __type, int *__oldtype);
4777
4778
4779 extern int pthread_cancel (pthread_t __th);
4780
4781
4782
4783
4784 extern void pthread_testcancel (void);
4785
4786
4787
4788
4789 typedef struct
4790 {
4791   struct
4792   {
4793     __jmp_buf __cancel_jmp_buf;
4794     int __mask_was_saved;
4795   } __cancel_jmp_buf[1];
4796   void *__pad[4];
4797 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
4798 # 509 "/usr/include/pthread.h" 3 4
4799 struct __pthread_cleanup_frame
4800 {
4801   void (*__cancel_routine) (void *);
4802   void *__cancel_arg;
4803   int __do_it;
4804   int __cancel_type;
4805 };
4806
4807
4808
4809
4810 class __pthread_cleanup_class
4811 {
4812   void (*__cancel_routine) (void *);
4813   void *__cancel_arg;
4814   int __do_it;
4815   int __cancel_type;
4816
4817  public:
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,
4823         &__cancel_type); }
4824   void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
4825 };
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 ();
4829
4830
4831
4832
4833
4834 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
4835           __const pthread_mutexattr_t *__mutexattr)
4836      throw () __attribute__ ((__nonnull__ (1)));
4837
4838
4839 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
4840      throw () __attribute__ ((__nonnull__ (1)));
4841
4842
4843 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
4844      throw () __attribute__ ((__nonnull__ (1)));
4845
4846
4847 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
4848      throw () __attribute__ ((__nonnull__ (1)));
4849
4850
4851
4852 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
4853                                     __const struct timespec *__restrict
4854                                     __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4855
4856
4857
4858 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
4859      throw () __attribute__ ((__nonnull__ (1)));
4860
4861
4862
4863
4864 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
4865       __restrict __mutex,
4866       int *__restrict __prioceiling)
4867      throw () __attribute__ ((__nonnull__ (1, 2)));
4868
4869
4870
4871 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
4872       int __prioceiling,
4873       int *__restrict __old_ceiling)
4874      throw () __attribute__ ((__nonnull__ (1, 3)));
4875
4876
4877
4878
4879
4880 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
4881      throw () __attribute__ ((__nonnull__ (1)));
4882
4883
4884
4885
4886
4887
4888
4889 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
4890      throw () __attribute__ ((__nonnull__ (1)));
4891
4892
4893 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
4894      throw () __attribute__ ((__nonnull__ (1)));
4895
4896
4897 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
4898       __restrict __attr,
4899       int *__restrict __pshared)
4900      throw () __attribute__ ((__nonnull__ (1, 2)));
4901
4902
4903 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
4904       int __pshared)
4905      throw () __attribute__ ((__nonnull__ (1)));
4906
4907
4908
4909 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
4910           __attr, int *__restrict __kind)
4911      throw () __attribute__ ((__nonnull__ (1, 2)));
4912
4913
4914
4915
4916 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
4917      throw () __attribute__ ((__nonnull__ (1)));
4918
4919
4920 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
4921        __restrict __attr,
4922        int *__restrict __protocol)
4923      throw () __attribute__ ((__nonnull__ (1, 2)));
4924
4925
4926
4927 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
4928        int __protocol)
4929      throw () __attribute__ ((__nonnull__ (1)));
4930
4931
4932 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
4933           __restrict __attr,
4934           int *__restrict __prioceiling)
4935      throw () __attribute__ ((__nonnull__ (1, 2)));
4936
4937
4938 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
4939           int __prioceiling)
4940      throw () __attribute__ ((__nonnull__ (1)));
4941
4942
4943
4944
4945 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
4946         int *__robustness)
4947      throw () __attribute__ ((__nonnull__ (1, 2)));
4948
4949
4950 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
4951         int __robustness)
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)));
4957
4958
4959 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
4960      throw () __attribute__ ((__nonnull__ (1)));
4961
4962
4963 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
4964      throw () __attribute__ ((__nonnull__ (1)));
4965
4966
4967 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
4968   throw () __attribute__ ((__nonnull__ (1)));
4969
4970
4971
4972 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
4973            __const struct timespec *__restrict
4974            __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4975
4976
4977
4978 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
4979      throw () __attribute__ ((__nonnull__ (1)));
4980
4981
4982 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
4983      throw () __attribute__ ((__nonnull__ (1)));
4984
4985
4986
4987 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
4988            __const struct timespec *__restrict
4989            __abstime) throw () __attribute__ ((__nonnull__ (1, 2)));
4990
4991
4992
4993 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
4994      throw () __attribute__ ((__nonnull__ (1)));
4995
4996
4997
4998
4999
5000 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
5001      throw () __attribute__ ((__nonnull__ (1)));
5002
5003
5004 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
5005      throw () __attribute__ ((__nonnull__ (1)));
5006
5007
5008 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
5009        __restrict __attr,
5010        int *__restrict __pshared)
5011      throw () __attribute__ ((__nonnull__ (1, 2)));
5012
5013
5014 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
5015        int __pshared)
5016      throw () __attribute__ ((__nonnull__ (1)));
5017
5018
5019 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
5020        __restrict __attr,
5021        int *__restrict __pref)
5022      throw () __attribute__ ((__nonnull__ (1, 2)));
5023
5024
5025 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
5026        int __pref) throw () __attribute__ ((__nonnull__ (1)));
5027
5028
5029
5030
5031
5032
5033
5034 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
5035          __const pthread_condattr_t *__restrict
5036          __cond_attr) throw () __attribute__ ((__nonnull__ (1)));
5037
5038
5039 extern int pthread_cond_destroy (pthread_cond_t *__cond)
5040      throw () __attribute__ ((__nonnull__ (1)));
5041
5042
5043 extern int pthread_cond_signal (pthread_cond_t *__cond)
5044      throw () __attribute__ ((__nonnull__ (1)));
5045
5046
5047 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
5048      throw () __attribute__ ((__nonnull__ (1)));
5049
5050
5051
5052
5053
5054
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)));
5063
5064
5065
5066
5067 extern int pthread_condattr_init (pthread_condattr_t *__attr)
5068      throw () __attribute__ ((__nonnull__ (1)));
5069
5070
5071 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
5072      throw () __attribute__ ((__nonnull__ (1)));
5073
5074
5075 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
5076                                         __restrict __attr,
5077                                         int *__restrict __pshared)
5078      throw () __attribute__ ((__nonnull__ (1, 2)));
5079
5080
5081 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
5082                                         int __pshared) throw () __attribute__ ((__nonnull__ (1)));
5083
5084
5085
5086 extern int pthread_condattr_getclock (__const pthread_condattr_t *
5087           __restrict __attr,
5088           __clockid_t *__restrict __clock_id)
5089      throw () __attribute__ ((__nonnull__ (1, 2)));
5090
5091
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)));
5098
5099
5100 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
5101      throw () __attribute__ ((__nonnull__ (1)));
5102
5103
5104 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
5105      throw () __attribute__ ((__nonnull__ (1)));
5106
5107
5108 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
5109      throw () __attribute__ ((__nonnull__ (1)));
5110
5111
5112 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
5113      throw () __attribute__ ((__nonnull__ (1)));
5114
5115
5116
5117
5118
5119
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)));
5124
5125
5126 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
5127      throw () __attribute__ ((__nonnull__ (1)));
5128
5129
5130 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
5131      throw () __attribute__ ((__nonnull__ (1)));
5132
5133
5134
5135 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
5136      throw () __attribute__ ((__nonnull__ (1)));
5137
5138
5139 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
5140      throw () __attribute__ ((__nonnull__ (1)));
5141
5142
5143 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
5144         __restrict __attr,
5145         int *__restrict __pshared)
5146      throw () __attribute__ ((__nonnull__ (1, 2)));
5147
5148
5149 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
5150                                            int __pshared)
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)));
5156
5157
5158 extern int pthread_key_delete (pthread_key_t __key) throw ();
5159
5160
5161 extern void *pthread_getspecific (pthread_key_t __key) throw ();
5162
5163
5164 extern int pthread_setspecific (pthread_key_t __key,
5165     __const void *__pointer) throw () ;
5166
5167
5168
5169
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 ();
5177
5178
5179
5180
5181 extern __inline int
5182 pthread_equal (pthread_t __thread1, pthread_t __thread2) throw ()
5183 {
5184   return __thread1 == __thread2;
5185 }
5186
5187
5188 }
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
5192 extern "C" {
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
5196
5197
5198
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;
5206
5207
5208
5209
5210
5211
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)));
5215
5216
5217
5218
5219 extern int euidaccess (__const char *__name, int __type)
5220      throw () __attribute__ ((__nonnull__ (1)));
5221
5222
5223 extern int eaccess (__const char *__name, int __type)
5224      throw () __attribute__ ((__nonnull__ (1)));
5225
5226
5227
5228
5229
5230
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)
5237      throw ();
5238
5239
5240
5241
5242
5243
5244 extern int close (int __fd);
5245
5246
5247
5248
5249
5250
5251 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) ;
5252
5253
5254
5255
5256
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,
5260         __off_t __offset) ;
5261
5262
5263
5264
5265
5266
5267 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
5268          __off_t __offset) ;
5269 # 371 "/usr/include/unistd.h" 3 4
5270 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
5271    __off64_t __offset) ;
5272
5273
5274 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
5275     __off64_t __offset) ;
5276
5277
5278
5279
5280
5281
5282
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);
5288
5289
5290
5291
5292
5293
5294 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
5295      throw ();
5296
5297
5298
5299
5300
5301
5302 extern int usleep (__useconds_t __useconds);
5303 # 429 "/usr/include/unistd.h" 3 4
5304 extern int pause (void);
5305
5306
5307
5308 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
5309      throw () __attribute__ ((__nonnull__ (1))) ;
5310
5311
5312
5313 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw () ;
5314
5315
5316
5317
5318 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
5319      throw () __attribute__ ((__nonnull__ (1))) ;
5320
5321
5322
5323
5324
5325
5326 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
5327        __gid_t __group, int __flag)
5328      throw () __attribute__ ((__nonnull__ (2))) ;
5329
5330
5331
5332 extern int chdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
5333
5334
5335
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 () ;
5339
5340
5341
5342
5343
5344 extern char *get_current_dir_name (void) throw ();
5345
5346
5347
5348
5349
5350
5351 extern char *getwd (char *__buf)
5352      throw () __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) ;
5353
5354
5355
5356
5357 extern int dup (int __fd) throw () ;
5358
5359
5360 extern int dup2 (int __fd, int __fd2) throw ();
5361
5362
5363 extern char **__environ;
5364
5365 extern char **environ;
5366
5367
5368
5369
5370
5371 extern int execve (__const char *__path, char *__const __argv[],
5372      char *__const __envp[]) throw () __attribute__ ((__nonnull__ (1)));
5373
5374
5375
5376
5377 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
5378      throw ();
5379
5380
5381
5382
5383 extern int execv (__const char *__path, char *__const __argv[])
5384      throw () __attribute__ ((__nonnull__ (1)));
5385
5386
5387
5388 extern int execle (__const char *__path, __const char *__arg, ...)
5389      throw () __attribute__ ((__nonnull__ (1)));
5390
5391
5392
5393 extern int execl (__const char *__path, __const char *__arg, ...)
5394      throw () __attribute__ ((__nonnull__ (1)));
5395
5396
5397
5398 extern int execvp (__const char *__file, char *__const __argv[])
5399      throw () __attribute__ ((__nonnull__ (1)));
5400
5401
5402
5403
5404 extern int execlp (__const char *__file, __const char *__arg, ...)
5405      throw () __attribute__ ((__nonnull__ (1)));
5406
5407
5408
5409
5410 extern int nice (int __inc) throw () ;
5411
5412
5413
5414
5415 extern void _exit (int __status) __attribute__ ((__noreturn__));
5416
5417
5418
5419
5420
5421 # 1 "/usr/include/bits/confname.h" 1 3 4
5422 # 26 "/usr/include/bits/confname.h" 3 4
5423 enum
5424   {
5425     _PC_LINK_MAX,
5426
5427     _PC_MAX_CANON,
5428
5429     _PC_MAX_INPUT,
5430
5431     _PC_NAME_MAX,
5432
5433     _PC_PATH_MAX,
5434
5435     _PC_PIPE_BUF,
5436
5437     _PC_CHOWN_RESTRICTED,
5438
5439     _PC_NO_TRUNC,
5440
5441     _PC_VDISABLE,
5442
5443     _PC_SYNC_IO,
5444
5445     _PC_ASYNC_IO,
5446
5447     _PC_PRIO_IO,
5448
5449     _PC_SOCK_MAXBUF,
5450
5451     _PC_FILESIZEBITS,
5452
5453     _PC_REC_INCR_XFER_SIZE,
5454
5455     _PC_REC_MAX_XFER_SIZE,
5456
5457     _PC_REC_MIN_XFER_SIZE,
5458
5459     _PC_REC_XFER_ALIGN,
5460
5461     _PC_ALLOC_SIZE_MIN,
5462
5463     _PC_SYMLINK_MAX,
5464
5465     _PC_2_SYMLINKS
5466
5467   };
5468
5469
5470 enum
5471   {
5472     _SC_ARG_MAX,
5473
5474     _SC_CHILD_MAX,
5475
5476     _SC_CLK_TCK,
5477
5478     _SC_NGROUPS_MAX,
5479
5480     _SC_OPEN_MAX,
5481
5482     _SC_STREAM_MAX,
5483
5484     _SC_TZNAME_MAX,
5485
5486     _SC_JOB_CONTROL,
5487
5488     _SC_SAVED_IDS,
5489
5490     _SC_REALTIME_SIGNALS,
5491
5492     _SC_PRIORITY_SCHEDULING,
5493
5494     _SC_TIMERS,
5495
5496     _SC_ASYNCHRONOUS_IO,
5497
5498     _SC_PRIORITIZED_IO,
5499
5500     _SC_SYNCHRONIZED_IO,
5501
5502     _SC_FSYNC,
5503
5504     _SC_MAPPED_FILES,
5505
5506     _SC_MEMLOCK,
5507
5508     _SC_MEMLOCK_RANGE,
5509
5510     _SC_MEMORY_PROTECTION,
5511
5512     _SC_MESSAGE_PASSING,
5513
5514     _SC_SEMAPHORES,
5515
5516     _SC_SHARED_MEMORY_OBJECTS,
5517
5518     _SC_AIO_LISTIO_MAX,
5519
5520     _SC_AIO_MAX,
5521
5522     _SC_AIO_PRIO_DELTA_MAX,
5523
5524     _SC_DELAYTIMER_MAX,
5525
5526     _SC_MQ_OPEN_MAX,
5527
5528     _SC_MQ_PRIO_MAX,
5529
5530     _SC_VERSION,
5531
5532     _SC_PAGESIZE,
5533
5534
5535     _SC_RTSIG_MAX,
5536
5537     _SC_SEM_NSEMS_MAX,
5538
5539     _SC_SEM_VALUE_MAX,
5540
5541     _SC_SIGQUEUE_MAX,
5542
5543     _SC_TIMER_MAX,
5544
5545
5546
5547
5548     _SC_BC_BASE_MAX,
5549
5550     _SC_BC_DIM_MAX,
5551
5552     _SC_BC_SCALE_MAX,
5553
5554     _SC_BC_STRING_MAX,
5555
5556     _SC_COLL_WEIGHTS_MAX,
5557
5558     _SC_EQUIV_CLASS_MAX,
5559
5560     _SC_EXPR_NEST_MAX,
5561
5562     _SC_LINE_MAX,
5563
5564     _SC_RE_DUP_MAX,
5565
5566     _SC_CHARCLASS_NAME_MAX,
5567
5568
5569     _SC_2_VERSION,
5570
5571     _SC_2_C_BIND,
5572
5573     _SC_2_C_DEV,
5574
5575     _SC_2_FORT_DEV,
5576
5577     _SC_2_FORT_RUN,
5578
5579     _SC_2_SW_DEV,
5580
5581     _SC_2_LOCALEDEF,
5582
5583
5584     _SC_PII,
5585
5586     _SC_PII_XTI,
5587
5588     _SC_PII_SOCKET,
5589
5590     _SC_PII_INTERNET,
5591
5592     _SC_PII_OSI,
5593
5594     _SC_POLL,
5595
5596     _SC_SELECT,
5597
5598     _SC_UIO_MAXIOV,
5599
5600     _SC_IOV_MAX = _SC_UIO_MAXIOV,
5601
5602     _SC_PII_INTERNET_STREAM,
5603
5604     _SC_PII_INTERNET_DGRAM,
5605
5606     _SC_PII_OSI_COTS,
5607
5608     _SC_PII_OSI_CLTS,
5609
5610     _SC_PII_OSI_M,
5611
5612     _SC_T_IOV_MAX,
5613
5614
5615
5616     _SC_THREADS,
5617
5618     _SC_THREAD_SAFE_FUNCTIONS,
5619
5620     _SC_GETGR_R_SIZE_MAX,
5621
5622     _SC_GETPW_R_SIZE_MAX,
5623
5624     _SC_LOGIN_NAME_MAX,
5625
5626     _SC_TTY_NAME_MAX,
5627
5628     _SC_THREAD_DESTRUCTOR_ITERATIONS,
5629
5630     _SC_THREAD_KEYS_MAX,
5631
5632     _SC_THREAD_STACK_MIN,
5633
5634     _SC_THREAD_THREADS_MAX,
5635
5636     _SC_THREAD_ATTR_STACKADDR,
5637
5638     _SC_THREAD_ATTR_STACKSIZE,
5639
5640     _SC_THREAD_PRIORITY_SCHEDULING,
5641
5642     _SC_THREAD_PRIO_INHERIT,
5643
5644     _SC_THREAD_PRIO_PROTECT,
5645
5646     _SC_THREAD_PROCESS_SHARED,
5647
5648
5649     _SC_NPROCESSORS_CONF,
5650
5651     _SC_NPROCESSORS_ONLN,
5652
5653     _SC_PHYS_PAGES,
5654
5655     _SC_AVPHYS_PAGES,
5656
5657     _SC_ATEXIT_MAX,
5658
5659     _SC_PASS_MAX,
5660
5661
5662     _SC_XOPEN_VERSION,
5663
5664     _SC_XOPEN_XCU_VERSION,
5665
5666     _SC_XOPEN_UNIX,
5667
5668     _SC_XOPEN_CRYPT,
5669
5670     _SC_XOPEN_ENH_I18N,
5671
5672     _SC_XOPEN_SHM,
5673
5674
5675     _SC_2_CHAR_TERM,
5676
5677     _SC_2_C_VERSION,
5678
5679     _SC_2_UPE,
5680
5681
5682     _SC_XOPEN_XPG2,
5683
5684     _SC_XOPEN_XPG3,
5685
5686     _SC_XOPEN_XPG4,
5687
5688
5689     _SC_CHAR_BIT,
5690
5691     _SC_CHAR_MAX,
5692
5693     _SC_CHAR_MIN,
5694
5695     _SC_INT_MAX,
5696
5697     _SC_INT_MIN,
5698
5699     _SC_LONG_BIT,
5700
5701     _SC_WORD_BIT,
5702
5703     _SC_MB_LEN_MAX,
5704
5705     _SC_NZERO,
5706
5707     _SC_SSIZE_MAX,
5708
5709     _SC_SCHAR_MAX,
5710
5711     _SC_SCHAR_MIN,
5712
5713     _SC_SHRT_MAX,
5714
5715     _SC_SHRT_MIN,
5716
5717     _SC_UCHAR_MAX,
5718
5719     _SC_UINT_MAX,
5720
5721     _SC_ULONG_MAX,
5722
5723     _SC_USHRT_MAX,
5724
5725
5726     _SC_NL_ARGMAX,
5727
5728     _SC_NL_LANGMAX,
5729
5730     _SC_NL_MSGMAX,
5731
5732     _SC_NL_NMAX,
5733
5734     _SC_NL_SETMAX,
5735
5736     _SC_NL_TEXTMAX,
5737
5738
5739     _SC_XBS5_ILP32_OFF32,
5740
5741     _SC_XBS5_ILP32_OFFBIG,
5742
5743     _SC_XBS5_LP64_OFF64,
5744
5745     _SC_XBS5_LPBIG_OFFBIG,
5746
5747
5748     _SC_XOPEN_LEGACY,
5749
5750     _SC_XOPEN_REALTIME,
5751
5752     _SC_XOPEN_REALTIME_THREADS,
5753
5754
5755     _SC_ADVISORY_INFO,
5756
5757     _SC_BARRIERS,
5758
5759     _SC_BASE,
5760
5761     _SC_C_LANG_SUPPORT,
5762
5763     _SC_C_LANG_SUPPORT_R,
5764
5765     _SC_CLOCK_SELECTION,
5766
5767     _SC_CPUTIME,
5768
5769     _SC_THREAD_CPUTIME,
5770
5771     _SC_DEVICE_IO,
5772
5773     _SC_DEVICE_SPECIFIC,
5774
5775     _SC_DEVICE_SPECIFIC_R,
5776
5777     _SC_FD_MGMT,
5778
5779     _SC_FIFO,
5780
5781     _SC_PIPE,
5782
5783     _SC_FILE_ATTRIBUTES,
5784
5785     _SC_FILE_LOCKING,
5786
5787     _SC_FILE_SYSTEM,
5788
5789     _SC_MONOTONIC_CLOCK,
5790
5791     _SC_MULTI_PROCESS,
5792
5793     _SC_SINGLE_PROCESS,
5794
5795     _SC_NETWORKING,
5796
5797     _SC_READER_WRITER_LOCKS,
5798
5799     _SC_SPIN_LOCKS,
5800
5801     _SC_REGEXP,
5802
5803     _SC_REGEX_VERSION,
5804
5805     _SC_SHELL,
5806
5807     _SC_SIGNALS,
5808
5809     _SC_SPAWN,
5810
5811     _SC_SPORADIC_SERVER,
5812
5813     _SC_THREAD_SPORADIC_SERVER,
5814
5815     _SC_SYSTEM_DATABASE,
5816
5817     _SC_SYSTEM_DATABASE_R,
5818
5819     _SC_TIMEOUTS,
5820
5821     _SC_TYPED_MEMORY_OBJECTS,
5822
5823     _SC_USER_GROUPS,
5824
5825     _SC_USER_GROUPS_R,
5826
5827     _SC_2_PBS,
5828
5829     _SC_2_PBS_ACCOUNTING,
5830
5831     _SC_2_PBS_LOCATE,
5832
5833     _SC_2_PBS_MESSAGE,
5834
5835     _SC_2_PBS_TRACK,
5836
5837     _SC_SYMLOOP_MAX,
5838
5839     _SC_STREAMS,
5840
5841     _SC_2_PBS_CHECKPOINT,
5842
5843
5844     _SC_V6_ILP32_OFF32,
5845
5846     _SC_V6_ILP32_OFFBIG,
5847
5848     _SC_V6_LP64_OFF64,
5849
5850     _SC_V6_LPBIG_OFFBIG,
5851
5852
5853     _SC_HOST_NAME_MAX,
5854
5855     _SC_TRACE,
5856
5857     _SC_TRACE_EVENT_FILTER,
5858
5859     _SC_TRACE_INHERIT,
5860
5861     _SC_TRACE_LOG,
5862
5863
5864     _SC_LEVEL1_ICACHE_SIZE,
5865
5866     _SC_LEVEL1_ICACHE_ASSOC,
5867
5868     _SC_LEVEL1_ICACHE_LINESIZE,
5869
5870     _SC_LEVEL1_DCACHE_SIZE,
5871
5872     _SC_LEVEL1_DCACHE_ASSOC,
5873
5874     _SC_LEVEL1_DCACHE_LINESIZE,
5875
5876     _SC_LEVEL2_CACHE_SIZE,
5877
5878     _SC_LEVEL2_CACHE_ASSOC,
5879
5880     _SC_LEVEL2_CACHE_LINESIZE,
5881
5882     _SC_LEVEL3_CACHE_SIZE,
5883
5884     _SC_LEVEL3_CACHE_ASSOC,
5885
5886     _SC_LEVEL3_CACHE_LINESIZE,
5887
5888     _SC_LEVEL4_CACHE_SIZE,
5889
5890     _SC_LEVEL4_CACHE_ASSOC,
5891
5892     _SC_LEVEL4_CACHE_LINESIZE,
5893
5894
5895
5896     _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
5897
5898     _SC_RAW_SOCKETS
5899
5900   };
5901
5902
5903 enum
5904   {
5905     _CS_PATH,
5906
5907
5908     _CS_V6_WIDTH_RESTRICTED_ENVS,
5909
5910
5911     _CS_GNU_LIBC_VERSION,
5912
5913     _CS_GNU_LIBPTHREAD_VERSION,
5914
5915
5916     _CS_LFS_CFLAGS = 1000,
5917
5918     _CS_LFS_LDFLAGS,
5919
5920     _CS_LFS_LIBS,
5921
5922     _CS_LFS_LINTFLAGS,
5923
5924     _CS_LFS64_CFLAGS,
5925
5926     _CS_LFS64_LDFLAGS,
5927
5928     _CS_LFS64_LIBS,
5929
5930     _CS_LFS64_LINTFLAGS,
5931
5932
5933     _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
5934
5935     _CS_XBS5_ILP32_OFF32_LDFLAGS,
5936
5937     _CS_XBS5_ILP32_OFF32_LIBS,
5938
5939     _CS_XBS5_ILP32_OFF32_LINTFLAGS,
5940
5941     _CS_XBS5_ILP32_OFFBIG_CFLAGS,
5942
5943     _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
5944
5945     _CS_XBS5_ILP32_OFFBIG_LIBS,
5946
5947     _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
5948
5949     _CS_XBS5_LP64_OFF64_CFLAGS,
5950
5951     _CS_XBS5_LP64_OFF64_LDFLAGS,
5952
5953     _CS_XBS5_LP64_OFF64_LIBS,
5954
5955     _CS_XBS5_LP64_OFF64_LINTFLAGS,
5956
5957     _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
5958
5959     _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
5960
5961     _CS_XBS5_LPBIG_OFFBIG_LIBS,
5962
5963     _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
5964
5965
5966     _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
5967
5968     _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
5969
5970     _CS_POSIX_V6_ILP32_OFF32_LIBS,
5971
5972     _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
5973
5974     _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
5975
5976     _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
5977
5978     _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
5979
5980     _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
5981
5982     _CS_POSIX_V6_LP64_OFF64_CFLAGS,
5983
5984     _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
5985
5986     _CS_POSIX_V6_LP64_OFF64_LIBS,
5987
5988     _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
5989
5990     _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
5991
5992     _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
5993
5994     _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
5995
5996     _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
5997
5998   };
5999 # 555 "/usr/include/unistd.h" 2 3 4
6000
6001
6002 extern long int pathconf (__const char *__path, int __name)
6003      throw () __attribute__ ((__nonnull__ (1)));
6004
6005
6006 extern long int fpathconf (int __fd, int __name) throw ();
6007
6008
6009 extern long int sysconf (int __name) throw ();
6010
6011
6012
6013 extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
6014
6015
6016
6017
6018 extern __pid_t getpid (void) throw ();
6019
6020
6021 extern __pid_t getppid (void) throw ();
6022
6023
6024
6025
6026 extern __pid_t getpgrp (void) throw ();
6027 # 591 "/usr/include/unistd.h" 3 4
6028 extern __pid_t __getpgid (__pid_t __pid) throw ();
6029
6030 extern __pid_t getpgid (__pid_t __pid) throw ();
6031
6032
6033
6034
6035
6036
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 ();
6042
6043
6044
6045 extern __pid_t getsid (__pid_t __pid) throw ();
6046
6047
6048
6049 extern __uid_t getuid (void) throw ();
6050
6051
6052 extern __uid_t geteuid (void) throw ();
6053
6054
6055 extern __gid_t getgid (void) throw ();
6056
6057
6058 extern __gid_t getegid (void) throw ();
6059
6060
6061
6062
6063 extern int getgroups (int __size, __gid_t __list[]) throw () ;
6064
6065
6066
6067 extern int group_member (__gid_t __gid) throw ();
6068
6069
6070
6071
6072
6073
6074 extern int setuid (__uid_t __uid) throw ();
6075
6076
6077
6078
6079 extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
6080
6081
6082
6083
6084 extern int seteuid (__uid_t __uid) throw ();
6085
6086
6087
6088
6089
6090
6091 extern int setgid (__gid_t __gid) throw ();
6092
6093
6094
6095
6096 extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
6097
6098
6099
6100
6101 extern int setegid (__gid_t __gid) throw ();
6102
6103
6104
6105
6106
6107 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
6108      throw ();
6109
6110
6111
6112 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
6113      throw ();
6114
6115
6116
6117 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
6118      throw ();
6119
6120
6121
6122 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
6123      throw ();
6124
6125
6126
6127
6128
6129
6130 extern __pid_t fork (void) throw ();
6131
6132
6133
6134
6135
6136
6137 extern __pid_t vfork (void) throw ();
6138
6139
6140
6141
6142
6143 extern char *ttyname (int __fd) throw ();
6144
6145
6146
6147 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
6148      throw () __attribute__ ((__nonnull__ (2))) ;
6149
6150
6151
6152 extern int isatty (int __fd) throw ();
6153
6154
6155
6156
6157
6158 extern int ttyslot (void) throw ();
6159
6160
6161
6162
6163 extern int link (__const char *__from, __const char *__to)
6164      throw () __attribute__ ((__nonnull__ (1, 2))) ;
6165
6166
6167
6168
6169 extern int linkat (int __fromfd, __const char *__from, int __tofd,
6170      __const char *__to, int __flags)
6171      throw () __attribute__ ((__nonnull__ (2, 4))) ;
6172
6173
6174
6175
6176 extern int symlink (__const char *__from, __const char *__to)
6177      throw () __attribute__ ((__nonnull__ (1, 2))) ;
6178
6179
6180
6181
6182 extern ssize_t readlink (__const char *__restrict __path,
6183     char *__restrict __buf, size_t __len)
6184      throw () __attribute__ ((__nonnull__ (1, 2))) ;
6185
6186
6187
6188
6189 extern int symlinkat (__const char *__from, int __tofd,
6190         __const char *__to) throw () __attribute__ ((__nonnull__ (1, 3))) ;
6191
6192
6193 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
6194       char *__restrict __buf, size_t __len)
6195      throw () __attribute__ ((__nonnull__ (2, 3))) ;
6196
6197
6198
6199 extern int unlink (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
6200
6201
6202
6203 extern int unlinkat (int __fd, __const char *__name, int __flag)
6204      throw () __attribute__ ((__nonnull__ (2)));
6205
6206
6207
6208 extern int rmdir (__const char *__path) throw () __attribute__ ((__nonnull__ (1)));
6209
6210
6211
6212 extern __pid_t tcgetpgrp (int __fd) throw ();
6213
6214
6215 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
6216
6217
6218
6219
6220
6221
6222 extern char *getlogin (void);
6223
6224
6225
6226
6227
6228
6229
6230 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
6231
6232
6233
6234
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
6239 extern "C" {
6240 # 59 "/usr/include/getopt.h" 3 4
6241 extern char *optarg;
6242 # 73 "/usr/include/getopt.h" 3 4
6243 extern int optind;
6244
6245
6246
6247
6248 extern int opterr;
6249
6250
6251
6252 extern int optopt;
6253 # 152 "/usr/include/getopt.h" 3 4
6254 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
6255        throw ();
6256 # 171 "/usr/include/getopt.h" 3 4
6257 }
6258 # 838 "/usr/include/unistd.h" 2 3 4
6259
6260
6261
6262
6263
6264
6265
6266 extern int gethostname (char *__name, size_t __len) throw () __attribute__ ((__nonnull__ (1)));
6267
6268
6269
6270
6271
6272
6273 extern int sethostname (__const char *__name, size_t __len)
6274      throw () __attribute__ ((__nonnull__ (1))) ;
6275
6276
6277
6278 extern int sethostid (long int __id) throw () ;
6279
6280
6281
6282
6283
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))) ;
6288
6289
6290
6291
6292
6293 extern int vhangup (void) throw ();
6294
6295
6296 extern int revoke (__const char *__file) throw () __attribute__ ((__nonnull__ (1))) ;
6297
6298
6299
6300
6301
6302
6303
6304 extern int profil (unsigned short int *__sample_buffer, size_t __size,
6305      size_t __offset, unsigned int __scale)
6306      throw () __attribute__ ((__nonnull__ (1)));
6307
6308
6309
6310
6311
6312 extern int acct (__const char *__name) throw ();
6313
6314
6315
6316 extern char *getusershell (void) throw ();
6317 extern void endusershell (void) throw ();
6318 extern void setusershell (void) throw ();
6319
6320
6321
6322
6323
6324 extern int daemon (int __nochdir, int __noclose) throw () ;
6325
6326
6327
6328
6329
6330
6331 extern int chroot (__const char *__path) throw () __attribute__ ((__nonnull__ (1))) ;
6332
6333
6334
6335 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
6336 # 923 "/usr/include/unistd.h" 3 4
6337 extern int fsync (int __fd);
6338
6339
6340
6341
6342
6343
6344 extern long int gethostid (void);
6345
6346
6347 extern void sync (void) throw ();
6348
6349
6350
6351
6352 extern int getpagesize (void) throw () __attribute__ ((__const__));
6353
6354
6355
6356
6357 extern int getdtablesize (void) throw ();
6358
6359
6360
6361
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 () ;
6373
6374
6375
6376
6377
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);
6387
6388
6389
6390
6391
6392
6393
6394 extern char *crypt (__const char *__key, __const char *__salt)
6395      throw () __attribute__ ((__nonnull__ (1, 2)));
6396
6397
6398
6399 extern void encrypt (char *__block, int __edflag) throw () __attribute__ ((__nonnull__ (1)));
6400
6401
6402
6403
6404
6405
6406 extern void swab (__const void *__restrict __from, void *__restrict __to,
6407     ssize_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
6408
6409
6410
6411
6412
6413
6414
6415 extern char *ctermid (char *__s) throw ();
6416 # 1103 "/usr/include/unistd.h" 3 4
6417 }
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
6419
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")));
6434
6435
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
6442 static inline int
6443 __gthread_active_p (void)
6444 {
6445   static void *const __gthread_active_ptr
6446     = __extension__ (void *) &__gthrw_pthread_cancel;
6447   return __gthread_active_ptr != 0;
6448 }
6449 # 512 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6450 static inline int
6451 __gthread_once (__gthread_once_t *once, void (*func) (void))
6452 {
6453   if (__gthread_active_p ())
6454     return __gthrw_pthread_once (once, func);
6455   else
6456     return -1;
6457 }
6458
6459 static inline int
6460 __gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
6461 {
6462   return __gthrw_pthread_key_create (key, dtor);
6463 }
6464
6465 static inline int
6466 __gthread_key_delete (__gthread_key_t key)
6467 {
6468   return __gthrw_pthread_key_delete (key);
6469 }
6470
6471 static inline void *
6472 __gthread_getspecific (__gthread_key_t key)
6473 {
6474   return __gthrw_pthread_getspecific (key);
6475 }
6476
6477 static inline int
6478 __gthread_setspecific (__gthread_key_t key, const void *ptr)
6479 {
6480   return __gthrw_pthread_setspecific (key, ptr);
6481 }
6482
6483 static inline int
6484 __gthread_mutex_lock (__gthread_mutex_t *mutex)
6485 {
6486   if (__gthread_active_p ())
6487     return __gthrw_pthread_mutex_lock (mutex);
6488   else
6489     return 0;
6490 }
6491
6492 static inline int
6493 __gthread_mutex_trylock (__gthread_mutex_t *mutex)
6494 {
6495   if (__gthread_active_p ())
6496     return __gthrw_pthread_mutex_trylock (mutex);
6497   else
6498     return 0;
6499 }
6500
6501 static inline int
6502 __gthread_mutex_unlock (__gthread_mutex_t *mutex)
6503 {
6504   if (__gthread_active_p ())
6505     return __gthrw_pthread_mutex_unlock (mutex);
6506   else
6507     return 0;
6508 }
6509 # 594 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr-default.h" 3
6510 static inline int
6511 __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
6512 {
6513   return __gthread_mutex_lock (mutex);
6514 }
6515
6516 static inline int
6517 __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
6518 {
6519   return __gthread_mutex_trylock (mutex);
6520 }
6521
6522 static inline int
6523 __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
6524 {
6525   return __gthread_mutex_unlock (mutex);
6526 }
6527 # 115 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/i486-pc-linux-gnu/bits/gthr.h" 2 3
6528
6529
6530
6531
6532
6533
6534
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
6537
6538 namespace std
6539 {
6540   typedef __gthread_mutex_t __c_lock;
6541
6542
6543   typedef FILE __c_file;
6544 }
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
6548        
6549 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cctype" 3
6550 #pragma GCC visibility push(default)
6551
6552
6553 # 1 "/usr/include/ctype.h" 1 3 4
6554 # 30 "/usr/include/ctype.h" 3 4
6555 extern "C" {
6556 # 48 "/usr/include/ctype.h" 3 4
6557 enum
6558 {
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))
6571 };
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
6580
6581
6582
6583
6584
6585
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 ();
6597
6598
6599
6600 extern int tolower (int __c) throw ();
6601
6602
6603 extern int toupper (int __c) throw ();
6604
6605
6606
6607
6608
6609
6610
6611
6612 extern int isblank (int) throw ();
6613
6614
6615
6616
6617
6618
6619 extern int isctype (int __c, int __mask) throw ();
6620
6621
6622
6623
6624
6625
6626 extern int isascii (int __c) throw ();
6627
6628
6629
6630 extern int toascii (int __c) throw ();
6631
6632
6633
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 ();
6648
6649 extern int isblank_l (int, __locale_t) throw ();
6650
6651
6652
6653 extern int __tolower_l (int __c, __locale_t __l) throw ();
6654 extern int tolower_l (int __c, __locale_t __l) throw ();
6655
6656
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
6660 }
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
6663 namespace std
6664 {
6665   using ::isalnum;
6666   using ::isalpha;
6667   using ::iscntrl;
6668   using ::isdigit;
6669   using ::isgraph;
6670   using ::islower;
6671   using ::isprint;
6672   using ::ispunct;
6673   using ::isspace;
6674   using ::isupper;
6675   using ::isxdigit;
6676   using ::tolower;
6677   using ::toupper;
6678 }
6679
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
6684        
6685 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stringfwd.h" 3
6686
6687
6688
6689 namespace std
6690 {
6691   template<typename _Alloc>
6692     class allocator;
6693
6694   template<class _CharT>
6695     struct char_traits;
6696
6697   template<typename _CharT, typename _Traits = char_traits<_CharT>,
6698            typename _Alloc = allocator<_CharT> >
6699     class basic_string;
6700
6701   template<> struct char_traits<char>;
6702
6703   typedef basic_string<char> string;
6704
6705
6706   template<> struct char_traits<wchar_t>;
6707
6708   typedef basic_string<wchar_t> wstring;
6709
6710 }
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
6714        
6715 # 45 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
6716
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
6719        
6720 # 49 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
6721 #pragma GCC visibility push(default)
6722
6723
6724
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
6727        
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
6731 namespace std
6732 {
6733   using ::clock_t;
6734   using ::time_t;
6735   using ::tm;
6736
6737   using ::clock;
6738   using ::difftime;
6739   using ::mktime;
6740   using ::time;
6741   using ::asctime;
6742   using ::ctime;
6743   using ::gmtime;
6744   using ::localtime;
6745   using ::strftime;
6746 }
6747
6748 #pragma GCC visibility pop
6749 # 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 2 3
6750
6751
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
6756
6757
6758
6759
6760
6761
6762
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
6766
6767
6768 typedef __mbstate_t mbstate_t;
6769
6770
6771
6772 # 118 "/usr/include/wchar.h" 3 4
6773 extern "C" {
6774
6775
6776
6777
6778 struct tm;
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788 extern wchar_t *wcscpy (wchar_t *__restrict __dest,
6789    __const wchar_t *__restrict __src) throw ();
6790
6791 extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
6792     __const wchar_t *__restrict __src, size_t __n)
6793      throw ();
6794
6795
6796 extern wchar_t *wcscat (wchar_t *__restrict __dest,
6797    __const wchar_t *__restrict __src) throw ();
6798
6799 extern wchar_t *wcsncat (wchar_t *__restrict __dest,
6800     __const wchar_t *__restrict __src, size_t __n)
6801      throw ();
6802
6803
6804 extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
6805      throw () __attribute__ ((__pure__));
6806
6807 extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
6808      throw () __attribute__ ((__pure__));
6809
6810
6811
6812
6813 extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
6814
6815
6816 extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
6817    size_t __n) throw ();
6818
6819
6820
6821
6822
6823 extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
6824     __locale_t __loc) throw ();
6825
6826 extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
6827      size_t __n, __locale_t __loc) throw ();
6828
6829
6830
6831
6832
6833 extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
6834
6835
6836
6837 extern size_t wcsxfrm (wchar_t *__restrict __s1,
6838          __const wchar_t *__restrict __s2, size_t __n) throw ();
6839
6840
6841
6842
6843
6844
6845
6846
6847 extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
6848         __locale_t __loc) throw ();
6849
6850
6851
6852
6853 extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
6854     size_t __n, __locale_t __loc) throw ();
6855
6856
6857 extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
6858
6859
6860
6861
6862 extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
6863      throw () __attribute__ ((__pure__));
6864
6865 extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
6866      throw () __attribute__ ((__pure__));
6867
6868
6869
6870
6871
6872 extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
6873      throw () __attribute__ ((__pure__));
6874
6875
6876
6877
6878
6879 extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
6880      throw () __attribute__ ((__pure__));
6881
6882
6883 extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
6884      throw () __attribute__ ((__pure__));
6885
6886 extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
6887      throw () __attribute__ ((__pure__));
6888
6889 extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
6890      throw () __attribute__ ((__pure__));
6891
6892
6893 extern wchar_t *wcstok (wchar_t *__restrict __s,
6894    __const wchar_t *__restrict __delim,
6895    wchar_t **__restrict __ptr) throw ();
6896
6897
6898 extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
6899
6900
6901
6902
6903 extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
6904      throw () __attribute__ ((__pure__));
6905
6906
6907
6908
6909 extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
6910      throw () __attribute__ ((__pure__));
6911
6912
6913
6914
6915
6916 extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
6917      throw () __attribute__ ((__pure__));
6918
6919
6920 extern int wmemcmp (__const wchar_t *__restrict __s1,
6921       __const wchar_t *__restrict __s2, size_t __n)
6922      throw () __attribute__ ((__pure__));
6923
6924
6925 extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
6926     __const wchar_t *__restrict __s2, size_t __n) throw ();
6927
6928
6929
6930 extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
6931      throw ();
6932
6933
6934 extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
6935
6936
6937
6938
6939
6940 extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
6941      __const wchar_t *__restrict __s2, size_t __n)
6942      throw ();
6943
6944
6945
6946
6947
6948
6949 extern wint_t btowc (int __c) throw ();
6950
6951
6952
6953 extern int wctob (wint_t __c) throw ();
6954
6955
6956
6957 extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
6958
6959
6960
6961 extern size_t mbrtowc (wchar_t *__restrict __pwc,
6962          __const char *__restrict __s, size_t __n,
6963          mbstate_t *__p) throw ();
6964
6965
6966 extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
6967          mbstate_t *__restrict __ps) throw ();
6968
6969
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 ();
6974
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 ()
6978
6979 { return (__ps != __null
6980    ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
6981
6982
6983
6984
6985
6986 extern size_t mbsrtowcs (wchar_t *__restrict __dst,
6987     __const char **__restrict __src, size_t __len,
6988     mbstate_t *__restrict __ps) throw ();
6989
6990
6991
6992 extern size_t wcsrtombs (char *__restrict __dst,
6993     __const wchar_t **__restrict __src, size_t __len,
6994     mbstate_t *__restrict __ps) throw ();
6995
6996
6997
6998
6999
7000
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 ();
7004
7005
7006
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 ();
7011
7012
7013
7014
7015
7016
7017 extern int wcwidth (wchar_t __c) throw ();
7018
7019
7020
7021 extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
7022
7023
7024
7025
7026
7027
7028 extern double wcstod (__const wchar_t *__restrict __nptr,
7029         wchar_t **__restrict __endptr) throw ();
7030
7031
7032
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 ();
7037
7038
7039
7040
7041
7042 extern long int wcstol (__const wchar_t *__restrict __nptr,
7043    wchar_t **__restrict __endptr, int __base) throw ();
7044
7045
7046
7047 extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
7048       wchar_t **__restrict __endptr, int __base)
7049      throw ();
7050
7051
7052
7053
7054 __extension__
7055 extern long long int wcstoll (__const wchar_t *__restrict __nptr,
7056          wchar_t **__restrict __endptr, int __base)
7057      throw ();
7058
7059
7060
7061 __extension__
7062 extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
7063      wchar_t **__restrict __endptr,
7064      int __base) throw ();
7065
7066
7067
7068
7069
7070
7071 __extension__
7072 extern long long int wcstoq (__const wchar_t *__restrict __nptr,
7073         wchar_t **__restrict __endptr, int __base)
7074      throw ();
7075
7076
7077
7078 __extension__
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 ();
7086
7087 extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
7088         wchar_t **__restrict __endptr,
7089         int __base, __locale_t __loc) throw ();
7090
7091 __extension__
7092 extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
7093     wchar_t **__restrict __endptr,
7094     int __base, __locale_t __loc) throw ();
7095
7096 __extension__
7097 extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
7098        wchar_t **__restrict __endptr,
7099        int __base, __locale_t __loc)
7100      throw ();
7101
7102 extern double wcstod_l (__const wchar_t *__restrict __nptr,
7103    wchar_t **__restrict __endptr, __locale_t __loc)
7104      throw ();
7105
7106 extern float wcstof_l (__const wchar_t *__restrict __nptr,
7107          wchar_t **__restrict __endptr, __locale_t __loc)
7108      throw ();
7109
7110 extern long double wcstold_l (__const wchar_t *__restrict __nptr,
7111          wchar_t **__restrict __endptr,
7112          __locale_t __loc) throw ();
7113
7114
7115
7116
7117
7118 extern double __wcstod_internal (__const wchar_t *__restrict __nptr,
7119      wchar_t **__restrict __endptr, int __group)
7120      throw ();
7121 extern float __wcstof_internal (__const wchar_t *__restrict __nptr,
7122     wchar_t **__restrict __endptr, int __group)
7123      throw ();
7124 extern long double __wcstold_internal (__const wchar_t *__restrict __nptr,
7125            wchar_t **__restrict __endptr,
7126            int __group) throw ();
7127
7128
7129
7130 extern long int __wcstol_internal (__const wchar_t *__restrict __nptr,
7131        wchar_t **__restrict __endptr,
7132        int __base, int __group) throw ();
7133
7134
7135
7136
7137 extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt,
7138           wchar_t **__restrict __endptr,
7139           int __base, int __group) throw ();
7140
7141
7142
7143
7144 __extension__
7145 extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr,
7146       wchar_t **__restrict __endptr,
7147       int __base, int __group) throw ();
7148
7149
7150
7151
7152 __extension__
7153 extern unsigned long long int __wcstoull_internal (__const wchar_t *
7154          __restrict __nptr,
7155          wchar_t **
7156          __restrict __endptr,
7157          int __base,
7158          int __group) throw ();
7159
7160
7161
7162
7163
7164
7165
7166
7167 extern __inline double
7168 wcstod (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7169
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 ()
7173
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 ()
7177
7178 { return __wcstoul_internal (__nptr, __endptr, __base, 0); }
7179
7180
7181
7182 extern __inline float
7183 wcstof (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7184
7185 { return __wcstof_internal (__nptr, __endptr, 0); }
7186
7187 extern __inline long double
7188 wcstold (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr) throw ()
7189
7190 { return __wcstold_internal (__nptr, __endptr, 0); }
7191
7192 __extension__
7193 extern __inline long long int
7194 wcstoq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7195
7196 { return __wcstoll_internal (__nptr, __endptr, __base, 0); }
7197 __extension__
7198 extern __inline unsigned long long int
7199 wcstouq (__const wchar_t *__restrict __nptr, wchar_t **__restrict __endptr, int __base) throw ()
7200
7201 { return __wcstoull_internal (__nptr, __endptr, __base, 0); }
7202
7203
7204
7205
7206
7207
7208
7209 extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) throw ();
7210
7211
7212
7213 extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
7214      throw ();
7215 # 607 "/usr/include/wchar.h" 3 4
7216 extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
7217
7218
7219
7220
7221
7222
7223 extern int fwide (__FILE *__fp, int __mode) throw ();
7224
7225
7226
7227
7228
7229
7230 extern int fwprintf (__FILE *__restrict __stream,
7231        __const wchar_t *__restrict __format, ...)
7232                                                            ;
7233
7234
7235
7236
7237 extern int wprintf (__const wchar_t *__restrict __format, ...)
7238                                                            ;
7239
7240 extern int swprintf (wchar_t *__restrict __s, size_t __n,
7241        __const wchar_t *__restrict __format, ...)
7242      throw () ;
7243
7244
7245
7246
7247
7248 extern int vfwprintf (__FILE *__restrict __s,
7249         __const wchar_t *__restrict __format,
7250         __gnuc_va_list __arg)
7251                                                            ;
7252
7253
7254
7255
7256 extern int vwprintf (__const wchar_t *__restrict __format,
7257        __gnuc_va_list __arg)
7258                                                            ;
7259
7260
7261 extern int vswprintf (wchar_t *__restrict __s, size_t __n,
7262         __const wchar_t *__restrict __format,
7263         __gnuc_va_list __arg)
7264      throw () ;
7265
7266
7267
7268
7269
7270
7271 extern int fwscanf (__FILE *__restrict __stream,
7272       __const wchar_t *__restrict __format, ...)
7273                                                           ;
7274
7275
7276
7277
7278 extern int wscanf (__const wchar_t *__restrict __format, ...)
7279                                                           ;
7280
7281 extern int swscanf (__const wchar_t *__restrict __s,
7282       __const wchar_t *__restrict __format, ...)
7283      throw () ;
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295 extern int vfwscanf (__FILE *__restrict __s,
7296        __const wchar_t *__restrict __format,
7297        __gnuc_va_list __arg)
7298                                                           ;
7299
7300
7301
7302
7303 extern int vwscanf (__const wchar_t *__restrict __format,
7304       __gnuc_va_list __arg)
7305                                                           ;
7306
7307 extern int vswscanf (__const wchar_t *__restrict __s,
7308        __const wchar_t *__restrict __format,
7309        __gnuc_va_list __arg)
7310      throw () ;
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321 extern wint_t fgetwc (__FILE *__stream);
7322 extern wint_t getwc (__FILE *__stream);
7323
7324
7325
7326
7327
7328 extern wint_t getwchar (void);
7329
7330
7331
7332
7333
7334
7335 extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
7336 extern wint_t putwc (wchar_t __wc, __FILE *__stream);
7337
7338
7339
7340
7341
7342 extern wint_t putwchar (wchar_t __wc);
7343
7344
7345
7346
7347
7348
7349
7350 extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
7351    __FILE *__restrict __stream);
7352
7353
7354
7355
7356
7357 extern int fputws (__const wchar_t *__restrict __ws,
7358      __FILE *__restrict __stream);
7359
7360
7361
7362
7363
7364
7365 extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
7366
7367 # 768 "/usr/include/wchar.h" 3 4
7368 extern wint_t getwc_unlocked (__FILE *__stream);
7369 extern wint_t getwchar_unlocked (void);
7370
7371
7372
7373
7374
7375
7376
7377 extern wint_t fgetwc_unlocked (__FILE *__stream);
7378
7379
7380
7381
7382
7383
7384
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);
7392
7393
7394
7395
7396
7397
7398
7399 extern int fputws_unlocked (__const wchar_t *__restrict __ws,
7400        __FILE *__restrict __stream);
7401
7402
7403
7404
7405
7406
7407
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 ();
7411
7412
7413
7414
7415
7416
7417
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
7423 }
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
7426 namespace std
7427 {
7428   using ::mbstate_t;
7429 }
7430 # 143 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7431 namespace std
7432 {
7433   using ::wint_t;
7434
7435   using ::btowc;
7436   using ::fgetwc;
7437   using ::fgetws;
7438   using ::fputwc;
7439   using ::fputws;
7440   using ::fwide;
7441   using ::fwprintf;
7442   using ::fwscanf;
7443   using ::getwc;
7444   using ::getwchar;
7445   using ::mbrlen;
7446   using ::mbrtowc;
7447   using ::mbsinit;
7448   using ::mbsrtowcs;
7449   using ::putwc;
7450   using ::putwchar;
7451   using ::swprintf;
7452   using ::swscanf;
7453   using ::ungetwc;
7454   using ::vfwprintf;
7455
7456   using ::vfwscanf;
7457
7458   using ::vswprintf;
7459
7460   using ::vswscanf;
7461
7462   using ::vwprintf;
7463
7464   using ::vwscanf;
7465
7466   using ::wcrtomb;
7467   using ::wcscat;
7468   using ::wcscmp;
7469   using ::wcscoll;
7470   using ::wcscpy;
7471   using ::wcscspn;
7472
7473
7474
7475   using ::wcslen;
7476   using ::wcsncat;
7477   using ::wcsncmp;
7478   using ::wcsncpy;
7479   using ::wcsrtombs;
7480   using ::wcsspn;
7481   using ::wcstod;
7482
7483   using ::wcstof;
7484
7485   using ::wcstok;
7486   using ::wcstol;
7487   using ::wcstoul;
7488   using ::wcsxfrm;
7489   using ::wctob;
7490   using ::wmemcmp;
7491   using ::wmemcpy;
7492   using ::wmemmove;
7493   using ::wmemset;
7494   using ::wprintf;
7495   using ::wscanf;
7496
7497   using ::wcschr;
7498
7499   inline wchar_t*
7500   wcschr(wchar_t* __p, wchar_t __c)
7501   { return wcschr(const_cast<const wchar_t*>(__p), __c); }
7502
7503   using ::wcspbrk;
7504
7505   inline wchar_t*
7506   wcspbrk(wchar_t* __s1, const wchar_t* __s2)
7507   { return wcspbrk(const_cast<const wchar_t*>(__s1), __s2); }
7508
7509   using ::wcsrchr;
7510
7511   inline wchar_t*
7512   wcsrchr(wchar_t* __p, wchar_t __c)
7513   { return wcsrchr(const_cast<const wchar_t*>(__p), __c); }
7514
7515   using ::wcsstr;
7516
7517   inline wchar_t*
7518   wcsstr(wchar_t* __s1, const wchar_t* __s2)
7519   { return wcsstr(const_cast<const wchar_t*>(__s1), __s2); }
7520
7521   using ::wmemchr;
7522
7523   inline wchar_t*
7524   wmemchr(wchar_t* __p, wchar_t __c, size_t __n)
7525   { return wmemchr(const_cast<const wchar_t*>(__p), __c, __n); }
7526 }
7527
7528
7529
7530
7531
7532
7533
7534 namespace __gnu_cxx
7535 {
7536
7537
7538
7539
7540
7541   using ::wcstold;
7542 # 262 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/cwchar" 3
7543   using ::wcstoll;
7544   using ::wcstoull;
7545
7546 }
7547
7548 namespace std
7549 {
7550   using __gnu_cxx::wcstold;
7551   using __gnu_cxx::wcstoll;
7552   using __gnu_cxx::wcstoull;
7553 }
7554
7555
7556
7557
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
7560
7561
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;
7569
7570 typedef unsigned int uint32_t;
7571
7572
7573
7574
7575
7576 __extension__
7577 typedef unsigned long long int uint64_t;
7578
7579
7580
7581
7582
7583
7584 typedef signed char int_least8_t;
7585 typedef short int int_least16_t;
7586 typedef int int_least32_t;
7587
7588
7589
7590 __extension__
7591 typedef long long int int_least64_t;
7592
7593
7594
7595 typedef unsigned char uint_least8_t;
7596 typedef unsigned short int uint_least16_t;
7597 typedef unsigned int uint_least32_t;
7598
7599
7600
7601 __extension__
7602 typedef unsigned long long int uint_least64_t;
7603
7604
7605
7606
7607
7608
7609 typedef signed char int_fast8_t;
7610
7611
7612
7613
7614
7615 typedef int int_fast16_t;
7616 typedef int int_fast32_t;
7617 __extension__
7618 typedef long long int int_fast64_t;
7619
7620
7621
7622 typedef unsigned char uint_fast8_t;
7623
7624
7625
7626
7627
7628 typedef unsigned int uint_fast16_t;
7629 typedef unsigned int uint_fast32_t;
7630 __extension__
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
7635 __extension__
7636 typedef long long int intmax_t;
7637 __extension__
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
7640
7641
7642 namespace std
7643 {
7644 # 72 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7645   typedef int64_t streamoff;
7646
7647
7648
7649
7650
7651   typedef ptrdiff_t streamsize;
7652
7653   template<typename _StateT>
7654     class fpos;
7655 # 94 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/postypes.h" 3
7656   template<typename _StateT>
7657     class fpos
7658     {
7659     private:
7660       streamoff _M_off;
7661       _StateT _M_state;
7662
7663     public:
7664
7665
7666
7667
7668       fpos()
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() { }
7673
7674
7675       operator streamoff() const { return _M_off; }
7676
7677
7678       void
7679       state(_StateT __st)
7680       { _M_state = __st; }
7681
7682
7683       _StateT
7684       state() const
7685       { return _M_state; }
7686
7687
7688
7689
7690
7691
7692       bool
7693       operator==(const fpos& __other) const
7694       { return _M_off == __other._M_off; }
7695
7696
7697       bool
7698       operator!=(const fpos& __other) const
7699       { return _M_off != __other._M_off; }
7700
7701
7702
7703
7704
7705       fpos&
7706       operator+=(streamoff __off)
7707       {
7708  _M_off += __off;
7709  return *this;
7710       }
7711
7712
7713
7714
7715
7716       fpos&
7717       operator-=(streamoff __off)
7718       {
7719  _M_off -= __off;
7720  return *this;
7721       }
7722
7723
7724
7725
7726
7727
7728
7729       fpos
7730       operator+(streamoff __off) const
7731       {
7732  fpos __pos(*this);
7733  __pos += __off;
7734  return __pos;
7735       }
7736
7737
7738
7739
7740
7741
7742
7743       fpos
7744       operator-(streamoff __off) const
7745       {
7746  fpos __pos(*this);
7747  __pos -= __off;
7748  return __pos;
7749       }
7750
7751
7752
7753
7754
7755
7756       streamoff
7757       operator-(const fpos& __other) const
7758       { return _M_off - __other._M_off; }
7759     };
7760
7761
7762
7763
7764
7765   typedef fpos<mbstate_t> streampos;
7766
7767   typedef fpos<mbstate_t> wstreampos;
7768 }
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
7774
7775 namespace std
7776 {
7777
7778   void
7779   __throw_bad_exception(void) __attribute__((__noreturn__));
7780
7781
7782   void
7783   __throw_bad_alloc(void) __attribute__((__noreturn__));
7784
7785
7786   void
7787   __throw_bad_cast(void) __attribute__((__noreturn__));
7788
7789   void
7790   __throw_bad_typeid(void) __attribute__((__noreturn__));
7791
7792
7793   void
7794   __throw_logic_error(const char*) __attribute__((__noreturn__));
7795
7796   void
7797   __throw_domain_error(const char*) __attribute__((__noreturn__));
7798
7799   void
7800   __throw_invalid_argument(const char*) __attribute__((__noreturn__));
7801
7802   void
7803   __throw_length_error(const char*) __attribute__((__noreturn__));
7804
7805   void
7806   __throw_out_of_range(const char*) __attribute__((__noreturn__));
7807
7808   void
7809   __throw_runtime_error(const char*) __attribute__((__noreturn__));
7810
7811   void
7812   __throw_range_error(const char*) __attribute__((__noreturn__));
7813
7814   void
7815   __throw_overflow_error(const char*) __attribute__((__noreturn__));
7816
7817   void
7818   __throw_underflow_error(const char*) __attribute__((__noreturn__));
7819
7820
7821   void
7822   __throw_ios_failure(const char*) __attribute__((__noreturn__));
7823 }
7824 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/iosfwd" 2 3
7825
7826 namespace std
7827 {
7828   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7829     class basic_ios;
7830
7831   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7832     class basic_streambuf;
7833
7834   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7835     class basic_istream;
7836
7837   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7838     class basic_ostream;
7839
7840   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7841     class basic_iostream;
7842
7843   template<typename _CharT, typename _Traits = char_traits<_CharT>,
7844      typename _Alloc = allocator<_CharT> >
7845     class basic_stringbuf;
7846
7847   template<typename _CharT, typename _Traits = char_traits<_CharT>,
7848     typename _Alloc = allocator<_CharT> >
7849     class basic_istringstream;
7850
7851   template<typename _CharT, typename _Traits = char_traits<_CharT>,
7852     typename _Alloc = allocator<_CharT> >
7853     class basic_ostringstream;
7854
7855   template<typename _CharT, typename _Traits = char_traits<_CharT>,
7856     typename _Alloc = allocator<_CharT> >
7857     class basic_stringstream;
7858
7859   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7860     class basic_filebuf;
7861
7862   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7863     class basic_ifstream;
7864
7865   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7866     class basic_ofstream;
7867
7868   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7869     class basic_fstream;
7870
7871   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7872     class istreambuf_iterator;
7873
7874   template<typename _CharT, typename _Traits = char_traits<_CharT> >
7875     class ostreambuf_iterator;
7876
7877
7878
7879   class ios_base;
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;
7894
7895
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;
7909
7910
7911 }
7912
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
7917 namespace std
7918 {
7919
7920   template<class _T1, class _T2>
7921     struct pair
7922     {
7923       typedef _T1 first_type;
7924       typedef _T2 second_type;
7925
7926       _T1 first;
7927       _T2 second;
7928
7929
7930
7931
7932
7933       pair()
7934       : first(), second() { }
7935
7936
7937       pair(const _T1& __a, const _T2& __b)
7938       : first(__a), second(__b) { }
7939
7940
7941       template<class _U1, class _U2>
7942         pair(const pair<_U1, _U2>& __p)
7943  : first(__p.first), second(__p.second) { }
7944     };
7945
7946
7947   template<class _T1, class _T2>
7948     inline bool
7949     operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7950     { return __x.first == __y.first && __x.second == __y.second; }
7951
7952
7953   template<class _T1, class _T2>
7954     inline bool
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); }
7958
7959
7960   template<class _T1, class _T2>
7961     inline bool
7962     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7963     { return !(__x == __y); }
7964
7965
7966   template<class _T1, class _T2>
7967     inline bool
7968     operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7969     { return __y < __x; }
7970
7971
7972   template<class _T1, class _T2>
7973     inline bool
7974     operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
7975     { return !(__y < __x); }
7976
7977
7978   template<class _T1, class _T2>
7979     inline bool
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); }
7987 }
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
7991        
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
7995 {
7996   typedef char __one;
7997   typedef char __two[2];
7998
7999   template<typename _Tp>
8000   __one __test_type(int _Tp::*);
8001   template<typename _Tp>
8002   __two& __test_type(...);
8003 }
8004
8005
8006 namespace __gnu_cxx
8007 {
8008   template<typename _Iterator, typename _Container>
8009     class __normal_iterator;
8010 }
8011
8012 struct __true_type { };
8013 struct __false_type { };
8014
8015 namespace std
8016 {
8017   template<bool>
8018     struct __truth_type
8019     { typedef __false_type __type; };
8020
8021   template<>
8022     struct __truth_type<true>
8023     { typedef __true_type __type; };
8024
8025
8026
8027   template<class _Sp, class _Tp>
8028     struct __traitor
8029     {
8030       enum { __value = bool(_Sp::__value) || bool(_Tp::__value) };
8031       typedef typename __truth_type<__value>::__type __type;
8032     };
8033
8034
8035   template<typename, typename>
8036     struct __are_same
8037     {
8038       enum { __value = 0 };
8039       typedef __false_type __type;
8040     };
8041
8042   template<typename _Tp>
8043     struct __are_same<_Tp, _Tp>
8044     {
8045       enum { __value = 1 };
8046       typedef __true_type __type;
8047     };
8048
8049
8050   template<typename, bool>
8051     struct __enable_if
8052     {
8053     };
8054
8055   template<typename _Tp>
8056     struct __enable_if<_Tp, true>
8057     {
8058       typedef _Tp __type;
8059     };
8060
8061
8062   template<typename _Tp>
8063     struct __is_void
8064     {
8065       enum { __value = 0 };
8066       typedef __false_type __type;
8067     };
8068
8069   template<>
8070     struct __is_void<void>
8071     {
8072       enum { __value = 1 };
8073       typedef __true_type __type;
8074     };
8075
8076
8077
8078
8079   template<typename _Tp>
8080     struct __is_integer
8081     {
8082       enum { __value = 0 };
8083       typedef __false_type __type;
8084     };
8085
8086
8087
8088
8089   template<>
8090     struct __is_integer<bool>
8091     {
8092       enum { __value = 1 };
8093       typedef __true_type __type;
8094     };
8095
8096   template<>
8097     struct __is_integer<char>
8098     {
8099       enum { __value = 1 };
8100       typedef __true_type __type;
8101     };
8102
8103   template<>
8104     struct __is_integer<signed char>
8105     {
8106       enum { __value = 1 };
8107       typedef __true_type __type;
8108     };
8109
8110   template<>
8111     struct __is_integer<unsigned char>
8112     {
8113       enum { __value = 1 };
8114       typedef __true_type __type;
8115     };
8116
8117
8118   template<>
8119     struct __is_integer<wchar_t>
8120     {
8121       enum { __value = 1 };
8122       typedef __true_type __type;
8123     };
8124
8125
8126   template<>
8127     struct __is_integer<short>
8128     {
8129       enum { __value = 1 };
8130       typedef __true_type __type;
8131     };
8132
8133   template<>
8134     struct __is_integer<unsigned short>
8135     {
8136       enum { __value = 1 };
8137       typedef __true_type __type;
8138     };
8139
8140   template<>
8141     struct __is_integer<int>
8142     {
8143       enum { __value = 1 };
8144       typedef __true_type __type;
8145     };
8146
8147   template<>
8148     struct __is_integer<unsigned int>
8149     {
8150       enum { __value = 1 };
8151       typedef __true_type __type;
8152     };
8153
8154   template<>
8155     struct __is_integer<long>
8156     {
8157       enum { __value = 1 };
8158       typedef __true_type __type;
8159     };
8160
8161   template<>
8162     struct __is_integer<unsigned long>
8163     {
8164       enum { __value = 1 };
8165       typedef __true_type __type;
8166     };
8167
8168   template<>
8169     struct __is_integer<long long>
8170     {
8171       enum { __value = 1 };
8172       typedef __true_type __type;
8173     };
8174
8175   template<>
8176     struct __is_integer<unsigned long long>
8177     {
8178       enum { __value = 1 };
8179       typedef __true_type __type;
8180     };
8181
8182
8183
8184
8185   template<typename _Tp>
8186     struct __is_floating
8187     {
8188       enum { __value = 0 };
8189       typedef __false_type __type;
8190     };
8191
8192
8193   template<>
8194     struct __is_floating<float>
8195     {
8196       enum { __value = 1 };
8197       typedef __true_type __type;
8198     };
8199
8200   template<>
8201     struct __is_floating<double>
8202     {
8203       enum { __value = 1 };
8204       typedef __true_type __type;
8205     };
8206
8207   template<>
8208     struct __is_floating<long double>
8209     {
8210       enum { __value = 1 };
8211       typedef __true_type __type;
8212     };
8213
8214
8215
8216
8217   template<typename _Tp>
8218     struct __is_pointer
8219     {
8220       enum { __value = 0 };
8221       typedef __false_type __type;
8222     };
8223
8224   template<typename _Tp>
8225     struct __is_pointer<_Tp*>
8226     {
8227       enum { __value = 1 };
8228       typedef __true_type __type;
8229     };
8230
8231
8232
8233
8234   template<typename _Tp>
8235     struct __is_normal_iterator
8236     {
8237       enum { __value = 0 };
8238       typedef __false_type __type;
8239     };
8240
8241   template<typename _Iterator, typename _Container>
8242     struct __is_normal_iterator< __gnu_cxx::__normal_iterator<_Iterator,
8243              _Container> >
8244     {
8245       enum { __value = 1 };
8246       typedef __true_type __type;
8247     };
8248
8249
8250
8251
8252   template<typename _Tp>
8253     struct __is_arithmetic
8254     : public __traitor<__is_integer<_Tp>, __is_floating<_Tp> >
8255     { };
8256
8257
8258
8259
8260   template<typename _Tp>
8261     struct __is_fundamental
8262     : public __traitor<__is_void<_Tp>, __is_arithmetic<_Tp> >
8263     { };
8264
8265
8266
8267
8268   template<typename _Tp>
8269     struct __is_scalar
8270     : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
8271     { };
8272
8273
8274
8275
8276   template<typename _Tp>
8277     struct __is_pod
8278     {
8279       enum
8280  {
8281    __value = (sizeof(__gnu_internal::__test_type<_Tp>(0))
8282        != sizeof(__gnu_internal::__one))
8283  };
8284     };
8285
8286
8287
8288
8289   template<typename _Tp>
8290     struct __is_empty
8291     {
8292     private:
8293       template<typename>
8294         struct __first { };
8295       template<typename _Up>
8296         struct __second
8297         : public _Up { };
8298
8299     public:
8300       enum
8301  {
8302    __value = sizeof(__first<_Tp>) == sizeof(__second<_Tp>)
8303  };
8304     };
8305
8306 }
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
8310        
8311 # 68 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator_base_types.h" 3
8312
8313 namespace std
8314 {
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 {};
8317
8318   struct output_iterator_tag {};
8319
8320   struct forward_iterator_tag : public input_iterator_tag {};
8321
8322
8323   struct bidirectional_iterator_tag : public forward_iterator_tag {};
8324
8325
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&>
8330     struct iterator
8331     {
8332
8333       typedef _Category iterator_category;
8334
8335       typedef _Tp value_type;
8336
8337       typedef _Distance difference_type;
8338
8339       typedef _Pointer pointer;
8340
8341       typedef _Reference reference;
8342     };
8343
8344
8345
8346
8347
8348
8349
8350   template<typename _Iterator>
8351     struct iterator_traits
8352     {
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;
8358     };
8359
8360   template<typename _Tp>
8361     struct iterator_traits<_Tp*>
8362     {
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;
8368     };
8369
8370   template<typename _Tp>
8371     struct iterator_traits<const _Tp*>
8372     {
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;
8378     };
8379
8380
8381
8382
8383
8384
8385
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(); }
8390
8391 }
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
8395        
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
8399        
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
8402
8403 namespace std
8404 {
8405   template<typename _InputIterator>
8406     inline typename iterator_traits<_InputIterator>::difference_type
8407     __distance(_InputIterator __first, _InputIterator __last,
8408                input_iterator_tag)
8409     {
8410
8411      
8412
8413       typename iterator_traits<_InputIterator>::difference_type __n = 0;
8414       while (__first != __last)
8415  {
8416    ++__first;
8417    ++__n;
8418  }
8419       return __n;
8420     }
8421
8422   template<typename _RandomAccessIterator>
8423     inline typename iterator_traits<_RandomAccessIterator>::difference_type
8424     __distance(_RandomAccessIterator __first, _RandomAccessIterator __last,
8425                random_access_iterator_tag)
8426     {
8427
8428      
8429
8430       return __last - __first;
8431     }
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)
8436     {
8437
8438       return std::__distance(__first, __last,
8439         std::__iterator_category(__first));
8440     }
8441
8442   template<typename _InputIterator, typename _Distance>
8443     inline void
8444     __advance(_InputIterator& __i, _Distance __n, input_iterator_tag)
8445     {
8446
8447      
8448       while (__n--)
8449  ++__i;
8450     }
8451
8452   template<typename _BidirectionalIterator, typename _Distance>
8453     inline void
8454     __advance(_BidirectionalIterator& __i, _Distance __n,
8455               bidirectional_iterator_tag)
8456     {
8457
8458      
8459
8460       if (__n > 0)
8461         while (__n--)
8462    ++__i;
8463       else
8464         while (__n++)
8465    --__i;
8466     }
8467
8468   template<typename _RandomAccessIterator, typename _Distance>
8469     inline void
8470     __advance(_RandomAccessIterator& __i, _Distance __n,
8471               random_access_iterator_tag)
8472     {
8473
8474      
8475
8476       __i += __n;
8477     }
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>
8480     inline void
8481     advance(_InputIterator& __i, _Distance __n)
8482     {
8483
8484       std::__advance(__i, __n, std::__iterator_category(__i));
8485     }
8486 }
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
8490 namespace std
8491 {
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>
8500     {
8501     protected:
8502       _Iterator current;
8503
8504     public:
8505       typedef _Iterator iterator_type;
8506       typedef typename iterator_traits<_Iterator>::difference_type
8507               difference_type;
8508       typedef typename iterator_traits<_Iterator>::reference reference;
8509       typedef typename iterator_traits<_Iterator>::pointer pointer;
8510
8511     public:
8512
8513
8514
8515
8516
8517
8518       reverse_iterator() : current() { }
8519
8520
8521
8522
8523       explicit
8524       reverse_iterator(iterator_type __x) : current(__x) { }
8525
8526
8527
8528
8529       reverse_iterator(const reverse_iterator& __x)
8530       : current(__x.current) { }
8531
8532
8533
8534
8535
8536       template<typename _Iter>
8537         reverse_iterator(const reverse_iterator<_Iter>& __x)
8538  : current(__x.base()) { }
8539
8540
8541
8542
8543       iterator_type
8544       base() const
8545       { return current; }
8546
8547
8548
8549
8550
8551
8552       reference
8553       operator*() const
8554       {
8555  _Iterator __tmp = current;
8556  return *--__tmp;
8557       }
8558
8559
8560
8561
8562
8563
8564       pointer
8565       operator->() const
8566       { return &(operator*()); }
8567
8568
8569
8570
8571
8572
8573       reverse_iterator&
8574       operator++()
8575       {
8576  --current;
8577  return *this;
8578       }
8579
8580
8581
8582
8583
8584
8585       reverse_iterator
8586       operator++(int)
8587       {
8588  reverse_iterator __tmp = *this;
8589  --current;
8590  return __tmp;
8591       }
8592
8593
8594
8595
8596
8597
8598       reverse_iterator&
8599       operator--()
8600       {
8601  ++current;
8602  return *this;
8603       }
8604
8605
8606
8607
8608
8609
8610       reverse_iterator
8611       operator--(int)
8612       {
8613  reverse_iterator __tmp = *this;
8614  ++current;
8615  return __tmp;
8616       }
8617
8618
8619
8620
8621
8622
8623       reverse_iterator
8624       operator+(difference_type __n) const
8625       { return reverse_iterator(current - __n); }
8626
8627
8628
8629
8630
8631
8632       reverse_iterator&
8633       operator+=(difference_type __n)
8634       {
8635  current -= __n;
8636  return *this;
8637       }
8638
8639
8640
8641
8642
8643
8644       reverse_iterator
8645       operator-(difference_type __n) const
8646       { return reverse_iterator(current + __n); }
8647
8648
8649
8650
8651
8652
8653       reverse_iterator&
8654       operator-=(difference_type __n)
8655       {
8656  current += __n;
8657  return *this;
8658       }
8659
8660
8661
8662
8663
8664
8665       reference
8666       operator[](difference_type __n) const
8667       { return *(*this + __n); }
8668     };
8669 # 278 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_iterator.h" 3
8670   template<typename _Iterator>
8671     inline bool
8672     operator==(const reverse_iterator<_Iterator>& __x,
8673         const reverse_iterator<_Iterator>& __y)
8674     { return __x.base() == __y.base(); }
8675
8676   template<typename _Iterator>
8677     inline bool
8678     operator<(const reverse_iterator<_Iterator>& __x,
8679        const reverse_iterator<_Iterator>& __y)
8680     { return __y.base() < __x.base(); }
8681
8682   template<typename _Iterator>
8683     inline bool
8684     operator!=(const reverse_iterator<_Iterator>& __x,
8685         const reverse_iterator<_Iterator>& __y)
8686     { return !(__x == __y); }
8687
8688   template<typename _Iterator>
8689     inline bool
8690     operator>(const reverse_iterator<_Iterator>& __x,
8691        const reverse_iterator<_Iterator>& __y)
8692     { return __y < __x; }
8693
8694   template<typename _Iterator>
8695     inline bool
8696     operator<=(const reverse_iterator<_Iterator>& __x,
8697         const reverse_iterator<_Iterator>& __y)
8698     { return !(__y < __x); }
8699
8700   template<typename _Iterator>
8701     inline bool
8702     operator>=(const reverse_iterator<_Iterator>& __x,
8703         const reverse_iterator<_Iterator>& __y)
8704     { return !(__x < __y); }
8705
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(); }
8711
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); }
8717
8718
8719
8720   template<typename _IteratorL, typename _IteratorR>
8721     inline bool
8722     operator==(const reverse_iterator<_IteratorL>& __x,
8723         const reverse_iterator<_IteratorR>& __y)
8724     { return __x.base() == __y.base(); }
8725
8726   template<typename _IteratorL, typename _IteratorR>
8727     inline bool
8728     operator<(const reverse_iterator<_IteratorL>& __x,
8729        const reverse_iterator<_IteratorR>& __y)
8730     { return __y.base() < __x.base(); }
8731
8732   template<typename _IteratorL, typename _IteratorR>
8733     inline bool
8734     operator!=(const reverse_iterator<_IteratorL>& __x,
8735         const reverse_iterator<_IteratorR>& __y)
8736     { return !(__x == __y); }
8737
8738   template<typename _IteratorL, typename _IteratorR>
8739     inline bool
8740     operator>(const reverse_iterator<_IteratorL>& __x,
8741        const reverse_iterator<_IteratorR>& __y)
8742     { return __y < __x; }
8743
8744   template<typename _IteratorL, typename _IteratorR>
8745     inline bool
8746     operator<=(const reverse_iterator<_IteratorL>& __x,
8747         const reverse_iterator<_IteratorR>& __y)
8748     { return !(__y < __x); }
8749
8750   template<typename _IteratorL, typename _IteratorR>
8751     inline bool
8752     operator>=(const reverse_iterator<_IteratorL>& __x,
8753         const reverse_iterator<_IteratorR>& __y)
8754     { return !(__x < __y); }
8755
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>
8765     {
8766     protected:
8767       _Container* container;
8768
8769     public:
8770
8771       typedef _Container container_type;
8772
8773
8774       explicit
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)
8779       {
8780  container->push_back(__value);
8781  return *this;
8782       }
8783
8784
8785       back_insert_iterator&
8786       operator*()
8787       { return *this; }
8788
8789
8790       back_insert_iterator&
8791       operator++()
8792       { return *this; }
8793
8794
8795       back_insert_iterator
8796       operator++(int)
8797       { return *this; }
8798     };
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>
8808     {
8809     protected:
8810       _Container* container;
8811
8812     public:
8813
8814       typedef _Container container_type;
8815
8816
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)
8821       {
8822  container->push_front(__value);
8823  return *this;
8824       }
8825
8826
8827       front_insert_iterator&
8828       operator*()
8829       { return *this; }
8830
8831
8832       front_insert_iterator&
8833       operator++()
8834       { return *this; }
8835
8836
8837       front_insert_iterator
8838       operator++(int)
8839       { return *this; }
8840     };
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>
8850     {
8851     protected:
8852       _Container* container;
8853       typename _Container::iterator iter;
8854
8855     public:
8856
8857       typedef _Container container_type;
8858
8859
8860
8861
8862
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
8866       insert_iterator&
8867       operator=(const typename _Container::const_reference __value)
8868       {
8869  iter = container->insert(iter, __value);
8870  ++iter;
8871  return *this;
8872       }
8873
8874
8875       insert_iterator&
8876       operator*()
8877       { return *this; }
8878
8879
8880       insert_iterator&
8881       operator++()
8882       { return *this; }
8883
8884
8885       insert_iterator&
8886       operator++(int)
8887       { return *this; }
8888     };
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)
8893     {
8894       return insert_iterator<_Container>(__x,
8895       typename _Container::iterator(__i));
8896     }
8897 }
8898
8899 namespace __gnu_cxx
8900 {
8901
8902
8903
8904
8905
8906
8907
8908   using std::iterator_traits;
8909   using std::iterator;
8910   template<typename _Iterator, typename _Container>
8911     class __normal_iterator
8912     {
8913     protected:
8914       _Iterator _M_current;
8915
8916     public:
8917       typedef typename iterator_traits<_Iterator>::iterator_category
8918                                                              iterator_category;
8919       typedef typename iterator_traits<_Iterator>::value_type value_type;
8920       typedef typename iterator_traits<_Iterator>::difference_type
8921                                                              difference_type;
8922       typedef typename iterator_traits<_Iterator>::reference reference;
8923       typedef typename iterator_traits<_Iterator>::pointer pointer;
8924
8925       __normal_iterator() : _M_current(_Iterator()) { }
8926
8927       explicit
8928       __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
8929
8930
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)
8936      >::__type>& __i)
8937         : _M_current(__i.base()) { }
8938
8939
8940       reference
8941       operator*() const
8942       { return *_M_current; }
8943
8944       pointer
8945       operator->() const
8946       { return _M_current; }
8947
8948       __normal_iterator&
8949       operator++()
8950       {
8951  ++_M_current;
8952  return *this;
8953       }
8954
8955       __normal_iterator
8956       operator++(int)
8957       { return __normal_iterator(_M_current++); }
8958
8959
8960       __normal_iterator&
8961       operator--()
8962       {
8963  --_M_current;
8964  return *this;
8965       }
8966
8967       __normal_iterator
8968       operator--(int)
8969       { return __normal_iterator(_M_current--); }
8970
8971
8972       reference
8973       operator[](const difference_type& __n) const
8974       { return _M_current[__n]; }
8975
8976       __normal_iterator&
8977       operator+=(const difference_type& __n)
8978       { _M_current += __n; return *this; }
8979
8980       __normal_iterator
8981       operator+(const difference_type& __n) const
8982       { return __normal_iterator(_M_current + __n); }
8983
8984       __normal_iterator&
8985       operator-=(const difference_type& __n)
8986       { _M_current -= __n; return *this; }
8987
8988       __normal_iterator
8989       operator-(const difference_type& __n) const
8990       { return __normal_iterator(_M_current - __n); }
8991
8992       const _Iterator&
8993       base() const
8994       { return _M_current; }
8995     };
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>
8998     inline bool
8999     operator==(const __normal_iterator<_IteratorL, _Container>& __lhs,
9000         const __normal_iterator<_IteratorR, _Container>& __rhs)
9001     { return __lhs.base() == __rhs.base(); }
9002
9003   template<typename _Iterator, typename _Container>
9004     inline bool
9005     operator==(const __normal_iterator<_Iterator, _Container>& __lhs,
9006         const __normal_iterator<_Iterator, _Container>& __rhs)
9007     { return __lhs.base() == __rhs.base(); }
9008
9009   template<typename _IteratorL, typename _IteratorR, typename _Container>
9010     inline bool
9011     operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9012         const __normal_iterator<_IteratorR, _Container>& __rhs)
9013     { return __lhs.base() != __rhs.base(); }
9014
9015   template<typename _Iterator, typename _Container>
9016     inline bool
9017     operator!=(const __normal_iterator<_Iterator, _Container>& __lhs,
9018         const __normal_iterator<_Iterator, _Container>& __rhs)
9019     { return __lhs.base() != __rhs.base(); }
9020
9021
9022   template<typename _IteratorL, typename _IteratorR, typename _Container>
9023     inline bool
9024     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
9025        const __normal_iterator<_IteratorR, _Container>& __rhs)
9026     { return __lhs.base() < __rhs.base(); }
9027
9028   template<typename _Iterator, typename _Container>
9029     inline bool
9030     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
9031        const __normal_iterator<_Iterator, _Container>& __rhs)
9032     { return __lhs.base() < __rhs.base(); }
9033
9034   template<typename _IteratorL, typename _IteratorR, typename _Container>
9035     inline bool
9036     operator>(const __normal_iterator<_IteratorL, _Container>& __lhs,
9037        const __normal_iterator<_IteratorR, _Container>& __rhs)
9038     { return __lhs.base() > __rhs.base(); }
9039
9040   template<typename _Iterator, typename _Container>
9041     inline bool
9042     operator>(const __normal_iterator<_Iterator, _Container>& __lhs,
9043        const __normal_iterator<_Iterator, _Container>& __rhs)
9044     { return __lhs.base() > __rhs.base(); }
9045
9046   template<typename _IteratorL, typename _IteratorR, typename _Container>
9047     inline bool
9048     operator<=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9049         const __normal_iterator<_IteratorR, _Container>& __rhs)
9050     { return __lhs.base() <= __rhs.base(); }
9051
9052   template<typename _Iterator, typename _Container>
9053     inline bool
9054     operator<=(const __normal_iterator<_Iterator, _Container>& __lhs,
9055         const __normal_iterator<_Iterator, _Container>& __rhs)
9056     { return __lhs.base() <= __rhs.base(); }
9057
9058   template<typename _IteratorL, typename _IteratorR, typename _Container>
9059     inline bool
9060     operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs,
9061         const __normal_iterator<_IteratorR, _Container>& __rhs)
9062     { return __lhs.base() >= __rhs.base(); }
9063
9064   template<typename _Iterator, typename _Container>
9065     inline bool
9066     operator>=(const __normal_iterator<_Iterator, _Container>& __lhs,
9067         const __normal_iterator<_Iterator, _Container>& __rhs)
9068     { return __lhs.base() >= __rhs.base(); }
9069
9070
9071
9072
9073
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(); }
9079
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); }
9085 }
9086 # 75 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 2 3
9087
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
9090
9091 namespace std
9092 {
9093 # 90 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9094   template<typename _Tp>
9095     inline void
9096     swap(_Tp& __a, _Tp& __b)
9097     {
9098
9099      
9100
9101       _Tp __tmp = __a;
9102       __a = __b;
9103       __b = __tmp;
9104     }
9105
9106
9107
9108
9109   template<bool _BoolType>
9110     struct __iter_swap
9111     {
9112       template<typename _ForwardIterator1, typename _ForwardIterator2>
9113         static void
9114         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9115         {
9116           typedef typename iterator_traits<_ForwardIterator1>::value_type
9117             _ValueType1;
9118           _ValueType1 __tmp = *__a;
9119           *__a = *__b;
9120           *__b = __tmp;
9121  }
9122     };
9123
9124   template<>
9125     struct __iter_swap<true>
9126     {
9127       template<typename _ForwardIterator1, typename _ForwardIterator2>
9128         static void
9129         iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9130         {
9131           swap(*__a, *__b);
9132         }
9133     };
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>
9136     inline void
9137     iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
9138     {
9139       typedef typename iterator_traits<_ForwardIterator1>::value_type
9140  _ValueType1;
9141       typedef typename iterator_traits<_ForwardIterator2>::value_type
9142  _ValueType2;
9143
9144
9145      
9146
9147      
9148
9149      
9150
9151      
9152
9153
9154       typedef typename iterator_traits<_ForwardIterator1>::reference
9155  _ReferenceType1;
9156       typedef typename iterator_traits<_ForwardIterator2>::reference
9157  _ReferenceType2;
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);
9162     }
9163 # 182 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9164   template<typename _Tp>
9165     inline const _Tp&
9166     min(const _Tp& __a, const _Tp& __b)
9167     {
9168
9169      
9170
9171       if (__b < __a)
9172  return __b;
9173       return __a;
9174     }
9175 # 204 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algobase.h" 3
9176   template<typename _Tp>
9177     inline const _Tp&
9178     max(const _Tp& __a, const _Tp& __b)
9179     {
9180
9181      
9182
9183       if (__a < __b)
9184  return __b;
9185       return __a;
9186     }
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>
9189     inline const _Tp&
9190     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
9191     {
9192
9193       if (__comp(__b, __a))
9194  return __b;
9195       return __a;
9196     }
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>
9199     inline const _Tp&
9200     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
9201     {
9202
9203       if (__comp(__a, __b))
9204  return __b;
9205       return __a;
9206     }
9207
9208
9209
9210
9211
9212
9213
9214   template<bool, typename>
9215     struct __copy
9216     {
9217       template<typename _II, typename _OI>
9218         static _OI
9219         copy(_II __first, _II __last, _OI __result)
9220         {
9221    for (; __first != __last; ++__result, ++__first)
9222      *__result = *__first;
9223    return __result;
9224  }
9225     };
9226
9227   template<bool _BoolType>
9228     struct __copy<_BoolType, random_access_iterator_tag>
9229     {
9230       template<typename _II, typename _OI>
9231         static _OI
9232         copy(_II __first, _II __last, _OI __result)
9233         {
9234    typedef typename iterator_traits<_II>::difference_type _Distance;
9235    for(_Distance __n = __last - __first; __n > 0; --__n)
9236      {
9237        *__result = *__first;
9238        ++__first;
9239        ++__result;
9240      }
9241    return __result;
9242  }
9243     };
9244
9245   template<>
9246     struct __copy<true, random_access_iterator_tag>
9247     {
9248       template<typename _Tp>
9249         static _Tp*
9250         copy(const _Tp* __first, const _Tp* __last, _Tp* __result)
9251         {
9252    std::memmove(__result, __first, sizeof(_Tp) * (__last - __first));
9253    return __result + (__last - __first);
9254  }
9255     };
9256
9257   template<typename _II, typename _OI>
9258     inline _OI
9259     __copy_aux(_II __first, _II __last, _OI __result)
9260     {
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);
9268
9269       return std::__copy<__simple, _Category>::copy(__first, __last, __result);
9270     }
9271
9272   template<bool, bool>
9273     struct __copy_normal
9274     {
9275       template<typename _II, typename _OI>
9276         static _OI
9277         copy_n(_II __first, _II __last, _OI __result)
9278         { return std::__copy_aux(__first, __last, __result); }
9279     };
9280
9281   template<>
9282     struct __copy_normal<true, false>
9283     {
9284       template<typename _II, typename _OI>
9285         static _OI
9286         copy_n(_II __first, _II __last, _OI __result)
9287         { return std::__copy_aux(__first.base(), __last.base(), __result); }
9288     };
9289
9290   template<>
9291     struct __copy_normal<false, true>
9292     {
9293       template<typename _II, typename _OI>
9294         static _OI
9295         copy_n(_II __first, _II __last, _OI __result)
9296         { return _OI(std::__copy_aux(__first, __last, __result.base())); }
9297     };
9298
9299   template<>
9300     struct __copy_normal<true, true>
9301     {
9302       template<typename _II, typename _OI>
9303         static _OI
9304         copy_n(_II __first, _II __last, _OI __result)
9305         { return _OI(std::__copy_aux(__first.base(), __last.base(),
9306          __result.base())); }
9307     };
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)
9313     {
9314
9315      
9316      
9317
9318       ;
9319
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,
9323             __result);
9324     }
9325
9326   template<bool, typename>
9327     struct __copy_backward
9328     {
9329       template<typename _BI1, typename _BI2>
9330         static _BI2
9331         copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
9332         {
9333    while (__first != __last)
9334      *--__result = *--__last;
9335    return __result;
9336  }
9337     };
9338
9339   template<bool _BoolType>
9340     struct __copy_backward<_BoolType, random_access_iterator_tag>
9341     {
9342       template<typename _BI1, typename _BI2>
9343         static _BI2
9344         copy_b(_BI1 __first, _BI1 __last, _BI2 __result)
9345         {
9346    typename iterator_traits<_BI1>::difference_type __n;
9347    for (__n = __last - __first; __n > 0; --__n)
9348      *--__result = *--__last;
9349    return __result;
9350  }
9351     };
9352
9353   template<>
9354     struct __copy_backward<true, random_access_iterator_tag>
9355     {
9356       template<typename _Tp>
9357         static _Tp*
9358         copy_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
9359         {
9360    const ptrdiff_t _Num = __last - __first;
9361    std::memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
9362    return __result - _Num;
9363  }
9364     };
9365
9366   template<typename _BI1, typename _BI2>
9367     inline _BI2
9368     __copy_backward_aux(_BI1 __first, _BI1 __last, _BI2 __result)
9369     {
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);
9377
9378       return std::__copy_backward<__simple, _Category>::copy_b(__first, __last,
9379               __result);
9380     }
9381
9382   template<bool, bool>
9383     struct __copy_backward_normal
9384     {
9385       template<typename _BI1, typename _BI2>
9386         static _BI2
9387         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9388         { return std::__copy_backward_aux(__first, __last, __result); }
9389     };
9390
9391   template<>
9392     struct __copy_backward_normal<true, false>
9393     {
9394       template<typename _BI1, typename _BI2>
9395         static _BI2
9396         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9397         { return std::__copy_backward_aux(__first.base(), __last.base(),
9398        __result); }
9399     };
9400
9401   template<>
9402     struct __copy_backward_normal<false, true>
9403     {
9404       template<typename _BI1, typename _BI2>
9405         static _BI2
9406         copy_b_n(_BI1 __first, _BI1 __last, _BI2 __result)
9407         { return _BI2(std::__copy_backward_aux(__first, __last,
9408             __result.base())); }
9409     };
9410
9411   template<>
9412     struct __copy_backward_normal<true, true>
9413     {
9414       template<typename _BI1, typename _BI2>
9415         static _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())); }
9419     };
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>
9422     inline _BI2
9423     copy_backward(_BI1 __first, _BI1 __last, _BI2 __result)
9424     {
9425
9426      
9427      
9428      
9429
9430
9431       ;
9432
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,
9436          __result);
9437     }
9438
9439   template<bool>
9440     struct __fill
9441     {
9442       template<typename _ForwardIterator, typename _Tp>
9443         static void
9444         fill(_ForwardIterator __first, _ForwardIterator __last,
9445       const _Tp& __value)
9446         {
9447    for (; __first != __last; ++__first)
9448      *__first = __value;
9449  }
9450     };
9451
9452   template<>
9453     struct __fill<true>
9454     {
9455       template<typename _ForwardIterator, typename _Tp>
9456         static void
9457         fill(_ForwardIterator __first, _ForwardIterator __last,
9458       const _Tp& __value)
9459         {
9460    const _Tp __tmp = __value;
9461    for (; __first != __last; ++__first)
9462      *__first = __tmp;
9463  }
9464     };
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>
9467     void
9468     fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)
9469     {
9470
9471      
9472
9473       ;
9474
9475       const bool __scalar = __is_scalar<_Tp>::__value;
9476       std::__fill<__scalar>::fill(__first, __last, __value);
9477     }
9478
9479
9480   inline void
9481   fill(unsigned char* __first, unsigned char* __last, const unsigned char& __c)
9482   {
9483     ;
9484     const unsigned char __tmp = __c;
9485     std::memset(__first, __tmp, __last - __first);
9486   }
9487
9488   inline void
9489   fill(signed char* __first, signed char* __last, const signed char& __c)
9490   {
9491     ;
9492     const signed char __tmp = __c;
9493     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9494   }
9495
9496   inline void
9497   fill(char* __first, char* __last, const char& __c)
9498   {
9499     ;
9500     const char __tmp = __c;
9501     std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
9502   }
9503
9504   template<bool>
9505     struct __fill_n
9506     {
9507       template<typename _OutputIterator, typename _Size, typename _Tp>
9508         static _OutputIterator
9509         fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9510         {
9511    for (; __n > 0; --__n, ++__first)
9512      *__first = __value;
9513    return __first;
9514  }
9515     };
9516
9517   template<>
9518     struct __fill_n<true>
9519     {
9520       template<typename _OutputIterator, typename _Size, typename _Tp>
9521         static _OutputIterator
9522         fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9523         {
9524    const _Tp __tmp = __value;
9525    for (; __n > 0; --__n, ++__first)
9526      *__first = __tmp;
9527    return __first;
9528  }
9529     };
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>
9532     _OutputIterator
9533     fill_n(_OutputIterator __first, _Size __n, const _Tp& __value)
9534     {
9535
9536      
9537
9538       const bool __scalar = __is_scalar<_Tp>::__value;
9539       return std::__fill_n<__scalar>::fill_n(__first, __n, __value);
9540     }
9541
9542   template<typename _Size>
9543     inline unsigned char*
9544     fill_n(unsigned char* __first, _Size __n, const unsigned char& __c)
9545     {
9546       std::fill(__first, __first + __n, __c);
9547       return __first + __n;
9548     }
9549
9550   template<typename _Size>
9551     inline signed char*
9552     fill_n(char* __first, _Size __n, const signed char& __c)
9553     {
9554       std::fill(__first, __first + __n, __c);
9555       return __first + __n;
9556     }
9557
9558   template<typename _Size>
9559     inline char*
9560     fill_n(char* __first, _Size __n, const char& __c)
9561     {
9562       std::fill(__first, __first + __n, __c);
9563       return __first + __n;
9564     }
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)
9570     {
9571
9572      
9573      
9574      
9575
9576
9577       ;
9578
9579       while (__first1 != __last1 && *__first1 == *__first2)
9580         {
9581    ++__first1;
9582    ++__first2;
9583         }
9584       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9585     }
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)
9592     {
9593
9594      
9595      
9596       ;
9597
9598       while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
9599         {
9600    ++__first1;
9601    ++__first2;
9602         }
9603       return pair<_InputIterator1, _InputIterator2>(__first1, __first2);
9604     }
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>
9607     inline bool
9608     equal(_InputIterator1 __first1, _InputIterator1 __last1,
9609    _InputIterator2 __first2)
9610     {
9611
9612      
9613      
9614      
9615
9616
9617       ;
9618
9619       for (; __first1 != __last1; ++__first1, ++__first2)
9620  if (!(*__first1 == *__first2))
9621    return false;
9622       return true;
9623     }
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>
9627     inline bool
9628     equal(_InputIterator1 __first1, _InputIterator1 __last1,
9629    _InputIterator2 __first2,
9630    _BinaryPredicate __binary_pred)
9631     {
9632
9633      
9634      
9635       ;
9636
9637       for (; __first1 != __last1; ++__first1, ++__first2)
9638  if (!__binary_pred(*__first1, *__first2))
9639    return false;
9640       return true;
9641     }
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>
9644     bool
9645     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9646        _InputIterator2 __first2, _InputIterator2 __last2)
9647     {
9648
9649      
9650      
9651      
9652
9653
9654      
9655
9656
9657       ;
9658       ;
9659
9660       for (; __first1 != __last1 && __first2 != __last2;
9661     ++__first1, ++__first2)
9662  {
9663    if (*__first1 < *__first2)
9664      return true;
9665    if (*__first2 < *__first1)
9666      return false;
9667  }
9668       return __first1 == __last1 && __first2 != __last2;
9669     }
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,
9672     typename _Compare>
9673     bool
9674     lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,
9675        _InputIterator2 __first2, _InputIterator2 __last2,
9676        _Compare __comp)
9677     {
9678
9679      
9680      
9681       ;
9682       ;
9683
9684       for (; __first1 != __last1 && __first2 != __last2;
9685     ++__first1, ++__first2)
9686  {
9687    if (__comp(*__first1, *__first2))
9688      return true;
9689    if (__comp(*__first2, *__first1))
9690      return false;
9691  }
9692       return __first1 == __last1 && __first2 != __last2;
9693     }
9694
9695   inline bool
9696   lexicographical_compare(const unsigned char* __first1,
9697      const unsigned char* __last1,
9698      const unsigned char* __first2,
9699      const unsigned char* __last2)
9700   {
9701     ;
9702     ;
9703
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;
9709   }
9710
9711   inline bool
9712   lexicographical_compare(const char* __first1, const char* __last1,
9713      const char* __first2, const char* __last2)
9714   {
9715     ;
9716     ;
9717
9718
9719     return std::lexicographical_compare((const signed char*) __first1,
9720      (const signed char*) __last1,
9721      (const signed char*) __first2,
9722      (const signed char*) __last2);
9723
9724
9725
9726
9727
9728
9729   }
9730
9731 }
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)
9740
9741 extern "C++" {
9742
9743 namespace std
9744 {
9745 # 54 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9746   class exception
9747   {
9748   public:
9749     exception() throw() { }
9750     virtual ~exception() throw();
9751
9752
9753     virtual const char* what() const throw();
9754   };
9755
9756
9757
9758   class bad_exception : public exception
9759   {
9760   public:
9761     bad_exception() throw() { }
9762
9763
9764     virtual ~bad_exception() throw();
9765   };
9766
9767
9768   typedef void (*terminate_handler) ();
9769
9770   typedef void (*unexpected_handler) ();
9771
9772
9773   terminate_handler set_terminate(terminate_handler) throw();
9774
9775
9776   void terminate() __attribute__ ((__noreturn__));
9777
9778
9779   unexpected_handler set_unexpected(unexpected_handler) throw();
9780
9781
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();
9785 }
9786
9787 namespace __gnu_cxx
9788 {
9789 # 117 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/exception" 3
9790   void __verbose_terminate_handler ();
9791 }
9792
9793 }
9794
9795 #pragma GCC visibility pop
9796 # 43 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/new" 2 3
9797
9798 #pragma GCC visibility push(default)
9799
9800 extern "C++" {
9801
9802 namespace std
9803 {
9804
9805
9806
9807
9808
9809   class bad_alloc : public exception
9810   {
9811   public:
9812     bad_alloc() throw() { }
9813
9814
9815     virtual ~bad_alloc() throw();
9816   };
9817
9818   struct nothrow_t { };
9819   extern const nothrow_t nothrow;
9820
9821
9822   typedef void (*new_handler)();
9823
9824   new_handler set_new_handler(new_handler) throw();
9825 }
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();
9835
9836
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; }
9839
9840
9841 inline void operator delete (void*, void*) throw() { }
9842 inline void operator delete[](void*, void*) throw() { }
9843
9844 }
9845
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
9848
9849 namespace std
9850 {
9851
9852
9853
9854
9855
9856
9857   template<typename _T1, typename _T2>
9858     inline void
9859     _Construct(_T1* __p, const _T2& __value)
9860     {
9861
9862
9863       ::new(static_cast<void*>(__p)) _T1(__value);
9864     }
9865
9866
9867
9868
9869
9870
9871
9872   template<typename _T1>
9873     inline void
9874     _Construct(_T1* __p)
9875     {
9876
9877
9878       ::new(static_cast<void*>(__p)) _T1();
9879     }
9880
9881
9882
9883
9884
9885
9886   template<typename _Tp>
9887     inline void
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>
9892     inline void
9893     __destroy_aux(_ForwardIterator __first, _ForwardIterator __last,
9894     __false_type)
9895     {
9896       for (; __first != __last; ++__first)
9897  std::_Destroy(&*__first);
9898     }
9899 # 134 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9900   template<typename _ForwardIterator>
9901     inline void
9902     __destroy_aux(_ForwardIterator, _ForwardIterator, __true_type)
9903     { }
9904 # 146 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_construct.h" 3
9905   template<typename _ForwardIterator>
9906     inline void
9907     _Destroy(_ForwardIterator __first, _ForwardIterator __last)
9908     {
9909       typedef typename iterator_traits<_ForwardIterator>::value_type
9910                        _Value_type;
9911       typedef typename std::__is_scalar<_Value_type>::__type
9912                 _Has_trivial_destructor;
9913
9914       std::__destroy_aux(__first, __last, _Has_trivial_destructor());
9915     }
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;
9918
9919   template<typename _ForwardIterator, typename _Allocator>
9920     void
9921     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
9922       _Allocator __alloc)
9923     {
9924       for (; __first != __last; ++__first)
9925  __alloc.destroy(&*__first);
9926     }
9927
9928   template<typename _ForwardIterator, typename _Tp>
9929     inline void
9930     _Destroy(_ForwardIterator __first, _ForwardIterator __last,
9931       allocator<_Tp>)
9932     {
9933       _Destroy(__first, __last);
9934     }
9935
9936
9937 }
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
9941 namespace std
9942 {
9943
9944   template<typename _InputIterator, typename _ForwardIterator>
9945     inline _ForwardIterator
9946     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
9947         _ForwardIterator __result,
9948         __true_type)
9949     { return std::copy(__first, __last, __result); }
9950
9951   template<typename _InputIterator, typename _ForwardIterator>
9952     inline _ForwardIterator
9953     __uninitialized_copy_aux(_InputIterator __first, _InputIterator __last,
9954         _ForwardIterator __result,
9955         __false_type)
9956     {
9957       _ForwardIterator __cur = __result;
9958       try
9959  {
9960    for (; __first != __last; ++__first, ++__cur)
9961      std::_Construct(&*__cur, *__first);
9962    return __cur;
9963  }
9964       catch(...)
9965  {
9966    std::_Destroy(__result, __cur);
9967    throw;
9968  }
9969     }
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)
9975     {
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,
9979         _Is_POD());
9980     }
9981
9982   inline char*
9983   uninitialized_copy(const char* __first, const char* __last, char* __result)
9984   {
9985     std::memmove(__result, __first, __last - __first);
9986     return __result + (__last - __first);
9987   }
9988
9989   inline wchar_t*
9990   uninitialized_copy(const wchar_t* __first, const wchar_t* __last,
9991        wchar_t* __result)
9992   {
9993     std::memmove(__result, __first, sizeof(wchar_t) * (__last - __first));
9994     return __result + (__last - __first);
9995   }
9996
9997
9998
9999   template<typename _ForwardIterator, typename _Tp>
10000     inline void
10001     __uninitialized_fill_aux(_ForwardIterator __first,
10002         _ForwardIterator __last,
10003         const _Tp& __x, __true_type)
10004     { std::fill(__first, __last, __x); }
10005
10006   template<typename _ForwardIterator, typename _Tp>
10007     void
10008     __uninitialized_fill_aux(_ForwardIterator __first, _ForwardIterator __last,
10009         const _Tp& __x, __false_type)
10010     {
10011       _ForwardIterator __cur = __first;
10012       try
10013  {
10014    for (; __cur != __last; ++__cur)
10015      std::_Construct(&*__cur, __x);
10016  }
10017       catch(...)
10018  {
10019    std::_Destroy(__first, __cur);
10020    throw;
10021  }
10022     }
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>
10025     inline void
10026     uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
10027          const _Tp& __x)
10028     {
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());
10032     }
10033
10034
10035
10036   template<typename _ForwardIterator, typename _Size, typename _Tp>
10037     inline void
10038     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10039           const _Tp& __x, __true_type)
10040     { std::fill_n(__first, __n, __x); }
10041
10042   template<typename _ForwardIterator, typename _Size, typename _Tp>
10043     void
10044     __uninitialized_fill_n_aux(_ForwardIterator __first, _Size __n,
10045           const _Tp& __x, __false_type)
10046     {
10047       _ForwardIterator __cur = __first;
10048       try
10049  {
10050    for (; __n > 0; --__n, ++__cur)
10051      std::_Construct(&*__cur, __x);
10052  }
10053       catch(...)
10054  {
10055    std::_Destroy(__first, __cur);
10056    throw;
10057  }
10058     }
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>
10061     inline void
10062     uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
10063     {
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());
10067     }
10068
10069
10070
10071
10072
10073
10074
10075   template<typename _InputIterator, typename _ForwardIterator,
10076     typename _Allocator>
10077     _ForwardIterator
10078     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10079       _ForwardIterator __result,
10080       _Allocator __alloc)
10081     {
10082       _ForwardIterator __cur = __result;
10083       try
10084  {
10085    for (; __first != __last; ++__first, ++__cur)
10086      __alloc.construct(&*__cur, *__first);
10087    return __cur;
10088  }
10089       catch(...)
10090  {
10091    std::_Destroy(__result, __cur, __alloc);
10092    throw;
10093  }
10094     }
10095
10096   template<typename _InputIterator, typename _ForwardIterator, typename _Tp>
10097     inline _ForwardIterator
10098     __uninitialized_copy_a(_InputIterator __first, _InputIterator __last,
10099       _ForwardIterator __result,
10100       allocator<_Tp>)
10101     {
10102       return std::uninitialized_copy(__first, __last, __result);
10103     }
10104
10105   template<typename _ForwardIterator, typename _Tp, typename _Allocator>
10106     void
10107     __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10108       const _Tp& __x, _Allocator __alloc)
10109     {
10110       _ForwardIterator __cur = __first;
10111       try
10112  {
10113    for (; __cur != __last; ++__cur)
10114      __alloc.construct(&*__cur, __x);
10115  }
10116       catch(...)
10117  {
10118    std::_Destroy(__first, __cur, __alloc);
10119    throw;
10120  }
10121     }
10122
10123   template<typename _ForwardIterator, typename _Tp, typename _Tp2>
10124     inline void
10125     __uninitialized_fill_a(_ForwardIterator __first, _ForwardIterator __last,
10126       const _Tp& __x, allocator<_Tp2>)
10127     {
10128       std::uninitialized_fill(__first, __last, __x);
10129     }
10130
10131   template<typename _ForwardIterator, typename _Size, typename _Tp,
10132     typename _Allocator>
10133     void
10134     __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
10135         const _Tp& __x,
10136         _Allocator __alloc)
10137     {
10138       _ForwardIterator __cur = __first;
10139       try
10140  {
10141    for (; __n > 0; --__n, ++__cur)
10142      __alloc.construct(&*__cur, __x);
10143  }
10144       catch(...)
10145  {
10146    std::_Destroy(__first, __cur, __alloc);
10147    throw;
10148  }
10149     }
10150
10151   template<typename _ForwardIterator, typename _Size, typename _Tp,
10152     typename _Tp2>
10153     void
10154     __uninitialized_fill_n_a(_ForwardIterator __first, _Size __n,
10155         const _Tp& __x,
10156         allocator<_Tp2>)
10157     {
10158       std::uninitialized_fill_n(__first, __n, __x);
10159     }
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)
10170     {
10171       _ForwardIterator __mid = std::__uninitialized_copy_a(__first1, __last1,
10172           __result,
10173           __alloc);
10174       try
10175  {
10176    return std::__uninitialized_copy_a(__first2, __last2, __mid, __alloc);
10177  }
10178       catch(...)
10179  {
10180    std::_Destroy(__result, __mid, __alloc);
10181    throw;
10182  }
10183     }
10184
10185
10186
10187
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)
10195     {
10196       std::__uninitialized_fill_a(__result, __mid, __x, __alloc);
10197       try
10198  {
10199    return std::__uninitialized_copy_a(__first, __last, __mid, __alloc);
10200  }
10201       catch(...)
10202  {
10203    std::_Destroy(__result, __mid, __alloc);
10204    throw;
10205  }
10206     }
10207
10208
10209
10210
10211   template<typename _InputIterator, typename _ForwardIterator, typename _Tp,
10212     typename _Allocator>
10213     inline void
10214     __uninitialized_copy_fill(_InputIterator __first1, _InputIterator __last1,
10215          _ForwardIterator __first2,
10216          _ForwardIterator __last2, const _Tp& __x,
10217          _Allocator __alloc)
10218     {
10219       _ForwardIterator __mid2 = std::__uninitialized_copy_a(__first1, __last1,
10220            __first2,
10221            __alloc);
10222       try
10223  {
10224    std::__uninitialized_fill_a(__mid2, __last2, __x, __alloc);
10225  }
10226       catch(...)
10227  {
10228    std::_Destroy(__first2, __mid2, __alloc);
10229    throw;
10230  }
10231     }
10232
10233 }
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
10239 namespace std
10240 {
10241
10242
10243
10244   template<typename _RandomAccessIterator, typename _Distance>
10245     bool
10246     __is_heap(_RandomAccessIterator __first, _Distance __n)
10247     {
10248       _Distance __parent = 0;
10249       for (_Distance __child = 1; __child < __n; ++__child)
10250  {
10251    if (__first[__parent] < __first[__child])
10252      return false;
10253    if ((__child & 1) == 0)
10254      ++__parent;
10255  }
10256       return true;
10257     }
10258
10259   template<typename _RandomAccessIterator, typename _Distance,
10260            typename _StrictWeakOrdering>
10261     bool
10262     __is_heap(_RandomAccessIterator __first, _StrictWeakOrdering __comp,
10263        _Distance __n)
10264     {
10265       _Distance __parent = 0;
10266       for (_Distance __child = 1; __child < __n; ++__child)
10267  {
10268    if (__comp(__first[__parent], __first[__child]))
10269      return false;
10270    if ((__child & 1) == 0)
10271      ++__parent;
10272  }
10273       return true;
10274     }
10275
10276   template<typename _RandomAccessIterator>
10277     bool
10278     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10279     { return std::__is_heap(__first, std::distance(__first, __last)); }
10280
10281   template<typename _RandomAccessIterator, typename _StrictWeakOrdering>
10282     bool
10283     __is_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10284      _StrictWeakOrdering __comp)
10285     { return std::__is_heap(__first, __comp, std::distance(__first, __last)); }
10286
10287
10288
10289   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
10290     void
10291     __push_heap(_RandomAccessIterator __first,
10292   _Distance __holeIndex, _Distance __topIndex, _Tp __value)
10293     {
10294       _Distance __parent = (__holeIndex - 1) / 2;
10295       while (__holeIndex > __topIndex && *(__first + __parent) < __value)
10296  {
10297    *(__first + __holeIndex) = *(__first + __parent);
10298    __holeIndex = __parent;
10299    __parent = (__holeIndex - 1) / 2;
10300  }
10301       *(__first + __holeIndex) = __value;
10302     }
10303 # 139 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10304   template<typename _RandomAccessIterator>
10305     inline void
10306     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10307     {
10308       typedef typename iterator_traits<_RandomAccessIterator>::value_type
10309    _ValueType;
10310       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10311    _DistanceType;
10312
10313
10314      
10315
10316      
10317       ;
10318
10319
10320       std::__push_heap(__first, _DistanceType((__last - __first) - 1),
10321          _DistanceType(0), _ValueType(*(__last - 1)));
10322     }
10323
10324   template<typename _RandomAccessIterator, typename _Distance, typename _Tp,
10325      typename _Compare>
10326     void
10327     __push_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10328   _Distance __topIndex, _Tp __value, _Compare __comp)
10329     {
10330       _Distance __parent = (__holeIndex - 1) / 2;
10331       while (__holeIndex > __topIndex
10332       && __comp(*(__first + __parent), __value))
10333  {
10334    *(__first + __holeIndex) = *(__first + __parent);
10335    __holeIndex = __parent;
10336    __parent = (__holeIndex - 1) / 2;
10337  }
10338       *(__first + __holeIndex) = __value;
10339     }
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>
10342     inline void
10343     push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10344        _Compare __comp)
10345     {
10346       typedef typename iterator_traits<_RandomAccessIterator>::value_type
10347    _ValueType;
10348       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10349    _DistanceType;
10350
10351
10352      
10353
10354       ;
10355       ;
10356
10357       std::__push_heap(__first, _DistanceType((__last - __first) - 1),
10358          _DistanceType(0), _ValueType(*(__last - 1)), __comp);
10359     }
10360
10361   template<typename _RandomAccessIterator, typename _Distance, typename _Tp>
10362     void
10363     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10364     _Distance __len, _Tp __value)
10365     {
10366       const _Distance __topIndex = __holeIndex;
10367       _Distance __secondChild = 2 * __holeIndex + 2;
10368       while (__secondChild < __len)
10369  {
10370    if (*(__first + __secondChild) < *(__first + (__secondChild - 1)))
10371      __secondChild--;
10372    *(__first + __holeIndex) = *(__first + __secondChild);
10373    __holeIndex = __secondChild;
10374    __secondChild = 2 * (__secondChild + 1);
10375  }
10376       if (__secondChild == __len)
10377  {
10378    *(__first + __holeIndex) = *(__first + (__secondChild - 1));
10379    __holeIndex = __secondChild - 1;
10380  }
10381       std::__push_heap(__first, __holeIndex, __topIndex, __value);
10382     }
10383
10384   template<typename _RandomAccessIterator, typename _Tp>
10385     inline void
10386     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10387         _RandomAccessIterator __result, _Tp __value)
10388     {
10389       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10390  _Distance;
10391       *__result = *__first;
10392       std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
10393     __value);
10394     }
10395 # 251 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10396   template<typename _RandomAccessIterator>
10397     inline void
10398     pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10399     {
10400       typedef typename iterator_traits<_RandomAccessIterator>::value_type
10401  _ValueType;
10402
10403
10404      
10405
10406      
10407       ;
10408       ;
10409
10410       std::__pop_heap(__first, __last - 1, __last - 1,
10411         _ValueType(*(__last - 1)));
10412     }
10413
10414   template<typename _RandomAccessIterator, typename _Distance,
10415     typename _Tp, typename _Compare>
10416     void
10417     __adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex,
10418     _Distance __len, _Tp __value, _Compare __comp)
10419     {
10420       const _Distance __topIndex = __holeIndex;
10421       _Distance __secondChild = 2 * __holeIndex + 2;
10422       while (__secondChild < __len)
10423  {
10424    if (__comp(*(__first + __secondChild),
10425        *(__first + (__secondChild - 1))))
10426      __secondChild--;
10427    *(__first + __holeIndex) = *(__first + __secondChild);
10428    __holeIndex = __secondChild;
10429    __secondChild = 2 * (__secondChild + 1);
10430  }
10431       if (__secondChild == __len)
10432  {
10433    *(__first + __holeIndex) = *(__first + (__secondChild - 1));
10434    __holeIndex = __secondChild - 1;
10435  }
10436       std::__push_heap(__first, __holeIndex, __topIndex, __value, __comp);
10437     }
10438
10439   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
10440     inline void
10441     __pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10442         _RandomAccessIterator __result, _Tp __value, _Compare __comp)
10443     {
10444       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10445  _Distance;
10446       *__result = *__first;
10447       std::__adjust_heap(__first, _Distance(0), _Distance(__last - __first),
10448     __value, __comp);
10449     }
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>
10452     inline void
10453     pop_heap(_RandomAccessIterator __first,
10454       _RandomAccessIterator __last, _Compare __comp)
10455     {
10456
10457      
10458
10459       ;
10460       ;
10461
10462       typedef typename iterator_traits<_RandomAccessIterator>::value_type
10463  _ValueType;
10464       std::__pop_heap(__first, __last - 1, __last - 1,
10465         _ValueType(*(__last - 1)), __comp);
10466     }
10467 # 342 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10468   template<typename _RandomAccessIterator>
10469     void
10470     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10471     {
10472       typedef typename iterator_traits<_RandomAccessIterator>::value_type
10473    _ValueType;
10474       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10475    _DistanceType;
10476
10477
10478      
10479
10480      
10481       ;
10482
10483       if (__last - __first < 2)
10484  return;
10485
10486       const _DistanceType __len = __last - __first;
10487       _DistanceType __parent = (__len - 2) / 2;
10488       while (true)
10489  {
10490    std::__adjust_heap(__first, __parent, __len,
10491         _ValueType(*(__first + __parent)));
10492    if (__parent == 0)
10493      return;
10494    __parent--;
10495  }
10496     }
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>
10499     inline void
10500     make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10501        _Compare __comp)
10502     {
10503       typedef typename iterator_traits<_RandomAccessIterator>::value_type
10504    _ValueType;
10505       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
10506    _DistanceType;
10507
10508
10509      
10510
10511       ;
10512
10513       if (__last - __first < 2)
10514  return;
10515
10516       const _DistanceType __len = __last - __first;
10517       _DistanceType __parent = (__len - 2) / 2;
10518       while (true)
10519  {
10520    std::__adjust_heap(__first, __parent, __len,
10521         _ValueType(*(__first + __parent)), __comp);
10522    if (__parent == 0)
10523      return;
10524    __parent--;
10525  }
10526     }
10527 # 420 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_heap.h" 3
10528   template<typename _RandomAccessIterator>
10529     void
10530     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)
10531     {
10532
10533      
10534
10535      
10536
10537       ;
10538
10539
10540       while (__last - __first > 1)
10541  std::pop_heap(__first, __last--);
10542     }
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>
10545     void
10546     sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last,
10547        _Compare __comp)
10548     {
10549
10550      
10551
10552       ;
10553       ;
10554
10555       while (__last - __first > 1)
10556  std::pop_heap(__first, __last--, __comp);
10557     }
10558
10559 }
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
10565        
10566 # 52 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
10567 #pragma GCC visibility push(default)
10568
10569
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)
10577
10578
10579
10580
10581 namespace __gnu_cxx
10582 {
10583
10584
10585
10586
10587
10588
10589
10590   template<typename _Tp>
10591     class new_allocator
10592     {
10593     public:
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;
10601
10602       template<typename _Tp1>
10603         struct rebind
10604         { typedef new_allocator<_Tp1> other; };
10605
10606       new_allocator() throw() { }
10607
10608       new_allocator(const new_allocator&) throw() { }
10609
10610       template<typename _Tp1>
10611         new_allocator(const new_allocator<_Tp1>&) throw() { }
10612
10613       ~new_allocator() throw() { }
10614
10615       pointer
10616       address(reference __x) const { return &__x; }
10617
10618       const_pointer
10619       address(const_reference __x) const { return &__x; }
10620
10621
10622
10623       pointer
10624       allocate(size_type __n, const void* = 0)
10625       {
10626  if (__builtin_expect(__n > this->max_size(), false))
10627    std::__throw_bad_alloc();
10628
10629  return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
10630       }
10631
10632
10633       void
10634       deallocate(pointer __p, size_type)
10635       { ::operator delete(__p); }
10636
10637       size_type
10638       max_size() const throw()
10639       { return size_t(-1) / sizeof(_Tp); }
10640
10641
10642
10643       void
10644       construct(pointer __p, const _Tp& __val)
10645       { ::new(__p) _Tp(__val); }
10646
10647       void
10648       destroy(pointer __p) { __p->~_Tp(); }
10649     };
10650
10651   template<typename _Tp>
10652     inline bool
10653     operator==(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10654     { return true; }
10655
10656   template<typename _Tp>
10657     inline bool
10658     operator!=(const new_allocator<_Tp>&, const new_allocator<_Tp>&)
10659     { return false; }
10660 }
10661
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
10665
10666 namespace std
10667 {
10668   template<typename _Tp>
10669     class allocator;
10670
10671
10672   template<>
10673     class allocator<void>
10674     {
10675     public:
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;
10681
10682       template<typename _Tp1>
10683         struct rebind
10684         { typedef allocator<_Tp1> other; };
10685     };
10686
10687
10688
10689
10690
10691
10692
10693   template<typename _Tp>
10694     class allocator: public __gnu_cxx::new_allocator<_Tp>
10695     {
10696    public:
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;
10704
10705       template<typename _Tp1>
10706         struct rebind
10707         { typedef allocator<_Tp1> other; };
10708
10709       allocator() throw() { }
10710
10711       allocator(const allocator& __a) throw()
10712       : __gnu_cxx::new_allocator<_Tp>(__a) { }
10713
10714       template<typename _Tp1>
10715         allocator(const allocator<_Tp1>&) throw() { }
10716
10717       ~allocator() throw() { }
10718
10719
10720     };
10721
10722   template<typename _T1, typename _T2>
10723     inline bool
10724     operator==(const allocator<_T1>&, const allocator<_T2>&)
10725     { return true; }
10726
10727   template<typename _T1, typename _T2>
10728     inline bool
10729     operator!=(const allocator<_T1>&, const allocator<_T2>&)
10730     { return false; }
10731
10732
10733
10734
10735
10736   extern template class allocator<char>;
10737   extern template class allocator<wchar_t>;
10738
10739
10740
10741
10742 }
10743 # 56 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
10744
10745
10746
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
10749 namespace std
10750 {
10751
10752
10753
10754
10755   template <class _ForwardIterator, class _Tp>
10756     class raw_storage_iterator
10757     : public iterator<output_iterator_tag, void, void, void, void>
10758     {
10759     protected:
10760       _ForwardIterator _M_iter;
10761
10762     public:
10763       explicit
10764       raw_storage_iterator(_ForwardIterator __x)
10765       : _M_iter(__x) {}
10766
10767       raw_storage_iterator&
10768       operator*() { return *this; }
10769
10770       raw_storage_iterator&
10771       operator=(const _Tp& __element)
10772       {
10773  std::_Construct(&*_M_iter, __element);
10774  return *this;
10775       }
10776
10777       raw_storage_iterator<_ForwardIterator, _Tp>&
10778       operator++()
10779       {
10780  ++_M_iter;
10781  return *this;
10782       }
10783
10784       raw_storage_iterator<_ForwardIterator, _Tp>
10785       operator++(int)
10786       {
10787  raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this;
10788  ++_M_iter;
10789  return __tmp;
10790       }
10791     };
10792 }
10793 # 60 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
10794
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
10797        
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
10801 namespace std
10802 {
10803
10804
10805
10806
10807
10808   enum float_round_style
10809   {
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
10815   };
10816
10817
10818
10819
10820
10821
10822
10823   enum float_denorm_style
10824   {
10825
10826     denorm_indeterminate = -1,
10827
10828     denorm_absent = 0,
10829
10830     denorm_present = 1
10831   };
10832 # 193 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/limits" 3
10833   struct __numeric_limits_base
10834   {
10835
10836
10837     static const bool is_specialized = false;
10838
10839
10840
10841
10842     static const int digits = 0;
10843
10844     static const int digits10 = 0;
10845
10846     static const bool is_signed = false;
10847
10848
10849
10850
10851
10852     static const bool is_integer = false;
10853
10854
10855
10856
10857     static const bool is_exact = false;
10858
10859
10860     static const int radix = 0;
10861
10862
10863
10864     static const int min_exponent = 0;
10865
10866
10867     static const int min_exponent10 = 0;
10868
10869
10870
10871     static const int max_exponent = 0;
10872
10873
10874     static const int max_exponent10 = 0;
10875
10876
10877     static const bool has_infinity = false;
10878
10879
10880     static const bool has_quiet_NaN = false;
10881
10882
10883     static const bool has_signaling_NaN = false;
10884
10885     static const float_denorm_style has_denorm = denorm_absent;
10886
10887
10888     static const bool has_denorm_loss = false;
10889
10890
10891
10892     static const bool is_iec559 = false;
10893
10894
10895
10896     static const bool is_bounded = false;
10897
10898
10899
10900
10901     static const bool is_modulo = false;
10902
10903
10904     static const bool traps = false;
10905
10906     static const bool tinyness_before = false;
10907
10908
10909
10910     static const float_round_style round_style = round_toward_zero;
10911   };
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
10915     {
10916
10917
10918       static _Tp min() throw() { return static_cast<_Tp>(0); }
10919
10920       static _Tp max() throw() { return static_cast<_Tp>(0); }
10921
10922
10923       static _Tp epsilon() throw() { return static_cast<_Tp>(0); }
10924
10925       static _Tp round_error() throw() { return static_cast<_Tp>(0); }
10926
10927       static _Tp infinity() throw() { return static_cast<_Tp>(0); }
10928
10929       static _Tp quiet_NaN() throw() { return static_cast<_Tp>(0); }
10930
10931
10932       static _Tp signaling_NaN() throw() { return static_cast<_Tp>(0); }
10933
10934
10935
10936       static _Tp denorm_min() throw() { return static_cast<_Tp>(0); }
10937     };
10938
10939
10940
10941
10942
10943   template<>
10944     struct numeric_limits<bool>
10945     {
10946       static const bool is_specialized = true;
10947
10948       static bool min() throw()
10949       { return false; }
10950       static bool max() throw()
10951       { return true; }
10952
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()
10960       { return false; }
10961       static bool round_error() throw()
10962       { return false; }
10963
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;
10968
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;
10974
10975       static bool infinity() throw()
10976       { return false; }
10977       static bool quiet_NaN() throw()
10978       { return false; }
10979       static bool signaling_NaN() throw()
10980       { return false; }
10981       static bool denorm_min() throw()
10982       { return false; }
10983
10984       static const bool is_iec559 = false;
10985       static const bool is_bounded = true;
10986       static const bool is_modulo = false;
10987
10988
10989
10990
10991       static const bool traps = true;
10992       static const bool tinyness_before = false;
10993       static const float_round_style round_style = round_toward_zero;
10994     };
10995
10996
10997   template<>
10998     struct numeric_limits<char>
10999     {
11000       static const bool is_specialized = true;
11001
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); }
11006
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()
11014       { return 0; }
11015       static char round_error() throw()
11016       { return 0; }
11017
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;
11022
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;
11028
11029       static char infinity() throw()
11030       { return char(); }
11031       static char quiet_NaN() throw()
11032       { return char(); }
11033       static char signaling_NaN() throw()
11034       { return char(); }
11035       static char denorm_min() throw()
11036       { return static_cast<char>(0); }
11037
11038       static const bool is_iec559 = false;
11039       static const bool is_bounded = true;
11040       static const bool is_modulo = true;
11041
11042       static const bool traps = true;
11043       static const bool tinyness_before = false;
11044       static const float_round_style round_style = round_toward_zero;
11045     };
11046
11047
11048   template<>
11049     struct numeric_limits<signed char>
11050     {
11051       static const bool is_specialized = true;
11052
11053       static signed char min() throw()
11054       { return -127 - 1; }
11055       static signed char max() throw()
11056       { return 127; }
11057
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()
11065       { return 0; }
11066       static signed char round_error() throw()
11067       { return 0; }
11068
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;
11073
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;
11079
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); }
11088
11089       static const bool is_iec559 = false;
11090       static const bool is_bounded = true;
11091       static const bool is_modulo = true;
11092
11093       static const bool traps = true;
11094       static const bool tinyness_before = false;
11095       static const float_round_style round_style = round_toward_zero;
11096     };
11097
11098
11099   template<>
11100     struct numeric_limits<unsigned char>
11101     {
11102       static const bool is_specialized = true;
11103
11104       static unsigned char min() throw()
11105       { return 0; }
11106       static unsigned char max() throw()
11107       { return 127 * 2U + 1; }
11108
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()
11116       { return 0; }
11117       static unsigned char round_error() throw()
11118       { return 0; }
11119
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;
11124
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;
11130
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); }
11139
11140       static const bool is_iec559 = false;
11141       static const bool is_bounded = true;
11142       static const bool is_modulo = true;
11143
11144       static const bool traps = true;
11145       static const bool tinyness_before = false;
11146       static const float_round_style round_style = round_toward_zero;
11147     };
11148
11149
11150   template<>
11151     struct numeric_limits<wchar_t>
11152     {
11153       static const bool is_specialized = true;
11154
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); }
11159
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()
11167       { return 0; }
11168       static wchar_t round_error() throw()
11169       { return 0; }
11170
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;
11175
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;
11181
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(); }
11190
11191       static const bool is_iec559 = false;
11192       static const bool is_bounded = true;
11193       static const bool is_modulo = true;
11194
11195       static const bool traps = true;
11196       static const bool tinyness_before = false;
11197       static const float_round_style round_style = round_toward_zero;
11198     };
11199
11200
11201   template<>
11202     struct numeric_limits<short>
11203     {
11204       static const bool is_specialized = true;
11205
11206       static short min() throw()
11207       { return -32767 - 1; }
11208       static short max() throw()
11209       { return 32767; }
11210
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()
11218       { return 0; }
11219       static short round_error() throw()
11220       { return 0; }
11221
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;
11226
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;
11232
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(); }
11241
11242       static const bool is_iec559 = false;
11243       static const bool is_bounded = true;
11244       static const bool is_modulo = true;
11245
11246       static const bool traps = true;
11247       static const bool tinyness_before = false;
11248       static const float_round_style round_style = round_toward_zero;
11249     };
11250
11251
11252   template<>
11253     struct numeric_limits<unsigned short>
11254     {
11255       static const bool is_specialized = true;
11256
11257       static unsigned short min() throw()
11258       { return 0; }
11259       static unsigned short max() throw()
11260       { return 32767 * 2U + 1; }
11261
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()
11269       { return 0; }
11270       static unsigned short round_error() throw()
11271       { return 0; }
11272
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;
11277
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;
11283
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); }
11292
11293       static const bool is_iec559 = false;
11294       static const bool is_bounded = true;
11295       static const bool is_modulo = true;
11296
11297       static const bool traps = true;
11298       static const bool tinyness_before = false;
11299       static const float_round_style round_style = round_toward_zero;
11300     };
11301
11302
11303   template<>
11304     struct numeric_limits<int>
11305     {
11306       static const bool is_specialized = true;
11307
11308       static int min() throw()
11309       { return -2147483647 - 1; }
11310       static int max() throw()
11311       { return 2147483647; }
11312
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()
11320       { return 0; }
11321       static int round_error() throw()
11322       { return 0; }
11323
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;
11328
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;
11334
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); }
11343
11344       static const bool is_iec559 = false;
11345       static const bool is_bounded = true;
11346       static const bool is_modulo = true;
11347
11348       static const bool traps = true;
11349       static const bool tinyness_before = false;
11350       static const float_round_style round_style = round_toward_zero;
11351     };
11352
11353
11354   template<>
11355     struct numeric_limits<unsigned int>
11356     {
11357       static const bool is_specialized = true;
11358
11359       static unsigned int min() throw()
11360       { return 0; }
11361       static unsigned int max() throw()
11362       { return 2147483647 * 2U + 1; }
11363
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()
11371       { return 0; }
11372       static unsigned int round_error() throw()
11373       { return 0; }
11374
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;
11379
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;
11385
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); }
11394
11395       static const bool is_iec559 = false;
11396       static const bool is_bounded = true;
11397       static const bool is_modulo = true;
11398
11399       static const bool traps = true;
11400       static const bool tinyness_before = false;
11401       static const float_round_style round_style = round_toward_zero;
11402     };
11403
11404
11405   template<>
11406     struct numeric_limits<long>
11407     {
11408       static const bool is_specialized = true;
11409
11410       static long min() throw()
11411       { return -2147483647L - 1; }
11412       static long max() throw()
11413       { return 2147483647L; }
11414
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()
11422       { return 0; }
11423       static long round_error() throw()
11424       { return 0; }
11425
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;
11430
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;
11436
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); }
11445
11446       static const bool is_iec559 = false;
11447       static const bool is_bounded = true;
11448       static const bool is_modulo = true;
11449
11450       static const bool traps = true;
11451       static const bool tinyness_before = false;
11452       static const float_round_style round_style = round_toward_zero;
11453     };
11454
11455
11456   template<>
11457     struct numeric_limits<unsigned long>
11458     {
11459       static const bool is_specialized = true;
11460
11461       static unsigned long min() throw()
11462       { return 0; }
11463       static unsigned long max() throw()
11464       { return 2147483647L * 2UL + 1; }
11465
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()
11473       { return 0; }
11474       static unsigned long round_error() throw()
11475       { return 0; }
11476
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;
11481
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;
11487
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); }
11496
11497       static const bool is_iec559 = false;
11498       static const bool is_bounded = true;
11499       static const bool is_modulo = true;
11500
11501       static const bool traps = true;
11502       static const bool tinyness_before = false;
11503       static const float_round_style round_style = round_toward_zero;
11504     };
11505
11506
11507   template<>
11508     struct numeric_limits<long long>
11509     {
11510       static const bool is_specialized = true;
11511
11512       static long long min() throw()
11513       { return -9223372036854775807LL - 1; }
11514       static long long max() throw()
11515       { return 9223372036854775807LL; }
11516
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()
11524       { return 0; }
11525       static long long round_error() throw()
11526       { return 0; }
11527
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;
11532
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;
11538
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); }
11547
11548       static const bool is_iec559 = false;
11549       static const bool is_bounded = true;
11550       static const bool is_modulo = true;
11551
11552       static const bool traps = true;
11553       static const bool tinyness_before = false;
11554       static const float_round_style round_style = round_toward_zero;
11555     };
11556
11557
11558   template<>
11559     struct numeric_limits<unsigned long long>
11560     {
11561       static const bool is_specialized = true;
11562
11563       static unsigned long long min() throw()
11564       { return 0; }
11565       static unsigned long long max() throw()
11566       { return 9223372036854775807LL * 2ULL + 1; }
11567
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()
11575       { return 0; }
11576       static unsigned long long round_error() throw()
11577       { return 0; }
11578
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;
11583
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;
11589
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); }
11598
11599       static const bool is_iec559 = false;
11600       static const bool is_bounded = true;
11601       static const bool is_modulo = true;
11602
11603       static const bool traps = true;
11604       static const bool tinyness_before = false;
11605       static const float_round_style round_style = round_toward_zero;
11606     };
11607
11608
11609   template<>
11610     struct numeric_limits<float>
11611     {
11612       static const bool is_specialized = true;
11613
11614       static float min() throw()
11615       { return 1.17549435e-38F; }
11616       static float max() throw()
11617       { return 3.40282347e+38F; }
11618
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()
11628       { return 0.5F; }
11629
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;
11634
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;
11641
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; }
11650
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;
11655
11656       static const bool traps = false;
11657       static const bool tinyness_before = false;
11658       static const float_round_style round_style = round_to_nearest;
11659     };
11660
11661
11662
11663
11664
11665
11666   template<>
11667     struct numeric_limits<double>
11668     {
11669       static const bool is_specialized = true;
11670
11671       static double min() throw()
11672       { return 2.2250738585072014e-308; }
11673       static double max() throw()
11674       { return 1.7976931348623157e+308; }
11675
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()
11685       { return 0.5; }
11686
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;
11691
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;
11698
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; }
11707
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;
11712
11713       static const bool traps = false;
11714       static const bool tinyness_before = false;
11715       static const float_round_style round_style = round_to_nearest;
11716     };
11717
11718
11719
11720
11721
11722
11723   template<>
11724     struct numeric_limits<long double>
11725     {
11726       static const bool is_specialized = true;
11727
11728       static long double min() throw()
11729       { return 3.36210314311209350626e-4932L; }
11730       static long double max() throw()
11731       { return 1.18973149535723176502e+4932L; }
11732
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()
11742       { return 0.5L; }
11743
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;
11748
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
11755  = false;
11756
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; }
11765
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;
11770
11771       static const bool traps = false;
11772       static const bool tinyness_before = false;
11773       static const float_round_style round_style = round_to_nearest;
11774     };
11775
11776
11777
11778
11779
11780 }
11781
11782
11783
11784
11785
11786
11787
11788 #pragma GCC visibility pop
11789 # 62 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 2 3
11790
11791 namespace std
11792 {
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*)
11797     {
11798       const ptrdiff_t __max = numeric_limits<ptrdiff_t>::max() / sizeof(_Tp);
11799       if (__len > __max)
11800  __len = __max;
11801
11802       while (__len > 0)
11803  {
11804    _Tp* __tmp = static_cast<_Tp*>(::operator new(__len * sizeof(_Tp),
11805        nothrow));
11806    if (__tmp != 0)
11807      return pair<_Tp*, ptrdiff_t>(__tmp, __len);
11808    __len /= 2;
11809  }
11810       return pair<_Tp*, ptrdiff_t>(static_cast<_Tp*>(0), 0);
11811     }
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>
11819     void
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
11825     {
11826       _Tp1* _M_ptr;
11827
11828       explicit
11829       auto_ptr_ref(_Tp1* __p): _M_ptr(__p) { }
11830     };
11831 # 174 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11832   template<typename _Tp>
11833     class auto_ptr
11834     {
11835     private:
11836       _Tp* _M_ptr;
11837
11838     public:
11839
11840       typedef _Tp element_type;
11841
11842
11843
11844
11845
11846
11847
11848       explicit
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
11856       auto_ptr&
11857       operator=(auto_ptr& __a) throw()
11858       {
11859  reset(__a.release());
11860  return *this;
11861       }
11862 # 240 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11863       template<typename _Tp1>
11864         auto_ptr&
11865         operator=(auto_ptr<_Tp1>& __a) throw()
11866         {
11867    reset(__a.release());
11868    return *this;
11869  }
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
11873       element_type&
11874       operator*() const throw()
11875       {
11876  ;
11877  return *_M_ptr;
11878       }
11879
11880
11881
11882
11883
11884
11885
11886       element_type*
11887       operator->() const throw()
11888       {
11889  ;
11890  return _M_ptr;
11891       }
11892 # 300 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11893       element_type*
11894       get() const throw() { return _M_ptr; }
11895 # 314 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11896       element_type*
11897       release() throw()
11898       {
11899  element_type* __tmp = _M_ptr;
11900  _M_ptr = 0;
11901  return __tmp;
11902       }
11903 # 329 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/memory" 3
11904       void
11905       reset(element_type* __p = 0) throw()
11906       {
11907  if (__p != _M_ptr)
11908    {
11909      delete _M_ptr;
11910      _M_ptr = __p;
11911    }
11912       }
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) { }
11916
11917       auto_ptr&
11918       operator=(auto_ptr_ref<element_type> __ref) throw()
11919       {
11920  if (__ref._M_ptr != this->get())
11921    {
11922      delete _M_ptr;
11923      _M_ptr = __ref._M_ptr;
11924    }
11925  return *this;
11926       }
11927
11928       template<typename _Tp1>
11929         operator auto_ptr_ref<_Tp1>() throw()
11930         { return auto_ptr_ref<_Tp1>(this->release()); }
11931
11932       template<typename _Tp1>
11933         operator auto_ptr<_Tp1>() throw()
11934         { return auto_ptr<_Tp1>(this->release()); }
11935   };
11936 }
11937
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
11940
11941 namespace std
11942 {
11943
11944
11945
11946
11947
11948
11949
11950   template<typename _ForwardIterator, typename _Tp>
11951     class _Temporary_buffer
11952     {
11953
11954      
11955
11956  public:
11957       typedef _Tp value_type;
11958       typedef value_type* pointer;
11959       typedef pointer iterator;
11960       typedef ptrdiff_t size_type;
11961
11962     protected:
11963       size_type _M_original_len;
11964       size_type _M_len;
11965       pointer _M_buffer;
11966
11967       void
11968       _M_initialize_buffer(const _Tp&, __true_type) { }
11969
11970       void
11971       _M_initialize_buffer(const _Tp& val, __false_type)
11972       { std::uninitialized_fill_n(_M_buffer, _M_len, val); }
11973
11974     public:
11975
11976       size_type
11977       size() const
11978       { return _M_len; }
11979
11980
11981       size_type
11982       requested_size() const
11983       { return _M_original_len; }
11984
11985
11986       iterator
11987       begin()
11988       { return _M_buffer; }
11989
11990
11991       iterator
11992       end()
11993       { return _M_buffer + _M_len; }
11994
11995
11996
11997
11998
11999       _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last);
12000
12001       ~_Temporary_buffer()
12002       {
12003  std::_Destroy(_M_buffer, _M_buffer + _M_len);
12004  std::return_temporary_buffer(_M_buffer);
12005       }
12006
12007     private:
12008
12009       _Temporary_buffer(const _Temporary_buffer&);
12010
12011       void
12012       operator=(const _Temporary_buffer&);
12013     };
12014
12015
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)
12021     {
12022
12023       typedef typename std::__is_scalar<_Tp>::__type _Trivial;
12024
12025       try
12026  {
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;
12031    if (_M_len > 0)
12032      _M_initialize_buffer(*__first, _Trivial());
12033  }
12034       catch(...)
12035  {
12036    std::return_temporary_buffer(_M_buffer);
12037    _M_buffer = 0;
12038    _M_len = 0;
12039    throw;
12040  }
12041     }
12042 }
12043 # 67 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 2 3
12044
12045
12046
12047
12048 namespace std
12049 {
12050 # 85 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12051   template<typename _Tp>
12052     inline const _Tp&
12053     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c)
12054     {
12055
12056      
12057       if (__a < __b)
12058  if (__b < __c)
12059    return __b;
12060  else if (__a < __c)
12061    return __c;
12062  else
12063    return __a;
12064       else if (__a < __c)
12065  return __a;
12066       else if (__b < __c)
12067  return __c;
12068       else
12069  return __b;
12070     }
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>
12073     inline const _Tp&
12074     __median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp)
12075     {
12076
12077      
12078       if (__comp(__a, __b))
12079  if (__comp(__b, __c))
12080    return __b;
12081  else if (__comp(__a, __c))
12082    return __c;
12083  else
12084    return __a;
12085       else if (__comp(__a, __c))
12086  return __a;
12087       else if (__comp(__b, __c))
12088  return __c;
12089       else
12090  return __b;
12091     }
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>
12094     _Function
12095     for_each(_InputIterator __first, _InputIterator __last, _Function __f)
12096     {
12097
12098      
12099       ;
12100       for ( ; __first != __last; ++__first)
12101  __f(*__first);
12102       return __f;
12103     }
12104
12105
12106
12107
12108
12109
12110   template<typename _InputIterator, typename _Tp>
12111     inline _InputIterator
12112     __find(_InputIterator __first, _InputIterator __last,
12113     const _Tp& __val, input_iterator_tag)
12114     {
12115       while (__first != __last && !(*__first == __val))
12116  ++__first;
12117       return __first;
12118     }
12119
12120
12121
12122
12123
12124
12125   template<typename _InputIterator, typename _Predicate>
12126     inline _InputIterator
12127     __find_if(_InputIterator __first, _InputIterator __last,
12128        _Predicate __pred, input_iterator_tag)
12129     {
12130       while (__first != __last && !__pred(*__first))
12131  ++__first;
12132       return __first;
12133     }
12134
12135
12136
12137
12138
12139
12140   template<typename _RandomAccessIterator, typename _Tp>
12141     _RandomAccessIterator
12142     __find(_RandomAccessIterator __first, _RandomAccessIterator __last,
12143     const _Tp& __val, random_access_iterator_tag)
12144     {
12145       typename iterator_traits<_RandomAccessIterator>::difference_type
12146  __trip_count = (__last - __first) >> 2;
12147
12148       for ( ; __trip_count > 0 ; --__trip_count)
12149  {
12150    if (*__first == __val)
12151      return __first;
12152    ++__first;
12153
12154    if (*__first == __val)
12155      return __first;
12156    ++__first;
12157
12158    if (*__first == __val)
12159      return __first;
12160    ++__first;
12161
12162    if (*__first == __val)
12163      return __first;
12164    ++__first;
12165  }
12166
12167       switch (__last - __first)
12168  {
12169  case 3:
12170    if (*__first == __val)
12171      return __first;
12172    ++__first;
12173  case 2:
12174    if (*__first == __val)
12175      return __first;
12176    ++__first;
12177  case 1:
12178    if (*__first == __val)
12179      return __first;
12180    ++__first;
12181  case 0:
12182  default:
12183    return __last;
12184  }
12185     }
12186
12187
12188
12189
12190
12191
12192   template<typename _RandomAccessIterator, typename _Predicate>
12193     _RandomAccessIterator
12194     __find_if(_RandomAccessIterator __first, _RandomAccessIterator __last,
12195        _Predicate __pred, random_access_iterator_tag)
12196     {
12197       typename iterator_traits<_RandomAccessIterator>::difference_type
12198  __trip_count = (__last - __first) >> 2;
12199
12200       for ( ; __trip_count > 0 ; --__trip_count)
12201  {
12202    if (__pred(*__first))
12203      return __first;
12204    ++__first;
12205
12206    if (__pred(*__first))
12207      return __first;
12208    ++__first;
12209
12210    if (__pred(*__first))
12211      return __first;
12212    ++__first;
12213
12214    if (__pred(*__first))
12215      return __first;
12216    ++__first;
12217  }
12218
12219       switch (__last - __first)
12220  {
12221  case 3:
12222    if (__pred(*__first))
12223      return __first;
12224    ++__first;
12225  case 2:
12226    if (__pred(*__first))
12227      return __first;
12228    ++__first;
12229  case 1:
12230    if (__pred(*__first))
12231      return __first;
12232    ++__first;
12233  case 0:
12234  default:
12235    return __last;
12236  }
12237     }
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,
12242   const _Tp& __val)
12243     {
12244
12245      
12246      
12247
12248       ;
12249       return std::__find(__first, __last, __val,
12250            std::__iterator_category(__first));
12251     }
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,
12256      _Predicate __pred)
12257     {
12258
12259      
12260      
12261
12262       ;
12263       return std::__find_if(__first, __last, __pred,
12264        std::__iterator_category(__first));
12265     }
12266 # 349 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
12267   template<typename _ForwardIterator>
12268     _ForwardIterator
12269     adjacent_find(_ForwardIterator __first, _ForwardIterator __last)
12270     {
12271
12272      
12273      
12274
12275       ;
12276       if (__first == __last)
12277  return __last;
12278       _ForwardIterator __next = __first;
12279       while(++__next != __last)
12280  {
12281    if (*__first == *__next)
12282      return __first;
12283    __first = __next;
12284  }
12285       return __last;
12286     }
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>
12289     _ForwardIterator
12290     adjacent_find(_ForwardIterator __first, _ForwardIterator __last,
12291     _BinaryPredicate __binary_pred)
12292     {
12293
12294      
12295      
12296
12297
12298       ;
12299       if (__first == __last)
12300  return __last;
12301       _ForwardIterator __next = __first;
12302       while(++__next != __last)
12303  {
12304    if (__binary_pred(*__first, *__next))
12305      return __first;
12306    __first = __next;
12307  }
12308       return __last;
12309     }
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)
12314     {
12315
12316      
12317      
12318
12319       ;
12320       typename iterator_traits<_InputIterator>::difference_type __n = 0;
12321       for ( ; __first != __last; ++__first)
12322  if (*__first == __value)
12323    ++__n;
12324       return __n;
12325     }
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)
12330     {
12331
12332      
12333      
12334
12335       ;
12336       typename iterator_traits<_InputIterator>::difference_type __n = 0;
12337       for ( ; __first != __last; ++__first)
12338  if (__pred(*__first))
12339    ++__n;
12340       return __n;
12341     }
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>
12344     _ForwardIterator1
12345     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12346     _ForwardIterator2 __first2, _ForwardIterator2 __last2)
12347     {
12348
12349      
12350      
12351      
12352
12353
12354       ;
12355       ;
12356
12357       if (__first1 == __last1 || __first2 == __last2)
12358  return __first1;
12359
12360
12361       _ForwardIterator2 __tmp(__first2);
12362       ++__tmp;
12363       if (__tmp == __last2)
12364  return std::find(__first1, __last1, *__first2);
12365
12366
12367       _ForwardIterator2 __p1, __p;
12368       __p1 = __first2; ++__p1;
12369       _ForwardIterator1 __current = __first1;
12370
12371       while (__first1 != __last1)
12372  {
12373    __first1 = std::find(__first1, __last1, *__first2);
12374    if (__first1 == __last1)
12375      return __last1;
12376
12377    __p = __p1;
12378    __current = __first1;
12379    if (++__current == __last1)
12380      return __last1;
12381
12382    while (*__current == *__p)
12383      {
12384        if (++__p == __last2)
12385   return __first1;
12386        if (++__current == __last1)
12387   return __last1;
12388      }
12389    ++__first1;
12390  }
12391       return __first1;
12392     }
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>
12396     _ForwardIterator1
12397     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12398     _ForwardIterator2 __first2, _ForwardIterator2 __last2,
12399     _BinaryPredicate __predicate)
12400     {
12401
12402      
12403      
12404      
12405
12406
12407       ;
12408       ;
12409
12410
12411       if (__first1 == __last1 || __first2 == __last2)
12412  return __first1;
12413
12414
12415       _ForwardIterator2 __tmp(__first2);
12416       ++__tmp;
12417       if (__tmp == __last2)
12418  {
12419    while (__first1 != __last1 && !__predicate(*__first1, *__first2))
12420      ++__first1;
12421    return __first1;
12422  }
12423
12424
12425       _ForwardIterator2 __p1, __p;
12426       __p1 = __first2; ++__p1;
12427       _ForwardIterator1 __current = __first1;
12428
12429       while (__first1 != __last1)
12430  {
12431    while (__first1 != __last1)
12432      {
12433        if (__predicate(*__first1, *__first2))
12434   break;
12435        ++__first1;
12436      }
12437    while (__first1 != __last1 && !__predicate(*__first1, *__first2))
12438      ++__first1;
12439    if (__first1 == __last1)
12440      return __last1;
12441
12442    __p = __p1;
12443    __current = __first1;
12444    if (++__current == __last1)
12445      return __last1;
12446
12447    while (__predicate(*__current, *__p))
12448      {
12449        if (++__p == __last2)
12450   return __first1;
12451        if (++__current == __last1)
12452   return __last1;
12453      }
12454    ++__first1;
12455  }
12456       return __first1;
12457     }
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>
12460     _ForwardIterator
12461     __search_n(_ForwardIterator __first, _ForwardIterator __last,
12462         _Integer __count, const _Tp& __val,
12463         std::forward_iterator_tag)
12464     {
12465       __first = std::find(__first, __last, __val);
12466       while (__first != __last)
12467  {
12468    typename iterator_traits<_ForwardIterator>::difference_type
12469      __n = __count;
12470    _ForwardIterator __i = __first;
12471    ++__i;
12472    while (__i != __last && __n != 1 && *__i == __val)
12473      {
12474        ++__i;
12475        --__n;
12476      }
12477    if (__n == 1)
12478      return __first;
12479    if (__i == __last)
12480      return __last;
12481    __first = std::find(++__i, __last, __val);
12482  }
12483       return __last;
12484     }
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>
12487     _RandomAccessIter
12488     __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
12489         _Integer __count, const _Tp& __val,
12490         std::random_access_iterator_tag)
12491     {
12492
12493       typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
12494  _DistanceType;
12495
12496       _DistanceType __tailSize = __last - __first;
12497       const _DistanceType __pattSize = __count;
12498
12499       if (__tailSize < __pattSize)
12500         return __last;
12501
12502       const _DistanceType __skipOffset = __pattSize - 1;
12503       _RandomAccessIter __lookAhead = __first + __skipOffset;
12504       __tailSize -= __pattSize;
12505
12506       while (1)
12507  {
12508
12509
12510    while (!(*__lookAhead == __val))
12511      {
12512        if (__tailSize < __pattSize)
12513   return __last;
12514        __lookAhead += __pattSize;
12515        __tailSize -= __pattSize;
12516      }
12517    _DistanceType __remainder = __skipOffset;
12518    for (_RandomAccessIter __backTrack = __lookAhead - 1;
12519         *__backTrack == __val; --__backTrack)
12520      {
12521        if (--__remainder == 0)
12522   return (__lookAhead - __skipOffset);
12523      }
12524    if (__remainder > __tailSize)
12525      return __last;
12526    __lookAhead += __remainder;
12527    __tailSize -= __remainder;
12528  }
12529     }
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>
12532     _ForwardIterator
12533     search_n(_ForwardIterator __first, _ForwardIterator __last,
12534       _Integer __count, const _Tp& __val)
12535     {
12536
12537      
12538      
12539
12540       ;
12541
12542       if (__count <= 0)
12543  return __first;
12544       if (__count == 1)
12545  return std::find(__first, __last, __val);
12546       return std::__search_n(__first, __last, __count, __val,
12547         std::__iterator_category(__first));
12548     }
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>
12552     _ForwardIterator
12553     __search_n(_ForwardIterator __first, _ForwardIterator __last,
12554         _Integer __count, const _Tp& __val,
12555         _BinaryPredicate __binary_pred, std::forward_iterator_tag)
12556     {
12557       while (__first != __last && !__binary_pred(*__first, __val))
12558         ++__first;
12559
12560       while (__first != __last)
12561  {
12562    typename iterator_traits<_ForwardIterator>::difference_type
12563      __n = __count;
12564    _ForwardIterator __i = __first;
12565    ++__i;
12566    while (__i != __last && __n != 1 && __binary_pred(*__i, __val))
12567      {
12568        ++__i;
12569        --__n;
12570      }
12571    if (__n == 1)
12572      return __first;
12573    if (__i == __last)
12574      return __last;
12575    __first = ++__i;
12576    while (__first != __last && !__binary_pred(*__first, __val))
12577      ++__first;
12578  }
12579       return __last;
12580     }
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>
12584     _RandomAccessIter
12585     __search_n(_RandomAccessIter __first, _RandomAccessIter __last,
12586         _Integer __count, const _Tp& __val,
12587         _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
12588     {
12589
12590       typedef typename std::iterator_traits<_RandomAccessIter>::difference_type
12591  _DistanceType;
12592
12593       _DistanceType __tailSize = __last - __first;
12594       const _DistanceType __pattSize = __count;
12595
12596       if (__tailSize < __pattSize)
12597         return __last;
12598
12599       const _DistanceType __skipOffset = __pattSize - 1;
12600       _RandomAccessIter __lookAhead = __first + __skipOffset;
12601       __tailSize -= __pattSize;
12602
12603       while (1)
12604  {
12605
12606
12607    while (!__binary_pred(*__lookAhead, __val))
12608      {
12609        if (__tailSize < __pattSize)
12610   return __last;
12611        __lookAhead += __pattSize;
12612        __tailSize -= __pattSize;
12613      }
12614    _DistanceType __remainder = __skipOffset;
12615    for (_RandomAccessIter __backTrack = __lookAhead - 1;
12616         __binary_pred(*__backTrack, __val); --__backTrack)
12617      {
12618        if (--__remainder == 0)
12619   return (__lookAhead - __skipOffset);
12620      }
12621    if (__remainder > __tailSize)
12622      return __last;
12623    __lookAhead += __remainder;
12624    __tailSize -= __remainder;
12625  }
12626     }
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>
12630     _ForwardIterator
12631     search_n(_ForwardIterator __first, _ForwardIterator __last,
12632       _Integer __count, const _Tp& __val,
12633       _BinaryPredicate __binary_pred)
12634     {
12635
12636      
12637      
12638
12639       ;
12640
12641       if (__count <= 0)
12642  return __first;
12643       if (__count == 1)
12644  {
12645    while (__first != __last && !__binary_pred(*__first, __val))
12646      ++__first;
12647    return __first;
12648  }
12649       return std::__search_n(__first, __last, __count, __val, __binary_pred,
12650         std::__iterator_category(__first));
12651     }
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>
12654     _ForwardIterator2
12655     swap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
12656   _ForwardIterator2 __first2)
12657     {
12658
12659      
12660
12661      
12662
12663      
12664
12665
12666      
12667
12668
12669       ;
12670
12671       for ( ; __first1 != __last1; ++__first1, ++__first2)
12672  std::iter_swap(__first1, __first2);
12673       return __first2;
12674     }
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>
12678     _OutputIterator
12679     transform(_InputIterator __first, _InputIterator __last,
12680        _OutputIterator __result, _UnaryOperation __unary_op)
12681     {
12682
12683      
12684      
12685
12686
12687       ;
12688
12689       for ( ; __first != __last; ++__first, ++__result)
12690  *__result = __unary_op(*__first);
12691       return __result;
12692     }
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>
12696     _OutputIterator
12697     transform(_InputIterator1 __first1, _InputIterator1 __last1,
12698        _InputIterator2 __first2, _OutputIterator __result,
12699        _BinaryOperation __binary_op)
12700     {
12701
12702      
12703      
12704      
12705
12706
12707       ;
12708
12709       for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
12710  *__result = __binary_op(*__first1, *__first2);
12711       return __result;
12712     }
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>
12715     void
12716     replace(_ForwardIterator __first, _ForwardIterator __last,
12717      const _Tp& __old_value, const _Tp& __new_value)
12718     {
12719
12720      
12721
12722      
12723
12724      
12725
12726       ;
12727
12728       for ( ; __first != __last; ++__first)
12729  if (*__first == __old_value)
12730    *__first = __new_value;
12731     }
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>
12734     void
12735     replace_if(_ForwardIterator __first, _ForwardIterator __last,
12736         _Predicate __pred, const _Tp& __new_value)
12737     {
12738
12739      
12740
12741      
12742
12743      
12744
12745       ;
12746
12747       for ( ; __first != __last; ++__first)
12748  if (__pred(*__first))
12749    *__first = __new_value;
12750     }
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>
12753     _OutputIterator
12754     replace_copy(_InputIterator __first, _InputIterator __last,
12755    _OutputIterator __result,
12756    const _Tp& __old_value, const _Tp& __new_value)
12757     {
12758
12759      
12760      
12761
12762      
12763
12764       ;
12765
12766       for ( ; __first != __last; ++__first, ++__result)
12767  if (*__first == __old_value)
12768    *__result = __new_value;
12769  else
12770    *__result = *__first;
12771       return __result;
12772     }
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>
12776     _OutputIterator
12777     replace_copy_if(_InputIterator __first, _InputIterator __last,
12778       _OutputIterator __result,
12779       _Predicate __pred, const _Tp& __new_value)
12780     {
12781
12782      
12783      
12784
12785      
12786
12787       ;
12788
12789       for ( ; __first != __last; ++__first, ++__result)
12790  if (__pred(*__first))
12791    *__result = __new_value;
12792  else
12793    *__result = *__first;
12794       return __result;
12795     }
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>
12798     void
12799     generate(_ForwardIterator __first, _ForwardIterator __last,
12800       _Generator __gen)
12801     {
12802
12803      
12804      
12805
12806       ;
12807
12808       for ( ; __first != __last; ++__first)
12809  *__first = __gen();
12810     }
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>
12813     _OutputIterator
12814     generate_n(_OutputIterator __first, _Size __n, _Generator __gen)
12815     {
12816
12817      
12818
12819
12820
12821       for ( ; __n > 0; --__n, ++__first)
12822  *__first = __gen();
12823       return __first;
12824     }
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>
12827     _OutputIterator
12828     remove_copy(_InputIterator __first, _InputIterator __last,
12829   _OutputIterator __result, const _Tp& __value)
12830     {
12831
12832      
12833      
12834
12835      
12836
12837       ;
12838
12839       for ( ; __first != __last; ++__first)
12840  if (!(*__first == __value))
12841    {
12842      *__result = *__first;
12843      ++__result;
12844    }
12845       return __result;
12846     }
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>
12850     _OutputIterator
12851     remove_copy_if(_InputIterator __first, _InputIterator __last,
12852      _OutputIterator __result, _Predicate __pred)
12853     {
12854
12855      
12856      
12857
12858      
12859
12860       ;
12861
12862       for ( ; __first != __last; ++__first)
12863  if (!__pred(*__first))
12864    {
12865      *__result = *__first;
12866      ++__result;
12867    }
12868       return __result;
12869     }
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>
12872     _ForwardIterator
12873     remove(_ForwardIterator __first, _ForwardIterator __last,
12874     const _Tp& __value)
12875     {
12876
12877      
12878
12879      
12880
12881       ;
12882
12883       __first = std::find(__first, __last, __value);
12884       _ForwardIterator __i = __first;
12885       return __first == __last ? __first
12886           : std::remove_copy(++__i, __last,
12887         __first, __value);
12888     }
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>
12891     _ForwardIterator
12892     remove_if(_ForwardIterator __first, _ForwardIterator __last,
12893        _Predicate __pred)
12894     {
12895
12896      
12897
12898      
12899
12900       ;
12901
12902       __first = std::find_if(__first, __last, __pred);
12903       _ForwardIterator __i = __first;
12904       return __first == __last ? __first
12905           : std::remove_copy_if(++__i, __last,
12906            __first, __pred);
12907     }
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>
12910     _OutputIterator
12911     __unique_copy(_InputIterator __first, _InputIterator __last,
12912     _OutputIterator __result,
12913     output_iterator_tag)
12914     {
12915
12916       typename iterator_traits<_InputIterator>::value_type __value = *__first;
12917       *__result = __value;
12918       while (++__first != __last)
12919  if (!(__value == *__first))
12920    {
12921      __value = *__first;
12922      *++__result = __value;
12923    }
12924       return ++__result;
12925     }
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>
12928     _ForwardIterator
12929     __unique_copy(_InputIterator __first, _InputIterator __last,
12930     _ForwardIterator __result,
12931     forward_iterator_tag)
12932     {
12933
12934       *__result = *__first;
12935       while (++__first != __last)
12936  if (!(*__result == *__first))
12937    *++__result = *__first;
12938       return ++__result;
12939     }
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>
12943     _OutputIterator
12944     __unique_copy(_InputIterator __first, _InputIterator __last,
12945     _OutputIterator __result,
12946     _BinaryPredicate __binary_pred,
12947     output_iterator_tag)
12948     {
12949
12950      
12951
12952
12953
12954       typename iterator_traits<_InputIterator>::value_type __value = *__first;
12955       *__result = __value;
12956       while (++__first != __last)
12957  if (!__binary_pred(__value, *__first))
12958    {
12959      __value = *__first;
12960      *++__result = __value;
12961    }
12962       return ++__result;
12963     }
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>
12967     _ForwardIterator
12968     __unique_copy(_InputIterator __first, _InputIterator __last,
12969     _ForwardIterator __result,
12970     _BinaryPredicate __binary_pred,
12971     forward_iterator_tag)
12972     {
12973
12974      
12975
12976
12977
12978       *__result = *__first;
12979       while (++__first != __last)
12980  if (!__binary_pred(*__result, *__first)) *++__result = *__first;
12981       return ++__result;
12982     }
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)
12988     {
12989
12990      
12991      
12992
12993      
12994
12995       ;
12996
12997       typedef typename iterator_traits<_OutputIterator>::iterator_category
12998  _IterType;
12999
13000       if (__first == __last) return __result;
13001       return std::__unique_copy(__first, __last, __result, _IterType());
13002     }
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)
13010     {
13011
13012      
13013      
13014
13015       ;
13016
13017       typedef typename iterator_traits<_OutputIterator>::iterator_category
13018  _IterType;
13019
13020       if (__first == __last) return __result;
13021       return std::__unique_copy(__first, __last, __result,
13022     __binary_pred, _IterType());
13023     }
13024 # 1481 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13025   template<typename _ForwardIterator>
13026     _ForwardIterator
13027     unique(_ForwardIterator __first, _ForwardIterator __last)
13028     {
13029
13030      
13031
13032      
13033
13034       ;
13035
13036
13037       __first = std::adjacent_find(__first, __last);
13038       if (__first == __last)
13039  return __last;
13040
13041
13042       _ForwardIterator __dest = __first;
13043       ++__first;
13044       while (++__first != __last)
13045  if (!(*__dest == *__first))
13046    *++__dest = *__first;
13047       return ++__dest;
13048     }
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>
13051     _ForwardIterator
13052     unique(_ForwardIterator __first, _ForwardIterator __last,
13053            _BinaryPredicate __binary_pred)
13054     {
13055
13056      
13057
13058      
13059
13060
13061       ;
13062
13063
13064       __first = std::adjacent_find(__first, __last, __binary_pred);
13065       if (__first == __last)
13066  return __last;
13067
13068
13069       _ForwardIterator __dest = __first;
13070       ++__first;
13071       while (++__first != __last)
13072  if (!__binary_pred(*__dest, *__first))
13073    *++__dest = *__first;
13074       return ++__dest;
13075     }
13076 # 1554 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13077   template<typename _BidirectionalIterator>
13078     void
13079     __reverse(_BidirectionalIterator __first, _BidirectionalIterator __last,
13080        bidirectional_iterator_tag)
13081     {
13082       while (true)
13083  if (__first == __last || __first == --__last)
13084    return;
13085  else
13086    {
13087      std::iter_swap(__first, __last);
13088      ++__first;
13089    }
13090     }
13091 # 1576 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13092   template<typename _RandomAccessIterator>
13093     void
13094     __reverse(_RandomAccessIterator __first, _RandomAccessIterator __last,
13095        random_access_iterator_tag)
13096     {
13097       if (__first == __last)
13098  return;
13099       --__last;
13100       while (__first < __last)
13101  {
13102    std::iter_swap(__first, __last);
13103    ++__first;
13104    --__last;
13105  }
13106     }
13107 # 1603 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13108   template<typename _BidirectionalIterator>
13109     inline void
13110     reverse(_BidirectionalIterator __first, _BidirectionalIterator __last)
13111     {
13112
13113      
13114
13115       ;
13116       std::__reverse(__first, __last, std::__iterator_category(__first));
13117     }
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>
13120     _OutputIterator
13121     reverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last,
13122         _OutputIterator __result)
13123     {
13124
13125      
13126
13127      
13128
13129       ;
13130
13131       while (__first != __last)
13132  {
13133    --__last;
13134    *__result = *__last;
13135    ++__result;
13136  }
13137       return __result;
13138     }
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)
13143     {
13144       while (__n != 0)
13145  {
13146    _EuclideanRingElement __t = __m % __n;
13147    __m = __n;
13148    __n = __t;
13149  }
13150       return __m;
13151     }
13152
13153
13154
13155
13156
13157
13158   template<typename _ForwardIterator>
13159     void
13160     __rotate(_ForwardIterator __first,
13161       _ForwardIterator __middle,
13162       _ForwardIterator __last,
13163       forward_iterator_tag)
13164     {
13165       if (__first == __middle || __last == __middle)
13166  return;
13167
13168       _ForwardIterator __first2 = __middle;
13169       do
13170  {
13171    swap(*__first, *__first2);
13172    ++__first;
13173    ++__first2;
13174    if (__first == __middle)
13175      __middle = __first2;
13176  }
13177       while (__first2 != __last);
13178
13179       __first2 = __middle;
13180
13181       while (__first2 != __last)
13182  {
13183    swap(*__first, *__first2);
13184    ++__first;
13185    ++__first2;
13186    if (__first == __middle)
13187      __middle = __first2;
13188    else if (__first2 == __last)
13189      __first2 = __middle;
13190  }
13191     }
13192
13193
13194
13195
13196
13197
13198   template<typename _BidirectionalIterator>
13199     void
13200     __rotate(_BidirectionalIterator __first,
13201       _BidirectionalIterator __middle,
13202       _BidirectionalIterator __last,
13203        bidirectional_iterator_tag)
13204     {
13205
13206      
13207
13208
13209       if (__first == __middle || __last == __middle)
13210  return;
13211
13212       std::__reverse(__first, __middle, bidirectional_iterator_tag());
13213       std::__reverse(__middle, __last, bidirectional_iterator_tag());
13214
13215       while (__first != __middle && __middle != __last)
13216  {
13217    swap(*__first, *--__last);
13218    ++__first;
13219  }
13220
13221       if (__first == __middle)
13222  std::__reverse(__middle, __last, bidirectional_iterator_tag());
13223       else
13224  std::__reverse(__first, __middle, bidirectional_iterator_tag());
13225     }
13226
13227
13228
13229
13230
13231
13232   template<typename _RandomAccessIterator>
13233     void
13234     __rotate(_RandomAccessIterator __first,
13235       _RandomAccessIterator __middle,
13236       _RandomAccessIterator __last,
13237       random_access_iterator_tag)
13238     {
13239
13240      
13241
13242
13243       if (__first == __middle || __last == __middle)
13244  return;
13245
13246       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13247  _Distance;
13248       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13249  _ValueType;
13250
13251       const _Distance __n = __last - __first;
13252       const _Distance __k = __middle - __first;
13253       const _Distance __l = __n - __k;
13254
13255       if (__k == __l)
13256  {
13257    std::swap_ranges(__first, __middle, __middle);
13258    return;
13259  }
13260
13261       const _Distance __d = __gcd(__n, __k);
13262
13263       for (_Distance __i = 0; __i < __d; __i++)
13264  {
13265    _ValueType __tmp = *__first;
13266    _RandomAccessIterator __p = __first;
13267
13268    if (__k < __l)
13269      {
13270        for (_Distance __j = 0; __j < __l / __d; __j++)
13271   {
13272     if (__p > __first + __l)
13273       {
13274         *__p = *(__p - __l);
13275         __p -= __l;
13276       }
13277
13278     *__p = *(__p + __k);
13279     __p += __k;
13280   }
13281      }
13282    else
13283      {
13284        for (_Distance __j = 0; __j < __k / __d - 1; __j ++)
13285   {
13286     if (__p < __last - __k)
13287       {
13288         *__p = *(__p + __k);
13289         __p += __k;
13290       }
13291     *__p = * (__p - __l);
13292     __p -= __l;
13293   }
13294      }
13295
13296    *__p = __tmp;
13297    ++__first;
13298  }
13299     }
13300 # 1836 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13301   template<typename _ForwardIterator>
13302     inline void
13303     rotate(_ForwardIterator __first, _ForwardIterator __middle,
13304     _ForwardIterator __last)
13305     {
13306
13307      
13308
13309       ;
13310       ;
13311
13312       typedef typename iterator_traits<_ForwardIterator>::iterator_category
13313  _IterType;
13314       std::__rotate(__first, __middle, __last, _IterType());
13315     }
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>
13318     _OutputIterator
13319     rotate_copy(_ForwardIterator __first, _ForwardIterator __middle,
13320                 _ForwardIterator __last, _OutputIterator __result)
13321     {
13322
13323      
13324      
13325
13326       ;
13327       ;
13328
13329       return std::copy(__first, __middle,
13330                        std::copy(__middle, __last, __result));
13331     }
13332 # 1895 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13333   template<typename _RandomAccessIterator>
13334     inline void
13335     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
13336     {
13337
13338      
13339
13340       ;
13341
13342       if (__first != __last)
13343  for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13344    std::iter_swap(__i, __first + (std::rand() % ((__i - __first) + 1)));
13345     }
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>
13348     void
13349     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,
13350      _RandomNumberGenerator& __rand)
13351     {
13352
13353      
13354
13355       ;
13356
13357       if (__first == __last)
13358  return;
13359       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13360  std::iter_swap(__i, __first + __rand((__i - __first) + 1));
13361     }
13362
13363
13364
13365
13366
13367
13368
13369   template<typename _ForwardIterator, typename _Predicate>
13370     _ForwardIterator
13371     __partition(_ForwardIterator __first, _ForwardIterator __last,
13372   _Predicate __pred,
13373   forward_iterator_tag)
13374     {
13375       if (__first == __last)
13376  return __first;
13377
13378       while (__pred(*__first))
13379  if (++__first == __last)
13380    return __first;
13381
13382       _ForwardIterator __next = __first;
13383
13384       while (++__next != __last)
13385  if (__pred(*__next))
13386    {
13387      swap(*__first, *__next);
13388      ++__first;
13389    }
13390
13391       return __first;
13392     }
13393
13394
13395
13396
13397
13398
13399   template<typename _BidirectionalIterator, typename _Predicate>
13400     _BidirectionalIterator
13401     __partition(_BidirectionalIterator __first, _BidirectionalIterator __last,
13402   _Predicate __pred,
13403   bidirectional_iterator_tag)
13404     {
13405       while (true)
13406  {
13407    while (true)
13408      if (__first == __last)
13409        return __first;
13410      else if (__pred(*__first))
13411        ++__first;
13412      else
13413        break;
13414    --__last;
13415    while (true)
13416      if (__first == __last)
13417        return __first;
13418      else if (!__pred(*__last))
13419        --__last;
13420      else
13421        break;
13422    std::iter_swap(__first, __last);
13423    ++__first;
13424  }
13425     }
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,
13430        _Predicate __pred)
13431     {
13432
13433      
13434
13435      
13436
13437       ;
13438
13439       return std::__partition(__first, __last, __pred,
13440          std::__iterator_category(__first));
13441     }
13442
13443
13444
13445
13446
13447
13448
13449   template<typename _ForwardIterator, typename _Predicate, typename _Distance>
13450     _ForwardIterator
13451     __inplace_stable_partition(_ForwardIterator __first,
13452           _ForwardIterator __last,
13453           _Predicate __pred, _Distance __len)
13454     {
13455       if (__len == 1)
13456  return __pred(*__first) ? __last : __first;
13457       _ForwardIterator __middle = __first;
13458       std::advance(__middle, __len / 2);
13459       _ForwardIterator __begin = std::__inplace_stable_partition(__first,
13460          __middle,
13461          __pred,
13462          __len / 2);
13463       _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last,
13464               __pred,
13465               __len
13466               - __len / 2);
13467       std::rotate(__begin, __middle, __end);
13468       std::advance(__begin, std::distance(__middle, __end));
13469       return __begin;
13470     }
13471
13472
13473
13474
13475
13476
13477   template<typename _ForwardIterator, typename _Pointer, typename _Predicate,
13478     typename _Distance>
13479     _ForwardIterator
13480     __stable_partition_adaptive(_ForwardIterator __first,
13481     _ForwardIterator __last,
13482     _Predicate __pred, _Distance __len,
13483     _Pointer __buffer,
13484     _Distance __buffer_size)
13485     {
13486       if (__len <= __buffer_size)
13487  {
13488    _ForwardIterator __result1 = __first;
13489    _Pointer __result2 = __buffer;
13490    for ( ; __first != __last ; ++__first)
13491      if (__pred(*__first))
13492        {
13493   *__result1 = *__first;
13494   ++__result1;
13495        }
13496      else
13497        {
13498   *__result2 = *__first;
13499   ++__result2;
13500        }
13501    std::copy(__buffer, __result2, __result1);
13502    return __result1;
13503  }
13504       else
13505  {
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,
13511           __buffer_size);
13512    _ForwardIterator __end =
13513      std::__stable_partition_adaptive(__middle, __last, __pred,
13514           __len - __len / 2,
13515           __buffer, __buffer_size);
13516    std::rotate(__begin, __middle, __end);
13517    std::advance(__begin, std::distance(__middle, __end));
13518    return __begin;
13519  }
13520     }
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>
13523     _ForwardIterator
13524     stable_partition(_ForwardIterator __first, _ForwardIterator __last,
13525        _Predicate __pred)
13526     {
13527
13528      
13529
13530      
13531
13532       ;
13533
13534       if (__first == __last)
13535  return __first;
13536       else
13537  {
13538    typedef typename iterator_traits<_ForwardIterator>::value_type
13539      _ValueType;
13540    typedef typename iterator_traits<_ForwardIterator>::difference_type
13541      _DistanceType;
13542
13543    _Temporary_buffer<_ForwardIterator, _ValueType> __buf(__first,
13544         __last);
13545  if (__buf.size() > 0)
13546    return
13547      std::__stable_partition_adaptive(__first, __last, __pred,
13548        _DistanceType(__buf.requested_size()),
13549        __buf.begin(), __buf.size());
13550  else
13551    return
13552      std::__inplace_stable_partition(__first, __last, __pred,
13553       _DistanceType(__buf.requested_size()));
13554  }
13555     }
13556
13557
13558
13559
13560
13561
13562   template<typename _RandomAccessIterator, typename _Tp>
13563     _RandomAccessIterator
13564     __unguarded_partition(_RandomAccessIterator __first,
13565      _RandomAccessIterator __last, _Tp __pivot)
13566     {
13567       while (true)
13568  {
13569    while (*__first < __pivot)
13570      ++__first;
13571    --__last;
13572    while (__pivot < *__last)
13573      --__last;
13574    if (!(__first < __last))
13575      return __first;
13576    std::iter_swap(__first, __last);
13577    ++__first;
13578  }
13579     }
13580
13581
13582
13583
13584
13585
13586   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
13587     _RandomAccessIterator
13588     __unguarded_partition(_RandomAccessIterator __first,
13589      _RandomAccessIterator __last,
13590      _Tp __pivot, _Compare __comp)
13591     {
13592       while (true)
13593  {
13594    while (__comp(*__first, __pivot))
13595      ++__first;
13596    --__last;
13597    while (__comp(__pivot, *__last))
13598      --__last;
13599    if (!(__first < __last))
13600      return __first;
13601    std::iter_swap(__first, __last);
13602    ++__first;
13603  }
13604     }
13605
13606
13607
13608
13609
13610
13611
13612   enum { _S_threshold = 16 };
13613
13614
13615
13616
13617
13618
13619   template<typename _RandomAccessIterator, typename _Tp>
13620     void
13621     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val)
13622     {
13623       _RandomAccessIterator __next = __last;
13624       --__next;
13625       while (__val < *__next)
13626  {
13627    *__last = *__next;
13628    __last = __next;
13629    --__next;
13630  }
13631       *__last = __val;
13632     }
13633
13634
13635
13636
13637
13638
13639   template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
13640     void
13641     __unguarded_linear_insert(_RandomAccessIterator __last, _Tp __val,
13642          _Compare __comp)
13643     {
13644       _RandomAccessIterator __next = __last;
13645       --__next;
13646       while (__comp(__val, *__next))
13647  {
13648    *__last = *__next;
13649    __last = __next;
13650    --__next;
13651  }
13652       *__last = __val;
13653     }
13654
13655
13656
13657
13658
13659
13660   template<typename _RandomAccessIterator>
13661     void
13662     __insertion_sort(_RandomAccessIterator __first,
13663        _RandomAccessIterator __last)
13664     {
13665       if (__first == __last)
13666  return;
13667
13668       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13669  {
13670    typename iterator_traits<_RandomAccessIterator>::value_type
13671      __val = *__i;
13672    if (__val < *__first)
13673      {
13674        std::copy_backward(__first, __i, __i + 1);
13675        *__first = __val;
13676      }
13677    else
13678      std::__unguarded_linear_insert(__i, __val);
13679  }
13680     }
13681
13682
13683
13684
13685
13686
13687   template<typename _RandomAccessIterator, typename _Compare>
13688     void
13689     __insertion_sort(_RandomAccessIterator __first,
13690        _RandomAccessIterator __last, _Compare __comp)
13691     {
13692       if (__first == __last) return;
13693
13694       for (_RandomAccessIterator __i = __first + 1; __i != __last; ++__i)
13695  {
13696    typename iterator_traits<_RandomAccessIterator>::value_type
13697      __val = *__i;
13698    if (__comp(__val, *__first))
13699      {
13700        std::copy_backward(__first, __i, __i + 1);
13701        *__first = __val;
13702      }
13703    else
13704      std::__unguarded_linear_insert(__i, __val, __comp);
13705  }
13706     }
13707
13708
13709
13710
13711
13712
13713   template<typename _RandomAccessIterator>
13714     inline void
13715     __unguarded_insertion_sort(_RandomAccessIterator __first,
13716           _RandomAccessIterator __last)
13717     {
13718       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13719  _ValueType;
13720
13721       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
13722  std::__unguarded_linear_insert(__i, _ValueType(*__i));
13723     }
13724
13725
13726
13727
13728
13729
13730   template<typename _RandomAccessIterator, typename _Compare>
13731     inline void
13732     __unguarded_insertion_sort(_RandomAccessIterator __first,
13733           _RandomAccessIterator __last, _Compare __comp)
13734     {
13735       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13736  _ValueType;
13737
13738       for (_RandomAccessIterator __i = __first; __i != __last; ++__i)
13739  std::__unguarded_linear_insert(__i, _ValueType(*__i), __comp);
13740     }
13741
13742
13743
13744
13745
13746
13747   template<typename _RandomAccessIterator>
13748     void
13749     __final_insertion_sort(_RandomAccessIterator __first,
13750       _RandomAccessIterator __last)
13751     {
13752       if (__last - __first > int(_S_threshold))
13753  {
13754    std::__insertion_sort(__first, __first + int(_S_threshold));
13755    std::__unguarded_insertion_sort(__first + int(_S_threshold), __last);
13756  }
13757       else
13758  std::__insertion_sort(__first, __last);
13759     }
13760
13761
13762
13763
13764
13765
13766   template<typename _RandomAccessIterator, typename _Compare>
13767     void
13768     __final_insertion_sort(_RandomAccessIterator __first,
13769       _RandomAccessIterator __last, _Compare __comp)
13770     {
13771       if (__last - __first > int(_S_threshold))
13772  {
13773    std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
13774    std::__unguarded_insertion_sort(__first + int(_S_threshold), __last,
13775        __comp);
13776  }
13777       else
13778  std::__insertion_sort(__first, __last, __comp);
13779     }
13780
13781
13782
13783
13784
13785
13786   template<typename _Size>
13787     inline _Size
13788     __lg(_Size __n)
13789     {
13790       _Size __k;
13791       for (__k = 0; __n != 1; __n >>= 1)
13792  ++__k;
13793       return __k;
13794     }
13795 # 2416 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
13796   template<typename _RandomAccessIterator>
13797     void
13798     partial_sort(_RandomAccessIterator __first,
13799    _RandomAccessIterator __middle,
13800    _RandomAccessIterator __last)
13801     {
13802       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13803  _ValueType;
13804
13805
13806      
13807
13808      
13809       ;
13810       ;
13811
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);
13817     }
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>
13820     void
13821     partial_sort(_RandomAccessIterator __first,
13822    _RandomAccessIterator __middle,
13823    _RandomAccessIterator __last,
13824    _Compare __comp)
13825     {
13826       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13827  _ValueType;
13828
13829
13830      
13831
13832      
13833
13834       ;
13835       ;
13836
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);
13842     }
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)
13849     {
13850       typedef typename iterator_traits<_InputIterator>::value_type
13851  _InputValueType;
13852       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13853  _OutputValueType;
13854       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13855  _DistanceType;
13856
13857
13858      
13859      
13860
13861      
13862      
13863       ;
13864       ;
13865
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)
13870  {
13871    *__result_real_last = *__first;
13872    ++__result_real_last;
13873    ++__first;
13874  }
13875       std::make_heap(__result_first, __result_real_last);
13876       while (__first != __last)
13877  {
13878    if (*__first < *__result_first)
13879      std::__adjust_heap(__result_first, _DistanceType(0),
13880           _DistanceType(__result_real_last
13881           - __result_first),
13882           _InputValueType(*__first));
13883    ++__first;
13884  }
13885       std::sort_heap(__result_first, __result_real_last);
13886       return __result_real_last;
13887     }
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,
13894         _Compare __comp)
13895     {
13896       typedef typename iterator_traits<_InputIterator>::value_type
13897  _InputValueType;
13898       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13899  _OutputValueType;
13900       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
13901  _DistanceType;
13902
13903
13904      
13905      
13906
13907      
13908
13909      
13910
13911       ;
13912       ;
13913
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)
13918  {
13919    *__result_real_last = *__first;
13920    ++__result_real_last;
13921    ++__first;
13922  }
13923       std::make_heap(__result_first, __result_real_last, __comp);
13924       while (__first != __last)
13925  {
13926    if (__comp(*__first, *__result_first))
13927      std::__adjust_heap(__result_first, _DistanceType(0),
13928           _DistanceType(__result_real_last
13929           - __result_first),
13930           _InputValueType(*__first),
13931           __comp);
13932    ++__first;
13933  }
13934       std::sort_heap(__result_first, __result_real_last, __comp);
13935       return __result_real_last;
13936     }
13937
13938
13939
13940
13941
13942
13943   template<typename _RandomAccessIterator, typename _Size>
13944     void
13945     __introsort_loop(_RandomAccessIterator __first,
13946        _RandomAccessIterator __last,
13947        _Size __depth_limit)
13948     {
13949       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13950  _ValueType;
13951
13952       while (__last - __first > int(_S_threshold))
13953  {
13954    if (__depth_limit == 0)
13955      {
13956        std::partial_sort(__first, __last, __last);
13957        return;
13958      }
13959    --__depth_limit;
13960    _RandomAccessIterator __cut =
13961      std::__unguarded_partition(__first, __last,
13962            _ValueType(std::__median(*__first,
13963         *(__first
13964           + (__last
13965              - __first)
13966           / 2),
13967         *(__last
13968           - 1))));
13969    std::__introsort_loop(__cut, __last, __depth_limit);
13970    __last = __cut;
13971  }
13972     }
13973
13974
13975
13976
13977
13978
13979   template<typename _RandomAccessIterator, typename _Size, typename _Compare>
13980     void
13981     __introsort_loop(_RandomAccessIterator __first,
13982        _RandomAccessIterator __last,
13983        _Size __depth_limit, _Compare __comp)
13984     {
13985       typedef typename iterator_traits<_RandomAccessIterator>::value_type
13986  _ValueType;
13987
13988       while (__last - __first > int(_S_threshold))
13989  {
13990    if (__depth_limit == 0)
13991      {
13992        std::partial_sort(__first, __last, __last, __comp);
13993        return;
13994      }
13995    --__depth_limit;
13996    _RandomAccessIterator __cut =
13997      std::__unguarded_partition(__first, __last,
13998            _ValueType(std::__median(*__first,
13999         *(__first
14000           + (__last
14001              - __first)
14002           / 2),
14003         *(__last - 1),
14004         __comp)),
14005            __comp);
14006    std::__introsort_loop(__cut, __last, __depth_limit, __comp);
14007    __last = __cut;
14008  }
14009     }
14010 # 2698 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14011   template<typename _RandomAccessIterator>
14012     inline void
14013     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
14014     {
14015       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14016  _ValueType;
14017
14018
14019      
14020
14021      
14022       ;
14023
14024       if (__first != __last)
14025  {
14026    std::__introsort_loop(__first, __last, __lg(__last - __first) * 2);
14027    std::__final_insertion_sort(__first, __last);
14028  }
14029     }
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>
14032     inline void
14033     sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
14034   _Compare __comp)
14035     {
14036       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14037  _ValueType;
14038
14039
14040      
14041
14042      
14043
14044       ;
14045
14046       if (__first != __last)
14047  {
14048    std::__introsort_loop(__first, __last, __lg(__last - __first) * 2,
14049     __comp);
14050    std::__final_insertion_sort(__first, __last, __comp);
14051  }
14052     }
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>
14055     _ForwardIterator
14056     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
14057   const _Tp& __val)
14058     {
14059       typedef typename iterator_traits<_ForwardIterator>::value_type
14060  _ValueType;
14061       typedef typename iterator_traits<_ForwardIterator>::difference_type
14062  _DistanceType;
14063
14064
14065
14066
14067
14068
14069      
14070      
14071      
14072       ;
14073
14074       _DistanceType __len = std::distance(__first, __last);
14075       _DistanceType __half;
14076       _ForwardIterator __middle;
14077
14078       while (__len > 0)
14079  {
14080    __half = __len >> 1;
14081    __middle = __first;
14082    std::advance(__middle, __half);
14083    if (*__middle < __val)
14084      {
14085        __first = __middle;
14086        ++__first;
14087        __len = __len - __half - 1;
14088      }
14089    else
14090      __len = __half;
14091  }
14092       return __first;
14093     }
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>
14096     _ForwardIterator
14097     lower_bound(_ForwardIterator __first, _ForwardIterator __last,
14098   const _Tp& __val, _Compare __comp)
14099     {
14100       typedef typename iterator_traits<_ForwardIterator>::value_type
14101  _ValueType;
14102       typedef typename iterator_traits<_ForwardIterator>::difference_type
14103  _DistanceType;
14104
14105
14106      
14107      
14108
14109       ;
14110
14111       _DistanceType __len = std::distance(__first, __last);
14112       _DistanceType __half;
14113       _ForwardIterator __middle;
14114
14115       while (__len > 0)
14116  {
14117    __half = __len >> 1;
14118    __middle = __first;
14119    std::advance(__middle, __half);
14120    if (__comp(*__middle, __val))
14121      {
14122        __first = __middle;
14123        ++__first;
14124        __len = __len - __half - 1;
14125      }
14126    else
14127      __len = __half;
14128  }
14129       return __first;
14130     }
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>
14133     _ForwardIterator
14134     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
14135   const _Tp& __val)
14136     {
14137       typedef typename iterator_traits<_ForwardIterator>::value_type
14138  _ValueType;
14139       typedef typename iterator_traits<_ForwardIterator>::difference_type
14140  _DistanceType;
14141
14142
14143
14144      
14145      
14146      
14147       ;
14148
14149       _DistanceType __len = std::distance(__first, __last);
14150       _DistanceType __half;
14151       _ForwardIterator __middle;
14152
14153       while (__len > 0)
14154  {
14155    __half = __len >> 1;
14156    __middle = __first;
14157    std::advance(__middle, __half);
14158    if (__val < *__middle)
14159      __len = __half;
14160    else
14161      {
14162        __first = __middle;
14163        ++__first;
14164        __len = __len - __half - 1;
14165      }
14166  }
14167       return __first;
14168     }
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>
14171     _ForwardIterator
14172     upper_bound(_ForwardIterator __first, _ForwardIterator __last,
14173   const _Tp& __val, _Compare __comp)
14174     {
14175       typedef typename iterator_traits<_ForwardIterator>::value_type
14176  _ValueType;
14177       typedef typename iterator_traits<_ForwardIterator>::difference_type
14178  _DistanceType;
14179
14180
14181      
14182      
14183
14184       ;
14185
14186       _DistanceType __len = std::distance(__first, __last);
14187       _DistanceType __half;
14188       _ForwardIterator __middle;
14189
14190       while (__len > 0)
14191  {
14192    __half = __len >> 1;
14193    __middle = __first;
14194    std::advance(__middle, __half);
14195    if (__comp(__val, *__middle))
14196      __len = __half;
14197    else
14198      {
14199        __first = __middle;
14200        ++__first;
14201        __len = __len - __half - 1;
14202      }
14203  }
14204       return __first;
14205     }
14206
14207
14208
14209
14210
14211
14212   template<typename _BidirectionalIterator, typename _Distance>
14213     void
14214     __merge_without_buffer(_BidirectionalIterator __first,
14215       _BidirectionalIterator __middle,
14216       _BidirectionalIterator __last,
14217       _Distance __len1, _Distance __len2)
14218     {
14219       if (__len1 == 0 || __len2 == 0)
14220  return;
14221       if (__len1 + __len2 == 2)
14222  {
14223    if (*__middle < *__first)
14224      std::iter_swap(__first, __middle);
14225    return;
14226  }
14227       _BidirectionalIterator __first_cut = __first;
14228       _BidirectionalIterator __second_cut = __middle;
14229       _Distance __len11 = 0;
14230       _Distance __len22 = 0;
14231       if (__len1 > __len2)
14232  {
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);
14237  }
14238       else
14239  {
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);
14244  }
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,
14249       __len11, __len22);
14250       std::__merge_without_buffer(__new_middle, __second_cut, __last,
14251       __len1 - __len11, __len2 - __len22);
14252     }
14253
14254
14255
14256
14257
14258
14259   template<typename _BidirectionalIterator, typename _Distance,
14260     typename _Compare>
14261     void
14262     __merge_without_buffer(_BidirectionalIterator __first,
14263                            _BidirectionalIterator __middle,
14264       _BidirectionalIterator __last,
14265       _Distance __len1, _Distance __len2,
14266       _Compare __comp)
14267     {
14268       if (__len1 == 0 || __len2 == 0)
14269  return;
14270       if (__len1 + __len2 == 2)
14271  {
14272    if (__comp(*__middle, *__first))
14273      std::iter_swap(__first, __middle);
14274    return;
14275  }
14276       _BidirectionalIterator __first_cut = __first;
14277       _BidirectionalIterator __second_cut = __middle;
14278       _Distance __len11 = 0;
14279       _Distance __len22 = 0;
14280       if (__len1 > __len2)
14281  {
14282    __len11 = __len1 / 2;
14283    std::advance(__first_cut, __len11);
14284    __second_cut = std::lower_bound(__middle, __last, *__first_cut,
14285        __comp);
14286    __len22 = std::distance(__middle, __second_cut);
14287  }
14288       else
14289  {
14290    __len22 = __len2 / 2;
14291    std::advance(__second_cut, __len22);
14292    __first_cut = std::upper_bound(__first, __middle, *__second_cut,
14293       __comp);
14294    __len11 = std::distance(__first, __first_cut);
14295  }
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);
14303     }
14304
14305
14306
14307
14308
14309
14310   template<typename _RandomAccessIterator>
14311     void
14312     __inplace_stable_sort(_RandomAccessIterator __first,
14313      _RandomAccessIterator __last)
14314     {
14315       if (__last - __first < 15)
14316  {
14317    std::__insertion_sort(__first, __last);
14318    return;
14319  }
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);
14326     }
14327
14328
14329
14330
14331
14332
14333   template<typename _RandomAccessIterator, typename _Compare>
14334     void
14335     __inplace_stable_sort(_RandomAccessIterator __first,
14336      _RandomAccessIterator __last, _Compare __comp)
14337     {
14338       if (__last - __first < 15)
14339  {
14340    std::__insertion_sort(__first, __last, __comp);
14341    return;
14342  }
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,
14348       __last - __middle,
14349       __comp);
14350     }
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>
14354     _OutputIterator
14355     merge(_InputIterator1 __first1, _InputIterator1 __last1,
14356    _InputIterator2 __first2, _InputIterator2 __last2,
14357    _OutputIterator __result)
14358     {
14359
14360      
14361      
14362      
14363
14364      
14365
14366
14367      
14368
14369       ;
14370       ;
14371
14372       while (__first1 != __last1 && __first2 != __last2)
14373  {
14374    if (*__first2 < *__first1)
14375      {
14376        *__result = *__first2;
14377        ++__first2;
14378      }
14379    else
14380      {
14381        *__result = *__first1;
14382        ++__first1;
14383      }
14384    ++__result;
14385  }
14386       return std::copy(__first2, __last2, std::copy(__first1, __last1,
14387           __result));
14388     }
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>
14392     _OutputIterator
14393     merge(_InputIterator1 __first1, _InputIterator1 __last1,
14394    _InputIterator2 __first2, _InputIterator2 __last2,
14395    _OutputIterator __result, _Compare __comp)
14396     {
14397
14398      
14399      
14400      
14401
14402
14403      
14404
14405      
14406
14407
14408       ;
14409       ;
14410
14411       while (__first1 != __last1 && __first2 != __last2)
14412  {
14413    if (__comp(*__first2, *__first1))
14414      {
14415        *__result = *__first2;
14416        ++__first2;
14417      }
14418    else
14419      {
14420        *__result = *__first1;
14421        ++__first1;
14422      }
14423    ++__result;
14424  }
14425       return std::copy(__first2, __last2, std::copy(__first1, __last1,
14426           __result));
14427     }
14428
14429   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
14430     typename _Distance>
14431     void
14432     __merge_sort_loop(_RandomAccessIterator1 __first,
14433         _RandomAccessIterator1 __last,
14434         _RandomAccessIterator2 __result,
14435         _Distance __step_size)
14436     {
14437       const _Distance __two_step = 2 * __step_size;
14438
14439       while (__last - __first >= __two_step)
14440  {
14441    __result = std::merge(__first, __first + __step_size,
14442     __first + __step_size, __first + __two_step,
14443     __result);
14444    __first += __two_step;
14445  }
14446
14447       __step_size = std::min(_Distance(__last - __first), __step_size);
14448       std::merge(__first, __first + __step_size, __first + __step_size, __last,
14449    __result);
14450     }
14451
14452   template<typename _RandomAccessIterator1, typename _RandomAccessIterator2,
14453     typename _Distance, typename _Compare>
14454     void
14455     __merge_sort_loop(_RandomAccessIterator1 __first,
14456         _RandomAccessIterator1 __last,
14457         _RandomAccessIterator2 __result, _Distance __step_size,
14458         _Compare __comp)
14459     {
14460       const _Distance __two_step = 2 * __step_size;
14461
14462       while (__last - __first >= __two_step)
14463  {
14464    __result = std::merge(__first, __first + __step_size,
14465     __first + __step_size, __first + __two_step,
14466     __result,
14467     __comp);
14468    __first += __two_step;
14469  }
14470       __step_size = std::min(_Distance(__last - __first), __step_size);
14471
14472       std::merge(__first, __first + __step_size,
14473    __first + __step_size, __last,
14474    __result,
14475    __comp);
14476     }
14477
14478   enum { _S_chunk_size = 7 };
14479
14480   template<typename _RandomAccessIterator, typename _Distance>
14481     void
14482     __chunk_insertion_sort(_RandomAccessIterator __first,
14483       _RandomAccessIterator __last,
14484       _Distance __chunk_size)
14485     {
14486       while (__last - __first >= __chunk_size)
14487  {
14488    std::__insertion_sort(__first, __first + __chunk_size);
14489    __first += __chunk_size;
14490  }
14491       std::__insertion_sort(__first, __last);
14492     }
14493
14494   template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
14495     void
14496     __chunk_insertion_sort(_RandomAccessIterator __first,
14497       _RandomAccessIterator __last,
14498       _Distance __chunk_size, _Compare __comp)
14499     {
14500       while (__last - __first >= __chunk_size)
14501  {
14502    std::__insertion_sort(__first, __first + __chunk_size, __comp);
14503    __first += __chunk_size;
14504  }
14505       std::__insertion_sort(__first, __last, __comp);
14506     }
14507
14508   template<typename _RandomAccessIterator, typename _Pointer>
14509     void
14510     __merge_sort_with_buffer(_RandomAccessIterator __first,
14511         _RandomAccessIterator __last,
14512                              _Pointer __buffer)
14513     {
14514       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14515  _Distance;
14516
14517       const _Distance __len = __last - __first;
14518       const _Pointer __buffer_last = __buffer + __len;
14519
14520       _Distance __step_size = _S_chunk_size;
14521       std::__chunk_insertion_sort(__first, __last, __step_size);
14522
14523       while (__step_size < __len)
14524  {
14525    std::__merge_sort_loop(__first, __last, __buffer, __step_size);
14526    __step_size *= 2;
14527    std::__merge_sort_loop(__buffer, __buffer_last, __first, __step_size);
14528    __step_size *= 2;
14529  }
14530     }
14531
14532   template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
14533     void
14534     __merge_sort_with_buffer(_RandomAccessIterator __first,
14535         _RandomAccessIterator __last,
14536                              _Pointer __buffer, _Compare __comp)
14537     {
14538       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14539  _Distance;
14540
14541       const _Distance __len = __last - __first;
14542       const _Pointer __buffer_last = __buffer + __len;
14543
14544       _Distance __step_size = _S_chunk_size;
14545       std::__chunk_insertion_sort(__first, __last, __step_size, __comp);
14546
14547       while (__step_size < __len)
14548  {
14549    std::__merge_sort_loop(__first, __last, __buffer,
14550      __step_size, __comp);
14551    __step_size *= 2;
14552    std::__merge_sort_loop(__buffer, __buffer_last, __first,
14553      __step_size, __comp);
14554    __step_size *= 2;
14555  }
14556     }
14557
14558
14559
14560
14561
14562
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)
14571     {
14572       if (__first1 == __last1)
14573  return std::copy_backward(__first2, __last2, __result);
14574       if (__first2 == __last2)
14575  return std::copy_backward(__first1, __last1, __result);
14576       --__last1;
14577       --__last2;
14578       while (true)
14579  {
14580    if (*__last2 < *__last1)
14581      {
14582        *--__result = *__last1;
14583        if (__first1 == __last1)
14584   return std::copy_backward(__first2, ++__last2, __result);
14585        --__last1;
14586      }
14587    else
14588      {
14589        *--__result = *__last2;
14590        if (__first2 == __last2)
14591   return std::copy_backward(__first1, ++__last1, __result);
14592        --__last2;
14593      }
14594  }
14595     }
14596
14597
14598
14599
14600
14601
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,
14610        _Compare __comp)
14611     {
14612       if (__first1 == __last1)
14613  return std::copy_backward(__first2, __last2, __result);
14614       if (__first2 == __last2)
14615  return std::copy_backward(__first1, __last1, __result);
14616       --__last1;
14617       --__last2;
14618       while (true)
14619  {
14620    if (__comp(*__last2, *__last1))
14621      {
14622        *--__result = *__last1;
14623        if (__first1 == __last1)
14624   return std::copy_backward(__first2, ++__last2, __result);
14625        --__last1;
14626      }
14627    else
14628      {
14629        *--__result = *__last2;
14630        if (__first2 == __last2)
14631   return std::copy_backward(__first1, ++__last1, __result);
14632        --__last2;
14633      }
14634  }
14635     }
14636
14637
14638
14639
14640
14641
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)
14651     {
14652       _BidirectionalIterator2 __buffer_end;
14653       if (__len1 > __len2 && __len2 <= __buffer_size)
14654  {
14655    __buffer_end = std::copy(__middle, __last, __buffer);
14656    std::copy_backward(__first, __middle, __last);
14657    return std::copy(__buffer, __buffer_end, __first);
14658  }
14659       else if (__len1 <= __buffer_size)
14660  {
14661    __buffer_end = std::copy(__first, __middle, __buffer);
14662    std::copy(__middle, __last, __first);
14663    return std::copy_backward(__buffer, __buffer_end, __last);
14664  }
14665       else
14666  {
14667    std::rotate(__first, __middle, __last);
14668    std::advance(__first, std::distance(__middle, __last));
14669    return __first;
14670  }
14671     }
14672
14673
14674
14675
14676
14677
14678   template<typename _BidirectionalIterator, typename _Distance,
14679     typename _Pointer>
14680     void
14681     __merge_adaptive(_BidirectionalIterator __first,
14682                      _BidirectionalIterator __middle,
14683        _BidirectionalIterator __last,
14684        _Distance __len1, _Distance __len2,
14685        _Pointer __buffer, _Distance __buffer_size)
14686     {
14687       if (__len1 <= __len2 && __len1 <= __buffer_size)
14688  {
14689    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
14690    std::merge(__buffer, __buffer_end, __middle, __last, __first);
14691  }
14692       else if (__len2 <= __buffer_size)
14693  {
14694    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
14695    std::__merge_backward(__first, __middle, __buffer,
14696     __buffer_end, __last);
14697  }
14698       else
14699  {
14700    _BidirectionalIterator __first_cut = __first;
14701    _BidirectionalIterator __second_cut = __middle;
14702    _Distance __len11 = 0;
14703    _Distance __len22 = 0;
14704    if (__len1 > __len2)
14705      {
14706        __len11 = __len1 / 2;
14707        std::advance(__first_cut, __len11);
14708        __second_cut = std::lower_bound(__middle, __last,
14709            *__first_cut);
14710        __len22 = std::distance(__middle, __second_cut);
14711      }
14712    else
14713      {
14714        __len22 = __len2 / 2;
14715        std::advance(__second_cut, __len22);
14716        __first_cut = std::upper_bound(__first, __middle,
14717           *__second_cut);
14718        __len11 = std::distance(__first, __first_cut);
14719      }
14720    _BidirectionalIterator __new_middle =
14721      std::__rotate_adaptive(__first_cut, __middle, __second_cut,
14722        __len1 - __len11, __len22, __buffer,
14723        __buffer_size);
14724    std::__merge_adaptive(__first, __first_cut, __new_middle, __len11,
14725     __len22, __buffer, __buffer_size);
14726    std::__merge_adaptive(__new_middle, __second_cut, __last,
14727     __len1 - __len11,
14728     __len2 - __len22, __buffer, __buffer_size);
14729  }
14730     }
14731
14732
14733
14734
14735
14736
14737   template<typename _BidirectionalIterator, typename _Distance, typename _Pointer,
14738     typename _Compare>
14739     void
14740     __merge_adaptive(_BidirectionalIterator __first,
14741                      _BidirectionalIterator __middle,
14742        _BidirectionalIterator __last,
14743        _Distance __len1, _Distance __len2,
14744        _Pointer __buffer, _Distance __buffer_size,
14745        _Compare __comp)
14746     {
14747       if (__len1 <= __len2 && __len1 <= __buffer_size)
14748  {
14749    _Pointer __buffer_end = std::copy(__first, __middle, __buffer);
14750    std::merge(__buffer, __buffer_end, __middle, __last, __first, __comp);
14751  }
14752       else if (__len2 <= __buffer_size)
14753  {
14754    _Pointer __buffer_end = std::copy(__middle, __last, __buffer);
14755    std::__merge_backward(__first, __middle, __buffer, __buffer_end,
14756     __last, __comp);
14757  }
14758       else
14759  {
14760    _BidirectionalIterator __first_cut = __first;
14761    _BidirectionalIterator __second_cut = __middle;
14762    _Distance __len11 = 0;
14763    _Distance __len22 = 0;
14764    if (__len1 > __len2)
14765      {
14766        __len11 = __len1 / 2;
14767        std::advance(__first_cut, __len11);
14768        __second_cut = std::lower_bound(__middle, __last, *__first_cut,
14769            __comp);
14770        __len22 = std::distance(__middle, __second_cut);
14771      }
14772    else
14773      {
14774        __len22 = __len2 / 2;
14775        std::advance(__second_cut, __len22);
14776        __first_cut = std::upper_bound(__first, __middle, *__second_cut,
14777           __comp);
14778        __len11 = std::distance(__first, __first_cut);
14779      }
14780    _BidirectionalIterator __new_middle =
14781      std::__rotate_adaptive(__first_cut, __middle, __second_cut,
14782        __len1 - __len11, __len22, __buffer,
14783        __buffer_size);
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,
14787     __len1 - __len11,
14788     __len2 - __len22, __buffer,
14789     __buffer_size, __comp);
14790  }
14791     }
14792 # 3595 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14793   template<typename _BidirectionalIterator>
14794     void
14795     inplace_merge(_BidirectionalIterator __first,
14796     _BidirectionalIterator __middle,
14797     _BidirectionalIterator __last)
14798     {
14799       typedef typename iterator_traits<_BidirectionalIterator>::value_type
14800           _ValueType;
14801       typedef typename iterator_traits<_BidirectionalIterator>::difference_type
14802           _DistanceType;
14803
14804
14805      
14806
14807      
14808       ;
14809       ;
14810
14811       if (__first == __middle || __middle == __last)
14812  return;
14813
14814       _DistanceType __len1 = std::distance(__first, __middle);
14815       _DistanceType __len2 = std::distance(__middle, __last);
14816
14817       _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
14818           __last);
14819       if (__buf.begin() == 0)
14820  std::__merge_without_buffer(__first, __middle, __last, __len1, __len2);
14821       else
14822  std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
14823          __buf.begin(), _DistanceType(__buf.size()));
14824     }
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>
14827     void
14828     inplace_merge(_BidirectionalIterator __first,
14829     _BidirectionalIterator __middle,
14830     _BidirectionalIterator __last,
14831     _Compare __comp)
14832     {
14833       typedef typename iterator_traits<_BidirectionalIterator>::value_type
14834           _ValueType;
14835       typedef typename iterator_traits<_BidirectionalIterator>::difference_type
14836           _DistanceType;
14837
14838
14839      
14840
14841      
14842
14843       ;
14844       ;
14845
14846       if (__first == __middle || __middle == __last)
14847  return;
14848
14849       const _DistanceType __len1 = std::distance(__first, __middle);
14850       const _DistanceType __len2 = std::distance(__middle, __last);
14851
14852       _Temporary_buffer<_BidirectionalIterator, _ValueType> __buf(__first,
14853           __last);
14854       if (__buf.begin() == 0)
14855  std::__merge_without_buffer(__first, __middle, __last, __len1,
14856         __len2, __comp);
14857       else
14858  std::__merge_adaptive(__first, __middle, __last, __len1, __len2,
14859          __buf.begin(), _DistanceType(__buf.size()),
14860          __comp);
14861     }
14862
14863   template<typename _RandomAccessIterator, typename _Pointer,
14864     typename _Distance>
14865     void
14866     __stable_sort_adaptive(_RandomAccessIterator __first,
14867       _RandomAccessIterator __last,
14868                            _Pointer __buffer, _Distance __buffer_size)
14869     {
14870       const _Distance __len = (__last - __first + 1) / 2;
14871       const _RandomAccessIterator __middle = __first + __len;
14872       if (__len > __buffer_size)
14873  {
14874    std::__stable_sort_adaptive(__first, __middle,
14875           __buffer, __buffer_size);
14876    std::__stable_sort_adaptive(__middle, __last,
14877           __buffer, __buffer_size);
14878  }
14879       else
14880  {
14881    std::__merge_sort_with_buffer(__first, __middle, __buffer);
14882    std::__merge_sort_with_buffer(__middle, __last, __buffer);
14883  }
14884       std::__merge_adaptive(__first, __middle, __last,
14885        _Distance(__middle - __first),
14886        _Distance(__last - __middle),
14887        __buffer, __buffer_size);
14888     }
14889
14890   template<typename _RandomAccessIterator, typename _Pointer,
14891     typename _Distance, typename _Compare>
14892     void
14893     __stable_sort_adaptive(_RandomAccessIterator __first,
14894       _RandomAccessIterator __last,
14895                            _Pointer __buffer, _Distance __buffer_size,
14896                            _Compare __comp)
14897     {
14898       const _Distance __len = (__last - __first + 1) / 2;
14899       const _RandomAccessIterator __middle = __first + __len;
14900       if (__len > __buffer_size)
14901  {
14902    std::__stable_sort_adaptive(__first, __middle, __buffer,
14903           __buffer_size, __comp);
14904    std::__stable_sort_adaptive(__middle, __last, __buffer,
14905           __buffer_size, __comp);
14906  }
14907       else
14908  {
14909    std::__merge_sort_with_buffer(__first, __middle, __buffer, __comp);
14910    std::__merge_sort_with_buffer(__middle, __last, __buffer, __comp);
14911  }
14912       std::__merge_adaptive(__first, __middle, __last,
14913        _Distance(__middle - __first),
14914        _Distance(__last - __middle),
14915        __buffer, __buffer_size,
14916        __comp);
14917     }
14918 # 3758 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14919   template<typename _RandomAccessIterator>
14920     inline void
14921     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
14922     {
14923       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14924  _ValueType;
14925       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14926  _DistanceType;
14927
14928
14929      
14930
14931      
14932       ;
14933
14934       _Temporary_buffer<_RandomAccessIterator, _ValueType>
14935  buf(__first, __last);
14936       if (buf.begin() == 0)
14937  std::__inplace_stable_sort(__first, __last);
14938       else
14939  std::__stable_sort_adaptive(__first, __last, buf.begin(),
14940         _DistanceType(buf.size()));
14941     }
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>
14944     inline void
14945     stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
14946   _Compare __comp)
14947     {
14948       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14949  _ValueType;
14950       typedef typename iterator_traits<_RandomAccessIterator>::difference_type
14951  _DistanceType;
14952
14953
14954      
14955
14956      
14957
14958
14959       ;
14960
14961       _Temporary_buffer<_RandomAccessIterator, _ValueType> buf(__first, __last);
14962       if (buf.begin() == 0)
14963  std::__inplace_stable_sort(__first, __last, __comp);
14964       else
14965  std::__stable_sort_adaptive(__first, __last, buf.begin(),
14966         _DistanceType(buf.size()), __comp);
14967     }
14968 # 3840 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
14969   template<typename _RandomAccessIterator>
14970     void
14971     nth_element(_RandomAccessIterator __first,
14972   _RandomAccessIterator __nth,
14973   _RandomAccessIterator __last)
14974     {
14975       typedef typename iterator_traits<_RandomAccessIterator>::value_type
14976  _ValueType;
14977
14978
14979      
14980
14981      
14982       ;
14983       ;
14984
14985       while (__last - __first > 3)
14986  {
14987    _RandomAccessIterator __cut =
14988      std::__unguarded_partition(__first, __last,
14989            _ValueType(std::__median(*__first,
14990         *(__first
14991           + (__last
14992              - __first)
14993           / 2),
14994         *(__last
14995           - 1))));
14996    if (__cut <= __nth)
14997      __first = __cut;
14998    else
14999      __last = __cut;
15000  }
15001       std::__insertion_sort(__first, __last);
15002     }
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>
15005     void
15006     nth_element(_RandomAccessIterator __first,
15007   _RandomAccessIterator __nth,
15008   _RandomAccessIterator __last,
15009        _Compare __comp)
15010     {
15011       typedef typename iterator_traits<_RandomAccessIterator>::value_type
15012  _ValueType;
15013
15014
15015      
15016
15017      
15018
15019       ;
15020       ;
15021
15022       while (__last - __first > 3)
15023  {
15024    _RandomAccessIterator __cut =
15025      std::__unguarded_partition(__first, __last,
15026            _ValueType(std::__median(*__first,
15027         *(__first
15028           + (__last
15029              - __first)
15030           / 2),
15031         *(__last - 1),
15032              __comp)), __comp);
15033    if (__cut <= __nth)
15034      __first = __cut;
15035    else
15036      __last = __cut;
15037  }
15038       std::__insertion_sort(__first, __last, __comp);
15039     }
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,
15044   const _Tp& __val)
15045     {
15046       typedef typename iterator_traits<_ForwardIterator>::value_type
15047  _ValueType;
15048       typedef typename iterator_traits<_ForwardIterator>::difference_type
15049  _DistanceType;
15050
15051
15052
15053      
15054      
15055      
15056       ;
15057
15058       _DistanceType __len = std::distance(__first, __last);
15059       _DistanceType __half;
15060       _ForwardIterator __middle, __left, __right;
15061
15062       while (__len > 0)
15063  {
15064    __half = __len >> 1;
15065    __middle = __first;
15066    std::advance(__middle, __half);
15067    if (*__middle < __val)
15068      {
15069        __first = __middle;
15070        ++__first;
15071        __len = __len - __half - 1;
15072      }
15073    else if (__val < *__middle)
15074      __len = __half;
15075    else
15076      {
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);
15081      }
15082  }
15083       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
15084     }
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,
15089   const _Tp& __val,
15090   _Compare __comp)
15091     {
15092       typedef typename iterator_traits<_ForwardIterator>::value_type
15093  _ValueType;
15094       typedef typename iterator_traits<_ForwardIterator>::difference_type
15095  _DistanceType;
15096
15097
15098      
15099      
15100
15101      
15102
15103       ;
15104
15105       _DistanceType __len = std::distance(__first, __last);
15106       _DistanceType __half;
15107       _ForwardIterator __middle, __left, __right;
15108
15109       while (__len > 0)
15110  {
15111    __half = __len >> 1;
15112    __middle = __first;
15113    std::advance(__middle, __half);
15114    if (__comp(*__middle, __val))
15115      {
15116        __first = __middle;
15117        ++__first;
15118        __len = __len - __half - 1;
15119      }
15120    else if (__comp(__val, *__middle))
15121      __len = __half;
15122    else
15123      {
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);
15128      }
15129  }
15130       return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
15131     }
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>
15134     bool
15135     binary_search(_ForwardIterator __first, _ForwardIterator __last,
15136                   const _Tp& __val)
15137     {
15138
15139
15140      
15141      
15142
15143      
15144       ;
15145
15146       _ForwardIterator __i = std::lower_bound(__first, __last, __val);
15147       return __i != __last && !(__val < *__i);
15148     }
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>
15151     bool
15152     binary_search(_ForwardIterator __first, _ForwardIterator __last,
15153                   const _Tp& __val, _Compare __comp)
15154     {
15155
15156      
15157      
15158
15159      
15160
15161       ;
15162
15163       _ForwardIterator __i = std::lower_bound(__first, __last, __val, __comp);
15164       return __i != __last && !__comp(__val, *__i);
15165     }
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>
15168     bool
15169     includes(_InputIterator1 __first1, _InputIterator1 __last1,
15170       _InputIterator2 __first2, _InputIterator2 __last2)
15171     {
15172
15173      
15174      
15175      
15176
15177
15178      
15179
15180       ;
15181       ;
15182
15183       while (__first1 != __last1 && __first2 != __last2)
15184  if (*__first2 < *__first1)
15185    return false;
15186  else if(*__first1 < *__first2)
15187    ++__first1;
15188  else
15189    ++__first1, ++__first2;
15190
15191       return __first2 == __last2;
15192     }
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,
15195     typename _Compare>
15196     bool
15197     includes(_InputIterator1 __first1, _InputIterator1 __last1,
15198       _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
15199     {
15200
15201      
15202      
15203      
15204
15205
15206      
15207
15208
15209       ;
15210       ;
15211
15212       while (__first1 != __last1 && __first2 != __last2)
15213  if (__comp(*__first2, *__first1))
15214    return false;
15215  else if(__comp(*__first1, *__first2))
15216    ++__first1;
15217  else
15218    ++__first1, ++__first2;
15219
15220       return __first2 == __last2;
15221     }
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>
15225     _OutputIterator
15226     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
15227        _InputIterator2 __first2, _InputIterator2 __last2,
15228        _OutputIterator __result)
15229     {
15230
15231      
15232      
15233      
15234
15235      
15236
15237
15238      
15239
15240       ;
15241       ;
15242
15243       while (__first1 != __last1 && __first2 != __last2)
15244  {
15245    if (*__first1 < *__first2)
15246      {
15247        *__result = *__first1;
15248        ++__first1;
15249      }
15250    else if (*__first2 < *__first1)
15251      {
15252        *__result = *__first2;
15253        ++__first2;
15254      }
15255    else
15256      {
15257        *__result = *__first1;
15258        ++__first1;
15259        ++__first2;
15260      }
15261    ++__result;
15262  }
15263       return std::copy(__first2, __last2, std::copy(__first1, __last1,
15264           __result));
15265     }
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>
15269     _OutputIterator
15270     set_union(_InputIterator1 __first1, _InputIterator1 __last1,
15271        _InputIterator2 __first2, _InputIterator2 __last2,
15272        _OutputIterator __result, _Compare __comp)
15273     {
15274
15275      
15276      
15277      
15278
15279
15280      
15281
15282      
15283
15284
15285       ;
15286       ;
15287
15288       while (__first1 != __last1 && __first2 != __last2)
15289  {
15290    if (__comp(*__first1, *__first2))
15291      {
15292        *__result = *__first1;
15293        ++__first1;
15294      }
15295    else if (__comp(*__first2, *__first1))
15296      {
15297        *__result = *__first2;
15298        ++__first2;
15299      }
15300    else
15301      {
15302        *__result = *__first1;
15303        ++__first1;
15304        ++__first2;
15305      }
15306    ++__result;
15307  }
15308       return std::copy(__first2, __last2, std::copy(__first1, __last1,
15309           __result));
15310     }
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>
15314     _OutputIterator
15315     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
15316        _InputIterator2 __first2, _InputIterator2 __last2,
15317        _OutputIterator __result)
15318     {
15319
15320      
15321      
15322      
15323
15324      
15325
15326
15327      
15328
15329       ;
15330       ;
15331
15332       while (__first1 != __last1 && __first2 != __last2)
15333  if (*__first1 < *__first2)
15334    ++__first1;
15335  else if (*__first2 < *__first1)
15336    ++__first2;
15337  else
15338    {
15339      *__result = *__first1;
15340      ++__first1;
15341      ++__first2;
15342      ++__result;
15343    }
15344       return __result;
15345     }
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>
15349     _OutputIterator
15350     set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,
15351        _InputIterator2 __first2, _InputIterator2 __last2,
15352        _OutputIterator __result, _Compare __comp)
15353     {
15354
15355      
15356      
15357      
15358
15359
15360      
15361
15362      
15363
15364
15365       ;
15366       ;
15367
15368       while (__first1 != __last1 && __first2 != __last2)
15369  if (__comp(*__first1, *__first2))
15370    ++__first1;
15371  else if (__comp(*__first2, *__first1))
15372    ++__first2;
15373  else
15374    {
15375      *__result = *__first1;
15376      ++__first1;
15377      ++__first2;
15378      ++__result;
15379    }
15380       return __result;
15381     }
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>
15385     _OutputIterator
15386     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15387      _InputIterator2 __first2, _InputIterator2 __last2,
15388      _OutputIterator __result)
15389     {
15390
15391      
15392      
15393      
15394
15395      
15396
15397
15398      
15399
15400       ;
15401       ;
15402
15403       while (__first1 != __last1 && __first2 != __last2)
15404  if (*__first1 < *__first2)
15405    {
15406      *__result = *__first1;
15407      ++__first1;
15408      ++__result;
15409    }
15410  else if (*__first2 < *__first1)
15411    ++__first2;
15412  else
15413    {
15414      ++__first1;
15415      ++__first2;
15416    }
15417       return std::copy(__first1, __last1, __result);
15418     }
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>
15422     _OutputIterator
15423     set_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15424      _InputIterator2 __first2, _InputIterator2 __last2,
15425      _OutputIterator __result, _Compare __comp)
15426     {
15427
15428      
15429      
15430      
15431
15432
15433      
15434
15435      
15436
15437
15438       ;
15439       ;
15440
15441       while (__first1 != __last1 && __first2 != __last2)
15442  if (__comp(*__first1, *__first2))
15443    {
15444      *__result = *__first1;
15445      ++__first1;
15446      ++__result;
15447    }
15448  else if (__comp(*__first2, *__first1))
15449    ++__first2;
15450  else
15451    {
15452      ++__first1;
15453      ++__first2;
15454    }
15455       return std::copy(__first1, __last1, __result);
15456     }
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>
15460     _OutputIterator
15461     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15462         _InputIterator2 __first2, _InputIterator2 __last2,
15463         _OutputIterator __result)
15464     {
15465
15466      
15467      
15468      
15469
15470      
15471
15472
15473      
15474
15475       ;
15476       ;
15477
15478       while (__first1 != __last1 && __first2 != __last2)
15479  if (*__first1 < *__first2)
15480    {
15481      *__result = *__first1;
15482      ++__first1;
15483      ++__result;
15484    }
15485  else if (*__first2 < *__first1)
15486    {
15487      *__result = *__first2;
15488      ++__first2;
15489      ++__result;
15490    }
15491  else
15492    {
15493      ++__first1;
15494      ++__first2;
15495    }
15496       return std::copy(__first2, __last2, std::copy(__first1,
15497           __last1, __result));
15498     }
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>
15502     _OutputIterator
15503     set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,
15504         _InputIterator2 __first2, _InputIterator2 __last2,
15505         _OutputIterator __result,
15506         _Compare __comp)
15507     {
15508
15509      
15510      
15511      
15512
15513
15514      
15515
15516      
15517
15518
15519       ;
15520       ;
15521
15522       while (__first1 != __last1 && __first2 != __last2)
15523  if (__comp(*__first1, *__first2))
15524    {
15525      *__result = *__first1;
15526      ++__first1;
15527      ++__result;
15528    }
15529  else if (__comp(*__first2, *__first1))
15530    {
15531      *__result = *__first2;
15532      ++__first2;
15533      ++__result;
15534    }
15535  else
15536    {
15537      ++__first1;
15538      ++__first2;
15539    }
15540       return std::copy(__first2, __last2, std::copy(__first1,
15541           __last1, __result));
15542     }
15543 # 4683 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15544   template<typename _ForwardIterator>
15545     _ForwardIterator
15546     max_element(_ForwardIterator __first, _ForwardIterator __last)
15547     {
15548
15549      
15550      
15551
15552       ;
15553
15554       if (__first == __last)
15555  return __first;
15556       _ForwardIterator __result = __first;
15557       while (++__first != __last)
15558  if (*__result < *__first)
15559    __result = __first;
15560       return __result;
15561     }
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>
15564     _ForwardIterator
15565     max_element(_ForwardIterator __first, _ForwardIterator __last,
15566   _Compare __comp)
15567     {
15568
15569      
15570      
15571
15572
15573       ;
15574
15575       if (__first == __last) return __first;
15576       _ForwardIterator __result = __first;
15577       while (++__first != __last)
15578  if (__comp(*__result, *__first)) __result = __first;
15579       return __result;
15580     }
15581
15582
15583
15584
15585
15586
15587
15588   template<typename _ForwardIterator>
15589     _ForwardIterator
15590     min_element(_ForwardIterator __first, _ForwardIterator __last)
15591     {
15592
15593      
15594      
15595
15596       ;
15597
15598       if (__first == __last)
15599  return __first;
15600       _ForwardIterator __result = __first;
15601       while (++__first != __last)
15602  if (*__first < *__result)
15603    __result = __first;
15604       return __result;
15605     }
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>
15608     _ForwardIterator
15609     min_element(_ForwardIterator __first, _ForwardIterator __last,
15610   _Compare __comp)
15611     {
15612
15613      
15614      
15615
15616
15617       ;
15618
15619       if (__first == __last)
15620  return __first;
15621       _ForwardIterator __result = __first;
15622       while (++__first != __last)
15623  if (__comp(*__first, *__result))
15624    __result = __first;
15625       return __result;
15626     }
15627 # 4797 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15628   template<typename _BidirectionalIterator>
15629     bool
15630     next_permutation(_BidirectionalIterator __first,
15631        _BidirectionalIterator __last)
15632     {
15633
15634      
15635
15636      
15637
15638       ;
15639
15640       if (__first == __last)
15641  return false;
15642       _BidirectionalIterator __i = __first;
15643       ++__i;
15644       if (__i == __last)
15645  return false;
15646       __i = __last;
15647       --__i;
15648
15649       for(;;)
15650  {
15651    _BidirectionalIterator __ii = __i;
15652    --__i;
15653    if (*__i < *__ii)
15654      {
15655        _BidirectionalIterator __j = __last;
15656        while (!(*__i < *--__j))
15657   {}
15658        std::iter_swap(__i, __j);
15659        std::reverse(__ii, __last);
15660        return true;
15661      }
15662    if (__i == __first)
15663      {
15664        std::reverse(__first, __last);
15665        return false;
15666      }
15667  }
15668     }
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>
15671     bool
15672     next_permutation(_BidirectionalIterator __first,
15673        _BidirectionalIterator __last, _Compare __comp)
15674     {
15675
15676      
15677
15678      
15679
15680
15681       ;
15682
15683       if (__first == __last)
15684  return false;
15685       _BidirectionalIterator __i = __first;
15686       ++__i;
15687       if (__i == __last)
15688  return false;
15689       __i = __last;
15690       --__i;
15691
15692       for(;;)
15693  {
15694    _BidirectionalIterator __ii = __i;
15695    --__i;
15696    if (__comp(*__i, *__ii))
15697      {
15698        _BidirectionalIterator __j = __last;
15699        while (!__comp(*__i, *--__j))
15700   {}
15701        std::iter_swap(__i, __j);
15702        std::reverse(__ii, __last);
15703        return true;
15704      }
15705    if (__i == __first)
15706      {
15707        std::reverse(__first, __last);
15708        return false;
15709      }
15710  }
15711     }
15712 # 4908 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/bits/stl_algo.h" 3
15713   template<typename _BidirectionalIterator>
15714     bool
15715     prev_permutation(_BidirectionalIterator __first,
15716        _BidirectionalIterator __last)
15717     {
15718
15719      
15720
15721      
15722
15723       ;
15724
15725       if (__first == __last)
15726  return false;
15727       _BidirectionalIterator __i = __first;
15728       ++__i;
15729       if (__i == __last)
15730  return false;
15731       __i = __last;
15732       --__i;
15733
15734       for(;;)
15735  {
15736    _BidirectionalIterator __ii = __i;
15737    --__i;
15738    if (*__ii < *__i)
15739      {
15740        _BidirectionalIterator __j = __last;
15741        while (!(*--__j < *__i))
15742   {}
15743        std::iter_swap(__i, __j);
15744        std::reverse(__ii, __last);
15745        return true;
15746      }
15747    if (__i == __first)
15748      {
15749        std::reverse(__first, __last);
15750        return false;
15751      }
15752  }
15753     }
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>
15756     bool
15757     prev_permutation(_BidirectionalIterator __first,
15758        _BidirectionalIterator __last, _Compare __comp)
15759     {
15760
15761      
15762
15763      
15764
15765
15766       ;
15767
15768       if (__first == __last)
15769  return false;
15770       _BidirectionalIterator __i = __first;
15771       ++__i;
15772       if (__i == __last)
15773  return false;
15774       __i = __last;
15775       --__i;
15776
15777       for(;;)
15778  {
15779    _BidirectionalIterator __ii = __i;
15780    --__i;
15781    if (__comp(*__ii, *__i))
15782      {
15783        _BidirectionalIterator __j = __last;
15784        while (!__comp(*--__j, *__i))
15785   {}
15786        std::iter_swap(__i, __j);
15787        std::reverse(__ii, __last);
15788        return true;
15789      }
15790    if (__i == __first)
15791      {
15792        std::reverse(__first, __last);
15793        return false;
15794      }
15795  }
15796     }
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>
15799     _InputIterator
15800     find_first_of(_InputIterator __first1, _InputIterator __last1,
15801     _ForwardIterator __first2, _ForwardIterator __last2)
15802     {
15803
15804      
15805      
15806      
15807
15808
15809       ;
15810       ;
15811
15812       for ( ; __first1 != __last1; ++__first1)
15813  for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
15814    if (*__first1 == *__iter)
15815      return __first1;
15816       return __last1;
15817     }
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>
15821     _InputIterator
15822     find_first_of(_InputIterator __first1, _InputIterator __last1,
15823     _ForwardIterator __first2, _ForwardIterator __last2,
15824     _BinaryPredicate __comp)
15825     {
15826
15827      
15828      
15829      
15830
15831
15832       ;
15833       ;
15834
15835       for ( ; __first1 != __last1; ++__first1)
15836  for (_ForwardIterator __iter = __first2; __iter != __last2; ++__iter)
15837    if (__comp(*__first1, *__iter))
15838      return __first1;
15839       return __last1;
15840     }
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>
15843     _ForwardIterator1
15844     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15845         _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15846         forward_iterator_tag, forward_iterator_tag)
15847     {
15848       if (__first2 == __last2)
15849  return __last1;
15850       else
15851  {
15852    _ForwardIterator1 __result = __last1;
15853    while (1)
15854      {
15855        _ForwardIterator1 __new_result
15856   = std::search(__first1, __last1, __first2, __last2);
15857        if (__new_result == __last1)
15858   return __result;
15859        else
15860   {
15861     __result = __new_result;
15862     __first1 = __new_result;
15863     ++__first1;
15864   }
15865      }
15866  }
15867     }
15868
15869   template<typename _ForwardIterator1, typename _ForwardIterator2,
15870     typename _BinaryPredicate>
15871     _ForwardIterator1
15872     __find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
15873         _ForwardIterator2 __first2, _ForwardIterator2 __last2,
15874         forward_iterator_tag, forward_iterator_tag,
15875         _BinaryPredicate __comp)
15876     {
15877       if (__first2 == __last2)
15878  return __last1;
15879       else
15880  {
15881    _ForwardIterator1 __result = __last1;
15882    while (1)
15883      {
15884        _ForwardIterator1 __new_result
15885   = std::search(__first1, __last1, __first2, __last2, __comp);
15886        if (__new_result == __last1)
15887   return __result;
15888        else
15889   {
15890     __result = __new_result;
15891     __first1 = __new_result;
15892     ++__first1;
15893   }
15894      }
15895  }
15896     }
15897
15898
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)
15906     {
15907
15908      
15909
15910      
15911
15912
15913       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
15914       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
15915
15916       _RevIterator1 __rlast1(__first1);
15917       _RevIterator2 __rlast2(__first2);
15918       _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
15919          _RevIterator2(__last2), __rlast2);
15920
15921       if (__rresult == __rlast1)
15922  return __last1;
15923       else
15924  {
15925    _BidirectionalIterator1 __result = __rresult.base();
15926    std::advance(__result, -std::distance(__first2, __last2));
15927    return __result;
15928  }
15929     }
15930
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)
15940     {
15941
15942      
15943
15944      
15945
15946
15947       typedef reverse_iterator<_BidirectionalIterator1> _RevIterator1;
15948       typedef reverse_iterator<_BidirectionalIterator2> _RevIterator2;
15949
15950       _RevIterator1 __rlast1(__first1);
15951       _RevIterator2 __rlast2(__first2);
15952       _RevIterator1 __rresult = std::search(_RevIterator1(__last1), __rlast1,
15953          _RevIterator2(__last2), __rlast2,
15954          __comp);
15955
15956       if (__rresult == __rlast1)
15957  return __last1;
15958       else
15959  {
15960    _BidirectionalIterator1 __result = __rresult.base();
15961    std::advance(__result, -std::distance(__first2, __last2));
15962    return __result;
15963  }
15964     }
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)
15970     {
15971
15972      
15973      
15974      
15975
15976
15977       ;
15978       ;
15979
15980       return std::__find_end(__first1, __last1, __first2, __last2,
15981         std::__iterator_category(__first1),
15982         std::__iterator_category(__first2));
15983     }
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)
15991     {
15992
15993      
15994      
15995      
15996
15997
15998       ;
15999       ;
16000
16001       return std::__find_end(__first1, __last1, __first2, __last2,
16002         std::__iterator_category(__first1),
16003         std::__iterator_category(__first2),
16004         __comp);
16005     }
16006
16007 }
16008 # 70 "/usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/g++-v4/algorithm" 2 3
16009
16010 #pragma GCC visibility pop
16011 # 4 "t.c++" 2
16012
16013 # 1 "../schultz" 1
16014 # 10 "../schultz"
16015 namespace schultz {
16016
16017 # 1 "../language/keywords" 1
16018 # 13 "../schultz" 2
16019
16020
16021 # 1 "../language/types" 1
16022
16023
16024
16025
16026
16027
16028
16029 typedef unsigned int nat;
16030 # 16 "../schultz" 2
16031
16032
16033 # 1 "../language/iteration" 1
16034 # 19 "../schultz" 2
16035
16036
16037 # 1 "../language/meta" 1
16038 # 9 "../language/meta"
16039 template<typename T> struct default_type_traits {
16040  enum {
16041   trivial = false,
16042   trivial_constructor = false,
16043   trivial_copy = false,
16044   trivial_assignment = false,
16045   trivial_destructor = false,
16046
16047   fast_increment = false,
16048   fast_decrement = false,
16049   fast_random_increment = false,
16050
16051   special_swap = false
16052  };
16053 };
16054
16055
16056 template<typename T> struct type_traits {
16057  enum {
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
16063   ),
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,
16068
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,
16072
16073   special_swap = T::type_traits::special_swap
16074  };
16075 };
16076
16077
16078 template<typename T> struct builtin_type_traits : public default_type_traits<T> {
16079  enum {
16080   trivial = true,
16081   trivial_constructor = true,
16082   trivial_copy = true,
16083   trivial_assignment = true,
16084   trivial_destructor = true,
16085
16086   fast_increment = true,
16087   fast_decrement = true,
16088   fast_random_increment = true,
16089
16090   special_swap = false
16091  };
16092 };
16093
16094
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*> {};
16101
16102
16103
16104 template<typename I> struct default_iterator_traits {
16105  enum {
16106   constant = true,
16107   persistent = false,
16108   bidirectional = false,
16109   random_access = false
16110  };
16111 };
16112
16113
16114 template<typename I> struct iterator_traits {
16115  enum {
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
16120  };
16121 };
16122
16123
16124 template<typename T> struct iterator_traits<T*> : public default_iterator_traits<T*> {
16125  enum {
16126   constant = false,
16127   persistent = true,
16128   bidirectional = true,
16129   random_access = true
16130  };
16131 };
16132 template<typename T> struct iterator_traits<const T*> : public default_iterator_traits<const T*> {
16133  enum {
16134   constant = true,
16135   persistent = true,
16136   bidirectional = true,
16137   random_access = true
16138  };
16139 };
16140
16141
16142 template<typename I> struct iterator_type_traits : public default_type_traits<I> {
16143  enum {
16144   trivial = true,
16145
16146   fast_increment = true,
16147   fast_decrement = iterator_traits<I>::bidirectional,
16148   fast_random_increment = iterator_traits<I>::random_access
16149  };
16150 };
16151 # 22 "../schultz" 2
16152
16153
16154 # 1 "../language/base" 1
16155
16156
16157
16158
16159
16160
16161
16162 namespace __schultz {
16163
16164  template<bool> struct swap_meta {
16165   template<typename T> static inline void swap(T& a, T& b) {
16166    T c = a;
16167    a = b;
16168    b = c;
16169   }
16170  };
16171
16172
16173  template<> struct swap_meta<true> {
16174   template<typename T> static inline void swap(T& a, T& b) {
16175    T::swap(a, b);
16176   }
16177  };
16178 }
16179
16180
16181 template<typename T> inline void swap(T& a, T& b) {
16182  __schultz::swap_meta<type_traits<T>::special_swap>::swap(a, b);
16183 }
16184
16185
16186
16187 template<typename I> inline void reverse(I a, I b) {
16188  while (a != b) {
16189   --b;
16190   if (a == b) break;
16191   swap(*a, *b);
16192   ++a;
16193  }
16194 }
16195 template<typename T> inline void reverse(T& A) {
16196  reverse(A.begin(), A.end());
16197 }
16198
16199
16200
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;
16203  return true;
16204 }
16205 template<typename I> inline bool equal(I a, I b) {
16206  while (--b != a) if (*a != *b) return false;
16207  return true;
16208 }
16209 template<typename T, typename E> inline bool equal(const T& A, E e) {
16210  return equal(A.begin(), A.end(), e);
16211 }
16212 template<typename T> inline bool equal(const T& A) {
16213  return equal(A.begin(), A.end());
16214 }
16215
16216
16217
16218 template<typename T> inline bool ascending(const T& x, const T& y) {
16219  return x < y;
16220 }
16221
16222
16223 template<typename T> inline bool descending(const T& x, const T& y) {
16224  return y < x;
16225 }
16226
16227
16228
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;
16231 }
16232 template<typename T> inline const T& min(const T& x, const T& y) {
16233  return x < y ? x : y;
16234 }
16235 template<typename T, typename O> inline T& min(T& x, T& y, O o) {
16236  return o(x, y) ? x : y;
16237 }
16238 template<typename T> inline T& min(T& x, T& y) {
16239  return x < y ? x : y;
16240 }
16241
16242
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;
16245 }
16246 template<typename T> inline const T& max(const T& x, const T& y) {
16247  return y < x ? x : y;
16248 }
16249 template<typename T, typename O> inline T& max(T& x, T& y, O o) {
16250  return o(y, x) ? x : y;
16251 }
16252 template<typename T> inline T& max(T& x, T& y) {
16253  return y < x ? x : y;
16254 }
16255
16256
16257
16258 template<typename I, typename O> inline I minimum(I a, I b, O o) {
16259  I m = a;
16260  while (++a != b) if (o(*a, *m)) m = a;
16261  return m;
16262 }
16263 template<typename I> inline I minimum(I a, I b) {
16264  I m = a;
16265  while (++a != b) if (*a < *m) m = a;
16266  return m;
16267 }
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);
16270 }
16271 template<typename T> inline typename T::const_iterator minimum(const T& A) {
16272  return minimum(A.begin(), A.end());
16273 }
16274 template<typename T, typename O> inline typename T::iterator minimum(T& A, O o) {
16275  return minimum(A.begin(), A.end(), o);
16276 }
16277 template<typename T> inline typename T::iterator minimum(T& A) {
16278  return minimum(A.begin(), A.end());
16279 }
16280
16281
16282 template<typename I, typename O> inline I maximum(I a, I b, O o) {
16283  I m = a;
16284  while (++a != b) if (o(*m, *a)) m = a;
16285  return m;
16286 }
16287 template<typename I> inline I maximum(I a, I b) {
16288  I m = a;
16289  while (++a != b) if (*m < *a) m = a;
16290  return m;
16291 }
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);
16294 }
16295 template<typename T> inline typename T::const_iterator maximum(const T& A) {
16296  return maximum(A.begin(), A.end());
16297 }
16298 template<typename T, typename O> inline typename T::iterator maximum(T& A, O o) {
16299  return maximum(A.begin(), A.end(), o);
16300 }
16301 template<typename T> inline typename T::iterator maximum(T& A) {
16302  return maximum(A.begin(), A.end());
16303 }
16304 # 25 "../schultz" 2
16305
16306
16307 # 1 "../language/pair" 1
16308
16309
16310
16311
16312
16313
16314 namespace __schultz {
16315
16316  template<typename T, typename U> struct pair_base {
16317
16318   T first;
16319   U second;
16320
16321
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);
16325   }
16326
16327
16328   inline bool operator ==(const pair_base<T, U>& p) const {
16329    return first == p.first && second == p.second;
16330   }
16331   inline bool operator !=(const pair_base<T, U>& p) const {
16332    return !((*this) == p);
16333   }
16334
16335
16336   inline bool operator <(const pair_base<T, U>& p) const {
16337    return first < p.first || (first == p.first && second < p.second);
16338   }
16339   inline bool operator >(const pair_base<T, U>& p) const {
16340    return p < (*this);
16341   }
16342   inline bool operator <=(const pair_base<T, U>& p) const {
16343    return !(p < (*this));
16344   }
16345   inline bool operator >=(const pair_base<T, U>& p) const {
16346    return !((*this) < p);
16347   }
16348
16349
16350   inline pair_base() {}
16351   inline pair_base(const T& f, const U& s) : first(f), second(s) {}
16352
16353
16354   struct type_traits : public default_type_traits< pair_base<T, U> > {
16355    enum {
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,
16361
16362     special_swap = schultz::type_traits<T>::special_swap || schultz::type_traits<U>::special_swap
16363    };
16364   };
16365  };
16366 }
16367
16368
16369 template<typename T, typename U = T> struct pair : public __schultz::pair_base<T, U> {
16370
16371  inline pair() {}
16372  inline pair(const T& f, const U& s) : __schultz::pair_base<T, U>::pair_base(f, s) {}
16373 };
16374
16375
16376 template<typename T> struct pair<T, T> : public __schultz::pair_base<T, T> {
16377
16378  using __schultz::pair_base<T, T>::first;
16379  using __schultz::pair_base<T, T>::second;
16380
16381
16382  inline const T& operator [](nat i) const {return i == 0 ? first : second;}
16383  inline T& operator [](nat i) {return i == 0 ? first : second;}
16384
16385
16386  inline pair() {}
16387  inline pair(const T& f, const T& s) : __schultz::pair_base<T, T>::pair_base(f, s) {}
16388 };
16389 # 28 "../schultz" 2
16390
16391
16392 # 1 "../language/interval" 1
16393
16394
16395
16396
16397
16398
16399
16400 namespace __schultz {
16401
16402  template<typename T> struct interval_base {
16403
16404   T left, right;
16405
16406
16407   inline typeof(((T)(*((T*)(0)))) - ((T)(*((T*)(0))))) size() const {return right-left;}
16408
16409
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);
16413   }
16414
16415
16416   inline bool operator ==(const interval_base<T>& I) const {
16417    return left == I.left && right == I.right;
16418   }
16419   inline bool operator !=(const interval_base<T>& I) const {
16420    return !((*this) == I);
16421   }
16422
16423
16424   inline interval_base() {}
16425   inline interval_base(const T& l, const T& r) : left(l), right(r) {}
16426
16427
16428   struct type_traits : public default_type_traits< interval_base<T> > {
16429    enum {
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,
16435
16436     special_swap = schultz::type_traits<T>::special_swap
16437    };
16438   };
16439  };
16440 }
16441
16442
16443 template<typename T, bool B = type_traits<T>::trivial && type_traits<T>::fast_increment> struct interval : public __schultz::interval_base<T> {
16444
16445  using __schultz::interval_base<T>::left;
16446  using __schultz::interval_base<T>::right;
16447
16448
16449  using __schultz::interval_base<T>::size;
16450
16451
16452  struct const_iterator {
16453
16454   const interval<T, B>* I;
16455
16456
16457   nat i;
16458
16459
16460   inline T operator *() const {return I->left + i;}
16461   inline T operator [](nat k) const {return I->left + i + k;}
16462
16463
16464   inline bool operator ==(const_iterator it) const {return i == it.i;}
16465   inline bool operator !=(const_iterator it) const {return i != it.i;}
16466
16467
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;}
16472
16473
16474   inline void operator ++() {++i;}
16475   inline const_iterator operator ++(int) {
16476    const_iterator r = (*this);
16477    ++i;
16478    return r;
16479   }
16480   inline void operator --() {--i;}
16481   inline const_iterator operator --(int) {
16482    const_iterator r = (*this);
16483    --i;
16484    return r;
16485   }
16486   inline void operator +=(nat x) {i+= x;}
16487   inline const_iterator operator +(nat x) const {
16488    return const_iterator(I, i+x);
16489   }
16490   inline void operator -=(nat x) {i-= x;}
16491   inline const_iterator operator -(nat x) const {
16492    return const_iterator(I, i-x);
16493   }
16494   inline nat operator -(const_iterator it) const {return i - it.i;}
16495
16496
16497   inline const_iterator(const interval<T, B>* p, nat idx) : I(p), i(idx) {}
16498
16499
16500   struct iterator_traits : public default_iterator_traits<const_iterator> {
16501    enum {
16502     constant = true,
16503     persistent = false,
16504     bidirectional = true,
16505     random_access = true
16506    };
16507   };
16508
16509
16510   struct type_traits : public iterator_type_traits<const_iterator> {};
16511  };
16512
16513
16514  typedef const_iterator iterator;
16515
16516
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();}
16520
16521
16522  inline interval() {}
16523  inline interval(const T& l, const T& r) : __schultz::interval_base<T>::interval_base(l, r) {}
16524 };
16525
16526
16527 template<typename T> struct interval<T, true> : public __schultz::interval_base<T> {
16528
16529  using __schultz::interval_base<T>::left;
16530  using __schultz::interval_base<T>::right;
16531
16532
16533  struct const_iterator {
16534
16535   T e;
16536
16537
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;}
16541
16542
16543   inline bool operator ==(const_iterator i) const {return e == i.e;}
16544   inline bool operator !=(const_iterator i) const {return e != i.e;}
16545
16546
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;}
16551
16552
16553   inline void operator ++() {++e;}
16554   inline const_iterator operator ++(int) {
16555    const_iterator r = (*this);
16556    ++e;
16557    return r;
16558   }
16559   inline void operator --() {--e;}
16560   inline const_iterator operator --(int) {
16561    const_iterator r = (*this);
16562    --e;
16563    return r;
16564   }
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;}
16570
16571
16572   inline const_iterator(T x) : e(x) {}
16573
16574
16575   struct iterator_traits : public default_iterator_traits<const_iterator> {
16576    enum {
16577     constant = true,
16578     persistent = false,
16579     bidirectional = schultz::type_traits<T>::fast_decrement,
16580     random_access = schultz::type_traits<T>::fast_random_increment
16581    };
16582   };
16583
16584
16585   struct type_traits : public iterator_type_traits<const_iterator> {};
16586  };
16587
16588
16589  typedef const_iterator iterator;
16590
16591
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;}
16597
16598
16599  inline interval() {}
16600  inline interval(const T& l, const T& r) : __schultz::interval_base<T>::interval_base(l, r) {}
16601 };
16602
16603
16604
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());
16607 }
16608 template<typename T> inline interval<typename T::iterator> iterators(T& A) {
16609  return interval<typename T::iterator>(A.begin(), A.end());
16610 }
16611
16612
16613 typedef interval<nat> _;
16614 # 31 "../schultz" 2
16615 }
16616 # 6 "t.c++" 2
16617 using namespace schultz;
16618
16619
16620
16621 int A[1000000] = {3};
16622
16623 void dosch() {
16624  reverse(A, A+1000000);
16625 }
16626
16627 void dostl() {
16628  std::reverse(A, A+1000000);
16629 }
16630
16631 int main() {
16632
16633  dosch();
16634
16635  dostl();
16636
16637  nat s = 0;
16638  for (int i = 0; i != 1000000; ++i) s+= A[i];
16639  printf("%u\n", s);
16640
16641  return 0;
16642 }